<?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>235347</bug_id>
          
          <creation_ts>2022-01-18 20:06:09 -0800</creation_ts>
          <short_desc>[libpas] it should be possible to decommit unused parts of a thread_local_cache (update to 78508e79fa2797680344d43b94841ae2e903b15b)</short_desc>
          <delta_ts>2022-02-23 11:35:06 -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>bmalloc</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231938</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1831931</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-18 20:06:09 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831935</commentid>
    <comment_count>1</comment_count>
      <attachid>449459</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-18 20:25:38 -0800</bug_when>
    <thetext>Created attachment 449459
maybe the patch

Still testing this...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832667</commentid>
    <comment_count>2</comment_count>
      <attachid>449637</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-20 20:19:24 -0800</bug_when>
    <thetext>Created attachment 449637
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833025</commentid>
    <comment_count>3</comment_count>
      <attachid>449637</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-01-22 13:02:46 -0800</bug_when>
    <thetext>Comment on attachment 449637
updated patch

I think that the debug layout test failures are preexisting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833554</commentid>
    <comment_count>4</comment_count>
      <attachid>449637</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-01-24 16:33:48 -0800</bug_when>
    <thetext>Comment on attachment 449637
updated patch

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

r=me

&gt; Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.c:1
&gt; +/*

Can you add it to CMakeLists.txt too?

&gt; Source/bmalloc/libpas/src/libpas/pas_committed_pages_vector.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_compact_thread_local_cache_layout_node.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_decommit_exclusion_range.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_large_virtual_range.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_large_virtual_range_min_heap.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_mmap_capability.h:1
&gt; +/*

Ditto.

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache.c:981
&gt; +    if ( verbose)

Remove this space.

&gt; Source/bmalloc/libpas/src/libpas/pas_thread_local_cache_layout_entry.h:1
&gt; +/*

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833973</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-25 20:07:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/88058546&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839742</commentid>
    <comment_count>6</comment_count>
      <attachid>451556</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-02-10 09:49:06 -0800</bug_when>
    <thetext>Created attachment 451556
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839861</commentid>
    <comment_count>7</comment_count>
      <attachid>451587</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-02-10 12:04:10 -0800</bug_when>
    <thetext>Created attachment 451587
better patch for landing

Addresses Yusuke&apos;s feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1839961</commentid>
    <comment_count>8</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2022-02-10 14:35:21 -0800</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/289579/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841127</commentid>
    <comment_count>9</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-13 21:14:48 -0800</bug_when>
    <thetext>Committed r289724 (247209@trunk): &lt;https://commits.webkit.org/247209@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841129</commentid>
    <comment_count>10</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-13 21:23:07 -0800</bug_when>
    <thetext>Committed r289725 (247210@trunk): &lt;https://commits.webkit.org/247210@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1841415</commentid>
    <comment_count>11</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-14 14:44:33 -0800</bug_when>
    <thetext>It looks like most of LayoutTests start crashing after this patch with ASan.
Reverting it for now.

==80471==ERROR: AddressSanitizer: stack-buffer-overflow on address 0x7ff7b51746a0 at pc 0x00013e3cf63b bp 0x7ff7b5174660 sp 0x7ff7b5174658
READ of size 8 at 0x7ff7b51746a0 thread T0
==80471==WARNING: invalid path to external symbolizer!
==80471==WARNING: Failed to use and restart external symbolizer!
    #0 0x13e3cf63a in pas_compact_thread_local_cache_layout_node_load_non_null+0x2a (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x31063a)
    #1 0x13e3cec21 in pas_thread_local_cache_layout_entry_get_key+0xc1 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x30fc21)
    #2 0x13e3ce5dc in pas_thread_local_cache_layout_hashtable_add_new+0xc (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x30f5dc)
    #3 0x13e3ce4d1 in pas_thread_local_cache_layout_add_node+0x171 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x30f4d1)
    #4 0x13e3ce680 in pas_thread_local_cache_layout_add+0x10 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x30f680)
    #5 0x13e3a8fed in pas_segregated_size_directory_create_tlc_allocator+0x7d (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2e9fed)
    #6 0x13e35415f in set_up_range+0x4cf (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x29515f)
    #7 0x13e35381c in pas_designated_intrinsic_heap_initialize+0x49c (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x29481c)
    #8 0x13e2f85d6 in bmalloc_heap_config_activate+0x16 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2395d6)
    #9 0x13e36d8f9 in pas_heap_config_activate+0x59 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2ae8f9)
    #10 0x13e338bcf in jit_heap_config_activate+0xf (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x279bcf)
    #11 0x13e36d8f9 in pas_heap_config_activate+0x59 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2ae8f9)
    #12 0x13e395ba2 in pas_segregated_heap_ensure_size_directory_for_size+0x32 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2d6ba2)
    #13 0x13e36d717 in pas_heap_ensure_size_directory_for_size_slow+0x47 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2ae717)
    #14 0x13e33d831 in jit_heap_config_specialized_try_allocate_common_impl_slow+0x191 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x27e831)
    #15 0x13e33893c in jit_try_allocate_common_primitive_impl_impl_slow+0x2c (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x27993c)
    #16 0x13e3387f2 in jit_try_allocate_common_primitive_impl_casual_case+0x232 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2797f2)
    #17 0x13e337ce6 in jit_heap_try_allocate+0xa6 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x278ce6)
    #18 0x140b8bae5 in JSC::ExecutableMemoryHandle::createImpl(unsigned long)+0x15 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2accae5)
    #19 0x140b8b244 in JSC::FixedVMPoolExecutableAllocator::allocate(unsigned long)+0x14 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2acc244)
    #20 0x140b8aba9 in JSC::ExecutableAllocator::allocate(unsigned long, JSC::JITCompilationEffort)+0x1c9 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2acbba9)
    #21 0x13f2c46d6 in JSC::LinkBuffer::allocate(JSC::MacroAssembler&amp;, JSC::JITCompilationEffort)+0x1a6 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x12056d6)
    #22 0x13f2c41a5 in JSC::LinkBuffer::linkCode(JSC::MacroAssembler&amp;, JSC::JITCompilationEffort)+0xd5 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x12051a5)
    #23 0x13f2e59d9 in JSC::LinkBuffer::LinkBuffer(JSC::MacroAssembler&amp;, void*, JSC::LinkBuffer::Profile, JSC::JITCompilationEffort)+0x79 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x12269d9)
    #24 0x13f2e24c8 in JSC::LinkBuffer::LinkBuffer(JSC::MacroAssembler&amp;, void*, JSC::LinkBuffer::Profile, JSC::JITCompilationEffort)+0x8 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x12234c8)
    #25 0x1410a736a in JSC::nativeForGenerator(JSC::VM&amp;, JSC::ThunkFunctionType, JSC::CodeSpecializationKind, JSC::ThunkEntryType)+0x89a (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fe836a)
    #26 0x1410a7897 in JSC::internalFunctionCallGenerator(JSC::VM&amp;)+0x17 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fe8897)
    #27 0x14107741b in JSC::JITThunks::ctiStub(JSC::VM&amp;, JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; (*)(JSC::VM&amp;))::$_2::operator()() const+0x4b (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fb841b)
    #28 0x141067d3a in JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; JSC::JITThunks::ctiStubImpl&lt;JSC::JITThunks::ctiStub(JSC::VM&amp;, JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; (*)(JSC::VM&amp;))::$_2&gt;(JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; (*)(JSC::VM&amp;), JSC::JITThunks::ctiStub(JSC::VM&amp;, JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; (*)(JSC::VM&amp;))::$_2)+0x28a (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fa8d3a)
    #29 0x141067413 in JSC::JITThunks::ctiStub(JSC::VM&amp;, JSC::MacroAssemblerCodeRef&lt;(WTF::PtrTag)26129&gt; (*)(JSC::VM&amp;))+0xd3 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fa8413)
    #30 0x1410678f7 in JSC::JITThunks::ctiInternalFunctionCall(JSC::VM&amp;)+0xc7 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x2fa88f7)
    #31 0x141c0a393 in JSC::VM::getCTIInternalFunctionTrampolineFor(JSC::CodeSpecializationKind)+0x1a3 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x3b4b393)
    #32 0x141c060fd in JSC::VM::VM(JSC::VM::VMType, JSC::HeapType, WTF::RunLoop*, bool*)+0x201d (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x3b470fd)
    #33 0x141c0a698 in JSC::VM::VM(JSC::VM::VMType, JSC::HeapType, WTF::RunLoop*, bool*)+0x8 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x3b4b698)
    #34 0x141c0bab3 in JSC::VM::create(JSC::HeapType, WTF::RunLoop*)+0x33 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x3b4cab3)
    #35 0x1520b6549 in WebCore::commonVMSlow()+0xb9 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebCore.framework/Versions/A/WebCore:x86_64+0x3225549)
    #36 0x122f64862 in WebCore::commonVM()+0x32 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x119e862)
    #37 0x1243c7e15 in WebKit::WebProcess::initializeWebProcess(WebKit::WebProcessCreationParameters&amp;&amp;)+0xbc5 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x2601e15)
    #38 0x124fc98df in void IPC::callMemberFunctionImpl&lt;WebKit::WebProcess, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;), std::__1::tuple&lt;WebKit::WebProcessCreationParameters&gt;, 0ul&gt;(WebKit::WebProcess*, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;), std::__1::tuple&lt;WebKit::WebProcessCreationParameters&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;)+0x4f (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x32038df)
    #39 0x124fc9268 in void IPC::callMemberFunction&lt;WebKit::WebProcess, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;), std::__1::tuple&lt;WebKit::WebProcessCreationParameters&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WebKit::WebProcessCreationParameters&gt;&amp;&amp;, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;))+0x28 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x3203268)
    #40 0x124fbee90 in void IPC::handleMessage&lt;Messages::WebProcess::InitializeWebProcess, WebKit::WebProcess, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, WebKit::WebProcess*, void (WebKit::WebProcess::*)(WebKit::WebProcessCreationParameters&amp;&amp;))+0x160 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x31f8e90)
    #41 0x124fbdc6f in WebKit::WebProcess::didReceiveWebProcessMessage(IPC::Connection&amp;, IPC::Decoder&amp;)+0x3f (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x31f7c6f)
    #42 0x1243cc097 in WebKit::WebProcess::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)+0x47 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x2606097)
    #43 0x1236929ef in IPC::Connection::dispatchMessage(IPC::Decoder&amp;)+0x24f (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x18cc9ef)
    #44 0x123693478 in IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)+0x2e8 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x18cd478)
    #45 0x123693fc4 in IPC::Connection::dispatchOneIncomingMessage()+0x194 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x18cdfc4)
    #46 0x1236b2a25 in IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_15::operator()()+0x35 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x18eca25)
    #47 0x1236b298c in WTF::Detail::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_15, void&gt;::call()+0xc (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x18ec98c)
    #48 0x13e0fccae in WTF::Function&lt;void ()&gt;::operator()() const+0x3e (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x3dcae)
    #49 0x13e1c0737 in WTF::RunLoop::performWork()+0x327 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x101737)
    #50 0x13e1c3d6a in WTF::RunLoop::performWork(void*)+0xba (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x104d6a)
    #51 0x7ff812b67b67 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+0x10 (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64+0x7fb67)
    #52 0x7ff812b67acf in __CFRunLoopDoSource0+0xb3 (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64+0x7facf)
    #53 0x7ff812b67842 in __CFRunLoopDoSources0+0xf1 (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64+0x7f842)
    #54 0x7ff812b6625e in __CFRunLoopRun+0x380 (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64+0x7e25e)
    #55 0x7ff812b65808 in CFRunLoopRunSpecific+0x236 (/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation:x86_64+0x7d808)
    #56 0x7ff8138f475d in -[NSRunLoop(NSRunLoop) runMode:beforeDate:]+0xd7 (/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:x86_64+0x6075d)
    #57 0x7ff81397f2c2 in -[NSRunLoop(NSRunLoop) run]+0x4b (/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation:x86_64+0xeb2c2)
    #58 0x7ff8127ec232 in _xpc_objc_main+0x338 (/usr/lib/system/libxpc.dylib:x86_64+0x16232)
    #59 0x7ff8127ebc21 in xpc_main+0x62 (/usr/lib/system/libxpc.dylib:x86_64+0x15c21)
    #60 0x122def7d3 in WebKit::XPCServiceMain(int, char const**)+0x323 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x10297d3)
    #61 0x1250d63f8 in WKXPCServiceMain+0x8 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/WebKit.framework/Versions/A/WebKit:x86_64+0x33103f8)
    #62 0x10ad8ae18 in main+0x8 (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/com.apple.WebKit.WebContent.xpc/Contents/MacOS/com.apple.WebKit.WebContent.Development:x86_64+0x100003e18)
    #63 0x10f92d4fd  (/usr/lib/dyld:x86_64+0x54fd)

Address 0x7ff7b51746a0 is located in stack of thread T0 at offset 32 in frame
    #0 0x13e3ceb6f in pas_thread_local_cache_layout_entry_get_key+0xf (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x30fb6f)

  This frame has 1 object(s):
    [32, 36) &apos;entry2&apos; &lt;== Memory access at offset 32 partially overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: stack-buffer-overflow (/Volumes/Data/worker/trunk-monterey-asan-release-wk2-tests/build/buildToTest/JavaScriptCore.framework/Versions/A/JavaScriptCore:x86_64+0x31063a) in pas_compact_thread_local_cache_layout_node_load_non_null+0x2a
Shadow bytes around the buggy address:
  0x1ffef6a2e880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=&gt;0x1ffef6a2e8d0: f1 f1 f1 f1[04]f3 f3 f3 00 00 00 00 00 00 00 00
  0x1ffef6a2e8e0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
  0x1ffef6a2e8f0: 04 f3 f3 f3 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1ffef6a2e920: f1 f1 f1 f1 00 00 00 f3 f3 f3 f3 f3 00 00 00 00
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==80471==ABORTING
com.apple.WebKit.WebContent.Development terminated (pid 80471) because the process crashed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845099</commentid>
    <comment_count>12</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2022-02-23 05:46:00 -0800</bug_when>
    <thetext>(In reply to Yusuke Suzuki from comment #11)
&gt; It looks like most of LayoutTests start crashing after this patch with ASan.
&gt; Reverting it for now.

Did you actually revert it? If so, what&apos;s the revision corresponding to the revert?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1845240</commentid>
    <comment_count>13</comment_count>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2022-02-23 11:35:06 -0800</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #12)
&gt; (In reply to Yusuke Suzuki from comment #11)
&gt; &gt; It looks like most of LayoutTests start crashing after this patch with ASan.
&gt; &gt; Reverting it for now.
&gt; 
&gt; Did you actually revert it? If so, what&apos;s the revision corresponding to the
&gt; revert?

No. I landed a fix instead.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449459</attachid>
            <date>2022-01-18 20:25:38 -0800</date>
            <delta_ts>2022-01-20 20:19:24 -0800</delta_ts>
            <desc>maybe the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>328284</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0OSBAQAorMjAyMi0wMS0xOCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIGl0IHNob3VsZCBi
ZSBwb3NzaWJsZSB0byBkZWNvbW1pdCB1bnVzZWQgcGFydHMgb2YgYSB0aHJlYWRfbG9jYWxfY2Fj
aGUgKHVwZGF0ZSB0byA0MzQ0NjViZmI4ZTBjMjg1ZDY3NjNjZjZhYTBlMDQ5ODIxOTlmODI0KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGlicGFzIHVz
ZXMgVExDcyAodGhyZWFkX2xvY2FsX2NhY2hlcykgZm9yIGFsbG9jYXRpb24gYW5kIGRlYWxsb2Nh
dGlvbi4gRWFjaCBzaXplIGNsYXNzIGluIGVhY2ggaGVhcAorICAgICAgICBnZXRzIGEgbG9jYWwg
YWxsb2NhdG9yIGFuZCBwb3NzaWJseSBhIGxvY2FsIHZpZXcgY2FjaGUuIEJvdGggbG9jYWwgYWxs
b2NhdG9ycyBhbmQgbG9jYWwgdmlldyBjYWNoZXMKKyAgICAgICAgY2FuIGdldCBxdWl0ZSBsYXJn
ZSAoMTAwcyBvZiBieXRlcykuIFNvLCBpZiB5b3UgdHJ5IHRvIHN1cHBvcnQgZnVsbCBpc29oZWFw
cyAoYnVnIDIzMTkzOCksIHlvdSBlbmQgdXAKKyAgICAgICAgd2l0aCBnaW5vcm1vdXMgVExDcyBh
bmQgdGhhdCBhY2NvdW50cyBmb3IgYSBsb3Qgb2YgdGhlIG1lbW9yeSBvdmVyaGVhZCBvZiBmdWxs
IGlzb2hlYXBzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHRha2VzIGEgYmlnIGJpdGUgb3V0IG9m
IHRoYXQgb3ZlcmhlYWQgYnkgZW5hYmxpbmcgZGVjb21taXQgb2YgVExDIHBhZ2VzOgorCisgICAg
ICAgIC0gQW55IHBhZ2Ugd2l0aGluIGEgVExDIHRoYXQgaGFzIG5vdGhpbmcgYnV0IHN0b3BwZWQg
YWxsb2NhdG9ycyAob3IgdmlldyBjYWNoZXM7IEknbGwganVzdCBzYXkKKyAgICAgICAgICAiYWxs
b2NhdG9ycyIgdG8gbWVhbiBib3RoICJsb2NhbCBhbGxvY2F0b3JzIiBhbmQgImxvY2FsIHZpZXcg
Y2FjaGVzIiwgYXMgSSBkbyBpbiB0aGUgY29kZSkgY2FuIGdldAorICAgICAgICAgIGRlY29tbWl0
dGVkIGJ5IHRoZSBzY2F2ZW5nZXIuCisKKyAgICAgICAgLSBUTEMgcGFnZSBkZWNvbW1pdCBqdXN0
IHJlcXVpcmVzIGhvbGRpbmcgdGhlIFRMQydzIHNjYXZlbmdlcl9sb2NrIChmb3JtZXJseSBrbm93
biBhcyB0aGUKKyAgICAgICAgICBsb2dfZmx1c2hfbG9jaykgYW5kIHRoZSBoZWFwX2xvY2suIFlv
dSBkb24ndCBoYXZlIHRvIHN1c3BlbmQgdGhlIHRocmVhZCAoYnV0IHN1c3BlbnNpb24gY291bGQg
aGF2ZQorICAgICAgICAgIGJlZW4gdXNlZCB0byBzdG9wIHRoZSBhbGxvY2F0b3IsIGFzIGJlZm9y
ZSkuCisKKyAgICAgICAgLSBBdHRlbXB0cyB0byBhbGxvY2F0ZSB1c2luZyBhbiBhbGxvY2F0b3Ig
aW4gYSBkZWNvbW1pdHRlZCBwYWdlIGFyZSBndWFyYW50ZWVkIHRvIGdvIGRvd24gYSBzbG93Cisg
ICAgICAgICAgcGF0aCB0aGF0IGNvbW1pdHMgdGhlIHBhZ2UgYW5kIHJlbWF0ZXJpYWxpemVzIHRo
ZSBhbGxvY2F0b3IuCisKKyAgICAgICAgLSBUaGlzIGRvZXNuJ3QgcmVxdWlyZSBhbnkgcGFnZSBh
bGlnbm1lbnQgb2YgYWxsb2NhdG9ycy4gQWxsb2NhdG9ycyBjYW4gc3RyYWRkbGUgcGFnZXMuCisK
KyAgICAgICAgVGhpcyBzZWVtcyB0byBiZSBwZXJmLW5ldXRyYWwgb24gdHJ1bmsuIEl0IG9mZmVy
cyBhIH4xLjUlIG1lbW9yeSBpbXByb3ZlbWVudCBmb3IgYnVnIDIzMTkzOC4KKworICAgICAgICAq
IGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvbGli
cGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY19oZWFwLmM6CisgICAgICAgIChibWFsbG9jX2ZsZXhfaGVhcF9yZWZfZ2V0X2hl
YXApOgorICAgICAgICAoYm1hbGxvY19hdXhpbGlhcnlfaGVhcF9yZWZfZ2V0X2hlYXApOgorICAg
ICAgICAoYm1hbGxvY19nZXRfaGVhcCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1h
bGxvY19oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2Nv
bmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jOgor
ICAgICAgICAoaml0X2FsaWduZWRfYWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5h
bGlnbjMyX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbnN0cnVj
dCk6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9zdG9wKToKKyAgICAgICAgKHBhc19i
aXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2Nh
dG9yX2ZpbmlzaF9mYWlsaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmg6
CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfYWxsb2NhdGlvbl9jb21taXRfZ3JhbnVsZXNfb3Jf
cmVsb29wKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uYzoK
KyAgICAgICAgKHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QpOgorICAgICAgICAoY29tbWl0KToK
KyAgICAgICAgKHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkX2FuZF9jb21taXQpOgorICAg
ICAgICAoZGVjb21taXQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRf
c3Bhbi5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNf
dmVjdG9yLmM6IEFkZGVkLgorICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY29u
c3RydWN0KToKKyAgICAgICAgKHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rlc3RydWN0KToK
KyAgICAgICAgKHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2NvbW1pdHRlZCk6Cisg
ICAgICAgIChwYXNfY291bnRfY29tbWl0dGVkX3BhZ2VzKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2lzX2NvbW1pdHRlZCk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9u
X3JhbmdlLmg6IEFkZGVkLgorICAgICAgICAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9p
c19lbXB0eSk6CisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2NvbnRp
Z3VvdXMpOgorICAgICAgICAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRl
ZCk6CisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2NyZWF0ZV9pbnZlcnRl
ZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlZmVycmVkX2RlY29tbWl0X2xv
Zy5jOgorICAgICAgICAoZGVjb21taXRfYWxsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuYzoKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9y
eV9zdGF0ZV92ZXJzaW9uX25leHQpOgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X2Nv
bnN0cnVjdCk6CisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25lY2Vz
c2FyeSk6CisgICAgICAgIChzY2F2ZW5nZV9pbXBsKToKKyAgICAgICAgKHBhc19leHBlbmRhYmxl
X21lbW9yeV9zY2F2ZW5nZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVu
ZGFibGVfbWVtb3J5Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2ZyZWVfZ3Jh
bnVsZXMuYzoKKyAgICAgICAgKHBhc19mcmVlX2dyYW51bGVzX2RlY29tbWl0X2FmdGVyX2xvY2tp
bmdfcmFuZ2UpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmM6CisgICAg
ICAgIChwYXNfaGVhcF9nZXRfdHlwZV9zaXplKToKKyAgICAgICAgKHBhc19oZWFwX2dldF90eXBl
X2FsaWdubWVudCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuYzoKKyAgICAgICAgKHBhc19o
ZWFwX2NvbmZpZ191dGlsc19hbGxvY2F0ZV9hbGlnbmVkKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9yZWYuYzoKKyAgICAgICAgKHBhc19lbnN1cmVfaGVhcF9zbG93KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRf
bG9nLmM6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2df
Y29uc3RydWN0KToKKyAgICAgICAgKHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0
X2xvZ19kZXN0cnVjdCk6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2Nv
bW1pdF9sb2dfYWRkKToKKyAgICAgICAgKGNvbW1pdCk6CisgICAgICAgIChjb21taXRfYWxsKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2cuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJl
ZV9oZWFwX2hlbHBlcnMuYzoKKyAgICAgICAgKGxhcmdlX3V0aWxpdHlfYWxpZ25lZF9hbGxvY2F0
b3IpOgorICAgICAgICAocGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzX3RyeV9hbGxvY2F0ZV93
aXRoX2FsaWdubWVudCk6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfZGVh
bGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYzoK
KyAgICAgICAgKGFsbG9jYXRlX2ltcGwpOgorICAgICAgICAocGFzX2xhcmdlX2hlYXBfdHJ5X2Rl
YWxsb2NhdGUpOgorICAgICAgICAocGFzX2xhcmdlX2hlYXBfdHJ5X3Nocmluayk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X2NhY2hlLmM6CisgICAgICAgIChsYXJnZV9hbGlnbmVkX2FsbG9jYXRvcik6CisgICAgICAgIChw
YXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGVfdHJ5X2FsbG9jYXRlX3dp
dGhfYWxpZ25tZW50KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVh
cF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmM6CisgICAgICAgIChjcmVhdGVfbm9kZSk6Cisg
ICAgICAgIChjcmVhdGVfYW5kX2luc2VydCk6CisgICAgICAgIChib290X3RyZWUpOgorICAgICAg
ICAoc3RhdGVzX21hdGNoKToKKyAgICAgICAgKHNwbGl0X25vZGVfYW5kX2dldF9yaWdodF9pbXBs
KToKKyAgICAgICAgKHRyeV9zcGxhdF9pbXBsKToKKyAgICAgICAgKHRyeV9zcGxhdCk6CisgICAg
ICAgIChzcGxhdCk6CisgICAgICAgIChwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSk6
CisgICAgICAgIChwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUpOgorICAgICAgICAocGFzX2xh
cmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KToKKyAgICAgICAgKHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZGVjb21taXRfbGVhc3RfcmVjZW50bHlfdXNlZCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmg6IEFkZGVkLgorICAgICAg
ICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKToKKyAgICAgICAgKHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX2NyZWF0ZV9lbXB0eSk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9nZXRfcmFuZ2UpOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfaXNfZW1w
dHkpOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZSk6CisgICAgICAgIChw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9vdmVybGFwcyk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaDogQWRkZWQuCisgICAgICAg
IChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jb21wYXJlX2JlZ2luKToKKyAgICAgICAgKHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX2dldF9pbmRleCk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZV9zZXRfaW5kZXgpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSk6CisgICAgICAgIChzdG9wX2ltcGwp
OgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeV9pbXBsKToKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeSk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3X2JlZm9yZV9zdG9wcGluZyk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvbmZpZyk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdh
dGVkX3Nsb3dfaW1wbCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0
ZV9vdXRfb2ZfbGluZV9jYXNlcyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZV9zbG93X2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZC5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2dl
dF9zdHJpbmcpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2lzX3N0b3BwZWQp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYzoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
aXNfc3RvcHBlZCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX3N0b3ApOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9wcmVwYXJlX3RvX2RlY29tbWl0KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYzoKKyAgICAgICAg
KHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfbG9jYWxfdmll
d19jYWNoZV9tb3ZlKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3ApOgorICAg
ICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfZGlkX3Jlc3RhcnQpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmg6CisgICAgICAgIChwYXNfbG9jYWxf
dmlld19jYWNoZV9nZXRfc3RhdGUpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0
X3N0YXRlKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwpOgorICAgICAg
ICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfY2FuX3B1c2gpOgorICAgICAgICAocGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfaXNfZW1wdHkpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFy
ZV90b19wb3ApOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wdXNo
KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcCk6CisgICAgICAgIChwYXNfbG9j
YWxfdmlld19jYWNoZV9wdXNoKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
ay5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaDog
QWRkZWQuCisgICAgICAgIChwYXNfbW1hcF9jYXBhYmlsaXR5X2dldF9zdHJpbmcpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5jOgorICAgICAgICAocGFzX3Bh
Z2VfbWFsbG9jX2FsaWdubWVudF9zbG93KToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19hbGln
bm1lbnRfc2hpZnRfc2xvdyk6CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKToK
KyAgICAgICAgKGNvbW1pdF9pbXBsKToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19jb21taXQp
OgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0KToKKyAg
ICAgICAgKGRlY29tbWl0X2ltcGwpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0
KToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF93aXRob3V0X21wcm90ZWN0KToK
KyAgICAgICAgKHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9hc3ltbWV0cmljKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmM6CisgICAgICAgIChoYW5kbGVfZXhw
ZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAoc2NhdmVuZ2VyX3RocmVhZF9tYWluKToKKyAgICAg
ICAgKHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZXhwZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAo
cGFzX3NjYXZlbmdlcl9mYWtlX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmg6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmM6CisgICAgICAg
IChtZWRpdW1fZGlyZWN0b3J5X3R1cGxlX2Zvcl9pbmRleF9pbXBsKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZV9mb3JfaW5kZXgpOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zvcl9pbmRleCk6
CisgICAgICAgIChyZWNvbXB1dGVfc2l6ZV9sb29rdXApOgorICAgICAgICAocmVtYXRlcmlhbGl6
ZV9zaXplX2xvb2t1cF9zZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAoY2hlY2tf
c2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9zZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSk6Cisg
ICAgICAgIChjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2R1bXBfZGlyZWN0b3J5KToK
KyAgICAgICAgKGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb24pOgorICAgICAgICAoY2hl
Y2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9pZl9hcHByb3ByaWF0ZSk6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF90b3VjaF9sb29rdXBfdGFibGVzKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbW1pdF9mdWxseSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2xvZ19v
cl9kZWFsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19j
cmVhdGUpOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYzoKKyAgICAg
ICAgKHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3X2NvbW1pdF9wYWdlKToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jOgor
ICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmg6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfdGxjX2FsbG9jYXRvcl9pbmRleCk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3Jf
aW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9j
YXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIu
YzoKKyAgICAgICAgKGR1bXBfbGFyZ2Vfc2hhcmluZ19wb29sX25vZGVfY2FsbGJhY2spOgorICAg
ICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3ZpZXdfc3RhdHMpOgorICAgICAgICAoYWxs
b2NhdG9yX3N0YXRlKToKKyAgICAgICAgKGR1bXBfYWxsb2NhdG9yX3N0YXRlKToKKyAgICAgICAg
KGR1bXBfc2NhdmVuZ2VyX2RhdGFfc3RhdGUpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX2Jhc2VsaW5lX2FsbG9jYXRvcnMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX3RocmVhZF9sb2NhbF9jYWNoZXMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX2V2ZXJ5dGhpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0
dXNfcmVwb3J0ZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2Fs
bG9jYXRvcl9pbmRleF9jYXBhY2l0eSk6CisgICAgICAgIChudW1fcGFnZXMpOgorICAgICAgICAo
Y29tcHV0ZV9wYWdlX2luZGljZXMpOgorICAgICAgICAocGFnZXNfY29tbWl0dGVkX3NpemUpOgor
ICAgICAgICAoZGVhbGxvY2F0ZSk6CisgICAgICAgIChhbGxvY2F0ZV9jYWNoZSk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NyZWF0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2Rlc3Ryb3kpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX3Nsb3cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9p
c19jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jb21wdXRlX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Vuc3VyZV9jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9hbGxv
Y2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyk6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRpb25f
bG9nX3dpdGhvdXRfcmVzZXR0aW5nKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2df
Zm9yX3NjYXZlbmdlcik6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhfbW9k
ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9s
b2cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25f
bG9nX2RpcmVjdCk6CisgICAgICAgIChzdXNwZW5kKToKKyAgICAgICAgKHJlc3VtZSk6CisgICAg
ICAgIChkZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UpOgorICAgICAgICAoc3RvcF9hbGxvY2F0b3Ip
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlv
bl9sb2cpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGUuaDoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29m
X2FsbG9jYXRvcik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXQuYzoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2FkZF9ub2RlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9u
b2RlX2Zvcl9pbmRleCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0ZV9lbXB0eSk6CisgICAgICAgIChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9jcmVhdGVfZGVsZXRlZCk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVk
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2lzX2VtcHR5
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2lzX2RlbGV0
ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfZ2V0X2tl
eSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfZ2V0X2hhc2gp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5X2lzX2VxdWFsKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251
bV9hbGxvY2F0b3JfaW5kaWNlcyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0
cnVjdCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9ub2RlX2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfaW1wbF9jYXN1YWxfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJp
bnNpY19pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9wcmlt
aXRpdmVfaW1wbF9jYXN1YWxfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dXRpbGl0eV9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmg6
CisgICAgICAgIChwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUpOgorICAgICAgICAocGFzX3ZpcnR1
YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvRXhwZW5k
YWJsZU1lbW9yeVRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdFJhZ2UpOgorICAgICAgICAo
c3RkOjp0ZXN0UmVtYXRlcmlhbGl6ZUFmdGVyU2VhcmNoT2ZEZWNvbW1pdHRlZCk6CisgICAgICAg
IChzdGQ6OnRlc3RCYXNpY1NpemVDbGFzcyk6CisgICAgICAgIChhZGRFeHBlbmRhYmxlTWVtb3J5
VGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMu
Y3BwOgorICAgICAgICAoc3RkOjp0ZXN0R29vZENvYWxlc2NlRXBvY2hVcGRhdGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChh
ZGRNZW1hbGlnblRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRU
ZXN0cy5jcHA6IEFkZGVkLgorICAgICAgICAoc3RkOjpudW1Db21taXR0ZWRQYWdlc0luVExDKToK
KyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0KToKKyAgICAgICAgKHN0ZDo6dGVzdENoYW9z
VGhlbkRlY29tbWl0KToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJ
bXBsKToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3kpOgorICAgICAg
ICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUluVGhyZWFkKToKKyAgICAgICAgKHN0
ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkZsdXNoKToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29t
bWl0VGhlbkRlYWxsb2NhdGUpOgorICAgICAgICAoYWRkVExDRGVjb21taXRUZXN0cyk6CisgICAg
ICAgICogbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKFJ1bnRpbWVD
b25maWdUZXN0U2NvcGU6OlJ1bnRpbWVDb25maWdUZXN0U2NvcGUpOgorICAgICAgICAoRGVjb21t
aXRaZXJvRmlsbDo6RGVjb21taXRaZXJvRmlsbCk6CisgICAgICAgIChtYWluKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaDoKKyAgICAgICAgKG9wZXJhdG9yPDwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25U
ZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OmFkZEFsbFRlc3RzKToKKwogMjAyMi0wMS0xOCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVzZSBj
KysyYSBpbnN0ZWFkIG9mIGdudSsrMmEgZm9yIENvY29hIGJ1aWxkcwpJbmRleDogU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24g
Mjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC02MDYsNiArNjA2LDE0IEBACiAJCTE0RjI3MUM1MThFQTM5
N0UwMDhDMTUyRiAvKiBEZWFsbG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNDVGNjg1OTE3OURDOTAyMDBENjU1OTggLyogRGVhbGxvY2F0
b3IuY3BwICovOyB9OwogCQkxNEYyNzFDNzE4RUEzOTkwMDA4QzE1MkYgLyogSGVhcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNERBMzIwRTE4ODc1
RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAgKi87IH07CiAJCTE0RjI3MUM4MThFQTM5OTAwMDhDMTUy
RiAvKiBPYmplY3RUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDE0MTA1RTgzMThFMTQzNzQwMDNBMTA2RSAvKiBPYmplY3RUeXBlLmNwcCAqLzsg
fTsKKwkJMkMwOUQ4QzEyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25f
cmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
MDlEOEI5Mjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkMwOUQ4
QzIyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCQTI3
OTdDNkU5MDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLzsg
fTsKKwkJMkMwOUQ4QzMyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVj
dG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5
RDhCQjI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCAqLzsg
fTsKKwkJMkMwOUQ4QzQyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVj
dG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5
RDhCQzI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLzsg
fTsKKwkJMkMwOUQ4QzUyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhC
RDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLzsgfTsKKwkJ
MkMwOUQ4QzYyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMDlEOEJFMjc5N0M2RUEw
MDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkMwOUQ4QzcyNzk3QzZFQTAwNUFBMTVDIC8qIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCRjI3OTdDNkVBMDA1QUExNUMgLyogcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaCAqLzsgfTsKKwkJMkMwOUQ4QzgyNzk3
QzZFQTAwNUFBMTVDIC8qIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4
QzAyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZS5oICovOyB9OwogCQkyQzExRTg5NTI3MjhERTI3MDAyMTYyRDAgLyogYm1hbGxvY190
eXBlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzEx
RTg5MjI3MjhERTI3MDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkMxMUU4OTYyNzI4REUyNzAwMjE2MkQw
IC8qIGJtYWxsb2NfdHlwZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkMxMUU4OTMyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovOyB9
OwogCQkyQzExRTg5NzI3MjhERTI3MDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg5NDI3MjhERTI3
MDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgKi87IH07CkBAIC0xMjY5LDYgKzEyNzcsMTQg
QEAKIAkJMTREQTMyMEMxODg3NUIwOTAwNzI2OUUwIC8qIEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gSGVhcC5oOyBwYXRoID0gYm1hbGxvYy9IZWFwLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0REEzMjBFMTg4NzVEOUYwMDcyNjlFMCAvKiBIZWFwLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEhlYXAuY3BwOyBwYXRoID0g
Ym1hbGxvYy9IZWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUx
OEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJtYWxsb2MuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBw
YXRoID0gbGliYm1hbGxvYy5hOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9Owor
CQkyQzA5RDhCOTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5n
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfZGVjb21taXRfZXhjbHVz
aW9uX3JhbmdlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVz
aW9uX3JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJBMjc5N0M2
RTkwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVh
cC5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWlu
X2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkIyNzk3QzZFOTAw
NUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyQzA5RDhCQzI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2NvbW1pdHRl
ZF9wYWdlc192ZWN0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3IuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlE
OEJEMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oOyBwYXRo
ID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkUyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19tbWFw
X2NhcGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX21tYXBf
Y2FwYWJpbGl0eS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0
eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhCRjI3OTdDNkVBMDA1QUEx
NUMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnku
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEMwMjc5N0M2RUEw
MDVBQTE1QyAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkMxMUU4OTIyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBibWFsbG9jX3R5cGUuaDsgcGF0aCA9IGxpYnBh
cy9zcmMvbGlicGFzL2JtYWxsb2NfdHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyQzExRTg5MzI3MjhERTI3MDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGJtYWxsb2NfdHlwZS5jOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvYm1hbGxvY190eXBlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMTFF
ODk0MjcyOERFMjcwMDIxNjJEMCAvKiBwYXNfc2ltcGxlX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5jOyBuYW1lID0gcGFzX3NpbXBsZV90eXBlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2ltcGxlX3R5cGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
MjIsNiArMTUzOCw4IEBACiAJCQkJMEZDNDA5QjQyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21t
aXRfbW9kZS5oICovLAogCQkJCTBGODdGRkNBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0
X3NwYW4uYyAqLywKIAkJCQkwRjg3RkZBMzI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2NvbW1pdF9z
cGFuLmggKi8sCisJCQkJMkMwOUQ4QkMyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yLmMgKi8sCisJCQkJMkMwOUQ4QkIyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yLmggKi8sCiAJCQkJMEY3NTQ5ODEyNDg2OTczQzAwMkE0QzdE
IC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmggKi8sCiAJCQkJMEY4
N0ZGQTgyNUFGODk3QTAwMEUxQUJGIC8qIHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVj
dG9yeV9wdHIuaCAqLywKIAkJCQkwRjVGRTdDQjI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBh
Y3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKQEAgLTE1NjcsNiAr
MTU4NSw3IEBACiAJCQkJMEZDNDA5NzEyNDUxNDk1RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3Rh
Z2dlZF9wdHIuaCAqLywKIAkJCQkwRkM0MDk5RjI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBh
Y3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTJDRTJBRTUxMjc2OTkyODIwMEQwMkJC
QyAvKiBwYXNfY29tcGFjdF90YWdnZWRfdm9pZF9wdHIuaCAqLywKKwkJCQkyQzA5RDhDMDI3OTdD
NkVBMDA1QUExNUMgLyogcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LmggKi8sCiAJCQkJMEZDNDA5OUEyNDUxNDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3Vuc2ln
bmVkX3B0ci5oICovLAogCQkJCTBGQzQwOTc5MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcHV0
ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuYyAqLywKIAkJCQkwRkM0MDlCMzI0NTE0OTYyMDA4
NzZEQTAgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCkBAIC0x
NTgyLDYgKzE2MDEsNyBAQAogCQkJCTBGMzczRTUzMjY1OUVBNzAwMDM0QkE5NiAvKiBwYXNfZGVi
dWdfaGVhcC5oICovLAogCQkJCTBGQkM2MkM0MjY1RjE4MEMwMDVBNTcyMCAvKiBwYXNfZGVidWdf
c3BlY3RydW0uYyAqLywKIAkJCQkwRkJDNjJDNTI2NUYxODBDMDA1QTU3MjAgLyogcGFzX2RlYnVn
X3NwZWN0cnVtLmggKi8sCisJCQkJMkMwOUQ4QjkyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19kZWNv
bW1pdF9leGNsdXNpb25fcmFuZ2UuaCAqLywKIAkJCQkwRkM0MDlCOTI0NTE0OTYzMDA4NzZEQTAg
LyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5jICovLAogCQkJCTBGQzQwOUEwMjQ1MTQ5NjEw
MDg3NkRBMCAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmggKi8sCiAJCQkJMEY4RTgzMkIy
NDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMu
aCAqLywKQEAgLTE3MDksNiArMTcyOSw4IEBACiAJCQkJMEZDNDBBMUQyNDUxNDk4NDAwODc2REEw
IC8qIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCAqLywKIAkJCQkwRkM0MEFBMzI0NTE0OThFMDA4
NzZEQTAgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmMgKi8sCiAJCQkJMEZDNDBBRjEy
NDUxNDk5MzAwODc2REEwIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oICovLAorCQkJ
CTJDMDlEOEJBMjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5f
aGVhcC5oICovLAorCQkJCTJDMDlEOEJEMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2Vfdmly
dHVhbF9yYW5nZS5oICovLAogCQkJCTJDOTcxRDAwMjc4RTc5ODcwMEM5RTEyOSAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8sCiAJCQkJMkM5NzFEMDEyNzhFNzk4NzAwQzlF
MTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi8sCiAJCQkJMkM5NzFEMDMyNzhFNzk4
NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi8sCkBAIC0x
NzM5LDYgKzE3NjEsNyBAQAogCQkJCTBGQzQwQTgxMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWVn
YXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkwRkM0MEEyNTI0NTE0OTg1MDA4NzZEQTAgLyogcGFzX21l
Z2FwYWdlX2NhY2hlLmggKi8sCiAJCQkJMEZDNDBBN0UyNDUxNDk4QjAwODc2REEwIC8qIHBhc19t
aW5faGVhcC5oICovLAorCQkJCTJDMDlEOEJFMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9j
YXBhYmlsaXR5LmggKi8sCiAJCQkJMEZDNDBBOEYyNDUxNDk4QzAwODc2REEwIC8qIHBhc19tb25v
dG9uaWNfdGltZS5jICovLAogCQkJCTBGQzQwQTcxMjQ1MTQ5OEEwMDg3NkRBMCAvKiBwYXNfbW9u
b3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRkM0MEFEMjI0NTE0OTkxMDA4NzZEQTAgLyogcGFzX211
dGF0aW9uX2NvdW50LmggKi8sCkBAIC0xODgwLDYgKzE5MDMsNyBAQAogCQkJCTBGQzQwQUI5MjQ1
MTQ5OEYwMDg3NkRBMCAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZDNDBBOTUyNDUxNDk4RDAw
ODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNDBBM0YyNDUxNDk4NzAw
ODc2REEwIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCisJCQkJMkMwOUQ4QkYyNzk3QzZFQTAw
NUFBMTVDIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggKi8sCiAJCQkJ
MEY3QzkyRDgyNkU1N0Y3NTAwNkFGMDEyIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfa2luZC5oICovLAogCQkJCTBGOEU4MzI3MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgKi8sCiAJCQkJMEY4RTgzMjgyNDkyRUFGMzAw
NDZEN0Y4IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLywKQEAgLTIy
MTMsNiArMjIzNyw3IEBACiAJCQkJRTMyOEQ4NEQyM0NFQjM4OTAwNTQ1QjE4IC8qIFBhY2tlZC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOEY4NEMyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXpl
NjRrX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMThGODQ4MjVDMzQ2NzcwMDcyMUMyQSAv
KiBwYWdlc2l6ZTY0a19oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4Qzgy
Nzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NUEyNDUxNDk0NDAwODc2REEwIC8qIHBh
c19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDk1
QjI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdG9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MDk2MDI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWdubWVudC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yMjYzLDYgKzIyODgsNyBAQAogCQkJCTBGQzQwOUU4MjQ1MTQ5NjQwMDg3
NkRBMCAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5RDAyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jYXJlc19hYm91dF9zaXplX21v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTE2MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Y2FydGVzaWFuX3RyZWUuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDMDlEOEMxMjc5N0M2RUEwMDVB
QTE1QyAvKiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkM0MEEwRDI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvYWxpZ24uaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwQTBBMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29tbWl0X21vZGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGODdGRkRBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3Nw
YW4uaCBpbiBIZWFkZXJzICovLApAQCAtMjMxMyw2ICsyMzM5LDcgQEAKIAkJCQkwRkM0MDlGRTI0
NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbmZpZ19wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwOUM1MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9j
YWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUYx
MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkMwOUQ4QzUyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjVGRTdFRjI1QjYyMTBEMDAxODU5RkMgLyogcGFzX2RlYWxsb2Nh
dGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGOTI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2RlYWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEQjI0NTE0OTY0
MDA4NzZEQTAgLyogcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yMzUzLDYgKzIzODAsNyBAQAogCQkJCTBGQzQwQjhGMjQ1MTQ5OTQwMDg3NkRBMCAv
KiBwYXNfZm91bmRfaW5kZXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDM4MjVBRjg5Qzkw
MDBFMUFCRiAvKiBwYXNfZnJlZV9ncmFudWxlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBC
ODMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mcmVlX21vZGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJDMDlEOEM2Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MEIxMzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ZyZWVfcmFuZ2Vf
a2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCQTYyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19mdWxsX2FsbG9jX2JpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjI0MjQ1MTQ5OTQw
MDg3NkRBMCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLApA
QCAtMjQyNywxMiArMjQ1NSwxNCBAQAogCQkJCTBGODcwMDdEMjVBRjhBMUIwMDBFMUFCRiAvKiBw
YXNfcGFnZV9iYXNlX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwN0IyNUFGOEEx
QjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX2lubGluZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGODcwMDZBMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ191
dGlscy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4QzIyNzk3QzZFQTAwNUFBMTVDIC8qIHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3
MDA3MzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHNfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNkQyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19w
YWdlX2Jhc2VfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNjcyNUFGOEExQjAw
MEUxQUJGIC8qIHBhc19wYWdlX2NvbmZpZ19raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3
MDA3RjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfZ3JhbnVsZV91c2VfY291bnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGODcwMDY2MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFk
ZXJfcGxhY2VtZW50X21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDZDMjVBRjhBMUIw
MDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTJD
MDlEOEM3Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9l
bnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzcyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYWdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkQwMjQ1MTQ5OTQwMDg3NkRB
MCAvKiBwYXNfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDc4MjVBRjhB
MUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9zaGFyaW5nX21vZGUuaCBpbiBIZWFkZXJzICovLApAQCAt
MjUwNyw2ICsyNTM3LDcgQEAKIAkJCQkwRkNDRDE0NTI2NTYwMTg2MDAxNzFBMUYgLyogcGFzX3No
YXJlZF9wYWdlX2RpcmVjdG9yeV9ieV9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJE
NzI0NTE0OUFFMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRl
ZiBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkQ4MjQ1MTQ5QUUwMDg3NkRBMCAvKiBwYXNfc2lt
cGxlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhD
MzI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGQzQwQjFEMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2ZyZWVf
aGVhcF9oZWxwZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEI3NjI0NTE0OTk0MDA4NzZE
QTAgLyogcGFzX3NpbXBsZV9sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwQjA1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX3R5cGUuaCBpbiBIZWFkZXJzICov
LApAQCAtMjc4NCw2ICsyODE1LDcgQEAKIAkJCQkwRjg3MDA3RTI1QUY4QTFCMDAwRTFBQkYgLyog
cGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI2NTI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2VfbWFsbG9jLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0
MEIxMjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5jIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkMwOUQ4QzQyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI4QTI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX3BhZ2Vfc2hhcmluZ19wb29sLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjg3
MDA2OTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BheWxvYWRfcmVzZXJ2YXRpb25fcGFnZV9saXN0
LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkM0MEI0OTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3Bo
eXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvbGlicGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFzLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU2Miw2ICs1NjIsMTEg
QEAKIAkJMkMzNEZGRkQyNzU3MUQyRjAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29u
ZmlnX2tpbmRfYW5kX3JvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJDMzRGRkY4Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19raW5kX2FuZF9yb2xlLmggKi87IH07CiAJCTJDMzRGRkZFMjc1NzFEMkYwMDU1NjVD
QiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMzRGRkY5Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX3JvbGUuaCAqLzsgfTsKIAkJMkMzRDBGQzcyNzJCOTI0MTAwNUM1QTAyIC8q
IEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDM0QwRkM2MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVm
QWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgKi87IH07CisJCTJDNDczMTUyMjc3QTU0MEYwMEI2MkM0
OSAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQzQ3MzE0RjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBfY2Fw
YWJpbGl0eS5oICovOyB9OworCQkyQzQ3MzE1MzI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDNDczMTUwMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2Vfdmly
dHVhbF9yYW5nZV9taW5faGVhcC5oICovOyB9OworCQkyQzQ3MzE1NDI3N0E1NDBGMDBCNjJDNDkg
LyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDczMTUxMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZS5oICovOyB9OworCQkyQzQ3MzE2MjI3N0Q0QzlFMDBCNjJDNDkgLyogVExD
RGVjb21taXRUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQzQ3MzE2MTI3N0Q0QzlFMDBCNjJDNDkgLyogVExDRGVjb21taXRUZXN0cy5jcHAg
Ki87IH07CisJCTJDNDczMTZBMjc3RDRFQTgwMEI2MkM0OSAvKiBwYXNfY29tbWl0dGVkX3BhZ2Vz
X3ZlY3Rvci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkM0NzMxNjQyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMg
Ki87IH07CiAJCTJDNDgxMzI2MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJs
ZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDNDgxMzIwMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnku
YyAqLzsgfTsKIAkJMkM0ODEzMjcyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVu
ZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyQzQ4MTMyMTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9t
ZW1vcnkuYyAqLzsgfTsKIAkJMkM0ODEzMjgyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRh
YmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkM0ODEzMjIyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5jICov
OyB9OwpAQCAtNTY5LDEzICs1NzQsMTQgQEAKIAkJMkM0ODEzMkEyNzNGMzQxQTAwNkNBQjU1IC8q
IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjQyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJn
ZV9leHBlbmRhYmxlX21lbW9yeS5oICovOyB9OwogCQkyQzQ4MTMyQjI3M0YzNDFBMDA2Q0FCNTUg
LyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyNTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFi
bGVfbWVtb3J5LmggKi87IH07CiAJCTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRh
YmxlTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkM0ODEzMkMyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0
cy5jcHAgKi87IH07CisJCTJDNzM0QzkwMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRlc3Rz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNzM0
QzhGMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRlc3RzLmNwcCAqLzsgfTsKIAkJMkM4NURD
NDEyNzEyOEYwRjAwMzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzg1REM0MDI3MTI4RjBG
MDAzNjc5MDUgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLzsgfTsKIAkJMkM5MUU1
NTAyNzE4REE5QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzkxRTU0RjI3MThEQTlBMDBENjdG
RjkgLyogcGFzX3NpemVfbG9va3VwX21vZGUuaCAqLzsgfTsKLQkJMkM5NzFDRkEyNzhFMTFDMzAw
QzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUNGODI3OEUxMUMzMDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF9wdHIuaCAqLzsgfTsKLQkJMkM5NzFDRkIyNzhFMTFDMzAwQzlFMTI5
IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyog
cGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLzsgfTsKLQkJMkM5NzFDRkUyNzhF
MTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUNGQzI3OEUxMzYz
MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLzsgfTsKLQkJ
MkM5NzFDRkYyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcx
Q0ZEMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmgg
Ki87IH07Ci0JCTJDQjlCMTUzMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVh
ZHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNC
OUIxNTIyNzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi87IH07
CisJCTJDQjlCMTU4Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2ln
bmVkX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MkNCOUIxNTQyNzhGODVFRDAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRf
cHRyLmggKi87IH07CisJCTJDQjlCMTU5Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9j
b21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkNCOUIxNTUyNzhGODVFRDAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmgg
Ki87IH07CisJCTJDQjlCMTVBMjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkNCOUIxNTYyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5z
aWduZWRfcHRyLmMgKi87IH07CisJCTJDQjlCMTVCMjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQ0I5QjE1NzI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRf
Y29tcGFjdF9wdHJfaW5saW5lcy5oICovOyB9OworCQkyQ0I5QjE1RDI3OEY4NjFCMDAzQThDMUIg
LyogTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlCMTVDMjc4Rjg2MUIwMDNBOEMxQiAvKiBMb3RzT2ZIZWFw
c0FuZFRocmVhZHMuY3BwICovOyB9OwogCQkyQ0UyQUUzNTI3NUE5NTNFMDBEMDJCQkMgLyogQml0
Zml0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkNFMkFFMzQyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCAqLzsgfTsKIC8q
IEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCkBAIC0xMjU1LDYgKzEyNjEsMTYgQEAKIAkJ
MkMzNEZGRjkyNzU3MUQyRjAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzNEZGRkYyNzU4MTVEMDAwNTU2NUNC
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9h
bmRfcm9sZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzNEMEZDNjI3MkI5MjQx
MDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE0RjI3N0E1NDBGMDBCNjJDNDkgLyog
cGFzX21tYXBfY2FwYWJpbGl0eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBw
YXNfbW1hcF9jYXBhYmlsaXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDcz
MTUwMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5n
ZV9taW5faGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE1MTI3N0E1
NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNjEyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0RlY29tbWl0
VGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVExDRGVjb21t
aXRUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTYzMjc3RDRD
Q0MwMEI2MkM0OSAvKiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNjQyNzdENENDQzAwQjYyQzQ5IC8qIHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0
aCA9IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJDNDczMTY1Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3Zl
Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE2NjI3N0Q0
Q0NDMDBCNjJDNDkgLyogcGFzX3BsYXRmb3JtLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IHBhc19wbGF0Zm9ybS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3
MzE2NzI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50
cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMx
NjgyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfY29tcGFjdF90
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMkM0ODEzMjAyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21l
bW9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbGFyZ2VfZXhwZW5k
YWJsZV9tZW1vcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzMjEyNzNG
MzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzIyMjczRjM0MUEwMDZDQUI1NSAv
KiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMjYyLDEzICsxMjc4LDE0IEBACiAJCTJDNDgxMzI0MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJDNDgxMzI1MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzJDMjczRjQxNTkwMDZDQUI1
NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMkM3MzRDOEYyNzc2ODBFRjAwMTdCRkZFIC8qIE1lbWFsaWduVGVzdHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVtYWxpZ25UZXN0cy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDODVEQzQwMjcxMjhGMEYwMDM2NzkwNSAv
KiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyQzkxRTU0RjI3MThEQTlBMDBENjdGRjkgLyogcGFzX3NpemVfbG9va3VwX21v
ZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NpemVfbG9va3VwX21v
ZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkM5NzFDRjgyNzhFMTFDMzAwQzlF
MTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJDOTcxQ0Y5Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQkyQzk3MUNGQzI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25l
ZF9wdHIuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xlbmllbnRfY29t
cGFjdF91bnNpZ25lZF9wdHIuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkM5NzFD
RkQyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFjdF9wdHJf
aW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyQ0I5QjE1MjI3OEY2Qzg1
MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTU0Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVu
dF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyQ0I5QjE1NTI3OEY4NUVEMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFj
dF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmllbnRfY29t
cGFjdF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCOUIxNTYyNzhGODVF
RTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRy
LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTU3Mjc4Rjg1RUUwMDNBOEMx
QiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCOUIxNUMyNzhGODYxQjAwM0E4QzFCIC8qIExvdHNP
ZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0Zml0VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCkBAIC0x
MzgyLDcgKzEzOTksOCBAQAogCQkJCTBGRUI2NjY3MjMxQzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNo
YXJpbmdQb29sRHVtcC5oICovLAogCQkJCTBGRUI2NjY5MjMxREE4NkYwMDlDMDAxQiAvKiBMYXJn
ZVNoYXJpbmdQb29sVGVzdHMuY3BwICovLAogCQkJCTBGRUE0NUJFMjM2Q0RBRUQwMEI1QTM3NSAv
KiBMb2NrRnJlZVJlYWRQdHJQdHJIYXNodGFibGVUZXN0cy5jcHAgKi8sCi0JCQkJMkNCOUIxNTIy
NzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8sCisJCQkJMkNC
OUIxNUMyNzhGODYxQjAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8sCisJ
CQkJMkM3MzRDOEYyNzc2ODBFRjAwMTdCRkZFIC8qIE1lbWFsaWduVGVzdHMuY3BwICovLAogCQkJ
CTBGRDIyRDA3MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5IZWFwVGVzdHMuY3BwICovLAogCQkJCTJC
MkE1ODlCMjc0MkQ4MTUwMDVFRTA3QyAvKiBQR01UZXN0cy5jcHAgKi8sCiAJCQkJMEY1RTQ4Mzky
M0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VUZXN0cy5jcHAgKi8sCkBAIC0xMzkxLDYgKzE0MDksNyBA
QAogCQkJCTBGQzY4MUVCMjExMjdBMTYwMDNDNkExMyAvKiBUZXN0SGFybmVzcy5jcHAgKi8sCiAJ
CQkJMEZDNjgxRUEyMTBGRURCNTAwM0M2QTEzIC8qIFRlc3RIYXJuZXNzLmggKi8sCiAJCQkJMEY4
NzAwQjIyNUIwQUIyOTAwMEUxQUJGIC8qIFRoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRl
c3RzLmNwcCAqLywKKwkJCQkyQzQ3MzE2MTI3N0Q0QzlFMDBCNjJDNDkgLyogVExDRGVjb21taXRU
ZXN0cy5jcHAgKi8sCiAJCQkJMEY4NzAwREUyNUIxNEM2ODAwMEUxQUJGIC8qIFRTRFRlc3RzLmNw
cCAqLywKIAkJCQkwRjUzMTgxMjIyQzk2MDlEMDAzRjdCNkEgLyogVXRpbHNUZXN0cy5jcHAgKi8s
CiAJCQkpOwpAQCAtMTUwNyw2ICsxNTI2LDggQEAKIAkJCQkwRjE5MzI0QzIyRUQwNEE1MDBGQkE3
MTMgLyogcGFzX2NvbW1pdF9tb2RlLmggKi8sCiAJCQkJMEY5QTFDQTQyNTU5OTYxMjAwQzhEMTFC
IC8qIHBhc19jb21taXRfc3Bhbi5jICovLAogCQkJCTBGOUExQ0E4MjU1OTk2MTIwMEM4RDExQiAv
KiBwYXNfY29tbWl0X3NwYW4uaCAqLywKKwkJCQkyQzQ3MzE2NDI3N0Q0Q0NDMDBCNjJDNDkgLyog
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLywKKwkJCQkyQzQ3MzE2NTI3N0Q0Q0NDMDBC
NjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCAqLywKIAkJCQkwRjIxNTBFQzI0
ODRCQjg2MDAwRDYzNEIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2FsbG9jYXRvcl9pbmRleF9wdHIu
aCAqLywKIAkJCQkwRjlBMUQ0NjI1NUUyODQyMDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWlj
X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJCTBGOUExRDNBMjU1QTRCQTYwMEM4RDEx
QiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICov
LApAQCAtMTU1MSw2ICsxNTcyLDcgQEAKIAkJCQkwRjlBMUNEMzI1NTk5NjE2MDBDOEQxMUIgLyog
cGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmggKi8sCiAJCQkJ
MEY2RDU2NDQyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywK
IAkJCQkwRjZENTY3ODIzQ0Q3MDU5MDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2ln
bmVkX3B0ci5oICovLAorCQkJCTJDNDczMTY4Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLywKIAkJCQkwRjZENTY0RjIzQ0JE
MTlCMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEZDNEVD
MzUyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNr
cy5jICovLAogCQkJCTBGQzRFQzMwMjM0QTkxRTIwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1t
YXJ5X29iamVjdF9jYWxsYmFja3MuaCAqLywKQEAgLTE1NjYsNiArMTU4OCw3IEBACiAJCQkJMEYz
NzNFNTEyNjU5RUE1RTAwMzRCQTk2IC8qIHBhc19kZWJ1Z19oZWFwLmggKi8sCiAJCQkJMEZCQzYy
QzAyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5jICovLAogCQkJCTBGQkM2
MkMxMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uaCAqLywKKwkJCQkyQzQ3
MzE2MzI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oICov
LAogCQkJCTBGNzgwODk4MjJGQTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVjb21taXRf
bG9nLmMgKi8sCiAJCQkJMEY3ODA4OTkyMkZBNkYwODAwRjM3NDUxIC8qIHBhc19kZWZlcnJlZF9k
ZWNvbW1pdF9sb2cuaCAqLywKIAkJCQkwRjVCODNCRTI0OTE4OTlFMDBGNDEwNTIgLyogcGFzX2Rl
c2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5oICovLApAQCAtMTY5MywxMCArMTcxNiwx
MiBAQAogCQkJCTBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcyNiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19w
b29sLmggKi8sCiAJCQkJMEY2RDU0NzUyM0M1NzNFMDAwRjQwREJCIC8qIHBhc19sYXJnZV91dGls
aXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGNkQ1NDcyMjNDNTczRTAwMEY0MERCQiAvKiBwYXNf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKLQkJCQkyQzk3MUNGRDI3OEUxMzYzMDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovLAotCQkJCTJDOTcxQ0Y4
Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovLAotCQkJCTJD
OTcxQ0ZDMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0
ci5jICovLAotCQkJCTJDOTcxQ0Y5Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21w
YWN0X3Vuc2lnbmVkX3B0ci5oICovLAorCQkJCTJDNDczMTUwMjc3QTU0MEYwMEI2MkM0OSAvKiBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovLAorCQkJCTJDNDczMTUxMjc3QTU0
MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oICovLAorCQkJCTJDQjlCMTU3
Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8s
CisJCQkJMkNCOUIxNTUyNzhGODVFRDAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRy
LmggKi8sCisJCQkJMkNCOUIxNTYyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBh
Y3RfdW5zaWduZWRfcHRyLmMgKi8sCisJCQkJMkNCOUIxNTQyNzhGODVFRDAwM0E4QzFCIC8qIHBh
c19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi8sCiAJCQkJMEY4QTgwMjcyNUVDNTg4
ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmlnLmggKi8sCiAJCQkJMEYzMUE2NDMyM0Uz
NTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlvbi5oICovLAogCQkJCTBGRDQ4QjAyMjNB
OUFCQjAwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kLmggKi8sCkBA
IC0xNzIzLDYgKzE3NDgsNyBAQAogCQkJCTBGQzY4MjAwMjEyMTBCMTkwMDNDNkExMyAvKiBwYXNf
bWVnYXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkwRkM2ODFGRDIxMjEwQjE4MDAzQzZBMTMgLyogcGFz
X21lZ2FwYWdlX2NhY2hlLmggKi8sCiAJCQkJMEZEMjJDRkIyMkNBRjE2NDAwQjIxODQxIC8qIHBh
c19taW5faGVhcC5oICovLAorCQkJCTJDNDczMTRGMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbW1h
cF9jYXBhYmlsaXR5LmggKi8sCiAJCQkJMEZENDhCMTAyM0E5QUJCMTAwMjZDNDZEIC8qIHBhc19t
b25vdG9uaWNfdGltZS5jICovLAogCQkJCTBGRDQ4QUZEMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNf
bW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2OTIyQjA3QzIxMDA3RDVEM0EgLyogcGFz
X211dGF0aW9uX2NvdW50LmggKi8sCkBAIC0xNzU3LDYgKzE3ODMsNyBAQAogCQkJCTBGNkQ1NDcz
MjNDNTczRTAwMEY0MERCQiAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9z
dHlsZS5oICovLAogCQkJCTBGRjI0OEY3MjJGQzlFREEwMDc3MjAyRSAvKiBwYXNfcGh5c2ljYWxf
bWVtb3J5X3RyYW5zYWN0aW9uLmMgKi8sCiAJCQkJMEY3ODA4ODYyMkZBMkU0OTAwRjM3NDUxIC8q
IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCAqLywKKwkJCQkyQzQ3MzE2NjI3N0Q0
Q0NDMDBCNjJDNDkgLyogcGFzX3BsYXRmb3JtLmggKi8sCiAJCQkJMEZERUE1NzgyMjhFMjM0NTAw
ODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYuYyAqLywKIAkJCQkwRkRFQTU3NzIyOEUy
MzQ0MDA4NUUzNDAgLyogcGFzX3ByaW1pdGl2ZV9oZWFwX3JlZi5oICovLAogCQkJCTJCMkE1ODk4
Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxpc3RpY19ndWFyZF9tYWxsb2NfYWxsb2Nh
dG9yLmMgKi8sCkBAIC0xODYzLDYgKzE4OTAsNyBAQAogCQkJCTBGQzY4MjE5MjEyNTM2MjcwMDND
NkExMyAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZDNEVDMkUyMzRBOTFFMjAwQjcxMEEzIC8q
IHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZDNEVDMzMyMzRBOTFFMjAwQjcxMEEzIC8q
IHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCisJCQkJMkM0NzMxNjcyNzdENENDQzAwQjYyQzQ5IC8q
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggKi8sCiAJCQkJMEYxNDg3MUUy
NjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZC5oICovLAogCQkJCTBGQTVFNDUxMjQ5MkQ1QjkwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlLmMgKi8sCiAJCQkJMEZBNUU0NTMyNDkyRDVCOTAwQ0U5NjJBIC8q
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLywKQEAgLTIwMDMsNiArMjAz
MSw3IEBACiAJCQkJMEY4QTgxMDMyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZp
Zy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4QTgxMDYyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJp
dF9oZWFwX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEE4MTAyMjVGNkE3OTUwMDc5
MEI0QSAvKiBob3RiaXRfaGVhcF9pbm5hcmRzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0I5QjE1
OTI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRTdFRTc3MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZFN0VFNTYyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3QTQyNUI2MTRGMjAwMTg1OUZDIC8qIGlzb19oZWFw
X2lubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjA2Miw3ICsyMDkxLDYgQEAKIAkJCQkwRjlB
MUQ0MTI1NUFGMjc5MDBDOEQxMUIgLyogcGFzX2JpdGZpdF92aWV3X2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRTdFRTA0MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfYml0dmVjdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUwNTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2Jvb3Rz
dHJhcF9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTJDOTcxQ0ZCMjc4RTExQzMwMEM5
RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY1QjYwODQyMzVFNTcyMDAwQ0FFNjI5IC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdl
X3Byb3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUwODIyOTYwMTQyMDA0RjQxNjYg
LyogcGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMUE2
NjYyM0U4QTk0MjAwMkMwQ0EzIC8qIHBhc19jYXJ0ZXNpYW5fdHJlZS5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMTA2LDYgKzIxMzQsNyBAQAogCQkJCTBGNkQ1NjZEMjNDQkQxOUQwMEY0MERCQiAvKiBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEYxNDg3MTUyNjlCNzUxODAwNjg4N0E5IC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY2NTIzQ0JEMTlEMDBG
NDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF92aWV3LmggaW4gSGVhZGVycyAqLywKKwkJ
CQkyQzQ3MzE1MjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY2RDU2NEUyM0NBQkE2NTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Rh
Z2dlZF9hdG9taWNfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQxRTI1NTk5NjE3MDBD
OEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY0QjIzQ0FBMUJBMDBGNDBEQkIgLyogcGFzX2NvbXBh
Y3RfdGFnZ2VkX3B0ci5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTEzLDYgKzIxNDIsNyBAQAogCQkJ
CTBGNkQ1NjYyMjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQzRFQzM5MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0
ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTBB
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzQ3
MzE1MzI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGODVFRkRBMjJFMkJFQzcwMDNBMzYyQiAvKiBwYXNfY29u
ZmlnX3ByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMjlBMkIyM0YxRDYzNjAwQTEzM0M0
IC8qIHBhc19jcmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9y
eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFNjYyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19k
ZWFsbG9jYXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTIxMjgsNiArMjE1OCw3IEBACiAJCQkJMEZF
QTQ1QzIyMzZDRTg5RDAwQjVBMzc1IC8qIHBhc19keW5hbWljX3ByaW1pdGl2ZV9oZWFwX21hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzMjlBMkQyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1
cmVfaGVhcF9mb3JjZWRfaW50b19yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMzI5QTJFMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfd2l0aF9wYWdlX2Nh
Y2hlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM0NzMxNTQyNzdBNTQwRjAwQjYyQzQ5IC8qIHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjFCMTI1QTNE
MEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcGFnZV9tYWxsb2MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNEY2MUI1MjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9yYW5nZV9s
aXN0LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjE3ODI1OUQxMDY1MDA4QjRBODIgLyogcGFz
X2VudW1lcmF0ZV9iaXRmaXRfaGVhcHMuaCBpbiBIZWFkZXJzICovLApAQCAtMjE1OSw3ICsyMTkw
LDYgQEAKIAkJCQkwRkQ0OEI1ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCM0EyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19m
dWxsX2FsbG9jX2JpdHNfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGMDhGM0EyMkE1
QjQwMzAwMzg2NTc1IC8qIHBhc19nZW5lcmljX2xhcmdlX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMkM5NzFDRkEyNzhFMTFDMzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3Rf
cHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU2MDIyOUUxNEZBMDA0RjQxNjYgLyogcGFz
X2dldF9hbGxvY2F0aW9uX3NpemUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTY0MjI5RTE0
RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOUExRDRE
MjU1RjJDRDcwMEM4RDExQiAvKiBwYXNfZ2V0X29iamVjdF9raW5kLmggaW4gSGVhZGVycyAqLywK
QEAgLTIxOTEsNiArMjIyMSw3IEBACiAJCQkJMkM0ODEzMkEyNzNGMzQxQTAwNkNBQjU1IC8qIHBh
c19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMUUy
Mjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkU3RUUxQzIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovLAorCQkJCTJDQjlCMTU4Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVu
dF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2NkQ1NEIyNDg3
NjBBRjAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVjbGFyYXRpb25zLmRlZiBpbiBI
ZWFkZXJzICovLAogCQkJCTBGNzgwODkzMjJGQTUzNDEwMEYzNzQ1MSAvKiBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZENTRD
MjQ4NzYwQjQwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmluaXRpb25zLmRlZiBp
biBIZWFkZXJzICovLApAQCAtMjI2Nyw3ICsyMjk4LDYgQEAKIAkJCQkwRjRGNjBGQjI1OTc5QkM4
MDA4QjRBODIgLyogcGFzX3Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTkzMjZDMjJGNzNF
ODUwMEZCQTcxMyAvKiBwYXNfc2NhdmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY4MTI3
MjIyQkQ0QkY0MDAzNkEwMkIgLyogcGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICov
LAotCQkJCTJDOTcxQ0ZGMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0
cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE0ODcxMDI2OUI3NTE4MDA2ODg3QTkg
LyogcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGRDQ4QjU2MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9kaXJlY3RvcnlfYml0X3JlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjk4LDYg
KzIzMjgsNyBAQAogCQkJCTBGRDQ4QjU3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjYwMjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1RTVDRjIyM0JGQkZCOTAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3X2lubGluZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDQjlCMTVCMjc4Rjg1RUUwMDNB
OEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkQ0OEI2NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzIxMjY5RjVGQ0EwMDY4ODdBOSAvKiBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkQ0OEI1NDIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnlfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjA4LDE0ICsyNjM5LDE2IEBA
CiAJCQkJMEZDNjgyMzgyMTI5RDRFRTAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyQzQ4MTMyRDI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9y
eVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzY4MjMxMjEyOUNCNDYwMDNDNkExMyAv
KiBFeHRlbmRlZEdDRFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjlCMTVEMjc4Rjg2
MUIwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNjgyMTUyMTI0OEE3OTAwM0M2QTEzIC8qIEhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTJDM0QwRkM3MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9y
SW5kZXhUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEz
NzUgLyogSXNvRHluYW1pY1ByaW1pdGl2ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkExODU0NjIzNkIzQzgyMDAzNjA5QUQgLyogSXNvSGVhcENoYW9zVGVzdHMuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZGMjQ4RkQyMzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hh
cmluZ1Rlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDNzM0QzkwMjc3NjgwRUYwMDE3QkZG
RSAvKiBNZW1hbGlnblRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjY3MjNCNTg5
OTEwMDI2QzQ2RCAvKiBJc29IZWFwUGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCi0JCQkJMkNCOUIxNTMyNzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhy
ZWFkcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjVCNjA5NDIzNUU5MTk5MDBDQUU2MjkgLyog
SXNvSGVhcFJlc2VydmVkTWVtb3J5VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkM0NzMx
NjIyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0RlY29tbWl0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJMkNFMkFFMzUyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGNTE5M0U3MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJl
ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKQEAgLTI2NDQsNiArMjY3Nyw3IEBACiAJCQkJ
MEY4QTgxMDEyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2NvbmZpZy5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFN0VFNzYyMjlGMDEwRjAwNEY0MTY2IC8qIGlzb19oZWFwLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRkU3RUU1NzIyOTc0MzM1MDA0RjQxNjYgLyogaXNvX2hlYXBfY29uZmln
LmMgaW4gU291cmNlcyAqLywKKwkJCQkyQzQ3MzE2QTI3N0Q0RUE4MDBCNjJDNDkgLyogcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3IuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNUU1Q0YwMjNCRUY1
NTMwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjVFNUNF
QzIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGNTlBMzlFMjY2ODQ3MEUwMEEzODY1NyAvKiBqaXRfaGVhcC5jIGluIFNvdXJjZXMg
Ki8sCkBAIC0yNjk3LDcgKzI3MzEsNiBAQAogCQkJCTBGNEY2MTFCMjU5ODM4QjEwMDhCNEE4MiAv
KiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyBpbiBTb3VyY2VzICovLAogCQkJCTBGMTkzMjU2MjJF
RDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjM0
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3ZpZXdfdGVtcGxhdGVfbWVtb190YWJs
ZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMkM5NzFDRkUyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19s
ZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4gU291cmNlcyAqLywKIAkJCQkyQzQ4MTMy
ODI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRkU3RURCQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2V4dGVuZGVkX2djZC5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZGMDhGNDMyMkE2MjdDMTAwMzg2NTc1IC8qIHBhc19mYXN0X2xh
cmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNzU3LDYgKzI3OTAsNyBAQAogCQkJ
CTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZy5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNUUyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdy
ZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjRDMjNB
OUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYyBpbiBTb3VyY2Vz
ICovLAorCQkJCTJDQjlCMTVBMjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNDgyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTBGRDQ4QjJFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTJDMzQwMDAyMjc1ODE2ODcwMDU1NjVDQiAv
KiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYwkocmV2aXNpb24gMjg4
MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAy
MDE5LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAicGFzX2RlYWxsb2Nh
dGUuaCIKICNpbmNsdWRlICJwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVt
b3J5LmgiCiAjaW5jbHVkZSAicGFzX2dldF9hbGxvY2F0aW9uX3NpemUuaCIKKyNpbmNsdWRlICJw
YXNfZ2V0X2hlYXAuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC0yNzEsNiArMjcyLDEy
IEBAIHZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZV9mbGV4KHBhc19wcmltaXQKICAgICByZXR1cm4g
Ym1hbGxvY19yZWFsbG9jYXRlX2ZsZXhfaW5saW5lKGhlYXBfcmVmLCBvbGRfcHRyLCBuZXdfc2l6
ZSk7CiB9CiAKK3Bhc19oZWFwKiBibWFsbG9jX2ZsZXhfaGVhcF9yZWZfZ2V0X2hlYXAocGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYpCit7CisgICAgcmV0dXJuIHBhc19lbnN1cmVfaGVh
cCgmaGVhcF9yZWYtPmJhc2UsIHBhc19wcmltaXRpdmVfaGVhcF9yZWZfa2luZCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICZibWFsbG9jX2hlYXBfY29uZmlnLCAmYm1hbGxvY19mbGV4X3J1
bnRpbWVfY29uZmlnLmJhc2UpOworfQorCiBQQVNfTkVWRVJfSU5MSU5FIHZvaWQqIGJtYWxsb2Nf
dHJ5X2FsbG9jYXRlX2F1eGlsaWFyeV93aXRoX2FsaWdubWVudF9jYXN1YWwoCiAgICAgcGFzX3By
aW1pdGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYsIHNpemVfdCBzaXplLCBzaXplX3QgYWxpZ25tZW50
KQogewpAQCAtMzM3LDYgKzM0NCwxMiBAQCB2b2lkKiBibWFsbG9jX3JlYWxsb2NhdGVfYXV4aWxp
YXJ5KHZvaWQqCiAgICAgcmV0dXJuIGJtYWxsb2NfcmVhbGxvY2F0ZV9hdXhpbGlhcnlfaW5saW5l
KG9sZF9wdHIsIGhlYXBfcmVmLCBuZXdfc2l6ZSwgZnJlZV9tb2RlKTsKIH0KIAorcGFzX2hlYXAq
IGJtYWxsb2NfYXV4aWxpYXJ5X2hlYXBfcmVmX2dldF9oZWFwKHBhc19wcmltaXRpdmVfaGVhcF9y
ZWYqIGhlYXBfcmVmKQoreworICAgIHJldHVybiBwYXNfZW5zdXJlX2hlYXAoJmhlYXBfcmVmLT5i
YXNlLCBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmX2tpbmQsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAmYm1hbGxvY19oZWFwX2NvbmZpZywgJmJtYWxsb2NfcHJpbWl0aXZlX3J1bnRpbWVfY29u
ZmlnLmJhc2UpOworfQorCiB2b2lkIGJtYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBwdHIpCiB7CiAg
ICAgYm1hbGxvY19kZWFsbG9jYXRlX2lubGluZShwdHIpOwpAQCAtMzYxLDYgKzM3NCwxMSBAQCBz
aXplX3QgYm1hbGxvY19nZXRfYWxsb2NhdGlvbl9zaXplKHZvaWQqCiAgICAgcmV0dXJuIHBhc19n
ZXRfYWxsb2NhdGlvbl9zaXplKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJRyk7CiB9CiAKK3Bhc19o
ZWFwKiBibWFsbG9jX2dldF9oZWFwKHZvaWQqIHB0cikKK3sKKyAgICByZXR1cm4gcGFzX2dldF9o
ZWFwKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJRyk7Cit9CisKIFBBU19FTkRfRVhURVJOX0M7CiAK
ICNlbmRpZiAvKiBQQVNfRU5BQkxFX0JNQUxMT0MgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcC5oCShyZXZpc2lvbiAyODgxNzkpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC05Niw2ICs5Niw4IEBAIFBBU19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9mbGV4
X3dpdGgKIFBBU19CQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X3JlYWxsb2NhdGVfZmxleChwYXNfcHJp
bWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwgdm9pZCogb2xkX3B0ciwgc2l6ZV90IG5ld19zaXpl
KTsKIFBBU19CQVBJIHZvaWQqIGJtYWxsb2NfcmVhbGxvY2F0ZV9mbGV4KHBhc19wcmltaXRpdmVf
aGVhcF9yZWYqIGhlYXBfcmVmLCB2b2lkKiBvbGRfcHRyLCBzaXplX3QgbmV3X3NpemUpOwogCitQ
QVNfQVBJIHBhc19oZWFwKiBibWFsbG9jX2ZsZXhfaGVhcF9yZWZfZ2V0X2hlYXAocGFzX3ByaW1p
dGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYpOworCiBQQVNfQVBJIHZvaWQqIGJtYWxsb2NfdHJ5X2Fs
bG9jYXRlX2F1eGlsaWFyeShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3JlZiwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplKTsKIFBB
U19BUEkgdm9pZCogYm1hbGxvY19hbGxvY2F0ZV9hdXhpbGlhcnkocGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZiogaGVhcF9yZWYsCkBAIC0xMjIsNiArMTI0LDggQEAgUEFTX0FQSSB2b2lkKiBibWFsbG9j
X3JlYWxsb2NhdGVfYXV4aWxpYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBuZXdfc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfcmVhbGxvY2F0ZV9mcmVlX21vZGUgZnJlZV9tb2RlKTsKIAorUEFTX0FQ
SSBwYXNfaGVhcCogYm1hbGxvY19hdXhpbGlhcnlfaGVhcF9yZWZfZ2V0X2hlYXAocGFzX3ByaW1p
dGl2ZV9oZWFwX3JlZiogaGVhcF9yZWYpOworCiBQQVNfQVBJIHZvaWQgYm1hbGxvY19kZWFsbG9j
YXRlKHZvaWQqKTsKIAogUEFTX0FQSSBwYXNfaGVhcCogYm1hbGxvY19mb3JjZV9hdXhpbGlhcnlf
aGVhcF9pbnRvX3Jlc2VydmVkX21lbW9yeShwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwX3Jl
ZiwKQEAgLTEyOSw2ICsxMzMsNyBAQCBQQVNfQVBJIHBhc19oZWFwKiBibWFsbG9jX2ZvcmNlX2F1
eGlsaWFyCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmQpOwogCiBQQVNfQkFQSSBzaXplX3QgYm1h
bGxvY19oZWFwX3JlZl9nZXRfdHlwZV9zaXplKHBhc19oZWFwX3JlZiogaGVhcF9yZWYpOworUEFT
X0FQSSBwYXNfaGVhcCogYm1hbGxvY19nZXRfaGVhcCh2b2lkKiBwdHIpOwogUEFTX0JBUEkgc2l6
ZV90IGJtYWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZSh2b2lkKiBwdHIpOwogCiBQQVNfRU5EX0VY
VEVSTl9DOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19o
ZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw4IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICNkZWZpbmUgQk1BTExP
Q19NSU5BTElHTl9TSElGVCAoKHNpemVfdCk0KQogI2RlZmluZSBCTUFMTE9DX01JTkFMSUdOX1NJ
WkUgKChzaXplX3QpMSA8PCBCTUFMTE9DX01JTkFMSUdOX1NISUZUKQogCisjZGVmaW5lIEJNQUxM
T0NfU01BTExfU0hBUklOR19TSElGVCA0CisKIFBBU19BUEkgdm9pZCBibWFsbG9jX2hlYXBfY29u
ZmlnX2FjdGl2YXRlKHZvaWQpOwogCiAjZGVmaW5lIEJNQUxMT0NfSEVBUF9DT05GSUcgUEFTX0JB
U0lDX0hFQVBfQ09ORklHKCBcCkBAIC00OCw3ICs1MCw3IEBAIFBBU19BUEkgdm9pZCBibWFsbG9j
X2hlYXBfY29uZmlnX2FjdGl2YXQKICAgICAuZHVtcF90eXBlID0gYm1hbGxvY190eXBlX2FzX2hl
YXBfdHlwZV9kdW1wLCBcCiAgICAgLmNoZWNrX2RlYWxsb2NhdGlvbiA9IGZhbHNlLCBcCiAgICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0ID0gQk1BTExPQ19NSU5BTElHTl9TSElG
VCwgXAotICAgIC5zbWFsbF9zZWdyZWdhdGVkX3NoYXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hB
UklOR19TSElGVCwgXAorICAgIC5zbWFsbF9zZWdyZWdhdGVkX3NoYXJpbmdfc2hpZnQgPSBCTUFM
TE9DX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9wYWdlX3Np
emUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUsIFwKICAgICAuc21hbGxfc2VncmVnYXRl
ZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9QQUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNt
YWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2xvZ2dpbmdfbW9kZSA9IHBhc19zZWdyZWdhdGVkX2Rl
YWxsb2NhdGlvbl9zaXplX29ibGl2aW91c19sb2dnaW5nX21vZGUsIFwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jCShyZXZp
c2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVh
cF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMjIzLDcgKzIyMyw3IEBAIHBhc19hbGlnbmVk
X2FsbG9jYXRpb25fcmVzdWx0IGppdF9hbGlnbmUKICAgICBhbGlnbmVkX3NpemUgPSBwYXNfcm91
bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1lbnQuYWxpZ25tZW50KTsKIAogICAgIGFs
bG9jYXRpb25fcmVzdWx0ID0gcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2Nh
Y2hlX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgKLSAgICAgICAgJmppdF9sYXJnZV9mcmVz
aF9tZW1vcnlfaGVhcCwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIGZhbHNlKTsKKyAgICAgICAg
JmppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcCwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIGNv
bmZpZywgZmFsc2UpOwogICAgIGlmICghYWxsb2NhdGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMTczLDYgKzE3Myw3IEBAIFBBU19IRUFQX0NPTkZJR19TUEVDSUFMSVpBVElP
Tl9ERUNMQVJBVEkKICAgICAgICAgLmFsaWduZWRfYWxsb2NhdG9yID0gaml0X2FsaWduZWRfYWxs
b2NhdG9yLCBcCiAgICAgICAgIC5hbGlnbmVkX2FsbG9jYXRvcl90YWxrc190b19zaGFyaW5nX3Bv
b2wgPSB0cnVlLCBcCiAgICAgICAgIC5kZWFsbG9jYXRvciA9IE5VTEwsIFwKKyAgICAgICAgLm1t
YXBfY2FwYWJpbGl0eSA9IHBhc19tYXlfbm90X21tYXAsIFwKICAgICAgICAgLnJvb3RfZGF0YSA9
ICZqaXRfcm9vdF9kYXRhLCBcCiAgICAgICAgIC5wcmVwYXJlX3RvX2VudW1lcmF0ZSA9IGppdF9w
cmVwYXJlX3RvX2VudW1lcmF0ZSwgXAogICAgICAgICAuZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5ID0gaml0X2hlYXBfY29uZmlnX2Zvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9yeSwg
XApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFw
X2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MSw2ICs0MSw4IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICNkZWZpbmUgTUlO
QUxJR04zMl9NSU5BTElHTl9TSElGVCAoKHNpemVfdCk1KQogI2RlZmluZSBNSU5BTElHTjMyX01J
TkFMSUdOX1NJWkUgKChzaXplX3QpMSA8PCBNSU5BTElHTjMyX01JTkFMSUdOX1NISUZUKQogCisj
ZGVmaW5lIE1JTkFMSUdOMzJfU01BTExfU0hBUklOR19TSElGVCAzCisKIFBBU19BUEkgdm9pZCBt
aW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGl2YXRlKHZvaWQpOwogCiAjZGVmaW5lIE1JTkFMSUdO
MzJfSEVBUF9DT05GSUcgUEFTX0JBU0lDX0hFQVBfQ09ORklHKCBcCkBAIC01MSwxMyArNTMsMTMg
QEAgUEFTX0FQSSB2b2lkIG1pbmFsaWduMzJfaGVhcF9jb25maWdfYWN0aQogICAgIC5kdW1wX3R5
cGUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBlX2R1bXAsIFwKICAgICAuY2hlY2tfZGVh
bGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF9taW5fYWxpZ25fc2hp
ZnQgPSBNSU5BTElHTjMyX01JTkFMSUdOX1NISUZULCBcCi0gICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
c2hhcmluZ19zaGlmdCA9IFBBU19TTUFMTF9TSEFSSU5HX1NISUZULCBcCisgICAgLnNtYWxsX3Nl
Z3JlZ2F0ZWRfc2hhcmluZ19zaGlmdCA9IE1JTkFMSUdOMzJfU01BTExfU0hBUklOR19TSElGVCwg
XAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFV
TFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdlX2hhbmRpY2FwID0gUEFT
X1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRf
bG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3NpemVfb2JsaXZpb3Vz
X2xvZ2dpbmdfbW9kZSwgXAogICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRlZF9sb2dnaW5nX21v
ZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19t
b2RlLCBcCiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3Jk
X2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUsIFwKLSAgICAuc21hbGxfc2hhcmVkX3Nl
Z3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1
ZSwgXAorICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9lbGln
aWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3Vz
ZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSB0cnVlLCBcCiAgICAgLmVuYWJsZV92aWV3X2NhY2hl
ID0gdHJ1ZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0ID0gdHJ1ZSwgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9j
YXRvci5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiwx
OCBAQAogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9tZW1v
cnlfdHJhbnNhY3Rpb24uaCIKIAordm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb25zdHJ1Y3Qo
cGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzcykKK3sKKyAgICBh
bGxvY2F0b3ItPnNpemVfY2xhc3MgPSBzaXplX2NsYXNzOworICAgIGFsbG9jYXRvci0+dmlldyA9
IE5VTEw7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9hbGxvY2F0b3Jfc3RvcChwYXNfYml0Zml0X2Fs
bG9jYXRvciogYWxsb2NhdG9yKQoreworICAgIGFsbG9jYXRvci0+dmlldyA9IE5VTEw7Cit9CisK
IGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGFzX2JpdGZpdF92aWV3KiB2
aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3Bh
Z2VfY29uZmlnKiBjb25maWcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2NrX2hvbGRfbW9kZSBjb21taXRfbG9ja19ob2xkX21vZGUpCkBAIC0xNzcsNyArMTg5
LDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYQogICAgICAgICBQ
QVNfQVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CiAKICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2Nv
bW1pdCgKLSAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdl
X3NpemUpOworICAgICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBh
Z2Vfc2l6ZSwgY29uZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsK
ICAgICAgICAgY29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKICAgICAgICAgICAgIHZp
ZXctPnBhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICBwYXNfcGFnZV9raW5kX2Zvcl9iaXRmaXRf
dmFyaWFudChjb25maWctPnZhcmlhbnQpLApAQCAtMjE4LDYgKzIzMCw3IEBAIHBhc19iaXRmaXRf
dmlldyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3Mq
IHNpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF92aWV3KiBuZXdfdmlldzsKICAgICB1bnNpZ25l
ZCB2aWV3X2luZGV4OworICAgIHBhc19iaXRmaXRfdmlldyogYWxsb2NhdG9yX3ZpZXc7CiAKICAg
ICBQQVNfVU5VU0VEX1BBUkFNKGFsaWdubWVudCk7CiAKQEAgLTI0MSw3ICsyNTQsOCBAQCBwYXNf
Yml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgCiAgICAgICAgTk9URTog
VGhlcmUgYXJlIHNvbWUgYXNwZWN0cyBvZiB0aGlzIHRoYXQgd2UgY291bGQgZG8gZXZlbiBpZiB0
aGUgdmlldyB3YXMgZGlzcGxhY2VkLiBMaWtlLAogICAgICAgIHdlIGNvdWxkIHVwZGF0ZSB0aGUg
bWF4X2ZyZWUuICovCi0gICAgaWYgKHZpZXcgPT0gYWxsb2NhdG9yLT52aWV3ICYmIGxhcmdlc3Rf
YXZhaWxhYmxlIDwgc2l6ZV9jbGFzcy0+c2l6ZSkgeworICAgIGFsbG9jYXRvcl92aWV3ID0gYWxs
b2NhdG9yLT52aWV3OworICAgIGlmICgodmlldyA9PSBhbGxvY2F0b3JfdmlldyB8fCAhYWxsb2Nh
dG9yX3ZpZXcpICYmIGxhcmdlc3RfYXZhaWxhYmxlIDwgc2l6ZV9jbGFzcy0+c2l6ZSkgewogICAg
ICAgICB1bnNpZ25lZCBpbmRleDsKICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBjdXJy
ZW50X3NpemVfY2xhc3M7CiAgICAgICAgIHBhc192ZXJzaW9uZWRfZmllbGQgZmlyc3RfZnJlZV92
YWx1ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgc3RydWN0IHBhc19iaXRmaXRfYWxsb2NhdG9yIHsKICAg
ICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CiB9OwogCitQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9h
bGxvY2F0b3JfY29uc3RydWN0KHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfc2l6ZV9j
bGFzcyogc2l6ZV9jbGFzcyk7CisKK1BBU19BUEkgdm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9z
dG9wKHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IpOworCiBQQVNfRU5EX0VYVEVSTl9D
OwogCiAjZW5kaWYgLyogUEFTX0JJVEZJVF9BTExPQ0FUT1JfSCAqLwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpbmlzaF9mYWls
aW5nKHBhc18KIAogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHBhc19mYXN0X3BhdGhfYWxsb2Nh
dGlvbl9yZXN1bHQKIHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfYml0Zml0
X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsX2FsbG9jYXRvciwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmlnKQpAQCAtODAsNyArODEsMTggQEAgcGFz
X2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19iaQogICAgICAgICBzaXplX3QgYnl0
ZXNfY29tbWl0dGVkOwogICAgICAgICAKICAgICAgICAgaWYgKFBBU19VTkxJS0VMWSghdmlldykp
IHsKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOworICAgICAgICAg
ICAgCisgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+dmlldyk7CisK
KyAgICAgICAgICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Cisg
ICAgICAgICAgICBpZiAoY2FjaGUpIHsKKyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9uZWNlc3NhcnkoCisgICAgICAgICAgICAg
ICAgICAgIGNhY2hlLCBsb2NhbF9hbGxvY2F0b3IsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKyAg
ICAgICAgICAgIH0KKwogICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3It
PnZpZXcpOworICAgICAgICAgICAgCiAgICAgICAgICAgICB2aWV3ID0gcGFzX2JpdGZpdF9zaXpl
X2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcoCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yLT5z
aXplX2NsYXNzLCAocGFzX2JpdGZpdF9wYWdlX2NvbmZpZyopY29uZmlnLmJhc2UucGFnZV9jb25m
aWdfcHRyKTsKICAgICAgICAgICAgIGlmICghdmlldykKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwkocmV2
aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtNTE3LDcgKzUxNyw4IEBAIHBhc19w
YWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNfYmkKIAogICAgICAgICAgICAgcGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZ19hZGRfYWxyZWFkeV9sb2NrZWQoCiAgICAgICAgICAgICAgICAg
ZGVjb21taXRfbG9nLAotICAgICAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShi
YXNlLCBiYXNlICsgcGFnZV9jb25maWctPmJhc2UucGFnZV9zaXplLCBjb21taXRfbG9jayksCisg
ICAgICAgICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKGJhc2UsIGJhc2UgKyBwYWdl
X2NvbmZpZy0+YmFzZS5wYWdlX3NpemUsIGNvbW1pdF9sb2NrLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy0+YmFzZS5oZWFwX2NvbmZpZ19wdHIt
Pm1tYXBfY2FwYWJpbGl0eSksCiAgICAgICAgICAgICAgICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7
CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCShyZXZpc2lvbiAy
ODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTQxLDE1ICs0MSwxOCBAQCBzdHJ1Y3QgcGFz
X2JpdGZpdF9hbGxvY2F0b3I7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlOwogc3RydWN0IHBhc19i
aXRmaXRfcGFnZV9jb25maWc7CiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWc7CitzdHJ1
Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfYWxsb2Nh
dG9yIHBhc19iaXRmaXRfYWxsb2NhdG9yOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdl
IHBhc19iaXRmaXRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZV9jb25maWcg
cGFzX2JpdGZpdF9wYWdlX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19oZWFwX3J1bnRpbWVf
Y29uZmlnIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2Fs
X2FsbG9jYXRvciBwYXNfbG9jYWxfYWxsb2NhdG9yOwogCiB0eXBlZGVmIHZvaWQqICgqcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19wYWdlX2FsbG9jYXRvcikoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cCosIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uKTsKIHR5cGVk
ZWYgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdCAoKnBhc19iaXRmaXRfcGFnZV9jb25m
aWdfc3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSkoCiAgICAgcGFzX2JpdGZpdF9h
bGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBsb2NhbF9hbGxv
Y2F0b3IsCiAgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6ZV90IGFsaWdubWVudCk7CiB0eXBlZGVm
IHZvaWQgKCpwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3NwZWNpYWxpemVkX3BhZ2VfZGVhbGxvY2F0
ZV93aXRoX3BhZ2UpKApAQCAtMTIyLDYgKzEyNSw3IEBAIFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFz
X21hcmdlX2JpdGZpdF9wYWcKICAgICBQQVNfQVBJIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9y
ZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSggXAogICAgICAgICBwYXNfYml0Zml0X2FsbG9jYXRvciog
YWxsb2NhdG9yLCBcCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsX2FsbG9jYXRv
ciwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3QgYWxpZ25tZW50KTsg
XAogICAgIFBBU19BUEkgdm9pZCBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNp
YWxpemVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UoIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFn
ZV9jb25maWdfaW5saW5lcy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsMTEgKzM2LDEyIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICBwYXNf
ZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0IFwKICAgICBsb3dlcl9jYXNlX3BhZ2VfY29uZmln
X25hbWUgIyMgX3NwZWNpYWxpemVkX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoIFwKICAgICAgICAg
cGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwgXAorICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yKiBsb2NhbF9hbGxvY2F0b3IsIFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAg
ICAgc2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gcGFzX2JpdGZp
dF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKCBcCi0gICAgICAgICAgICBhbGxvY2F0b3IsIHNpemUs
IGFsaWdubWVudCwgKHBhZ2VfY29uZmlnX3ZhbHVlKSk7IFwKKyAgICAgICAgICAgIGFsbG9jYXRv
ciwgbG9jYWxfYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQsIChwYWdlX2NvbmZpZ192YWx1ZSkp
OyBcCiAgICAgfSBcCiAgICAgXAogICAgIHZvaWQgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1l
ICMjIF9zcGVjaWFsaXplZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKCBcCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
cGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJwYXNfYml0Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJw
YXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNfY29tbWl0X3NwYW4uaCIKKyNpbmNsdWRl
ICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2lubGluZXMuaCIK
ICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlIDxwdGhyZWFkLmg+
CkBAIC0xNDYsNyArMTQ3LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHVuc2lnbmVkIHBh
c19iaQogICAgICAgICBQQVNfQVNTRVJUKHZpZXctPmlzX293bmVkKTsKICAgICAgICAgcGFzX2xv
Y2tfYXNzZXJ0X2hlbGQoJnZpZXctPmNvbW1pdF9sb2NrKTsKICAgICAgICAgCi0gICAgICAgIHBh
c19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuKTsKKyAgICAgICAgcGFzX2NvbW1p
dF9zcGFuX2NvbnN0cnVjdCgmY29tbWl0X3NwYW4sIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25m
aWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICAKICAgICAgICAgZm9yIChncmFudWxl
X2luZGV4ID0gaW5kZXhfb2ZfZmlyc3RfZ3JhbnVsZTsKICAgICAgICAgICAgICBncmFudWxlX2lu
ZGV4IDw9IGluZGV4X29mX2xhc3RfZ3JhbnVsZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5jCShyZXZpc2lvbiAyODgxNzkp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uYwko
d29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDE0IEBACiAKIHN0YXRpYyBjb25zdCBib29sIHZl
cmJvc2UgPSBmYWxzZTsKIAotdm9pZCBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KHBhc19jb21t
aXRfc3Bhbiogc3BhbikKK3ZvaWQgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdChwYXNfY29tbWl0
X3NwYW4qIHNwYW4sIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAg
IGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCIlcDogY3JlYXRpbmcgY29tbWl0IHNwYW4u
XG4iLCBzcGFuKTsKICAgICBzcGFuLT5pbmRleF9vZl9zdGFydF9vZl9zcGFuID0gVUlOVFBUUl9N
QVg7CiAgICAgc3Bhbi0+ZGlkX2FkZF9maXJzdCA9IGZhbHNlOwogICAgIHNwYW4tPnRvdGFsX2J5
dGVzID0gMDsKKyAgICBzcGFuLT5tbWFwX2NhcGFiaWxpdHkgPSBtbWFwX2NhcGFiaWxpdHk7CiB9
CiAKIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2FkZF90b19jaGFuZ2UocGFzX2NvbW1pdF9zcGFuKiBz
cGFuLCB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleCkKQEAgLTg0LDggKzg1LDExIEBAIHZvaWQgcGFz
X2NvbW1pdF9zcGFuX2FkZF91bmNoYW5nZWQocGFzX2MKIAogc3RhdGljIHZvaWQgY29tbWl0KHZv
aWQqIGJhc2UsIHNpemVfdCBzaXplLCB2b2lkKiBhcmcpCiB7Ci0gICAgUEFTX0FTU0VSVCghYXJn
KTsKLSAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGJhc2UsIHNpemUpOworICAgIHBhc19jb21t
aXRfc3Bhbiogc3BhbjsKKworICAgIHNwYW4gPSBhcmc7CisgICAgCisgICAgcGFzX3BhZ2VfbWFs
bG9jX2NvbW1pdChiYXNlLCBzaXplLCBzcGFuLT5tbWFwX2NhcGFiaWxpdHkpOwogfQogCiB2b2lk
IHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkX2FuZF9jb21taXQocGFzX2NvbW1pdF9zcGFu
KiBzcGFuLApAQCAtOTMsNyArOTcsNyBAQCB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFu
Z2VkX2FuZF9jCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludHB0cl90IGdyYW51bGVfaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25maWcqIGNvbmZpZykKIHsKLSAgICBwYXNf
Y29tbWl0X3NwYW5fYWRkX3VuY2hhbmdlZChzcGFuLCBwYWdlLCBncmFudWxlX2luZGV4LCBjb25m
aWcsIGNvbW1pdCwgTlVMTCk7CisgICAgcGFzX2NvbW1pdF9zcGFuX2FkZF91bmNoYW5nZWQoc3Bh
biwgcGFnZSwgZ3JhbnVsZV9pbmRleCwgY29uZmlnLCBjb21taXQsIHNwYW4pOwogfQogCiB0eXBl
ZGVmIHN0cnVjdCB7CkBAIC0xMTcsNyArMTIxLDggQEAgc3RhdGljIHZvaWQgZGVjb21taXQodm9p
ZCogYmFzZSwgc2l6ZV90IAogICAgICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoCiAgICAg
ICAgICAgICAodWludHB0cl90KWJhc2UsCiAgICAgICAgICAgICAodWludHB0cl90KWJhc2UgKyBz
aXplLAotICAgICAgICAgICAgZGF0YS0+c3Bhbi0+ZGlkX2FkZF9maXJzdCA/IE5VTEwgOiBkYXRh
LT5jb21taXRfbG9jayksCisgICAgICAgICAgICBkYXRhLT5zcGFuLT5kaWRfYWRkX2ZpcnN0ID8g
TlVMTCA6IGRhdGEtPmNvbW1pdF9sb2NrLAorICAgICAgICAgICAgZGF0YS0+c3Bhbi0+bW1hcF9j
YXBhYmlsaXR5KSwKICAgICAgICAgZGF0YS0+aGVhcF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRf
c3Bhbi5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29tbWl0X3NwYW4uaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIFBBU19DT01NSVRfU1BBTl9ICiAKICNpbmNsdWRlICJwYXNfbG9jay5oIgorI2luY2x1ZGUg
InBhc19tbWFwX2NhcGFiaWxpdHkuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC00Myw5
ICs0NCwxMCBAQCBzdHJ1Y3QgcGFzX2NvbW1pdF9zcGFuIHsKICAgICB1aW50cHRyX3QgaW5kZXhf
b2Zfc3RhcnRfb2Zfc3BhbjsKICAgICBib29sIGRpZF9hZGRfZmlyc3Q7CiAgICAgc2l6ZV90IHRv
dGFsX2J5dGVzOworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5OwogfTsK
IAotUEFTX0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QocGFzX2NvbW1pdF9zcGFu
KiBzcGFuKTsKK1BBU19BUEkgdm9pZCBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KHBhc19jb21t
aXRfc3Bhbiogc3BhbiwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpOwogUEFT
X0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdG9fY2hhbmdlKHBhc19jb21taXRfc3Bhbiog
c3BhbiwgdWludHB0cl90IGdyYW51bGVfaW5kZXgpOwogUEFTX0FQSSB2b2lkIHBhc19jb21taXRf
c3Bhbl9hZGRfdW5jaGFuZ2VkKHBhc19jb21taXRfc3Bhbiogc3BhbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlLApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0
b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZpZy5oIgorCisjaWYgTElCUEFTX0VOQUJM
RUQKKworI2luY2x1ZGUgInBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmgiCisKKyNpbmNsdWRl
ICJwYXNfYWxsb2NhdGlvbl9jb25maWcuaCIKKyNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIK
KworUEFTX0JFR0lOX0VYVEVSTl9DOworCit2b2lkIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9y
X2NvbnN0cnVjdChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciogdmVjdG9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogb2JqZWN0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXNfYWxsb2NhdGlvbl9jb25m
aWcqIGFsbG9jYXRpb25fY29uZmlnKQoreworICAgIHNpemVfdCBwYWdlX3NpemU7CisgICAgc2l6
ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICBzaXplX3QgbnVtX3BhZ2VzOworCisgICAgcGFnZV9z
aXplID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpOworICAgIHBhZ2Vfc2l6ZV9zaGlmdCA9
IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKTsKKworICAgIFBBU19BU1NFUlQocGFz
X2lzX2FsaWduZWQoKHVpbnRwdHJfdClvYmplY3QsIHBhZ2Vfc2l6ZSkpOworICAgIFBBU19BU1NF
UlQocGFzX2lzX2FsaWduZWQoc2l6ZSwgcGFnZV9zaXplKSk7CisKKyAgICBudW1fcGFnZXMgPSBz
aXplID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIHZlY3Rvci0+cmF3X2RhdGEgPSBhbGxvY2F0
aW9uX2NvbmZpZy0+YWxsb2NhdGUoCisgICAgICAgIG51bV9wYWdlcywgInBhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yL3Jhd19kYXRhIiwgcGFzX29iamVjdF9hbGxvY2F0aW9uLCBhbGxvY2F0aW9u
X2NvbmZpZy0+YXJnKTsKKyAgICB2ZWN0b3ItPnNpemUgPSBudW1fcGFnZXM7CisKKyAgICBQQVNf
U1lTQ0FMTChtaW5jb3JlKG9iamVjdCwgc2l6ZSwgdmVjdG9yLT5yYXdfZGF0YSkpOworfQorCit2
b2lkIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rlc3RydWN0KHBhc19jb21taXR0ZWRfcGFn
ZXNfdmVjdG9yKiB2ZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcpCit7Cisg
ICAgYWxsb2NhdGlvbl9jb25maWctPmRlYWxsb2NhdGUoCisgICAgICAgIHZlY3Rvci0+cmF3X2Rh
dGEsIHZlY3Rvci0+c2l6ZSwgcGFzX29iamVjdF9hbGxvY2F0aW9uLCBhbGxvY2F0aW9uX2NvbmZp
Zy0+YXJnKTsKK30KKworc2l6ZV90IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2Nv
bW1pdHRlZChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciogdmVjdG9yKQoreworICAgIHNpemVf
dCByZXN1bHQ7CisgICAgc2l6ZV90IGluZGV4OworICAgIHJlc3VsdCA9IDA7CisgICAgZm9yIChp
bmRleCA9IHZlY3Rvci0+c2l6ZTsgaW5kZXgtLTspCisgICAgICAgIHJlc3VsdCArPSAoc2l6ZV90
KXBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2lzX2NvbW1pdHRlZCh2ZWN0b3IsIGluZGV4KTsK
KyAgICByZXR1cm4gcmVzdWx0OworfQorCitzaXplX3QgcGFzX2NvdW50X2NvbW1pdHRlZF9wYWdl
cyh2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg
c2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0
aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcpCit7CisgICAgc2l6ZV90IHJlc3VsdDsKKyAg
ICBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciB2ZWN0b3I7CisgICAgcGFzX2NvbW1pdHRlZF9w
YWdlc192ZWN0b3JfY29uc3RydWN0KCZ2ZWN0b3IsIG9iamVjdCwgc2l6ZSwgYWxsb2NhdGlvbl9j
b25maWcpOworICAgIHJlc3VsdCA9IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2Nv
bW1pdHRlZCgmdmVjdG9yKTsKKyAgICBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9kZXN0cnVj
dCgmdmVjdG9yLCBhbGxvY2F0aW9uX2NvbmZpZyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
UEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCisKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVj
dG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NTUlUVEVEX1BBR0VTX1ZFQ1RPUl9ICisjZGVm
aW5lIFBBU19DT01NSVRURURfUEFHRVNfVkVDVE9SX0gKKworI2luY2x1ZGUgInBhc191dGlscy5o
IgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9tbWFuLmg+CisKK1BBU19C
RUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZzsKK3N0cnVjdCBw
YXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvcjsKK3R5cGVkZWYgc3RydWN0IHBhc19hbGxvY2F0aW9u
X2NvbmZpZyBwYXNfYWxsb2NhdGlvbl9jb25maWc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfY29tbWl0
dGVkX3BhZ2VzX3ZlY3RvciBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvcjsKKworc3RydWN0IHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yIHsKKyAgICBjaGFyKiByYXdfZGF0YTsKKyAgICBzaXpl
X3Qgc2l6ZTsKK307CisKK1BBU19BUEkgdm9pZCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9j
b25zdHJ1Y3QocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IqIHZlY3RvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogb2JqZWN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgcGFzX2FsbG9jYXRpb25fY29uZmlnKiBhbGxvY2F0aW9uX2NvbmZpZyk7CisKK1BBU19BUEkg
dm9pZCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9kZXN0cnVjdChwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3RvciogdmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25m
aWcpOworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfaXNf
Y29tbWl0dGVkKHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBw
YWdlX2luZGV4KQoreworICAgIFBBU19BU1NFUlQocGFnZV9pbmRleCA8IHZlY3Rvci0+c2l6ZSk7
CisgICAgcmV0dXJuIHZlY3Rvci0+cmF3X2RhdGFbcGFnZV9pbmRleF0gJiAoTUlOQ09SRV9SRUZF
UkVOQ0VEIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNSU5D
T1JFX1JFRkVSRU5DRURfT1RIRVIgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIE1JTkNPUkVfTU9ESUZJRURfT1RIRVIgfAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIE1JTkNPUkVfTU9ESUZJRUQpOworfQorCitQQVNfQVBJIHNp
emVfdCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb3VudF9jb21taXR0ZWQocGFzX2NvbW1p
dHRlZF9wYWdlc192ZWN0b3IqIHZlY3Rvcik7CisKK1BBU19BUEkgc2l6ZV90IHBhc19jb3VudF9j
b21taXR0ZWRfcGFnZXModm9pZCogb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgcGFzX2FsbG9jYXRpb25fY29uZmlnKiBhbGxvY2F0aW9uX2NvbmZp
Zyk7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfQ09NTUlUVEVEX1BBR0VT
X1ZFQ1RPUl9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19jb21wYWN0X3RhZ2dlZF9wdHIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRfcHRyLmgJKHJldmlzaW9uIDI4ODE3OSkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RhZ2dlZF9w
dHIuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYsMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9D
OwogICAgICAgICB9IFwKICAgICB9IFwKICAgICBcCisgICAgc3RhdGljIGlubGluZSBib29sIG5h
bWUgIyMgX2lzX251bGwobmFtZSogcHRyKSBcCisgICAgeyBcCisgICAgICAgIHJldHVybiAhKCoo
dWludHB0cl90KilwdHIgJiBQQVNfQ09NUEFDVF9UQUdHRURfUFRSX01BU0spOyBcCisgICAgfSBc
CisgICAgXAogICAgIHN0YXRpYyBpbmxpbmUgdHlwZSBuYW1lICMjIF9sb2FkKG5hbWUqIHB0cikg
XAogICAgIHsgXAogICAgICAgICByZXR1cm4gbmFtZSAjIyBfcHRyX2Zvcl9vZmZzZXQoKih1aW50
cHRyX3QqKXB0ciAmIFBBU19DT01QQUNUX1RBR0dFRF9QVFJfTUFTSyk7IFwKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKwor
I2lmbmRlZiBQQVNfQ09NUEFDVF9USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSAorI2Rl
ZmluZSBQQVNfQ09NUEFDVF9USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSAorCisjaW5j
bHVkZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oIgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitQQVNfREVG
SU5FX0NPTVBBQ1RfVEFHR0VEX1BUUihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlKTsKKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBB
U19DT01QQUNUX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9IICovCisKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWNvbW1pdF9leGNsdXNpb25fcmFu
Z2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfREVDT01NSVRfRVhDTFVTSU9OX1JBTkdFX0gK
KyNkZWZpbmUgUEFTX0RFQ09NTUlUX0VYQ0xVU0lPTl9SQU5HRV9ICisKKyNpbmNsdWRlICJwYXNf
dXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2RlY29tbWl0X2V4
Y2x1c2lvbl9yYW5nZTsKK3R5cGVkZWYgc3RydWN0IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFu
Z2UgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZTsKKworc3RydWN0IHBhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UgeworICAgIHVpbnRwdHJfdCBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dDsKKyAgICB1aW50cHRyX3QgZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0OworfTsKKworc3RhdGlj
IGlubGluZSBib29sIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfZW1wdHkocGFzX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4gcmFuZ2Uuc3RhcnRf
b2ZfcG9zc2libGVfZGVjb21taXQgPT0gcmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0Owor
fQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19j
b250aWd1b3VzKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmFuZ2UpCit7CisgICAgcmV0
dXJuIHJhbmdlLnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0IDwgcmFuZ2UuZW5kX29mX3Bvc3Np
YmxlX2RlY29tbWl0OworfQorCisvKiBUaGlzIG1lYW5zIHRoYXQgdGhlIHNldCBvZiB0aGluZ3Mg
dGhhdCBjb3VsZCBiZSBkZWNvbW1pdHRlZCBpcyBhbnl0aGluZyBiZWZvcmUgZW5kX29mX3Bvc3Np
YmxlX2RlY29tbWl0CisgICAoZXhjbHVzaXZlKSBhbmQgYWZ0ZXIgc3RhcnRfb2ZfcG9zc2libGVf
ZGVjb21taXQgKGluY2x1c2l2ZSkuICovCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2RlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRlZChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
IHJhbmdlKQoreworICAgIHJldHVybiByYW5nZS5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA+
IHJhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKK30KKworc3RhdGljIGlubGluZSBwYXNf
ZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlCitwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2Ny
ZWF0ZV9pbnZlcnRlZChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHJhbmdlKQoreworICAg
IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmVzdWx0OworICAgIHJlc3VsdC5zdGFydF9v
Zl9wb3NzaWJsZV9kZWNvbW1pdCA9IHJhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKKyAg
ICByZXN1bHQuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gcmFuZ2Uuc3RhcnRfb2ZfcG9zc2li
bGVfZGVjb21taXQ7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsK
KworI2VuZGlmIC8qIFBBU19ERUNPTU1JVF9FWENMVVNJT05fUkFOR0VfSCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZy5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMgdm9pZCBkZWNvbW1pdF9hbGwocGFzX2Rl
ZmVycmVkX2RlCiAgICAgICAgICAgICAgICAgICAgICAgICAodm9pZCopcmFuZ2UuZW5kKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2Rl
Y29tbWl0KCh2b2lkKilyYW5nZS5iZWdpbiwgcGFzX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSkp
OworICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KCh2b2lkKilyYW5nZS5iZWdp
biwgcGFzX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSksIHJhbmdlLm1tYXBfY2FwYWJpbGl0eSk7
CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFBBU19BU1NFUlQoZW5kX2luZGV4KTsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9y
eS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19l
eHBlbmRhYmxlX21lbW9yeS5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuYwkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0z
Myw2ICszMywxNyBAQAogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNf
cGFnZV9tYWxsb2MuaCIKIAorcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24gcGFz
X2V4cGVuZGFibGVfbWVtb3J5X3ZlcnNpb25fY291bnRlciA9IDE7CisKK3Bhc19leHBlbmRhYmxl
X21lbW9yeV9zdGF0ZV92ZXJzaW9uIHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV92ZXJzaW9u
X25leHQodm9pZCkKK3sKKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbiBy
ZXN1bHQ7CisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIHJlc3VsdCA9ICsr
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3ZlcnNpb25fY291bnRlcjsKKyAgICBQQVNfQVNTRVJUKHJl
c3VsdCA+IDEpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQgcGFzX2V4cGVuZGFibGVf
bWVtb3J5X2NvbnN0cnVjdChwYXNfZXhwZW5kYWJsZV9tZW1vcnkqIG1lbW9yeSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSkKIHsKQEAgLTQzLDcgKzU0
LDcgQEAgdm9pZCBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29uc3RydWN0KHBhcwogICAgIG1lbW9y
eS0+c2l6ZSA9ICh1bnNpZ25lZClzaXplOwogCiAgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25l
ZChzaXplLCBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFKSk7Ci0gICAgCisKICAgICBm
b3IgKGluZGV4ID0gc2l6ZSAvIFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkU7IGluZGV4
LS07KSB7CiAgICAgICAgIG1lbW9yeS0+c3RhdGVzW2luZGV4XSA9CiAgICAgICAgICAgICBwYXNf
ZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfY3JlYXRlKFBBU19FWFBFTkRBQkxFX01FTU9SWV9TVEFU
RV9LSU5EX0RFQ09NTUlUVEVELCAxKTsKQEAgLTIyMCwxMCArMjMxLDEyIEBAIGJvb2wgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X2NvbW1pdF9pZl9uZWMKICAgICB9CiAKICAgICBQQVNfQVNTRVJUKGZp
cnN0X3ZlcnNpb24gPj0gaGVhZGVyX3ZlcnNpb24pOwotICAgIFBBU19BU1NFUlQobGFzdF92ZXJz
aW9uID49IGhlYWRlcl92ZXJzaW9uKTsKLSAgICBQQVNfQVNTRVJUKGZpcnN0X3ZlcnNpb24gPiBo
ZWFkZXJfdmVyc2lvbiB8fCBsYXN0X3ZlcnNpb24gPiBoZWFkZXJfdmVyc2lvbik7CiAKLSAgICBu
ZXdfdmVyc2lvbiA9IFBBU19NQVgoZmlyc3RfdmVyc2lvbiwgbGFzdF92ZXJzaW9uKTsKKyAgICAv
KiBXZSdkIGxpa2UgdG8gYXNzZXJ0IHRoYXQgbGFzdF92ZXJzaW9uID49IGhlYWRlcl92ZXJzaW9u
LCBleGNlcHQgdGhhdCBpdCdzIHBvc3NpYmxlIGZvciBzb21lb25lIHRvCisgICAgICAgZG8gYSBj
b21taXRfaWZfbmVjZXNzYXJ5IG9uIHRoZSBwcmVmaXggb2YgdGhpcyBvYmplY3QsIGFuZCB0aGVu
IG5vdCB1cGRhdGUgbGFzdF92ZXJzaW9uLiBTbywKKyAgICAgICBsYXN0X3ZlcnNpb24gY291bGQg
YmUgc3R1Y2sgYXJiaXRyYXJpbHkgaW4gdGhlIHBhc3QuICovCisKKyAgICBuZXdfdmVyc2lvbiA9
IHBhc19leHBlbmRhYmxlX21lbW9yeV9zdGF0ZV92ZXJzaW9uX25leHQoKTsKICAgICBuZXdfc3Rh
dGUgPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfY3JlYXRlKFBBU19FWFBFTkRBQkxFX01F
TU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCwgbmV3X3ZlcnNpb24pOwogCiAgICAgaGVhZGVyLT5z
dGF0ZXNbZmlyc3RdID0gbmV3X3N0YXRlOwpAQCAtMjM5LDcgKzI1Miw3IEBAIGlnbm9yZV9sYXN0
X3BhZ2U6CiAKICAgICBQQVNfQVNTRVJUKGZpcnN0X3ZlcnNpb24gPiBoZWFkZXJfdmVyc2lvbik7
CiAKLSAgICBuZXdfdmVyc2lvbiA9IGZpcnN0X3ZlcnNpb247CisgICAgbmV3X3ZlcnNpb24gPSBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfdmVyc2lvbl9uZXh0KCk7CiAgICAgbmV3X3N0YXRl
ID0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2NyZWF0ZShQQVNfRVhQRU5EQUJMRV9NRU1P
UllfU1RBVEVfS0lORF9KVVNUX1VTRUQsIG5ld192ZXJzaW9uKTsKIAogICAgIGhlYWRlci0+c3Rh
dGVzW2ZpcnN0XSA9IG5ld19zdGF0ZTsKQEAgLTI0OSwxNiArMjYyLDE5IEBAIGRvbmU6CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIHNjYXZlbmdlX2ltcGwocGFzX2V4cGVuZGFi
bGVfbWVtb3J5KiBoZWFkZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIHBheWxv
YWQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2
ZW5nZV9raW5kIHNjYXZlbmdlX2tpbmQpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBz
Y2F2ZW5nZV9pbXBsKHBhc19leHBlbmRhYmxlX21lbW9yeSogaGVhZGVyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBwYXlsb2FkLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlf
c2NhdmVuZ2Vfa2luZCBzY2F2ZW5nZV9raW5kKQogewogICAgIHNpemVfdCBpbmRleDsKICAgICBz
aXplX3QgaW5kZXhfZW5kOwogICAgIGJvb2wgcmVzdWx0OworICAgIHBhc19leHBlbmRhYmxlX21l
bW9yeV9zdGF0ZV92ZXJzaW9uIGRlY29tbWl0X3ZlcnNpb247CiAgICAgCiAgICAgcGFzX2hlYXBf
bG9ja19hc3NlcnRfaGVsZCgpOwogCisgICAgZGVjb21taXRfdmVyc2lvbiA9IHBhc19leHBlbmRh
YmxlX21lbW9yeV9zdGF0ZV92ZXJzaW9uX25leHQoKTsKKwogICAgIFBBU19BU1NFUlQoaGVhZGVy
LT5zaXplKTsKICAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKGhlYWRlci0+c2l6ZSwgUEFT
X0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSkpOwogICAgIFBBU19BU1NFUlQoaGVhZGVyLT5i
dW1wIDwgaGVhZGVyLT5zaXplKTsKQEAgLTMxMiwxNCArMzI4LDE1IEBAIHN0YXRpYyBib29sIHNj
YXZlbmdlX2ltcGwocGFzX2V4cGVuZGFibGUKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKHNjYXZlbmdlX2tpbmQgPT0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdl
X2ZvcmNlZCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChzY2F2ZW5nZV9raW5kID09IHBh
c19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9mb3JjZWQKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IHNjYXZlbmdlX2tpbmQgPT0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdl
X2ZvcmNlZF9mYWtlKTsKICAgICAgICAgICAgICAgICBpZiAoa2luZCA8IFBBU19FWFBFTkRBQkxF
X01FTU9SWV9TVEFURV9LSU5EX0pVU1RfVVNFRCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGtpbmQgPD0gUEFTX0VYUEVOREFC
TEVfTUVNT1JZX1NUQVRFX0tJTkRfTUFYX0pVU1RfVVNFRCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBoZWFkZXItPnN0YXRlc1tvdGhlcl9pbmRleF0gPSBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc3RhdGVfY3JlYXRlKAogICAgICAgICAgICAgICAgIFBBU19FWFBFTkRBQkxFX01FTU9SWV9T
VEFURV9LSU5EX0RFQ09NTUlUVEVELAotICAgICAgICAgICAgICAgIHBhc19leHBlbmRhYmxlX21l
bW9yeV9zdGF0ZV9nZXRfdmVyc2lvbihzdGF0ZSkgKyAxKTsKKyAgICAgICAgICAgICAgICBkZWNv
bW1pdF92ZXJzaW9uKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIE1ha2Ugc3VyZSB0aGF0IGJ5
IHRoZSB0aW1lIHdlIGRlY29tbWl0LCBub2JvZHkgY2FuIGxpZSBhYm91dCB1c2luZyB0aGUgc3R1
ZmYgd2UgYXJlIGRlY29tbWl0dGluZy4KQEAgLTMyNyw4ICszNDQsMTUgQEAgc3RhdGljIGJvb2wg
c2NhdmVuZ2VfaW1wbChwYXNfZXhwZW5kYWJsZQogICAgICAgICAgICBtZW1vcnkuIFNvLCBpdCBt
aWdodCBoYXBwZW4gYWZ0ZXIgd2UgaGF2ZSBhbHJlYWR5IGRlY29tbWl0dGVkLCBvciBkZWNpZGVk
IHRvIGRlY29tbWl0LiAqLwogICAgICAgICBwYXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKIAotICAg
ICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfYXN5bW1ldHJpYygoY2hhciopcGF5bG9hZCAr
IGluZGV4ICogUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSwKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG90aGVyX2luZGV4IC0gaW5kZXgpICogUEFT
X0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSk7CisgICAgICAgIC8qIFRoaXMgY3VycmVudGx5
IGFzc3VtZXMgdGhhdCBpdCdzIGxlZ2FsIHRvIGRvIGRlY29tbWl0IHdpdGhvdXQgbGF0ZXIgY29t
bWl0dGluZy4gSXQncyBub3Qgb2J2aW91cworICAgICAgICAgICB0aGF0IHRoaXMgaXMgYSBoYXJk
IHJlcXVpcmVtZW50IG9mIHRoZSBhbGdvcml0aG07IGxpa2UgcGVyaGFwcyBpdCB3b3VsZCBiZSBl
YXN5IHRvIGFkZCB0aGUgbmVjZXNzYXJ5CisgICAgICAgICAgIGNvbW1pdCBjYWxscy4gKi8KKyAg
ICAgICAgaWYgKHNjYXZlbmdlX2tpbmQgIT0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdl
X2ZvcmNlZF9mYWtlKSB7CisgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0
aG91dF9tcHJvdGVjdCgKKyAgICAgICAgICAgICAgICAoY2hhciopcGF5bG9hZCArIGluZGV4ICog
UEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSwKKyAgICAgICAgICAgICAgICAob3RoZXJf
aW5kZXggLSBpbmRleCkgKiBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFLAorICAgICAg
ICAgICAgICAgIHBhc19tYXlfbW1hcCk7CisgICAgICAgIH0KIAogICAgICAgICAvKiBBdCB0aGlz
IHBvaW50LCBhbnkgb2YgdGhlIHBhZ2VzIGluIHRoaXMgcmFuZ2UgY291bGQgZ2V0IGRlY29tbWl0
dGVkLCBidXQgaXQgd29uJ3QgbmVjZXNzYXJpbHkKICAgICAgICAgICAgaGFwcGVuIGltbWVkaWF0
ZWx5LiBBbnkgd3JpdGUgdG8gdGhlc2UgcGFnZXMgd2lsbCBjYW5jZWwgdGhlIGRlY29tbWl0LCBv
ciB1bmRvIGl0IGlmIGl0J3MgYWxyZWFkeQpAQCAtMzYyLDkgKzM4Niw2IEBAIHN0YXRpYyBib29s
IHNjYXZlbmdlX2ltcGwocGFzX2V4cGVuZGFibGUKICAgICAgICAgaW5kZXggPSBvdGhlcl9pbmRl
eCAtIDE7CiAgICAgfQogCi0gICAgaWYgKHNjYXZlbmdlX2tpbmQgPT0gcGFzX2V4cGVuZGFibGVf
bWVtb3J5X3NjYXZlbmdlX2ZvcmNlZCkKLSAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKLQog
ICAgIHJldHVybiByZXN1bHQ7CiB9CiAKQEAgLTM3MiwxMyArMzkzLDE4IEBAIGJvb2wgcGFzX2V4
cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlKHBhc18KICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHZvaWQqIHBheWxvYWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Vfa2luZCBraW5kKQogewotICAgIHN3
aXRjaCAoa2luZCkgewotICAgIGNhc2UgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX3Bl
cmlvZGljOgorICAgIGJvb2wgcmVzdWx0OworICAgIAorICAgIGlmIChraW5kID09IHBhc19leHBl
bmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9wZXJpb2RpYykgeworICAgICAgICAvKiBTcGVjaWFsaXpl
IGZvciB0aGlzIGNhc2UuIFdlIHdhbnQgdGhlIHNjYXZlbmdlciB0byBiZSBmYXN0LiAqLwogICAg
ICAgICByZXR1cm4gc2NhdmVuZ2VfaW1wbChoZWFkZXIsIHBheWxvYWQsIHBhc19leHBlbmRhYmxl
X21lbW9yeV9zY2F2ZW5nZV9wZXJpb2RpYyk7Ci0gICAgY2FzZSBwYXNfZXhwZW5kYWJsZV9tZW1v
cnlfc2NhdmVuZ2VfZm9yY2VkOgotICAgICAgICByZXR1cm4gc2NhdmVuZ2VfaW1wbChoZWFkZXIs
IHBheWxvYWQsIHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9mb3JjZWQpOwogICAgIH0K
LSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisKKyAgICBQQVNfQVNT
RVJUKGtpbmQgPT0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2ZvcmNlZAorICAgICAg
ICAgICAgICAgfHwga2luZCA9PSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2Vk
X2Zha2UpOworCisgICAgcmVzdWx0ID0gc2NhdmVuZ2VfaW1wbChoZWFkZXIsIHBheWxvYWQsIGtp
bmQpOworICAgIFBBU19BU1NFUlQoIXJlc3VsdCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1v
cnkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZXhwZW5kYWJsZV9tZW1vcnkuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVfbWVtb3J5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
NTMsNiArNTMsOCBAQCBzdHJ1Y3QgcGFzX2V4cGVuZGFibGVfbWVtb3J5IHsKIAogI2RlZmluZSBQ
QVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFIDE2Mzg0bHUKIAorUEFTX0FQSSBleHRlcm4g
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24gcGFzX2V4cGVuZGFibGVfbWVtb3J5
X3ZlcnNpb25fY291bnRlcjsKKwogZW51bSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfdG91Y2hfa2lu
ZCB7CiAgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoX3RvX25vdGVfdXNlLAogICAgIHBh
c19leHBlbmRhYmxlX21lbW9yeV90b3VjaF90b19jb21taXRfaWZfbmVjZXNzYXJ5CkBAIC02MSw4
ICs2MywxNSBAQCBlbnVtIHBhc19leHBlbmRhYmxlX21lbW9yeV90b3VjaF9raW5kIHsKIHR5cGVk
ZWYgZW51bSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfdG91Y2hfa2luZCBwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfdG91Y2hfa2luZDsKIAogZW51bSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2Vf
a2luZCB7CisgICAgLyogRGVjb21taXRzIG9ubHkgdGhpbmdzIHRoYXQgaGF2ZW4ndCBiZWVuIHVz
ZWQgcmVjZW50bHksIGFuZCBkb2VzIHRoZSBjb3VudCBpbmNyZW1lbnQgdGhhdCBhbGxvd3MgdXMK
KyAgICAgICB0byB0ZWxsIHRoYXQgc29tZXRoaW5nIGhhc24ndCBiZWVuIHVzZWQgcmVjZW50bHku
ICovCiAgICAgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX3BlcmlvZGljLAotICAgIHBh
c19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9mb3JjZWQKKworICAgIC8qIERlY29tbWl0cyBl
dmVyeXRoaW5nIHRoYXQgaXQgY2FuLiAqLworICAgIHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2
ZW5nZV9mb3JjZWQsCisKKyAgICAvKiBQcmV0ZW5kcyB0byBkZWNvbW1pdCBldmVyeXRoaW5nIHRo
YXQgaXQgY2FuIHdpdGhvdXQgbWFraW5nIGFueSBzeXNjYWxscyAodXNlZnVsIGZvciB0ZXN0aW5n
KS4gKi8KKyAgICBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2VkX2Zha2UsCiB9
OwogCiB0eXBlZGVmIGVudW0gcGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQgcGFz
X2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQ7CkBAIC03OSw2ICs4OCw4IEBAIHBhc19l
eHBlbmRhYmxlX21lbW9yeV9zdGF0ZV9nZXRfdmVyc2lvbigKICAgICByZXR1cm4gc3RhdGUgPj4g
UEFTX0VYUEVOREFCTEVfTUVNT1JZX1NUQVRFX05VTV9LSU5EX0JJVFM7CiB9CiAKK1BBU19BUEkg
cGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb24gcGFzX2V4cGVuZGFibGVfbWVtb3J5
X3N0YXRlX3ZlcnNpb25fbmV4dCh2b2lkKTsKKwogc3RhdGljIGlubGluZSBwYXNfZXhwZW5kYWJs
ZV9tZW1vcnlfc3RhdGUgcGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX2NyZWF0ZSgKICAgICBw
YXNfZXhwZW5kYWJsZV9tZW1vcnlfc3RhdGVfa2luZCBraW5kLAogICAgIHBhc19leHBlbmRhYmxl
X21lbW9yeV9zdGF0ZV92ZXJzaW9uIHZlcnNpb24pCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFudWxlcy5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51bGVzLmMJKHJldmlzaW9uIDI4
ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51
bGVzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgInBhc19mcmVlX2dy
YW51bGVzLmgiCiAKICNpbmNsdWRlICJwYXNfY29tbWl0X3NwYW4uaCIKKyNpbmNsdWRlICJwYXNf
aGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vf
YmFzZV9jb25maWcuaCIKIApAQCAtMTA1LDcgKzEwNiw3IEBAIHZvaWQgcGFzX2ZyZWVfZ3JhbnVs
ZXNfZGVjb21taXRfYWZ0ZXJfbG8KICAgICBQQVNfQVNTRVJUKG51bV9ncmFudWxlcyA+PSAyKTsg
LyogSWYgdGhlcmUgaXMgb25seSBvbmUgZ3JhbnVsZSB0aGVuIHdlIGRvbid0IGhhdmUgdXNlIGNv
dW50cy4gKi8KICAgICBQQVNfQVNTRVJUKG51bV9ncmFudWxlcyA8PSBQQVNfTUFYX0dSQU5VTEVT
KTsKIAotICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuKTsKKyAgICBw
YXNfY29tbWl0X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3BhbiwgcGFnZV9jb25maWctPmhlYXBf
Y29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKIAogICAgIGZvciAoZ3JhbnVsZV9pbmRleCA9
IDA7IGdyYW51bGVfaW5kZXggPCBudW1fZ3JhbnVsZXM7ICsrZ3JhbnVsZV9pbmRleCkgewogICAg
ICAgICBpZiAocGFzX2ZyZWVfZ3JhbnVsZXNfaXNfZnJlZShmcmVlX2dyYW51bGVzLCBncmFudWxl
X2luZGV4KSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcC5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC03Niw5ICs3NiwyMiBAQCBwYXNfaGVh
cCogcGFzX2hlYXBfY3JlYXRlKHBhc19oZWFwX3JlZiogCiAKIHNpemVfdCBwYXNfaGVhcF9nZXRf
dHlwZV9zaXplKHBhc19oZWFwKiBoZWFwKQogeworICAgIHBhc19oZWFwX2NvbmZpZ19raW5kIGtp
bmQ7CisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWc7CiAgICAgaWYgKCFoZWFwKQogICAgICAg
ICByZXR1cm4gMTsKLSAgICByZXR1cm4gcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyho
ZWFwLT5jb25maWdfa2luZCktPmdldF90eXBlX3NpemUoaGVhcC0+dHlwZSk7CisgICAga2luZCA9
IGhlYXAtPmNvbmZpZ19raW5kOworICAgIFBBU19BU1NFUlQoa2luZCAhPSBwYXNfaGVhcF9jb25m
aWdfa2luZF9udWxsKTsKKyAgICBjb25maWcgPSBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfY29u
ZmlnKGtpbmQpOworICAgIFBBU19BU1NFUlQoY29uZmlnKTsKKyAgICByZXR1cm4gY29uZmlnLT5n
ZXRfdHlwZV9zaXplKGhlYXAtPnR5cGUpOworfQorCitzaXplX3QgcGFzX2hlYXBfZ2V0X3R5cGVf
YWxpZ25tZW50KHBhc19oZWFwKiBoZWFwKQoreworICAgIGlmICghaGVhcCkKKyAgICAgICAgcmV0
dXJuIDE7CisgICAgcmV0dXJuIHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWcoaGVhcC0+
Y29uZmlnX2tpbmQpLT5nZXRfdHlwZV9hbGlnbm1lbnQoaGVhcC0+dHlwZSk7CiB9CiAKIHNpemVf
dCBwYXNfaGVhcF9nZXRfbnVtX2ZyZWVfYnl0ZXMocGFzX2hlYXAqIGhlYXApCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHJldmlzaW9uIDI4ODE3
OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgUEFTX0FQSSBwYXNfaGVhcCogcGFzX2hlYXBfY3Jl
YXRlKHBhc19oZQogCiAvKiBSZXR1cm5zIDEgZm9yIE5VTEwgaGVhcC4gKi8KIFBBU19BUEkgc2l6
ZV90IHBhc19oZWFwX2dldF90eXBlX3NpemUocGFzX2hlYXAqIGhlYXApOworUEFTX0FQSSBzaXpl
X3QgcGFzX2hlYXBfZ2V0X3R5cGVfYWxpZ25tZW50KHBhc19oZWFwKiBoZWFwKTsKIAogLyogVGhl
IGxhcmdlIGhlYXAgYmVsb25ncyB0byB0aGUgaGVhcCBpbiBzdWNoIGEgd2F5IHRoYXQgZ2l2ZW4g
YSBsYXJnZSBoZWFwLCB3ZSBjYW4gZmluZCB0aGUKICAgIGhlYXAuICovCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAkocmV2
aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNsdWRlICJw
YXNfaGVhcF9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19oZWFwX3JlZi5oIgogI2luY2x1
ZGUgInBhc19oZWFwX3JlZl9raW5kLmgiCi0jaW5jbHVkZSAicGFzX2FsbG9jYXRpb25fcmVzdWx0
LmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgInBhc19zZWdy
ZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19zaXplX2xvb2t1cF9tb2RlLmgiCkBAIC0xNzQsNiAr
MTc0LDkgQEAgc3RydWN0IHBhc19oZWFwX2NvbmZpZyB7CiAgICAgYm9vbCBhbGlnbmVkX2FsbG9j
YXRvcl90YWxrc190b19zaGFyaW5nX3Bvb2w7CiAgICAgcGFzX2RlYWxsb2NhdG9yIGRlYWxsb2Nh
dG9yOwogCisgICAgLyogVGVsbHMgaWYgaXQncyBPSyB0byBjYWxsIG1tYXAgb24gbWVtb3J5IG1h
bmFnZWQgYnkgdGhpcyBoZWFwLiAqLworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBh
YmlsaXR5OworCiAgICAgLyogVGhpcyBwb2ludHMgdG8gdGhpbmdzIHRoYXQgYXJlIG5lY2Vzc2Fy
eSBmb3IgZW51bWVyYXRpb24gdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhlIGhlYXAgY29uZmlnLiAq
LwogICAgIHZvaWQqIHJvb3RfZGF0YTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMJKHJldmlzaW9u
IDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2Nv
bmZpZ191dGlscy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNyArMTIzLDcgQEAgcGFzX2hlYXBf
Y29uZmlnX3V0aWxzX2FsbG9jYXRlX2FsaWduZWQoCiAgICAgCiAgICAgYWxsb2NhdGlvbl9yZXN1
bHQgPQogICAgICAgICBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGVf
dHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICAgICAgY2FjaGUsIGFsaWduZWRf
c2l6ZSwgYWxpZ25tZW50LCBzaG91bGRfemVybyk7CisgICAgICAgICAgICBjYWNoZSwgYWxpZ25l
ZF9zaXplLCBhbGlnbm1lbnQsIGNvbmZpZywgc2hvdWxkX3plcm8pOwogICAgIGlmICghYWxsb2Nh
dGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFw
X2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAkod29ya2luZyBjb3B5KQpAQCAt
MzMyLDYgKzMzMiw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgLmFsaWduZWRfYWxsb2Nh
dG9yID0gbmFtZSAjIyBfYWxpZ25lZF9hbGxvY2F0b3IsIFwKICAgICAgICAgLmFsaWduZWRfYWxs
b2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCA9IHRydWUsIFwKICAgICAgICAgLmRlYWxsb2Nh
dG9yID0gTlVMTCwgXAorICAgICAgICAubW1hcF9jYXBhYmlsaXR5ID0gcGFzX21heV9tbWFwLCBc
CiAgICAgICAgIC5yb290X2RhdGEgPSAmbmFtZSAjIyBfcm9vdF9kYXRhLCBcCiAgICAgICAgIC5w
cmVwYXJlX3RvX2VudW1lcmF0ZSA9IG5hbWUgIyMgX3ByZXBhcmVfdG9fZW51bWVyYXRlLCBcCiAg
ICAgICAgIC5mb3JfZWFjaF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBcCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYwkocmV2aXNpb24g
Mjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfcmVm
LmMJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgcGFzX2hlYXAqIHBhc19lbnN1cmVf
aGVhcF9zbG93KHBhc19oZWFwXwogICAgIGhlYXAgPSBoZWFwX3JlZi0+aGVhcDsKICAgICBpZiAo
IWhlYXApIHsKICAgICAgICAgaGVhcCA9IHBhc19oZWFwX2NyZWF0ZShoZWFwX3JlZiwgaGVhcF9y
ZWZfa2luZCwgY29uZmlnLCBydW50aW1lX2NvbmZpZyk7CisgICAgICAgIHBhc19zdG9yZV9zdG9y
ZV9mZW5jZSgpOwogICAgICAgICBoZWFwX3JlZi0+aGVhcCA9IGhlYXA7CiAgICAgfQogICAgIHBh
c19oZWFwX2xvY2tfdW5sb2NrKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCShyZXZpc2lvbiAyODgxNzkp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmln
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw4ICsxNDQsOCBAQAogI2RlZmluZSBQQVNfUEFHRV9C
QUxBTkNJTkdfRU5BQkxFRCAgICAgICAgICAgIGZhbHNlCiAjZW5kaWYKIAotI2RlZmluZSBQQVNf
U01BTExfU0hBUkVEX1BBR0VfTE9HX1NISUZUICAgICAwCi0jZGVmaW5lIFBBU19NRURJVU1fU0hB
UkVEX1BBR0VfTE9HX1NISUZUICAgIDEKKyNkZWZpbmUgUEFTX1NNQUxMX1NIQVJFRF9QQUdFX0xP
R19TSElGVCAgICAgMzEKKyNkZWZpbmUgUEFTX01FRElVTV9TSEFSRURfUEFHRV9MT0dfU0hJRlQg
ICAgMzEKIAogLyogTXVzdCBiZSB6ZXJvOyB1dGlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCBwYXJ0aWFs
cyByaWdodCBub3cgKHRob3VnaCBpdCBjb3VsZCBpZiB3ZSBoYWNrZWQgZGVhbGxvY2F0aW9uIGFu
ZAogICAgYWRkZWQgYSBzaGFyZWQgcGFnZSBkaXJlY3RvcnkpLiAqLwpAQCAtMTkwLDcgKzE5MCw3
IEBACiAgICBvYmplY3RzIHdpbGwgb25seSBvdmVybGFwIGF0IHRoZSBoZWFkZXIuIEhvd2V2ZXIs
IEZJWE1FOiB3ZSBuZWVkIGZsZXggaGVhcHMgdG8gdXNlIGEgbGFyZ2UgaGVhcAogICAgdGhhdCB3
b24ndCBvdmVybGFwIG9iamVjdHMgaW4gdGhlc2UgaGVhcHMgYXMgaWYgdGhleSB3ZXJlIGFycmF5
cy4gKi8KICNkZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAgICAgICAg
ICAgICAgICAgICAgICAxMAotI2RlZmluZSBQQVNfRkxFWF9CT1VORF9GT1JfQkFTRUxJTkVfQUxM
T0NBVE9SUyAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIFBBU19GTEVYX0JPVU5EX0ZPUl9C
QVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBQQVNfRkxFWF9C
T1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAj
ZGVmaW5lIFBBU19GTEVYX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAgICAgICAg
ICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX0ZMRVhfTUFYX0JJVEZJVF9PQkpFQ1RfU0laRSAg
ICAgICAgICAgICAgICAgICAgICAgICAwCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9o
ZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYwkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21t
aXRfbG9nLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAKIHZvaWQgcGFzX2xhcmdl
X2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2NvbnN0cnVjdCgKICAgICBwYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGxvZykKIHsKLSAgICBwYXNfcmFuZ2VfbWlu
X2hlYXBfY29uc3RydWN0KCZsb2ctPmltcGwpOworICAgIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwX2NvbnN0cnVjdCgmbG9nLT5pbXBsKTsKICAgICBsb2ctPnRvdGFsID0gMDsKIH0K
IApAQCAtNTIsMTIgKzUyLDEyIEBAIHZvaWQgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9j
b21taXQKICAgICBQQVNfQVNTRVJUKCFsb2ctPmltcGwuc2l6ZSk7CiAgICAgCiAgICAgcGFzX2Jv
b3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZhbGxvY2F0aW9u
X2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgcGFzX3JhbmdlX21pbl9oZWFwX2Rlc3Ry
dWN0KCZsb2ctPmltcGwsICZhbGxvY2F0aW9uX2NvbmZpZyk7CisgICAgcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2VfbWluX2hlYXBfZGVzdHJ1Y3QoJmxvZy0+aW1wbCwgJmFsbG9jYXRpb25fY29uZmln
KTsKIH0KIAogYm9vbCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2dfYWRk
KAogICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogbG9nLAotICAg
IHBhc19yYW5nZSByYW5nZSwKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5nZSwKICAg
ICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsKICAgICBw
YXNfYWxsb2NhdGlvbl9jb25maWcgYWxsb2NhdGlvbl9jb25maWc7CkBAIC03MCwxMCArNzAsMTAg
QEAgYm9vbCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdAogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIGxvZy0+dG90YWwgKz0gcGFzX3JhbmdlX3NpemUo
cmFuZ2UpOworICAgIGxvZy0+dG90YWwgKz0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShy
YW5nZSk7CiAgICAgCiAgICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25m
aWdfY29uc3RydWN0KCZhbGxvY2F0aW9uX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAg
cGFzX3JhbmdlX21pbl9oZWFwX2FkZCgmbG9nLT5pbXBsLCByYW5nZSwgJmFsbG9jYXRpb25fY29u
ZmlnKTsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcF9hZGQoJmxvZy0+aW1w
bCwgcmFuZ2UsICZhbGxvY2F0aW9uX2NvbmZpZyk7CiAgICAgCiAgICAgcmV0dXJuIHRydWU7CiB9
CkBAIC04NCwxMSArODQsMTEgQEAgc3RhdGljIHZvaWQgZHVtcF9sYXJnZV9jb21taXQocGFzX3N0
cmVhbQogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgImxhcmdlIGRlZmVycmVkIik7CiB9
CiAKLXN0YXRpYyB2b2lkIGNvbW1pdChwYXNfcmFuZ2UgcmFuZ2UpCitzdGF0aWMgdm9pZCBjb21t
aXQocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UpCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAotICAgIGlmIChwYXNfcmFuZ2VfaXNfZW1wdHkocmFu
Z2UpKQorICAgIGlmIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eShyYW5nZSkpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewpAQCAtOTcsMTAgKzk3LDEw
IEBAIHN0YXRpYyB2b2lkIGNvbW1pdChwYXNfcmFuZ2UgcmFuZ2UpCiAgICAgICAgICAgICAgICAo
dm9pZCopcmFuZ2UuZW5kKTsKICAgICB9CiAgICAgCi0gICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1p
dCgodm9pZCopcmFuZ2UuYmVnaW4sIHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CisgICAgcGFzX3Bh
Z2VfbWFsbG9jX2NvbW1pdCgodm9pZCopcmFuZ2UuYmVnaW4sIHBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlX3NpemUocmFuZ2UpLCByYW5nZS5tbWFwX2NhcGFiaWxpdHkpOwogCiAgICAgaWYgKFBBU19E
RUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkKLSAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVt
X2FkZChkdW1wX2xhcmdlX2NvbW1pdCwgZHVtcF9sYXJnZV9jb21taXQsIHBhc19yYW5nZV9zaXpl
KHJhbmdlKSk7CisgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoZHVtcF9sYXJnZV9jb21t
aXQsIGR1bXBfbGFyZ2VfY29tbWl0LCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKHJhbmdl
KSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbW1pdF9hbGwoCkBAIC0xMDgsMTkgKzEwOCwxOSBAQCBz
dGF0aWMgdm9pZCBjb21taXRfYWxsKAogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uLAogICAgIGJvb2wgZm9yX3JlYWwpCiB7Ci0gICAgcGFzX3JhbmdlIGN1
cnJlbnRfcmFuZ2U7CisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgY3VycmVudF9yYW5nZTsK
ICAgICAKICAgICBpZiAoIWxvZy0+dG90YWwpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBj
dXJyZW50X3JhbmdlID0gcGFzX3JhbmdlX2NyZWF0ZV9lbXB0eSgpOworICAgIGN1cnJlbnRfcmFu
Z2UgPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1wdHkoKTsKICAgICAKICAgICBm
b3IgKDs7KSB7Ci0gICAgICAgIHBhc19yYW5nZSBuZXh0X3JhbmdlID0gcGFzX3JhbmdlX21pbl9o
ZWFwX3Rha2VfbWluKCZsb2ctPmltcGwpOwotICAgICAgICBpZiAocGFzX3JhbmdlX2lzX2VtcHR5
KG5leHRfcmFuZ2UpKQorICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBuZXh0X3Jhbmdl
ID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXBfdGFrZV9taW4oJmxvZy0+aW1wbCk7
CisgICAgICAgIGlmIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eShuZXh0X3Jhbmdl
KSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAKLSAgICAgICAgUEFTX0FTU0VSVCghcGFz
X3JhbmdlX292ZXJsYXBzKGN1cnJlbnRfcmFuZ2UsIG5leHRfcmFuZ2UpKTsKKyAgICAgICAgUEFT
X0FTU0VSVCghcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfb3ZlcmxhcHMoY3VycmVudF9yYW5nZSwg
bmV4dF9yYW5nZSkpOwogICAgICAgICAKICAgICAgICAgaWYgKG5leHRfcmFuZ2UuYmVnaW4gPT0g
Y3VycmVudF9yYW5nZS5lbmQpIHsKICAgICAgICAgICAgIGN1cnJlbnRfcmFuZ2UuZW5kID0gbmV4
dF9yYW5nZS5lbmQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2cuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmgJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjYsOCArMjYsOCBAQAogI2lmbmRlZiBQQVNfTEFSR0VfRlJFRV9IRUFQX0RF
RkVSUkVEX0NPTU1JVF9MT0dfSAogI2RlZmluZSBQQVNfTEFSR0VfRlJFRV9IRUFQX0RFRkVSUkVE
X0NPTU1JVF9MT0dfSAogCi0jaW5jbHVkZSAicGFzX3JhbmdlLmgiCi0jaW5jbHVkZSAicGFzX3Jh
bmdlX21pbl9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCIKKyNp
bmNsdWRlICJwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIgogCiBQQVNfQkVHSU5f
RVhURVJOX0M7CiAKQEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcgogdHlwZWRlZiBzdHJ1Y3QgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2Fj
dGlvbiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwogCiBzdHJ1Y3QgcGFzX2xhcmdl
X2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nIHsKLSAgICBwYXNfcmFuZ2VfbWluX2hlYXAg
aW1wbDsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcCBpbXBsOwogICAgIHNp
emVfdCB0b3RhbDsgLyogVGhpcyBpcyBhY2N1cmF0ZSBzbyBsb25nIGFzIHRoZSByYW5nZXMgYXJl
IG5vbi1vdmVybGFwcGluZy4gKi8KIH07CiAKQEAgLTQ5LDcgKzQ5LDcgQEAgUEFTX0FQSSB2b2lk
IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZQogCiBQQVNfQVBJIGJvb2wgcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2FkZCgKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2RlZmVycmVkX2NvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfcmFuZ2UgcmFuZ2UsCisgICAgcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UsCiAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFu
c2FjdGlvbiogdHJhbnNhY3Rpb24pOwogCiBQQVNfQVBJIHZvaWQgcGFzX2xhcmdlX2ZyZWVfaGVh
cF9kZWZlcnJlZF9jb21taXRfbG9nX2NvbW1pdF9hbGwoCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFw
X2hlbHBlcnMuYwkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMJKHdvcmtpbmcgY29weSkKQEAg
LTg0LDcgKzg0LDggQEAgc3RhdGljIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0IGxhcgog
ICAgICAgICAKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9ib290X2ZyZWUoCiAgICAg
ICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luLCBhbGxvY2F0
aW9uX3Jlc3VsdC5iZWdpbiArIGFsaWduZWRfc2l6ZSksCi0gICAgICAgICAgICBwYXNfcGh5c2lj
YWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2spOworICAgICAgICAgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrLAorICAgICAgICAgICAgcGFzX21heV9t
bWFwKTsKICAgICB9CiAKICAgICByZXN1bHQucmVzdWx0ID0gKHZvaWQqKWFsbG9jYXRpb25fcmVz
dWx0LmJlZ2luOwpAQCAtMTM3LDcgKzEzOCw4IEBAIHZvaWQqIHBhc19sYXJnZV9mcmVlX2hlYXBf
aGVscGVyc190cnlfYWwKICAgICAgICAgICAgIGNvbW1pdF9yZXN1bHQgPSBwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sX2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAgICAgICAgICAgICAgcGFzX3Jhbmdl
X2NyZWF0ZShyZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArIHNpemUpLAogICAgICAgICAgICAg
ICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfaGVhcF9sb2NrKTsKKyAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xv
Y2tlZF9ieV9oZWFwX2xvY2ssCisgICAgICAgICAgICAgICAgcGFzX21heV9tbWFwKTsKICAgICAg
ICAgICAgIFBBU19BU1NFUlQoY29tbWl0X3Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAgICAgKCpu
dW1fYWxsb2NhdGVkX29iamVjdF9ieXRlc19wdHIpICs9IHNpemU7CkBAIC0xNjgsNyArMTcwLDgg
QEAgdm9pZCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfZGVhbGxvYwogICAgICAgICB9CiAg
ICAgICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZnJlZSgKICAgICAgICAgICAgIHBhc19yYW5n
ZV9jcmVhdGUoKHVpbnRwdHJfdClwdHIsICh1aW50cHRyX3QpcHRyICsgc2l6ZSksCi0gICAgICAg
ICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2spOworICAgICAg
ICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrLAorICAgICAg
ICAgICAgcGFzX21heV9tbWFwKTsKICAgICB9CiAgICAgcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFw
X2RlYWxsb2NhdGUoaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAodWludHB0cl90KXB0ciwgKHVpbnRwdHJfdClwdHIgKyBzaXplLApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jCShyZXZpc2lv
biAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
aGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDggQEAgc3RhdGljIHBhc19hbGxv
Y2F0aW9uX3Jlc3VsdCBhbGxvY2F0ZV9pbQogICAgICAgICAhcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShyZXN1
bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArICpzaXplKSwKICAgICAgICAgICAgIHRyYW5zYWN0aW9u
LAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9y
YW5nZV9jb21tb25fbG9jaykpIHsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNf
bG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisgICAgICAgICAgICBoZWFwX2Nv
bmZpZy0+bW1hcF9jYXBhYmlsaXR5KSkgewogICAgICAgICBwYXNfZmFzdF9sYXJnZV9mcmVlX2hl
YXBfZGVhbGxvY2F0ZSgKICAgICAgICAgICAgICZoZWFwLT5mcmVlX2hlYXAsIHJlc3VsdC5iZWdp
biwgcmVzdWx0LmJlZ2luICsgKnNpemUsCiAgICAgICAgICAgICByZXN1bHQuemVyb19tb2RlLCAm
Y29uZmlnKTsKQEAgLTIwMyw3ICsyMDQsOCBAQCBib29sIHBhc19sYXJnZV9oZWFwX3RyeV9kZWFs
bG9jYXRlKHVpbnRwCiAgICAgaWYgKGhlYXBfY29uZmlnLT5hbGlnbmVkX2FsbG9jYXRvcl90YWxr
c190b19zaGFyaW5nX3Bvb2wpIHsKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVl
KAogICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShtYXBfZW50cnkuYmVnaW4sIG1hcF9lbnRy
eS5lbmQpLAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmly
dHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5
X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAgICAgICAgICAgaGVh
cF9jb25maWctPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgfQogCiAgICAgaW5pdGlhbGl6ZV9jb25m
aWcoJmNvbmZpZywgTlVMTCwgbWFwX2VudHJ5LmhlYXAsIGhlYXBfY29uZmlnKTsKQEAgLTI1NSw3
ICsyNTcsOCBAQCBib29sIHBhc19sYXJnZV9oZWFwX3RyeV9zaHJpbmsodWludHB0cl90CiAgICAg
aWYgKGhlYXBfY29uZmlnLT5hbGlnbmVkX2FsbG9jYXRvcl90YWxrc190b19zaGFyaW5nX3Bvb2wp
IHsKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKAogICAgICAgICAgICAgcGFz
X3JhbmdlX2NyZWF0ZShtYXBfZW50cnkuYmVnaW4gKyBuZXdfc2l6ZSwgbWFwX2VudHJ5LmVuZCks
Ci0gICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3Jh
bmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9j
a2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisgICAgICAgICAgICBoZWFwX2NvbmZp
Zy0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICB9CiAKICAgICBpbml0aWFsaXplX2NvbmZpZygmY29u
ZmlnLCBOVUxMLCBoZWFwLCBoZWFwX2NvbmZpZyk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUu
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFy
Z2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwkocmV2aXNpb24gMjg4MTc5KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2lj
YWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaCIK
IAogI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2hl
YXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19s
YXJnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKQEAgLTQw
LDYgKzQxLDcgQEAgcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdCBwYXNfbGFyZ2VfaGVhcAogCiB0
eXBlZGVmIHN0cnVjdCB7CiAgICAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X2NhY2hlKiBjYWNoZTsKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZzsKICAgICBib29sIHNo
b3VsZF96ZXJvOwogfSBhbGlnbmVkX2FsbG9jYXRvcl9kYXRhOwogCkBAIC0xMzAsNyArMTMyLDgg
QEAgc3RhdGljIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0IGxhcgogICAgICAgIFNvIHdl
IHVzZSBib290X2ZyZWUsIHdoaWNoIGZyZWVzIHdoaWxlIGJ1bXBpbmcgdGhlIGVwb2NoLiAqLwog
ICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgICAgICBwYXNfcmFuZ2Vf
Y3JlYXRlKGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luLCBhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbiAr
IGFsaWduZWRfc2l6ZSksCi0gICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5
X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spOworICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5
X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAgICAgICBkYXRhLT5j
b25maWctPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAgcmVzdWx0LnJlc3VsdCA9ICh2b2lk
KilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbjsKICAgICByZXN1bHQucmVzdWx0X3NpemUgPSBzaXpl
OwpAQCAtMTU4LDYgKzE2MSw3IEBAIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19jYWMKICAgICBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUqIGNh
Y2hlLAogICAgIHNpemVfdCBzaXplLAogICAgIHBhc19hbGlnbm1lbnQgYWxpZ25tZW50LAorICAg
IHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcsCiAgICAgYm9vbCBzaG91bGRfemVybykKIHsK
ICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC0xNjYsNiArMTcwLDcg
QEAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhYwogICAgIHBhc19sYXJn
ZV9mcmVlX2hlYXBfY29uZmlnIGNvbmZpZzsKICAgICAKICAgICBkYXRhLmNhY2hlID0gY2FjaGU7
CisgICAgZGF0YS5jb25maWcgPSBoZWFwX2NvbmZpZzsKICAgICBkYXRhLnNob3VsZF96ZXJvID0g
c2hvdWxkX3plcm87CiAgICAgCiAgICAgY29uZmlnLnR5cGVfc2l6ZSA9IDE7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaAkocmV2
aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTMzLDcgKzMzLDkgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCitzdHJ1Y3QgcGFzX2hlYXBf
Y29uZmlnOwogc3RydWN0IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNo
ZTsKK3R5cGVkZWYgc3RydWN0IHBhc19oZWFwX2NvbmZpZyBwYXNfaGVhcF9jb25maWc7CiB0eXBl
ZGVmIHN0cnVjdCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUgcGFz
X2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlOwogCiBzdHJ1Y3QgcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlIHsKQEAgLTY0LDYgKzY2LDcgQEAg
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhYwogICAgIHBhc19sYXJnZV9o
ZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZSogY2FjaGUsCiAgICAgc2l6ZV90IHNpemUs
CiAgICAgcGFzX2FsaWdubWVudCBhbGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25m
aWcsCiAgICAgYm9vbCBzaG91bGRfemVybyk7CiAKIFBBU19FTkRfRVhURVJOX0M7CkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdl
X3NoYXJpbmdfcG9vbC5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMJKHdvcmtpbmcgY29weSkKQEAg
LTE2OCw3ICsxNjgsOCBAQCBzdGF0aWMgcGFzX2xhcmdlX3NoYXJpbmdfbm9kZSogY3JlYXRlX25v
CiAgICAgdWludDY0X3QgdXNlX2Vwb2NoLAogICAgIHBhc19jb21taXRfbW9kZSBpc19jb21taXR0
ZWQsCiAgICAgc2l6ZV90IG51bV9saXZlX2J5dGVzLAotICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICBwYXNfcGh5
c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUs
CisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgcGFzX2xh
cmdlX3NoYXJpbmdfbm9kZSogcmVzdWx0OwogICAgIApAQCAtMTg2LDYgKzE4Nyw3IEBAIHN0YXRp
YyBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBjcmVhdGVfbm8KICAgICByZXN1bHQtPmlzX2NvbW1p
dHRlZCA9IGlzX2NvbW1pdHRlZDsKICAgICByZXN1bHQtPm51bV9saXZlX2J5dGVzID0gbnVtX2xp
dmVfYnl0ZXM7CiAgICAgcmVzdWx0LT5zeW5jaHJvbml6YXRpb25fc3R5bGUgPSBzeW5jaHJvbml6
YXRpb25fc3R5bGU7CisgICAgcmVzdWx0LT5tbWFwX2NhcGFiaWxpdHkgPSBtbWFwX2NhcGFiaWxp
dHk7CiAKICAgICB2YWxpZGF0ZV9ub2RlX2lmX2Fzc2VydGluZ19hZ2dyZXNzaXZlbHkocmVzdWx0
KTsKICAgICAKQEAgLTE5NywxMSArMTk5LDEzIEBAIHN0YXRpYyBwYXNfbGFyZ2Vfc2hhcmluZ19u
b2RlKiBjcmVhdGVfYW4KICAgICB1aW50NjRfdCB1c2VfZXBvY2gsCiAgICAgcGFzX2NvbW1pdF9t
b2RlIGlzX2NvbW1pdHRlZCwKICAgICBzaXplX3QgbnVtX2xpdmVfYnl0ZXMsCi0gICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxl
KQorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9u
aXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkK
IHsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiByZXN1bHQ7CiAgICAgCi0gICAgcmVzdWx0
ID0gY3JlYXRlX25vZGUocmFuZ2UsIHVzZV9lcG9jaCwgaXNfY29tbWl0dGVkLCBudW1fbGl2ZV9i
eXRlcywgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICByZXN1bHQgPSBjcmVhdGVfbm9kZShy
YW5nZSwgdXNlX2Vwb2NoLCBpc19jb21taXR0ZWQsIG51bV9saXZlX2J5dGVzLCBzeW5jaHJvbml6
YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgbW1hcF9jYXBhYmlsaXR5KTsK
ICAgICAKICAgICBwYXNfcmVkX2JsYWNrX3RyZWVfaW5zZXJ0KAogICAgICAgICAmcGFzX2xhcmdl
X3NoYXJpbmdfdHJlZSwgJnJlc3VsdC0+dHJlZV9ub2RlLCBub2RlX2NvbXBhcmVfY2FsbGJhY2ss
CkBAIC0yMzcsNyArMjQxLDggQEAgc3RhdGljIHZvaWQgYm9vdF90cmVlKCkKICAgICAgICAgMCwK
ICAgICAgICAgcGFzX2NvbW1pdHRlZCwKICAgICAgICAgcGFzX3JhbmdlX3NpemUocmFuZ2UpLAot
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2Nv
bW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmly
dHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgcGFzX21heV9tbWFwKTsKIH0KIAogc3Rh
dGljIHZvaWQgZGVzdHJveV9ub2RlKHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIG5vZGUpCkBAIC0y
OTMsNiArMjk4LDkgQEAgc3RhdGljIGJvb2wgc3RhdGVzX21hdGNoKHBhc19sYXJnZV9zaGFyaQog
ICAgIGlmIChsZWZ0LT5zeW5jaHJvbml6YXRpb25fc3R5bGUgIT0gcmlnaHQtPnN5bmNocm9uaXph
dGlvbl9zdHlsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGxlZnQtPm1tYXBf
Y2FwYWJpbGl0eSAhPSByaWdodC0+bW1hcF9jYXBhYmlsaXR5KQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKICAgICBib3RoX2VtcHR5ID0KICAgICAgICAgIWxlZnQtPm51bV9saXZlX2J5dGVzICYm
CiAgICAgICAgICFyaWdodC0+bnVtX2xpdmVfYnl0ZXM7CkBAIC0zNzksNyArMzg3LDggQEAgc3Bs
aXRfbm9kZV9hbmRfZ2V0X3JpZ2h0X2ltcGwocGFzX2xhcmdlXwogICAgICAgICBub2RlLT51c2Vf
ZXBvY2gsCiAgICAgICAgIG5vZGUtPmlzX2NvbW1pdHRlZCwKICAgICAgICAgbm9kZS0+bnVtX2xp
dmVfYnl0ZXMgPyBub2RlLT5yYW5nZS5lbmQgLSBzcGxpdF9wb2ludCA6IDAsCi0gICAgICAgIG5v
ZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgICAgIG5vZGUtPnN5bmNocm9uaXphdGlv
bl9zdHlsZSwKKyAgICAgICAgbm9kZS0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAKICAgICBub2Rl
LT5yYW5nZS5lbmQgPSBzcGxpdF9wb2ludDsKICAgICBub2RlLT5udW1fbGl2ZV9ieXRlcyA9IG5v
ZGUtPm51bV9saXZlX2J5dGVzID8gc3BsaXRfcG9pbnQgLSBub2RlLT5yYW5nZS5iZWdpbiA6IDA7
CkBAIC02MDMsNyArNjEyLDggQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3Jhbmdl
IHJhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZl
cnJlZF9jb21taXRfbG9nKiBjb21taXRfbG9nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9u
aXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJv
bml6YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBt
aW5fbm9kZTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBtYXhfbm9kZTsKQEAgLTYxOCw5
ICs2MjgsMTAgQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAg
IAogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIkRvaW5nIHNwbGF0IGluIHJh
bmdlICVwLSVwLCBjb21tYW5kID0gJXMsIGVwb2NoID0gJWxsdSwgIgotICAgICAgICAgICAgICAg
ICJzeW5jaHJvbml6YXRpb25fc3R5bGUgPSAlc1xuIiwKKyAgICAgICAgICAgICAgICAic3luY2hy
b25pemF0aW9uX3N0eWxlID0gJXMsIG1tYXBfY2FwYWJpbGl0eSA9ICVzXG4iLAogICAgICAgICAg
ICAgICAgICh2b2lkKilyYW5nZS5iZWdpbiwgKHZvaWQqKXJhbmdlLmVuZCwgc3BsYXRfY29tbWFu
ZF9nZXRfc3RyaW5nKGNvbW1hbmQpLCAodW5zaWduZWQgbG9uZyBsb25nKWVwb2NoLAotICAgICAg
ICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlX2dldF9z
dHJpbmcoc3luY2hyb25pemF0aW9uX3N0eWxlKSk7CisgICAgICAgICAgICAgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGVfZ2V0X3N0cmluZyhzeW5jaHJvbml6YXRp
b25fc3R5bGUpLAorICAgICAgICAgICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHlfZ2V0X3N0cmlu
ZyhtbWFwX2NhcGFiaWxpdHkpKTsKICAgICB9CiAgICAgCiAgICAgcGFzX2hlYXBfbG9ja19hc3Nl
cnRfaGVsZCgpOwpAQCAtNzY5LDYgKzc4MCw3IEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdF9pbXBs
KHBhc19yYW5nZSByYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWRfY29tbWl0X21vZGUpOwogICAgICAg
ICAgICAgICAgICBpbm5lcl9ub2RlID0gc3VjY2Vzc29yKGlubmVyX25vZGUpKSB7CiAgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVChpbm5lcl9ub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUgPT0g
c3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGlubmVy
X25vZGUtPm1tYXBfY2FwYWJpbGl0eSA9PSBtbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICAgICAg
ICAgIGFmZmVjdGVkX2VuZCA9IGlubmVyX25vZGUtPnJhbmdlLmVuZDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIApAQCAtNzgzLDEyICs3OTUsMTQgQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0
X2ltcGwocGFzX3JhbmdlIHJhbgogICAgICAgICAgICAgY2FzZSBwYXNfcGh5c2ljYWxfbWVtb3J5
X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2s6IHsKICAgICAgICAgICAgICAgICBzd2l0Y2ggKGRlc2ly
ZWRfY29tbWl0X21vZGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIHBhc19kZWNvbW1pdHRlZDoK
LSAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KCh2b2lkKilhZmZl
Y3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4pOworICAgICAgICAgICAg
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoKHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBh
ZmZlY3RlZF9lbmQgLSBhZmZlY3RlZF9iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICAgICAgICAg
IGRlY29tbWl0X2xvZy0+dG90YWwgKz0gYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW47CiAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICBjYXNlIHBhc19jb21taXR0ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHBhc19wYWdl
X21hbGxvY19jb21taXQoKHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQgLSBhZmZl
Y3RlZF9iZWdpbik7CisgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQo
KHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQgLSBhZmZlY3RlZF9iZWdpbiwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbWFwX2NhcGFiaWxpdHkp
OwogICAgICAgICAgICAgICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9GT1JfQ09N
TUlUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1bXBfbGFyZ2VfY29tbWl0LCBkdW1wX2xhcmdl
X2NvbW1pdCwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4pOwpAQCAtODA3LDE0ICs4MjEs
MTUgQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAgICAgICAg
ICAgICAgICAgICB3YXNfYWRkZWQgPSBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX2FkZCgKICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2xvZywKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShhZmZlY3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZwYXNf
dmlydHVhbF9yYW5nZV9jb21tb25fbG9jayksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgJnBhc192aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1tYXBfY2FwYWJp
bGl0eSksCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKICAgICAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgIGNhc2UgcGFzX2NvbW1pdHRlZDoKICAgICAgICAgICAgICAgICAgICAgd2FzX2FkZGVkID0g
cGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2FkZCgKICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmFu
Z2VfY3JlYXRlKGFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKGFmZmVjdGVkX2JlZ2luLCBh
ZmZlY3RlZF9lbmQsIG1tYXBfY2FwYWJpbGl0eSksCiAgICAgICAgICAgICAgICAgICAgICAgICB0
cmFuc2FjdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAg
IH0KQEAgLTg5NSwxMyArOTEwLDE4IEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdF9pbXBsKHBhc19y
YW5nZSByYW4KICAgICAgICAgY2FzZSBzcGxhdF9hbGxvY2F0ZV9hbmRfY29tbWl0OgogICAgICAg
ICBjYXNlIHNwbGF0X2ZyZWU6CiAgICAgICAgICAgICBQQVNfQVNTRVJUKG5vZGUtPnN5bmNocm9u
aXphdGlvbl9zdHlsZSA9PSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgICAgICAgICAgUEFT
X0FTU0VSVChub2RlLT5tbWFwX2NhcGFiaWxpdHkgPT0gbW1hcF9jYXBhYmlsaXR5KTsKICAgICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ugc3BsYXRfYm9vdF9mcmVlOgogICAgICAgICAg
ICAgUEFTX0FTU0VSVCgKICAgICAgICAgICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5
bGUKICAgICAgICAgICAgICAgICA9PSBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92
aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoCisgICAg
ICAgICAgICAgICAgbm9kZS0+bW1hcF9jYXBhYmlsaXR5CisgICAgICAgICAgICAgICAgPT0gcGFz
X21heV9tbWFwKTsKICAgICAgICAgICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSA9IHN5
bmNocm9uaXphdGlvbl9zdHlsZTsKKyAgICAgICAgICAgIG5vZGUtPm1tYXBfY2FwYWJpbGl0eSA9
IG1tYXBfY2FwYWJpbGl0eTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTk3
MCwxMiArOTkwLDEzIEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdChwYXNfcmFuZ2UgcmFuZ2UsCiAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRf
bG9nKiBjb21taXRfbG9nLAogICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNv
bW1pdF9sb2cqIGRlY29tbWl0X2xvZywKICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2lj
YWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAg
ICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRp
b25fc3R5bGUpCisgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5j
aHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgICAgICAgICAgICAg
ICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIGJvb2wg
cmVzdWx0OwogICAgIAogICAgIHJlc3VsdCA9IHRyeV9zcGxhdF9pbXBsKAotICAgICAgICByYW5n
ZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9sb2csIGRlY29tbWl0X2xvZywgdHJhbnNhY3Rpb24s
IHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgICAgIHJhbmdlLCBjb21tYW5kLCBlcG9jaCwg
Y29tbWl0X2xvZywgZGVjb21taXRfbG9nLCB0cmFuc2FjdGlvbiwgc3luY2hyb25pemF0aW9uX3N0
eWxlLCBtbWFwX2NhcGFiaWxpdHkpOwogICAgIAogICAgIGlmIChwYXNfbGFyZ2Vfc2hhcmluZ19w
b29sX3ZhbGlkYXRlX2VhY2hfc3BsYXQpCiAgICAgICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xf
dmFsaWRhdGUoKTsKQEAgLTk4OSwxOSArMTAxMCwyMSBAQCBzdGF0aWMgdm9pZCBzcGxhdChwYXNf
cmFuZ2UgcmFuZ2UsCiAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVy
cmVkX2NvbW1pdF9sb2cqIGNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJy
ZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICBwYXNfcGh5
c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgICAgICAg
IHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlv
bl9zdHlsZSkKKyAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25p
emF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAgICAgIHBh
c19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIGJvb2wgcmVzdWx0Owog
ICAgIAogICAgIHJlc3VsdCA9IHRyeV9zcGxhdCgKLSAgICAgICAgcmFuZ2UsIGNvbW1hbmQsIGVw
b2NoLCBjb21taXRfbG9nLCBkZWNvbW1pdF9sb2csIHRyYW5zYWN0aW9uLCBzeW5jaHJvbml6YXRp
b25fc3R5bGUpOworICAgICAgICByYW5nZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9sb2csIGRl
Y29tbWl0X2xvZywgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSwgbW1hcF9jYXBh
YmlsaXR5KTsKICAgICAKICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7CiB9CiAKIHZvaWQgcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbF9ib290X2ZyZWUoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAotICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9z
dHlsZSkKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5j
aHJvbml6YXRpb25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxp
dHkpCiB7CiAgICAgdWludDY0X3QgZXBvY2g7CiAKQEAgLTEwMDksMTEgKzEwMzIsMTIgQEAgdm9p
ZCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgcmV0dXJuOwogICAg
IAogICAgIGVwb2NoID0gcGFzX2dldF9lcG9jaCgpOwotICAgIHNwbGF0KHJhbmdlLCBzcGxhdF9i
b290X2ZyZWUsIGVwb2NoLCBOVUxMLCBOVUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUp
OworICAgIHNwbGF0KHJhbmdlLCBzcGxhdF9ib290X2ZyZWUsIGVwb2NoLCBOVUxMLCBOVUxMLCBO
VUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAKIHZvaWQg
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKHBhc19yYW5nZSByYW5nZSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9u
X3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9u
aXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tbWFw
X2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHVpbnQ2NF90IGVwb2NoOwogCkBA
IC0xMDIyLDEzICsxMDQ2LDE0IEBAIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKHBh
c19yYW4KICAgICAKICAgICBlcG9jaCA9IHBhc19nZXRfZXBvY2goKTsKICAgICAKLSAgICBzcGxh
dChyYW5nZSwgc3BsYXRfZnJlZSwgZXBvY2gsIE5VTEwsIE5VTEwsIE5VTEwsIHN5bmNocm9uaXph
dGlvbl9zdHlsZSk7CisgICAgc3BsYXQocmFuZ2UsIHNwbGF0X2ZyZWUsIGVwb2NoLCBOVUxMLCBO
VUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAK
IGJvb2wgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgIHBh
c19yYW5nZSByYW5nZSwKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFu
c2FjdGlvbiwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBz
eW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6
YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgIHBhc19tbWFwX2NhcGFiaWxp
dHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBm
YWxzZTsKICAgICAKQEAgLTEwNTEsNyArMTA3Niw3IEBAIGJvb2wgcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9hbGxvY2F0ZV9hbmQKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1p
dF9sb2dfY29uc3RydWN0KCZjb21taXRfbG9nKTsKIAogICAgIGlmICghdHJ5X3NwbGF0KHJhbmdl
LCBzcGxhdF9hbGxvY2F0ZV9hbmRfY29tbWl0LCBlcG9jaCwKLSAgICAgICAgICAgICAgICAgICAm
Y29tbWl0X2xvZywgTlVMTCwgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSkpIHsK
KyAgICAgICAgICAgICAgICAgICAmY29tbWl0X2xvZywgTlVMTCwgdHJhbnNhY3Rpb24sIHN5bmNo
cm9uaXphdGlvbl9zdHlsZSwgbW1hcF9jYXBhYmlsaXR5KSkgewogICAgICAgICBwYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2dfZGVzdHJ1Y3QoJmNvbW1pdF9sb2cpOwogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkdpdmluZyB1cCBvbiBhbGxv
Y2F0ZSBhbmQgY29tbWl0IGJlY2F1c2UgdGhlIHNwbGF0IGZhaWxlZC5cbiIpOwpAQCAtMTEyNSw3
ICsxMTUwLDcgQEAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9kZWNvbW1pdF9sZWFzdF9yZQogICAg
IH0KICAgICAKICAgICBpZiAodHJ5X3NwbGF0KG5vZGUtPnJhbmdlLCBzcGxhdF9kZWNvbW1pdCwg
MCwgTlVMTCwgZGVjb21taXRfbG9nLCBOVUxMLAotICAgICAgICAgICAgICAgICAgbm9kZS0+c3lu
Y2hyb25pemF0aW9uX3N0eWxlKSkgeworICAgICAgICAgICAgICAgICAgbm9kZS0+c3luY2hyb25p
emF0aW9uX3N0eWxlLCBub2RlLT5tbWFwX2NhcGFiaWxpdHkpKSB7CiAgICAgICAgIGlmICh2ZXJi
b3NlKQogICAgICAgICAgICAgcGFzX2xvZygiVGhlIHNwbGF0IHdvcmtlZC5cbiIpOwogICAgICAg
ICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hh
cmluZ19wb29sLmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMy
LDYgKzMyLDcgQEAKICNpbmNsdWRlICJwYXNfZnJlZV9tb2RlLmgiCiAjaW5jbHVkZSAicGFzX2hl
YXBfc3VtbWFyeS5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBk
YXRlX21vZGUuaCIKKyNpbmNsdWRlICJwYXNfbW1hcF9jYXBhYmlsaXR5LmgiCiAjaW5jbHVkZSAi
cGFzX21pbl9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNpcGFudC5o
IgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlLmgi
CkBAIC01MSwxMCArNTIsMTAgQEAgc3RydWN0IHBhc19sYXJnZV9zaGFyaW5nX25vZGUgewogICAg
IHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlIHRyZWVfbm9kZTsKICAgICAKICAgICBwYXNfY29tbWl0
X21vZGUgaXNfY29tbWl0dGVkIDogMTsKLQogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSA6IDE7CisgICAgcGFzX21tYXBf
Y2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkgOiAxOwogCi0gICAgdW5zaWduZWQgaW5kZXhfaW5f
bWluX2hlYXAgOiAzMDsgLyogaXQncyBhIG9uZS1iYXNlZCBpbmRleDsgaXQncyB6ZXJvIHRvIGlu
ZGljYXRlIHRoYXQgd2UncmUgbm90IGluCisgICAgdW5zaWduZWQgaW5kZXhfaW5fbWluX2hlYXAg
OiAyOTsgLyogaXQncyBhIG9uZS1iYXNlZCBpbmRleDsgaXQncyB6ZXJvIHRvIGluZGljYXRlIHRo
YXQgd2UncmUgbm90IGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGhlIG1pbl9oZWFwLiAqLwogICAgIAogICAgIHBhc19yYW5nZSByYW5nZTsgLyogSGFzIHRvIGJl
IGEgcGFnZSByYW5nZS4gKi8KQEAgLTE0NSwxNiArMTQ2LDE5IEBAIFBBU19BUEkgZXh0ZXJuIHBh
c19sYXJnZV9zaGFyaW5nX3Bvb2xfZXAKIC8qIFRoaXMgbWFrZXMgdGhlIG1lbW9yeSBmcmVlIGFu
ZCBhbHNvIGJ1bXBzIHRoZSBlcG9jaC4gKi8KIFBBU19BUEkgdm9pZCBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2Jvb3RfZnJlZSgKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCi0gICAgcGFzX3BoeXNpY2Fs
X21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAg
ICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRp
b25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpOwogCiBQ
QVNfQVBJIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKAogICAgIHBhc19yYW5nZSBy
YW5nZSwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5j
aHJvbml6YXRpb25fc3R5bGUpOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0
aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5
IG1tYXBfY2FwYWJpbGl0eSk7CiAKIFBBU19BUEkgYm9vbCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
X2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAogICAgIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAotICAgIHBhc19waHlzaWNhbF9t
ZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9u
X3N0eWxlLAorICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIAogLyog
VGhpcyBkb2Vzbid0IGFjdHVhbGx5IGRlY29tbWl0IHRoZSBtZW1vcnkuIEl0IGp1c3QgdGVsbHMg
eW91IGFib3V0IHdoYXQgbWVtb3J5IHRvIGRlY29tbWl0CiAgICB1c2luZyB0aGUgZGVjb21taXRf
bG9nLiBJdCdzIHlvdXIgam9iIHRvIGRlY29tbWl0IGV2ZXJ5dGhpbmcgaW4gdGhhdCBsb2csIHdo
aWNoIHlvdSBjYW4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
YXJnZV92aXJ0dWFsX3JhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaAkobm9uZXhpc3RlbnQpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTEFSR0VfVklSVFVBTF9SQU5HRV9I
CisjZGVmaW5lIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX0gKKworI2luY2x1ZGUgInBhc19sb2Nr
LmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgorI2luY2x1ZGUgInBhc19yYW5n
ZS5oIgorI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0
cnVjdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZTsKK3R5cGVkZWYgc3RydWN0IHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlOworCitzdHJ1Y3QgcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2UgeworICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICB1aW50cHRyX3QgZW5k
OworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5OworfTsKKworc3RhdGlj
IGlubGluZSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9j
cmVhdGUodWludHB0cl90IGJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuZCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQoreworICAgIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlIHJlc3VsdDsKKyAgICByZXN1bHQuYmVnaW4gPSBiZWdpbjsKKyAg
ICByZXN1bHQuZW5kID0gZW5kOworICAgIHJlc3VsdC5tbWFwX2NhcGFiaWxpdHkgPSBtbWFwX2Nh
cGFiaWxpdHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBwYXNfbGFy
Z2VfdmlydHVhbF9yYW5nZSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1wdHkodm9p
ZCkKK3sKKyAgICByZXR1cm4gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKDAsIDAsIHBh
c19tYXlfbm90X21tYXApOworfQorCitzdGF0aWMgaW5saW5lIHBhc19yYW5nZSBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZV9nZXRfcmFuZ2UocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UpCit7
CisgICAgcmV0dXJuIHBhc19yYW5nZV9jcmVhdGUocmFuZ2UuYmVnaW4sIHJhbmdlLmVuZCk7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eShw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4gcGFzX3JhbmdlX2lz
X2VtcHR5KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5nZShyYW5nZSkpOworfQorCitz
dGF0aWMgaW5saW5lIHNpemVfdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKHBhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVybiBwYXNfcmFuZ2Vfc2l6ZShwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfcmFuZ2UocmFuZ2UpKTsKK30KKworc3RhdGljIGlubGlu
ZSBib29sIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX292ZXJsYXBzKHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlIGxlZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmlnaHQpCit7CisgICAgcmV0dXJuIHBh
c19yYW5nZV9vdmVybGFwcyhwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfcmFuZ2UobGVmdCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9n
ZXRfcmFuZ2UocmlnaHQpKTsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBB
U19MQVJHRV9WSVJUVUFMX1JBTkdFX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9taW5faGVhcC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaWZuZGVmIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX01JTl9IRUFQX0gKKyNk
ZWZpbmUgUEFTX0xBUkdFX1ZJUlRVQUxfUkFOR0VfTUlOX0hFQVBfSAorCisjaW5jbHVkZSAicGFz
X21pbl9oZWFwLmgiCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisjaW5jbHVkZSAicGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2UuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdGF0aWMgaW5saW5l
IGludCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jb21wYXJlX2JlZ2luKHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlKiBsZWZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogcmlnaHQpCit7CisgICAg
aWYgKGxlZnQtPmJlZ2luIDwgcmlnaHQtPmJlZ2luKQorICAgICAgICByZXR1cm4gLTE7CisgICAg
aWYgKGxlZnQtPmJlZ2luID09IHJpZ2h0LT5iZWdpbikKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
cmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlX2dldF9pbmRleChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogcmFuZ2UpCit7CisgICAgUEFT
X0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIFBBU19VTlVTRURfUEFSQU0o
cmFuZ2UpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2Vfc2V0X2luZGV4KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlKiByYW5nZSwg
c2l6ZV90IGluZGV4KQoreworICAgIFBBU19VTlVTRURfUEFSQU0ocmFuZ2UpOworICAgIFBBU19V
TlVTRURfUEFSQU0oaW5kZXgpOworfQorCitQQVNfQ1JFQVRFX01JTl9IRUFQKAorICAgIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLAorICAgIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
LAorICAgIDMyLAorICAgIC5jb21wYXJlID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY29tcGFy
ZV9iZWdpbiwKKyAgICAuZ2V0X2luZGV4ID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X2lu
ZGV4LAorICAgIC5zZXRfaW5kZXggPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zZXRfaW5kZXgp
OworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xBUkdFX1ZJUlRVQUxfUkFO
R0VfTUlOX0hFQVBfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODgxNzkpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMJ
KHdvcmtpbmcgY29weSkKQEAgLTc3LDggKzc3LDcgQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbnN0cnVjdChwYXNfbAogICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2RpcmVjdG9y
eV9wdHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KS0+Y29uZmlnX2tpbmQp
OwogCiAgICAgICAgIGJpdGZpdF9hbGxvY2F0b3IgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9i
aXRmaXQoYWxsb2NhdG9yKTsKLSAgICAgICAgYml0Zml0X2FsbG9jYXRvci0+c2l6ZV9jbGFzcyA9
IHNpemVfY2xhc3M7Ci0gICAgICAgIGJpdGZpdF9hbGxvY2F0b3ItPnZpZXcgPSBOVUxMOworICAg
ICAgICBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb25zdHJ1Y3QoYml0Zml0X2FsbG9jYXRvciwgc2l6
ZV9jbGFzcyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9ub3JtYWwoZGlyZWN0b3J5LT5i
YXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogICAgIApAQCAtMTIwLDYgKzExOSw5IEBAIHZvaWQgcGFz
X2xvY2FsX2FsbG9jYXRvcl9tb3ZlKHBhc19sb2NhbF8KIAogICAgIHBhc19oZWFwX2xvY2tfYXNz
ZXJ0X2hlbGQoKTsgLyogTmVlZGVkIHRvIG1vZGlmeSBhIGxlbmllbnRfY29tcGFjdF9wdHIuICov
CiAKKyAgICBQQVNfQVNTRVJUKCFkc3QtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CisgICAg
UEFTX0FTU0VSVCghc3JjLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworCiAgICAgZGlyZWN0
b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkoc3JjLT52aWV3KTsK
ICAgICAKICAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9jYWxfYWxs
b2NhdG9yX3NpemUoZGlyZWN0b3J5KTsKQEAgLTE1OCw2ICsxNjAsMTMgQEAgc3RhdGljIGJvb2wg
c3RvcF9pbXBsKAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJzdG9wcGluZyBh
bGxvY2F0b3IgJXBcbiIsIGFsbG9jYXRvcik7CiAKKyAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRv
cl9oYXNfYml0Zml0KGFsbG9jYXRvcikpIHsKKyAgICAgICAgUEFTX0FTU0VSVCghYWxsb2NhdG9y
LT5wYWdlX2lzaCk7CisgICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yX3N0b3AocGFzX2xvY2Fs
X2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvcikpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICAvKiBUaGlzIGFsc28gc3RvcHMgdXMgZnJvbSBkb2luZyBhbnl0aGluZyB3
aGVuIHdlJ3ZlIGJlZW4gZGVjb21taXR0ZWQuICovCiAgICAgaWYgKCFhbGxvY2F0b3ItPnBhZ2Vf
aXNoKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMjAwLDggKzIwOSw2IEBAIHN0YXRpYyBi
b29sIHN0b3BfaW1wbCgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLyogRklYTUU6IFRoaXMgdGhp
bmcgaXMgbWVhbmluZ2xlc3Mgd2l0aCBoZWFwX2xvY2tfaG9sZF9tb2RlID0gcGFzX2xvY2tfaXNf
bm90X2hlbGQgdW5sZXNzIHlvdQotICAgYWxzbyBzZXQgaXNfaW5fdXNlIHRvIHRydWUuIFNlZW1z
IGxpa2UgbWF5YmUgdGhpcyBzaG91bGQgc2V0IGl0IGZvciB5b3U/ICovCiBib29sIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc3RvcCgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCiAg
ICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLApAQCAtMjEwLDggKzIxNywyNyBA
QCBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2
ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgYm9vbCByZXN1bHQ7CisgICAgYm9vbCBpc19pbl91
c2U7CiAKLSAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3Vz
ZSk7CisgICAgaXNfaW5fdXNlID0gYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2U7
CisgICAgaWYgKGlzX2luX3VzZSkgeworICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3IgPSAlcFxu
IiwgYWxsb2NhdG9yKTsKKyAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0
YS5raW5kID0gJXNcbiIsCisgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5k
X2dldF9zdHJpbmcoYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kKSk7CisgICAgICAgIHBh
c19sb2coImFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gJXNcbiIsCisgICAg
ICAgICAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPyAieWVzIiA6
ICJubyIpOworICAgICAgICBwYXNfbG9nKCJhdCB0aW1lIG9mIGFzc2VydDogYWxsb2NhdG9yLT5z
Y2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSAlc1xuIiwKKyAgICAgICAgICAgICAgICBpc19pbl91
c2UgPyAieWVzIiA6ICJubyIpOworICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSBy
ZWFjaGVkIik7CisgICAgfQorCisgICAgLyogRG9pbmcgdGhpcyBjaGVjayBiZWZvcmUgc2V0dGlu
ZyBpc19pbl91c2UgZ3VhcmRzIGFnYWluc3Qgc2l0dWF0aW9ucyB3aGVyZSBjYWxsaW5nIHN0b3Ag
d291bGQKKyAgICAgICByZWNvbW1pdCBhIGRlY29tbWl0dGVkIGFsbG9jYXRvci4KKyAgICAKKyAg
ICAgICBUaGlzIGlzIGEgcHJldHR5IHdlYWsgb3B0aW1pemF0aW9uIHNpbmNlIGluIG15IGV4cGVy
aW1lbnRzLCByZWFkcyBjYXVzZSBjb21taXRzLiBXZWIgVGVtcGxhdGUKKyAgICAgICBGcmFtZXdv
cmshICovCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3Rv
cHBlZCgmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSkpCisgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwogICAgIHBh
c19jb21waWxlcl9mZW5jZSgpOwpAQCAtMjIyLDYgKzI0OCw3IEBAIGJvb2wgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zdG9wKAogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2co
IkRpZCBzdG9wIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsKICAgICAgICAgYWxsb2NhdG9y
LT5zY2F2ZW5nZXJfZGF0YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisgICAgICAgIGFsbG9jYXRv
ci0+c2NhdmVuZ2VyX2RhdGEua2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxv
Y2F0b3Jfa2luZDsKICAgICB9CiAgICAgCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lu
bGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDM5IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3IKICAgICBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID0gcGFzX2xvY2Fs
X2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfbm9ybWFsKGtpbmQpOwogfQogCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbW1pdF9pZl9uZWNl
c3NhcnlfaW1wbChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIC8qIEl0J3MgcG9zc2libGUgdGhh
dDoKKyAgICAgICAKKyAgICAgICAtIFRoZSBhbGxvY2F0b3Igd2FzIHN0b3BwZWQuCisgICAgICAg
LSBXZSBzdGFydGVkIGFsbG9jYXRpbmcsIGFuZCBzZXQgaXNfaW5fdXNlID0gdHJ1ZS4KKyAgICAg
ICAtIFNvbWVvbmUgZGVjb21taXR0ZWQgdGhlIHBhZ2UgdGhhdCB0aGlzIGFsbG9jYXRvciB3YXMg
b24sIGNhdXNpbmcgaXNfaW5fdXNlIHRvIGJlY29tZSBmYWxzZS4KKyAgICAgICAKKyAgICAgICBB
bmQgdGhlbiB3ZSBlbmQgdXAgaW4gaGVyZS4KKyAgICAKKyAgICAgICBUaGVyZWZvcmUsIHdlIGNh
bm5vdCBhc3NlcnQgdGhhdCBpc19pbl91c2UgaXMgdHJ1ZS4gQnV0LCB3aGVuIHdlIHJldHVybiBm
cm9tIGhlcmUsIGl0IG11c3QgYmUgdHJ1ZS4gKi8KKyAgICBpZiAoUEFTX0xJS0VMWShhbGxvY2F0
b3ItPnNjYXZlbmdlcl9kYXRhLmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jf
a2luZCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb25maWcua2luZCA9PSBwYXNfaGVh
cF9jb25maWdfa2luZF9wYXNfdXRpbGl0eSkgeworICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdl
cl9kYXRhLmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3coCisgICAgICAgICZhbGxvY2F0b3ItPnNjYXZlbmdl
cl9kYXRhLAorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1p
dF9pZl9uZWNlc3Nhcnlfc2xvd19pc19pbl91c2Vfd2l0aF9ub19sb2Nrc19oZWxkX21vZGUsCisg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpOworfQorCitzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbW1pdF9pZl9uZWNl
c3NhcnkocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19o
ZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZf
bmVjZXNzYXJ5X2ltcGwoYWxsb2NhdG9yLCBjb25maWcpOworICAgIFBBU19BU1NFUlQoYWxsb2Nh
dG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworfQorCiBzdGF0aWMgaW5saW5lIHZvaWQg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxv
Y2F0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKQEAgLTc0NSw3ICs3NzgsNiBA
QCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAgICAgICB3b3Jk
X2luZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRzKHBhZ2Vf
Y29uZmlnKTsKICAgICAgICAgIHdvcmRfaW5kZXgrKykgewogICAgICAgICB1bnNpZ25lZCBmdWxs
X2FsbG9jX3dvcmQ7Ci0gICAgICAgIGJvb2wgc2hvdWxkX2JlX2VsaWdpYmxlOwogCiAgICAgICAg
IGZ1bGxfYWxsb2Nfd29yZCA9IGJpdHNbd29yZF9pbmRleF07CiAgICAgICAgIApAQCAtNzU1LDIx
ICs3ODcsNiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAg
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiTm9uemVybyBmdWxsIGFsbG9j
IHdvcmQgYXQgaW5kZXggPSAlenVcbiIsIHdvcmRfaW5kZXgpOwogCi0gICAgICAgIC8qIFdlIGdv
IGludG8gdGhpcyBsb29wIHdpdGggdGhlIHBhcnRpYWwgdmlldyBhcHBlYXJpbmcgZWxpZ2liaWxl
IHRvIGRlYWxsb2NhdGlvbnMuIFNvLAotICAgICAgICAgICBzb21ldGhpbmcgbWF5IGhhdmUgYmVl
biBmcmVlZC4gSWYgaXQgd2FzLCBsZXQgZm9sa3Mga25vdy4gTm90ZSB0aGF0IHRoZSBvbmx5IHJl
YXNvbiB3aHkKLSAgICAgICAgICAgd2UgaGF2ZSBhIHNwZWNpYWwgY2FzZSBmb3IgZW5hYmxlX2Vt
cHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uIGlzIHRoYXQgdGhpcwotICAgICAgICAg
ICBzaW1wbGlmaWVzIHRoZSBsb2dpYyBpbiBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3VsZF9iZV9l
bGlnaWJsZSgpLiBJdCB3b3VsZCBvbmx5IGJlIGEgdGlueQotICAgICAgICAgICBiZWhhdmlvcmFs
IGNoYW5nZSAtIHNsaWdodGx5IGJldHRlciBmb3Igc3BhY2UsIHNsaWdodGx5IHdvcnNlIGZvciB0
aW1lIC0gdG8gZ2V0IHJpZCBvZgotICAgICAgICAgICB0aGlzIHNwZWNpYWwgY2FzZSwgaW4gd2hp
Y2ggY2FzZSB3ZSdkIGhhdmUgdG8gZWRpdCBzaG91bGRfYmVfZWxpZ2libGUoKS4gKi8KLSAgICAg
ICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXph
dGlvbl9mb3Jfc2hhcmVkKQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0gISEoZnVs
bF9hbGxvY193b3JkICYmICFwYWdlLT5hbGxvY19iaXRzW3dvcmRfaW5kZXhdKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0gISEoZnVsbF9hbGxvY193b3Jk
ICYgfnBhZ2UtPmFsbG9jX2JpdHNbd29yZF9pbmRleF0pOwotICAgICAgICBpZiAoc2hvdWxkX2Jl
X2VsaWdpYmxlKSB7Ci0gICAgICAgICAgICB2aWV3LT5lbGlnaWJpbGl0eV9ub3RpZmljYXRpb25f
aGFzX2JlZW5fZGVmZXJyZWQgPSB0cnVlOwotICAgICAgICAgICAgdmlldy0+ZWxpZ2liaWxpdHlf
aGFzX2JlZW5fbm90ZWQgPSB0cnVlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKCFoYXNfZmly
c3Rfbm9uX3plcm9fd29yZF9pbmRleCkgewogICAgICAgICAgICAgZmlyc3Rfbm9uX3plcm9fd29y
ZF9pbmRleCA9IHdvcmRfaW5kZXg7CiAgICAgICAgICAgICBoYXNfZmlyc3Rfbm9uX3plcm9fd29y
ZF9pbmRleCA9IHRydWU7CkBAIC0xMDYwLDggKzEwNzcsOCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKCZ2aWV3X2NhY2hlLT5zY2F2ZW5nZXJfZGF0YSk7
Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNf
ZW1wdHkodmlld19jYWNoZSkpIHsKKworICAgICAgICAgICAgaWYgKHBhc19sb2NhbF92aWV3X2Nh
Y2hlX3ByZXBhcmVfdG9fcG9wKHZpZXdfY2FjaGUpKSB7CiAgICAgICAgICAgICAgICAgbmV3X3Zp
ZXcgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc192aWV3KHBhc19sb2NhbF92aWV3
X2NhY2hlX3BvcCh2aWV3X2NhY2hlKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9leGNsdXNp
dmUobmV3X3ZpZXcpKTsKQEAgLTE1MTcsMTEgKzE1MzQsMTQgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfc21hbGxfcwogewogICAgIFBBU19BU1NFUlQoIXBhc19kZWJ1Z19oZWFw
X2lzX2VuYWJsZWQoY29uZmlnLmtpbmQpKTsKICAgICAKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X2NvbW1pdF9pZl9uZWNlc3NhcnkoYWxsb2NhdG9yLCBjb25maWcpOworICAgIAogICAgIGZvciAo
OzspIHsKICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKICAgICAgICAgYm9v
bCByZWZpbGxfcmVzdWx0OwogCiAgICAgICAgIFBBU19BU1NFUlQoY29uZmlnLnNtYWxsX3NlZ3Jl
Z2F0ZWRfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisKICAgICAgICAgUEFTX1RFU1RJTkdfQVNT
RVJUKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdf
a2luZF9jcmVhdGVfbm9ybWFsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZp
Zy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5raW5kKSk7CiAKQEAgLTE1NzcsOCArMTU5Nyw5IEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291dF9vZl8KICAgICBpZiAoY29uZmln
LnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCiAgICAgICAgIG91cl9raW5k
ID09IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX2JpdGZpdCgKICAgICAg
ICAgICAgIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLmtpbmQpKSB7CisgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2NhdGlvbigmYWxs
b2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgIHJldHVybiBjb25maWcuc21hbGxfYml0
Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKAotICAgICAgICAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvciksIHNpemUsIGFsaWdu
bWVudCk7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQoYWxsb2Nh
dG9yKSwgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQpOwogICAgIH0KICAgICAKICAgICBpZiAo
Y29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYKQEAgLTE1
OTIsOCArMTYxMyw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291dF9vZl8K
ICAgICBpZiAoY29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCAmJgog
ICAgICAgICBvdXJfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0
ZV9iaXRmaXQoCiAgICAgICAgICAgICBjb25maWcubWVkaXVtX2JpdGZpdF9jb25maWcua2luZCkp
IHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRfdXNlX2Zv
cl9hbGxvY2F0aW9uKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhKTsKICAgICAgICAgcmV0dXJu
IGNvbmZpZy5tZWRpdW1fYml0Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlKAotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9j
YXRvciksIHNpemUsIGFsaWdubWVudCk7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X2dldF9iaXRmaXQoYWxsb2NhdG9yKSwgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQpOwogICAg
IH0KICAgICAKICAgICBpZiAoY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UuaXNf
ZW5hYmxlZCAmJgpAQCAtMTYxNyw4ICsxNjM5LDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlf
YWxsb2NhdGVfb3V0X29mXwogICAgIGlmIChjb25maWcubWFyZ2VfYml0Zml0X2NvbmZpZy5iYXNl
LmlzX2VuYWJsZWQgJiYKICAgICAgICAgb3VyX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZF9jcmVhdGVfYml0Zml0KAogICAgICAgICAgICAgY29uZmlnLm1hcmdlX2JpdGZp
dF9jb25maWcua2luZCkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhKTsK
ICAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXJnZV9iaXRmaXRfY29uZmlnLnNwZWNpYWxpemVkX2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGUoCi0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2dl
dF9iaXRmaXQoYWxsb2NhdG9yKSwgc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBhbGxvY2F0b3IsIHNpemUsIGFs
aWdubWVudCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBwYXNfZmFzdF9wYXRoX2FsbG9jYXRp
b25fcmVzdWx0X2NyZWF0ZV9uZWVkX3Nsb3coKTsKQEAgLTE2MzcsOSArMTY2MCwxMSBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93X2ltCiAgICAgICAgIHBhc19sb2coIkNh
bGxlZCB0cnlfYWxsb2NhdGVfc2xvdyB3aXRoIGtpbmQgPSAlc1xuIiwKICAgICAgICAgICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5j
b25maWdfa2luZCkpOwogICAgIH0KLQorICAgIAogICAgIFBBU19BU1NFUlQoIXBhc19kZWJ1Z19o
ZWFwX2lzX2VuYWJsZWQoY29uZmlnLmtpbmQpKTsKICAgICAKKyAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbW1pdF9pZl9uZWNlc3NhcnkoYWxsb2NhdG9yLCBjb25maWcpOworICAgIAogICAgIGZv
ciAoOzspIHsKICAgICAgICAgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdCBmYXN0X3Jl
c3VsdDsKICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKQEAgLTE2NTYsNiAr
MTY4MSw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3dfaW0KICAgICAg
ICAgfQogCiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3ItPmNvbmZpZ19raW5k
ICE9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfdW5zZWxlY3RlZCk7CisgICAgICAg
IAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCAhPSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQpOwogICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCAhPSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbmZpZ19raW5kX251bGwpOwogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhc19s
b2NhbF9hbGxvY2F0b3JfaGFzX2JpdGZpdChhbGxvY2F0b3IpKTsKIApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9j
YXRvcl9raW5kLmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MSw3ICszMSwxMCBAQAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBlbnVtIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfa2luZCB7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kLAor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZCwKICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c3RvcHBlZF92aWV3X2NhY2hlX2tpbmQsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2Nh
Y2hlX2tpbmQKIH07CiAKQEAgLTQwLDggKzQzLDE0IEBAIHR5cGVkZWYgZW51bSBwYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmQgcGEKIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2xvY2FsX2Fs
bG9jYXRvcl9raW5kX2dldF9zdHJpbmcocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQpCiB7
CiAgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29t
bWl0dGVkX2tpbmQ6CisgICAgICAgIHJldHVybiAiZGVjb21taXR0ZWQiOworICAgIGNhc2UgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgICAgICByZXR1cm4g
InN0b3BwZWRfYWxsb2NhdG9yIjsKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2Nh
dG9yX2tpbmQ6CiAgICAgICAgIHJldHVybiAiYWxsb2NhdG9yIjsKKyAgICBjYXNlIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiAic3Rv
cHBlZF92aWV3X2NhY2hlIjsKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNo
ZV9raW5kOgogICAgICAgICByZXR1cm4gInZpZXdfY2FjaGUiOwogICAgIH0KQEAgLTQ5LDYgKzU4
LDIxIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2xvY2FsX2FsbG8KICAgICByZXR1
cm4gTlVMTDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2lu
ZF9pc19zdG9wcGVkKHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBraW5kKQoreworICAgIHN3aXRj
aCAoa2luZCkgeyAKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2lu
ZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZDoK
KyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0
b3Jfa2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOgor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBBU19FTkRfRVhURVJOX0M7
CiAKICNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQgKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYwkod29ya2luZyBjb3B5KQpAQCAtMjksMjEgKzI5LDEwNiBAQAogCiAjaW5jbHVk
ZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oIgogCisjaW5jbHVkZSAicGFz
X2FsbG9jYXRvcl9pbmRleC5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKICNp
bmNsdWRlICJwYXNfbG9jYWxfdmlld19jYWNoZS5oIgorI2luY2x1ZGUgInBhc19oZWFwX2xvY2su
aCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCisjaW5jbHVkZSAicGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
LmgiCiAKIHVpbnQ4X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jf
c3VzcGVuZCA9IDU7CiAKLWJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19hY3RpdmUocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSkKK2Jvb2wg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCiB7Ci0gICAgc3dpdGNoIChkYXRhLT5raW5k
KSB7Ci0gICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgotICAgICAg
ICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUoKHBhc19sb2NhbF9hbGxvY2F0
b3IqKWRhdGEpOwotICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6
Ci0gICAgICAgIHJldHVybiAhcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkoKHBhc19sb2Nh
bF92aWV3X2NhY2hlKilkYXRhKTsKKyAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5k
X2lzX3N0b3BwZWQoZGF0YS0+a2luZCk7Cit9CisKK3ZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3coCisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19tb2RlIG1vZGUsCisgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9raW5kIGV4cGVjdGVkX2tpbmQpCit7CisgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogY2FjaGU7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleDsKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOworICAgIHBhc19s
b2NrX2hvbGRfbW9kZSBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGU7CisgICAgYm9vbCBpc19pbl91
c2U7CisKKyAgICBQQVNfQVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9hbGxvY2F0b3Jfa2luZAorICAgICAgICAgICAgICAgfHwgZXhwZWN0ZWRfa2luZCA9PSBwYXNf
bG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisKKyAgICBzd2l0Y2ggKG1vZGUpIHsK
KyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25l
Y2Vzc2FyeV9zbG93X2lzX2luX3VzZV93aXRoX25vX2xvY2tzX2hlbGRfbW9kZToKKyAgICAgICAg
c2NhdmVuZ2VyX2xvY2tfaG9sZF9tb2RlID0gcGFzX2xvY2tfaXNfbm90X2hlbGQ7CisgICAgICAg
IGlzX2luX3VzZSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfaXNfbm90X2lu
X3VzZV93aXRoX3NjYXZlbmdlcl9sb2NrX2hlbGRfbW9kZToKKyAgICAgICAgc2NhdmVuZ2VyX2xv
Y2tfaG9sZF9tb2RlID0gcGFzX2xvY2tfaXNfaGVsZDsKKyAgICAgICAgaXNfaW5fdXNlID0gZmFs
c2U7CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBi
ZSByZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZhbHNlOworCisgICAgLyogTk9URTogdGhpcyBjYW4g
b25seSBiZSBjYWxsZWQgd2hlbiBpc19pbl91c2UsIGJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhp
cyBhbGxvY2F0b3Igd2lsbCBnZXQKKyAgICAgICBkZWNvbW1pdHRlZCBhdCBhbnkgdGltZSwgd2hp
Y2ggbWF5IHJlc3VsdCBpbiBpc19pbl91c2UgYmVpbmcgY2xlYXJlZC4gKi8KKworICAgIGNhY2hl
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgUEFTX0FTU0VSVChjYWNo
ZSk7CisgICAgCisgICAgaWYgKGRhdGEtPmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9w
cGVkX2FsbG9jYXRvcl9raW5kCisgICAgICAgIHx8IGRhdGEtPmtpbmQgPT0gcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2FjaGVfa2luZCkgeworICAgICAgICBib29sIGRvbmU7Cisg
ICAgICAgIAorICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIAorICAgICAgICBwYXNfbG9j
a19sb2NrX2NvbmRpdGlvbmFsbHkoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jaywgc2NhdmVu
Z2VyX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVs
ZCgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKKyAgICAgICAgc3dpdGNoIChkYXRhLT5r
aW5kKSB7CisgICAgICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5k
OgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
dG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgICAgICAgICAgUEFTX0FTU0VSVChleHBlY3RlZF9r
aW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpOworICAgICAgICAgICAg
ZGF0YS0+a2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ7CisgICAgICAg
ICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgICAgICBQQVNf
QVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tp
bmQpOworICAgICAgICAgICAgZGF0YS0+a2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19j
YWNoZV9raW5kOworICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZGlkX3Jlc3RhcnQo
KHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRhKTsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVlOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICBQQVNfQVNT
RVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmY2FjaGUtPm5vZGUt
PnNjYXZlbmdlcl9sb2NrLCBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGUpOworICAgICAgICBpZiAo
ZG9uZSkgeworICAgICAgICAgICAgUEFTX0FTU0VSVChkYXRhLT5pc19pbl91c2UgPT0gaXNfaW5f
dXNlKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+a2luZCA9PSBleHBlY3RlZF9raW5k
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAgIFBBU19BU1NF
UlQoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQpOwor
CisgICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2Vy
X2xvY2ssIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSk7CisgICAgcGFzX2xvY2tfdGVzdGluZ19h
c3NlcnRfaGVsZCgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKKworICAgIFBBU19BU1NF
UlQoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQpOwor
CisgICAgaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2FsbG9jYXRvcl9pbmRleF9mb3Jf
YWxsb2NhdG9yKGNhY2hlLCBkYXRhKTsKKyAgICBsYXlvdXRfbm9kZSA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2dldF9ub2RlX2Zvcl9pbmRleChpbmRleCk7CisKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KGxheW91dF9u
b2RlLCBjYWNoZSk7CisKKyAgICBQQVNfQVNTRVJUKGRhdGEtPmtpbmQgPT0gZXhwZWN0ZWRfa2lu
ZCk7CisgICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxs
b2NhdG9yX2tpbmQKKyAgICAgICAgICAgICAgIHx8IGRhdGEtPmtpbmQgPT0gcGFzX2xvY2FsX2Fs
bG9jYXRvcl92aWV3X2NhY2hlX2tpbmQpOworCisgICAgZGF0YS0+aXNfaW5fdXNlID0gaXNfaW5f
dXNlOworICAgIAorICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZjYWNoZS0+bm9k
ZS0+c2NhdmVuZ2VyX2xvY2ssIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKIGJvb2wg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKApAQCAtNTIsNiArMTM3LDEw
IEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV8KICAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKICAgICBzd2l0Y2ggKGRhdGEtPmtp
bmQpIHsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZDoKKyAg
ICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZDoKKyAgICBj
YXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2lu
ZDoKICAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgocGFzX2xvY2FsX2Fs
bG9jYXRvciopZGF0YSwgcGFnZV9sb2NrX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOwogICAg
IGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6CkBAIC02MSw2ICsxNTAs
MTkgQEAgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhXwogICAgIHJldHVy
biBmYWxzZTsKIH0KIAordm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3By
ZXBhcmVfdG9fZGVjb21taXQocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0
YSkKK3sKKyAgICAvKiBGdW4gZmFjdDogdGhlIGFsbG9jYXRvciBtaWdodCBoYXZlIGlzX2luX3Vz
ZSA9IHRydWUgd2hlbiB3ZSdyZSBpbiB0aGVyZSwgYnV0IGluIHRoYXQgY2FzZSwgdGhhdAorICAg
ICAgIGFsbG9jYXRvciBjYW4ndCBkbyBhbnl0aGluZyB3aXRob3V0IGdyYWJiaW5nIHRoZSBzY2F2
ZW5nZXJfbG9jayAoYmVjYXVzZSB0aGUgYWxsb2NhdG9yIHNheXMgaXQncworICAgICAgIHN0b3Bw
ZWQpLiAqLworICAgIAorICAgIFBBU19BU1NFUlQocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9pc19zdG9wcGVkKGRhdGEpKTsKKworICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hl
bGQoKTsKKworICAgIGRhdGEtPmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVk
X2tpbmQ7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwogCiAKSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgJKHJldmlzaW9uIDI4ODE3OSkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTMgKzY1LDMxIEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3MKICAgICBkYXRhLT5zaG91bGRfc3RvcF9j
b3VudCA9IDA7CiB9CiAKLVBBU19BUEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRh
KTsKK1BBU19BUEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0
b3BwZWQocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CisKK2VudW0g
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Ns
b3dfbW9kZSB7CisgICAgLyogVGhpcyBjYXVzZXMgdGhlIGNvbW1pdF9pZl9uZWNlc3NhcnkgY29k
ZSB0byBhbHdheXMgc3VjY2VlZCBhbmQgYWx3YXlzIHJldHVybiB0cnVlLiAqLworICAgIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lz
X2luX3VzZV93aXRoX25vX2xvY2tzX2hlbGRfbW9kZSwKKworICAgIC8qIFRoaXMgY2F1c2VzIHRo
ZSBjb21taXRfaWZfbmVjZXNzYXJ5IGNvZGUgdG8gc29tZXRpbWVzIGZhaWwgdG8gYWNxdWlyZSB0
aGUgaGVhcCBsb2NrLCBhbmQgdGhlbiBpdCB3aWxsCisgICAgICAgcmV0dXJuIGZhbHNlLiAqLwor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2Fy
eV9zbG93X2lzX25vdF9pbl91c2Vfd2l0aF9zY2F2ZW5nZXJfbG9ja19oZWxkX21vZGUKK307CisK
K3R5cGVkZWYgZW51bSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9p
Zl9uZWNlc3Nhcnlfc2xvd19tb2RlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
Y29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X21vZGU7CisKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdygKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhLAorICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X21vZGUgbW9k
ZSwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQgZXhwZWN0ZWRfa2luZCk7CiAKIFBBU19B
UEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKICAgICBwYXNfbG9ja19sb2Nr
X21vZGUgcGFnZV9sb2NrX21vZGUsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19o
b2xkX21vZGUpOwogCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9wcmVwYXJlX3RvX2RlY29tbWl0KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEqIGRhdGEpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0xPQ0FMX0FM
TE9DQVRPUl9TQ0FWRU5HRVJfREFUQV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMJKHJldmlzaW9u
IDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92
aWV3X2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBwYXNfbG9j
YWxfdmlld19jYWNoZV9jb25zdHJ1Y3QocGFzXwogICAgIGNhY2hlLT5jYXBhY2l0eSA9IGNhcGFj
aXR5OwogICAgIGNhY2hlLT5ib3R0b21faW5kZXggPSAwOwogICAgIGNhY2hlLT50b3BfaW5kZXgg
PSAwOwotICAgIGNhY2hlLT5pc19mdWxsID0gZmFsc2U7CisgICAgY2FjaGUtPnN0YXRlID0gcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGU7CiAKICAgICBpZiAoUEFTX0VOQUJMRV9U
RVNUSU5HKSB7CiAgICAgICAgIHVpbnQ4X3QgaW5kZXg7CkBAIC01NSw2ICs1NSw4IEBAIHZvaWQg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KHBhc18KIHZvaWQgcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfbW92ZShwYXNfbG9jYWxfdmlld19jYWNoZSogZGVzdGluYXRpb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIHNvdXJjZSkKIHsKKyAg
ICBQQVNfQVNTRVJUKCFkZXN0aW5hdGlvbi0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAg
ICBQQVNfQVNTRVJUKCFzb3VyY2UtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CiAgICAgbWVt
Y3B5KGRlc3RpbmF0aW9uLCBzb3VyY2UsIFBBU19MT0NBTF9WSUVXX0NBQ0hFX1NJWkUoc291cmNl
LT5jYXBhY2l0eSkpOwogfQogCkBAIC0xMDksMTMgKzExMSwyNCBAQCBib29sIHBhc19sb2NhbF92
aWV3X2NhY2hlX3N0b3AocGFzX2xvY2FsCiAKICAgICBQQVNfQVNTRVJUKCFjYWNoZS0+c2NhdmVu
Z2VyX2RhdGEuaXNfaW5fdXNlKTsKIAorICAgIC8qIERvaW5nIHRoaXMgY2hlY2sgYmVmb3JlIHNl
dHRpbmcgaXNfaW5fdXNlIGd1YXJkcyBhZ2FpbnN0IHNpdHVhdGlvbnMgd2hlcmUgY2FsbGluZyBz
dG9wIHdvdWxkCisgICAgICAgcmVjb21taXQgYSBkZWNvbW1pdHRlZCB2aWV3IGNhY2hlLiAqLwor
ICAgIGlmIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQoJmNh
Y2hlLT5zY2F2ZW5nZXJfZGF0YSkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgY2FjaGUt
PnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNl
KCk7CiAKICAgICByZXN1bHQgPSBzdG9wX2ltcGwoY2FjaGUsIHBhZ2VfbG9ja19tb2RlKTsKIAot
ICAgIGlmIChyZXN1bHQpCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBQQVNfQVNTRVJUKHBh
c19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfbm90X2Z1bGxfc3RhdGUpOworICAgICAgICBQQVNfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXgg
PT0gY2FjaGUtPmJvdHRvbV9pbmRleCk7CisKKyAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
c2V0X3N0YXRlKGNhY2hlLCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKICAg
ICAgICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9zdG9wX2NvdW50ID0gMDsKKyAgICAg
ICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3Bw
ZWRfdmlld19jYWNoZV9raW5kOworICAgIH0KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwog
ICAgIGNhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKQEAgLTEyMyw1ICsx
MzYsMTAgQEAgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2NhbAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKK3ZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZGlkX3Jlc3RhcnQo
cGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hl
X3NldF9zdGF0ZShjYWNoZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGUpOwor
fQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KIApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5oCShy
ZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfdmlld19jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMjEgQEAgUEFT
X0JFR0lOX0VYVEVSTl9DOwogc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlOwogdHlwZWRlZiBz
dHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGU7CiAKK2VudW0g
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUgeworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0
b3BwZWRfc3RhdGUsCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGUsCisg
ICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZnVsbF9zdGF0ZQorfTsKKwordHlwZWRlZiBlbnVtIHBh
c19sb2NhbF92aWV3X2NhY2hlX3N0YXRlIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlOworCiBz
dHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGUgewogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEgc2NhdmVuZ2VyX2RhdGE7CiAgICAgdWludDhfdCBjYXBhY2l0eTsKICAgICAv
KiBib3R0b21faW5kZXggYW5kIHRvcF9pbmRleCBtdXN0IGJlIDwgY2FwYWNpdHkuICovCiAgICAg
dWludDhfdCBib3R0b21faW5kZXg7CiAgICAgdWludDhfdCB0b3BfaW5kZXg7Ci0gICAgYm9vbCBp
c19mdWxsOworICAgIHVpbnQ4X3Qgc3RhdGU7CiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19wdHIgdmlld3NbMV07CiB9OwogCkBAIC01NCwxMyArNjIsOTAgQEAgc3Ry
dWN0IHBhc19sb2NhbF92aWV3X2NhY2hlIHsKIFBBU19BUEkgdm9pZCBwYXNfbG9jYWxfdmlld19j
YWNoZV9jb25zdHJ1Y3QocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGNhcGFjaXR5KTsKIAorc3Rh
dGljIGlubGluZSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSBwYXNfbG9jYWxfdmlld19jYWNo
ZV9nZXRfc3RhdGUocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHJldHVybiAo
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUpY2FjaGUtPnN0YXRlOworfQorCitzdGF0aWMgaW5s
aW5lIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0YXRlKHBhc19sb2NhbF92aWV3X2Nh
Y2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUgc3RhdGUpCit7CisgICAgY2FjaGUtPnN0
YXRlID0gKHVpbnQ4X3Qpc3RhdGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxf
dmlld19jYWNoZV9pc19mdWxsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBy
ZXR1cm4gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBwYXNfbG9jYWxf
dmlld19jYWNoZV9mdWxsX3N0YXRlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfY2FuX3B1c2gocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAg
IHJldHVybiBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBhc19sb2Nh
bF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfaXNfZW1wdHkocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQog
ewogICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNh
cGFjaXR5KTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hl
LT5jYXBhY2l0eSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFjYWNoZS0+aXNfZnVsbCB8fCBj
YWNoZS0+Ym90dG9tX2luZGV4ID09IGNhY2hlLT50b3BfaW5kZXgpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkgfHwgY2FjaGUtPmJv
dHRvbV9pbmRleCA9PSBjYWNoZS0+dG9wX2luZGV4KTsKKworICAgIHJldHVybiBjYWNoZS0+dG9w
X2luZGV4ID09IGNhY2hlLT5ib3R0b21faW5kZXggJiYgIXBhc19sb2NhbF92aWV3X2NhY2hlX2lz
X2Z1bGwoY2FjaGUpOworfQogCi0gICAgcmV0dXJuIGNhY2hlLT50b3BfaW5kZXggPT0gY2FjaGUt
PmJvdHRvbV9pbmRleCAmJiAhY2FjaGUtPmlzX2Z1bGw7CitzdGF0aWMgaW5saW5lIGJvb2wgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wb3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNh
Y2hlKQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlIHN0YXRlOworICAgIAorICAg
IFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5
CisgICAgICAgICAgICAgICAgICAgICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0
ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkKKyAgICAg
ICAgICAgICAgICAgICAgICAgfHwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hl
KSA9PSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpIHx8IGNhY2hlLT5i
b3R0b21faW5kZXggPT0gY2FjaGUtPnRvcF9pbmRleCk7CisKKyAgICBpZiAoY2FjaGUtPnRvcF9p
bmRleCAhPSBjYWNoZS0+Ym90dG9tX2luZGV4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IHN0YXRlID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKTsKKyAgICBzd2l0
Y2ggKHN0YXRlKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRl
OgorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9u
ZWNlc3Nhcnlfc2xvdygKKyAgICAgICAgICAgICZjYWNoZS0+c2NhdmVuZ2VyX2RhdGEsCisgICAg
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNl
c3Nhcnlfc2xvd19pc19pbl91c2Vfd2l0aF9ub19sb2Nrc19oZWxkX21vZGUsCisgICAgICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIHBhc19sb2NhbF92aWV3X2NhY2hlX2Z1bGxfc3RhdGU6CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIGNhc2UgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3Rh
dGU6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9v
bCBwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3B1c2gocGFzX2xvY2FsX3ZpZXdfY2Fj
aGUqIGNhY2hlKQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlIHN0YXRlOworICAg
IAorICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNh
cGFjaXR5CisgICAgICAgICAgICAgICAgICAgICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dl
dF9zdGF0ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7Cisg
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkK
KyAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRl
KGNhY2hlKSA9PSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKKyAgICBQQVNf
VEVTVElOR19BU1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpIHx8IGNh
Y2hlLT5ib3R0b21faW5kZXggPT0gY2FjaGUtPnRvcF9pbmRleCk7CisKKyAgICBzdGF0ZSA9IHBh
c19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSk7CisgICAgaWYgKHN0YXRlID09IHBh
c19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIHBhc19jb21waWxlcl9mZW5jZSgpOworICAgIGlmIChzdGF0ZSA9PSBwYXNfbG9jYWxf
dmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93KAorICAgICAgICAgICAgJmNh
Y2hlLT5zY2F2ZW5nZXJfZGF0YSwKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lzX25vdF9pbl91c2Vfd2l0aF9z
Y2F2ZW5nZXJfbG9ja19oZWxkX21vZGUsCisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3ZpZXdfY2FjaGVfa2luZCk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfbG9jYWxf
dmlld19jYWNoZV9jYW5fcHVzaChjYWNoZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoc3RhdGUgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
ZnVsbF9zdGF0ZSk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfbG9jYWxfdmlld19jYWNoZV9wb3AocGFzX2xv
Y2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQpAQCAtMTEwLDggKzE5NSw4IEBAIHN0YXRpYyBpbmxpbmUg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3YKICAgICAKICAgICBpZiAoUEFTX0VOQUJMRV9URVNU
SU5HKQogICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9z
dG9yZShjYWNoZS0+dmlld3MgKyBwb3BfaW5kZXgsIE5VTEwpOwotICAgIAotICAgIGNhY2hlLT5p
c19mdWxsID0gZmFsc2U7CisKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3RhdGUoY2Fj
aGUsIHBhc19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlKTsKICAgICAKICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiJXA6IHBvcHBlZCAlcC5cbiIsIGNhY2hlLCByZXN1
bHQpOwpAQCAtMTE5LDExICsyMDQsNiBAQCBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4
Y2x1c2l2ZV92CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBh
c19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQot
ewotICAgIHJldHVybiBjYWNoZS0+aXNfZnVsbDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHBh
c19sb2NhbF92aWV3X2NhY2hlX3B1c2goCiAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hl
LAogICAgIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3KQpAQCAtMTM1LDcgKzIx
NSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV8KIAogICAgIFBB
U19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsK
ICAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBhY2l0
eSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxs
KGNhY2hlKSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19sb2NhbF92aWV3X2NhY2hlX2Nh
bl9wdXNoKGNhY2hlKSk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXcpOwogCiAgICAgaWYg
KHZlcmJvc2UpCkBAIC0xNDksNyArMjI5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2Nh
bF92aWV3X2NhY2hlXwogICAgIH0KIAogICAgIGlmIChuZXh0X3RvcF9pbmRleCA9PSBjYWNoZS0+
Ym90dG9tX2luZGV4KQotICAgICAgICBjYWNoZS0+aXNfZnVsbCA9IHRydWU7CisgICAgICAgIHBh
c19sb2NhbF92aWV3X2NhY2hlX3NldF9zdGF0ZShjYWNoZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
ZnVsbF9zdGF0ZSk7CiAgICAgCiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2lzX251bGwoY2FjaGUtPnZpZXdzICsgdG9wX2lu
ZGV4KSk7CiAKQEAgLTE2Miw2ICsyNDIsOCBAQCBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfbW92ZShwCiAKIFBBU19BUEkgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBh
c19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19t
b2RlKTsKIAorUEFTX0FQSSB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2RpZF9yZXN0YXJ0KHBh
c19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRp
ZiAvKiBQQVNfTE9DQUxfVklFV19DQUNIRV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTIw
OSw2ICsyMDksMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgICAgICByZXR1cm4gcGFzX2xv
Y2tfdHJ5X2xvY2soJm5hbWUjI19sb2NrKTsgXAogICAgIH0gXAogICAgIFwKKyAgICBQQVNfVU5V
U0VEIHN0YXRpYyBpbmxpbmUgYm9vbCBuYW1lIyNfbG9ja19sb2NrX3dpdGhfbW9kZShwYXNfbG9j
a19sb2NrX21vZGUgbW9kZSkgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gcGFzX2xvY2tfbG9j
a193aXRoX21vZGUoJm5hbWUjI19sb2NrLCBtb2RlKTsgXAorICAgIH0gXAorICAgIFwKICAgICBQ
QVNfVU5VU0VEIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfbG9ja191bmxvY2sodm9pZCkgXAog
ICAgIHsgXAogICAgICAgICBwYXNfbG9ja191bmxvY2soJm5hbWUjI19sb2NrKTsgXApJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2Nh
cGFiaWxpdHkuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbW1hcF9jYXBhYmlsaXR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBA
QAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVm
IFBBU19NTUFQX0NBUEFCSUxJVFlfSAorI2RlZmluZSBQQVNfTU1BUF9DQVBBQklMSVRZX0gKKwor
I2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKKy8qIExpYnBh
cyBzb21ldGltZXMgYWxsb2NhdGVzIGl0cyBvd24gbWVtb3J5IGZyb20gdGhlIE9TLCBhbmQgc29t
ZXRpbWVzIGlzIHRvbGQgdG8gbWFuYWdlIG1lbW9yeSBhbHJlYWR5CisgICBhbGxvY2F0ZWQgYnkg
c29tZW9uZSBlbHNlLiBTb21ldGltZXMsIGNsaWVudHMgZG9uJ3Qgd2FudCBsaWJwYXMgdG8gdXNl
IGNlcnRhaW50IG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucworICAgb24gdGhlIG1lbW9yeSB0
aGF0IHRoZXkgYXNrIGxpYnBhcyB0byBtYW5hZ2UuIFRoaXMgZW51bWVyYXRpb24gY29udHJvbHMg
d2hhdCBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbnMKKyAgIGxpYnBhcyBjYW4gY2FsbCBmb3Ig
c29tZSBtZW1vcnkgdGhhdCBpdCBtYW5hZ2VzLiAqLworZW51bSBwYXNfbW1hcF9jYXBhYmlsaXR5
IHsKKyAgICAvKiBJbmRpY2F0ZXMgdGhhdCBsaWJwYXMgaXNuJ3QgYWxsb3dlZCB0byBjYWxsIG1t
YXAsIG1wcm90ZWN0LCBvciBtb3N0IG90aGVyIG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9uIG9u
CisgICAgICAgdGhlIGdpdmVuIG1lbW9yeS4gVGhpcyBpcyB1c2VkIGZvciBtZW1vcnkgdGhhdCB3
YXMgYWxsb2NhdGVkIGJ5IHRoZSBjbGllbnQgd2l0aCBzb21lIHNwZWNpZmljIHBlcm1pc3Npb25z
CisgICAgICAgb3Igb3RoZXIgc3BlY2lhbCBtbWFwIGFyZ3VtZW50cy4gT3IsIG1heWJlIGl0IHdh
c24ndCBldmVuIGFsbG9jYXRlZCB3aXRoIG1tYXAuCisKKyAgICAgICBMaWJwYXMgbWF5IHN0aWxs
IGNhbGwgbWFkdmlzZSgpIG9uIG1lbW9yeSB3aXRoIHRoaXMgY2FwYWJpbGl0eSwgc2luY2UgbWFk
dmlzZSgpIGRvZXNuJ3QgY2hhbmdlIHRoZQorICAgICAgIHBlcm1pc3Npb25zIG9mIHRoZSBtYXBw
aW5nLiBDdXJyZW50bHksIG1hZHZpc2UoKSBpcyB0aGUgb25seSBzeXNjYWxsIHRoYXQgbGlicGFz
IGlzIGFsbG93ZWQgdG8gdXNlIGZvcgorICAgICAgIG1lbW9yeSB0aGF0IGlzIHBhc19tYXlfbm90
X21tYXAuCisgICAgCisgICAgICAgVXNpbmcgcGFzX21heV9ub3RfbW1hcCBtYXkgZGVncmFkZSBw
ZWZvcm1hbmNlLCBhZmZlY3QgdGhlIGFjY3VyYWN5IG9mIE9TIG1lbW9yeSB1c2FnZSBhY2NvdW50
aW5nLCBvciB0dXJuCisgICAgICAgb2ZmIHNvbWUgcnVudGltZSBjaGVja2luZy4gQnV0IGl0IHdp
bGwgbm90IGFmZmVjdCB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIGFsZ29yaXRobS4KKyAgICAKKyAg
ICAgICBDdXJyZW50bHkgdGhlIHByaW1hcnkgY2xpZW50IG9mIHRoaXMgb3B0aW9uIGlzIGppdF9o
ZWFwX2NvbmZpZywgc2luY2UgdGhlIEpJVCBoZWFwIGlzIG1tYXBwZWQgaW4gYQorICAgICAgIHNw
ZWNpYWwgd2F5IGFuZCB3aXRoIHNwZWNpYWwgcGVybWlzc2lvbnMuICovCisgICAgcGFzX21heV9u
b3RfbW1hcCwKKworICAgIC8qIEluZGljYXRlcyB0aGF0IGxpYnBhcyBzaG91bGQgYXNzdW1lIHRo
YXQgdGhlIG1lbW9yeSBpcyBtbWFwcGVkIGluIHNvbWUgY2Fub25pY2FsIHdheSAoYW5vbnltb3Vz
LCBSVyBidXQKKyAgICAgICBub3QgWCwgZXRjKS4gTGlicGFzIG1heSBjYWxsIG1tYXAsIG1wcm90
ZWN0IGFuZCBvdGhlciBzdWNoIGZ1bmN0aW9ucyBvbiB0aGlzIG1lbW9yeSBzbyBsb25nIGFzIGl0
CisgICAgICAgcmV0dXJucyBpdCB0byB0aGUgY2Fub25pY2FsIHN0YXRlIGJlZm9yZSB0aGUgbWVt
b3J5IGlzIHJldHVybmVkIGJ5IHNvbWUgYWxsb2NhdGUgZnVuY3Rpb24uIExpYnBhcyBjb3VsZAor
ICAgICAgIHVzZSB0aGlzIGNhcGFiaWxpdHkgdG86CisgICAgICAgCisgICAgICAgLSBSYXBpZGx5
IHplcm8tZmlsbCB0aGUgbWVtb3J5IHdpdGggYSBmaXhlZCBtbWFwIGNhbGwuCisgICAgICAgLSBS
ZXNldCB0aGUgY29tbWl0IHN0YXRlIHdpdGggYSBmaXhlZCBtbWFwIGNhbGwuCisgICAgICAgLSBQ
ZXJmb3JtIHJ1bnRpbWUgY2hlY2tpbmcgdGhhdCBkZWNvbW1pdHRlZCBtZW1vcnkgaXMgbm90IHVz
ZWQgYnkgbXByb3RlY3RpbmcgaXQgdG8gUFJPVF9OT05FIChhbmQgdGhlbgorICAgICAgICAgcmV0
dXJuaW5nIGl0IHRvIG5vcm1hbCBwZXJtaXNzaW9ucyB3aGVuIHJlY29tbWl0dGVkKS4KKyAgICAK
KyAgICAgICBUaGUgY2FwYWJpbGl0aWVzIGVuYWJsZWQgYnkgcGFzX21heV9tbWFwIGFyZSBnb29k
IGZvciBwZXJmb3JtYW5jZSBhbmQgdGVzdGluZywgYnV0IGFyZW4ndCBuZWNlc3NhcnkgZm9yCisg
ICAgICAgbGlicGFzIHRvIHdvcmsgY29ycmVjdGx5LCBzbyBpdCdzIG5vdCB0aGUgZW5kIG9mIHRo
ZSB3b3JsZCB0byBoYXZlIHRvIHVzZSBwYXNfbWF5X25vdF9tbWFwIGluc3RlYWQuICovCisgICAg
cGFzX21heV9tbWFwCit9OworCit0eXBlZGVmIGVudW0gcGFzX21tYXBfY2FwYWJpbGl0eSBwYXNf
bW1hcF9jYXBhYmlsaXR5OworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19tbWFwX2Nh
cGFiaWxpdHlfZ2V0X3N0cmluZyhwYXNfbW1hcF9jYXBhYmlsaXR5IGNhcGFiaWxpdHkpCit7Cisg
ICAgc3dpdGNoIChjYXBhYmlsaXR5KSB7CisgICAgY2FzZSBwYXNfbWF5X25vdF9tbWFwOgorICAg
ICAgICByZXR1cm4gIm1heV9ub3RfbW1hcCI7CisgICAgY2FzZSBwYXNfbWF5X21tYXA6CisgICAg
ICAgIHJldHVybiAibWF5X21tYXAiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7
CisKKyNlbmRpZiAvKiBQQVNfTU1BUF9DQVBBQklMSVRZX0ggKi8KKwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMJKHJldmlz
aW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdl
X21hbGxvYy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNyArNDcsMTAgQEAKIHNpemVfdCBwYXNf
cGFnZV9tYWxsb2NfbnVtX2FsbG9jYXRlZF9ieXRlczsKIHNpemVfdCBwYXNfcGFnZV9tYWxsb2Nf
Y2FjaGVkX2FsaWdubWVudDsKIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfY2FjaGVkX2FsaWdubWVu
dF9zaGlmdDsKLWJvb2wgcGFzX3BhZ2VfbWFsbG9jX21wcm90ZWN0X2RlY29tbWl0dGVkID0gUEFT
X0VOQUJMRV9URVNUSU5HOworCisjaWYgUEFTX09TKERBUldJTikKK2Jvb2wgcGFzX3BhZ2VfbWFs
bG9jX2RlY29tbWl0X3plcm9fZmlsbCA9IGZhbHNlOworI2VuZGlmIC8qIFBBU19PUyhEQVJXSU4p
ICovCiAKICNpZiBQQVNfT1MoREFSV0lOKQogI2RlZmluZSBQQVNfVk1fVEFHIFZNX01BS0VfVEFH
KFZNX01FTU9SWV9UQ01BTExPQykKQEAgLTYxLDEzICs2NCw3IEBAIGJvb2wgcGFzX3BhZ2VfbWFs
bG9jX21wcm90ZWN0X2RlY29tbWl0dGUKICNkZWZpbmUgUEFTX05PUkVTRVJWRSAwCiAjZW5kaWYK
IAotCi0jZGVmaW5lIFBBU19TWVNDQUxMKHgpIGRvIHsgXAotICAgIHdoaWxlICgoeCkgPT0gLTEg
JiYgZXJybm8gPT0gRUFHQUlOKSB7IH0gXAotfSB3aGlsZSAoMCk7Ci0KLQotc2l6ZV90IHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnRfc2xvdyh2b2lkKQorUEFTX05FVkVSX0lOTElORSBzaXplX3Qg
cGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZvaWQpCiB7CiAgICAgbG9uZyByZXN1bHQg
PSBzeXNjb25mKF9TQ19QQUdFU0laRSk7CiAgICAgUEFTX0FTU0VSVChyZXN1bHQgPj0gMCk7CkBA
IC03Niw3ICs3Myw3IEBAIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3Nsb3codm8K
ICAgICByZXR1cm4gKHNpemVfdClyZXN1bHQ7CiB9CiAKLXNpemVfdCBwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50X3NoaWZ0X3Nsb3codm9pZCkKK1BBU19ORVZFUl9JTkxJTkUgc2l6ZV90IHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnRfc2xvdyh2b2lkKQogewogICAgIHNpemVfdCByZXN1
bHQ7CiAKQEAgLTE3MiwxMSArMTY5LDI5IEBAIHBhc19wYWdlX21hbGxvY190cnlfYWxsb2NhdGVf
d2l0aG91dF9kZWEKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIHBhc19wYWdlX21hbGxv
Y19jb21taXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3ZvaWQgcGFzX3BhZ2VfbWFsbG9jX3pl
cm9fZmlsbCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBzaXplX3QgcGFnZV9zaXpl
OworICAgIHZvaWQqIHJlc3VsdF9wdHI7CisKKyAgICBwYWdlX3NpemUgPSBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50KCk7CisgICAgCisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgodWlu
dHB0cl90KWJhc2UsIHBhZ2Vfc2l6ZSkpOworICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQo
c2l6ZSwgcGFnZV9zaXplKSk7CisKKyAgICByZXN1bHRfcHRyID0gbW1hcChiYXNlLAorICAgICAg
ICAgICAgICAgICAgICAgIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwg
UFJPVF9XUklURSwKKyAgICAgICAgICAgICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9BTk9O
IHwgTUFQX0ZJWEVEIHwgUEFTX05PUkVTRVJWRSwKKyAgICAgICAgICAgICAgICAgICAgICBQQVNf
Vk1fVEFHLAorICAgICAgICAgICAgICAgICAgICAgIDApOworICAgIFBBU19BU1NFUlQocmVzdWx0
X3B0ciA9PSBiYXNlKTsKK30KKworc3RhdGljIHZvaWQgY29tbWl0X2ltcGwodm9pZCogcHRyLCBz
aXplX3Qgc2l6ZSwgYm9vbCBkb19tcHJvdGVjdCwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2Nh
cGFiaWxpdHkpCiB7CiAgICAgdWludHB0cl90IGJhc2VfYXNfaW50OwogICAgIHVpbnRwdHJfdCBl
bmRfYXNfaW50OwotICAgIGludCByZXN1bHQ7CiAKICAgICBiYXNlX2FzX2ludCA9ICh1aW50cHRy
X3QpcHRyOwogICAgIGVuZF9hc19pbnQgPSBiYXNlX2FzX2ludCArIHNpemU7CkBAIC0xOTAsMjcg
KzIwNSwzNCBAQCB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXQodm9pZCogcHRyLCBzCiAgICAg
aWYgKGVuZF9hc19pbnQgPT0gYmFzZV9hc19pbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlm
IChQQVNfTVBST1RFQ1RfREVDT01NSVRURUQpIHsKLSAgICAgICAgcmVzdWx0ID0gbXByb3RlY3Qo
KHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfUkVBRCB8
IFBST1RfV1JJVEUpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBwYXNfbG9n
KCJDb3VsZCBub3QgbXByb3RlY3Qgb24gY29tbWl0OiBlcnJvciBjb2RlICVkXG4iLCByZXN1bHQp
OwotICAgICAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKLSAgICAgICAgfQotICAgIH0KKyAg
ICBpZiAoUEFTX01QUk9URUNUX0RFQ09NTUlUVEVEICYmIGRvX21wcm90ZWN0ICYmIG1tYXBfY2Fw
YWJpbGl0eSkKKyAgICAgICAgUEFTX1NZU0NBTEwobXByb3RlY3QoKHZvaWQqKWJhc2VfYXNfaW50
LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKTsKIAog
I2lmIFBBU19PUyhMSU5VWCkKLSAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2Fz
X2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0RPRFVNUCkpOworICAgIFBBU19T
WVNDQUxMKG1hZHZpc2UocHRyLCBzaXplLCBNQURWX0RPRFVNUCkpOwogI2VuZGlmCiB9CiAKK3Zv
aWQgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCh2b2lkKiBwdHIsIHNpemVfdCBzaXplLCBwYXNfbW1h
cF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBk
b19tcHJvdGVjdCA9IHRydWU7CisgICAgY29tbWl0X2ltcGwocHRyLCBzaXplLCBkb19tcHJvdGVj
dCwgbW1hcF9jYXBhYmlsaXR5KTsKK30KKwordm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dp
dGhvdXRfbXByb3RlY3Qodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0
eSBtbWFwX2NhcGFiaWxpdHkpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZG9fbXByb3RlY3Qg
PSBmYWxzZTsKKyAgICBjb21taXRfaW1wbChwdHIsIHNpemUsIGRvX21wcm90ZWN0LCBtbWFwX2Nh
cGFiaWxpdHkpOworfQorCiBzdGF0aWMgdm9pZCBkZWNvbW1pdF9pbXBsKHZvaWQqIHB0ciwgc2l6
ZV90IHNpemUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfYXN5bW1ldHJpYykK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkb19tcHJvdGVjdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAg
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIHVpbnRwdHJf
dCBiYXNlX2FzX2ludDsKICAgICB1aW50cHRyX3QgZW5kX2FzX2ludDsKLSAgICBpbnQgcmVzdWx0
OwogCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRlY29tbWl0dGluZyAlcC4u
LiVwXG4iLCBwdHIsIChjaGFyKilwdHIgKyBzaXplKTsKQEAgLTIyNSwzMyArMjQ3LDMzIEBAIHN0
YXRpYyB2b2lkIGRlY29tbWl0X2ltcGwodm9pZCogcHRyLCBzaXoKICAgICAgICAgZW5kX2FzX2lu
dCA9PSBwYXNfcm91bmRfZG93bl90b19wb3dlcl9vZl8yKGVuZF9hc19pbnQsIHBhc19wYWdlX21h
bGxvY19hbGlnbm1lbnQoKSkpOwogICAgIAogI2lmIFBBU19PUyhEQVJXSU4pCi0gICAgcmVzdWx0
ID0gbWFkdmlzZSgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwg
TUFEVl9GUkVFX1JFVVNBQkxFKTsKLSAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOworICAgIGlmIChw
YXNfcGFnZV9tYWxsb2NfZGVjb21taXRfemVyb19maWxsICYmIG1tYXBfY2FwYWJpbGl0eSkKKyAg
ICAgICAgcGFzX3BhZ2VfbWFsbG9jX3plcm9fZmlsbChwdHIsIHNpemUpOworICAgIGVsc2UKKyAg
ICAgICAgUEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRlJFRV9SRVVTQUJMRSkp
OwogI2VsaWYgUEFTX09TKEZSRUVCU0QpCi0gICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9pZCop
YmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgTUFEVl9GUkVFKSk7CisgICAg
UEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRlJFRSkpOwogI2VsaWYgUEFTX09T
KExJTlVYKQotICAgIFBBU19TWVNDQUxMKG1hZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRf
YXNfaW50IC0gYmFzZV9hc19pbnQsIE1BRFZfRE9OVE5FRUQpKTsKLSAgICBQQVNfU1lTQ0FMTCht
YWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURW
X0RPTlREVU1QKSk7CisgICAgUEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRE9O
VE5FRUQpKTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKHB0ciwgc2l6ZSwgTUFEVl9ET05URFVN
UCkpOwogI2Vsc2UKLSAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwg
ZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0RPTlRORUVEKSk7CisgICAgUEFTX1NZU0NB
TEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRE9OVE5FRUQpKTsKICNlbmRpZgogCi0gICAgaWYg
KFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCAmJiAhaXNfYXN5bW1ldHJpYykgewotICAgICAgICBy
ZXN1bHQgPSBtcHJvdGVjdCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2Fz
X2ludCwgUFJPVF9OT05FKTsKLSAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKLSAgICB9Cisg
ICAgaWYgKFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCAmJiBkb19tcHJvdGVjdCAmJiBtbWFwX2Nh
cGFiaWxpdHkpCisgICAgICAgIFBBU19TWVNDQUxMKG1wcm90ZWN0KCh2b2lkKiliYXNlX2FzX2lu
dCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBQUk9UX05PTkUpKTsKIH0KIAotdm9pZCBwYXNf
cGFnZV9tYWxsb2NfZGVjb21taXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3ZvaWQgcGFzX3Bh
Z2VfbWFsbG9jX2RlY29tbWl0KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFi
aWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewotICAgIHN0YXRpYyBjb25zdCBib29sIGlzX2FzeW1t
ZXRyaWMgPSBmYWxzZTsKLSAgICBkZWNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwgaXNfYXN5bW1ldHJp
Yyk7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZG9fbXByb3RlY3QgPSB0cnVlOworICAgIGRlY29t
bWl0X2ltcGwocHRyLCBzaXplLCBkb19tcHJvdGVjdCwgbW1hcF9jYXBhYmlsaXR5KTsKIH0KIAot
dm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfYXN5bW1ldHJpYyh2b2lkKiBwdHIsIHNpemVf
dCBzaXplKQordm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0aG91dF9tcHJvdGVjdCh2
b2lkKiBwdHIsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0
eSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBpc19hc3ltbWV0cmljID0gdHJ1ZTsKLSAgICBk
ZWNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwgaXNfYXN5bW1ldHJpYyk7CisgICAgc3RhdGljIGNvbnN0
IGJvb2wgZG9fbXByb3RlY3QgPSBmYWxzZTsKKyAgICBkZWNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwg
ZG9fbXByb3RlY3QsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAKIHZvaWQgcGFzX3BhZ2VfbWFsbG9j
X2RlYWxsb2NhdGUodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5oCShyZXZpc2lvbiAy
ODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxs
b2MuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgInBhc19h
bGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2FsaWdubWVudC5oIgor
I2luY2x1ZGUgInBhc19tbWFwX2NhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIK
IAogUEFTX0JFR0lOX0VYVEVSTl9DOwpAQCAtMzUsOCArMzYsMTEgQEAgUEFTX0JFR0lOX0VYVEVS
Tl9DOwogUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19udW1fYWxsb2NhdGVk
X2J5dGVzOwogUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19jYWNoZWRfYWxp
Z25tZW50OwogUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19jYWNoZWRfYWxp
Z25tZW50X3NoaWZ0OworI2lmIFBBU19PUyhEQVJXSU4pCitQQVNfQVBJIGV4dGVybiBib29sIHBh
c19wYWdlX21hbGxvY19kZWNvbW1pdF96ZXJvX2ZpbGw7CisjZW5kaWYgLyogUEFTX09TKERBUldJ
TikgKi8KIAotUEFTX0FQSSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZv
aWQpOworUEFTX0FQSSBQQVNfTkVWRVJfSU5MSU5FIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxp
Z25tZW50X3Nsb3codm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19wYWdlX21hbGxv
Y19hbGlnbm1lbnQodm9pZCkKIHsKQEAgLTQ1LDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSBzaXpl
X3QgcGFzX3BhZ2VfbWFsbG9jX2FsaQogICAgIHJldHVybiBwYXNfcGFnZV9tYWxsb2NfY2FjaGVk
X2FsaWdubWVudDsKIH0KIAotUEFTX0FQSSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVu
dF9zaGlmdF9zbG93KHZvaWQpOworUEFTX0FQSSBQQVNfTkVWRVJfSU5MSU5FIHNpemVfdCBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0X3Nsb3codm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUg
c2l6ZV90IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQodm9pZCkKIHsKQEAgLTYwLDEy
ICs2NCwyMSBAQCBwYXNfcGFnZV9tYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhvdXRfZGVhCiAKIFBB
U19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBiYXNlLCBzaXplX3Qg
c2l6ZSk7CiAKK1BBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHZvaWQqIGJh
c2UsIHNpemVfdCBzaXplKTsKKwogLyogVGhpcyBldmVuIHdvcmtzIGlmIHNpemUgPCBwYXNfcGFn
ZV9tYWxsb2NfYWxpZ25tZW50IHNvIGxvbmcgYXMgdGhlIHJhbmdlIFtiYXNlLCBiYXNlK3NpemUp
IGlzCiAgICBlbnRpcmVseSB3aXRoaW4gYSBwYWdlIGFjY29yZGluZyB0byBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50LiAqLwotUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXQodm9p
ZCogYmFzZSwgc2l6ZV90IHNpemUpOwotUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNv
bW1pdCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHZvaWQgcGFzX3BhZ2VfbWFs
bG9jX2NvbW1pdCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHkpOworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCh2
b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxp
dHkpOwogCi1QQVNfQVBJIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X2FzeW1tZXRyaWMo
dm9pZCogYmFzZSwgc2l6ZV90IHNpemUpOworLyogSW4gdGVzdGluZyBtb2RlLCB3ZSBoYXZlIGNv
bW1pdC9kZWNvbW1pdCBtcHJvdGVjdCB0aGUgbWVtb3J5IGFzIGEgd2F5IG9mIGhlbHBpbmcgdXMg
c2VlIGlmIHdlIGFyZQorICAgYWNjaWRlbnRhbGx5IHJlYWRpbmcgb3Igd3JpdGluZyB0aGF0IG1l
bW9yeS4gQnV0IHNvbWV0aW1lcyB3ZSB1c2UgY29tbWl0L2RlY29tbWl0IGluIGEgd2F5IHRoYXQg
cHJldmVudHMKKyAgIHVzIGZyb20gbWFraW5nIHN1Y2ggYXNzZXJ0aW9ucywgbGlrZSBpZiB3ZSBh
bGxvdyBzb21lIHJlYWRzIGFuZCB3cml0ZXMgdG8gZGVjb21taXR0ZWQgbWVtb3J5IGluIHJhcmUK
KyAgIGNhc2VzLiAqLworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXRfd2l0aG91
dF9tcHJvdGVjdCgKKyAgICB2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJp
bGl0eSBtbWFwX2NhcGFiaWxpdHkpOworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNv
bW1pdF93aXRob3V0X21wcm90ZWN0KAorICAgIHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBwYXNf
bW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVu
Z2VyLmMJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zY2F2ZW5nZXIuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEzMyw2ICsxMzMsMTYgQEAg
c3RhdGljIHZvaWQgdGltZWRfd2FpdChwdGhyZWFkX2NvbmRfdCogYwogICAgICAgICBwcmludGYo
Ildva2UgdXAgZnJvbSB0aW1lZCB3YWl0IGF0ICUuMmxmLlxuIiwgZ2V0X3RpbWVfaW5fbWlsbGlz
ZWNvbmRzKCkpOwogfQogCitzdGF0aWMgYm9vbCBoYW5kbGVfZXhwZW5kYWJsZV9tZW1vcnkocGFz
X2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2tpbmQga2luZCkKK3sKKyAgICBib29sIHNob3Vs
ZF9nb19hZ2FpbiA9IGZhbHNlOworICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgIHNob3Vs
ZF9nb19hZ2FpbiB8PSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZShraW5k
KTsKKyAgICBzaG91bGRfZ29fYWdhaW4gfD0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3Nj
YXZlbmdlKGtpbmQpOworICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisgICAgcmV0dXJuIHNo
b3VsZF9nb19hZ2FpbjsKK30KKwogc3RhdGljIHZvaWQqIHNjYXZlbmdlcl90aHJlYWRfbWFpbih2
b2lkKiBhcmcpCiB7CiAgICAgcGFzX3NjYXZlbmdlcl9kYXRhKiBkYXRhOwpAQCAtMjAwLDEwICsy
MTAsNyBAQCBzdGF0aWMgdm9pZCogc2NhdmVuZ2VyX3RocmVhZF9tYWluKHZvaWQqCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZl
bmdlX2ZsdXNoX2xvZ19pZl9jbGVhbl9hY3Rpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwogCi0gICAgICAgIHBhc19o
ZWFwX2xvY2tfbG9jaygpOwotICAgICAgICBzaG91bGRfZ29fYWdhaW4gfD0gcGFzX2NvbXBhY3Rf
ZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2UocGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdl
X3BlcmlvZGljKTsKLSAgICAgICAgc2hvdWxkX2dvX2FnYWluIHw9IHBhc19sYXJnZV9leHBlbmRh
YmxlX21lbW9yeV9zY2F2ZW5nZShwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfcGVyaW9k
aWMpOwotICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworICAgICAgICBzaG91bGRfZ29f
YWdhaW4gfD0gaGFuZGxlX2V4cGVuZGFibGVfbWVtb3J5KHBhc19leHBlbmRhYmxlX21lbW9yeV9z
Y2F2ZW5nZV9wZXJpb2RpYyk7CiAKICAgICAgICAgLyogRm9yIHRoZSBwdXJwb3NlcyBvZiBwZXJm
b3JtYW5jZSB0dW5pbmcsIGFzIHdlbGwgYXMgc29tZSBvZiB0aGUgc2NhdmVuZ2VyIHRlc3RzLCB0
aGUgZXBvY2gKICAgICAgICAgICAgaXMgdGltZSBpbiBuYW5vc2Vjb25kcy4KQEAgLTQ3OCwxMCAr
NDg1LDEyIEBAIHZvaWQgcGFzX3NjYXZlbmdlcl9jbGVhcl9hbGxfY2FjaGVzKHZvaWQKIAogdm9p
ZCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5KHZvaWQpCiB7Ci0gICAg
cGFzX2hlYXBfbG9ja19sb2NrKCk7Ci0gICAgcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnlf
c2NhdmVuZ2UocGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlX2ZvcmNlZCk7Ci0gICAgcGFz
X2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlKHBhc19leHBlbmRhYmxlX21lbW9yeV9z
Y2F2ZW5nZV9mb3JjZWQpOwotICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisgICAgaGFuZGxl
X2V4cGVuZGFibGVfbWVtb3J5KHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9mb3JjZWQp
OworfQorCit2b2lkIHBhc19zY2F2ZW5nZXJfZmFrZV9kZWNvbW1pdF9leHBlbmRhYmxlX21lbW9y
eSh2b2lkKQoreworICAgIGhhbmRsZV9leHBlbmRhYmxlX21lbW9yeShwYXNfZXhwZW5kYWJsZV9t
ZW1vcnlfc2NhdmVuZ2VfZm9yY2VkX2Zha2UpOwogfQogCiBzaXplX3QgcGFzX3NjYXZlbmdlcl9k
ZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lkKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NjYXZlbmdlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NjYXZlbmdlci5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIyIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTAzLDYgKzEwMyw3IEBAIFBBU19BUEkgdm9pZCBwYXNfc2NhdmVuZ2VyX2NsZWFy
X2FsbF9ub24KIFBBU19BUEkgdm9pZCBwYXNfc2NhdmVuZ2VyX2NsZWFyX2FsbF9jYWNoZXNfZXhj
ZXB0X3JlbW90ZV90bGNzKHZvaWQpOwogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfY2xlYXJf
YWxsX2NhY2hlcyh2b2lkKTsKIFBBU19BUEkgdm9pZCBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4
cGVuZGFibGVfbWVtb3J5KHZvaWQpOworUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfZmFrZV9k
ZWNvbW1pdF9leHBlbmRhYmxlX21lbW9yeSh2b2lkKTsgLyogVXNlZnVsIGZvciB0ZXN0aW5nLiAq
LwogUEFTX0FQSSBzaXplX3QgcGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9mcmVlX21lbW9yeSh2b2lk
KTsKIAogUEFTX0FQSSB2b2lkIHBhc19zY2F2ZW5nZXJfcnVuX3N5bmNocm9ub3VzbHlfbm93KHZv
aWQpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jCShyZXZpc2lvbiAyODgx
NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiArMzgsOCBAQAogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlld19jb3VudDsKKwogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZSgKICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCkKQEAgLTU0LDYgKzU2LDggQEAgcGFz
X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZQogICAgICAgICAicGFzX3NlZ3Jl
Z2F0ZWRfZXhjbHVzaXZlX3ZpZXciLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwog
CisgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY291bnQrKzsKKwogICAgIC8qIFdl
IGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAqLwogICAgIHJlc3VsdC0+cGFnZV9ib3VuZGFyeSA9IE5V
TEw7CiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfc3RvcmUo
JnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC00MCw2ICs0MCw4IEBAIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV8KIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZTsKIHR5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZTsKIAorUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2NvdW50OworCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcgewog
ICAgIHZvaWQqIHBhZ2VfYm91bmRhcnk7CiAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19p
bmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJwYXNf
c2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3Bh
Z2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCisjaW5jbHVkZSAicGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAt
MTY3LDYgKzE2OCw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWcK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAorICAgICAgICAgICAgcGFz
X2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsK
KwogICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9CiAgICAgICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9mb3JfcG9zc2libHlfdW5p
bml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5kZXgoCiAgICAgICAgICAgICAgICAgICAg
IGNhY2hlLCBwYWdlLT52aWV3X2NhY2hlX2luZGV4KTsKQEAgLTE4Myw5ICsxODYsOSBAQCBzdGF0
aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUcnlpbmcgdG8gcHVzaCB0byB2aWV3IGNh
Y2hlLlxuIik7CiAKLSAgICAgICAgICAgIGlmIChwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxs
KHZpZXdfY2FjaGUpKSB7CisgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF92aWV3X2NhY2hlX3By
ZXBhcmVfdG9fcHVzaCh2aWV3X2NhY2hlKSkgewogICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwgKCV1
KS5cbiIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CisgICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIiVwLCAlcDogQ2FjaGUgaXMgZnVsbCBvciBpcyBzdG9w
cGVkICgldSkuXG4iLCBjYWNoZS0+bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+b2JqZWN0X3NpemUp
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
Nyw2ICs0NywxMSBAQAogCiB1bnNpZ25lZCBwYXNfc2VncmVnYXRlZF9oZWFwX251bV9zaXplX2xv
b2t1cF9yZW1hdGVyaWFsaXphdGlvbnM7CiAKK3N0YXRpYyB2b2lkIGNoZWNrX3NpemVfbG9va3Vw
X3JlY29tcHV0YXRpb25faWZfYXBwcm9wcmlhdGUocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkICpjYWNoZWRfaW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIHdoZXJlKTsKKwogc3RhdGljIHNpemVfdCBtaW5fb2JqZWN0X3NpemVfZm9y
X2hlYXBfY29uZmlnKHBhc19oZWFwX2NvbmZpZyogY29uZmlnKQogewogICAgIHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX3ZhcmlhbnQgc2VncmVnYXRlZF92YXJpYW50OwpAQCAtMzc4LDYgKzM4
MywxNSBAQCBtZWRpdW1fZGlyZWN0b3J5X3R1cGxlX2Zvcl9pbmRleF9pbXBsKAogICAgICAgICB9
CiAKICAgICAgICAgYmVnaW5faW5kZXggPSBkaXJlY3RvcnktPmJlZ2luX2luZGV4OworCisgICAg
ICAgIC8qIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIGd1YXJkIGFnYWluc3QgdGhlIG1lZGl1bSB0dXBs
ZSBhcnJheSBiZWluZyBkZWNvbW1pdHRlZCBhdCB0aGUgd3JvbmcgdGltZSwKKyAgICAgICAgICAg
b3IgdGhlIHR1cGxlIHN0cmFkZGxpbmcgcGFnZSBib3VuZGFyeSwgbGVhZGluZyB0byB0aGUgYmVn
aW4gaW5kZXggYmVpbmcgemVybyBhbmQgdGhlIGVuZF9pbmRleAorICAgICAgICAgICBoYXZpbmcg
aXRzIG9yaWdpbmFsIHZhbHVlLiAqLworICAgICAgICBpZiAoIWJlZ2luX2luZGV4KSB7CisgICAg
ICAgICAgICByZXN1bHQudHVwbGUgPSBOVUxMOworICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICAgICAgfQorICAgICAgICAKICAgICAgICAgZW5kX2luZGV4ID0gZGlyZWN0b3J5LT5lbmRf
aW5kZXg7CiAgICAgICAgIAogICAgICAgICByZXN1bHQuZGVwZW5kZW5jeSArPSBiZWdpbl9pbmRl
eCArIGVuZF9pbmRleDsKQEAgLTQ0OCw2ICs0NjIsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9kaXJlY3RvcnlfdHVwCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fc2l6ZV9k
aXJlY3Rvcnlfc2VhcmNoX21vZGUgc2VhcmNoX21vZGUsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOworICAgIAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfcmFyZV9kYXRhKiByYXJlX2Rh
dGE7CiAgICAgcGFzX211dGF0aW9uX2NvdW50IHNhdmVkX2NvdW50OwogICAgIHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogbWVkaXVtX2RpcmVjdG9yaWVzOwpAQCAt
NDc4LDggKzQ5NCwxMSBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVw
CiAgICAgICAgIHJhcmVfZGF0YSwgbWVkaXVtX2RpcmVjdG9yaWVzLCBudW1fbWVkaXVtX2RpcmVj
dG9yaWVzLCBpbmRleCwgc2VhcmNoX21vZGUpOwogICAgIAogICAgIGlmIChwYXNfbXV0YXRpb25f
Y291bnRfbWF0Y2hlc193aXRoX2RlcGVuZGVuY3koCi0gICAgICAgICAgICAmcmFyZV9kYXRhLT5t
dXRhdGlvbl9jb3VudCwgc2F2ZWRfY291bnQsIHJlc3VsdC5kZXBlbmRlbmN5KSkKKyAgICAgICAg
ICAgICZyYXJlX2RhdGEtPm11dGF0aW9uX2NvdW50LCBzYXZlZF9jb3VudCwgcmVzdWx0LmRlcGVu
ZGVuY3kpKSB7CisgICAgICAgIGlmICh2ZXJib3NlICYmICFyZXN1bHQudHVwbGUpCisgICAgICAg
ICAgICBwYXNfbG9nKCJkaWQgbm90IGZpbmQgdHVwbGVcbiIpOwogICAgICAgICByZXR1cm4gcmVz
dWx0LnR1cGxlOworICAgIH0KICAgICAKICAgICByZXR1cm4gbWVkaXVtX2RpcmVjdG9yeV90dXBs
ZV9mb3JfaW5kZXhfd2l0aF9sb2NrKAogICAgICAgICBoZWFwLCBpbmRleCwgc2VhcmNoX21vZGUs
IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKQEAgLTQ5MSwxMyArNTEwLDIwIEBAIHVuc2lnbmVkIHBh
c19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2FsbG8KICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfbW9kZSBzZWFyY2hfbW9kZSwKICAgICBwYXNfbG9j
a19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9v
bCB2ZXJib3NlID0gZmFsc2U7CisgICAgCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
ZGlyZWN0b3J5X3R1cGxlKiBtZWRpdW1fZGlyZWN0b3J5OwogICAgIAogICAgIG1lZGl1bV9kaXJl
Y3RvcnkgPSBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGVfZm9yX2lu
ZGV4KAogICAgICAgICBoZWFwLCBpbmRleCwgc2VhcmNoX21vZGUsIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwogICAgIAotICAgIGlmIChtZWRpdW1fZGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gbWVk
aXVtX2RpcmVjdG9yeS0+YWxsb2NhdG9yX2luZGV4OworICAgIGlmIChtZWRpdW1fZGlyZWN0b3J5
KSB7CisgICAgICAgIHVuc2lnbmVkIHJlc3VsdDsKKyAgICAgICAgcmVzdWx0ID0gbWVkaXVtX2Rp
cmVjdG9yeS0+YWxsb2NhdG9yX2luZGV4OworICAgICAgICBpZiAodmVyYm9zZSAmJiAhcmVzdWx0
KQorICAgICAgICAgICAgcGFzX2xvZygiZm91bmQgbnVsbCBhbGxvY2F0b3IgaW5kZXhcbiIpOwor
ICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KICAgICAKICAgICByZXR1cm4gMDsKIH0KQEAg
LTY0OSw2ICs2NzUsOCBAQCBzdGF0aWMgdm9pZCByZWNvbXB1dGVfc2l6ZV9sb29rdXAocGFzX3Nl
CiAgICAgICAgIHNpemVfdCBpbmRleDsKICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxv
Y2F0b3JfaW5kZXg7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2RhdGEq
IGRhdGE7CisgICAgICAgIHNpemVfdCBleHRyYV9pbmRleF9mb3JfYWxsb2NhdG9yOworICAgICAg
ICBib29sIGhhdmVfZXh0cmFfaW5kZXhfZm9yX2FsbG9jYXRvcjsKIAogICAgICAgICBkYXRhID0g
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfZGF0YV9wdHJfbG9hZCgmZGlyZWN0b3J5LT5k
YXRhKTsKICAgICAgICAgaWYgKGRhdGEpCkBAIC02NTgsMzggKzY4Niw1MCBAQCBzdGF0aWMgdm9p
ZCByZWNvbXB1dGVfc2l6ZV9sb29rdXAocGFzX3NlCiAKICAgICAgICAgUEFTX0FTU0VSVChhbGxv
Y2F0b3JfaW5kZXggIT0gKHBhc19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogCi0gICAgICAg
IGlmIChwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5faW5kZXgoZGlyZWN0b3J5KSA9
PSBVSU5UX01BWCkgewotICAgICAgICAgICAgLyogV2Ugbm93IGtub3cgdGhhdCB0aGlzIGRpcmVj
dG9yeSBpcyBub3QgaW4gdGhlIHNpemUgZGlyZWN0b3J5IHRhYmxlLCBiZWNhdXMgdGhlIG1pbl9p
bmRleCBpcwotICAgICAgICAgICAgICAgVUlOVF9NQVguIEJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQg
d2UndmUgcHV0IHRoZSBiYXNpYyBzaXplIGRpcmVjdG9yeSBpbnRvIHRoZSBhbGxvY2F0b3JfaW5k
ZXgKLSAgICAgICAgICAgICAgIHRhYmxlIGV2ZW4gdGhvdWdoIHdlIGhhdmVuJ3QgcHV0IGl0IGlu
dG8gdGhlIHNpemUgZGlyZWN0b3J5IHRhYmxlIGJlY2F1c2UgYXJyYXkgYWxsb2NhdGlvbiBjb3Vs
ZAotICAgICAgICAgICAgICAgZmluZCB0aGUgYmFzaWMgc2l6ZSBkaXJlY3RvcnkgYnkgbG9va2lu
ZyBhdCB0aGUgYmFzaWMgZGlyZWN0b3J5IHBvaW50ZXIgYW5kIHRoZW4KLSAgICAgICAgICAgICAg
IGVuc3VyZV9zaXplX2xvb2t1cCBhbmQgc3Rhc2ggdGhlIGFsbG9jYXRvcl9pbmRleCBpbiB0aGUg
YWxsb2NhdG9yX2luZGV4IHRhYmxlLiAqLwotICAgICAgICAgICAgaWYgKGRpcmVjdG9yeS0+YmFz
ZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeQotICAgICAgICAgICAgICAgICYmIHBhc19zZWdyZWdh
dGVkX2hlYXBfY2FjaGVkX2luZGV4X2lzX3NldChjYWNoZWRfaW5kZXgpKSB7Ci0gICAgICAgICAg
ICAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2dldF9jYWNoZWRfaW5kZXgoaGVhcCwg
Y2FjaGVkX2luZGV4LCBjb25maWcpOwotICAgICAgICAgICAgICAgIGlmIChpbmRleCA8IGhlYXAt
PnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICBoYXZlX2V4dHJhX2luZGV4X2Zvcl9h
bGxvY2F0b3IgPSBmYWxzZTsKKyAgICAgICAgZXh0cmFfaW5kZXhfZm9yX2FsbG9jYXRvciA9IDA7
CisgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXgKKyAgICAgICAgICAgICYmIGRpcmVjdG9yeS0+
YmFzZS5pc19iYXNpY19zaXplX2RpcmVjdG9yeQorICAgICAgICAgICAgJiYgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9jYWNoZWRfaW5kZXhfaXNfc2V0KGNhY2hlZF9pbmRleCkpIHsKKyAgICAgICAgICAg
IGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9nZXRfY2FjaGVkX2luZGV4KGhlYXAsIGNhY2hl
ZF9pbmRleCwgY29uZmlnKTsKKyAgICAgICAgICAgIGlmIChpbmRleCA8IGhlYXAtPnNtYWxsX2lu
ZGV4X3VwcGVyX2JvdW5kKSB7CisgICAgICAgICAgICAgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0
IHdlJ3ZlIHB1dCB0aGUgYmFzaWMgc2l6ZSBkaXJlY3RvcnkgaW50byB0aGUgYWxsb2NhdG9yX2lu
ZGV4IHRhYmxlIGV2ZW4KKyAgICAgICAgICAgICAgICAgICB0aG91Z2ggd2UgaGF2ZW4ndCBwdXQg
aXQgaW50byB0aGUgc2l6ZSBkaXJlY3RvcnkgdGFibGUgYmVjYXVzZSBhcnJheSBhbGxvY2F0aW9u
IGNvdWxkCisgICAgICAgICAgICAgICAgICAgZmluZCB0aGUgYmFzaWMgc2l6ZSBkaXJlY3Rvcnkg
YnkgbG9va2luZyBhdCB0aGUgYmFzaWMgZGlyZWN0b3J5IHBvaW50ZXIgYW5kIHRoZW4KKyAgICAg
ICAgICAgICAgICAgICBlbnN1cmVfc2l6ZV9sb29rdXAgYW5kIHN0YXNoIHRoZSBhbGxvY2F0b3Jf
aW5kZXggaW4gdGhlIGFsbG9jYXRvcl9pbmRleCB0YWJsZS4gKi8KKyAgICAgICAgICAgICAgICBo
YXZlX2V4dHJhX2luZGV4X2Zvcl9hbGxvY2F0b3IgPSB0cnVlOworICAgICAgICAgICAgICAgIGV4
dHJhX2luZGV4X2Zvcl9hbGxvY2F0b3IgPSBpbmRleDsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICAKKyAgICAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X21p
bl9pbmRleChkaXJlY3RvcnkpICE9IFVJTlRfTUFYKSB7CisgICAgICAgICAgICBQQVNfQVNTRVJU
KHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X21pbl9pbmRleChkaXJlY3RvcnkpCisgICAg
ICAgICAgICAgICAgICAgICAgIDw9IHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUo
ZGlyZWN0b3J5LT5vYmplY3Rfc2l6ZSwgKmNvbmZpZykpOworICAgICAgICAgICAgCisgICAgICAg
ICAgICBmb3IgKGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbWluX2luZGV4
KGRpcmVjdG9yeSk7CisgICAgICAgICAgICAgICAgIGluZGV4IDwgUEFTX01JTihwYXNfc2VncmVn
YXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsICpjb25maWcp
ICsgMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlYXAtPnNtYWxsX2luZGV4
X3VwcGVyX2JvdW5kKTsKKyAgICAgICAgICAgICAgICAgaW5kZXgrKykgeworICAgICAgICAgICAg
ICAgIHNldF9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeShpbmRleCwgZGlyZWN0b3J5LCBh
cmcpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5k
ZXgpIHsKICAgICAgICAgICAgICAgICAgICAgc2V0X2luZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9p
bmRleChpbmRleCwgYWxsb2NhdG9yX2luZGV4LCBhcmcpOworICAgICAgICAgICAgICAgICAgICAK
KyAgICAgICAgICAgICAgICAgICAgaWYgKGhhdmVfZXh0cmFfaW5kZXhfZm9yX2FsbG9jYXRvcgor
ICAgICAgICAgICAgICAgICAgICAgICAgJiYgZXh0cmFfaW5kZXhfZm9yX2FsbG9jYXRvciA9PSBp
bmRleCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhhdmVfZXh0cmFfaW5kZXhfZm9yX2FsbG9j
YXRvciA9IGZhbHNlOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAotICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRl
eF9mb3Jfc2l6ZShkaXJlY3RvcnktPm9iamVjdF9zaXplLCAqY29uZmlnKQorICAgICAgICAgICAg
ICAgID49IGhlYXAtPnNtYWxsX2luZGV4X3VwcGVyX2JvdW5kKSB7CisgICAgICAgICAgICAgICAg
c2l6ZV9kaXJlY3RvcnlfbWluX2hlYXBfYWRkKAorICAgICAgICAgICAgICAgICAgICAmbWluX2hl
YXAsIGRpcmVjdG9yeSwgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2Nv
bmZpZyk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KLQotICAgICAgICBQQVNfQVNTRVJUKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X21pbl9pbmRleChkaXJlY3RvcnkpCi0gICAgICAg
ICAgICAgICAgICAgPD0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShkaXJlY3Rv
cnktPm9iamVjdF9zaXplLCAqY29uZmlnKSk7Ci0KLSAgICAgICAgZm9yIChpbmRleCA9IHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X21pbl9pbmRleChkaXJlY3RvcnkpOwotICAgICAgICAg
ICAgIGluZGV4IDwgUEFTX01JTihwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGRp
cmVjdG9yeS0+b2JqZWN0X3NpemUsICpjb25maWcpICsgMSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVhcC0+c21hbGxfaW5kZXhfdXBwZXJfYm91bmQpOwotICAgICAgICAgICAgIGlu
ZGV4KyspIHsKLSAgICAgICAgICAgIHNldF9pbmRleF90b19zbWFsbF9zaXplX2RpcmVjdG9yeShp
bmRleCwgZGlyZWN0b3J5LCBhcmcpOwotCi0gICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4
KQotICAgICAgICAgICAgICAgIHNldF9pbmRleF90b19zbWFsbF9hbGxvY2F0b3JfaW5kZXgoaW5k
ZXgsIGFsbG9jYXRvcl9pbmRleCwgYXJnKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChwYXNf
c2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGRpcmVjdG9yeS0+b2JqZWN0X3NpemUsICpj
b25maWcpCi0gICAgICAgICAgICA+PSBoZWFwLT5zbWFsbF9pbmRleF91cHBlcl9ib3VuZCkKLSAg
ICAgICAgICAgIHNpemVfZGlyZWN0b3J5X21pbl9oZWFwX2FkZCgmbWluX2hlYXAsIGRpcmVjdG9y
eSwgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZyk7CisgICAg
ICAgIAorICAgICAgICBpZiAoaGF2ZV9leHRyYV9pbmRleF9mb3JfYWxsb2NhdG9yKQorICAgICAg
ICAgICAgc2V0X2luZGV4X3RvX3NtYWxsX2FsbG9jYXRvcl9pbmRleChleHRyYV9pbmRleF9mb3Jf
YWxsb2NhdG9yLCBhbGxvY2F0b3JfaW5kZXgsIGFyZyk7CiAgICAgfQogCiAgICAgZm9yIChtZWRp
dW1fdHVwbGVfaW5kZXggPSAwOwpAQCAtNzA2LDYgKzc0Niw3IEBAIHN0YXRpYyB2b2lkIHJlY29t
cHV0ZV9zaXplX2xvb2t1cChwYXNfc2UKICAgICAgICAgICAgIHR1cGxlLmFsbG9jYXRvcl9pbmRl
eCA9IDA7CiAgICAgICAgIFBBU19BU1NFUlQodHVwbGUuYWxsb2NhdG9yX2luZGV4ICE9IChwYXNf
YWxsb2NhdG9yX2luZGV4KVVJTlRfTUFYKTsKICAgICAgICAgdHVwbGUuYmVnaW5faW5kZXggPSBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9taW5faW5kZXgoZGlyZWN0b3J5KTsKKyAgICAg
ICAgUEFTX0FTU0VSVCh0dXBsZS5iZWdpbl9pbmRleCk7CiAgICAgICAgIHR1cGxlLmVuZF9pbmRl
eCA9ICh1bnNpZ25lZClwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGRpcmVjdG9y
eS0+b2JqZWN0X3NpemUsICpjb25maWcpOwogICAgICAgICAKICAgICAgICAgc2V0X21lZGl1bV9k
aXJlY3RvcnlfdHVwbGUobWVkaXVtX3R1cGxlX2luZGV4LCAmdHVwbGUsIGFyZyk7CkBAIC03NTUs
NiArNzk2LDcgQEAgc3RhdGljIHZvaWQgcmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1cF9zZQogICAg
IAogICAgIHR1cGxlcyA9IHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBs
ZV9wdHJfbG9hZCgmZGF0YS0+bWVkaXVtX2RpcmVjdG9yaWVzKTsKICAgICBQQVNfQVNTRVJUKHR1
cGxlcyk7CisgICAgUEFTX0FTU0VSVCh0dXBsZS0+YmVnaW5faW5kZXgpOwogICAgIHR1cGxlc1tt
ZWRpdW1fdHVwbGVfaW5kZXhdID0gKnR1cGxlOwogfQogCkBAIC04MDksMTggKzg1MSwxOSBAQCBw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kCiAKICAgICByZW1hdGVyaWFs
aXplX3NpemVfbG9va3VwX2lmX25lY2Vzc2FyeShoZWFwLCBjb25maWcsIGNhY2hlZF9pbmRleCk7
CiAKKyAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2lmX2FwcHJvcHJpYXRlKAor
ICAgICAgICBoZWFwLCBjb25maWcsIGNhY2hlZF9pbmRleCwgInN0YXJ0IG9mIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCIpOworCiAgICAgcGFyZW50X2hlYXAgPSBw
YXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKGhlYXApOwogICAgIAogICAgIFBBU19BU1NFUlQo
c2l6ZSA8PSBkaXJlY3RvcnktPm9iamVjdF9zaXplKTsKICAgICBQQVNfQVNTRVJUKCFwYXNfaGVh
cF9jb25maWdfaXNfdXRpbGl0eShjb25maWcpKTsKICAgICAKLSAgICBpZiAodmVyYm9zZSkgewot
ICAgICAgICBwcmludGYoIkluIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9p
bmRleFxuIik7Ci0gICAgICAgIHByaW50Zigic2l6ZSA9ICV6dVxuIiwgc2l6ZSk7Ci0gICAgfQor
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCIlcDogSW4gcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfYWxsb2NhdG9yX2luZGV4LCBzaXplID0gJXp1XG4iLCBwdGhyZWFkX3NlbGYo
KSwgc2l6ZSk7CiAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXpl
KHNpemUsICpjb25maWcpOwogICAgIGlmICh2ZXJib3NlKQotICAgICAgICBwcmludGYoImluZGV4
ID0gJXp1XG4iLCBpbmRleCk7CisgICAgICAgIHBhc19sb2coImluZGV4ID0gJXp1XG4iLCBpbmRl
eCk7CiAKICAgICBhbGxvY2F0b3JfaW5kZXggPQogICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9kYXRhX3B0cl9sb2FkKCZkaXJlY3RvcnktPmRhdGEpLT5hbGxvY2F0b3JfaW5k
ZXg7CkBAIC04MjksMTQgKzg3MiwxNCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxv
Y2F0b3JfaW5kCiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXggPCAodW5zaWduZWQpKHBh
c19hbGxvY2F0b3JfaW5kZXgpVUlOVF9NQVgpOwogICAgIAogICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICBwcmludGYoImFsbG9jYXRvcl9pbmRleCA9ICV1XG4iLCBhbGxvY2F0b3JfaW5kZXgpOwor
ICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3JfaW5kZXggPSAldVxuIiwgYWxsb2NhdG9yX2luZGV4
KTsKICAgICAKICAgICBkaWRfY2FjaGVfYWxsb2NhdG9yX2luZGV4ID0gZmFsc2U7CiAgICAgCiAg
ICAgaWYgKHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfaXNfY2FjaGVkX2luZGV4X2FuZF9jYWNo
ZWRfaW5kZXhfaXNfc2V0KGhlYXAsIGNhY2hlZF9pbmRleCwgaW5kZXgsIGNvbmZpZykKICAgICAg
ICAgJiYgcGFyZW50X2hlYXAgJiYgcGFyZW50X2hlYXAtPmhlYXBfcmVmKSB7CiAgICAgICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICBwcmludGYoInBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX2FsbG9jYXRvcl9pbmRleF9mb3Jfc2l6ZV9kaXJlY3Rvcnk6ICIKKyAgICAgICAgICAgIHBh
c19sb2coInBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleF9mb3Jfc2l6
ZV9kaXJlY3Rvcnk6ICIKICAgICAgICAgICAgICAgICAgICAiQ2FjaGluZyBhcyBjYWNoZWQgaW5k
ZXghXG4iKTsKICAgICAgICAgfQogICAgICAgICBQQVNfQVNTRVJUKCFwYXJlbnRfaGVhcC0+aGVh
cF9yZWYtPmFsbG9jYXRvcl9pbmRleCB8fApAQCAtODc1LDYgKzkxOCw5IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmQKICAgICAgICAgbWVkaXVtX2RpcmVjdG9yeS0+
YWxsb2NhdG9yX2luZGV4ID0gKHBhc19hbGxvY2F0b3JfaW5kZXgpYWxsb2NhdG9yX2luZGV4Owog
ICAgIH0KICAgICAKKyAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2lmX2FwcHJv
cHJpYXRlKAorICAgICAgICBoZWFwLCBjb25maWcsIGNhY2hlZF9pbmRleCwgImVuZCBvZiBwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgiKTsKKwogICAgIHJldHVybiBh
bGxvY2F0b3JfaW5kZXg7CiB9CiAKQEAgLTEwODcsNiArMTEzMyw3IEBAIHN0YXRpYyB2b2lkIGNo
ZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXQKIAogICAgIGRhdGEgPSBhcmc7CiAKKyAgICBQQVNf
QVNTRVJUKHZhbHVlLT5iZWdpbl9pbmRleCk7CiAgICAgUEFTX0FTU0VSVChtZWRpdW1fdHVwbGVf
aW5kZXggPT0gZGF0YS0+bnVtX21lZGl1bV9kaXJlY3Rvcmllcyk7CiAgICAgUEFTX0FTU0VSVCgo
dW5zaWduZWQpKG1lZGl1bV90dXBsZV9pbmRleCArIDF1KSA9PSBtZWRpdW1fdHVwbGVfaW5kZXgg
KyAxdSk7CiAgICAgZGF0YS0+bnVtX21lZGl1bV9kaXJlY3RvcmllcyA9ICh1bnNpZ25lZCkobWVk
aXVtX3R1cGxlX2luZGV4ICsgMXUpOwpAQCAtMTE0NCw5ICsxMTkxLDMwIEBAIHN0YXRpYyB2b2lk
IGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXQKICAgICB9CiB9CiAKK3N0YXRpYyBib29sIGNo
ZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZHVtcF9kaXJlY3RvcnkocGFzX3NlZ3JlZ2F0
ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCogYXJnKQoreworICAgIFBBU19VTlVTRURfUEFSQU0oaGVhcCk7CisgICAgUEFT
X0FTU0VSVCghYXJnKTsKKworICAgIHBhc19sb2coIiAgICAiKTsKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeV9kdW1wX3JlZmVyZW5jZShkaXJlY3RvcnksICZwYXNfbG9nX3N0cmVh
bS5iYXNlKTsKKyAgICBwYXNfbG9nKCI6IG1pbl9pbmRleCA9ICV1LCBvYmplY3Rfc2l6ZSA9ICV1
LCBhbGxvY2F0b3JfaW5kZXggPSAldSIsCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9taW5faW5kZXgoZGlyZWN0b3J5KSwKKyAgICAgICAgICAgIGRpcmVjdG9yeS0+
b2JqZWN0X3NpemUsCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9n
ZXRfdGxjX2FsbG9jYXRvcl9pbmRleChkaXJlY3RvcnkpKTsKKyAgICBpZiAoZGlyZWN0b3J5LT5i
YXNlLmlzX2Jhc2ljX3NpemVfZGlyZWN0b3J5KQorICAgICAgICBwYXNfbG9nKCIsIGlzIGJhc2lj
Iik7CisgICAgcGFzX2xvZygiXG4iKTsKKyAgICAKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogc3Rh
dGljIHZvaWQgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbihwYXNfc2VncmVnYXRlZF9o
ZWFwKiBoZWFwLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfaGVhcF9jb25maWcqIGNvbmZpZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgdW5zaWduZWQgKmNhY2hlZF9pbmRleCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgKmNhY2hlZF9pbmRleCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogd2hlcmUpCiB7
CiAgICAgY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9kYXRhIGRhdGE7CiAgICAgc2l6
ZV90IGJpdHZlY3Rvcl9zaXplOwpAQCAtMTIwOSwxMiArMTI3NywzOSBAQCBzdGF0aWMgdm9pZCBj
aGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0CiAgICAgICAgIGNoZWNrX3NpemVfbG9va3VwX3Jl
Y29tcHV0YXRpb25fZGlkX2JlY29tZV9ub3RfYWxsX2dvb2QoJmRhdGEpOwogICAgIH0KIAorICAg
IGlmICghZGF0YS5pc19hbGxfZ29vZCkgeworICAgICAgICBwYXNfaGVhcCogcGFyZW50X2hlYXA7
CisgICAgICAgIHBhc19sb2coIkVuY291bnRlcmVkIHNpemUgcmVjb21wdXRhdGlvbiBmYWlsdXJl
IGZvciBoZWFwICVwICglcywgIiwKKyAgICAgICAgICAgICAgICBoZWFwLCBwYXNfaGVhcF9jb25m
aWdfa2luZF9nZXRfc3RyaW5nKGNvbmZpZy0+a2luZCkpOworICAgICAgICBwYXJlbnRfaGVhcCA9
IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoaGVhcCk7CisgICAgICAgIGlmIChwYXJlbnRf
aGVhcCkKKyAgICAgICAgICAgIGNvbmZpZy0+ZHVtcF90eXBlKHBhcmVudF9oZWFwLT50eXBlLCAm
cGFzX2xvZ19zdHJlYW0uYmFzZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhc19sb2co
Im5vIHR5cGUiKTsKKyAgICAgICAgcGFzX2xvZygiKSBhdCAlcy5cbiIsIHdoZXJlKTsKKworICAg
ICAgICBwYXNfbG9nKCJEaXJlY3RvcmllczpcbiIpOworICAgICAgICBwYXNfc2VncmVnYXRlZF9o
ZWFwX2Zvcl9lYWNoX3NpemVfZGlyZWN0b3J5KGhlYXAsIGNoZWNrX3NpemVfbG9va3VwX3JlY29t
cHV0YXRpb25fZHVtcF9kaXJlY3RvcnksIE5VTEwpOworICAgIH0KKwogICAgIFBBU19BU1NFUlQo
ZGF0YS5pc19hbGxfZ29vZCk7CiAKICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVh
bGxvY2F0ZShkYXRhLnNlZW5faW5kZXhfdG9fc21hbGxfYWxsb2NhdG9yX2luZGV4LCBiaXR2ZWN0
b3Jfc2l6ZSk7CiAgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoZGF0
YS5zZWVuX2luZGV4X3RvX3NtYWxsX3NpemVfZGlyZWN0b3J5LCBiaXR2ZWN0b3Jfc2l6ZSk7CiB9
CiAKK3N0YXRpYyB2b2lkIGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25faWZfYXBwcm9w
cmlhdGUocGFzX3NlZ3JlZ2F0ZWRfaGVhcCogaGVhcCwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnKiBjb25m
aWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkICpjYWNoZWRfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIHdoZXJlKQorewor
ICAgIGlmICghUEFTX0VOQUJMRV9URVNUSU5HKQorICAgICAgICByZXR1cm47CisgICAgaWYgKHBh
c19oZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZykpCisgICAgICAgIHJldHVybjsKKyAgICBj
aGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uKGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4
LCB3aGVyZSk7Cit9CisKIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KgogcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemUoCiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcCogaGVhcCwKQEAgLTEyMzMsNiArMTMyOCw3IEBAIHBhc19zZWdyZWdhdGVkX2hl
YXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICBzaXplX3Qgb2JqZWN0X3NpemU7CiAgICAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKiBtZWRpdW1fdHVwbGU7CiAg
ICAgYm9vbCBpc191dGlsaXR5OworICAgIHNpemVfdCB0eXBlX2FsaWdubWVudDsKIAogICAgIHBh
c19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKIApAQCAtMTI0NSw4ICsxMzQxLDYgQEAgcGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIGhlYXAs
IHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoY29uZmlnLT5raW5kKSwgc2l6ZSwgYWxp
Z25tZW50KTsKICAgICB9CiAKLSAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKHNpemUsIGFs
aWdubWVudCkpOwotCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykgewogICAgICAgICBjaGVj
a19wYXJ0X29mX2FsbF9oZWFwc19kYXRhIGRhdGE7CiAgICAgICAgIGRhdGEuaGVhcCA9IGhlYXA7
CkBAIC0xMjg4LDggKzEzODIsNDYgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9k
aXJlY3RvcgogCiAgICAgcmVtYXRlcmlhbGl6ZV9zaXplX2xvb2t1cF9pZl9uZWNlc3NhcnkoaGVh
cCwgY29uZmlnLCBjYWNoZWRfaW5kZXgpOwogCisgICAgaXNfdXRpbGl0eSA9IHBhc19oZWFwX2Nv
bmZpZ19pc191dGlsaXR5KGNvbmZpZyk7CisKKyAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1
dGF0aW9uX2lmX2FwcHJvcHJpYXRlKAorICAgICAgICBoZWFwLCBjb25maWcsIGNhY2hlZF9pbmRl
eCwgInN0YXJ0IG9mIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zv
cl9zaXplIik7CisKICAgICBwYXJlbnRfaGVhcCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hl
YXAoaGVhcCk7CiAKKyAgICAvKiBTYXkgdGhhdCB0aGUgaGVhcCdzIHR5cGUgaGFzIGFuIGFsaWdu
bWVudCBvZiAxMjggYW5kIHRoYXQgc29tZW9uZSBjYWxscyBzb21ldGhpbmcgbGlrZQorICAgICAg
IGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemUoJnNvbWVfaGVhcCwgNTE2MykuCisg
ICAgICAgCisgICAgICAgQmVmb3JlIGNvbnNpZGVyaW5nIHdoYXQgdGhlIHBvc3NpYmxlIGJlaGF2
aW9ycyBjb3VsZCBiZSwgbGV0J3MgdGFrZSBub3RlIG9mIGEgY29uc3RyYWludDogaXQncyBub3QK
KyAgICAgICByZWFzb25hYmxlIHRvIHJlcXVpcmUgdGhlIGZhc3QgcGF0aCBvZiBhbGxvY2F0aW9u
IHRvIGFsaWduIDUxNjMgdG8gMTI4LCBzaW5jZSB0aGF0IHdvdWxkIHJlcXVpcmUgbG9hZGluZwor
ICAgICAgIHRoZSBhbGlnbm1lbnQgZnJvbSB0aGUgdHlwZSBhbmQgZG9pbmcgaXQgZHluYW1pY2Fs
bHksIHdoaWNoIGludm9sdmVzIG1vcmUgY3ljbGVzIGZvciB0aGUgZmFzdCBwYXRoIHRoYW4KKyAg
ICAgICB3ZSdkIGxpa2UuCisgICAgICAgCisgICAgICAgU28gd2hhdCBiZWhhdmlvciBkbyB3ZSB3
YW50IHRoaXMgdG8gaGF2ZT8KKyAgICAgICAKKyAgICAgICAxKSBXZSBjb3VsZCBtYWtlIHRoaXMg
YW4gZXJyb3IuIEJ1dCwgc2luY2Ugd2UgY2Fubm90IGRvIHRoZSBhbGlnbm1lbnQgY29tcHV0YXRp
b24gb24gdGhlIGZhc3QgcGF0aCwgdGhlCisgICAgICAgICAgZXJyb3Igd291bGQgb25seSBtYW5p
ZmVzdCBpZiB3ZSBoaXQgYSBzbG93IHBhdGguCisgICAgICAgCisgICAgICAgMikgV2UgY291bGQg
anVzdCBzaWxlbnRseSBhbGlnbiB0aGUgc2l6ZSBmb3IgdGhlIHVzZXIuIFRvIG1ha2UgdGhpcyB3
b3JrLCB3ZSBqdXN0IGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQKKyAgICAgICAgICB3aGVuIHRoZSBm
YXN0IHBhdGggYXNrcyBmb3IgNTE2MyBhZ2FpbiwgdGhleSB3aWxsIGdldCBhbiBhbGxvY2F0b3Ig
dGhhdCBpcyBhbGlnbmVkIGFwcHJvcHJpYXRlbHkuCisgICAgICAgCisgICAgICAgVGhlIGZpcnN0
IG9wdGlvbiBzZWVtcyBkb3VibHkgYmFkOiBpdCB3aWxsIG9ubHkgbWFuaWZlc3Qgc29tZXRpbWVz
LCBhbmQgaXQncyB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlLgorICAgICAgIFdobyBpcyB0byBz
YXkgdGhhdCBhbiBhcnJheSBvZiB0aGF0IGxlbmd0aCBpcyByZWFsbHkgd3Jvbmc/IExpYnBhcyBn
ZW5lcmFsbHkgdGFrZXMgdGhlIGFwcHJvYWNoIG9mCisgICAgICAgcGVybWl0dGluZyB0aGUgdXNl
ciB0byByZXF1ZXN0IGEgbWlzYWxpZ25lZCBzaXplLCBhbmQgaXQgd2lsbCBhbGlnbiB0aGUgc2l6
ZSBmb3IgdGhlIHVzZXIuCisKKyAgICAgICBUbyBtYWtlIHRoZSBzZWNvbmQgb3B0aW9uIHdvcmss
IHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBpbmRleGAgaXMgY29tcHV0ZWQgZnJvbSB0aGUg
c2l6ZSB0aGF0IHRoZQorICAgICAgIHVzZXIgdGhvdWdodCB0aGV5IHdlcmUgcmVxdWVzdGluZywg
YW5kIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aXRoIHNpemUgYmVpbmcgZXhhY3Rs
eSB0aGUgc2l6ZQorICAgICAgIHRoYXQgdGhlIGFsbG9jYXRvciBzYXcuCisgICAgICAgCisgICAg
ICAgTm90ZSB0aGF0IHRoaXMgc2l6ZSBtYXkgYmUgYWxyZWFkeSBhbGlnbmVkIHRvIHRoZSBkeW5h
bWljYWxseSByZXF1ZXN0ZWQgYWxpZ25tZW50IChhcyBvcHBvc2VkIHRvIHRoZQorICAgICAgIHR5
cGUncyBhbGlnbm1lbnQpLCBhbmQgdGhhdCdzIGdyZWF0ISBUaGF0IGJlaGF2aW9yIGVuc3VyZXMg
dGhhdCBpZiB3ZSBsYXRlciB0cnkgdG8gYWxsb2NhdGUgdGhpcyBzaXplCisgICAgICAgd2l0aG91
dCB0aGF0IGFsaWdubWVudCwgd2UgY2FuIGdldCBhIGRpcmVjdG9yeSB0aGF0IGlzIGJldHRlciBz
dWl0ZWQuIFRoZSBgYWxpZ25tZW50YCB3ZSBhcmUgcGFzc2VkIGhlcmUKKyAgICAgICBpcyB0aGUg
bWF4IG9mIHRoZSB0eXBlJ3MgYWxpZ25tZW50IGFuZCB0aGUgcmVxdWVzdGVkIGFsaWdubWVudCwg
c28gaWYgdGhlIHNpemUgaXMgbm90IGFsaWduZWQgdG8KKyAgICAgICBgYWxpZ25tZW50YCwgdGhl
biB3ZSBrbm93IGl0J3MgYmVjYXVzZSBgYWxpZ25tZW50YCBpcyB0aGUgdHlwZSdzIGFsaWdubWVu
dC4gKi8KKworICAgIHR5cGVfYWxpZ25tZW50ID0gcGFzX2hlYXBfZ2V0X3R5cGVfYWxpZ25tZW50
KHBhcmVudF9oZWFwKTsKKyAgICBQQVNfQVNTRVJUKGFsaWdubWVudCA+PSB0eXBlX2FsaWdubWVu
dCk7CisgICAgCiAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2luZGV4X2Zvcl9zaXpl
KHNpemUsICpjb25maWcpOwogICAgIG9iamVjdF9zaXplID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9z
aXplX2Zvcl9pbmRleChpbmRleCwgKmNvbmZpZyk7CiAKQEAgLTEzMDEsMTMgKzE0MzMsMjggQEAg
cGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogCiAgICAgb2JqZWN0X3Np
emUgPSBQQVNfTUFYKG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWcoY29uZmlnKSwgb2Jq
ZWN0X3NpemUpOwogCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwg
YWxpZ25tZW50KSk7CiAgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgKICAgICAgICAgICAg
ICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWdu
KGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKSk7CiAKICAgICBhbGlnbm1lbnQgPSBQ
QVNfTUFYKGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSk7
CiAKKyAgICBpZiAoYWxpZ25tZW50ID4gdHlwZV9hbGlnbm1lbnQpIHsKKyAgICAgICAgLyogSWYg
dGhlIGFsaWdubWVudCBpcyBiaWdnZXIgdGhhbiB0eXBlX2FsaWdubWVudCB0aGVuIGl0IG1lYW5z
IHRoYXQgdGhpcyBpcyBhIGR5bmFtaWNhbGx5IHJlcXVlc3RlZAorICAgICAgICAgICBhbGlnbm1l
bnQuIFNvLCB3ZSBleHBlY3QgdGhhdCB0aGUgb2JqZWN0IHNpemUgd2FzIGFscmVhZHkgYWxpZ25l
ZCB0byBpdCBieSB0aGUgYWxsb2NhdG9yIGZhc3QKKyAgICAgICAgICAgcGF0aC4gV2Ugc2hvdWxk
IG5ldmVyIGdldCBoZXJlIHdpdGggYSBzaXplIHRoYXQgaXNuJ3QgYWxyZWFkeSBhbGlnbmVkIHRv
IHRoZSBkeW5hbWljYWxseSByZXF1ZXN0ZWQKKyAgICAgICAgICAgYWxpZ25tZW50ISAqLworICAg
ICAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsK
KyAgICB9IGVsc2UgeworICAgICAgICAvKiBJZiB0aGUgYWxpZ25tZW50IGlzIGV4YWN0bHkgdGhl
IHR5cGVfYWxpZ25tZW50LCB0aGVuIGl0IG1pZ2h0IGJlIHRoYXQgd2UgYXJlIGFsbG9jYXRpbmcg
d2l0aG91dAorICAgICAgICAgICBhbnkgZHluYW1pY2FsbHkgcmVxdWVzdGVkIGFsaWdubWVudCwg
b3IgYSBkeW5hbWljYWxseSByZXF1ZXN0ZWQgYWxpZ25tZW50IHRoYXQgaXMgc21hbGxlciB0aGFu
IHRoZQorICAgICAgICAgICB0eXBlIGFsaWdubWVudC4gSW4gdGhhdCBjYXNlLCB3ZSBhbGlnbiB0
aGUgb2JqZWN0X3NpemUgaGVyZSwgc28gdGhhdCBpbiB0aGlzIGhlYXAsIGFsbCBvYmplY3Qgc2l6
ZXMKKyAgICAgICAgICAgYXJlIGFsaWduZWQgdG8gdGhlIHR5cGUncyBhbGlnbm1lbnQuICovCisg
ICAgICAgIG9iamVjdF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIob2JqZWN0X3Np
emUsIGFsaWdubWVudCk7CisgICAgfQorCisgICAgUEFTX0FTU0VSVChvYmplY3Rfc2l6ZSA+PSBz
aXplKTsKKwogICAgIC8qIElmIHdlIGhhdmUgb3ZlcmZsb3dlZCBhbHJlYWR5IHRoZW4gYmFpbC4g
Ki8KICAgICBpZiAoKHVuc2lnbmVkKW9iamVjdF9zaXplICE9IG9iamVjdF9zaXplIHx8CiAgICAg
ICAgICh1bnNpZ25lZClhbGlnbm1lbnQgIT0gYWxpZ25tZW50KQpAQCAtMTMzNyw4ICsxNDg0LDYg
QEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICB8fCBw
YXNfaXNfYWxpZ25lZChyZXN1bHQtPm9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9hbGlnbm1lbnQocmVzdWx0KSkKICAgICAgICAgfHwgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnlfaXNfYml0Zml0KHJlc3VsdCkpOwogCi0gICAgaXNfdXRpbGl0eSA9IHBhc19o
ZWFwX2NvbmZpZ19pc191dGlsaXR5KGNvbmZpZyk7Ci0KICAgICBpZiAodmVyYm9zZSkKICAgICAg
ICAgcGFzX2xvZygiU21hbGwgaW5kZXggdXBwZXIgYm91bmQgPSAldVxuIiwgaGVhcC0+c21hbGxf
aW5kZXhfdXBwZXJfYm91bmQpOwogICAgIApAQCAtMTQzOSw2ICsxNTg0LDcgQEAgcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIGJlZ2luX2lu
ZGV4ID0gaW5kZXggKyAxOwogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoKHBhc19zZWdyZWdh
dGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV9pbmRleCliZWdpbl9pbmRleCA9PSBiZWdpbl9pbmRl
eCk7CiAgICAgICAgICAgICAgICAgbWVkaXVtX3R1cGxlLT5iZWdpbl9pbmRleCA9IChwYXNfc2Vn
cmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfaW5kZXgpYmVnaW5faW5kZXg7CisgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVChtZWRpdW1fdHVwbGUtPmJlZ2luX2luZGV4KTsKICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
ZGlyZWN0b3J5X3R1cGxlKiBtZWRpdW1fZGlyZWN0b3JpZXM7CiAgICAgICAgICAgICAgICAgc2l6
ZV90IG1lZGl1bV90dXBsZV9pbmRleDsKQEAgLTE2MTIsOCArMTc1OCw4IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgIGRvdWJsZSBieXRlc19k
aXJ0aWVkX3Blcl9vYmplY3RfYnlfY2FuZGlkYXRlOwogICAgICAgICAKICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJvYmplY3Rfc2l6ZSA9ICVsdVxu
Iiwgb2JqZWN0X3NpemUpOwotICAgICAgICAgICAgICAgIHByaW50ZigiY2FuZGlkYXRlLT5vYmpl
Y3Rfc2l6ZSA9ICV1XG4iLCBjYW5kaWRhdGUtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJvYmplY3Rfc2l6ZSA9ICVsdVxuIiwgb2JqZWN0X3NpemUpOworICAgICAgICAg
ICAgICAgIHBhc19sb2coImNhbmRpZGF0ZS0+b2JqZWN0X3NpemUgPSAldVxuIiwgY2FuZGlkYXRl
LT5vYmplY3Rfc2l6ZSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIGlmIChjYW5kaWRh
dGUtPmJhc2UucGFnZV9jb25maWdfa2luZCAhPSBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19r
aW5kX251bGwpIHsKQEAgLTE3MDksNyArMTg1NSw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICBiZXN0X3BhZ2VfY29uZmlnLAogICAg
ICAgICAgICAgICAgIGNyZWF0aW9uX21vZGUpOwogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0g
ICAgICAgICAgICAgICAgcHJpbnRmKCJDcmVhdGVkIHNpemUgY2xhc3MgPSAlcFxuIiwgcmVzdWx0
KTsKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGVkIHNpemUgY2xhc3MgPSAlcFxuIiwg
cmVzdWx0KTsKIAogICAgICAgICAgICAgYmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQgPSBw
YXNfY29tcGFjdF9hdG9taWNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgKICAg
ICAgICAgICAgICAgICAmaGVhcC0+YmFzaWNfc2l6ZV9kaXJlY3RvcnlfYW5kX2hlYWQpOwpAQCAt
MTczNCw3ICsxODgwLDcgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rv
cgogICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKHZlcmJvc2UpIHsKLSAgICAgICAgICAgICAg
ICBwcmludGYoInBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9z
aXplOiAiCisgICAgICAgICAgICAgICAgcGFzX2xvZygicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1
cmVfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemU6ICIKICAgICAgICAgICAgICAgICAgICAgICAgIkNh
Y2hpbmcgYXMgYmFzaWMgc2l6ZSBjbGFzcyFcbiIpOwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgZGlyZWN0b3J5ID0gcGFzX2NvbXBhY3RfYXRvbWljX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rv
cnlfcHRyX2xvYWQoCkBAIC0xNzgyLDggKzE5MjgsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vu
c3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAgICByZXN1bHQtPmJhc2UuaXNfYmFzaWNfc2l6
ZV9kaXJlY3RvcnkgPSB0cnVlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgaWYgKHZl
cmJvc2UpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoInBhc19zZWdyZWdhdGVkX2hlYXBfZW5z
dXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3VudDogIgotICAgICAgICAgICAgICAgICAgICAgICAi
Tk9UIGNhY2hpbmcgYXMgYmFzaWMgc2l6ZSBjbGFzcyFcbiIpOworICAgICAgICAgICAgICAgIHBh
c19sb2coInBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9jb3Vu
dDogIgorICAgICAgICAgICAgICAgICAgICAgICAgIk5PVCBjYWNoaW5nIGFzIGJhc2ljIHNpemUg
Y2xhc3MhXG4iKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCkBAIC0xODg1LDYgKzIwMzEs
NyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAgICAg
ICAgICAgICAgICZuZXh0X3R1cGxlLT5kaXJlY3RvcnkpID09IHJlc3VsdCkgewogICAgICAgICAg
ICAgICAgIHNpemVfdCBiZWdpbl9pbmRleDsKICAgICAgICAgICAgICAgICBiZWdpbl9pbmRleCA9
IFBBU19NSU4oaW5kZXgsIChzaXplX3QpbmV4dF90dXBsZS0+YmVnaW5faW5kZXgpOworICAgICAg
ICAgICAgICAgIFBBU19BU1NFUlQoYmVnaW5faW5kZXgpOwogICAgICAgICAgICAgICAgIFBBU19B
U1NFUlQoKHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV9pbmRleCliZWdpbl9p
bmRleCA9PSBiZWdpbl9pbmRleCk7CiAgICAgICAgICAgICAgICAgbmV4dF90dXBsZS0+YmVnaW5f
aW5kZXggPSAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X2luZGV4KWJlZ2lu
X2luZGV4OwogICAgICAgICAgICAgfSBlbHNlIHsKQEAgLTE5NzYsNyArMjEyMyw4IEBAIHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvZygiSW4gcmFyZV9kYXRhID0gJXAsIEluc3RhbGxpbmcgbWVkaXVtIHR1cGxlICV6dS4u
LiV6dVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICByYXJlX2RhdGEsIGluZGV4LCBt
ZWRpdW1faW5zdGFsbF9pbmRleCk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
IAorCisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChpbmRleCk7CiAgICAgICAgICAgICAgICAg
bWVkaXVtX2RpcmVjdG9yeS0+YmVnaW5faW5kZXggPSAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRp
dW1fZGlyZWN0b3J5X2luZGV4KWluZGV4OwogICAgICAgICAgICAgICAgIG1lZGl1bV9kaXJlY3Rv
cnktPmVuZF9pbmRleCA9CiAgICAgICAgICAgICAgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFw
X21lZGl1bV9kaXJlY3RvcnlfaW5kZXgpbWVkaXVtX2luc3RhbGxfaW5kZXg7CkBAIC0yMDE0LDgg
KzIxNjIsOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAg
ICAgICAgICAgICAgICAgPT0gcmVzdWx0KTsKICAgICB9CiAKLSAgICBpZiAoUEFTX0VOQUJMRV9U
RVNUSU5HICYmICFpc191dGlsaXR5KQotICAgICAgICBjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1
dGF0aW9uKGhlYXAsIGNvbmZpZywgY2FjaGVkX2luZGV4KTsKKyAgICBjaGVja19zaXplX2xvb2t1
cF9yZWNvbXB1dGF0aW9uX2lmX2FwcHJvcHJpYXRlKAorICAgICAgICBoZWFwLCBjb25maWcsIGNh
Y2hlZF9pbmRleCwgImVuZCBvZiBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yeV9mb3Jfc2l6ZSIpOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
LmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcgKzExOCwxMCBA
QCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0CiAgICAgCiAgICAgLyog
VGhpcyBpcyB0aGUgYGluZGV4YCB3ZSB3b3VsZCB1c2UgdG8gZG8gYSBsb29rdXAuIEEgbWVkaXVt
IGRpcmVjdG9yeSB0dXBsZSByZXByZXNlbnRzIGEKICAgICAgICBjb250aWd1b3VzIHJhbmdlIG9m
IGluZGljZXMgdGhhdCBtYXAgdG8gYSBzaW5nbGUgZGlyZWN0b3J5LiAqLwotICAgIHBhc19zZWdy
ZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV9pbmRleCBiZWdpbl9pbmRleDsgLyogaW5jbHVz
aXZlICovCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X2luZGV4IGJl
Z2luX2luZGV4OyAvKiBpbmNsdXNpdmUsIGJ1dCBjYW5ub3QgYmUgemVybywgc28gd2UgY2FuCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBkZXRlY3QgcmFjZXMgKHdlIGNvdWxkIHJlbGF4IHRoaXMgaWYgd2UganVzdAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bWFkZSB0aGlzICJiZWdpbl9pbmRleF9wbHVzX29uZSIgb3Igc29tZXRoaW5nCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWtl
IHRoYXQpICovCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X2luZGV4
IGVuZF9pbmRleDsgLyogaW5jbHVzaXZlICovCiB9OwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFw
X2lubGluZXMuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEyNyw3ICsxMjcsOCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgYm9vbCBwYXNfc2VncmVn
CiAgICAgICAgIHR1cGxlcyA9IHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90
dXBsZV9wdHJfbG9hZCgKICAgICAgICAgICAgICZkYXRhW3Bhc19kZXBlbmQobnVtX21lZGl1bV9k
aXJlY3RvcmllcyldLm1lZGl1bV9kaXJlY3Rvcmllcyk7CiAKLSAgICAgICAgaWYgKHR1cGxlcykg
eworICAgICAgICBpZiAobnVtX21lZGl1bV9kaXJlY3RvcmllcykgeworICAgICAgICAgICAgUEFT
X0FTU0VSVCh0dXBsZXMpOwogICAgICAgICAgICAgcmVzdWx0IHw9IHBhc19jb21wYWN0X2V4cGVu
ZGFibGVfbWVtb3J5X3RvdWNoKAogICAgICAgICAgICAgICAgIHR1cGxlcywKICAgICAgICAgICAg
ICAgICBudW1fbWVkaXVtX2RpcmVjdG9yaWVzICogc2l6ZW9mKHBhc19zZWdyZWdhdGVkX2hlYXBf
bWVkaXVtX2RpcmVjdG9yeV90dXBsZSksCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCShyZXZpc2lvbiAyODgx
NzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9w
YWdlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQwOSw3ICs0MDksOCBAQCBib29sIHBhc19zZWdyZWdh
dGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5CiAgICAgcmFuZ2UgPSBwYXNfdmlydHVhbF9yYW5nZV9j
cmVhdGUoCiAgICAgICAgIGJhc2UsCiAgICAgICAgIGJhc2UgKyBwYWdlX2NvbmZpZy5iYXNlLnBh
Z2Vfc2l6ZSwKLSAgICAgICAgY29tbWl0X2xvY2tfZm9yKHBhZ2UpKTsKKyAgICAgICAgY29tbWl0
X2xvY2tfZm9yKHBhZ2UpLAorICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0
ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAKICAgICByZXR1cm4gcGFzX2RlZmVycmVkX2RlY29t
bWl0X2xvZ19hZGRfbWF5YmVfbG9ja2VkKAogICAgICAgICBkZWNvbW1pdF9sb2csIHJhbmdlLCBy
YW5nZV9sb2NrZWRfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CkBAIC00ODksNyArNDkwLDcg
QEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1pdF9mdWxseSgKICAgICAgICAgICAgIHBh
c19sb2NrX2xvY2soY29tbWl0X2xvY2spOwogICAgICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsK
IAotICAgICAgICBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3Bhbik7CisgICAg
ICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuLCBwYWdlX2NvbmZpZy5i
YXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKIAogICAgICAgICBmb3IgKGdy
YW51bGVfaW5kZXggPSAwOyBncmFudWxlX2luZGV4IDwgbnVtX2dyYW51bGVzOyArK2dyYW51bGVf
aW5kZXgpIHsKICAgICAgICAgICAgIGlmICh1c2VfY291bnRzW2dyYW51bGVfaW5kZXhdICE9IFBB
U19QQUdFX0dSQU5VTEVfREVDT01NSVRURUQpIHsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5s
aW5lcy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjA0
LDcgKzYwNCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19zZWdyZWcKICAg
ICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKICAgICAgICAgaGVsZF9sb2NrID0gTlVMTDsKICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9jYXRlKAotICAgICAgICAgICAgYmVnaW4s
ICZoZWxkX2xvY2ssIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3X2NhY2hlX21v
ZGUsIGNhY2hlLCBwYWdlX2NvbmZpZywgcm9sZSk7CisgICAgICAgICAgICBiZWdpbiwgJmhlbGRf
bG9jaywgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlLCBOVUxMLCBwYWdl
X2NvbmZpZywgcm9sZSk7CiAgICAgICAgIHBhc19sb2NrX3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxM
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmll
dy5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMzcsNiAr
MzcsOCBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCIK
ICNpbmNsdWRlICJwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCIK
IAorc2l6ZV90IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jb3VudCA9IDA7CisKIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jcmVh
dGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSwKQEAgLTU0
LDYgKzU2LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSgKICAgICAgICAg
InBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyIsCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2Nh
dGlvbik7CiAKKyAgICBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY291bnQrKzsKKwogICAg
IC8qIFdlIGF0dGFjaCB0byBhIHNoYXJlZCB2aWV3IGxhemlseSAtIG9uY2Ugd2Uga25vdyB3aGF0
IHdlJ3JlIGFsbG9jYXRpbmcuICovCiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19wdHJfc3RvcmUoJnJlc3VsdC0+c2hhcmVkX3ZpZXcsIE5VTEwpOwogCkBAIC0yNDIsNiAr
MjQ2LDkgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkgY29tcHV0ZV9zdW1tYXJ5KAogICAgICAg
ICB9CiAgICAgfQogCisgICAgaWYgKHZpZXctPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbikKKyAg
ICAgICAgcmVzdWx0LmNhY2hlZCArPSBwYXNfaGVhcF9zdW1tYXJ5X3RvdGFsKHJlc3VsdCk7CisK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcu
aAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQzLDYgKzQz
LDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aQogdHlwZWRlZiBz
dHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIAorUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19jb3VudDsKKwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmlldyB7CiAgICAgdW5zaWduZWQgaW5saW5lX2FsbG9jX2JpdHM7CiAgICAgCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFn
ZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjg4
MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTQyNiw3ICs0MjYsOCBA
QCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldygKICAgICAgICAgc2hhcmVkX3ZpZXctPmlz
X293bmVkID0gZmFsc2U7CiAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCgKICAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRhcnkocGFnZSwgcGFnZV9jb25maWcpLAot
ICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOworICAgICAgICAgICAgcGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmhl
YXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBwYXNfbG9ja19pc19oZWxkKTsKICAg
ICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsK
ICAgICAgICAgZ290byByZXR1cm5fdGFrZW5fcGFydGlhbF92aWV3c19hZnRlcl9kZWNvbW1pdDsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYwkocmV2aXNpb24gMjg4MTc5KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcu
Ywkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2hhcmVkX2hhbmRsZV9v
cl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCIKIAorc2l6ZV90IHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3X2NvdW50ID0gMDsKKwogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3X2NyZWF0ZShzaXplX3QgaW5kZXgpCiB7CiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXcqIHJlc3VsdDsKQEAgLTUxLDYgKzUzLDggQEAgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdAogICAgICAgICAicGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXciLAogICAgICAgICBwYXNfb2JqZWN0X2FsbG9jYXRpb24pOwogCisgICAgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY291bnQrKzsKKwogICAgIHJlc3VsdC0+c2hhcmVkX2hhbmRs
ZV9vcl9wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKIAogICAgIC8qIE5VTEwgbXVzdCBsb29rIGxpa2Ug
YSBwYWdlLiBDb2RlIHRoYXQgdGVzdHMgaWYgdGhpbmdzIGFyZSBwYWdlcyBjYW4gaW1wbGljaXRs
eSBhc3N1bWUgdGhhdApAQCAtMTY3LDcgKzE3MSw4IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9o
YW5kbGUqIHBhc19zZWdyZWcKICAgICAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseSgKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2hlYXBfbG9ja19o
b2xkX21vZGUocGFnZV9jb25maWcpKTsKIAotICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0
KGhhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUpOworICAg
ICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGhhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9j
b25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFn
ZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAg
IHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAogICAgICAgICAgICAgaGFuZGxl
LT5wYWdlX2JvdW5kYXJ5LAogICAgICAgICAgICAgcGFzX3BhZ2Vfa2luZF9mb3Jfc2VncmVnYXRl
ZF92YXJpYW50X2FuZF9yb2xlKApAQCAtMzQ2LDYgKzM1MSw5IEBAIHN0YXRpYyBwYXNfaGVhcF9z
dW1tYXJ5IGNvbXB1dGVfc3VtbWFyeSgKICAgICAgICAgJnBhZ2UtPmJhc2UsICZyZXN1bHQsIHBh
c19yYW5nZV9jcmVhdGUoc3RhcnRfb2ZfbGFzdF9mcmVlLCBlbmRfb2ZfcGF5bG9hZCksCiAgICAg
ICAgIHBhc19mcmVlX29iamVjdF9yYW5nZSk7CiAKKyAgICBpZiAodmlldy0+aXNfaW5fdXNlX2Zv
cl9hbGxvY2F0aW9uX2NvdW50KQorICAgICAgICByZXN1bHQuY2FjaGVkICs9IHBhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9zaGFyZWRfdmlldy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsK
IHR5cGVkZWYgc3RydWN0IHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHBhc19l
eHRlbmRlZF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7CiAKK1BBU19BUEkg
ZXh0ZXJuIHNpemVfdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jb3VudDsKKwogc3RydWN0
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHsKICAgICBwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5IHNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeTsKICAgICBwYXNfbG9j
ayBjb21taXRfbG9jazsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwkocmV2
aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtNzQ3LDcgKzc0Nyw4
IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KHBhc19zZWdyZWcKICAgICAgICAgfQog
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoCiAgICAgICAgICAgICBwYXNfc2VncmVn
YXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgIG15
X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgIG15X3BhZ2VfY29uZmln
LmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5oZWFwX2Nv
bmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwg
Kz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7CiAgICAgICAgIG15X3BhZ2VfY29uZmln
LmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgcGFzX2xvY2tfaXNfaGVsZCk7
CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeV92aWV3X2RpZF9iZWNvbWVfZWxpZ2li
bGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgJKHdvcmtpbmcgY29weSkK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zMDUsNiArMzA1LDE2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfc2VncmVnYXRlZF9z
aXplX2QKICAgICByZXR1cm4gZGF0YSAmJiBkYXRhLT5hbGxvY2F0b3JfaW5kZXg7CiB9CiAKK3N0
YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9nZXRfdGxjX2FsbG9jYXRvcl9pbmRleCgKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeSogZGlyZWN0b3J5KQoreworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5
X2RhdGEqIGRhdGE7CisgICAgZGF0YSA9IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2Rh
dGFfcHRyX2xvYWQoJmRpcmVjdG9yeS0+ZGF0YSk7CisgICAgaWYgKGRhdGEpCisgICAgICAgIHJl
dHVybiBkYXRhLT5hbGxvY2F0b3JfaW5kZXg7CisgICAgcmV0dXJuIDA7Cit9CisKIC8qIENhbGwg
d2l0aCBoZWFwIGxvY2sgaGVsZC4gKi8KIFBBU19BUEkgdm9pZCBwYXNfc2VncmVnYXRlZF9zaXpl
X2RpcmVjdG9yeV9jcmVhdGVfdGxjX3ZpZXdfY2FjaGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmll
d19hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsxODEsOCBAQCBwYXNfc2VncmVnYXRlZF92aWV3
X3dpbGxfc3RhcnRfYWxsb2NhdGluCiAgICAgICAgICAgICAgICAgICAgICAgICBudW1fbG9ja3Nf
aGVsZCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
cGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29u
ZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29t
bWl0KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNl
LmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkgewogICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhl
YWRlciB3aGVuIGNvbW1pdHRpbmcgZXhjbHVzaXZlIHBhZ2UsIHZpZXcgPSAlcCwgIgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJib3VuZGFyeSA9ICVwLlxuIiwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVy
LmMJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkod29ya2luZyBjb3B5KQpAQCAtNjczLDYgKzY3MywxMSBA
QCBzdGF0aWMgYm9vbCBkdW1wX2xhcmdlX3NoYXJpbmdfcG9vbF9ub2RlCiAgICAgICAgICAgICBz
dHJlYW0sICIsICVzIiwKICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25p
emF0aW9uX3N0eWxlX2dldF9zdHJpbmcobm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlKSk7CiAg
ICAgfQorICAgIGlmIChub2RlLT5tbWFwX2NhcGFiaWxpdHkgIT0gcGFzX21heV9tbWFwKSB7Cisg
ICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKAorICAgICAgICAgICAgc3RyZWFtLCAiLCAlcyIsCisg
ICAgICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5X2dldF9zdHJpbmcobm9kZS0+bW1hcF9jYXBh
YmlsaXR5KSk7CisgICAgfQogCiAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsK
IApAQCAtODIxLDYgKzgyNiwxMyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90b3Rh
bF9mcmFnCiAgICAgICAgICAgICAgICAgICAgICAgZGF0YS5sYXJnZV9mcmFnbWVudGF0aW9uKTsK
IH0KIAordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdmlld19zdGF0cyhwYXNfc3RyZWFt
KiBzdHJlYW0pCit7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgIE51bWJlciBv
ZiBQYXJ0aWFsIFZpZXdzOiAlenVcbiIsIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jb3Vu
dCk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgIE51bWJlciBvZiBTaGFyZWQg
Vmlld3M6ICV6dVxuIiwgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY291bnQpOworICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBOdW1iZXIgb2YgRXhjbHVzaXZlIFZpZXdzOiAl
enVcbiIsIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvdW50KTsKK30KKwogdHlwZWRl
ZiBzdHJ1Y3QgewogICAgIHNpemVfdCBudW1fZGlyZWN0b3JpZXNfd2l0aF9kYXRhOwogICAgIHNp
emVfdCBudW1fZGlyZWN0b3JpZXNfd2l0aF90bGFzOwpAQCAtODk0LDYgKzkwNiw3IEBAIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RpZXJfdXBfcmEKIAogc3RhdGljIGNvbnN0IGNoYXIq
IGFsbG9jYXRvcl9zdGF0ZShwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCiB7CisgICAg
CiAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZShhbGxvY2F0b3IpKQogICAg
ICAgICByZXR1cm4gImluYWN0aXZlIjsKICAgICBpZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19w
YXJ0aWFsKGFsbG9jYXRvci0+dmlldykpCkBAIC05MDEsNiArOTE0LDI4IEBAIHN0YXRpYyBjb25z
dCBjaGFyKiBhbGxvY2F0b3Jfc3RhdGUocGFzX2wKICAgICByZXR1cm4gImV4Y2x1c2l2ZSI7CiB9
CiAKK3N0YXRpYyB2b2lkIGR1bXBfYWxsb2NhdG9yX3N0YXRlKHBhc19zdHJlYW0qIHN0cmVhbSwg
cGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKQoreworICAgIHBhc19zZWdyZWdhdGVkX3Zp
ZXcgdmlldzsKKworICAgIHZpZXcgPSBhbGxvY2F0b3ItPnZpZXc7CisgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiLCAlcywgdmlldyA9ICVwLCBkaXJlY3RvcnkgPSAlcCwgJXMiLAorICAg
ICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0
cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICB2aWV3
LCB2aWV3ID8gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBO
VUxMLAorICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsK
K30KKworc3RhdGljIHZvaWQgZHVtcF9zY2F2ZW5nZXJfZGF0YV9zdGF0ZShwYXNfc3RyZWFtKiBz
dHJlYW0sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQ7CisKKyAgICBraW5kID0gZGF0YS0+a2luZDsK
KyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIlcyIsIHBhc19sb2NhbF9hbGxvY2F0b3Jf
a2luZF9nZXRfc3RyaW5nKGtpbmQpKTsKKworICAgIGlmIChraW5kID09IHBhc19sb2NhbF9hbGxv
Y2F0b3JfYWxsb2NhdG9yX2tpbmQpCisgICAgICAgIGR1bXBfYWxsb2NhdG9yX3N0YXRlKHN0cmVh
bSwgKHBhc19sb2NhbF9hbGxvY2F0b3IqKWRhdGEpOworfQorCiB2b2lkIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9iYXNlbGluZV9hbGxvY2F0b3JzKHBhc19zdHJlYW0qIHN0cmVhbSkKIHsKICAg
ICBzaXplX3QgaW5kZXg7CkBAIC05MTQsMTYgKzk0OSwxMiBAQCB2b2lkIHBhc19zdGF0dXNfcmVw
b3J0ZXJfZHVtcF9iYXNlbGluZV9hCiAgICAgCiAgICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwg
UEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOyArK2luZGV4KSB7CiAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKLSAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
OwogCiAgICAgICAgIGFsbG9jYXRvciA9ICZwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlW2lu
ZGV4XS51LmFsbG9jYXRvcjsKIAotICAgICAgICB2aWV3ID0gYWxsb2NhdG9yLT52aWV3OwotICAg
ICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICIgICAgICAgICAlenU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2Vn
cmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KSA6IE5VTEwsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKKyAgICAgICAgcGFz
X3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgJXp1OiAiLCBpbmRleCk7CisgICAgICAg
IGR1bXBfYWxsb2NhdG9yX3N0YXRlKHN0cmVhbSwgYWxsb2NhdG9yKTsKKyAgICAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKICAgICB9CiB9CiAKQEAgLTk2NiwyMyArOTk3LDIw
IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2MKIAogICAgICAgICBm
b3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9u
b2RlKSkgewogICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7
Ci0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7Ci0KLSAgICAgICAg
ICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2Fs
bG9jYXRvcihsYXlvdXRfbm9kZSkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgICAgIGFsbG9jYXRvcl9pbmRleCA9Ci0gICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IobGF5
b3V0X25vZGUpOworICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dF9ub2RlKTsKIAogICAgICAg
ICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVy
X2JvdW5kKQogICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBpZiAoIXBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKGxheW91dF9ub2RlLCBj
YWNoZSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAKLSAgICAgICAg
ICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7Ci0gICAgICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiICAgICAgICAg
ICAgJXU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFsbG9jYXRvcl9pbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KGFsbG9jYXRvci0+dmlldyksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7Cisg
ICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgICAgICAgICAldTogIiwg
YWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAgIGR1bXBfc2NhdmVuZ2VyX2RhdGFfc3RhdGUo
CisgICAgICAgICAgICAgICAgc3RyZWFtLCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2Nh
bF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpKTsKKyAgICAgICAgICAg
IHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAgICAgICAgIH0KICAgICB9CiB9CkBA
IC0xMDkwLDYgKzExMTgsNyBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9ldmVyeXRo
aW5nCiAKICAgICBpZiAocGFzX3N0YXR1c19yZXBvcnRlcl9lbmFibGVkID49IDMpIHsKICAgICAg
ICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWdtZW50YXRpb24oc3RyZWFtKTsK
KyAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3ZpZXdfc3RhdHMoc3RyZWFtKTsKICAg
ICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RpZXJfdXBfcmF0ZXMoc3RyZWFtKTsKICAg
ICB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNf
cmVwb3J0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAkod29ya2luZyBjb3B5
KQpAQCAtNzEsNiArNzEsNyBAQCBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X2FsCiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2xhcmdlX3NoYXJpbmdf
cG9vbChwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0
ZXJfZHVtcF91dGlsaXR5X2hlYXAocGFzX3N0cmVhbSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBw
YXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxfZnJhZ21lbnRhdGlvbihwYXNfc3RyZWFtKiBz
dHJlYW0pOworUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF92aWV3X3N0YXRz
KHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3RpZXJfdXBfcmF0ZXMocGFzX3N0cmVhbSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVfYWxsb2NhdG9ycyhwYXNfc3RyZWFtKiBzdHJl
YW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jYWxf
Y2FjaGVzKHBhc19zdHJlYW0qIHN0cmVhbSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCShyZXZp
c2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICszMCw4IEBACiAjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgogCiAjaW5jbHVkZSAicGFzX2FsbF9oZWFw
X2NvbmZpZ3MuaCIKKyNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgiCisjaW5jbHVkZSAicGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3IuaCIKICNpbmNsdWRlICJwYXNfZGVidWdfaGVhcC5oIgogI2lu
Y2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVl
X2hlYXAuaCIKQEAgLTU2LDIyICs1OCw1MyBAQCBzaXplX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9zaXplX2Zvcl9hCiAgICAgcmVzdWx0ID0gUEFTX09GRlNFVE9GKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUsIGxvY2FsX2FsbG9jYXRvcnMpCiAgICAgICAgICsgOCAqIGFsbG9jYXRvcl9pbmRleF9j
YXBhY2l0eTsKICAgICAKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBwYXNfcm91bmRf
dXBfdG9fcG93ZXJfb2ZfMihyZXN1bHQsIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSk7Cit9
CisKK3N0YXRpYyBzaXplX3QgbnVtX3BhZ2VzKHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleF9jYXBh
Y2l0eSkKK3sKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxv
Y2F0b3JfaW5kZXhfY2FwYWNpdHkoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KQorICAgICAgICA+
PiBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0KCk7Cit9CisKK3N0YXRpYyB2b2lkIGNv
bXB1dGVfcGFnZV9pbmRpY2VzKHBhc19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2lu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBlbmRfYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dWludHB0cl90KiBiZWdpbl9wYWdlX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdWludHB0cl90KiBlbmRfcGFnZV9pbmRleCkKK3sKKyAgICBzaXplX3QgcGFnZV9zaXpl
X3NoaWZ0OworICAgIHBhZ2Vfc2l6ZV9zaGlmdCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRf
c2hpZnQoKTsKKyAgICAqYmVnaW5fcGFnZV9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
b2Zmc2V0X29mX2FsbG9jYXRvcihiZWdpbl9hbGxvY2F0b3JfaW5kZXgpID4+IHBhZ2Vfc2l6ZV9z
aGlmdDsKKyAgICAqZW5kX3BhZ2VfaW5kZXggPQorICAgICAgICAoKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihlbmRfYWxsb2NhdG9yX2luZGV4KSAtIDEpID4+IHBh
Z2Vfc2l6ZV9zaGlmdCkgKyAxOworfQorCitzdGF0aWMgc2l6ZV90IHBhZ2VzX2NvbW1pdHRlZF9z
aXplKHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkKK3sKKyAgICByZXR1cm4gUEFT
X0JJVFZFQ1RPUl9OVU1fQllURVMobnVtX3BhZ2VzKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkp
OwogfQogCiBzdGF0aWMgdm9pZCBkZWFsbG9jYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRo
cmVhZF9sb2NhbF9jYWNoZSkKIHsKICAgICBjaGFyKiBiZWdpbjsKKyAgICBzaXplX3Qgc2l6ZTsK
IAogICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9jYXRlKAogICAgICAgICB0
aHJlYWRfbG9jYWxfY2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwKICAgICAgICAgUEFTX0JJ
VFZFQ1RPUl9OVU1fQllURVModGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkpKTsKLSAgICAKLSAgICBiZWdpbiA9IChjaGFyKil0aHJlYWRfbG9jYWxfY2FjaGU7CisK
ICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKLSAgICAgICAgYmVn
aW4sCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2lu
ZGV4X2NhcGFjaXR5KAotICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3Jf
aW5kZXhfY2FwYWNpdHkpKTsKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5wYWdlc19jb21t
aXR0ZWQsCisgICAgICAgIHBhZ2VzX2NvbW1pdHRlZF9zaXplKHRocmVhZF9sb2NhbF9jYWNoZS0+
YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSk7CisKKyAgICBiZWdpbiA9IChjaGFyKil0aHJlYWRf
bG9jYWxfY2FjaGU7CisgICAgc2l6ZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3Jf
YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KAorICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmFs
bG9jYXRvcl9pbmRleF9jYXBhY2l0eSk7CisKKyAgICAvKiBJZiB3ZSdyZSBkb2luZyBzeW1tZXRy
aWMgZGVjb21taXQsIHRoZW4gd2UgbmVlZCB0byBjb21taXQgdGhlIG1lbW9yeSBmb3IgdGhlIFRM
QyBub3cuICovCisgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0KGJl
Z2luLCBzaXplLCBwYXNfbWF5X21tYXApOworICAgIAorICAgIHBhc19sYXJnZV91dGlsaXR5X2Zy
ZWVfaGVhcF9kZWFsbG9jYXRlKGJlZ2luLCBzaXplKTsKIH0KIAogc3RhdGljIHZvaWQgZGVzdHJv
eShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQpAQCAtMTIxLDYgKzE1NCw3IEBAIHN0YXRpYyBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBhbGxvY2F0ZV8KICAgICAKICAgICBzaXplX3Qgc2l6ZTsK
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiByZXN1bHQ7CisgICAgc2l6ZV90IGluZGV4Owog
CiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkgPj0gUEFTX0xPQ0FMX0FM
TE9DQVRPUl9VTlNFTEVDVEVEX05VTV9JTkRJQ0VTKTsKIApAQCAtMTI5LDcgKzE2Myw4IEBAIHN0
YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBhbGxvY2F0ZV8KICAgICBpZiAodmVyYm9zZSkK
ICAgICAgICAgcHJpbnRmKCJDYWNoZSBzaXplOiAlenVcbiIsIHNpemUpOwogICAgIAotICAgIHJl
c3VsdCA9IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKilwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hl
YXBfYWxsb2NhdGUoc2l6ZSwgInBhc190aHJlYWRfbG9jYWxfY2FjaGUiKTsKKyAgICByZXN1bHQg
PSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZSopcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2Fs
bG9jYXRlX3dpdGhfYWxpZ25tZW50KAorICAgICAgICBzaXplLCBwYXNfYWxpZ25tZW50X2NyZWF0
ZV90cmFkaXRpb25hbChwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpLCAicGFzX3RocmVhZF9s
b2NhbF9jYWNoZSIpOwogCiAgICAgcGFzX3plcm9fbWVtb3J5KHJlc3VsdCwgc2l6ZSk7CiAKQEAg
LTEzOCw2ICsxNzMsMTYgQEAgc3RhdGljIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGFsbG9jYXRl
XwogICAgICAgICAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS9zaG91bGRfc3RvcF9iaXR2ZWN0b3Ii
KTsKIAogICAgIHBhc196ZXJvX21lbW9yeShyZXN1bHQtPnNob3VsZF9zdG9wX2JpdHZlY3Rvciwg
UEFTX0JJVFZFQ1RPUl9OVU1fQllURVMoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSk7CisKKyAg
ICBQQVNfQVNTRVJUKHBhZ2VzX2NvbW1pdHRlZF9zaXplKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0
eSkpOworICAgIAorICAgIHJlc3VsdC0+cGFnZXNfY29tbWl0dGVkID0gKHVuc2lnbmVkKilwYXNf
bGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGUoCisgICAgICAgIHBhZ2VzX2NvbW1pdHRl
ZF9zaXplKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSksCisgICAgICAgICJwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlL3BhZ2VzX2NvbW1pdHRlZCIpOworCisgICAgcGFzX3plcm9fbWVtb3J5KHJlc3Vs
dC0+cGFnZXNfY29tbWl0dGVkLCBwYWdlc19jb21taXR0ZWRfc2l6ZShhbGxvY2F0b3JfaW5kZXhf
Y2FwYWNpdHkpKTsKKyAgICBmb3IgKGluZGV4ID0gbnVtX3BhZ2VzKGFsbG9jYXRvcl9pbmRleF9j
YXBhY2l0eSk7IGluZGV4LS07KQorICAgICAgICBwYXNfYml0dmVjdG9yX3NldChyZXN1bHQtPnBh
Z2VzX2NvbW1pdHRlZCwgaW5kZXgsIHRydWUpOwogICAgIAogICAgIHJlc3VsdC0+YWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5ID0gYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5OwogCkBAIC0xODksNyAr
MjM0LDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbAogICAgICAg
ICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURf
SU5ERVgpKTsKIAogICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9B
TExPQ0FUT1IobGF5b3V0X25vZGUpKQotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKKyAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0
cnVjdChsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKIAogICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfc2V0KHRocmVhZF9sb2NhbF9jYWNoZSk7CiAgICAgCkBAIC0yMDcsMTEgKzI1
MiwxMSBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveShwYXNfCiAgICAgaWYg
KCF0aHJlYWRfbG9jYWxfY2FjaGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfc2V0KE5VTEwpOworCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19s
b2coIlslZF0gVExDICVwIGdldHRpbmcgZGVzdHJveWVkXG4iLCBnZXRwaWQoKSwgdGhyZWFkX2xv
Y2FsX2NhY2hlKTsKICAgICBkZXN0cm95KHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hv
bGRfbW9kZSk7Ci0KLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NldChOVUxMKTsKIH0KIAog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfc2xvdyhw
YXNfaGVhcF9jb25maWcqIGNvbmZpZywKQEAgLTI1OSw2ICszMDQsNyBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
bHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CiAgICAgCiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9s
b2NrX2hvbGRfbW9kZSk7CisgICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5u
b2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAgCiAgICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9j
YXRvcl9pbmRleCA8IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9y
X2luZGV4KTsKIApAQCAtMzE3LDcgKzM2Myw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0
IHBhc190aHJlYWRfbG8KICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBkZXNpcmVkX2lu
ZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIG5ld190aHJl
YWRfbG9jYWxfY2FjaGUpOworICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KGxheW91dF9ub2RlLCBuZXdfdGhyZWFkX2xvY2FsX2Nh
Y2hlKTsKICAgICB9CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKQEAgLTMyNiw2ICszNzIs
NyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgaWYgKHRo
cmVhZF9sb2NhbF9jYWNoZSAhPSBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlKQogICAgICAgICBkZWFs
bG9jYXRlKHRocmVhZF9sb2NhbF9jYWNoZSk7CiAKKyAgICBwYXNfbG9ja191bmxvY2soJnRocmVh
ZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKICAgICBpZiAodGhy
ZWFkX2xvY2FsX2NhY2hlICE9IG5ld190aHJlYWRfbG9jYWxfY2FjaGUpCkBAIC0zMzcsNiArMzg0
LDkyIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190aHJlYWRfbG8KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXNpcmVk
X2FsbG9jYXRvcl9pbmRleCkpOwogfQogCitib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNf
Y29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBiZWdpbl9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCkKK3sKKyAg
ICB1aW50cHRyX3QgYmVnaW5fcGFnZV9pbmRleDsKKyAgICB1aW50cHRyX3QgZW5kX3BhZ2VfaW5k
ZXg7CisgICAgdWludHB0cl90IHBhZ2VfaW5kZXg7CisKKyAgICBjb21wdXRlX3BhZ2VfaW5kaWNl
cyhiZWdpbl9hbGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5kZXgsICZiZWdpbl9wYWdl
X2luZGV4LCAmZW5kX3BhZ2VfaW5kZXgpOworCisgICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5f
cGFnZV9pbmRleDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsK
KyAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldCh0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2Vz
X2NvbW1pdHRlZCwgcGFnZV9pbmRleCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
fQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Bhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Ug
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jb21wdXRlX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSgK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFz
X2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0b3JfaW5kZXgsCisgICAgcGFzX2FsbG9jYXRv
cl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KQoreworICAgIHVpbnRwdHJfdCBiZWdpbl9wYWdl
X2luZGV4OworICAgIHVpbnRwdHJfdCBlbmRfcGFnZV9pbmRleDsKKyAgICB1aW50cHRyX3QgcGFn
ZV9pbmRleDsKKyAgICBwYXNfcmFuZ2UgYWxsb2NhdG9yX3JhbmdlOworICAgIHBhc19kZWNvbW1p
dF9leGNsdXNpb25fcmFuZ2UgcmVzdWx0OworICAgIHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7CisK
KyAgICBhbGxvY2F0b3JfcmFuZ2UgPSBwYXNfcmFuZ2VfY3JlYXRlKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihiZWdpbl9hbGxvY2F0b3JfaW5kZXgpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9v
ZmZzZXRfb2ZfYWxsb2NhdG9yKGVuZF9hbGxvY2F0b3JfaW5kZXgpKTsKKyAgICByZXN1bHQuc3Rh
cnRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBhbGxvY2F0b3JfcmFuZ2UuYmVnaW47CisgICAgcmVz
dWx0LmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9IGFsbG9jYXRvcl9yYW5nZS5lbmQ7CisKKyAg
ICBjb21wdXRlX3BhZ2VfaW5kaWNlcyhiZWdpbl9hbGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0
b3JfaW5kZXgsICZiZWdpbl9wYWdlX2luZGV4LCAmZW5kX3BhZ2VfaW5kZXgpOworCisgICAgcGFn
ZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOworCisgICAg
Zm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRleDsgcGFnZV9pbmRleCA8IGVuZF9wYWdl
X2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldCh0
aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwgcGFnZV9pbmRleCkpIHsKKyAgICAg
ICAgICAgIHJlc3VsdC5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9IFBBU19NQVgoCisgICAg
ICAgICAgICAgICAgcmVzdWx0LnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAgICAgICAg
ICAgICAgIFBBU19NSU4oCisgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9yYW5nZS5lbmQs
CisgICAgICAgICAgICAgICAgICAgIChwYWdlX2luZGV4ICsgMSkgPDwgcGFnZV9zaXplX3NoaWZ0
KSk7CisgICAgICAgICAgICByZXN1bHQuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gUEFTX01J
TigKKyAgICAgICAgICAgICAgICByZXN1bHQuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAg
ICAgICAgICAgICAgIFBBU19NQVgoCisgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9yYW5n
ZS5iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleCA8PCBwYWdlX3NpemVfc2hp
ZnQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFBBU19BU1NFUlQoIXBhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2VfaXNfZW1wdHkocmVzdWx0KSk7CisKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9j
YXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCkKK3sKKyAgICB1aW50cHRy
X3QgYmVnaW5fcGFnZV9pbmRleDsKKyAgICB1aW50cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAg
dWludHB0cl90IHBhZ2VfaW5kZXg7CisKKyAgICBjb21wdXRlX3BhZ2VfaW5kaWNlcyhiZWdpbl9h
bGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5kZXgsICZiZWdpbl9wYWdlX2luZGV4LCAm
ZW5kX3BhZ2VfaW5kZXgpOworCisgICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRl
eDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAg
aWYgKHBhc19iaXR2ZWN0b3JfZ2V0KHRocmVhZF9sb2NhbF9jYWNoZS0+cGFnZXNfY29tbWl0dGVk
LCBwYWdlX2luZGV4KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAgICAg
cGFzX2xvY2tfYXNzZXJ0X2hlbGQoJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2Vy
X2xvY2spOworICAgICAgICAKKyAgICAgICAgLyogRG9uJ3QgYXR0ZW1wdCB0byBkbyBmYW5jeSB0
aGluZ3Mgd2l0aCBzcGFucyBmb3IgY29tbWl0LCBzaW5jZSB3ZSdyZSBubyBsb25nZXIgcmVhbGx5
CisgICAgICAgICAgIG9wdGltaXppbmcgZm9yIHN5bW1ldHJpYyBjb21taXQgYW55d2F5LiAqLwor
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dpdGhvdXRfbXByb3RlY3QoCisgICAgICAg
ICAgICAoY2hhciopdGhyZWFkX2xvY2FsX2NhY2hlICsgKHBhZ2VfaW5kZXggPDwgcGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudF9zaGlmdCgpKSwKKyAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnQoKSwKKyAgICAgICAgICAgIHBhc19tYXlfbW1hcCk7CisKKyAgICAgICAgcGFzX2Jp
dHZlY3Rvcl9zZXQodGhyZWFkX2xvY2FsX2NhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5k
ZXgsIHRydWUpOworICAgIH0KK30KKwogcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQKIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zv
cl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4X3Nsb3coCiAgICAgdW5zaWduZWQgYWxsb2Nh
dG9yX2luZGV4LApAQCAtMzUxLDYgKzQ4NCwzNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dl
dF9sb2NhbF9hbGxvY2F0CiAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIH0KIAorcGFz
X2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2FsbG9jYXRvcl9pbmRleF9m
b3JfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZvaWQqIGFsbG9jYXRvcikKK3sKKyAgICB1aW50cHRyX3QgY2FjaGVfYWRkcmVzczsKKyAg
ICB1aW50cHRyX3QgYWxsb2NhdG9yX2FkZHJlc3M7CisgICAgdWludHB0cl90IGJlZ2luX2FsbG9j
YXRvcnM7CisgICAgdWludHB0cl90IGVuZF9hbGxvY2F0b3JzOworICAgIHVpbnRwdHJfdCBvZmZz
ZXQ7CisgICAgdWludHB0cl90IGluZGV4OworCisgICAgY2FjaGVfYWRkcmVzcyA9ICh1aW50cHRy
X3QpY2FjaGU7CisgICAgYWxsb2NhdG9yX2FkZHJlc3MgPSAodWludHB0cl90KWFsbG9jYXRvcjsK
KworICAgIGJlZ2luX2FsbG9jYXRvcnMgPSBjYWNoZV9hZGRyZXNzICsgUEFTX09GRlNFVE9GKHBh
c190aHJlYWRfbG9jYWxfY2FjaGUsIGxvY2FsX2FsbG9jYXRvcnMpOworICAgIGVuZF9hbGxvY2F0
b3JzID0gYmVnaW5fYWxsb2NhdG9ycyArIHNpemVvZih1aW50NjRfdCkgKiBjYWNoZS0+YWxsb2Nh
dG9yX2luZGV4X3VwcGVyX2JvdW5kOworCisgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWRkcmVz
cyA+PSBiZWdpbl9hbGxvY2F0b3JzKTsKKyAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hZGRyZXNz
IDwgZW5kX2FsbG9jYXRvcnMpOworCisgICAgb2Zmc2V0ID0gYWxsb2NhdG9yX2FkZHJlc3MgLSBi
ZWdpbl9hbGxvY2F0b3JzOworCisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChvZmZzZXQs
IHNpemVvZih1aW50NjRfdCkpKTsKKyAgICAKKyAgICBpbmRleCA9IG9mZnNldCAvIHNpemVvZih1
aW50NjRfdCk7CisKKyAgICBQQVNfQVNTRVJUKGluZGV4IDwgY2FjaGUtPmFsbG9jYXRvcl9pbmRl
eF91cHBlcl9ib3VuZCk7CisKKyAgICBQQVNfQVNTRVJUKChwYXNfYWxsb2NhdG9yX2luZGV4KWlu
ZGV4ID09IGluZGV4KTsKKyAgICByZXR1cm4gKHBhc19hbGxvY2F0b3JfaW5kZXgpaW5kZXg7Cit9
CisKIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnMocGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVh
cF9sb2NrX2hvbGRfbW9kZSkKIHsKQEAgLTM1OSw3ICs1MjMsNyBAQCB2b2lkIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hCiAgICAgLyogV2UgaGF2ZSB0byBob2xkIHRoZSBoZWFw
IGxvY2sgdG8gZG8gdGhpbmdzIHRvIG91ciBsb2NhbCBhbGxvY2F0b3JzIHVubGVzcyB3ZSBhbHNv
IHNldCB0aGUKICAgICAgICBpc19pbl91c2UgYml0LiAqLwogICAgIHBhc19oZWFwX2xvY2tfbG9j
a19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwotICAgIHBhc19sb2NrX2xvY2so
JnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19sb2Nr
X2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogCiAgICAg
Zm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRf
bm9kZSkpIHsKICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CkBA
IC0zNjksMTEgKzUzMywxNCBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2Nh
bF9hCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5h
bGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICBicmVhazsKIAorICAgICAg
ICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKGxh
eW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpKQorICAgICAgICAgICAgY29udGludWU7CisK
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9wKAogICAgICAg
ICAgICAgbGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX2xvY2tfbG9ja19tb2Rl
X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpOwogICAgIH0KIAotICAgIHBhc19sb2NrX3VubG9jaygm
dGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tf
dW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKICAgICBw
YXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwog
fQogCkBAIC01MTQsMTQgKzY4MSwxNCBAQCBwcm9jZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9j
b25maWcocGFzCiAgICAgfQogfQogCi1zdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBmbHVz
aF9kZWFsbG9jYXRpb25fbG9nKAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1c2hf
ZGVhbGxvY2F0aW9uX2xvZ193aXRob3V0X3Jlc2V0dGluZygKICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0
aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUpCiB7CiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBh
c19sb2NrKiBoZWxkX2xvY2s7CiAKLSAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKCZ0
aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICBwYXNfbG9ja190
ZXN0aW5nX2Fzc2VydF9oZWxkKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9s
b2NrKTsKICAgICAKICAgICBpbmRleCA9IHRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9u
X2xvZ19pbmRleDsKICAgICBoZWxkX2xvY2sgPSBOVUxMOwpAQCAtNTU0LDIxICs3MjEsMzAgQEAg
c3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1c2hfZGVhbAogCiBzdGF0aWMgdm9pZCBm
bHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogdGhyZWFkX2xvY2FsX2NhY2hlKQogewotICAgIGlmICghdGhyZWFkX2xvY2FsX2NhY2hlLT5k
ZWFsbG9jYXRpb25fbG9nX2luZGV4KQotICAgICAgICByZXR1cm47Ci0gICAgCi0gICAgZmx1c2hf
ZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19zZWdyZWdhdGVkX2RlYWxs
b2NhdGlvbl9kaXJlY3RfbW9kZSk7CisgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRob3V0
X3Jlc2V0dGluZyh0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9kaXJlY3RfbW9kZSk7CiB9CiAKLXZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9k
ZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNo
ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQorc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRoX21vZGUoCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19sb2NrX2hvbGRf
bW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlLAorICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlv
bl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlKQogewogICAgIGlmICghdGhyZWFkX2xvY2FsX2NhY2hl
KQogICAgICAgICByZXR1cm47CiAKLSAgICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2Fj
aGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9j
YWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKIAotICAgIGZsdXNoX2RlYWxsb2NhdGlv
bl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fdG9f
dmlld19jYWNoZV9tb2RlKTsKKyAgICBzd2l0Y2ggKGRlYWxsb2NhdGlvbl9tb2RlKSB7CisgICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGU6CisgICAgICAgIC8q
IElmIHdlJ3JlIGRvaW5nIGEgZGlyZWN0IGZsdXNoIHRoZW4gdHJ5IHRvIHNoYXJlIGNvZGUgd2l0
aCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIsCisgICAgICAgICAgIHdoaWNo
IGRvZXMgdGhlIHNhbWUgdGhpbmcgd2Ugd291bGQgZG8uICovCisgICAgICAgIGZsdXNoX2RlYWxs
b2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcih0aHJlYWRfbG9jYWxfY2FjaGUpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3X2NhY2hl
X21vZGU6CisgICAgICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aG91dF9yZXNldHRpbmco
CisgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl90b192aWV3X2NhY2hlX21vZGUpOworICAgICAgICBicmVhazsKKyAgICB9CiAgICAgCiAg
ICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4ID0gMDsKICAgICB0
aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9sb2dnZWRfYnl0ZXMgPSAwOwpAQCAtNTc3LDI2ICs3NTMs
NDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsbwogICAgICAgIHRo
aXMgbG9nLiAqLwogICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0
eSA9IHRydWU7CiAKLSAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9k
ZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2Nh
Y2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAgCiAgICAgaWYgKGhlYXBfbG9ja19ob2xk
X21vZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQpCiAgICAgICAgIHBhc19zY2F2ZW5nZXJfbm90
aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgpOwogfQogCit2b2lkIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAg
ICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhfbW9kZSgKKyAgICAgICAgdGhyZWFkX2xvY2Fs
X2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
dG9fdmlld19jYWNoZV9tb2RlKTsKK30KKwordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zs
dXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVh
ZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkK
K3sKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhfbW9kZSgKKyAgICAgICAgdGhyZWFk
X2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fZGlyZWN0X21vZGUpOworfQorCiAjaWYgUEFTX09TKERBUldJTikKIAotc3RhdGljIHZv
aWQgc3VzcGVuZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3N0YXRpYyB2b2lkIHN1
c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsIGJvb2wqIGRpZF9zdXNwZW5kKQog
ewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAogICAgIHB0aHJlYWRf
dCB0aHJlYWQ7CiAgICAgbWFjaF9wb3J0X3QgbWFjaF90aHJlYWQ7CiAgICAga2Vybl9yZXR1cm5f
dCByZXN1bHQ7CisKKyAgICBpZiAoKmRpZF9zdXNwZW5kKQorICAgICAgICByZXR1cm47CisKKyAg
ICAqZGlkX3N1c3BlbmQgPSB0cnVlOwogICAgIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBw
cmludGYoIlN1c3BlbmRpbmcgVExDICVwIHdpdGggdGhyZWFkICVwLlxuIiwgY2FjaGUsIGNhY2hl
LT50aHJlYWQpOwogCiAgICAgdGhyZWFkID0gY2FjaGUtPnRocmVhZDsKKyAgICBQQVNfQVNTRVJU
KHRocmVhZCk7CisgICAgCiAgICAgaWYgKHRocmVhZCA9PSBwdGhyZWFkX3NlbGYoKSkKICAgICAg
ICAgcmV0dXJuOwogCkBAIC02MTcsNyArODE0LDEyIEBAIHN0YXRpYyB2b2lkIHN1c3BlbmQocGFz
X3RocmVhZF9sb2NhbF9jYWMKIAogc3RhdGljIHZvaWQgcmVzdW1lKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlKQogeworICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
KyAgICAKICAgICBrZXJuX3JldHVybl90IHJlc3VsdDsKKworICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICBwYXNfbG9nKCJSZXN1bWluZyBUTEMgJXAgd2l0aCB0aHJlYWQgJXAuXG4iLCBjYWNoZSwg
Y2FjaGUtPnRocmVhZCk7CiAgICAgCiAgICAgaWYgKGNhY2hlLT50aHJlYWQgPT0gcHRocmVhZF9z
ZWxmKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYyOSwxNCArODMxLDE3MiBAQCBzdGF0aWMgdm9p
ZCByZXN1bWUocGFzX3RocmVhZF9sb2NhbF9jYWNoCiAKICNlbmRpZgogCitzdGF0aWMgdm9pZCBk
ZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBiZWdpbl9sYXlvdXRfbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1aW50cHRyX3Qgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuZF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGVuZF9sYXlvdXRfbm9kZSkKK3sKKyNpZiBQQVNf
T1MoREFSV0lOKQorICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAK
KyAgICB1aW50cHRyX3QgYmVnaW5fcGFnZV9pbmRleDsKKyAgICB1aW50cHRyX3QgZW5kX3BhZ2Vf
aW5kZXg7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBpbm5lcl9ub2Rl
OworICAgIHVpbnRwdHJfdCBwYWdlX2luZGV4OworICAgIHNpemVfdCBwYWdlX3NpemU7CisgICAg
c2l6ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICBwYXNfcmFuZ2UgZGVjb21taXRfcmFuZ2U7CisK
KyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisgICAgcGFzX2xvY2tfYXNzZXJ0X2hl
bGQoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CisKKyAgICBwYWdlX3NpemUgPSBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOworICAgIAorICAgIGJlZ2luX3BhZ2VfaW5kZXggPSBw
YXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMigKKyAgICAgICAgc3RhcnRfb2ZfcG9zc2libGVfZGVj
b21taXQsIHBhZ2Vfc2l6ZSkgPj4gcGFnZV9zaXplX3NoaWZ0OworICAgIGVuZF9wYWdlX2luZGV4
ID0gZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0ID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIGlm
IChiZWdpbl9wYWdlX2luZGV4ID49IGVuZF9wYWdlX2luZGV4KQorICAgICAgICByZXR1cm47CisK
KyAgICBkZWNvbW1pdF9yYW5nZSA9IHBhc19yYW5nZV9jcmVhdGUoYmVnaW5fcGFnZV9pbmRleCA8
PCBwYWdlX3NpemVfc2hpZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGVuZF9wYWdlX2luZGV4IDw8IHBhZ2Vfc2l6ZV9zaGlmdCk7CisKKyAgICBpZiAoYmVnaW5fbGF5
b3V0X25vZGUpIHsKKyAgICAgICAgZm9yIChpbm5lcl9ub2RlID0gYmVnaW5fbGF5b3V0X25vZGU7
CisgICAgICAgICAgICAgaW5uZXJfbm9kZSAhPSBlbmRfbGF5b3V0X25vZGU7CisgICAgICAgICAg
ICAgaW5uZXJfbm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X25l
eHQoaW5uZXJfbm9kZSkpCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3ByZXBhcmVfdG9fZGVjb21taXQoaW5uZXJfbm9kZSwgY2FjaGUsIGRlY29tbWl0X3Jh
bmdlKTsKKyAgICB9CisgICAgCisgICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRl
eDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAg
UEFTX0FTU0VSVChwYXNfYml0dmVjdG9yX2dldChjYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdl
X2luZGV4KSk7CisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGNhY2hlLT5wYWdlc19jb21taXR0
ZWQsIHBhZ2VfaW5kZXgsIGZhbHNlKTsKKyAgICB9CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgcGFzX2xvZygiRGVjb21taXR0aW5nICVwLi4uJXBcbiIsICh2b2lkKilkZWNvbW1pdF9yYW5n
ZS5iZWdpbiwgKHZvaWQqKWRlY29tbWl0X3JhbmdlLmVuZCk7CisKKyAgICBwYXNfcGFnZV9tYWxs
b2NfZGVjb21taXRfd2l0aG91dF9tcHJvdGVjdCgKKyAgICAgICAgKGNoYXIqKWNhY2hlICsgZGVj
b21taXRfcmFuZ2UuYmVnaW4sIHBhc19yYW5nZV9zaXplKGRlY29tbWl0X3JhbmdlKSwgcGFzX21h
eV9tbWFwKTsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAgIHBhc19sb2coIk51bSBjb21t
aXR0ZWQgcGFnZXMgaW4gdGhlIHJhbmdlIHdlIGp1c3QgZGVjb21taXR0ZWQ6ICV6dVxuIiwKKyAg
ICAgICAgICAgICAgICBwYXNfY291bnRfY29tbWl0dGVkX3BhZ2VzKAorICAgICAgICAgICAgICAg
ICAgICAoY2hhciopY2FjaGUgKyBkZWNvbW1pdF9yYW5nZS5iZWdpbiwKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX3JhbmdlX3NpemUoZGVjb21taXRfcmFuZ2UpLAorICAgICAgICAgICAgICAgICAg
ICAmcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnKSk7CisgICAg
fQorI2Vsc2UgLyogUEFTX09TKERBUldJTikgLT4gc28gIVBBU19PUyhEQVJXSU4pICovCisgICAg
UEFTX1VOVVNFRF9QQVJBTShjYWNoZSk7CisgICAgUEFTX1VOVVNFRF9QQVJBTShiZWdpbl9sYXlv
dXRfbm9kZSk7CisgICAgUEFTX1VOVVNFRF9QQVJBTShzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dCk7CisgICAgUEFTX1VOVVNFRF9QQVJBTShlbmRfb2ZfcG9zc2libGVfZGVjb21taXQpOworICAg
IFBBU19VTlVTRURfUEFSQU0oZW5kX2xheW91dF9ub2RlKTsKKyNlbmRpZiAvKiBQQVNfT1MoREFS
V0lOKSAtPiBzbyBlbmQgb2YgIVBBU19PUyhEQVJXSU4pICovCit9CisKK3N0YXRpYyB2b2lkIHN0
b3BfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2Fj
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxs
b2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YSogc2NhdmVuZ2VyX2RhdGEsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sKiByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiBk
aWRfc3VzcGVuZCkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7Cisg
ICAgCisgICAgaWYgKGFsbG9jYXRvcl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9y
ZXF1ZXN0X3N0b3BfYWN0aW9uKSB7CisgICAgICAgIHVpbnQ4X3Qgc2hvdWxkX3N0b3BfY291bnQ7
CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAg
IHBhc19sb2coIkRvaW5nIHRoZSByZXF1ZXN0IHRoaW5neS5cbiIpOworICAgICAgICAgICAgICAg
ICAgICAKKyAgICAgICAgaWYgKHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSkgeworICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGRpcnR5LlxuIik7
CisgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YS0+ZGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAg
ICpyZXN1bHQgPSB0cnVlOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgLyogQmFpbCBvdXQgaWYgaXQncyBubyBsb25nZXIgYWN0aXZlLiAqLworICAgICAgICBpZiAo
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKHNjYXZlbmdlcl9k
YXRhKSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAgcGFzX2xv
ZygiSXQgd2FzIGVtcHR5LlxuIik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKwor
ICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9j
b3VudDsKKyAgICAgICAgaWYgKHNob3VsZF9zdG9wX2NvdW50IDwgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCkgeworICAgICAgICAgICAgc2NhdmVuZ2Vy
X2RhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3RvcF9jb3VudDsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgUEFTX0FTU0VSVChzaG91bGRfc3RvcF9jb3Vu
dAorICAgICAgICAgICAgICAgICAgICAgICA8PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9z
dG9wX2NvdW50X2Zvcl9zdXNwZW5kKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoY2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxs
b2NhdG9yX2luZGV4LCB0cnVlKTsKKyAgICAgICAgICAgIGNhY2hlLT5zaG91bGRfc3RvcF9zb21l
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgKnJlc3VsdCA9
IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmICh2ZXJib3Nl
KQorICAgICAgICAgICAgICAgIHBhc19sb2coIlRvbGQgaXQgdG8gc3RvcC5cbiIpOworICAgICAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgICAgICAgICAgICAgCisgICAgICAgIFBBU19BU1NFUlQoc2hvdWxkX3N0b3BfY291bnQKKyAg
ICAgICAgICAgICAgICAgICA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50
X2Zvcl9zdXNwZW5kKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAg
ICAgICAgIHBhc19sb2coIkRvaW5nIGFjdHVhbCBzdG9wLlxuIik7CisgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRv
cl9zY2F2ZW5nZV9mb3JjZV9zdG9wX2FjdGlvbik7CisgICAgfQorCisgICAgaWYgKHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5nZXJfZGF0YSkpIHsK
KyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHku
XG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworI2lmIFBBU19PUyhEQVJXSU4pCisgICAg
aWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2Nh
dG9yICVwXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisKKyAgICBzdXNwZW5kKGNhY2hlLCBkaWRfc3Vz
cGVuZCk7CisKKyAgICBQQVNfQVNTRVJUKCpkaWRfc3VzcGVuZCk7CisgICAgICAgICAgICAgICAg
CisgICAgaWYgKHNjYXZlbmdlcl9kYXRhLT5pc19pbl91c2UpIHsKKyAgICAgICAgKnJlc3VsdCA9
IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNfY29tcGlsZXJfZmVuY2Uo
KTsKKworICAgIFBBU19BU1NFUlQoIXNjYXZlbmdlcl9kYXRhLT5pc19pbl91c2UpOworCisgICAg
aWYgKCB2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hp
bGUgc3VzcGVuZGVkXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisgICAgaWYgKCFwYXNfbG9jYWxfYWxs
b2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YSwg
cGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKSkKKyAgICAgICAg
KnJlc3VsdCA9IHRydWU7CisjZW5kaWYKK30KKwogYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGlvbiwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2
ZW5nZV9hY3Rpb24gZGVhbGxvY2F0b3JfYWN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7Ci0g
ICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwotICAgIAogICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZSogbm9kZTsKICAgICBib29sIHJlc3VsdDsKKyAgICBzaXplX3Qg
cGFnZV9zaXplOworICAgIHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7CisKKyAgICBwYWdlX3NpemUg
PSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFz
X3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOwogCiAgICAgLyogU2V0IHRoaXMgdG8gdHJ1
ZSBpZiB3ZSBlbmNvdW50ZXIgYSBzaXR1YXRpb24gd2hlcmUgd2UgdGhpbmsgdGhhdCBtb3JlIG1l
bW9yeSBjb3VsZAogICAgICAgIGJlIHJldHVybmVkIGlmIHRoaXMgd2FzIGNhbGxlZCBhZ2Fpbi4g
Ki8KQEAgLTY2NCw3ICsxMDI0LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9h
bGwocGFzXwogICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAg
ICAgICAgcGFzX2xvY2tfbG9jaygmbm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgICAgICBwYXNf
bG9ja19sb2NrKCZub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAKICAgICAgICAgc3dpdGNoIChkZWFs
bG9jYXRvcl9hY3Rpb24pIHsKICAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vf
bm9fYWN0aW9uOgpAQCAtNjg2LDE0ICsxMDQ2LDI1IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAgaWYgKGFsbG9jYXRvcl9hY3Rpb24gIT0gcGFzX2Fs
bG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pIHsKICAgICAgICAgICAgIGJvb2wgZGlkX3N1c3Bl
bmQ7CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91
dF9ub2RlOworICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBi
ZWdpbl9sYXlvdXRfbm9kZTsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBzdGFydF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdDsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAg
ICAgICAgICAgdWludHB0cl90IGVuZF9wYWdlX2luZGV4OworICAgICAgICAgICAgdWludHB0cl90
IHBhZ2VfaW5kZXg7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGRpZF9zdXNwZW5kID0gZmFs
c2U7CiAKLSAgICAgICAgICAgIFBBU19VTlVTRURfUEFSQU0oZGlkX3N1c3BlbmQpOworICAgICAg
ICAgICAgYmVnaW5fbGF5b3V0X25vZGUgPSBOVUxMOworICAgICAgICAgICAgc3RhcnRfb2ZfcG9z
c2libGVfZGVjb21taXQgPQorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
b2Zmc2V0X29mX2FsbG9jYXRvcihQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lO
RElDRVMpOworCisgICAgICAgICAgICBQQVNfQVNTRVJUKCFkaWRfc3VzcGVuZCk7CiAKICAgICAg
ICAgICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1Io
bGF5b3V0X25vZGUpKSB7CiAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxv
Y2F0b3JfaW5kZXg7CisgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxs
b2NhdG9yX2luZGV4OwogICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOworICAgICAgICAgICAgICAgIHBhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UgZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlOwogCiAgICAgICAgICAgICAg
ICAgYWxsb2NhdG9yX2luZGV4ID0KICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25v
ZGUpOwpAQCAtNzAxLDkxICsxMDcyLDc2IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
b3JfYWxsKHBhc18KICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IGNhY2hl
LT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogCi0gICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEgPSAocGFzX2xvY2FsX2FsbG9jYXRv
cl9zY2F2ZW5nZXJfZGF0YSopcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLQotICAgICAgICAgICAgICAgIGlm
IChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9w
X2FjdGlvbikgewotICAgICAgICAgICAgICAgICAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50
OwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2Up
Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb2luZyB0aGUgcmVxdWVzdCB0aGlu
Z3kuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChz
Y2F2ZW5nZXJfZGF0YS0+ZGlydHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBkaXJ0eS5c
biIpOwotICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPmRpcnR5ID0gZmFs
c2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgICAgICAgICAvKiBCYWlsIG91dCBpZiBpdCdzIG5vIGxvbmdlciBhY3RpdmUuICovCi0gICAg
ICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1w
dHkuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgZW5kX2FsbG9jYXRvcl9pbmRleCA9CisgICAgICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCArIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGxheW91dF9ub2RlKTsKIAotICAgICAgICAg
ICAgICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3Rv
cF9jb3VudDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZF9zdG9wX2NvdW50IDwgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCkgewotICAgICAg
ICAgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytz
aG91bGRfc3RvcF9jb3VudDsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVChzaG91bGRfc3RvcF9jb3VudAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA8PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2Nv
dW50X2Zvcl9zdXNwZW5kKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoY2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3Rv
ciwgYWxsb2NhdG9yX2luZGV4LCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hl
LT5zaG91bGRfc3RvcF9zb21lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAg
ICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvZygiVG9sZCBpdCB0byBzdG9wLlxuIik7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgICAgIHNjYXZlbmdlcl9kYXRhID0gKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEqKQorICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAg
ICAgICAgIAorICAgICAgICAgICAgICAgIGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAg
ICAgICAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5k
ZXgpOworICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoc3RhcnRfb2ZfcG9zc2libGVfZGVjb21t
aXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDw9IGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5n
ZS5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VS
VChzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
PD0gZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7Cisg
ICAgICAgICAgICAgICAgaWYgKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfY29udGln
dW91cyhkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0
b3BfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9h
Y3Rpb24sIGFsbG9jYXRvcl9pbmRleCwgc2NhdmVuZ2VyX2RhdGEsICZyZXN1bHQsICZkaWRfc3Vz
cGVuZCk7CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5nZXJfZGF0YSkpIHsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmICghYmVnaW5fbGF5b3V0X25vZGUpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYmVnaW5fbGF5b3V0X25vZGUgPSBsYXlvdXRfbm9kZTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FT
U0VSVCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMoCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbl9sYXlvdXRfbm9kZSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlID0KKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2NyZWF0ZV9pbnZlcnRlZChkZWNv
bW1pdF9leGNsdXNpb25fcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHNob3VsZF9zdG9wX2Nv
dW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCJEb2luZyBhY3R1YWwgc3RvcC5cbiIpOwotICAgICAgICAgICAgICAgICAg
ICAKLSAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWN0aW9uID09IHBh
c19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24pOwotICAgICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9pc19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlm
ICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGVtcHR5
LlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0K
IAotI2lmIFBBU19PUyhEQVJXSU4pCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVw
XG4iLCBzY2F2ZW5nZXJfZGF0YSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
aWYgKCFkaWRfc3VzcGVuZCkgewotICAgICAgICAgICAgICAgICAgICBzdXNwZW5kKGNhY2hlKTsK
LSAgICAgICAgICAgICAgICAgICAgZGlkX3N1c3BlbmQgPSB0cnVlOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEt
PmlzX2luX3VzZSkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocGFzX2RlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRlZChkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpKSB7
CisgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNhY2hlLCBiZWdpbl9sYXlvdXRfbm9kZSwgc3RhcnRfb2ZfcG9zc2li
bGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9leGNsdXNpb25f
cmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0LCBsYXlvdXRfbm9kZSk7CisgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gZGVjb21taXRfZXhjbHVzaW9u
X3JhbmdlLnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0OworICAgICAgICAgICAgICAgICAgICBi
ZWdpbl9sYXlvdXRfbm9kZSA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlN0b3BwaW5n
IGFsbG9jYXRvciAlcCB3aGlsZSBzdXNwZW5kZWRcbiIsIHNjYXZlbmdlcl9kYXRhKTsKLSAgICAg
ICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgK
LSAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNfbG9ja19sb2NrX21v
ZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQotICAgICAgICAgICAgICAgICAgICByZXN1
bHQgPSB0cnVlOwotI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICNpZiBQQVNf
T1MoREFSV0lOKQogICAgICAgICAgICAgaWYgKGRpZF9zdXNwZW5kKQogICAgICAgICAgICAgICAg
IHJlc3VtZShjYWNoZSk7CiAjZW5kaWYKKworICAgICAgICAgICAgYmVnaW5fcGFnZV9pbmRleCA9
CisgICAgICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoc3RhcnRfb2ZfcG9z
c2libGVfZGVjb21taXQsIHBhZ2Vfc2l6ZSkKKyAgICAgICAgICAgICAgICA+PiBwYWdlX3NpemVf
c2hpZnQ7CisgICAgICAgICAgICBlbmRfcGFnZV9pbmRleCA9CisgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoY2Fj
aGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkKKyAgICAgICAgICAgICAgICA+PiBwYWdlX3Np
emVfc2hpZnQ7CisKKyAgICAgICAgICAgIGZvciAocGFnZV9pbmRleCA9IGJlZ2luX3BhZ2VfaW5k
ZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFnZV9pbmRleDsgKytwYWdlX2luZGV4KSB7CisgICAgICAg
ICAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldChjYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBw
YWdlX2luZGV4KSkgeworICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9hbGxvY2F0b3JfcmFu
Z2UoCisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZSwgYmVnaW5fbGF5b3V0X25vZGUsIHN0
YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9p
bmRleCA8PCBwYWdlX3NpemVfc2hpZnQsCisgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRf
bm9kZSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0g
KHBhZ2VfaW5kZXggKyAxKSA8PCBwYWdlX3NpemVfc2hpZnQ7CisgICAgICAgICAgICAgICAgICAg
IGJlZ2luX2xheW91dF9ub2RlID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgK
KyAgICAgICAgICAgICAgICBjYWNoZSwgYmVnaW5fbGF5b3V0X25vZGUsIHN0YXJ0X29mX3Bvc3Np
YmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6
ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkpLAorICAgICAgICAgICAgICAgIGxheW91dF9ub2RlKTsKICAgICAgICAgfQogICAgICAg
ICAKLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAg
ICAgIHBhc19sb2NrX3VubG9jaygmbm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIH0KICAgICAK
ICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21v
ZGUpOwpAQCAtODEzLDcgKzExNjksNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hy
aW5rKHBhc190CiB7CiAgICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCiAgICAgICAgIHJldHVy
bjsKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhy
ZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKKyAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0KHRocmVhZF9sb2NhbF9jYWNo
ZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9w
X2xvY2FsX2FsbG9jYXRvcnModGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKICAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCkK
ICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxpdHlfaWZfbmVlZGVkKCk7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAj
aW5jbHVkZSAicGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNpbmNsdWRlICJwYXNf
ZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgiCisjaW5jbHVkZSAicGFzX2RlY29tbWl0X2V4
Y2x1c2lvbl9yYW5nZS5oIgogI2luY2x1ZGUgInBhc19mYXN0X3Rscy5oIgogI2luY2x1ZGUgInBh
c19pbnRlcm5hbF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yLmgiCkBA
IC04MSw2ICs4Miw3IEBAIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHsKICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIG5vZGU7CiAKICAgICB1bnNpZ25lZCogc2hvdWxkX3N0
b3BfYml0dmVjdG9yOworICAgIHVuc2lnbmVkKiBwYWdlc19jb21taXR0ZWQ7IC8qIFRoaXMgaXMg
YSBiaXR2ZWN0b3IsIHByb3RlY3RlZCBieSB0aGUgc2NhdmVuZ2VyIGxvY2suICovCiAgICAgCiAg
ICAgcHRocmVhZF90IHRocmVhZDsKICAgICAKQEAgLTE4MCw2ICsxODIsNDAgQEAgUEFTX0FQSSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdAogICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9p
bmRleCwKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9v
ZmZzZXRfb2ZfYWxsb2NhdG9yKHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpCit7CisgICAgcmV0
dXJuIFBBU19PRkZTRVRPRihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLCBsb2NhbF9hbGxvY2F0b3Jz
KSArICh1aW50cHRyX3QpaW5kZXggKiBzaXplb2YodWludDY0X3QpOworfQorCitQQVNfQVBJIGJv
b2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2lu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7CisKKy8qIFJldHVybnMgYSBk
ZXNjcmlwdGlvbiBvZiB3aGF0IHBhcnRzIG9mIHRoZSBhbGxvY2F0b3IgYXJlIGF2YWlsYWJsZSBm
b3IgZGVjb21taXQsIGluIHRoZSBzZW5zZSB0aGF0IHRoZXkKKyAgIGFyZSBjb21taXR0ZWQgYW5k
IGFyZSBsZWdhbCB0byBkZWNvbW1pdC4gVGhlIHZhbHVlcyBpbiB0aGUgcmFuZ2UgYXJlIG9mZnNl
dHMgZnJvbSB0aGUgYmFzZSBvZiB0aGUgY2FjaGUuCisgICAKKyAgIElmIHRoaXMgYWxsb2NhdG9y
IGlzIHRvdGFsbHkgY29tbWl0dGVkOiB3ZSdsbCBnZXQgYSBjb250aWd1b3VzIHJhbmdlIHdpdGgg
c3RhcnQgPSBzdGFydCBvZiBhbGxvY2F0b3IsIGVuZAorICAgPSBlbmQgb2YgYWxsb2NhdG9yLgor
ICAgCisgICBJZiB0aGlzIGFsbG9jYXRvciBpcyBwYXJ0bHkgZGVjb21taXR0ZWQ6IHdlJ2xsIGdl
dCBhbiBpbnZlcnRlZCByYW5nZSB3aXRoIHN0YXJ0ID0gdGhlIGZpcnN0IGJ5dGUgYWZ0ZXIgdGhl
CisgICBsYXN0IGRlY29tbWl0dGVkIGJ5dGUgaW4gdGhlIHBhZ2UsIGVuZCA9IHRoZSBmaXJzdCBk
ZWNvbW1pdHRlZCBieXRlIGluIHRoZSBwYWdlLgorCisgICBTbyBlaXRoZXIgcGFzX2RlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZV9pc19jb250aWd1b3VzKCkgb3IgIXBhc19kZWNvbW1pdF9leGNsdXNp
b25fcmFuZ2VfaXNfaW52ZXJ0ZWQoKSB0ZWxscworICAgdXMgaWYgdGhlIGFsbG9jYXRvciBpcyBj
b21taXR0ZWQuIEl0J3MgaW1wb3NzaWJsZSBmb3IgdGhlIHJldHVybmVkIHJhbmdlIHRvIGJlIGVt
cHR5LiAqLworUEFTX0FQSSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5k
X2FsbG9jYXRvcl9pbmRleCk7CisKKy8qIE11c3QgaG9sZCB0aGUgc2NhdmVuZ2VyX2xvY2sgaWYg
dGhpcyBpcyBjYWxsZWQgYW5kIHRoZXJlIGlzIHNvbWV0aGluZyB0byBjb21taXQuICovCitQQVNf
QVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0dGVkKHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdp
bl9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7
CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2RpZF9yZWNvbW1pdF9hY2Np
ZGVudGFsbHkocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KTsKKwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jf
ZGlyZWN0X3dpdGhvdXRfYW55X2NoZWNrc193aGF0c29ldmVyKAogICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKQEAgLTMxMyw2ICszNDksOSBAQCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0CiAgICAgICAgIGNhY2hlLCBhbGxvY2F0
b3JfaW5kZXgsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIH0KIAorUEFTX0FQSSBwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxv
Y2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2b2lkKiBhbGxvY2F0b3IpOworCiBQQVNfQVBJIHVuc2lnbmVkIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X251bV9hbGxvY2F0b3JzKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
KTsKIAogUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxv
Y2F0b3JzKApAQCAtMzI3LDYgKzM2Niw5IEBAIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3AKIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2coCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2Fs
X2NhY2hlLAogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKK1BB
U19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2df
ZGlyZWN0KAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwK
KyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKIC8qIFJldHVy
bnMgdHJ1ZSBpZiBpdCdzIHBvc3NpYmxlIHRoYXQgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gbW9y
ZSBtZW1vcnkgaWYgdGhpcyB3YXMgY2FsbGVkCiAgICBhZ2Fpbi4gKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTAgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSBwYXNfdAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUgPSBOVUxMOwogcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCA9
CiAgICAgUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX05VTV9JTkRJQ0VTOworcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2hhc2h0YWJsZV9pbnN0YW5jZSA9CisgICAgUEFTX0hBU0hUQUJMRV9JTklUSUFMSVpF
UjsKKworUEFTX0RFRklORV9MT0NLKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0
YWJsZSk7CiAKIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfYWRkX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewpA
QCAtNDcsNiArNTEsNyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2Fj
CiAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdDsKICAgICBib29sIGRpZF9vdmVyZmxv
dzsKKyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgY29tcGFj
dF9ub2RlOwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC03MiwxMiAr
NzcsMTIgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgIGlm
ICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2FkZF9ub2RlOiBub2RlID0gJXAsIGFsbG9jYXRvcl9pbmRleCA9ICV1LCAiCiAgICAgICAg
ICAgICAgICAgIm51bV9hbGxvY2F0b3JfaW5kaWNlcyA9ICV1XG4iLAotICAgICAgICAgICAgICAg
IG5vZGUsIHJlc3VsdCwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRv
cl9pbmRpY2VzKG5vZGUpKTsKKyAgICAgICAgICAgICAgICBub2RlLCByZXN1bHQsIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpKTsK
ICAgICB9CiAKICAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KAogICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCwK
LSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRp
Y2VzKG5vZGUpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251
bV9hbGxvY2F0b3JfaW5kaWNlcyhub2RlKSwKICAgICAgICAgJnBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKICAgICBQQVNfQVNTRVJUKCFkaWRfb3Zl
cmZsb3cpOwogCkBAIC05NCw2ICs5OSwxMyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJl
YWRfbG9jYWxfY2FjCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
c2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlLCBub2RlKTsK
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlID0gbm9kZTsK
ICAgICB9CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9j
a19sb2NrKCk7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3N0b3JlKCZjb21wYWN0X25vZGUsIG5vZGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2hhc2h0YWJsZV9hZGRfbmV3KAorICAgICAgICAmcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfaGFzaHRhYmxlX2luc3RhbmNlLCBjb21wYWN0X25vZGUsCisgICAgICAgIE5VTEws
ICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWcpOworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9sb2NrX3VubG9jaygpOwogICAg
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzQsNCArMTQ2LDE2IEBAIHBhc19hbGxvY2F0
b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKICAgICByZXR1cm4gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfYWRkX25vZGUocGFzX3dyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKGNh
Y2hlX25vZGUpKTsKIH0KIAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9nZXRfbm9kZV9mb3JfaW5kZXgocGFzX2FsbG9jYXRv
cl9pbmRleCBpbmRleCkKK3sKKyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgY29tcGFjdF9ub2RlOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfaGFzaHRhYmxlX2xvY2tfbG9jaygpOworICAgIGNvbXBhY3Rfbm9kZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9nZXQoCisgICAgICAgICZwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfaW5zdGFuY2UsIGluZGV4KTsKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9ja191bmxvY2soKTsKKworICAgIHJl
dHVybiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbG9hZCgmY29t
cGFjdF9ub2RlKTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0
b3JfaW5kZXguaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2hhc2h0
YWJsZS5oIgorI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfZW50cnkuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKQEAgLTM2LDYgKzM5LDE2
IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIFBBU19BUEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9k
ZTsKIFBBU19BUEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlOwogCitQQVNfQ1JFQVRFX0hBU0hU
QUJMRShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGUsCisgICAgICAgICAg
ICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSwKKyAgICAgICAg
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleSk7CisKKy8qIExv
Y2sgdXNlZCBpbnRlcm5hbGx5IGZvciBhY2Nlc3NpbmcgdGhlIGhhc2h0YWJsZV9pbnN0YW5jZS4g
WW91IGRvbid0IGhhdmUgdG8gdXNlIHRoaXMgbG9jayB1bmxlc3MgeW91CisgICBhY2Nlc3MgdGhl
IGhhc2h0YWJsZV9pbnN0YW5jZSBkaXJlY3RseS4gKi8KK1BBU19ERUNMQVJFX0xPQ0socGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlKTsKKworUEFTX0FQSSBleHRlcm4gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2hhc2h0YWJsZV9pbnN0YW5jZTsKKwogLyogQ2xpZW50cyBjYW4gdXNlIHRoaXMg
dG8gZm9yY2UgdGhlIG5leHQgY2FsbCB0byBhZGQgdG8gZ28gdG8gdGhpcyBpbmRleC4gKi8KIFBB
U19BUEkgZXh0ZXJuIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXg7CiAKQEAgLTUxLDYgKzY0LDEwIEBAIFBBU19BUEkg
cGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2wKIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSgKICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAorLyogWW91IGRvbid0
IG5lZWQgdG8gaG9sZCBhbnkgbG9ja3MgdG8gdXNlIHRoaXMgYmVjYXVzZSB0aGlzIHVzZXMgaXRz
IG93biBsb2NrIGJlaGluZCB0aGUgc2NlbmVzLiAqLworUEFTX0FQSSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9ub2Rl
X2Zvcl9pbmRleCgKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4KTsKKwogI2RlZmluZSBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihub2RlKSBcCiAgICAg
bm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGU7IFwKICAgICBu
b2RlOyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDg4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRU5UUllfSAorI2RlZmluZSBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FTlRSWV9ICisKKyNpbmNsdWRlICJwYXNfYWxsb2Nh
dG9yX2luZGV4LmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKwordHlwZWRlZiBwYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfZW50cnk7Cit0eXBlZGVmIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfa2V5OworCitzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2VudHJ5IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0
ZV9lbXB0eSh2b2lkKQoreworICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSByZXN1bHQ7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3N0b3JlKCZyZXN1bHQsIE5VTEwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0
YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKK3sKKyAgICBw
YXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcmVzdWx0OworICAgIHBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmcmVzdWx0LCAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSkodWludHB0cl90KTEpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVkKAorICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90KXBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkgPD0g
KHVpbnRwdHJfdCkxOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnlfaXNfZW1wdHkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
ZW50cnkgZW50cnkpCit7CisgICAgcmV0dXJuIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9pc19udWxsKCZlbnRyeSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9pc19kZWxldGVkKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90
KXBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkg
PT0gKHVpbnRwdHJfdCkxOworfQorCitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXgg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfZ2V0X2tleSgKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSBlbnRyeSkKK3sKKyAgICByZXR1cm4gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMo
CisgICAgICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2Fk
X25vbl9udWxsKCZlbnRyeSkpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleV9nZXRfaGFzaChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9rZXkga2V5KQoreworICAgIHJldHVybiBwYXNfaGFzaDMyKGtleSk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfaXNfZXF1
YWwocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5IGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2tleSBiKQoreworICAgIHJldHVybiBhID09IGI7Cit9CisKK1BB
U19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9V
VF9FTlRSWV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmMJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9k
CiB9CiAKIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUpCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIApAQCAtMTMxLDkgKzEz
MSwxMSBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZShuZXh0
X3B0cihub2RlKSwgbmV4dF9ub2RlKTsKIH0KIAotdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2NvbnN0cnVjdChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkK
IHsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0
ZWQobm9kZSwgY2FjaGUpOworICAgIAogICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7CiAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uc3RydWN0KAogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24oCkBAIC0xNTQs
MTkgKzE1NiwzNCBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiBmcm9tX2NhY2hlKQogewogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2Nh
dG9yX2luZGV4OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZl
bmdlcl9kYXRhOwogCisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2lzX2NvbW1pdHRlZChub2RlLCB0b19jYWNoZSkpOworICAgIAogICAgIGFsbG9jYXRv
cl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRv
cl9pbmRleF9nZW5lcmljKG5vZGUpOwogICAgIAorICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0ZWQobm9kZSwgZnJvbV9jYWNoZSkpIHsKKyAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0cnVj
dChub2RlLCB0b19jYWNoZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAg
IHNjYXZlbmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2RpcmVjdChmcm9tX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworCisgICAgaWYgKHNjYXZl
bmdlcl9kYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCkg
eworICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRf
Y29uc3RydWN0KG5vZGUsIHRvX2NhY2hlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAK
ICAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2Fs
bG9jYXRvcihub2RlKSkgewogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCiAgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0
X2Zvcl9pbml0aWFsaXphdGlvbih0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKLSAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoZnJv
bV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvciopc2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbW92ZSgKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24odG9fY2FjaGUsIGFs
bG9jYXRvcl9pbmRleCksCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXRvcl9kaXJlY3QoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAg
IChwYXNfbG9jYWxfdmlld19jYWNoZSopc2NhdmVuZ2VyX2RhdGEpOwogfQogCiB2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUsCkBAIC0xOTMsNCArMjEwLDU2IEBAIHZvaWQgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV8KICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKGFs
bG9jYXRvciwgcGFnZV9sb2NrX21vZGUpOwogfQogCitib29sIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJp
Yyhub2RlKTsKKworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2NvbW1pdHRl
ZCgKKyAgICAgICAgY2FjaGUsCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgYWxs
b2NhdG9yX2luZGV4ICsgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9udW1fYWxs
b2NhdG9yX2luZGljZXMobm9kZSkpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICBwYXNf
YWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9n
ZW5lcmljKG5vZGUpOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0
dGVkKAorICAgICAgICBjYWNoZSwKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4LAorICAgICAgICBh
bGxvY2F0b3JfaW5kZXggKyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9h
bGxvY2F0b3JfaW5kaWNlcyhub2RlKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3JhbmdlIGRlY29tbWl0X3JhbmdlKQoreworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxs
b2NhdG9yX2luZGV4OworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRl
eDsKKyAgICBwYXNfcmFuZ2UgYWxsb2NhdG9yX3JhbmdlOworICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOworCisgICAgUEFTX0FTU0VSVChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChub2RlLCBjYWNoZSkp
OworCisgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7CisgICAgZW5kX2FsbG9jYXRv
cl9pbmRleCA9IGFsbG9jYXRvcl9pbmRleCArIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpOworICAgIGFsbG9jYXRvcl9yYW5nZSA9
IHBhc19yYW5nZV9jcmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0
X29mX2FsbG9jYXRvcihhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX29mZnNldF9vZl9hbGxvY2F0b3IoZW5kX2FsbG9jYXRvcl9pbmRleCkpOworCisgICAg
aWYgKCFwYXNfcmFuZ2Vfb3ZlcmxhcHMoYWxsb2NhdG9yX3JhbmdlLCBkZWNvbW1pdF9yYW5nZSkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzY2F2ZW5nZXJfZGF0YSA9IChwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKikKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKwor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfcHJlcGFyZV90b19kZWNvbW1p
dChzY2F2ZW5nZXJfZGF0YSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkocmV2aXNpb24gMjg4
MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIK
KyNpbmNsdWRlICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMTM5LDcg
KzE0MCw3IEBAIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4
Ci1wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKK3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCkBAIC0xNzYsOCArMTc3LDggQEAgUEFTX0FQ
SSB2b2lkCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBuZXh0X25vZGUpOwogCi1QQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUqIGNhY2hlKTsKIAogUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRvX2NhY2hlLApAQCAtMTg4LDYgKzE4OSwxNCBAQCBQ
QVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBw
YWdlX2xvY2tfbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCitQ
QVNfQVBJIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0
ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSk7
CitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9wcmVwYXJl
X3RvX2RlY29tbWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
YW5nZSBkZWNvbW1pdF9yYW5nZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbm9kZS5jCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5
KQpAQCAtNjksNyArNjksNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIHBhc190aHJl
YWRfCiAgICAgICAgIHJlc3VsdC0+bmV4dCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9m
aXJzdDsKIAogICAgICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+cGFnZV9sb2NrKTsK
LSAgICAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmxvZ19mbHVzaF9sb2NrKTsKKyAg
ICAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPnNjYXZlbmdlcl9sb2NrKTsKIAogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIlRMQyBwYWdlIGxvY2s6ICVw
XG4iLCAmcmVzdWx0LT5wYWdlX2xvY2spOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
LmgJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1
MCw3IEBAIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUgewogICAgIAogICAgIHBh
c19sb2NrIHBhZ2VfbG9jazsKICAgICAKLSAgICBwYXNfbG9jayBsb2dfZmx1c2hfbG9jazsKKyAg
ICBwYXNfbG9jayBzY2F2ZW5nZXJfbG9jazsKICAgICAKICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBjYWNoZTsKIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgJKHJldmlzaW9u
IDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfaW50cmluc2ljLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsOCBAQCBwYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jCiAKICAgICAgICAgYWxsb2NhdG9y
ID0gKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOwogCi0g
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8
fCBhbGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3It
Pm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
fHwgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jf
ZGVjb21taXR0ZWRfa2luZCk7CiAgICAgCiAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNp
YWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lO
TElORSBhbmQKICAgICAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwpA
QCAtMjQ0LDcgKzI0NSw4IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5l
X28KICAgICBQQVNfVEVTVElOR19BU1NFUlQoCiAgICAgICAgICFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkCiAgICAgICAgIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9z
aXplCi0gICAgICAgIHx8IGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25maWdfa2luZF91bnNlbGVjdGVkKTsKKyAgICAgICAgfHwgYWxsb2NhdG9yLT5jb25m
aWdfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQKKyAg
ICAgICAgfHwgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxv
Y2F0b3JfZGVjb21taXR0ZWRfa2luZCk7CiAgICAgCiAgICAgLyogVGhpcyBzaG91bGQgYmUgc3Bl
Y2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNf
SU5MSU5FIGFuZAogICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJp
bWl0aXZlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmUuaAko
d29ya2luZyBjb3B5KQpAQCAtODAsMTcgKzgwLDIwIEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0
aXZlX2ltcGxfY2FzdWFsX2MKICAgICAvKiBIYXZlIGEgZmFzdCBwYXRoIGZvciB3aGVuIHlvdSBh
bGxvY2F0ZSBzb21lIHNpemUgYWxsIHRoZSB0aW1lIG9yCiAgICAgICAgbW9zdCBvZiB0aGUgdGlt
ZS4gVGhpcyBzYXZlcyBib3RoIHRpbWUgYW5kIHNwYWNlLiBUaGUgc3BhY2Ugc2F2aW5ncyBhcmUK
ICAgICAgICB0aGUgbW9yZSBpbnRlcmVzdGluZyBwYXJ0LCBzaW5jZSAqLworCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIHBhc19sb2coIiVwOiBnZXR0aW5nIGFsbG9jYXRvciBpbmRleC5cbiIs
IHB0aHJlYWRfc2VsZigpKTsKICAgICAKICAgICBpZiAoaW5kZXggPT0gaGVhcF9yZWYtPmNhY2hl
ZF9pbmRleCkgewogICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHByaW50ZigiRm91
bmQgY2FjaGVkIGluZGV4LlxuIik7CisgICAgICAgICAgICBwYXNfbG9nKCJGb3VuZCBjYWNoZWQg
aW5kZXguXG4iKTsKICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0gaGVhcF9yZWYtPmJhc2UuYWxs
b2NhdG9yX2luZGV4OwogICAgIH0gZWxzZSB7CiAgICAgICAgIHBhc19oZWFwKiBoZWFwOwogICAg
ICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiBzZWdyZWdhdGVkX2hlYXA7CiAgICAgICAgIAogICAg
ICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgIHByaW50ZigiVXNpbmcgZnVsbCBsb29rdXAu
XG4iKTsKKyAgICAgICAgICAgIHBhc19sb2coIlVzaW5nIGZ1bGwgbG9va3VwLlxuIik7CiAKICAg
ICAgICAgaGVhcCA9IHBhc19lbnN1cmVfaGVhcCgmaGVhcF9yZWYtPmJhc2UsIHBhc19wcmltaXRp
dmVfaGVhcF9yZWZfa2luZCwgY29uZmlnLmNvbmZpZ19wdHIsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcnVudGltZV9jb25maWcpOwpAQCAtMTAyLDEwICsxMDUsMTggQEAgcGFzX3Ry
eV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9jYXN1YWxfYwogICAgIH0KICAgICAKICAgICBpZiAo
dmVyYm9zZSkKLSAgICAgICAgcHJpbnRmKCJhbGxvY2F0b3JfaW5kZXggPSAldVxuIiwgYWxsb2Nh
dG9yX2luZGV4KTsKKyAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yX2luZGV4ID0gJXVcbiIsIGFs
bG9jYXRvcl9pbmRleCk7CisKKyAgICAvKiBDb29sIGZhY3Q6IHRoZXJlIGNvdWxkIGJlIGEgcmFj
ZSB3aGVyZSB0aGUgYWxsb2NhdG9yX2luZGV4IHdlIGdldCBpcyAwIChpLmUuIHVuc2VsZWN0ZWQp
IGV2ZW4gdGhvdWdoCisgICAgICAgYXQgdGhpcyBwb2ludCwgdGhlIGRpcmVjdG9yeSBoYXMgYWxy
ZWFkeSBpbml0aWFsaXplZCB0aGUgYWxsb2NhdG9yX2luZGV4LiBUaGF0J3MgYmVjYXVzZSBiZXR3
ZWVuIHdoZW4KKyAgICAgICB3ZSBnb3QgdGhlIGFsbG9jYXRvcl9pbmRleCBhYm92ZSBhbmQgbm93
LCBzb21lIG90aGVyIHRocmVhZCBjb3VsZCBoYXZlIGFscmVhZHkgaW5pdGlhbGl6ZWQgdGhlCisg
ICAgICAgZGlyZWN0b3J5J3MgYWxsb2NhdG9yX2luZGV4LiAqLwogICAgIAogICAgIGFsbG9jYXRv
ciA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9pZl9jYW5fc2V0
X2NhY2hlX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4KAogICAgICAgICBhbGxvY2F0
b3JfaW5kZXgsIGNvbmZpZy5jb25maWdfcHRyKTsKKworICAgIGlmICh2ZXJib3NlICYmICFhbGxv
Y2F0b3IuZGlkX3N1Y2NlZWQpCisgICAgICAgIHBhc19sb2coIiVwOiBGYWlsZWQgdG8gcXVpY2ts
eSBnZXQgdGhlIGFsbG9jYXRvciwgYWxsb2NhdG9yX2luZGV4ID0gJXUuXG4iLCBwdGhyZWFkX3Nl
bGYoKSwgYWxsb2NhdG9yX2luZGV4KTsKICAgICAKICAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVj
aWFsaXplZCBvdXQgaW4gdGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19J
TkxJTkUgYW5kCiAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwpAQCAt
MTQ1LDE0ICsxNTYsMTQgQEAgcGFzX3RyeV9hbGxvY2F0ZV9wcmltaXRpdmVfaW1wbF9pbmxpbmVf
bwogICAgIAogICAgIGlmIChpbmRleCA9PSBoZWFwX3JlZi0+Y2FjaGVkX2luZGV4KSB7CiAgICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgcHJpbnRmKCJGb3VuZCBjYWNoZWQgaW5kZXgu
XG4iKTsKKyAgICAgICAgICAgIHBhc19sb2coIkZvdW5kIGNhY2hlZCBpbmRleC5cbiIpOwogICAg
ICAgICBhbGxvY2F0b3JfaW5kZXggPSBoZWFwX3JlZi0+YmFzZS5hbGxvY2F0b3JfaW5kZXg7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgcGFzX2hlYXAqIGhlYXA7CiAgICAgICAgIHBhc19zZWdyZWdh
dGVkX2hlYXAqIHNlZ3JlZ2F0ZWRfaGVhcDsKICAgICAgICAgCiAgICAgICAgIGlmICh2ZXJib3Nl
KQotICAgICAgICAgICAgcHJpbnRmKCJVc2luZyBmdWxsIGxvb2t1cC5cbiIpOworICAgICAgICAg
ICAgcGFzX2xvZygiVXNpbmcgZnVsbCBsb29rdXAuXG4iKTsKIAogICAgICAgICBoZWFwID0gaGVh
cF9yZWYtPmJhc2UuaGVhcDsKICAgICAgICAgaWYgKCFoZWFwKQpAQCAtMTY0LDcgKzE3NSw3IEBA
IHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfaW5saW5lX28KICAgICB9CiAgICAgCiAg
ICAgaWYgKHZlcmJvc2UpCi0gICAgICAgIHByaW50ZigiYWxsb2NhdG9yX2luZGV4ID0gJXVcbiIs
IGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgIHBhc19sb2coImFsbG9jYXRvcl9pbmRleCA9ICV1
XG4iLCBhbGxvY2F0b3JfaW5kZXgpOwogCiAgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKTsKICAgICBpZiAoUEFTX1VOTElLRUxZKCFjYWNoZSkpCkBAIC0xNzMsOSAr
MTg0LDEyIEBAIHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfaW5saW5lX28KICAgICBh
bGxvY2F0b3IgPQogICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXRfbG9jYWxf
YWxsb2NhdG9yX29yX3Vuc2VsZWN0ZWRfZm9yX3VuaW5pdGlhbGl6ZWRfaW5kZXgoCiAgICAgICAg
ICAgICBjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICBpZiAoUEFTX1VOTElLRUxZKCFhbGxv
Y2F0b3IuZGlkX3N1Y2NlZWQpKQorICAgIGlmIChQQVNfVU5MSUtFTFkoIWFsbG9jYXRvci5kaWRf
c3VjY2VlZCkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICBwYXNfbG9nKCJD
b3VsZCBub3QgcXVpY2tseSBnZXQgdGhlIGFsbG9jYXRvci5cbiIpOwogICAgICAgICByZXR1cm4g
cGFzX2FsbG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9mYWlsdXJlKCk7Ci0gICAgCisgICAgfQorCiAg
ICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50
IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAogICAgICAgIGFsaWdubWVudCBiZWlu
ZyB0aGUgY29uc3RhbnQgMS4gKi8KICAgICBpZiAoUEFTX1VOTElLRUxZKApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9o
ZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
NTUsNiArMTU1LDcgQEAgUEFTX0FQSSB2b2lkIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2R1bQog
ICAgICAgICAuYWxpZ25lZF9hbGxvY2F0b3IgPSBOVUxMLCBcCiAgICAgICAgIC5hbGlnbmVkX2Fs
bG9jYXRvcl90YWxrc190b19zaGFyaW5nX3Bvb2wgPSBmYWxzZSwgXAogICAgICAgICAuZGVhbGxv
Y2F0b3IgPSBOVUxMLCBcCisgICAgICAgIC5tbWFwX2NhcGFiaWxpdHkgPSBwYXNfbWF5X21tYXAs
IFwKICAgICAgICAgLnJvb3RfZGF0YSA9IE5VTEwsIFwKICAgICAgICAgLnByZXBhcmVfdG9fZW51
bWVyYXRlID0gTlVMTCwgXAogICAgICAgICAuZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
ID0gcGFzX3V0aWxpdHlfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
LCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMu
aAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkxOSw2ICs5MTksMTAgQEAgc3RhdGljIGlu
bGluZSBib29sIHBhc19pc19kaXZpc2libGVfYnkodQogZW51bSBjcHBfaW5pdGlhbGl6YXRpb25f
dCB7IGNwcF9pbml0aWFsaXphdGlvbiB9OwogI2VuZGlmCiAKKyNkZWZpbmUgUEFTX1NZU0NBTEwo
eCkgZG8geyBcCisgICAgd2hpbGUgKCh4KSA9PSAtMSAmJiBlcnJubyA9PSBFQUdBSU4pIHsgfSBc
Cit9IHdoaWxlICgwKQorCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX1VUSUxT
X0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFs
X3JhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3ZpcnR1YWxfcmFuZ2UuaAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3ZpcnR1YWxfcmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2
ICsyNyw3IEBACiAjZGVmaW5lIFBBU19WSVJUVUFMX1JBTkdFX0gKIAogI2luY2x1ZGUgInBhc19s
b2NrLmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgInBhc19y
YW5nZS5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCkBAIC00MSwyMiArNDIsMjUgQEAgc3Ry
dWN0IHBhc192aXJ0dWFsX3JhbmdlIHsKICAgICB1aW50cHRyX3QgYmVnaW47CiAgICAgdWludHB0
cl90IGVuZDsKICAgICBwYXNfbG9jayogbG9ja19wdHI7CisgICAgcGFzX21tYXBfY2FwYWJpbGl0
eSBtbWFwX2NhcGFiaWxpdHk7CiB9OwogCiBzdGF0aWMgaW5saW5lIHBhc192aXJ0dWFsX3Jhbmdl
IHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSh1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5k
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2sqIGxvY2tfcHRyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2sqIGxvY2tfcHRyLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2Fw
YWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgcGFzX3ZpcnR1YWxfcmFuZ2UgcmVzdWx0
OwogICAgIHJlc3VsdC5iZWdpbiA9IGJlZ2luOwogICAgIHJlc3VsdC5lbmQgPSBlbmQ7CiAgICAg
cmVzdWx0LmxvY2tfcHRyID0gbG9ja19wdHI7CisgICAgcmVzdWx0Lm1tYXBfY2FwYWJpbGl0eSA9
IG1tYXBfY2FwYWJpbGl0eTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW5saW5l
IHBhc192aXJ0dWFsX3JhbmdlIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZV9lbXB0eSh2b2lkKQog
ewotICAgIHJldHVybiBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoMCwgMCwgTlVMTCk7CisgICAg
cmV0dXJuIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgwLCAwLCBOVUxMLCBwYXNfbWF5X25vdF9t
bWFwKTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfcmFuZ2UgcGFzX3ZpcnR1YWxfcmFuZ2VfZ2V0
X3JhbmdlKHBhc192aXJ0dWFsX3JhbmdlIHJhbmdlKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy90ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L0V4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAJKHJl
dmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9FeHBlbmRh
YmxlTWVtb3J5VGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDExICsyOCwxNCBAQAogI2lmIFBB
U19FTkFCTEVfQk1BTExPQwogCiAjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisjaW5jbHVkZSAi
Ym1hbGxvY19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgPGNvbmRpdGlvbl92YXJpYWJsZT4KICNp
bmNsdWRlIDxtdXRleD4KICNpbmNsdWRlICJwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5o
IgogI2luY2x1ZGUgInBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9pbmxpbmVzLmgiCisjaW5jbHVkZSA8dGhyZWFkPgogCiB1c2luZyBuYW1lc3BhY2Ugc3Rk
OwogCkBAIC0yMTIsNiArMjE1LDEyNyBAQCB2b2lkIHRlc3RTb01hbnlIZWFwcygpCiAgICAgQ0hF
Q0socGFzX3NlZ3JlZ2F0ZWRfaGVhcF9udW1fc2l6ZV9sb29rdXBfcmVtYXRlcmlhbGl6YXRpb25z
KTsKIH0KIAordm9pZCB0ZXN0UmFnZSh1bnNpZ25lZCBudW1IZWFwcywgZnVuY3Rpb248dW5zaWdu
ZWQodW5zaWduZWQpPiBhbGxvY2F0aW9uU2l6ZSwgdW5zaWduZWQgbnVtVGhyZWFkcywKKyAgICAg
ICAgICAgICAgdW5zaWduZWQgY291bnQsIGZ1bmN0aW9uPHZvaWQoKT4gc2xlZXApCit7CisgICAg
dGhyZWFkKiB0aHJlYWRzID0gbmV3IHRocmVhZFtudW1UaHJlYWRzXTsKKyAgICBwYXNfcHJpbWl0
aXZlX2hlYXBfcmVmKiBoZWFwcyA9IG5ldyBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmW251bUhlYXBz
XTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IG51bUhlYXBzOyBpLS07KQorICAgICAgICBoZWFw
c1tpXSA9IEJNQUxMT0NfRkxFWF9IRUFQX1JFRl9JTklUSUFMSVpFUihuZXcgYm1hbGxvY190eXBl
KEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUigxLCAxLCAidGVzdCIpKSk7CisKKyAgICBtdXRleCBs
b2NrOworICAgIHVuc2lnbmVkIG51bVRocmVhZHNEb25lID0gMDsKKworICAgIGZvciAodW5zaWdu
ZWQgaSA9IG51bVRocmVhZHM7IGktLTspIHsKKyAgICAgICAgdGhyZWFkc1tpXSA9IHRocmVhZChb
Jl0gKCkgeworICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGNvdW50OyArK2op
IHsKKyAgICAgICAgICAgICAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmKiBoZWFwID0gaGVhcHMg
KyBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKG51bUhlYXBzKTsKKyAgICAgICAgICAgICAgICBz
aXplX3Qgc2l6ZSA9IGFsbG9jYXRpb25TaXplKGopOworICAgICAgICAgICAgICAgIHZvaWQqIHB0
ciA9IGJtYWxsb2NfYWxsb2NhdGVfZmxleChoZWFwLCBzaXplKTsKKyAgICAgICAgICAgICAgICBD
SEVDSyhwdHIpOworICAgICAgICAgICAgICAgIENIRUNLX0dSRUFURVJfRVFVQUwoYm1hbGxvY19n
ZXRfYWxsb2NhdGlvbl9zaXplKHB0ciksIHNpemUpOworICAgICAgICAgICAgICAgIENIRUNLX0VR
VUFMKGJtYWxsb2NfZ2V0X2hlYXAocHRyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
bWFsbG9jX2ZsZXhfaGVhcF9yZWZfZ2V0X2hlYXAoaGVhcCkpOworICAgICAgICAgICAgICAgIGJt
YWxsb2NfZGVhbGxvY2F0ZShwdHIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbG9ja19n
dWFyZDxtdXRleD4gbG9ja2VyKGxvY2spOworICAgICAgICAgICAgbnVtVGhyZWFkc0RvbmUrKzsK
KyAgICAgICAgfSk7CisgICAgfQorCisgICAgd2hpbGUgKG51bVRocmVhZHNEb25lIDwgbnVtVGhy
ZWFkcykgeworICAgICAgICBwYXNfc2NhdmVuZ2VyX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5
KCk7CisgICAgICAgIHNsZWVwKCk7CisgICAgfQorfQorCit2b2lkIHRlc3RSZW1hdGVyaWFsaXpl
QWZ0ZXJTZWFyY2hPZkRlY29tbWl0dGVkKCkKK3sKKyAgICBzdGF0aWMgY29uc3RleHByIHVuc2ln
bmVkIGluaXRpYWxTaXplID0gMTY7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzaXpl
ID0gMTA3NTI7CisgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBzb21lT3RoZXJTaXplID0g
NTAwMDsKKyAgICAKKyAgICBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmIGhlYXBSZWYgPSBCTUFMTE9D
X0ZMRVhfSEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgIG5ldyBibWFsbG9jX3R5cGUoQk1B
TExPQ19UWVBFX0lOSVRJQUxJWkVSKDEsIDEsICJ0ZXN0IikpKTsKKyAgICBwYXNfaGVhcCogaGVh
cCA9IGJtYWxsb2NfZmxleF9oZWFwX3JlZl9nZXRfaGVhcCgmaGVhcFJlZik7CisKKyAgICB2b2lk
KiBwdHIgPSBibWFsbG9jX2FsbG9jYXRlX2ZsZXgoJmhlYXBSZWYsIGluaXRpYWxTaXplKTsKKyAg
ICBDSEVDS19FUVVBTChibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUocHRyKSwgaW5pdGlhbFNp
emUpOworICAgIENIRUNLX0VRVUFMKGJtYWxsb2NfZ2V0X2hlYXAocHRyKSwgaGVhcCk7CisgICAg
Q0hFQ0tfRVFVQUwoaGVhcFJlZi5jYWNoZWRfaW5kZXgsIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5k
ZXhfZm9yX3NpemUoaW5pdGlhbFNpemUsIEJNQUxMT0NfSEVBUF9DT05GSUcpKTsKKworICAgIHB0
ciA9IGJtYWxsb2NfYWxsb2NhdGVfZmxleCgmaGVhcFJlZiwgc2l6ZSk7CisgICAgQ0hFQ0tfRVFV
QUwoYm1hbGxvY19nZXRfYWxsb2NhdGlvbl9zaXplKHB0ciksIHNpemUpOworICAgIENIRUNLX0VR
VUFMKGJtYWxsb2NfZ2V0X2hlYXAocHRyKSwgaGVhcCk7CisKKyAgICBwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmplY3QoCisgICAgICAgIHJlaW50
ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpLCAmYm1hbGxvY19oZWFwX2NvbmZpZyk7CisgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOworCisgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVh
cF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKiB0dXBsZSA9CisgICAgICAgIHBhc19zZWdyZWdhdGVk
X2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZV9mb3JfaW5kZXgoCisgICAgICAgICAgICAmaGVh
cC0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRl
eF9mb3Jfc2l6ZShzaXplLCBCTUFMTE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAgIHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX3NpemVfZGlyZWN0b3J5X3NlYXJjaF93aXRoaW5fc2l6ZV9j
bGFzc19wcm9ncmVzc2lvbiwKKyAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKwor
ICAgIENIRUNLKHR1cGxlKTsKKyAgICBDSEVDS19FUVVBTChwYXNfY29tcGFjdF9hdG9taWNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmdHVwbGUtPmRpcmVjdG9yeSksCisgICAg
ICAgICAgICAgICAgZGlyZWN0b3J5KTsKKworICAgIHBhc19zY2F2ZW5nZXJfZmFrZV9kZWNvbW1p
dF9leHBlbmRhYmxlX21lbW9yeSgpOworCisgICAgdHVwbGUtPmJlZ2luX2luZGV4ID0gMDsKKwor
ICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSogc29tZU90aGVy
VHVwbGUgPQorICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVw
bGVfZm9yX2luZGV4KAorICAgICAgICAgICAgJmhlYXAtPnNlZ3JlZ2F0ZWRfaGVhcCwKKyAgICAg
ICAgICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfaW5kZXhfZm9yX3NpemUoc29tZU90aGVyU2l6ZSwg
Qk1BTExPQ19IRUFQX0NPTkZJRyksCisgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9zaXplX2RpcmVjdG9yeV9zZWFyY2hfd2l0aGluX3NpemVfY2xhc3NfcHJvZ3Jlc3Npb24s
CisgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisKKyAgICBpZiAoc29tZU90aGVy
VHVwbGUpIHsKKyAgICAgICAgY291dCA8PCAiVW5leHBlY3RlZGx5IGZvdW5kIGEgdHVwbGU6ICIg
PDwgc29tZU90aGVyVHVwbGUgPDwgIlxuIjsKKyAgICAgICAgY291dCA8PCAiSXQgcG9pbnRzIGF0
IGRpcmVjdG9yeSA9ICIKKyAgICAgICAgICAgICA8PCBwYXNfY29tcGFjdF9hdG9taWNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9wdHJfbG9hZCgmc29tZU90aGVyVHVwbGUtPmRpcmVjdG9yeSkg
PDwgIlxuIjsKKyAgICAgICAgY291dCA8PCAiT3VyIG9yaWdpbmFsIGRpcmVjdG9yeSBpcyA9ICIg
PDwgZGlyZWN0b3J5IDw8ICJcbiI7CisgICAgfQorICAgIAorICAgIENIRUNLKCFzb21lT3RoZXJU
dXBsZSk7Cit9CisKK3ZvaWQgdGVzdEJhc2ljU2l6ZUNsYXNzKHVuc2lnbmVkIGZpcnN0U2l6ZSwg
dW5zaWduZWQgc2Vjb25kU2l6ZSkKK3sKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9z
ZSA9IGZhbHNlOworICAgIAorICAgIHBhc19wcmltaXRpdmVfaGVhcF9yZWYgaGVhcFJlZiA9IEJN
QUxMT0NfRkxFWF9IRUFQX1JFRl9JTklUSUFMSVpFUigKKyAgICAgICAgbmV3IGJtYWxsb2NfdHlw
ZShCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIoMSwgMSwgInRlc3QiKSkpOworCisgICAgaWYgKHZl
cmJvc2UpCisgICAgICAgIGNvdXQgPDwgIkFsbG9jYXRpbmcgIiA8PCBmaXJzdFNpemUgPDwgIlxu
IjsKKyAgICB2b2lkKiBwdHIgPSBibWFsbG9jX2FsbG9jYXRlX2ZsZXgoJmhlYXBSZWYsIGZpcnN0
U2l6ZSk7CisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIGNvdXQgPDwgIkFsbG9jYXRpbmcgIiA8
PCBzZWNvbmRTaXplIDw8ICJcbiI7CisgICAgYm1hbGxvY19hbGxvY2F0ZV9mbGV4KCZoZWFwUmVm
LCBzZWNvbmRTaXplKTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBjb3V0IDw8ICJEb2lu
ZyBzb21lIGNoZWNrcy5cbiI7CisgICAgQ0hFQ0socGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlf
Z2V0KCkpOworICAgIENIRUNLX0VRVUFMKGhlYXBSZWYuY2FjaGVkX2luZGV4LCBwYXNfc2VncmVn
YXRlZF9oZWFwX2luZGV4X2Zvcl9zaXplKGZpcnN0U2l6ZSwgQk1BTExPQ19IRUFQX0NPTkZJRykp
OworICAgIENIRUNLKGhlYXBSZWYuYmFzZS5hbGxvY2F0b3JfaW5kZXgpOworICAgIENIRUNLKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3Jfb3JfdW5zZWxlY3Rl
ZF9mb3JfdW5pbml0aWFsaXplZF9pbmRleCgKKyAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV90cnlfZ2V0KCksIGhlYXBSZWYuYmFzZS5hbGxvY2F0b3JfaW5kZXgpLmRpZF9zdWNj
ZWVkKTsKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgY291dCA8PCAiRGlkIHNvbWUgY2hlY2tz
LlxuIjsKKworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldyA9IHBhc19zZWdyZWdhdGVkX3Zp
ZXdfZm9yX29iamVjdCgKKyAgICAgICAgcmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciks
ICZibWFsbG9jX2hlYXBfY29uZmlnKTsKKyAgICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9y
eSogZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkodmll
dyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnlfc2VsZWN0X2FsbG9jYXRvcigK
KyAgICAgICAgZGlyZWN0b3J5LCBmaXJzdFNpemUsIHBhc19hdm9pZF9zaXplX2xvb2t1cCwgJmJt
YWxsb2NfaGVhcF9jb25maWcsICZoZWFwUmVmLmNhY2hlZF9pbmRleCk7Cit9CisKIH0gLy8gYW5v
bnltb3VzIG5hbWVzcGFjZQogCiAjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCkBAIC0yMTks
OSArMzQzLDI2IEBAIHZvaWQgdGVzdFNvTWFueUhlYXBzKCkKIHZvaWQgYWRkRXhwZW5kYWJsZU1l
bW9yeVRlc3RzKCkKIHsKICNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKyAgICBGb3JjZVRMQXMgZm9y
Y2VUTEFzOworICAgIAogICAgIEFERF9URVNUKHRlc3RTeW5jaHJvbm91c1NjYXZlbmdpbmdFeHBl
bmRzRXhwZW5kYWJsZU1lbW9yeSgpKTsKICAgICBBRERfVEVTVCh0ZXN0U2NhdmVuZ2VyRXhwZW5k
c0V4cGVuZGFibGVNZW1vcnkoKSk7CiAgICAgQUREX1RFU1QodGVzdFNvTWFueUhlYXBzKCkpOwor
ICAgIEFERF9URVNUKHRlc3RSYWdlKDEwLCBbXSAodW5zaWduZWQpIHsgcmV0dXJuIGRldGVybWlu
aXN0aWNSYW5kb21OdW1iZXIoMTAwMDAwKTsgfSwgMTAsIDEwMDAwMCwgW10gKCkgeyBzY2hlZF95
aWVsZCgpOyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAsIFtdICh1bnNpZ25lZCBqKSB7
IHJldHVybiBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKGopOyB9LCAyLCAxMDAwMDAwLCBbXSAo
KSB7IHNjaGVkX3lpZWxkKCk7IH0pKTsKKyAgICBBRERfVEVTVCh0ZXN0UmFnZSgxMCwgW10gKHVu
c2lnbmVkIGopIHsgcmV0dXJuIGo7IH0sIDEwLCAxMDAwMDAsIFtdICgpIHsgc2NoZWRfeWllbGQo
KTsgfSkpOworICAgIEFERF9URVNUKHRlc3RSYWdlKDEwLCBbXSAodW5zaWduZWQgaikgeyByZXR1
cm4gajsgfSwgMSwgMTAwMDAwMCwgW10gKCkgeyBzY2hlZF95aWVsZCgpOyB9KSk7CisgICAgQURE
X1RFU1QodGVzdFJhZ2UoMTAwMCwgW10gKHVuc2lnbmVkKSB7IHJldHVybiBkZXRlcm1pbmlzdGlj
UmFuZG9tTnVtYmVyKDEwMDAwMCk7IH0sIDEwLCAxMDAwMDAsIFtdICgpIHsgc2NoZWRfeWllbGQo
KTsgfSkpOworICAgIEFERF9URVNUKHRlc3RSYWdlKDEwMDAsIFtdICh1bnNpZ25lZCBqKSB7IHJl
dHVybiBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKGopOyB9LCAyLCAxMDAwMDAwLCBbXSAoKSB7
IHNjaGVkX3lpZWxkKCk7IH0pKTsKKyAgICBBRERfVEVTVCh0ZXN0UmFnZSgxMDAwLCBbXSAodW5z
aWduZWQgaikgeyByZXR1cm4gajsgfSwgMTAsIDEwMDAwMCwgW10gKCkgeyBzY2hlZF95aWVsZCgp
OyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAsIFtdICh1bnNpZ25lZCkgeyByZXR1cm4g
ZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcigxMDAwMDApOyB9LCAyLCAxMDAwMDAwLCBbXSAoKSB7
IHNjaGVkX3lpZWxkKCk7IH0pKTsKKyAgICBBRERfVEVTVCh0ZXN0UmFnZSgxMCwgW10gKHVuc2ln
bmVkIGopIHsgcmV0dXJuIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIoaik7IH0sIDEwLCAxMDAw
MDAsIFtdICgpIHsgdXNsZWVwKDEpOyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAsIFtd
ICh1bnNpZ25lZCBqKSB7IHJldHVybiBqOyB9LCAxLCAxMDAwMDAsIFtdICgpIHsgdXNsZWVwKDEp
OyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAwMCwgW10gKHVuc2lnbmVkKSB7IHJldHVy
biBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKDEwMDAwMCk7IH0sIDIsIDEwMDAwMDAsIFtdICgp
IHsgdXNsZWVwKDEpOyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAwMCwgW10gKHVuc2ln
bmVkIGopIHsgcmV0dXJuIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIoaik7IH0sIDIsIDEwMDAw
MDAsIFtdICgpIHsgdXNsZWVwKDEpOyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJhZ2UoMTAwMCwg
W10gKHVuc2lnbmVkIGopIHsgcmV0dXJuIGo7IH0sIDEwLCAxMDAwMDAsIFtdICgpIHsgdXNsZWVw
KDEpOyB9KSk7CisgICAgQUREX1RFU1QodGVzdFJlbWF0ZXJpYWxpemVBZnRlclNlYXJjaE9mRGVj
b21taXR0ZWQoKSk7CisgICAgQUREX1RFU1QodGVzdEJhc2ljU2l6ZUNsYXNzKDAsIDE2KSk7CiAj
ZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwCShy
ZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTGFyZ2VT
aGFyaW5nUG9vbFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw4IEBAIHZv
aWQgdGVzdEdvb2RDb2FsZXNjZUVwb2NoVXBkYXRlKCkKICAgICBwYXNfaGVhcF9sb2NrX2xvY2so
KTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgcGFzX3Jh
bmdlX2NyZWF0ZSgxMCAqIFBHLCAyMCAqIFBHKSwKLSAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAgICAgIHBhc19w
aHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisg
ICAgICAgIHBhc19tYXlfbW1hcCk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKIAogICAg
IGFzc2VydFN0YXRlKHsgUmFuZ2UoMCwgMTAgKiBQRywgcGFzX2NvbW1pdHRlZCwgMTAgKiBQRywg
MCksCkBAIC0xNTIsNyArMTUzLDggQEAgdm9pZCB0ZXN0R29vZENvYWxlc2NlRXBvY2hVcGRhdGUo
KQogICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xf
Ym9vdF9mcmVlKAogICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKDIwICogUEcsIDMwICogUEcpLAot
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2Nv
bW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmly
dHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgcGFzX21heV9tbWFwKTsKICAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOwogCiAgICAgYXNzZXJ0U3RhdGUoeyBSYW5nZSgwLCAxMCAqIFBH
LCBwYXNfY29tbWl0dGVkLCAxMCAqIFBHLCAwKSwKQEAgLTE2NCw3ICsxNjYsOCBAQCB2b2lkIHRl
c3RHb29kQ29hbGVzY2VFcG9jaFVwZGF0ZSgpCiAgICAgQ0hFQ0socGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRl
KDEwICogUEcsIDMwICogUEcpLAogICAgICAgICAgICAgICAmdHJhbnNhY3Rpb24sCi0gICAgICAg
ICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29t
bW9uX2xvY2spKTsKKyAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgICAgICAgcGFzX21heV9tbWFw
KSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAKICAgICBpZiAodmVyYm9zZSkK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTWVtYWxpZ25UZXN0
cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L01l
bWFsaWduVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgIlRlc3RIYXJu
ZXNzLmgiCisKKyNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKworI2luY2x1ZGUgImJtYWxsb2NfaGVh
cC5oIgorI2luY2x1ZGUgImJtYWxsb2NfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRlICJwYXNfaGVh
cC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKKworbmFtZXNwYWNlIHsKKwordm9pZCB0ZXN0TWVtYWxp
Z25BcnJheShzaXplX3Qgc2l6ZSwgc2l6ZV90IHR5cGVTaXplLCBzaXplX3QgdHlwZUFsaWdubWVu
dCkKK3sKKyAgICBibWFsbG9jX3R5cGUgdHlwZSA9IEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUihz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZVNpemUpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlQWxpZ25t
ZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGVzdCIpOworICAgIHBhc19oZWFwX3JlZiBoZWFwUmVmID0gQk1BTExPQ19IRUFQX1JFRl9JTklU
SUFMSVpFUigmdHlwZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICB2b2lkKiBwdHIgPSBi
bWFsbG9jX2lzb19hbGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZSgmaGVhcFJlZiwgc2l6ZSk7
CisgICAgQ0hFQ0socHRyKTsKKworICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9v
YmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksICZibWFsbG9jX2hlYXBfY29u
ZmlnKTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVj
dG9yeSh2aWV3KTsKKworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9k
aXJlY3RvcnlfZm9yX3NpemUoCisgICAgICAgICAgICAgICAgICAgICZibWFsbG9jX2hlYXBfcmVm
X2dldF9oZWFwKCZoZWFwUmVmKS0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAgICAgICAgICAg
ICBzaXplLAorICAgICAgICAgICAgICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAorICAgICAg
ICAgICAgICAgICAgICBOVUxMKSwKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnkpOworfQorCit9
IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExPQwor
Cit2b2lkIGFkZE1lbWFsaWduVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1BTExPQworICAg
IEFERF9URVNUKHRlc3RNZW1hbGlnbkFycmF5KDE1MjMsIDE2LCA0KSk7CisgICAgQUREX1RFU1Qo
dGVzdE1lbWFsaWduQXJyYXkoMTUyMywgMTI4LCAxMjgpKTsKKyNlbmRpZiAvLyBQQVNfRU5BQkxF
X0JNQUxMT0MKK30KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RMQ0Rl
Y29tbWl0VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9UTENEZWNvbW1pdFRlc3RzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0MDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKKworI2lmIFBBU19FTkFCTEVfQk1B
TExPQworCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisjaW5jbHVkZSAiYm1hbGxvY19oZWFw
X2NvbmZpZy5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSAicGFzX2FsbF9oZWFw
cy5oIgorI2luY2x1ZGUgInBhc19iaXR2ZWN0b3IuaCIKKyNpbmNsdWRlICJwYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5oIgorI2luY2x1ZGUgInBhc19nZXRfaGVhcC5oIgorI2luY2x1ZGUgInBh
c19nZXRfcGFnZV9iYXNlLmgiCisjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgorI2luY2x1ZGUg
InBhc19zY2F2ZW5nZXIuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dC5oIgorI2luY2x1ZGUgPHRocmVhZD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNw
YWNlIHsKKworc2l6ZV90IG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKQoreworICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7
CisgICAgQ0hFQ0soY2FjaGUpOworICAgIHJldHVybiBwYXNfY291bnRfY29tbWl0dGVkX3BhZ2Vz
KAorICAgICAgICBjYWNoZSwKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zv
cl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoCisgICAgICAgICAgICBjYWNoZS0+YWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KSwKKyAgICAgICAgJmFsbG9jYXRpb25Db25maWcpOworfQorCit2b2lk
IHRlc3RUTENEZWNvbW1pdCh1bnNpZ25lZCBudW1IZWFwcywKKyAgICAgICAgICAgICAgICAgICAg
IGZ1bmN0aW9uPGJvb2wodW5zaWduZWQpPiBzaG91bGRTdG9wQWxsb2NhdG9yQXRJbmRleCwKKyAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgY29tbWl0V2l0aEZyZWUsCisgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBudW1Db21taXR0ZWRQYWdlc0luaXRpYWxseSwKKyAgICAgICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIG51bUNvbW1pdHRlZFBhZ2VzQWZ0ZXJEZWNvbW1pdCwKKyAgICAgICAg
ICAgICAgICAgICAgIHVuc2lnbmVkIG51bUNvbW1pdHRlZFBhZ2VzQWZ0ZXJSZWNvbW1pdCkKK3sK
KyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQoKTsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3No
b3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kID0gMTAwOyAvKiByZXF1ZXN0X3N0b3Agc2hvdWxk
IG5vdCBhY3R1YWxseSBzdG9wLiAqLworCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwcyA9IG5ldyBw
YXNfaGVhcF9yZWZbbnVtSGVhcHNdOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gbnVtSGVhcHM7
IGluZGV4LS07KQorICAgICAgICBoZWFwc1tpbmRleF0gPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJ
QUxJWkVSKG5ldyBibWFsbG9jX3R5cGUoQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDQyLCAyLCAi
dGVzdCIpKSk7CisKKyAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHM7CisgICAgZm9yIChzaXplX3Qg
aW5kZXggPSAwOyBpbmRleCA8IG51bUhlYXBzOyArK2luZGV4KSB7CisgICAgICAgIHZvaWQqIHB0
ciA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlKGhlYXBzICsgaW5kZXgpOworICAgICAgICBDSEVDSyhw
dHIpOworICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRyLCBCTUFMTE9DX0hFQVBf
Q09ORklHKSwKKyAgICAgICAgICAgICAgICAgICAgYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVhcCho
ZWFwcyArIGluZGV4KSk7CisgICAgICAgIG9iamVjdHMucHVzaF9iYWNrKHB0cik7CisgICAgfQor
CisgICAgdW5zaWduZWQqIGhhc1ZpZXdDYWNoZSA9IG5ldyB1bnNpZ25lZFtQQVNfQklUVkVDVE9S
X05VTV9XT1JEUyhudW1IZWFwcyldOworICAgIHVuc2lnbmVkKiBoYXNBbGxvY2F0b3IgPSBuZXcg
dW5zaWduZWRbUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMobnVtSGVhcHMpXTsKKworICAgIGZvciAo
c2l6ZV90IGluZGV4ID0gbnVtSGVhcHM7IGluZGV4LS07KSB7CisgICAgICAgIHBhc19iaXR2ZWN0
b3Jfc2V0KGhhc1ZpZXdDYWNoZSwgaW5kZXgsIGZhbHNlKTsKKyAgICAgICAgcGFzX2JpdHZlY3Rv
cl9zZXQoaGFzQWxsb2NhdG9yLCBpbmRleCwgZmFsc2UpOworICAgIH0KKworICAgIHBhc19oZWFw
X2xvY2tfbG9jaygpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlID0gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgQ0hFQ0soY2FjaGUpOworICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbGF5b3V0Tm9kZTsKKyAgICBmb3IgKFBBU19U
SFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dE5vZGUpKSB7Cisg
ICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9ySW5kZXg7CisgICAgICAgIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlckRhdGE7CisgICAgICAgIHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgIHBhc19oZWFw
KiBoZWFwOworCisgICAgICAgIGFsbG9jYXRvckluZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0Tm9kZSk7CisK
KyAgICAgICAgaWYgKGFsbG9jYXRvckluZGV4ID49IGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBw
ZXJfYm91bmQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAoIXBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKGxheW91dE5vZGUsIGNhY2hlKSkK
KyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHNjYXZlbmdlckRhdGEgPSBzdGF0aWNf
Y2FzdDxwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKj4oCisgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBh
bGxvY2F0b3JJbmRleCkpOworCisgICAgICAgIGRpcmVjdG9yeSA9IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShsYXlvdXROb2RlKTsKKyAgICAgICAgaGVh
cCA9IHBhc19oZWFwX2Zvcl9zZWdyZWdhdGVkX2hlYXAoZGlyZWN0b3J5LT5oZWFwKTsKKworICAg
ICAgICBpZiAoIWhlYXAtPmhlYXBfcmVmKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAg
ICAgaWYgKGhlYXAtPmhlYXBfcmVmID49IGhlYXBzICYmIGhlYXAtPmhlYXBfcmVmIDwgaGVhcHMg
KyBudW1IZWFwcykgeworICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gaGVhcC0+aGVhcF9yZWYg
LSBoZWFwczsKKworICAgICAgICAgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfcmVwcmVzZW50c19hbGxvY2F0b3IobGF5b3V0Tm9kZSkpCisgICAgICAgICAgICAgICAg
cGFzX2JpdHZlY3Rvcl9zZXQoaGFzQWxsb2NhdG9yLCBpbmRleCwgdHJ1ZSk7CisgICAgICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c192aWV3X2NhY2hlKGxheW91dE5vZGUpKTsKKyAgICAg
ICAgICAgICAgICBwYXNfYml0dmVjdG9yX3NldChoYXNWaWV3Q2FjaGUsIGluZGV4LCB0cnVlKTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQ0hFQ0soIXBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5nZXJEYXRhKSk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKKworICAgIGZvciAoc2l6ZV90IGluZGV4
ID0gbnVtSGVhcHM7IGluZGV4LS07KSB7CisgICAgICAgIENIRUNLKHBhc19iaXR2ZWN0b3JfZ2V0
KGhhc1ZpZXdDYWNoZSwgaW5kZXgpKTsKKyAgICAgICAgQ0hFQ0socGFzX2JpdHZlY3Rvcl9nZXQo
aGFzQWxsb2NhdG9yLCBpbmRleCkpOworICAgIH0KKworICAgIENIRUNLX0VRVUFMKG51bUNvbW1p
dHRlZFBhZ2VzSW5UTEMoKSwgbnVtQ29tbWl0dGVkUGFnZXNJbml0aWFsbHkpOworCisgICAgcGFz
X2hlYXBfbG9ja19sb2NrKCk7CisgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXQoKTsKKyAgICBDSEVDSyhjYWNoZSk7CisgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NB
Q0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXROb2RlKSkgeworICAgICAgICBwYXNfYWxs
b2NhdG9yX2luZGV4IGFsbG9jYXRvckluZGV4OworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJEYXRhOworCisgICAgICAgIGFsbG9jYXRvckluZGV4
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4
X2dlbmVyaWMobGF5b3V0Tm9kZSk7CisKKyAgICAgICAgaWYgKGFsbG9jYXRvckluZGV4ID49IGNh
Y2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCisgICAgICAgICAgICBicmVhazsKKwor
ICAgICAgICBzY2F2ZW5nZXJEYXRhID0gc3RhdGljX2Nhc3Q8cGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YSo+KAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9ySW5kZXgpKTsKKworICAgICAg
ICBpZiAoc2hvdWxkU3RvcEFsbG9jYXRvckF0SW5kZXgoYWxsb2NhdG9ySW5kZXgpKQorICAgICAg
ICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKHNjYXZlbmdlckRh
dGEsIHBhc19sb2NrX2xvY2tfbW9kZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICB9CisK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5n
ZV9yZXF1ZXN0X3N0b3BfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsKKyAgICBwYXNfaGVhcF9sb2NrX3Vu
bG9jaygpOworCisgICAgQ0hFQ0tfRVFVQUwobnVtQ29tbWl0dGVkUGFnZXNJblRMQygpLCBudW1D
b21taXR0ZWRQYWdlc0FmdGVyRGVjb21taXQpOworCisgICAgaWYgKGNvbW1pdFdpdGhGcmVlKSB7
CisgICAgICAgIGZvciAodm9pZCogb2JqZWN0IDogb2JqZWN0cykKKyAgICAgICAgICAgIGJtYWxs
b2NfZGVhbGxvY2F0ZShvYmplY3QpOworICAgIH0KKworICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc2hyaW5rKAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSwKKyAg
ICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworCisgICAgZm9yIChzaXplX3QgaW5kZXggPSAw
OyBpbmRleCA8IG51bUhlYXBzOyArK2luZGV4KSB7CisgICAgICAgIHZvaWQqIHB0ciA9IGJtYWxs
b2NfaXNvX2FsbG9jYXRlKGhlYXBzICsgaW5kZXgpOworICAgICAgICBDSEVDSyhwdHIpOworICAg
ICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklHKSwK
KyAgICAgICAgICAgICAgICAgICAgYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVhcChoZWFwcyArIGlu
ZGV4KSk7CisgICAgICAgIGlmIChjb21taXRXaXRoRnJlZSkKKyAgICAgICAgICAgIENIRUNLX0VR
VUFMKHB0ciwgb2JqZWN0c1tpbmRleF0pOworICAgIH0KKworICAgIENIRUNLX0VRVUFMKG51bUNv
bW1pdHRlZFBhZ2VzSW5UTEMoKSwgbnVtQ29tbWl0dGVkUGFnZXNBZnRlclJlY29tbWl0KTsKK30K
Kwordm9pZCB0ZXN0Q2hhb3NUaGVuRGVjb21taXQodW5zaWduZWQgbnVtSGVhcHMsIHVuc2lnbmVk
IHR5cGVTaXplLCB1bnNpZ25lZCBtYXhPYmplY3RzQXRBVGltZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuc2lnbmVkIG1heEZyb21TYW1lSGVhcCwgc2l6ZV90IG1heFNpemUsIHNpemVf
dCBjb3VudCkKK3sKKyAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOwor
ICAgIAorICAgIHBhc19oZWFwX3JlZiogaGVhcFJlZnMgPSBuZXcgcGFzX2hlYXBfcmVmW251bUhl
YXBzXTsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gbnVtSGVhcHM7IGluZGV4LS07KSB7Cisg
ICAgICAgIGhlYXBSZWZzW2luZGV4XSA9IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoCisg
ICAgICAgICAgICBuZXcgYm1hbGxvY190eXBlKEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUih0eXBl
U2l6ZSwgMSwgInRlc3QiKSkpOworICAgIH0KKyAgICAKKyAgICB2ZWN0b3I8dmVjdG9yPHZvaWQq
Pj4gb2JqZWN0czsKKyAgICBzaXplX3QgdG90YWxTaXplID0gMDsKKworICAgIHBhc19oZWFwX3Jl
ZiogaGVhcFJlZiA9IG51bGxwdHI7CisKKyAgICBhdXRvIHNlbGVjdE5leHRIZWFwID0gWyZdICgp
IHsKKyAgICAgICAgaGVhcFJlZiA9IGhlYXBSZWZzICsgZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJl
cihudW1IZWFwcyk7CisgICAgfTsKKworICAgIHNlbGVjdE5leHRIZWFwKCk7CisKKyAgICB3aGls
ZSAoY291bnQtLSkgeworICAgICAgICBpZiAoIW9iamVjdHMuZW1wdHkoKQorICAgICAgICAgICAg
JiYgKHRvdGFsU2l6ZSA+PSBtYXhTaXplCisgICAgICAgICAgICAgICAgfHwgZGV0ZXJtaW5pc3Rp
Y1JhbmRvbU51bWJlcigyKSkpIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZGV0ZXJt
aW5pc3RpY1JhbmRvbU51bWJlcihzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2JqZWN0cy5zaXplKCkp
KTsKKyAgICAgICAgICAgIHZlY3Rvcjx2b2lkKj4gb2JqZWN0c1RvRnJlZSA9IHN0ZDo6bW92ZShv
YmplY3RzW2luZGV4XSk7CisgICAgICAgICAgICBvYmplY3RzW2luZGV4XSA9IHN0ZDo6bW92ZShv
YmplY3RzLmJhY2soKSk7CisgICAgICAgICAgICBvYmplY3RzLnBvcF9iYWNrKCk7CisgICAgICAg
ICAgICBmb3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHNUb0ZyZWUpIHsKKyAgICAgICAgICAgICAg
ICBzaXplX3Qgc2l6ZSA9IGJtYWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZShvYmplY3QpOworICAg
ICAgICAgICAgICAgIENIRUNLX0dSRUFURVJfRVFVQUwodG90YWxTaXplLCBzaXplKTsKKyAgICAg
ICAgICAgICAgICB0b3RhbFNpemUgLT0gc2l6ZTsKKyAgICAgICAgICAgICAgICBibWFsbG9jX2Rl
YWxsb2NhdGUob2JqZWN0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAg
ICAgICAgIHVuc2lnbmVkIG51bU9iamVjdHNOb3cgPSBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVy
KG1heE9iamVjdHNBdEFUaW1lKSArIDE7CisgICAgICAgICAgICB2ZWN0b3I8dm9pZCo+IG9iamVj
dHNOb3c7CisgICAgICAgICAgICB3aGlsZSAobnVtT2JqZWN0c05vdy0tKSB7CisgICAgICAgICAg
ICAgICAgaWYgKCFkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKG1heEZyb21TYW1lSGVhcCkpCisg
ICAgICAgICAgICAgICAgICAgIHNlbGVjdE5leHRIZWFwKCk7CisgICAgICAgICAgICAgICAgdm9p
ZCogcHRyID0gYm1hbGxvY19pc29fYWxsb2NhdGUoaGVhcFJlZik7CisgICAgICAgICAgICAgICAg
Q0hFQ0socHRyKTsKKyAgICAgICAgICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRy
LCBCTUFMTE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBibWFs
bG9jX2hlYXBfcmVmX2dldF9oZWFwKGhlYXBSZWYpKTsKKyAgICAgICAgICAgICAgICBvYmplY3Rz
Tm93LnB1c2hfYmFjayhwdHIpOworICAgICAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBibWFsbG9j
X2dldF9hbGxvY2F0aW9uX3NpemUocHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9i
amVjdHMucHVzaF9iYWNrKHN0ZDo6bW92ZShvYmplY3RzTm93KSk7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQoKTsKKworICAgIGlmICh2ZXJib3NlKQorICAg
ICAgICBjb3V0IDw8ICJSdW5uaW5nIHNjYXZlbmdlci5cbiI7CisgICAgCisgICAgcGFzX3NjYXZl
bmdlcl9ydW5fc3luY2hyb25vdXNseV9ub3coKTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAg
ICBjb3V0IDw8ICJEb25lIHJ1bm5pbmcgc2NhdmVuZ2VyLlxuIjsKKworICAgIENIRUNLX0VRVUFM
KG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwKKyAgICAgICAgICAgICAgICBwYXNfcm91bmRfdXBf
dG9fcG93ZXJfb2ZfMigKKyAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9vZmZzZXRfb2ZfYWxsb2NhdG9yKFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1f
SU5ESUNFUyksCisgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQo
KSkgPj4gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpKTsKKworICAgIHBhc19oZWFw
X2xvY2tfbG9jaygpOworICAgIHBhc19hbGxfaGVhcHNfdmVyaWZ5X2luX3N0ZWFkeV9zdGF0ZSgp
OworICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7Cit9CisKK3ZlY3Rvcjx2b2lkKj4gcHJlcGFy
ZVRvVGVzdERMQ0RlY29tbWl0VGhlblN0dWZmKHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHBh
c19oZWFwX3JlZiogaGVhcHMgPSBuZXcgcGFzX2hlYXBfcmVmW251bUhlYXBzXTsKKyAgICBmb3Ig
KHNpemVfdCBpbmRleCA9IG51bUhlYXBzOyBpbmRleC0tOykKKyAgICAgICAgaGVhcHNbaW5kZXhd
ID0gQk1BTExPQ19IRUFQX1JFRl9JTklUSUFMSVpFUigKKyAgICAgICAgICAgIG5ldyBibWFsbG9j
X3R5cGUoQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDUxMiwgNTEyLCAidGVzdCIpKSk7CisKKyAg
ICB2ZWN0b3I8dm9pZCo+IG9iamVjdHM7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRl
eCA8IG51bUhlYXBzOyArK2luZGV4KSB7CisgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UgPSBu
dWxscHRyOworICAgICAgICBmb3IgKHNpemVfdCBvYmplY3RJbmRleCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfbnVtYmVyX29mX29iamVjdHMoCisgICAgICAgICAgICAgICAgIDUxMiwgQk1BTExPQ19I
RUFQX0NPTkZJRy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9l
eGNsdXNpdmVfcm9sZSk7CisgICAgICAgICAgICAgb2JqZWN0SW5kZXgtLTspIHsKKyAgICAgICAg
ICAgIHZvaWQqIHB0ciA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlKGhlYXBzICsgaW5kZXgpOworICAg
ICAgICAgICAgQ0hFQ0socHRyKTsKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKHBhc19nZXRfaGVh
cChwdHIsIEJNQUxMT0NfSEVBUF9DT05GSUcpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm1h
bGxvY19oZWFwX3JlZl9nZXRfaGVhcChoZWFwcyArIGluZGV4KSk7CisgICAgICAgICAgICBwYXNf
cGFnZV9iYXNlKiBteVBhZ2UgPSBwYXNfZ2V0X3BhZ2VfYmFzZShwdHIsIEJNQUxMT0NfSEVBUF9D
T05GSUcpOworICAgICAgICAgICAgaWYgKCFwYWdlKSB7CisgICAgICAgICAgICAgICAgb2JqZWN0
cy5wdXNoX2JhY2socHRyKTsKKyAgICAgICAgICAgICAgICBwYWdlID0gbXlQYWdlOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobXlQYWdlLCBwYWdlKTsK
KyAgICAgICAgICAgIENIRUNLX0VRVUFMKHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQobXlQYWdlKSwg
cGFzX3NtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX3BhZ2Vfa2luZCk7CisgICAgICAgIH0KKyAg
ICB9CisKKyAgICByZXR1cm4gb2JqZWN0czsKK30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVu
RGVzdHJveUltcGwodW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAgdmVjdG9yPHZvaWQqPiBvYmpl
Y3RzID0gcHJlcGFyZVRvVGVzdERMQ0RlY29tbWl0VGhlblN0dWZmKG51bUhlYXBzKTsKKworICAg
IGZvciAodm9pZCogb2JqZWN0IDogb2JqZWN0cykKKyAgICAgICAgYm1hbGxvY19kZWFsbG9jYXRl
KG9iamVjdCk7CisKKyAgICBDSEVDS19HUkVBVEVSKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwg
MSk7CisgICAgQ0hFQ0socGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2Nh
dGlvbl9sb2dfaW5kZXgpOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBh
c19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24sCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24sCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsK
KworICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgMSk7CisgICAgQ0hF
Q0socGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5k
ZXgpOworfQorCit2b2lkIHRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95KHVuc2lnbmVkIG51bUhl
YXBzKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworCisgICAgdGVzdFRMQ0RlY29t
bWl0VGhlbkRlc3Ryb3lJbXBsKG51bUhlYXBzKTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZGVzdHJveShwYXNfbG9ja19pc19ub3RfaGVsZCk7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29t
bWl0VGhlbkRlc3Ryb3lJblRocmVhZCh1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfc2Nh
dmVuZ2VyX3N1c3BlbmQoKTsKKworICAgIHRocmVhZCBteVRocmVhZCA9IHRocmVhZChbJl0gKCkg
eworICAgICAgICB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwobnVtSGVhcHMpOworICAg
IH0pOworCisgICAgbXlUaHJlYWQuam9pbigpOworfQorCit2b2lkIHRlc3RUTENEZWNvbW1pdFRo
ZW5GbHVzaCh1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQo
KTsKKworICAgIHRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95SW1wbChudW1IZWFwcyk7CisgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfdHJ5X2dldCgpLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Cit9CisKK3ZvaWQg
dGVzdFRMQ0RlY29tbWl0VGhlbkRlYWxsb2NhdGUodW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAg
cGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisKKyAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHMgPSBw
cmVwYXJlVG9UZXN0RExDRGVjb21taXRUaGVuU3R1ZmYobnVtSGVhcHMpOworCisgICAgQ0hFQ0tf
R1JFQVRFUihudW1Db21taXR0ZWRQYWdlc0luVExDKCksIDEpOworICAgIENIRUNLKCFwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCk7CisKKyAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9m
b3JjZV9zdG9wX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2RlYWxsb2NhdG9yX3NjYXZlbmdlX25vX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworCisgICAgZm9yICh2b2lkKiBvYmpl
Y3QgOiBvYmplY3RzKQorICAgICAgICBibWFsbG9jX2RlYWxsb2NhdGUob2JqZWN0KTsKKyAgICBD
SEVDSyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKS0+ZGVhbGxvY2F0aW9uX2xvZ19p
bmRleCk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9n
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7
Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJMRV9C
TUFMTE9DCisKK3ZvaWQgYWRkVExDRGVjb21taXRUZXN0cygpCit7CisjaWYgUEFTX0VOQUJMRV9C
TUFMTE9DCisgICAgRGVjb21taXRaZXJvRmlsbCBkZWNvbW1pdFplcm9GaWxsOworICAgIAorICAg
IFRlc3RTY29wZSB0ZXN0U2NvcGUoCisgICAgICAgICJyYWdlLXRsY3MiLAorICAgICAgICBbXSAo
KSB7CisgICAgICAgICAgICBibWFsbG9jX3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0
b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMgPSAwOworICAgICAgICAgICAg
Ym1hbGxvY190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zv
cl9ub192aWV3X2NhY2hlID0gMDsKKyAgICAgICAgICAgIGJtYWxsb2NfdHlwZWRfcnVudGltZV9j
b25maWcuYmFzZS52aWV3X2NhY2hlX2NhcGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9CisgICAgICAg
ICAgICAgICAgcGFzX2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2Nh
cGFjaXR5OworICAgICAgICB9KTsKKyAgICAKKyAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQo
MTAwMDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPCAxMDAwMDsgfSwgZmFs
c2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgMzAwLCAzMDQpKTsKKyAgICBB
RERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1
cm4gaW5kZXggPCAxMDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NTg4LCAzMDAsIDMwNCkpOworICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10g
KHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA+IDEwMDAwOyB9LCBmYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgNTg4LCA2LCAzMDQpKTsKKyAgICBBRERfVEVTVCh0ZXN0
VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPiAx
MDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTg4LCA2LCAzMDQp
KTsKKyAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBpbmRl
eCkgeyByZXR1cm4gaW5kZXggPCAxMDAwMDA7IH0sIGZhbHNlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA1ODgsIDI1NiwgMzA0KSk7CisgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0
KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgMTAwMDAwOyB9LCB0
cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDI1NiwgMzA0KSk7CisgICAg
QUREX1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0
dXJuIGluZGV4ID4gMTAwMDAwOyB9LCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNTg4LCA1MCwgMzA0KSk7CisgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBb
XSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4ID4gMTAwMDAwOyB9LCB0cnVlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDUwLCAzMDQpKTsKKyAgICBBRERfVEVTVCh0
ZXN0Q2hhb3NUaGVuRGVjb21taXQoMTAwMDAsIDE2LCAxMDAwLCAxMDAsIDQwMDAwMDAwMCwgNTAw
MDAwKSk7CisgICAgQUREX1RFU1QodGVzdENoYW9zVGhlbkRlY29tbWl0KDEwMDAwLCAxNiwgMTAw
MCwgMTAwMDAsIDQwMDAwMDAwMCwgMTAwMDAwMCkpOworICAgIEFERF9URVNUKHRlc3RDaGFvc1Ro
ZW5EZWNvbW1pdCgxMDAwMCwgNTEyLCAxMCwgNTAsIDUwMDAwMDAwMCwgMzAwMDAwMCkpOworICAg
IEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwgNDgsIDEwMCwgMTAwMCwgNjAw
MDAwMDAwLCAzMDAwMDAwKSk7CisgICAgQUREX1RFU1QodGVzdENoYW9zVGhlbkRlY29tbWl0KDEw
MDAwLCA0OCwgMTAwLCAxMDAwMCwgNjAwMDAwMDAwLCAzMDAwMDAwKSk7CisKKyAgICB7CisgICAg
ICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CisgICAgICAgIEFERF9URVNUKHRl
c3RUTENEZWNvbW1pdFRoZW5EZWFsbG9jYXRlKDY2NjYpKTsKKyAgICAgICAgQUREX1RFU1QodGVz
dFRMQ0RlY29tbWl0VGhlbkZsdXNoKDY2NjYpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFRMQ0Rl
Y29tbWl0VGhlbkRlc3Ryb3koNjY2NikpOworICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21t
aXRUaGVuRGVzdHJveUluVGhyZWFkKDY2NjYpKTsKKyAgICB9CisjZW5kaWYgLy8gUEFTX0VOQUJM
RV9CTUFMTE9DCit9CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhh
cm5lc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
ZXN0SGFybmVzcy5jcHAJKHJldmlzaW9uIDI4ODE3OSkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9UZXN0SGFybmVzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDgg
QEAKIAogI2luY2x1ZGUgIlZlcmlmaWVyLmgiCiAjaW5jbHVkZSA8YXRvbWljPgorI2luY2x1ZGUg
ImJtYWxsb2NfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRlICJob3RiaXRfaGVhcF9jb25maWcuaCIK
ICNpbmNsdWRlICJpc29faGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJpc29fdGVzdF9oZWFwX2Nv
bmZpZy5oIgogI2luY2x1ZGUgImppdF9oZWFwLmgiCkBAIC0xMDMsNiArMTA1LDggQEAgUnVudGlt
ZUNvbmZpZ1Rlc3RTY29wZTo6UnVudGltZUNvbmZpZ1RlcwogICAgICAgICAgICAgRk9SX0VBQ0hf
UlVOVElNRV9DT05GSUcoaXNvX3Rlc3QsIHNldFVwKTsKICAgICAgICAgICAgIEZPUl9FQUNIX1JV
TlRJTUVfQ09ORklHKG1pbmFsaWduMzIsIHNldFVwKTsKICAgICAgICAgICAgIEZPUl9FQUNIX1JV
TlRJTUVfQ09ORklHKHBhZ2VzaXplNjRrLCBzZXRVcCk7CisgICAgICAgICAgICBGT1JfRUFDSF9S
VU5USU1FX0NPTkZJRyhibWFsbG9jLCBzZXRVcCk7CisgICAgICAgICAgICBGT1JfRUFDSF9SVU5U
SU1FX0NPTkZJRyhob3RiaXQsIHNldFVwKTsKICAgICAgICAgICAgIHNldFVwKHBhc191dGlsaXR5
X2hlYXBfcnVudGltZV9jb25maWcpOwogICAgICAgICAgICAgc2V0VXAoaml0X2hlYXBfcnVudGlt
ZV9jb25maWcpOwogICAgICAgICB9KQpAQCAtMjU5LDYgKzI2MywxNyBAQCBEaXNhYmxlUGFnZUJh
bGFuY2luZzo6RGlzYWJsZVBhZ2VCYWxhbmNpCiB7CiB9CiAKK0RlY29tbWl0WmVyb0ZpbGw6OkRl
Y29tbWl0WmVyb0ZpbGwoKQorICAgIDogVGVzdFNjb3BlKAorICAgICAgICAiZGVjb21taXQtemVy
by1maWxsIiwKKyAgICAgICAgW10gKCkgeworI2lmIFBBU19PUyhEQVJXSU4pCisgICAgICAgICAg
ICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfemVyb19maWxsID0gdHJ1ZTsKKyNlbmRpZiAvLyBQ
QVNfT1MoREFSV0lOKQorICAgICAgICB9KQoreworfQorCiBuYW1lc3BhY2UgewogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBGdW5jPgpAQCAtMzU0LDEwICszNjksMTIgQEAgdm9pZCBhZGRMYXJnZUZyZWVI
ZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VTaGFyaW5nUG9vbFRlc3RzKCk7CiB2b2lkIGFkZExv
Y2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzKCk7CiB2b2lkIGFkZExvdHNPZkhlYXBzQW5k
VGhyZWFkc1Rlc3RzKCk7Cit2b2lkIGFkZE1lbWFsaWduVGVzdHMoKTsKIHZvaWQgYWRkTWluSGVh
cFRlc3RzKCk7CiB2b2lkIGFkZFBHTVRlc3RzKCk7CiB2b2lkIGFkZFJhY2VUZXN0cygpOwogdm9p
ZCBhZGRSZWRCbGFja1RyZWVUZXN0cygpOwordm9pZCBhZGRUTENEZWNvbW1pdFRlc3RzKCk7CiB2
b2lkIGFkZFRTRFRlc3RzKCk7CiB2b2lkIGFkZFRoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlv
blRlc3RzKCk7CiB2b2lkIGFkZFV0aWxzVGVzdHMoKTsKQEAgLTcxOSwxMCArNzM2LDEyIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICBBRERfU1VJVEUoTGFyZ2VTaGFyaW5n
UG9vbCk7CiAgICAgQUREX1NVSVRFKExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZSk7CiAgICAg
QUREX1NVSVRFKExvdHNPZkhlYXBzQW5kVGhyZWFkcyk7CisgICAgQUREX1NVSVRFKE1lbWFsaWdu
KTsKICAgICBBRERfU1VJVEUoTWluSGVhcCk7CiAgICAgQUREX1NVSVRFKFBHTSk7CiAgICAgQURE
X1NVSVRFKFJhY2UpOwogICAgIEFERF9TVUlURShSZWRCbGFja1RyZWUpOworICAgIEFERF9TVUlU
RShUTENEZWNvbW1pdCk7CiAgICAgQUREX1NVSVRFKFRTRCk7CiAgICAgQUREX1NVSVRFKFV0aWxz
KTsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVz
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFy
bmVzcy5oCShyZXZpc2lvbiAyODgxNzkpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvVGVzdEhhcm5lc3MuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTg0LDYgKzg0LDEyIEBAIGlubGlu
ZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3QKICAgICByZXR1cm4gb3V0OwogfQog
CitpbmxpbmUgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3V0LCBwYXNf
cGFnZV9raW5kIGtpbmQpCit7CisgICAgb3V0IDw8IHBhc19wYWdlX2tpbmRfZ2V0X3N0cmluZyhr
aW5kKTsKKyAgICByZXR1cm4gb3V0OworfQorCiAjZGVmaW5lIENIRUNLKGV4cHJlc3Npb24pIGRv
IHsgXAogICAgICAgICBpZiAoKGV4cHJlc3Npb24pKSBcCiAgICAgICAgICAgICBicmVhazsgXApA
QCAtMjk1LDYgKzMwMSwxMSBAQCBwdWJsaWM6CiAgICAgRGlzYWJsZVBhZ2VCYWxhbmNpbmcoKTsK
IH07CiAKK2NsYXNzIERlY29tbWl0WmVyb0ZpbGwgOiBwdWJsaWMgVGVzdFNjb3BlIHsKK3B1Ymxp
YzoKKyAgICBEZWNvbW1pdFplcm9GaWxsKCk7Cit9OworCiBib29sIGhhc1Njb3BlKGNvbnN0IHN0
ZDo6c3RyaW5nJiBmaWx0ZXIpOwogCiB2b2lkIGR1bXBPYmplY3RTZXQoY29uc3Qgc3RkOjpzZXQ8
dm9pZCo+JiBvYmplY3RzKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
aGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlv
blRlc3RzLmNwcAkocmV2aXNpb24gMjg4MTc5KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzIwOSw3ICszMjA5LDcgQEAgdm9pZCBhZGRBbGxUZXN0cygpCiAgICAgewogICAg
ICAgICBUZXN0U2NvcGUgdGVzdFNjb3BlKAogICAgICAgICAgICAgIm9ubHktc21hbGwiLAotICAg
ICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgIFtdICgpIHsKICAgICAgICAgICAgICAgICBw
YXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfdmFyaWFudF9pc19lbmFibGVkX292ZXJy
aWRlID0gZmFsc2U7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgCkBAIC0zMjE5LDcgKzMyMTks
NyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICB7CiAgICAgICAgIFRlc3RTY29wZSB0ZXN0U2Nv
cGUoCiAgICAgICAgICAgICAic21hbGwtYW5kLW1lZGl1bSIsCi0gICAgICAgICAgICBbJl0gKCkg
eworICAgICAgICAgICAgW10gKCkgewogICAgICAgICAgICAgfSk7CiAgICAgICAgIAogICAgICAg
ICBhZGRBbGxUZXN0c0ltcGwoKTsK
</data>
<flag name="commit-queue"
          id="475546"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449637</attachid>
            <date>2022-01-20 20:19:24 -0800</date>
            <delta_ts>2022-02-10 09:49:06 -0800</delta_ts>
            <desc>updated patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>289271</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0OSBAQAorMjAyMi0wMS0xOCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIGl0IHNob3VsZCBi
ZSBwb3NzaWJsZSB0byBkZWNvbW1pdCB1bnVzZWQgcGFydHMgb2YgYSB0aHJlYWRfbG9jYWxfY2Fj
aGUgKHVwZGF0ZSB0byA0MzQ0NjViZmI4ZTBjMjg1ZDY3NjNjZjZhYTBlMDQ5ODIxOTlmODI0KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTGlicGFzIHVz
ZXMgVExDcyAodGhyZWFkX2xvY2FsX2NhY2hlcykgZm9yIGFsbG9jYXRpb24gYW5kIGRlYWxsb2Nh
dGlvbi4gRWFjaCBzaXplIGNsYXNzIGluIGVhY2ggaGVhcAorICAgICAgICBnZXRzIGEgbG9jYWwg
YWxsb2NhdG9yIGFuZCBwb3NzaWJseSBhIGxvY2FsIHZpZXcgY2FjaGUuIEJvdGggbG9jYWwgYWxs
b2NhdG9ycyBhbmQgbG9jYWwgdmlldyBjYWNoZXMKKyAgICAgICAgY2FuIGdldCBxdWl0ZSBsYXJn
ZSAoMTAwcyBvZiBieXRlcykuIFNvLCBpZiB5b3UgdHJ5IHRvIHN1cHBvcnQgZnVsbCBpc29oZWFw
cyAoYnVnIDIzMTkzOCksIHlvdSBlbmQgdXAKKyAgICAgICAgd2l0aCBnaW5vcm1vdXMgVExDcyBh
bmQgdGhhdCBhY2NvdW50cyBmb3IgYSBsb3Qgb2YgdGhlIG1lbW9yeSBvdmVyaGVhZCBvZiBmdWxs
IGlzb2hlYXBzLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHRha2VzIGEgYmlnIGJpdGUgb3V0IG9m
IHRoYXQgb3ZlcmhlYWQgYnkgZW5hYmxpbmcgZGVjb21taXQgb2YgVExDIHBhZ2VzOgorCisgICAg
ICAgIC0gQW55IHBhZ2Ugd2l0aGluIGEgVExDIHRoYXQgaGFzIG5vdGhpbmcgYnV0IHN0b3BwZWQg
YWxsb2NhdG9ycyAob3IgdmlldyBjYWNoZXM7IEknbGwganVzdCBzYXkKKyAgICAgICAgICAiYWxs
b2NhdG9ycyIgdG8gbWVhbiBib3RoICJsb2NhbCBhbGxvY2F0b3JzIiBhbmQgImxvY2FsIHZpZXcg
Y2FjaGVzIiwgYXMgSSBkbyBpbiB0aGUgY29kZSkgY2FuIGdldAorICAgICAgICAgIGRlY29tbWl0
dGVkIGJ5IHRoZSBzY2F2ZW5nZXIuCisKKyAgICAgICAgLSBUTEMgcGFnZSBkZWNvbW1pdCBqdXN0
IHJlcXVpcmVzIGhvbGRpbmcgdGhlIFRMQydzIHNjYXZlbmdlcl9sb2NrIChmb3JtZXJseSBrbm93
biBhcyB0aGUKKyAgICAgICAgICBsb2dfZmx1c2hfbG9jaykgYW5kIHRoZSBoZWFwX2xvY2suIFlv
dSBkb24ndCBoYXZlIHRvIHN1c3BlbmQgdGhlIHRocmVhZCAoYnV0IHN1c3BlbnNpb24gY291bGQg
aGF2ZQorICAgICAgICAgIGJlZW4gdXNlZCB0byBzdG9wIHRoZSBhbGxvY2F0b3IsIGFzIGJlZm9y
ZSkuCisKKyAgICAgICAgLSBBdHRlbXB0cyB0byBhbGxvY2F0ZSB1c2luZyBhbiBhbGxvY2F0b3Ig
aW4gYSBkZWNvbW1pdHRlZCBwYWdlIGFyZSBndWFyYW50ZWVkIHRvIGdvIGRvd24gYSBzbG93Cisg
ICAgICAgICAgcGF0aCB0aGF0IGNvbW1pdHMgdGhlIHBhZ2UgYW5kIHJlbWF0ZXJpYWxpemVzIHRo
ZSBhbGxvY2F0b3IuCisKKyAgICAgICAgLSBUaGlzIGRvZXNuJ3QgcmVxdWlyZSBhbnkgcGFnZSBh
bGlnbm1lbnQgb2YgYWxsb2NhdG9ycy4gQWxsb2NhdG9ycyBjYW4gc3RyYWRkbGUgcGFnZXMuCisK
KyAgICAgICAgVGhpcyBzZWVtcyB0byBiZSBwZXJmLW5ldXRyYWwgb24gdHJ1bmsuIEl0IG9mZmVy
cyBhIH4xLjUlIG1lbW9yeSBpbXByb3ZlbWVudCBmb3IgYnVnIDIzMTkzOC4KKworICAgICAgICAq
IGJtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvbGli
cGFzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvYm1hbGxvY19oZWFwLmM6CisgICAgICAgIChibWFsbG9jX2ZsZXhfaGVhcF9yZWZfZ2V0X2hl
YXApOgorICAgICAgICAoYm1hbGxvY19hdXhpbGlhcnlfaGVhcF9yZWZfZ2V0X2hlYXApOgorICAg
ICAgICAoYm1hbGxvY19nZXRfaGVhcCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1h
bGxvY19oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2Nv
bmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5jOgor
ICAgICAgICAoaml0X2FsaWduZWRfYWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9taW5h
bGlnbjMyX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbnN0cnVj
dCk6CisgICAgICAgIChwYXNfYml0Zml0X2FsbG9jYXRvcl9zdG9wKToKKyAgICAgICAgKHBhc19i
aXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2Nh
dG9yX2ZpbmlzaF9mYWlsaW5nKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRf
YWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3Rv
cnkuYzoKKyAgICAgICAgKHBhc19iaXRmaXRfZGlyZWN0b3J5X3Rha2VfbGFzdF9lbXB0eSk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmg6
CisgICAgICAgIChwYXNfYml0Zml0X3BhZ2VfYWxsb2NhdGlvbl9jb21taXRfZ3JhbnVsZXNfb3Jf
cmVsb29wKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uYzoK
KyAgICAgICAgKHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QpOgorICAgICAgICAoY29tbWl0KToK
KyAgICAgICAgKHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkX2FuZF9jb21taXQpOgorICAg
ICAgICAoZGVjb21taXQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRf
c3Bhbi5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNf
dmVjdG9yLmM6IEFkZGVkLgorICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY29u
c3RydWN0KToKKyAgICAgICAgKHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rlc3RydWN0KToK
KyAgICAgICAgKHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2NvbW1pdHRlZCk6Cisg
ICAgICAgIChwYXNfY291bnRfY29tbWl0dGVkX3BhZ2VzKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oOiBBZGRlZC4KKyAgICAgICAgKHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2lzX2NvbW1pdHRlZCk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOiBB
ZGRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9u
X3JhbmdlLmg6IEFkZGVkLgorICAgICAgICAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9p
c19lbXB0eSk6CisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2NvbnRp
Z3VvdXMpOgorICAgICAgICAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRl
ZCk6CisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2NyZWF0ZV9pbnZlcnRl
ZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlZmVycmVkX2RlY29tbWl0X2xv
Zy5jOgorICAgICAgICAoZGVjb21taXRfYWxsKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuYzoKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9y
eV9zdGF0ZV92ZXJzaW9uX25leHQpOgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X2Nv
bnN0cnVjdCk6CisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29tbWl0X2lmX25lY2Vz
c2FyeSk6CisgICAgICAgIChzY2F2ZW5nZV9pbXBsKToKKyAgICAgICAgKHBhc19leHBlbmRhYmxl
X21lbW9yeV9zY2F2ZW5nZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVu
ZGFibGVfbWVtb3J5Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2ZyZWVfZ3Jh
bnVsZXMuYzoKKyAgICAgICAgKHBhc19mcmVlX2dyYW51bGVzX2RlY29tbWl0X2FmdGVyX2xvY2tp
bmdfcmFuZ2UpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmM6CisgICAg
ICAgIChwYXNfaGVhcF9nZXRfdHlwZV9zaXplKToKKyAgICAgICAgKHBhc19oZWFwX2dldF90eXBl
X2FsaWdubWVudCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuaDoKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuYzoKKyAgICAgICAgKHBhc19o
ZWFwX2NvbmZpZ191dGlsc19hbGxvY2F0ZV9hbGlnbmVkKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfaGVhcF9yZWYuYzoKKyAgICAgICAgKHBhc19lbnN1cmVfaGVhcF9zbG93KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRf
bG9nLmM6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2df
Y29uc3RydWN0KToKKyAgICAgICAgKHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0
X2xvZ19kZXN0cnVjdCk6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2Nv
bW1pdF9sb2dfYWRkKToKKyAgICAgICAgKGNvbW1pdCk6CisgICAgICAgIChjb21taXRfYWxsKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2cuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJl
ZV9oZWFwX2hlbHBlcnMuYzoKKyAgICAgICAgKGxhcmdlX3V0aWxpdHlfYWxpZ25lZF9hbGxvY2F0
b3IpOgorICAgICAgICAocGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzX3RyeV9hbGxvY2F0ZV93
aXRoX2FsaWdubWVudCk6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfZGVh
bGxvY2F0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYzoK
KyAgICAgICAgKGFsbG9jYXRlX2ltcGwpOgorICAgICAgICAocGFzX2xhcmdlX2hlYXBfdHJ5X2Rl
YWxsb2NhdGUpOgorICAgICAgICAocGFzX2xhcmdlX2hlYXBfdHJ5X3Nocmluayk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5n
X2NhY2hlLmM6CisgICAgICAgIChsYXJnZV9hbGlnbmVkX2FsbG9jYXRvcik6CisgICAgICAgIChw
YXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGVfdHJ5X2FsbG9jYXRlX3dp
dGhfYWxpZ25tZW50KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVh
cF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmM6CisgICAgICAgIChjcmVhdGVfbm9kZSk6Cisg
ICAgICAgIChjcmVhdGVfYW5kX2luc2VydCk6CisgICAgICAgIChib290X3RyZWUpOgorICAgICAg
ICAoc3RhdGVzX21hdGNoKToKKyAgICAgICAgKHNwbGl0X25vZGVfYW5kX2dldF9yaWdodF9pbXBs
KToKKyAgICAgICAgKHRyeV9zcGxhdF9pbXBsKToKKyAgICAgICAgKHRyeV9zcGxhdCk6CisgICAg
ICAgIChzcGxhdCk6CisgICAgICAgIChwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSk6
CisgICAgICAgIChwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUpOgorICAgICAgICAocGFzX2xh
cmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KToKKyAgICAgICAgKHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZGVjb21taXRfbGVhc3RfcmVjZW50bHlfdXNlZCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmg6IEFkZGVkLgorICAgICAg
ICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKToKKyAgICAgICAgKHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX2NyZWF0ZV9lbXB0eSk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9nZXRfcmFuZ2UpOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfaXNfZW1w
dHkpOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZSk6CisgICAgICAgIChw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9vdmVybGFwcyk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaDogQWRkZWQuCisgICAgICAg
IChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jb21wYXJlX2JlZ2luKToKKyAgICAgICAgKHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX2dldF9pbmRleCk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZV9zZXRfaW5kZXgpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3IuYzoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSk6CisgICAgICAgIChzdG9wX2ltcGwp
OgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeV9pbXBsKToKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeSk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFydGlhbF92aWV3X2JlZm9yZV9zdG9wcGluZyk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvbmZpZyk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zZWdyZWdh
dGVkX3Nsb3dfaW1wbCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0
ZV9vdXRfb2ZfbGluZV9jYXNlcyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9h
bGxvY2F0ZV9zbG93X2ltcGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZC5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2dl
dF9zdHJpbmcpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2lzX3N0b3BwZWQp
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYzoKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
aXNfc3RvcHBlZCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX3N0b3ApOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9wcmVwYXJlX3RvX2RlY29tbWl0KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYzoKKyAgICAgICAg
KHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdCk6CisgICAgICAgIChwYXNfbG9jYWxfdmll
d19jYWNoZV9tb3ZlKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3ApOgorICAg
ICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfZGlkX3Jlc3RhcnQpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmg6CisgICAgICAgIChwYXNfbG9jYWxf
dmlld19jYWNoZV9nZXRfc3RhdGUpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0
X3N0YXRlKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwpOgorICAgICAg
ICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfY2FuX3B1c2gpOgorICAgICAgICAocGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfaXNfZW1wdHkpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFy
ZV90b19wb3ApOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wdXNo
KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3BvcCk6CisgICAgICAgIChwYXNfbG9j
YWxfdmlld19jYWNoZV9wdXNoKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
ay5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaDog
QWRkZWQuCisgICAgICAgIChwYXNfbW1hcF9jYXBhYmlsaXR5X2dldF9zdHJpbmcpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5jOgorICAgICAgICAocGFzX3Bh
Z2VfbWFsbG9jX2FsaWdubWVudF9zbG93KToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19hbGln
bm1lbnRfc2hpZnRfc2xvdyk6CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKToK
KyAgICAgICAgKGNvbW1pdF9pbXBsKToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19jb21taXQp
OgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0KToKKyAg
ICAgICAgKGRlY29tbWl0X2ltcGwpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0
KToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF93aXRob3V0X21wcm90ZWN0KToK
KyAgICAgICAgKHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9hc3ltbWV0cmljKTogRGVsZXRlZC4K
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmM6CisgICAgICAgIChoYW5kbGVfZXhw
ZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAoc2NhdmVuZ2VyX3RocmVhZF9tYWluKToKKyAgICAg
ICAgKHBhc19zY2F2ZW5nZXJfZGVjb21taXRfZXhwZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAo
cGFzX3NjYXZlbmdlcl9mYWtlX2RlY29tbWl0X2V4cGVuZGFibGVfbWVtb3J5KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2NhdmVuZ2VyLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYzoKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19pbmxpbmVzLmg6CisgICAg
ICAgIChwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19ub3RlX2VsaWdpYmlsaXR5KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmM6CisgICAgICAg
IChtZWRpdW1fZGlyZWN0b3J5X3R1cGxlX2Zvcl9pbmRleF9pbXBsKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZV9mb3JfaW5kZXgpOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fYWxsb2NhdG9yX2luZGV4X2Zvcl9pbmRleCk6
CisgICAgICAgIChyZWNvbXB1dGVfc2l6ZV9sb29rdXApOgorICAgICAgICAocmVtYXRlcmlhbGl6
ZV9zaXplX2xvb2t1cF9zZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSk6CisgICAgICAgIChwYXNf
c2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9hbGxvY2F0b3JfaW5kZXgpOgorICAgICAgICAoY2hlY2tf
c2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9zZXRfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSk6Cisg
ICAgICAgIChjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2R1bXBfZGlyZWN0b3J5KToK
KyAgICAgICAgKGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb24pOgorICAgICAgICAoY2hl
Y2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbl9pZl9hcHByb3ByaWF0ZSk6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yeV9mb3Jfc2l6ZSk6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5oOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oOgorICAgICAg
ICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF90b3VjaF9sb29rdXBfdGFibGVzKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmM6CisgICAgICAgIChwYXNfc2Vn
cmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseSk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbW1pdF9mdWxseSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9wYWdlX2xvZ19v
cl9kZWFsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9wYXJ0aWFsX3ZpZXcuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19j
cmVhdGUpOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYzoKKyAgICAg
ICAgKHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3X2NvbW1pdF9wYWdlKToKKyAgICAgICAgKGNvbXB1dGVfc3VtbWFyeSk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jOgor
ICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5Lmg6CisgICAgICAgIChw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9nZXRfdGxjX2FsbG9jYXRvcl9pbmRleCk6Cisg
ICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3Jf
aW5saW5lcy5oOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfdmlld193aWxsX3N0YXJ0X2FsbG9j
YXRpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIu
YzoKKyAgICAgICAgKGR1bXBfbGFyZ2Vfc2hhcmluZ19wb29sX25vZGVfY2FsbGJhY2spOgorICAg
ICAgICAocGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3ZpZXdfc3RhdHMpOgorICAgICAgICAoYWxs
b2NhdG9yX3N0YXRlKToKKyAgICAgICAgKGR1bXBfYWxsb2NhdG9yX3N0YXRlKToKKyAgICAgICAg
KGR1bXBfc2NhdmVuZ2VyX2RhdGFfc3RhdGUpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX2Jhc2VsaW5lX2FsbG9jYXRvcnMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX3RocmVhZF9sb2NhbF9jYWNoZXMpOgorICAgICAgICAocGFzX3N0YXR1c19yZXBvcnRl
cl9kdW1wX2V2ZXJ5dGhpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0
dXNfcmVwb3J0ZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2Fs
bG9jYXRvcl9pbmRleF9jYXBhY2l0eSk6CisgICAgICAgIChudW1fcGFnZXMpOgorICAgICAgICAo
Y29tcHV0ZV9wYWdlX2luZGljZXMpOgorICAgICAgICAocGFnZXNfY29tbWl0dGVkX3NpemUpOgor
ICAgICAgICAoZGVhbGxvY2F0ZSk6CisgICAgICAgIChhbGxvY2F0ZV9jYWNoZSk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NyZWF0ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2Rlc3Ryb3kpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRf
bG9jYWxfYWxsb2NhdG9yX3Nsb3cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9p
c19jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jb21wdXRlX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2Vuc3VyZV9jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9hbGxv
Y2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyk6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRpb25f
bG9nX3dpdGhvdXRfcmVzZXR0aW5nKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2df
Zm9yX3NjYXZlbmdlcik6CisgICAgICAgIChmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhfbW9k
ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9s
b2cpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25f
bG9nX2RpcmVjdCk6CisgICAgICAgIChzdXNwZW5kKToKKyAgICAgICAgKHJlc3VtZSk6CisgICAg
ICAgIChkZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UpOgorICAgICAgICAoc3RvcF9hbGxvY2F0b3Ip
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKToKKyAgICAgICAgKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlv
bl9sb2cpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGUuaDoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29m
X2FsbG9jYXRvcik6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXQuYzoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2FkZF9ub2RlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9u
b2RlX2Zvcl9pbmRleCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXQuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0ZV9lbXB0eSk6CisgICAgICAgIChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9jcmVhdGVfZGVsZXRlZCk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVk
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2lzX2VtcHR5
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2lzX2RlbGV0
ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfZ2V0X2tl
eSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfZ2V0X2hhc2gp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5X2lzX2VxdWFsKToK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251
bV9hbGxvY2F0b3JfaW5kaWNlcyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfbW92ZSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyk6IERl
bGV0ZWQuCisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0
cnVjdCk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9ub2RlX2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9pbnRy
aW5zaWNfaW1wbF9jYXN1YWxfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJp
bnNpY19pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZS5oOgorICAgICAgICAocGFzX3RyeV9hbGxvY2F0ZV9wcmlt
aXRpdmVfaW1wbF9jYXN1YWxfY2FzZSk6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9pbXBsX2lubGluZV9vbmx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dXRpbGl0eV9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmg6
CisgICAgICAgIChwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUpOgorICAgICAgICAocGFzX3ZpcnR1
YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvRXhwZW5k
YWJsZU1lbW9yeVRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6dGVzdFJhZ2UpOgorICAgICAgICAo
c3RkOjp0ZXN0UmVtYXRlcmlhbGl6ZUFmdGVyU2VhcmNoT2ZEZWNvbW1pdHRlZCk6CisgICAgICAg
IChzdGQ6OnRlc3RCYXNpY1NpemVDbGFzcyk6CisgICAgICAgIChhZGRFeHBlbmRhYmxlTWVtb3J5
VGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMu
Y3BwOgorICAgICAgICAoc3RkOjp0ZXN0R29vZENvYWxlc2NlRXBvY2hVcGRhdGUpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChh
ZGRNZW1hbGlnblRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRU
ZXN0cy5jcHA6IEFkZGVkLgorICAgICAgICAoc3RkOjpudW1Db21taXR0ZWRQYWdlc0luVExDKToK
KyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0KToKKyAgICAgICAgKHN0ZDo6dGVzdENoYW9z
VGhlbkRlY29tbWl0KToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJ
bXBsKToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3kpOgorICAgICAg
ICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUluVGhyZWFkKToKKyAgICAgICAgKHN0
ZDo6dGVzdFRMQ0RlY29tbWl0VGhlbkZsdXNoKToKKyAgICAgICAgKHN0ZDo6dGVzdFRMQ0RlY29t
bWl0VGhlbkRlYWxsb2NhdGUpOgorICAgICAgICAoYWRkVExDRGVjb21taXRUZXN0cyk6CisgICAg
ICAgICogbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcDoKKyAgICAgICAgKFJ1bnRpbWVD
b25maWdUZXN0U2NvcGU6OlJ1bnRpbWVDb25maWdUZXN0U2NvcGUpOgorICAgICAgICAoRGVjb21t
aXRaZXJvRmlsbDo6RGVjb21taXRaZXJvRmlsbCk6CisgICAgICAgIChtYWluKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaDoKKyAgICAgICAgKG9wZXJhdG9yPDwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25U
ZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OmFkZEFsbFRlc3RzKToKKwogMjAyMi0wMS0yMCAgRmls
aXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIFtsaWJwYXNdIG1lZGl1bSBk
aXJlY3RvcnkgbG9va3VwIHNob3VsZCBiYWlsIGlmIGJlZ2luX2luZGV4IGlzIHplcm8gdG8gY2F0
Y2ggcmFjZXMgd2l0aCBleHBlbmRhYmxlIG1lbW9yeSBkZWNvbW1pdCAoY2hlcnJ5IHBpY2sgNDM0
NDY1YmZiOGUwYzI4NWQ2NzYzY2Y2YWEwZTA0OTgyMTk5ZjgyNCkKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4
ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkod29ya2luZyBjb3B5KQpAQCAtNjA2LDYgKzYwNiwxNCBAQAogCQkxNEYyNzFDNTE4RUEzOTdF
MDA4QzE1MkYgLyogRGVhbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTQ1RjY4NTkxNzlEQzkwMjAwRDY1NTk4IC8qIERlYWxsb2NhdG9y
LmNwcCAqLzsgfTsKIAkJMTRGMjcxQzcxOEVBMzk5MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREQTMyMEUxODg3NUQ5
RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9OwogCQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1MkYg
LyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEwNkUgLyogT2JqZWN0VHlwZS5jcHAgKi87IH07
CisJCTJDMDlEOEMxMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jh
bmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5
RDhCOTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDMDlEOEMy
Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkEyNzk3
QzZFOTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi87IH07
CisJCTJDMDlEOEMzMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4
QkIyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggKi87IH07
CisJCTJDMDlEOEM0Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rv
ci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4
QkMyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi87IH07
CisJCTJDMDlEOEM1Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkQy
Nzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggKi87IH07CisJCTJD
MDlEOEM2Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCRTI3OTdDNkVBMDA1
QUExNUMgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDMDlEOEM3Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkYyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggKi87IH07CisJCTJDMDlEOEM4Mjc5N0M2
RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMDlEOEMw
Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUuaCAqLzsgfTsKIAkJMkMxMUU4OTUyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlw
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4
OTIyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJDMTFFODk2MjcyOERFMjcwMDIxNjJEMCAv
KiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJDMTFFODkzMjcyOERFMjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyAqLzsgfTsK
IAkJMkMxMUU4OTcyNzI4REUyNzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTQyNzI4REUyNzAw
MjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICovOyB9OwpAQCAtMTI2OSw2ICsxMjc3LDE0IEBA
CiAJCTE0REEzMjBDMTg4NzVCMDkwMDcyNjlFMCAvKiBIZWFwLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IEhlYXAuaDsgcGF0aCA9IGJtYWxsb2MvSGVhcC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxNERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBIZWFwLmNwcDsgcGF0aCA9IGJt
YWxsb2MvSGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0RjI3MUJFMThF
QTM5NjMwMDhDMTUyRiAvKiBsaWJibWFsbG9jLmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0
aCA9IGxpYmJtYWxsb2MuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJ
MkMwOUQ4QjkyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2RlY29tbWl0X2V4Y2x1c2lv
bl9yYW5nZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlY29tbWl0X2V4Y2x1c2lv
bl9yYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhCQTI3OTdDNkU5
MDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAu
aDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9o
ZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJCMjc5N0M2RTkwMDVB
QTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oOyBwYXRoID0gbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkMyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0
dGVkX3BhZ2VzX3ZlY3Rvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhC
RDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaDsgcGF0aCA9
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJFMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9j
YXBhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19tbWFwX2Nh
cGFiaWxpdHkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHku
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkYyNzk3QzZFQTAwNUFBMTVD
IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg7
IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9l
bnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhDMDI3OTdDNkVBMDA1
QUExNUMgLyogcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJDMTFFODkyMjcyOERFMjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gYm1hbGxvY190eXBlLmg7IHBhdGggPSBsaWJwYXMv
c3JjL2xpYnBhcy9ibWFsbG9jX3R5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkMxMUU4OTMyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmM7IG5hbWUgPSBibWFsbG9jX3R5cGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL2JtYWxsb2NfdHlwZS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzExRTg5
NDI3MjhERTI3MDAyMTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuYzsgbmFtZSA9IHBhc19zaW1wbGVfdHlwZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NpbXBsZV90eXBlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTIy
LDYgKzE1MzgsOCBAQAogCQkJCTBGQzQwOUI0MjQ1MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29tbWl0
X21vZGUuaCAqLywKIAkJCQkwRjg3RkZDQTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbW1pdF9z
cGFuLmMgKi8sCiAJCQkJMEY4N0ZGQTMyNUFGODk3OTAwMEUxQUJGIC8qIHBhc19jb21taXRfc3Bh
bi5oICovLAorCQkJCTJDMDlEOEJDMjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3Rvci5jICovLAorCQkJCTJDMDlEOEJCMjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfY29t
bWl0dGVkX3BhZ2VzX3ZlY3Rvci5oICovLAogCQkJCTBGNzU0OTgxMjQ4Njk3M0MwMDJBNEM3RCAv
KiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0ci5oICovLAogCQkJCTBGODdG
RkE4MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyLmggKi8sCiAJCQkJMEY1RkU3Q0IyNUI2MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0
X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8sCkBAIC0xNTY3LDYgKzE1
ODUsNyBAQAogCQkJCTBGQzQwOTcxMjQ1MTQ5NUUwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdn
ZWRfcHRyLmggKi8sCiAJCQkJMEZDNDA5OUYyNDUxNDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0
X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkyQ0UyQUU1MTI3Njk5MjgyMDBEMDJCQkMg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRyLmggKi8sCisJCQkJMkMwOUQ4QzAyNzk3QzZF
QTAwNUFBMTVDIC8qIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5o
ICovLAogCQkJCTBGQzQwOTlBMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfY29tcGFjdF91bnNpZ25l
ZF9wdHIuaCAqLywKIAkJCQkwRkM0MDk3OTI0NTE0OTVGMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVf
c3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8sCiAJCQkJMEZDNDA5QjMyNDUxNDk2MjAwODc2
REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oICovLApAQCAtMTU4
Miw2ICsxNjAxLDcgQEAKIAkJCQkwRjM3M0U1MzI2NTlFQTcwMDAzNEJBOTYgLyogcGFzX2RlYnVn
X2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDNDI2NUYxODBDMDA1QTU3MjAgLyogcGFzX2RlYnVnX3Nw
ZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzUyNjVGMTgwQzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19z
cGVjdHJ1bS5oICovLAorCQkJCTJDMDlEOEI5Mjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfZGVjb21t
aXRfZXhjbHVzaW9uX3JhbmdlLmggKi8sCiAJCQkJMEZDNDA5QjkyNDUxNDk2MzAwODc2REEwIC8q
IHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYyAqLywKIAkJCQkwRkM0MDlBMDI0NTE0OTYxMDA4
NzZEQTAgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5oICovLAogCQkJCTBGOEU4MzJCMjQ5
MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRlZF9pbnRyaW5zaWNfaGVhcF9pbmxpbmVzLmgg
Ki8sCkBAIC0xNzA5LDYgKzE3MjksOCBAQAogCQkJCTBGQzQwQTFEMjQ1MTQ5ODQwMDg3NkRBMCAv
KiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCiAJCQkJMEZDNDBBQTMyNDUxNDk4RTAwODc2
REEwIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGQzQwQUYxMjQ1
MTQ5OTMwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKKwkJCQky
QzA5RDhCQTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hl
YXAuaCAqLywKKwkJCQkyQzA5RDhCRDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2UuaCAqLywKIAkJCQkyQzk3MUQwMDI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmll
bnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovLAogCQkJCTJDOTcxRDAxMjc4RTc5ODcwMEM5RTEy
OSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovLAogCQkJCTJDOTcxRDAzMjc4RTc5ODcw
MEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovLApAQCAtMTcz
OSw2ICsxNzYxLDcgQEAKIAkJCQkwRkM0MEE4MTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX21lZ2Fw
YWdlX2NhY2hlLmMgKi8sCiAJCQkJMEZDNDBBMjUyNDUxNDk4NTAwODc2REEwIC8qIHBhc19tZWdh
cGFnZV9jYWNoZS5oICovLAogCQkJCTBGQzQwQTdFMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWlu
X2hlYXAuaCAqLywKKwkJCQkyQzA5RDhCRTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX21tYXBfY2Fw
YWJpbGl0eS5oICovLAogCQkJCTBGQzQwQThGMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfbW9ub3Rv
bmljX3RpbWUuYyAqLywKIAkJCQkwRkM0MEE3MTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX21vbm90
b25pY190aW1lLmggKi8sCiAJCQkJMEZDNDBBRDIyNDUxNDk5MTAwODc2REEwIC8qIHBhc19tdXRh
dGlvbl9jb3VudC5oICovLApAQCAtMTg4MCw2ICsxOTAzLDcgQEAKIAkJCQkwRkM0MEFCOTI0NTE0
OThGMDA4NzZEQTAgLyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzQwQTk1MjQ1MTQ5OEQwMDg3
NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzQwQTNGMjQ1MTQ5ODcwMDg3
NkRBMCAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovLAorCQkJCTJDMDlEOEJGMjc5N0M2RUEwMDVB
QTE1QyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oICovLAogCQkJCTBG
N0M5MkQ4MjZFNTdGNzUwMDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaCAqLywKIAkJCQkwRjhFODMyNzI0OTJFQUYzMDA0NkQ3RjggLyogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jICovLAogCQkJCTBGOEU4MzI4MjQ5MkVBRjMwMDQ2
RDdGOCAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCkBAIC0yMjEz
LDYgKzIyMzcsNyBAQAogCQkJCUUzMjhEODREMjNDRUIzODkwMDU0NUIxOCAvKiBQYWNrZWQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMThGODRDMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0
a19oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4Rjg0ODI1QzM0Njc3MDA3MjFDMkEgLyog
cGFnZXNpemU2NGtfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDMDlEOEM4Mjc5
N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOTVBMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNf
YWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NUIy
NDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbmVkX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5NjAyNDUxNDk0NDAwODc2REEwIC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFk
ZXJzICovLApAQCAtMjI2Myw2ICsyMjg4LDcgQEAKIAkJCQkwRkM0MDlFODI0NTE0OTY0MDA4NzZE
QTAgLyogcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGQzQwOUQwMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2Rl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEExNjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Nh
cnRlc2lhbl90cmVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhDMTI3OTdDNkVBMDA1QUEx
NUMgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBBMEQyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb2FsaWduLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkM0MEEwQTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NvbW1pdF9tb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3RkZEQTI1QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFu
LmggaW4gSGVhZGVycyAqLywKQEAgLTIzMTMsNiArMjMzOSw3IEBACiAJCQkJMEZDNDA5RkUyNDUx
NDk2NDAwODc2REEwIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MDlDNTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2Fj
aGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGMTI0
NTE0OTY0MDA4NzZEQTAgLyogcGFzX2RlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTJD
MDlEOEM1Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEY1RkU3RUYyNUI2MjEwRDAwMTg1OUZDIC8qIHBhc19kZWFsbG9jYXRp
b25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5RjkyNDUxNDk2NDAwODc2REEwIC8q
IHBhc19kZWFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5REIyNDUxNDk2NDAw
ODc2REEwIC8qIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICov
LApAQCAtMjM1Myw2ICsyMzgwLDcgQEAKIAkJCQkwRkM0MEI4RjI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX2ZvdW5kX2luZGV4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDAzODI1QUY4OUM5MDAw
RTFBQkYgLyogcGFzX2ZyZWVfZ3JhbnVsZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjgz
MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQky
QzA5RDhDNjI3OTdDNkVBMDA1QUExNUMgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNDBCMTMyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mcmVlX3JhbmdlX2tp
bmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQkE2MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
ZnVsbF9hbGxvY19iaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIyNDI0NTE0OTk0MDA4
NzZEQTAgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAg
LTI0MjcsMTIgKzI0NTUsMTQgQEAKIAkJCQkwRjg3MDA3RDI1QUY4QTFCMDAwRTFBQkYgLyogcGFz
X3BhZ2VfYmFzZV9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDdCMjVBRjhBMUIw
MDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjg3MDA2QTI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRp
bHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDMDlEOEMyMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAw
NzMyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDZEMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFn
ZV9iYXNlX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDY3MjVBRjhBMUIwMDBF
MUFCRiAvKiBwYXNfcGFnZV9jb25maWdfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAw
N0YyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3MDA2NjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVy
X3BsYWNlbWVudF9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2QzI1QUY4QTFCMDAw
RTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5
RDhDNzI3OTdDNkVBMDA1QUExNUMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGODcwMDc3MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNf
cGFnZV9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJEMDI0NTE0OTk0MDA4NzZEQTAg
LyogcGFzX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3ODI1QUY4QTFC
MDAwRTFBQkYgLyogcGFzX3BhZ2Vfc2hhcmluZ19tb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1
MDcsNiArMjUzNyw3IEBACiAJCQkJMEZDQ0QxNDUyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFy
ZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDcy
NDUxNDlBRTAwODc2REEwIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYg
aW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJEODI0NTE0OUFFMDA4NzZEQTAgLyogcGFzX3NpbXBs
ZV9mcmVlX2hlYXBfZGVmaW5pdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4QzMy
Nzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkM0MEIxRDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hl
YXBfaGVscGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCNzYyNDUxNDk5NDAwODc2REEw
IC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEIwNTI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3NpbXBsZV90eXBlLmggaW4gSGVhZGVycyAqLywK
QEAgLTI3ODQsNiArMjgxNSw3IEBACiAJCQkJMEY4NzAwN0UyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYWdlX2hlYWRlcl90YWJsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNjUyNDUxNDk5
NDAwODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBC
MTIyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYyBpbiBT
b3VyY2VzICovLAorCQkJCTJDMDlEOEM0Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCOEEyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19wYWdlX3NoYXJpbmdfcG9vbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAw
NjkyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNDkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uYyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NjIsNiArNTYyLDExIEBA
CiAJCTJDMzRGRkZEMjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19raW5kX2FuZF9yb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQzM0RkZGODI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9j
b25maWdfa2luZF9hbmRfcm9sZS5oICovOyB9OwogCQkyQzM0RkZGRTI3NTcxRDJGMDA1NTY1Q0Ig
LyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQzM0RkZGOTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3NlZ3Jl
Z2F0ZWRfcGFnZV9yb2xlLmggKi87IH07CiAJCTJDM0QwRkM3MjcyQjkyNDEwMDVDNUEwMiAvKiBI
ZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyQzNEMEZDNjI3MkI5MjQxMDA1QzVBMDIgLyogSGVhcFJlZkFs
bG9jYXRvckluZGV4VGVzdHMuY3BwICovOyB9OworCQkyQzQ3MzE1MjI3N0E1NDBGMDBCNjJDNDkg
LyogcGFzX21tYXBfY2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkM0NzMxNEYyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFi
aWxpdHkuaCAqLzsgfTsKKwkJMkM0NzMxNTMyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQzQ3MzE1MDI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2VfbWluX2hlYXAuaCAqLzsgfTsKKwkJMkM0NzMxNTQyNzdBNTQwRjAwQjYyQzQ5IC8q
IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQzQ3MzE1MTI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3Zp
cnR1YWxfcmFuZ2UuaCAqLzsgfTsKKwkJMkM0NzMxNjIyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0Rl
Y29tbWl0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkM0NzMxNjEyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0RlY29tbWl0VGVzdHMuY3BwICov
OyB9OworCQkyQzQ3MzE2QTI3N0Q0RUE4MDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192
ZWN0b3IuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
NDczMTY0Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jICov
OyB9OwogCQkyQzQ4MTMyNjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVf
bWVtb3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
QzQ4MTMyMDI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMg
Ki87IH07CiAJCTJDNDgxMzI3MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRh
YmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkM0ODEzMjEyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVt
b3J5LmMgKi87IH07CiAJCTJDNDgxMzI4MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJs
ZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDNDgxMzIyMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsg
fTsKQEAgLTU2OSwxMyArNTc0LDE0IEBACiAJCTJDNDgxMzJBMjczRjM0MUEwMDZDQUI1NSAvKiBw
YXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzI0MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2Vf
ZXhwZW5kYWJsZV9tZW1vcnkuaCAqLzsgfTsKIAkJMkM0ODEzMkIyNzNGMzQxQTAwNkNBQjU1IC8q
IHBhc19leHBlbmRhYmxlX21lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkM0ODEzMjUyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxl
X21lbW9yeS5oICovOyB9OwogCQkyQzQ4MTMyRDI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJs
ZU1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJDNDgxMzJDMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMu
Y3BwICovOyB9OworCQkyQzczNEM5MDI3NzY4MEVGMDAxN0JGRkUgLyogTWVtYWxpZ25UZXN0cy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzczNEM4
RjI3NzY4MEVGMDAxN0JGRkUgLyogTWVtYWxpZ25UZXN0cy5jcHAgKi87IH07CiAJCTJDODVEQzQx
MjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM4NURDNDAyNzEyOEYwRjAw
MzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmggKi87IH07CiAJCTJDOTFFNTUw
MjcxOERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5
IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi87IH07Ci0JCTJDOTcxQ0ZBMjc4RTExQzMwMEM5
RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjgyNzhFMTFDMzAwQzlFMTI5IC8qIHBhc19s
ZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IH07Ci0JCTJDOTcxQ0ZCMjc4RTExQzMwMEM5RTEyOSAv
KiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjkyNzhFMTFDMzAwQzlFMTI5IC8qIHBh
c19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi87IH07Ci0JCTJDOTcxQ0ZFMjc4RTEz
NjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRkMyNzhFMTM2MzAw
QzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi87IH07Ci0JCTJD
OTcxQ0ZGMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzk3MUNG
RDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICov
OyB9OwotCQkyQ0I5QjE1MzI3OEY2Qzg1MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlC
MTUyMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwICovOyB9Owor
CQkyQ0I5QjE1ODI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25l
ZF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
QjlCMTU0Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0
ci5oICovOyB9OworCQkyQ0I5QjE1OTI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29t
cGFjdF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDQjlCMTU1Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICov
OyB9OworCQkyQ0I5QjE1QTI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF91
bnNpZ25lZF9wdHIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDQjlCMTU2Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2ln
bmVkX3B0ci5jICovOyB9OworCQkyQ0I5QjE1QjI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmll
bnRfY29tcGFjdF9wdHJfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkNCOUIxNTcyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2Nv
bXBhY3RfcHRyX2lubGluZXMuaCAqLzsgfTsKKwkJMkNCOUIxNUQyNzhGODYxQjAwM0E4QzFCIC8q
IExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQ0I5QjE1QzI3OEY4NjFCMDAzQThDMUIgLyogTG90c09mSGVhcHNB
bmRUaHJlYWRzLmNwcCAqLzsgfTsKIAkJMkNFMkFFMzUyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZp
dFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJDRTJBRTM0Mjc1QTk1M0UwMEQwMkJCQyAvKiBCaXRmaXRUZXN0cy5jcHAgKi87IH07CiAvKiBF
bmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIApAQCAtMTI1NSw2ICsxMjYxLDE2IEBACiAJCTJD
MzRGRkY5Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX3JvbGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMzRGRkZGMjc1ODE1RDAwMDU1NjVDQiAv
KiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5k
X3JvbGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMzRDBGQzYyNzJCOTI0MTAw
NUM1QTAyIC8qIEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3RzLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNEYyNzdBNTQwRjAwQjYyQzQ5IC8qIHBh
c19tbWFwX2NhcGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X21tYXBfY2FwYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE1
MDI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vf
bWluX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNTEyNzdBNTQw
RjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJDNDczMTYxMjc3RDRDOUUwMEI2MkM0OSAvKiBUTENEZWNvbW1pdFRl
c3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRMQ0RlY29tbWl0
VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE2MzI3N0Q0Q0ND
MDBCNjJDNDkgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTY0Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNf
Y29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGgg
PSBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQzQ3MzE2NTI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0
b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbW1pdHRlZF9wYWdl
c192ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNjYyNzdENEND
QzAwQjYyQzQ5IC8qIHBhc19wbGF0Zm9ybS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBwYXNfcGxhdGZvcm0uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMx
NjcyNzdENENDQzAwQjYyQzQ5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTY4
Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2NvbXBhY3RfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJDNDgxMzIwMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1v
cnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2xhcmdlX2V4cGVuZGFi
bGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzIxMjczRjM0
MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMyMjI3M0YzNDFBMDA2Q0FCNTUgLyog
cGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IHBhc19leHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTI2MiwxMyArMTI3OCwxNCBAQAogCQkyQzQ4MTMyNDI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xh
cmdlX2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyQzQ4MTMyNTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19leHBlbmRhYmxlX21lbW9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMyQzI3M0Y0MTU5MDA2Q0FCNTUg
LyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTJDNzM0QzhGMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRlc3RzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lbWFsaWduVGVzdHMuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzg1REM0MDI3MTI4RjBGMDAzNjc5MDUgLyog
cGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zaXplX2xvb2t1cF9tb2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJDOTcxQ0Y4Mjc4RTExQzMwMEM5RTEy
OSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91
bnNpZ25lZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmll
bnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MkM5NzFDRkMyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRf
cHRyLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBh
Y3RfdW5zaWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJDOTcxQ0ZE
Mjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lu
bGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkNCOUIxNTIyNzhGNkM4NTAw
M0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkyQ0I5QjE1NDI3OEY4NUVEMDAzQThDMUIgLyogcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkNCOUIxNTUyNzhGODVFRDAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3Rf
cHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBh
Y3RfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTU2Mjc4Rjg1RUUw
MDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5j
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0I5QjE1NzI3OEY4NUVFMDAzQThDMUIg
LyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTVDMjc4Rjg2MUIwMDNBOEMxQiAvKiBMb3RzT2ZI
ZWFwc0FuZFRocmVhZHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkNFMkFFMzQyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJpdGZpdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIApAQCAtMTM4
Miw3ICsxMzk5LDggQEAKIAkJCQkwRkVCNjY2NzIzMUM4N0JDMDA5QzAwMUIgLyogTGFyZ2VTaGFy
aW5nUG9vbER1bXAuaCAqLywKIAkJCQkwRkVCNjY2OTIzMURBODZGMDA5QzAwMUIgLyogTGFyZ2VT
aGFyaW5nUG9vbFRlc3RzLmNwcCAqLywKIAkJCQkwRkVBNDVCRTIzNkNEQUVEMDBCNUEzNzUgLyog
TG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMuY3BwICovLAotCQkJCTJDQjlCMTUyMjc4
RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwICovLAorCQkJCTJDQjlC
MTVDMjc4Rjg2MUIwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwICovLAorCQkJ
CTJDNzM0QzhGMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRlc3RzLmNwcCAqLywKIAkJCQkw
RkQyMkQwNzIyQ0Q4QTc1MDBCMjE4NDEgLyogTWluSGVhcFRlc3RzLmNwcCAqLywKIAkJCQkyQjJB
NTg5QjI3NDJEODE1MDA1RUUwN0MgLyogUEdNVGVzdHMuY3BwICovLAogCQkJCTBGNUU0ODM5MjNE
NjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwICovLApAQCAtMTM5MSw2ICsxNDA5LDcgQEAK
IAkJCQkwRkM2ODFFQjIxMTI3QTE2MDAzQzZBMTMgLyogVGVzdEhhcm5lc3MuY3BwICovLAogCQkJ
CTBGQzY4MUVBMjEwRkVEQjUwMDNDNkExMyAvKiBUZXN0SGFybmVzcy5oICovLAogCQkJCTBGODcw
MEIyMjVCMEFCMjkwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0
cy5jcHAgKi8sCisJCQkJMkM0NzMxNjEyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0RlY29tbWl0VGVz
dHMuY3BwICovLAogCQkJCTBGODcwMERFMjVCMTRDNjgwMDBFMUFCRiAvKiBUU0RUZXN0cy5jcHAg
Ki8sCiAJCQkJMEY1MzE4MTIyMkM5NjA5RDAwM0Y3QjZBIC8qIFV0aWxzVGVzdHMuY3BwICovLAog
CQkJKTsKQEAgLTE1MDcsNiArMTUyNiw4IEBACiAJCQkJMEYxOTMyNEMyMkVEMDRBNTAwRkJBNzEz
IC8qIHBhc19jb21taXRfbW9kZS5oICovLAogCQkJCTBGOUExQ0E0MjU1OTk2MTIwMEM4RDExQiAv
KiBwYXNfY29tbWl0X3NwYW4uYyAqLywKIAkJCQkwRjlBMUNBODI1NTk5NjEyMDBDOEQxMUIgLyog
cGFzX2NvbW1pdF9zcGFuLmggKi8sCisJCQkJMkM0NzMxNjQyNzdENENDQzAwQjYyQzQ5IC8qIHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi8sCisJCQkJMkM0NzMxNjUyNzdENENDQzAwQjYy
QzQ5IC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggKi8sCiAJCQkJMEYyMTUwRUMyNDg0
QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxvY2F0b3JfaW5kZXhfcHRyLmgg
Ki8sCiAJCQkJMEY5QTFENDYyNTVFMjg0MjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X2F0b21pY19i
aWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjlBMUQzQTI1NUE0QkE2MDBDOEQxMUIg
LyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywK
QEAgLTE1NTEsNiArMTU3Miw3IEBACiAJCQkJMEY5QTFDRDMyNTU5OTYxNjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oICovLAogCQkJCTBG
NkQ1NjQ0MjNDQUExQjkwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggKi8sCiAJ
CQkJMEY2RDU2NzgyM0NENzA1OTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25l
ZF9wdHIuaCAqLywKKwkJCQkyQzQ3MzE2ODI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2NvbXBhY3Rf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCiAJCQkJMEY2RDU2NEYyM0NCRDE5
QjAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTBGQzRFQzM1
MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3Mu
YyAqLywKIAkJCQkwRkM0RUMzMDIzNEE5MUUyMDBCNzEwQTMgLyogcGFzX2NvbXB1dGVfc3VtbWFy
eV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCkBAIC0xNTY2LDYgKzE1ODgsNyBAQAogCQkJCTBGMzcz
RTUxMjY1OUVBNUUwMDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oICovLAogCQkJCTBGQkM2MkMw
MjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyAqLywKIAkJCQkwRkJDNjJD
MTI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmggKi8sCisJCQkJMkM0NzMx
NjMyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCAqLywK
IAkJCQkwRjc4MDg5ODIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0X2xv
Zy5jICovLAogCQkJCTBGNzgwODk5MjJGQTZGMDgwMEYzNzQ1MSAvKiBwYXNfZGVmZXJyZWRfZGVj
b21taXRfbG9nLmggKi8sCiAJCQkJMEY1QjgzQkUyNDkxODk5RTAwRjQxMDUyIC8qIHBhc19kZXNp
Z25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKQEAgLTE2OTMsMTAgKzE3MTYsMTIg
QEAKIAkJCQkwRkNGQTQ5ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bC5oICovLAogCQkJCTBGNkQ1NDc1MjNDNTczRTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0
eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRjZENTQ3MjIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX2xh
cmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCi0JCQkJMkM5NzFDRkQyNzhFMTM2MzAwQzlFMTI5
IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAqLywKLQkJCQkyQzk3MUNGODI3
OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCAqLywKLQkJCQkyQzk3
MUNGQzI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIu
YyAqLywKLQkJCQkyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuaCAqLywKKwkJCQkyQzQ3MzE1MDI3N0E1NDBGMDBCNjJDNDkgLyogcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKKwkJCQkyQzQ3MzE1MTI3N0E1NDBG
MDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLywKKwkJCQkyQ0I5QjE1NzI3
OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICovLAor
CQkJCTJDQjlCMTU1Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5o
ICovLAorCQkJCTJDQjlCMTU2Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3Vuc2lnbmVkX3B0ci5jICovLAorCQkJCTJDQjlCMTU0Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNf
bGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTBGOEE4MDI3MjVFQzU4ODgw
MDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oICovLAogCQkJCTBGMzFBNjQzMjNFMzUw
OUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCAqLywKIAkJCQkwRkQ0OEIwMjIzQTlB
QkIwMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZC5oICovLApAQCAt
MTcyMyw2ICsxNzQ4LDcgQEAKIAkJCQkwRkM2ODIwMDIxMjEwQjE5MDAzQzZBMTMgLyogcGFzX21l
Z2FwYWdlX2NhY2hlLmMgKi8sCiAJCQkJMEZDNjgxRkQyMTIxMEIxODAwM0M2QTEzIC8qIHBhc19t
ZWdhcGFnZV9jYWNoZS5oICovLAogCQkJCTBGRDIyQ0ZCMjJDQUYxNjQwMEIyMTg0MSAvKiBwYXNf
bWluX2hlYXAuaCAqLywKKwkJCQkyQzQ3MzE0RjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBf
Y2FwYWJpbGl0eS5oICovLAogCQkJCTBGRDQ4QjEwMjNBOUFCQjEwMDI2QzQ2RCAvKiBwYXNfbW9u
b3RvbmljX3RpbWUuYyAqLywKIAkJCQkwRkQ0OEFGRDIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX21v
bm90b25pY190aW1lLmggKi8sCiAJCQkJMEYwOTIyNjkyMkIwN0MyMTAwN0Q1RDNBIC8qIHBhc19t
dXRhdGlvbl9jb3VudC5oICovLApAQCAtMTc1Nyw2ICsxNzgzLDcgQEAKIAkJCQkwRjZENTQ3MzIz
QzU3M0UwMDBGNDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5
bGUuaCAqLywKIAkJCQkwRkYyNDhGNzIyRkM5RURBMDA3NzIwMkUgLyogcGFzX3BoeXNpY2FsX21l
bW9yeV90cmFuc2FjdGlvbi5jICovLAogCQkJCTBGNzgwODg2MjJGQTJFNDkwMEYzNzQ1MSAvKiBw
YXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmggKi8sCisJCQkJMkM0NzMxNjYyNzdENEND
QzAwQjYyQzQ5IC8qIHBhc19wbGF0Zm9ybS5oICovLAogCQkJCTBGREVBNTc4MjI4RTIzNDUwMDg1
RTM0MCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMgKi8sCiAJCQkJMEZERUE1NzcyMjhFMjM0
NDAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCAqLywKIAkJCQkyQjJBNTg5ODI3
NDJEODAyMDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3VhcmRfbWFsbG9jX2FsbG9jYXRv
ci5jICovLApAQCAtMTg2Myw2ICsxODkwLDcgQEAKIAkJCQkwRkM2ODIxOTIxMjUzNjI3MDAzQzZB
MTMgLyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzRFQzJFMjM0QTkxRTIwMEI3MTBBMyAvKiBw
YXNfc3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzRFQzMzMjM0QTkxRTIwMEI3MTBBMyAvKiBw
YXNfc3RyaW5nX3N0cmVhbS5oICovLAorCQkJCTJDNDczMTY3Mjc3RDRDQ0MwMEI2MkM0OSAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oICovLAogCQkJCTBGMTQ4NzFFMjY5
RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQu
aCAqLywKIAkJCQkwRkE1RTQ1MTI0OTJENUI5MDBDRTk2MkEgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5jICovLAogCQkJCTBGQTVFNDUzMjQ5MkQ1QjkwMENFOTYyQSAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCkBAIC0yMDAzLDYgKzIwMzEs
NyBAQAogCQkJCTBGOEE4MTAzMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEE4MTA2MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRf
aGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhBODEwMjI1RjZBNzk1MDA3OTBC
NEEgLyogaG90Yml0X2hlYXBfaW5uYXJkcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNCOUIxNTky
NzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU3RUU3NzIyOUYwMTBGMDA0RjQxNjYgLyogaXNvX2hlYXAuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGRTdFRTU2MjI5NzQzMzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGNUZFN0E0MjVCNjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9p
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTIwNjIsNyArMjA5MSw2IEBACiAJCQkJMEY5QTFE
NDEyNTVBRjI3OTAwQzhEMTFCIC8qIHBhc19iaXRmaXRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU3RUUwNDIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2JpdHZlY3Rvci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMDUyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19ib290c3Ry
YXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQzk3MUNGQjI3OEUxMUMzMDBDOUUx
MjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNUI2MDg0MjM1RTU3MjAwMENBRTYyOSAvKiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9w
cm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMDgyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzFBNjY2
MjNFOEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVzaWFuX3RyZWUuaCBpbiBIZWFkZXJzICovLApA
QCAtMjEwNiw2ICsyMTM0LDcgQEAKIAkJCQkwRjZENTY2RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMTQ4NzE1MjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NjUyM0NCRDE5RDAwRjQw
REJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkM0NzMxNTIyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNkQ1NjRFMjNDQUJBNjUwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdn
ZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5QTFEMUUyNTU5OTYxNzAwQzhE
MTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NEIyM0NBQTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0
X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLApAQCAtMjExMyw2ICsyMTQyLDcgQEAKIAkJCQkw
RjZENTY2MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0RUMzOTIzNEE5MUUzMDBCNzEwQTMgLyogcGFzX2NvbXB1dGVf
c3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUwQTIy
OTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM0NzMx
NTMyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjg1RUZEQTIyRTJCRUM3MDAzQTM2MkIgLyogcGFzX2NvbmZp
Z19wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzI5QTJCMjNGMUQ2MzYwMEExMzNDNCAv
KiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9jYWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnku
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTY2MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVh
bGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTI4LDYgKzIxNTgsNyBAQAogCQkJCTBGRUE0
NUMyMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHluYW1pY19wcmltaXRpdmVfaGVhcF9tYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMzI5QTJEMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJl
X2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjMyOUEyRTIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNo
ZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDNDczMTU0Mjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxQjEyNUEzRDBC
QjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3BhZ2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjRGNjFCNTI1QTNEMEJCMDA4QjRBODIgLyogcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxNzgyNTlEMTA2NTAwOEI0QTgyIC8qIHBhc19l
bnVtZXJhdGVfYml0Zml0X2hlYXBzLmggaW4gSGVhZGVycyAqLywKQEAgLTIxNTksNyArMjE5MCw2
IEBACiAJCQkJMEZENDhCNTgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjNBMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVs
bF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRjA4RjNBMjJBNUI0
MDMwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJnZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICov
LAotCQkJCTJDOTcxQ0ZBMjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFNjAyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19n
ZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU2NDIyOUUxNEZB
MDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjlBMUQ0RDI1
NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9vYmplY3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yMTkxLDYgKzIyMjEsNyBAQAogCQkJCTJDNDgxMzJBMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTFFMjI5
NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJlZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZF
N0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfY29uZmlnLmggaW4g
SGVhZGVycyAqLywKKwkJCQkyQ0I5QjE1ODI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjZENTRCMjQ4NzYw
QUYwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjc4MDg5MzIyRkE1MzQxMDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVf
aGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY2RDU0QzI0
ODc2MEI0MDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZpbml0aW9ucy5kZWYgaW4g
SGVhZGVycyAqLywKQEAgLTIyNjcsNyArMjI5OCw2IEBACiAJCQkJMEY0RjYwRkIyNTk3OUJDODAw
OEI0QTgyIC8qIHBhc19yb290LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE5MzI2QzIyRjczRTg1
MDBGQkE3MTMgLyogcGFzX3NjYXZlbmdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2ODEyNzIy
MkJENEJGNDAwMzZBMDJCIC8qIHBhc19zZWdtZW50ZWRfdmVjdG9yLmggaW4gSGVhZGVycyAqLywK
LQkJCQkyQzk3MUNGRjI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNDg3MTAyNjlCNzUxODAwNjg4N0E5IC8q
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkQ0OEI1NjIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5LmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkQ0OEI0NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0
ZWRfZGlyZWN0b3J5X2JpdF9yZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLApAQCAtMjI5OCw2ICsy
MzI4LDcgQEAKIAkJCQkwRkQ0OEI1NzIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI2MDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGNUU1Q0YyMjNCRkJGQjkwMEFBMEI2RiAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0I5QjE1QjI3OEY4NUVFMDAzQThD
MUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZENDhCNjQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE0ODcyMTI2OUY1RkNBMDA2ODg3QTkgLyogcGFz
X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfY3JlYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZENDhCNTQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5X2lubGluZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMjYwOCwxNCArMjYzOSwxNiBAQAog
CQkJCTBGQzY4MjM4MjEyOUQ0RUUwMDNDNkExMyAvKiBDb2FsaWduVGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMkM0ODEzMkQyNzNGNDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlU
ZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM2ODIzMTIxMjlDQjQ2MDAzQzZBMTMgLyog
RXh0ZW5kZWRHQ0RUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyQ0I5QjE1RDI3OEY4NjFC
MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQzY4MjE1MjEyNDhBNzkwMDNDNkExMyAvKiBIYXNodGFibGVUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyQzNEMEZDNzI3MkI5MjQxMDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvcklu
ZGV4VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFQTQ1QzUyMzZFMTBBQTAwQjVBMzc1
IC8qIElzb0R5bmFtaWNQcmltaXRpdmVIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZBMTg1NDYyMzZCM0M4MjAwMzYwOUFEIC8qIElzb0hlYXBDaGFvc1Rlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRjI0OEZEMjMwQ0M0Q0IwMDc3MjAyRSAvKiBJc29IZWFwUGFnZVNoYXJp
bmdUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyQzczNEM5MDI3NzY4MEVGMDAxN0JGRkUg
LyogTWVtYWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI2NzIzQjU4OTkx
MDAyNkM0NkQgLyogSXNvSGVhcFBhcnRpYWxBbmRCYXNlbGluZVRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAotCQkJCTJDQjlCMTUzMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVh
ZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1QjYwOTQyMzVFOTE5OTAwQ0FFNjI5IC8qIElz
b0hlYXBSZXNlcnZlZE1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTJDNDczMTYy
Mjc3RDRDOUUwMEI2MkM0OSAvKiBUTENEZWNvbW1pdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJDRTJBRTM1Mjc1QTk1M0UwMEQwMkJCQyAvKiBCaXRmaXRUZXN0cy5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRjUxOTNFNzI2NkFFNUQ0MDA0ODNBMkMgLyogSklUSGVhcFRlc3RzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTBGQzY0MTkxMjEzNzQ1RkEwMDQwQ0U1RSAvKiBMYXJnZUZyZWVI
ZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjQ0LDYgKzI2NzcsNyBAQAogCQkJCTBG
OEE4MTAxMjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRTdFRTc2MjI5RjAxMEYwMDRGNDE2NiAvKiBpc29faGVhcC5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZFN0VFNTcyMjk3NDMzNTAwNEY0MTY2IC8qIGlzb19oZWFwX2NvbmZpZy5j
IGluIFNvdXJjZXMgKi8sCisJCQkJMkM0NzMxNkEyNzdENEVBODAwQjYyQzQ5IC8qIHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjVFNUNGMDIzQkVGNTUz
MDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1RTVDRUMy
M0JFRjM2MDAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywK
IAkJCQkwRjU5QTM5RTI2Njg0NzBFMDBBMzg2NTcgLyogaml0X2hlYXAuYyBpbiBTb3VyY2VzICov
LApAQCAtMjY5Nyw3ICsyNzMxLDYgQEAKIAkJCQkwRjRGNjExQjI1OTgzOEIxMDA4QjRBODIgLyog
cGFzX2VudW1lcmF0b3JfcmVnaW9uLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjE5MzI1NjIyRUQw
NEE2MDBGQkE3MTMgLyogcGFzX2Vwb2NoLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEIzNDIz
QTlBQkIzMDAyNkM0NkQgLyogcGFzX2V4Y2x1c2l2ZV92aWV3X3RlbXBsYXRlX21lbW9fdGFibGUu
YyBpbiBTb3VyY2VzICovLAotCQkJCTJDOTcxQ0ZFMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMkM0ODEzMjgy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8s
CiAJCQkJMEZFN0VEQkEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19leHRlbmRlZF9nY2QuYyBpbiBT
b3VyY2VzICovLAogCQkJCTBGRjA4RjQzMjJBNjI3QzEwMDM4NjU3NSAvKiBwYXNfZmFzdF9sYXJn
ZV9mcmVlX2hlYXAuYyBpbiBTb3VyY2VzICovLApAQCAtMjc1Nyw2ICsyNzkwLDcgQEAKIAkJCQkw
Rjk3RTYzMDIyQTlBQUMxMDBDMzU1RjggLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjVFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX2NvbmZpZ19raW5kLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI0QzIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMgaW4gU291cmNlcyAq
LywKKwkJCQkyQ0I5QjE1QTI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF91
bnNpZ25lZF9wdHIuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjQ4MjNBOUFCQjMwMDI2QzQ2
RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfaGFuZGxlLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RkQ0OEIyRTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGly
ZWN0b3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkyQzM0MDAwMjI3NTgxNjg3MDA1NTY1Q0IgLyog
cGFzX3BhZ2VfYmFzZV9jb25maWcuYyBpbiBTb3VyY2VzICovLApAQCAtMjg5NSw3ICsyOTI5LDcg
QEAKIAkJCQkJIkRFQlVHPTEiLAogCQkJCQkiJChpbmhlcml0ZWQpIiwKIAkJCQkpOwotCQkJCU1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RB
UkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUg
PSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1QgPSBtYWNvc3g7CkBAIC0yOTExLDcgKzI5
NDUsNyBAQAogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJCQkJRFlMSUJf
Q1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlFWEVDVVRBQkxFX1BSRUZJWCA9IGxpYjsKLQkJCQlN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMjkzMyw3ICsy
OTY3LDcgQEAKIAkJCQkJIkRFQlVHPTEiLAogCQkJCQkiJChpbmhlcml0ZWQpIiwKIAkJCQkpOwot
CQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNU
X05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1QgPSBtYWNvc3g7CkBAIC0yOTUx
LDcgKzI5ODUsNyBAQAogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJCQkJ
RFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlFWEVDVVRBQkxFX1BSRUZJWCA9IGxpYjsK
LQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9Z
TUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVD
VF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMjk3
Myw3ICszMDA3LDcgQEAKIAkJCQkJIkRFQlVHPTEiLAogCQkJCQkiJChpbmhlcml0ZWQpIiwKIAkJ
CQkpOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9E
RVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQ
Uk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1QgPSBtYWNvc3g7CkBA
IC0yOTkxLDcgKzMwMjUsNyBAQAogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7
CiAJCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlFWEVDVVRBQkxFX1BSRUZJWCA9
IGxpYjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpA
QCAtMzAxMyw3ICszMDQ3LDcgQEAKIAkJCQkJIkRFQlVHPTEiLAogCQkJCQkiJChpbmhlcml0ZWQp
IiwKIAkJCQkpOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1B
Q09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsK
IAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1QgPSBtYWNv
c3g7CkBAIC0zMDMxLDcgKzMwNjUsNyBAQAogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lP
TiA9IDE7CiAJCQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlFWEVDVVRBQkxFX1BS
RUZJWCA9IGxpYjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7
CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFj
b3N4OwpAQCAtMzE1Niw3ICszMTkwLDcgQEAKIAkJCQlHQ0NfV0FSTl9VTktOT1dOX1BSQUdNQVMg
PSBZRVM7CiAJCQkJR0NDX1dBUk5fVU5VU0VEX0xBQkVMID0gWUVTOwogCQkJCUdDQ19XQVJOX1VO
VVNFRF9QQVJBTUVURVIgPSBZRVM7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAu
MTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExfRkFTVF9N
QVRIID0gWUVTOwogCQkJCU9USEVSX0NGTEFHUyA9ICItRExJQlBBUz0xIjsKIAkJCQlQUk9EVUNU
X05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwpAQCAtMzE4OSw3ICszMjIzLDcgQEAKIAkJCQlHQ0Nf
V0FSTl9VTktOT1dOX1BSQUdNQVMgPSBZRVM7CiAJCQkJR0NDX1dBUk5fVU5VU0VEX0xBQkVMID0g
WUVTOwogCQkJCUdDQ19XQVJOX1VOVVNFRF9QQVJBTUVURVIgPSBZRVM7Ci0JCQkJTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0g
MTEuMDsKIAkJCQlNVExfRkFTVF9NQVRIID0gWUVTOwogCQkJCU9USEVSX0NGTEFHUyA9ICItRExJ
QlBBUz0xIjsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwpAQCAtMzIxMyw3
ICszMjQ3LDcgQEAKIAkJCQkJIkRFQlVHPTEiLAogCQkJCQkiJChpbmhlcml0ZWQpIiwKIAkJCQkp
OwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9E
VUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1QgPSBtYWNvc3g7CkBAIC0z
MjMxLDcgKzMyNjUsNyBAQAogCQkJCURZTElCX0NPTVBBVElCSUxJVFlfVkVSU0lPTiA9IDE7CiAJ
CQkJRFlMSUJfQ1VSUkVOVF9WRVJTSU9OID0gMTsKIAkJCQlFWEVDVVRBQkxFX1BSRUZJWCA9IGxp
YjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJP
RFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAt
MzI5Myw3ICszMzI3LDcgQEAKIAkJCQlHQ0NfV0FSTl9VTlVTRURfRlVOQ1RJT04gPSBZRVM7CiAJ
CQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogCQkJCUxMVk1fRElSID0gIiQoU1JD
Uk9PVCkvY2xhbmcrbGx2bS1pbnRlcm5hbCI7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
ID0gMTAuMTM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExf
RU5BQkxFX0RFQlVHX0lORk8gPSBJTkNMVURFX1NPVVJDRTsKIAkJCQlPTkxZX0FDVElWRV9BUkNI
ID0gWUVTOwogCQkJCVNES1JPT1QgPSBtYWNvc3guaW50ZXJuYWw7CkBAIC0zMzUyLDcgKzMzODYs
NyBAQAogCQkJCUdDQ19XQVJOX1VOVVNFRF9GVU5DVElPTiA9IFlFUzsKIAkJCQlHQ0NfV0FSTl9V
TlVTRURfVkFSSUFCTEUgPSBZRVM7CiAJCQkJTExWTV9ESVIgPSAiJChTUkNST09UKS9jbGFuZyts
bHZtLWludGVybmFsIjsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMzsKKwkJ
CQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9FTkFCTEVfREVCVUdf
SU5GTyA9IE5POwogCQkJCVNES1JPT1QgPSBtYWNvc3guaW50ZXJuYWw7CiAJCQkJU1VQUE9SVEVE
X1BMQVRGT1JNUyA9ICJtYWNvc3ggaXBob25lb3MiOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvYm1hbGxvY19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkocmV2aXNp
b24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY19o
ZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIFBBU19CRUdJTl9F
WFRFUk5fQzsKICNkZWZpbmUgQk1BTExPQ19NSU5BTElHTl9TSElGVCAoKHNpemVfdCk0KQogI2Rl
ZmluZSBCTUFMTE9DX01JTkFMSUdOX1NJWkUgKChzaXplX3QpMSA8PCBCTUFMTE9DX01JTkFMSUdO
X1NISUZUKQogCisjZGVmaW5lIEJNQUxMT0NfU01BTExfU0hBUklOR19TSElGVCA0CisKIFBBU19B
UEkgdm9pZCBibWFsbG9jX2hlYXBfY29uZmlnX2FjdGl2YXRlKHZvaWQpOwogCiAjZGVmaW5lIEJN
QUxMT0NfSEVBUF9DT05GSUcgUEFTX0JBU0lDX0hFQVBfQ09ORklHKCBcCkBAIC00OCw3ICs1MCw3
IEBAIFBBU19BUEkgdm9pZCBibWFsbG9jX2hlYXBfY29uZmlnX2FjdGl2YXQKICAgICAuZHVtcF90
eXBlID0gYm1hbGxvY190eXBlX2FzX2hlYXBfdHlwZV9kdW1wLCBcCiAgICAgLmNoZWNrX2RlYWxs
b2NhdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0
ID0gQk1BTExPQ19NSU5BTElHTl9TSElGVCwgXAotICAgIC5zbWFsbF9zZWdyZWdhdGVkX3NoYXJp
bmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElGVCwgXAorICAgIC5zbWFsbF9zZWdyZWdh
dGVkX3NoYXJpbmdfc2hpZnQgPSBCTUFMTE9DX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKICAgICAu
c21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxUX1NJWkUs
IFwKICAgICAuc21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19TTUFMTF9Q
QUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2xvZ2dpbmdf
bW9kZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9zaXplX29ibGl2aW91c19sb2dnaW5n
X21vZGUsIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFw
X2NvbmZpZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L2ppdF9oZWFwX2NvbmZpZy5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkod29ya2luZyBjb3B5KQpAQCAtMjIz
LDcgKzIyMyw3IEBAIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0IGppdF9hbGlnbmUKICAg
ICBhbGlnbmVkX3NpemUgPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzaXplLCBhbGlnbm1l
bnQuYWxpZ25tZW50KTsKIAogICAgIGFsbG9jYXRpb25fcmVzdWx0ID0gcGFzX2xhcmdlX2hlYXBf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlX3RyeV9hbGxvY2F0ZV93aXRoX2FsaWdubWVudCgK
LSAgICAgICAgJmppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcCwgYWxpZ25lZF9zaXplLCBhbGln
bm1lbnQsIGZhbHNlKTsKKyAgICAgICAgJmppdF9sYXJnZV9mcmVzaF9tZW1vcnlfaGVhcCwgYWxp
Z25lZF9zaXplLCBhbGlnbm1lbnQsIGNvbmZpZywgZmFsc2UpOwogICAgIGlmICghYWxsb2NhdGlv
bl9yZXN1bHQuZGlkX3N1Y2NlZWQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5o
CShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9q
aXRfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTczLDYgKzE3Myw3IEBAIFBBU19I
RUFQX0NPTkZJR19TUEVDSUFMSVpBVElPTl9ERUNMQVJBVEkKICAgICAgICAgLmFsaWduZWRfYWxs
b2NhdG9yID0gaml0X2FsaWduZWRfYWxsb2NhdG9yLCBcCiAgICAgICAgIC5hbGlnbmVkX2FsbG9j
YXRvcl90YWxrc190b19zaGFyaW5nX3Bvb2wgPSB0cnVlLCBcCiAgICAgICAgIC5kZWFsbG9jYXRv
ciA9IE5VTEwsIFwKKyAgICAgICAgLm1tYXBfY2FwYWJpbGl0eSA9IHBhc19tYXlfbm90X21tYXAs
IFwKICAgICAgICAgLnJvb3RfZGF0YSA9ICZqaXRfcm9vdF9kYXRhLCBcCiAgICAgICAgIC5wcmVw
YXJlX3RvX2VudW1lcmF0ZSA9IGppdF9wcmVwYXJlX3RvX2VudW1lcmF0ZSwgXAogICAgICAgICAu
Zm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5ID0gaml0X2hlYXBfY29uZmlnX2Zvcl9lYWNo
X3NoYXJlZF9wYWdlX2RpcmVjdG9yeSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvbWluYWxpZ24zMl9oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkocmV2aXNp
b24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24z
Ml9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw2ICs0MSw4IEBAIFBBU19CRUdJ
Tl9FWFRFUk5fQzsKICNkZWZpbmUgTUlOQUxJR04zMl9NSU5BTElHTl9TSElGVCAoKHNpemVfdCk1
KQogI2RlZmluZSBNSU5BTElHTjMyX01JTkFMSUdOX1NJWkUgKChzaXplX3QpMSA8PCBNSU5BTElH
TjMyX01JTkFMSUdOX1NISUZUKQogCisjZGVmaW5lIE1JTkFMSUdOMzJfU01BTExfU0hBUklOR19T
SElGVCAzCisKIFBBU19BUEkgdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGl2YXRlKHZv
aWQpOwogCiAjZGVmaW5lIE1JTkFMSUdOMzJfSEVBUF9DT05GSUcgUEFTX0JBU0lDX0hFQVBfQ09O
RklHKCBcCkBAIC01MSwxMyArNTMsMTMgQEAgUEFTX0FQSSB2b2lkIG1pbmFsaWduMzJfaGVhcF9j
b25maWdfYWN0aQogICAgIC5kdW1wX3R5cGUgPSBwYXNfc2ltcGxlX3R5cGVfYXNfaGVhcF90eXBl
X2R1bXAsIFwKICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAuc21hbGxf
c2VncmVnYXRlZF9taW5fYWxpZ25fc2hpZnQgPSBNSU5BTElHTjMyX01JTkFMSUdOX1NISUZULCBc
Ci0gICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmluZ19zaGlmdCA9IFBBU19TTUFMTF9TSEFSSU5H
X1NISUZULCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmluZ19zaGlmdCA9IE1JTkFMSUdO
MzJfU01BTExfU0hBUklOR19TSElGVCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6
ZSA9IFBBU19TTUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVk
X3dhc3RlYWdlX2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21h
bGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX3NpemVfb2JsaXZpb3VzX2xvZ2dpbmdfbW9kZSwgXAogICAgIC5zbWFsbF9zaGFy
ZWRfc2VncmVnYXRlZF9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
c2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdy
ZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUs
IFwKLSAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2li
aWxpdHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAorICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRl
ZF9lbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSBmYWxzZSwgXAog
ICAgIC5zbWFsbF9zZWdyZWdhdGVkX3VzZV9yZXZlcnNlZF9jdXJyZW50X3dvcmQgPSB0cnVlLCBc
CiAgICAgLmVuYWJsZV92aWV3X2NhY2hlID0gdHJ1ZSwgXAogICAgIC51c2Vfc21hbGxfYml0Zml0
ID0gdHJ1ZSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9hbGxvY2F0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNiw2ICszNiwxOCBAQAogI2luY2x1ZGUgInBhc19lcG9jaC5oIgogI2lu
Y2x1ZGUgInBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24uaCIKIAordm9pZCBwYXNfYml0
Zml0X2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFz
cyogc2l6ZV9jbGFzcykKK3sKKyAgICBhbGxvY2F0b3ItPnNpemVfY2xhc3MgPSBzaXplX2NsYXNz
OworICAgIGFsbG9jYXRvci0+dmlldyA9IE5VTEw7Cit9CisKK3ZvaWQgcGFzX2JpdGZpdF9hbGxv
Y2F0b3Jfc3RvcChwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yKQoreworICAgIGFsbG9j
YXRvci0+dmlldyA9IE5VTEw7Cit9CisKIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0
X3ZpZXcocGFzX2JpdGZpdF92aWV3KiB2aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiBjb25maWcsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBjb21taXRfbG9ja19o
b2xkX21vZGUpCkBAIC0xNzcsNyArMTg5LDcgQEAgYm9vbCBwYXNfYml0Zml0X2FsbG9jYXRvcl9j
b21taXRfdmlldyhwYQogICAgICAgICBQQVNfQVNTRVJUKCF2aWV3LT5pc19vd25lZCk7CiAKICAg
ICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgKLSAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91
bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdlX3NpemUpOworICAgICAgICAgICAgdmlldy0+cGFnZV9i
b3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29uZmlnLT5iYXNlLmhlYXBfY29uZmln
X3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgY29uZmlnLT5iYXNlLmNyZWF0ZV9wYWdl
X2hlYWRlcigKICAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksCiAgICAgICAgICAgICBw
YXNfcGFnZV9raW5kX2Zvcl9iaXRmaXRfdmFyaWFudChjb25maWctPnZhcmlhbnQpLApAQCAtMjE4
LDYgKzIzMCw3IEBAIHBhc19iaXRmaXRfdmlldyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKICAg
ICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3M7CiAgICAgcGFzX2JpdGZpdF92aWV3
KiBuZXdfdmlldzsKICAgICB1bnNpZ25lZCB2aWV3X2luZGV4OworICAgIHBhc19iaXRmaXRfdmll
dyogYWxsb2NhdG9yX3ZpZXc7CiAKICAgICBQQVNfVU5VU0VEX1BBUkFNKGFsaWdubWVudCk7CiAK
QEAgLTI0MSw3ICsyNTQsOCBAQCBwYXNfYml0Zml0X3ZpZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9y
X2ZpCiAgICAgCiAgICAgICAgTk9URTogVGhlcmUgYXJlIHNvbWUgYXNwZWN0cyBvZiB0aGlzIHRo
YXQgd2UgY291bGQgZG8gZXZlbiBpZiB0aGUgdmlldyB3YXMgZGlzcGxhY2VkLiBMaWtlLAogICAg
ICAgIHdlIGNvdWxkIHVwZGF0ZSB0aGUgbWF4X2ZyZWUuICovCi0gICAgaWYgKHZpZXcgPT0gYWxs
b2NhdG9yLT52aWV3ICYmIGxhcmdlc3RfYXZhaWxhYmxlIDwgc2l6ZV9jbGFzcy0+c2l6ZSkgewor
ICAgIGFsbG9jYXRvcl92aWV3ID0gYWxsb2NhdG9yLT52aWV3OworICAgIGlmICgodmlldyA9PSBh
bGxvY2F0b3JfdmlldyB8fCAhYWxsb2NhdG9yX3ZpZXcpICYmIGxhcmdlc3RfYXZhaWxhYmxlIDwg
c2l6ZV9jbGFzcy0+c2l6ZSkgewogICAgICAgICB1bnNpZ25lZCBpbmRleDsKICAgICAgICAgcGFz
X2JpdGZpdF9zaXplX2NsYXNzKiBjdXJyZW50X3NpemVfY2xhc3M7CiAgICAgICAgIHBhc192ZXJz
aW9uZWRfZmllbGQgZmlyc3RfZnJlZV92YWx1ZTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuaAkocmV2aXNp
b24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF9hbGxvY2F0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDYsNiArNDYsMTEgQEAgc3RydWN0IHBh
c19iaXRmaXRfYWxsb2NhdG9yIHsKICAgICBwYXNfYml0Zml0X3ZpZXcqIHZpZXc7CiB9OwogCitQ
QVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29uc3RydWN0KHBhc19iaXRmaXRfYWxs
b2NhdG9yKiBhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFzcyk7CisKK1BBU19BUEkgdm9p
ZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9zdG9wKHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0
b3IpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0JJVEZJVF9BTExPQ0FU
T1JfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZp
dF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg4
MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Myw2ICs1Myw3IEBAIHBhc19iaXRm
aXRfYWxsb2NhdG9yX2ZpbmlzaF9mYWlsaW5nKHBhc18KIAogc3RhdGljIFBBU19BTFdBWVNfSU5M
SU5FIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQKIHBhc19iaXRmaXRfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZShwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsX2FsbG9j
YXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgYWxpZ25tZW50LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcgY29uZmln
KQpAQCAtODAsNyArODEsMTggQEAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBh
c19iaQogICAgICAgICBzaXplX3QgYnl0ZXNfY29tbWl0dGVkOwogICAgICAgICAKICAgICAgICAg
aWYgKFBBU19VTkxJS0VMWSghdmlldykpIHsKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlOworICAgICAgICAgICAgCisgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NF
UlQoIWFsbG9jYXRvci0+dmlldyk7CisKKyAgICAgICAgICAgIGNhY2hlID0gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgICAgICAgICBpZiAoY2FjaGUpIHsKKyAgICAgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9yc19pZl9u
ZWNlc3NhcnkoCisgICAgICAgICAgICAgICAgICAgIGNhY2hlLCBsb2NhbF9hbGxvY2F0b3IsIHBh
c19sb2NrX2lzX25vdF9oZWxkKTsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnZpZXcpOworICAgICAgICAgICAgCiAgICAgICAgICAg
ICB2aWV3ID0gcGFzX2JpdGZpdF9zaXplX2NsYXNzX2dldF9maXJzdF9mcmVlX3ZpZXcoCiAgICAg
ICAgICAgICAgICAgYWxsb2NhdG9yLT5zaXplX2NsYXNzLCAocGFzX2JpdGZpdF9wYWdlX2NvbmZp
ZyopY29uZmlnLmJhc2UucGFnZV9jb25maWdfcHRyKTsKICAgICAgICAgICAgIGlmICghdmlldykK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0
b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2JpdGZpdF9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpA
QCAtNTE3LDcgKzUxNyw4IEBAIHBhc19wYWdlX3NoYXJpbmdfcG9vbF90YWtlX3Jlc3VsdCBwYXNf
YmkKIAogICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19hZGRfYWxyZWFkeV9s
b2NrZWQoCiAgICAgICAgICAgICAgICAgZGVjb21taXRfbG9nLAotICAgICAgICAgICAgICAgIHBh
c192aXJ0dWFsX3JhbmdlX2NyZWF0ZShiYXNlLCBiYXNlICsgcGFnZV9jb25maWctPmJhc2UucGFn
ZV9zaXplLCBjb21taXRfbG9jayksCisgICAgICAgICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2Vf
Y3JlYXRlKGJhc2UsIGJhc2UgKyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUsIGNvbW1pdF9s
b2NrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZp
Zy0+YmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSksCiAgICAgICAgICAgICAg
ICAgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgICAgIH0KICAgICAgICAgCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9w
YWdlX2NvbmZpZy5oCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTQx
LDE1ICs0MSwxOCBAQCBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3I7CiBzdHJ1Y3QgcGFzX2Jp
dGZpdF9wYWdlOwogc3RydWN0IHBhc19iaXRmaXRfcGFnZV9jb25maWc7CiBzdHJ1Y3QgcGFzX2hl
YXBfcnVudGltZV9jb25maWc7CitzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIHR5cGVkZWYg
c3RydWN0IHBhc19iaXRmaXRfYWxsb2NhdG9yIHBhc19iaXRmaXRfYWxsb2NhdG9yOwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlIHBhc19iaXRmaXRfcGFnZTsKIHR5cGVkZWYgc3RydWN0
IHBhc19iaXRmaXRfcGFnZV9jb25maWcgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZzsKIHR5cGVkZWYg
c3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnIHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOwor
dHlwZWRlZiBzdHJ1Y3QgcGFzX2xvY2FsX2FsbG9jYXRvciBwYXNfbG9jYWxfYWxsb2NhdG9yOwog
CiB0eXBlZGVmIHZvaWQqICgqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19wYWdlX2FsbG9jYXRvciko
CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcCosIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rp
b24qIHRyYW5zYWN0aW9uKTsKIHR5cGVkZWYgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3Vs
dCAoKnBhc19iaXRmaXRfcGFnZV9jb25maWdfc3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxv
Y2F0ZSkoCiAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBsb2NhbF9hbGxvY2F0b3IsCiAgICAgc2l6ZV90IHNpemUsCiAgICAgc2l6
ZV90IGFsaWdubWVudCk7CiB0eXBlZGVmIHZvaWQgKCpwYXNfYml0Zml0X3BhZ2VfY29uZmlnX3Nw
ZWNpYWxpemVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UpKApAQCAtMTIyLDYgKzEyNSw3IEBA
IFBBU19BUEkgZXh0ZXJuIGJvb2wgcGFzX21hcmdlX2JpdGZpdF9wYWcKICAgICBQQVNfQVBJIHBh
c19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfcGFnZV9jb25m
aWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSggXAogICAgICAg
ICBwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCisgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3IqIGxvY2FsX2FsbG9jYXRvciwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAg
ICAgICBzaXplX3QgYWxpZ25tZW50KTsgXAogICAgIFBBU19BUEkgdm9pZCBsb3dlcl9jYXNlX3Bh
Z2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2Uo
IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFn
ZV9jb25maWdfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oCShyZXZpc2lvbiAyODgz
NDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTEgKzM2LDEyIEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKICAgICBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0IFwKICAg
ICBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2FsbG9jYXRvcl90
cnlfYWxsb2NhdGUoIFwKICAgICAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwg
XAorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBsb2NhbF9hbGxvY2F0b3IsIFwKICAgICAg
ICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdubWVudCkgXAogICAgIHsgXAog
ICAgICAgICByZXR1cm4gcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKCBcCi0gICAg
ICAgICAgICBhbGxvY2F0b3IsIHNpemUsIGFsaWdubWVudCwgKHBhZ2VfY29uZmlnX3ZhbHVlKSk7
IFwKKyAgICAgICAgICAgIGFsbG9jYXRvciwgbG9jYWxfYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1l
bnQsIChwYWdlX2NvbmZpZ192YWx1ZSkpOyBcCiAgICAgfSBcCiAgICAgXAogICAgIHZvaWQgbG93
ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9wYWdlX2RlYWxsb2NhdGVf
d2l0aF9wYWdlKCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3BhZ2VfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgJKHJldmlzaW9uIDI4ODM0NikK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJwYXNfYml0
Zml0X3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfYml0Zml0X3ZpZXcuaCIKICNpbmNsdWRlICJwYXNf
Y29tbWl0X3NwYW4uaCIKKyNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJw
YXNfcGFnZV9iYXNlX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9zaGFyaW5nX3Bvb2wu
aCIKICNpbmNsdWRlIDxwdGhyZWFkLmg+CkBAIC0xNDYsNyArMTQ3LDcgQEAgc3RhdGljIFBBU19B
TFdBWVNfSU5MSU5FIHVuc2lnbmVkIHBhc19iaQogICAgICAgICBQQVNfQVNTRVJUKHZpZXctPmlz
X293bmVkKTsKICAgICAgICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQoJnZpZXctPmNvbW1pdF9sb2Nr
KTsKICAgICAgICAgCi0gICAgICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9z
cGFuKTsKKyAgICAgICAgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdCgmY29tbWl0X3NwYW4sIHBh
Z2VfY29uZmlnLmJhc2UuaGVhcF9jb25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAg
ICAKICAgICAgICAgZm9yIChncmFudWxlX2luZGV4ID0gaW5kZXhfb2ZfZmlyc3RfZ3JhbnVsZTsK
ICAgICAgICAgICAgICBncmFudWxlX2luZGV4IDw9IGluZGV4X29mX2xhc3RfZ3JhbnVsZTsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5jCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRf
c3Bhbi5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29tbWl0X3NwYW4uYwkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDE0IEBA
CiAKIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKIAotdm9pZCBwYXNfY29tbWl0
X3NwYW5fY29uc3RydWN0KHBhc19jb21taXRfc3Bhbiogc3BhbikKK3ZvaWQgcGFzX2NvbW1pdF9z
cGFuX2NvbnN0cnVjdChwYXNfY29tbWl0X3NwYW4qIHNwYW4sIHBhc19tbWFwX2NhcGFiaWxpdHkg
bW1hcF9jYXBhYmlsaXR5KQogewogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCIl
cDogY3JlYXRpbmcgY29tbWl0IHNwYW4uXG4iLCBzcGFuKTsKICAgICBzcGFuLT5pbmRleF9vZl9z
dGFydF9vZl9zcGFuID0gVUlOVFBUUl9NQVg7CiAgICAgc3Bhbi0+ZGlkX2FkZF9maXJzdCA9IGZh
bHNlOwogICAgIHNwYW4tPnRvdGFsX2J5dGVzID0gMDsKKyAgICBzcGFuLT5tbWFwX2NhcGFiaWxp
dHkgPSBtbWFwX2NhcGFiaWxpdHk7CiB9CiAKIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2FkZF90b19j
aGFuZ2UocGFzX2NvbW1pdF9zcGFuKiBzcGFuLCB1aW50cHRyX3QgZ3JhbnVsZV9pbmRleCkKQEAg
LTg0LDggKzg1LDExIEBAIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2FkZF91bmNoYW5nZWQocGFzX2MK
IAogc3RhdGljIHZvaWQgY29tbWl0KHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCB2b2lkKiBhcmcp
CiB7Ci0gICAgUEFTX0FTU0VSVCghYXJnKTsKLSAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGJh
c2UsIHNpemUpOworICAgIHBhc19jb21taXRfc3Bhbiogc3BhbjsKKworICAgIHNwYW4gPSBhcmc7
CisgICAgCisgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChiYXNlLCBzaXplLCBzcGFuLT5tbWFw
X2NhcGFiaWxpdHkpOwogfQogCiB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkX2Fu
ZF9jb21taXQocGFzX2NvbW1pdF9zcGFuKiBzcGFuLApAQCAtOTMsNyArOTcsNyBAQCB2b2lkIHBh
c19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkX2FuZF9jCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGdyYW51bGVfaW5kZXgsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZV9jb25m
aWcqIGNvbmZpZykKIHsKLSAgICBwYXNfY29tbWl0X3NwYW5fYWRkX3VuY2hhbmdlZChzcGFuLCBw
YWdlLCBncmFudWxlX2luZGV4LCBjb25maWcsIGNvbW1pdCwgTlVMTCk7CisgICAgcGFzX2NvbW1p
dF9zcGFuX2FkZF91bmNoYW5nZWQoc3BhbiwgcGFnZSwgZ3JhbnVsZV9pbmRleCwgY29uZmlnLCBj
b21taXQsIHNwYW4pOwogfQogCiB0eXBlZGVmIHN0cnVjdCB7CkBAIC0xMTcsNyArMTIxLDggQEAg
c3RhdGljIHZvaWQgZGVjb21taXQodm9pZCogYmFzZSwgc2l6ZV90IAogICAgICAgICBwYXNfdmly
dHVhbF9yYW5nZV9jcmVhdGUoCiAgICAgICAgICAgICAodWludHB0cl90KWJhc2UsCiAgICAgICAg
ICAgICAodWludHB0cl90KWJhc2UgKyBzaXplLAotICAgICAgICAgICAgZGF0YS0+c3Bhbi0+ZGlk
X2FkZF9maXJzdCA/IE5VTEwgOiBkYXRhLT5jb21taXRfbG9jayksCisgICAgICAgICAgICBkYXRh
LT5zcGFuLT5kaWRfYWRkX2ZpcnN0ID8gTlVMTCA6IGRhdGEtPmNvbW1pdF9sb2NrLAorICAgICAg
ICAgICAgZGF0YS0+c3Bhbi0+bW1hcF9jYXBhYmlsaXR5KSwKICAgICAgICAgZGF0YS0+aGVhcF9s
b2NrX2hvbGRfbW9kZSk7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21taXRfc3Bhbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5oCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uaAkod29ya2luZyBj
b3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0yNyw2ICsyNyw3IEBACiAjZGVmaW5lIFBBU19DT01NSVRfU1BBTl9ICiAKICNpbmNsdWRl
ICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc19tbWFwX2NhcGFiaWxpdHkuaCIKIAogUEFTX0JF
R0lOX0VYVEVSTl9DOwogCkBAIC00Myw5ICs0NCwxMCBAQCBzdHJ1Y3QgcGFzX2NvbW1pdF9zcGFu
IHsKICAgICB1aW50cHRyX3QgaW5kZXhfb2Zfc3RhcnRfb2Zfc3BhbjsKICAgICBib29sIGRpZF9h
ZGRfZmlyc3Q7CiAgICAgc2l6ZV90IHRvdGFsX2J5dGVzOworICAgIHBhc19tbWFwX2NhcGFiaWxp
dHkgbW1hcF9jYXBhYmlsaXR5OwogfTsKIAotUEFTX0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9j
b25zdHJ1Y3QocGFzX2NvbW1pdF9zcGFuKiBzcGFuKTsKK1BBU19BUEkgdm9pZCBwYXNfY29tbWl0
X3NwYW5fY29uc3RydWN0KHBhc19jb21taXRfc3Bhbiogc3BhbiwgcGFzX21tYXBfY2FwYWJpbGl0
eSBtbWFwX2NhcGFiaWxpdHkpOwogUEFTX0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdG9f
Y2hhbmdlKHBhc19jb21taXRfc3Bhbiogc3BhbiwgdWludHB0cl90IGdyYW51bGVfaW5kZXgpOwog
UEFTX0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkKHBhc19jb21taXRfc3Bh
biogc3BhbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
cGFnZV9iYXNlKiBwYWdlLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jCShub25leGlz
dGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yLmMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAicGFzX2NvbmZp
Zy5oIgorCisjaWYgTElCUEFTX0VOQUJMRUQKKworI2luY2x1ZGUgInBhc19jb21taXR0ZWRfcGFn
ZXNfdmVjdG9yLmgiCisKKyNpbmNsdWRlICJwYXNfYWxsb2NhdGlvbl9jb25maWcuaCIKKyNpbmNs
dWRlICJwYXNfcGFnZV9tYWxsb2MuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCit2b2lkIHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvbnN0cnVjdChwYXNfY29tbWl0dGVkX3BhZ2VzX3Zl
Y3RvciogdmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dm9pZCogb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBj
b25zdCBwYXNfYWxsb2NhdGlvbl9jb25maWcqIGFsbG9jYXRpb25fY29uZmlnKQoreworICAgIHNp
emVfdCBwYWdlX3NpemU7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICBzaXplX3Qg
bnVtX3BhZ2VzOworCisgICAgcGFnZV9zaXplID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgp
OworICAgIHBhZ2Vfc2l6ZV9zaGlmdCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQo
KTsKKworICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoKHVpbnRwdHJfdClvYmplY3QsIHBh
Z2Vfc2l6ZSkpOworICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoc2l6ZSwgcGFnZV9zaXpl
KSk7CisKKyAgICBudW1fcGFnZXMgPSBzaXplID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIHZl
Y3Rvci0+cmF3X2RhdGEgPSBhbGxvY2F0aW9uX2NvbmZpZy0+YWxsb2NhdGUoCisgICAgICAgIG51
bV9wYWdlcywgInBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yL3Jhd19kYXRhIiwgcGFzX29iamVj
dF9hbGxvY2F0aW9uLCBhbGxvY2F0aW9uX2NvbmZpZy0+YXJnKTsKKyAgICB2ZWN0b3ItPnNpemUg
PSBudW1fcGFnZXM7CisKKyAgICBQQVNfU1lTQ0FMTChtaW5jb3JlKG9iamVjdCwgc2l6ZSwgdmVj
dG9yLT5yYXdfZGF0YSkpOworfQorCit2b2lkIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rl
c3RydWN0KHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyog
YWxsb2NhdGlvbl9jb25maWcpCit7CisgICAgYWxsb2NhdGlvbl9jb25maWctPmRlYWxsb2NhdGUo
CisgICAgICAgIHZlY3Rvci0+cmF3X2RhdGEsIHZlY3Rvci0+c2l6ZSwgcGFzX29iamVjdF9hbGxv
Y2F0aW9uLCBhbGxvY2F0aW9uX2NvbmZpZy0+YXJnKTsKK30KKworc2l6ZV90IHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2NvbW1pdHRlZChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rv
ciogdmVjdG9yKQoreworICAgIHNpemVfdCByZXN1bHQ7CisgICAgc2l6ZV90IGluZGV4OworICAg
IHJlc3VsdCA9IDA7CisgICAgZm9yIChpbmRleCA9IHZlY3Rvci0+c2l6ZTsgaW5kZXgtLTspCisg
ICAgICAgIHJlc3VsdCArPSAoc2l6ZV90KXBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2lzX2Nv
bW1pdHRlZCh2ZWN0b3IsIGluZGV4KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitzaXplX3Qg
cGFzX2NvdW50X2NvbW1pdHRlZF9wYWdlcyh2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcpCit7
CisgICAgc2l6ZV90IHJlc3VsdDsKKyAgICBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciB2ZWN0
b3I7CisgICAgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY29uc3RydWN0KCZ2ZWN0b3IsIG9i
amVjdCwgc2l6ZSwgYWxsb2NhdGlvbl9jb25maWcpOworICAgIHJlc3VsdCA9IHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2NvbW1pdHRlZCgmdmVjdG9yKTsKKyAgICBwYXNfY29tbWl0
dGVkX3BhZ2VzX3ZlY3Rvcl9kZXN0cnVjdCgmdmVjdG9yLCBhbGxvY2F0aW9uX2NvbmZpZyk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIExJ
QlBBU19FTkFCTEVEICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NTUlU
VEVEX1BBR0VTX1ZFQ1RPUl9ICisjZGVmaW5lIFBBU19DT01NSVRURURfUEFHRVNfVkVDVE9SX0gK
KworI2luY2x1ZGUgInBhc191dGlscy5oIgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1
ZGUgPHN5cy9tbWFuLmg+CisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19hbGxv
Y2F0aW9uX2NvbmZpZzsKK3N0cnVjdCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvcjsKK3R5cGVk
ZWYgc3RydWN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyBwYXNfYWxsb2NhdGlvbl9jb25maWc7Cit0
eXBlZGVmIHN0cnVjdCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciBwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3RvcjsKKworc3RydWN0IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yIHsKKyAgICBj
aGFyKiByYXdfZGF0YTsKKyAgICBzaXplX3Qgc2l6ZTsKK307CisKK1BBU19BUEkgdm9pZCBwYXNf
Y29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb25zdHJ1Y3QocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0
b3IqIHZlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdm9pZCogb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFzX2FsbG9jYXRpb25fY29uZmlnKiBhbGxvY2F0
aW9uX2NvbmZpZyk7CisKK1BBU19BUEkgdm9pZCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9k
ZXN0cnVjdChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciogdmVjdG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9u
X2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcpOworCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3JfaXNfY29tbWl0dGVkKHBhc19jb21taXR0ZWRfcGFnZXNfdmVj
dG9yKiB2ZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNpemVfdCBwYWdlX2luZGV4KQoreworICAgIFBBU19BU1NFUlQocGFn
ZV9pbmRleCA8IHZlY3Rvci0+c2l6ZSk7CisgICAgcmV0dXJuIHZlY3Rvci0+cmF3X2RhdGFbcGFn
ZV9pbmRleF0gJiAoTUlOQ09SRV9SRUZFUkVOQ0VEIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNSU5DT1JFX1JFRkVSRU5DRURfT1RIRVIgfAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTkNPUkVfTU9ESUZJRURfT1RIRVIg
fAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTkNPUkVfTU9E
SUZJRUQpOworfQorCitQQVNfQVBJIHNpemVfdCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9j
b3VudF9jb21taXR0ZWQocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IqIHZlY3Rvcik7CisKK1BB
U19BUEkgc2l6ZV90IHBhc19jb3VudF9jb21taXR0ZWRfcGFnZXModm9pZCogb2JqZWN0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFzX2FsbG9jYXRpb25f
Y29uZmlnKiBhbGxvY2F0aW9uX2NvbmZpZyk7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRp
ZiAvKiBQQVNfQ09NTUlUVEVEX1BBR0VTX1ZFQ1RPUl9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RhZ2dlZF9wdHIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRf
cHRyLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X3RhZ2dlZF9wdHIuaAkod29ya2luZyBjb3B5KQpAQCAtOTYsNiArOTYs
MTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgICAgICB9IFwKICAgICB9IFwKICAgICBcCisg
ICAgc3RhdGljIGlubGluZSBib29sIG5hbWUgIyMgX2lzX251bGwobmFtZSogcHRyKSBcCisgICAg
eyBcCisgICAgICAgIHJldHVybiAhKCoodWludHB0cl90KilwdHIgJiBQQVNfQ09NUEFDVF9UQUdH
RURfUFRSX01BU0spOyBcCisgICAgfSBcCisgICAgXAogICAgIHN0YXRpYyBpbmxpbmUgdHlwZSBu
YW1lICMjIF9sb2FkKG5hbWUqIHB0cikgXAogICAgIHsgXAogICAgICAgICByZXR1cm4gbmFtZSAj
IyBfcHRyX2Zvcl9vZmZzZXQoKih1aW50cHRyX3QqKXB0ciAmIFBBU19DT01QQUNUX1RBR0dFRF9Q
VFJfTUFTSyk7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfQ09NUEFDVF9USFJFQURfTE9DQUxf
Q0FDSEVfTEFZT1VUX05PREVfSAorI2RlZmluZSBQQVNfQ09NUEFDVF9USFJFQURfTE9DQUxfQ0FD
SEVfTEFZT1VUX05PREVfSAorCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oIgor
I2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKworUEFTX0JF
R0lOX0VYVEVSTl9DOworCitQQVNfREVGSU5FX0NPTVBBQ1RfVEFHR0VEX1BUUihwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlKTsKKworUEFTX0VORF9F
WFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19DT01QQUNUX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlP
VVRfTk9ERV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmgJKG5vbmV4
aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfREVD
T01NSVRfRVhDTFVTSU9OX1JBTkdFX0gKKyNkZWZpbmUgUEFTX0RFQ09NTUlUX0VYQ0xVU0lPTl9S
QU5HRV9ICisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOwor
CitzdHJ1Y3QgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZTsKK3R5cGVkZWYgc3RydWN0IHBh
c19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZTsK
Kworc3RydWN0IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgeworICAgIHVpbnRwdHJfdCBz
dGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKKyAgICB1aW50cHRyX3QgZW5kX29mX3Bvc3NpYmxl
X2RlY29tbWl0OworfTsKKworc3RhdGljIGlubGluZSBib29sIHBhc19kZWNvbW1pdF9leGNsdXNp
b25fcmFuZ2VfaXNfZW1wdHkocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSByYW5nZSkKK3sK
KyAgICByZXR1cm4gcmFuZ2Uuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPT0gcmFuZ2UuZW5k
X29mX3Bvc3NpYmxlX2RlY29tbWl0OworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2RlY29t
bWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19jb250aWd1b3VzKHBhc19kZWNvbW1pdF9leGNsdXNpb25f
cmFuZ2UgcmFuZ2UpCit7CisgICAgcmV0dXJuIHJhbmdlLnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29t
bWl0IDwgcmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0OworfQorCisvKiBUaGlzIG1lYW5z
IHRoYXQgdGhlIHNldCBvZiB0aGluZ3MgdGhhdCBjb3VsZCBiZSBkZWNvbW1pdHRlZCBpcyBhbnl0
aGluZyBiZWZvcmUgZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0CisgICAoZXhjbHVzaXZlKSBhbmQg
YWZ0ZXIgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgKGluY2x1c2l2ZSkuICovCitzdGF0aWMg
aW5saW5lIGJvb2wgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRlZChwYXNf
ZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVybiByYW5nZS5zdGFy
dF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA+IHJhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsK
K30KKworc3RhdGljIGlubGluZSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlCitwYXNfZGVj
b21taXRfZXhjbHVzaW9uX3JhbmdlX2NyZWF0ZV9pbnZlcnRlZChwYXNfZGVjb21taXRfZXhjbHVz
aW9uX3JhbmdlIHJhbmdlKQoreworICAgIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmVz
dWx0OworICAgIHJlc3VsdC5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9IHJhbmdlLmVuZF9v
Zl9wb3NzaWJsZV9kZWNvbW1pdDsKKyAgICByZXN1bHQuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0
ID0gcmFuZ2Uuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQ7CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19ERUNPTU1JVF9FWENMVVNJ
T05fUkFOR0VfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5jCShyZXZpc2lvbiAy
ODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRf
ZGVjb21taXRfbG9nLmMJKHdvcmtpbmcgY29weSkKQEAgLTIzNiw3ICsyMzYsNyBAQCBzdGF0aWMg
dm9pZCBkZWNvbW1pdF9hbGwocGFzX2RlZmVycmVkX2RlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAodm9pZCopcmFuZ2UuZW5kKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAg
ICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KCh2b2lkKilyYW5nZS5iZWdpbiwgcGFzX3Zp
cnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSkpOworICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2Rl
Y29tbWl0KCh2b2lkKilyYW5nZS5iZWdpbiwgcGFzX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSks
IHJhbmdlLm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIFBB
U19BU1NFUlQoZW5kX2luZGV4KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jCShyZXZpc2lvbiAyODgz
NDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9t
ZW1vcnkuYwkod29ya2luZyBjb3B5KQpAQCAtMzQ0LDkgKzM0NCwxNCBAQCBzdGF0aWMgUEFTX0FM
V0FZU19JTkxJTkUgYm9vbCBzY2F2ZW5nZV9pCiAgICAgICAgICAgIG1lbW9yeS4gU28sIGl0IG1p
Z2h0IGhhcHBlbiBhZnRlciB3ZSBoYXZlIGFscmVhZHkgZGVjb21taXR0ZWQsIG9yIGRlY2lkZWQg
dG8gZGVjb21taXQuICovCiAgICAgICAgIHBhc19zdG9yZV9zdG9yZV9mZW5jZSgpOwogCisgICAg
ICAgIC8qIFRoaXMgY3VycmVudGx5IGFzc3VtZXMgdGhhdCBpdCdzIGxlZ2FsIHRvIGRvIGRlY29t
bWl0IHdpdGhvdXQgbGF0ZXIgY29tbWl0dGluZy4gSXQncyBub3Qgb2J2aW91cworICAgICAgICAg
ICB0aGF0IHRoaXMgaXMgYSBoYXJkIHJlcXVpcmVtZW50IG9mIHRoZSBhbGdvcml0aG07IGxpa2Ug
cGVyaGFwcyBpdCB3b3VsZCBiZSBlYXN5IHRvIGFkZCB0aGUgbmVjZXNzYXJ5CisgICAgICAgICAg
IGNvbW1pdCBjYWxscy4gKi8KICAgICAgICAgaWYgKHNjYXZlbmdlX2tpbmQgIT0gcGFzX2V4cGVu
ZGFibGVfbWVtb3J5X3NjYXZlbmdlX2ZvcmNlZF9mYWtlKSB7Ci0gICAgICAgICAgICBwYXNfcGFn
ZV9tYWxsb2NfZGVjb21taXRfYXN5bW1ldHJpYygoY2hhciopcGF5bG9hZCArIGluZGV4ICogUEFT
X0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChvdGhlcl9pbmRleCAtIGluZGV4KSAqIFBBU19FWFBFTkRB
QkxFX01FTU9SWV9QQUdFX1NJWkUpOworICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29t
bWl0X3dpdGhvdXRfbXByb3RlY3QoCisgICAgICAgICAgICAgICAgKGNoYXIqKXBheWxvYWQgKyBp
bmRleCAqIFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkUsCisgICAgICAgICAgICAgICAg
KG90aGVyX2luZGV4IC0gaW5kZXgpICogUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSwK
KyAgICAgICAgICAgICAgICBwYXNfbWF5X21tYXApOwogICAgICAgICB9CiAKICAgICAgICAgLyog
QXQgdGhpcyBwb2ludCwgYW55IG9mIHRoZSBwYWdlcyBpbiB0aGlzIHJhbmdlIGNvdWxkIGdldCBk
ZWNvbW1pdHRlZCwgYnV0IGl0IHdvbid0IG5lY2Vzc2FyaWx5CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFudWxlcy5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51bGVzLmMJKHJldmlz
aW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVl
X2dyYW51bGVzLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgInBhc19m
cmVlX2dyYW51bGVzLmgiCiAKICNpbmNsdWRlICJwYXNfY29tbWl0X3NwYW4uaCIKKyNpbmNsdWRl
ICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9nLmgiCiAjaW5jbHVkZSAicGFz
X3BhZ2VfYmFzZV9jb25maWcuaCIKIApAQCAtMTA1LDcgKzEwNiw3IEBAIHZvaWQgcGFzX2ZyZWVf
Z3JhbnVsZXNfZGVjb21taXRfYWZ0ZXJfbG8KICAgICBQQVNfQVNTRVJUKG51bV9ncmFudWxlcyA+
PSAyKTsgLyogSWYgdGhlcmUgaXMgb25seSBvbmUgZ3JhbnVsZSB0aGVuIHdlIGRvbid0IGhhdmUg
dXNlIGNvdW50cy4gKi8KICAgICBQQVNfQVNTRVJUKG51bV9ncmFudWxlcyA8PSBQQVNfTUFYX0dS
QU5VTEVTKTsKIAotICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuKTsK
KyAgICBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3BhbiwgcGFnZV9jb25maWct
PmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKIAogICAgIGZvciAoZ3JhbnVsZV9p
bmRleCA9IDA7IGdyYW51bGVfaW5kZXggPCBudW1fZ3JhbnVsZXM7ICsrZ3JhbnVsZV9pbmRleCkg
ewogICAgICAgICBpZiAocGFzX2ZyZWVfZ3JhbnVsZXNfaXNfZnJlZShmcmVlX2dyYW51bGVzLCBn
cmFudWxlX2luZGV4KSkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXAuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfaGVhcC5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC03Niw5ICs3NiwyMiBAQCBw
YXNfaGVhcCogcGFzX2hlYXBfY3JlYXRlKHBhc19oZWFwX3JlZiogCiAKIHNpemVfdCBwYXNfaGVh
cF9nZXRfdHlwZV9zaXplKHBhc19oZWFwKiBoZWFwKQogeworICAgIHBhc19oZWFwX2NvbmZpZ19r
aW5kIGtpbmQ7CisgICAgcGFzX2hlYXBfY29uZmlnKiBjb25maWc7CiAgICAgaWYgKCFoZWFwKQog
ICAgICAgICByZXR1cm4gMTsKLSAgICByZXR1cm4gcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X2Nv
bmZpZyhoZWFwLT5jb25maWdfa2luZCktPmdldF90eXBlX3NpemUoaGVhcC0+dHlwZSk7CisgICAg
a2luZCA9IGhlYXAtPmNvbmZpZ19raW5kOworICAgIFBBU19BU1NFUlQoa2luZCAhPSBwYXNfaGVh
cF9jb25maWdfa2luZF9udWxsKTsKKyAgICBjb25maWcgPSBwYXNfaGVhcF9jb25maWdfa2luZF9n
ZXRfY29uZmlnKGtpbmQpOworICAgIFBBU19BU1NFUlQoY29uZmlnKTsKKyAgICByZXR1cm4gY29u
ZmlnLT5nZXRfdHlwZV9zaXplKGhlYXAtPnR5cGUpOworfQorCitzaXplX3QgcGFzX2hlYXBfZ2V0
X3R5cGVfYWxpZ25tZW50KHBhc19oZWFwKiBoZWFwKQoreworICAgIGlmICghaGVhcCkKKyAgICAg
ICAgcmV0dXJuIDE7CisgICAgcmV0dXJuIHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWco
aGVhcC0+Y29uZmlnX2tpbmQpLT5nZXRfdHlwZV9hbGlnbm1lbnQoaGVhcC0+dHlwZSk7CiB9CiAK
IHNpemVfdCBwYXNfaGVhcF9nZXRfbnVtX2ZyZWVfYnl0ZXMocGFzX2hlYXAqIGhlYXApCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJKHJldmlzaW9u
IDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTU5LDYgKzU5LDcgQEAgUEFTX0FQSSBwYXNfaGVhcCogcGFzX2hl
YXBfY3JlYXRlKHBhc19oZQogCiAvKiBSZXR1cm5zIDEgZm9yIE5VTEwgaGVhcC4gKi8KIFBBU19B
UEkgc2l6ZV90IHBhc19oZWFwX2dldF90eXBlX3NpemUocGFzX2hlYXAqIGhlYXApOworUEFTX0FQ
SSBzaXplX3QgcGFzX2hlYXBfZ2V0X3R5cGVfYWxpZ25tZW50KHBhc19oZWFwKiBoZWFwKTsKIAog
LyogVGhlIGxhcmdlIGhlYXAgYmVsb25ncyB0byB0aGUgaGVhcCBpbiBzdWNoIGEgd2F5IHRoYXQg
Z2l2ZW4gYSBsYXJnZSBoZWFwLCB3ZSBjYW4gZmluZCB0aGUKICAgIGhlYXAuICovCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcu
aAkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4LDcgKzM4LDcgQEAKICNpbmNs
dWRlICJwYXNfaGVhcF9jb25maWdfa2luZC5oIgogI2luY2x1ZGUgInBhc19oZWFwX3JlZi5oIgog
I2luY2x1ZGUgInBhc19oZWFwX3JlZl9raW5kLmgiCi0jaW5jbHVkZSAicGFzX2FsbG9jYXRpb25f
cmVzdWx0LmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX2hlYXBfbG9va3VwX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRl
ZF9wYWdlX2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19zaXplX2xvb2t1cF9tb2RlLmgiCkBAIC0x
NzQsNiArMTc0LDkgQEAgc3RydWN0IHBhc19oZWFwX2NvbmZpZyB7CiAgICAgYm9vbCBhbGlnbmVk
X2FsbG9jYXRvcl90YWxrc190b19zaGFyaW5nX3Bvb2w7CiAgICAgcGFzX2RlYWxsb2NhdG9yIGRl
YWxsb2NhdG9yOwogCisgICAgLyogVGVsbHMgaWYgaXQncyBPSyB0byBjYWxsIG1tYXAgb24gbWVt
b3J5IG1hbmFnZWQgYnkgdGhpcyBoZWFwLiAqLworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1h
cF9jYXBhYmlsaXR5OworCiAgICAgLyogVGhpcyBwb2ludHMgdG8gdGhpbmdzIHRoYXQgYXJlIG5l
Y2Vzc2FyeSBmb3IgZW51bWVyYXRpb24gdGhhdCBhcmUgc3BlY2lmaWMgdG8gdGhlIGhlYXAgY29u
ZmlnLiAqLwogICAgIHZvaWQqIHJvb3RfZGF0YTsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMJKHJl
dmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZ191dGlscy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMjMsNyArMTIzLDcgQEAgcGFz
X2hlYXBfY29uZmlnX3V0aWxzX2FsbG9jYXRlX2FsaWduZWQoCiAgICAgCiAgICAgYWxsb2NhdGlv
bl9yZXN1bHQgPQogICAgICAgICBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdf
Y2FjaGVfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICAgICAgY2FjaGUsIGFs
aWduZWRfc2l6ZSwgYWxpZ25tZW50LCBzaG91bGRfemVybyk7CisgICAgICAgICAgICBjYWNoZSwg
YWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIGNvbmZpZywgc2hvdWxkX3plcm8pOwogICAgIGlmICgh
YWxsb2NhdGlvbl9yZXN1bHQuZGlkX3N1Y2NlZWQpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191
dGlscy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX2NvbmZpZ191dGlscy5oCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzMyLDYgKzMzMiw3IEBAIHR5cGVkZWYgc3RydWN0IHsKICAgICAgICAgLmFsaWduZWRf
YWxsb2NhdG9yID0gbmFtZSAjIyBfYWxpZ25lZF9hbGxvY2F0b3IsIFwKICAgICAgICAgLmFsaWdu
ZWRfYWxsb2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCA9IHRydWUsIFwKICAgICAgICAgLmRl
YWxsb2NhdG9yID0gTlVMTCwgXAorICAgICAgICAubW1hcF9jYXBhYmlsaXR5ID0gcGFzX21heV9t
bWFwLCBcCiAgICAgICAgIC5yb290X2RhdGEgPSAmbmFtZSAjIyBfcm9vdF9kYXRhLCBcCiAgICAg
ICAgIC5wcmVwYXJlX3RvX2VudW1lcmF0ZSA9IG5hbWUgIyMgX3ByZXBhcmVfdG9fZW51bWVyYXRl
LCBcCiAgICAgICAgIC5mb3JfZWFjaF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBcCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYwkocmV2
aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfcmVmLmMJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgcGFzX2hlYXAqIHBhc19l
bnN1cmVfaGVhcF9zbG93KHBhc19oZWFwXwogICAgIGhlYXAgPSBoZWFwX3JlZi0+aGVhcDsKICAg
ICBpZiAoIWhlYXApIHsKICAgICAgICAgaGVhcCA9IHBhc19oZWFwX2NyZWF0ZShoZWFwX3JlZiwg
aGVhcF9yZWZfa2luZCwgY29uZmlnLCBydW50aW1lX2NvbmZpZyk7CisgICAgICAgIHBhc19zdG9y
ZV9zdG9yZV9mZW5jZSgpOwogICAgICAgICBoZWFwX3JlZi0+aGVhcCA9IGhlYXA7CiAgICAgfQog
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCShyZXZpc2lvbiAy
ODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJuYWxf
Y29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw4ICsxNDMsOCBAQAogI2RlZmluZSBQQVNf
UEFHRV9CQUxBTkNJTkdfRU5BQkxFRCAgICAgICAgICAgIGZhbHNlCiAjZW5kaWYKIAotI2RlZmlu
ZSBQQVNfU01BTExfU0hBUkVEX1BBR0VfTE9HX1NISUZUICAgICAwCi0jZGVmaW5lIFBBU19NRURJ
VU1fU0hBUkVEX1BBR0VfTE9HX1NISUZUICAgIDEKKyNkZWZpbmUgUEFTX1NNQUxMX1NIQVJFRF9Q
QUdFX0xPR19TSElGVCAgICAgMzEKKyNkZWZpbmUgUEFTX01FRElVTV9TSEFSRURfUEFHRV9MT0df
U0hJRlQgICAgMzEKIAogLyogTXVzdCBiZSB6ZXJvOyB1dGlsaXR5IGRvZXNuJ3Qgc3VwcG9ydCBw
YXJ0aWFscyByaWdodCBub3cgKHRob3VnaCBpdCBjb3VsZCBpZiB3ZSBoYWNrZWQgZGVhbGxvY2F0
aW9uIGFuZAogICAgYWRkZWQgYSBzaGFyZWQgcGFnZSBkaXJlY3RvcnkpLiAqLwpAQCAtMTg5LDcg
KzE4OSw3IEBACiAgICBvYmplY3RzIHdpbGwgb25seSBvdmVybGFwIGF0IHRoZSBoZWFkZXIuIEhv
d2V2ZXIsIEZJWE1FOiB3ZSBuZWVkIGZsZXggaGVhcHMgdG8gdXNlIGEgbGFyZ2UgaGVhcAogICAg
dGhhdCB3b24ndCBvdmVybGFwIG9iamVjdHMgaW4gdGhlc2UgaGVhcHMgYXMgaWYgdGhleSB3ZXJl
IGFycmF5cy4gKi8KICNkZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX1BBUlRJQUxfVklFV1MgICAg
ICAgICAgICAgICAgICAgICAgICAxMAotI2RlZmluZSBQQVNfRkxFWF9CT1VORF9GT1JfQkFTRUxJ
TkVfQUxMT0NBVE9SUyAgICAgICAgICAgICAgICAgIDEwCisjZGVmaW5lIFBBU19GTEVYX0JPVU5E
X0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgICAgMAogI2RlZmluZSBQQVNf
RkxFWF9CT1VORF9GT1JfTk9fVklFV19DQUNIRSAgICAgICAgICAgICAgICAgICAgICAgIFVJTlRf
TUFYCiAjZGVmaW5lIFBBU19GTEVYX01BWF9TRUdSRUdBVEVEX09CSkVDVF9TSVpFICAgICAgICAg
ICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX0ZMRVhfTUFYX0JJVEZJVF9PQkpFQ1Rf
U0laRSAgICAgICAgICAgICAgICAgICAgICAgICAwCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJl
ZF9jb21taXRfbG9nLmMJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAKIHZvaWQgcGFz
X2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2NvbnN0cnVjdCgKICAgICBwYXNf
bGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGxvZykKIHsKLSAgICBwYXNfcmFu
Z2VfbWluX2hlYXBfY29uc3RydWN0KCZsb2ctPmltcGwpOworICAgIHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlX21pbl9oZWFwX2NvbnN0cnVjdCgmbG9nLT5pbXBsKTsKICAgICBsb2ctPnRvdGFsID0g
MDsKIH0KIApAQCAtNTIsMTIgKzUyLDEyIEBAIHZvaWQgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZl
cnJlZF9jb21taXQKICAgICBQQVNfQVNTRVJUKCFsb2ctPmltcGwuc2l6ZSk7CiAgICAgCiAgICAg
cGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWdfY29uc3RydWN0KCZhbGxv
Y2F0aW9uX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7Ci0gICAgcGFzX3JhbmdlX21pbl9oZWFw
X2Rlc3RydWN0KCZsb2ctPmltcGwsICZhbGxvY2F0aW9uX2NvbmZpZyk7CisgICAgcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXBfZGVzdHJ1Y3QoJmxvZy0+aW1wbCwgJmFsbG9jYXRpb25f
Y29uZmlnKTsKIH0KIAogYm9vbCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9s
b2dfYWRkKAogICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogbG9n
LAotICAgIHBhc19yYW5nZSByYW5nZSwKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5n
ZSwKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbikKIHsK
ICAgICBwYXNfYWxsb2NhdGlvbl9jb25maWcgYWxsb2NhdGlvbl9jb25maWc7CkBAIC03MCwxMCAr
NzAsMTAgQEAgYm9vbCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdAogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIAotICAgIGxvZy0+dG90YWwgKz0gcGFzX3Jhbmdl
X3NpemUocmFuZ2UpOworICAgIGxvZy0+dG90YWwgKz0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vf
c2l6ZShyYW5nZSk7CiAgICAgCiAgICAgcGFzX2Jvb3RzdHJhcF9mcmVlX2hlYXBfYWxsb2NhdGlv
bl9jb25maWdfY29uc3RydWN0KCZhbGxvY2F0aW9uX2NvbmZpZywgcGFzX2xvY2tfaXNfaGVsZCk7
Ci0gICAgcGFzX3JhbmdlX21pbl9oZWFwX2FkZCgmbG9nLT5pbXBsLCByYW5nZSwgJmFsbG9jYXRp
b25fY29uZmlnKTsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcF9hZGQoJmxv
Zy0+aW1wbCwgcmFuZ2UsICZhbGxvY2F0aW9uX2NvbmZpZyk7CiAgICAgCiAgICAgcmV0dXJuIHRy
dWU7CiB9CkBAIC04NCwxMSArODQsMTEgQEAgc3RhdGljIHZvaWQgZHVtcF9sYXJnZV9jb21taXQo
cGFzX3N0cmVhbQogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgImxhcmdlIGRlZmVycmVk
Iik7CiB9CiAKLXN0YXRpYyB2b2lkIGNvbW1pdChwYXNfcmFuZ2UgcmFuZ2UpCitzdGF0aWMgdm9p
ZCBjb21taXQocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAotICAgIGlmIChwYXNfcmFuZ2VfaXNfZW1w
dHkocmFuZ2UpKQorICAgIGlmIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eShyYW5n
ZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAodmVyYm9zZSkgewpAQCAtOTcsMTAg
Kzk3LDEwIEBAIHN0YXRpYyB2b2lkIGNvbW1pdChwYXNfcmFuZ2UgcmFuZ2UpCiAgICAgICAgICAg
ICAgICAodm9pZCopcmFuZ2UuZW5kKTsKICAgICB9CiAgICAgCi0gICAgcGFzX3BhZ2VfbWFsbG9j
X2NvbW1pdCgodm9pZCopcmFuZ2UuYmVnaW4sIHBhc19yYW5nZV9zaXplKHJhbmdlKSk7CisgICAg
cGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgodm9pZCopcmFuZ2UuYmVnaW4sIHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlX3NpemUocmFuZ2UpLCByYW5nZS5tbWFwX2NhcGFiaWxpdHkpOwogCiAgICAgaWYg
KFBBU19ERUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkKLSAgICAgICAgcGFzX2RlYnVnX3Nw
ZWN0cnVtX2FkZChkdW1wX2xhcmdlX2NvbW1pdCwgZHVtcF9sYXJnZV9jb21taXQsIHBhc19yYW5n
ZV9zaXplKHJhbmdlKSk7CisgICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoZHVtcF9sYXJn
ZV9jb21taXQsIGR1bXBfbGFyZ2VfY29tbWl0LCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXpl
KHJhbmdlKSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNvbW1pdF9hbGwoCkBAIC0xMDgsMTkgKzEwOCwx
OSBAQCBzdGF0aWMgdm9pZCBjb21taXRfYWxsKAogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJh
bnNhY3Rpb24qIHRyYW5zYWN0aW9uLAogICAgIGJvb2wgZm9yX3JlYWwpCiB7Ci0gICAgcGFzX3Jh
bmdlIGN1cnJlbnRfcmFuZ2U7CisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgY3VycmVudF9y
YW5nZTsKICAgICAKICAgICBpZiAoIWxvZy0+dG90YWwpCiAgICAgICAgIHJldHVybjsKICAgICAK
LSAgICBjdXJyZW50X3JhbmdlID0gcGFzX3JhbmdlX2NyZWF0ZV9lbXB0eSgpOworICAgIGN1cnJl
bnRfcmFuZ2UgPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1wdHkoKTsKICAgICAK
ICAgICBmb3IgKDs7KSB7Ci0gICAgICAgIHBhc19yYW5nZSBuZXh0X3JhbmdlID0gcGFzX3Jhbmdl
X21pbl9oZWFwX3Rha2VfbWluKCZsb2ctPmltcGwpOwotICAgICAgICBpZiAocGFzX3JhbmdlX2lz
X2VtcHR5KG5leHRfcmFuZ2UpKQorICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBuZXh0
X3JhbmdlID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXBfdGFrZV9taW4oJmxvZy0+
aW1wbCk7CisgICAgICAgIGlmIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eShuZXh0
X3JhbmdlKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAKLSAgICAgICAgUEFTX0FTU0VS
VCghcGFzX3JhbmdlX292ZXJsYXBzKGN1cnJlbnRfcmFuZ2UsIG5leHRfcmFuZ2UpKTsKKyAgICAg
ICAgUEFTX0FTU0VSVCghcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfb3ZlcmxhcHMoY3VycmVudF9y
YW5nZSwgbmV4dF9yYW5nZSkpOwogICAgICAgICAKICAgICAgICAgaWYgKG5leHRfcmFuZ2UuYmVn
aW4gPT0gY3VycmVudF9yYW5nZS5lbmQpIHsKICAgICAgICAgICAgIGN1cnJlbnRfcmFuZ2UuZW5k
ID0gbmV4dF9yYW5nZS5lbmQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2Rl
ZmVycmVkX2NvbW1pdF9sb2cuaAkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9n
LmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAy
MDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAx
OS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMjYsOCArMjYsOCBAQAogI2lmbmRlZiBQQVNfTEFSR0VfRlJFRV9I
RUFQX0RFRkVSUkVEX0NPTU1JVF9MT0dfSAogI2RlZmluZSBQQVNfTEFSR0VfRlJFRV9IRUFQX0RF
RkVSUkVEX0NPTU1JVF9MT0dfSAogCi0jaW5jbHVkZSAicGFzX3JhbmdlLmgiCi0jaW5jbHVkZSAi
cGFzX3JhbmdlX21pbl9oZWFwLmgiCisjaW5jbHVkZSAicGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Uu
aCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIgogCiBQQVNf
QkVHSU5fRVhURVJOX0M7CiAKQEAgLTM3LDcgKzM3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWZlcgogdHlwZWRlZiBzdHJ1Y3QgcGFzX3BoeXNpY2FsX21lbW9yeV90
cmFuc2FjdGlvbiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uOwogCiBzdHJ1Y3QgcGFz
X2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nIHsKLSAgICBwYXNfcmFuZ2VfbWlu
X2hlYXAgaW1wbDsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcCBpbXBsOwog
ICAgIHNpemVfdCB0b3RhbDsgLyogVGhpcyBpcyBhY2N1cmF0ZSBzbyBsb25nIGFzIHRoZSByYW5n
ZXMgYXJlIG5vbi1vdmVybGFwcGluZy4gKi8KIH07CiAKQEAgLTQ5LDcgKzQ5LDcgQEAgUEFTX0FQ
SSB2b2lkIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZQogCiBQQVNfQVBJIGJvb2wgcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2FkZCgKICAgICBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfcmFuZ2UgcmFuZ2UsCisg
ICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UsCiAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwogCiBQQVNfQVBJIHZvaWQgcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2NvbW1pdF9hbGwoCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnMuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJl
ZV9oZWFwX2hlbHBlcnMuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTg0LDcgKzg0LDggQEAgc3RhdGljIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0
IGxhcgogICAgICAgICAKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9ib290X2ZyZWUo
CiAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luLCBh
bGxvY2F0aW9uX3Jlc3VsdC5iZWdpbiArIGFsaWduZWRfc2l6ZSksCi0gICAgICAgICAgICBwYXNf
cGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2spOworICAgICAgICAgICAgcGFz
X3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrLAorICAgICAgICAgICAgcGFz
X21heV9tbWFwKTsKICAgICB9CiAKICAgICByZXN1bHQucmVzdWx0ID0gKHZvaWQqKWFsbG9jYXRp
b25fcmVzdWx0LmJlZ2luOwpAQCAtMTM3LDcgKzEzOCw4IEBAIHZvaWQqIHBhc19sYXJnZV9mcmVl
X2hlYXBfaGVscGVyc190cnlfYWwKICAgICAgICAgICAgIGNvbW1pdF9yZXN1bHQgPSBwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sX2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAgICAgICAgICAgICAgcGFz
X3JhbmdlX2NyZWF0ZShyZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArIHNpemUpLAogICAgICAg
ICAgICAgICAgIE5VTEwsCi0gICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19s
b2NrZWRfYnlfaGVhcF9sb2NrKTsKKyAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5
X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2ssCisgICAgICAgICAgICAgICAgcGFzX21heV9tbWFwKTsK
ICAgICAgICAgICAgIFBBU19BU1NFUlQoY29tbWl0X3Jlc3VsdCk7CiAgICAgICAgIH0KICAgICAg
ICAgKCpudW1fYWxsb2NhdGVkX29iamVjdF9ieXRlc19wdHIpICs9IHNpemU7CkBAIC0xNjgsNyAr
MTcwLDggQEAgdm9pZCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfZGVhbGxvYwogICAgICAg
ICB9CiAgICAgICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZnJlZSgKICAgICAgICAgICAgIHBh
c19yYW5nZV9jcmVhdGUoKHVpbnRwdHJfdClwdHIsICh1aW50cHRyX3QpcHRyICsgc2l6ZSksCi0g
ICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2spOwor
ICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrLAor
ICAgICAgICAgICAgcGFzX21heV9tbWFwKTsKICAgICB9CiAgICAgcGFzX2Zhc3RfbGFyZ2VfZnJl
ZV9oZWFwX2RlYWxsb2NhdGUoaGVhcCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAodWludHB0cl90KXB0ciwgKHVpbnRwdHJfdClwdHIgKyBzaXplLApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jCShy
ZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGFyZ2VfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMzgsNyArMTM4LDggQEAgc3RhdGljIHBh
c19hbGxvY2F0aW9uX3Jlc3VsdCBhbGxvY2F0ZV9pbQogICAgICAgICAhcGFzX2xhcmdlX3NoYXJp
bmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0
ZShyZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArICpzaXplKSwKICAgICAgICAgICAgIHRyYW5z
YWN0aW9uLAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmly
dHVhbF9yYW5nZV9jb21tb25fbG9jaykpIHsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1v
cnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisgICAgICAgICAgICBo
ZWFwX2NvbmZpZy0+bW1hcF9jYXBhYmlsaXR5KSkgewogICAgICAgICBwYXNfZmFzdF9sYXJnZV9m
cmVlX2hlYXBfZGVhbGxvY2F0ZSgKICAgICAgICAgICAgICZoZWFwLT5mcmVlX2hlYXAsIHJlc3Vs
dC5iZWdpbiwgcmVzdWx0LmJlZ2luICsgKnNpemUsCiAgICAgICAgICAgICByZXN1bHQuemVyb19t
b2RlLCAmY29uZmlnKTsKQEAgLTIwMyw3ICsyMDQsOCBAQCBib29sIHBhc19sYXJnZV9oZWFwX3Ry
eV9kZWFsbG9jYXRlKHVpbnRwCiAgICAgaWYgKGhlYXBfY29uZmlnLT5hbGlnbmVkX2FsbG9jYXRv
cl90YWxrc190b19zaGFyaW5nX3Bvb2wpIHsKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9mcmVlKAogICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShtYXBfZW50cnkuYmVnaW4sIG1h
cF9lbnRyeS5lbmQpLAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAgICAgICAg
ICAgaGVhcF9jb25maWctPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgfQogCiAgICAgaW5pdGlhbGl6
ZV9jb25maWcoJmNvbmZpZywgTlVMTCwgbWFwX2VudHJ5LmhlYXAsIGhlYXBfY29uZmlnKTsKQEAg
LTI1NSw3ICsyNTcsOCBAQCBib29sIHBhc19sYXJnZV9oZWFwX3RyeV9zaHJpbmsodWludHB0cl90
CiAgICAgaWYgKGhlYXBfY29uZmlnLT5hbGlnbmVkX2FsbG9jYXRvcl90YWxrc190b19zaGFyaW5n
X3Bvb2wpIHsKICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKAogICAgICAgICAg
ICAgcGFzX3JhbmdlX2NyZWF0ZShtYXBfZW50cnkuYmVnaW4gKyBuZXdfc2l6ZSwgbWFwX2VudHJ5
LmVuZCksCi0gICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0
dWFsX3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
aXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisgICAgICAgICAgICBoZWFw
X2NvbmZpZy0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICB9CiAKICAgICBpbml0aWFsaXplX2NvbmZp
ZygmY29uZmlnLCBOVUxMLCBoZWFwLCBoZWFwX2NvbmZpZyk7CkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdf
Y2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwkocmV2aXNpb24gMjg4
MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBf
cGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMw
LDcgQEAKICNpbmNsdWRlICJwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2Fj
aGUuaCIKIAogI2luY2x1ZGUgInBhc19ib290c3RyYXBfZnJlZV9oZWFwLmgiCisjaW5jbHVkZSAi
cGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUg
InBhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9tYWxsb2MuaCIK
QEAgLTQwLDYgKzQxLDcgQEAgcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdCBwYXNfbGFyZ2VfaGVh
cAogCiB0eXBlZGVmIHN0cnVjdCB7CiAgICAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9z
aGFyaW5nX2NhY2hlKiBjYWNoZTsKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZzsKICAgICBi
b29sIHNob3VsZF96ZXJvOwogfSBhbGlnbmVkX2FsbG9jYXRvcl9kYXRhOwogCkBAIC0xMzAsNyAr
MTMyLDggQEAgc3RhdGljIHBhc19hbGlnbmVkX2FsbG9jYXRpb25fcmVzdWx0IGxhcgogICAgICAg
IFNvIHdlIHVzZSBib290X2ZyZWUsIHdoaWNoIGZyZWVzIHdoaWxlIGJ1bXBpbmcgdGhlIGVwb2No
LiAqLwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgICAgICBwYXNf
cmFuZ2VfY3JlYXRlKGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luLCBhbGxvY2F0aW9uX3Jlc3VsdC5i
ZWdpbiArIGFsaWduZWRfc2l6ZSksCi0gICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9j
a2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spOworICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAgICAgICBk
YXRhLT5jb25maWctPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAgcmVzdWx0LnJlc3VsdCA9
ICh2b2lkKilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbjsKICAgICByZXN1bHQucmVzdWx0X3NpemUg
PSBzaXplOwpAQCAtMTU4LDYgKzE2MSw3IEBAIHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vf
c2hhcmluZ19jYWMKICAgICBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2Fj
aGUqIGNhY2hlLAogICAgIHNpemVfdCBzaXplLAogICAgIHBhc19hbGlnbm1lbnQgYWxpZ25tZW50
LAorICAgIHBhc19oZWFwX2NvbmZpZyogaGVhcF9jb25maWcsCiAgICAgYm9vbCBzaG91bGRfemVy
bykKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CkBAIC0xNjYsNiAr
MTcwLDcgQEAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhYwogICAgIHBh
c19sYXJnZV9mcmVlX2hlYXBfY29uZmlnIGNvbmZpZzsKICAgICAKICAgICBkYXRhLmNhY2hlID0g
Y2FjaGU7CisgICAgZGF0YS5jb25maWcgPSBoZWFwX2NvbmZpZzsKICAgICBkYXRhLnNob3VsZF96
ZXJvID0gc2hvdWxkX3plcm87CiAgICAgCiAgICAgY29uZmlnLnR5cGVfc2l6ZSA9IDE7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNh
bF9wYWdlX3NoYXJpbmdfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUu
aAkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTMzLDcgKzMzLDkgQEAKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCitzdHJ1Y3QgcGFz
X2hlYXBfY29uZmlnOwogc3RydWN0IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19jYWNoZTsKK3R5cGVkZWYgc3RydWN0IHBhc19oZWFwX2NvbmZpZyBwYXNfaGVhcF9jb25maWc7
CiB0eXBlZGVmIHN0cnVjdCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2Fj
aGUgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlOwogCiBzdHJ1Y3Qg
cGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlIHsKQEAgLTY0LDYgKzY2
LDcgQEAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhYwogICAgIHBhc19s
YXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZSogY2FjaGUsCiAgICAgc2l6ZV90
IHNpemUsCiAgICAgcGFzX2FsaWdubWVudCBhbGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmln
KiBjb25maWcsCiAgICAgYm9vbCBzaG91bGRfemVybyk7CiAKIFBBU19FTkRfRVhURVJOX0M7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19w
b29sLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbC5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OCw3ICsxNjgsOCBAQCBzdGF0aWMgcGFzX2xhcmdlX3NoYXJpbmdfbm9kZSogY3Jl
YXRlX25vCiAgICAgdWludDY0X3QgdXNlX2Vwb2NoLAogICAgIHBhc19jb21taXRfbW9kZSBpc19j
b21taXR0ZWQsCiAgICAgc2l6ZV90IG51bV9saXZlX2J5dGVzLAotICAgIHBhc19waHlzaWNhbF9t
ZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICBw
YXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25f
c3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAg
cGFzX2xhcmdlX3NoYXJpbmdfbm9kZSogcmVzdWx0OwogICAgIApAQCAtMTg2LDYgKzE4Nyw3IEBA
IHN0YXRpYyBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBjcmVhdGVfbm8KICAgICByZXN1bHQtPmlz
X2NvbW1pdHRlZCA9IGlzX2NvbW1pdHRlZDsKICAgICByZXN1bHQtPm51bV9saXZlX2J5dGVzID0g
bnVtX2xpdmVfYnl0ZXM7CiAgICAgcmVzdWx0LT5zeW5jaHJvbml6YXRpb25fc3R5bGUgPSBzeW5j
aHJvbml6YXRpb25fc3R5bGU7CisgICAgcmVzdWx0LT5tbWFwX2NhcGFiaWxpdHkgPSBtbWFwX2Nh
cGFiaWxpdHk7CiAKICAgICB2YWxpZGF0ZV9ub2RlX2lmX2Fzc2VydGluZ19hZ2dyZXNzaXZlbHko
cmVzdWx0KTsKICAgICAKQEAgLTE5NywxMSArMTk5LDEzIEBAIHN0YXRpYyBwYXNfbGFyZ2Vfc2hh
cmluZ19ub2RlKiBjcmVhdGVfYW4KICAgICB1aW50NjRfdCB1c2VfZXBvY2gsCiAgICAgcGFzX2Nv
bW1pdF9tb2RlIGlzX2NvbW1pdHRlZCwKICAgICBzaXplX3QgbnVtX2xpdmVfYnl0ZXMsCi0gICAg
cGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9u
X3N0eWxlKQorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5
bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJp
bGl0eSkKIHsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiByZXN1bHQ7CiAgICAgCi0gICAg
cmVzdWx0ID0gY3JlYXRlX25vZGUocmFuZ2UsIHVzZV9lcG9jaCwgaXNfY29tbWl0dGVkLCBudW1f
bGl2ZV9ieXRlcywgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICByZXN1bHQgPSBjcmVhdGVf
bm9kZShyYW5nZSwgdXNlX2Vwb2NoLCBpc19jb21taXR0ZWQsIG51bV9saXZlX2J5dGVzLCBzeW5j
aHJvbml6YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgbW1hcF9jYXBhYmls
aXR5KTsKICAgICAKICAgICBwYXNfcmVkX2JsYWNrX3RyZWVfaW5zZXJ0KAogICAgICAgICAmcGFz
X2xhcmdlX3NoYXJpbmdfdHJlZSwgJnJlc3VsdC0+dHJlZV9ub2RlLCBub2RlX2NvbXBhcmVfY2Fs
bGJhY2ssCkBAIC0yMzcsNyArMjQxLDggQEAgc3RhdGljIHZvaWQgYm9vdF90cmVlKCkKICAgICAg
ICAgMCwKICAgICAgICAgcGFzX2NvbW1pdHRlZCwKICAgICAgICAgcGFzX3JhbmdlX3NpemUocmFu
Z2UpLAotICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3Jh
bmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgcGFzX21heV9tbWFwKTsKIH0K
IAogc3RhdGljIHZvaWQgZGVzdHJveV9ub2RlKHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIG5vZGUp
CkBAIC0yOTMsNiArMjk4LDkgQEAgc3RhdGljIGJvb2wgc3RhdGVzX21hdGNoKHBhc19sYXJnZV9z
aGFyaQogICAgIGlmIChsZWZ0LT5zeW5jaHJvbml6YXRpb25fc3R5bGUgIT0gcmlnaHQtPnN5bmNo
cm9uaXphdGlvbl9zdHlsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKGxlZnQt
Pm1tYXBfY2FwYWJpbGl0eSAhPSByaWdodC0+bW1hcF9jYXBhYmlsaXR5KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKICAgICBib3RoX2VtcHR5ID0KICAgICAgICAgIWxlZnQtPm51bV9saXZlX2J5
dGVzICYmCiAgICAgICAgICFyaWdodC0+bnVtX2xpdmVfYnl0ZXM7CkBAIC0zNzksNyArMzg3LDgg
QEAgc3BsaXRfbm9kZV9hbmRfZ2V0X3JpZ2h0X2ltcGwocGFzX2xhcmdlXwogICAgICAgICBub2Rl
LT51c2VfZXBvY2gsCiAgICAgICAgIG5vZGUtPmlzX2NvbW1pdHRlZCwKICAgICAgICAgbm9kZS0+
bnVtX2xpdmVfYnl0ZXMgPyBub2RlLT5yYW5nZS5lbmQgLSBzcGxpdF9wb2ludCA6IDAsCi0gICAg
ICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgICAgIG5vZGUtPnN5bmNocm9u
aXphdGlvbl9zdHlsZSwKKyAgICAgICAgbm9kZS0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAKICAg
ICBub2RlLT5yYW5nZS5lbmQgPSBzcGxpdF9wb2ludDsKICAgICBub2RlLT5udW1fbGl2ZV9ieXRl
cyA9IG5vZGUtPm51bV9saXZlX2J5dGVzID8gc3BsaXRfcG9pbnQgLSBub2RlLT5yYW5nZS5iZWdp
biA6IDA7CkBAIC02MDMsNyArNjEyLDggQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFz
X3JhbmdlIHJhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVh
cF9kZWZlcnJlZF9jb21taXRfbG9nKiBjb21taXRfbG9nLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNh
Y3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5
bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBz
eW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1h
cF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19u
b2RlKiBtaW5fbm9kZTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBtYXhfbm9kZTsKQEAg
LTYxOCw5ICs2MjgsMTAgQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJh
bgogICAgIAogICAgIGlmICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coIkRvaW5nIHNwbGF0
IGluIHJhbmdlICVwLSVwLCBjb21tYW5kID0gJXMsIGVwb2NoID0gJWxsdSwgIgotICAgICAgICAg
ICAgICAgICJzeW5jaHJvbml6YXRpb25fc3R5bGUgPSAlc1xuIiwKKyAgICAgICAgICAgICAgICAi
c3luY2hyb25pemF0aW9uX3N0eWxlID0gJXMsIG1tYXBfY2FwYWJpbGl0eSA9ICVzXG4iLAogICAg
ICAgICAgICAgICAgICh2b2lkKilyYW5nZS5iZWdpbiwgKHZvaWQqKXJhbmdlLmVuZCwgc3BsYXRf
Y29tbWFuZF9nZXRfc3RyaW5nKGNvbW1hbmQpLCAodW5zaWduZWQgbG9uZyBsb25nKWVwb2NoLAot
ICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxl
X2dldF9zdHJpbmcoc3luY2hyb25pemF0aW9uX3N0eWxlKSk7CisgICAgICAgICAgICAgICAgcGFz
X3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGVfZ2V0X3N0cmluZyhzeW5jaHJv
bml6YXRpb25fc3R5bGUpLAorICAgICAgICAgICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHlfZ2V0
X3N0cmluZyhtbWFwX2NhcGFiaWxpdHkpKTsKICAgICB9CiAgICAgCiAgICAgcGFzX2hlYXBfbG9j
a19hc3NlcnRfaGVsZCgpOwpAQCAtNzY5LDYgKzc4MCw3IEBAIHN0YXRpYyBib29sIHRyeV9zcGxh
dF9pbXBsKHBhc19yYW5nZSByYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWRfY29tbWl0X21vZGUpOwog
ICAgICAgICAgICAgICAgICBpbm5lcl9ub2RlID0gc3VjY2Vzc29yKGlubmVyX25vZGUpKSB7CiAg
ICAgICAgICAgICAgICAgUEFTX0FTU0VSVChpbm5lcl9ub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5
bGUgPT0gc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJU
KGlubmVyX25vZGUtPm1tYXBfY2FwYWJpbGl0eSA9PSBtbWFwX2NhcGFiaWxpdHkpOwogICAgICAg
ICAgICAgICAgIGFmZmVjdGVkX2VuZCA9IGlubmVyX25vZGUtPnJhbmdlLmVuZDsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIApAQCAtNzgzLDEyICs3OTUsMTQgQEAgc3RhdGljIGJvb2wgdHJ5
X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAgICAgICAgICAgY2FzZSBwYXNfcGh5c2ljYWxf
bWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2s6IHsKICAgICAgICAgICAgICAgICBzd2l0Y2gg
KGRlc2lyZWRfY29tbWl0X21vZGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIHBhc19kZWNvbW1p
dHRlZDoKLSAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KCh2b2lk
KilhZmZlY3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4pOworICAgICAg
ICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoKHZvaWQqKWFmZmVjdGVkX2Jl
Z2luLCBhZmZlY3RlZF9lbmQgLSBhZmZlY3RlZF9iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICAg
ICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVn
aW47CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICBjYXNlIHBhc19jb21taXR0ZWQ6Ci0gICAgICAgICAgICAgICAgICAgIHBh
c19wYWdlX21hbGxvY19jb21taXQoKHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQg
LSBhZmZlY3RlZF9iZWdpbik7CisgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19j
b21taXQoKHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQgLSBhZmZlY3RlZF9iZWdp
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtbWFwX2NhcGFi
aWxpdHkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9G
T1JfQ09NTUlUKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1f
YWRkKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1bXBfbGFyZ2VfY29tbWl0LCBkdW1w
X2xhcmdlX2NvbW1pdCwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4pOwpAQCAtODA3LDE0
ICs4MjEsMTUgQEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAg
ICAgICAgICAgICAgICAgICB3YXNfYWRkZWQgPSBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nX2Fk
ZCgKICAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2xvZywKICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShhZmZlY3RlZF9iZWdpbiwgYWZmZWN0
ZWRfZW5kLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZwYXNfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJnBhc192aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2Nr
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1tYXBf
Y2FwYWJpbGl0eSksCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19oZWxkKTsK
ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgIGNhc2UgcGFzX2NvbW1pdHRlZDoKICAgICAgICAgICAgICAgICAgICAgd2FzX2Fk
ZGVkID0gcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2FkZCgKICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbW1pdF9sb2csCi0gICAgICAgICAgICAgICAgICAgICAgICBw
YXNfcmFuZ2VfY3JlYXRlKGFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKGFmZmVjdGVkX2Jl
Z2luLCBhZmZlY3RlZF9lbmQsIG1tYXBfY2FwYWJpbGl0eSksCiAgICAgICAgICAgICAgICAgICAg
ICAgICB0cmFuc2FjdGlvbik7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgICAgIH0KQEAgLTg5NSwxMyArOTEwLDE4IEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdF9pbXBs
KHBhc19yYW5nZSByYW4KICAgICAgICAgY2FzZSBzcGxhdF9hbGxvY2F0ZV9hbmRfY29tbWl0Ogog
ICAgICAgICBjYXNlIHNwbGF0X2ZyZWU6CiAgICAgICAgICAgICBQQVNfQVNTRVJUKG5vZGUtPnN5
bmNocm9uaXphdGlvbl9zdHlsZSA9PSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgICAgICAg
ICAgUEFTX0FTU0VSVChub2RlLT5tbWFwX2NhcGFiaWxpdHkgPT0gbW1hcF9jYXBhYmlsaXR5KTsK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2Ugc3BsYXRfYm9vdF9mcmVlOgogICAg
ICAgICAgICAgUEFTX0FTU0VSVCgKICAgICAgICAgICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRp
b25fc3R5bGUKICAgICAgICAgICAgICAgICA9PSBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tl
ZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQo
CisgICAgICAgICAgICAgICAgbm9kZS0+bW1hcF9jYXBhYmlsaXR5CisgICAgICAgICAgICAgICAg
PT0gcGFzX21heV9tbWFwKTsKICAgICAgICAgICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHls
ZSA9IHN5bmNocm9uaXphdGlvbl9zdHlsZTsKKyAgICAgICAgICAgIG5vZGUtPm1tYXBfY2FwYWJp
bGl0eSA9IG1tYXBfY2FwYWJpbGl0eTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAK
QEAgLTk3MCwxMiArOTkwLDEzIEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdChwYXNfcmFuZ2UgcmFu
Z2UsCiAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9j
b21taXRfbG9nKiBjb21taXRfbG9nLAogICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJl
ZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xvZywKICAgICAgICAgICAgICAgICAgICAgICBwYXNf
cGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgICAg
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJv
bml6YXRpb25fc3R5bGUpCisgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgICAgICAg
ICAgICAgICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAg
IGJvb2wgcmVzdWx0OwogICAgIAogICAgIHJlc3VsdCA9IHRyeV9zcGxhdF9pbXBsKAotICAgICAg
ICByYW5nZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9sb2csIGRlY29tbWl0X2xvZywgdHJhbnNh
Y3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgICAgIHJhbmdlLCBjb21tYW5kLCBl
cG9jaCwgY29tbWl0X2xvZywgZGVjb21taXRfbG9nLCB0cmFuc2FjdGlvbiwgc3luY2hyb25pemF0
aW9uX3N0eWxlLCBtbWFwX2NhcGFiaWxpdHkpOwogICAgIAogICAgIGlmIChwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sX3ZhbGlkYXRlX2VhY2hfc3BsYXQpCiAgICAgICAgIHBhc19sYXJnZV9zaGFyaW5n
X3Bvb2xfdmFsaWRhdGUoKTsKQEAgLTk4OSwxOSArMTAxMCwyMSBAQCBzdGF0aWMgdm9pZCBzcGxh
dChwYXNfcmFuZ2UgcmFuZ2UsCiAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2RlZmVycmVkX2NvbW1pdF9sb2cqIGNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICBwYXNf
ZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICBw
YXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAg
ICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9u
aXphdGlvbl9zdHlsZSkKKyAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3lu
Y2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAg
ICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIGJvb2wgcmVz
dWx0OwogICAgIAogICAgIHJlc3VsdCA9IHRyeV9zcGxhdCgKLSAgICAgICAgcmFuZ2UsIGNvbW1h
bmQsIGVwb2NoLCBjb21taXRfbG9nLCBkZWNvbW1pdF9sb2csIHRyYW5zYWN0aW9uLCBzeW5jaHJv
bml6YXRpb25fc3R5bGUpOworICAgICAgICByYW5nZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9s
b2csIGRlY29tbWl0X2xvZywgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSwgbW1h
cF9jYXBhYmlsaXR5KTsKICAgICAKICAgICBQQVNfQVNTRVJUKHJlc3VsdCk7CiB9CiAKIHZvaWQg
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9ib290X2ZyZWUoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAot
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXph
dGlvbl9zdHlsZSkKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHls
ZSBzeW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2Nh
cGFiaWxpdHkpCiB7CiAgICAgdWludDY0X3QgZXBvY2g7CiAKQEAgLTEwMDksMTEgKzEwMzIsMTIg
QEAgdm9pZCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIGVwb2NoID0gcGFzX2dldF9lcG9jaCgpOwotICAgIHNwbGF0KHJhbmdlLCBz
cGxhdF9ib290X2ZyZWUsIGVwb2NoLCBOVUxMLCBOVUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25f
c3R5bGUpOworICAgIHNwbGF0KHJhbmdlLCBzcGxhdF9ib290X2ZyZWUsIGVwb2NoLCBOVUxMLCBO
VUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAK
IHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKHBhc19yYW5nZSByYW5nZSwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25p
emF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5
bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHVpbnQ2NF90IGVwb2No
OwogCkBAIC0xMDIyLDEzICsxMDQ2LDE0IEBAIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9m
cmVlKHBhc19yYW4KICAgICAKICAgICBlcG9jaCA9IHBhc19nZXRfZXBvY2goKTsKICAgICAKLSAg
ICBzcGxhdChyYW5nZSwgc3BsYXRfZnJlZSwgZXBvY2gsIE5VTEwsIE5VTEwsIE5VTEwsIHN5bmNo
cm9uaXphdGlvbl9zdHlsZSk7CisgICAgc3BsYXQocmFuZ2UsIHNwbGF0X2ZyZWUsIGVwb2NoLCBO
VUxMLCBOVUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7
CiB9CiAKIGJvb2wgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAog
ICAgIHBhc19yYW5nZSByYW5nZSwKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9u
KiB0cmFuc2FjdGlvbiwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9z
dHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5j
aHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgIHBhc19tbWFwX2Nh
cGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKICAgICAKQEAgLTEwNTEsNyArMTA3Niw3IEBAIGJvb2wgcGFzX2xhcmdlX3No
YXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmQKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2dfY29uc3RydWN0KCZjb21taXRfbG9nKTsKIAogICAgIGlmICghdHJ5X3NwbGF0
KHJhbmdlLCBzcGxhdF9hbGxvY2F0ZV9hbmRfY29tbWl0LCBlcG9jaCwKLSAgICAgICAgICAgICAg
ICAgICAmY29tbWl0X2xvZywgTlVMTCwgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHls
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAmY29tbWl0X2xvZywgTlVMTCwgdHJhbnNhY3Rpb24s
IHN5bmNocm9uaXphdGlvbl9zdHlsZSwgbW1hcF9jYXBhYmlsaXR5KSkgewogICAgICAgICBwYXNf
bGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2dfZGVzdHJ1Y3QoJmNvbW1pdF9sb2cp
OwogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIkdpdmluZyB1cCBv
biBhbGxvY2F0ZSBhbmQgY29tbWl0IGJlY2F1c2UgdGhlIHNwbGF0IGZhaWxlZC5cbiIpOwpAQCAt
MTEyNSw3ICsxMTUwLDcgQEAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9kZWNvbW1pdF9sZWFzdF9y
ZQogICAgIH0KICAgICAKICAgICBpZiAodHJ5X3NwbGF0KG5vZGUtPnJhbmdlLCBzcGxhdF9kZWNv
bW1pdCwgMCwgTlVMTCwgZGVjb21taXRfbG9nLCBOVUxMLAotICAgICAgICAgICAgICAgICAgbm9k
ZS0+c3luY2hyb25pemF0aW9uX3N0eWxlKSkgeworICAgICAgICAgICAgICAgICAgbm9kZS0+c3lu
Y2hyb25pemF0aW9uX3N0eWxlLCBub2RlLT5tbWFwX2NhcGFiaWxpdHkpKSB7CiAgICAgICAgIGlm
ICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiVGhlIHNwbGF0IHdvcmtlZC5cbiIpOwog
ICAgICAgICByZXR1cm4gcGFzX3BhZ2Vfc2hhcmluZ19wb29sX3Rha2Vfc3VjY2VzczsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFy
Z2Vfc2hhcmluZ19wb29sLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJwYXNfZnJlZV9tb2RlLmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXBfc3VtbWFyeS5oIgogI2luY2x1ZGUgInBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBv
Y2hfdXBkYXRlX21vZGUuaCIKKyNpbmNsdWRlICJwYXNfbW1hcF9jYXBhYmlsaXR5LmgiCiAjaW5j
bHVkZSAicGFzX21pbl9oZWFwLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wYXJ0aWNp
cGFudC5oIgogI2luY2x1ZGUgInBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0
eWxlLmgiCkBAIC01MSwxMCArNTIsMTAgQEAgc3RydWN0IHBhc19sYXJnZV9zaGFyaW5nX25vZGUg
ewogICAgIHBhc19yZWRfYmxhY2tfdHJlZV9ub2RlIHRyZWVfbm9kZTsKICAgICAKICAgICBwYXNf
Y29tbWl0X21vZGUgaXNfY29tbWl0dGVkIDogMTsKLQogICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSA6IDE7CisgICAgcGFz
X21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkgOiAxOwogCi0gICAgdW5zaWduZWQgaW5k
ZXhfaW5fbWluX2hlYXAgOiAzMDsgLyogaXQncyBhIG9uZS1iYXNlZCBpbmRleDsgaXQncyB6ZXJv
IHRvIGluZGljYXRlIHRoYXQgd2UncmUgbm90IGluCisgICAgdW5zaWduZWQgaW5kZXhfaW5fbWlu
X2hlYXAgOiAyOTsgLyogaXQncyBhIG9uZS1iYXNlZCBpbmRleDsgaXQncyB6ZXJvIHRvIGluZGlj
YXRlIHRoYXQgd2UncmUgbm90IGluCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGhlIG1pbl9oZWFwLiAqLwogICAgIAogICAgIHBhc19yYW5nZSByYW5nZTsgLyogSGFz
IHRvIGJlIGEgcGFnZSByYW5nZS4gKi8KQEAgLTE0NSwxNiArMTQ2LDE5IEBAIFBBU19BUEkgZXh0
ZXJuIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXAKIC8qIFRoaXMgbWFrZXMgdGhlIG1lbW9yeSBm
cmVlIGFuZCBhbHNvIGJ1bXBzIHRoZSBlcG9jaC4gKi8KIFBBU19BUEkgdm9pZCBwYXNfbGFyZ2Vf
c2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCi0gICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxl
KTsKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJv
bml6YXRpb25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkp
OwogCiBQQVNfQVBJIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9mcmVlKAogICAgIHBhc19y
YW5nZSByYW5nZSwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHls
ZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKIFBBU19BUEkgYm9vbCBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAogICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAotICAgIHBhc19waHlz
aWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7
CisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25p
emF0aW9uX3N0eWxlLAorICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsK
IAogLyogVGhpcyBkb2Vzbid0IGFjdHVhbGx5IGRlY29tbWl0IHRoZSBtZW1vcnkuIEl0IGp1c3Qg
dGVsbHMgeW91IGFib3V0IHdoYXQgbWVtb3J5IHRvIGRlY29tbWl0CiAgICB1c2luZyB0aGUgZGVj
b21taXRfbG9nLiBJdCdzIHlvdXIgam9iIHRvIGRlY29tbWl0IGV2ZXJ5dGhpbmcgaW4gdGhhdCBs
b2csIHdoaWNoIHlvdSBjYW4KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaAkobm9uZXhpc3RlbnQp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTEFSR0VfVklSVFVBTF9S
QU5HRV9ICisjZGVmaW5lIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX0gKKworI2luY2x1ZGUgInBh
c19sb2NrLmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgorI2luY2x1ZGUgInBh
c19yYW5nZS5oIgorI2luY2x1ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7
CisKK3N0cnVjdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZTsKK3R5cGVkZWYgc3RydWN0IHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlOworCitzdHJ1Y3QgcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UgeworICAgIHVpbnRwdHJfdCBiZWdpbjsKKyAgICB1aW50cHRy
X3QgZW5kOworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5OworfTsKKwor
c3RhdGljIGlubGluZSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9jcmVhdGUodWludHB0cl90IGJlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVuZCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQoreworICAg
IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlIHJlc3VsdDsKKyAgICByZXN1bHQuYmVnaW4gPSBiZWdp
bjsKKyAgICByZXN1bHQuZW5kID0gZW5kOworICAgIHJlc3VsdC5tbWFwX2NhcGFiaWxpdHkgPSBt
bWFwX2NhcGFiaWxpdHk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1w
dHkodm9pZCkKK3sKKyAgICByZXR1cm4gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKDAs
IDAsIHBhc19tYXlfbm90X21tYXApOworfQorCitzdGF0aWMgaW5saW5lIHBhc19yYW5nZSBwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfcmFuZ2UocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFu
Z2UpCit7CisgICAgcmV0dXJuIHBhc19yYW5nZV9jcmVhdGUocmFuZ2UuYmVnaW4sIHJhbmdlLmVu
ZCk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19l
bXB0eShwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4gcGFzX3Jh
bmdlX2lzX2VtcHR5KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5nZShyYW5nZSkpOwor
fQorCitzdGF0aWMgaW5saW5lIHNpemVfdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVybiBwYXNfcmFuZ2Vfc2l6
ZShwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfcmFuZ2UocmFuZ2UpKTsKK30KKworc3RhdGlj
IGlubGluZSBib29sIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX292ZXJsYXBzKHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlIGxlZnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmlnaHQpCit7CisgICAgcmV0
dXJuIHBhc19yYW5nZV9vdmVybGFwcyhwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfcmFuZ2Uo
bGVmdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9nZXRfcmFuZ2UocmlnaHQpKTsKK30KKworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlm
IC8qIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfdmly
dHVhbF9yYW5nZV9taW5faGVhcC5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX01JTl9IRUFQ
X0gKKyNkZWZpbmUgUEFTX0xBUkdFX1ZJUlRVQUxfUkFOR0VfTUlOX0hFQVBfSAorCisjaW5jbHVk
ZSAicGFzX21pbl9oZWFwLmgiCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisjaW5jbHVkZSAicGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdGF0aWMg
aW5saW5lIGludCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jb21wYXJlX2JlZ2luKHBhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlKiBsZWZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogcmlnaHQpCit7
CisgICAgaWYgKGxlZnQtPmJlZ2luIDwgcmlnaHQtPmJlZ2luKQorICAgICAgICByZXR1cm4gLTE7
CisgICAgaWYgKGxlZnQtPmJlZ2luID09IHJpZ2h0LT5iZWdpbikKKyAgICAgICAgcmV0dXJuIDA7
CisgICAgcmV0dXJuIDE7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlX2dldF9pbmRleChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogcmFuZ2UpCit7Cisg
ICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIFBBU19VTlVTRURf
UEFSQU0ocmFuZ2UpOworICAgIHJldHVybiAwOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2V0X2luZGV4KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlKiBy
YW5nZSwgc2l6ZV90IGluZGV4KQoreworICAgIFBBU19VTlVTRURfUEFSQU0ocmFuZ2UpOworICAg
IFBBU19VTlVTRURfUEFSQU0oaW5kZXgpOworfQorCitQQVNfQ1JFQVRFX01JTl9IRUFQKAorICAg
IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLAorICAgIHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlLAorICAgIDMyLAorICAgIC5jb21wYXJlID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vf
Y29tcGFyZV9iZWdpbiwKKyAgICAuZ2V0X2luZGV4ID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vf
Z2V0X2luZGV4LAorICAgIC5zZXRfaW5kZXggPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zZXRf
aW5kZXgpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xBUkdFX1ZJUlRV
QUxfUkFOR0VfTUlOX0hFQVBfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCShyZXZpc2lvbiAyODgz
NDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yLmMJKHdvcmtpbmcgY29weSkKQEAgLTc3LDggKzc3LDcgQEAgdm9pZCBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbnN0cnVjdChwYXNfbAogICAgICAgICAgICAgcGFzX2NvbXBhY3RfYml0Zml0X2Rp
cmVjdG9yeV9wdHJfbG9hZF9ub25fbnVsbCgmc2l6ZV9jbGFzcy0+ZGlyZWN0b3J5KS0+Y29uZmln
X2tpbmQpOwogCiAgICAgICAgIGJpdGZpdF9hbGxvY2F0b3IgPSBwYXNfbG9jYWxfYWxsb2NhdG9y
X2dldF9iaXRmaXQoYWxsb2NhdG9yKTsKLSAgICAgICAgYml0Zml0X2FsbG9jYXRvci0+c2l6ZV9j
bGFzcyA9IHNpemVfY2xhc3M7Ci0gICAgICAgIGJpdGZpdF9hbGxvY2F0b3ItPnZpZXcgPSBOVUxM
OworICAgICAgICBwYXNfYml0Zml0X2FsbG9jYXRvcl9jb25zdHJ1Y3QoYml0Zml0X2FsbG9jYXRv
ciwgc2l6ZV9jbGFzcyk7CiAgICAgfSBlbHNlCiAgICAgICAgIGFsbG9jYXRvci0+Y29uZmlnX2tp
bmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9ub3JtYWwoZGlyZWN0
b3J5LT5iYXNlLnBhZ2VfY29uZmlnX2tpbmQpOwogICAgIApAQCAtMTIwLDYgKzExOSw5IEBAIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9tb3ZlKHBhc19sb2NhbF8KIAogICAgIHBhc19oZWFwX2xv
Y2tfYXNzZXJ0X2hlbGQoKTsgLyogTmVlZGVkIHRvIG1vZGlmeSBhIGxlbmllbnRfY29tcGFjdF9w
dHIuICovCiAKKyAgICBQQVNfQVNTRVJUKCFkc3QtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7
CisgICAgUEFTX0FTU0VSVCghc3JjLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworCiAgICAg
ZGlyZWN0b3J5ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnkoc3JjLT52
aWV3KTsKICAgICAKICAgICBzaXplID0gcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfbG9j
YWxfYWxsb2NhdG9yX3NpemUoZGlyZWN0b3J5KTsKQEAgLTE1OCw2ICsxNjAsMTMgQEAgc3RhdGlj
IGJvb2wgc3RvcF9pbXBsKAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJzdG9w
cGluZyBhbGxvY2F0b3IgJXBcbiIsIGFsbG9jYXRvcik7CiAKKyAgICBpZiAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9oYXNfYml0Zml0KGFsbG9jYXRvcikpIHsKKyAgICAgICAgUEFTX0FTU0VSVCghYWxs
b2NhdG9yLT5wYWdlX2lzaCk7CisgICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yX3N0b3AocGFz
X2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvcikpOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICAvKiBUaGlzIGFsc28gc3RvcHMgdXMgZnJvbSBkb2luZyBhbnl0
aGluZyB3aGVuIHdlJ3ZlIGJlZW4gZGVjb21taXR0ZWQuICovCiAgICAgaWYgKCFhbGxvY2F0b3It
PnBhZ2VfaXNoKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApAQCAtMjAwLDggKzIwOSw2IEBAIHN0
YXRpYyBib29sIHN0b3BfaW1wbCgKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotLyogRklYTUU6IFRo
aXMgdGhpbmcgaXMgbWVhbmluZ2xlc3Mgd2l0aCBoZWFwX2xvY2tfaG9sZF9tb2RlID0gcGFzX2xv
Y2tfaXNfbm90X2hlbGQgdW5sZXNzIHlvdQotICAgYWxzbyBzZXQgaXNfaW5fdXNlIHRvIHRydWUu
IFNlZW1zIGxpa2UgbWF5YmUgdGhpcyBzaG91bGQgc2V0IGl0IGZvciB5b3U/ICovCiBib29sIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0
b3IsCiAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLApAQCAtMjEwLDggKzIx
NywyNyBAQCBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICBzdGF0aWMgY29uc3Qg
Ym9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCiAgICAgYm9vbCByZXN1bHQ7CisgICAgYm9vbCBp
c19pbl91c2U7CiAKLSAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlz
X2luX3VzZSk7CisgICAgaXNfaW5fdXNlID0gYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19p
bl91c2U7CisgICAgaWYgKGlzX2luX3VzZSkgeworICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3Ig
PSAlcFxuIiwgYWxsb2NhdG9yKTsKKyAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yLT5zY2F2ZW5n
ZXJfZGF0YS5raW5kID0gJXNcbiIsCisgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kX2dldF9zdHJpbmcoYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kKSk7CisgICAg
ICAgIHBhc19sb2coImFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gJXNcbiIs
CisgICAgICAgICAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPyAi
eWVzIiA6ICJubyIpOworICAgICAgICBwYXNfbG9nKCJhdCB0aW1lIG9mIGFzc2VydDogYWxsb2Nh
dG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSAlc1xuIiwKKyAgICAgICAgICAgICAgICBp
c19pbl91c2UgPyAieWVzIiA6ICJubyIpOworICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5v
dCBiZSByZWFjaGVkIik7CisgICAgfQorCisgICAgLyogRG9pbmcgdGhpcyBjaGVjayBiZWZvcmUg
c2V0dGluZyBpc19pbl91c2UgZ3VhcmRzIGFnYWluc3Qgc2l0dWF0aW9ucyB3aGVyZSBjYWxsaW5n
IHN0b3Agd291bGQKKyAgICAgICByZWNvbW1pdCBhIGRlY29tbWl0dGVkIGFsbG9jYXRvci4KKyAg
ICAKKyAgICAgICBUaGlzIGlzIGEgcHJldHR5IHdlYWsgb3B0aW1pemF0aW9uIHNpbmNlIGluIG15
IGV4cGVyaW1lbnRzLCByZWFkcyBjYXVzZSBjb21taXRzLiBXZWIgVGVtcGxhdGUKKyAgICAgICBG
cmFtZXdvcmshICovCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
aXNfc3RvcHBlZCgmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSkpCisgICAgICAgIHJldHVybiB0
cnVlOwogCiAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSB0cnVlOwog
ICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpAQCAtMjIyLDYgKzI0OCw3IEBAIGJvb2wgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zdG9wKAogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBh
c19sb2coIkRpZCBzdG9wIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsKICAgICAgICAgYWxs
b2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisgICAgICAgIGFs
bG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEua2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBl
ZF9hbGxvY2F0b3Jfa2luZDsKICAgICB9CiAgICAgCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2Nh
dG9yX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg4MzQ2KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDM5IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3IKICAgICBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID0gcGFz
X2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfbm9ybWFsKGtpbmQpOwogfQogCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbW1pdF9p
Zl9uZWNlc3NhcnlfaW1wbChwYXNfbG9jYWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQoreworICAgIC8qIEl0J3MgcG9zc2li
bGUgdGhhdDoKKyAgICAgICAKKyAgICAgICAtIFRoZSBhbGxvY2F0b3Igd2FzIHN0b3BwZWQuCisg
ICAgICAgLSBXZSBzdGFydGVkIGFsbG9jYXRpbmcsIGFuZCBzZXQgaXNfaW5fdXNlID0gdHJ1ZS4K
KyAgICAgICAtIFNvbWVvbmUgZGVjb21taXR0ZWQgdGhlIHBhZ2UgdGhhdCB0aGlzIGFsbG9jYXRv
ciB3YXMgb24sIGNhdXNpbmcgaXNfaW5fdXNlIHRvIGJlY29tZSBmYWxzZS4KKyAgICAgICAKKyAg
ICAgICBBbmQgdGhlbiB3ZSBlbmQgdXAgaW4gaGVyZS4KKyAgICAKKyAgICAgICBUaGVyZWZvcmUs
IHdlIGNhbm5vdCBhc3NlcnQgdGhhdCBpc19pbl91c2UgaXMgdHJ1ZS4gQnV0LCB3aGVuIHdlIHJl
dHVybiBmcm9tIGhlcmUsIGl0IG11c3QgYmUgdHJ1ZS4gKi8KKyAgICBpZiAoUEFTX0xJS0VMWShh
bGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxv
Y2F0b3Jfa2luZCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChjb25maWcua2luZCA9PSBw
YXNfaGVhcF9jb25maWdfa2luZF9wYXNfdXRpbGl0eSkgeworICAgICAgICBhbGxvY2F0b3ItPnNj
YXZlbmdlcl9kYXRhLmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOwor
ICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3coCisgICAgICAgICZhbGxvY2F0b3ItPnNj
YXZlbmdlcl9kYXRhLAorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19pc19pbl91c2Vfd2l0aF9ub19sb2Nrc19oZWxkX21v
ZGUsCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpOworfQorCitz
dGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbW1pdF9p
Zl9uZWNlc3NhcnkocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19oZWFwX2NvbmZpZyBjb25maWcpCit7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21t
aXRfaWZfbmVjZXNzYXJ5X2ltcGwoYWxsb2NhdG9yLCBjb25maWcpOworICAgIFBBU19BU1NFUlQo
YWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworfQorCiBzdGF0aWMgaW5saW5l
IHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zZXRfdXBfYnVtcChwYXNfbG9jYWxfYWxsb2NhdG9y
KiBhbGxvY2F0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50cHRyX3QgcGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbiwKQEAgLTc0NSw3ICs3
NzgsNiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFyCiAgICAgICAg
ICB3b3JkX2luZGV4IDwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbnVtX2FsbG9jX3dvcmRz
KHBhZ2VfY29uZmlnKTsKICAgICAgICAgIHdvcmRfaW5kZXgrKykgewogICAgICAgICB1bnNpZ25l
ZCBmdWxsX2FsbG9jX3dvcmQ7Ci0gICAgICAgIGJvb2wgc2hvdWxkX2JlX2VsaWdpYmxlOwogCiAg
ICAgICAgIGZ1bGxfYWxsb2Nfd29yZCA9IGJpdHNbd29yZF9pbmRleF07CiAgICAgICAgIApAQCAt
NzU1LDIxICs3ODcsNiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX2JsZXNzX3ByaW1vcmRpYWxfcGFy
CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiTm9uemVybyBmdWxs
IGFsbG9jIHdvcmQgYXQgaW5kZXggPSAlenVcbiIsIHdvcmRfaW5kZXgpOwogCi0gICAgICAgIC8q
IFdlIGdvIGludG8gdGhpcyBsb29wIHdpdGggdGhlIHBhcnRpYWwgdmlldyBhcHBlYXJpbmcgZWxp
Z2liaWxlIHRvIGRlYWxsb2NhdGlvbnMuIFNvLAotICAgICAgICAgICBzb21ldGhpbmcgbWF5IGhh
dmUgYmVlbiBmcmVlZC4gSWYgaXQgd2FzLCBsZXQgZm9sa3Mga25vdy4gTm90ZSB0aGF0IHRoZSBv
bmx5IHJlYXNvbiB3aHkKLSAgICAgICAgICAgd2UgaGF2ZSBhIHNwZWNpYWwgY2FzZSBmb3IgZW5h
YmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uIGlzIHRoYXQgdGhpcwotICAg
ICAgICAgICBzaW1wbGlmaWVzIHRoZSBsb2dpYyBpbiBwYXNfc2VncmVnYXRlZF92aWV3X3Nob3Vs
ZF9iZV9lbGlnaWJsZSgpLiBJdCB3b3VsZCBvbmx5IGJlIGEgdGlueQotICAgICAgICAgICBiZWhh
dmlvcmFsIGNoYW5nZSAtIHNsaWdodGx5IGJldHRlciBmb3Igc3BhY2UsIHNsaWdodGx5IHdvcnNl
IGZvciB0aW1lIC0gdG8gZ2V0IHJpZCBvZgotICAgICAgICAgICB0aGlzIHNwZWNpYWwgY2FzZSwg
aW4gd2hpY2ggY2FzZSB3ZSdkIGhhdmUgdG8gZWRpdCBzaG91bGRfYmVfZWxpZ2libGUoKS4gKi8K
LSAgICAgICAgaWYgKHBhZ2VfY29uZmlnLmVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29w
dGltaXphdGlvbl9mb3Jfc2hhcmVkKQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0g
ISEoZnVsbF9hbGxvY193b3JkICYmICFwYWdlLT5hbGxvY19iaXRzW3dvcmRfaW5kZXhdKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgc2hvdWxkX2JlX2VsaWdpYmxlID0gISEoZnVsbF9hbGxv
Y193b3JkICYgfnBhZ2UtPmFsbG9jX2JpdHNbd29yZF9pbmRleF0pOwotICAgICAgICBpZiAoc2hv
dWxkX2JlX2VsaWdpYmxlKSB7Ci0gICAgICAgICAgICB2aWV3LT5lbGlnaWJpbGl0eV9ub3RpZmlj
YXRpb25faGFzX2JlZW5fZGVmZXJyZWQgPSB0cnVlOwotICAgICAgICAgICAgdmlldy0+ZWxpZ2li
aWxpdHlfaGFzX2JlZW5fbm90ZWQgPSB0cnVlOwotICAgICAgICB9Ci0KICAgICAgICAgaWYgKCFo
YXNfZmlyc3Rfbm9uX3plcm9fd29yZF9pbmRleCkgewogICAgICAgICAgICAgZmlyc3Rfbm9uX3pl
cm9fd29yZF9pbmRleCA9IHdvcmRfaW5kZXg7CiAgICAgICAgICAgICBoYXNfZmlyc3Rfbm9uX3pl
cm9fd29yZF9pbmRleCA9IHRydWU7CkBAIC0xMDYwLDggKzEwNzcsOCBAQCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3JlZmlsbF93aXRoX2tub3duX2NvCiAgICAgICAgICAgICBwYXNfY29tcGlsZXJfZmVu
Y2UoKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKCZ2aWV3X2NhY2hlLT5zY2F2ZW5nZXJf
ZGF0YSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfaXNfZW1wdHkodmlld19jYWNoZSkpIHsKKworICAgICAgICAgICAgaWYgKHBhc19sb2NhbF92
aWV3X2NhY2hlX3ByZXBhcmVfdG9fcG9wKHZpZXdfY2FjaGUpKSB7CiAgICAgICAgICAgICAgICAg
bmV3X3ZpZXcgPSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19hc192aWV3KHBhc19sb2Nh
bF92aWV3X2NhY2hlX3BvcCh2aWV3X2NhY2hlKSk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNfc29tZV9l
eGNsdXNpdmUobmV3X3ZpZXcpKTsKQEAgLTE1MTcsMTEgKzE1MzQsMTQgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGVfc21hbGxfcwogewogICAgIFBBU19BU1NFUlQoIXBhc19kZWJ1
Z19oZWFwX2lzX2VuYWJsZWQoY29uZmlnLmtpbmQpKTsKICAgICAKKyAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX2NvbW1pdF9pZl9uZWNlc3NhcnkoYWxsb2NhdG9yLCBjb25maWcpOworICAgIAogICAg
IGZvciAoOzspIHsKICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKICAgICAg
ICAgYm9vbCByZWZpbGxfcmVzdWx0OwogCiAgICAgICAgIFBBU19BU1NFUlQoY29uZmlnLnNtYWxs
X3NlZ3JlZ2F0ZWRfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCk7CisKICAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZF9jcmVhdGVfbm9ybWFsKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5raW5kKSk7CiAKQEAgLTE1NzcsOCArMTU5
Nyw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291dF9vZl8KICAgICBpZiAo
Y29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCiAgICAgICAgIG91
cl9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX2JpdGZpdCgK
ICAgICAgICAgICAgIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLmtpbmQpKSB7CisgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2NhdGlv
bigmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgIHJldHVybiBjb25maWcuc21h
bGxfYml0Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKAotICAg
ICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvciksIHNpemUs
IGFsaWdubWVudCk7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQo
YWxsb2NhdG9yKSwgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQpOwogICAgIH0KICAgICAKICAg
ICBpZiAoY29uZmlnLm1lZGl1bV9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYK
QEAgLTE1OTIsOCArMTYxMyw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291
dF9vZl8KICAgICBpZiAoY29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmlnLmJhc2UuaXNfZW5hYmxl
ZCAmJgogICAgICAgICBvdXJfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
X2NyZWF0ZV9iaXRmaXQoCiAgICAgICAgICAgICBjb25maWcubWVkaXVtX2JpdGZpdF9jb25maWcu
a2luZCkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9kaWRf
dXNlX2Zvcl9hbGxvY2F0aW9uKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhKTsKICAgICAgICAg
cmV0dXJuIGNvbmZpZy5tZWRpdW1fYml0Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9hbGxvY2F0b3Jf
dHJ5X2FsbG9jYXRlKAotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0
KGFsbG9jYXRvciksIHNpemUsIGFsaWdubWVudCk7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX2dldF9iaXRmaXQoYWxsb2NhdG9yKSwgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQp
OwogICAgIH0KICAgICAKICAgICBpZiAoY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmJh
c2UuaXNfZW5hYmxlZCAmJgpAQCAtMTYxNyw4ICsxNjM5LDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfb3V0X29mXwogICAgIGlmIChjb25maWcubWFyZ2VfYml0Zml0X2NvbmZp
Zy5iYXNlLmlzX2VuYWJsZWQgJiYKICAgICAgICAgb3VyX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25maWdfa2luZF9jcmVhdGVfYml0Zml0KAogICAgICAgICAgICAgY29uZmlnLm1hcmdl
X2JpdGZpdF9jb25maWcua2luZCkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9k
YXRhKTsKICAgICAgICAgcmV0dXJuIGNvbmZpZy5tYXJnZV9iaXRmaXRfY29uZmlnLnNwZWNpYWxp
emVkX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoCi0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2dldF9iaXRmaXQoYWxsb2NhdG9yKSwgc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBhbGxvY2F0b3IsIHNp
emUsIGFsaWdubWVudCk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBwYXNfZmFzdF9wYXRoX2Fs
bG9jYXRpb25fcmVzdWx0X2NyZWF0ZV9uZWVkX3Nsb3coKTsKQEAgLTE2MzcsOSArMTY2MCwxMSBA
QCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93X2ltCiAgICAgICAgIHBhc19s
b2coIkNhbGxlZCB0cnlfYWxsb2NhdGVfc2xvdyB3aXRoIGtpbmQgPSAlc1xuIiwKICAgICAgICAg
ICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9zdHJpbmcoYWxsb2Nh
dG9yLT5jb25maWdfa2luZCkpOwogICAgIH0KLQorICAgIAogICAgIFBBU19BU1NFUlQoIXBhc19k
ZWJ1Z19oZWFwX2lzX2VuYWJsZWQoY29uZmlnLmtpbmQpKTsKICAgICAKKyAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX2NvbW1pdF9pZl9uZWNlc3NhcnkoYWxsb2NhdG9yLCBjb25maWcpOworICAgIAog
ICAgIGZvciAoOzspIHsKICAgICAgICAgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdCBm
YXN0X3Jlc3VsdDsKICAgICAgICAgcGFzX2FsbG9jYXRpb25fcmVzdWx0IHJlc3VsdDsKQEAgLTE2
NTYsNiArMTY4MSw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3dfaW0K
ICAgICAgICAgfQogCiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3ItPmNvbmZp
Z19raW5kICE9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfdW5zZWxlY3RlZCk7Cisg
ICAgICAgIAorICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2lu
ZCAhPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQpOwogICAgICAg
ICBQQVNfVEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCAhPSBwYXNfbG9jYWxf
YWxsb2NhdG9yX2NvbmZpZ19raW5kX251bGwpOwogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQo
IXBhc19sb2NhbF9hbGxvY2F0b3JfaGFzX2JpdGZpdChhbGxvY2F0b3IpKTsKIApJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvcl9raW5kLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSwxMCBAQAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCiBlbnVtIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfa2luZCB7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9r
aW5kLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZCwKICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kLAorICAgIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl92
aWV3X2NhY2hlX2tpbmQKIH07CiAKQEAgLTQwLDggKzQzLDE0IEBAIHR5cGVkZWYgZW51bSBwYXNf
bG9jYWxfYWxsb2NhdG9yX2tpbmQgcGEKIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kX2dldF9zdHJpbmcocGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtp
bmQpCiB7CiAgICAgc3dpdGNoIChraW5kKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9y
X2RlY29tbWl0dGVkX2tpbmQ6CisgICAgICAgIHJldHVybiAiZGVjb21taXR0ZWQiOworICAgIGNh
c2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgICAgICBy
ZXR1cm4gInN0b3BwZWRfYWxsb2NhdG9yIjsKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jf
YWxsb2NhdG9yX2tpbmQ6CiAgICAgICAgIHJldHVybiAiYWxsb2NhdG9yIjsKKyAgICBjYXNlIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVy
biAic3RvcHBlZF92aWV3X2NhY2hlIjsKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmll
d19jYWNoZV9raW5kOgogICAgICAgICByZXR1cm4gInZpZXdfY2FjaGUiOwogICAgIH0KQEAgLTQ5
LDYgKzU4LDIxIEBAIHN0YXRpYyBpbmxpbmUgY29uc3QgY2hhciogcGFzX2xvY2FsX2FsbG8KICAg
ICByZXR1cm4gTlVMTDsKIH0KIAorc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF9hbGxvY2F0
b3Jfa2luZF9pc19zdG9wcGVkKHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBraW5kKQoreworICAg
IHN3aXRjaCAoa2luZCkgeyAKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0
ZWRfa2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jf
a2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tp
bmQ6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGxvY2F0b3Jfa2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9r
aW5kOgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorICAgIFBBU19BU1NFUlQoISJTaG91
bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIFBBU19FTkRfRVhU
RVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX0tJTkQgKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMJKHJldmlzaW9uIDI4ODM0NikK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChjKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwyMSArMjksMTI4IEBACiAKICNpbmNs
dWRlICJwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgiCiAKKyNpbmNsdWRlICJw
YXNfYWxsb2NhdG9yX2luZGV4LmgiCisjaW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90
YWJsZS5oIgogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3IuaCIKICNpbmNsdWRlICJwYXNf
bG9jYWxfdmlld19jYWNoZS5oIgorI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKKyNpbmNsdWRl
ICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXQuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAKIHVpbnQ4
X3QgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCA9IDU7
CiAKLWJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUocGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSkKK2Jvb2wgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19iYXNlbGluZV9hbGxvY2F0b3IocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSkKIHsKLSAgICBzd2l0Y2ggKGRhdGEtPmtpbmQp
IHsKLSAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ6Ci0gICAgICAg
IHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX2lzX2FjdGl2ZSgocGFzX2xvY2FsX2FsbG9jYXRv
ciopZGF0YSk7Ci0gICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoK
LSAgICAgICAgcmV0dXJuICFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSgocGFzX2xvY2Fs
X3ZpZXdfY2FjaGUqKWRhdGEpOworICAgIHVpbnRwdHJfdCBkYXRhX3B0cjsKKyAgICB1aW50cHRy
X3QgYmFzZWxpbmVfYmVnaW47CisgICAgdWludHB0cl90IGJhc2VsaW5lX2VuZDsKKworICAgIGRh
dGFfcHRyID0gKHVpbnRwdHJfdClkYXRhOworICAgIGJhc2VsaW5lX2JlZ2luID0gKHVpbnRwdHJf
dClwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlOworICAgIGJhc2VsaW5lX2VuZCA9ICh1aW50
cHRyX3QpKHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUgKyBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlX2JvdW5kKTsKKworICAgIHJldHVybiBkYXRhX3B0ciA+PSBiYXNlbGluZV9iZWdp
biAmJiBkYXRhX3B0ciA8IGJhc2VsaW5lX2VuZDsKK30KKworYm9vbCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YSogZGF0YSkKK3sKKyAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2lz
X3N0b3BwZWQoZGF0YS0+a2luZCk7Cit9CisKK3ZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3coCisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19tb2RlIG1vZGUsCisgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kIGV4cGVjdGVkX2tpbmQpCit7CisgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogY2FjaGU7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleDsKKyAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOworICAgIHBhc19sb2Nr
X2hvbGRfbW9kZSBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGU7CisgICAgYm9vbCBpc19pbl91c2U7
CisKKyAgICBQQVNfQVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGxvY2F0b3Jfa2luZAorICAgICAgICAgICAgICAgfHwgZXhwZWN0ZWRfa2luZCA9PSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisKKyAgICBzd2l0Y2ggKG1vZGUpIHsKKyAg
ICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vz
c2FyeV9zbG93X2lzX2luX3VzZV93aXRoX25vX2xvY2tzX2hlbGRfbW9kZToKKyAgICAgICAgc2Nh
dmVuZ2VyX2xvY2tfaG9sZF9tb2RlID0gcGFzX2xvY2tfaXNfbm90X2hlbGQ7CisgICAgICAgIGlz
X2luX3VzZSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfaXNfbm90X2luX3Vz
ZV93aXRoX3NjYXZlbmdlcl9sb2NrX2hlbGRfbW9kZToKKyAgICAgICAgc2NhdmVuZ2VyX2xvY2tf
aG9sZF9tb2RlID0gcGFzX2xvY2tfaXNfaGVsZDsKKyAgICAgICAgaXNfaW5fdXNlID0gZmFsc2U7
CisgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSBy
ZWFjaGVkIik7Ci0gICAgcmV0dXJuIGZhbHNlOworCisgICAgLyogTk9URTogdGhpcyBjYW4gb25s
eSBiZSBjYWxsZWQgd2hlbiBpc19pbl91c2UsIGJ1dCBpdCdzIHBvc3NpYmxlIHRoYXQgdGhpcyBh
bGxvY2F0b3Igd2lsbCBnZXQKKyAgICAgICBkZWNvbW1pdHRlZCBhdCBhbnkgdGltZSwgd2hpY2gg
bWF5IHJlc3VsdCBpbiBpc19pbl91c2UgYmVpbmcgY2xlYXJlZC4gKi8KKworICAgIGlmIChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2Jhc2VsaW5lX2FsbG9jYXRvcihkYXRh
KSkgeworICAgICAgICBQQVNfQVNTRVJUKGRhdGEtPmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRv
cl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kKTsKKyAgICAgICAgUEFTX0FTU0VSVChleHBlY3RlZF9r
aW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpOworICAgICAgICBQQVNf
QVNTRVJUKGRhdGEtPmlzX2luX3VzZSA9PSBpc19pbl91c2UpOworICAgICAgICBkYXRhLT5raW5k
ID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7Cisg
ICAgUEFTX0FTU0VSVChjYWNoZSk7CisgICAgCisgICAgaWYgKGRhdGEtPmtpbmQgPT0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kCisgICAgICAgIHx8IGRhdGEtPmtp
bmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2FjaGVfa2luZCkgeworICAg
ICAgICBib29sIGRvbmU7CisgICAgICAgIAorICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAg
IAorICAgICAgICBwYXNfbG9ja19sb2NrX2NvbmRpdGlvbmFsbHkoJmNhY2hlLT5ub2RlLT5zY2F2
ZW5nZXJfbG9jaywgc2NhdmVuZ2VyX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgcGFzX2xvY2tf
dGVzdGluZ19hc3NlcnRfaGVsZCgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKKyAgICAg
ICAgc3dpdGNoIChkYXRhLT5raW5kKSB7CisgICAgICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRv
cl9kZWNvbW1pdHRlZF9raW5kOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgICAgICAgICAgUEFT
X0FTU0VSVChleHBlY3RlZF9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tp
bmQpOworICAgICAgICAgICAgZGF0YS0+a2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2Nh
dG9yX2tpbmQ7CisgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ6
CisgICAgICAgICAgICBQQVNfQVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9j
YXRvcl92aWV3X2NhY2hlX2tpbmQpOworICAgICAgICAgICAgZGF0YS0+a2luZCA9IHBhc19sb2Nh
bF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOworICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfZGlkX3Jlc3RhcnQoKHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRhKTsKKyAgICAgICAg
ICAgIGRvbmUgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6Cisg
ICAgICAgICAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgfQorICAgICAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9u
YWxseSgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrLCBzY2F2ZW5nZXJfbG9ja19ob2xkX21v
ZGUpOworICAgICAgICBpZiAoZG9uZSkgeworICAgICAgICAgICAgUEFTX0FTU0VSVChkYXRhLT5p
c19pbl91c2UgPT0gaXNfaW5fdXNlKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+a2lu
ZCA9PSBleHBlY3RlZF9raW5kKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
IH0KKworICAgIFBBU19BU1NFUlQoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rl
Y29tbWl0dGVkX2tpbmQpOworCisgICAgcGFzX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KCZjYWNo
ZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2ssIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSk7CisgICAg
cGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2Nr
KTsKKworICAgIFBBU19BU1NFUlQoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2Rl
Y29tbWl0dGVkX2tpbmQpOworCisgICAgaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Fs
bG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKGNhY2hlLCBkYXRhKTsKKyAgICBsYXlvdXRfbm9k
ZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9ub2RlX2Zvcl9pbmRleChpbmRl
eCk7CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRf
Y29uc3RydWN0KGxheW91dF9ub2RlLCBjYWNoZSk7CisKKyAgICBQQVNfQVNTRVJUKGRhdGEtPmtp
bmQgPT0gZXhwZWN0ZWRfa2luZCk7CisgICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09IHBhc19s
b2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQKKyAgICAgICAgICAgICAgIHx8IGRhdGEtPmtp
bmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQpOworCisgICAgZGF0YS0+
aXNfaW5fdXNlID0gaXNfaW5fdXNlOworICAgIAorICAgIHBhc19sb2NrX3VubG9ja19jb25kaXRp
b25hbGx5KCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2ssIHNjYXZlbmdlcl9sb2NrX2hvbGRf
bW9kZSk7CiB9CiAKIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9w
KApAQCAtNTIsNiArMTU5LDEwIEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV8KICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKICAg
ICBzd2l0Y2ggKGRhdGEtPmtpbmQpIHsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVj
b21taXR0ZWRfa2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxv
Y2F0b3Jfa2luZDoKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2Nh
Y2hlX2tpbmQ6CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9j
YXRvcl9hbGxvY2F0b3Jfa2luZDoKICAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c3RvcCgocGFzX2xvY2FsX2FsbG9jYXRvciopZGF0YSwgcGFnZV9sb2NrX21vZGUsIGhlYXBfbG9j
a19ob2xkX21vZGUpOwogICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tp
bmQ6CkBAIC02MSw2ICsxNzIsMTkgQEAgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhXwogICAgIHJldHVybiBmYWxzZTsKIH0KIAordm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX3ByZXBhcmVfdG9fZGVjb21taXQocGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YSogZGF0YSkKK3sKKyAgICAvKiBGdW4gZmFjdDogdGhlIGFsbG9jYXRvciBt
aWdodCBoYXZlIGlzX2luX3VzZSA9IHRydWUgd2hlbiB3ZSdyZSBpbiB0aGVyZSwgYnV0IGluIHRo
YXQgY2FzZSwgdGhhdAorICAgICAgIGFsbG9jYXRvciBjYW4ndCBkbyBhbnl0aGluZyB3aXRob3V0
IGdyYWJiaW5nIHRoZSBzY2F2ZW5nZXJfbG9jayAoYmVjYXVzZSB0aGUgYWxsb2NhdG9yIHNheXMg
aXQncworICAgICAgIHN0b3BwZWQpLiAqLworICAgIAorICAgIFBBU19BU1NFUlQocGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKGRhdGEpKTsKKworICAgIHBhc19o
ZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKworICAgIGRhdGEtPmtpbmQgPSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2RlY29tbWl0dGVkX2tpbmQ7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAq
LwogCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgJKHJl
dmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTMg
KzY1LDMzIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3MKICAgICBk
YXRhLT5zaG91bGRfc3RvcF9jb3VudCA9IDA7CiB9CiAKLVBBU19BUEkgYm9vbCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhKiBkYXRhKTsKK1BBU19BUEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhX2lzX2Jhc2VsaW5lX2FsbG9jYXRvcihwYXNfbG9jYWxfYWxsb2NhdG9yX3Nj
YXZlbmdlcl9kYXRhKiBkYXRhKTsKKworUEFTX0FQSSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhKiBkYXRhKTsKKworZW51bSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2Nv
bW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19tb2RlIHsKKyAgICAvKiBUaGlzIGNhdXNlcyB0aGUgY29t
bWl0X2lmX25lY2Vzc2FyeSBjb2RlIHRvIGFsd2F5cyBzdWNjZWVkIGFuZCBhbHdheXMgcmV0dXJu
IHRydWUuICovCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRf
aWZfbmVjZXNzYXJ5X3Nsb3dfaXNfaW5fdXNlX3dpdGhfbm9fbG9ja3NfaGVsZF9tb2RlLAorCisg
ICAgLyogVGhpcyBjYXVzZXMgdGhlIGNvbW1pdF9pZl9uZWNlc3NhcnkgY29kZSB0byBzb21ldGlt
ZXMgZmFpbCB0byBhY3F1aXJlIHRoZSBoZWFwIGxvY2ssIGFuZCB0aGVuIGl0IHdpbGwKKyAgICAg
ICByZXR1cm4gZmFsc2UuICovCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfaXNfbm90X2luX3VzZV93aXRoX3NjYXZlbmdlcl9s
b2NrX2hlbGRfbW9kZQorfTsKKwordHlwZWRlZiBlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X21vZGUgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfbW9kZTsKKworUEFT
X0FQSSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25l
Y2Vzc2FyeV9zbG93KAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRh
dGEsCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVj
ZXNzYXJ5X3Nsb3dfbW9kZSBtb2RlLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBleHBl
Y3RlZF9raW5kKTsKIAogUEFTX0FQSSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfc3RvcCgKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRh
LAogICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSwKICAgICBwYXNfbG9ja19o
b2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3ByZXBhcmVfdG9fZGVjb21taXQocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNl
bmRpZiAvKiBQQVNfTE9DQUxfQUxMT0NBVE9SX1NDQVZFTkdFUl9EQVRBX0ggKi8KSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3Zp
ZXdfY2FjaGUuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAtNDIsNyAr
NDIsNyBAQCB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdChwYXNfCiAgICAgY2Fj
aGUtPmNhcGFjaXR5ID0gY2FwYWNpdHk7CiAgICAgY2FjaGUtPmJvdHRvbV9pbmRleCA9IDA7CiAg
ICAgY2FjaGUtPnRvcF9pbmRleCA9IDA7Ci0gICAgY2FjaGUtPmlzX2Z1bGwgPSBmYWxzZTsKKyAg
ICBjYWNoZS0+c3RhdGUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub3RfZnVsbF9zdGF0ZTsKIAog
ICAgIGlmIChQQVNfRU5BQkxFX1RFU1RJTkcpIHsKICAgICAgICAgdWludDhfdCBpbmRleDsKQEAg
LTU1LDYgKzU1LDggQEAgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9jb25zdHJ1Y3QocGFzXwog
dm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHBhc19sb2NhbF92aWV3X2NhY2hlKiBkZXN0
aW5hdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19j
YWNoZSogc291cmNlKQogeworICAgIFBBU19BU1NFUlQoIWRlc3RpbmF0aW9uLT5zY2F2ZW5nZXJf
ZGF0YS5pc19pbl91c2UpOworICAgIFBBU19BU1NFUlQoIXNvdXJjZS0+c2NhdmVuZ2VyX2RhdGEu
aXNfaW5fdXNlKTsKICAgICBtZW1jcHkoZGVzdGluYXRpb24sIHNvdXJjZSwgUEFTX0xPQ0FMX1ZJ
RVdfQ0FDSEVfU0laRShzb3VyY2UtPmNhcGFjaXR5KSk7CiB9CiAKQEAgLTEwOSwxMyArMTExLDI0
IEBAIGJvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWwKIAogICAgIFBBU19B
U1NFUlQoIWNhY2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOwogCisgICAgLyogRG9pbmcg
dGhpcyBjaGVjayBiZWZvcmUgc2V0dGluZyBpc19pbl91c2UgZ3VhcmRzIGFnYWluc3Qgc2l0dWF0
aW9ucyB3aGVyZSBjYWxsaW5nIHN0b3Agd291bGQKKyAgICAgICByZWNvbW1pdCBhIGRlY29tbWl0
dGVkIHZpZXcgY2FjaGUuICovCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfaXNfc3RvcHBlZCgmY2FjaGUtPnNjYXZlbmdlcl9kYXRhKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKICAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsKICAg
ICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAogICAgIHJlc3VsdCA9IHN0b3BfaW1wbChjYWNoZSwg
cGFnZV9sb2NrX21vZGUpOwogCi0gICAgaWYgKHJlc3VsdCkKKyAgICBpZiAocmVzdWx0KSB7Cisg
ICAgICAgIFBBU19BU1NFUlQocGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9
PSBwYXNfbG9jYWxfdmlld19jYWNoZV9ub3RfZnVsbF9zdGF0ZSk7CisgICAgICAgIFBBU19BU1NF
UlQoY2FjaGUtPnRvcF9pbmRleCA9PSBjYWNoZS0+Ym90dG9tX2luZGV4KTsKKworICAgICAgICBw
YXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3RhdGUoY2FjaGUsIHBhc19sb2NhbF92aWV3X2NhY2hl
X3N0b3BwZWRfc3RhdGUpOwogICAgICAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEuc2hvdWxkX3N0
b3BfY291bnQgPSAwOworICAgICAgICBjYWNoZS0+c2NhdmVuZ2VyX2RhdGEua2luZCA9IHBhc19s
b2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF92aWV3X2NhY2hlX2tpbmQ7CisgICAgfQogCiAgICAgcGFz
X2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9
IGZhbHNlOwpAQCAtMTIzLDUgKzEzNiwxMCBAQCBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0
b3AocGFzX2xvY2FsCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordm9pZCBwYXNfbG9jYWxfdmll
d19jYWNoZV9kaWRfcmVzdGFydChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0YXRlKGNhY2hlLCBwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub3RfZnVsbF9zdGF0ZSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNo
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF92aWV3X2NhY2hlLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDEzICszNiwyMSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiBzdHJ1Y3QgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGU7CiB0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZSBwYXNfbG9jYWxf
dmlld19jYWNoZTsKIAorZW51bSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSB7CisgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSwKKyAgICBwYXNfbG9jYWxfdmlld19jYWNo
ZV9ub3RfZnVsbF9zdGF0ZSwKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9mdWxsX3N0YXRlCit9
OworCit0eXBlZGVmIGVudW0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfc3RhdGU7CisKIHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZSB7CiAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSBzY2F2ZW5nZXJfZGF0YTsKICAgICB1aW50
OF90IGNhcGFjaXR5OwogICAgIC8qIGJvdHRvbV9pbmRleCBhbmQgdG9wX2luZGV4IG11c3QgYmUg
PCBjYXBhY2l0eS4gKi8KICAgICB1aW50OF90IGJvdHRvbV9pbmRleDsKICAgICB1aW50OF90IHRv
cF9pbmRleDsKLSAgICBib29sIGlzX2Z1bGw7CisgICAgdWludDhfdCBzdGF0ZTsKICAgICBwYXNf
Y29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0ciB2aWV3c1sxXTsKIH07CiAKQEAg
LTU0LDEzICs2Miw5MCBAQCBzdHJ1Y3QgcGFzX2xvY2FsX3ZpZXdfY2FjaGUgewogUEFTX0FQSSB2
b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2NvbnN0cnVjdChwYXNfbG9jYWxfdmlld19jYWNoZSog
Y2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4
X3QgY2FwYWNpdHkpOwogCitzdGF0aWMgaW5saW5lIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRl
IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShwYXNfbG9jYWxfdmlld19jYWNoZSogY2Fj
aGUpCit7CisgICAgcmV0dXJuIChwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSljYWNoZS0+c3Rh
dGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3Rh
dGUocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSBzdGF0
ZSkKK3sKKyAgICBjYWNoZS0+c3RhdGUgPSAodWludDhfdClzdGF0ZTsKK30KKworc3RhdGljIGlu
bGluZSBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwocGFzX2xvY2FsX3ZpZXdfY2Fj
aGUqIGNhY2hlKQoreworICAgIHJldHVybiBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3RhdGUo
Y2FjaGUpID09IHBhc19sb2NhbF92aWV3X2NhY2hlX2Z1bGxfc3RhdGU7Cit9CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9jYW5fcHVzaChwYXNfbG9jYWxfdmlld19j
YWNoZSogY2FjaGUpCit7CisgICAgcmV0dXJuIHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0
ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGU7Cit9CisKIHN0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eShwYXNfbG9jYWxf
dmlld19jYWNoZSogY2FjaGUpCiB7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT5ib3R0
b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNo
ZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQo
IWNhY2hlLT5pc19mdWxsIHx8IGNhY2hlLT5ib3R0b21faW5kZXggPT0gY2FjaGUtPnRvcF9pbmRl
eCk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxs
KGNhY2hlKSB8fCBjYWNoZS0+Ym90dG9tX2luZGV4ID09IGNhY2hlLT50b3BfaW5kZXgpOworCisg
ICAgcmV0dXJuIGNhY2hlLT50b3BfaW5kZXggPT0gY2FjaGUtPmJvdHRvbV9pbmRleCAmJiAhcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSk7Cit9CiAKLSAgICByZXR1cm4gY2FjaGUt
PnRvcF9pbmRleCA9PSBjYWNoZS0+Ym90dG9tX2luZGV4ICYmICFjYWNoZS0+aXNfZnVsbDsKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3BvcChwYXNf
bG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3Rh
dGUgc3RhdGU7CisgICAgCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT5ib3R0b21faW5k
ZXggPCBjYWNoZS0+Y2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9w
cGVkX3N0YXRlKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNh
Y2hlLT5jYXBhY2l0eQorICAgICAgICAgICAgICAgICAgICAgICB8fCBwYXNfbG9jYWxfdmlld19j
YWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3BwZWRfc3Rh
dGUpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVs
bChjYWNoZSkgfHwgY2FjaGUtPmJvdHRvbV9pbmRleCA9PSBjYWNoZS0+dG9wX2luZGV4KTsKKwor
ICAgIGlmIChjYWNoZS0+dG9wX2luZGV4ICE9IGNhY2hlLT5ib3R0b21faW5kZXgpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgc3RhdGUgPSBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3Rh
dGUoY2FjaGUpOworICAgIHN3aXRjaCAoc3RhdGUpIHsKKyAgICBjYXNlIHBhc19sb2NhbF92aWV3
X2NhY2hlX3N0b3BwZWRfc3RhdGU6CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93KAorICAgICAgICAgICAgJmNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YSwKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lzX2luX3VzZV93aXRoX25vX2xvY2tzX2hl
bGRfbW9kZSwKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5k
KTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
ZnVsbF9zdGF0ZToKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBwYXNfbG9jYWxfdmll
d19jYWNoZV9ub3RfZnVsbF9zdGF0ZToKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30K
Kworc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX3ByZXBhcmVfdG9fcHVz
aChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgcGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfc3RhdGUgc3RhdGU7CisgICAgCisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT5ib3R0
b21faW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkKKyAgICAgICAgICAgICAgICAgICAgICAgfHwgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBwYXNfbG9jYWxfdmlld19jYWNo
ZV9zdG9wcGVkX3N0YXRlKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRl
eCA8IGNhY2hlLT5jYXBhY2l0eQorICAgICAgICAgICAgICAgICAgICAgICB8fCBwYXNfbG9jYWxf
dmlld19jYWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3Bw
ZWRfc3RhdGUpOworICAgIFBBU19URVNUSU5HX0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
aXNfZnVsbChjYWNoZSkgfHwgY2FjaGUtPmJvdHRvbV9pbmRleCA9PSBjYWNoZS0+dG9wX2luZGV4
KTsKKworICAgIHN0YXRlID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKTsK
KyAgICBpZiAoc3RhdGUgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGUpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CisgICAgaWYg
KHN0YXRlID09IHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3BwZWRfc3RhdGUpIHsKKyAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Ns
b3coCisgICAgICAgICAgICAmY2FjaGUtPnNjYXZlbmdlcl9kYXRhLAorICAgICAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3df
aXNfbm90X2luX3VzZV93aXRoX3NjYXZlbmdlcl9sb2NrX2hlbGRfbW9kZSwKKyAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kKTsKKyAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKHBhc19sb2NhbF92aWV3X2NhY2hlX2Nhbl9wdXNoKGNhY2hlKSk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKworICAgIFBBU19URVNUSU5HX0FTU0VSVChzdGF0ZSA9PSBw
YXNfbG9jYWxfdmlld19jYWNoZV9mdWxsX3N0YXRlKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IHN0YXRpYyBpbmxpbmUgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19sb2NhbF92
aWV3X2NhY2hlX3BvcChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCkBAIC0xMTAsOCArMTk1
LDggQEAgc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdgogICAgIAogICAg
IGlmIChQQVNfRU5BQkxFX1RFU1RJTkcpCiAgICAgICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfcHRyX3N0b3JlKGNhY2hlLT52aWV3cyArIHBvcF9pbmRleCwgTlVMTCk7
Ci0gICAgCi0gICAgY2FjaGUtPmlzX2Z1bGwgPSBmYWxzZTsKKworICAgIHBhc19sb2NhbF92aWV3
X2NhY2hlX3NldF9zdGF0ZShjYWNoZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3Rh
dGUpOwogICAgIAogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCIlcDogcG9wcGVk
ICVwLlxuIiwgY2FjaGUsIHJlc3VsdCk7CkBAIC0xMTksMTEgKzIwNCw2IEBAIHN0YXRpYyBpbmxp
bmUgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3YKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
dGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChwYXNfbG9jYWxf
dmlld19jYWNoZSogY2FjaGUpCi17Ci0gICAgcmV0dXJuIGNhY2hlLT5pc19mdWxsOwotfQotCiBz
dGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHVzaCgKICAgICBwYXNfbG9j
YWxfdmlld19jYWNoZSogY2FjaGUsCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcq
IHZpZXcpCkBAIC0xMzUsNyArMjE1LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF92
aWV3X2NhY2hlXwogCiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT5ib3R0b21faW5kZXgg
PCBjYWNoZS0+Y2FwYWNpdHkpOwogICAgIFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+dG9wX2lu
ZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKLSAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhc19sb2Nh
bF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpKTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQocGFz
X2xvY2FsX3ZpZXdfY2FjaGVfY2FuX3B1c2goY2FjaGUpKTsKICAgICBQQVNfVEVTVElOR19BU1NF
UlQodmlldyk7CiAKICAgICBpZiAodmVyYm9zZSkKQEAgLTE0OSw3ICsyMjksNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfCiAgICAgfQogCiAgICAgaWYgKG5leHRf
dG9wX2luZGV4ID09IGNhY2hlLT5ib3R0b21faW5kZXgpCi0gICAgICAgIGNhY2hlLT5pc19mdWxs
ID0gdHJ1ZTsKKyAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0YXRlKGNhY2hlLCBw
YXNfbG9jYWxfdmlld19jYWNoZV9mdWxsX3N0YXRlKTsKICAgICAKICAgICBQQVNfVEVTVElOR19B
U1NFUlQocGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfaXNfbnVsbChj
YWNoZS0+dmlld3MgKyB0b3BfaW5kZXgpKTsKIApAQCAtMTYyLDYgKzI0Miw4IEBAIFBBU19BUEkg
dm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9tb3ZlKHAKIAogUEFTX0FQSSBib29sIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3N0b3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLCBwYXNfbG9ja19s
b2NrX21vZGUgcGFnZV9sb2NrX21vZGUpOwogCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfZGlkX3Jlc3RhcnQocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKTsKKwogUEFTX0VO
RF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19MT0NBTF9WSUVXX0NBQ0hFX0ggKi8KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2suaAkocmV2aXNpb24g
Mjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2suaAko
d29ya2luZyBjb3B5KQpAQCAtMjA5LDYgKzIwOSwxMSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAg
ICAgICAgIHJldHVybiBwYXNfbG9ja190cnlfbG9jaygmbmFtZSMjX2xvY2spOyBcCiAgICAgfSBc
CiAgICAgXAorICAgIFBBU19VTlVTRUQgc3RhdGljIGlubGluZSBib29sIG5hbWUjI19sb2NrX2xv
Y2tfd2l0aF9tb2RlKHBhc19sb2NrX2xvY2tfbW9kZSBtb2RlKSBcCisgICAgeyBcCisgICAgICAg
IHJldHVybiBwYXNfbG9ja19sb2NrX3dpdGhfbW9kZSgmbmFtZSMjX2xvY2ssIG1vZGUpOyBcCisg
ICAgfSBcCisgICAgXAogICAgIFBBU19VTlVTRUQgc3RhdGljIGlubGluZSB2b2lkIG5hbWUjI19s
b2NrX3VubG9jayh2b2lkKSBcCiAgICAgeyBcCiAgICAgICAgIHBhc19sb2NrX3VubG9jaygmbmFt
ZSMjX2xvY2spOyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bW1hcF9jYXBhYmlsaXR5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDg1IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUEFTX01NQVBfQ0FQQUJJTElUWV9ICisjZGVmaW5lIFBBU19N
TUFQX0NBUEFCSUxJVFlfSAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisKK1BBU19CRUdJTl9F
WFRFUk5fQzsKKworLyogTGlicGFzIHNvbWV0aW1lcyBhbGxvY2F0ZXMgaXRzIG93biBtZW1vcnkg
ZnJvbSB0aGUgT1MsIGFuZCBzb21ldGltZXMgaXMgdG9sZCB0byBtYW5hZ2UgbWVtb3J5IGFscmVh
ZHkKKyAgIGFsbG9jYXRlZCBieSBzb21lb25lIGVsc2UuIFNvbWV0aW1lcywgY2xpZW50cyBkb24n
dCB3YW50IGxpYnBhcyB0byB1c2UgY2VydGFpbnQgbWVtb3J5IG1hbmFnZW1lbnQgZnVuY3Rpb25z
CisgICBvbiB0aGUgbWVtb3J5IHRoYXQgdGhleSBhc2sgbGlicGFzIHRvIG1hbmFnZS4gVGhpcyBl
bnVtZXJhdGlvbiBjb250cm9scyB3aGF0IG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucworICAg
bGlicGFzIGNhbiBjYWxsIGZvciBzb21lIG1lbW9yeSB0aGF0IGl0IG1hbmFnZXMuICovCitlbnVt
IHBhc19tbWFwX2NhcGFiaWxpdHkgeworICAgIC8qIEluZGljYXRlcyB0aGF0IGxpYnBhcyBpc24n
dCBhbGxvd2VkIHRvIGNhbGwgbW1hcCwgbXByb3RlY3QsIG9yIG1vc3Qgb3RoZXIgbWVtb3J5IG1h
bmFnZW1lbnQgZnVuY3Rpb24gb24KKyAgICAgICB0aGUgZ2l2ZW4gbWVtb3J5LiBUaGlzIGlzIHVz
ZWQgZm9yIG1lbW9yeSB0aGF0IHdhcyBhbGxvY2F0ZWQgYnkgdGhlIGNsaWVudCB3aXRoIHNvbWUg
c3BlY2lmaWMgcGVybWlzc2lvbnMKKyAgICAgICBvciBvdGhlciBzcGVjaWFsIG1tYXAgYXJndW1l
bnRzLiBPciwgbWF5YmUgaXQgd2Fzbid0IGV2ZW4gYWxsb2NhdGVkIHdpdGggbW1hcC4KKworICAg
ICAgIExpYnBhcyBtYXkgc3RpbGwgY2FsbCBtYWR2aXNlKCkgb24gbWVtb3J5IHdpdGggdGhpcyBj
YXBhYmlsaXR5LCBzaW5jZSBtYWR2aXNlKCkgZG9lc24ndCBjaGFuZ2UgdGhlCisgICAgICAgcGVy
bWlzc2lvbnMgb2YgdGhlIG1hcHBpbmcuIEN1cnJlbnRseSwgbWFkdmlzZSgpIGlzIHRoZSBvbmx5
IHN5c2NhbGwgdGhhdCBsaWJwYXMgaXMgYWxsb3dlZCB0byB1c2UgZm9yCisgICAgICAgbWVtb3J5
IHRoYXQgaXMgcGFzX21heV9ub3RfbW1hcC4KKyAgICAKKyAgICAgICBVc2luZyBwYXNfbWF5X25v
dF9tbWFwIG1heSBkZWdyYWRlIHBlZm9ybWFuY2UsIGFmZmVjdCB0aGUgYWNjdXJhY3kgb2YgT1Mg
bWVtb3J5IHVzYWdlIGFjY291bnRpbmcsIG9yIHR1cm4KKyAgICAgICBvZmYgc29tZSBydW50aW1l
IGNoZWNraW5nLiBCdXQgaXQgd2lsbCBub3QgYWZmZWN0IHRoZSBjb3JyZWN0bmVzcyBvZiB0aGUg
YWxnb3JpdGhtLgorICAgIAorICAgICAgIEN1cnJlbnRseSB0aGUgcHJpbWFyeSBjbGllbnQgb2Yg
dGhpcyBvcHRpb24gaXMgaml0X2hlYXBfY29uZmlnLCBzaW5jZSB0aGUgSklUIGhlYXAgaXMgbW1h
cHBlZCBpbiBhCisgICAgICAgc3BlY2lhbCB3YXkgYW5kIHdpdGggc3BlY2lhbCBwZXJtaXNzaW9u
cy4gKi8KKyAgICBwYXNfbWF5X25vdF9tbWFwLAorCisgICAgLyogSW5kaWNhdGVzIHRoYXQgbGli
cGFzIHNob3VsZCBhc3N1bWUgdGhhdCB0aGUgbWVtb3J5IGlzIG1tYXBwZWQgaW4gc29tZSBjYW5v
bmljYWwgd2F5IChhbm9ueW1vdXMsIFJXIGJ1dAorICAgICAgIG5vdCBYLCBldGMpLiBMaWJwYXMg
bWF5IGNhbGwgbW1hcCwgbXByb3RlY3QgYW5kIG90aGVyIHN1Y2ggZnVuY3Rpb25zIG9uIHRoaXMg
bWVtb3J5IHNvIGxvbmcgYXMgaXQKKyAgICAgICByZXR1cm5zIGl0IHRvIHRoZSBjYW5vbmljYWwg
c3RhdGUgYmVmb3JlIHRoZSBtZW1vcnkgaXMgcmV0dXJuZWQgYnkgc29tZSBhbGxvY2F0ZSBmdW5j
dGlvbi4gTGlicGFzIGNvdWxkCisgICAgICAgdXNlIHRoaXMgY2FwYWJpbGl0eSB0bzoKKyAgICAg
ICAKKyAgICAgICAtIFJhcGlkbHkgemVyby1maWxsIHRoZSBtZW1vcnkgd2l0aCBhIGZpeGVkIG1t
YXAgY2FsbC4KKyAgICAgICAtIFJlc2V0IHRoZSBjb21taXQgc3RhdGUgd2l0aCBhIGZpeGVkIG1t
YXAgY2FsbC4KKyAgICAgICAtIFBlcmZvcm0gcnVudGltZSBjaGVja2luZyB0aGF0IGRlY29tbWl0
dGVkIG1lbW9yeSBpcyBub3QgdXNlZCBieSBtcHJvdGVjdGluZyBpdCB0byBQUk9UX05PTkUgKGFu
ZCB0aGVuCisgICAgICAgICByZXR1cm5pbmcgaXQgdG8gbm9ybWFsIHBlcm1pc3Npb25zIHdoZW4g
cmVjb21taXR0ZWQpLgorICAgIAorICAgICAgIFRoZSBjYXBhYmlsaXRpZXMgZW5hYmxlZCBieSBw
YXNfbWF5X21tYXAgYXJlIGdvb2QgZm9yIHBlcmZvcm1hbmNlIGFuZCB0ZXN0aW5nLCBidXQgYXJl
bid0IG5lY2Vzc2FyeSBmb3IKKyAgICAgICBsaWJwYXMgdG8gd29yayBjb3JyZWN0bHksIHNvIGl0
J3Mgbm90IHRoZSBlbmQgb2YgdGhlIHdvcmxkIHRvIGhhdmUgdG8gdXNlIHBhc19tYXlfbm90X21t
YXAgaW5zdGVhZC4gKi8KKyAgICBwYXNfbWF5X21tYXAKK307CisKK3R5cGVkZWYgZW51bSBwYXNf
bW1hcF9jYXBhYmlsaXR5IHBhc19tbWFwX2NhcGFiaWxpdHk7CisKK3N0YXRpYyBpbmxpbmUgY29u
c3QgY2hhciogcGFzX21tYXBfY2FwYWJpbGl0eV9nZXRfc3RyaW5nKHBhc19tbWFwX2NhcGFiaWxp
dHkgY2FwYWJpbGl0eSkKK3sKKyAgICBzd2l0Y2ggKGNhcGFiaWxpdHkpIHsKKyAgICBjYXNlIHBh
c19tYXlfbm90X21tYXA6CisgICAgICAgIHJldHVybiAibWF5X25vdF9tbWFwIjsKKyAgICBjYXNl
IHBhc19tYXlfbW1hcDoKKyAgICAgICAgcmV0dXJuICJtYXlfbW1hcCI7CisgICAgfQorICAgIFBB
U19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICByZXR1cm4gTlVMTDsKK30K
KworUEFTX0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19NTUFQX0NBUEFCSUxJVFlfSCAq
LworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxs
b2MuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
cGFnZV9tYWxsb2MuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Nyw3ICs0
NywxMCBAQAogc2l6ZV90IHBhc19wYWdlX21hbGxvY19udW1fYWxsb2NhdGVkX2J5dGVzOwogc2l6
ZV90IHBhc19wYWdlX21hbGxvY19jYWNoZWRfYWxpZ25tZW50Owogc2l6ZV90IHBhc19wYWdlX21h
bGxvY19jYWNoZWRfYWxpZ25tZW50X3NoaWZ0OwotYm9vbCBwYXNfcGFnZV9tYWxsb2NfbXByb3Rl
Y3RfZGVjb21taXR0ZWQgPSBQQVNfRU5BQkxFX1RFU1RJTkc7CisKKyNpZiBQQVNfT1MoREFSV0lO
KQorYm9vbCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfemVyb19maWxsID0gZmFsc2U7CisjZW5k
aWYgLyogUEFTX09TKERBUldJTikgKi8KIAogI2lmIFBBU19PUyhEQVJXSU4pCiAjZGVmaW5lIFBB
U19WTV9UQUcgVk1fTUFLRV9UQUcoVk1fTUVNT1JZX1RDTUFMTE9DKQpAQCAtNjEsMTMgKzY0LDcg
QEAgYm9vbCBwYXNfcGFnZV9tYWxsb2NfbXByb3RlY3RfZGVjb21taXR0ZQogI2RlZmluZSBQQVNf
Tk9SRVNFUlZFIDAKICNlbmRpZgogCi0KLSNkZWZpbmUgUEFTX1NZU0NBTEwoeCkgZG8geyBcCi0g
ICAgd2hpbGUgKCh4KSA9PSAtMSAmJiBlcnJubyA9PSBFQUdBSU4pIHsgfSBcCi19IHdoaWxlICgw
KTsKLQotCi1zaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZvaWQpCitQQVNf
TkVWRVJfSU5MSU5FIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3Nsb3codm9pZCkK
IHsKICAgICBsb25nIHJlc3VsdCA9IHN5c2NvbmYoX1NDX1BBR0VTSVpFKTsKICAgICBQQVNfQVNT
RVJUKHJlc3VsdCA+PSAwKTsKQEAgLTc2LDcgKzczLDcgQEAgc2l6ZV90IHBhc19wYWdlX21hbGxv
Y19hbGlnbm1lbnRfc2xvdyh2bwogICAgIHJldHVybiAoc2l6ZV90KXJlc3VsdDsKIH0KIAotc2l6
ZV90IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnRfc2xvdyh2b2lkKQorUEFTX05FVkVS
X0lOTElORSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdF9zbG93KHZvaWQp
CiB7CiAgICAgc2l6ZV90IHJlc3VsdDsKIApAQCAtMTcyLDExICsxNjksMjkgQEAgcGFzX3BhZ2Vf
bWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRob3V0X2RlYQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXZvaWQgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCh2b2lkKiBwdHIsIHNpemVfdCBzaXplKQordm9p
ZCBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKQorewor
ICAgIHNpemVfdCBwYWdlX3NpemU7CisgICAgdm9pZCogcmVzdWx0X3B0cjsKKworICAgIHBhZ2Vf
c2l6ZSA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKTsKKyAgICAKKyAgICBQQVNfQVNTRVJU
KHBhc19pc19hbGlnbmVkKCh1aW50cHRyX3QpYmFzZSwgcGFnZV9zaXplKSk7CisgICAgUEFTX0FT
U0VSVChwYXNfaXNfYWxpZ25lZChzaXplLCBwYWdlX3NpemUpKTsKKworICAgIHJlc3VsdF9wdHIg
PSBtbWFwKGJhc2UsCisgICAgICAgICAgICAgICAgICAgICAgc2l6ZSwKKyAgICAgICAgICAgICAg
ICAgICAgICBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFLAorICAgICAgICAgICAgICAgICAgICAgIE1B
UF9QUklWQVRFIHwgTUFQX0FOT04gfCBNQVBfRklYRUQgfCBQQVNfTk9SRVNFUlZFLAorICAgICAg
ICAgICAgICAgICAgICAgIFBBU19WTV9UQUcsCisgICAgICAgICAgICAgICAgICAgICAgMCk7Cisg
ICAgUEFTX0FTU0VSVChyZXN1bHRfcHRyID09IGJhc2UpOworfQorCitzdGF0aWMgdm9pZCBjb21t
aXRfaW1wbCh2b2lkKiBwdHIsIHNpemVfdCBzaXplLCBib29sIGRvX21wcm90ZWN0LCBwYXNfbW1h
cF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICB1aW50cHRyX3QgYmFzZV9hc19p
bnQ7CiAgICAgdWludHB0cl90IGVuZF9hc19pbnQ7Ci0gICAgaW50IHJlc3VsdDsKIAogICAgIGJh
c2VfYXNfaW50ID0gKHVpbnRwdHJfdClwdHI7CiAgICAgZW5kX2FzX2ludCA9IGJhc2VfYXNfaW50
ICsgc2l6ZTsKQEAgLTE5MCwyNyArMjA1LDM0IEBAIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX2NvbW1p
dCh2b2lkKiBwdHIsIHMKICAgICBpZiAoZW5kX2FzX2ludCA9PSBiYXNlX2FzX2ludCkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCkgewotICAgICAg
ICByZXN1bHQgPSBtcHJvdGVjdCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNl
X2FzX2ludCwgUFJPVF9SRUFEIHwgUFJPVF9XUklURSk7Ci0gICAgICAgIGlmIChyZXN1bHQpIHsK
LSAgICAgICAgICAgIHBhc19sb2coIkNvdWxkIG5vdCBtcHJvdGVjdCBvbiBjb21taXQ6IGVycm9y
IGNvZGUgJWRcbiIsIHJlc3VsdCk7Ci0gICAgICAgICAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOwot
ICAgICAgICB9Ci0gICAgfQorICAgIGlmIChQQVNfTVBST1RFQ1RfREVDT01NSVRURUQgJiYgZG9f
bXByb3RlY3QgJiYgbW1hcF9jYXBhYmlsaXR5KQorICAgICAgICBQQVNfU1lTQ0FMTChtcHJvdGVj
dCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgUFJPVF9SRUFE
IHwgUFJPVF9XUklURSkpOwogCiAjaWYgUEFTX09TKExJTlVYKQotICAgIFBBU19TWVNDQUxMKG1h
ZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIE1BRFZf
RE9EVU1QKSk7CisgICAgUEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRE9EVU1Q
KSk7CiAjZW5kaWYKIH0KIAordm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQqIHB0ciwg
c2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQoreworICAg
IHN0YXRpYyBjb25zdCBib29sIGRvX21wcm90ZWN0ID0gdHJ1ZTsKKyAgICBjb21taXRfaW1wbChw
dHIsIHNpemUsIGRvX21wcm90ZWN0LCBtbWFwX2NhcGFiaWxpdHkpOworfQorCit2b2lkIHBhc19w
YWdlX21hbGxvY19jb21taXRfd2l0aG91dF9tcHJvdGVjdCh2b2lkKiBwdHIsIHNpemVfdCBzaXpl
LCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKK3sKKyAgICBzdGF0aWMgY29u
c3QgYm9vbCBkb19tcHJvdGVjdCA9IGZhbHNlOworICAgIGNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwg
ZG9fbXByb3RlY3QsIG1tYXBfY2FwYWJpbGl0eSk7Cit9CisKIHN0YXRpYyB2b2lkIGRlY29tbWl0
X2ltcGwodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym9vbCBpc19hc3ltbWV0cmljKQorICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRvX21w
cm90ZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1t
YXBfY2FwYWJpbGl0eSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CiAgICAgCiAgICAgdWludHB0cl90IGJhc2VfYXNfaW50OwogICAgIHVpbnRwdHJfdCBlbmRfYXNf
aW50OwotICAgIGludCByZXN1bHQ7CiAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xv
ZygiRGVjb21taXR0aW5nICVwLi4uJXBcbiIsIHB0ciwgKGNoYXIqKXB0ciArIHNpemUpOwpAQCAt
MjI1LDMzICsyNDcsMzMgQEAgc3RhdGljIHZvaWQgZGVjb21taXRfaW1wbCh2b2lkKiBwdHIsIHNp
egogICAgICAgICBlbmRfYXNfaW50ID09IHBhc19yb3VuZF9kb3duX3RvX3Bvd2VyX29mXzIoZW5k
X2FzX2ludCwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKSk7CiAgICAgCiAjaWYgUEFTX09T
KERBUldJTikKLSAgICByZXN1bHQgPSBtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2Fz
X2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0ZSRUVfUkVVU0FCTEUpOwotICAgIFBBU19BU1NFUlQo
IXJlc3VsdCk7CisgICAgaWYgKHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF96ZXJvX2ZpbGwgJiYg
bW1hcF9jYXBhYmlsaXR5KQorICAgICAgICBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHB0ciwg
c2l6ZSk7CisgICAgZWxzZQorICAgICAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKHB0ciwgc2l6ZSwg
TUFEVl9GUkVFX1JFVVNBQkxFKSk7CiAjZWxpZiBQQVNfT1MoRlJFRUJTRCkKLSAgICBQQVNfU1lT
Q0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50
LCBNQURWX0ZSRUUpKTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKHB0ciwgc2l6ZSwgTUFEVl9G
UkVFKSk7CiAjZWxpZiBQQVNfT1MoTElOVVgpCi0gICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9p
ZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgTUFEVl9ET05UTkVFRCkp
OwotICAgIFBBU19TWVNDQUxMKG1hZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50
IC0gYmFzZV9hc19pbnQsIE1BRFZfRE9OVERVTVApKTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNl
KHB0ciwgc2l6ZSwgTUFEVl9ET05UTkVFRCkpOworICAgIFBBU19TWVNDQUxMKG1hZHZpc2UocHRy
LCBzaXplLCBNQURWX0RPTlREVU1QKSk7CiAjZWxzZQotICAgIFBBU19TWVNDQUxMKG1hZHZpc2Uo
KHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIE1BRFZfRE9OVE5F
RUQpKTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKHB0ciwgc2l6ZSwgTUFEVl9ET05UTkVFRCkp
OwogI2VuZGlmCiAKLSAgICBpZiAoUEFTX01QUk9URUNUX0RFQ09NTUlUVEVEICYmICFpc19hc3lt
bWV0cmljKSB7Ci0gICAgICAgIHJlc3VsdCA9IG1wcm90ZWN0KCh2b2lkKiliYXNlX2FzX2ludCwg
ZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBQUk9UX05PTkUpOwotICAgICAgICBQQVNfQVNTRVJU
KCFyZXN1bHQpOwotICAgIH0KKyAgICBpZiAoUEFTX01QUk9URUNUX0RFQ09NTUlUVEVEICYmIGRv
X21wcm90ZWN0ICYmIG1tYXBfY2FwYWJpbGl0eSkKKyAgICAgICAgUEFTX1NZU0NBTEwobXByb3Rl
Y3QoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfTk9O
RSkpOwogfQogCi12b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCh2b2lkKiBwdHIsIHNpemVf
dCBzaXplKQordm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQodm9pZCogcHRyLCBzaXplX3Qg
c2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7Ci0gICAgc3RhdGlj
IGNvbnN0IGJvb2wgaXNfYXN5bW1ldHJpYyA9IGZhbHNlOwotICAgIGRlY29tbWl0X2ltcGwocHRy
LCBzaXplLCBpc19hc3ltbWV0cmljKTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBkb19tcHJvdGVj
dCA9IHRydWU7CisgICAgZGVjb21taXRfaW1wbChwdHIsIHNpemUsIGRvX21wcm90ZWN0LCBtbWFw
X2NhcGFiaWxpdHkpOwogfQogCi12b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9hc3ltbWV0
cmljKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpCit2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1p
dF93aXRob3V0X21wcm90ZWN0KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFi
aWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewotICAgIHN0YXRpYyBjb25zdCBib29sIGlzX2FzeW1t
ZXRyaWMgPSB0cnVlOwotICAgIGRlY29tbWl0X2ltcGwocHRyLCBzaXplLCBpc19hc3ltbWV0cmlj
KTsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBkb19tcHJvdGVjdCA9IGZhbHNlOworICAgIGRlY29t
bWl0X2ltcGwocHRyLCBzaXplLCBkb19tcHJvdGVjdCwgbW1hcF9jYXBhYmlsaXR5KTsKIH0KIAog
dm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBwdHIsIHNpemVfdCBzaXplKQpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
bWFsbG9jLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19wYWdlX21hbGxvYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAicGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCIKICNpbmNsdWRl
ICJwYXNfYWxpZ25tZW50LmgiCisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2lu
Y2x1ZGUgInBhc191dGlscy5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CkBAIC0zNSw4ICszNiwx
MSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiBQQVNfQVBJIGV4dGVybiBzaXplX3QgcGFzX3BhZ2Vf
bWFsbG9jX251bV9hbGxvY2F0ZWRfYnl0ZXM7CiBQQVNfQVBJIGV4dGVybiBzaXplX3QgcGFzX3Bh
Z2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnQ7CiBQQVNfQVBJIGV4dGVybiBzaXplX3QgcGFzX3Bh
Z2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnRfc2hpZnQ7CisjaWYgUEFTX09TKERBUldJTikKK1BB
U19BUEkgZXh0ZXJuIGJvb2wgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X3plcm9fZmlsbDsKKyNl
bmRpZiAvKiBQQVNfT1MoREFSV0lOKSAqLwogCi1QQVNfQVBJIHNpemVfdCBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50X3Nsb3codm9pZCk7CitQQVNfQVBJIFBBU19ORVZFUl9JTkxJTkUgc2l6ZV90
IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2xvdyh2b2lkKTsKIAogc3RhdGljIGlubGluZSBz
aXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCh2b2lkKQogewpAQCAtNDUsNyArNDksNyBA
QCBzdGF0aWMgaW5saW5lIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpCiAgICAgcmV0dXJuIHBh
c19wYWdlX21hbGxvY19jYWNoZWRfYWxpZ25tZW50OwogfQogCi1QQVNfQVBJIHNpemVfdCBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0X3Nsb3codm9pZCk7CitQQVNfQVBJIFBBU19ORVZF
Ul9JTkxJTkUgc2l6ZV90IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnRfc2xvdyh2b2lk
KTsKIAogc3RhdGljIGlubGluZSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlm
dCh2b2lkKQogewpAQCAtNjAsMTIgKzY0LDIxIEBAIHBhc19wYWdlX21hbGxvY190cnlfYWxsb2Nh
dGVfd2l0aG91dF9kZWEKIAogUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWFsbG9jYXRl
KHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKTsKIAorUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxv
Y196ZXJvX2ZpbGwodm9pZCogYmFzZSwgc2l6ZV90IHNpemUpOworCiAvKiBUaGlzIGV2ZW4gd29y
a3MgaWYgc2l6ZSA8IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQgc28gbG9uZyBhcyB0aGUgcmFu
Z2UgW2Jhc2UsIGJhc2Urc2l6ZSkgaXMKICAgIGVudGlyZWx5IHdpdGhpbiBhIHBhZ2UgYWNjb3Jk
aW5nIHRvIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQuICovCi1QQVNfQVBJIHZvaWQgcGFzX3Bh
Z2VfbWFsbG9jX2NvbW1pdCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7Ci1QQVNfQVBJIHZvaWQg
cGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KHZvaWQqIGJhc2UsIHNpemVfdCBzaXplKTsKK1BBU19B
UEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBw
YXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CitQQVNfQVBJIHZvaWQgcGFzX3Bh
Z2VfbWFsbG9jX2RlY29tbWl0KHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKLVBBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2Nf
ZGVjb21taXRfYXN5bW1ldHJpYyh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7CisvKiBJbiB0ZXN0
aW5nIG1vZGUsIHdlIGhhdmUgY29tbWl0L2RlY29tbWl0IG1wcm90ZWN0IHRoZSBtZW1vcnkgYXMg
YSB3YXkgb2YgaGVscGluZyB1cyBzZWUgaWYgd2UgYXJlCisgICBhY2NpZGVudGFsbHkgcmVhZGlu
ZyBvciB3cml0aW5nIHRoYXQgbWVtb3J5LiBCdXQgc29tZXRpbWVzIHdlIHVzZSBjb21taXQvZGVj
b21taXQgaW4gYSB3YXkgdGhhdCBwcmV2ZW50cworICAgdXMgZnJvbSBtYWtpbmcgc3VjaCBhc3Nl
cnRpb25zLCBsaWtlIGlmIHdlIGFsbG93IHNvbWUgcmVhZHMgYW5kIHdyaXRlcyB0byBkZWNvbW1p
dHRlZCBtZW1vcnkgaW4gcmFyZQorICAgY2FzZXMuICovCitQQVNfQVBJIHZvaWQgcGFzX3BhZ2Vf
bWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0KAorICAgIHZvaWQqIGJhc2UsIHNpemVfdCBz
aXplLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CitQQVNfQVBJIHZvaWQg
cGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X3dpdGhvdXRfbXByb3RlY3QoCisgICAgdm9pZCogYmFz
ZSwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIAog
UEFTX0VORF9FWFRFUk5fQzsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5j
CShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzgsNiAr
MzgsOCBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oIgogI2luY2x1
ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmgiCiAKK3NpemVfdCBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19jb3VudDsKKwogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcqIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NyZWF0ZSgKICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LAogICAgIHNpemVfdCBpbmRleCkKQEAgLTU0
LDYgKzU2LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcqIHBhc19zZWdyZQogICAg
ICAgICAicGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXciLAogICAgICAgICBwYXNfb2JqZWN0
X2FsbG9jYXRpb24pOwogCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY291bnQr
KzsKKwogICAgIC8qIFdlIGFsbG9jYXRlIHRoaXMgbGF6aWx5LiAqLwogICAgIHJlc3VsdC0+cGFn
ZV9ib3VuZGFyeSA9IE5VTEw7CiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaXplX2RpcmVj
dG9yeV9wdHJfc3RvcmUoJnJlc3VsdC0+ZGlyZWN0b3J5LCBkaXJlY3RvcnkpOwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5o
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4IEBAIHR5cGVkZWYgc3RydWN0IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV8KIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhZ2UgcGFz
X3NlZ3JlZ2F0ZWRfcGFnZTsKIHR5cGVkZWYgc3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZTsKIAorUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvdW50OworCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXcgewogICAgIHZvaWQqIHBhZ2VfYm91bmRhcnk7CiAgICAgCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
d19pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCShyZXZpc2lvbiAyODgz
NDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9l
eGNsdXNpdmVfdmlld19pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDYgKzM0LDcgQEAK
ICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIgogI2luY2x1ZGUgInBh
c19zZWdyZWdhdGVkX3BhZ2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgi
CisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgiCiAKIFBBU19CRUdJTl9F
WFRFUk5fQzsKIApAQCAtMTY3LDYgKzE2OCw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2
b2lkIHBhc19zZWdyZWcKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KIAor
ICAgICAgICAgICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgmY2FjaGUtPm5vZGUtPnNj
YXZlbmdlcl9sb2NrKTsKKwogICAgICAgICAgICAgYWxsb2NhdG9yX3Jlc3VsdCA9CiAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0X2xvY2FsX2FsbG9jYXRvcl9m
b3JfcG9zc2libHlfdW5pbml0aWFsaXplZF9idXRfbm90X3Vuc2VsZWN0ZWRfaW5kZXgoCiAgICAg
ICAgICAgICAgICAgICAgIGNhY2hlLCBwYWdlLT52aWV3X2NhY2hlX2luZGV4KTsKQEAgLTE4Myw5
ICsxODYsOSBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAg
ICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgICAgICBwYXNfbG9nKCJUcnlpbmcgdG8g
cHVzaCB0byB2aWV3IGNhY2hlLlxuIik7CiAKLSAgICAgICAgICAgIGlmIChwYXNfbG9jYWxfdmll
d19jYWNoZV9pc19mdWxsKHZpZXdfY2FjaGUpKSB7CisgICAgICAgICAgICBpZiAoIXBhc19sb2Nh
bF92aWV3X2NhY2hlX3ByZXBhcmVfdG9fcHVzaCh2aWV3X2NhY2hlKSkgewogICAgICAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCIlcCwgJXA6IENh
Y2hlIGlzIGZ1bGwgKCV1KS5cbiIsIGNhY2hlLT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmpl
Y3Rfc2l6ZSk7CisgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIiVwLCAlcDogQ2FjaGUgaXMg
ZnVsbCBvciBpcyBzdG9wcGVkICgldSkuXG4iLCBjYWNoZS0+bm9kZSwgdmlld19jYWNoZSwgcGFn
ZS0+b2JqZWN0X3NpemUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHdvcmtp
bmcgY29weSkKQEAgLTEzMjgsNiArMTMyOCw3IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJl
X3NpemVfZGlyZWN0b3IKICAgICBzaXplX3Qgb2JqZWN0X3NpemU7CiAgICAgcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKiBtZWRpdW1fdHVwbGU7CiAgICAgYm9vbCBp
c191dGlsaXR5OworICAgIHNpemVfdCB0eXBlX2FsaWdubWVudDsKIAogICAgIHBhc19oZWFwX2xv
Y2tfYXNzZXJ0X2hlbGQoKTsKIApAQCAtMTM0MCw4ICsxMzQxLDYgQEAgcGFzX3NlZ3JlZ2F0ZWRf
aGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgICAgICAgICAgICAgIGhlYXAsIHBhc19oZWFw
X2NvbmZpZ19raW5kX2dldF9zdHJpbmcoY29uZmlnLT5raW5kKSwgc2l6ZSwgYWxpZ25tZW50KTsK
ICAgICB9CiAKLSAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKHNpemUsIGFsaWdubWVudCkp
OwotCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykgewogICAgICAgICBjaGVja19wYXJ0X29m
X2FsbF9oZWFwc19kYXRhIGRhdGE7CiAgICAgICAgIGRhdGEuaGVhcCA9IGhlYXA7CkBAIC0xMzkw
LDYgKzEzODksMzkgQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3Rvcgog
CiAgICAgcGFyZW50X2hlYXAgPSBwYXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKGhlYXApOwog
CisgICAgLyogU2F5IHRoYXQgdGhlIGhlYXAncyB0eXBlIGhhcyBhbiBhbGlnbm1lbnQgb2YgMTI4
IGFuZCB0aGF0IHNvbWVvbmUgY2FsbHMgc29tZXRoaW5nIGxpa2UKKyAgICAgICBibWFsbG9jX2lz
b19hbGxvY2F0ZV9hcnJheV9ieV9zaXplKCZzb21lX2hlYXAsIDUxNjMpLgorICAgICAgIAorICAg
ICAgIEJlZm9yZSBjb25zaWRlcmluZyB3aGF0IHRoZSBwb3NzaWJsZSBiZWhhdmlvcnMgY291bGQg
YmUsIGxldCdzIHRha2Ugbm90ZSBvZiBhIGNvbnN0cmFpbnQ6IGl0J3Mgbm90CisgICAgICAgcmVh
c29uYWJsZSB0byByZXF1aXJlIHRoZSBmYXN0IHBhdGggb2YgYWxsb2NhdGlvbiB0byBhbGlnbiA1
MTYzIHRvIDEyOCwgc2luY2UgdGhhdCB3b3VsZCByZXF1aXJlIGxvYWRpbmcKKyAgICAgICB0aGUg
YWxpZ25tZW50IGZyb20gdGhlIHR5cGUgYW5kIGRvaW5nIGl0IGR5bmFtaWNhbGx5LCB3aGljaCBp
bnZvbHZlcyBtb3JlIGN5Y2xlcyBmb3IgdGhlIGZhc3QgcGF0aCB0aGFuCisgICAgICAgd2UnZCBs
aWtlLgorICAgICAgIAorICAgICAgIFNvIHdoYXQgYmVoYXZpb3IgZG8gd2Ugd2FudCB0aGlzIHRv
IGhhdmU/CisgICAgICAgCisgICAgICAgMSkgV2UgY291bGQgbWFrZSB0aGlzIGFuIGVycm9yLiBC
dXQsIHNpbmNlIHdlIGNhbm5vdCBkbyB0aGUgYWxpZ25tZW50IGNvbXB1dGF0aW9uIG9uIHRoZSBm
YXN0IHBhdGgsIHRoZQorICAgICAgICAgIGVycm9yIHdvdWxkIG9ubHkgbWFuaWZlc3QgaWYgd2Ug
aGl0IGEgc2xvdyBwYXRoLgorICAgICAgIAorICAgICAgIDIpIFdlIGNvdWxkIGp1c3Qgc2lsZW50
bHkgYWxpZ24gdGhlIHNpemUgZm9yIHRoZSB1c2VyLiBUbyBtYWtlIHRoaXMgd29yaywgd2UganVz
dCBoYXZlIHRvIG1ha2Ugc3VyZSB0aGF0CisgICAgICAgICAgd2hlbiB0aGUgZmFzdCBwYXRoIGFz
a3MgZm9yIDUxNjMgYWdhaW4sIHRoZXkgd2lsbCBnZXQgYW4gYWxsb2NhdG9yIHRoYXQgaXMgYWxp
Z25lZCBhcHByb3ByaWF0ZWx5LgorICAgICAgIAorICAgICAgIFRoZSBmaXJzdCBvcHRpb24gc2Vl
bXMgZG91Ymx5IGJhZDogaXQgd2lsbCBvbmx5IG1hbmlmZXN0IHNvbWV0aW1lcywgYW5kIGl0J3Mg
dW5uZWNlc3NhcmlseSByZXN0cmljdGl2ZS4KKyAgICAgICBXaG8gaXMgdG8gc2F5IHRoYXQgYW4g
YXJyYXkgb2YgdGhhdCBsZW5ndGggaXMgcmVhbGx5IHdyb25nPyBMaWJwYXMgZ2VuZXJhbGx5IHRh
a2VzIHRoZSBhcHByb2FjaCBvZgorICAgICAgIHBlcm1pdHRpbmcgdGhlIHVzZXIgdG8gcmVxdWVz
dCBhIG1pc2FsaWduZWQgc2l6ZSwgYW5kIGl0IHdpbGwgYWxpZ24gdGhlIHNpemUgZm9yIHRoZSB1
c2VyLgorCisgICAgICAgVG8gbWFrZSB0aGUgc2Vjb25kIG9wdGlvbiB3b3JrLCB3ZSBuZWVkIHRv
IGVuc3VyZSB0aGF0IHRoZSBgaW5kZXhgIGlzIGNvbXB1dGVkIGZyb20gdGhlIHNpemUgdGhhdCB0
aGUKKyAgICAgICB1c2VyIHRob3VnaHQgdGhleSB3ZXJlIHJlcXVlc3RpbmcsIGFuZCB0aGF0IHRo
aXMgZnVuY3Rpb24gZ2V0cyBjYWxsZWQgd2l0aCBzaXplIGJlaW5nIGV4YWN0bHkgdGhlIHNpemUK
KyAgICAgICB0aGF0IHRoZSBhbGxvY2F0b3Igc2F3LgorICAgICAgIAorICAgICAgIE5vdGUgdGhh
dCB0aGlzIHNpemUgbWF5IGJlIGFscmVhZHkgYWxpZ25lZCB0byB0aGUgZHluYW1pY2FsbHkgcmVx
dWVzdGVkIGFsaWdubWVudCAoYXMgb3Bwb3NlZCB0byB0aGUKKyAgICAgICB0eXBlJ3MgYWxpZ25t
ZW50KSwgYW5kIHRoYXQncyBncmVhdCEgVGhhdCBiZWhhdmlvciBlbnN1cmVzIHRoYXQgaWYgd2Ug
bGF0ZXIgdHJ5IHRvIGFsbG9jYXRlIHRoaXMgc2l6ZQorICAgICAgIHdpdGhvdXQgdGhhdCBhbGln
bm1lbnQsIHdlIGNhbiBnZXQgYSBkaXJlY3RvcnkgdGhhdCBpcyBiZXR0ZXIgc3VpdGVkLiBUaGUg
YGFsaWdubWVudGAgd2UgYXJlIHBhc3NlZCBoZXJlCisgICAgICAgaXMgdGhlIG1heCBvZiB0aGUg
dHlwZSdzIGFsaWdubWVudCBhbmQgdGhlIHJlcXVlc3RlZCBhbGlnbm1lbnQsIHNvIGlmIHRoZSBz
aXplIGlzIG5vdCBhbGlnbmVkIHRvCisgICAgICAgYGFsaWdubWVudGAsIHRoZW4gd2Uga25vdyBp
dCdzIGJlY2F1c2UgYGFsaWdubWVudGAgaXMgdGhlIHR5cGUncyBhbGlnbm1lbnQuICovCisKKyAg
ICB0eXBlX2FsaWdubWVudCA9IHBhc19oZWFwX2dldF90eXBlX2FsaWdubWVudChwYXJlbnRfaGVh
cCk7CisgICAgUEFTX0FTU0VSVChhbGlnbm1lbnQgPj0gdHlwZV9hbGlnbm1lbnQpOworICAgIAog
ICAgIGluZGV4ID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmRleF9mb3Jfc2l6ZShzaXplLCAqY29u
ZmlnKTsKICAgICBvYmplY3Rfc2l6ZSA9IHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9mb3JfaW5k
ZXgoaW5kZXgsICpjb25maWcpOwogCkBAIC0xNDAxLDEzICsxNDMzLDI4IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKIAogICAgIG9iamVjdF9zaXplID0gUEFTX01B
WChtaW5fb2JqZWN0X3NpemVfZm9yX2hlYXBfY29uZmlnKGNvbmZpZyksIG9iamVjdF9zaXplKTsK
IAotICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0X3NpemUsIGFsaWdubWVudCkp
OwogICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoCiAgICAgICAgICAgICAgICAgICAgb2Jq
ZWN0X3NpemUsIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNt
YWxsX3NlZ3JlZ2F0ZWRfY29uZmlnKSkpOwogCiAgICAgYWxpZ25tZW50ID0gUEFTX01BWChhbGln
bm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZp
Z19taW5fYWxpZ24oY29uZmlnLT5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykpOwogCisgICAgaWYg
KGFsaWdubWVudCA+IHR5cGVfYWxpZ25tZW50KSB7CisgICAgICAgIC8qIElmIHRoZSBhbGlnbm1l
bnQgaXMgYmlnZ2VyIHRoYW4gdHlwZV9hbGlnbm1lbnQgdGhlbiBpdCBtZWFucyB0aGF0IHRoaXMg
aXMgYSBkeW5hbWljYWxseSByZXF1ZXN0ZWQKKyAgICAgICAgICAgYWxpZ25tZW50LiBTbywgd2Ug
ZXhwZWN0IHRoYXQgdGhlIG9iamVjdCBzaXplIHdhcyBhbHJlYWR5IGFsaWduZWQgdG8gaXQgYnkg
dGhlIGFsbG9jYXRvciBmYXN0CisgICAgICAgICAgIHBhdGguIFdlIHNob3VsZCBuZXZlciBnZXQg
aGVyZSB3aXRoIGEgc2l6ZSB0aGF0IGlzbid0IGFscmVhZHkgYWxpZ25lZCB0byB0aGUgZHluYW1p
Y2FsbHkgcmVxdWVzdGVkCisgICAgICAgICAgIGFsaWdubWVudCEgKi8KKyAgICAgICAgUEFTX0FT
U0VSVChwYXNfaXNfYWxpZ25lZChvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7CisgICAgfSBlbHNl
IHsKKyAgICAgICAgLyogSWYgdGhlIGFsaWdubWVudCBpcyBleGFjdGx5IHRoZSB0eXBlX2FsaWdu
bWVudCwgdGhlbiBpdCBtaWdodCBiZSB0aGF0IHdlIGFyZSBhbGxvY2F0aW5nIHdpdGhvdXQKKyAg
ICAgICAgICAgYW55IGR5bmFtaWNhbGx5IHJlcXVlc3RlZCBhbGlnbm1lbnQsIG9yIGEgZHluYW1p
Y2FsbHkgcmVxdWVzdGVkIGFsaWdubWVudCB0aGF0IGlzIHNtYWxsZXIgdGhhbiB0aGUKKyAgICAg
ICAgICAgdHlwZSBhbGlnbm1lbnQuIEluIHRoYXQgY2FzZSwgd2UgYWxpZ24gdGhlIG9iamVjdF9z
aXplIGhlcmUsIHNvIHRoYXQgaW4gdGhpcyBoZWFwLCBhbGwgb2JqZWN0IHNpemVzCisgICAgICAg
ICAgIGFyZSBhbGlnbmVkIHRvIHRoZSB0eXBlJ3MgYWxpZ25tZW50LiAqLworICAgICAgICBvYmpl
Y3Rfc2l6ZSA9IHBhc19yb3VuZF91cF90b19wb3dlcl9vZl8yKG9iamVjdF9zaXplLCBhbGlnbm1l
bnQpOworICAgIH0KKworICAgIFBBU19BU1NFUlQob2JqZWN0X3NpemUgPj0gc2l6ZSk7CisKICAg
ICAvKiBJZiB3ZSBoYXZlIG92ZXJmbG93ZWQgYWxyZWFkeSB0aGVuIGJhaWwuICovCiAgICAgaWYg
KCh1bnNpZ25lZClvYmplY3Rfc2l6ZSAhPSBvYmplY3Rfc2l6ZSB8fAogICAgICAgICAodW5zaWdu
ZWQpYWxpZ25tZW50ICE9IGFsaWdubWVudCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5l
cy5oCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTI3LDcg
KzEyNyw4IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHBhc19zZWdyZWcKICAgICAg
ICAgdHVwbGVzID0gcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlX3B0
cl9sb2FkKAogICAgICAgICAgICAgJmRhdGFbcGFzX2RlcGVuZChudW1fbWVkaXVtX2RpcmVjdG9y
aWVzKV0ubWVkaXVtX2RpcmVjdG9yaWVzKTsKIAotICAgICAgICBpZiAodHVwbGVzKSB7CisgICAg
ICAgIGlmIChudW1fbWVkaXVtX2RpcmVjdG9yaWVzKSB7CisgICAgICAgICAgICBQQVNfQVNTRVJU
KHR1cGxlcyk7CiAgICAgICAgICAgICByZXN1bHQgfD0gcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9t
ZW1vcnlfdG91Y2goCiAgICAgICAgICAgICAgICAgdHVwbGVzLAogICAgICAgICAgICAgICAgIG51
bV9tZWRpdW1fZGlyZWN0b3JpZXMgKiBzaXplb2YocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1f
ZGlyZWN0b3J5X3R1cGxlKSwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHJldmlzaW9uIDI4ODM0NikKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYwko
d29ya2luZyBjb3B5KQpAQCAtNDA5LDcgKzQwOSw4IEBAIGJvb2wgcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV90YWtlX3BoeXNpY2FsbHkKICAgICByYW5nZSA9IHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgK
ICAgICAgICAgYmFzZSwKICAgICAgICAgYmFzZSArIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
LAotICAgICAgICBjb21taXRfbG9ja19mb3IocGFnZSkpOworICAgICAgICBjb21taXRfbG9ja19m
b3IocGFnZSksCisgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25maWdfcHRyLT5tbWFw
X2NhcGFiaWxpdHkpOwogICAgIAogICAgIHJldHVybiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
X2FkZF9tYXliZV9sb2NrZWQoCiAgICAgICAgIGRlY29tbWl0X2xvZywgcmFuZ2UsIHJhbmdlX2xv
Y2tlZF9tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKQEAgLTQ4OSw3ICs0OTAsNyBAQCB2b2lk
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KAogICAgICAgICAgICAgcGFzX2xvY2tf
bG9jayhjb21taXRfbG9jayk7CiAgICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCi0gICAg
ICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuKTsKKyAgICAgICAgcGFz
X2NvbW1pdF9zcGFuX2NvbnN0cnVjdCgmY29tbWl0X3NwYW4sIHBhZ2VfY29uZmlnLmJhc2UuaGVh
cF9jb25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogCiAgICAgICAgIGZvciAoZ3JhbnVsZV9p
bmRleCA9IDA7IGdyYW51bGVfaW5kZXggPCBudW1fZ3JhbnVsZXM7ICsrZ3JhbnVsZV9pbmRleCkg
ewogICAgICAgICAgICAgaWYgKHVzZV9jb3VudHNbZ3JhbnVsZV9pbmRleF0gIT0gUEFTX1BBR0Vf
R1JBTlVMRV9ERUNPTU1JVFRFRCkgewpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJ
KHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02MDQsNyArNjA0
LDcgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZwogICAgICAgICBw
YXNfbG9jayogaGVsZF9sb2NrOwogICAgICAgICBoZWxkX2xvY2sgPSBOVUxMOwogICAgICAgICBw
YXNfc2VncmVnYXRlZF9wYWdlX2RlYWxsb2NhdGUoCi0gICAgICAgICAgICBiZWdpbiwgJmhlbGRf
bG9jaywgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZSwgY2Fj
aGUsIHBhZ2VfY29uZmlnLCByb2xlKTsKKyAgICAgICAgICAgIGJlZ2luLCAmaGVsZF9sb2NrLCBw
YXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUsIE5VTEwsIHBhZ2VfY29uZmln
LCByb2xlKTsKICAgICAgICAgcGFzX2xvY2tfc3dpdGNoKCZoZWxkX2xvY2ssIE5VTEwpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMJKHJl
dmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw4IEBA
CiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1
ZGUgInBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRhcnlfaW5saW5lcy5oIgogCitzaXpl
X3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NvdW50ID0gMDsKKwogcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3KgogcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSgKICAg
ICBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5LApAQCAtNTQsNiArNTYs
OCBAQCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY3JlYXRlKAogICAgICAgICAicGFzX3Nl
Z3JlZ2F0ZWRfcGFydGlhbF92aWV3IiwKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsK
IAorICAgIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jb3VudCsrOworCiAgICAgLyogV2Ug
YXR0YWNoIHRvIGEgc2hhcmVkIHZpZXcgbGF6aWx5IC0gb25jZSB3ZSBrbm93IHdoYXQgd2UncmUg
YWxsb2NhdGluZy4gKi8KICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3X3B0
cl9zdG9yZSgmcmVzdWx0LT5zaGFyZWRfdmlldywgTlVMTCk7CiAKQEAgLTI0Miw2ICsyNDYsOSBA
QCBzdGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgICAgIH0KICAg
ICB9CiAKKyAgICBpZiAodmlldy0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uKQorICAgICAgICBy
ZXN1bHQuY2FjaGVkICs9IHBhc19oZWFwX3N1bW1hcnlfdG90YWwocmVzdWx0KTsKKwogICAgIHJl
dHVybiByZXN1bHQ7CiB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oCShyZXZp
c2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNiArNDMsOCBAQCB0
eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpCiB0eXBlZGVmIHN0cnVjdCBw
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKIHR5
cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5IHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5OwogCitQQVNfQVBJIGV4dGVybiBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRf
cGFydGlhbF92aWV3X2NvdW50OworCiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
IHsKICAgICB1bnNpZ25lZCBpbmxpbmVfYWxsb2NfYml0czsKICAgICAKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODgzNDYpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRf
cGFnZV9kaXJlY3RvcnkuYwkod29ya2luZyBjb3B5KQpAQCAtNDI2LDcgKzQyNiw4IEBAIHRha2Vf
bGFzdF9lbXB0eV9jb25zaWRlcl92aWV3KAogICAgICAgICBzaGFyZWRfdmlldy0+aXNfb3duZWQg
PSBmYWxzZTsKICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KAogICAgICAgICAgICAg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBwYWdlX2NvbmZpZyksCi0gICAgICAg
ICAgICBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLnBhZ2Vfc2l6ZSwKKyAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25m
aWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmRlc3Ry
b3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJhc2UsIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICBk
ZWNvbW1pdF9sb2ctPnRvdGFsICs9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwogICAgICAg
ICBnb3RvIHJldHVybl90YWtlbl9wYXJ0aWFsX3ZpZXdzX2FmdGVyX2RlY29tbWl0OwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldy5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jCSh3b3Jr
aW5nIGNvcHkpCkBAIC00Miw2ICs0Miw4IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2hh
cmVkX3ZpZXdfaW5saW5lcy5oIgogI2luY2x1ZGUgInBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2Vf
Ym91bmRhcnlfaW5saW5lcy5oIgogCitzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
Y291bnQgPSAwOworCiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyogcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfY3JlYXRlKHNpemVfdCBpbmRleCkKIHsKICAgICBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldyogcmVzdWx0OwpAQCAtNTEsNiArNTMsOCBAQCBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlldyogcGFzX3NlZ3JlZ2F0CiAgICAgICAgICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmll
dyIsCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKKyAgICBwYXNfc2VncmVnYXRl
ZF9zaGFyZWRfdmlld19jb3VudCsrOworCiAgICAgcmVzdWx0LT5zaGFyZWRfaGFuZGxlX29yX3Bh
Z2VfYm91bmRhcnkgPSBOVUxMOwogCiAgICAgLyogTlVMTCBtdXN0IGxvb2sgbGlrZSBhIHBhZ2Uu
IENvZGUgdGhhdCB0ZXN0cyBpZiB0aGluZ3MgYXJlIHBhZ2VzIGNhbiBpbXBsaWNpdGx5IGFzc3Vt
ZSB0aGF0CkBAIC0xNjcsNyArMTcxLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX2hhbmRsZSog
cGFzX3NlZ3JlZwogICAgICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KAog
ICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfaGVhcF9sb2NrX2hvbGRfbW9k
ZShwYWdlX2NvbmZpZykpOwogCi0gICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoaGFuZGxl
LT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgIHBh
c19wYWdlX21hbGxvY19jb21taXQoaGFuZGxlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy5i
YXNlLnBhZ2Vfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2NvbmZp
Zy5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgcGFnZV9j
b25maWcuYmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCiAgICAgICAgICAgICBoYW5kbGUtPnBhZ2Vf
Ym91bmRhcnksCiAgICAgICAgICAgICBwYXNfcGFnZV9raW5kX2Zvcl9zZWdyZWdhdGVkX3Zhcmlh
bnRfYW5kX3JvbGUoCkBAIC0zNDYsNiArMzUxLDkgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkg
Y29tcHV0ZV9zdW1tYXJ5KAogICAgICAgICAmcGFnZS0+YmFzZSwgJnJlc3VsdCwgcGFzX3Jhbmdl
X2NyZWF0ZShzdGFydF9vZl9sYXN0X2ZyZWUsIGVuZF9vZl9wYXlsb2FkKSwKICAgICAgICAgcGFz
X2ZyZWVfb2JqZWN0X3JhbmdlKTsKIAorICAgIGlmICh2aWV3LT5pc19pbl91c2VfZm9yX2FsbG9j
YXRpb25fY291bnQpCisgICAgICAgIHJlc3VsdC5jYWNoZWQgKz0gcGFnZV9jb25maWcuYmFzZS5w
YWdlX3NpemU7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3No
YXJlZF92aWV3LmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM4LDYgKzM4LDggQEAgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3OwogdHlwZWRl
ZiBzdHJ1Y3QgcGFzX2V4dGVuZGVkX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX2V4dGVuZGVk
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldyBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKIAorUEFTX0FQSSBleHRlcm4g
c2l6ZV90IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvdW50OworCiBzdHJ1Y3QgcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgewogICAgIHBhc19zaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91
bmRhcnkgc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5OwogICAgIHBhc19sb2NrIGNvbW1p
dF9sb2NrOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCShyZXZpc2lvbiAy
ODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC03NDcsNyArNzQ3LDggQEAgdGFr
ZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcocGFzX3NlZ3JlZwogICAgICAgICB9CiAgICAgICAg
IHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCgKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3Bh
Z2VfYm91bmRhcnkocGFnZSwgbXlfcGFnZV9jb25maWcpLAotICAgICAgICAgICAgbXlfcGFnZV9j
b25maWcuYmFzZS5wYWdlX3NpemUpOworICAgICAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5w
YWdlX3NpemUsCisgICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0
ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBteV9w
YWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKICAgICAgICAgbXlfcGFnZV9jb25maWcuYmFzZS5k
ZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNlLCBwYXNfbG9ja19pc19oZWxkKTsKICAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGlyZWN0b3J5X3ZpZXdfZGlkX2JlY29tZV9lbGlnaWJsZV9hdF9p
bmRleChkaXJlY3RvcnksIGluZGV4KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXcuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMJKHJldmlzaW9uIDI4ODM0
NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Zp
ZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQyLDYgKzQyLDggQEAKIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KgogcGFzX3NlZ3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3Rvcnlfc2xv
dyhwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcpCiB7CisgICAgaWYgKCF2aWV3KQorICAgICAgICBy
ZXR1cm4gTlVMTDsKICAgICBzd2l0Y2ggKHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X2tpbmQodmll
dykpIHsKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CiAgICAg
Y2FzZSBwYXNfc2VncmVnYXRlZF9pbmVsaWdpYmxlX2V4Y2x1c2l2ZV92aWV3X2tpbmQ6CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2Fs
bG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCShyZXZpc2lv
biAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4MSw3ICsx
ODEsOCBAQCBwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluCiAgICAgICAg
ICAgICAgICAgICAgICAgICBudW1fbG9ja3NfaGVsZCk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChleGNsdXNp
dmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAgICAgICAg
ICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwg
cGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmls
aXR5KTsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkgewogICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJDcmVhdGluZyBwYWdlIGhlYWRlciB3aGVuIGNvbW1pdHRpbmcgZXhjbHVzaXZl
IHBhZ2UsIHZpZXcgPSAlcCwgIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICJib3VuZGFy
eSA9ICVwLlxuIiwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
dGF0dXNfcmVwb3J0ZXIuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkod29ya2lu
ZyBjb3B5KQpAQCAtNjczLDYgKzY3MywxMSBAQCBzdGF0aWMgYm9vbCBkdW1wX2xhcmdlX3NoYXJp
bmdfcG9vbF9ub2RlCiAgICAgICAgICAgICBzdHJlYW0sICIsICVzIiwKICAgICAgICAgICAgIHBh
c19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlX2dldF9zdHJpbmcobm9kZS0+
c3luY2hyb25pemF0aW9uX3N0eWxlKSk7CiAgICAgfQorICAgIGlmIChub2RlLT5tbWFwX2NhcGFi
aWxpdHkgIT0gcGFzX21heV9tbWFwKSB7CisgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKAorICAg
ICAgICAgICAgc3RyZWFtLCAiLCAlcyIsCisgICAgICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5
X2dldF9zdHJpbmcobm9kZS0+bW1hcF9jYXBhYmlsaXR5KSk7CisgICAgfQogCiAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKIApAQCAtODIxLDYgKzgyNiwxMyBAQCB2b2lkIHBh
c19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90b3RhbF9mcmFnCiAgICAgICAgICAgICAgICAgICAgICAg
ZGF0YS5sYXJnZV9mcmFnbWVudGF0aW9uKTsKIH0KIAordm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfdmlld19zdGF0cyhwYXNfc3RyZWFtKiBzdHJlYW0pCit7CisgICAgcGFzX3N0cmVhbV9w
cmludGYoc3RyZWFtLCAiICAgIE51bWJlciBvZiBQYXJ0aWFsIFZpZXdzOiAlenVcbiIsIHBhc19z
ZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jb3VudCk7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3Ry
ZWFtLCAiICAgIE51bWJlciBvZiBTaGFyZWQgVmlld3M6ICV6dVxuIiwgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXdfY291bnQpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBO
dW1iZXIgb2YgRXhjbHVzaXZlIFZpZXdzOiAlenVcbiIsIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2NvdW50KTsKK30KKwogdHlwZWRlZiBzdHJ1Y3QgewogICAgIHNpemVfdCBudW1fZGly
ZWN0b3JpZXNfd2l0aF9kYXRhOwogICAgIHNpemVfdCBudW1fZGlyZWN0b3JpZXNfd2l0aF90bGFz
OwpAQCAtODk0LDYgKzkwNiw3IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RpZXJf
dXBfcmEKIAogc3RhdGljIGNvbnN0IGNoYXIqIGFsbG9jYXRvcl9zdGF0ZShwYXNfbG9jYWxfYWxs
b2NhdG9yKiBhbGxvY2F0b3IpCiB7CisgICAgCiAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9y
X2lzX2FjdGl2ZShhbGxvY2F0b3IpKQogICAgICAgICByZXR1cm4gImluYWN0aXZlIjsKICAgICBp
ZiAocGFzX3NlZ3JlZ2F0ZWRfdmlld19pc19wYXJ0aWFsKGFsbG9jYXRvci0+dmlldykpCkBAIC05
MDEsNiArOTE0LDI4IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBhbGxvY2F0b3Jfc3RhdGUocGFzX2wK
ICAgICByZXR1cm4gImV4Y2x1c2l2ZSI7CiB9CiAKK3N0YXRpYyB2b2lkIGR1bXBfYWxsb2NhdG9y
X3N0YXRlKHBhc19zdHJlYW0qIHN0cmVhbSwgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9y
KQoreworICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldzsKKworICAgIHZpZXcgPSBhbGxvY2F0
b3ItPnZpZXc7CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiLCAlcywgdmlldyA9ICVw
LCBkaXJlY3RvcnkgPSAlcCwgJXMiLAorICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3JfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSwK
KyAgICAgICAgICAgICAgICAgICAgICB2aWV3LCB2aWV3ID8gcGFzX3NlZ3JlZ2F0ZWRfdmlld19n
ZXRfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAorICAgICAgICAgICAgICAgICAgICAgIGFs
bG9jYXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKK30KKworc3RhdGljIHZvaWQgZHVtcF9zY2F2ZW5n
ZXJfZGF0YV9zdGF0ZShwYXNfc3RyZWFtKiBzdHJlYW0sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2Nh
dmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIGtpbmQ7
CisKKyAgICBraW5kID0gZGF0YS0+a2luZDsKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
ICIlcyIsIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9nZXRfc3RyaW5nKGtpbmQpKTsKKworICAg
IGlmIChraW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpCisgICAgICAg
IGR1bXBfYWxsb2NhdG9yX3N0YXRlKHN0cmVhbSwgKHBhc19sb2NhbF9hbGxvY2F0b3IqKWRhdGEp
OworfQorCiB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hbGxvY2F0b3Jz
KHBhc19zdHJlYW0qIHN0cmVhbSkKIHsKICAgICBzaXplX3QgaW5kZXg7CkBAIC05MTQsMTYgKzk0
OSwxMiBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hCiAgICAgCiAg
ICAgZm9yIChpbmRleCA9IDA7IGluZGV4IDwgUEFTX05VTV9CQVNFTElORV9BTExPQ0FUT1JTOyAr
K2luZGV4KSB7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKLSAgICAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OwogCiAgICAgICAgIGFsbG9jYXRvciA9ICZwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlW2luZGV4XS51LmFsbG9jYXRvcjsKIAotICAgICAgICB2
aWV3ID0gYWxsb2NhdG9yLT52aWV3OwotICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0s
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAlenU6IGRpcmVjdG9yeSA9ICVw
LCAlc1xuIiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXgsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIHZpZXcgPyBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9y
eSh2aWV3KSA6IE5VTEwsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9zdGF0
ZShhbGxvY2F0b3IpKTsKKyAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAg
ICAgJXp1OiAiLCBpbmRleCk7CisgICAgICAgIGR1bXBfYWxsb2NhdG9yX3N0YXRlKHN0cmVhbSwg
YWxsb2NhdG9yKTsKKyAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKICAg
ICB9CiB9CiAKQEAgLTk2NiwyMyArOTk3LDIwIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3RocmVhZF9sb2MKIAogICAgICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkgewogICAgICAgICAgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Ci0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yKiBhbGxvY2F0b3I7Ci0KLSAgICAgICAgICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihsYXlvdXRfbm9kZSkpCi0gICAgICAg
ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCA9Ci0gICAg
ICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2Nh
dG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IobGF5b3V0X25vZGUpOworICAgICAgICAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5l
cmljKGxheW91dF9ub2RlKTsKIAogICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSBj
YWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgICAgIGJyZWFr
OworCisgICAgICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
aXNfY29tbWl0dGVkKGxheW91dF9ub2RlLCBjYWNoZSkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIGFsbG9jYXRvciA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvcl9pbmRl
eCk7Ci0gICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgJXU6IGRpcmVjdG9yeSA9ICVwLCAlc1xuIiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0
b3J5KGFsbG9jYXRvci0+dmlldyksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGxv
Y2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CisgICAgICAgICAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIgICAgICAgICAgICAldTogIiwgYWxsb2NhdG9yX2luZGV4KTsKKyAgICAgICAgICAg
IGR1bXBfc2NhdmVuZ2VyX2RhdGFfc3RhdGUoCisgICAgICAgICAgICAgICAgc3RyZWFtLCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxv
Y2F0b3JfaW5kZXgpKTsKKyAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxu
Iik7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC0xMDkwLDYgKzExMTgsNyBAQCB2b2lkIHBhc19z
dGF0dXNfcmVwb3J0ZXJfZHVtcF9ldmVyeXRoaW5nCiAKICAgICBpZiAocGFzX3N0YXR1c19yZXBv
cnRlcl9lbmFibGVkID49IDMpIHsKICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3Rv
dGFsX2ZyYWdtZW50YXRpb24oc3RyZWFtKTsKKyAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX3ZpZXdfc3RhdHMoc3RyZWFtKTsKICAgICAgICAgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X3RpZXJfdXBfcmF0ZXMoc3RyZWFtKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHJldmlz
aW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0
dXNfcmVwb3J0ZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNzEsNiArNzEsNyBAQCBQQVNfQVBJIHZv
aWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2FsCiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19y
ZXBvcnRlcl9kdW1wX2xhcmdlX3NoYXJpbmdfcG9vbChwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFT
X0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF91dGlsaXR5X2hlYXAocGFzX3N0cmVh
bSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxf
ZnJhZ21lbnRhdGlvbihwYXNfc3RyZWFtKiBzdHJlYW0pOworUEFTX0FQSSB2b2lkIHBhc19zdGF0
dXNfcmVwb3J0ZXJfZHVtcF92aWV3X3N0YXRzKHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJ
IHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RpZXJfdXBfcmF0ZXMocGFzX3N0cmVhbSog
c3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVf
YWxsb2NhdG9ycyhwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNf
cmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jYWxfY2FjaGVzKHBhc19zdHJlYW0qIHN0cmVhbSk7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZS5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
IgogCiAjaW5jbHVkZSAicGFzX2FsbF9oZWFwX2NvbmZpZ3MuaCIKKyNpbmNsdWRlICJwYXNfYml0
dmVjdG9yLmgiCisjaW5jbHVkZSAicGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCIKICNpbmNs
dWRlICJwYXNfZGVidWdfaGVhcC5oIgogI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNs
dWRlICJwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCIKQEAgLTU2LDIyICs1OCw1MyBAQCBz
aXplX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hCiAgICAgcmVzdWx0ID0gUEFT
X09GRlNFVE9GKHBhc190aHJlYWRfbG9jYWxfY2FjaGUsIGxvY2FsX2FsbG9jYXRvcnMpCiAgICAg
ICAgICsgOCAqIGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eTsKICAgICAKLSAgICByZXR1cm4gcmVz
dWx0OworICAgIHJldHVybiBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihyZXN1bHQsIHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnQoKSk7Cit9CisKK3N0YXRpYyBzaXplX3QgbnVtX3BhZ2VzKHVu
c2lnbmVkIGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkKK3sKKyAgICByZXR1cm4gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoYWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KQorICAgICAgICA+PiBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3No
aWZ0KCk7Cit9CisKK3N0YXRpYyB2b2lkIGNvbXB1dGVfcGFnZV9pbmRpY2VzKHBhc19hbGxvY2F0
b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90KiBiZWdpbl9wYWdlX2luZGV4LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90KiBlbmRfcGFnZV9pbmRl
eCkKK3sKKyAgICBzaXplX3QgcGFnZV9zaXplX3NoaWZ0OworICAgIHBhZ2Vfc2l6ZV9zaGlmdCA9
IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKTsKKyAgICAqYmVnaW5fcGFnZV9pbmRl
eCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihiZWdpbl9hbGxv
Y2F0b3JfaW5kZXgpID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICAqZW5kX3BhZ2VfaW5kZXggPQor
ICAgICAgICAoKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihlbmRf
YWxsb2NhdG9yX2luZGV4KSAtIDEpID4+IHBhZ2Vfc2l6ZV9zaGlmdCkgKyAxOworfQorCitzdGF0
aWMgc2l6ZV90IHBhZ2VzX2NvbW1pdHRlZF9zaXplKHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleF9j
YXBhY2l0eSkKK3sKKyAgICByZXR1cm4gUEFTX0JJVFZFQ1RPUl9OVU1fQllURVMobnVtX3BhZ2Vz
KGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOwogfQogCiBzdGF0aWMgdm9pZCBkZWFsbG9jYXRl
KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKICAgICBjaGFy
KiBiZWdpbjsKKyAgICBzaXplX3Qgc2l6ZTsKIAogICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVf
aGVhcF9kZWFsbG9jYXRlKAogICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPnNob3VsZF9zdG9w
X2JpdHZlY3RvciwKICAgICAgICAgUEFTX0JJVFZFQ1RPUl9OVU1fQllURVModGhyZWFkX2xvY2Fs
X2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpKTsKLSAgICAKLSAgICBiZWdpbiA9IChj
aGFyKil0aHJlYWRfbG9jYWxfY2FjaGU7CisKICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hl
YXBfZGVhbGxvY2F0ZSgKLSAgICAgICAgYmVnaW4sCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KAotICAgICAgICAgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpKTsKKyAgICAgICAgdGhy
ZWFkX2xvY2FsX2NhY2hlLT5wYWdlc19jb21taXR0ZWQsCisgICAgICAgIHBhZ2VzX2NvbW1pdHRl
ZF9zaXplKHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSk7CisK
KyAgICBiZWdpbiA9IChjaGFyKil0aHJlYWRfbG9jYWxfY2FjaGU7CisgICAgc2l6ZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KAorICAg
ICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSk7CisKKyAg
ICAvKiBJZiB3ZSdyZSBkb2luZyBzeW1tZXRyaWMgZGVjb21taXQsIHRoZW4gd2UgbmVlZCB0byBj
b21taXQgdGhlIG1lbW9yeSBmb3IgdGhlIFRMQyBub3cuICovCisgICAgcGFzX3BhZ2VfbWFsbG9j
X2NvbW1pdF93aXRob3V0X21wcm90ZWN0KGJlZ2luLCBzaXplLCBwYXNfbWF5X21tYXApOworICAg
IAorICAgIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9jYXRlKGJlZ2luLCBzaXpl
KTsKIH0KIAogc3RhdGljIHZvaWQgZGVzdHJveShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQpA
QCAtMTIxLDYgKzE1NCw3IEBAIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBhbGxvY2F0
ZV8KICAgICAKICAgICBzaXplX3Qgc2l6ZTsKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBy
ZXN1bHQ7CisgICAgc2l6ZV90IGluZGV4OwogCiAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfaW5k
ZXhfY2FwYWNpdHkgPj0gUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX05VTV9JTkRJQ0VT
KTsKIApAQCAtMTI5LDcgKzE2Myw4IEBAIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBh
bGxvY2F0ZV8KICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcHJpbnRmKCJDYWNoZSBzaXplOiAl
enVcbiIsIHNpemUpOwogICAgIAotICAgIHJlc3VsdCA9IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KilwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGUoc2l6ZSwgInBhc190aHJlYWRf
bG9jYWxfY2FjaGUiKTsKKyAgICByZXN1bHQgPSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZSopcGFz
X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KAorICAgICAg
ICBzaXplLCBwYXNfYWxpZ25tZW50X2NyZWF0ZV90cmFkaXRpb25hbChwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50KCkpLCAicGFzX3RocmVhZF9sb2NhbF9jYWNoZSIpOwogCiAgICAgcGFzX3plcm9f
bWVtb3J5KHJlc3VsdCwgc2l6ZSk7CiAKQEAgLTEzOCw2ICsxNzMsMTYgQEAgc3RhdGljIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIGFsbG9jYXRlXwogICAgICAgICAicGFzX3RocmVhZF9sb2NhbF9j
YWNoZS9zaG91bGRfc3RvcF9iaXR2ZWN0b3IiKTsKIAogICAgIHBhc196ZXJvX21lbW9yeShyZXN1
bHQtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgUEFTX0JJVFZFQ1RPUl9OVU1fQllURVMoYWxsb2Nh
dG9yX2luZGV4X2NhcGFjaXR5KSk7CisKKyAgICBQQVNfQVNTRVJUKHBhZ2VzX2NvbW1pdHRlZF9z
aXplKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOworICAgIAorICAgIHJlc3VsdC0+cGFnZXNf
Y29tbWl0dGVkID0gKHVuc2lnbmVkKilwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2Nh
dGUoCisgICAgICAgIHBhZ2VzX2NvbW1pdHRlZF9zaXplKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0
eSksCisgICAgICAgICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlL3BhZ2VzX2NvbW1pdHRlZCIpOwor
CisgICAgcGFzX3plcm9fbWVtb3J5KHJlc3VsdC0+cGFnZXNfY29tbWl0dGVkLCBwYWdlc19jb21t
aXR0ZWRfc2l6ZShhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpKTsKKyAgICBmb3IgKGluZGV4ID0g
bnVtX3BhZ2VzKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSk7IGluZGV4LS07KQorICAgICAgICBw
YXNfYml0dmVjdG9yX3NldChyZXN1bHQtPnBhZ2VzX2NvbW1pdHRlZCwgaW5kZXgsIHRydWUpOwog
ICAgIAogICAgIHJlc3VsdC0+YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5ID0gYWxsb2NhdG9yX2lu
ZGV4X2NhcGFjaXR5OwogCkBAIC0xODksNyArMjM0LDcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZSogcGFzX3RocmVhZF9sb2NhbAogICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBQQVNf
TE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfSU5ERVgpKTsKIAogICAgIGZvciAoUEFTX1RIUkVB
RF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKQotICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChsYXlvdXRfbm9k
ZSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgdGhyZWFkX2xvY2Fs
X2NhY2hlKTsKIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KHRocmVhZF9sb2NhbF9j
YWNoZSk7CiAgICAgCkBAIC0yMDcsMTEgKzI1MiwxMSBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZGVzdHJveShwYXNfCiAgICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCiAgICAgICAg
IHJldHVybjsKIAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KE5VTEwpOworCiAgICAg
aWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIlslZF0gVExDICVwIGdldHRpbmcgZGVzdHJv
eWVkXG4iLCBnZXRwaWQoKSwgdGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICBkZXN0cm95KHRocmVh
ZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0KLSAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3NldChOVUxMKTsKIH0KIAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfc2xvdyhwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKQEAgLTI1
OSw2ICszMDQsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHRocmVhZF9s
b2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgCiAgICAgcGFzX2hlYXBfbG9j
a19sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CisgICAgcGFzX2xvY2tf
bG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAgCiAg
ICAgUEFTX0FTU0VSVChkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCA8IHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKIApAQCAtMzE3LDcgKzM2Myw3IEBA
IHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190aHJlYWRfbG8KICAgICAgICAgaWYgKGFs
bG9jYXRvcl9pbmRleCA+PSBkZXNpcmVkX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAg
YnJlYWs7CiAKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb25z
dHJ1Y3QobGF5b3V0X25vZGUsIG5ld190aHJlYWRfbG9jYWxfY2FjaGUpOworICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KGxheW91
dF9ub2RlLCBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICB9CiAKICAgICBwYXNfY29tcGls
ZXJfZmVuY2UoKTsKQEAgLTMyNiw2ICszNzIsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBwYXNfdGhyZWFkX2xvCiAgICAgaWYgKHRocmVhZF9sb2NhbF9jYWNoZSAhPSBuZXdfdGhyZWFk
X2xvY2FsX2NhY2hlKQogICAgICAgICBkZWFsbG9jYXRlKHRocmVhZF9sb2NhbF9jYWNoZSk7CiAK
KyAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2Vy
X2xvY2spOwogICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2Nr
X2hvbGRfbW9kZSk7CiAKICAgICBpZiAodGhyZWFkX2xvY2FsX2NhY2hlICE9IG5ld190aHJlYWRf
bG9jYWxfY2FjaGUpCkBAIC0zMzcsNiArMzg0LDkyIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVz
dWx0IHBhc190aHJlYWRfbG8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkZXNpcmVkX2FsbG9jYXRvcl9pbmRleCkpOwogfQogCitib29s
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0b3JfaW5kZXgsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXgg
ZW5kX2FsbG9jYXRvcl9pbmRleCkKK3sKKyAgICB1aW50cHRyX3QgYmVnaW5fcGFnZV9pbmRleDsK
KyAgICB1aW50cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IHBhZ2VfaW5kZXg7
CisKKyAgICBjb21wdXRlX3BhZ2VfaW5kaWNlcyhiZWdpbl9hbGxvY2F0b3JfaW5kZXgsIGVuZF9h
bGxvY2F0b3JfaW5kZXgsICZiZWdpbl9wYWdlX2luZGV4LCAmZW5kX3BhZ2VfaW5kZXgpOworCisg
ICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRleDsgcGFnZV9pbmRleCA8IGVuZF9w
YWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dl
dCh0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwgcGFnZV9pbmRleCkpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3Bh
c19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jb21wdXRl
X2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSgKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0
aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0
b3JfaW5kZXgsCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KQor
eworICAgIHVpbnRwdHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAgIHVpbnRwdHJfdCBlbmRfcGFn
ZV9pbmRleDsKKyAgICB1aW50cHRyX3QgcGFnZV9pbmRleDsKKyAgICBwYXNfcmFuZ2UgYWxsb2Nh
dG9yX3JhbmdlOworICAgIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmVzdWx0OworICAg
IHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7CisKKyAgICBhbGxvY2F0b3JfcmFuZ2UgPSBwYXNfcmFu
Z2VfY3JlYXRlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihiZWdp
bl9hbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2ZfYWxsb2NhdG9yKGVuZF9hbGxvY2F0
b3JfaW5kZXgpKTsKKyAgICByZXN1bHQuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBhbGxv
Y2F0b3JfcmFuZ2UuYmVnaW47CisgICAgcmVzdWx0LmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9
IGFsbG9jYXRvcl9yYW5nZS5lbmQ7CisKKyAgICBjb21wdXRlX3BhZ2VfaW5kaWNlcyhiZWdpbl9h
bGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5kZXgsICZiZWdpbl9wYWdlX2luZGV4LCAm
ZW5kX3BhZ2VfaW5kZXgpOworCisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2VfbWFsbG9j
X2FsaWdubWVudF9zaGlmdCgpOworCisgICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9p
bmRleDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAg
ICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldCh0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1p
dHRlZCwgcGFnZV9pbmRleCkpIHsKKyAgICAgICAgICAgIHJlc3VsdC5zdGFydF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdCA9IFBBU19NQVgoCisgICAgICAgICAgICAgICAgcmVzdWx0LnN0YXJ0X29mX3Bv
c3NpYmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAgIFBBU19NSU4oCisgICAgICAgICAgICAg
ICAgICAgIGFsbG9jYXRvcl9yYW5nZS5lbmQsCisgICAgICAgICAgICAgICAgICAgIChwYWdlX2lu
ZGV4ICsgMSkgPDwgcGFnZV9zaXplX3NoaWZ0KSk7CisgICAgICAgICAgICByZXN1bHQuZW5kX29m
X3Bvc3NpYmxlX2RlY29tbWl0ID0gUEFTX01JTigKKyAgICAgICAgICAgICAgICByZXN1bHQuZW5k
X29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAgIFBBU19NQVgoCisgICAgICAg
ICAgICAgICAgICAgIGFsbG9jYXRvcl9yYW5nZS5iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAg
cGFnZV9pbmRleCA8PCBwYWdlX3NpemVfc2hpZnQpKTsKKyAgICAgICAgfQorICAgIH0KKworICAg
IFBBU19BU1NFUlQoIXBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfZW1wdHkocmVzdWx0
KSk7CisKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxf
Y2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
YWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9j
YXRvcl9pbmRleCkKK3sKKyAgICB1aW50cHRyX3QgYmVnaW5fcGFnZV9pbmRleDsKKyAgICB1aW50
cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IHBhZ2VfaW5kZXg7CisKKyAgICBj
b21wdXRlX3BhZ2VfaW5kaWNlcyhiZWdpbl9hbGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3Jf
aW5kZXgsICZiZWdpbl9wYWdlX2luZGV4LCAmZW5kX3BhZ2VfaW5kZXgpOworCisgICAgZm9yIChw
YWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRleDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4
OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAgaWYgKHBhc19iaXR2ZWN0b3JfZ2V0KHRocmVhZF9s
b2NhbF9jYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2luZGV4KSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAKKyAgICAgICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQoJnRocmVhZF9s
b2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOworICAgICAgICAKKyAgICAgICAgLyog
RG9uJ3QgYXR0ZW1wdCB0byBkbyBmYW5jeSB0aGluZ3Mgd2l0aCBzcGFucyBmb3IgY29tbWl0LCBz
aW5jZSB3ZSdyZSBubyBsb25nZXIgcmVhbGx5CisgICAgICAgICAgIG9wdGltaXppbmcgZm9yIHN5
bW1ldHJpYyBjb21taXQgYW55d2F5LiAqLworICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0
X3dpdGhvdXRfbXByb3RlY3QoCisgICAgICAgICAgICAoY2hhciopdGhyZWFkX2xvY2FsX2NhY2hl
ICsgKHBhZ2VfaW5kZXggPDwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpKSwKKyAg
ICAgICAgICAgIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSwKKyAgICAgICAgICAgIHBhc19t
YXlfbW1hcCk7CisKKyAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQodGhyZWFkX2xvY2FsX2NhY2hl
LT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5kZXgsIHRydWUpOworICAgIH0KK30KKwogcGFzX2xv
Y2FsX2FsbG9jYXRvcl9yZXN1bHQKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2Fs
bG9jYXRvcl9pZl9jYW5fc2V0X2NhY2hlX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2luZGV4
X3Nsb3coCiAgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4LApAQCAtMzUxLDYgKzQ4NCwzNyBA
QCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0CiAgICAgICAgIHBhc19s
b2NrX2lzX25vdF9oZWxkKTsKIH0KIAorcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFsbG9jYXRvcikKK3sKKyAgICB1
aW50cHRyX3QgY2FjaGVfYWRkcmVzczsKKyAgICB1aW50cHRyX3QgYWxsb2NhdG9yX2FkZHJlc3M7
CisgICAgdWludHB0cl90IGJlZ2luX2FsbG9jYXRvcnM7CisgICAgdWludHB0cl90IGVuZF9hbGxv
Y2F0b3JzOworICAgIHVpbnRwdHJfdCBvZmZzZXQ7CisgICAgdWludHB0cl90IGluZGV4OworCisg
ICAgY2FjaGVfYWRkcmVzcyA9ICh1aW50cHRyX3QpY2FjaGU7CisgICAgYWxsb2NhdG9yX2FkZHJl
c3MgPSAodWludHB0cl90KWFsbG9jYXRvcjsKKworICAgIGJlZ2luX2FsbG9jYXRvcnMgPSBjYWNo
ZV9hZGRyZXNzICsgUEFTX09GRlNFVE9GKHBhc190aHJlYWRfbG9jYWxfY2FjaGUsIGxvY2FsX2Fs
bG9jYXRvcnMpOworICAgIGVuZF9hbGxvY2F0b3JzID0gYmVnaW5fYWxsb2NhdG9ycyArIHNpemVv
Zih1aW50NjRfdCkgKiBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kOworCisgICAg
UEFTX0FTU0VSVChhbGxvY2F0b3JfYWRkcmVzcyA+PSBiZWdpbl9hbGxvY2F0b3JzKTsKKyAgICBQ
QVNfQVNTRVJUKGFsbG9jYXRvcl9hZGRyZXNzIDwgZW5kX2FsbG9jYXRvcnMpOworCisgICAgb2Zm
c2V0ID0gYWxsb2NhdG9yX2FkZHJlc3MgLSBiZWdpbl9hbGxvY2F0b3JzOworCisgICAgUEFTX0FT
U0VSVChwYXNfaXNfYWxpZ25lZChvZmZzZXQsIHNpemVvZih1aW50NjRfdCkpKTsKKyAgICAKKyAg
ICBpbmRleCA9IG9mZnNldCAvIHNpemVvZih1aW50NjRfdCk7CisKKyAgICBQQVNfQVNTRVJUKGlu
ZGV4IDwgY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBlcl9ib3VuZCk7CisKKyAgICBQQVNfQVNT
RVJUKChwYXNfYWxsb2NhdG9yX2luZGV4KWluZGV4ID09IGluZGV4KTsKKyAgICByZXR1cm4gKHBh
c19hbGxvY2F0b3JfaW5kZXgpaW5kZXg7Cit9CisKIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnMocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xv
Y2FsX2NhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKIHsKQEAgLTM1OSw3
ICs1MjMsNyBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hCiAgICAg
LyogV2UgaGF2ZSB0byBob2xkIHRoZSBoZWFwIGxvY2sgdG8gZG8gdGhpbmdzIHRvIG91ciBsb2Nh
bCBhbGxvY2F0b3JzIHVubGVzcyB3ZSBhbHNvIHNldCB0aGUKICAgICAgICBpc19pbl91c2UgYml0
LiAqLwogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xk
X21vZGUpOwotICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9n
X2ZsdXNoX2xvY2spOworICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9k
ZS0+c2NhdmVuZ2VyX2xvY2spOwogCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xB
WU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkpIHsKICAgICAgICAgcGFzX2FsbG9jYXRv
cl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CkBAIC0zNjksMTEgKzUzMywxNCBAQCB2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5k
ZXggPj0gdGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAg
ICAgICAgICAgICBicmVhazsKIAorICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUp
KQorICAgICAgICAgICAgY29udGludWU7CisKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9zdG9wKAogICAgICAgICAgICAgbGF5b3V0X25vZGUsIHRocmVhZF9sb2Nh
bF9jYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlX2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpOwogICAg
IH0KIAotICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2df
Zmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5v
ZGUtPnNjYXZlbmdlcl9sb2NrKTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25kaXRpb25h
bGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogfQogCkBAIC01MTQsMTQgKzY4MSwxNCBAQCBwcm9j
ZXNzX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9jb25maWcocGFzCiAgICAgfQogfQogCi1zdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nKAorc3RhdGljIFBB
U19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRob3V0X3Jlc2V0
dGluZygKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAg
ICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUgZGVhbGxvY2F0aW9uX21vZGUpCiB7
CiAgICAgc2l6ZV90IGluZGV4OwogICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CiAKLSAgICBwYXNf
bG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19m
bHVzaF9sb2NrKTsKKyAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKCZ0aHJlYWRfbG9j
YWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKICAgICAKICAgICBpbmRleCA9IHRocmVh
ZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleDsKICAgICBoZWxkX2xvY2sgPSBO
VUxMOwpAQCAtNTU0LDIxICs3MjEsMzAgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQg
Zmx1c2hfZGVhbAogCiBzdGF0aWMgdm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9zY2F2
ZW5nZXIocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlKQogewotICAg
IGlmICghdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4KQotICAgICAg
ICByZXR1cm47Ci0gICAgCi0gICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxf
Y2FjaGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSk7CisgICAgZmx1
c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRob3V0X3Jlc2V0dGluZyh0aHJlYWRfbG9jYWxfY2FjaGUs
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZSk7CiB9CiAKLXZvaWQgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9s
ZF9tb2RlKQorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1c2hfZGVhbGxvY2F0aW9u
X2xvZ193aXRoX21vZGUoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2Fs
X2NhY2hlLAorICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlLAorICAg
IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlKQogewog
ICAgIGlmICghdGhyZWFkX2xvY2FsX2NhY2hlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYXNf
bG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAg
ICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2Nr
KTsKIAotICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNf
c2VncmVnYXRlZF9kZWFsbG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlKTsKKyAgICBzd2l0Y2gg
KGRlYWxsb2NhdGlvbl9tb2RlKSB7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fZGlyZWN0X21vZGU6CisgICAgICAgIC8qIElmIHdlJ3JlIGRvaW5nIGEgZGlyZWN0IGZsdXNo
IHRoZW4gdHJ5IHRvIHNoYXJlIGNvZGUgd2l0aCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX2Zvcl9z
Y2F2ZW5nZXIsCisgICAgICAgICAgIHdoaWNoIGRvZXMgdGhlIHNhbWUgdGhpbmcgd2Ugd291bGQg
ZG8uICovCisgICAgICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcih0aHJl
YWRfbG9jYWxfY2FjaGUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHBhc19zZWdyZWdhdGVk
X2RlYWxsb2NhdGlvbl90b192aWV3X2NhY2hlX21vZGU6CisgICAgICAgIGZsdXNoX2RlYWxsb2Nh
dGlvbl9sb2dfd2l0aG91dF9yZXNldHRpbmcoCisgICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2Fj
aGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3X2NhY2hlX21vZGUpOworICAg
ICAgICBicmVhazsKKyAgICB9CiAgICAgCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9j
YXRpb25fbG9nX2luZGV4ID0gMDsKICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPm51bV9sb2dnZWRf
Ynl0ZXMgPSAwOwpAQCAtNTc3LDI2ICs3NTMsNDcgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2ZsdXNoX2RlYWxsbwogICAgICAgIHRoaXMgbG9nLiAqLwogICAgIHRocmVhZF9sb2NhbF9j
YWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19kaXJ0eSA9IHRydWU7CiAKLSAgICBwYXNfbG9ja191bmxv
Y2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19s
b2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAg
ICAgCiAgICAgaWYgKGhlYXBfbG9ja19ob2xkX21vZGUgPT0gcGFzX2xvY2tfaXNfbm90X2hlbGQp
CiAgICAgICAgIHBhc19zY2F2ZW5nZXJfbm90aWZ5X2VsaWdpYmlsaXR5X2lmX25lZWRlZCgpOwog
fQogCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xkX21vZGUg
aGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhf
bW9kZSgKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlLCBw
YXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fdG9fdmlld19jYWNoZV9tb2RlKTsKK30KKwordm9p
ZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0KHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19ob2xk
X21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3sKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9n
X3dpdGhfbW9kZSgKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9t
b2RlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fZGlyZWN0X21vZGUpOworfQorCiAjaWYg
UEFTX09TKERBUldJTikKIAotc3RhdGljIHZvaWQgc3VzcGVuZChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBjYWNoZSkKK3N0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
Y2FjaGUsIGJvb2wqIGRpZF9zdXNwZW5kKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKIAogICAgIHB0aHJlYWRfdCB0aHJlYWQ7CiAgICAgbWFjaF9wb3J0X3QgbWFj
aF90aHJlYWQ7CiAgICAga2Vybl9yZXR1cm5fdCByZXN1bHQ7CisKKyAgICBpZiAoKmRpZF9zdXNw
ZW5kKQorICAgICAgICByZXR1cm47CisKKyAgICAqZGlkX3N1c3BlbmQgPSB0cnVlOwogICAgIAog
ICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwcmludGYoIlN1c3BlbmRpbmcgVExDICVwIHdpdGgg
dGhyZWFkICVwLlxuIiwgY2FjaGUsIGNhY2hlLT50aHJlYWQpOwogCiAgICAgdGhyZWFkID0gY2Fj
aGUtPnRocmVhZDsKKyAgICBQQVNfQVNTRVJUKHRocmVhZCk7CisgICAgCiAgICAgaWYgKHRocmVh
ZCA9PSBwdGhyZWFkX3NlbGYoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC02MTcsNyArODE0LDEy
IEBAIHN0YXRpYyB2b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWMKIAogc3RhdGljIHZv
aWQgcmVzdW1lKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQogeworICAgIHN0YXRpYyBj
b25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKICAgICBrZXJuX3JldHVybl90IHJlc3Vs
dDsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJSZXN1bWluZyBUTEMgJXAg
d2l0aCB0aHJlYWQgJXAuXG4iLCBjYWNoZSwgY2FjaGUtPnRocmVhZCk7CiAgICAgCiAgICAgaWYg
KGNhY2hlLT50aHJlYWQgPT0gcHRocmVhZF9zZWxmKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTYy
OSwxNCArODMxLDE3MiBAQCBzdGF0aWMgdm9pZCByZXN1bWUocGFzX3RocmVhZF9sb2NhbF9jYWNo
CiAKICNlbmRpZgogCitzdGF0aWMgdm9pZCBkZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBiZWdpbl9sYXlvdXRfbm9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3Qgc3RhcnRf
b2ZfcG9zc2libGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdWludHB0cl90IGVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGVu
ZF9sYXlvdXRfbm9kZSkKK3sKKyNpZiBQQVNfT1MoREFSV0lOKQorICAgIHN0YXRpYyBjb25zdCBi
b29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICB1aW50cHRyX3QgYmVnaW5fcGFnZV9pbmRl
eDsKKyAgICB1aW50cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBpbm5lcl9ub2RlOworICAgIHVpbnRwdHJfdCBwYWdlX2luZGV4Owor
ICAgIHNpemVfdCBwYWdlX3NpemU7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICBw
YXNfcmFuZ2UgZGVjb21taXRfcmFuZ2U7CisKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxk
KCk7CisgICAgcGFzX2xvY2tfYXNzZXJ0X2hlbGQoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9j
ayk7CisKKyAgICBwYWdlX3NpemUgPSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7CisgICAg
cGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOworICAg
IAorICAgIGJlZ2luX3BhZ2VfaW5kZXggPSBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMigKKyAg
ICAgICAgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQsIHBhZ2Vfc2l6ZSkgPj4gcGFnZV9zaXpl
X3NoaWZ0OworICAgIGVuZF9wYWdlX2luZGV4ID0gZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0ID4+
IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIGlmIChiZWdpbl9wYWdlX2luZGV4ID49IGVuZF9wYWdl
X2luZGV4KQorICAgICAgICByZXR1cm47CisKKyAgICBkZWNvbW1pdF9yYW5nZSA9IHBhc19yYW5n
ZV9jcmVhdGUoYmVnaW5fcGFnZV9pbmRleCA8PCBwYWdlX3NpemVfc2hpZnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZF9wYWdlX2luZGV4IDw8IHBhZ2Vfc2l6ZV9z
aGlmdCk7CisKKyAgICBpZiAoYmVnaW5fbGF5b3V0X25vZGUpIHsKKyAgICAgICAgZm9yIChpbm5l
cl9ub2RlID0gYmVnaW5fbGF5b3V0X25vZGU7CisgICAgICAgICAgICAgaW5uZXJfbm9kZSAhPSBl
bmRfbGF5b3V0X25vZGU7CisgICAgICAgICAgICAgaW5uZXJfbm9kZSA9IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X25leHQoaW5uZXJfbm9kZSkpCisgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3ByZXBhcmVfdG9fZGVjb21taXQoaW5u
ZXJfbm9kZSwgY2FjaGUsIGRlY29tbWl0X3JhbmdlKTsKKyAgICB9CisgICAgCisgICAgZm9yIChw
YWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRleDsgcGFnZV9pbmRleCA8IGVuZF9wYWdlX2luZGV4
OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfYml0dmVjdG9yX2dldChj
YWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2luZGV4KSk7CisgICAgICAgIHBhc19iaXR2ZWN0
b3Jfc2V0KGNhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5kZXgsIGZhbHNlKTsKKyAgICB9
CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiRGVjb21taXR0aW5nICVwLi4u
JXBcbiIsICh2b2lkKilkZWNvbW1pdF9yYW5nZS5iZWdpbiwgKHZvaWQqKWRlY29tbWl0X3Jhbmdl
LmVuZCk7CisKKyAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0aG91dF9tcHJvdGVjdCgK
KyAgICAgICAgKGNoYXIqKWNhY2hlICsgZGVjb21taXRfcmFuZ2UuYmVnaW4sIHBhc19yYW5nZV9z
aXplKGRlY29tbWl0X3JhbmdlKSwgcGFzX21heV9tbWFwKTsKKworICAgIGlmICh2ZXJib3NlKSB7
CisgICAgICAgIHBhc19sb2coIk51bSBjb21taXR0ZWQgcGFnZXMgaW4gdGhlIHJhbmdlIHdlIGp1
c3QgZGVjb21taXR0ZWQ6ICV6dVxuIiwKKyAgICAgICAgICAgICAgICBwYXNfY291bnRfY29tbWl0
dGVkX3BhZ2VzKAorICAgICAgICAgICAgICAgICAgICAoY2hhciopY2FjaGUgKyBkZWNvbW1pdF9y
YW5nZS5iZWdpbiwKKyAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlX3NpemUoZGVjb21taXRf
cmFuZ2UpLAorICAgICAgICAgICAgICAgICAgICAmcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
X2FsbG9jYXRpb25fY29uZmlnKSk7CisgICAgfQorI2Vsc2UgLyogUEFTX09TKERBUldJTikgLT4g
c28gIVBBU19PUyhEQVJXSU4pICovCisgICAgUEFTX1VOVVNFRF9QQVJBTShjYWNoZSk7CisgICAg
UEFTX1VOVVNFRF9QQVJBTShiZWdpbl9sYXlvdXRfbm9kZSk7CisgICAgUEFTX1VOVVNFRF9QQVJB
TShzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgUEFTX1VOVVNFRF9QQVJBTShlbmRf
b2ZfcG9zc2libGVfZGVjb21taXQpOworICAgIFBBU19VTlVTRURfUEFSQU0oZW5kX2xheW91dF9u
b2RlKTsKKyNlbmRpZiAvKiBQQVNfT1MoREFSV0lOKSAtPiBzbyBlbmQgb2YgIVBBU19PUyhEQVJX
SU4pICovCit9CisKK3N0YXRpYyB2b2lkIHN0b3BfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogc2NhdmVuZ2Vy
X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sKiByZXN1bHQsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICBib29sKiBkaWRfc3VzcGVuZCkKK3sKKyAgICBzdGF0aWMgY29u
c3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CisgICAgCisgICAgaWYgKGFsbG9jYXRvcl9hY3Rpb24g
PT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKSB7CisgICAgICAg
IHVpbnQ4X3Qgc2hvdWxkX3N0b3BfY291bnQ7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAg
ICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIHRoZSByZXF1ZXN0IHRo
aW5neS5cbiIpOworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKHNjYXZlbmdlcl9k
YXRhLT5kaXJ0eSkgeworICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAgICAgICAgICAg
cGFzX2xvZygiSXQgd2FzIGRpcnR5LlxuIik7CisgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YS0+
ZGlydHkgPSBmYWxzZTsKKyAgICAgICAgICAgICpyZXN1bHQgPSB0cnVlOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgLyogQmFpbCBvdXQgaWYgaXQncyBubyBsb25n
ZXIgYWN0aXZlLiAqLworICAgICAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9pc19zdG9wcGVkKHNjYXZlbmdlcl9kYXRhKSkgeworICAgICAgICAgICAgaWYgKHZlcmJv
c2UpCisgICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGVtcHR5LlxuIik7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9IHNj
YXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudDsKKyAgICAgICAgaWYgKHNob3VsZF9zdG9w
X2NvdW50IDwgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVu
ZCkgeworICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytz
aG91bGRfc3RvcF9jb3VudDsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAg
UEFTX0FTU0VSVChzaG91bGRfc3RvcF9jb3VudAorICAgICAgICAgICAgICAgICAgICAgICA8PSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoY2FjaGUt
PnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxsb2NhdG9yX2luZGV4LCB0cnVlKTsKKyAgICAgICAg
ICAgIGNhY2hlLT5zaG91bGRfc3RvcF9zb21lID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIAorICAgICAgICAgICAgKnJlc3VsdCA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAg
ICAKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIlRv
bGQgaXQgdG8gc3RvcC5cbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIFBBU19B
U1NFUlQoc2hvdWxkX3N0b3BfY291bnQKKyAgICAgICAgICAgICAgICAgICA9PSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKTsKKyAgICB9IGVsc2Ugewor
ICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIGFjdHVhbCBz
dG9wLlxuIik7CisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBQQVNfQVNTRVJUKGFsbG9j
YXRvcl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9mb3JjZV9zdG9wX2FjdGlvbik7
CisgICAgfQorCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNf
c3RvcHBlZChzY2F2ZW5nZXJfZGF0YSkpIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworI2lmIFBBU19PUyhEQVJXSU4pCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBhc19sb2co
Ik5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVwXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisK
KyAgICBzdXNwZW5kKGNhY2hlLCBkaWRfc3VzcGVuZCk7CisKKyAgICBQQVNfQVNTRVJUKCpkaWRf
c3VzcGVuZCk7CisgICAgICAgICAgICAgICAgCisgICAgaWYgKHNjYXZlbmdlcl9kYXRhLT5pc19p
bl91c2UpIHsKKyAgICAgICAgKnJlc3VsdCA9IHRydWU7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKKworICAgIFBBU19BU1NFUlQoIXNjYXZlbmdl
cl9kYXRhLT5pc19pbl91c2UpOworCisgICAgaWYgKCB2ZXJib3NlKQorICAgICAgICBwYXNfbG9n
KCJTdG9wcGluZyBhbGxvY2F0b3IgJXAgd2hpbGUgc3VzcGVuZGVkXG4iLCBzY2F2ZW5nZXJfZGF0
YSk7CisgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisg
ICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YSwgcGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrLCBw
YXNfbG9ja19pc19oZWxkKSkKKyAgICAgICAgKnJlc3VsdCA9IHRydWU7CisjZW5kaWYKK30KKwog
Ym9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5n
ZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gZGVhbGxvY2F0b3JfYWN0aW9u
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9
IGZhbHNlOwotICAgIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogbm9kZTsKICAg
ICBib29sIHJlc3VsdDsKKyAgICBzaXplX3QgcGFnZV9zaXplOworICAgIHNpemVfdCBwYWdlX3Np
emVfc2hpZnQ7CisKKyAgICBwYWdlX3NpemUgPSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7
CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgp
OwogCiAgICAgLyogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB3ZSBlbmNvdW50ZXIgYSBzaXR1YXRpb24g
d2hlcmUgd2UgdGhpbmsgdGhhdCBtb3JlIG1lbW9yeSBjb3VsZAogICAgICAgIGJlIHJldHVybmVk
IGlmIHRoaXMgd2FzIGNhbGxlZCBhZ2Fpbi4gKi8KQEAgLTY2NCw3ICsxMDI0LDcgQEAgYm9vbCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwogICAgICAgICBpZiAoIWNhY2hlKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgcGFzX2xvY2tfbG9jaygmbm9kZS0+bG9n
X2ZsdXNoX2xvY2spOworICAgICAgICBwYXNfbG9ja19sb2NrKCZub2RlLT5zY2F2ZW5nZXJfbG9j
ayk7CiAKICAgICAgICAgc3dpdGNoIChkZWFsbG9jYXRvcl9hY3Rpb24pIHsKICAgICAgICAgY2Fz
ZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uOgpAQCAtNjg2LDE0ICsxMDQ2LDI1
IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAgaWYg
KGFsbG9jYXRvcl9hY3Rpb24gIT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pIHsK
ICAgICAgICAgICAgIGJvb2wgZGlkX3N1c3BlbmQ7CiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2RlOworICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBiZWdpbl9sYXlvdXRfbm9kZTsKKyAgICAgICAgICAg
IHVpbnRwdHJfdCBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKKyAgICAgICAgICAgIHVpbnRw
dHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAgICAgICAgICAgdWludHB0cl90IGVuZF9wYWdlX2lu
ZGV4OworICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfaW5kZXg7CiAgICAgICAgICAgICAKICAg
ICAgICAgICAgIGRpZF9zdXNwZW5kID0gZmFsc2U7CiAKLSAgICAgICAgICAgIFBBU19VTlVTRURf
UEFSQU0oZGlkX3N1c3BlbmQpOworICAgICAgICAgICAgYmVnaW5fbGF5b3V0X25vZGUgPSBOVUxM
OworICAgICAgICAgICAgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPQorICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29mX2FsbG9jYXRvcihQQVNfTE9DQUxf
QUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMpOworCisgICAgICAgICAgICBQQVNfQVNT
RVJUKCFkaWRfc3VzcGVuZCk7CiAKICAgICAgICAgICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9D
QUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7CiAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisgICAgICAgICAgICAgICAg
cGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4OwogICAgICAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOworICAg
ICAgICAgICAgICAgIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgZGVjb21taXRfZXhjbHVz
aW9uX3JhbmdlOwogCiAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX2luZGV4ID0KICAgICAgICAg
ICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2Nh
dG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwpAQCAtNzAxLDkxICsxMDcyLDc2IEBAIGJv
b2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc18KICAgICAgICAgICAgICAgICBp
ZiAoYWxsb2NhdG9yX2luZGV4ID49IGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQp
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgICAgICAgICAgc2NhdmVuZ2Vy
X2RhdGEgPSAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSopcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2lu
ZGV4KTsKLQotICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxv
Y2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2FjdGlvbikgewotICAgICAgICAgICAgICAgICAg
ICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OwotICAgICAgICAgICAgICAgICAgICAKLSAgICAg
ICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9nKCJEb2luZyB0aGUgcmVxdWVzdCB0aGluZ3kuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
Ci0gICAgICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+ZGlydHkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIkl0IHdhcyBkaXJ0eS5cbiIpOwotICAgICAgICAgICAgICAgICAgICAgICAg
c2NhdmVuZ2VyX2RhdGEtPmRpcnR5ID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgICAgICAvKiBCYWlsIG91dCBpZiBpdCdz
IG5vIGxvbmdlciBhY3RpdmUuICovCi0gICAgICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEpKSB7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZW5k
X2FsbG9jYXRvcl9pbmRleCA9CisgICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9pbmRleCAr
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2Vz
KGxheW91dF9ub2RlKTsKIAotICAgICAgICAgICAgICAgICAgICBzaG91bGRfc3RvcF9jb3VudCA9
IHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudDsKLSAgICAgICAgICAgICAgICAgICAg
aWYgKHNob3VsZF9zdG9wX2NvdW50IDwgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9j
b3VudF9mb3Jfc3VzcGVuZCkgewotICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2Rh
dGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRfc3RvcF9jb3VudDsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChzaG91bGRf
c3RvcF9jb3VudAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8PSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKTsKLSAgICAgICAgICAg
ICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQo
Y2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxsb2NhdG9yX2luZGV4LCB0cnVlKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLT5zaG91bGRfc3RvcF9zb21lID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0g
dHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiVG9sZCBp
dCB0byBzdG9wLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhID0gKHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqKQorICAgICAgICAgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBh
bGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGRlY29t
bWl0X2V4Y2x1c2lvbl9yYW5nZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNv
bW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAgICAgICAgICAgICAgICAgIGNhY2hlLCBhbGxvY2F0
b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAgIFBBU19BU1NF
UlQoc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
IDw9IGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7
CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmVu
ZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgICAgICAgICAgICAgaWYgKHBhc19kZWNvbW1p
dF9leGNsdXNpb25fcmFuZ2VfaXNfY29udGlndW91cyhkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Up
KSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BfYWxsb2NhdG9yKAorICAgICAgICAgICAgICAg
ICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9hY3Rpb24sIGFsbG9jYXRvcl9pbmRleCwgc2NhdmVu
Z2VyX2RhdGEsICZyZXN1bHQsICZkaWRfc3VzcGVuZCk7CisKKyAgICAgICAgICAgICAgICAgICAg
aWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5n
ZXJfZGF0YSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICghYmVnaW5fbGF5b3V0X25v
ZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVnaW5fbGF5b3V0X25vZGUgPSBsYXlv
dXRfbm9kZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9y
X2luZGV4X2dlbmVyaWMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdp
bl9sYXlvdXRfbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCBhbGxvY2F0
b3JfaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21taXRfZXhjbHVzaW9uX3Jh
bmdlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVjb21taXRfZXhjbHVzaW9u
X3JhbmdlX2NyZWF0ZV9pbnZlcnRlZChkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpOwogICAgICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICBQQVNfQVNTRVJUKHNob3VsZF9zdG9wX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVu
ZCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZl
cmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb2luZyBhY3R1YWwgc3Rv
cC5cbiIpOwotICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgUEFTX0FT
U0VSVChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3Rv
cF9hY3Rpb24pOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIGlmICghcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEp
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2xvZygiSXQgd2FzIGVtcHR5LlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotI2lmIFBBU19PUyhEQVJXSU4pCi0gICAgICAg
ICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIk5lZWQg
dG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVwXG4iLCBzY2F2ZW5nZXJfZGF0YSk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFkaWRfc3VzcGVuZCkgewotICAgICAgICAg
ICAgICAgICAgICBzdXNwZW5kKGNhY2hlKTsKLSAgICAgICAgICAgICAgICAgICAgZGlkX3N1c3Bl
bmQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKLSAgICAgICAg
ICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmlzX2luX3VzZSkgewotICAgICAgICAgICAgICAg
ICAgICByZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgICAgICAgICBpZiAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZlcnRlZChk
ZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0
X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLCBiZWdpbl9s
YXlvdXRfbm9kZSwgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAg
ICAgICAgICBkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0
LCBsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29mX3Bvc3NpYmxlX2Rl
Y29tbWl0ID0gZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29t
bWl0OworICAgICAgICAgICAgICAgICAgICBiZWdpbl9sYXlvdXRfbm9kZSA9IE5VTEw7CiAgICAg
ICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCB3aGlsZSBzdXNwZW5kZWRc
biIsIHNjYXZlbmdlcl9kYXRhKTsKLSAgICAgICAgICAgICAgICBpZiAoIXBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgKLSAgICAgICAgICAgICAgICAgICAgICAgIHNjYXZl
bmdlcl9kYXRhLCBwYXNfbG9ja19sb2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQp
KQotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwotI2VuZGlmCiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAKICNpZiBQQVNfT1MoREFSV0lOKQogICAgICAgICAgICAgaWYgKGRp
ZF9zdXNwZW5kKQogICAgICAgICAgICAgICAgIHJlc3VtZShjYWNoZSk7CiAjZW5kaWYKKworICAg
ICAgICAgICAgYmVnaW5fcGFnZV9pbmRleCA9CisgICAgICAgICAgICAgICAgcGFzX3JvdW5kX3Vw
X3RvX3Bvd2VyX29mXzIoc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQsIHBhZ2Vfc2l6ZSkKKyAg
ICAgICAgICAgICAgICA+PiBwYWdlX3NpemVfc2hpZnQ7CisgICAgICAgICAgICBlbmRfcGFnZV9p
bmRleCA9CisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9h
bGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkK
KyAgICAgICAgICAgICAgICA+PiBwYWdlX3NpemVfc2hpZnQ7CisKKyAgICAgICAgICAgIGZvciAo
cGFnZV9pbmRleCA9IGJlZ2luX3BhZ2VfaW5kZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFnZV9pbmRl
eDsgKytwYWdlX2luZGV4KSB7CisgICAgICAgICAgICAgICAgaWYgKCFwYXNfYml0dmVjdG9yX2dl
dChjYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2luZGV4KSkgeworICAgICAgICAgICAgICAg
ICAgICBkZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UoCisgICAgICAgICAgICAgICAgICAgICAgICBj
YWNoZSwgYmVnaW5fbGF5b3V0X25vZGUsIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleCA8PCBwYWdlX3NpemVfc2hpZnQsCisgICAg
ICAgICAgICAgICAgICAgICAgICBsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICAgICAgICAgIHN0
YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gKHBhZ2VfaW5kZXggKyAxKSA8PCBwYWdlX3NpemVf
c2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIGJlZ2luX2xheW91dF9ub2RlID0gTlVMTDsKKyAg
ICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAgICAgICAgICAgICBjYWNoZSwgYmVnaW5f
bGF5b3V0X25vZGUsIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5
KGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpLAorICAgICAgICAgICAgICAgIGxheW91
dF9ub2RlKTsKICAgICAgICAgfQogICAgICAgICAKLSAgICAgICAgcGFzX2xvY2tfdW5sb2NrKCZu
b2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgICAgIHBhc19sb2NrX3VubG9jaygmbm9kZS0+c2Nh
dmVuZ2VyX2xvY2spOwogICAgIH0KICAgICAKICAgICBwYXNfaGVhcF9sb2NrX3VubG9ja19jb25k
aXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwpAQCAtODEzLDcgKzExNjksNyBAQCB2b2lk
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKHBhc190CiB7CiAgICAgaWYgKCF0aHJlYWRf
bG9jYWxfY2FjaGUpCiAgICAgICAgIHJldHVybjsKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9s
b2dfZGlyZWN0KHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnModGhyZWFkX2xvY2Fs
X2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9k
ZSA9PSBwYXNfbG9ja19pc19ub3RfaGVsZCkKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlf
ZWxpZ2liaWxpdHlfaWZfbmVlZGVkKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCShyZXZpc2lv
biAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogI2luY2x1ZGUgInBhc19hbGxvY2F0b3Jfc2NhdmVu
Z2VfYWN0aW9uLmgiCiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5o
IgorI2luY2x1ZGUgInBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCIKICNpbmNsdWRlICJw
YXNfZmFzdF90bHMuaCIKICNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCiAjaW5jbHVk
ZSAicGFzX2xvY2FsX2FsbG9jYXRvci5oIgpAQCAtMzgsNyArMzksOSBAQAogI2luY2x1ZGUgPHB0
aHJlYWQuaD4KIAogI2lmIGRlZmluZWQoX19oYXNfaW5jbHVkZSkgJiYgX19oYXNfaW5jbHVkZSg8
cHRocmVhZC9wcml2YXRlLmg+KQorUEFTX0JFR0lOX0VYVEVSTl9DOwogI2luY2x1ZGUgPHB0aHJl
YWQvcHJpdmF0ZS5oPgorUEFTX0VORF9FWFRFUk5fQzsKICNkZWZpbmUgUEFTX0hBVkVfUFRIUkVB
RF9QUklWQVRFIDEKICNlbHNlCiAjZGVmaW5lIFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAwCkBA
IC04MSw2ICs4NCw3IEBAIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHsKICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIG5vZGU7CiAKICAgICB1bnNpZ25lZCogc2hvdWxkX3N0
b3BfYml0dmVjdG9yOworICAgIHVuc2lnbmVkKiBwYWdlc19jb21taXR0ZWQ7IC8qIFRoaXMgaXMg
YSBiaXR2ZWN0b3IsIHByb3RlY3RlZCBieSB0aGUgc2NhdmVuZ2VyIGxvY2suICovCiAgICAgCiAg
ICAgcHRocmVhZF90IHRocmVhZDsKICAgICAKQEAgLTE4MCw2ICsxODQsNDAgQEAgUEFTX0FQSSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdAogICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9p
bmRleCwKICAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKK3N0
YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1aW50cHRyX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9v
ZmZzZXRfb2ZfYWxsb2NhdG9yKHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpCit7CisgICAgcmV0
dXJuIFBBU19PRkZTRVRPRihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLCBsb2NhbF9hbGxvY2F0b3Jz
KSArICh1aW50cHRyX3QpaW5kZXggKiBzaXplb2YodWludDY0X3QpOworfQorCitQQVNfQVBJIGJv
b2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9j
YWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2lu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7CisKKy8qIFJldHVybnMgYSBk
ZXNjcmlwdGlvbiBvZiB3aGF0IHBhcnRzIG9mIHRoZSBhbGxvY2F0b3IgYXJlIGF2YWlsYWJsZSBm
b3IgZGVjb21taXQsIGluIHRoZSBzZW5zZSB0aGF0IHRoZXkKKyAgIGFyZSBjb21taXR0ZWQgYW5k
IGFyZSBsZWdhbCB0byBkZWNvbW1pdC4gVGhlIHZhbHVlcyBpbiB0aGUgcmFuZ2UgYXJlIG9mZnNl
dHMgZnJvbSB0aGUgYmFzZSBvZiB0aGUgY2FjaGUuCisgICAKKyAgIElmIHRoaXMgYWxsb2NhdG9y
IGlzIHRvdGFsbHkgY29tbWl0dGVkOiB3ZSdsbCBnZXQgYSBjb250aWd1b3VzIHJhbmdlIHdpdGgg
c3RhcnQgPSBzdGFydCBvZiBhbGxvY2F0b3IsIGVuZAorICAgPSBlbmQgb2YgYWxsb2NhdG9yLgor
ICAgCisgICBJZiB0aGlzIGFsbG9jYXRvciBpcyBwYXJ0bHkgZGVjb21taXR0ZWQ6IHdlJ2xsIGdl
dCBhbiBpbnZlcnRlZCByYW5nZSB3aXRoIHN0YXJ0ID0gdGhlIGZpcnN0IGJ5dGUgYWZ0ZXIgdGhl
CisgICBsYXN0IGRlY29tbWl0dGVkIGJ5dGUgaW4gdGhlIHBhZ2UsIGVuZCA9IHRoZSBmaXJzdCBk
ZWNvbW1pdHRlZCBieXRlIGluIHRoZSBwYWdlLgorCisgICBTbyBlaXRoZXIgcGFzX2RlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZV9pc19jb250aWd1b3VzKCkgb3IgIXBhc19kZWNvbW1pdF9leGNsdXNp
b25fcmFuZ2VfaXNfaW52ZXJ0ZWQoKSB0ZWxscworICAgdXMgaWYgdGhlIGFsbG9jYXRvciBpcyBj
b21taXR0ZWQuIEl0J3MgaW1wb3NzaWJsZSBmb3IgdGhlIHJldHVybmVkIHJhbmdlIHRvIGJlIGVt
cHR5LiAqLworUEFTX0FQSSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5k
X2FsbG9jYXRvcl9pbmRleCk7CisKKy8qIE11c3QgaG9sZCB0aGUgc2NhdmVuZ2VyX2xvY2sgaWYg
dGhpcyBpcyBjYWxsZWQgYW5kIHRoZXJlIGlzIHNvbWV0aGluZyB0byBjb21taXQuICovCitQQVNf
QVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0dGVkKHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdp
bl9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7
CisKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2RpZF9yZWNvbW1pdF9hY2Np
ZGVudGFsbHkocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KTsKKwogc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHZvaWQqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jf
ZGlyZWN0X3dpdGhvdXRfYW55X2NoZWNrc193aGF0c29ldmVyKAogICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKQEAgLTMxMyw2ICszNTEsOSBAQCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0CiAgICAgICAgIGNhY2hlLCBhbGxvY2F0
b3JfaW5kZXgsIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIH0KIAorUEFTX0FQSSBwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxv
Y2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2b2lkKiBhbGxvY2F0b3IpOworCiBQQVNfQVBJIHVuc2lnbmVkIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZ2V0X251bV9hbGxvY2F0b3JzKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
KTsKIAogUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxv
Y2F0b3JzKApAQCAtMzI3LDYgKzM2OCw5IEBAIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3AKIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2coCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2Fs
X2NhY2hlLAogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKK1BB
U19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2df
ZGlyZWN0KAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwK
KyAgICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKIC8qIFJldHVy
bnMgdHJ1ZSBpZiBpdCdzIHBvc3NpYmxlIHRoYXQgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gbW9y
ZSBtZW1vcnkgaWYgdGhpcyB3YXMgY2FsbGVkCiAgICBhZ2Fpbi4gKi8KSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsMTAgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSBwYXNfdAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUgPSBOVUxMOwogcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCA9
CiAgICAgUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX05VTV9JTkRJQ0VTOworcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2hhc2h0YWJsZV9pbnN0YW5jZSA9CisgICAgUEFTX0hBU0hUQUJMRV9JTklUSUFMSVpF
UjsKKworUEFTX0RFRklORV9MT0NLKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0
YWJsZSk7CiAKIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfYWRkX25vZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewpA
QCAtNDcsNiArNTEsNyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2Fj
CiAKICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdDsKICAgICBib29sIGRpZF9vdmVyZmxv
dzsKKyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgY29tcGFj
dF9ub2RlOwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC03MiwxMiAr
NzcsMTIgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgIGlm
ICh2ZXJib3NlKSB7CiAgICAgICAgIHBhc19sb2coInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2FkZF9ub2RlOiBub2RlID0gJXAsIGFsbG9jYXRvcl9pbmRleCA9ICV1LCAiCiAgICAgICAg
ICAgICAgICAgIm51bV9hbGxvY2F0b3JfaW5kaWNlcyA9ICV1XG4iLAotICAgICAgICAgICAgICAg
IG5vZGUsIHJlc3VsdCwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRv
cl9pbmRpY2VzKG5vZGUpKTsKKyAgICAgICAgICAgICAgICBub2RlLCByZXN1bHQsIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpKTsK
ICAgICB9CiAKICAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KAogICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCwK
LSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRp
Y2VzKG5vZGUpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251
bV9hbGxvY2F0b3JfaW5kaWNlcyhub2RlKSwKICAgICAgICAgJnBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4KTsKICAgICBQQVNfQVNTRVJUKCFkaWRfb3Zl
cmZsb3cpOwogCkBAIC05NCw2ICs5OSwxMyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJl
YWRfbG9jYWxfY2FjCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
c2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlLCBub2RlKTsK
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlID0gbm9kZTsK
ICAgICB9CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9j
a19sb2NrKCk7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3N0b3JlKCZjb21wYWN0X25vZGUsIG5vZGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2hhc2h0YWJsZV9hZGRfbmV3KAorICAgICAgICAmcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfaGFzaHRhYmxlX2luc3RhbmNlLCBjb21wYWN0X25vZGUsCisgICAgICAgIE5VTEws
ICZwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWcpOworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9sb2NrX3VubG9jaygpOwogICAg
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzQsNCArMTQ2LDE2IEBAIHBhc19hbGxvY2F0
b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKICAgICByZXR1cm4gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfYWRkX25vZGUocGFzX3dyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKGNh
Y2hlX25vZGUpKTsKIH0KIAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9nZXRfbm9kZV9mb3JfaW5kZXgocGFzX2FsbG9jYXRv
cl9pbmRleCBpbmRleCkKK3sKKyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgY29tcGFjdF9ub2RlOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfaGFzaHRhYmxlX2xvY2tfbG9jaygpOworICAgIGNvbXBhY3Rfbm9kZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9nZXQoCisgICAgICAgICZwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfaW5zdGFuY2UsIGluZGV4KTsKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9ja191bmxvY2soKTsKKworICAgIHJl
dHVybiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbG9hZCgmY29t
cGFjdF9ub2RlKTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0
b3JfaW5kZXguaCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2hhc2h0
YWJsZS5oIgorI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfZW50cnkuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKQEAgLTM2LDYgKzM5LDE2
IEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIFBBU19BUEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9k
ZTsKIFBBU19BUEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlOwogCitQQVNfQ1JFQVRFX0hBU0hU
QUJMRShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGUsCisgICAgICAgICAg
ICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSwKKyAgICAgICAg
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleSk7CisKKy8qIExv
Y2sgdXNlZCBpbnRlcm5hbGx5IGZvciBhY2Nlc3NpbmcgdGhlIGhhc2h0YWJsZV9pbnN0YW5jZS4g
WW91IGRvbid0IGhhdmUgdG8gdXNlIHRoaXMgbG9jayB1bmxlc3MgeW91CisgICBhY2Nlc3MgdGhl
IGhhc2h0YWJsZV9pbnN0YW5jZSBkaXJlY3RseS4gKi8KK1BBU19ERUNMQVJFX0xPQ0socGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlKTsKKworUEFTX0FQSSBleHRlcm4gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2hhc2h0YWJsZV9pbnN0YW5jZTsKKwogLyogQ2xpZW50cyBjYW4gdXNlIHRoaXMg
dG8gZm9yY2UgdGhlIG5leHQgY2FsbCB0byBhZGQgdG8gZ28gdG8gdGhpcyBpbmRleC4gKi8KIFBB
U19BUEkgZXh0ZXJuIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXg7CiAKQEAgLTUxLDYgKzY0LDEwIEBAIFBBU19BUEkg
cGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2wKIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9p
bmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSgKICAgICBw
YXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAorLyogWW91IGRvbid0
IG5lZWQgdG8gaG9sZCBhbnkgbG9ja3MgdG8gdXNlIHRoaXMgYmVjYXVzZSB0aGlzIHVzZXMgaXRz
IG93biBsb2NrIGJlaGluZCB0aGUgc2NlbmVzLiAqLworUEFTX0FQSSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9ub2Rl
X2Zvcl9pbmRleCgKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4KTsKKwogI2RlZmluZSBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihub2RlKSBcCiAgICAg
bm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGU7IFwKICAgICBu
b2RlOyBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmgJ
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDg4IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRU5UUllfSAorI2RlZmluZSBQQVNf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FTlRSWV9ICisKKyNpbmNsdWRlICJwYXNfYWxsb2Nh
dG9yX2luZGV4LmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKwordHlwZWRlZiBwYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfZW50cnk7Cit0eXBlZGVmIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfa2V5OworCitzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2VudHJ5IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0
ZV9lbXB0eSh2b2lkKQoreworICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZSByZXN1bHQ7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX3N0b3JlKCZyZXN1bHQsIE5VTEwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0
YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKK3sKKyAgICBw
YXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcmVzdWx0OworICAgIHBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmcmVzdWx0LCAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSkodWludHB0cl90KTEpOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVkKAorICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90KXBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkgPD0g
KHVpbnRwdHJfdCkxOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnlfaXNfZW1wdHkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
ZW50cnkgZW50cnkpCit7CisgICAgcmV0dXJuIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9pc19udWxsKCZlbnRyeSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9pc19kZWxldGVkKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90
KXBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkg
PT0gKHVpbnRwdHJfdCkxOworfQorCitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXgg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfZ2V0X2tleSgKKyAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSBlbnRyeSkKK3sKKyAgICByZXR1cm4gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMo
CisgICAgICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2Fk
X25vbl9udWxsKCZlbnRyeSkpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleV9nZXRfaGFzaChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9rZXkga2V5KQoreworICAgIHJldHVybiBwYXNfaGFzaDMyKGtleSk7Cit9CisKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfaXNfZXF1
YWwocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5IGEsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2tleSBiKQoreworICAgIHJldHVybiBhID09IGI7Cit9CisKK1BB
U19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9V
VF9FTlRSWV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmMJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkod29ya2luZyBjb3B5KQpA
QCAtNTAsNyArNTAsNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9k
CiB9CiAKIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUpCitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CiAgICAg
cGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIApAQCAtMTMxLDkgKzEz
MSwxMSBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAgICAgcGFz
X2NvbXBhY3RfYXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZShuZXh0
X3B0cihub2RlKSwgbmV4dF9ub2RlKTsKIH0KIAotdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2NvbnN0cnVjdChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
IG5vZGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkK
IHsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0
ZWQobm9kZSwgY2FjaGUpOworICAgIAogICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7CiAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uc3RydWN0KAogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24oCkBAIC0xNTQs
MTkgKzE1NiwzNCBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiBmcm9tX2NhY2hlKQogewogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2Nh
dG9yX2luZGV4OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZl
bmdlcl9kYXRhOwogCisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2lzX2NvbW1pdHRlZChub2RlLCB0b19jYWNoZSkpOworICAgIAogICAgIGFsbG9jYXRv
cl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRv
cl9pbmRleF9nZW5lcmljKG5vZGUpOwogICAgIAorICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0ZWQobm9kZSwgZnJvbV9jYWNoZSkpIHsKKyAgICAg
ICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0cnVj
dChub2RlLCB0b19jYWNoZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAg
IHNjYXZlbmdlcl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2Nh
dG9yX2RpcmVjdChmcm9tX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworCisgICAgaWYgKHNjYXZl
bmdlcl9kYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCkg
eworICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRf
Y29uc3RydWN0KG5vZGUsIHRvX2NhY2hlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAK
ICAgICBpZiAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2Fs
bG9jYXRvcihub2RlKSkgewogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCiAgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0
X2Zvcl9pbml0aWFsaXphdGlvbih0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKLSAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoZnJv
bV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvciopc2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfbW92ZSgKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24odG9fY2FjaGUsIGFs
bG9jYXRvcl9pbmRleCksCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXRvcl9kaXJlY3QoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAg
IChwYXNfbG9jYWxfdmlld19jYWNoZSopc2NhdmVuZ2VyX2RhdGEpOwogfQogCiB2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlIG5vZGUsCkBAIC0xOTMsNCArMjEwLDU2IEBAIHZvaWQgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV8KICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKGFs
bG9jYXRvciwgcGFnZV9sb2NrX21vZGUpOwogfQogCitib29sIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgcGFzX2FsbG9j
YXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJp
Yyhub2RlKTsKKworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2NvbW1pdHRl
ZCgKKyAgICAgICAgY2FjaGUsCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgYWxs
b2NhdG9yX2luZGV4ICsgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9udW1fYWxs
b2NhdG9yX2luZGljZXMobm9kZSkpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICBwYXNf
YWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9n
ZW5lcmljKG5vZGUpOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0
dGVkKAorICAgICAgICBjYWNoZSwKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4LAorICAgICAgICBh
bGxvY2F0b3JfaW5kZXggKyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9h
bGxvY2F0b3JfaW5kaWNlcyhub2RlKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3JhbmdlIGRlY29tbWl0X3JhbmdlKQoreworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxs
b2NhdG9yX2luZGV4OworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRl
eDsKKyAgICBwYXNfcmFuZ2UgYWxsb2NhdG9yX3JhbmdlOworICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOworCisgICAgUEFTX0FTU0VSVChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChub2RlLCBjYWNoZSkp
OworCisgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7CisgICAgZW5kX2FsbG9jYXRv
cl9pbmRleCA9IGFsbG9jYXRvcl9pbmRleCArIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpOworICAgIGFsbG9jYXRvcl9yYW5nZSA9
IHBhc19yYW5nZV9jcmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0
X29mX2FsbG9jYXRvcihhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX29mZnNldF9vZl9hbGxvY2F0b3IoZW5kX2FsbG9jYXRvcl9pbmRleCkpOworCisgICAg
aWYgKCFwYXNfcmFuZ2Vfb3ZlcmxhcHMoYWxsb2NhdG9yX3JhbmdlLCBkZWNvbW1pdF9yYW5nZSkp
CisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBzY2F2ZW5nZXJfZGF0YSA9IChwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKikKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKwor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfcHJlcGFyZV90b19kZWNvbW1p
dChzY2F2ZW5nZXJfZGF0YSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkocmV2aXNpb24gMjg4
MzQ2KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIK
KyNpbmNsdWRlICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMTM5LDcg
KzE0MCw3IEBAIFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4
Ci1wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKK3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbm9kZSk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAogcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCkBAIC0xNzYsOCArMTc3LDggQEAgUEFTX0FQ
SSB2b2lkCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBuZXh0X25vZGUpOwogCi1QQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGUqIGNhY2hlKTsKIAogUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRvX2NhY2hlLApAQCAtMTg4LDYgKzE4OSwxNCBAQCBQ
QVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBw
YWdlX2xvY2tfbW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCitQ
QVNfQVBJIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0
ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSk7
CitQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9wcmVwYXJl
X3RvX2RlY29tbWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19y
YW5nZSBkZWNvbW1pdF9yYW5nZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbm9kZS5jCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5
KQpAQCAtNjksNyArNjksNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIHBhc190aHJl
YWRfCiAgICAgICAgIHJlc3VsdC0+bmV4dCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9m
aXJzdDsKIAogICAgICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+cGFnZV9sb2NrKTsK
LSAgICAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmxvZ19mbHVzaF9sb2NrKTsKKyAg
ICAgICAgcGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPnNjYXZlbmdlcl9sb2NrKTsKIAogICAg
ICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIlRMQyBwYWdlIGxvY2s6ICVw
XG4iLCAmcmVzdWx0LT5wYWdlX2xvY2spOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2Rl
LmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1
MCw3IEBAIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUgewogICAgIAogICAgIHBh
c19sb2NrIHBhZ2VfbG9jazsKICAgICAKLSAgICBwYXNfbG9jayBsb2dfZmx1c2hfbG9jazsKKyAg
ICBwYXNfbG9jayBzY2F2ZW5nZXJfbG9jazsKICAgICAKICAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlKiBjYWNoZTsKIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgJKHJldmlzaW9u
IDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxs
b2NhdGVfaW50cmluc2ljLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsOCBAQCBwYXNf
dHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jCiAKICAgICAgICAgYWxsb2NhdG9y
ID0gKHBhc19sb2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOwogCi0g
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8
fCBhbGxvY2F0b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgICAgIFBBU19U
RVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3It
Pm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
fHwgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jf
ZGVjb21taXR0ZWRfa2luZCk7CiAgICAgCiAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNp
YWxpemVkIG91dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lO
TElORSBhbmQKICAgICAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwpA
QCAtMjQ0LDcgKzI0NSw4IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5l
X28KICAgICBQQVNfVEVTVElOR19BU1NFUlQoCiAgICAgICAgICFhbGxvY2F0b3JfcmVzdWx0LmRp
ZF9zdWNjZWVkCiAgICAgICAgIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9z
aXplCi0gICAgICAgIHx8IGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9j
YXRvcl9jb25maWdfa2luZF91bnNlbGVjdGVkKTsKKyAgICAgICAgfHwgYWxsb2NhdG9yLT5jb25m
aWdfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQKKyAg
ICAgICAgfHwgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxv
Y2F0b3JfZGVjb21taXR0ZWRfa2luZCk7CiAgICAgCiAgICAgLyogVGhpcyBzaG91bGQgYmUgc3Bl
Y2lhbGl6ZWQgb3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNf
SU5MSU5FIGFuZAogICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29u
ZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxpdHlfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg4MzQ2KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAkod29ya2luZyBj
b3B5KQpAQCAtMTU1LDYgKzE1NSw3IEBAIFBBU19BUEkgdm9pZCBwYXNfdXRpbGl0eV9oZWFwX2Nv
bmZpZ19kdW0KICAgICAgICAgLmFsaWduZWRfYWxsb2NhdG9yID0gTlVMTCwgXAogICAgICAgICAu
YWxpZ25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29sID0gZmFsc2UsIFwKICAgICAg
ICAgLmRlYWxsb2NhdG9yID0gTlVMTCwgXAorICAgICAgICAubW1hcF9jYXBhYmlsaXR5ID0gcGFz
X21heV9tbWFwLCBcCiAgICAgICAgIC5yb290X2RhdGEgPSBOVUxMLCBcCiAgICAgICAgIC5wcmVw
YXJlX3RvX2VudW1lcmF0ZSA9IE5VTEwsIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeSA9IHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2Zvcl9lYWNoX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3V0aWxzLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MjEsNiArOTIxLDEwIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfaXNfZGl2aXNpYmxlX2J5KHUKIGVudW0gY3BwX2luaXRp
YWxpemF0aW9uX3QgeyBjcHBfaW5pdGlhbGl6YXRpb24gfTsKICNlbmRpZgogCisjZGVmaW5lIFBB
U19TWVNDQUxMKHgpIGRvIHsgXAorICAgIHdoaWxlICgoeCkgPT0gLTEgJiYgZXJybm8gPT0gRUFH
QUlOKSB7IH0gXAorfSB3aGlsZSAoMCkKKwogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8q
IFBBU19VVElMU19IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdmlydHVhbF9yYW5nZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmgJKHJldmlzaW9uIDI4ODM0NikKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBQQVNfVklSVFVBTF9SQU5HRV9ICiAKICNpbmNs
dWRlICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc19tbWFwX2NhcGFiaWxpdHkuaCIKICNpbmNs
dWRlICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtNDEsMjIgKzQy
LDI1IEBAIHN0cnVjdCBwYXNfdmlydHVhbF9yYW5nZSB7CiAgICAgdWludHB0cl90IGJlZ2luOwog
ICAgIHVpbnRwdHJfdCBlbmQ7CiAgICAgcGFzX2xvY2sqIGxvY2tfcHRyOworICAgIHBhc19tbWFw
X2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5OwogfTsKIAogc3RhdGljIGlubGluZSBwYXNfdmly
dHVhbF9yYW5nZSBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUodWludHB0cl90IGJlZ2luLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWlu
dHB0cl90IGVuZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2NrKiBsb2NrX3B0cikKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrKiBsb2NrX3B0ciwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHBhc192aXJ0dWFsX3Jh
bmdlIHJlc3VsdDsKICAgICByZXN1bHQuYmVnaW4gPSBiZWdpbjsKICAgICByZXN1bHQuZW5kID0g
ZW5kOwogICAgIHJlc3VsdC5sb2NrX3B0ciA9IGxvY2tfcHRyOworICAgIHJlc3VsdC5tbWFwX2Nh
cGFiaWxpdHkgPSBtbWFwX2NhcGFiaWxpdHk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3Rh
dGljIGlubGluZSBwYXNfdmlydHVhbF9yYW5nZSBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1w
dHkodm9pZCkKIHsKLSAgICByZXR1cm4gcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKDAsIDAsIE5V
TEwpOworICAgIHJldHVybiBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoMCwgMCwgTlVMTCwgcGFz
X21heV9ub3RfbW1hcCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3JhbmdlIHBhc192aXJ0dWFs
X3JhbmdlX2dldF9yYW5nZShwYXNfdmlydHVhbF9yYW5nZSByYW5nZSkKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVz
dHMuY3BwCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvTGFyZ2VTaGFyaW5nUG9vbFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0
Miw4IEBAIHZvaWQgdGVzdEdvb2RDb2FsZXNjZUVwb2NoVXBkYXRlKCkKICAgICBwYXNfaGVhcF9s
b2NrX2xvY2soKTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAg
ICAgcGFzX3JhbmdlX2NyZWF0ZSgxMCAqIFBHLCAyMCAqIFBHKSwKLSAgICAgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAg
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9u
X2xvY2ssCisgICAgICAgIHBhc19tYXlfbW1hcCk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2so
KTsKIAogICAgIGFzc2VydFN0YXRlKHsgUmFuZ2UoMCwgMTAgKiBQRywgcGFzX2NvbW1pdHRlZCwg
MTAgKiBQRywgMCksCkBAIC0xNTIsNyArMTUzLDggQEAgdm9pZCB0ZXN0R29vZENvYWxlc2NlRXBv
Y2hVcGRhdGUoKQogICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwogICAgIHBhc19sYXJnZV9zaGFy
aW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKDIwICogUEcsIDMw
ICogUEcpLAotICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFs
X3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2Nr
ZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgcGFzX21heV9tbWFwKTsK
ICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogCiAgICAgYXNzZXJ0U3RhdGUoeyBSYW5nZSgw
LCAxMCAqIFBHLCBwYXNfY29tbWl0dGVkLCAxMCAqIFBHLCAwKSwKQEAgLTE2NCw3ICsxNjYsOCBA
QCB2b2lkIHRlc3RHb29kQ29hbGVzY2VFcG9jaFVwZGF0ZSgpCiAgICAgQ0hFQ0socGFzX2xhcmdl
X3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgICAgICAgICAgICBwYXNfcmFu
Z2VfY3JlYXRlKDEwICogUEcsIDMwICogUEcpLAogICAgICAgICAgICAgICAmdHJhbnNhY3Rpb24s
Ci0gICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxf
cmFuZ2VfY29tbW9uX2xvY2spKTsKKyAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9p
c19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgICAgICAgcGFz
X21heV9tbWFwKSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAKICAgICBpZiAo
dmVyYm9zZSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRl
c3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTWVt
YWxpZ25UZXN0cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L01lbWFsaWduVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUg
IlRlc3RIYXJuZXNzLmgiCisKKyNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKworI2luY2x1ZGUgImJt
YWxsb2NfaGVhcC5oIgorI2luY2x1ZGUgImJtYWxsb2NfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRl
ICJwYXNfaGVhcC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIgor
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKKworbmFtZXNwYWNlIHsKKwordm9pZCB0
ZXN0TWVtYWxpZ25BcnJheShzaXplX3Qgc2l6ZSwgc2l6ZV90IHR5cGVTaXplLCBzaXplX3QgdHlw
ZUFsaWdubWVudCkKK3sKKyAgICBibWFsbG9jX3R5cGUgdHlwZSA9IEJNQUxMT0NfVFlQRV9JTklU
SUFMSVpFUihzdGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZVNpemUpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPih0
eXBlQWxpZ25tZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAidGVzdCIpOworICAgIHBhc19oZWFwX3JlZiBoZWFwUmVmID0gQk1BTExPQ19IRUFQ
X1JFRl9JTklUSUFMSVpFUigmdHlwZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3Owor
ICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICB2b2lk
KiBwdHIgPSBibWFsbG9jX2lzb19hbGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZSgmaGVhcFJl
Ziwgc2l6ZSk7CisgICAgQ0hFQ0socHRyKTsKKworICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92
aWV3X2Zvcl9vYmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksICZibWFsbG9j
X2hlYXBfY29uZmlnKTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9z
aXplX2RpcmVjdG9yeSh2aWV3KTsKKworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2hl
YXBfc2l6ZV9kaXJlY3RvcnlfZm9yX3NpemUoCisgICAgICAgICAgICAgICAgICAgICZibWFsbG9j
X2hlYXBfcmVmX2dldF9oZWFwKCZoZWFwUmVmKS0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAg
ICAgICAgICAgICBzaXplLAorICAgICAgICAgICAgICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklH
LAorICAgICAgICAgICAgICAgICAgICBOVUxMKSwKKyAgICAgICAgICAgICAgICBkaXJlY3Rvcnkp
OworfQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFBBU19FTkFCTEVf
Qk1BTExPQworCit2b2lkIGFkZE1lbWFsaWduVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1B
TExPQworICAgIEFERF9URVNUKHRlc3RNZW1hbGlnbkFycmF5KDE1MjMsIDE2LCA0KSk7CisgICAg
QUREX1RFU1QodGVzdE1lbWFsaWduQXJyYXkoMTUyMywgMTI4LCAxMjgpKTsKKyNlbmRpZiAvLyBQ
QVNfRU5BQkxFX0JNQUxMT0MKK30KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90
ZXN0L1RMQ0RlY29tbWl0VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UTENEZWNvbW1pdFRlc3RzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRUZXN0cy5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0ODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKKworI2lmIFBBU19F
TkFCTEVfQk1BTExPQworCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisjaW5jbHVkZSAiYm1h
bGxvY19oZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSAicGFz
X2FsbF9oZWFwcy5oIgorI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIK
KyNpbmNsdWRlICJwYXNfYml0dmVjdG9yLmgiCisjaW5jbHVkZSAicGFzX2NvbW1pdHRlZF9wYWdl
c192ZWN0b3IuaCIKKyNpbmNsdWRlICJwYXNfZ2V0X2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfZ2V0
X3BhZ2VfYmFzZS5oIgorI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKKyNpbmNsdWRlICJwYXNf
c2NhdmVuZ2VyLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIK
KyNpbmNsdWRlIDx0aHJlYWQ+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSB7
CisKK3NpemVfdCBudW1Db21taXR0ZWRQYWdlc0luVExDKCkKK3sKKyAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAg
IENIRUNLKGNhY2hlKTsKKyAgICByZXR1cm4gcGFzX2NvdW50X2NvbW1pdHRlZF9wYWdlcygKKyAg
ICAgICAgY2FjaGUsCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxs
b2NhdG9yX2luZGV4X2NhcGFjaXR5KAorICAgICAgICAgICAgY2FjaGUtPmFsbG9jYXRvcl9pbmRl
eF9jYXBhY2l0eSksCisgICAgICAgICZhbGxvY2F0aW9uQ29uZmlnKTsKK30KKwordm9pZCB0ZXN0
VExDRGVjb21taXQodW5zaWduZWQgbnVtSGVhcHMsCisgICAgICAgICAgICAgICAgICAgICBmdW5j
dGlvbjxib29sKHVuc2lnbmVkKT4gc2hvdWxkU3RvcEFsbG9jYXRvckF0SW5kZXgsCisgICAgICAg
ICAgICAgICAgICAgICBib29sIGNvbW1pdFdpdGhGcmVlLAorICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgbnVtQ29tbWl0dGVkUGFnZXNJbml0aWFsbHksCisgICAgICAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBudW1Db21taXR0ZWRQYWdlc0FmdGVyRGVjb21taXQsCisgICAgICAgICAgICAg
ICAgICAgICB1bnNpZ25lZCBudW1Db21taXR0ZWRQYWdlc0FmdGVyUmVjb21taXQpCit7CisgICAg
cGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRf
c3RvcF9jb3VudF9mb3Jfc3VzcGVuZCA9IDEwMDsgLyogcmVxdWVzdF9zdG9wIHNob3VsZCBub3Qg
YWN0dWFsbHkgc3RvcC4gKi8KKworICAgIHBhc19oZWFwX3JlZiogaGVhcHMgPSBuZXcgcGFzX2hl
YXBfcmVmW251bUhlYXBzXTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IG51bUhlYXBzOyBpbmRl
eC0tOykKKyAgICAgICAgaGVhcHNbaW5kZXhdID0gQk1BTExPQ19IRUFQX1JFRl9JTklUSUFMSVpF
UihuZXcgYm1hbGxvY190eXBlKEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUig0MiwgMiwgInRlc3Qi
KSkpOworCisgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4
ID0gMDsgaW5kZXggPCBudW1IZWFwczsgKytpbmRleCkgeworICAgICAgICB2b2lkKiBwdHIgPSBi
bWFsbG9jX2lzb19hbGxvY2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAgQ0hFQ0socHRyKTsK
KyAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJ
RyksCisgICAgICAgICAgICAgICAgICAgIGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMg
KyBpbmRleCkpOworICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhwdHIpOworICAgIH0KKworICAg
IHVuc2lnbmVkKiBoYXNWaWV3Q2FjaGUgPSBuZXcgdW5zaWduZWRbUEFTX0JJVFZFQ1RPUl9OVU1f
V09SRFMobnVtSGVhcHMpXTsKKyAgICB1bnNpZ25lZCogaGFzQWxsb2NhdG9yID0gbmV3IHVuc2ln
bmVkW1BBU19CSVRWRUNUT1JfTlVNX1dPUkRTKG51bUhlYXBzKV07CisKKyAgICBmb3IgKHNpemVf
dCBpbmRleCA9IG51bUhlYXBzOyBpbmRleC0tOykgeworICAgICAgICBwYXNfYml0dmVjdG9yX3Nl
dChoYXNWaWV3Q2FjaGUsIGluZGV4LCBmYWxzZSk7CisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0
KGhhc0FsbG9jYXRvciwgaW5kZXgsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwYXNfaGVhcF9sb2Nr
X2xvY2soKTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAgIENIRUNLKGNhY2hlKTsKKyAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dE5vZGU7CisgICAgZm9yIChQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXROb2RlKSkgeworICAgICAg
ICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvckluZGV4OworICAgICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJEYXRhOworICAgICAgICBwYXNfc2Vn
cmVnYXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICBwYXNfaGVhcCogaGVh
cDsKKworICAgICAgICBhbGxvY2F0b3JJbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dE5vZGUpOworCisgICAg
ICAgIGlmIChhbGxvY2F0b3JJbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2Jv
dW5kKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChsYXlvdXROb2RlLCBjYWNoZSkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBzY2F2ZW5nZXJEYXRhID0gc3RhdGljX2Nhc3Q8
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSo+KAorICAgICAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2Nh
dG9ySW5kZXgpKTsKKworICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkobGF5b3V0Tm9kZSk7CisgICAgICAgIGhlYXAgPSBw
YXNfaGVhcF9mb3Jfc2VncmVnYXRlZF9oZWFwKGRpcmVjdG9yeS0+aGVhcCk7CisKKyAgICAgICAg
aWYgKCFoZWFwLT5oZWFwX3JlZikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlm
IChoZWFwLT5oZWFwX3JlZiA+PSBoZWFwcyAmJiBoZWFwLT5oZWFwX3JlZiA8IGhlYXBzICsgbnVt
SGVhcHMpIHsKKyAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGhlYXAtPmhlYXBfcmVmIC0gaGVh
cHM7CisKKyAgICAgICAgICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3JlcHJlc2VudHNfYWxsb2NhdG9yKGxheW91dE5vZGUpKQorICAgICAgICAgICAgICAgIHBhc19i
aXR2ZWN0b3Jfc2V0KGhhc0FsbG9jYXRvciwgaW5kZXgsIHRydWUpOworICAgICAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3JlcHJlc2VudHNfdmlld19jYWNoZShsYXlvdXROb2RlKSk7CisgICAgICAgICAg
ICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoaGFzVmlld0NhY2hlLCBpbmRleCwgdHJ1ZSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIENIRUNLKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2lzX3N0b3BwZWQoc2NhdmVuZ2VyRGF0YSkpOworICAgICAgICB9CisgICAgfQor
ICAgIHBhc19oZWFwX2xvY2tfdW5sb2NrKCk7CisKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IG51
bUhlYXBzOyBpbmRleC0tOykgeworICAgICAgICBDSEVDSyhwYXNfYml0dmVjdG9yX2dldChoYXNW
aWV3Q2FjaGUsIGluZGV4KSk7CisgICAgICAgIENIRUNLKHBhc19iaXR2ZWN0b3JfZ2V0KGhhc0Fs
bG9jYXRvciwgaW5kZXgpKTsKKyAgICB9CisKKyAgICBDSEVDS19FUVVBTChudW1Db21taXR0ZWRQ
YWdlc0luVExDKCksIG51bUNvbW1pdHRlZFBhZ2VzSW5pdGlhbGx5KTsKKworICAgIHBhc19oZWFw
X2xvY2tfbG9jaygpOworICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCk7CisgICAgQ0hFQ0soY2FjaGUpOworICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9M
QVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0Tm9kZSkpIHsKKyAgICAgICAgcGFzX2FsbG9jYXRv
cl9pbmRleCBhbGxvY2F0b3JJbmRleDsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YSogc2NhdmVuZ2VyRGF0YTsKKworICAgICAgICBhbGxvY2F0b3JJbmRleCA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5l
cmljKGxheW91dE5vZGUpOworCisgICAgICAgIGlmIChhbGxvY2F0b3JJbmRleCA+PSBjYWNoZS0+
YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAg
ICAgc2NhdmVuZ2VyRGF0YSA9IHN0YXRpY19jYXN0PHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqPigKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXRvcl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvckluZGV4KSk7CisKKyAgICAgICAgaWYg
KHNob3VsZFN0b3BBbGxvY2F0b3JBdEluZGV4KGFsbG9jYXRvckluZGV4KSkKKyAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcChzY2F2ZW5nZXJEYXRhLCBw
YXNfbG9ja19sb2NrX21vZGVfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgfQorCisgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVx
dWVzdF9zdG9wX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2RlYWxsb2NhdG9yX3NjYXZlbmdlX25vX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgcGFzX2hlYXBfbG9ja191bmxvY2so
KTsKKworICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgbnVtQ29tbWl0
dGVkUGFnZXNBZnRlckRlY29tbWl0KTsKKworICAgIGlmIChjb21taXRXaXRoRnJlZSkgeworICAg
ICAgICBmb3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHMpCisgICAgICAgICAgICBibWFsbG9jX2Rl
YWxsb2NhdGUob2JqZWN0KTsKKyAgICB9CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3No
cmluaygKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCksCisgICAgICAg
IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5k
ZXggPCBudW1IZWFwczsgKytpbmRleCkgeworICAgICAgICB2b2lkKiBwdHIgPSBibWFsbG9jX2lz
b19hbGxvY2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAgQ0hFQ0socHRyKTsKKyAgICAgICAg
Q0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJRyksCisgICAg
ICAgICAgICAgICAgICAgIGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMgKyBpbmRleCkp
OworICAgICAgICBpZiAoY29tbWl0V2l0aEZyZWUpCisgICAgICAgICAgICBDSEVDS19FUVVBTChw
dHIsIG9iamVjdHNbaW5kZXhdKTsKKyAgICB9CisKKyAgICBDSEVDS19FUVVBTChudW1Db21taXR0
ZWRQYWdlc0luVExDKCksIG51bUNvbW1pdHRlZFBhZ2VzQWZ0ZXJSZWNvbW1pdCk7Cit9CisKK3Zv
aWQgdGVzdENoYW9zVGhlbkRlY29tbWl0KHVuc2lnbmVkIG51bUhlYXBzLCB1bnNpZ25lZCB0eXBl
U2l6ZSwgdW5zaWduZWQgbWF4T2JqZWN0c0F0QVRpbWUsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICB1bnNpZ25lZCBtYXhGcm9tU2FtZUhlYXAsIHNpemVfdCBtYXhTaXplLCBzaXplX3QgY291
bnQpCit7CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAK
KyAgICBwYXNfaGVhcF9yZWYqIGhlYXBSZWZzID0gbmV3IHBhc19oZWFwX3JlZltudW1IZWFwc107
CisgICAgZm9yICh1bnNpZ25lZCBpbmRleCA9IG51bUhlYXBzOyBpbmRleC0tOykgeworICAgICAg
ICBoZWFwUmVmc1tpbmRleF0gPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKAorICAgICAg
ICAgICAgbmV3IGJtYWxsb2NfdHlwZShCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIodHlwZVNpemUs
IDEsICJ0ZXN0IikpKTsKKyAgICB9CisgICAgCisgICAgdmVjdG9yPHZlY3Rvcjx2b2lkKj4+IG9i
amVjdHM7CisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisKKyAgICBwYXNfaGVhcF9yZWYqIGhl
YXBSZWYgPSBudWxscHRyOworCisgICAgYXV0byBzZWxlY3ROZXh0SGVhcCA9IFsmXSAoKSB7Cisg
ICAgICAgIGhlYXBSZWYgPSBoZWFwUmVmcyArIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIobnVt
SGVhcHMpOworICAgIH07CisKKyAgICBzZWxlY3ROZXh0SGVhcCgpOworCisgICAgd2hpbGUgKGNv
dW50LS0pIHsKKyAgICAgICAgaWYgKCFvYmplY3RzLmVtcHR5KCkKKyAgICAgICAgICAgICYmICh0
b3RhbFNpemUgPj0gbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGRldGVybWluaXN0aWNSYW5k
b21OdW1iZXIoMikpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGRldGVybWluaXN0
aWNSYW5kb21OdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iamVjdHMuc2l6ZSgpKSk7Cisg
ICAgICAgICAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHNUb0ZyZWUgPSBzdGQ6Om1vdmUob2JqZWN0
c1tpbmRleF0pOworICAgICAgICAgICAgb2JqZWN0c1tpbmRleF0gPSBzdGQ6Om1vdmUob2JqZWN0
cy5iYWNrKCkpOworICAgICAgICAgICAgb2JqZWN0cy5wb3BfYmFjaygpOworICAgICAgICAgICAg
Zm9yICh2b2lkKiBvYmplY3QgOiBvYmplY3RzVG9GcmVlKSB7CisgICAgICAgICAgICAgICAgc2l6
ZV90IHNpemUgPSBibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUob2JqZWN0KTsKKyAgICAgICAg
ICAgICAgICBDSEVDS19HUkVBVEVSX0VRVUFMKHRvdGFsU2l6ZSwgc2l6ZSk7CisgICAgICAgICAg
ICAgICAgdG90YWxTaXplIC09IHNpemU7CisgICAgICAgICAgICAgICAgYm1hbGxvY19kZWFsbG9j
YXRlKG9iamVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg
ICB1bnNpZ25lZCBudW1PYmplY3RzTm93ID0gZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcihtYXhP
YmplY3RzQXRBVGltZSkgKyAxOworICAgICAgICAgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzTm93
OworICAgICAgICAgICAgd2hpbGUgKG51bU9iamVjdHNOb3ctLSkgeworICAgICAgICAgICAgICAg
IGlmICghZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcihtYXhGcm9tU2FtZUhlYXApKQorICAgICAg
ICAgICAgICAgICAgICBzZWxlY3ROZXh0SGVhcCgpOworICAgICAgICAgICAgICAgIHZvaWQqIHB0
ciA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlKGhlYXBSZWYpOworICAgICAgICAgICAgICAgIENIRUNL
KHB0cik7CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1B
TExPQ19IRUFQX0NPTkZJRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm1hbGxvY19o
ZWFwX3JlZl9nZXRfaGVhcChoZWFwUmVmKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0c05vdy5w
dXNoX2JhY2socHRyKTsKKyAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gYm1hbGxvY19nZXRf
YWxsb2NhdGlvbl9zaXplKHB0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvYmplY3Rz
LnB1c2hfYmFjayhzdGQ6Om1vdmUob2JqZWN0c05vdykpOworICAgICAgICB9CisgICAgfQorCisg
ICAgcGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
Y291dCA8PCAiUnVubmluZyBzY2F2ZW5nZXIuXG4iOworICAgIAorICAgIHBhc19zY2F2ZW5nZXJf
cnVuX3N5bmNocm9ub3VzbHlfbm93KCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgY291
dCA8PCAiRG9uZSBydW5uaW5nIHNjYXZlbmdlci5cbiI7CisKKyAgICBDSEVDS19FUVVBTChudW1D
b21taXR0ZWRQYWdlc0luVExDKCksCisgICAgICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX3Bv
d2VyX29mXzIoCisgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zm
c2V0X29mX2FsbG9jYXRvcihQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElD
RVMpLAorICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpID4+
IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKSk7CisKKyAgICBwYXNfaGVhcF9sb2Nr
X2xvY2soKTsKKyAgICBwYXNfYWxsX2hlYXBzX3ZlcmlmeV9pbl9zdGVhZHlfc3RhdGUoKTsKKyAg
ICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOworfQorCit2ZWN0b3I8dm9pZCo+IHByZXBhcmVUb1Rl
c3RETENEZWNvbW1pdFRoZW5TdHVmZih1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfaGVh
cF9yZWYqIGhlYXBzID0gbmV3IHBhc19oZWFwX3JlZltudW1IZWFwc107CisgICAgZm9yIChzaXpl
X3QgaW5kZXggPSBudW1IZWFwczsgaW5kZXgtLTspCisgICAgICAgIGhlYXBzW2luZGV4XSA9IEJN
QUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgICAgICBuZXcgYm1hbGxvY190eXBl
KEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUig1MTIsIDUxMiwgInRlc3QiKSkpOworCisgICAgdmVj
dG9yPHZvaWQqPiBvYmplY3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBu
dW1IZWFwczsgKytpbmRleCkgeworICAgICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlID0gbnVsbHB0
cjsKKyAgICAgICAgZm9yIChzaXplX3Qgb2JqZWN0SW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdl
X251bWJlcl9vZl9vYmplY3RzKAorICAgICAgICAgICAgICAgICA1MTIsIEJNQUxMT0NfSEVBUF9D
T05GSUcuc21hbGxfc2VncmVnYXRlZF9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVz
aXZlX3JvbGUpOworICAgICAgICAgICAgIG9iamVjdEluZGV4LS07KSB7CisgICAgICAgICAgICB2
b2lkKiBwdHIgPSBibWFsbG9jX2lzb19hbGxvY2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAg
ICAgIENIRUNLKHB0cik7CisgICAgICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRy
LCBCTUFMTE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJtYWxsb2Nf
aGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMgKyBpbmRleCkpOworICAgICAgICAgICAgcGFzX3BhZ2Vf
YmFzZSogbXlQYWdlID0gcGFzX2dldF9wYWdlX2Jhc2UocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklH
KTsKKyAgICAgICAgICAgIGlmICghcGFnZSkgeworICAgICAgICAgICAgICAgIG9iamVjdHMucHVz
aF9iYWNrKHB0cik7CisgICAgICAgICAgICAgICAgcGFnZSA9IG15UGFnZTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKG15UGFnZSwgcGFnZSk7CisgICAg
ICAgICAgICBDSEVDS19FUVVBTChwYXNfcGFnZV9iYXNlX2dldF9raW5kKG15UGFnZSksIHBhc19z
bWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9wYWdlX2tpbmQpOworICAgICAgICB9CisgICAgfQor
CisgICAgcmV0dXJuIG9iamVjdHM7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ry
b3lJbXBsKHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHZlY3Rvcjx2b2lkKj4gb2JqZWN0cyA9
IHByZXBhcmVUb1Rlc3RETENEZWNvbW1pdFRoZW5TdHVmZihudW1IZWFwcyk7CisKKyAgICBmb3Ig
KHZvaWQqIG9iamVjdCA6IG9iamVjdHMpCisgICAgICAgIGJtYWxsb2NfZGVhbGxvY2F0ZShvYmpl
Y3QpOworCisgICAgQ0hFQ0tfR1JFQVRFUihudW1Db21taXR0ZWRQYWdlc0luVExDKCksIDEpOwor
ICAgIENIRUNLKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpLT5kZWFsbG9jYXRpb25f
bG9nX2luZGV4KTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxs
b2NhdG9yX3NjYXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisKKyAg
ICBDSEVDS19FUVVBTChudW1Db21taXR0ZWRQYWdlc0luVExDKCksIDEpOworICAgIENIRUNLKHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4KTsK
K30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveSh1bnNpZ25lZCBudW1IZWFwcykK
K3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQoKTsKKworICAgIHRlc3RUTENEZWNvbW1pdFRo
ZW5EZXN0cm95SW1wbChudW1IZWFwcyk7CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rl
c3Ryb3kocGFzX2xvY2tfaXNfbm90X2hlbGQpOworfQorCit2b2lkIHRlc3RUTENEZWNvbW1pdFRo
ZW5EZXN0cm95SW5UaHJlYWQodW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAgcGFzX3NjYXZlbmdl
cl9zdXNwZW5kKCk7CisKKyAgICB0aHJlYWQgbXlUaHJlYWQgPSB0aHJlYWQoWyZdICgpIHsKKyAg
ICAgICAgdGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJbXBsKG51bUhlYXBzKTsKKyAgICB9KTsK
KworICAgIG15VGhyZWFkLmpvaW4oKTsKK30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVuRmx1
c2godW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAgcGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisK
KyAgICB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwobnVtSGVhcHMpOworICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3RyeV9nZXQoKSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworfQorCit2b2lkIHRlc3RU
TENEZWNvbW1pdFRoZW5EZWFsbG9jYXRlKHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHBhc19z
Y2F2ZW5nZXJfc3VzcGVuZCgpOworCisgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzID0gcHJlcGFy
ZVRvVGVzdERMQ0RlY29tbWl0VGhlblN0dWZmKG51bUhlYXBzKTsKKworICAgIENIRUNLX0dSRUFU
RVIobnVtQ29tbWl0dGVkUGFnZXNJblRMQygpLCAxKTsKKyAgICBDSEVDSyghcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgpOworCisgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vf
c3RvcF9hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFs
bG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKKworICAgIGZvciAodm9pZCogb2JqZWN0IDog
b2JqZWN0cykKKyAgICAgICAgYm1hbGxvY19kZWFsbG9jYXRlKG9iamVjdCk7CisgICAgQ0hFQ0so
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgp
OworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworfQor
Cit2b2lkIHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxpbmVJbXBsKCkKK3sKKyAgICBzdGF0
aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworCisgICAgaWYgKHZlcmJvc2UpIHsK
KyAgICAgICAgY291dCA8PCAiVExDID0gIiA8PCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9n
ZXQoKSA8PCAiXG4iOworICAgICAgICBjb3V0IDw8ICJjYW4gc2V0IFRMQyA9ICIgPDwgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9jYW5fc2V0KCkgPDwgIlxuIjsKKyAgICB9CisKKyAgICBwYXNfaGVh
cF9yZWYgaGVhcFJlZiA9IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgIG5l
dyBibWFsbG9jX3R5cGUoQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDMyLCAxLCAidGVzdCIpKSk7
CisKKyAgICB2b2lkKiBwdHIgPSBibWFsbG9jX2lzb19hbGxvY2F0ZSgmaGVhcFJlZik7CisgICAg
Q0hFQ0socHRyKTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcgPSBwYXNfc2VncmVnYXRl
ZF92aWV3X2Zvcl9vYmplY3QoCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90Pihw
dHIpLCAmYm1hbGxvY19oZWFwX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5
KHZpZXcpOworCisgICAgYm9vbCBmb3VuZEluQmFzZWxpbmVUYWJsZSA9IGZhbHNlOworICAgIHVu
c2lnbmVkIGZvdW5kSW5kZXggPSBVSU5UX01BWDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBwYXNf
YmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlX2JvdW5kOyBpLS07KSB7CisgICAgICAgIGlmIChwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9y
X3RhYmxlW2ldLnUuYWxsb2NhdG9yLnZpZXcpCisgICAgICAgICAgICA9PSBkaXJlY3RvcnkpIHsK
KyAgICAgICAgICAgIGZvdW5kSW5CYXNlbGluZVRhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZv
dW5kSW5kZXggPSBpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAg
Q0hFQ0soZm91bmRJbkJhc2VsaW5lVGFibGUpOworCisgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRv
cl90YWJsZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24p
OworCisgICAgQ0hFQ0tfRVFVQUwocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZVtmb3VuZElu
ZGV4XS51LmFsbG9jYXRvci5zY2F2ZW5nZXJfZGF0YS5raW5kLAorICAgICAgICAgICAgICAgIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZCk7CisKKyAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgY291dCA8PCAiVExDID0gIiA8PCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X3RyeV9nZXQoKSA8PCAiXG4iOworCisgICAgcHRyID0gYm1hbGxvY19pc29fYWxsb2NhdGUoJmhl
YXBSZWYpOworICAgIENIRUNLKHB0cik7Cit9CisKK3ZvaWQgdGVzdEFsbG9jYXRlRnJvbVN0b3Bw
ZWRCYXNlbGluZSgpCit7CisgICAgcGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisgICAgdGVzdEFs
bG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZUltcGwoKTsKK30KKworcHRocmVhZF9rZXlfdCB0ZXN0
QWxsb2NhdGVGcm9tU3RvcHBlZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXk7CisK
K3ZvaWQgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0
aW9uRGVzdHJ1Y3Qodm9pZCopCit7CisgICAgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGlu
ZUltcGwoKTsKKyAgICBpbnQgcmVzdWx0ID0gcHRocmVhZF9zZXRzcGVjaWZpYyh0ZXN0QWxsb2Nh
dGVGcm9tU3RvcHBlZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXksICJoZWxsbyIp
OworICAgIENIRUNLX0VRVUFMKHJlc3VsdCwgMCk7Cit9CisKK3ZvaWQgdGVzdEFsbG9jYXRlRnJv
bVN0b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0aW9uKCkKK3sKKyAgICBwYXNfc2Nh
dmVuZ2VyX3N1c3BlbmQoKTsKKworICAgIHRocmVhZCBteVRocmVhZChbJl0gKCkgeworICAgICAg
ICBpbnQgcmVzdWx0ID0gcHRocmVhZF9rZXlfY3JlYXRlKCZ0ZXN0QWxsb2NhdGVGcm9tU3RvcHBl
ZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXksCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZUR1cmlu
Z1RocmVhZERlc3RydWN0aW9uRGVzdHJ1Y3QpOworICAgICAgICBDSEVDS19FUVVBTChyZXN1bHQs
IDApOworICAgICAgICByZXN1bHQgPSBwdGhyZWFkX3NldHNwZWNpZmljKHRlc3RBbGxvY2F0ZUZy
b21TdG9wcGVkQmFzZWxpbmVEdXJpbmdUaHJlYWREZXN0cnVjdGlvbktleSwgImhlbGxvIik7Cisg
ICAgICAgIENIRUNLX0VRVUFMKHJlc3VsdCwgMCk7CisgICAgfSk7CisKKyAgICBteVRocmVhZC5q
b2luKCk7Cit9CisKK30gLy8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VO
QUJMRV9CTUFMTE9DCisKK3ZvaWQgYWRkVExDRGVjb21taXRUZXN0cygpCit7CisjaWYgUEFTX0VO
QUJMRV9CTUFMTE9DCisgICAgeworICAgICAgICBEZWNvbW1pdFplcm9GaWxsIGRlY29tbWl0WmVy
b0ZpbGw7CisgICAgCisgICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCisgICAgICAgICAgICAi
cmFnZS10bGNzIiwKKyAgICAgICAgICAgIFtdICgpIHsKKyAgICAgICAgICAgICAgICBibWFsbG9j
X3R5cGVkX3J1bnRpbWVfY29uZmlnLmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2Vs
aW5lX2FsbG9jYXRvcnMgPSAwOworICAgICAgICAgICAgICAgIGJtYWxsb2NfdHlwZWRfcnVudGlt
ZV9jb25maWcuYmFzZS5kaXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IDA7
CisgICAgICAgICAgICAgICAgYm1hbGxvY190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLnZpZXdf
Y2FjaGVfY2FwYWNpdHlfZm9yX29iamVjdF9zaXplID0KKyAgICAgICAgICAgICAgICAgICAgcGFz
X2hlYXBfcnVudGltZV9jb25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5OworICAg
ICAgICAgICAgfSk7CisgICAgCisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAw
MCwgW10gKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA8IDEwMDAwOyB9LCBmYWxzZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgMzAwLCAzMDQpKTsKKyAgICAg
ICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsg
cmV0dXJuIGluZGV4IDwgMTAwMDA7IH0sIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA1ODgsIDMwMCwgMzA0KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1p
dCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA+IDEwMDAwOyB9LCBm
YWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgNiwgMzA0KSk7Cisg
ICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4
KSB7IHJldHVybiBpbmRleCA+IDEwMDAwOyB9LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgNTg4LCA2LCAzMDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29t
bWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgMTAwMDAwOyB9
LCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgMjU2LCAzMDQp
KTsKKyAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAodW5zaWduZWQg
aW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgMTAwMDAwOyB9LCB0cnVlLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgNTg4LCAyNTYsIDMwNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0
VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPiAx
MDAwMDA7IH0sIGZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTg4LCA1
MCwgMzA0KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVu
c2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA+IDEwMDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgNTAsIDMwNCkpOworICAgICAgICBBRERfVEVT
VCh0ZXN0Q2hhb3NUaGVuRGVjb21taXQoMTAwMDAsIDE2LCAxMDAwLCAxMDAsIDQwMDAwMDAwMCwg
NTAwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwg
MTYsIDEwMDAsIDEwMDAwLCA0MDAwMDAwMDAsIDEwMDAwMDApKTsKKyAgICAgICAgQUREX1RFU1Qo
dGVzdENoYW9zVGhlbkRlY29tbWl0KDEwMDAwLCA1MTIsIDEwLCA1MCwgNTAwMDAwMDAwLCAzMDAw
MDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwgNDgs
IDEwMCwgMTAwMCwgNjAwMDAwMDAwLCAzMDAwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RD
aGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwgNDgsIDEwMCwgMTAwMDAsIDYwMDAwMDAwMCwgMzAwMDAw
MCkpOworCisgICAgICAgIHsKKyAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1
c2l2ZXM7CisgICAgICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXRUaGVuRGVhbGxvY2F0
ZSg2NjY2KSk7CisgICAgICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXRUaGVuRmx1c2go
NjY2NikpOworICAgICAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3ko
NjY2NikpOworICAgICAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJ
blRocmVhZCg2NjY2KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIEZvcmNl
QmFzZWxpbmVzIGZvcmNlQmFzZWxpbmVzOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVG
cm9tU3RvcHBlZEJhc2VsaW5lKCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVGcm9t
U3RvcHBlZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb24oKSk7CisgICAgfQorI2VuZGlm
IC8vIFBBU19FTkFCTEVfQk1BTExPQworfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODgzNDYpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNjMsNiArMjYzLDE3IEBAIERpc2FibGVQYWdlQmFsYW5jaW5nOjpEaXNhYmxlUGFnZUJhbGFu
Y2kKIHsKIH0KIAorRGVjb21taXRaZXJvRmlsbDo6RGVjb21taXRaZXJvRmlsbCgpCisgICAgOiBU
ZXN0U2NvcGUoCisgICAgICAgICJkZWNvbW1pdC16ZXJvLWZpbGwiLAorICAgICAgICBbXSAoKSB7
CisjaWYgUEFTX09TKERBUldJTikKKyAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1p
dF96ZXJvX2ZpbGwgPSB0cnVlOworI2VuZGlmIC8vIFBBU19PUyhEQVJXSU4pCisgICAgICAgIH0p
Cit7Cit9CisKIG5hbWVzcGFjZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CkBAIC0zNTgs
MTAgKzM2OSwxMiBAQCB2b2lkIGFkZExhcmdlRnJlZUhlYXBUZXN0cygpOwogdm9pZCBhZGRMYXJn
ZVNoYXJpbmdQb29sVGVzdHMoKTsKIHZvaWQgYWRkTG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxl
VGVzdHMoKTsKIHZvaWQgYWRkTG90c09mSGVhcHNBbmRUaHJlYWRzVGVzdHMoKTsKK3ZvaWQgYWRk
TWVtYWxpZ25UZXN0cygpOwogdm9pZCBhZGRNaW5IZWFwVGVzdHMoKTsKIHZvaWQgYWRkUEdNVGVz
dHMoKTsKIHZvaWQgYWRkUmFjZVRlc3RzKCk7CiB2b2lkIGFkZFJlZEJsYWNrVHJlZVRlc3RzKCk7
Cit2b2lkIGFkZFRMQ0RlY29tbWl0VGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKIHZvaWQg
YWRkVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMoKTsKIHZvaWQgYWRkVXRpbHNU
ZXN0cygpOwpAQCAtNzIzLDEwICs3MzYsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh
cmd2KQogICAgIEFERF9TVUlURShMYXJnZVNoYXJpbmdQb29sKTsKICAgICBBRERfU1VJVEUoTG9j
a0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlKTsKICAgICBBRERfU1VJVEUoTG90c09mSGVhcHNBbmRU
aHJlYWRzKTsKKyAgICBBRERfU1VJVEUoTWVtYWxpZ24pOwogICAgIEFERF9TVUlURShNaW5IZWFw
KTsKICAgICBBRERfU1VJVEUoUEdNKTsKICAgICBBRERfU1VJVEUoUmFjZSk7CiAgICAgQUREX1NV
SVRFKFJlZEJsYWNrVHJlZSk7CisgICAgQUREX1NVSVRFKFRMQ0RlY29tbWl0KTsKICAgICBBRERf
U1VJVEUoVFNEKTsKICAgICBBRERfU1VJVEUoVXRpbHMpOwogICAgIApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHJldmlzaW9uIDI4ODM0NikK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIy
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtODQsNiArODQsMTIgQEAgaW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8
PChzdGQ6Om9zdAogICAgIHJldHVybiBvdXQ7CiB9CiAKK2lubGluZSBzdGQ6Om9zdHJlYW0mIG9w
ZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvdXQsIHBhc19wYWdlX2tpbmQga2luZCkKK3sKKyAgICBv
dXQgPDwgcGFzX3BhZ2Vfa2luZF9nZXRfc3RyaW5nKGtpbmQpOworICAgIHJldHVybiBvdXQ7Cit9
CisKICNkZWZpbmUgQ0hFQ0soZXhwcmVzc2lvbikgZG8geyBcCiAgICAgICAgIGlmICgoZXhwcmVz
c2lvbikpIFwKICAgICAgICAgICAgIGJyZWFrOyBcCkBAIC0yOTUsNiArMzAxLDExIEBAIHB1Ymxp
YzoKICAgICBEaXNhYmxlUGFnZUJhbGFuY2luZygpOwogfTsKIAorY2xhc3MgRGVjb21taXRaZXJv
RmlsbCA6IHB1YmxpYyBUZXN0U2NvcGUgeworcHVibGljOgorICAgIERlY29tbWl0WmVyb0ZpbGwo
KTsKK307CisKIGJvb2wgaGFzU2NvcGUoY29uc3Qgc3RkOjpzdHJpbmcmIGZpbHRlcik7CiAKIHZv
aWQgZHVtcE9iamVjdFNldChjb25zdCBzdGQ6OnNldDx2b2lkKj4mIG9iamVjdHMpOwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2Nh
dGlvblRlc3RzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rl
c3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCShyZXZpc2lvbiAyODgz
NDYpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhl
YXBBbGxvY2F0aW9uVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjA5LDcgKzMyMDksNyBA
QCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICB7CiAgICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUo
CiAgICAgICAgICAgICAib25seS1zbWFsbCIsCi0gICAgICAgICAgICBbJl0gKCkgeworICAgICAg
ICAgICAgW10gKCkgewogICAgICAgICAgICAgICAgIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ192YXJpYW50X2lzX2VuYWJsZWRfb3ZlcnJpZGUgPSBmYWxzZTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICAKQEAgLTMyMTksNyArMzIxOSw3IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQog
ICAgIHsKICAgICAgICAgVGVzdFNjb3BlIHRlc3RTY29wZSgKICAgICAgICAgICAgICJzbWFsbC1h
bmQtbWVkaXVtIiwKLSAgICAgICAgICAgIFsmXSAoKSB7CisgICAgICAgICAgICBbXSAoKSB7CiAg
ICAgICAgICAgICB9KTsKICAgICAgICAgCiAgICAgICAgIGFkZEFsbFRlc3RzSW1wbCgpOwo=
</data>
<flag name="review"
          id="475921"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
    <flag name="commit-queue"
          id="475809"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451556</attachid>
            <date>2022-02-10 09:49:06 -0800</date>
            <delta_ts>2022-02-10 12:04:10 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>291080</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0OSBAQAorMjAyMi0wMS0xOCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIGl0IHNob3VsZCBi
ZSBwb3NzaWJsZSB0byBkZWNvbW1pdCB1bnVzZWQgcGFydHMgb2YgYSB0aHJlYWRfbG9jYWxfY2Fj
aGUgKHVwZGF0ZSB0byA0MzQ0NjViZmI4ZTBjMjg1ZDY3NjNjZjZhYTBlMDQ5ODIxOTlmODI0KQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBMaWJwYXMgdXNl
cyBUTENzICh0aHJlYWRfbG9jYWxfY2FjaGVzKSBmb3IgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0
aW9uLiBFYWNoIHNpemUgY2xhc3MgaW4gZWFjaCBoZWFwCisgICAgICAgIGdldHMgYSBsb2NhbCBh
bGxvY2F0b3IgYW5kIHBvc3NpYmx5IGEgbG9jYWwgdmlldyBjYWNoZS4gQm90aCBsb2NhbCBhbGxv
Y2F0b3JzIGFuZCBsb2NhbCB2aWV3IGNhY2hlcworICAgICAgICBjYW4gZ2V0IHF1aXRlIGxhcmdl
ICgxMDBzIG9mIGJ5dGVzKS4gU28sIGlmIHlvdSB0cnkgdG8gc3VwcG9ydCBmdWxsIGlzb2hlYXBz
IChidWcgMjMxOTM4KSwgeW91IGVuZCB1cAorICAgICAgICB3aXRoIGdpbm9ybW91cyBUTENzIGFu
ZCB0aGF0IGFjY291bnRzIGZvciBhIGxvdCBvZiB0aGUgbWVtb3J5IG92ZXJoZWFkIG9mIGZ1bGwg
aXNvaGVhcHMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgdGFrZXMgYSBiaWcgYml0ZSBvdXQgb2Yg
dGhhdCBvdmVyaGVhZCBieSBlbmFibGluZyBkZWNvbW1pdCBvZiBUTEMgcGFnZXM6CisKKyAgICAg
ICAgLSBBbnkgcGFnZSB3aXRoaW4gYSBUTEMgdGhhdCBoYXMgbm90aGluZyBidXQgc3RvcHBlZCBh
bGxvY2F0b3JzIChvciB2aWV3IGNhY2hlczsgSSdsbCBqdXN0IHNheQorICAgICAgICAgICJhbGxv
Y2F0b3JzIiB0byBtZWFuIGJvdGggImxvY2FsIGFsbG9jYXRvcnMiIGFuZCAibG9jYWwgdmlldyBj
YWNoZXMiLCBhcyBJIGRvIGluIHRoZSBjb2RlKSBjYW4gZ2V0CisgICAgICAgICAgZGVjb21taXR0
ZWQgYnkgdGhlIHNjYXZlbmdlci4KKworICAgICAgICAtIFRMQyBwYWdlIGRlY29tbWl0IGp1c3Qg
cmVxdWlyZXMgaG9sZGluZyB0aGUgVExDJ3Mgc2NhdmVuZ2VyX2xvY2sgKGZvcm1lcmx5IGtub3du
IGFzIHRoZQorICAgICAgICAgIGxvZ19mbHVzaF9sb2NrKSBhbmQgdGhlIGhlYXBfbG9jay4gWW91
IGRvbid0IGhhdmUgdG8gc3VzcGVuZCB0aGUgdGhyZWFkIChidXQgc3VzcGVuc2lvbiBjb3VsZCBo
YXZlCisgICAgICAgICAgYmVlbiB1c2VkIHRvIHN0b3AgdGhlIGFsbG9jYXRvciwgYXMgYmVmb3Jl
KS4KKworICAgICAgICAtIEF0dGVtcHRzIHRvIGFsbG9jYXRlIHVzaW5nIGFuIGFsbG9jYXRvciBp
biBhIGRlY29tbWl0dGVkIHBhZ2UgYXJlIGd1YXJhbnRlZWQgdG8gZ28gZG93biBhIHNsb3cKKyAg
ICAgICAgICBwYXRoIHRoYXQgY29tbWl0cyB0aGUgcGFnZSBhbmQgcmVtYXRlcmlhbGl6ZXMgdGhl
IGFsbG9jYXRvci4KKworICAgICAgICAtIFRoaXMgZG9lc24ndCByZXF1aXJlIGFueSBwYWdlIGFs
aWdubWVudCBvZiBhbGxvY2F0b3JzLiBBbGxvY2F0b3JzIGNhbiBzdHJhZGRsZSBwYWdlcy4KKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGJlIHBlcmYtbmV1dHJhbCBvbiB0cnVuay4gSXQgb2ZmZXJz
IGEgfjEuNSUgbWVtb3J5IGltcHJvdmVtZW50IGZvciBidWcgMjMxOTM4LgorCisgICAgICAgICog
Ym1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxpYnBhcy9saWJw
YXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXAuYzoKKyAgICAgICAgKGJtYWxsb2NfZmxleF9oZWFwX3JlZl9nZXRfaGVh
cCk6CisgICAgICAgIChibWFsbG9jX2F1eGlsaWFyeV9oZWFwX3JlZl9nZXRfaGVhcCk6CisgICAg
ICAgIChibWFsbG9jX2dldF9oZWFwKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFs
bG9jX2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29u
ZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmM6Cisg
ICAgICAgIChqaXRfYWxpZ25lZF9hbGxvY2F0b3IpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL2ppdF9oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL21pbmFs
aWduMzJfaGVhcF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5jOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfY29uc3RydWN0
KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2NhdG9yX3N0b3ApOgorICAgICAgICAocGFzX2Jp
dGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcpOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0
b3JfZmluaXNoX2ZhaWxpbmcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfYWxsb2NhdG9yLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9h
bGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9y
eS5jOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJlY3RvcnlfdGFrZV9sYXN0X2VtcHR5KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmg6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDoK
KyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9hbGxvY2F0aW9uX2NvbW1pdF9ncmFudWxlc19vcl9y
ZWxvb3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5jOgor
ICAgICAgICAocGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdCk6CisgICAgICAgIChjb21taXQpOgor
ICAgICAgICAocGFzX2NvbW1pdF9zcGFuX2FkZF91bmNoYW5nZWRfYW5kX2NvbW1pdCk6CisgICAg
ICAgIChkZWNvbW1pdCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdF9z
cGFuLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192
ZWN0b3IuYzogQWRkZWQuCisgICAgICAgIChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb25z
dHJ1Y3QpOgorICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfZGVzdHJ1Y3QpOgor
ICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY291bnRfY29tbWl0dGVkKToKKyAg
ICAgICAgKHBhc19jb3VudF9jb21taXR0ZWRfcGFnZXMpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmg6IEFkZGVkLgorICAgICAgICAocGFz
X2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfaXNfY29tbWl0dGVkKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRfcHRyLmg6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg6IEFk
ZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWNvbW1pdF9leGNsdXNpb25f
cmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lz
X2VtcHR5KToKKyAgICAgICAgKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfY29udGln
dW91cyk6CisgICAgICAgIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2ludmVydGVk
KToKKyAgICAgICAgKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfY3JlYXRlX2ludmVydGVk
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRfZGVjb21taXRfbG9n
LmM6CisgICAgICAgIChkZWNvbW1pdF9hbGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19leHBlbmRhYmxlX21lbW9yeS5jOgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5
X3N0YXRlX3ZlcnNpb25fbmV4dCk6CisgICAgICAgIChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29u
c3RydWN0KToKKyAgICAgICAgKHBhc19leHBlbmRhYmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNz
YXJ5KToKKyAgICAgICAgKHNjYXZlbmdlX2ltcGwpOgorICAgICAgICAocGFzX2V4cGVuZGFibGVf
bWVtb3J5X3NjYXZlbmdlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5k
YWJsZV9tZW1vcnkuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFu
dWxlcy5jOgorICAgICAgICAocGFzX2ZyZWVfZ3JhbnVsZXNfZGVjb21taXRfYWZ0ZXJfbG9ja2lu
Z19yYW5nZSk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYzoKKyAgICAg
ICAgKHBhc19oZWFwX2dldF90eXBlX3NpemUpOgorICAgICAgICAocGFzX2hlYXBfZ2V0X3R5cGVf
YWxpZ25tZW50KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5jOgorICAgICAgICAocGFzX2hl
YXBfY29uZmlnX3V0aWxzX2FsbG9jYXRlX2FsaWduZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX3JlZi5jOgorICAgICAgICAocGFzX2Vuc3VyZV9oZWFwX3Nsb3cpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9s
b2cuYzoKKyAgICAgICAgKHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZ19j
b25zdHJ1Y3QpOgorICAgICAgICAocGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRf
bG9nX2Rlc3RydWN0KToKKyAgICAgICAgKHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29t
bWl0X2xvZ19hZGQpOgorICAgICAgICAoY29tbWl0KToKKyAgICAgICAgKGNvbW1pdF9hbGwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRf
Y29tbWl0X2xvZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVl
X2hlYXBfaGVscGVycy5jOgorICAgICAgICAobGFyZ2VfdXRpbGl0eV9hbGlnbmVkX2FsbG9jYXRv
cik6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfdHJ5X2FsbG9jYXRlX3dp
dGhfYWxpZ25tZW50KToKKyAgICAgICAgKHBhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVyc19kZWFs
bG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jOgor
ICAgICAgICAoYWxsb2NhdGVfaW1wbCk6CisgICAgICAgIChwYXNfbGFyZ2VfaGVhcF90cnlfZGVh
bGxvY2F0ZSk6CisgICAgICAgIChwYXNfbGFyZ2VfaGVhcF90cnlfc2hyaW5rKToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdf
Y2FjaGUuYzoKKyAgICAgICAgKGxhcmdlX2FsaWduZWRfYWxsb2NhdG9yKToKKyAgICAgICAgKHBh
c19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZV90cnlfYWxsb2NhdGVfd2l0
aF9hbGlnbm1lbnQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFw
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYzoKKyAgICAgICAgKGNyZWF0ZV9ub2RlKToKKyAg
ICAgICAgKGNyZWF0ZV9hbmRfaW5zZXJ0KToKKyAgICAgICAgKGJvb3RfdHJlZSk6CisgICAgICAg
IChzdGF0ZXNfbWF0Y2gpOgorICAgICAgICAoc3BsaXRfbm9kZV9hbmRfZ2V0X3JpZ2h0X2ltcGwp
OgorICAgICAgICAodHJ5X3NwbGF0X2ltcGwpOgorICAgICAgICAodHJ5X3NwbGF0KToKKyAgICAg
ICAgKHNwbGF0KToKKyAgICAgICAgKHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKToK
KyAgICAgICAgKHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZnJlZSk6CisgICAgICAgIChwYXNfbGFy
Z2Vfc2hhcmluZ19wb29sX2FsbG9jYXRlX2FuZF9jb21taXQpOgorICAgICAgICAocGFzX2xhcmdl
X3NoYXJpbmdfcG9vbF9kZWNvbW1pdF9sZWFzdF9yZWNlbnRseV91c2VkKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaDogQWRkZWQuCisgICAgICAg
IChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVhdGUpOgorICAgICAgICAocGFzX2xhcmdlX3Zp
cnR1YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KToKKyAgICAgICAgKHBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlX2dldF9yYW5nZSk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0
eSk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKToKKyAgICAgICAgKHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlX292ZXJsYXBzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oOiBBZGRlZC4KKyAgICAgICAg
KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2NvbXBhcmVfYmVnaW4pOgorICAgICAgICAocGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X2luZGV4KToKKyAgICAgICAgKHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlX3NldF9pbmRleCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvci5jOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QpOgor
ICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9tb3ZlKToKKyAgICAgICAgKHN0b3BfaW1wbCk6
CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3ApOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNzYXJ5X2ltcGwpOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNzYXJ5KToKKyAgICAgICAgKHBhc19sb2NhbF9h
bGxvY2F0b3JfYmxlc3NfcHJpbW9yZGlhbF9wYXJ0aWFsX3ZpZXdfYmVmb3JlX3N0b3BwaW5nKToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY29uZmlnKToK
KyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0
ZWRfc2xvd19pbXBsKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
X291dF9vZl9saW5lX2Nhc2VzKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2Fs
bG9jYXRlX3Nsb3dfaW1wbCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvcl9raW5kLmg6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0
X3N0cmluZyk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfaXNfc3RvcHBlZCk6
CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YS5jOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19zdG9wcGVkKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
Y29tbWl0X2lmX25lY2Vzc2FyeV9zbG93KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGFfc3RvcCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX3ByZXBhcmVfdG9fZGVjb21taXQpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEuaDoKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jOgorICAgICAgICAo
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3
X2NhY2hlX21vdmUpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcCk6CisgICAg
ICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9kaWRfcmVzdGFydCk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaDoKKyAgICAgICAgKHBhc19sb2NhbF92
aWV3X2NhY2hlX2dldF9zdGF0ZSk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRf
c3RhdGUpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbCk6CisgICAgICAg
IChwYXNfbG9jYWxfdmlld19jYWNoZV9jYW5fcHVzaCk6CisgICAgICAgIChwYXNfbG9jYWxfdmll
d19jYWNoZV9pc19lbXB0eSk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJl
X3RvX3BvcCk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3B1c2gp
OgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKToKKyAgICAgICAgKHBhc19sb2Nh
bF92aWV3X2NhY2hlX3B1c2gpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2Nr
Lmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oOiBB
ZGRlZC4KKyAgICAgICAgKHBhc19tbWFwX2NhcGFiaWxpdHlfZ2V0X3N0cmluZyk6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmM6CisgICAgICAgIChwYXNfcGFn
ZV9tYWxsb2NfYWxpZ25tZW50X3Nsb3cpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2FsaWdu
bWVudF9zaGlmdF9zbG93KToKKyAgICAgICAgKHBhc19wYWdlX21hbGxvY196ZXJvX2ZpbGwpOgor
ICAgICAgICAoY29tbWl0X2ltcGwpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCk6
CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dpdGhvdXRfbXByb3RlY3QpOgorICAg
ICAgICAoZGVjb21taXRfaW1wbCk6CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQp
OgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X3dpdGhvdXRfbXByb3RlY3QpOgor
ICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X2FzeW1tZXRyaWMpOiBEZWxldGVkLgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5oOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuYzoKKyAgICAgICAgKGhhbmRsZV9leHBl
bmRhYmxlX21lbW9yeSk6CisgICAgICAgIChzY2F2ZW5nZXJfdGhyZWFkX21haW4pOgorICAgICAg
ICAocGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9leHBlbmRhYmxlX21lbW9yeSk6CisgICAgICAgIChw
YXNfc2NhdmVuZ2VyX2Zha2VfZGVjb21taXRfZXhwZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5nZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5jOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaDoKKyAgICAg
ICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X25vdGVfZWxpZ2liaWxpdHkpOgorICAg
ICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAgICAg
KG1lZGl1bV9kaXJlY3RvcnlfdHVwbGVfZm9yX2luZGV4X2ltcGwpOgorICAgICAgICAocGFzX3Nl
Z3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlX2Zvcl9pbmRleCk6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9hbGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4KToK
KyAgICAgICAgKHJlY29tcHV0ZV9zaXplX2xvb2t1cCk6CisgICAgICAgIChyZW1hdGVyaWFsaXpl
X3NpemVfbG9va3VwX3NldF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKToKKyAgICAgICAgKHBhc19z
ZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRvcl9pbmRleCk6CisgICAgICAgIChjaGVja19z
aXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX3NldF9tZWRpdW1fZGlyZWN0b3J5X3R1cGxlKToKKyAg
ICAgICAgKGNoZWNrX3NpemVfbG9va3VwX3JlY29tcHV0YXRpb25fZHVtcF9kaXJlY3RvcnkpOgor
ICAgICAgICAoY2hlY2tfc2l6ZV9sb29rdXBfcmVjb21wdXRhdGlvbik6CisgICAgICAgIChjaGVj
a19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2lmX2FwcHJvcHJpYXRlKToKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3J5X2Zvcl9zaXplKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmg6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmg6CisgICAgICAg
IChwYXNfc2VncmVnYXRlZF9oZWFwX3RvdWNoX2xvb2t1cF90YWJsZXMpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2UuYzoKKyAgICAgICAgKHBhc19zZWdy
ZWdhdGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5KToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3Bh
Z2VfY29tbWl0X2Z1bGx5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9nX29y
X2RlYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhcnRpYWxfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2Ny
ZWF0ZSk6CisgICAgICAgIChjb21wdXRlX3N1bW1hcnkpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oOgorICAgICAgICAqIGxpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jOgorICAgICAg
ICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcpOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF9zaGFyZWRfdmlld19jcmVhdGUpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X3ZpZXdfY29tbWl0X3BhZ2UpOgorICAgICAgICAoY29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmM6Cisg
ICAgICAgICh0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyk6CisgICAgICAgICogbGlicGFz
L3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaDoKKyAgICAgICAgKHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dldF90bGNfYWxsb2NhdG9yX2luZGV4KToKKyAg
ICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9p
bmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2Nh
dGluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5j
OgorICAgICAgICAoZHVtcF9sYXJnZV9zaGFyaW5nX3Bvb2xfbm9kZV9jYWxsYmFjayk6CisgICAg
ICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdmlld19zdGF0cyk6CisgICAgICAgIChhbGxv
Y2F0b3Jfc3RhdGUpOgorICAgICAgICAoZHVtcF9hbGxvY2F0b3Jfc3RhdGUpOgorICAgICAgICAo
ZHVtcF9zY2F2ZW5nZXJfZGF0YV9zdGF0ZSk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfYmFzZWxpbmVfYWxsb2NhdG9ycyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfdGhyZWFkX2xvY2FsX2NhY2hlcyk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVy
X2R1bXBfZXZlcnl0aGluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1
c19yZXBvcnRlci5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGUuYzoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxs
b2NhdG9yX2luZGV4X2NhcGFjaXR5KToKKyAgICAgICAgKG51bV9wYWdlcyk6CisgICAgICAgIChj
b21wdXRlX3BhZ2VfaW5kaWNlcyk6CisgICAgICAgIChwYWdlc19jb21taXR0ZWRfc2l6ZSk6Cisg
ICAgICAgIChkZWFsbG9jYXRlKToKKyAgICAgICAgKGFsbG9jYXRlX2NhY2hlKToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfZGVzdHJveSk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9s
b2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2NvbXB1dGVfZGVj
b21taXRfZXhjbHVzaW9uX3JhbmdlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
ZW5zdXJlX2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2FsbG9j
YXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9s
b2dfd2l0aG91dF9yZXNldHRpbmcpOgorICAgICAgICAoZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19m
b3Jfc2NhdmVuZ2VyKToKKyAgICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9tb2Rl
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xv
Zyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9s
b2dfZGlyZWN0KToKKyAgICAgICAgKHN1c3BlbmQpOgorICAgICAgICAocmVzdW1lKToKKyAgICAg
ICAgKGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSk6CisgICAgICAgIChzdG9wX2FsbG9jYXRvcik6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwpOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9zaHJpbmspOgorICAgICAgICAoZmx1c2hfZGVhbGxvY2F0aW9u
X2xvZyk6IERlbGV0ZWQuCisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZS5oOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2Zf
YWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dC5jOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
YWRkX25vZGUpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZ2V0X25v
ZGVfZm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg6IEFkZGVkLgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfY3JlYXRlX2VtcHR5KToKKyAgICAgICAgKHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0ZV9kZWxldGVkKToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2lzX2VtcHR5X29yX2RlbGV0ZWQp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfaXNfZW1wdHkp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfaXNfZGVsZXRl
ZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9nZXRfa2V5
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleV9nZXRfaGFzaCk6
CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfaXNfZXF1YWwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUuYzoKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVt
X2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfY29tbWl0X2FuZF9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfZW5zdXJlX2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3ByZXBhcmVfdG9fZGVjb21taXQpOgorICAgICAgICAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKTogRGVs
ZXRlZC4KKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3Ry
dWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmM6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX25vZGVfYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZS5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJp
bnNpY19pbXBsX2Nhc3VhbF9jYXNlKToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmlu
c2ljX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190
cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6CisgICAgICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1p
dGl2ZV9pbXBsX2Nhc3VhbF9jYXNlKToKKyAgICAgICAgKHBhc190cnlfYWxsb2NhdGVfcHJpbWl0
aXZlX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191
dGlsaXR5X2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0
aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3ZpcnR1YWxfcmFuZ2UuaDoK
KyAgICAgICAgKHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSk6CisgICAgICAgIChwYXNfdmlydHVh
bF9yYW5nZV9jcmVhdGVfZW1wdHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9FeHBlbmRh
YmxlTWVtb3J5VGVzdHMuY3BwOgorICAgICAgICAoc3RkOjp0ZXN0UmFnZSk6CisgICAgICAgIChz
dGQ6OnRlc3RSZW1hdGVyaWFsaXplQWZ0ZXJTZWFyY2hPZkRlY29tbWl0dGVkKToKKyAgICAgICAg
KHN0ZDo6dGVzdEJhc2ljU2l6ZUNsYXNzKToKKyAgICAgICAgKGFkZEV4cGVuZGFibGVNZW1vcnlU
ZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L0xhcmdlU2hhcmluZ1Bvb2xUZXN0cy5j
cHA6CisgICAgICAgIChzdGQ6OnRlc3RHb29kQ29hbGVzY2VFcG9jaFVwZGF0ZSk6CisgICAgICAg
ICogbGlicGFzL3NyYy90ZXN0L01lbWFsaWduVGVzdHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKGFk
ZE1lbWFsaWduVGVzdHMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UTENEZWNvbW1pdFRl
c3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6Om51bUNvbW1pdHRlZFBhZ2VzSW5UTEMpOgor
ICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXQpOgorICAgICAgICAoc3RkOjp0ZXN0Q2hhb3NU
aGVuRGVjb21taXQpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUlt
cGwpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveSk6CisgICAgICAg
IChzdGQ6OnRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95SW5UaHJlYWQpOgorICAgICAgICAoc3Rk
Ojp0ZXN0VExDRGVjb21taXRUaGVuRmx1c2gpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21t
aXRUaGVuRGVhbGxvY2F0ZSk6CisgICAgICAgIChhZGRUTENEZWNvbW1pdFRlc3RzKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwOgorICAgICAgICAoUnVudGltZUNv
bmZpZ1Rlc3RTY29wZTo6UnVudGltZUNvbmZpZ1Rlc3RTY29wZSk6CisgICAgICAgIChEZWNvbW1p
dFplcm9GaWxsOjpEZWNvbW1pdFplcm9GaWxsKToKKyAgICAgICAgKG1haW4pOgorICAgICAgICAq
IGxpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oOgorICAgICAgICAob3BlcmF0b3I8PCk6Cisg
ICAgICAgICogbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRl
c3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxsVGVzdHMpOgorCiAyMDIyLTAyLTA5ICBGaWxp
cCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgW2xpYnBhc10gYWRkIGRvY3Vt
ZW50YXRpb24KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2JtYWxs
b2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNjA2LDYgKzYw
NiwxNCBAQAogCQkxNEYyNzFDNTE4RUEzOTdFMDA4QzE1MkYgLyogRGVhbGxvY2F0b3IuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTQ1RjY4NTkxNzlE
QzkwMjAwRDY1NTk4IC8qIERlYWxsb2NhdG9yLmNwcCAqLzsgfTsKIAkJMTRGMjcxQzcxOEVBMzk5
MDAwOEMxNTJGIC8qIEhlYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMTREQTMyMEUxODg3NUQ5RjAwNzI2OUUwIC8qIEhlYXAuY3BwICovOyB9Owog
CQkxNEYyNzFDODE4RUEzOTkwMDA4QzE1MkYgLyogT2JqZWN0VHlwZS5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDEwNUU4MzE4RTE0Mzc0MDAzQTEw
NkUgLyogT2JqZWN0VHlwZS5jcHAgKi87IH07CisJCTJDMDlEOEMxMjc5N0M2RUEwMDVBQTE1QyAv
KiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCOTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTJDMDlEOEMyMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMkMwOUQ4QkEyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlX21pbl9oZWFwLmggKi87IH07CisJCTJDMDlEOEMzMjc5N0M2RUEwMDVBQTE1QyAv
KiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkIyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmggKi87IH07CisJCTJDMDlEOEM0Mjc5N0M2RUEwMDVBQTE1QyAv
KiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkMyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi87IH07CisJCTJDMDlEOEM1Mjc5N0M2RUEwMDVBQTE1QyAv
KiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QkQyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlLmggKi87IH07CisJCTJDMDlEOEM2Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNf
bW1hcF9jYXBhYmlsaXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQzA5RDhCRTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTJDMDlE
OEM3Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRy
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4
QkYyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5
LmggKi87IH07CisJCTJDMDlEOEM4Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFjdF90aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJDMDlEOEMwMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLzsgfTsKIAkJMkMxMUU4OTUyNzI4
REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTIyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2Nf
dHlwZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTJDMTFFODk2MjcyOERFMjcwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMTFFODkzMjcyOERFMjcwMDIxNjJE
MCAvKiBibWFsbG9jX3R5cGUuYyAqLzsgfTsKIAkJMkMxMUU4OTcyNzI4REUyNzAwMjE2MkQwIC8q
IHBhc19zaW1wbGVfdHlwZS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkMxMUU4OTQyNzI4REUyNzAwMjE2MkQwIC8qIHBhc19zaW1wbGVfdHlwZS5jICov
OyB9OwpAQCAtMTI3MSw2ICsxMjc5LDE0IEBACiAJCTE0REEzMjBDMTg4NzVCMDkwMDcyNjlFMCAv
KiBIZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhlYXAuaDsgcGF0aCA9
IGJtYWxsb2MvSGVhcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNERBMzIwRTE4
ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBIZWFwLmNwcDsgcGF0aCA9IGJtYWxsb2MvSGVhcC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTE0RjI3MUJFMThFQTM5NjMwMDhDMTUyRiAvKiBsaWJibWFsbG9jLmEg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUu
YXI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYmJtYWxsb2MuYTsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKKwkJMkMwOUQ4QjkyNzk3QzZFOTAwNUFBMTVDIC8qIHBh
c19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyQzA5RDhCQTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxf
cmFuZ2VfbWluX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJDMDlEOEJCMjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3Zl
Y3Rvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3Rvci5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdl
c192ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkMyNzk3QzZF
OTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmM7IHBhdGggPSBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhCRDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2UuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV92
aXJ0dWFsX3JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJFMjc5
N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IHBhc19tbWFwX2NhcGFiaWxpdHkuaDsgcGF0aCA9IGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkMwOUQ4QkYyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyQzA5RDhDMDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2NvbXBhY3RfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMTFFODkyMjcyOERFMjcwMDIxNjJE
MCAvKiBibWFsbG9jX3R5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gYm1h
bGxvY190eXBlLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX3R5cGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OTMyNzI4REUyNzAwMjE2MkQwIC8qIGJt
YWxsb2NfdHlwZS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IG5hbWUgPSBibWFsbG9jX3R5
cGUuYzsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfdHlwZS5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkyQzExRTg5NDI3MjhERTI3MDAyMTYyRDAgLyogcGFzX3NpbXBs
ZV90eXBlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IHBhc19zaW1wbGVfdHlw
ZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFzX3NpbXBsZV90eXBlLmM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTI2LDYgKzE1NDIsOCBAQAogCQkJCTBGQzQwOUI0MjQ1
MTQ5NjMwMDg3NkRBMCAvKiBwYXNfY29tbWl0X21vZGUuaCAqLywKIAkJCQkwRjg3RkZDQTI1QUY4
OTdDMDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmMgKi8sCiAJCQkJMEY4N0ZGQTMyNUFGODk3
OTAwMEUxQUJGIC8qIHBhc19jb21taXRfc3Bhbi5oICovLAorCQkJCTJDMDlEOEJDMjc5N0M2RTkw
MDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jICovLAorCQkJCTJDMDlEOEJC
Mjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oICovLAogCQkJ
CTBGNzU0OTgxMjQ4Njk3M0MwMDJBNEM3RCAvKiBwYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9y
X2luZGV4X3B0ci5oICovLAogCQkJCTBGODdGRkE4MjVBRjg5N0EwMDBFMUFCRiAvKiBwYXNfY29t
cGFjdF9hdG9taWNfYmlhc2luZ19kaXJlY3RvcnlfcHRyLmggKi8sCiAJCQkJMEY1RkU3Q0IyNUI2
MjEwQzAwMTg1OUZDIC8qIHBhc19jb21wYWN0X2F0b21pY19iaXRmaXRfYmlhc2luZ19kaXJlY3Rv
cnlfcHRyLmggKi8sCkBAIC0xNTcxLDYgKzE1ODksNyBAQAogCQkJCTBGQzQwOTcxMjQ1MTQ5NUUw
MDg3NkRBMCAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggKi8sCiAJCQkJMEZDNDA5OUYyNDUx
NDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCAqLywKIAkJ
CQkyQ0UyQUU1MTI3Njk5MjgyMDBEMDJCQkMgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3ZvaWRfcHRy
LmggKi8sCisJCQkJMkMwOUQ4QzAyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21wYWN0X3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovLAogCQkJCTBGQzQwOTlBMjQ1MTQ5NjEwMDg3
NkRBMCAvKiBwYXNfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKIAkJCQkwRkM0MDk3OTI0NTE0
OTVGMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmMgKi8s
CiAJCQkJMEZDNDA5QjMyNDUxNDk2MjAwODc2REEwIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2Jq
ZWN0X2NhbGxiYWNrcy5oICovLApAQCAtMTU4Niw2ICsxNjA1LDcgQEAKIAkJCQkwRjM3M0U1MzI2
NTlFQTcwMDAzNEJBOTYgLyogcGFzX2RlYnVnX2hlYXAuaCAqLywKIAkJCQkwRkJDNjJDNDI2NUYx
ODBDMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmMgKi8sCiAJCQkJMEZCQzYyQzUyNjVG
MTgwQzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19zcGVjdHJ1bS5oICovLAorCQkJCTJDMDlEOEI5Mjc5
N0M2RTkwMDVBQTE1QyAvKiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmggKi8sCiAJCQkJ
MEZDNDA5QjkyNDUxNDk2MzAwODc2REEwIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYyAq
LywKIAkJCQkwRkM0MDlBMDI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZy5oICovLAogCQkJCTBGOEU4MzI2MjQ5MkVBRjMwMDQ2RDdGOCAvKiBwYXNfZGVzaWduYXRl
ZF9pbnRyaW5zaWNfaGVhcC5jICovLApAQCAtMTcxMyw2ICsxNzMzLDggQEAKIAkJCQkwRkM0MEFC
RDI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVf
bW9kZS5oICovLAogCQkJCTBGQzQwQUEzMjQ1MTQ5OEUwMDg3NkRBMCAvKiBwYXNfbGFyZ2VfdXRp
bGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRkM0MEFGMTI0NTE0OTkzMDA4NzZEQTAgLyogcGFz
X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCisJCQkJMkMwOUQ4QkEyNzk3QzZFOTAwNUFB
MTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi8sCisJCQkJMkMwOUQ4
QkQyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggKi8sCiAJCQkJ
MkM5NzFEMDEyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi8s
CiAJCQkJMkM5NzFEMDAyNzhFNzk4NzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRy
X2lubGluZXMuaCAqLywKIAkJCQkyQzk3MUQwMzI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmll
bnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLywKQEAgLTE3NDMsNiArMTc2NSw3IEBACiAJCQkJ
MEZDNDBBODEyNDUxNDk4QjAwODc2REEwIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5jICovLAogCQkJ
CTBGQzQwQTI1MjQ1MTQ5ODUwMDg3NkRBMCAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuaCAqLywKIAkJ
CQkwRkM0MEE3RTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX21pbl9oZWFwLmggKi8sCisJCQkJMkMw
OUQ4QkUyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCAqLywKIAkJCQkw
RkM0MEE4RjI0NTE0OThDMDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmMgKi8sCiAJCQkJ
MEZDNDBBNzEyNDUxNDk4QTAwODc2REEwIC8qIHBhc19tb25vdG9uaWNfdGltZS5oICovLAogCQkJ
CTBGQzQwQUQyMjQ1MTQ5OTEwMDg3NkRBMCAvKiBwYXNfbXV0YXRpb25fY291bnQuaCAqLywKQEAg
LTE4ODQsNiArMTkwNyw4IEBACiAJCQkJMEZDNDBBQjkyNDUxNDk4RjAwODc2REEwIC8qIHBhc19z
dHJlYW0uaCAqLywKIAkJCQkwRkM0MEE5NTI0NTE0OThEMDA4NzZEQTAgLyogcGFzX3N0cmluZ19z
dHJlYW0uYyAqLywKIAkJCQkwRkM0MEEzRjI0NTE0OTg3MDA4NzZEQTAgLyogcGFzX3N0cmluZ19z
dHJlYW0uaCAqLywKKwkJCQkyQzA5RDhCRjI3OTdDNkVBMDA1QUExNUMgLyogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaCAqLywKKwkJCQkwRjdDOTJEODI2RTU3Rjc1MDA2QUYw
MTIgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9raW5kLmggKi8sCiAJCQkJ
MEZDNDBBN0MyNDUxNDk4QjAwODc2REEwIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuYyAqLywK
IAkJCQkwRkM0MEFDNzI0NTE0OTkwMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
ICovLAogCQkJCTBGQzQwQTYyMjQ1MTQ5ODkwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dC5jICovLApAQCAtMjIxNyw2ICsyMjQyLDcgQEAKIAkJCQlFMzI4RDg0RDIzQ0VC
Mzg5MDA1NDVCMTggLyogUGFja2VkLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE4Rjg0QzI1QzM0
Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYx
OEY4NDgyNUMzNDY3NzAwNzIxQzJBIC8qIHBhZ2VzaXplNjRrX2hlYXBfY29uZmlnLmggaW4gSGVh
ZGVycyAqLywKKwkJCQkyQzA5RDhDODI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2NvbXBhY3RfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDk1
QTI0NTE0OTQ0MDA4NzZEQTAgLyogcGFzX2FsaWduZWRfYWxsb2NhdGlvbl9yZXN1bHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwOTVCMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25lZF9h
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOTYwMjQ1MTQ5NDQwMDg3NkRBMCAv
KiBwYXNfYWxpZ25tZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTIyNjQsNiArMjI5MCw3IEBACiAJ
CQkJMEZDNDA5RTgyNDUxNDk2NDAwODc2REEwIC8qIHBhc19ib290c3RyYXBfaGVhcF9wYWdlX3By
b3ZpZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlEMDI0NTE0OTY0MDA4NzZEQTAgLyog
cGFzX2NhcmVzX2Fib3V0X3NpemVfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMTYy
NDUxNDk2NDAwODc2REEwIC8qIHBhc19jYXJ0ZXNpYW5fdHJlZS5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJMkMwOUQ4QzEyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFu
Z2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQTBEMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNf
Y29hbGlnbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMEEyNDUxNDk2NDAwODc2REEwIC8q
IHBhc19jb21taXRfbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4N0ZGREEyNUFGODk3QzAw
MEUxQUJGIC8qIHBhc19jb21taXRfc3Bhbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMzE0LDYgKzIz
NDEsNyBAQAogCQkJCTBGQzQwOUZFMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfY29uZmlnX3ByZWZp
eC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5QzUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19j
cmVhdGVfYmFzaWNfaGVhcF9wYWdlX2NhY2hlc193aXRoX3Jlc2VydmVkX21lbW9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5RjEyNDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRl
LmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhDNTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0VGMjVCNjIxMEQw
MDE4NTlGQyAvKiBwYXNfZGVhbGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
QzQwOUY5MjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3IuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGQzQwOURCMjQ1MTQ5NjQwMDg3NkRBMCAvKiBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVu
Z2VfYWN0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTIzNTMsNiArMjM4MSw3IEBACiAJCQkJMEZD
NDBCOEYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mb3VuZF9pbmRleC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4NzAwMzgyNUFGODlDOTAwMEUxQUJGIC8qIHBhc19mcmVlX2dyYW51bGVzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkM0MEI4MzI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ZyZWVfbW9k
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4QzYyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19t
bWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjEzMjQ1MTQ5OTQwMDg3
NkRBMCAvKiBwYXNfZnJlZV9yYW5nZV9raW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEJB
NjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2Z1bGxfYWxsb2NfYml0cy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDBCMjQyNDUxNDk5NDAwODc2REEwIC8qIHBhc19mdWxsX2FsbG9jX2JpdHNfaW5s
aW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNDMxLDEyICsyNDYwLDE0IEBACiAJCQkJMEY4NzAw
N0QyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjg3MDA3QjI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNkEyNUFGOEExQjAwMEUxQUJGIC8q
IHBhc19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhD
MjI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGODcwMDczMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9i
YXNlX2NvbmZpZ191dGlsc19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2RDI1
QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjg3MDA2NzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfY29uZmlnX2tpbmQuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGODcwMDdGMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9n
cmFudWxlX3VzZV9jb3VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNjYyNUFGOEExQjAw
MEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl9wbGFjZW1lbnRfbW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY4NzAwNkMyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4QzcyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA3
NzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vfa2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZDNDBCRDAyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX21hbGxvYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY4NzAwNzgyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX3NoYXJpbmdfbW9k
ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNTE0LDYgKzI1NDUsNyBAQAogCQkJCTBGQ0NEMTQ1MjY1
NjAxODYwMDE3MUExRiAvKiBwYXNfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5X2J5X3NpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGQzQwQkQ3MjQ1MTQ5QUUwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2Zy
ZWVfaGVhcF9kZWNsYXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDgyNDUx
NDlBRTAwODc2REEwIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2RlZmluaXRpb25zLmRlZiBpbiBI
ZWFkZXJzICovLAorCQkJCTJDMDlEOEMzMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMUQyNDUxNDk5NDAwODc2
REEwIC8qIHBhc19zaW1wbGVfZnJlZV9oZWFwX2hlbHBlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQjc2MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfc2ltcGxlX2xhcmdlX2ZyZWVfaGVhcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMDUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaW1w
bGVfdHlwZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzg5LDYgKzI4MjEsNyBAQAogCQkJCTBGODcw
MDdFMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9oZWFkZXJfdGFibGUuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQzQwQjY1MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9tYWxsb2MuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGQzQwQjEyMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9z
aGFyaW5nX3BhcnRpY2lwYW50LmMgaW4gU291cmNlcyAqLywKKwkJCQkyQzA5RDhDNDI3OTdDNkVB
MDA1QUExNUMgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyBpbiBTb3VyY2VzICovLAog
CQkJCTBGQzQwQjhBMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGFnZV9zaGFyaW5nX3Bvb2wuYyBp
biBTb3VyY2VzICovLAogCQkJCTBGODcwMDY5MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGF5bG9h
ZF9yZXNlcnZhdGlvbl9wYWdlX2xpc3QuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGQzQwQjQ5MjQ1
MTQ5OTQwMDg3NkRBMCAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmMgaW4gU291
cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvbGlicGFz
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtNTYyLDYgKzU2MiwxMSBAQAogCQkyQzM0RkZGRDI3NTcxRDJGMDA1NTY1Q0IgLyog
cGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzNEZGRjgyNzU3MUQyRjAwNTU2NUNC
IC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuaCAqLzsgfTsKIAkJ
MkMzNEZGRkUyNzU3MUQyRjAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzNEZGRjkyNzU3
MUQyRjAwNTU2NUNCIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2Vfcm9sZS5oICovOyB9OwogCQkyQzNE
MEZDNzI3MkI5MjQxMDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMzRDBGQzYyNzJC
OTI0MTAwNUM1QTAyIC8qIEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3RzLmNwcCAqLzsgfTsKKwkJ
MkM0NzMxNTIyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDczMTRGMjc3QTU0MEYw
MEI2MkM0OSAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi87IH07CisJCTJDNDczMTUzMjc3QTU0
MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0NzMxNTAyNzdBNTQwRjAw
QjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggKi87IH07CisJCTJD
NDczMTU0Mjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0NzMxNTEyNzdBNTQw
RjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggKi87IH07CisJCTJDNDczMTYy
Mjc3RDRDOUUwMEI2MkM0OSAvKiBUTENEZWNvbW1pdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDczMTYxMjc3RDRDOUUwMEI2MkM0OSAv
KiBUTENEZWNvbW1pdFRlc3RzLmNwcCAqLzsgfTsKKwkJMkM0NzMxNkEyNzdENEVBODAwQjYyQzQ5
IC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ3MzE2NDI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLzsgfTsKIAkJMkM0ODEzMjYyNzNGMzQxQTAwNkNBQjU1
IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjAyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19s
YXJnZV9leHBlbmRhYmxlX21lbW9yeS5jICovOyB9OwogCQkyQzQ4MTMyNzI3M0YzNDFBMDA2Q0FC
NTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzIxMjczRjM0MUEwMDZDQUI1NSAvKiBw
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jICovOyB9OwogCQkyQzQ4MTMyODI3M0YzNDFB
MDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyMjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFz
X2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CkBAIC01NjksMTMgKzU3NCwxNiBAQAogCQkyQzQ4
MTMyQTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyNDI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggKi87IH07CiAJCTJD
NDgxMzJCMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzI1MjczRjM0MUEw
MDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLzsgfTsKIAkJMkM0ODEzMkQyNzNG
NDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyQzI3M0Y0MTU5MDA2Q0FCNTUg
LyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCAqLzsgfTsKKwkJMkM3MzRDOTAyNzc2ODBFRjAw
MTdCRkZFIC8qIE1lbWFsaWduVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkM3MzRDOEYyNzc2ODBFRjAwMTdCRkZFIC8qIE1lbWFsaWduVGVz
dHMuY3BwICovOyB9OworCQkyQzg1NDhCMTI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9z
dXNwZW5kX2xvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJDODU0OEFGMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFkX3N1c3BlbmRfbG9jay5o
ICovOyB9OworCQkyQzg1NDhCMjI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9zdXNwZW5k
X2xvY2suYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJD
ODU0OEIwMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFkX3N1c3BlbmRfbG9jay5jICovOyB9
OwogCQkyQzg1REM0MTI3MTI4RjBGMDAzNjc5MDUgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5z
aWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDODVE
QzQwMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oICovOyB9
OwogCQkyQzkxRTU1MDI3MThEQTlBMDBENjdGRjkgLyogcGFzX3NpemVfbG9va3VwX21vZGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTFFNTRGMjcx
OERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBfbW9kZS5oICovOyB9OwotCQkyQzk3MUNG
QTI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxQ0Y4Mjc4RTExQzMwMEM5
RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovOyB9OwotCQkyQzk3MUNGQjI3OEUx
MUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcxQ0Y5Mjc4RTExQzMw
MEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovOyB9OwotCQky
Qzk3MUNGRTI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9w
dHIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDOTcx
Q0ZDMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5j
ICovOyB9OwotCQkyQzk3MUNGRjI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFj
dF9wdHJfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkM5NzFDRkQyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRy
X2lubGluZXMuaCAqLzsgfTsKLQkJMkNCOUIxNTMyNzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhl
YXBzQW5kVGhyZWFkcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyQ0I5QjE1MjI3OEY2Qzg1MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRz
LmNwcCAqLzsgfTsKKwkJMkNCOUIxNTgyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2Nv
bXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyQ0I5QjE1NDI3OEY4NUVEMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFj
dF91bnNpZ25lZF9wdHIuaCAqLzsgfTsKKwkJMkNCOUIxNTkyNzhGODVFRTAwM0E4QzFCIC8qIHBh
c19sZW5pZW50X2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQ0I5QjE1NTI3OEY4NUVEMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29t
cGFjdF9wdHIuaCAqLzsgfTsKKwkJMkNCOUIxNUEyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5p
ZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQ0I5QjE1NjI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLzsgfTsKKwkJMkNCOUIxNUIyNzhGODVFRTAwM0E4QzFC
IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlCMTU3Mjc4Rjg1RUUwMDNBOEMxQiAvKiBw
YXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggKi87IH07CisJCTJDQjlCMTVEMjc4Rjg2
MUIwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCOUIxNUMyNzhGODYxQjAwM0E4QzFCIC8q
IExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi87IH07CiAJCTJDRTJBRTM1Mjc1QTk1M0UwMEQw
MkJCQyAvKiBCaXRmaXRUZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3Bw
ICovOyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKQEAgLTEyNTUsNiArMTI2
MywxNiBAQAogCQkyQzM0RkZGOTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFn
ZV9yb2xlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2Vfcm9sZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzM0RkZGRjI3NTgx
NUQwMDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5j
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19raW5kX2FuZF9yb2xlLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDM0Qw
RkM2MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIZWFwUmVmQWxsb2NhdG9ySW5kZXhU
ZXN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTRGMjc3QTU0MEYw
MEI2MkM0OSAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IHBhc19tbWFwX2NhcGFiaWxpdHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkM0NzMxNTAyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
X21pbl9oZWFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJD
NDczMTUxMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE2MTI3N0Q0QzlFMDBCNjJDNDkgLyog
VExDRGVjb21taXRUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBUTENEZWNvbW1pdFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0
NzMxNjMyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9y
YW5nZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE2NDI3N0Q0Q0NDMDBC
NjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5jOyBwYXRoID0gcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNjUyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJD
NDczMTY2Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfcGxhdGZvcm0uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX3BsYXRmb3JtLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJDNDczMTY3Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9lbnRyeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQzQ3MzE2ODI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkyQzQ4MTMyMDI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4
cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19s
YXJnZV9leHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
QzQ4MTMyMTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2NvbXBhY3RfZXhwZW5kYWJsZV9tZW1vcnku
YyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRoID0gcGFzX2NvbXBhY3RfZXhwZW5kYWJs
ZV9tZW1vcnkuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzMjIyNzNGMzQx
QTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmM7IHBhdGggPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTEyNjIsMTMgKzEyODAsMTYgQEAKIAkJMkM0ODEzMjQyNzNGMzQxQTAwNkNB
QjU1IC8qIHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzMjUyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRh
YmxlX21lbW9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZXhwZW5k
YWJsZV9tZW1vcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM0ODEzMkMyNzNG
NDE1OTAwNkNBQjU1IC8qIEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyQzczNEM4RjI3NzY4MEVGMDAxN0JGRkUgLyogTWVtYWxp
Z25UZXN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNZW1hbGln
blRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM4NTQ4QUYyN0I0OEZD
NTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVuZF9sb2NrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IHBhc190aHJlYWRfc3VzcGVuZF9sb2NrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJDODU0OEIwMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFkX3N1
c3BlbmRfbG9jay5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfdGhyZWFk
X3N1c3BlbmRfbG9jay5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzg1REM0MDI3
MTI4RjBGMDAzNjc5MDUgLyogcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkM5MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBh
c19zaXplX2xvb2t1cF9tb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19zaXplX2xvb2t1cF9tb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJDOTcx
Q0Y4Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkM5NzFDRkMyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50
X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9
IHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTJDOTcxQ0ZEMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3B0cl9pbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5p
ZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MkNCOUIxNTIyNzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb3RzT2ZIZWFwc0FuZFRocmVhZHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0I5QjE1NDI3OEY4NUVEMDAzQThD
MUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCOUIxNTUyNzhGODVFRDAwM0E4QzFCIC8qIHBh
c19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDQjlCMTU2Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVk
X3B0ci5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfbGVuaWVudF9jb21w
YWN0X3Vuc2lnbmVkX3B0ci5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0I5QjE1
NzI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9p
bmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTVDMjc4Rjg2MUIw
MDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkNFMkFFMzQyNzVBOTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEJpdGZpdFRlc3RzLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNl
Y3Rpb24gKi8KIApAQCAtMTM4Miw3ICsxNDAzLDggQEAKIAkJCQkwRkVCNjY2NzIzMUM4N0JDMDA5
QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbER1bXAuaCAqLywKIAkJCQkwRkVCNjY2OTIzMURBODZG
MDA5QzAwMUIgLyogTGFyZ2VTaGFyaW5nUG9vbFRlc3RzLmNwcCAqLywKIAkJCQkwRkVBNDVCRTIz
NkNEQUVEMDBCNUEzNzUgLyogTG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMuY3BwICov
LAotCQkJCTJDQjlCMTUyMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRocmVhZHMu
Y3BwICovLAorCQkJCTJDQjlCMTVDMjc4Rjg2MUIwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0FuZFRo
cmVhZHMuY3BwICovLAorCQkJCTJDNzM0QzhGMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRl
c3RzLmNwcCAqLywKIAkJCQkwRkQyMkQwNzIyQ0Q4QTc1MDBCMjE4NDEgLyogTWluSGVhcFRlc3Rz
LmNwcCAqLywKIAkJCQkyQjJBNTg5QjI3NDJEODE1MDA1RUUwN0MgLyogUEdNVGVzdHMuY3BwICov
LAogCQkJCTBGNUU0ODM5MjNENjlGNjEwMDQ2REE1QyAvKiBSYWNlVGVzdHMuY3BwICovLApAQCAt
MTM5MSw2ICsxNDEzLDcgQEAKIAkJCQkwRkM2ODFFQjIxMTI3QTE2MDAzQzZBMTMgLyogVGVzdEhh
cm5lc3MuY3BwICovLAogCQkJCTBGQzY4MUVBMjEwRkVEQjUwMDNDNkExMyAvKiBUZXN0SGFybmVz
cy5oICovLAogCQkJCTBGODcwMEIyMjVCMEFCMjkwMDBFMUFCRiAvKiBUaGluZ3lBbmRVdGlsaXR5
SGVhcEFsbG9jYXRpb25UZXN0cy5jcHAgKi8sCisJCQkJMkM0NzMxNjEyNzdENEM5RTAwQjYyQzQ5
IC8qIFRMQ0RlY29tbWl0VGVzdHMuY3BwICovLAogCQkJCTBGODcwMERFMjVCMTRDNjgwMDBFMUFC
RiAvKiBUU0RUZXN0cy5jcHAgKi8sCiAJCQkJMEY1MzE4MTIyMkM5NjA5RDAwM0Y3QjZBIC8qIFV0
aWxzVGVzdHMuY3BwICovLAogCQkJKTsKQEAgLTE1MDcsNiArMTUzMCw4IEBACiAJCQkJMEYxOTMy
NEMyMkVEMDRBNTAwRkJBNzEzIC8qIHBhc19jb21taXRfbW9kZS5oICovLAogCQkJCTBGOUExQ0E0
MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uYyAqLywKIAkJCQkwRjlBMUNBODI1
NTk5NjEyMDBDOEQxMUIgLyogcGFzX2NvbW1pdF9zcGFuLmggKi8sCisJCQkJMkM0NzMxNjQyNzdE
NENDQzAwQjYyQzQ5IC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi8sCisJCQkJMkM0
NzMxNjUyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggKi8s
CiAJCQkJMEYyMTUwRUMyNDg0QkI4NjAwMEQ2MzRCIC8qIHBhc19jb21wYWN0X2F0b21pY19hbGxv
Y2F0b3JfaW5kZXhfcHRyLmggKi8sCiAJCQkJMEY5QTFENDYyNTVFMjg0MjAwQzhEMTFCIC8qIHBh
c19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjlBMUQz
QTI1NUE0QkE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5nX2Rp
cmVjdG9yeV9wdHIuaCAqLywKQEAgLTE1NTEsNiArMTU3Niw3IEBACiAJCQkJMEY5QTFDRDMyNTU5
OTYxNjAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdlX2dyYW51bGVfdXNlX2NvdW50
X3B0ci5oICovLAogCQkJCTBGNkQ1NjQ0MjNDQUExQjkwMEY0MERCQiAvKiBwYXNfY29tcGFjdF90
YWdnZWRfcHRyLmggKi8sCiAJCQkJMEY2RDU2NzgyM0NENzA1OTAwRjQwREJCIC8qIHBhc19jb21w
YWN0X3RhZ2dlZF91bnNpZ25lZF9wdHIuaCAqLywKKwkJCQkyQzQ3MzE2ODI3N0Q0Q0NDMDBCNjJD
NDkgLyogcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCiAJ
CQkJMEY2RDU2NEYyM0NCRDE5QjAwRjQwREJCIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5o
ICovLAogCQkJCTBGQzRFQzM1MjM0QTkxRTMwMEI3MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5
X29iamVjdF9jYWxsYmFja3MuYyAqLywKIAkJCQkwRkM0RUMzMDIzNEE5MUUyMDBCNzEwQTMgLyog
cGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCkBAIC0xNTY2LDYgKzE1
OTIsNyBAQAogCQkJCTBGMzczRTUxMjY1OUVBNUUwMDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5o
ICovLAogCQkJCTBGQkM2MkMwMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0u
YyAqLywKIAkJCQkwRkJDNjJDMTI2NUYxMkEzMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVt
LmggKi8sCisJCQkJMkM0NzMxNjMyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19kZWNvbW1pdF9leGNs
dXNpb25fcmFuZ2UuaCAqLywKIAkJCQkwRjc4MDg5ODIyRkE2RjA4MDBGMzc0NTEgLyogcGFzX2Rl
ZmVycmVkX2RlY29tbWl0X2xvZy5jICovLAogCQkJCTBGNzgwODk5MjJGQTZGMDgwMEYzNzQ1MSAv
KiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmggKi8sCiAJCQkJMEY1QjgzQkUyNDkxODk5RTAw
RjQxMDUyIC8qIHBhc19kZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwX2lubGluZXMuaCAqLywKQEAg
LTE2OTMsMTAgKzE3MjAsMTIgQEAKIAkJCQkwRkNGQTQ5ODIzODM1MkVCMDBDQ0Q3MjYgLyogcGFz
X2xhcmdlX3NoYXJpbmdfcG9vbC5oICovLAogCQkJCTBGNkQ1NDc1MjNDNTczRTAwMEY0MERCQiAv
KiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuYyAqLywKIAkJCQkwRjZENTQ3MjIzQzU3M0Uw
MDBGNDBEQkIgLyogcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwLmggKi8sCi0JCQkJMkM5NzFD
RkQyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAq
LywKLQkJCQkyQzk3MUNGODI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9w
dHIuaCAqLywKLQkJCQkyQzk3MUNGQzI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29t
cGFjdF91bnNpZ25lZF9wdHIuYyAqLywKLQkJCQkyQzk3MUNGOTI3OEUxMUMzMDBDOUUxMjkgLyog
cGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCAqLywKKwkJCQkyQzQ3MzE1MDI3N0E1
NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKKwkJ
CQkyQzQ3MzE1MTI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAq
LywKKwkJCQkyQ0I5QjE1NzI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9w
dHJfaW5saW5lcy5oICovLAorCQkJCTJDQjlCMTU1Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3B0ci5oICovLAorCQkJCTJDQjlCMTU2Mjc4Rjg1RUUwMDNBOEMxQiAvKiBw
YXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovLAorCQkJCTJDQjlCMTU0Mjc4Rjg1
RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJ
CTBGOEE4MDI3MjVFQzU4ODgwMDc5MEI0QSAvKiBwYXNfbGluZV93b3JkX2NvbmZpZy5oICovLAog
CQkJCTBGMzFBNjQzMjNFMzUwOUUwMDJDMENBMyAvKiBwYXNfbGlzdF9kaXJlY3Rpb24uaCAqLywK
IAkJCQkwRkQ0OEIwMjIzQTlBQkIwMDAyNkM0NkQgLyogcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZC5oICovLApAQCAtMTcyMyw2ICsxNzUyLDcgQEAKIAkJCQkwRkM2ODIwMDIxMjEwQjE5
MDAzQzZBMTMgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMgKi8sCiAJCQkJMEZDNjgxRkQyMTIxMEIx
ODAwM0M2QTEzIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5oICovLAogCQkJCTBGRDIyQ0ZCMjJDQUYx
NjQwMEIyMTg0MSAvKiBwYXNfbWluX2hlYXAuaCAqLywKKwkJCQkyQzQ3MzE0RjI3N0E1NDBGMDBC
NjJDNDkgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oICovLAogCQkJCTBGRDQ4QjEwMjNBOUFCQjEw
MDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyAqLywKIAkJCQkwRkQ0OEFGRDIzQTlBQkIw
MDAyNkM0NkQgLyogcGFzX21vbm90b25pY190aW1lLmggKi8sCiAJCQkJMEYwOTIyNjkyMkIwN0My
MTAwN0Q1RDNBIC8qIHBhc19tdXRhdGlvbl9jb3VudC5oICovLApAQCAtMTc1Nyw2ICsxNzg3LDcg
QEAKIAkJCQkwRjZENTQ3MzIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3BoeXNpY2FsX21lbW9yeV9z
eW5jaHJvbml6YXRpb25fc3R5bGUuaCAqLywKIAkJCQkwRkYyNDhGNzIyRkM5RURBMDA3NzIwMkUg
LyogcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbi5jICovLAogCQkJCTBGNzgwODg2MjJG
QTJFNDkwMEYzNzQ1MSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmggKi8sCisJ
CQkJMkM0NzMxNjYyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19wbGF0Zm9ybS5oICovLAogCQkJCTBG
REVBNTc4MjI4RTIzNDUwMDg1RTM0MCAvKiBwYXNfcHJpbWl0aXZlX2hlYXBfcmVmLmMgKi8sCiAJ
CQkJMEZERUE1NzcyMjhFMjM0NDAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYuaCAq
LywKIAkJCQkyQjJBNTg5ODI3NDJEODAyMDA1RUUwN0MgLyogcGFzX3Byb2JhYmlsaXN0aWNfZ3Vh
cmRfbWFsbG9jX2FsbG9jYXRvci5jICovLApAQCAtMTg2Myw2ICsxODk0LDcgQEAKIAkJCQkwRkM2
ODIxOTIxMjUzNjI3MDAzQzZBMTMgLyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzRFQzJFMjM0
QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzRFQzMzMjM0
QTkxRTIwMEI3MTBBMyAvKiBwYXNfc3RyaW5nX3N0cmVhbS5oICovLAorCQkJCTJDNDczMTY3Mjc3
RDRDQ0MwMEI2MkM0OSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oICov
LAogCQkJCTBGMTQ4NzFFMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2tpbmQuaCAqLywKIAkJCQkwRkE1RTQ1MTI0OTJENUI5MDBDRTk2MkEgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jICovLAogCQkJCTBGQTVFNDUzMjQ5
MkQ1QjkwMENFOTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8s
CkBAIC0xODcyLDYgKzE5MDQsOCBAQAogCQkJCTBGN0Y1MUJEMjMxNTlFQzAwMDc1NTJBRSAvKiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaCAqLywKIAkJCQkwRkM2ODFDOTIxMEY3QzlGMDAz
QzZBMTMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jICovLAogCQkJCTBGQzY4MUM0MjEwRjdD
OUUwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmggKi8sCisJCQkJMkM4NTQ4QjAy
N0I0OEZDNTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVuZF9sb2NrLmMgKi8sCisJCQkJMkM4
NTQ4QUYyN0I0OEZDNTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVuZF9sb2NrLmggKi8sCiAJ
CQkJMEY2RDU0NzEyM0M1NzNFMDAwRjQwREJCIC8qIHBhc190aW55X2xhcmdlX21hcF9lbnRyeS5o
ICovLAogCQkJCTBGMzFBNjY5MjNFOEU1OTQwMDJDMENBMyAvKiBwYXNfdHJlZV9kaXJlY3Rpb24u
aCAqLywKIAkJCQkwRjhBODAwQzI1Q0Y2NEM5MDA3OTBCNEEgLyogcGFzX3RyaV9zdGF0ZS5oICov
LApAQCAtMjAwMyw2ICsyMDM3LDcgQEAKIAkJCQkwRjhBODEwMzI1RjZBNzk1MDA3OTBCNEEgLyog
aG90Yml0X2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjhBODEwNjI1RjZBNzk1
MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4
QTgxMDIyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9oZWFwX2lubmFyZHMuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTJDQjlCMTU5Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0
X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFNzcyMjlGMDEwRjAwNEY0MTY2IC8qIGlz
b19oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU1NjIyOTc0MzM1MDA0RjQxNjYgLyog
aXNvX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVGRTdBNDI1QjYxNEYyMDAx
ODU5RkMgLyogaXNvX2hlYXBfaW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMDYyLDcgKzIw
OTcsNiBAQAogCQkJCTBGOUExRDQxMjU1QUYyNzkwMEM4RDExQiAvKiBwYXNfYml0Zml0X3ZpZXdf
aW5saW5lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMDQyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19iaXR2ZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTA1MjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkM5
NzFDRkIyNzhFMTFDMzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVCNjA4NDIzNUU1NzIwMDBDQUU2MjkgLyogcGFzX2Jv
b3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTA4
MjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjMxQTY2NjIzRThBOTQyMDAyQzBDQTMgLyogcGFzX2NhcnRlc2lhbl90cmVl
LmggaW4gSGVhZGVycyAqLywKQEAgLTIxMDYsNiArMjE0MCw3IEBACiAJCQkJMEY2RDU2NkQyM0NC
RDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkwRjE0ODcxNTI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX2NvbXBh
Y3Rfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
NkQ1NjY1MjNDQkQxOUQwMEY0MERCQiAvKiBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX3ZpZXcuaCBp
biBIZWFkZXJzICovLAorCQkJCTJDNDczMTUyMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbW1hcF9j
YXBhYmlsaXR5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjZENTY0RTIzQ0FCQTY1MDBGNDBEQkIg
LyogcGFzX2NvbXBhY3RfdGFnZ2VkX2F0b21pY19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
OUExRDFFMjU1OTk2MTcwMEM4RDExQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcGFnZV9ncmFudWxl
X3VzZV9jb3VudF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjRCMjNDQUExQkEwMEY0
MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfcHRyLmggaW4gSGVhZGVycyAqLywKQEAgLTIxMTMs
NiArMjE0OCw3IEBACiAJCQkJMEY2RDU2NjIyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0
X3Vuc2lnbmVkX3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNEVDMzkyMzRBOTFFMzAwQjcx
MEEzIC8qIHBhc19jb21wdXRlX3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZFN0VFMEEyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jb25maWcuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJDNDczMTUzMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZV9taW5faGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NUVGREEyMkUyQkVDNzAw
M0EzNjJCIC8qIHBhc19jb25maWdfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMyOUEy
QjIzRjFENjM2MDBBMTMzQzQgLyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dp
dGhfcmVzZXJ2ZWRfbWVtb3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU2NjIyOUUxNEZB
MDA0RjQxNjYgLyogcGFzX2RlYWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEyOCw2ICsy
MTY0LDcgQEAKIAkJCQkwRkVBNDVDMjIzNkNFODlEMDBCNUEzNzUgLyogcGFzX2R5bmFtaWNfcHJp
bWl0aXZlX2hlYXBfbWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMyOUEyRDIzRjFENjM2MDBB
MTMzQzQgLyogcGFzX2Vuc3VyZV9oZWFwX2ZvcmNlZF9pbnRvX3Jlc2VydmVkX21lbW9yeS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMEYzMjlBMkUyM0YxRDYzNjAwQTEzM0M0IC8qIHBhc19lbnN1cmVf
aGVhcF93aXRoX3BhZ2VfY2FjaGVzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzQ3MzE1NDI3N0E1
NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCBpbiBIZWFkZXJzICovLAog
CQkJCTBGNEY2MUIxMjVBM0QwQkIwMDhCNEE4MiAvKiBwYXNfZW51bWVyYWJsZV9wYWdlX21hbGxv
Yy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYxQjUyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19l
bnVtZXJhYmxlX3JhbmdlX2xpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNEY2MTc4MjU5RDEw
NjUwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRlX2JpdGZpdF9oZWFwcy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMTU5LDcgKzIxOTYsNiBAQAogCQkJCTBGRDQ4QjU4MjNBOUFCQjMwMDI2QzQ2RCAvKiBw
YXNfZnVsbF9hbGxvY19iaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEIzQTIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX2Z1bGxfYWxsb2NfYml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRkYwOEYzQTIyQTVCNDAzMDAzODY1NzUgLyogcGFzX2dlbmVyaWNfbGFyZ2VfZnJlZV9o
ZWFwLmggaW4gSGVhZGVycyAqLywKLQkJCQkyQzk3MUNGQTI3OEUxMUMzMDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTYwMjI5RTE0
RkEwMDRGNDE2NiAvKiBwYXNfZ2V0X2FsbG9jYXRpb25fc2l6ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEZFN0VFNjQyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRfaGVhcC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY5QTFENEQyNTVGMkNENzAwQzhEMTFCIC8qIHBhc19nZXRfb2JqZWN0X2tpbmQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjE5MSw2ICsyMjI3LDcgQEAKIAkJCQkyQzQ4MTMyQTI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkU3RUUxRTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2xhcmdlX2ZyZWUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTdFRTFDMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2NvbmZpZy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNCOUIxNTgyNzhGODVFRTAwM0E4
QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjY2RDU0QjI0ODc2MEFGMDBGQzczNDcgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWNs
YXJhdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY3ODA4OTMyMkZBNTM0MTAwRjM3NDUx
IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY2NkQ1NEMyNDg3NjBCNDAwRkM3MzQ3IC8qIHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmaW5pdGlvbnMuZGVmIGluIEhlYWRlcnMgKi8sCkBAIC0yMjE1LDYgKzIyNTIsNyBAQAogCQkJ
CTBGNDVENUFCMjZBQjczMTQwMEMzNUQ5MyAvKiBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdl
cl9kYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjE0ODcxMjI2OUI3NTE4MDA2ODg3QTkgLyog
cGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzFGMjY5RjVG
Q0EwMDY4ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZV9ub2RlLmggaW4gSGVhZGVycyAqLywK
KwkJCQkyQzg1NDhCMTI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9zdXNwZW5kX2xvY2su
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTIxMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbG9j
ay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQTQ1QkQyMzZDRDVBQzAwQjVBMzc1IC8qIHBhc19s
b2NrX2ZyZWVfcmVhZF9wdHJfcHRyX2hhc2h0YWJsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY5
RTk0NTkyMzQ1MjI2MjAwOUZBRkREIC8qIHBhc19sb2cuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2
Nyw3ICsyMzA1LDYgQEAKIAkJCQkwRjRGNjBGQjI1OTc5QkM4MDA4QjRBODIgLyogcGFzX3Jvb3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTkzMjZDMjJGNzNFODUwMEZCQTcxMyAvKiBwYXNfc2Nh
dmVuZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjY4MTI3MjIyQkQ0QkY0MDAzNkEwMkIgLyog
cGFzX3NlZ21lbnRlZF92ZWN0b3IuaCBpbiBIZWFkZXJzICovLAotCQkJCTJDOTcxQ0ZGMjc4RTEz
NjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRjE0ODcxMDI2OUI3NTE4MDA2ODg3QTkgLyogcGFzX3NlZ3JlZ2F0ZWRfZGVh
bGxvY2F0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjU2MjNBOUFCQjMwMDI2
QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RDQ4QjQ3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9kaXJlY3RvcnlfYml0X3Jl
ZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMjk4LDYgKzIzMzUsNyBAQAogCQkJCTBGRDQ4
QjU3MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3Rv
cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjYwMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RTVDRjIyM0JG
QkZCOTAwQUEwQjZGIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTJDQjlCMTVCMjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9j
b21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI2NDIzQTlBQkIz
MDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuaCBpbiBIZWFkZXJzICov
LAogCQkJCTBGMTQ4NzIxMjY5RjVGQ0EwMDY4ODdBOSAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeV9jcmVhdGlvbl9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkQ0OEI1NDIzQTlB
QkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfaW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yNjA4LDE0ICsyNjQ2LDE2IEBACiAJCQkJMEZDNjgyMzgyMTI5RDRF
RTAwM0M2QTEzIC8qIENvYWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQzQ4MTMy
RDI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGQzY4MjMxMjEyOUNCNDYwMDNDNkExMyAvKiBFeHRlbmRlZEdDRFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTJDQjlCMTVEMjc4Rjg2MUIwMDNBOEMxQiAvKiBMb3RzT2ZI
ZWFwc0FuZFRocmVhZHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMTUyMTI0OEE3OTAw
M0M2QTEzIC8qIEhhc2h0YWJsZVRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJDM0QwRkM3
MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwRkVBNDVDNTIzNkUxMEFBMDBCNUEzNzUgLyogSXNvRHluYW1pY1ByaW1p
dGl2ZUhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkExODU0NjIzNkIzQzgyMDAz
NjA5QUQgLyogSXNvSGVhcENoYW9zVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMjQ4
RkQyMzBDQzRDQjAwNzcyMDJFIC8qIElzb0hlYXBQYWdlU2hhcmluZ1Rlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovLAorCQkJCTJDNzM0QzkwMjc3NjgwRUYwMDE3QkZGRSAvKiBNZW1hbGlnblRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjY3MjNCNTg5OTEwMDI2QzQ2RCAvKiBJc29IZWFw
UGFydGlhbEFuZEJhc2VsaW5lVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMkNCOUIxNTMy
NzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRjVCNjA5NDIzNUU5MTk5MDBDQUU2MjkgLyogSXNvSGVhcFJlc2VydmVkTWVtb3J5
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkM0NzMxNjIyNzdENEM5RTAwQjYyQzQ5IC8q
IFRMQ0RlY29tbWl0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkNFMkFFMzUyNzVBOTUz
RTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGNTE5M0U3
MjY2QUU1RDQwMDQ4M0EyQyAvKiBKSVRIZWFwVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZDNjQxOTEyMTM3NDVGQTAwNDBDRTVFIC8qIExhcmdlRnJlZUhlYXBUZXN0cy5jcHAgaW4gU291
cmNlcyAqLywKQEAgLTI2NDEsOSArMjY4MSwxMSBAQAogCQkJCTBGOEE4MDY4MjVFRUNDMUQwMDc5
MEI0QSAvKiBibWFsbG9jX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkyQzExRTg5
MTI3MjhBODkzMDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmMgaW4gU291cmNlcyAqLywKIAkJCQkw
RjhBODEwNDI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXAuYyBpbiBTb3VyY2VzICovLAor
CQkJCTJDODU0OEIyMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFkX3N1c3BlbmRfbG9jay5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4QTgxMDEyNUY2QTc5NTAwNzkwQjRBIC8qIGhvdGJpdF9o
ZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZFN0VFNzYyMjlGMDEwRjAwNEY0MTY2
IC8qIGlzb19oZWFwLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RUU1NzIyOTc0MzM1MDA0RjQx
NjYgLyogaXNvX2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKKwkJCQkyQzQ3MzE2QTI3N0Q0
RUE4MDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGNUU1Q0YwMjNCRUY1NTMwMEFBMEI2RiAvKiBpc29fdGVzdF9oZWFwLmMgaW4gU291
cmNlcyAqLywKIAkJCQkwRjVFNUNFQzIzQkVGMzYwMDBBQTBCNkYgLyogaXNvX3Rlc3RfaGVhcF9j
b25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGNTlBMzlFMjY2ODQ3MEUwMEEzODY1NyAvKiBq
aXRfaGVhcC5jIGluIFNvdXJjZXMgKi8sCkBAIC0yNjk3LDcgKzI3MzksNiBAQAogCQkJCTBGNEY2
MTFCMjU5ODM4QjEwMDhCNEE4MiAvKiBwYXNfZW51bWVyYXRvcl9yZWdpb24uYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGMTkzMjU2MjJFRDA0QTYwMEZCQTcxMyAvKiBwYXNfZXBvY2guYyBpbiBTb3Vy
Y2VzICovLAogCQkJCTBGRDQ4QjM0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZXhjbHVzaXZlX3Zp
ZXdfdGVtcGxhdGVfbWVtb190YWJsZS5jIGluIFNvdXJjZXMgKi8sCi0JCQkJMkM5NzFDRkUyNzhF
MTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4gU291
cmNlcyAqLywKIAkJCQkyQzQ4MTMyODI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVf
bWVtb3J5LmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RURCQTIyOTYwMTQyMDA0RjQxNjYgLyog
cGFzX2V4dGVuZGVkX2djZC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZGMDhGNDMyMkE2MjdDMTAw
Mzg2NTc1IC8qIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcC5jIGluIFNvdXJjZXMgKi8sCkBAIC0y
NzU3LDYgKzI3OTgsNyBAQAogCQkJCTBGOTdFNjMwMjJBOUFBQzEwMEMzNTVGOCAvKiBwYXNfc2Vn
cmVnYXRlZF9wYWdlX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNUUyM0E5QUJC
MzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX2tpbmQuYyBpbiBTb3VyY2Vz
ICovLAogCQkJCTBGRDQ4QjRDMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXcuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDQjlCMTVBMjc4Rjg1RUUwMDNBOEMxQiAv
KiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEZENDhCNDgyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGRDQ4QjJFMjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTJDMzQw
MDAyMjc1ODE2ODcwMDU1NjVDQiAvKiBwYXNfcGFnZV9iYXNlX2NvbmZpZy5jIGluIFNvdXJjZXMg
Ki8sCkBAIC0yODk1LDcgKzI5MzcsNyBAQAogCQkJCQkiREVCVUc9MSIsCiAJCQkJCSIkKGluaGVy
aXRlZCkiLAogCQkJCSk7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTQ7CisJ
CQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExfRkFTVF9NQVRIID0g
WUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CiAJCQkJU0RLUk9PVCA9
IG1hY29zeDsKQEAgLTI5MTEsNyArMjk1Myw3IEBACiAJCQkJRFlMSUJfQ09NUEFUSUJJTElUWV9W
RVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwogCQkJCUVYRUNVVEFC
TEVfUFJFRklYID0gbGliOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0Owor
CQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9
IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNES1JPT1Qg
PSBtYWNvc3g7CkBAIC0yOTMzLDcgKzI5NzUsNyBAQAogCQkJCQkiREVCVUc9MSIsCiAJCQkJCSIk
KGluaGVyaXRlZCkiLAogCQkJCSk7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTAu
MTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExfRkFTVF9N
QVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CiAJCQkJU0RL
Uk9PVCA9IG1hY29zeDsKQEAgLTI5NTEsNyArMjk5Myw3IEBACiAJCQkJRFlMSUJfQ09NUEFUSUJJ
TElUWV9WRVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwogCQkJCUVY
RUNVVEFCTEVfUFJFRklYID0gbGliOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEw
LjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1Rf
TUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJCVNE
S1JPT1QgPSBtYWNvc3g7CkBAIC0yOTczLDcgKzMwMTUsNyBAQAogCQkJCQkiREVCVUc9MSIsCiAJ
CQkJCSIkKGluaGVyaXRlZCkiLAogCQkJCSk7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
ID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExf
RkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CiAJ
CQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTI5OTEsNyArMzAzMyw3IEBACiAJCQkJRFlMSUJfQ09N
UEFUSUJJTElUWV9WRVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwog
CQkJCUVYRUNVVEFCTEVfUFJFRklYID0gbGliOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdF
VCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRM
X0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwog
CQkJCVNES1JPT1QgPSBtYWNvc3g7CkBAIC0zMDEzLDcgKzMwNTUsNyBAQAogCQkJCQkiREVCVUc9
MSIsCiAJCQkJCSIkKGluaGVyaXRlZCkiLAogCQkJCSk7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJ
CQlNVExfRkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CiAJCQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTMwMzEsNyArMzA3Myw3IEBACiAJCQkJRFlM
SUJfQ09NUEFUSUJJTElUWV9WRVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04g
PSAxOwogCQkJCUVYRUNVVEFCTEVfUFJFRklYID0gbGliOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJ
CQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFN
RSkiOwogCQkJCVNES1JPT1QgPSBtYWNvc3g7CkBAIC0zMTU2LDcgKzMxOTgsNyBAQAogCQkJCUdD
Q19XQVJOX1VOS05PV05fUFJBR01BUyA9IFlFUzsKIAkJCQlHQ0NfV0FSTl9VTlVTRURfTEFCRUwg
PSBZRVM7CiAJCQkJR0NDX1dBUk5fVU5VU0VEX1BBUkFNRVRFUiA9IFlFUzsKLQkJCQlNQUNPU1hf
REVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQg
PSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJT1RIRVJfQ0ZMQUdTID0gIi1E
TElCUEFTPTEiOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CkBAIC0zMTg5
LDcgKzMyMzEsNyBAQAogCQkJCUdDQ19XQVJOX1VOS05PV05fUFJBR01BUyA9IFlFUzsKIAkJCQlH
Q0NfV0FSTl9VTlVTRURfTEFCRUwgPSBZRVM7CiAJCQkJR0NDX1dBUk5fVU5VU0VEX1BBUkFNRVRF
UiA9IFlFUzsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNP
U1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJ
CQkJT1RIRVJfQ0ZMQUdTID0gIi1ETElCUEFTPTEiOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRB
UkdFVF9OQU1FKSI7CkBAIC0zMjEzLDcgKzMyNTUsNyBAQAogCQkJCQkiREVCVUc9MSIsCiAJCQkJ
CSIkKGluaGVyaXRlZCkiLAogCQkJCSk7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0g
MTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExfRkFT
VF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CiAJCQkJ
U0RLUk9PVCA9IG1hY29zeDsKQEAgLTMyMzEsNyArMzI3Myw3IEBACiAJCQkJRFlMSUJfQ09NUEFU
SUJJTElUWV9WRVJTSU9OID0gMTsKIAkJCQlEWUxJQl9DVVJSRU5UX1ZFUlNJT04gPSAxOwogCQkJ
CUVYRUNVVEFCTEVfUFJFRklYID0gbGliOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9
IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZB
U1RfTUFUSCA9IFlFUzsKIAkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwogCQkJ
CVNES1JPT1QgPSBtYWNvc3g7CkBAIC0zMjkzLDcgKzMzMzUsNyBAQAogCQkJCUdDQ19XQVJOX1VO
VVNFRF9GVU5DVElPTiA9IFlFUzsKIAkJCQlHQ0NfV0FSTl9VTlVTRURfVkFSSUFCTEUgPSBZRVM7
CiAJCQkJTExWTV9ESVIgPSAiJChTUkNST09UKS9jbGFuZytsbHZtLWludGVybmFsIjsKLQkJCQlN
QUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMC4xMzsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAxMS4wOwogCQkJCU1UTF9FTkFCTEVfREVCVUdfSU5GTyA9IElOQ0xVREVfU09VUkNF
OwogCQkJCU9OTFlfQUNUSVZFX0FSQ0ggPSBZRVM7CiAJCQkJU0RLUk9PVCA9IG1hY29zeC5pbnRl
cm5hbDsKQEAgLTMzNTIsNyArMzM5NCw3IEBACiAJCQkJR0NDX1dBUk5fVU5VU0VEX0ZVTkNUSU9O
ID0gWUVTOwogCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJMRSA9IFlFUzsKIAkJCQlMTFZNX0RJ
UiA9ICIkKFNSQ1JPT1QpL2NsYW5nK2xsdm0taW50ZXJuYWwiOwotCQkJCU1BQ09TWF9ERVBMT1lN
RU5UX1RBUkdFVCA9IDEwLjEzOworCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7
CiAJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gTk87CiAJCQkJU0RLUk9PVCA9IG1hY29zeC5p
bnRlcm5hbDsKIAkJCQlTVVBQT1JURURfUExBVEZPUk1TID0gIm1hY29zeCBpcGhvbmVvcyI7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmln
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvYm1hbGxv
Y19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDYgKzM4LDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogI2RlZmluZSBCTUFMTE9DX01JTkFMSUdO
X1NISUZUICgoc2l6ZV90KTQpCiAjZGVmaW5lIEJNQUxMT0NfTUlOQUxJR05fU0laRSAoKHNpemVf
dCkxIDw8IEJNQUxMT0NfTUlOQUxJR05fU0hJRlQpCiAKKyNkZWZpbmUgQk1BTExPQ19TTUFMTF9T
SEFSSU5HX1NISUZUIDQKKwogUEFTX0FQSSB2b2lkIGJtYWxsb2NfaGVhcF9jb25maWdfYWN0aXZh
dGUodm9pZCk7CiAKICNkZWZpbmUgQk1BTExPQ19IRUFQX0NPTkZJRyBQQVNfQkFTSUNfSEVBUF9D
T05GSUcoIFwKQEAgLTQ4LDcgKzUwLDcgQEAgUEFTX0FQSSB2b2lkIGJtYWxsb2NfaGVhcF9jb25m
aWdfYWN0aXZhdAogICAgIC5kdW1wX3R5cGUgPSBibWFsbG9jX3R5cGVfYXNfaGVhcF90eXBlX2R1
bXAsIFwKICAgICAuY2hlY2tfZGVhbGxvY2F0aW9uID0gZmFsc2UsIFwKICAgICAuc21hbGxfc2Vn
cmVnYXRlZF9taW5fYWxpZ25fc2hpZnQgPSBCTUFMTE9DX01JTkFMSUdOX1NISUZULCBcCi0gICAg
LnNtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmluZ19zaGlmdCA9IFBBU19TTUFMTF9TSEFSSU5HX1NISUZU
LCBcCisgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfc2hhcmluZ19zaGlmdCA9IEJNQUxMT0NfU01BTExf
U0hBUklOR19TSElGVCwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3BhZ2Vfc2l6ZSA9IFBBU19T
TUFMTF9QQUdFX0RFRkFVTFRfU0laRSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX3dhc3RlYWdl
X2hhbmRpY2FwID0gUEFTX1NNQUxMX1BBR0VfSEFORElDQVAsIFwKICAgICAuc21hbGxfZXhjbHVz
aXZlX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2RlID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X3NpemVfb2JsaXZpb3VzX2xvZ2dpbmdfbW9kZSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmMJKHJldmlzaW9uIDI4OTUw
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5j
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNyArMjIzLDcgQEAgcGFzX2FsaWduZWRfYWxsb2NhdGlv
bl9yZXN1bHQgaml0X2FsaWduZQogICAgIGFsaWduZWRfc2l6ZSA9IHBhc19yb3VuZF91cF90b19w
b3dlcl9vZl8yKHNpemUsIGFsaWdubWVudC5hbGlnbm1lbnQpOwogCiAgICAgYWxsb2NhdGlvbl9y
ZXN1bHQgPSBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGVfdHJ5X2Fs
bG9jYXRlX3dpdGhfYWxpZ25tZW50KAotICAgICAgICAmaml0X2xhcmdlX2ZyZXNoX21lbW9yeV9o
ZWFwLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwgZmFsc2UpOworICAgICAgICAmaml0X2xhcmdl
X2ZyZXNoX21lbW9yeV9oZWFwLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwgY29uZmlnLCBmYWxz
ZSk7CiAgICAgaWYgKCFhbGxvY2F0aW9uX3Jlc3VsdC5kaWRfc3VjY2VlZCkKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0
X2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzMsNiArMTczLDcgQEAgUEFTX0hFQVBfQ09ORklHX1NQRUNJQUxJWkFUSU9OX0RFQ0xBUkFU
SQogICAgICAgICAuYWxpZ25lZF9hbGxvY2F0b3IgPSBqaXRfYWxpZ25lZF9hbGxvY2F0b3IsIFwK
ICAgICAgICAgLmFsaWduZWRfYWxsb2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCA9IHRydWUs
IFwKICAgICAgICAgLmRlYWxsb2NhdG9yID0gTlVMTCwgXAorICAgICAgICAubW1hcF9jYXBhYmls
aXR5ID0gcGFzX21heV9ub3RfbW1hcCwgXAogICAgICAgICAucm9vdF9kYXRhID0gJmppdF9yb290
X2RhdGEsIFwKICAgICAgICAgLnByZXBhcmVfdG9fZW51bWVyYXRlID0gaml0X3ByZXBhcmVfdG9f
ZW51bWVyYXRlLCBcCiAgICAgICAgIC5mb3JfZWFjaF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkgPSBq
aXRfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBcCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvbWluYWxpZ24z
Ml9oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9taW5hbGlnbjMyX2hlYXBfY29uZmlnLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDYgKzQxLDggQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogI2RlZmluZSBNSU5BTElHTjMyX01J
TkFMSUdOX1NISUZUICgoc2l6ZV90KTUpCiAjZGVmaW5lIE1JTkFMSUdOMzJfTUlOQUxJR05fU0la
RSAoKHNpemVfdCkxIDw8IE1JTkFMSUdOMzJfTUlOQUxJR05fU0hJRlQpCiAKKyNkZWZpbmUgTUlO
QUxJR04zMl9TTUFMTF9TSEFSSU5HX1NISUZUIDMKKwogUEFTX0FQSSB2b2lkIG1pbmFsaWduMzJf
aGVhcF9jb25maWdfYWN0aXZhdGUodm9pZCk7CiAKICNkZWZpbmUgTUlOQUxJR04zMl9IRUFQX0NP
TkZJRyBQQVNfQkFTSUNfSEVBUF9DT05GSUcoIFwKQEAgLTUxLDEzICs1MywxMyBAQCBQQVNfQVBJ
IHZvaWQgbWluYWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpCiAgICAgLmR1bXBfdHlwZSA9IHBhc19z
aW1wbGVfdHlwZV9hc19oZWFwX3R5cGVfZHVtcCwgXAogICAgIC5jaGVja19kZWFsbG9jYXRpb24g
PSBmYWxzZSwgXAogICAgIC5zbWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCA9IE1JTkFM
SUdOMzJfTUlOQUxJR05fU0hJRlQsIFwKLSAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3No
aWZ0ID0gUEFTX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF9z
aGFyaW5nX3NoaWZ0ID0gTUlOQUxJR04zMl9TTUFMTF9TSEFSSU5HX1NISUZULCBcCiAgICAgLnNt
YWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXplID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBc
CiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfd2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFH
RV9IQU5ESUNBUCwgXAogICAgIC5zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9sb2dnaW5nX21v
ZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19t
b2RlLCBcCiAgICAgLnNtYWxsX3NoYXJlZF9zZWdyZWdhdGVkX2xvZ2dpbmdfbW9kZSA9IHBhc19z
ZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9zaXplX29ibGl2aW91c19sb2dnaW5nX21vZGUsIFwKICAg
ICAuc21hbGxfZXhjbHVzaXZlX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2liaWxp
dHlfb3B0aW1pemF0aW9uID0gdHJ1ZSwgXAotICAgIC5zbWFsbF9zaGFyZWRfc2VncmVnYXRlZF9l
bmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSB0cnVlLCBcCisgICAg
LnNtYWxsX3NoYXJlZF9zZWdyZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29w
dGltaXphdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfdXNlX3JldmVyc2Vk
X2N1cnJlbnRfd29yZCA9IHRydWUsIFwKICAgICAuZW5hYmxlX3ZpZXdfY2FjaGUgPSB0cnVlLCBc
CiAgICAgLnVzZV9zbWFsbF9iaXRmaXQgPSB0cnVlLCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmMJKHJl
dmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfYWxsb2NhdG9yLmMJKHdvcmtpbmcgY29weSkKQEAgLTM2LDYgKzM2LDE4IEBACiAjaW5j
bHVkZSAicGFzX2Vwb2NoLmgiCiAjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2Fj
dGlvbi5oIgogCit2b2lkIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbnN0cnVjdChwYXNfYml0Zml0
X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXplX2NsYXNzKQoreworICAgIGFsbG9jYXRvci0+
c2l6ZV9jbGFzcyA9IHNpemVfY2xhc3M7CisgICAgYWxsb2NhdG9yLT52aWV3ID0gTlVMTDsKK30K
Kwordm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9zdG9wKHBhc19iaXRmaXRfYWxsb2NhdG9yKiBh
bGxvY2F0b3IpCit7CisgICAgYWxsb2NhdG9yLT52aWV3ID0gTlVMTDsKK30KKwogYm9vbCBwYXNf
Yml0Zml0X2FsbG9jYXRvcl9jb21taXRfdmlldyhwYXNfYml0Zml0X3ZpZXcqIHZpZXcsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19iaXRmaXRfcGFnZV9jb25maWcq
IGNvbmZpZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
aG9sZF9tb2RlIGNvbW1pdF9sb2NrX2hvbGRfbW9kZSkKQEAgLTE3Nyw3ICsxODksNyBAQCBib29s
IHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhCiAgICAgICAgIFBBU19BU1NFUlQo
IXZpZXctPmlzX293bmVkKTsKIAogICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KAotICAg
ICAgICAgICAgdmlldy0+cGFnZV9ib3VuZGFyeSwgY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSk7Cisg
ICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9zaXplLCBj
b25maWctPmJhc2UuaGVhcF9jb25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICBj
b25maWctPmJhc2UuY3JlYXRlX3BhZ2VfaGVhZGVyKAogICAgICAgICAgICAgdmlldy0+cGFnZV9i
b3VuZGFyeSwKICAgICAgICAgICAgIHBhc19wYWdlX2tpbmRfZm9yX2JpdGZpdF92YXJpYW50KGNv
bmZpZy0+dmFyaWFudCksCkBAIC0yMTgsNiArMjMwLDcgQEAgcGFzX2JpdGZpdF92aWV3KiBwYXNf
Yml0Zml0X2FsbG9jYXRvcl9maQogICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogc2l6ZV9jbGFz
czsKICAgICBwYXNfYml0Zml0X3ZpZXcqIG5ld192aWV3OwogICAgIHVuc2lnbmVkIHZpZXdfaW5k
ZXg7CisgICAgcGFzX2JpdGZpdF92aWV3KiBhbGxvY2F0b3JfdmlldzsKIAogICAgIFBBU19VTlVT
RURfUEFSQU0oYWxpZ25tZW50KTsKIApAQCAtMjQxLDcgKzI1NCw4IEBAIHBhc19iaXRmaXRfdmll
dyogcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmkKICAgICAKICAgICAgICBOT1RFOiBUaGVyZSBhcmUg
c29tZSBhc3BlY3RzIG9mIHRoaXMgdGhhdCB3ZSBjb3VsZCBkbyBldmVuIGlmIHRoZSB2aWV3IHdh
cyBkaXNwbGFjZWQuIExpa2UsCiAgICAgICAgd2UgY291bGQgdXBkYXRlIHRoZSBtYXhfZnJlZS4g
Ki8KLSAgICBpZiAodmlldyA9PSBhbGxvY2F0b3ItPnZpZXcgJiYgbGFyZ2VzdF9hdmFpbGFibGUg
PCBzaXplX2NsYXNzLT5zaXplKSB7CisgICAgYWxsb2NhdG9yX3ZpZXcgPSBhbGxvY2F0b3ItPnZp
ZXc7CisgICAgaWYgKCh2aWV3ID09IGFsbG9jYXRvcl92aWV3IHx8ICFhbGxvY2F0b3Jfdmlldykg
JiYgbGFyZ2VzdF9hdmFpbGFibGUgPCBzaXplX2NsYXNzLT5zaXplKSB7CiAgICAgICAgIHVuc2ln
bmVkIGluZGV4OwogICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIGN1cnJlbnRfc2l6ZV9j
bGFzczsKICAgICAgICAgcGFzX3ZlcnNpb25lZF9maWVsZCBmaXJzdF9mcmVlX3ZhbHVlOwpJbmRl
eDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3Iu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0
Zml0X2FsbG9jYXRvci5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw2ICs0NiwxMSBAQCBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3IgewogICAgIHBhc19iaXRm
aXRfdmlldyogdmlldzsKIH07CiAKK1BBU19BUEkgdm9pZCBwYXNfYml0Zml0X2FsbG9jYXRvcl9j
b25zdHJ1Y3QocGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBzaXpl
X2NsYXNzKTsKKworUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfYWxsb2NhdG9yX3N0b3AocGFzX2Jp
dGZpdF9hbGxvY2F0b3IqIGFsbG9jYXRvcik7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRp
ZiAvKiBQQVNfQklURklUX0FMTE9DQVRPUl9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3Jf
aW5saW5lcy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvcl9pbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTUzLDYgKzUzLDcgQEAgcGFzX2JpdGZpdF9hbGxvY2F0b3JfZmluaXNoX2ZhaWxpbmcocGFzXwog
CiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3Vs
dAogcGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKHBhc19iaXRmaXRfYWxsb2NhdG9y
KiBhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvciogbG9jYWxfYWxsb2NhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNpemVfdCBzaXplLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNp
emVfdCBhbGlnbm1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZyBjb25maWcpCkBAIC04MCw3ICs4MSwxOCBAQCBwYXNfYml0Zml0X2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2JpCiAgICAgICAgIHNpemVfdCBieXRlc19jb21taXR0
ZWQ7CiAgICAgICAgIAogICAgICAgICBpZiAoUEFTX1VOTElLRUxZKCF2aWV3KSkgeworICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGU7CisgICAgICAgICAgICAKKyAgICAg
ICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT52aWV3KTsKKworICAgICAgICAg
ICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKKyAgICAgICAgICAg
IGlmIChjYWNoZSkgeworICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3Rv
cF9sb2NhbF9hbGxvY2F0b3JzX2lmX25lY2Vzc2FyeSgKKyAgICAgICAgICAgICAgICAgICAgY2Fj
aGUsIGxvY2FsX2FsbG9jYXRvciwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworICAgICAgICAgICAg
fQorCiAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoIWFsbG9jYXRvci0+dmlldyk7Cisg
ICAgICAgICAgICAKICAgICAgICAgICAgIHZpZXcgPSBwYXNfYml0Zml0X3NpemVfY2xhc3NfZ2V0
X2ZpcnN0X2ZyZWVfdmlldygKICAgICAgICAgICAgICAgICBhbGxvY2F0b3ItPnNpemVfY2xhc3Ms
IChwYXNfYml0Zml0X3BhZ2VfY29uZmlnKiljb25maWcuYmFzZS5wYWdlX2NvbmZpZ19wdHIpOwog
ICAgICAgICAgICAgaWYgKCF2aWV3KQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2JpdGZpdF9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jCShyZXZpc2lvbiAyODk1
MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVj
dG9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC01MTcsNyArNTE3LDggQEAgcGFzX3BhZ2Vfc2hhcmlu
Z19wb29sX3Rha2VfcmVzdWx0IHBhc19iaQogCiAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVj
b21taXRfbG9nX2FkZF9hbHJlYWR5X2xvY2tlZCgKICAgICAgICAgICAgICAgICBkZWNvbW1pdF9s
b2csCi0gICAgICAgICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKGJhc2UsIGJhc2Ug
KyBwYWdlX2NvbmZpZy0+YmFzZS5wYWdlX3NpemUsIGNvbW1pdF9sb2NrKSwKKyAgICAgICAgICAg
ICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoYmFzZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5i
YXNlLnBhZ2Vfc2l6ZSwgY29tbWl0X2xvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhZ2VfY29uZmlnLT5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBh
YmlsaXR5KSwKICAgICAgICAgICAgICAgICBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICAgICAg
fQogICAgICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19i
aXRmaXRfcGFnZV9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcu
aAkod29ya2luZyBjb3B5KQpAQCAtNDEsMTUgKzQxLDE4IEBAIHN0cnVjdCBwYXNfYml0Zml0X2Fs
bG9jYXRvcjsKIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2U7CiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZzsKIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3N0cnVjdCBwYXNfbG9j
YWxfYWxsb2NhdG9yOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9hbGxvY2F0b3IgcGFzX2Jp
dGZpdF9hbGxvY2F0b3I7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2UgcGFzX2JpdGZp
dF9wYWdlOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2JpdGZpdF9wYWdlX2NvbmZpZyBwYXNfYml0Zml0
X3BhZ2VfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBfcnVudGltZV9jb25maWcgcGFz
X2hlYXBfcnVudGltZV9jb25maWc7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbG9jYWxfYWxsb2NhdG9y
IHBhc19sb2NhbF9hbGxvY2F0b3I7CiAKIHR5cGVkZWYgdm9pZCogKCpwYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX3BhZ2VfYWxsb2NhdG9yKSgKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwKiwgcGFzX3Bo
eXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pOwogdHlwZWRlZiBwYXNfZmFz
dF9wYXRoX2FsbG9jYXRpb25fcmVzdWx0ICgqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19zcGVjaWFs
aXplZF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKSgKICAgICBwYXNfYml0Zml0X2FsbG9jYXRvciog
YWxsb2NhdG9yLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGxvY2FsX2FsbG9jYXRvciwKICAg
ICBzaXplX3Qgc2l6ZSwKICAgICBzaXplX3QgYWxpZ25tZW50KTsKIHR5cGVkZWYgdm9pZCAoKnBh
c19iaXRmaXRfcGFnZV9jb25maWdfc3BlY2lhbGl6ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFn
ZSkoCkBAIC0xMjIsNiArMTI1LDcgQEAgUEFTX0FQSSBleHRlcm4gYm9vbCBwYXNfbWFyZ2VfYml0
Zml0X3BhZwogICAgIFBBU19BUEkgcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdCBcCiAg
ICAgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFsaXplZF9hbGxvY2F0b3Jf
dHJ5X2FsbG9jYXRlKCBcCiAgICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3Is
IFwKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogbG9jYWxfYWxsb2NhdG9yLCBcCiAgICAg
ICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAgIHNpemVfdCBhbGlnbm1lbnQpOyBcCiAgICAgUEFT
X0FQSSB2b2lkIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBfc3BlY2lhbGl6ZWRfcGFn
ZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSggXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19p
bmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWdfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zNiwxMSArMzYsMTIgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgIHBhc19mYXN0X3BhdGhf
YWxsb2NhdGlvbl9yZXN1bHQgXAogICAgIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAjIyBf
c3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSggXAogICAgICAgICBwYXNfYml0Zml0
X2FsbG9jYXRvciogYWxsb2NhdG9yLCBcCisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGxv
Y2FsX2FsbG9jYXRvciwgXAogICAgICAgICBzaXplX3Qgc2l6ZSwgXAogICAgICAgICBzaXplX3Qg
YWxpZ25tZW50KSBcCiAgICAgeyBcCiAgICAgICAgIHJldHVybiBwYXNfYml0Zml0X2FsbG9jYXRv
cl90cnlfYWxsb2NhdGUoIFwKLSAgICAgICAgICAgIGFsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50
LCAocGFnZV9jb25maWdfdmFsdWUpKTsgXAorICAgICAgICAgICAgYWxsb2NhdG9yLCBsb2NhbF9h
bGxvY2F0b3IsIHNpemUsIGFsaWdubWVudCwgKHBhZ2VfY29uZmlnX3ZhbHVlKSk7IFwKICAgICB9
IFwKICAgICBcCiAgICAgdm9pZCBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNp
YWxpemVkX3BhZ2VfZGVhbGxvY2F0ZV93aXRoX3BhZ2UoIFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9pbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGlu
ZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAs
NyBAQAogI2luY2x1ZGUgInBhc19iaXRmaXRfcGFnZS5oIgogI2luY2x1ZGUgInBhc19iaXRmaXRf
dmlldy5oIgogI2luY2x1ZGUgInBhc19jb21taXRfc3Bhbi5oIgorI2luY2x1ZGUgInBhc19oZWFw
X2NvbmZpZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfaW5saW5lcy5oIgogI2luY2x1ZGUg
InBhc19wYWdlX3NoYXJpbmdfcG9vbC5oIgogI2luY2x1ZGUgPHB0aHJlYWQuaD4KQEAgLTE0Niw3
ICsxNDcsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdW5zaWduZWQgcGFzX2JpCiAgICAg
ICAgIFBBU19BU1NFUlQodmlldy0+aXNfb3duZWQpOwogICAgICAgICBwYXNfbG9ja19hc3NlcnRf
aGVsZCgmdmlldy0+Y29tbWl0X2xvY2spOwogICAgICAgICAKLSAgICAgICAgcGFzX2NvbW1pdF9z
cGFuX2NvbnN0cnVjdCgmY29tbWl0X3NwYW4pOworICAgICAgICBwYXNfY29tbWl0X3NwYW5fY29u
c3RydWN0KCZjb21taXRfc3BhbiwgcGFnZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1t
YXBfY2FwYWJpbGl0eSk7CiAgICAgICAgIAogICAgICAgICBmb3IgKGdyYW51bGVfaW5kZXggPSBp
bmRleF9vZl9maXJzdF9ncmFudWxlOwogICAgICAgICAgICAgIGdyYW51bGVfaW5kZXggPD0gaW5k
ZXhfb2ZfbGFzdF9ncmFudWxlOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2NvbW1pdF9zcGFuLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbW1pdF9zcGFuLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXRfc3Bhbi5jCSh3b3JraW5nIGNv
cHkpCkBAIC0zNiwxMyArMzYsMTQgQEAKIAogc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZh
bHNlOwogCi12b2lkIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QocGFzX2NvbW1pdF9zcGFuKiBz
cGFuKQordm9pZCBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KHBhc19jb21taXRfc3Bhbiogc3Bh
biwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgaWYgKHZlcmJv
c2UpCiAgICAgICAgIHBhc19sb2coIiVwOiBjcmVhdGluZyBjb21taXQgc3Bhbi5cbiIsIHNwYW4p
OwogICAgIHNwYW4tPmluZGV4X29mX3N0YXJ0X29mX3NwYW4gPSBVSU5UUFRSX01BWDsKICAgICBz
cGFuLT5kaWRfYWRkX2ZpcnN0ID0gZmFsc2U7CiAgICAgc3Bhbi0+dG90YWxfYnl0ZXMgPSAwOwor
ICAgIHNwYW4tPm1tYXBfY2FwYWJpbGl0eSA9IG1tYXBfY2FwYWJpbGl0eTsKIH0KIAogdm9pZCBw
YXNfY29tbWl0X3NwYW5fYWRkX3RvX2NoYW5nZShwYXNfY29tbWl0X3NwYW4qIHNwYW4sIHVpbnRw
dHJfdCBncmFudWxlX2luZGV4KQpAQCAtODQsOCArODUsMTEgQEAgdm9pZCBwYXNfY29tbWl0X3Nw
YW5fYWRkX3VuY2hhbmdlZChwYXNfYwogCiBzdGF0aWMgdm9pZCBjb21taXQodm9pZCogYmFzZSwg
c2l6ZV90IHNpemUsIHZvaWQqIGFyZykKIHsKLSAgICBQQVNfQVNTRVJUKCFhcmcpOwotICAgIHBh
c19wYWdlX21hbGxvY19jb21taXQoYmFzZSwgc2l6ZSk7CisgICAgcGFzX2NvbW1pdF9zcGFuKiBz
cGFuOworCisgICAgc3BhbiA9IGFyZzsKKyAgICAKKyAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0
KGJhc2UsIHNpemUsIHNwYW4tPm1tYXBfY2FwYWJpbGl0eSk7CiB9CiAKIHZvaWQgcGFzX2NvbW1p
dF9zcGFuX2FkZF91bmNoYW5nZWRfYW5kX2NvbW1pdChwYXNfY29tbWl0X3NwYW4qIHNwYW4sCkBA
IC05Myw3ICs5Nyw3IEBAIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2FkZF91bmNoYW5nZWRfYW5kX2MK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3Qg
Z3JhbnVsZV9pbmRleCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfcGFnZV9iYXNlX2NvbmZpZyogY29uZmlnKQogewotICAgIHBhc19jb21taXRfc3Bh
bl9hZGRfdW5jaGFuZ2VkKHNwYW4sIHBhZ2UsIGdyYW51bGVfaW5kZXgsIGNvbmZpZywgY29tbWl0
LCBOVUxMKTsKKyAgICBwYXNfY29tbWl0X3NwYW5fYWRkX3VuY2hhbmdlZChzcGFuLCBwYWdlLCBn
cmFudWxlX2luZGV4LCBjb25maWcsIGNvbW1pdCwgc3Bhbik7CiB9CiAKIHR5cGVkZWYgc3RydWN0
IHsKQEAgLTExNyw3ICsxMjEsOCBAQCBzdGF0aWMgdm9pZCBkZWNvbW1pdCh2b2lkKiBiYXNlLCBz
aXplX3QgCiAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgKICAgICAgICAgICAgICh1
aW50cHRyX3QpYmFzZSwKICAgICAgICAgICAgICh1aW50cHRyX3QpYmFzZSArIHNpemUsCi0gICAg
ICAgICAgICBkYXRhLT5zcGFuLT5kaWRfYWRkX2ZpcnN0ID8gTlVMTCA6IGRhdGEtPmNvbW1pdF9s
b2NrKSwKKyAgICAgICAgICAgIGRhdGEtPnNwYW4tPmRpZF9hZGRfZmlyc3QgPyBOVUxMIDogZGF0
YS0+Y29tbWl0X2xvY2ssCisgICAgICAgICAgICBkYXRhLT5zcGFuLT5tbWFwX2NhcGFiaWxpdHkp
LAogICAgICAgICBkYXRhLT5oZWFwX2xvY2tfaG9sZF9tb2RlKTsKIH0KIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdF9zcGFuLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdF9zcGFuLmgJKHJl
dmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21taXRfc3Bhbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI3LDYgKzI3LDcgQEAKICNkZWZpbmUgUEFTX0NP
TU1JVF9TUEFOX0gKIAogI2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX21tYXBf
Y2FwYWJpbGl0eS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTQzLDkgKzQ0LDEwIEBA
IHN0cnVjdCBwYXNfY29tbWl0X3NwYW4gewogICAgIHVpbnRwdHJfdCBpbmRleF9vZl9zdGFydF9v
Zl9zcGFuOwogICAgIGJvb2wgZGlkX2FkZF9maXJzdDsKICAgICBzaXplX3QgdG90YWxfYnl0ZXM7
CisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHk7CiB9OwogCi1QQVNfQVBJ
IHZvaWQgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdChwYXNfY29tbWl0X3NwYW4qIHNwYW4pOwor
UEFTX0FQSSB2b2lkIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QocGFzX2NvbW1pdF9zcGFuKiBz
cGFuLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiBQQVNfQVBJIHZvaWQg
cGFzX2NvbW1pdF9zcGFuX2FkZF90b19jaGFuZ2UocGFzX2NvbW1pdF9zcGFuKiBzcGFuLCB1aW50
cHRyX3QgZ3JhbnVsZV9pbmRleCk7CiBQQVNfQVBJIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2FkZF91
bmNoYW5nZWQocGFzX2NvbW1pdF9zcGFuKiBzcGFuLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UsCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yLmMJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYwkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDkzIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisKKyNpZiBMSUJQQVNfRU5BQkxFRAorCisjaW5j
bHVkZSAicGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCIKKworI2luY2x1ZGUgInBhc19hbGxv
Y2F0aW9uX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19wYWdlX21hbGxvYy5oIgorCitQQVNfQkVH
SU5fRVhURVJOX0M7CisKK3ZvaWQgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY29uc3RydWN0
KHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2Nh
dGlvbl9jb25maWcpCit7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZTsKKyAgICBzaXplX3QgcGFnZV9z
aXplX3NoaWZ0OworICAgIHNpemVfdCBudW1fcGFnZXM7CisKKyAgICBwYWdlX3NpemUgPSBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOworCisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25l
ZCgodWludHB0cl90KW9iamVjdCwgcGFnZV9zaXplKSk7CisgICAgUEFTX0FTU0VSVChwYXNfaXNf
YWxpZ25lZChzaXplLCBwYWdlX3NpemUpKTsKKworICAgIG51bV9wYWdlcyA9IHNpemUgPj4gcGFn
ZV9zaXplX3NoaWZ0OworCisgICAgdmVjdG9yLT5yYXdfZGF0YSA9IGFsbG9jYXRpb25fY29uZmln
LT5hbGxvY2F0ZSgKKyAgICAgICAgbnVtX3BhZ2VzLCAicGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0
b3IvcmF3X2RhdGEiLCBwYXNfb2JqZWN0X2FsbG9jYXRpb24sIGFsbG9jYXRpb25fY29uZmlnLT5h
cmcpOworICAgIHZlY3Rvci0+c2l6ZSA9IG51bV9wYWdlczsKKworICAgIFBBU19TWVNDQUxMKG1p
bmNvcmUob2JqZWN0LCBzaXplLCB2ZWN0b3ItPnJhd19kYXRhKSk7Cit9CisKK3ZvaWQgcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3JfZGVzdHJ1Y3QocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3Iq
IHZlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qg
cGFzX2FsbG9jYXRpb25fY29uZmlnKiBhbGxvY2F0aW9uX2NvbmZpZykKK3sKKyAgICBhbGxvY2F0
aW9uX2NvbmZpZy0+ZGVhbGxvY2F0ZSgKKyAgICAgICAgdmVjdG9yLT5yYXdfZGF0YSwgdmVjdG9y
LT5zaXplLCBwYXNfb2JqZWN0X2FsbG9jYXRpb24sIGFsbG9jYXRpb25fY29uZmlnLT5hcmcpOwor
fQorCitzaXplX3QgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY291bnRfY29tbWl0dGVkKHBh
c19jb21taXR0ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IpCit7CisgICAgc2l6ZV90IHJlc3VsdDsK
KyAgICBzaXplX3QgaW5kZXg7CisgICAgcmVzdWx0ID0gMDsKKyAgICBmb3IgKGluZGV4ID0gdmVj
dG9yLT5zaXplOyBpbmRleC0tOykKKyAgICAgICAgcmVzdWx0ICs9IChzaXplX3QpcGFzX2NvbW1p
dHRlZF9wYWdlc192ZWN0b3JfaXNfY29tbWl0dGVkKHZlY3RvciwgaW5kZXgpOworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3NpemVfdCBwYXNfY291bnRfY29tbWl0dGVkX3BhZ2VzKHZvaWQqIG9i
amVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFzX2FsbG9jYXRpb25fY29uZmln
KiBhbGxvY2F0aW9uX2NvbmZpZykKK3sKKyAgICBzaXplX3QgcmVzdWx0OworICAgIHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yIHZlY3RvcjsKKyAgICBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rv
cl9jb25zdHJ1Y3QoJnZlY3Rvciwgb2JqZWN0LCBzaXplLCBhbGxvY2F0aW9uX2NvbmZpZyk7Cisg
ICAgcmVzdWx0ID0gcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY291bnRfY29tbWl0dGVkKCZ2
ZWN0b3IpOworICAgIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rlc3RydWN0KCZ2ZWN0b3Is
IGFsbG9jYXRpb25fY29uZmlnKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQQVNfRU5EX0VY
VEVSTl9DOworCisjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KKwpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmgJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAq
LworCisjaWZuZGVmIFBBU19DT01NSVRURURfUEFHRVNfVkVDVE9SX0gKKyNkZWZpbmUgUEFTX0NP
TU1JVFRFRF9QQUdFU19WRUNUT1JfSAorCisjaW5jbHVkZSAicGFzX3V0aWxzLmgiCisjaW5jbHVk
ZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8c3lzL21tYW4uaD4KKworUEFTX0JFR0lOX0VYVEVS
Tl9DOworCitzdHJ1Y3QgcGFzX2FsbG9jYXRpb25fY29uZmlnOworc3RydWN0IHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2FsbG9jYXRpb25fY29uZmlnIHBh
c19hbGxvY2F0aW9uX2NvbmZpZzsKK3R5cGVkZWYgc3RydWN0IHBhc19jb21taXR0ZWRfcGFnZXNf
dmVjdG9yIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yOworCitzdHJ1Y3QgcGFzX2NvbW1pdHRl
ZF9wYWdlc192ZWN0b3IgeworICAgIGNoYXIqIHJhd19kYXRhOworICAgIHNpemVfdCBzaXplOwor
fTsKKworUEFTX0FQSSB2b2lkIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvbnN0cnVjdChw
YXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciogdmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXNfYWxs
b2NhdGlvbl9jb25maWcqIGFsbG9jYXRpb25fY29uZmlnKTsKKworUEFTX0FQSSB2b2lkIHBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yX2Rlc3RydWN0KHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9y
KiB2ZWN0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgcGFzX2FsbG9jYXRpb25fY29uZmlnKiBhbGxvY2F0aW9uX2NvbmZpZyk7CisKK3N0
YXRpYyBpbmxpbmUgYm9vbCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9pc19jb21taXR0ZWQo
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IqIHZlY3RvciwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHBhZ2VfaW5kZXgp
Cit7CisgICAgUEFTX0FTU0VSVChwYWdlX2luZGV4IDwgdmVjdG9yLT5zaXplKTsKKyAgICByZXR1
cm4gdmVjdG9yLT5yYXdfZGF0YVtwYWdlX2luZGV4XSAmIChNSU5DT1JFX1JFRkVSRU5DRUQgfAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JTkNPUkVfUkVGRVJF
TkNFRF9PVEhFUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
TUlOQ09SRV9NT0RJRklFRF9PVEhFUiB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgTUlOQ09SRV9NT0RJRklFRCk7Cit9CisKK1BBU19BUEkgc2l6ZV90IHBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yX2NvdW50X2NvbW1pdHRlZChwYXNfY29tbWl0dGVkX3BhZ2Vz
X3ZlY3RvciogdmVjdG9yKTsKKworUEFTX0FQSSBzaXplX3QgcGFzX2NvdW50X2NvbW1pdHRlZF9w
YWdlcyh2b2lkKiBvYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBwYXNfYWxsb2NhdGlvbl9jb25maWcqIGFsbG9jYXRpb25fY29uZmlnKTsKKworUEFT
X0VORF9FWFRFUk5fQzsKKworI2VuZGlmIC8qIFBBU19DT01NSVRURURfUEFHRVNfVkVDVE9SX0gg
Ki8KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3Rf
dGFnZ2VkX3B0ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19jb21wYWN0X3RhZ2dlZF9wdHIuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC05Niw2ICs5NiwxMSBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgICAg
IH0gXAogICAgIH0gXAogICAgIFwKKyAgICBzdGF0aWMgaW5saW5lIGJvb2wgbmFtZSAjIyBfaXNf
bnVsbChuYW1lKiBwdHIpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuICEoKih1aW50cHRyX3Qq
KXB0ciAmIFBBU19DT01QQUNUX1RBR0dFRF9QVFJfTUFTSyk7IFwKKyAgICB9IFwKKyAgICBcCiAg
ICAgc3RhdGljIGlubGluZSB0eXBlIG5hbWUgIyMgX2xvYWQobmFtZSogcHRyKSBcCiAgICAgeyBc
CiAgICAgICAgIHJldHVybiBuYW1lICMjIF9wdHJfZm9yX29mZnNldCgqKHVpbnRwdHJfdCopcHRy
ICYgUEFTX0NPTVBBQ1RfVEFHR0VEX1BUUl9NQVNLKTsgXApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAor
LyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBB
U19DT01QQUNUX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9ICisjZGVmaW5lIFBBU19D
T01QQUNUX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfTk9ERV9ICisKKyNpbmNsdWRlICJwYXNf
Y29tcGFjdF90YWdnZWRfcHRyLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKK1BBU19ERUZJTkVfQ09NUEFD
VF9UQUdHRURfUFRSKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUpOworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTVBBQ1Rf
VEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
KyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAK
KyAqLworCisjaWZuZGVmIFBBU19ERUNPTU1JVF9FWENMVVNJT05fUkFOR0VfSAorI2RlZmluZSBQ
QVNfREVDT01NSVRfRVhDTFVTSU9OX1JBTkdFX0gKKworI2luY2x1ZGUgInBhc191dGlscy5oIgor
CitQQVNfQkVHSU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jh
bmdlOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSBwYXNfZGVj
b21taXRfZXhjbHVzaW9uX3JhbmdlOworCitzdHJ1Y3QgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9y
YW5nZSB7CisgICAgdWludHB0cl90IHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0OworICAgIHVp
bnRwdHJfdCBlbmRfb2ZfcG9zc2libGVfZGVjb21taXQ7Cit9OworCitzdGF0aWMgaW5saW5lIGJv
b2wgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19lbXB0eShwYXNfZGVjb21taXRfZXhj
bHVzaW9uX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVybiByYW5nZS5zdGFydF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdCA9PSByYW5nZS5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQ7Cit9CisKK3N0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2NvbnRpZ3VvdXMo
cGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4gcmFuZ2Uu
c3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPCByYW5nZS5lbmRfb2ZfcG9zc2libGVfZGVjb21t
aXQ7Cit9CisKKy8qIFRoaXMgbWVhbnMgdGhhdCB0aGUgc2V0IG9mIHRoaW5ncyB0aGF0IGNvdWxk
IGJlIGRlY29tbWl0dGVkIGlzIGFueXRoaW5nIGJlZm9yZSBlbmRfb2ZfcG9zc2libGVfZGVjb21t
aXQKKyAgIChleGNsdXNpdmUpIGFuZCBhZnRlciBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCAo
aW5jbHVzaXZlKS4gKi8KK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfZGVjb21taXRfZXhjbHVzaW9u
X3JhbmdlX2lzX2ludmVydGVkKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmFuZ2UpCit7
CisgICAgcmV0dXJuIHJhbmdlLnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID4gcmFuZ2UuZW5k
X29mX3Bvc3NpYmxlX2RlY29tbWl0OworfQorCitzdGF0aWMgaW5saW5lIHBhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UKK3Bhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfY3JlYXRlX2ludmVy
dGVkKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcmFuZ2UpCit7CisgICAgcGFzX2RlY29t
bWl0X2V4Y2x1c2lvbl9yYW5nZSByZXN1bHQ7CisgICAgcmVzdWx0LnN0YXJ0X29mX3Bvc3NpYmxl
X2RlY29tbWl0ID0gcmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0OworICAgIHJlc3VsdC5l
bmRfb2ZfcG9zc2libGVfZGVjb21taXQgPSByYW5nZS5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dDsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYg
LyogUEFTX0RFQ09NTUlUX0VYQ0xVU0lPTl9SQU5HRV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRfZGVj
b21taXRfbG9nLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuYwkod29ya2luZyBjb3B5KQpAQCAt
MjM2LDcgKzIzNiw3IEBAIHN0YXRpYyB2b2lkIGRlY29tbWl0X2FsbChwYXNfZGVmZXJyZWRfZGUK
ICAgICAgICAgICAgICAgICAgICAgICAgICh2b2lkKilyYW5nZS5lbmQpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCi0gICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoKHZv
aWQqKXJhbmdlLmJlZ2luLCBwYXNfdmlydHVhbF9yYW5nZV9zaXplKHJhbmdlKSk7CisgICAgICAg
ICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQoKHZvaWQqKXJhbmdlLmJlZ2luLCBwYXNfdmly
dHVhbF9yYW5nZV9zaXplKHJhbmdlKSwgcmFuZ2UubW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgUEFTX0FTU0VSVChlbmRfaW5kZXgpOwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVf
bWVtb3J5LmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zNDQsOSAr
MzQ0LDE0IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBib29sIHNjYXZlbmdlX2kKICAgICAg
ICAgICAgbWVtb3J5LiBTbywgaXQgbWlnaHQgaGFwcGVuIGFmdGVyIHdlIGhhdmUgYWxyZWFkeSBk
ZWNvbW1pdHRlZCwgb3IgZGVjaWRlZCB0byBkZWNvbW1pdC4gKi8KICAgICAgICAgcGFzX3N0b3Jl
X3N0b3JlX2ZlbmNlKCk7CiAKKyAgICAgICAgLyogVGhpcyBjdXJyZW50bHkgYXNzdW1lcyB0aGF0
IGl0J3MgbGVnYWwgdG8gZG8gZGVjb21taXQgd2l0aG91dCBsYXRlciBjb21taXR0aW5nLiBJdCdz
IG5vdCBvYnZpb3VzCisgICAgICAgICAgIHRoYXQgdGhpcyBpcyBhIGhhcmQgcmVxdWlyZW1lbnQg
b2YgdGhlIGFsZ29yaXRobTsgbGlrZSBwZXJoYXBzIGl0IHdvdWxkIGJlIGVhc3kgdG8gYWRkIHRo
ZSBuZWNlc3NhcnkKKyAgICAgICAgICAgY29tbWl0IGNhbGxzLiAqLwogICAgICAgICBpZiAoc2Nh
dmVuZ2Vfa2luZCAhPSBwYXNfZXhwZW5kYWJsZV9tZW1vcnlfc2NhdmVuZ2VfZm9yY2VkX2Zha2Up
IHsKLSAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9hc3ltbWV0cmljKChjaGFy
KilwYXlsb2FkICsgaW5kZXggKiBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG90aGVyX2luZGV4
IC0gaW5kZXgpICogUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0VfU0laRSk7CisgICAgICAgICAg
ICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0aG91dF9tcHJvdGVjdCgKKyAgICAgICAgICAg
ICAgICAoY2hhciopcGF5bG9hZCArIGluZGV4ICogUEFTX0VYUEVOREFCTEVfTUVNT1JZX1BBR0Vf
U0laRSwKKyAgICAgICAgICAgICAgICAob3RoZXJfaW5kZXggLSBpbmRleCkgKiBQQVNfRVhQRU5E
QUJMRV9NRU1PUllfUEFHRV9TSVpFLAorICAgICAgICAgICAgICAgIHBhc19tYXlfbW1hcCk7CiAg
ICAgICAgIH0KIAogICAgICAgICAvKiBBdCB0aGlzIHBvaW50LCBhbnkgb2YgdGhlIHBhZ2VzIGlu
IHRoaXMgcmFuZ2UgY291bGQgZ2V0IGRlY29tbWl0dGVkLCBidXQgaXQgd29uJ3QgbmVjZXNzYXJp
bHkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19mcmVlX2dyYW51
bGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2ZyZWVfZ3JhbnVsZXMuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2ZyZWVfZ3JhbnVsZXMuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAicGFzX2ZyZWVfZ3JhbnVsZXMuaCIKIAogI2luY2x1ZGUgInBhc19j
b21taXRfc3Bhbi5oIgorI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1ZGUgInBh
c19sb2cuaCIKICNpbmNsdWRlICJwYXNfcGFnZV9iYXNlX2NvbmZpZy5oIgogCkBAIC0xMDUsNyAr
MTA2LDcgQEAgdm9pZCBwYXNfZnJlZV9ncmFudWxlc19kZWNvbW1pdF9hZnRlcl9sbwogICAgIFBB
U19BU1NFUlQobnVtX2dyYW51bGVzID49IDIpOyAvKiBJZiB0aGVyZSBpcyBvbmx5IG9uZSBncmFu
dWxlIHRoZW4gd2UgZG9uJ3QgaGF2ZSB1c2UgY291bnRzLiAqLwogICAgIFBBU19BU1NFUlQobnVt
X2dyYW51bGVzIDw9IFBBU19NQVhfR1JBTlVMRVMpOwogCi0gICAgcGFzX2NvbW1pdF9zcGFuX2Nv
bnN0cnVjdCgmY29tbWl0X3NwYW4pOworICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNv
bW1pdF9zcGFuLCBwYWdlX2NvbmZpZy0+aGVhcF9jb25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkp
OwogCiAgICAgZm9yIChncmFudWxlX2luZGV4ID0gMDsgZ3JhbnVsZV9pbmRleCA8IG51bV9ncmFu
dWxlczsgKytncmFudWxlX2luZGV4KSB7CiAgICAgICAgIGlmIChwYXNfZnJlZV9ncmFudWxlc19p
c19mcmVlKGZyZWVfZ3JhbnVsZXMsIGdyYW51bGVfaW5kZXgpKSB7CkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMJKHJldmlzaW9uIDI4OTUwOCkKKysr
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMJKHdvcmtpbmcgY29w
eSkKQEAgLTc2LDkgKzc2LDIyIEBAIHBhc19oZWFwKiBwYXNfaGVhcF9jcmVhdGUocGFzX2hlYXBf
cmVmKiAKIAogc2l6ZV90IHBhc19oZWFwX2dldF90eXBlX3NpemUocGFzX2hlYXAqIGhlYXApCiB7
CisgICAgcGFzX2hlYXBfY29uZmlnX2tpbmQga2luZDsKKyAgICBwYXNfaGVhcF9jb25maWcqIGNv
bmZpZzsKICAgICBpZiAoIWhlYXApCiAgICAgICAgIHJldHVybiAxOwotICAgIHJldHVybiBwYXNf
aGVhcF9jb25maWdfa2luZF9nZXRfY29uZmlnKGhlYXAtPmNvbmZpZ19raW5kKS0+Z2V0X3R5cGVf
c2l6ZShoZWFwLT50eXBlKTsKKyAgICBraW5kID0gaGVhcC0+Y29uZmlnX2tpbmQ7CisgICAgUEFT
X0FTU0VSVChraW5kICE9IHBhc19oZWFwX2NvbmZpZ19raW5kX251bGwpOworICAgIGNvbmZpZyA9
IHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWcoa2luZCk7CisgICAgUEFTX0FTU0VSVChj
b25maWcpOworICAgIHJldHVybiBjb25maWctPmdldF90eXBlX3NpemUoaGVhcC0+dHlwZSk7Cit9
CisKK3NpemVfdCBwYXNfaGVhcF9nZXRfdHlwZV9hbGlnbm1lbnQocGFzX2hlYXAqIGhlYXApCit7
CisgICAgaWYgKCFoZWFwKQorICAgICAgICByZXR1cm4gMTsKKyAgICByZXR1cm4gcGFzX2hlYXBf
Y29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhoZWFwLT5jb25maWdfa2luZCktPmdldF90eXBlX2FsaWdu
bWVudChoZWFwLT50eXBlKTsKIH0KIAogc2l6ZV90IHBhc19oZWFwX2dldF9udW1fZnJlZV9ieXRl
cyhwYXNfaGVhcCogaGVhcCkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2hlYXAuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCBQ
QVNfQVBJIHBhc19oZWFwKiBwYXNfaGVhcF9jcmVhdGUocGFzX2hlCiAKIC8qIFJldHVybnMgMSBm
b3IgTlVMTCBoZWFwLiAqLwogUEFTX0FQSSBzaXplX3QgcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShw
YXNfaGVhcCogaGVhcCk7CitQQVNfQVBJIHNpemVfdCBwYXNfaGVhcF9nZXRfdHlwZV9hbGlnbm1l
bnQocGFzX2hlYXAqIGhlYXApOwogCiAvKiBUaGUgbGFyZ2UgaGVhcCBiZWxvbmdzIHRvIHRoZSBo
ZWFwIGluIHN1Y2ggYSB3YXkgdGhhdCBnaXZlbiBhIGxhcmdlIGhlYXAsIHdlIGNhbiBmaW5kIHRo
ZQogICAgaGVhcC4gKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpA
QCAtMzgsNyArMzgsNyBAQAogI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZ19raW5kLmgiCiAjaW5j
bHVkZSAicGFzX2hlYXBfcmVmLmgiCiAjaW5jbHVkZSAicGFzX2hlYXBfcmVmX2tpbmQuaCIKLSNp
bmNsdWRlICJwYXNfYWxsb2NhdGlvbl9yZXN1bHQuaCIKKyNpbmNsdWRlICJwYXNfbW1hcF9jYXBh
YmlsaXR5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9sb29rdXBfa2luZC5oIgog
I2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3Np
emVfbG9va3VwX21vZGUuaCIKQEAgLTE3NCw2ICsxNzQsOSBAQCBzdHJ1Y3QgcGFzX2hlYXBfY29u
ZmlnIHsKICAgICBib29sIGFsaWduZWRfYWxsb2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbDsK
ICAgICBwYXNfZGVhbGxvY2F0b3IgZGVhbGxvY2F0b3I7CiAKKyAgICAvKiBUZWxscyBpZiBpdCdz
IE9LIHRvIGNhbGwgbW1hcCBvbiBtZW1vcnkgbWFuYWdlZCBieSB0aGlzIGhlYXAuICovCisgICAg
cGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHk7CisKICAgICAvKiBUaGlzIHBvaW50
cyB0byB0aGluZ3MgdGhhdCBhcmUgbmVjZXNzYXJ5IGZvciBlbnVtZXJhdGlvbiB0aGF0IGFyZSBz
cGVjaWZpYyB0byB0aGUgaGVhcCBjb25maWcuICovCiAgICAgdm9pZCogcm9vdF9kYXRhOwogCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRp
bHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
aGVhcF9jb25maWdfdXRpbHMuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmMJKHdvcmtpbmcgY29weSkK
QEAgLTEyMyw3ICsxMjMsNyBAQCBwYXNfaGVhcF9jb25maWdfdXRpbHNfYWxsb2NhdGVfYWxpZ25l
ZCgKICAgICAKICAgICBhbGxvY2F0aW9uX3Jlc3VsdCA9CiAgICAgICAgIHBhc19sYXJnZV9oZWFw
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZV90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQo
Ci0gICAgICAgICAgICBjYWNoZSwgYWxpZ25lZF9zaXplLCBhbGlnbm1lbnQsIHNob3VsZF96ZXJv
KTsKKyAgICAgICAgICAgIGNhY2hlLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwgY29uZmlnLCBz
aG91bGRfemVybyk7CiAgICAgaWYgKCFhbGxvY2F0aW9uX3Jlc3VsdC5kaWRfc3VjY2VlZCkKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnX3V0aWxzLmgJKHJldmlzaW9uIDI4
OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Z191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMzIsNiArMzMyLDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgewogICAgICAgICAuYWxpZ25lZF9hbGxvY2F0b3IgPSBuYW1lICMjIF9hbGlnbmVkX2FsbG9j
YXRvciwgXAogICAgICAgICAuYWxpZ25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29s
ID0gdHJ1ZSwgXAogICAgICAgICAuZGVhbGxvY2F0b3IgPSBOVUxMLCBcCisgICAgICAgIC5tbWFw
X2NhcGFiaWxpdHkgPSBwYXNfbWF5X21tYXAsIFwKICAgICAgICAgLnJvb3RfZGF0YSA9ICZuYW1l
ICMjIF9yb290X2RhdGEsIFwKICAgICAgICAgLnByZXBhcmVfdG9fZW51bWVyYXRlID0gbmFtZSAj
IyBfcHJlcGFyZV90b19lbnVtZXJhdGUsIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeSA9IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19oZWFwX3JlZi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX3JlZi5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9yZWYuYwkod29ya2luZyBjb3B5KQpAQCAtNDcsNiAr
NDcsNyBAQCBwYXNfaGVhcCogcGFzX2Vuc3VyZV9oZWFwX3Nsb3cocGFzX2hlYXBfCiAgICAgaGVh
cCA9IGhlYXBfcmVmLT5oZWFwOwogICAgIGlmICghaGVhcCkgewogICAgICAgICBoZWFwID0gcGFz
X2hlYXBfY3JlYXRlKGhlYXBfcmVmLCBoZWFwX3JlZl9raW5kLCBjb25maWcsIHJ1bnRpbWVfY29u
ZmlnKTsKKyAgICAgICAgcGFzX3N0b3JlX3N0b3JlX2ZlbmNlKCk7CiAgICAgICAgIGhlYXBfcmVm
LT5oZWFwID0gaGVhcDsKICAgICB9CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaW50ZXJu
YWxfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19pbnRlcm5hbF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAtMTQzLDgg
KzE0Myw4IEBACiAjZGVmaW5lIFBBU19QQUdFX0JBTEFOQ0lOR19FTkFCTEVEICAgICAgICAgICAg
ZmFsc2UKICNlbmRpZgogCi0jZGVmaW5lIFBBU19TTUFMTF9TSEFSRURfUEFHRV9MT0dfU0hJRlQg
ICAgIDAKLSNkZWZpbmUgUEFTX01FRElVTV9TSEFSRURfUEFHRV9MT0dfU0hJRlQgICAgMQorI2Rl
ZmluZSBQQVNfU01BTExfU0hBUkVEX1BBR0VfTE9HX1NISUZUICAgICAzMQorI2RlZmluZSBQQVNf
TUVESVVNX1NIQVJFRF9QQUdFX0xPR19TSElGVCAgICAzMQogCiAvKiBNdXN0IGJlIHplcm87IHV0
aWxpdHkgZG9lc24ndCBzdXBwb3J0IHBhcnRpYWxzIHJpZ2h0IG5vdyAodGhvdWdoIGl0IGNvdWxk
IGlmIHdlIGhhY2tlZCBkZWFsbG9jYXRpb24gYW5kCiAgICBhZGRlZCBhIHNoYXJlZCBwYWdlIGRp
cmVjdG9yeSkuICovCkBAIC0xODksNyArMTg5LDcgQEAKICAgIG9iamVjdHMgd2lsbCBvbmx5IG92
ZXJsYXAgYXQgdGhlIGhlYWRlci4gSG93ZXZlciwgRklYTUU6IHdlIG5lZWQgZmxleCBoZWFwcyB0
byB1c2UgYSBsYXJnZSBoZWFwCiAgICB0aGF0IHdvbid0IG92ZXJsYXAgb2JqZWN0cyBpbiB0aGVz
ZSBoZWFwcyBhcyBpZiB0aGV5IHdlcmUgYXJyYXlzLiAqLwogI2RlZmluZSBQQVNfRkxFWF9CT1VO
RF9GT1JfUEFSVElBTF9WSUVXUyAgICAgICAgICAgICAgICAgICAgICAgIDEwCi0jZGVmaW5lIFBB
U19GTEVYX0JPVU5EX0ZPUl9CQVNFTElORV9BTExPQ0FUT1JTICAgICAgICAgICAgICAgICAgMTAK
KyNkZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAgICAg
ICAgICAgICAwCiAjZGVmaW5lIFBBU19GTEVYX0JPVU5EX0ZPUl9OT19WSUVXX0NBQ0hFICAgICAg
ICAgICAgICAgICAgICAgICAgVUlOVF9NQVgKICNkZWZpbmUgUEFTX0ZMRVhfTUFYX1NFR1JFR0FU
RURfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNf
RkxFWF9NQVhfQklURklUX09CSkVDVF9TSVpFICAgICAgICAgICAgICAgICAgICAgICAgIDAKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmZXJyZWRfY29tbWl0X2xvZy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jCShy
ZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYwkod29ya2luZyBjb3B5KQpAQCAt
MzksNyArMzksNyBAQAogdm9pZCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9s
b2dfY29uc3RydWN0KAogICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xv
ZyogbG9nKQogewotICAgIHBhc19yYW5nZV9taW5faGVhcF9jb25zdHJ1Y3QoJmxvZy0+aW1wbCk7
CisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXBfY29uc3RydWN0KCZsb2ctPmlt
cGwpOwogICAgIGxvZy0+dG90YWwgPSAwOwogfQogCkBAIC01MiwxMiArNTIsMTIgQEAgdm9pZCBw
YXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdAogICAgIFBBU19BU1NFUlQoIWxvZy0+
aW1wbC5zaXplKTsKICAgICAKICAgICBwYXNfYm9vdHN0cmFwX2ZyZWVfaGVhcF9hbGxvY2F0aW9u
X2NvbmZpZ19jb25zdHJ1Y3QoJmFsbG9jYXRpb25fY29uZmlnLCBwYXNfbG9ja19pc19oZWxkKTsK
LSAgICBwYXNfcmFuZ2VfbWluX2hlYXBfZGVzdHJ1Y3QoJmxvZy0+aW1wbCwgJmFsbG9jYXRpb25f
Y29uZmlnKTsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcF9kZXN0cnVjdCgm
bG9nLT5pbXBsLCAmYWxsb2NhdGlvbl9jb25maWcpOwogfQogCiBib29sIHBhc19sYXJnZV9mcmVl
X2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZ19hZGQoCiAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9k
ZWZlcnJlZF9jb21taXRfbG9nKiBsb2csCi0gICAgcGFzX3JhbmdlIHJhbmdlLAorICAgIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlIHJhbmdlLAogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNh
Y3Rpb24qIHRyYW5zYWN0aW9uKQogewogICAgIHBhc19hbGxvY2F0aW9uX2NvbmZpZyBhbGxvY2F0
aW9uX2NvbmZpZzsKQEAgLTcwLDEwICs3MCwxMCBAQCBib29sIHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmZXJyZWRfY29tbWl0CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCi0gICAg
bG9nLT50b3RhbCArPSBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSk7CisgICAgbG9nLT50b3RhbCArPSBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKHJhbmdlKTsKICAgICAKICAgICBwYXNfYm9vdHN0
cmFwX2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZ19jb25zdHJ1Y3QoJmFsbG9jYXRpb25fY29u
ZmlnLCBwYXNfbG9ja19pc19oZWxkKTsKLSAgICBwYXNfcmFuZ2VfbWluX2hlYXBfYWRkKCZsb2ct
PmltcGwsIHJhbmdlLCAmYWxsb2NhdGlvbl9jb25maWcpOworICAgIHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlX21pbl9oZWFwX2FkZCgmbG9nLT5pbXBsLCByYW5nZSwgJmFsbG9jYXRpb25fY29uZmln
KTsKICAgICAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTg0LDExICs4NCwxMSBAQCBzdGF0aWMg
dm9pZCBkdW1wX2xhcmdlX2NvbW1pdChwYXNfc3RyZWFtCiAgICAgcGFzX3N0cmVhbV9wcmludGYo
c3RyZWFtLCAibGFyZ2UgZGVmZXJyZWQiKTsKIH0KIAotc3RhdGljIHZvaWQgY29tbWl0KHBhc19y
YW5nZSByYW5nZSkKK3N0YXRpYyB2b2lkIGNvbW1pdChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBy
YW5nZSkKIHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCi0g
ICAgaWYgKHBhc19yYW5nZV9pc19lbXB0eShyYW5nZSkpCisgICAgaWYgKHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlX2lzX2VtcHR5KHJhbmdlKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIGlm
ICh2ZXJib3NlKSB7CkBAIC05NywxMCArOTcsMTAgQEAgc3RhdGljIHZvaWQgY29tbWl0KHBhc19y
YW5nZSByYW5nZSkKICAgICAgICAgICAgICAgICh2b2lkKilyYW5nZS5lbmQpOwogICAgIH0KICAg
ICAKLSAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KCh2b2lkKilyYW5nZS5iZWdpbiwgcGFzX3Jh
bmdlX3NpemUocmFuZ2UpKTsKKyAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KCh2b2lkKilyYW5n
ZS5iZWdpbiwgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSksIHJhbmdlLm1tYXBf
Y2FwYWJpbGl0eSk7CiAKICAgICBpZiAoUEFTX0RFQlVHX1NQRUNUUlVNX1VTRV9GT1JfQ09NTUlU
KQotICAgICAgICBwYXNfZGVidWdfc3BlY3RydW1fYWRkKGR1bXBfbGFyZ2VfY29tbWl0LCBkdW1w
X2xhcmdlX2NvbW1pdCwgcGFzX3JhbmdlX3NpemUocmFuZ2UpKTsKKyAgICAgICAgcGFzX2RlYnVn
X3NwZWN0cnVtX2FkZChkdW1wX2xhcmdlX2NvbW1pdCwgZHVtcF9sYXJnZV9jb21taXQsIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX3NpemUocmFuZ2UpKTsKIH0KIAogc3RhdGljIHZvaWQgY29tbWl0
X2FsbCgKQEAgLTEwOCwxOSArMTA4LDE5IEBAIHN0YXRpYyB2b2lkIGNvbW1pdF9hbGwoCiAgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sCiAgICAgYm9vbCBm
b3JfcmVhbCkKIHsKLSAgICBwYXNfcmFuZ2UgY3VycmVudF9yYW5nZTsKKyAgICBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZSBjdXJyZW50X3JhbmdlOwogICAgIAogICAgIGlmICghbG9nLT50b3RhbCkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGN1cnJlbnRfcmFuZ2UgPSBwYXNfcmFuZ2VfY3Jl
YXRlX2VtcHR5KCk7CisgICAgY3VycmVudF9yYW5nZSA9IHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
X2NyZWF0ZV9lbXB0eSgpOwogICAgIAogICAgIGZvciAoOzspIHsKLSAgICAgICAgcGFzX3Jhbmdl
IG5leHRfcmFuZ2UgPSBwYXNfcmFuZ2VfbWluX2hlYXBfdGFrZV9taW4oJmxvZy0+aW1wbCk7Ci0g
ICAgICAgIGlmIChwYXNfcmFuZ2VfaXNfZW1wdHkobmV4dF9yYW5nZSkpCisgICAgICAgIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlIG5leHRfcmFuZ2UgPSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9t
aW5faGVhcF90YWtlX21pbigmbG9nLT5pbXBsKTsKKyAgICAgICAgaWYgKHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlX2lzX2VtcHR5KG5leHRfcmFuZ2UpKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIAotICAgICAgICBQQVNfQVNTRVJUKCFwYXNfcmFuZ2Vfb3ZlcmxhcHMoY3VycmVudF9yYW5n
ZSwgbmV4dF9yYW5nZSkpOworICAgICAgICBQQVNfQVNTRVJUKCFwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9vdmVybGFwcyhjdXJyZW50X3JhbmdlLCBuZXh0X3JhbmdlKSk7CiAgICAgICAgIAogICAg
ICAgICBpZiAobmV4dF9yYW5nZS5iZWdpbiA9PSBjdXJyZW50X3JhbmdlLmVuZCkgewogICAgICAg
ICAgICAgY3VycmVudF9yYW5nZS5lbmQgPSBuZXh0X3JhbmdlLmVuZDsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29t
bWl0X2xvZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5oCShyZXZpc2lvbiAyODk1
MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9o
ZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiw4IEBACiAj
aWZuZGVmIFBBU19MQVJHRV9GUkVFX0hFQVBfREVGRVJSRURfQ09NTUlUX0xPR19ICiAjZGVmaW5l
IFBBU19MQVJHRV9GUkVFX0hFQVBfREVGRVJSRURfQ09NTUlUX0xPR19ICiAKLSNpbmNsdWRlICJw
YXNfcmFuZ2UuaCIKLSNpbmNsdWRlICJwYXNfcmFuZ2VfbWluX2hlYXAuaCIKKyNpbmNsdWRlICJw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIgorI2luY2x1ZGUgInBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlX21pbl9oZWFwLmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAtMzcsNyArMzcsNyBA
QCB0eXBlZGVmIHN0cnVjdCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVyCiB0eXBlZGVmIHN0cnVj
dCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uIHBhc19waHlzaWNhbF9tZW1vcnlfdHJh
bnNhY3Rpb247CiAKIHN0cnVjdCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9s
b2cgewotICAgIHBhc19yYW5nZV9taW5faGVhcCBpbXBsOworICAgIHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlX21pbl9oZWFwIGltcGw7CiAgICAgc2l6ZV90IHRvdGFsOyAvKiBUaGlzIGlzIGFjY3Vy
YXRlIHNvIGxvbmcgYXMgdGhlIHJhbmdlcyBhcmUgbm9uLW92ZXJsYXBwaW5nLiAqLwogfTsKIApA
QCAtNDksNyArNDksNyBAQCBQQVNfQVBJIHZvaWQgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJl
CiAKIFBBU19BUEkgYm9vbCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2df
YWRkKAogICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogbG9nLAot
ICAgIHBhc19yYW5nZSByYW5nZSwKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5nZSwK
ICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiAKIFBB
U19BUEkgdm9pZCBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2dfY29tbWl0
X2FsbCgKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9m
cmVlX2hlYXBfaGVscGVycy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jCShyZXZpc2lvbiAyODk1MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfZnJlZV9oZWFw
X2hlbHBlcnMuYwkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsOCBAQCBzdGF0aWMgcGFzX2Fs
aWduZWRfYWxsb2NhdGlvbl9yZXN1bHQgbGFyCiAgICAgICAgIAogICAgICAgICBwYXNfbGFyZ2Vf
c2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUoYWxs
b2NhdGlvbl9yZXN1bHQuYmVnaW4sIGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luICsgYWxpZ25lZF9z
aXplKSwKLSAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X2hlYXBf
bG9jayk7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFw
X2xvY2ssCisgICAgICAgICAgICBwYXNfbWF5X21tYXApOwogICAgIH0KIAogICAgIHJlc3VsdC5y
ZXN1bHQgPSAodm9pZCopYWxsb2NhdGlvbl9yZXN1bHQuYmVnaW47CkBAIC0xMzcsNyArMTM4LDgg
QEAgdm9pZCogcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzX3RyeV9hbAogICAgICAgICAgICAg
Y29tbWl0X3Jlc3VsdCA9IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYWxsb2NhdGVfYW5kX2NvbW1p
dCgKICAgICAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKHJlc3VsdC5iZWdpbiwgcmVzdWx0
LmJlZ2luICsgc2l6ZSksCiAgICAgICAgICAgICAgICAgTlVMTCwKLSAgICAgICAgICAgICAgICBw
YXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV9oZWFwX2xvY2spOworICAgICAgICAgICAg
ICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X2hlYXBfbG9jaywKKyAgICAgICAg
ICAgICAgICBwYXNfbWF5X21tYXApOwogICAgICAgICAgICAgUEFTX0FTU0VSVChjb21taXRfcmVz
dWx0KTsKICAgICAgICAgfQogICAgICAgICAoKm51bV9hbGxvY2F0ZWRfb2JqZWN0X2J5dGVzX3B0
cikgKz0gc2l6ZTsKQEAgLTE2OCw3ICsxNzAsOCBAQCB2b2lkIHBhc19sYXJnZV9mcmVlX2hlYXBf
aGVscGVyc19kZWFsbG9jCiAgICAgICAgIH0KICAgICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9v
bF9mcmVlKAogICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZSgodWludHB0cl90KXB0ciwgKHVp
bnRwdHJfdClwdHIgKyBzaXplKSwKLSAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNf
bG9ja2VkX2J5X2hlYXBfbG9jayk7CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lz
X2xvY2tlZF9ieV9oZWFwX2xvY2ssCisgICAgICAgICAgICBwYXNfbWF5X21tYXApOwogICAgIH0K
ICAgICBwYXNfZmFzdF9sYXJnZV9mcmVlX2hlYXBfZGVhbGxvY2F0ZShoZWFwLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh1aW50cHRyX3QpcHRyLCAodWludHB0cl90
KXB0ciArIHNpemUsCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGFyZ2VfaGVhcC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV9oZWFwLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwLmMJKHdvcmtpbmcgY29weSkKQEAgLTEz
OCw3ICsxMzgsOCBAQCBzdGF0aWMgcGFzX2FsbG9jYXRpb25fcmVzdWx0IGFsbG9jYXRlX2ltCiAg
ICAgICAgICFwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAg
ICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKHJlc3VsdC5iZWdpbiwgcmVzdWx0LmJlZ2luICsgKnNp
emUpLAogICAgICAgICAgICAgdHJhbnNhY3Rpb24sCi0gICAgICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKSkgeworICAgICAg
ICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21t
b25fbG9jaywKKyAgICAgICAgICAgIGhlYXBfY29uZmlnLT5tbWFwX2NhcGFiaWxpdHkpKSB7CiAg
ICAgICAgIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcF9kZWFsbG9jYXRlKAogICAgICAgICAgICAg
JmhlYXAtPmZyZWVfaGVhcCwgcmVzdWx0LmJlZ2luLCByZXN1bHQuYmVnaW4gKyAqc2l6ZSwKICAg
ICAgICAgICAgIHJlc3VsdC56ZXJvX21vZGUsICZjb25maWcpOwpAQCAtMjAzLDcgKzIwNCw4IEBA
IGJvb2wgcGFzX2xhcmdlX2hlYXBfdHJ5X2RlYWxsb2NhdGUodWludHAKICAgICBpZiAoaGVhcF9j
b25maWctPmFsaWduZWRfYWxsb2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCkgewogICAgICAg
ICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUoCiAgICAgICAgICAgICBwYXNfcmFuZ2VfY3Jl
YXRlKG1hcF9lbnRyeS5iZWdpbiwgbWFwX2VudHJ5LmVuZCksCi0gICAgICAgICAgICBwYXNfcGh5
c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAg
ICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2Vf
Y29tbW9uX2xvY2ssCisgICAgICAgICAgICBoZWFwX2NvbmZpZy0+bW1hcF9jYXBhYmlsaXR5KTsK
ICAgICB9CiAKICAgICBpbml0aWFsaXplX2NvbmZpZygmY29uZmlnLCBOVUxMLCBtYXBfZW50cnku
aGVhcCwgaGVhcF9jb25maWcpOwpAQCAtMjU1LDcgKzI1Nyw4IEBAIGJvb2wgcGFzX2xhcmdlX2hl
YXBfdHJ5X3Nocmluayh1aW50cHRyX3QKICAgICBpZiAoaGVhcF9jb25maWctPmFsaWduZWRfYWxs
b2NhdG9yX3RhbGtzX3RvX3NoYXJpbmdfcG9vbCkgewogICAgICAgICBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2ZyZWUoCiAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKG1hcF9lbnRyeS5iZWdp
biArIG5ld19zaXplLCBtYXBfZW50cnkuZW5kKSwKLSAgICAgICAgICAgIHBhc19waHlzaWNhbF9t
ZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spOworICAgICAgICAg
ICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25f
bG9jaywKKyAgICAgICAgICAgIGhlYXBfY29uZmlnLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgIH0K
IAogICAgIGluaXRpYWxpemVfY29uZmlnKCZjb25maWcsIE5VTEwsIGhlYXAsIGhlYXBfY29uZmln
KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFw
X3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmlu
Z19jYWNoZS5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYwkod29y
a2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgInBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oIgogCiAjaW5jbHVkZSAicGFzX2Jvb3RzdHJhcF9m
cmVlX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfaGVhcF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNf
aGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oIgogI2luY2x1
ZGUgInBhc19wYWdlX21hbGxvYy5oIgpAQCAtNDAsNiArNDEsNyBAQCBwYXNfZW51bWVyYWJsZV9y
YW5nZV9saXN0IHBhc19sYXJnZV9oZWFwCiAKIHR5cGVkZWYgc3RydWN0IHsKICAgICBwYXNfbGFy
Z2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUqIGNhY2hlOworICAgIHBhc19oZWFw
X2NvbmZpZyogY29uZmlnOwogICAgIGJvb2wgc2hvdWxkX3plcm87CiB9IGFsaWduZWRfYWxsb2Nh
dG9yX2RhdGE7CiAKQEAgLTEzMCw3ICsxMzIsOCBAQCBzdGF0aWMgcGFzX2FsaWduZWRfYWxsb2Nh
dGlvbl9yZXN1bHQgbGFyCiAgICAgICAgU28gd2UgdXNlIGJvb3RfZnJlZSwgd2hpY2ggZnJlZXMg
d2hpbGUgYnVtcGluZyB0aGUgZXBvY2guICovCiAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9i
b290X2ZyZWUoCiAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUoYWxsb2NhdGlvbl9yZXN1bHQuYmVn
aW4sIGFsbG9jYXRpb25fcmVzdWx0LmJlZ2luICsgYWxpZ25lZF9zaXplKSwKLSAgICAgICAgcGFz
X3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7
CisgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2Vf
Y29tbW9uX2xvY2ssCisgICAgICAgIGRhdGEtPmNvbmZpZy0+bW1hcF9jYXBhYmlsaXR5KTsKICAg
ICAKICAgICByZXN1bHQucmVzdWx0ID0gKHZvaWQqKWFsbG9jYXRpb25fcmVzdWx0LmJlZ2luOwog
ICAgIHJlc3VsdC5yZXN1bHRfc2l6ZSA9IHNpemU7CkBAIC0xNTgsNiArMTYxLDcgQEAgcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhYwogICAgIHBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZSogY2FjaGUsCiAgICAgc2l6ZV90IHNpemUsCiAgICAg
cGFzX2FsaWdubWVudCBhbGlnbm1lbnQsCisgICAgcGFzX2hlYXBfY29uZmlnKiBoZWFwX2NvbmZp
ZywKICAgICBib29sIHNob3VsZF96ZXJvKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJv
c2UgPSBmYWxzZTsKQEAgLTE2Niw2ICsxNzAsNyBAQCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9w
YWdlX3NoYXJpbmdfY2FjCiAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9jb25maWcgY29uZmlnOwog
ICAgIAogICAgIGRhdGEuY2FjaGUgPSBjYWNoZTsKKyAgICBkYXRhLmNvbmZpZyA9IGhlYXBfY29u
ZmlnOwogICAgIGRhdGEuc2hvdWxkX3plcm8gPSBzaG91bGRfemVybzsKICAgICAKICAgICBjb25m
aWcudHlwZV9zaXplID0gMTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJp
bmdfY2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNyArMzMsOSBAQAogCiBQQVNfQkVHSU5f
RVhURVJOX0M7CiAKK3N0cnVjdCBwYXNfaGVhcF9jb25maWc7CiBzdHJ1Y3QgcGFzX2xhcmdlX2hl
YXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2hlYXBf
Y29uZmlnIHBhc19oZWFwX2NvbmZpZzsKIHR5cGVkZWYgc3RydWN0IHBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZSBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3No
YXJpbmdfY2FjaGU7CiAKIHN0cnVjdCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJp
bmdfY2FjaGUgewpAQCAtNjQsNiArNjYsNyBAQCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdl
X3NoYXJpbmdfY2FjCiAgICAgcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2Nh
Y2hlKiBjYWNoZSwKICAgICBzaXplX3Qgc2l6ZSwKICAgICBwYXNfYWxpZ25tZW50IGFsaWdubWVu
dCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGNvbmZpZywKICAgICBib29sIHNob3VsZF96ZXJvKTsK
IAogUEFTX0VORF9FWFRFUk5fQzsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmMJKHJldmlzaW9uIDI4
OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFy
aW5nX3Bvb2wuYwkod29ya2luZyBjb3B5KQpAQCAtMTY4LDcgKzE2OCw4IEBAIHN0YXRpYyBwYXNf
bGFyZ2Vfc2hhcmluZ19ub2RlKiBjcmVhdGVfbm8KICAgICB1aW50NjRfdCB1c2VfZXBvY2gsCiAg
ICAgcGFzX2NvbW1pdF9tb2RlIGlzX2NvbW1pdHRlZCwKICAgICBzaXplX3QgbnVtX2xpdmVfYnl0
ZXMsCi0gICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hy
b25pemF0aW9uX3N0eWxlKQorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9u
X3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1t
YXBfY2FwYWJpbGl0eSkKIHsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiByZXN1bHQ7CiAg
ICAgCkBAIC0xODYsNiArMTg3LDcgQEAgc3RhdGljIHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIGNy
ZWF0ZV9ubwogICAgIHJlc3VsdC0+aXNfY29tbWl0dGVkID0gaXNfY29tbWl0dGVkOwogICAgIHJl
c3VsdC0+bnVtX2xpdmVfYnl0ZXMgPSBudW1fbGl2ZV9ieXRlczsKICAgICByZXN1bHQtPnN5bmNo
cm9uaXphdGlvbl9zdHlsZSA9IHN5bmNocm9uaXphdGlvbl9zdHlsZTsKKyAgICByZXN1bHQtPm1t
YXBfY2FwYWJpbGl0eSA9IG1tYXBfY2FwYWJpbGl0eTsKIAogICAgIHZhbGlkYXRlX25vZGVfaWZf
YXNzZXJ0aW5nX2FnZ3Jlc3NpdmVseShyZXN1bHQpOwogICAgIApAQCAtMTk3LDExICsxOTksMTMg
QEAgc3RhdGljIHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIGNyZWF0ZV9hbgogICAgIHVpbnQ2NF90
IHVzZV9lcG9jaCwKICAgICBwYXNfY29tbWl0X21vZGUgaXNfY29tbWl0dGVkLAogICAgIHNpemVf
dCBudW1fbGl2ZV9ieXRlcywKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlv
bl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9z
eW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgIHBhc19tbWFw
X2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHBhc19sYXJnZV9zaGFyaW5nX25v
ZGUqIHJlc3VsdDsKICAgICAKLSAgICByZXN1bHQgPSBjcmVhdGVfbm9kZShyYW5nZSwgdXNlX2Vw
b2NoLCBpc19jb21taXR0ZWQsIG51bV9saXZlX2J5dGVzLCBzeW5jaHJvbml6YXRpb25fc3R5bGUp
OworICAgIHJlc3VsdCA9IGNyZWF0ZV9ub2RlKHJhbmdlLCB1c2VfZXBvY2gsIGlzX2NvbW1pdHRl
ZCwgbnVtX2xpdmVfYnl0ZXMsIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICBtbWFwX2NhcGFiaWxpdHkpOwogICAgIAogICAgIHBhc19yZWRfYmxhY2tfdHJl
ZV9pbnNlcnQoCiAgICAgICAgICZwYXNfbGFyZ2Vfc2hhcmluZ190cmVlLCAmcmVzdWx0LT50cmVl
X25vZGUsIG5vZGVfY29tcGFyZV9jYWxsYmFjaywKQEAgLTIzNyw3ICsyNDEsOCBAQCBzdGF0aWMg
dm9pZCBib290X3RyZWUoKQogICAgICAgICAwLAogICAgICAgICBwYXNfY29tbWl0dGVkLAogICAg
ICAgICBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSksCi0gICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
aXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spOworICAgICAgICBwYXNfcGh5
c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAg
ICAgICBwYXNfbWF5X21tYXApOwogfQogCiBzdGF0aWMgdm9pZCBkZXN0cm95X25vZGUocGFzX2xh
cmdlX3NoYXJpbmdfbm9kZSogbm9kZSkKQEAgLTI5Myw2ICsyOTgsOSBAQCBzdGF0aWMgYm9vbCBz
dGF0ZXNfbWF0Y2gocGFzX2xhcmdlX3NoYXJpCiAgICAgaWYgKGxlZnQtPnN5bmNocm9uaXphdGlv
bl9zdHlsZSAhPSByaWdodC0+c3luY2hyb25pemF0aW9uX3N0eWxlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBpZiAobGVmdC0+bW1hcF9jYXBhYmlsaXR5ICE9IHJpZ2h0LT5tbWFwX2Nh
cGFiaWxpdHkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGJvdGhfZW1wdHkgPQogICAg
ICAgICAhbGVmdC0+bnVtX2xpdmVfYnl0ZXMgJiYKICAgICAgICAgIXJpZ2h0LT5udW1fbGl2ZV9i
eXRlczsKQEAgLTM3OSw3ICszODcsOCBAQCBzcGxpdF9ub2RlX2FuZF9nZXRfcmlnaHRfaW1wbChw
YXNfbGFyZ2VfCiAgICAgICAgIG5vZGUtPnVzZV9lcG9jaCwKICAgICAgICAgbm9kZS0+aXNfY29t
bWl0dGVkLAogICAgICAgICBub2RlLT5udW1fbGl2ZV9ieXRlcyA/IG5vZGUtPnJhbmdlLmVuZCAt
IHNwbGl0X3BvaW50IDogMCwKLSAgICAgICAgbm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlKTsK
KyAgICAgICAgbm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgICAgICBub2RlLT5tbWFw
X2NhcGFiaWxpdHkpOwogICAgIAogICAgIG5vZGUtPnJhbmdlLmVuZCA9IHNwbGl0X3BvaW50Owog
ICAgIG5vZGUtPm51bV9saXZlX2J5dGVzID0gbm9kZS0+bnVtX2xpdmVfYnl0ZXMgPyBzcGxpdF9w
b2ludCAtIG5vZGUtPnJhbmdlLmJlZ2luIDogMDsKQEAgLTYwMyw3ICs2MTIsOCBAQCBzdGF0aWMg
Ym9vbCB0cnlfc3BsYXRfaW1wbChwYXNfcmFuZ2UgcmFuCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGNvbW1pdF9sb2cs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBk
ZWNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVt
b3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlv
bl9zdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewog
ICAgIHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIG1pbl9ub2RlOwogICAgIHBhc19sYXJnZV9zaGFy
aW5nX25vZGUqIG1heF9ub2RlOwpAQCAtNjE4LDkgKzYyOCwxMCBAQCBzdGF0aWMgYm9vbCB0cnlf
c3BsYXRfaW1wbChwYXNfcmFuZ2UgcmFuCiAgICAgCiAgICAgaWYgKHZlcmJvc2UpIHsKICAgICAg
ICAgcGFzX2xvZygiRG9pbmcgc3BsYXQgaW4gcmFuZ2UgJXAtJXAsIGNvbW1hbmQgPSAlcywgZXBv
Y2ggPSAlbGx1LCAiCi0gICAgICAgICAgICAgICAgInN5bmNocm9uaXphdGlvbl9zdHlsZSA9ICVz
XG4iLAorICAgICAgICAgICAgICAgICJzeW5jaHJvbml6YXRpb25fc3R5bGUgPSAlcywgbW1hcF9j
YXBhYmlsaXR5ID0gJXNcbiIsCiAgICAgICAgICAgICAgICAgKHZvaWQqKXJhbmdlLmJlZ2luLCAo
dm9pZCopcmFuZ2UuZW5kLCBzcGxhdF9jb21tYW5kX2dldF9zdHJpbmcoY29tbWFuZCksICh1bnNp
Z25lZCBsb25nIGxvbmcpZXBvY2gsCi0gICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9zeW5jaHJvbml6YXRpb25fc3R5bGVfZ2V0X3N0cmluZyhzeW5jaHJvbml6YXRpb25fc3R5bGUp
KTsKKyAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9z
dHlsZV9nZXRfc3RyaW5nKHN5bmNocm9uaXphdGlvbl9zdHlsZSksCisgICAgICAgICAgICAgICAg
cGFzX21tYXBfY2FwYWJpbGl0eV9nZXRfc3RyaW5nKG1tYXBfY2FwYWJpbGl0eSkpOwogICAgIH0K
ICAgICAKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CkBAIC03NjksNiArNzgwLDcg
QEAgc3RhdGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZGVzaXJlZF9jb21taXRfbW9kZSk7CiAgICAgICAgICAgICAgICAgIGlubmVyX25vZGUgPSBzdWNj
ZXNzb3IoaW5uZXJfbm9kZSkpIHsKICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKGlubmVyX25v
ZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSA9PSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAg
ICAgICAgICAgICAgIFBBU19BU1NFUlQoaW5uZXJfbm9kZS0+bW1hcF9jYXBhYmlsaXR5ID09IG1t
YXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICAgICAgYWZmZWN0ZWRfZW5kID0gaW5uZXJfbm9k
ZS0+cmFuZ2UuZW5kOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC03ODMsMTIgKzc5
NSwxNCBAQCBzdGF0aWMgYm9vbCB0cnlfc3BsYXRfaW1wbChwYXNfcmFuZ2UgcmFuCiAgICAgICAg
ICAgICBjYXNlIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X2hlYXBfbG9jazogewog
ICAgICAgICAgICAgICAgIHN3aXRjaCAoZGVzaXJlZF9jb21taXRfbW9kZSkgewogICAgICAgICAg
ICAgICAgIGNhc2UgcGFzX2RlY29tbWl0dGVkOgotICAgICAgICAgICAgICAgICAgICBwYXNfcGFn
ZV9tYWxsb2NfZGVjb21taXQoKHZvaWQqKWFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQgLSBh
ZmZlY3RlZF9iZWdpbik7CisgICAgICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNv
bW1pdCgodm9pZCopYWZmZWN0ZWRfYmVnaW4sIGFmZmVjdGVkX2VuZCAtIGFmZmVjdGVkX2JlZ2lu
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW1hcF9jYXBh
YmlsaXR5KTsKICAgICAgICAgICAgICAgICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBhZmZl
Y3RlZF9lbmQgLSBhZmZlY3RlZF9iZWdpbjsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGNhc2UgcGFzX2NvbW1pdHRlZDoK
LSAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgodm9pZCopYWZmZWN0
ZWRfYmVnaW4sIGFmZmVjdGVkX2VuZCAtIGFmZmVjdGVkX2JlZ2luKTsKKyAgICAgICAgICAgICAg
ICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCgodm9pZCopYWZmZWN0ZWRfYmVnaW4sIGFmZmVj
dGVkX2VuZCAtIGFmZmVjdGVkX2JlZ2luLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChQ
QVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZPUl9DT01NSVQpIHsKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ZHVtcF9sYXJnZV9jb21taXQsIGR1bXBfbGFyZ2VfY29tbWl0LCBhZmZlY3RlZF9lbmQgLSBhZmZl
Y3RlZF9iZWdpbik7CkBAIC04MDcsMTQgKzgyMSwxNSBAQCBzdGF0aWMgYm9vbCB0cnlfc3BsYXRf
aW1wbChwYXNfcmFuZ2UgcmFuCiAgICAgICAgICAgICAgICAgICAgIHdhc19hZGRlZCA9IHBhc19k
ZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkKAogICAgICAgICAgICAgICAgICAgICAgICAgZGVjb21t
aXRfbG9nLAogICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRl
KGFmZmVjdGVkX2JlZ2luLCBhZmZlY3RlZF9lbmQsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgJnBhc192aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3Zp
cnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbW1hcF9jYXBhYmlsaXR5KSwKICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2lzX2hlbGQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBwYXNfY29tbWl0dGVkOgogICAg
ICAgICAgICAgICAgICAgICB3YXNfYWRkZWQgPSBwYXNfbGFyZ2VfZnJlZV9oZWFwX2RlZmVycmVk
X2NvbW1pdF9sb2dfYWRkKAogICAgICAgICAgICAgICAgICAgICAgICAgY29tbWl0X2xvZywKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUoYWZmZWN0ZWRfYmVnaW4sIGFm
ZmVjdGVkX2VuZCksCisgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZV9jcmVhdGUoYWZmZWN0ZWRfYmVnaW4sIGFmZmVjdGVkX2VuZCwgbW1hcF9jYXBhYmlsaXR5
KSwKICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zYWN0aW9uKTsKICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAtODk1LDEzICs5MTAsMTggQEAgc3Rh
dGljIGJvb2wgdHJ5X3NwbGF0X2ltcGwocGFzX3JhbmdlIHJhbgogICAgICAgICBjYXNlIHNwbGF0
X2FsbG9jYXRlX2FuZF9jb21taXQ6CiAgICAgICAgIGNhc2Ugc3BsYXRfZnJlZToKICAgICAgICAg
ICAgIFBBU19BU1NFUlQobm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlID09IHN5bmNocm9uaXph
dGlvbl9zdHlsZSk7CisgICAgICAgICAgICBQQVNfQVNTRVJUKG5vZGUtPm1tYXBfY2FwYWJpbGl0
eSA9PSBtbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2Fz
ZSBzcGxhdF9ib290X2ZyZWU6CiAgICAgICAgICAgICBQQVNfQVNTRVJUKAogICAgICAgICAgICAg
ICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZQogICAgICAgICAgICAgICAgID09IHBhc19w
aHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spOwor
ICAgICAgICAgICAgUEFTX0FTU0VSVCgKKyAgICAgICAgICAgICAgICBub2RlLT5tbWFwX2NhcGFi
aWxpdHkKKyAgICAgICAgICAgICAgICA9PSBwYXNfbWF5X21tYXApOwogICAgICAgICAgICAgbm9k
ZS0+c3luY2hyb25pemF0aW9uX3N0eWxlID0gc3luY2hyb25pemF0aW9uX3N0eWxlOworICAgICAg
ICAgICAgbm9kZS0+bW1hcF9jYXBhYmlsaXR5ID0gbW1hcF9jYXBhYmlsaXR5OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtOTcwLDEyICs5OTAsMTMgQEAgc3RhdGljIGJvb2wg
dHJ5X3NwbGF0KHBhc19yYW5nZSByYW5nZSwKICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFy
Z2VfZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGNvbW1pdF9sb2csCiAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVjb21taXRfbG9nLAogICAg
ICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5z
YWN0aW9uLAotICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICAgICAgICAgICAgICAg
ICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6
YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgYm9vbCByZXN1bHQ7CiAgICAgCiAgICAgcmVzdWx0ID0g
dHJ5X3NwbGF0X2ltcGwoCi0gICAgICAgIHJhbmdlLCBjb21tYW5kLCBlcG9jaCwgY29tbWl0X2xv
ZywgZGVjb21taXRfbG9nLCB0cmFuc2FjdGlvbiwgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAg
ICAgICAgcmFuZ2UsIGNvbW1hbmQsIGVwb2NoLCBjb21taXRfbG9nLCBkZWNvbW1pdF9sb2csIHRy
YW5zYWN0aW9uLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAg
CiAgICAgaWYgKHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfdmFsaWRhdGVfZWFjaF9zcGxhdCkKICAg
ICAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF92YWxpZGF0ZSgpOwpAQCAtOTg5LDE5ICsxMDEw
LDIxIEBAIHN0YXRpYyB2b2lkIHNwbGF0KHBhc19yYW5nZSByYW5nZSwKICAgICAgICAgICAgICAg
ICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogY29tbWl0X2xvZywK
ICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cqIGRlY29tbWl0X2xv
ZywKICAgICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRy
YW5zYWN0aW9uLAotICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJv
bml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlKQorICAgICAgICAgICAgICAgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9u
X3N0eWxlLAorICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFi
aWxpdHkpCiB7CiAgICAgYm9vbCByZXN1bHQ7CiAgICAgCiAgICAgcmVzdWx0ID0gdHJ5X3NwbGF0
KAotICAgICAgICByYW5nZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9sb2csIGRlY29tbWl0X2xv
ZywgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgICAgIHJhbmdlLCBj
b21tYW5kLCBlcG9jaCwgY29tbWl0X2xvZywgZGVjb21taXRfbG9nLCB0cmFuc2FjdGlvbiwgc3lu
Y2hyb25pemF0aW9uX3N0eWxlLCBtbWFwX2NhcGFiaWxpdHkpOwogICAgIAogICAgIFBBU19BU1NF
UlQocmVzdWx0KTsKIH0KIAogdm9pZCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgK
ICAgICBwYXNfcmFuZ2UgcmFuZ2UsCi0gICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6
YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlKQorICAgIHBhc19waHlzaWNhbF9tZW1v
cnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNf
bW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICB1aW50NjRfdCBlcG9jaDsK
IApAQCAtMTAwOSwxMSArMTAzMiwxMiBAQCB2b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9v
dF9mcmVlKAogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgZXBvY2ggPSBwYXNfZ2V0X2Vwb2No
KCk7Ci0gICAgc3BsYXQocmFuZ2UsIHNwbGF0X2Jvb3RfZnJlZSwgZXBvY2gsIE5VTEwsIE5VTEws
IE5VTEwsIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgc3BsYXQocmFuZ2UsIHNwbGF0X2Jv
b3RfZnJlZSwgZXBvY2gsIE5VTEwsIE5VTEwsIE5VTEwsIHN5bmNocm9uaXphdGlvbl9zdHlsZSwg
bW1hcF9jYXBhYmlsaXR5KTsKIH0KIAogdm9pZCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUo
cGFzX3JhbmdlIHJhbmdlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxl
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9z
eW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkp
CiB7CiAgICAgdWludDY0X3QgZXBvY2g7CiAKQEAgLTEwMjIsMTMgKzEwNDYsMTQgQEAgdm9pZCBw
YXNfbGFyZ2Vfc2hhcmluZ19wb29sX2ZyZWUocGFzX3JhbgogICAgIAogICAgIGVwb2NoID0gcGFz
X2dldF9lcG9jaCgpOwogICAgIAotICAgIHNwbGF0KHJhbmdlLCBzcGxhdF9mcmVlLCBlcG9jaCwg
TlVMTCwgTlVMTCwgTlVMTCwgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICBzcGxhdChyYW5n
ZSwgc3BsYXRfZnJlZSwgZXBvY2gsIE5VTEwsIE5VTEwsIE5VTEwsIHN5bmNocm9uaXphdGlvbl9z
dHlsZSwgbW1hcF9jYXBhYmlsaXR5KTsKIH0KIAogYm9vbCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
X2FsbG9jYXRlX2FuZF9jb21taXQoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAogICAgIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAotICAgIHBhc19waHlzaWNhbF9t
ZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICBw
YXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25f
c3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIApAQCAtMTA1MSw3ICsxMDc2
LDcgQEAgYm9vbCBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2FsbG9jYXRlX2FuZAogICAgIHBhc19s
YXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZ19jb25zdHJ1Y3QoJmNvbW1pdF9sb2cp
OwogCiAgICAgaWYgKCF0cnlfc3BsYXQocmFuZ2UsIHNwbGF0X2FsbG9jYXRlX2FuZF9jb21taXQs
IGVwb2NoLAotICAgICAgICAgICAgICAgICAgICZjb21taXRfbG9nLCBOVUxMLCB0cmFuc2FjdGlv
biwgc3luY2hyb25pemF0aW9uX3N0eWxlKSkgeworICAgICAgICAgICAgICAgICAgICZjb21taXRf
bG9nLCBOVUxMLCB0cmFuc2FjdGlvbiwgc3luY2hyb25pemF0aW9uX3N0eWxlLCBtbWFwX2NhcGFi
aWxpdHkpKSB7CiAgICAgICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xv
Z19kZXN0cnVjdCgmY29tbWl0X2xvZyk7CiAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAg
ICAgcGFzX2xvZygiR2l2aW5nIHVwIG9uIGFsbG9jYXRlIGFuZCBjb21taXQgYmVjYXVzZSB0aGUg
c3BsYXQgZmFpbGVkLlxuIik7CkBAIC0xMTI1LDcgKzExNTAsNyBAQCBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2RlY29tbWl0X2xlYXN0X3JlCiAgICAgfQogICAgIAogICAgIGlmICh0cnlfc3BsYXQo
bm9kZS0+cmFuZ2UsIHNwbGF0X2RlY29tbWl0LCAwLCBOVUxMLCBkZWNvbW1pdF9sb2csIE5VTEws
Ci0gICAgICAgICAgICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUpKSB7CisgICAg
ICAgICAgICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUsIG5vZGUtPm1tYXBfY2Fw
YWJpbGl0eSkpIHsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJU
aGUgc3BsYXQgd29ya2VkLlxuIik7CiAgICAgICAgIHJldHVybiBwYXNfcGFnZV9zaGFyaW5nX3Bv
b2xfdGFrZV9zdWNjZXNzOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaAkocmV2aXNpb24gMjg5NTA4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
YykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgInBhc19m
cmVlX21vZGUuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9zdW1tYXJ5LmgiCiAjaW5jbHVkZSAicGFz
X2xhcmdlX3NoYXJpbmdfcG9vbF9lcG9jaF91cGRhdGVfbW9kZS5oIgorI2luY2x1ZGUgInBhc19t
bWFwX2NhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJwYXNfbWluX2hlYXAuaCIKICNpbmNsdWRlICJw
YXNfcGFnZV9zaGFyaW5nX3BhcnRpY2lwYW50LmgiCiAjaW5jbHVkZSAicGFzX3BoeXNpY2FsX21l
bW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUuaCIKQEAgLTUxLDEwICs1MiwxMCBAQCBzdHJ1Y3Qg
cGFzX2xhcmdlX3NoYXJpbmdfbm9kZSB7CiAgICAgcGFzX3JlZF9ibGFja190cmVlX25vZGUgdHJl
ZV9ub2RlOwogICAgIAogICAgIHBhc19jb21taXRfbW9kZSBpc19jb21taXR0ZWQgOiAxOwotCiAg
ICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0
aW9uX3N0eWxlIDogMTsKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSA6
IDE7CiAKLSAgICB1bnNpZ25lZCBpbmRleF9pbl9taW5faGVhcCA6IDMwOyAvKiBpdCdzIGEgb25l
LWJhc2VkIGluZGV4OyBpdCdzIHplcm8gdG8gaW5kaWNhdGUgdGhhdCB3ZSdyZSBub3QgaW4KKyAg
ICB1bnNpZ25lZCBpbmRleF9pbl9taW5faGVhcCA6IDI5OyAvKiBpdCdzIGEgb25lLWJhc2VkIGlu
ZGV4OyBpdCdzIHplcm8gdG8gaW5kaWNhdGUgdGhhdCB3ZSdyZSBub3QgaW4KICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbWluX2hlYXAuICovCiAgICAgCiAgICAg
cGFzX3JhbmdlIHJhbmdlOyAvKiBIYXMgdG8gYmUgYSBwYWdlIHJhbmdlLiAqLwpAQCAtMTQ1LDE2
ICsxNDYsMTkgQEAgUEFTX0FQSSBleHRlcm4gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9lcAogLyog
VGhpcyBtYWtlcyB0aGUgbWVtb3J5IGZyZWUgYW5kIGFsc28gYnVtcHMgdGhlIGVwb2NoLiAqLwog
UEFTX0FQSSB2b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgIHBhc19y
YW5nZSByYW5nZSwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHls
ZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKIFBBU19BUEkgdm9pZCBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2ZyZWUoCiAgICAgcGFzX3JhbmdlIHJhbmdlLAotICAgIHBhc19waHlzaWNhbF9tZW1v
cnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgcGFz
X3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0
eWxlLAorICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIAogUEFTX0FQ
SSBib29sIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYWxsb2NhdGVfYW5kX2NvbW1pdCgKICAgICBw
YXNfcmFuZ2UgcmFuZ2UsCiAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJh
bnNhY3Rpb24sCi0gICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUg
c3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9u
aXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJp
bGl0eSBtbWFwX2NhcGFiaWxpdHkpOwogCiAvKiBUaGlzIGRvZXNuJ3QgYWN0dWFsbHkgZGVjb21t
aXQgdGhlIG1lbW9yeS4gSXQganVzdCB0ZWxscyB5b3UgYWJvdXQgd2hhdCBtZW1vcnkgdG8gZGVj
b21taXQKICAgIHVzaW5nIHRoZSBkZWNvbW1pdF9sb2cuIEl0J3MgeW91ciBqb2IgdG8gZGVjb21t
aXQgZXZlcnl0aGluZyBpbiB0aGF0IGxvZywgd2hpY2ggeW91IGNhbgpJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4
NiBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZu
ZGVmIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX0gKKyNkZWZpbmUgUEFTX0xBUkdFX1ZJUlRVQUxf
UkFOR0VfSAorCisjaW5jbHVkZSAicGFzX2xvY2suaCIKKyNpbmNsdWRlICJwYXNfbW1hcF9jYXBh
YmlsaXR5LmgiCisjaW5jbHVkZSAicGFzX3JhbmdlLmgiCisjaW5jbHVkZSAicGFzX3V0aWxzLmgi
CisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
OwordHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2U7CisKK3N0cnVjdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSB7CisgICAgdWludHB0
cl90IGJlZ2luOworICAgIHVpbnRwdHJfdCBlbmQ7CisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHk7Cit9OworCitzdGF0aWMgaW5saW5lIHBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2NyZWF0ZSh1aW50cHRyX3QgYmVnaW4sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1aW50cHRyX3QgZW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHkpCit7CisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmVzdWx0Owor
ICAgIHJlc3VsdC5iZWdpbiA9IGJlZ2luOworICAgIHJlc3VsdC5lbmQgPSBlbmQ7CisgICAgcmVz
dWx0Lm1tYXBfY2FwYWJpbGl0eSA9IG1tYXBfY2FwYWJpbGl0eTsKKyAgICByZXR1cm4gcmVzdWx0
OworfQorCitzdGF0aWMgaW5saW5lIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX2NyZWF0ZV9lbXB0eSh2b2lkKQoreworICAgIHJldHVybiBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZV9jcmVhdGUoMCwgMCwgcGFzX21heV9ub3RfbW1hcCk7Cit9CisKK3N0YXRp
YyBpbmxpbmUgcGFzX3JhbmdlIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5nZShwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZSByYW5nZSkKK3sKKyAgICByZXR1cm4gcGFzX3JhbmdlX2NyZWF0
ZShyYW5nZS5iZWdpbiwgcmFuZ2UuZW5kKTsKK30KKworc3RhdGljIGlubGluZSBib29sIHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX2lzX2VtcHR5KHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlIHJhbmdl
KQoreworICAgIHJldHVybiBwYXNfcmFuZ2VfaXNfZW1wdHkocGFzX2xhcmdlX3ZpcnR1YWxfcmFu
Z2VfZ2V0X3JhbmdlKHJhbmdlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlX3NpemUocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UpCit7Cisg
ICAgcmV0dXJuIHBhc19yYW5nZV9zaXplKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5n
ZShyYW5nZSkpOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xhcmdlX3ZpcnR1YWxfcmFu
Z2Vfb3ZlcmxhcHMocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgbGVmdCwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZSByaWdodCkKK3sKKyAgICByZXR1cm4gcGFzX3JhbmdlX292ZXJsYXBzKHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX2dldF9yYW5nZShsZWZ0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5nZShyaWdodCkpOworfQorCitQQVNf
RU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0xBUkdFX1ZJUlRVQUxfUkFOR0VfSCAqLwor
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZV9taW5faGVhcC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgJKG5vbmV4aXN0ZW50
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxf
cmFuZ2VfbWluX2hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJ
UycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0xBUkdF
X1ZJUlRVQUxfUkFOR0VfTUlOX0hFQVBfSAorI2RlZmluZSBQQVNfTEFSR0VfVklSVFVBTF9SQU5H
RV9NSU5fSEVBUF9ICisKKyNpbmNsdWRlICJwYXNfbWluX2hlYXAuaCIKKyNpbmNsdWRlICJwYXNf
dXRpbHMuaCIKKyNpbmNsdWRlICJwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIgorCitQQVNfQkVH
SU5fRVhURVJOX0M7CisKK3N0YXRpYyBpbmxpbmUgaW50IHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
X2NvbXBhcmVfYmVnaW4ocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UqIGxlZnQsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlKiByaWdodCkKK3sKKyAgICBpZiAobGVmdC0+YmVnaW4gPCByaWdodC0+YmVn
aW4pCisgICAgICAgIHJldHVybiAtMTsKKyAgICBpZiAobGVmdC0+YmVnaW4gPT0gcmlnaHQtPmJl
Z2luKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gMTsKK30KKworc3RhdGljIGlubGlu
ZSBzaXplX3QgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X2luZGV4KHBhc19sYXJnZV92aXJ0
dWFsX3JhbmdlKiByYW5nZSkKK3sKKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFj
aGVkIik7CisgICAgUEFTX1VOVVNFRF9QQVJBTShyYW5nZSk7CisgICAgcmV0dXJuIDA7Cit9CisK
K3N0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zZXRfaW5kZXgocGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UqIHJhbmdlLCBzaXplX3QgaW5kZXgpCit7CisgICAgUEFTX1VO
VVNFRF9QQVJBTShyYW5nZSk7CisgICAgUEFTX1VOVVNFRF9QQVJBTShpbmRleCk7Cit9CisKK1BB
U19DUkVBVEVfTUlOX0hFQVAoCisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAs
CisgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UsCisgICAgMzIsCisgICAgLmNvbXBhcmUgPSBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jb21wYXJlX2JlZ2luLAorICAgIC5nZXRfaW5kZXggPSBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfaW5kZXgsCisgICAgLnNldF9pbmRleCA9IHBhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX3NldF9pbmRleCk7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNl
bmRpZiAvKiBQQVNfTEFSR0VfVklSVFVBTF9SQU5HRV9NSU5fSEVBUF9IICovCisKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxs
b2NhdG9yLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtNzcsOCArNzcs
NyBAQCB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uc3RydWN0KHBhc19sCiAgICAgICAgICAg
ICBwYXNfY29tcGFjdF9iaXRmaXRfZGlyZWN0b3J5X3B0cl9sb2FkX25vbl9udWxsKCZzaXplX2Ns
YXNzLT5kaXJlY3RvcnkpLT5jb25maWdfa2luZCk7CiAKICAgICAgICAgYml0Zml0X2FsbG9jYXRv
ciA9IHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpOwotICAgICAgICBi
aXRmaXRfYWxsb2NhdG9yLT5zaXplX2NsYXNzID0gc2l6ZV9jbGFzczsKLSAgICAgICAgYml0Zml0
X2FsbG9jYXRvci0+dmlldyA9IE5VTEw7CisgICAgICAgIHBhc19iaXRmaXRfYWxsb2NhdG9yX2Nv
bnN0cnVjdChiaXRmaXRfYWxsb2NhdG9yLCBzaXplX2NsYXNzKTsKICAgICB9IGVsc2UKICAgICAg
ICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tp
bmRfY3JlYXRlX25vcm1hbChkaXJlY3RvcnktPmJhc2UucGFnZV9jb25maWdfa2luZCk7CiAgICAg
CkBAIC0xMjAsNiArMTE5LDkgQEAgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUocGFzX2xv
Y2FsXwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOyAvKiBOZWVkZWQgdG8gbW9k
aWZ5IGEgbGVuaWVudF9jb21wYWN0X3B0ci4gKi8KIAorICAgIFBBU19BU1NFUlQoIWRzdC0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAgICBQQVNfQVNTRVJUKCFzcmMtPnNjYXZlbmdlcl9k
YXRhLmlzX2luX3VzZSk7CisKICAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dl
dF9zaXplX2RpcmVjdG9yeShzcmMtPnZpZXcpOwogICAgIAogICAgIHNpemUgPSBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeV9sb2NhbF9hbGxvY2F0b3Jfc2l6ZShkaXJlY3RvcnkpOwpAQCAt
MTU4LDYgKzE2MCwxMyBAQCBzdGF0aWMgYm9vbCBzdG9wX2ltcGwoCiAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgIHBhc19sb2coInN0b3BwaW5nIGFsbG9jYXRvciAlcFxuIiwgYWxsb2NhdG9yKTsK
IAorICAgIGlmIChwYXNfbG9jYWxfYWxsb2NhdG9yX2hhc19iaXRmaXQoYWxsb2NhdG9yKSkgewor
ICAgICAgICBQQVNfQVNTRVJUKCFhbGxvY2F0b3ItPnBhZ2VfaXNoKTsKKyAgICAgICAgcGFzX2Jp
dGZpdF9hbGxvY2F0b3Jfc3RvcChwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9iaXRmaXQoYWxsb2Nh
dG9yKSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIC8qIFRoaXMgYWxzbyBz
dG9wcyB1cyBmcm9tIGRvaW5nIGFueXRoaW5nIHdoZW4gd2UndmUgYmVlbiBkZWNvbW1pdHRlZC4g
Ki8KICAgICBpZiAoIWFsbG9jYXRvci0+cGFnZV9pc2gpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CkBAIC0yMDAsOCArMjA5LDYgQEAgc3RhdGljIGJvb2wgc3RvcF9pbXBsKAogICAgIHJldHVybiB0
cnVlOwogfQogCi0vKiBGSVhNRTogVGhpcyB0aGluZyBpcyBtZWFuaW5nbGVzcyB3aXRoIGhlYXBf
bG9ja19ob2xkX21vZGUgPSBwYXNfbG9ja19pc19ub3RfaGVsZCB1bmxlc3MgeW91Ci0gICBhbHNv
IHNldCBpc19pbl91c2UgdG8gdHJ1ZS4gU2VlbXMgbGlrZSBtYXliZSB0aGlzIHNob3VsZCBzZXQg
aXQgZm9yIHlvdT8gKi8KIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKAogICAgIHBhc19s
b2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICBwYXNfbG9ja19sb2NrX21vZGUgcGFnZV9s
b2NrX21vZGUsCkBAIC0yMTAsOCArMjE3LDI3IEBAIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
dG9wKAogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICBi
b29sIHJlc3VsdDsKKyAgICBib29sIGlzX2luX3VzZTsKIAotICAgIFBBU19BU1NFUlQoIWFsbG9j
YXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAgICBpc19pbl91c2UgPSBhbGxvY2F0
b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZTsKKyAgICBpZiAoaXNfaW5fdXNlKSB7CisgICAg
ICAgIHBhc19sb2coImFsbG9jYXRvciA9ICVwXG4iLCBhbGxvY2F0b3IpOworICAgICAgICBwYXNf
bG9nKCJhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmtpbmQgPSAlc1xuIiwKKyAgICAgICAgICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPnNjYXZl
bmdlcl9kYXRhLmtpbmQpKTsKKyAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yLT5zY2F2ZW5nZXJf
ZGF0YS5pc19pbl91c2UgPSAlc1xuIiwKKyAgICAgICAgICAgICAgICBhbGxvY2F0b3ItPnNjYXZl
bmdlcl9kYXRhLmlzX2luX3VzZSA/ICJ5ZXMiIDogIm5vIik7CisgICAgICAgIHBhc19sb2coImF0
IHRpbWUgb2YgYXNzZXJ0OiBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9ICVz
XG4iLAorICAgICAgICAgICAgICAgIGlzX2luX3VzZSA/ICJ5ZXMiIDogIm5vIik7CisgICAgICAg
IFBBU19BU1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKKyAgICB9CisKKyAgICAvKiBE
b2luZyB0aGlzIGNoZWNrIGJlZm9yZSBzZXR0aW5nIGlzX2luX3VzZSBndWFyZHMgYWdhaW5zdCBz
aXR1YXRpb25zIHdoZXJlIGNhbGxpbmcgc3RvcCB3b3VsZAorICAgICAgIHJlY29tbWl0IGEgZGVj
b21taXR0ZWQgYWxsb2NhdG9yLgorICAgIAorICAgICAgIFRoaXMgaXMgYSBwcmV0dHkgd2VhayBv
cHRpbWl6YXRpb24gc2luY2UgaW4gbXkgZXhwZXJpbWVudHMsIHJlYWRzIGNhdXNlIGNvbW1pdHMu
IFdlYiBUZW1wbGF0ZQorICAgICAgIEZyYW1ld29yayEgKi8KKyAgICBpZiAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9k
YXRhKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9k
YXRhLmlzX2luX3VzZSA9IHRydWU7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CkBAIC0yMjIs
NiArMjQ4LDcgQEAgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoCiAgICAgICAgIGlmICh2
ZXJib3NlKQogICAgICAgICAgICAgcGFzX2xvZygiRGlkIHN0b3AgYWxsb2NhdG9yICVwXG4iLCBh
bGxvY2F0b3IpOwogICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9zdG9w
X2NvdW50ID0gMDsKKyAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID0gcGFz
X2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOwogICAgIH0KICAgICAKICAg
ICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5o
CShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbG9jYWxfYWxsb2NhdG9yX2lubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUs
MzkgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfcgogICAgIGFsbG9j
YXRvci0+Y29uZmlnX2tpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0
ZV9ub3JtYWwoa2luZCk7CiB9CiAKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeV9pbXBsKHBhc19sb2NhbF9hbGxvY2F0
b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX2NvbmZpZyBjb25maWcp
Cit7CisgICAgLyogSXQncyBwb3NzaWJsZSB0aGF0OgorICAgICAgIAorICAgICAgIC0gVGhlIGFs
bG9jYXRvciB3YXMgc3RvcHBlZC4KKyAgICAgICAtIFdlIHN0YXJ0ZWQgYWxsb2NhdGluZywgYW5k
IHNldCBpc19pbl91c2UgPSB0cnVlLgorICAgICAgIC0gU29tZW9uZSBkZWNvbW1pdHRlZCB0aGUg
cGFnZSB0aGF0IHRoaXMgYWxsb2NhdG9yIHdhcyBvbiwgY2F1c2luZyBpc19pbl91c2UgdG8gYmVj
b21lIGZhbHNlLgorICAgICAgIAorICAgICAgIEFuZCB0aGVuIHdlIGVuZCB1cCBpbiBoZXJlLgor
ICAgIAorICAgICAgIFRoZXJlZm9yZSwgd2UgY2Fubm90IGFzc2VydCB0aGF0IGlzX2luX3VzZSBp
cyB0cnVlLiBCdXQsIHdoZW4gd2UgcmV0dXJuIGZyb20gaGVyZSwgaXQgbXVzdCBiZSB0cnVlLiAq
LworICAgIGlmIChQQVNfTElLRUxZKGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEua2luZCA9PSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGNvbmZpZy5raW5kID09IHBhc19oZWFwX2NvbmZpZ19raW5kX3Bhc191dGlsaXR5KSB7
CisgICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEua2luZCA9IHBhc19sb2NhbF9hbGxv
Y2F0b3JfYWxsb2NhdG9yX2tpbmQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdygK
KyAgICAgICAgJmFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEsCisgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lzX2luX3Vz
ZV93aXRoX25vX2xvY2tzX2hlbGRfbW9kZSwKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGxvY2F0b3Jfa2luZCk7Cit9CisKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIHBhc19s
b2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeShwYXNfbG9jYWxfYWxsb2NhdG9yKiBh
bGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmlnIGNvbmZpZykKK3sKKyAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX2NvbW1pdF9pZl9uZWNlc3NhcnlfaW1wbChhbGxvY2F0b3IsIGNv
bmZpZyk7CisgICAgUEFTX0FTU0VSVChhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmlzX2luX3Vz
ZSk7Cit9CisKIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NldF91cF9i
dW1wKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBwYWdlX2JvdW5kYXJ5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0
cl90IGJlZ2luLApAQCAtNzQ1LDcgKzc3OCw2IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfYmxlc3Nf
cHJpbW9yZGlhbF9wYXIKICAgICAgICAgIHdvcmRfaW5kZXggPCBwYXNfc2VncmVnYXRlZF9wYWdl
X2NvbmZpZ19udW1fYWxsb2Nfd29yZHMocGFnZV9jb25maWcpOwogICAgICAgICAgd29yZF9pbmRl
eCsrKSB7CiAgICAgICAgIHVuc2lnbmVkIGZ1bGxfYWxsb2Nfd29yZDsKLSAgICAgICAgYm9vbCBz
aG91bGRfYmVfZWxpZ2libGU7CiAKICAgICAgICAgZnVsbF9hbGxvY193b3JkID0gYml0c1t3b3Jk
X2luZGV4XTsKICAgICAgICAgCkBAIC03NTUsMjEgKzc4Nyw2IEBAIHBhc19sb2NhbF9hbGxvY2F0
b3JfYmxlc3NfcHJpbW9yZGlhbF9wYXIKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAg
ICBwYXNfbG9nKCJOb256ZXJvIGZ1bGwgYWxsb2Mgd29yZCBhdCBpbmRleCA9ICV6dVxuIiwgd29y
ZF9pbmRleCk7CiAKLSAgICAgICAgLyogV2UgZ28gaW50byB0aGlzIGxvb3Agd2l0aCB0aGUgcGFy
dGlhbCB2aWV3IGFwcGVhcmluZyBlbGlnaWJpbGUgdG8gZGVhbGxvY2F0aW9ucy4gU28sCi0gICAg
ICAgICAgIHNvbWV0aGluZyBtYXkgaGF2ZSBiZWVuIGZyZWVkLiBJZiBpdCB3YXMsIGxldCBmb2xr
cyBrbm93LiBOb3RlIHRoYXQgdGhlIG9ubHkgcmVhc29uIHdoeQotICAgICAgICAgICB3ZSBoYXZl
IGEgc3BlY2lhbCBjYXNlIGZvciBlbmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6
YXRpb24gaXMgdGhhdCB0aGlzCi0gICAgICAgICAgIHNpbXBsaWZpZXMgdGhlIGxvZ2ljIGluIHBh
c19zZWdyZWdhdGVkX3ZpZXdfc2hvdWxkX2JlX2VsaWdpYmxlKCkuIEl0IHdvdWxkIG9ubHkgYmUg
YSB0aW55Ci0gICAgICAgICAgIGJlaGF2aW9yYWwgY2hhbmdlIC0gc2xpZ2h0bHkgYmV0dGVyIGZv
ciBzcGFjZSwgc2xpZ2h0bHkgd29yc2UgZm9yIHRpbWUgLSB0byBnZXQgcmlkIG9mCi0gICAgICAg
ICAgIHRoaXMgc3BlY2lhbCBjYXNlLCBpbiB3aGljaCBjYXNlIHdlJ2QgaGF2ZSB0byBlZGl0IHNo
b3VsZF9iZV9lbGlnaWJsZSgpLiAqLwotICAgICAgICBpZiAocGFnZV9jb25maWcuZW5hYmxlX2Vt
cHR5X3dvcmRfZWxpZ2liaWxpdHlfb3B0aW1pemF0aW9uX2Zvcl9zaGFyZWQpCi0gICAgICAgICAg
ICBzaG91bGRfYmVfZWxpZ2libGUgPSAhIShmdWxsX2FsbG9jX3dvcmQgJiYgIXBhZ2UtPmFsbG9j
X2JpdHNbd29yZF9pbmRleF0pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBzaG91bGRfYmVf
ZWxpZ2libGUgPSAhIShmdWxsX2FsbG9jX3dvcmQgJiB+cGFnZS0+YWxsb2NfYml0c1t3b3JkX2lu
ZGV4XSk7Ci0gICAgICAgIGlmIChzaG91bGRfYmVfZWxpZ2libGUpIHsKLSAgICAgICAgICAgIHZp
ZXctPmVsaWdpYmlsaXR5X25vdGlmaWNhdGlvbl9oYXNfYmVlbl9kZWZlcnJlZCA9IHRydWU7Ci0g
ICAgICAgICAgICB2aWV3LT5lbGlnaWJpbGl0eV9oYXNfYmVlbl9ub3RlZCA9IHRydWU7Ci0gICAg
ICAgIH0KLQogICAgICAgICBpZiAoIWhhc19maXJzdF9ub25femVyb193b3JkX2luZGV4KSB7CiAg
ICAgICAgICAgICBmaXJzdF9ub25femVyb193b3JkX2luZGV4ID0gd29yZF9pbmRleDsKICAgICAg
ICAgICAgIGhhc19maXJzdF9ub25femVyb193b3JkX2luZGV4ID0gdHJ1ZTsKQEAgLTEwNjAsOCAr
MTA3Nyw4IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVmaWxsX3dpdGhfa25vd25fY28KICAgICAg
ICAgICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24o
JnZpZXdfY2FjaGUtPnNjYXZlbmdlcl9kYXRhKTsKLSAgICAgICAgICAgIAotICAgICAgICAgICAg
aWYgKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSh2aWV3X2NhY2hlKSkgeworCisgICAg
ICAgICAgICBpZiAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wb3Aodmlld19jYWNo
ZSkpIHsKICAgICAgICAgICAgICAgICBuZXdfdmlldyA9IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2FzX3ZpZXcocGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHZpZXdfY2FjaGUpKTsKICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX3Nl
Z3JlZ2F0ZWRfdmlld19pc19zb21lX2V4Y2x1c2l2ZShuZXdfdmlldykpOwpAQCAtMTUxNywxMSAr
MTUzNCwxNCBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbWFsbF9zCiB7CiAg
ICAgUEFTX0FTU0VSVCghcGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChjb25maWcua2luZCkpOwog
ICAgIAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeShhbGxvY2F0
b3IsIGNvbmZpZyk7CisgICAgCiAgICAgZm9yICg7OykgewogICAgICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQgcmVzdWx0OwogICAgICAgICBib29sIHJlZmlsbF9yZXN1bHQ7CiAKICAgICAgICAg
UEFTX0FTU0VSVChjb25maWcuc21hbGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19lbmFibGVk
KTsKKwogICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCA9
PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9ub3JtYWwoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnLnNtYWxsX3NlZ3JlZ2F0ZWRfY29uZmlnLmtp
bmQpKTsKIApAQCAtMTU3Nyw4ICsxNTk3LDkgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlfYWxs
b2NhdGVfb3V0X29mXwogICAgIGlmIChjb25maWcuc21hbGxfYml0Zml0X2NvbmZpZy5iYXNlLmlz
X2VuYWJsZWQgJiYKICAgICAgICAgb3VyX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZF9jcmVhdGVfYml0Zml0KAogICAgICAgICAgICAgY29uZmlnLnNtYWxsX2JpdGZpdF9j
b25maWcua2luZCkpIHsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YV9kaWRfdXNlX2Zvcl9hbGxvY2F0aW9uKCZhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhKTsKICAg
ICAgICAgcmV0dXJuIGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmlnLnNwZWNpYWxpemVkX2FsbG9j
YXRvcl90cnlfYWxsb2NhdGUoCi0gICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9i
aXRmaXQoYWxsb2NhdG9yKSwgc2l6ZSwgYWxpZ25tZW50KTsKKyAgICAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBhbGxvY2F0b3IsIHNpemUsIGFsaWdu
bWVudCk7CiAgICAgfQogICAgIAogICAgIGlmIChjb25maWcubWVkaXVtX3NlZ3JlZ2F0ZWRfY29u
ZmlnLmJhc2UuaXNfZW5hYmxlZCAmJgpAQCAtMTU5Miw4ICsxNjEzLDkgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGVfb3V0X29mXwogICAgIGlmIChjb25maWcubWVkaXVtX2JpdGZp
dF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCiAgICAgICAgIG91cl9raW5kID09IHBhc19sb2Nh
bF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX2JpdGZpdCgKICAgICAgICAgICAgIGNvbmZp
Zy5tZWRpdW1fYml0Zml0X2NvbmZpZy5raW5kKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24oJmFsbG9jYXRvci0+c2Nh
dmVuZ2VyX2RhdGEpOwogICAgICAgICByZXR1cm4gY29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmln
LnNwZWNpYWxpemVkX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUoCi0gICAgICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX2dldF9iaXRmaXQoYWxsb2NhdG9yKSwgc2l6ZSwgYWxpZ25tZW50KTsKKyAg
ICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBhbGxv
Y2F0b3IsIHNpemUsIGFsaWdubWVudCk7CiAgICAgfQogICAgIAogICAgIGlmIChjb25maWcuc21h
bGxfc2VncmVnYXRlZF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCkBAIC0xNjE3LDggKzE2Mzks
OSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9vdXRfb2ZfCiAgICAgaWYgKGNv
bmZpZy5tYXJnZV9iaXRmaXRfY29uZmlnLmJhc2UuaXNfZW5hYmxlZCAmJgogICAgICAgICBvdXJf
a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9iaXRmaXQoCiAg
ICAgICAgICAgICBjb25maWcubWFyZ2VfYml0Zml0X2NvbmZpZy5raW5kKSkgeworICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24o
JmFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEpOwogICAgICAgICByZXR1cm4gY29uZmlnLm1hcmdl
X2JpdGZpdF9jb25maWcuc3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSgKLSAgICAg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBzaXplLCBh
bGlnbm1lbnQpOworICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFs
bG9jYXRvciksIGFsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCiAgICAg
cmV0dXJuIHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHRfY3JlYXRlX25lZWRfc2xvdygp
OwpAQCAtMTYzNyw5ICsxNjYwLDExIEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
X3Nsb3dfaW0KICAgICAgICAgcGFzX2xvZygiQ2FsbGVkIHRyeV9hbGxvY2F0ZV9zbG93IHdpdGgg
a2luZCA9ICVzXG4iLAogICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmln
X2tpbmRfZ2V0X3N0cmluZyhhbGxvY2F0b3ItPmNvbmZpZ19raW5kKSk7CiAgICAgfQotCisgICAg
CiAgICAgUEFTX0FTU0VSVCghcGFzX2RlYnVnX2hlYXBfaXNfZW5hYmxlZChjb25maWcua2luZCkp
OwogICAgIAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeShhbGxv
Y2F0b3IsIGNvbmZpZyk7CisgICAgCiAgICAgZm9yICg7OykgewogICAgICAgICBwYXNfZmFzdF9w
YXRoX2FsbG9jYXRpb25fcmVzdWx0IGZhc3RfcmVzdWx0OwogICAgICAgICBwYXNfYWxsb2NhdGlv
bl9yZXN1bHQgcmVzdWx0OwpAQCAtMTY1Niw2ICsxNjgxLDggQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl90cnlfYWxsb2NhdGVfc2xvd19pbQogICAgICAgICB9CiAKICAgICAgICAgUEFTX1RFU1RJTkdf
QVNTRVJUKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZF91bnNlbGVjdGVkKTsKKyAgICAgICAgCisgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChhbGxvY2F0b3ItPmNvbmZpZ19raW5kICE9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tp
bmRfdW5zZWxlY3RlZCk7CiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3ItPmNv
bmZpZ19raW5kICE9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfbnVsbCk7CiAgICAg
ICAgIFBBU19URVNUSU5HX0FTU0VSVCghcGFzX2xvY2FsX2FsbG9jYXRvcl9oYXNfYml0Zml0KGFs
bG9jYXRvcikpOwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
bG9jYWxfYWxsb2NhdG9yX2tpbmQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQuaAkocmV2aXNpb24gMjg5NTA4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
cl9raW5kLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDEwIEBACiBQQVNfQkVHSU5fRVhU
RVJOX0M7CiAKIGVudW0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIHsKKyAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQsCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9w
cGVkX2FsbG9jYXRvcl9raW5kLAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tp
bmQsCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2FjaGVfa2luZCwKICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZAogfTsKIApAQCAtNDAsOCArNDMs
MTQgQEAgdHlwZWRlZiBlbnVtIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBwYQogc3RhdGljIGlu
bGluZSBjb25zdCBjaGFyKiBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0X3N0cmluZyhwYXNf
bG9jYWxfYWxsb2NhdG9yX2tpbmQga2luZCkKIHsKICAgICBzd2l0Y2ggKGtpbmQpIHsKKyAgICBj
YXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZDoKKyAgICAgICAgcmV0dXJu
ICJkZWNvbW1pdHRlZCI7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxs
b2NhdG9yX2tpbmQ6CisgICAgICAgIHJldHVybiAic3RvcHBlZF9hbGxvY2F0b3IiOwogICAgIGNh
c2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDoKICAgICAgICAgcmV0dXJuICJh
bGxvY2F0b3IiOworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2Fj
aGVfa2luZDoKKyAgICAgICAgcmV0dXJuICJzdG9wcGVkX3ZpZXdfY2FjaGUiOwogICAgIGNhc2Ug
cGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6CiAgICAgICAgIHJldHVybiAidmll
d19jYWNoZSI7CiAgICAgfQpAQCAtNDksNiArNTgsMjEgQEAgc3RhdGljIGlubGluZSBjb25zdCBj
aGFyKiBwYXNfbG9jYWxfYWxsbwogICAgIHJldHVybiBOVUxMOwogfQogCitzdGF0aWMgaW5saW5l
IGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2lzX3N0b3BwZWQocGFzX2xvY2FsX2FsbG9j
YXRvcl9raW5kIGtpbmQpCit7CisgICAgc3dpdGNoIChraW5kKSB7IAorICAgIGNhc2UgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kOgorICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRv
cl9zdG9wcGVkX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2Fz
ZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgorICAgIGNhc2UgcGFzX2xvY2Fs
X2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9
CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIHJldHVybiBm
YWxzZTsKK30KKwogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19MT0NBTF9BTExP
Q0FUT1JfS0lORCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5
LDIxICsyOSwxMjggQEAKIAogI2luY2x1ZGUgInBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEuaCIKIAorI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKyNpbmNsdWRlICJw
YXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlLmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9j
YXRvci5oIgogI2luY2x1ZGUgInBhc19sb2NhbF92aWV3X2NhY2hlLmgiCisjaW5jbHVkZSAicGFz
X2hlYXBfbG9jay5oIgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKKyNpbmNs
dWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIgorI2luY2x1ZGUgInBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX25vZGUuaCIKIAogdWludDhfdCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9w
X2NvdW50X2Zvcl9zdXNwZW5kID0gNTsKIAotYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2lzX2FjdGl2ZShwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBk
YXRhKQorYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2Jhc2VsaW5l
X2FsbG9jYXRvcihwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQogewot
ICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgewotICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGxvY2F0b3Jfa2luZDoKLSAgICAgICAgcmV0dXJuIHBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0
aXZlKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhKTsKLSAgICBjYXNlIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfdmlld19jYWNoZV9raW5kOgotICAgICAgICByZXR1cm4gIXBhc19sb2NhbF92aWV3X2Nh
Y2hlX2lzX2VtcHR5KChwYXNfbG9jYWxfdmlld19jYWNoZSopZGF0YSk7CisgICAgdWludHB0cl90
IGRhdGFfcHRyOworICAgIHVpbnRwdHJfdCBiYXNlbGluZV9iZWdpbjsKKyAgICB1aW50cHRyX3Qg
YmFzZWxpbmVfZW5kOworCisgICAgZGF0YV9wdHIgPSAodWludHB0cl90KWRhdGE7CisgICAgYmFz
ZWxpbmVfYmVnaW4gPSAodWludHB0cl90KXBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGU7Cisg
ICAgYmFzZWxpbmVfZW5kID0gKHVpbnRwdHJfdCkocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJs
ZSArIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVfYm91bmQpOworCisgICAgcmV0dXJuIGRh
dGFfcHRyID49IGJhc2VsaW5lX2JlZ2luICYmIGRhdGFfcHRyIDwgYmFzZWxpbmVfZW5kOworfQor
Citib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQoreworICAgIHJldHVybiBwYXNf
bG9jYWxfYWxsb2NhdG9yX2tpbmRfaXNfc3RvcHBlZChkYXRhLT5raW5kKTsKK30KKwordm9pZCBw
YXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xv
dygKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhLAorICAgIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93
X21vZGUgbW9kZSwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQgZXhwZWN0ZWRfa2luZCkK
K3sKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKKyAgICBwYXNfYWxsb2NhdG9y
X2luZGV4IGluZGV4OworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbGF5
b3V0X25vZGU7CisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9k
ZTsKKyAgICBib29sIGlzX2luX3VzZTsKKworICAgIFBBU19BU1NFUlQoZXhwZWN0ZWRfa2luZCA9
PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kCisgICAgICAgICAgICAgICB8fCBl
eHBlY3RlZF9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kKTsKKwor
ICAgIHN3aXRjaCAobW9kZSkgeworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5n
ZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfaXNfaW5fdXNlX3dpdGhfbm9fbG9ja3Nf
aGVsZF9tb2RlOgorICAgICAgICBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGUgPSBwYXNfbG9ja19p
c19ub3RfaGVsZDsKKyAgICAgICAgaXNfaW5fdXNlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNl
c3Nhcnlfc2xvd19pc19ub3RfaW5fdXNlX3dpdGhfc2NhdmVuZ2VyX2xvY2tfaGVsZF9tb2RlOgor
ICAgICAgICBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGUgPSBwYXNfbG9ja19pc19oZWxkOworICAg
ICAgICBpc19pbl91c2UgPSBmYWxzZTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIFBBU19B
U1NFUlQoISJTaG91bGQgbm90IGJlIHJlYWNoZWQiKTsKLSAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAvKiBOT1RFOiB0aGlzIGNhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIGlzX2luX3VzZSwgYnV0IGl0
J3MgcG9zc2libGUgdGhhdCB0aGlzIGFsbG9jYXRvciB3aWxsIGdldAorICAgICAgIGRlY29tbWl0
dGVkIGF0IGFueSB0aW1lLCB3aGljaCBtYXkgcmVzdWx0IGluIGlzX2luX3VzZSBiZWluZyBjbGVh
cmVkLiAqLworCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNf
YmFzZWxpbmVfYWxsb2NhdG9yKGRhdGEpKSB7CisgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+a2lu
ZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQpOworICAgICAg
ICBQQVNfQVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0
b3Jfa2luZCk7CisgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+aXNfaW5fdXNlID09IGlzX2luX3Vz
ZSk7CisgICAgICAgIGRhdGEtPmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9r
aW5kOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX3RyeV9nZXQoKTsKKyAgICBQQVNfQVNTRVJUKGNhY2hlKTsKKyAgICAKKyAgICBp
ZiAoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tp
bmQKKyAgICAgICAgfHwgZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRf
dmlld19jYWNoZV9raW5kKSB7CisgICAgICAgIGJvb2wgZG9uZTsKKyAgICAgICAgCisgICAgICAg
IGRvbmUgPSBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIHBhc19sb2NrX2xvY2tfY29uZGl0aW9u
YWxseSgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrLCBzY2F2ZW5nZXJfbG9ja19ob2xkX21v
ZGUpOworICAgICAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKCZjYWNoZS0+bm9kZS0+
c2NhdmVuZ2VyX2xvY2spOworICAgICAgICBzd2l0Y2ggKGRhdGEtPmtpbmQpIHsKKyAgICAgICAg
Y2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQ6CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9y
X2tpbmQ6CisgICAgICAgICAgICBQQVNfQVNTRVJUKGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2Fs
X2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZCk7CisgICAgICAgICAgICBkYXRhLT5raW5kID0gcGFz
X2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDsKKyAgICAgICAgICAgIGRvbmUgPSB0cnVl
OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9z
dG9wcGVkX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZXhwZWN0ZWRf
a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisgICAgICAgICAg
ICBkYXRhLT5raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ7CisgICAg
ICAgICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9kaWRfcmVzdGFydCgocGFzX2xvY2FsX3ZpZXdf
Y2FjaGUqKWRhdGEpOworICAgICAgICAgICAgZG9uZSA9IHRydWU7CisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHBh
c19sb2NrX3VubG9ja19jb25kaXRpb25hbGx5KCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2ss
IHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSk7CisgICAgICAgIGlmIChkb25lKSB7CisgICAgICAg
ICAgICBQQVNfQVNTRVJUKGRhdGEtPmlzX2luX3VzZSA9PSBpc19pbl91c2UpOworICAgICAgICAg
ICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09IGV4cGVjdGVkX2tpbmQpOworICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB9CisgICAgfQorCisgICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09
IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCk7CisKKyAgICBwYXNfbG9ja19s
b2NrX2NvbmRpdGlvbmFsbHkoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jaywgc2NhdmVuZ2Vy
X2xvY2tfaG9sZF9tb2RlKTsKKyAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2VydF9oZWxkKCZjYWNo
ZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOworCisgICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09
IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCk7CisKKyAgICBpbmRleCA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IoY2FjaGUs
IGRhdGEpOworICAgIGxheW91dF9ub2RlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
Z2V0X25vZGVfZm9yX2luZGV4KGluZGV4KTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfY29tbWl0X2FuZF9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIGNhY2hlKTsKKwor
ICAgIFBBU19BU1NFUlQoZGF0YS0+a2luZCA9PSBleHBlY3RlZF9raW5kKTsKKyAgICBQQVNfQVNT
RVJUKGRhdGEtPmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZAorICAg
ICAgICAgICAgICAgfHwgZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2Fj
aGVfa2luZCk7CisKKyAgICBkYXRhLT5pc19pbl91c2UgPSBpc19pbl91c2U7CisgICAgCisgICAg
cGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9j
aywgc2NhdmVuZ2VyX2xvY2tfaG9sZF9tb2RlKTsKIH0KIAogYm9vbCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCkBAIC01Miw2ICsxNTksMTAgQEAgYm9vbCBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhXwogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFw
X2xvY2tfaG9sZF9tb2RlKQogewogICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgeworICAgIGNhc2Ug
cGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kOgorICAgIGNhc2UgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zdG9wcGVkX2FsbG9jYXRvcl9raW5kOgorICAgIGNhc2UgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgogICAgICAgICByZXR1
cm4gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wKChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhLCBw
YWdlX2xvY2tfbW9kZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgY2FzZSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKQEAgLTYxLDYgKzE3MiwxOSBAQCBib29sIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCit2
b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfcHJlcGFyZV90b19kZWNvbW1p
dChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQoreworICAgIC8qIEZ1
biBmYWN0OiB0aGUgYWxsb2NhdG9yIG1pZ2h0IGhhdmUgaXNfaW5fdXNlID0gdHJ1ZSB3aGVuIHdl
J3JlIGluIHRoZXJlLCBidXQgaW4gdGhhdCBjYXNlLCB0aGF0CisgICAgICAgYWxsb2NhdG9yIGNh
bid0IGRvIGFueXRoaW5nIHdpdGhvdXQgZ3JhYmJpbmcgdGhlIHNjYXZlbmdlcl9sb2NrIChiZWNh
dXNlIHRoZSBhbGxvY2F0b3Igc2F5cyBpdCdzCisgICAgICAgc3RvcHBlZCkuICovCisgICAgCisg
ICAgUEFTX0FTU0VSVChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3Bw
ZWQoZGF0YSkpOworCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworCisgICAgZGF0
YS0+a2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZDsKK30KKwogI2Vu
ZGlmIC8qIExJQlBBU19FTkFCTEVEICovCiAKIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCSh3
b3JraW5nIGNvcHkpCkBAIC02NSwxMyArNjUsMzMgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19s
b2NhbF9hbGxvY2F0b3JfcwogICAgIGRhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gMDsKIH0KIAot
UEFTX0FQSSBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZl
KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpOworUEFTX0FQSSBib29s
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYmFzZWxpbmVfYWxsb2NhdG9y
KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpOworCitQQVNfQVBJIGJv
b2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpOworCitlbnVtIHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X21vZGUgeworICAg
IC8qIFRoaXMgY2F1c2VzIHRoZSBjb21taXRfaWZfbmVjZXNzYXJ5IGNvZGUgdG8gYWx3YXlzIHN1
Y2NlZWQgYW5kIGFsd2F5cyByZXR1cm4gdHJ1ZS4gKi8KKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19pc19pbl91c2Vfd2l0aF9u
b19sb2Nrc19oZWxkX21vZGUsCisKKyAgICAvKiBUaGlzIGNhdXNlcyB0aGUgY29tbWl0X2lmX25l
Y2Vzc2FyeSBjb2RlIHRvIHNvbWV0aW1lcyBmYWlsIHRvIGFjcXVpcmUgdGhlIGhlYXAgbG9jaywg
YW5kIHRoZW4gaXQgd2lsbAorICAgICAgIHJldHVybiBmYWxzZS4gKi8KKyAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19pc19ub3Rf
aW5fdXNlX3dpdGhfc2NhdmVuZ2VyX2xvY2tfaGVsZF9tb2RlCit9OworCit0eXBlZGVmIGVudW0g
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Ns
b3dfbW9kZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNl
c3Nhcnlfc2xvd19tb2RlOworCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3coCisgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19tb2RlIG1vZGUsCisgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9raW5kIGV4cGVjdGVkX2tpbmQpOwogCiBQQVNfQVBJIGJvb2wgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKAogICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEsCiAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9j
a19tb2RlLAogICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAor
UEFTX0FQSSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfcHJlcGFyZV90
b19kZWNvbW1pdChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKTsKKwog
UEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19MT0NBTF9BTExPQ0FUT1JfU0NBVkVO
R0VSX0RBVEFfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xvY2FsX3ZpZXdfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCSh3
b3JraW5nIGNvcHkpCkBAIC00Miw3ICs0Miw3IEBAIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
Y29uc3RydWN0KHBhc18KICAgICBjYWNoZS0+Y2FwYWNpdHkgPSBjYXBhY2l0eTsKICAgICBjYWNo
ZS0+Ym90dG9tX2luZGV4ID0gMDsKICAgICBjYWNoZS0+dG9wX2luZGV4ID0gMDsKLSAgICBjYWNo
ZS0+aXNfZnVsbCA9IGZhbHNlOworICAgIGNhY2hlLT5zdGF0ZSA9IHBhc19sb2NhbF92aWV3X2Nh
Y2hlX25vdF9mdWxsX3N0YXRlOwogCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykgewogICAg
ICAgICB1aW50OF90IGluZGV4OwpAQCAtNTUsNiArNTUsOCBAQCB2b2lkIHBhc19sb2NhbF92aWV3
X2NhY2hlX2NvbnN0cnVjdChwYXNfCiB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUocGFz
X2xvY2FsX3ZpZXdfY2FjaGUqIGRlc3RpbmF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBzb3VyY2UpCiB7CisgICAgUEFTX0FTU0VSVCgh
ZGVzdGluYXRpb24tPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CisgICAgUEFTX0FTU0VSVCgh
c291cmNlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOwogICAgIG1lbWNweShkZXN0aW5hdGlv
biwgc291cmNlLCBQQVNfTE9DQUxfVklFV19DQUNIRV9TSVpFKHNvdXJjZS0+Y2FwYWNpdHkpKTsK
IH0KIApAQCAtMTA5LDEzICsxMTEsMjQgQEAgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9w
KHBhc19sb2NhbAogCiAgICAgUEFTX0FTU0VSVCghY2FjaGUtPnNjYXZlbmdlcl9kYXRhLmlzX2lu
X3VzZSk7CiAKKyAgICAvKiBEb2luZyB0aGlzIGNoZWNrIGJlZm9yZSBzZXR0aW5nIGlzX2luX3Vz
ZSBndWFyZHMgYWdhaW5zdCBzaXR1YXRpb25zIHdoZXJlIGNhbGxpbmcgc3RvcCB3b3VsZAorICAg
ICAgIHJlY29tbWl0IGEgZGVjb21taXR0ZWQgdmlldyBjYWNoZS4gKi8KKyAgICBpZiAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKCZjYWNoZS0+c2NhdmVuZ2Vy
X2RhdGEpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGNhY2hlLT5zY2F2ZW5nZXJfZGF0
YS5pc19pbl91c2UgPSB0cnVlOwogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogCiAgICAgcmVz
dWx0ID0gc3RvcF9pbXBsKGNhY2hlLCBwYWdlX2xvY2tfbW9kZSk7CiAKLSAgICBpZiAocmVzdWx0
KQorICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgUEFTX0FTU0VSVChwYXNfbG9jYWxfdmlld19j
YWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBhc19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0
YXRlKTsKKyAgICAgICAgUEFTX0FTU0VSVChjYWNoZS0+dG9wX2luZGV4ID09IGNhY2hlLT5ib3R0
b21faW5kZXgpOworCisgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3NldF9zdGF0ZShjYWNo
ZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CiAgICAgICAgIGNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YS5zaG91bGRfc3RvcF9jb3VudCA9IDA7CisgICAgICAgIGNhY2hlLT5zY2F2
ZW5nZXJfZGF0YS5raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zdG9wcGVkX3ZpZXdfY2FjaGVf
a2luZDsKKyAgICB9CiAKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKICAgICBjYWNoZS0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gZmFsc2U7CkBAIC0xMjMsNSArMTM2LDEwIEBAIGJvb2wg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWwKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCit2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2RpZF9yZXN0YXJ0KHBhc19sb2NhbF92aWV3
X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3RhdGUoY2Fj
aGUsIHBhc19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlKTsKK30KKwogI2VuZGlmIC8q
IExJQlBBU19FTkFCTEVEICovCiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAkocmV2aXNpb24gMjg5NTA4
KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2Fj
aGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsMTMgKzM2LDIxIEBAIFBBU19CRUdJTl9FWFRFUk5f
QzsKIHN0cnVjdCBwYXNfbG9jYWxfdmlld19jYWNoZTsKIHR5cGVkZWYgc3RydWN0IHBhc19sb2Nh
bF92aWV3X2NhY2hlIHBhc19sb2NhbF92aWV3X2NhY2hlOwogCitlbnVtIHBhc19sb2NhbF92aWV3
X2NhY2hlX3N0YXRlIHsKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlLAor
ICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlLAorICAgIHBhc19sb2NhbF92
aWV3X2NhY2hlX2Z1bGxfc3RhdGUKK307CisKK3R5cGVkZWYgZW51bSBwYXNfbG9jYWxfdmlld19j
YWNoZV9zdGF0ZSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZTsKKwogc3RydWN0IHBhc19sb2Nh
bF92aWV3X2NhY2hlIHsKICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhIHNj
YXZlbmdlcl9kYXRhOwogICAgIHVpbnQ4X3QgY2FwYWNpdHk7CiAgICAgLyogYm90dG9tX2luZGV4
IGFuZCB0b3BfaW5kZXggbXVzdCBiZSA8IGNhcGFjaXR5LiAqLwogICAgIHVpbnQ4X3QgYm90dG9t
X2luZGV4OwogICAgIHVpbnQ4X3QgdG9wX2luZGV4OwotICAgIGJvb2wgaXNfZnVsbDsKKyAgICB1
aW50OF90IHN0YXRlOwogICAgIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
cHRyIHZpZXdzWzFdOwogfTsKIApAQCAtNTQsMTMgKzYyLDkwIEBAIHN0cnVjdCBwYXNfbG9jYWxf
dmlld19jYWNoZSB7CiBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0
KHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludDhfdCBjYXBhY2l0eSk7CiAKK3N0YXRpYyBpbmxpbmUgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKHBh
c19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICByZXR1cm4gKHBhc19sb2NhbF92aWV3
X2NhY2hlX3N0YXRlKWNhY2hlLT5zdGF0ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhc19s
b2NhbF92aWV3X2NhY2hlX3NldF9zdGF0ZShwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3N0YXRlIHN0YXRlKQoreworICAgIGNhY2hlLT5zdGF0ZSA9ICh1aW50OF90
KXN0YXRlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNf
ZnVsbChwYXNfbG9jYWxfdmlld19jYWNoZSogY2FjaGUpCit7CisgICAgcmV0dXJuIHBhc19sb2Nh
bF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZnVs
bF9zdGF0ZTsKK30KKworc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF92aWV3X2NhY2hlX2Nh
bl9wdXNoKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICByZXR1cm4gcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBwYXNfbG9jYWxfdmlld19jYWNoZV9u
b3RfZnVsbF9zdGF0ZTsKK30KKwogc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF92aWV3X2Nh
Y2hlX2lzX2VtcHR5KHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKIHsKICAgICBQQVNfVEVT
VElOR19BU1NFUlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CiAgICAg
UEFTX1RFU1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOwot
ICAgIFBBU19URVNUSU5HX0FTU0VSVCghY2FjaGUtPmlzX2Z1bGwgfHwgY2FjaGUtPmJvdHRvbV9p
bmRleCA9PSBjYWNoZS0+dG9wX2luZGV4KTsKKyAgICBQQVNfVEVTVElOR19BU1NFUlQoIXBhc19s
b2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpIHx8IGNhY2hlLT5ib3R0b21faW5kZXggPT0g
Y2FjaGUtPnRvcF9pbmRleCk7CisKKyAgICByZXR1cm4gY2FjaGUtPnRvcF9pbmRleCA9PSBjYWNo
ZS0+Ym90dG9tX2luZGV4ICYmICFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKTsK
K30KIAotICAgIHJldHVybiBjYWNoZS0+dG9wX2luZGV4ID09IGNhY2hlLT5ib3R0b21faW5kZXgg
JiYgIWNhY2hlLT5pc19mdWxsOworc3RhdGljIGlubGluZSBib29sIHBhc19sb2NhbF92aWV3X2Nh
Y2hlX3ByZXBhcmVfdG9fcG9wKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICBw
YXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSBzdGF0ZTsKKyAgICAKKyAgICBQQVNfVEVTVElOR19B
U1NFUlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eQorICAgICAgICAgICAg
ICAgICAgICAgICB8fCBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBh
c19sb2NhbF92aWV3X2NhY2hlX3N0b3BwZWRfc3RhdGUpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VChjYWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5CisgICAgICAgICAgICAgICAgICAg
ICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSkgPT0gcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNf
bG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSB8fCBjYWNoZS0+Ym90dG9tX2luZGV4ID09
IGNhY2hlLT50b3BfaW5kZXgpOworCisgICAgaWYgKGNhY2hlLT50b3BfaW5kZXggIT0gY2FjaGUt
PmJvdHRvbV9pbmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzdGF0ZSA9IHBhc19s
b2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSk7CisgICAgc3dpdGNoIChzdGF0ZSkgewor
ICAgIGNhc2UgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZToKKyAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3co
CisgICAgICAgICAgICAmY2FjaGUtPnNjYXZlbmdlcl9kYXRhLAorICAgICAgICAgICAgcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfaXNf
aW5fdXNlX3dpdGhfbm9fbG9ja3NfaGVsZF9tb2RlLAorICAgICAgICAgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl92aWV3X2NhY2hlX2tpbmQpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2Fz
ZSBwYXNfbG9jYWxfdmlld19jYWNoZV9mdWxsX3N0YXRlOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIHBhc19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlOgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfcHJlcGFyZV90b19wdXNoKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sK
KyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSBzdGF0ZTsKKyAgICAKKyAgICBQQVNfVEVT
VElOR19BU1NFUlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eQorICAgICAg
ICAgICAgICAgICAgICAgICB8fCBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3RhdGUoY2FjaGUp
ID09IHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3BwZWRfc3RhdGUpOworICAgIFBBU19URVNUSU5H
X0FTU0VSVChjYWNoZS0+dG9wX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5CisgICAgICAgICAgICAg
ICAgICAgICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSkgPT0gcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJU
KCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hlKSB8fCBjYWNoZS0+Ym90dG9tX2lu
ZGV4ID09IGNhY2hlLT50b3BfaW5kZXgpOworCisgICAgc3RhdGUgPSBwYXNfbG9jYWxfdmlld19j
YWNoZV9nZXRfc3RhdGUoY2FjaGUpOworICAgIGlmIChzdGF0ZSA9PSBwYXNfbG9jYWxfdmlld19j
YWNoZV9ub3RfZnVsbF9zdGF0ZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBwYXNfY29t
cGlsZXJfZmVuY2UoKTsKKyAgICBpZiAoc3RhdGUgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3Rv
cHBlZF9zdGF0ZSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdygKKyAgICAgICAgICAgICZjYWNoZS0+c2NhdmVuZ2Vy
X2RhdGEsCisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2Nv
bW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19pc19ub3RfaW5fdXNlX3dpdGhfc2NhdmVuZ2VyX2xvY2tf
aGVsZF9tb2RlLAorICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tp
bmQpOworICAgICAgICBQQVNfVEVTVElOR19BU1NFUlQocGFzX2xvY2FsX3ZpZXdfY2FjaGVfY2Fu
X3B1c2goY2FjaGUpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgUEFTX1RF
U1RJTkdfQVNTRVJUKHN0YXRlID09IHBhc19sb2NhbF92aWV3X2NhY2hlX2Z1bGxfc3RhdGUpOwor
ICAgIHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNs
dXNpdmVfdmlldyogcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcG9wKHBhc19sb2NhbF92aWV3X2NhY2hl
KiBjYWNoZSkKQEAgLTExMCw4ICsxOTUsOCBAQCBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92CiAgICAgCiAgICAgaWYgKFBBU19FTkFCTEVfVEVTVElORykKICAgICAgICAg
cGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19wdHJfc3RvcmUoY2FjaGUtPnZp
ZXdzICsgcG9wX2luZGV4LCBOVUxMKTsKLSAgICAKLSAgICBjYWNoZS0+aXNfZnVsbCA9IGZhbHNl
OworCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0YXRlKGNhY2hlLCBwYXNfbG9jYWxf
dmlld19jYWNoZV9ub3RfZnVsbF9zdGF0ZSk7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgIHBhc19sb2coIiVwOiBwb3BwZWQgJXAuXG4iLCBjYWNoZSwgcmVzdWx0KTsKQEAgLTExOSwx
MSArMjA0LDYgQEAgc3RhdGljIGlubGluZSBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdgogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19j
YWNoZV9pc19mdWxsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKLXsKLSAgICByZXR1cm4g
Y2FjaGUtPmlzX2Z1bGw7Ci19Ci0KIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19j
YWNoZV9wdXNoKAogICAgIHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSwKICAgICBwYXNfc2Vn
cmVnYXRlZF9leGNsdXNpdmVfdmlldyogdmlldykKQEAgLTEzNSw3ICsyMTUsNyBAQCBzdGF0aWMg
aW5saW5lIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfCiAKICAgICBQQVNfVEVTVElOR19BU1NF
UlQoY2FjaGUtPmJvdHRvbV9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7CiAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkpOwotICAgIFBBU19U
RVNUSU5HX0FTU0VSVCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkpOworICAg
IFBBU19URVNUSU5HX0FTU0VSVChwYXNfbG9jYWxfdmlld19jYWNoZV9jYW5fcHVzaChjYWNoZSkp
OwogICAgIFBBU19URVNUSU5HX0FTU0VSVCh2aWV3KTsKIAogICAgIGlmICh2ZXJib3NlKQpAQCAt
MTQ5LDcgKzIyOSw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV8K
ICAgICB9CiAKICAgICBpZiAobmV4dF90b3BfaW5kZXggPT0gY2FjaGUtPmJvdHRvbV9pbmRleCkK
LSAgICAgICAgY2FjaGUtPmlzX2Z1bGwgPSB0cnVlOworICAgICAgICBwYXNfbG9jYWxfdmlld19j
YWNoZV9zZXRfc3RhdGUoY2FjaGUsIHBhc19sb2NhbF92aWV3X2NhY2hlX2Z1bGxfc3RhdGUpOwog
ICAgIAogICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X3B0cl9pc19udWxsKGNhY2hlLT52aWV3cyArIHRvcF9pbmRleCkpOwogCkBAIC0x
NjIsNiArMjQyLDggQEAgUEFTX0FQSSB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUocAog
CiBQQVNfQVBJIGJvb2wgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcChwYXNfbG9jYWxfdmlld19j
YWNoZSogY2FjaGUsIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tfbW9kZSk7CiAKK1BBU19B
UEkgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9kaWRfcmVzdGFydChwYXNfbG9jYWxfdmlld19j
YWNoZSogY2FjaGUpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0xPQ0FM
X1ZJRVdfQ0FDSEVfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2suaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfbG9jay5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jay5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDksNiArMjA5LDExIEBA
IFBBU19CRUdJTl9FWFRFUk5fQzsKICAgICAgICAgcmV0dXJuIHBhc19sb2NrX3RyeV9sb2NrKCZu
YW1lIyNfbG9jayk7IFwKICAgICB9IFwKICAgICBcCisgICAgUEFTX1VOVVNFRCBzdGF0aWMgaW5s
aW5lIGJvb2wgbmFtZSMjX2xvY2tfbG9ja193aXRoX21vZGUocGFzX2xvY2tfbG9ja19tb2RlIG1v
ZGUpIFwKKyAgICB7IFwKKyAgICAgICAgcmV0dXJuIHBhc19sb2NrX2xvY2tfd2l0aF9tb2RlKCZu
YW1lIyNfbG9jaywgbW9kZSk7IFwKKyAgICB9IFwKKyAgICBcCiAgICAgUEFTX1VOVVNFRCBzdGF0
aWMgaW5saW5lIHZvaWQgbmFtZSMjX2xvY2tfdW5sb2NrKHZvaWQpIFwKICAgICB7IFwKICAgICAg
ICAgcGFzX2xvY2tfdW5sb2NrKCZuYW1lIyNfbG9jayk7IFwKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxpdHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbW1hcF9jYXBhYmlsaXR5LmgJKG5v
bmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21tYXBf
Y2FwYWJpbGl0eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODUgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfTU1BUF9DQVBB
QklMSVRZX0gKKyNkZWZpbmUgUEFTX01NQVBfQ0FQQUJJTElUWV9ICisKKyNpbmNsdWRlICJwYXNf
dXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCisvKiBMaWJwYXMgc29tZXRpbWVzIGFs
bG9jYXRlcyBpdHMgb3duIG1lbW9yeSBmcm9tIHRoZSBPUywgYW5kIHNvbWV0aW1lcyBpcyB0b2xk
IHRvIG1hbmFnZSBtZW1vcnkgYWxyZWFkeQorICAgYWxsb2NhdGVkIGJ5IHNvbWVvbmUgZWxzZS4g
U29tZXRpbWVzLCBjbGllbnRzIGRvbid0IHdhbnQgbGlicGFzIHRvIHVzZSBjZXJ0YWludCBtZW1v
cnkgbWFuYWdlbWVudCBmdW5jdGlvbnMKKyAgIG9uIHRoZSBtZW1vcnkgdGhhdCB0aGV5IGFzayBs
aWJwYXMgdG8gbWFuYWdlLiBUaGlzIGVudW1lcmF0aW9uIGNvbnRyb2xzIHdoYXQgbWVtb3J5IG1h
bmFnZW1lbnQgZnVuY3Rpb25zCisgICBsaWJwYXMgY2FuIGNhbGwgZm9yIHNvbWUgbWVtb3J5IHRo
YXQgaXQgbWFuYWdlcy4gKi8KK2VudW0gcGFzX21tYXBfY2FwYWJpbGl0eSB7CisgICAgLyogSW5k
aWNhdGVzIHRoYXQgbGlicGFzIGlzbid0IGFsbG93ZWQgdG8gY2FsbCBtbWFwLCBtcHJvdGVjdCwg
b3IgbW9zdCBvdGhlciBtZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbiBvbgorICAgICAgIHRoZSBn
aXZlbiBtZW1vcnkuIFRoaXMgaXMgdXNlZCBmb3IgbWVtb3J5IHRoYXQgd2FzIGFsbG9jYXRlZCBi
eSB0aGUgY2xpZW50IHdpdGggc29tZSBzcGVjaWZpYyBwZXJtaXNzaW9ucworICAgICAgIG9yIG90
aGVyIHNwZWNpYWwgbW1hcCBhcmd1bWVudHMuIE9yLCBtYXliZSBpdCB3YXNuJ3QgZXZlbiBhbGxv
Y2F0ZWQgd2l0aCBtbWFwLgorCisgICAgICAgTGlicGFzIG1heSBzdGlsbCBjYWxsIG1hZHZpc2Uo
KSBvbiBtZW1vcnkgd2l0aCB0aGlzIGNhcGFiaWxpdHksIHNpbmNlIG1hZHZpc2UoKSBkb2Vzbid0
IGNoYW5nZSB0aGUKKyAgICAgICBwZXJtaXNzaW9ucyBvZiB0aGUgbWFwcGluZy4gQ3VycmVudGx5
LCBtYWR2aXNlKCkgaXMgdGhlIG9ubHkgc3lzY2FsbCB0aGF0IGxpYnBhcyBpcyBhbGxvd2VkIHRv
IHVzZSBmb3IKKyAgICAgICBtZW1vcnkgdGhhdCBpcyBwYXNfbWF5X25vdF9tbWFwLgorICAgIAor
ICAgICAgIFVzaW5nIHBhc19tYXlfbm90X21tYXAgbWF5IGRlZ3JhZGUgcGVmb3JtYW5jZSwgYWZm
ZWN0IHRoZSBhY2N1cmFjeSBvZiBPUyBtZW1vcnkgdXNhZ2UgYWNjb3VudGluZywgb3IgdHVybgor
ICAgICAgIG9mZiBzb21lIHJ1bnRpbWUgY2hlY2tpbmcuIEJ1dCBpdCB3aWxsIG5vdCBhZmZlY3Qg
dGhlIGNvcnJlY3RuZXNzIG9mIHRoZSBhbGdvcml0aG0uCisgICAgCisgICAgICAgQ3VycmVudGx5
IHRoZSBwcmltYXJ5IGNsaWVudCBvZiB0aGlzIG9wdGlvbiBpcyBqaXRfaGVhcF9jb25maWcsIHNp
bmNlIHRoZSBKSVQgaGVhcCBpcyBtbWFwcGVkIGluIGEKKyAgICAgICBzcGVjaWFsIHdheSBhbmQg
d2l0aCBzcGVjaWFsIHBlcm1pc3Npb25zLiAqLworICAgIHBhc19tYXlfbm90X21tYXAsCisKKyAg
ICAvKiBJbmRpY2F0ZXMgdGhhdCBsaWJwYXMgc2hvdWxkIGFzc3VtZSB0aGF0IHRoZSBtZW1vcnkg
aXMgbW1hcHBlZCBpbiBzb21lIGNhbm9uaWNhbCB3YXkgKGFub255bW91cywgUlcgYnV0CisgICAg
ICAgbm90IFgsIGV0YykuIExpYnBhcyBtYXkgY2FsbCBtbWFwLCBtcHJvdGVjdCBhbmQgb3RoZXIg
c3VjaCBmdW5jdGlvbnMgb24gdGhpcyBtZW1vcnkgc28gbG9uZyBhcyBpdAorICAgICAgIHJldHVy
bnMgaXQgdG8gdGhlIGNhbm9uaWNhbCBzdGF0ZSBiZWZvcmUgdGhlIG1lbW9yeSBpcyByZXR1cm5l
ZCBieSBzb21lIGFsbG9jYXRlIGZ1bmN0aW9uLiBMaWJwYXMgY291bGQKKyAgICAgICB1c2UgdGhp
cyBjYXBhYmlsaXR5IHRvOgorICAgICAgIAorICAgICAgIC0gUmFwaWRseSB6ZXJvLWZpbGwgdGhl
IG1lbW9yeSB3aXRoIGEgZml4ZWQgbW1hcCBjYWxsLgorICAgICAgIC0gUmVzZXQgdGhlIGNvbW1p
dCBzdGF0ZSB3aXRoIGEgZml4ZWQgbW1hcCBjYWxsLgorICAgICAgIC0gUGVyZm9ybSBydW50aW1l
IGNoZWNraW5nIHRoYXQgZGVjb21taXR0ZWQgbWVtb3J5IGlzIG5vdCB1c2VkIGJ5IG1wcm90ZWN0
aW5nIGl0IHRvIFBST1RfTk9ORSAoYW5kIHRoZW4KKyAgICAgICAgIHJldHVybmluZyBpdCB0byBu
b3JtYWwgcGVybWlzc2lvbnMgd2hlbiByZWNvbW1pdHRlZCkuCisgICAgCisgICAgICAgVGhlIGNh
cGFiaWxpdGllcyBlbmFibGVkIGJ5IHBhc19tYXlfbW1hcCBhcmUgZ29vZCBmb3IgcGVyZm9ybWFu
Y2UgYW5kIHRlc3RpbmcsIGJ1dCBhcmVuJ3QgbmVjZXNzYXJ5IGZvcgorICAgICAgIGxpYnBhcyB0
byB3b3JrIGNvcnJlY3RseSwgc28gaXQncyBub3QgdGhlIGVuZCBvZiB0aGUgd29ybGQgdG8gaGF2
ZSB0byB1c2UgcGFzX21heV9ub3RfbW1hcCBpbnN0ZWFkLiAqLworICAgIHBhc19tYXlfbW1hcAor
fTsKKwordHlwZWRlZiBlbnVtIHBhc19tbWFwX2NhcGFiaWxpdHkgcGFzX21tYXBfY2FwYWJpbGl0
eTsKKworc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBwYXNfbW1hcF9jYXBhYmlsaXR5X2dldF9z
dHJpbmcocGFzX21tYXBfY2FwYWJpbGl0eSBjYXBhYmlsaXR5KQoreworICAgIHN3aXRjaCAoY2Fw
YWJpbGl0eSkgeworICAgIGNhc2UgcGFzX21heV9ub3RfbW1hcDoKKyAgICAgICAgcmV0dXJuICJt
YXlfbm90X21tYXAiOworICAgIGNhc2UgcGFzX21heV9tbWFwOgorICAgICAgICByZXR1cm4gIm1h
eV9tbWFwIjsKKyAgICB9CisgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIp
OworICAgIHJldHVybiBOVUxMOworfQorCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyog
UEFTX01NQVBfQ0FQQUJJTElUWV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5jCShyZXZpc2lvbiAyODk1MDgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuYwkod29y
a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgt
MjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTQ3LDcgKzQ3LDEwIEBACiBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX251
bV9hbGxvY2F0ZWRfYnl0ZXM7CiBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1l
bnQ7CiBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnRfc2hpZnQ7Ci1ib29s
IHBhc19wYWdlX21hbGxvY19tcHJvdGVjdF9kZWNvbW1pdHRlZCA9IFBBU19FTkFCTEVfVEVTVElO
RzsKKworI2lmIFBBU19PUyhEQVJXSU4pCitib29sIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF96
ZXJvX2ZpbGwgPSBmYWxzZTsKKyNlbmRpZiAvKiBQQVNfT1MoREFSV0lOKSAqLwogCiAjaWYgUEFT
X09TKERBUldJTikKICNkZWZpbmUgUEFTX1ZNX1RBRyBWTV9NQUtFX1RBRyhWTV9NRU1PUllfVENN
QUxMT0MpCkBAIC02MSwxMyArNjQsNyBAQCBib29sIHBhc19wYWdlX21hbGxvY19tcHJvdGVjdF9k
ZWNvbW1pdHRlCiAjZGVmaW5lIFBBU19OT1JFU0VSVkUgMAogI2VuZGlmCiAKLQotI2RlZmluZSBQ
QVNfU1lTQ0FMTCh4KSBkbyB7IFwKLSAgICB3aGlsZSAoKHgpID09IC0xICYmIGVycm5vID09IEVB
R0FJTikgeyB9IFwKLX0gd2hpbGUgKDApOwotCi0KLXNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxp
Z25tZW50X3Nsb3codm9pZCkKK1BBU19ORVZFUl9JTkxJTkUgc2l6ZV90IHBhc19wYWdlX21hbGxv
Y19hbGlnbm1lbnRfc2xvdyh2b2lkKQogewogICAgIGxvbmcgcmVzdWx0ID0gc3lzY29uZihfU0Nf
UEFHRVNJWkUpOwogICAgIFBBU19BU1NFUlQocmVzdWx0ID49IDApOwpAQCAtNzYsNyArNzMsNyBA
QCBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZvCiAgICAgcmV0dXJuIChz
aXplX3QpcmVzdWx0OwogfQogCi1zaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlm
dF9zbG93KHZvaWQpCitQQVNfTkVWRVJfSU5MSU5FIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxp
Z25tZW50X3NoaWZ0X3Nsb3codm9pZCkKIHsKICAgICBzaXplX3QgcmVzdWx0OwogCkBAIC0xNzIs
MTEgKzE2OSwyOSBAQCBwYXNfcGFnZV9tYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhvdXRfZGVhCiAg
ICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQq
IHB0ciwgc2l6ZV90IHNpemUpCit2b2lkIHBhc19wYWdlX21hbGxvY196ZXJvX2ZpbGwodm9pZCog
YmFzZSwgc2l6ZV90IHNpemUpCit7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZTsKKyAgICB2b2lkKiBy
ZXN1bHRfcHRyOworCisgICAgcGFnZV9zaXplID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgp
OworICAgIAorICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoKHVpbnRwdHJfdCliYXNlLCBw
YWdlX3NpemUpKTsKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKHNpemUsIHBhZ2Vfc2l6
ZSkpOworCisgICAgcmVzdWx0X3B0ciA9IG1tYXAoYmFzZSwKKyAgICAgICAgICAgICAgICAgICAg
ICBzaXplLAorICAgICAgICAgICAgICAgICAgICAgIFBST1RfUkVBRCB8IFBST1RfV1JJVEUsCisg
ICAgICAgICAgICAgICAgICAgICAgTUFQX1BSSVZBVEUgfCBNQVBfQU5PTiB8IE1BUF9GSVhFRCB8
IFBBU19OT1JFU0VSVkUsCisgICAgICAgICAgICAgICAgICAgICAgUEFTX1ZNX1RBRywKKyAgICAg
ICAgICAgICAgICAgICAgICAwKTsKKyAgICBQQVNfQVNTRVJUKHJlc3VsdF9wdHIgPT0gYmFzZSk7
Cit9CisKK3N0YXRpYyB2b2lkIGNvbW1pdF9pbXBsKHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIGJv
b2wgZG9fbXByb3RlY3QsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewog
ICAgIHVpbnRwdHJfdCBiYXNlX2FzX2ludDsKICAgICB1aW50cHRyX3QgZW5kX2FzX2ludDsKLSAg
ICBpbnQgcmVzdWx0OwogCiAgICAgYmFzZV9hc19pbnQgPSAodWludHB0cl90KXB0cjsKICAgICBl
bmRfYXNfaW50ID0gYmFzZV9hc19pbnQgKyBzaXplOwpAQCAtMTkwLDI3ICsyMDUsMzQgQEAgdm9p
ZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQqIHB0ciwgcwogICAgIGlmIChlbmRfYXNfaW50
ID09IGJhc2VfYXNfaW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoUEFTX01QUk9URUNU
X0RFQ09NTUlUVEVEKSB7Ci0gICAgICAgIHJlc3VsdCA9IG1wcm90ZWN0KCh2b2lkKiliYXNlX2Fz
X2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsK
LSAgICAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICAgICAgcGFzX2xvZygiQ291bGQgbm90IG1w
cm90ZWN0IG9uIGNvbW1pdDogZXJyb3IgY29kZSAlZFxuIiwgcmVzdWx0KTsKLSAgICAgICAgICAg
IFBBU19BU1NFUlQoIXJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgaWYgKFBBU19NUFJP
VEVDVF9ERUNPTU1JVFRFRCAmJiBkb19tcHJvdGVjdCAmJiBtbWFwX2NhcGFiaWxpdHkpCisgICAg
ICAgIFBBU19TWVNDQUxMKG1wcm90ZWN0KCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAt
IGJhc2VfYXNfaW50LCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKSk7CiAKICNpZiBQQVNfT1MoTElO
VVgpCi0gICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19p
bnQgLSBiYXNlX2FzX2ludCwgTUFEVl9ET0RVTVApKTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNl
KHB0ciwgc2l6ZSwgTUFEVl9ET0RVTVApKTsKICNlbmRpZgogfQogCit2b2lkIHBhc19wYWdlX21h
bGxvY19jb21taXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHkpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZG9fbXByb3RlY3QgPSB0
cnVlOworICAgIGNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwgZG9fbXByb3RlY3QsIG1tYXBfY2FwYWJp
bGl0eSk7Cit9CisKK3ZvaWQgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0
KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmls
aXR5KQoreworICAgIHN0YXRpYyBjb25zdCBib29sIGRvX21wcm90ZWN0ID0gZmFsc2U7CisgICAg
Y29tbWl0X2ltcGwocHRyLCBzaXplLCBkb19tcHJvdGVjdCwgbW1hcF9jYXBhYmlsaXR5KTsKK30K
Kwogc3RhdGljIHZvaWQgZGVjb21taXRfaW1wbCh2b2lkKiBwdHIsIHNpemVfdCBzaXplLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzX2FzeW1tZXRyaWMpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgZG9fbXByb3RlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHN0YXRpYyBjb25z
dCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAKICAgICB1aW50cHRyX3QgYmFzZV9hc19pbnQ7
CiAgICAgdWludHB0cl90IGVuZF9hc19pbnQ7Ci0gICAgaW50IHJlc3VsdDsKIAogICAgIGlmICh2
ZXJib3NlKQogICAgICAgICBwYXNfbG9nKCJEZWNvbW1pdHRpbmcgJXAuLi4lcFxuIiwgcHRyLCAo
Y2hhciopcHRyICsgc2l6ZSk7CkBAIC0yMjUsMzMgKzI0NywzMyBAQCBzdGF0aWMgdm9pZCBkZWNv
bW1pdF9pbXBsKHZvaWQqIHB0ciwgc2l6CiAgICAgICAgIGVuZF9hc19pbnQgPT0gcGFzX3JvdW5k
X2Rvd25fdG9fcG93ZXJfb2ZfMihlbmRfYXNfaW50LCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
KCkpKTsKICAgICAKICNpZiBQQVNfT1MoREFSV0lOKQotICAgIHJlc3VsdCA9IG1hZHZpc2UoKHZv
aWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIE1BRFZfRlJFRV9SRVVT
QUJMRSk7Ci0gICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKKyAgICBpZiAocGFzX3BhZ2VfbWFsbG9j
X2RlY29tbWl0X3plcm9fZmlsbCAmJiBtbWFwX2NhcGFiaWxpdHkpCisgICAgICAgIHBhc19wYWdl
X21hbGxvY196ZXJvX2ZpbGwocHRyLCBzaXplKTsKKyAgICBlbHNlCisgICAgICAgIFBBU19TWVND
QUxMKG1hZHZpc2UocHRyLCBzaXplLCBNQURWX0ZSRUVfUkVVU0FCTEUpKTsKICNlbGlmIFBBU19P
UyhGUkVFQlNEKQotICAgIFBBU19TWVNDQUxMKG1hZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBl
bmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIE1BRFZfRlJFRSkpOworICAgIFBBU19TWVNDQUxMKG1h
ZHZpc2UocHRyLCBzaXplLCBNQURWX0ZSRUUpKTsKICNlbGlmIFBBU19PUyhMSU5VWCkKLSAgICBQ
QVNfU1lTQ0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAtIGJhc2Vf
YXNfaW50LCBNQURWX0RPTlRORUVEKSk7Ci0gICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9pZCop
YmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgTUFEVl9ET05URFVNUCkpOwor
ICAgIFBBU19TWVNDQUxMKG1hZHZpc2UocHRyLCBzaXplLCBNQURWX0RPTlRORUVEKSk7CisgICAg
UEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRE9OVERVTVApKTsKICNlbHNlCi0g
ICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBi
YXNlX2FzX2ludCwgTUFEVl9ET05UTkVFRCkpOworICAgIFBBU19TWVNDQUxMKG1hZHZpc2UocHRy
LCBzaXplLCBNQURWX0RPTlRORUVEKSk7CiAjZW5kaWYKIAotICAgIGlmIChQQVNfTVBST1RFQ1Rf
REVDT01NSVRURUQgJiYgIWlzX2FzeW1tZXRyaWMpIHsKLSAgICAgICAgcmVzdWx0ID0gbXByb3Rl
Y3QoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfTk9O
RSk7Ci0gICAgICAgIFBBU19BU1NFUlQoIXJlc3VsdCk7Ci0gICAgfQorICAgIGlmIChQQVNfTVBS
T1RFQ1RfREVDT01NSVRURUQgJiYgZG9fbXByb3RlY3QgJiYgbW1hcF9jYXBhYmlsaXR5KQorICAg
ICAgICBQQVNfU1lTQ0FMTChtcHJvdGVjdCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQg
LSBiYXNlX2FzX2ludCwgUFJPVF9OT05FKSk7CiB9CiAKLXZvaWQgcGFzX3BhZ2VfbWFsbG9jX2Rl
Y29tbWl0KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUpCit2b2lkIHBhc19wYWdlX21hbGxvY19kZWNv
bW1pdCh2b2lkKiBwdHIsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2Fw
YWJpbGl0eSkKIHsKLSAgICBzdGF0aWMgY29uc3QgYm9vbCBpc19hc3ltbWV0cmljID0gZmFsc2U7
Ci0gICAgZGVjb21taXRfaW1wbChwdHIsIHNpemUsIGlzX2FzeW1tZXRyaWMpOworICAgIHN0YXRp
YyBjb25zdCBib29sIGRvX21wcm90ZWN0ID0gdHJ1ZTsKKyAgICBkZWNvbW1pdF9pbXBsKHB0ciwg
c2l6ZSwgZG9fbXByb3RlY3QsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAKLXZvaWQgcGFzX3BhZ2Vf
bWFsbG9jX2RlY29tbWl0X2FzeW1tZXRyaWModm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3ZvaWQg
cGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X3dpdGhvdXRfbXByb3RlY3Qodm9pZCogcHRyLCBzaXpl
X3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7Ci0gICAgc3Rh
dGljIGNvbnN0IGJvb2wgaXNfYXN5bW1ldHJpYyA9IHRydWU7Ci0gICAgZGVjb21taXRfaW1wbChw
dHIsIHNpemUsIGlzX2FzeW1tZXRyaWMpOworICAgIHN0YXRpYyBjb25zdCBib29sIGRvX21wcm90
ZWN0ID0gZmFsc2U7CisgICAgZGVjb21taXRfaW1wbChwdHIsIHNpemUsIGRvX21wcm90ZWN0LCBt
bWFwX2NhcGFiaWxpdHkpOwogfQogCiB2b2lkIHBhc19wYWdlX21hbGxvY19kZWFsbG9jYXRlKHZv
aWQqIHB0ciwgc2l6ZV90IHNpemUpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfcGFnZV9tYWxsb2MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjIg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJwYXNfYWxpZ25lZF9hbGxvY2F0
aW9uX3Jlc3VsdC5oIgogI2luY2x1ZGUgInBhc19hbGlnbm1lbnQuaCIKKyNpbmNsdWRlICJwYXNf
bW1hcF9jYXBhYmlsaXR5LmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKIFBBU19CRUdJTl9F
WFRFUk5fQzsKQEAgLTM1LDggKzM2LDExIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsKIFBBU19BUEkg
ZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfbnVtX2FsbG9jYXRlZF9ieXRlczsKIFBBU19B
UEkgZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfY2FjaGVkX2FsaWdubWVudDsKIFBBU19B
UEkgZXh0ZXJuIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfY2FjaGVkX2FsaWdubWVudF9zaGlmdDsK
KyNpZiBQQVNfT1MoREFSV0lOKQorUEFTX0FQSSBleHRlcm4gYm9vbCBwYXNfcGFnZV9tYWxsb2Nf
ZGVjb21taXRfemVyb19maWxsOworI2VuZGlmIC8qIFBBU19PUyhEQVJXSU4pICovCiAKLVBBU19B
UEkgc2l6ZV90IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2xvdyh2b2lkKTsKK1BBU19BUEkg
UEFTX05FVkVSX0lOTElORSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZv
aWQpOwogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KHZv
aWQpCiB7CkBAIC00NSw3ICs0OSw3IEBAIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19wYWdlX21h
bGxvY19hbGkKICAgICByZXR1cm4gcGFzX3BhZ2VfbWFsbG9jX2NhY2hlZF9hbGlnbm1lbnQ7CiB9
CiAKLVBBU19BUEkgc2l6ZV90IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnRfc2xvdyh2
b2lkKTsKK1BBU19BUEkgUEFTX05FVkVSX0lOTElORSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2Fs
aWdubWVudF9zaGlmdF9zbG93KHZvaWQpOwogCiBzdGF0aWMgaW5saW5lIHNpemVfdCBwYXNfcGFn
ZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0KHZvaWQpCiB7CkBAIC02MCwxMiArNjQsMjEgQEAgcGFz
X3BhZ2VfbWFsbG9jX3RyeV9hbGxvY2F0ZV93aXRob3V0X2RlYQogCiBQQVNfQVBJIHZvaWQgcGFz
X3BhZ2VfbWFsbG9jX2RlYWxsb2NhdGUodm9pZCogYmFzZSwgc2l6ZV90IHNpemUpOwogCitQQVNf
QVBJIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX3plcm9fZmlsbCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6
ZSk7CisKIC8qIFRoaXMgZXZlbiB3b3JrcyBpZiBzaXplIDwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdu
bWVudCBzbyBsb25nIGFzIHRoZSByYW5nZSBbYmFzZSwgYmFzZStzaXplKSBpcwogICAgZW50aXJl
bHkgd2l0aGluIGEgcGFnZSBhY2NvcmRpbmcgdG8gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudC4g
Ki8KLVBBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KHZvaWQqIGJhc2UsIHNpemVf
dCBzaXplKTsKLVBBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQodm9pZCogYmFz
ZSwgc2l6ZV90IHNpemUpOworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXQodm9p
ZCogYmFzZSwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5
KTsKK1BBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQodm9pZCogYmFzZSwgc2l6
ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIAotUEFTX0FQ
SSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF9hc3ltbWV0cmljKHZvaWQqIGJhc2UsIHNp
emVfdCBzaXplKTsKKy8qIEluIHRlc3RpbmcgbW9kZSwgd2UgaGF2ZSBjb21taXQvZGVjb21taXQg
bXByb3RlY3QgdGhlIG1lbW9yeSBhcyBhIHdheSBvZiBoZWxwaW5nIHVzIHNlZSBpZiB3ZSBhcmUK
KyAgIGFjY2lkZW50YWxseSByZWFkaW5nIG9yIHdyaXRpbmcgdGhhdCBtZW1vcnkuIEJ1dCBzb21l
dGltZXMgd2UgdXNlIGNvbW1pdC9kZWNvbW1pdCBpbiBhIHdheSB0aGF0IHByZXZlbnRzCisgICB1
cyBmcm9tIG1ha2luZyBzdWNoIGFzc2VydGlvbnMsIGxpa2UgaWYgd2UgYWxsb3cgc29tZSByZWFk
cyBhbmQgd3JpdGVzIHRvIGRlY29tbWl0dGVkIG1lbW9yeSBpbiByYXJlCisgICBjYXNlcy4gKi8K
K1BBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dpdGhvdXRfbXByb3RlY3QoCisg
ICAgdm9pZCogYmFzZSwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBh
YmlsaXR5KTsKK1BBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0aG91dF9t
cHJvdGVjdCgKKyAgICB2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0
eSBtbWFwX2NhcGFiaWxpdHkpOwogCiBQQVNfRU5EX0VYVEVSTl9DOwogCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmMJKHdv
cmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zOCw2ICszOCw4IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
cGFnZV9pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnku
aCIKIAorc2l6ZV90IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvdW50OworCiBwYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyogcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdf
Y3JlYXRlKAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3RvcnksCiAg
ICAgc2l6ZV90IGluZGV4KQpAQCAtNTQsNiArNTYsOCBAQCBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldyogcGFzX3NlZ3JlCiAgICAgICAgICJwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmll
dyIsCiAgICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKKyAgICBwYXNfc2VncmVnYXRl
ZF9leGNsdXNpdmVfdmlld19jb3VudCsrOworCiAgICAgLyogV2UgYWxsb2NhdGUgdGhpcyBsYXpp
bHkuICovCiAgICAgcmVzdWx0LT5wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKICAgICBwYXNfY29tcGFj
dF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0cl9zdG9yZSgmcmVzdWx0LT5kaXJlY3Rvcnks
IGRpcmVjdG9yeSk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9leGNsdXNpdmVfdmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHJldmlz
aW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAg
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlXwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3NlZ3JlZ2F0ZWRfcGFnZSBwYXNfc2VncmVnYXRlZF9wYWdlOwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlOwogCitQQVNfQVBJ
IGV4dGVybiBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY291bnQ7CisKIHN0
cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlldyB7CiAgICAgdm9pZCogcGFnZV9ib3Vu
ZGFyeTsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19p
bmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5LmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZS5oIgogI2luY2x1ZGUgInBh
c190aHJlYWRfbG9jYWxfY2FjaGUuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X25vZGUuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC0xNjcsNiArMTY4LDggQEAgc3Rh
dGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgfQogCisgICAgICAgICAgICBwYXNfbG9ja190ZXN0aW5nX2Fzc2Vy
dF9oZWxkKCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOworCiAgICAgICAgICAgICBhbGxv
Y2F0b3JfcmVzdWx0ID0KICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3Ry
eV9nZXRfbG9jYWxfYWxsb2NhdG9yX2Zvcl9wb3NzaWJseV91bmluaXRpYWxpemVkX2J1dF9ub3Rf
dW5zZWxlY3RlZF9pbmRleCgKICAgICAgICAgICAgICAgICAgICAgY2FjaGUsIHBhZ2UtPnZpZXdf
Y2FjaGVfaW5kZXgpOwpAQCAtMTgzLDkgKzE4Niw5IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElO
RSB2b2lkIHBhc19zZWdyZWcKICAgICAgICAgICAgIGlmICh2ZXJib3NlKQogICAgICAgICAgICAg
ICAgIHBhc19sb2coIlRyeWluZyB0byBwdXNoIHRvIHZpZXcgY2FjaGUuXG4iKTsKIAotICAgICAg
ICAgICAgaWYgKHBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwodmlld19jYWNoZSkpIHsKKyAg
ICAgICAgICAgIGlmICghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wdXNoKHZpZXdf
Y2FjaGUpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAg
ICAgIHBhc19sb2coIiVwLCAlcDogQ2FjaGUgaXMgZnVsbCAoJXUpLlxuIiwgY2FjaGUtPm5vZGUs
IHZpZXdfY2FjaGUsIHBhZ2UtPm9iamVjdF9zaXplKTsKKyAgICAgICAgICAgICAgICAgICAgcGFz
X2xvZygiJXAsICVwOiBDYWNoZSBpcyBmdWxsIG9yIGlzIHN0b3BwZWQgKCV1KS5cbiIsIGNhY2hl
LT5ub2RlLCB2aWV3X2NhY2hlLCBwYWdlLT5vYmplY3Rfc2l6ZSk7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXAuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwLmMJKHJl
dmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2hlYXAuYwkod29ya2luZyBjb3B5KQpAQCAtMTMyOCw2ICsxMzI4LDcgQEAgcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogICAgIHNpemVfdCBvYmplY3Rf
c2l6ZTsKICAgICBwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUqIG1l
ZGl1bV90dXBsZTsKICAgICBib29sIGlzX3V0aWxpdHk7CisgICAgc2l6ZV90IHR5cGVfYWxpZ25t
ZW50OwogCiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC0xMzQwLDggKzEz
NDEsNiBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgICAg
ICAgICAgICAgaGVhcCwgcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X3N0cmluZyhjb25maWctPmtp
bmQpLCBzaXplLCBhbGlnbm1lbnQpOwogICAgIH0KIAotICAgIFBBU19BU1NFUlQocGFzX2lzX2Fs
aWduZWQoc2l6ZSwgYWxpZ25tZW50KSk7Ci0KICAgICBpZiAoUEFTX0VOQUJMRV9URVNUSU5HKSB7
CiAgICAgICAgIGNoZWNrX3BhcnRfb2ZfYWxsX2hlYXBzX2RhdGEgZGF0YTsKICAgICAgICAgZGF0
YS5oZWFwID0gaGVhcDsKQEAgLTEzOTAsNiArMTM4OSwzOSBAQCBwYXNfc2VncmVnYXRlZF9oZWFw
X2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAKICAgICBwYXJlbnRfaGVhcCA9IHBhc19oZWFwX2Zvcl9z
ZWdyZWdhdGVkX2hlYXAoaGVhcCk7CiAKKyAgICAvKiBTYXkgdGhhdCB0aGUgaGVhcCdzIHR5cGUg
aGFzIGFuIGFsaWdubWVudCBvZiAxMjggYW5kIHRoYXQgc29tZW9uZSBjYWxscyBzb21ldGhpbmcg
bGlrZQorICAgICAgIGJtYWxsb2NfaXNvX2FsbG9jYXRlX2FycmF5X2J5X3NpemUoJnNvbWVfaGVh
cCwgNTE2MykuCisgICAgICAgCisgICAgICAgQmVmb3JlIGNvbnNpZGVyaW5nIHdoYXQgdGhlIHBv
c3NpYmxlIGJlaGF2aW9ycyBjb3VsZCBiZSwgbGV0J3MgdGFrZSBub3RlIG9mIGEgY29uc3RyYWlu
dDogaXQncyBub3QKKyAgICAgICByZWFzb25hYmxlIHRvIHJlcXVpcmUgdGhlIGZhc3QgcGF0aCBv
ZiBhbGxvY2F0aW9uIHRvIGFsaWduIDUxNjMgdG8gMTI4LCBzaW5jZSB0aGF0IHdvdWxkIHJlcXVp
cmUgbG9hZGluZworICAgICAgIHRoZSBhbGlnbm1lbnQgZnJvbSB0aGUgdHlwZSBhbmQgZG9pbmcg
aXQgZHluYW1pY2FsbHksIHdoaWNoIGludm9sdmVzIG1vcmUgY3ljbGVzIGZvciB0aGUgZmFzdCBw
YXRoIHRoYW4KKyAgICAgICB3ZSdkIGxpa2UuCisgICAgICAgCisgICAgICAgU28gd2hhdCBiZWhh
dmlvciBkbyB3ZSB3YW50IHRoaXMgdG8gaGF2ZT8KKyAgICAgICAKKyAgICAgICAxKSBXZSBjb3Vs
ZCBtYWtlIHRoaXMgYW4gZXJyb3IuIEJ1dCwgc2luY2Ugd2UgY2Fubm90IGRvIHRoZSBhbGlnbm1l
bnQgY29tcHV0YXRpb24gb24gdGhlIGZhc3QgcGF0aCwgdGhlCisgICAgICAgICAgZXJyb3Igd291
bGQgb25seSBtYW5pZmVzdCBpZiB3ZSBoaXQgYSBzbG93IHBhdGguCisgICAgICAgCisgICAgICAg
MikgV2UgY291bGQganVzdCBzaWxlbnRseSBhbGlnbiB0aGUgc2l6ZSBmb3IgdGhlIHVzZXIuIFRv
IG1ha2UgdGhpcyB3b3JrLCB3ZSBqdXN0IGhhdmUgdG8gbWFrZSBzdXJlIHRoYXQKKyAgICAgICAg
ICB3aGVuIHRoZSBmYXN0IHBhdGggYXNrcyBmb3IgNTE2MyBhZ2FpbiwgdGhleSB3aWxsIGdldCBh
biBhbGxvY2F0b3IgdGhhdCBpcyBhbGlnbmVkIGFwcHJvcHJpYXRlbHkuCisgICAgICAgCisgICAg
ICAgVGhlIGZpcnN0IG9wdGlvbiBzZWVtcyBkb3VibHkgYmFkOiBpdCB3aWxsIG9ubHkgbWFuaWZl
c3Qgc29tZXRpbWVzLCBhbmQgaXQncyB1bm5lY2Vzc2FyaWx5IHJlc3RyaWN0aXZlLgorICAgICAg
IFdobyBpcyB0byBzYXkgdGhhdCBhbiBhcnJheSBvZiB0aGF0IGxlbmd0aCBpcyByZWFsbHkgd3Jv
bmc/IExpYnBhcyBnZW5lcmFsbHkgdGFrZXMgdGhlIGFwcHJvYWNoIG9mCisgICAgICAgcGVybWl0
dGluZyB0aGUgdXNlciB0byByZXF1ZXN0IGEgbWlzYWxpZ25lZCBzaXplLCBhbmQgaXQgd2lsbCBh
bGlnbiB0aGUgc2l6ZSBmb3IgdGhlIHVzZXIuCisKKyAgICAgICBUbyBtYWtlIHRoZSBzZWNvbmQg
b3B0aW9uIHdvcmssIHdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGBpbmRleGAgaXMgY29tcHV0
ZWQgZnJvbSB0aGUgc2l6ZSB0aGF0IHRoZQorICAgICAgIHVzZXIgdGhvdWdodCB0aGV5IHdlcmUg
cmVxdWVzdGluZywgYW5kIHRoYXQgdGhpcyBmdW5jdGlvbiBnZXRzIGNhbGxlZCB3aXRoIHNpemUg
YmVpbmcgZXhhY3RseSB0aGUgc2l6ZQorICAgICAgIHRoYXQgdGhlIGFsbG9jYXRvciBzYXcuCisg
ICAgICAgCisgICAgICAgTm90ZSB0aGF0IHRoaXMgc2l6ZSBtYXkgYmUgYWxyZWFkeSBhbGlnbmVk
IHRvIHRoZSBkeW5hbWljYWxseSByZXF1ZXN0ZWQgYWxpZ25tZW50IChhcyBvcHBvc2VkIHRvIHRo
ZQorICAgICAgIHR5cGUncyBhbGlnbm1lbnQpLCBhbmQgdGhhdCdzIGdyZWF0ISBUaGF0IGJlaGF2
aW9yIGVuc3VyZXMgdGhhdCBpZiB3ZSBsYXRlciB0cnkgdG8gYWxsb2NhdGUgdGhpcyBzaXplCisg
ICAgICAgd2l0aG91dCB0aGF0IGFsaWdubWVudCwgd2UgY2FuIGdldCBhIGRpcmVjdG9yeSB0aGF0
IGlzIGJldHRlciBzdWl0ZWQuIFRoZSBgYWxpZ25tZW50YCB3ZSBhcmUgcGFzc2VkIGhlcmUKKyAg
ICAgICBpcyB0aGUgbWF4IG9mIHRoZSB0eXBlJ3MgYWxpZ25tZW50IGFuZCB0aGUgcmVxdWVzdGVk
IGFsaWdubWVudCwgc28gaWYgdGhlIHNpemUgaXMgbm90IGFsaWduZWQgdG8KKyAgICAgICBgYWxp
Z25tZW50YCwgdGhlbiB3ZSBrbm93IGl0J3MgYmVjYXVzZSBgYWxpZ25tZW50YCBpcyB0aGUgdHlw
ZSdzIGFsaWdubWVudC4gKi8KKworICAgIHR5cGVfYWxpZ25tZW50ID0gcGFzX2hlYXBfZ2V0X3R5
cGVfYWxpZ25tZW50KHBhcmVudF9oZWFwKTsKKyAgICBQQVNfQVNTRVJUKGFsaWdubWVudCA+PSB0
eXBlX2FsaWdubWVudCk7CisgICAgCiAgICAgaW5kZXggPSBwYXNfc2VncmVnYXRlZF9oZWFwX2lu
ZGV4X2Zvcl9zaXplKHNpemUsICpjb25maWcpOwogICAgIG9iamVjdF9zaXplID0gcGFzX3NlZ3Jl
Z2F0ZWRfaGVhcF9zaXplX2Zvcl9pbmRleChpbmRleCwgKmNvbmZpZyk7CiAKQEAgLTE0MDEsMTMg
KzE0MzMsMjggQEAgcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9lbnN1cmVfc2l6ZV9kaXJlY3RvcgogCiAg
ICAgb2JqZWN0X3NpemUgPSBQQVNfTUFYKG1pbl9vYmplY3Rfc2l6ZV9mb3JfaGVhcF9jb25maWco
Y29uZmlnKSwgb2JqZWN0X3NpemUpOwogCi0gICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZChv
YmplY3Rfc2l6ZSwgYWxpZ25tZW50KSk7CiAgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgK
ICAgICAgICAgICAgICAgICAgICBvYmplY3Rfc2l6ZSwgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25m
aWdfbWluX2FsaWduKGNvbmZpZy0+c21hbGxfc2VncmVnYXRlZF9jb25maWcpKSk7CiAKICAgICBh
bGlnbm1lbnQgPSBQQVNfTUFYKGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnX21pbl9hbGlnbihjb25maWctPnNtYWxsX3NlZ3JlZ2F0
ZWRfY29uZmlnKSk7CiAKKyAgICBpZiAoYWxpZ25tZW50ID4gdHlwZV9hbGlnbm1lbnQpIHsKKyAg
ICAgICAgLyogSWYgdGhlIGFsaWdubWVudCBpcyBiaWdnZXIgdGhhbiB0eXBlX2FsaWdubWVudCB0
aGVuIGl0IG1lYW5zIHRoYXQgdGhpcyBpcyBhIGR5bmFtaWNhbGx5IHJlcXVlc3RlZAorICAgICAg
ICAgICBhbGlnbm1lbnQuIFNvLCB3ZSBleHBlY3QgdGhhdCB0aGUgb2JqZWN0IHNpemUgd2FzIGFs
cmVhZHkgYWxpZ25lZCB0byBpdCBieSB0aGUgYWxsb2NhdG9yIGZhc3QKKyAgICAgICAgICAgcGF0
aC4gV2Ugc2hvdWxkIG5ldmVyIGdldCBoZXJlIHdpdGggYSBzaXplIHRoYXQgaXNuJ3QgYWxyZWFk
eSBhbGlnbmVkIHRvIHRoZSBkeW5hbWljYWxseSByZXF1ZXN0ZWQKKyAgICAgICAgICAgYWxpZ25t
ZW50ISAqLworICAgICAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9iamVjdF9zaXplLCBh
bGlnbm1lbnQpKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvKiBJZiB0aGUgYWxpZ25tZW50IGlz
IGV4YWN0bHkgdGhlIHR5cGVfYWxpZ25tZW50LCB0aGVuIGl0IG1pZ2h0IGJlIHRoYXQgd2UgYXJl
IGFsbG9jYXRpbmcgd2l0aG91dAorICAgICAgICAgICBhbnkgZHluYW1pY2FsbHkgcmVxdWVzdGVk
IGFsaWdubWVudCwgb3IgYSBkeW5hbWljYWxseSByZXF1ZXN0ZWQgYWxpZ25tZW50IHRoYXQgaXMg
c21hbGxlciB0aGFuIHRoZQorICAgICAgICAgICB0eXBlIGFsaWdubWVudC4gSW4gdGhhdCBjYXNl
LCB3ZSBhbGlnbiB0aGUgb2JqZWN0X3NpemUgaGVyZSwgc28gdGhhdCBpbiB0aGlzIGhlYXAsIGFs
bCBvYmplY3Qgc2l6ZXMKKyAgICAgICAgICAgYXJlIGFsaWduZWQgdG8gdGhlIHR5cGUncyBhbGln
bm1lbnQuICovCisgICAgICAgIG9iamVjdF9zaXplID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29m
XzIob2JqZWN0X3NpemUsIGFsaWdubWVudCk7CisgICAgfQorCisgICAgUEFTX0FTU0VSVChvYmpl
Y3Rfc2l6ZSA+PSBzaXplKTsKKwogICAgIC8qIElmIHdlIGhhdmUgb3ZlcmZsb3dlZCBhbHJlYWR5
IHRoZW4gYmFpbC4gKi8KICAgICBpZiAoKHVuc2lnbmVkKW9iamVjdF9zaXplICE9IG9iamVjdF9z
aXplIHx8CiAgICAgICAgICh1bnNpZ25lZClhbGlnbm1lbnQgIT0gYWxpZ25tZW50KQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxp
bmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjcsNyArMTI3LDggQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5F
IGJvb2wgcGFzX3NlZ3JlZwogICAgICAgICB0dXBsZXMgPSBwYXNfc2VncmVnYXRlZF9oZWFwX21l
ZGl1bV9kaXJlY3RvcnlfdHVwbGVfcHRyX2xvYWQoCiAgICAgICAgICAgICAmZGF0YVtwYXNfZGVw
ZW5kKG51bV9tZWRpdW1fZGlyZWN0b3JpZXMpXS5tZWRpdW1fZGlyZWN0b3JpZXMpOwogCi0gICAg
ICAgIGlmICh0dXBsZXMpIHsKKyAgICAgICAgaWYgKG51bV9tZWRpdW1fZGlyZWN0b3JpZXMpIHsK
KyAgICAgICAgICAgIFBBU19BU1NFUlQodHVwbGVzKTsKICAgICAgICAgICAgIHJlc3VsdCB8PSBw
YXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeV90b3VjaCgKICAgICAgICAgICAgICAgICB0dXBs
ZXMsCiAgICAgICAgICAgICAgICAgbnVtX21lZGl1bV9kaXJlY3RvcmllcyAqIHNpemVvZihwYXNf
c2VncmVnYXRlZF9oZWFwX21lZGl1bV9kaXJlY3RvcnlfdHVwbGUpLApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2Uu
YwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfcGFnZS5jCSh3b3JraW5nIGNvcHkpCkBAIC00MDksNyArNDA5LDggQEAg
Ym9vbCBwYXNfc2VncmVnYXRlZF9wYWdlX3Rha2VfcGh5c2ljYWxseQogICAgIHJhbmdlID0gcGFz
X3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKAogICAgICAgICBiYXNlLAogICAgICAgICBiYXNlICsgcGFn
ZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCi0gICAgICAgIGNvbW1pdF9sb2NrX2ZvcihwYWdlKSk7
CisgICAgICAgIGNvbW1pdF9sb2NrX2ZvcihwYWdlKSwKKyAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAgcmV0dXJuIHBh
c19kZWZlcnJlZF9kZWNvbW1pdF9sb2dfYWRkX21heWJlX2xvY2tlZCgKICAgICAgICAgZGVjb21t
aXRfbG9nLCByYW5nZSwgcmFuZ2VfbG9ja2VkX21vZGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOwpA
QCAtNDg5LDcgKzQ5MCw3IEBAIHZvaWQgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb21taXRfZnVsbHko
CiAgICAgICAgICAgICBwYXNfbG9ja19sb2NrKGNvbW1pdF9sb2NrKTsKICAgICAgICAgcGFzX2Nv
bXBpbGVyX2ZlbmNlKCk7CiAKLSAgICAgICAgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdCgmY29t
bWl0X3NwYW4pOworICAgICAgICBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3Bh
biwgcGFnZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAK
ICAgICAgICAgZm9yIChncmFudWxlX2luZGV4ID0gMDsgZ3JhbnVsZV9pbmRleCA8IG51bV9ncmFu
dWxlczsgKytncmFudWxlX2luZGV4KSB7CiAgICAgICAgICAgICBpZiAodXNlX2NvdW50c1tncmFu
dWxlX2luZGV4XSAhPSBQQVNfUEFHRV9HUkFOVUxFX0RFQ09NTUlUVEVEKSB7CkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9wYWdlX2lubGluZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9pbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTYwNCw3ICs2MDQsNyBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9p
ZCBwYXNfc2VncmVnCiAgICAgICAgIHBhc19sb2NrKiBoZWxkX2xvY2s7CiAgICAgICAgIGhlbGRf
bG9jayA9IE5VTEw7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfZGVhbGxvY2F0ZSgKLSAg
ICAgICAgICAgIGJlZ2luLCAmaGVsZF9sb2NrLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25f
dG9fdmlld19jYWNoZV9tb2RlLCBjYWNoZSwgcGFnZV9jb25maWcsIHJvbGUpOworICAgICAgICAg
ICAgYmVnaW4sICZoZWxkX2xvY2ssIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3Rf
bW9kZSwgTlVMTCwgcGFnZV9jb25maWcsIHJvbGUpOwogICAgICAgICBwYXNfbG9ja19zd2l0Y2go
JmhlbGRfbG9jaywgTlVMTCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9wYXJ0aWFsX3ZpZXcuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmMJKHdvcmtpbmcg
Y29weSkKQEAgLTM3LDYgKzM3LDggQEAKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRf
dmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFzX3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3Vu
ZGFyeV9pbmxpbmVzLmgiCiAKK3NpemVfdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY291
bnQgPSAwOworCiBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcqCiBwYXNfc2VncmVnYXRlZF9w
YXJ0aWFsX3ZpZXdfY3JlYXRlKAogICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnksCkBAIC01NCw2ICs1Niw4IEBAIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19j
cmVhdGUoCiAgICAgICAgICJwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXciLAogICAgICAgICBw
YXNfb2JqZWN0X2FsbG9jYXRpb24pOwogCisgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3
X2NvdW50Kys7CisKICAgICAvKiBXZSBhdHRhY2ggdG8gYSBzaGFyZWQgdmlldyBsYXppbHkgLSBv
bmNlIHdlIGtub3cgd2hhdCB3ZSdyZSBhbGxvY2F0aW5nLiAqLwogICAgIHBhc19jb21wYWN0X3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfcHRyX3N0b3JlKCZyZXN1bHQtPnNoYXJlZF92aWV3LCBOVUxM
KTsKIApAQCAtMjQyLDYgKzI0Niw5IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVf
c3VtbWFyeSgKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmICh2aWV3LT5pc19pbl91c2VfZm9y
X2FsbG9jYXRpb24pCisgICAgICAgIHJlc3VsdC5jYWNoZWQgKz0gcGFzX2hlYXBfc3VtbWFyeV90
b3RhbChyZXN1bHQpOworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aWV3LmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Myw2ICs0Myw4IEBAIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3BhcnRp
YWxfdmkKIHR5cGVkZWYgc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHBhc19zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3OwogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9k
aXJlY3RvcnkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3Rvcnk7CiAKK1BBU19BUEkgZXh0ZXJu
IHNpemVfdCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY291bnQ7CisKIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcgewogICAgIHVuc2lnbmVkIGlubGluZV9hbGxvY19iaXRz
OwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3Jl
Z2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5
LmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jCSh3b3JraW5nIGNvcHkpCkBA
IC00MjYsNyArNDI2LDggQEAgdGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3ZpZXcoCiAgICAgICAg
IHNoYXJlZF92aWV3LT5pc19vd25lZCA9IGZhbHNlOwogICAgICAgICBwYXNfcGFnZV9tYWxsb2Nf
ZGVjb21taXQoCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2Us
IHBhZ2VfY29uZmlnKSwKLSAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsK
KyAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAgcGFn
ZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAg
IHBhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+YmFzZSwgcGFzX2xv
Y2tfaXNfaGVsZCk7CiAgICAgICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gcGFnZV9jb25maWcu
YmFzZS5wYWdlX3NpemU7CiAgICAgICAgIGdvdG8gcmV0dXJuX3Rha2VuX3BhcnRpYWxfdmlld3Nf
YWZ0ZXJfZGVjb21taXQ7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMJKHJldmlzaW9u
IDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdh
dGVkX3NoYXJlZF92aWV3LmMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDggQEAKICNpbmNs
dWRlICJwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19pbmxpbmVzLmgiCiAjaW5jbHVkZSAicGFz
X3NoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeV9pbmxpbmVzLmgiCiAKK3NpemVfdCBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlld19jb3VudCA9IDA7CisKIHBhc19zZWdyZWdhdGVkX3NoYXJl
ZF92aWV3KiBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jcmVhdGUoc2l6ZV90IGluZGV4KQog
ewogICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiByZXN1bHQ7CkBAIC01MSw2ICs1Myw4
IEBAIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3KiBwYXNfc2VncmVnYXQKICAgICAgICAgInBh
c19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IiwKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9u
KTsKIAorICAgIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvdW50Kys7CisKICAgICByZXN1
bHQtPnNoYXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSA9IE5VTEw7CiAKICAgICAvKiBOVUxM
IG11c3QgbG9vayBsaWtlIGEgcGFnZS4gQ29kZSB0aGF0IHRlc3RzIGlmIHRoaW5ncyBhcmUgcGFn
ZXMgY2FuIGltcGxpY2l0bHkgYXNzdW1lIHRoYXQKQEAgLTE2Nyw3ICsxNzEsOCBAQCBwYXNfc2Vn
cmVnYXRlZF9zaGFyZWRfaGFuZGxlKiBwYXNfc2VncmVnCiAgICAgICAgIHBhc19oZWFwX2xvY2tf
dW5sb2NrX2NvbmRpdGlvbmFsbHkoCiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2Nv
bmZpZ19oZWFwX2xvY2tfaG9sZF9tb2RlKHBhZ2VfY29uZmlnKSk7CiAKLSAgICAgICAgcGFzX3Bh
Z2VfbWFsbG9jX2NvbW1pdChoYW5kbGUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2Uu
cGFnZV9zaXplKTsKKyAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChoYW5kbGUtPnBhZ2Vf
Ym91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9jb25maWdfcHRyLT5tbWFwX2NhcGFi
aWxpdHkpOwogICAgICAgICBwYWdlX2NvbmZpZy5iYXNlLmNyZWF0ZV9wYWdlX2hlYWRlcigKICAg
ICAgICAgICAgIGhhbmRsZS0+cGFnZV9ib3VuZGFyeSwKICAgICAgICAgICAgIHBhc19wYWdlX2tp
bmRfZm9yX3NlZ3JlZ2F0ZWRfdmFyaWFudF9hbmRfcm9sZSgKQEAgLTM0Niw2ICszNTEsOSBAQCBz
dGF0aWMgcGFzX2hlYXBfc3VtbWFyeSBjb21wdXRlX3N1bW1hcnkoCiAgICAgICAgICZwYWdlLT5i
YXNlLCAmcmVzdWx0LCBwYXNfcmFuZ2VfY3JlYXRlKHN0YXJ0X29mX2xhc3RfZnJlZSwgZW5kX29m
X3BheWxvYWQpLAogICAgICAgICBwYXNfZnJlZV9vYmplY3RfcmFuZ2UpOwogCisgICAgaWYgKHZp
ZXctPmlzX2luX3VzZV9mb3JfYWxsb2NhdGlvbl9jb3VudCkKKyAgICAgICAgcmVzdWx0LmNhY2hl
ZCArPSBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKKwogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3NoYXJlZF92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaAkocmV2aXNpb24gMjg5NTA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3Zp
ZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsOCBAQCBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9z
aGFyZWRfdmlldyBwYXNfZXh0ZW5kZWRfc2VncmVnYXRlZF9zaGFyZWRfdmlldzsKIHR5cGVkZWYg
c3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3OwogCitQQVNfQVBJIGV4dGVybiBzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdf
Y291bnQ7CisKIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldyB7CiAgICAgcGFzX3No
YXJlZF9oYW5kbGVfb3JfcGFnZV9ib3VuZGFyeSBzaGFyZWRfaGFuZGxlX29yX3BhZ2VfYm91bmRh
cnk7CiAgICAgcGFzX2xvY2sgY29tbWl0X2xvY2s7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5jCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVf
ZGlyZWN0b3J5LmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkK
QEAgLTc0Nyw3ICs3NDcsOCBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldyhwYXNfc2Vn
cmVnCiAgICAgICAgIH0KICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0KAogICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9ib3VuZGFyeShwYWdlLCBteV9wYWdlX2NvbmZpZyks
Ci0gICAgICAgICAgICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAg
ICBteV9wYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKKyAgICAgICAgICAgIG15X3BhZ2VfY29u
ZmlnLmJhc2UuaGVhcF9jb25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICBkZWNv
bW1pdF9sb2ctPnRvdGFsICs9IG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOwogICAgICAg
ICBteV9wYWdlX2NvbmZpZy5iYXNlLmRlc3Ryb3lfcGFnZV9oZWFkZXIoJnBhZ2UtPmJhc2UsIHBh
c19sb2NrX2lzX2hlbGQpOwogICAgICAgICBwYXNfc2VncmVnYXRlZF9kaXJlY3Rvcnlfdmlld19k
aWRfYmVjb21lX2VsaWdpYmxlX2F0X2luZGV4KGRpcmVjdG9yeSwgaW5kZXgpOwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3ZpZXcuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlldy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDIsNiArNDIs
OCBAQAogcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeV9zbG93KHBhc19zZWdyZWdhdGVkX3ZpZXcgdmlldykKIHsKKyAg
ICBpZiAoIXZpZXcpCisgICAgICAgIHJldHVybiBOVUxMOwogICAgIHN3aXRjaCAocGFzX3NlZ3Jl
Z2F0ZWRfdmlld19nZXRfa2luZCh2aWV3KSkgewogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZXhj
bHVzaXZlX3ZpZXdfa2luZDoKICAgICBjYXNlIHBhc19zZWdyZWdhdGVkX2luZWxpZ2libGVfZXhj
bHVzaXZlX3ZpZXdfa2luZDoKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3X2FsbG9j
YXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3ZpZXdfYWxsb2NhdG9yX2lubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMTgxLDcgKzE4MSw4IEBAIHBhc19zZWdyZWdhdGVkX3ZpZXdfd2lsbF9z
dGFydF9hbGxvY2F0aW4KICAgICAgICAgICAgICAgICAgICAgICAgIG51bV9sb2Nrc19oZWxkKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBwYXNfcGFn
ZV9tYWxsb2NfY29tbWl0KGV4Y2x1c2l2ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFz
ZS5wYWdlX3NpemUpOworICAgICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoZXhj
bHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuaGVhcF9j
b25maWdfcHRyLT5tbWFwX2NhcGFiaWxpdHkpOwogICAgICAgICAgICAgICAgIGlmICh2ZXJib3Nl
KSB7CiAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkNyZWF0aW5nIHBhZ2UgaGVhZGVyIHdo
ZW4gY29tbWl0dGluZyBleGNsdXNpdmUgcGFnZSwgdmlldyA9ICVwLCAiCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImJvdW5kYXJ5ID0gJXAuXG4iLApJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zdGF0dXNfcmVwb3J0ZXIuYwkocmV2
aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0
YXR1c19yZXBvcnRlci5jCSh3b3JraW5nIGNvcHkpCkBAIC02NzMsNiArNjczLDExIEBAIHN0YXRp
YyBib29sIGR1bXBfbGFyZ2Vfc2hhcmluZ19wb29sX25vZGUKICAgICAgICAgICAgIHN0cmVhbSwg
IiwgJXMiLAogICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25f
c3R5bGVfZ2V0X3N0cmluZyhub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUpKTsKICAgICB9Cisg
ICAgaWYgKG5vZGUtPm1tYXBfY2FwYWJpbGl0eSAhPSBwYXNfbWF5X21tYXApIHsKKyAgICAgICAg
cGFzX3N0cmVhbV9wcmludGYoCisgICAgICAgICAgICBzdHJlYW0sICIsICVzIiwKKyAgICAgICAg
ICAgIHBhc19tbWFwX2NhcGFiaWxpdHlfZ2V0X3N0cmluZyhub2RlLT5tbWFwX2NhcGFiaWxpdHkp
KTsKKyAgICB9CiAKICAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogCkBAIC04
MjEsNiArODI2LDEzIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWcK
ICAgICAgICAgICAgICAgICAgICAgICBkYXRhLmxhcmdlX2ZyYWdtZW50YXRpb24pOwogfQogCit2
b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF92aWV3X3N0YXRzKHBhc19zdHJlYW0qIHN0cmVh
bSkKK3sKKyAgICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgTnVtYmVyIG9mIFBhcnRp
YWwgVmlld3M6ICV6dVxuIiwgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NvdW50KTsKKyAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgTnVtYmVyIG9mIFNoYXJlZCBWaWV3czog
JXp1XG4iLCBwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jb3VudCk7CisgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLCAiICAgIE51bWJlciBvZiBFeGNsdXNpdmUgVmlld3M6ICV6dVxuIiwg
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY291bnQpOworfQorCiB0eXBlZGVmIHN0cnVj
dCB7CiAgICAgc2l6ZV90IG51bV9kaXJlY3Rvcmllc193aXRoX2RhdGE7CiAgICAgc2l6ZV90IG51
bV9kaXJlY3Rvcmllc193aXRoX3RsYXM7CkBAIC04OTQsNiArOTA2LDcgQEAgdm9pZCBwYXNfc3Rh
dHVzX3JlcG9ydGVyX2R1bXBfdGllcl91cF9yYQogCiBzdGF0aWMgY29uc3QgY2hhciogYWxsb2Nh
dG9yX3N0YXRlKHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKIHsKKyAgICAKICAgICBp
ZiAoIXBhc19sb2NhbF9hbGxvY2F0b3JfaXNfYWN0aXZlKGFsbG9jYXRvcikpCiAgICAgICAgIHJl
dHVybiAiaW5hY3RpdmUiOwogICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3BhcnRpYWwo
YWxsb2NhdG9yLT52aWV3KSkKQEAgLTkwMSw2ICs5MTQsMjggQEAgc3RhdGljIGNvbnN0IGNoYXIq
IGFsbG9jYXRvcl9zdGF0ZShwYXNfbAogICAgIHJldHVybiAiZXhjbHVzaXZlIjsKIH0KIAorc3Rh
dGljIHZvaWQgZHVtcF9hbGxvY2F0b3Jfc3RhdGUocGFzX3N0cmVhbSogc3RyZWFtLCBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3IpCit7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
OworCisgICAgdmlldyA9IGFsbG9jYXRvci0+dmlldzsKKyAgICBwYXNfc3RyZWFtX3ByaW50Zihz
dHJlYW0sICIsICVzLCB2aWV3ID0gJXAsIGRpcmVjdG9yeSA9ICVwLCAlcyIsCisgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFs
bG9jYXRvci0+Y29uZmlnX2tpbmQpLAorICAgICAgICAgICAgICAgICAgICAgIHZpZXcsIHZpZXcg
PyBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KSA6IE5VTEwsCisg
ICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3N0YXRlKGFsbG9jYXRvcikpOworfQorCitz
dGF0aWMgdm9pZCBkdW1wX3NjYXZlbmdlcl9kYXRhX3N0YXRlKHBhc19zdHJlYW0qIHN0cmVhbSwg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSkKK3sKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX2tpbmQga2luZDsKKworICAgIGtpbmQgPSBkYXRhLT5raW5kOworICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiVzIiwgcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kX2dl
dF9zdHJpbmcoa2luZCkpOworCisgICAgaWYgKGtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9h
bGxvY2F0b3Jfa2luZCkKKyAgICAgICAgZHVtcF9hbGxvY2F0b3Jfc3RhdGUoc3RyZWFtLCAocGFz
X2xvY2FsX2FsbG9jYXRvciopZGF0YSk7Cit9CisKIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX2Jhc2VsaW5lX2FsbG9jYXRvcnMocGFzX3N0cmVhbSogc3RyZWFtKQogewogICAgIHNpemVf
dCBpbmRleDsKQEAgLTkxNCwxNiArOTQ5LDEyIEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9k
dW1wX2Jhc2VsaW5lX2EKICAgICAKICAgICBmb3IgKGluZGV4ID0gMDsgaW5kZXggPCBQQVNfTlVN
X0JBU0VMSU5FX0FMTE9DQVRPUlM7ICsraW5kZXgpIHsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogYWxsb2NhdG9yOwotICAgICAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CiAKICAg
ICAgICAgYWxsb2NhdG9yID0gJnBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVbaW5kZXhdLnUu
YWxsb2NhdG9yOwogCi0gICAgICAgIHZpZXcgPSBhbGxvY2F0b3ItPnZpZXc7Ci0gICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAg
ICAgICV6dTogZGlyZWN0b3J5ID0gJXAsICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbmRleCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgdmlldyA/IHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpIDogTlVMTCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWxsb2NhdG9yX3N0YXRlKGFsbG9jYXRvcikpOworICAgICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICIgICAgICAgICAlenU6ICIsIGluZGV4KTsKKyAgICAgICAgZHVtcF9h
bGxvY2F0b3Jfc3RhdGUoc3RyZWFtLCBhbGxvY2F0b3IpOworICAgICAgICBwYXNfc3RyZWFtX3By
aW50ZihzdHJlYW0sICJcbiIpOwogICAgIH0KIH0KIApAQCAtOTY2LDIzICs5OTcsMjAgQEAgdm9p
ZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvYwogCiAgICAgICAgIGZvciAoUEFT
X1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0X25vZGUpKSB7
CiAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKLSAgICAg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcjsKLQotICAgICAgICAgICAgaWYg
KCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9y
KGxheW91dF9ub2RlKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAg
YWxsb2NhdG9yX2luZGV4ID0KLSAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihsYXlvdXRfbm9k
ZSk7CisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9n
ZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwogCiAgICAgICAgICAgICBp
ZiAoYWxsb2NhdG9yX2luZGV4ID49IGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQp
CiAgICAgICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgICAgIGlmICghcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0ZWQobGF5b3V0X25vZGUsIGNhY2hlKSkK
KyAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgYWxs
b2NhdG9yID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVj
dChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLSAgICAgICAgICAgIHBhc19zdHJlYW1fcHJpbnRm
KHN0cmVhbSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgICAgICAgICAgICAldTog
ZGlyZWN0b3J5ID0gJXAsICVzXG4iLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxs
b2NhdG9yX2luZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkoYWxsb2NhdG9yLT52aWV3KSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGFsbG9jYXRvcl9zdGF0ZShhbGxvY2F0b3IpKTsKKyAgICAgICAg
ICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICAgICV1OiAiLCBhbGxvY2F0
b3JfaW5kZXgpOworICAgICAgICAgICAgZHVtcF9zY2F2ZW5nZXJfZGF0YV9zdGF0ZSgKKyAgICAg
ICAgICAgICAgICBzdHJlYW0sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9j
YXRvcl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCkpOworICAgICAgICAgICAgcGFzX3N0
cmVhbV9wcmludGYoc3RyZWFtLCAiXG4iKTsKICAgICAgICAgfQogICAgIH0KIH0KQEAgLTEwOTAs
NiArMTExOCw3IEBAIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX2V2ZXJ5dGhpbmcKIAog
ICAgIGlmIChwYXNfc3RhdHVzX3JlcG9ydGVyX2VuYWJsZWQgPj0gMykgewogICAgICAgICBwYXNf
c3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90YWxfZnJhZ21lbnRhdGlvbihzdHJlYW0pOworICAgICAg
ICBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdmlld19zdGF0cyhzdHJlYW0pOwogICAgICAgICBw
YXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGllcl91cF9yYXRlcyhzdHJlYW0pOwogICAgIH0KIApJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19z
dGF0dXNfcmVwb3J0ZXIuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03
MSw2ICs3MSw3IEBAIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYWwKIFBB
U19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfbGFyZ2Vfc2hhcmluZ19wb29sKHBh
c19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1w
X3V0aWxpdHlfaGVhcChwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0
dXNfcmVwb3J0ZXJfZHVtcF90b3RhbF9mcmFnbWVudGF0aW9uKHBhc19zdHJlYW0qIHN0cmVhbSk7
CitQQVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3ZpZXdfc3RhdHMocGFzX3N0
cmVhbSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGll
cl91cF9yYXRlcyhwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNf
cmVwb3J0ZXJfZHVtcF9iYXNlbGluZV9hbGxvY2F0b3JzKHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQ
QVNfQVBJIHZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RocmVhZF9sb2NhbF9jYWNoZXMo
cGFzX3N0cmVhbSogc3RyZWFtKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMJKHJldmlzaW9uIDI4
OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGUuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKGMpIDIwMTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDYgKzMwLDggQEAKICNpbmNsdWRlICJw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgiCiAKICNpbmNsdWRlICJwYXNfYWxsX2hlYXBfY29uZmln
cy5oIgorI2luY2x1ZGUgInBhc19iaXR2ZWN0b3IuaCIKKyNpbmNsdWRlICJwYXNfY29tbWl0dGVk
X3BhZ2VzX3ZlY3Rvci5oIgogI2luY2x1ZGUgInBhc19kZWJ1Z19oZWFwLmgiCiAjaW5jbHVkZSAi
cGFzX2hlYXBfbG9jay5oIgogI2luY2x1ZGUgInBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5o
IgpAQCAtNTcsMjIgKzU5LDUzIEBAIHNpemVfdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVf
Zm9yX2EKICAgICByZXN1bHQgPSBQQVNfT0ZGU0VUT0YocGFzX3RocmVhZF9sb2NhbF9jYWNoZSwg
bG9jYWxfYWxsb2NhdG9ycykKICAgICAgICAgKyA4ICogYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5
OwogICAgIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIHBhc19yb3VuZF91cF90b19w
b3dlcl9vZl8yKHJlc3VsdCwgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKTsKK30KKworc3Rh
dGljIHNpemVfdCBudW1fcGFnZXModW5zaWduZWQgYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KQor
eworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2FsbG9jYXRvcl9p
bmRleF9jYXBhY2l0eShhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpCisgICAgICAgID4+IHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKTsKK30KKworc3RhdGljIHZvaWQgY29tcHV0ZV9w
YWdlX2luZGljZXMocGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0b3JfaW5kZXgsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGVuZF9h
bGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRy
X3QqIGJlZ2luX3BhZ2VfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1
aW50cHRyX3QqIGVuZF9wYWdlX2luZGV4KQoreworICAgIHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7
CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgp
OworICAgICpiZWdpbl9wYWdlX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRf
b2ZfYWxsb2NhdG9yKGJlZ2luX2FsbG9jYXRvcl9pbmRleCkgPj4gcGFnZV9zaXplX3NoaWZ0Owor
ICAgICplbmRfcGFnZV9pbmRleCA9CisgICAgICAgICgocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9v
ZmZzZXRfb2ZfYWxsb2NhdG9yKGVuZF9hbGxvY2F0b3JfaW5kZXgpIC0gMSkgPj4gcGFnZV9zaXpl
X3NoaWZ0KSArIDE7Cit9CisKK3N0YXRpYyBzaXplX3QgcGFnZXNfY29tbWl0dGVkX3NpemUodW5z
aWduZWQgYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KQoreworICAgIHJldHVybiBQQVNfQklUVkVD
VE9SX05VTV9CWVRFUyhudW1fcGFnZXMoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSk7CiB9CiAK
IHN0YXRpYyB2b2lkIGRlYWxsb2NhdGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xv
Y2FsX2NhY2hlKQogewogICAgIGNoYXIqIGJlZ2luOworICAgIHNpemVfdCBzaXplOwogCiAgICAg
cGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCiAgICAgICAgIHRocmVhZF9s
b2NhbF9jYWNoZS0+c2hvdWxkX3N0b3BfYml0dmVjdG9yLAogICAgICAgICBQQVNfQklUVkVDVE9S
X05VTV9CWVRFUyh0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkp
OwotICAgIAotICAgIGJlZ2luID0gKGNoYXIqKXRocmVhZF9sb2NhbF9jYWNoZTsKKwogICAgIHBh
c19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9kZWFsbG9jYXRlKAotICAgICAgICBiZWdpbiwKLSAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkoCi0gICAgICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9j
YXBhY2l0eSkpOworICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwK
KyAgICAgICAgcGFnZXNfY29tbWl0dGVkX3NpemUodGhyZWFkX2xvY2FsX2NhY2hlLT5hbGxvY2F0
b3JfaW5kZXhfY2FwYWNpdHkpKTsKKworICAgIGJlZ2luID0gKGNoYXIqKXRocmVhZF9sb2NhbF9j
YWNoZTsKKyAgICBzaXplID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0
b3JfaW5kZXhfY2FwYWNpdHkoCisgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KTsKKworICAgIC8qIElmIHdlJ3JlIGRvaW5nIHN5bW1ldHJpYyBkZWNv
bW1pdCwgdGhlbiB3ZSBuZWVkIHRvIGNvbW1pdCB0aGUgbWVtb3J5IGZvciB0aGUgVExDIG5vdy4g
Ki8KKyAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dpdGhvdXRfbXByb3RlY3QoYmVnaW4sIHNp
emUsIHBhc19tYXlfbW1hcCk7CisgICAgCisgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFw
X2RlYWxsb2NhdGUoYmVnaW4sIHNpemUpOwogfQogCiBzdGF0aWMgdm9pZCBkZXN0cm95KHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX2xvY2tfaG9sZF9tb2Rl
IGhlYXBfbG9ja19ob2xkX21vZGUpCkBAIC0xMjIsNiArMTU1LDcgQEAgc3RhdGljIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGFsbG9jYXRlXwogICAgIAogICAgIHNpemVfdCBzaXplOwogICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHJlc3VsdDsKKyAgICBzaXplX3QgaW5kZXg7CiAKICAgICBQ
QVNfQVNTRVJUKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSA+PSBQQVNfTE9DQUxfQUxMT0NBVE9S
X1VOU0VMRUNURURfTlVNX0lORElDRVMpOwogCkBAIC0xMzAsNyArMTY0LDggQEAgc3RhdGljIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIGFsbG9jYXRlXwogICAgIGlmICh2ZXJib3NlKQogICAgICAg
ICBwcmludGYoIkNhY2hlIHNpemU6ICV6dVxuIiwgc2l6ZSk7CiAgICAgCi0gICAgcmVzdWx0ID0g
KHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKXBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxv
Y2F0ZShzaXplLCAicGFzX3RocmVhZF9sb2NhbF9jYWNoZSIpOworICAgIHJlc3VsdCA9IChwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlKilwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGVf
d2l0aF9hbGlnbm1lbnQoCisgICAgICAgIHNpemUsIHBhc19hbGlnbm1lbnRfY3JlYXRlX3RyYWRp
dGlvbmFsKHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSksICJwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlIik7CiAKICAgICBwYXNfemVyb19tZW1vcnkocmVzdWx0LCBzaXplKTsKIApAQCAtMTM5LDYg
KzE3NCwxNiBAQCBzdGF0aWMgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfCiAgICAg
ICAgICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlL3Nob3VsZF9zdG9wX2JpdHZlY3RvciIpOwogCiAg
ICAgcGFzX3plcm9fbWVtb3J5KHJlc3VsdC0+c2hvdWxkX3N0b3BfYml0dmVjdG9yLCBQQVNfQklU
VkVDVE9SX05VTV9CWVRFUyhhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpKTsKKworICAgIFBBU19B
U1NFUlQocGFnZXNfY29tbWl0dGVkX3NpemUoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSk7Cisg
ICAgCisgICAgcmVzdWx0LT5wYWdlc19jb21taXR0ZWQgPSAodW5zaWduZWQqKXBhc19sYXJnZV91
dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0ZSgKKyAgICAgICAgcGFnZXNfY29tbWl0dGVkX3NpemUo
YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSwKKyAgICAgICAgInBhc190aHJlYWRfbG9jYWxfY2Fj
aGUvcGFnZXNfY29tbWl0dGVkIik7CisKKyAgICBwYXNfemVyb19tZW1vcnkocmVzdWx0LT5wYWdl
c19jb21taXR0ZWQsIHBhZ2VzX2NvbW1pdHRlZF9zaXplKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0
eSkpOworICAgIGZvciAoaW5kZXggPSBudW1fcGFnZXMoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5
KTsgaW5kZXgtLTspCisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KHJlc3VsdC0+cGFnZXNfY29t
bWl0dGVkLCBpbmRleCwgdHJ1ZSk7CiAgICAgCiAgICAgcmVzdWx0LT5hbGxvY2F0b3JfaW5kZXhf
Y2FwYWNpdHkgPSBhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHk7CiAKQEAgLTE5MCw3ICsyMzUsNyBA
QCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsCiAgICAgICAgICAgICB0
aHJlYWRfbG9jYWxfY2FjaGUsIFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9JTkRFWCkp
OwogCiAgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRP
UihsYXlvdXRfbm9kZSkpCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOworICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KGxh
eW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUpOwogCiAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zZXQodGhyZWFkX2xvY2FsX2NhY2hlKTsKICAgICAKQEAgLTIwOCwxMSArMjUzLDExIEBA
IHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9kZXN0cm95KHBhc18KICAgICBpZiAoIXRocmVh
ZF9sb2NhbF9jYWNoZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zZXQoTlVMTCk7CisKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiWyVk
XSBUTEMgJXAgZ2V0dGluZyBkZXN0cm95ZWRcbiIsIGdldHBpZCgpLCB0aHJlYWRfbG9jYWxfY2Fj
aGUpOwogICAgIGRlc3Ryb3kodGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2Rl
KTsKLQotICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2V0KE5VTEwpOwogfQogCiBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9zbG93KHBhc19oZWFw
X2NvbmZpZyogY29uZmlnLApAQCAtMjYwLDYgKzMwNSw3IEBAIHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVzdWx0IHBhc190aHJlYWRfbG8KICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
ICAgICAKICAgICBwYXNfaGVhcF9sb2NrX2xvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9s
ZF9tb2RlKTsKKyAgICBwYXNfbG9ja19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNj
YXZlbmdlcl9sb2NrKTsKICAgICAKICAgICBQQVNfQVNTRVJUKGRlc2lyZWRfYWxsb2NhdG9yX2lu
ZGV4IDwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9hbGxvY2F0b3JfaW5kZXgp
OwogCkBAIC0zMTgsNyArMzY0LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3Ro
cmVhZF9sbwogICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IGRlc2lyZWRfaW5kZXhfdXBw
ZXJfYm91bmQpCiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgbmV3X3RocmVhZF9sb2Nh
bF9jYWNoZSk7CisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29t
bWl0X2FuZF9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIG5ld190aHJlYWRfbG9jYWxfY2FjaGUpOwog
ICAgIH0KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpAQCAtMzI3LDYgKzM3Myw3IEBAIHBh
c19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0IHBhc190aHJlYWRfbG8KICAgICBpZiAodGhyZWFkX2xv
Y2FsX2NhY2hlICE9IG5ld190aHJlYWRfbG9jYWxfY2FjaGUpCiAgICAgICAgIGRlYWxsb2NhdGUo
dGhyZWFkX2xvY2FsX2NhY2hlKTsKIAorICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2Fs
X2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2tf
Y29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogICAgIGlmICh0aHJlYWRfbG9j
YWxfY2FjaGUgIT0gbmV3X3RocmVhZF9sb2NhbF9jYWNoZSkKQEAgLTMzOCw2ICszODUsOTIgQEAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlc2lyZWRfYWxsb2Nh
dG9yX2luZGV4KSk7CiB9CiAKK2Jvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9pc19jb21taXR0
ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2lu
X2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KQoreworICAgIHVpbnRw
dHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAgIHVpbnRwdHJfdCBlbmRfcGFnZV9pbmRleDsKKyAg
ICB1aW50cHRyX3QgcGFnZV9pbmRleDsKKworICAgIGNvbXB1dGVfcGFnZV9pbmRpY2VzKGJlZ2lu
X2FsbG9jYXRvcl9pbmRleCwgZW5kX2FsbG9jYXRvcl9pbmRleCwgJmJlZ2luX3BhZ2VfaW5kZXgs
ICZlbmRfcGFnZV9pbmRleCk7CisKKyAgICBmb3IgKHBhZ2VfaW5kZXggPSBiZWdpbl9wYWdlX2lu
ZGV4OyBwYWdlX2luZGV4IDwgZW5kX3BhZ2VfaW5kZXg7ICsrcGFnZV9pbmRleCkgeworICAgICAg
ICBpZiAoIXBhc19iaXR2ZWN0b3JfZ2V0KHRocmVhZF9sb2NhbF9jYWNoZS0+cGFnZXNfY29tbWl0
dGVkLCBwYWdlX2luZGV4KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2NvbXB1dGVfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlKAorICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICBwYXNfYWxsb2Nh
dG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRleCwKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4
IGVuZF9hbGxvY2F0b3JfaW5kZXgpCit7CisgICAgdWludHB0cl90IGJlZ2luX3BhZ2VfaW5kZXg7
CisgICAgdWludHB0cl90IGVuZF9wYWdlX2luZGV4OworICAgIHVpbnRwdHJfdCBwYWdlX2luZGV4
OworICAgIHBhc19yYW5nZSBhbGxvY2F0b3JfcmFuZ2U7CisgICAgcGFzX2RlY29tbWl0X2V4Y2x1
c2lvbl9yYW5nZSByZXN1bHQ7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIGFs
bG9jYXRvcl9yYW5nZSA9IHBhc19yYW5nZV9jcmVhdGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9v
ZmZzZXRfb2ZfYWxsb2NhdG9yKGJlZ2luX2FsbG9jYXRvcl9pbmRleCksCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX29mZnNldF9v
Zl9hbGxvY2F0b3IoZW5kX2FsbG9jYXRvcl9pbmRleCkpOworICAgIHJlc3VsdC5zdGFydF9vZl9w
b3NzaWJsZV9kZWNvbW1pdCA9IGFsbG9jYXRvcl9yYW5nZS5iZWdpbjsKKyAgICByZXN1bHQuZW5k
X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gYWxsb2NhdG9yX3JhbmdlLmVuZDsKKworICAgIGNvbXB1
dGVfcGFnZV9pbmRpY2VzKGJlZ2luX2FsbG9jYXRvcl9pbmRleCwgZW5kX2FsbG9jYXRvcl9pbmRl
eCwgJmJlZ2luX3BhZ2VfaW5kZXgsICZlbmRfcGFnZV9pbmRleCk7CisKKyAgICBwYWdlX3NpemVf
c2hpZnQgPSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0KCk7CisKKyAgICBmb3IgKHBh
Z2VfaW5kZXggPSBiZWdpbl9wYWdlX2luZGV4OyBwYWdlX2luZGV4IDwgZW5kX3BhZ2VfaW5kZXg7
ICsrcGFnZV9pbmRleCkgeworICAgICAgICBpZiAoIXBhc19iaXR2ZWN0b3JfZ2V0KHRocmVhZF9s
b2NhbF9jYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2luZGV4KSkgeworICAgICAgICAgICAg
cmVzdWx0LnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gUEFTX01BWCgKKyAgICAgICAgICAg
ICAgICByZXN1bHQuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAg
UEFTX01JTigKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3JhbmdlLmVuZCwKKyAgICAg
ICAgICAgICAgICAgICAgKHBhZ2VfaW5kZXggKyAxKSA8PCBwYWdlX3NpemVfc2hpZnQpKTsKKyAg
ICAgICAgICAgIHJlc3VsdC5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBQQVNfTUlOKAorICAg
ICAgICAgICAgICAgIHJlc3VsdC5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQsCisgICAgICAgICAg
ICAgICAgUEFTX01BWCgKKyAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3JhbmdlLmJlZ2lu
LAorICAgICAgICAgICAgICAgICAgICBwYWdlX2luZGV4IDw8IHBhZ2Vfc2l6ZV9zaGlmdCkpOwor
ICAgICAgICB9CisgICAgfQorCisgICAgUEFTX0FTU0VSVCghcGFzX2RlY29tbWl0X2V4Y2x1c2lv
bl9yYW5nZV9pc19lbXB0eShyZXN1bHQpKTsKKworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3Zv
aWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0dGVkKHBhc190aHJlYWRfbG9j
YWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2lu
ZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2Fs
bG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KQoreworICAgIHVpbnRwdHJfdCBiZWdp
bl9wYWdlX2luZGV4OworICAgIHVpbnRwdHJfdCBlbmRfcGFnZV9pbmRleDsKKyAgICB1aW50cHRy
X3QgcGFnZV9pbmRleDsKKworICAgIGNvbXB1dGVfcGFnZV9pbmRpY2VzKGJlZ2luX2FsbG9jYXRv
cl9pbmRleCwgZW5kX2FsbG9jYXRvcl9pbmRleCwgJmJlZ2luX3BhZ2VfaW5kZXgsICZlbmRfcGFn
ZV9pbmRleCk7CisKKyAgICBmb3IgKHBhZ2VfaW5kZXggPSBiZWdpbl9wYWdlX2luZGV4OyBwYWdl
X2luZGV4IDwgZW5kX3BhZ2VfaW5kZXg7ICsrcGFnZV9pbmRleCkgeworICAgICAgICBpZiAocGFz
X2JpdHZlY3Rvcl9nZXQodGhyZWFkX2xvY2FsX2NhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2Vf
aW5kZXgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIAorICAgICAgICBwYXNfbG9j
a19hc3NlcnRfaGVsZCgmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7
CisgICAgICAgIAorICAgICAgICAvKiBEb24ndCBhdHRlbXB0IHRvIGRvIGZhbmN5IHRoaW5ncyB3
aXRoIHNwYW5zIGZvciBjb21taXQsIHNpbmNlIHdlJ3JlIG5vIGxvbmdlciByZWFsbHkKKyAgICAg
ICAgICAgb3B0aW1pemluZyBmb3Igc3ltbWV0cmljIGNvbW1pdCBhbnl3YXkuICovCisgICAgICAg
IHBhc19wYWdlX21hbGxvY19jb21taXRfd2l0aG91dF9tcHJvdGVjdCgKKyAgICAgICAgICAgIChj
aGFyKil0aHJlYWRfbG9jYWxfY2FjaGUgKyAocGFnZV9pbmRleCA8PCBwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50X3NoaWZ0KCkpLAorICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVu
dCgpLAorICAgICAgICAgICAgcGFzX21heV9tbWFwKTsKKworICAgICAgICBwYXNfYml0dmVjdG9y
X3NldCh0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwgcGFnZV9pbmRleCwgdHJ1
ZSk7CisgICAgfQorfQorCiBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdAogcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2lmX2Nhbl9zZXRfY2FjaGVfZm9yX3Bvc3Np
Ymx5X3VuaW5pdGlhbGl6ZWRfaW5kZXhfc2xvdygKICAgICB1bnNpZ25lZCBhbGxvY2F0b3JfaW5k
ZXgsCkBAIC0zNTIsNiArNDg1LDM3IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2Fs
X2FsbG9jYXQKICAgICAgICAgcGFzX2xvY2tfaXNfbm90X2hlbGQpOwogfQogCitwYXNfYWxsb2Nh
dG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxv
Y2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9p
ZCogYWxsb2NhdG9yKQoreworICAgIHVpbnRwdHJfdCBjYWNoZV9hZGRyZXNzOworICAgIHVpbnRw
dHJfdCBhbGxvY2F0b3JfYWRkcmVzczsKKyAgICB1aW50cHRyX3QgYmVnaW5fYWxsb2NhdG9yczsK
KyAgICB1aW50cHRyX3QgZW5kX2FsbG9jYXRvcnM7CisgICAgdWludHB0cl90IG9mZnNldDsKKyAg
ICB1aW50cHRyX3QgaW5kZXg7CisKKyAgICBjYWNoZV9hZGRyZXNzID0gKHVpbnRwdHJfdCljYWNo
ZTsKKyAgICBhbGxvY2F0b3JfYWRkcmVzcyA9ICh1aW50cHRyX3QpYWxsb2NhdG9yOworCisgICAg
YmVnaW5fYWxsb2NhdG9ycyA9IGNhY2hlX2FkZHJlc3MgKyBQQVNfT0ZGU0VUT0YocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZSwgbG9jYWxfYWxsb2NhdG9ycyk7CisgICAgZW5kX2FsbG9jYXRvcnMgPSBi
ZWdpbl9hbGxvY2F0b3JzICsgc2l6ZW9mKHVpbnQ2NF90KSAqIGNhY2hlLT5hbGxvY2F0b3JfaW5k
ZXhfdXBwZXJfYm91bmQ7CisKKyAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hZGRyZXNzID49IGJl
Z2luX2FsbG9jYXRvcnMpOworICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2FkZHJlc3MgPCBlbmRf
YWxsb2NhdG9ycyk7CisKKyAgICBvZmZzZXQgPSBhbGxvY2F0b3JfYWRkcmVzcyAtIGJlZ2luX2Fs
bG9jYXRvcnM7CisKKyAgICBQQVNfQVNTRVJUKHBhc19pc19hbGlnbmVkKG9mZnNldCwgc2l6ZW9m
KHVpbnQ2NF90KSkpOworICAgIAorICAgIGluZGV4ID0gb2Zmc2V0IC8gc2l6ZW9mKHVpbnQ2NF90
KTsKKworICAgIFBBU19BU1NFUlQoaW5kZXggPCBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVy
X2JvdW5kKTsKKworICAgIFBBU19BU1NFUlQoKHBhc19hbGxvY2F0b3JfaW5kZXgpaW5kZXggPT0g
aW5kZXgpOworICAgIHJldHVybiAocGFzX2FsbG9jYXRvcl9pbmRleClpbmRleDsKK30KKwogdm9p
ZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyhwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tf
aG9sZF9tb2RlKQogewpAQCAtMzYwLDcgKzUyNCw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zdG9wX2xvY2FsX2EKICAgICAvKiBXZSBoYXZlIHRvIGhvbGQgdGhlIGhlYXAgbG9jayB0
byBkbyB0aGluZ3MgdG8gb3VyIGxvY2FsIGFsbG9jYXRvcnMgdW5sZXNzIHdlIGFsc28gc2V0IHRo
ZQogICAgICAgIGlzX2luX3VzZSBiaXQuICovCiAgICAgcGFzX2hlYXBfbG9ja19sb2NrX2NvbmRp
dGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7Ci0gICAgcGFzX2xvY2tfbG9jaygmdGhyZWFk
X2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tfbG9jaygm
dGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAKICAgICBmb3IgKFBB
U19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dF9ub2RlKSkg
ewogICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsKQEAgLTM3MCwx
MSArNTM0LDE0IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2EKICAg
ICAgICAgaWYgKGFsbG9jYXRvcl9pbmRleCA+PSB0aHJlYWRfbG9jYWxfY2FjaGUtPmFsbG9jYXRv
cl9pbmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGlmICgh
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0ZWQobGF5b3V0X25v
ZGUsIHRocmVhZF9sb2NhbF9jYWNoZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKwogICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3AoCiAgICAgICAgICAgICBs
YXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19sb2NrX21vZGVfbG9jaywg
cGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgfQogCi0gICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRf
bG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICBwYXNfbG9ja191bmxvY2so
JnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIHBhc19oZWFw
X2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiB9CiAKQEAg
LTUxNSwxNCArNjgyLDE0IEBAIHByb2Nlc3NfZGVhbGxvY2F0aW9uX2xvZ193aXRoX2NvbmZpZyhw
YXMKICAgICB9CiB9CiAKLXN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGZsdXNoX2RlYWxs
b2NhdGlvbl9sb2coCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBmbHVzaF9kZWFsbG9j
YXRpb25fbG9nX3dpdGhvdXRfcmVzZXR0aW5nKAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fbW9k
ZSBkZWFsbG9jYXRpb25fbW9kZSkKIHsKICAgICBzaXplX3QgaW5kZXg7CiAgICAgcGFzX2xvY2sq
IGhlbGRfbG9jazsKIAotICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQoJnRocmVhZF9s
b2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19sb2NrX3Rlc3Rpbmdf
YXNzZXJ0X2hlbGQoJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwog
ICAgIAogICAgIGluZGV4ID0gdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2lu
ZGV4OwogICAgIGhlbGRfbG9jayA9IE5VTEw7CkBAIC01NTUsMjEgKzcyMiwzMCBAQCBzdGF0aWMg
UEFTX0FMV0FZU19JTkxJTkUgdm9pZCBmbHVzaF9kZWFsCiAKIHN0YXRpYyB2b2lkIGZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUpCiB7Ci0gICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2Nh
dGlvbl9sb2dfaW5kZXgpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBmbHVzaF9kZWFsbG9j
YXRpb25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X2RpcmVjdF9tb2RlKTsKKyAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhvdXRfcmVzZXR0
aW5nKHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVj
dF9tb2RlKTsKIH0KIAotdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2Nh
dGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tf
aG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCitzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUg
dm9pZCBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhfbW9kZSgKKyAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGUsCisgICAgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX21vZGUg
ZGVhbGxvY2F0aW9uX21vZGUpCiB7CiAgICAgaWYgKCF0aHJlYWRfbG9jYWxfY2FjaGUpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+bm9k
ZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNo
ZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogCi0gICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0
aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3X2Nh
Y2hlX21vZGUpOworICAgIHN3aXRjaCAoZGVhbGxvY2F0aW9uX21vZGUpIHsKKyAgICBjYXNlIHBh
c19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9kaXJlY3RfbW9kZToKKyAgICAgICAgLyogSWYgd2Un
cmUgZG9pbmcgYSBkaXJlY3QgZmx1c2ggdGhlbiB0cnkgdG8gc2hhcmUgY29kZSB3aXRoIGZsdXNo
X2RlYWxsb2NhdGlvbl9sb2dfZm9yX3NjYXZlbmdlciwKKyAgICAgICAgICAgd2hpY2ggZG9lcyB0
aGUgc2FtZSB0aGluZyB3ZSB3b3VsZCBkby4gKi8KKyAgICAgICAgZmx1c2hfZGVhbGxvY2F0aW9u
X2xvZ19mb3Jfc2NhdmVuZ2VyKHRocmVhZF9sb2NhbF9jYWNoZSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3RvX3ZpZXdfY2FjaGVfbW9kZToK
KyAgICAgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRob3V0X3Jlc2V0dGluZygKKyAgICAg
ICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3Rv
X3ZpZXdfY2FjaGVfbW9kZSk7CisgICAgICAgIGJyZWFrOworICAgIH0KICAgICAKICAgICB0aHJl
YWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXggPSAwOwogICAgIHRocmVhZF9s
b2NhbF9jYWNoZS0+bnVtX2xvZ2dlZF9ieXRlcyA9IDA7CkBAIC01NzgsMjYgKzc1NCw0NyBAQCB2
b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvCiAgICAgICAgdGhpcyBsb2cu
ICovCiAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5kZWFsbG9jYXRpb25fbG9nX2RpcnR5ID0gdHJ1
ZTsKIAotICAgIHBhc19sb2NrX3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2df
Zmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5v
ZGUtPnNjYXZlbmdlcl9sb2NrKTsKICAgICAKICAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9
PSBwYXNfbG9ja19pc19ub3RfaGVsZCkKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxp
Z2liaWxpdHlfaWZfbmVlZGVkKCk7CiB9CiAKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
bHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2Nh
bF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAgIGZsdXNo
X2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9tb2RlKAorICAgICAgICB0aHJlYWRfbG9jYWxfY2FjaGUs
IGhlYXBfbG9ja19ob2xkX21vZGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl90b192aWV3
X2NhY2hlX21vZGUpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVh
bGxvY2F0aW9uX2xvZ19kaXJlY3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2Fs
X2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKQoreworICAg
IGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9tb2RlKAorICAgICAgICB0aHJlYWRfbG9jYWxf
Y2FjaGUsIGhlYXBfbG9ja19ob2xkX21vZGUsIHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9k
aXJlY3RfbW9kZSk7Cit9CisKICNpZiBQQVNfT1MoREFSV0lOKQogCi1zdGF0aWMgdm9pZCBzdXNw
ZW5kKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQorc3RhdGljIHZvaWQgc3VzcGVuZChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwgYm9vbCogZGlkX3N1c3BlbmQpCiB7CiAgICAg
c3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogCiAgICAgcHRocmVhZF90IHRocmVh
ZDsKICAgICBtYWNoX3BvcnRfdCBtYWNoX3RocmVhZDsKICAgICBrZXJuX3JldHVybl90IHJlc3Vs
dDsKKworICAgIGlmICgqZGlkX3N1c3BlbmQpCisgICAgICAgIHJldHVybjsKKworICAgICpkaWRf
c3VzcGVuZCA9IHRydWU7CiAgICAgCiAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHByaW50Zigi
U3VzcGVuZGluZyBUTEMgJXAgd2l0aCB0aHJlYWQgJXAuXG4iLCBjYWNoZSwgY2FjaGUtPnRocmVh
ZCk7CiAKICAgICB0aHJlYWQgPSBjYWNoZS0+dGhyZWFkOworICAgIFBBU19BU1NFUlQodGhyZWFk
KTsKKyAgICAKICAgICBpZiAodGhyZWFkID09IHB0aHJlYWRfc2VsZigpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTYxOCw3ICs4MTUsMTIgQEAgc3RhdGljIHZvaWQgc3VzcGVuZChwYXNfdGhyZWFk
X2xvY2FsX2NhYwogCiBzdGF0aWMgdm9pZCByZXN1bWUocGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
Y2FjaGUpCiB7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAog
ICAgIGtlcm5fcmV0dXJuX3QgcmVzdWx0OworCisgICAgaWYgKHZlcmJvc2UpCisgICAgICAgIHBh
c19sb2coIlJlc3VtaW5nIFRMQyAlcCB3aXRoIHRocmVhZCAlcC5cbiIsIGNhY2hlLCBjYWNoZS0+
dGhyZWFkKTsKICAgICAKICAgICBpZiAoY2FjaGUtPnRocmVhZCA9PSBwdGhyZWFkX3NlbGYoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNjMwLDEzICs4MzIsMTcxIEBAIHN0YXRpYyB2b2lkIHJlc3Vt
ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2gKIAogI2VuZGlmCiAKLWJvb2wgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRvcl9h
Y3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVhbGxvY2F0
b3Jfc2NhdmVuZ2VfYWN0aW9uIGRlYWxsb2NhdG9yX2FjdGlvbikKK3N0YXRpYyB2b2lkIGRlY29t
bWl0X2FsbG9jYXRvcl9yYW5nZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIGJlZ2luX2xheW91dF9ub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVpbnRwdHJfdCBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5kX29mX3Bvc3NpYmxlX2Rl
Y29tbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgZW5kX2xheW91dF9ub2RlKQoreworI2lmIFBBU19PUyhE
QVJXSU4pCisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAg
IHVpbnRwdHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAgIHVpbnRwdHJfdCBlbmRfcGFnZV9pbmRl
eDsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGlubmVyX25vZGU7Cisg
ICAgdWludHB0cl90IHBhZ2VfaW5kZXg7CisgICAgc2l6ZV90IHBhZ2Vfc2l6ZTsKKyAgICBzaXpl
X3QgcGFnZV9zaXplX3NoaWZ0OworICAgIHBhc19yYW5nZSBkZWNvbW1pdF9yYW5nZTsKKworICAg
IHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKKyAgICBwYXNfbG9ja19hc3NlcnRfaGVsZCgm
Y2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKKworICAgIHBhZ2Vfc2l6ZSA9IHBhc19wYWdl
X21hbGxvY19hbGlnbm1lbnQoKTsKKyAgICBwYWdlX3NpemVfc2hpZnQgPSBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50X3NoaWZ0KCk7CisgICAgCisgICAgYmVnaW5fcGFnZV9pbmRleCA9IHBhc19y
b3VuZF91cF90b19wb3dlcl9vZl8yKAorICAgICAgICBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dCwgcGFnZV9zaXplKSA+PiBwYWdlX3NpemVfc2hpZnQ7CisgICAgZW5kX3BhZ2VfaW5kZXggPSBl
bmRfb2ZfcG9zc2libGVfZGVjb21taXQgPj4gcGFnZV9zaXplX3NoaWZ0OworCisgICAgaWYgKGJl
Z2luX3BhZ2VfaW5kZXggPj0gZW5kX3BhZ2VfaW5kZXgpCisgICAgICAgIHJldHVybjsKKworICAg
IGRlY29tbWl0X3JhbmdlID0gcGFzX3JhbmdlX2NyZWF0ZShiZWdpbl9wYWdlX2luZGV4IDw8IHBh
Z2Vfc2l6ZV9zaGlmdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5k
X3BhZ2VfaW5kZXggPDwgcGFnZV9zaXplX3NoaWZ0KTsKKworICAgIGlmIChiZWdpbl9sYXlvdXRf
bm9kZSkgeworICAgICAgICBmb3IgKGlubmVyX25vZGUgPSBiZWdpbl9sYXlvdXRfbm9kZTsKKyAg
ICAgICAgICAgICBpbm5lcl9ub2RlICE9IGVuZF9sYXlvdXRfbm9kZTsKKyAgICAgICAgICAgICBp
bm5lcl9ub2RlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfbmV4dChp
bm5lcl9ub2RlKSkKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfcHJlcGFyZV90b19kZWNvbW1pdChpbm5lcl9ub2RlLCBjYWNoZSwgZGVjb21taXRfcmFuZ2Up
OworICAgIH0KKyAgICAKKyAgICBmb3IgKHBhZ2VfaW5kZXggPSBiZWdpbl9wYWdlX2luZGV4OyBw
YWdlX2luZGV4IDwgZW5kX3BhZ2VfaW5kZXg7ICsrcGFnZV9pbmRleCkgeworICAgICAgICBQQVNf
QVNTRVJUKHBhc19iaXR2ZWN0b3JfZ2V0KGNhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5k
ZXgpKTsKKyAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwg
cGFnZV9pbmRleCwgZmFsc2UpOworICAgIH0KKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBw
YXNfbG9nKCJEZWNvbW1pdHRpbmcgJXAuLi4lcFxuIiwgKHZvaWQqKWRlY29tbWl0X3JhbmdlLmJl
Z2luLCAodm9pZCopZGVjb21taXRfcmFuZ2UuZW5kKTsKKworICAgIHBhc19wYWdlX21hbGxvY19k
ZWNvbW1pdF93aXRob3V0X21wcm90ZWN0KAorICAgICAgICAoY2hhciopY2FjaGUgKyBkZWNvbW1p
dF9yYW5nZS5iZWdpbiwgcGFzX3JhbmdlX3NpemUoZGVjb21taXRfcmFuZ2UpLCBwYXNfbWF5X21t
YXApOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgcGFzX2xvZygiTnVtIGNvbW1pdHRl
ZCBwYWdlcyBpbiB0aGUgcmFuZ2Ugd2UganVzdCBkZWNvbW1pdHRlZDogJXp1XG4iLAorICAgICAg
ICAgICAgICAgIHBhc19jb3VudF9jb21taXR0ZWRfcGFnZXMoCisgICAgICAgICAgICAgICAgICAg
IChjaGFyKiljYWNoZSArIGRlY29tbWl0X3JhbmdlLmJlZ2luLAorICAgICAgICAgICAgICAgICAg
ICBwYXNfcmFuZ2Vfc2l6ZShkZWNvbW1pdF9yYW5nZSksCisgICAgICAgICAgICAgICAgICAgICZw
YXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWcpKTsKKyAgICB9Cisj
ZWxzZSAvKiBQQVNfT1MoREFSV0lOKSAtPiBzbyAhUEFTX09TKERBUldJTikgKi8KKyAgICBQQVNf
VU5VU0VEX1BBUkFNKGNhY2hlKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGJlZ2luX2xheW91dF9u
b2RlKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0KTsK
KyAgICBQQVNfVU5VU0VEX1BBUkFNKGVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgUEFT
X1VOVVNFRF9QQVJBTShlbmRfbGF5b3V0X25vZGUpOworI2VuZGlmIC8qIFBBU19PUyhEQVJXSU4p
IC0+IHNvIGVuZCBvZiAhUEFTX09TKERBUldJTikgKi8KK30KKworc3RhdGljIHZvaWQgc3RvcF9h
bGxvY2F0b3IocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbiBhbGxvY2F0b3JfYWN0aW9u
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0
b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGJvb2wqIHJlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wqIGRpZF9z
dXNwZW5kKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsKICAgICAK
KyAgICBpZiAoYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX3JlcXVl
c3Rfc3RvcF9hY3Rpb24pIHsKKyAgICAgICAgdWludDhfdCBzaG91bGRfc3RvcF9jb3VudDsKKyAg
ICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFz
X2xvZygiRG9pbmcgdGhlIHJlcXVlc3QgdGhpbmd5LlxuIik7CisgICAgICAgICAgICAgICAgICAg
IAorICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmRpcnR5KSB7CisgICAgICAgICAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZGlydHkuXG4iKTsKKyAg
ICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLT5kaXJ0eSA9IGZhbHNlOworICAgICAgICAgICAgKnJl
c3VsdCA9IHRydWU7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICAv
KiBCYWlsIG91dCBpZiBpdCdzIG5vIGxvbmdlciBhY3RpdmUuICovCisgICAgICAgIGlmIChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQoc2NhdmVuZ2VyX2RhdGEp
KSB7CisgICAgICAgICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJJ
dCB3YXMgZW1wdHkuXG4iKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAg
ICAgIHNob3VsZF9zdG9wX2NvdW50ID0gc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50
OworICAgICAgICBpZiAoc2hvdWxkX3N0b3BfY291bnQgPCBwYXNfbG9jYWxfYWxsb2NhdG9yX3No
b3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKSB7CisgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0
YS0+c2hvdWxkX3N0b3BfY291bnQgPSArK3Nob3VsZF9zdG9wX2NvdW50OworICAgICAgICAgICAg
ICAgICAgICAgICAgCisgICAgICAgICAgICBQQVNfQVNTRVJUKHNob3VsZF9zdG9wX2NvdW50Cisg
ICAgICAgICAgICAgICAgICAgICAgIDw9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3Bf
Y291bnRfZm9yX3N1c3BlbmQpOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAg
ICBwYXNfYml0dmVjdG9yX3NldChjYWNoZS0+c2hvdWxkX3N0b3BfYml0dmVjdG9yLCBhbGxvY2F0
b3JfaW5kZXgsIHRydWUpOworICAgICAgICAgICAgY2FjaGUtPnNob3VsZF9zdG9wX3NvbWUgPSB0
cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAqcmVzdWx0ID0gdHJ1
ZTsKKyAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICAgICAgcGFzX2xvZygiVG9sZCBpdCB0byBzdG9wLlxuIik7CisgICAgICAgICAg
ICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgUEFTX0FTU0VSVChzaG91bGRfc3RvcF9jb3VudAorICAgICAg
ICAgICAgICAgICAgID09IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9y
X3N1c3BlbmQpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAg
ICAgcGFzX2xvZygiRG9pbmcgYWN0dWFsIHN0b3AuXG4iKTsKKyAgICAgICAgICAgICAgICAgICAg
CisgICAgICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2FjdGlvbiA9PSBwYXNfYWxsb2NhdG9yX3Nj
YXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uKTsKKyAgICB9CisKKyAgICBpZiAocGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKHNjYXZlbmdlcl9kYXRhKSkgeworICAg
ICAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBlbXB0eS5cbiIp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisjaWYgUEFTX09TKERBUldJTikKKyAgICBpZiAo
dmVyYm9zZSkKKyAgICAgICAgcGFzX2xvZygiTmVlZCB0byBzdXNwZW5kIGZvciBhbGxvY2F0b3Ig
JXBcbiIsIHNjYXZlbmdlcl9kYXRhKTsKKworICAgIHN1c3BlbmQoY2FjaGUsIGRpZF9zdXNwZW5k
KTsKKworICAgIFBBU19BU1NFUlQoKmRpZF9zdXNwZW5kKTsKKyAgICAgICAgICAgICAgICAKKyAg
ICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmlzX2luX3VzZSkgeworICAgICAgICAqcmVzdWx0ID0gdHJ1
ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwor
CisgICAgUEFTX0FTU0VSVCghc2NhdmVuZ2VyX2RhdGEtPmlzX2luX3VzZSk7CisKKyAgICBpZiAo
IHZlcmJvc2UpCisgICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9jYXRvciAlcCB3aGlsZSBz
dXNwZW5kZWRcbiIsIHNjYXZlbmdlcl9kYXRhKTsKKyAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgKKyAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNf
bG9ja19sb2NrX21vZGVfdHJ5X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQorICAgICAgICAqcmVz
dWx0ID0gdHJ1ZTsKKyNlbmRpZgorfQorCitib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9y
X2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbiBhbGxvY2F0b3JfYWN0aW9uLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdl
X2FjdGlvbiBkZWFsbG9jYXRvcl9hY3Rpb24pCit7CiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9ub2RlKiBub2RlOwogICAgIGJvb2wgcmVzdWx0OworICAgIHNpemVfdCBwYWdlX3NpemU7Cisg
ICAgc2l6ZV90IHBhZ2Vfc2l6ZV9zaGlmdDsKKworICAgIHBhZ2Vfc2l6ZSA9IHBhc19wYWdlX21h
bGxvY19hbGlnbm1lbnQoKTsKKyAgICBwYWdlX3NpemVfc2hpZnQgPSBwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50X3NoaWZ0KCk7CiAKICAgICAvKiBTZXQgdGhpcyB0byB0cnVlIGlmIHdlIGVuY291
bnRlciBhIHNpdHVhdGlvbiB3aGVyZSB3ZSB0aGluayB0aGF0IG1vcmUgbWVtb3J5IGNvdWxkCiAg
ICAgICAgYmUgcmV0dXJuZWQgaWYgdGhpcyB3YXMgY2FsbGVkIGFnYWluLiAqLwpAQCAtNjY4LDcg
KzEwMjgsNyBAQCBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfCiAgICAg
ICAgIGlmICghY2FjaGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBwYXNfbG9j
a19sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgICAgIHBhc19sb2NrX2xvY2soJm5v
ZGUtPnNjYXZlbmdlcl9sb2NrKTsKIAogICAgICAgICBzd2l0Y2ggKGRlYWxsb2NhdG9yX2FjdGlv
bikgewogICAgICAgICBjYXNlIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb246CkBA
IC02OTAsMTQgKzEwNTAsMjUgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwo
cGFzXwogICAgICAgICBpZiAoYWxsb2NhdG9yX2FjdGlvbiAhPSBwYXNfYWxsb2NhdG9yX3NjYXZl
bmdlX25vX2FjdGlvbikgewogICAgICAgICAgICAgYm9vbCBkaWRfc3VzcGVuZDsKICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbGF5b3V0X25vZGU7CisgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGJlZ2luX2xheW91dF9u
b2RlOworICAgICAgICAgICAgdWludHB0cl90IHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0Owor
ICAgICAgICAgICAgdWludHB0cl90IGJlZ2luX3BhZ2VfaW5kZXg7CisgICAgICAgICAgICB1aW50
cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAgICAgICAgICB1aW50cHRyX3QgcGFnZV9pbmRleDsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgZGlkX3N1c3BlbmQgPSBmYWxzZTsKIAotICAgICAg
ICAgICAgUEFTX1VOVVNFRF9QQVJBTShkaWRfc3VzcGVuZCk7CisgICAgICAgICAgICBiZWdpbl9s
YXlvdXRfbm9kZSA9IE5VTEw7CisgICAgICAgICAgICBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dCA9CisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2ZfYWxs
b2NhdG9yKFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1fSU5ESUNFUyk7CisKKyAg
ICAgICAgICAgIFBBU19BU1NFUlQoIWRpZF9zdXNwZW5kKTsKIAogICAgICAgICAgICAgZm9yIChQ
QVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRfbm9kZSkp
IHsKICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRvcl9pbmRleDsK
KyAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGVuZF9hbGxvY2F0b3JfaW5kZXg7
CiAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogc2Nh
dmVuZ2VyX2RhdGE7CisgICAgICAgICAgICAgICAgcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5n
ZSBkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2U7CiAKICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jf
aW5kZXggPQogICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CkBAIC03MDUs
OTEgKzEwNzYsNzYgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzXwog
ICAgICAgICAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9p
bmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAKLSAgICAgICAg
ICAgICAgICBzY2F2ZW5nZXJfZGF0YSA9IChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhKilwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNh
Y2hlLCBhbGxvY2F0b3JfaW5kZXgpOwotCi0gICAgICAgICAgICAgICAgaWYgKGFsbG9jYXRvcl9h
Y3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uKSB7Ci0g
ICAgICAgICAgICAgICAgICAgIHVpbnQ4X3Qgc2hvdWxkX3N0b3BfY291bnQ7Ci0gICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sb2coIkRvaW5nIHRoZSByZXF1ZXN0IHRoaW5neS5cbiIpOwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNjYXZlbmdlcl9kYXRh
LT5kaXJ0eSkgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGRpcnR5LlxuIik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0YS0+ZGlydHkgPSBmYWxzZTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgIC8q
IEJhaWwgb3V0IGlmIGl0J3Mgbm8gbG9uZ2VyIGFjdGl2ZS4gKi8KLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2ZShzY2F2
ZW5nZXJfZGF0YSkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBlbXB0eS5cbiIpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBlbmRfYWxsb2NhdG9yX2luZGV4ID0KKyAgICAgICAgICAgICAgICAgICAg
YWxsb2NhdG9yX2luZGV4ICsgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9udW1f
YWxsb2NhdG9yX2luZGljZXMobGF5b3V0X25vZGUpOwogCi0gICAgICAgICAgICAgICAgICAgIHNo
b3VsZF9zdG9wX2NvdW50ID0gc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50OwotICAg
ICAgICAgICAgICAgICAgICBpZiAoc2hvdWxkX3N0b3BfY291bnQgPCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9zdXNwZW5kKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0b3BfY291bnQgPSArK3Nob3VsZF9zdG9wX2Nv
dW50OwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBQ
QVNfQVNTRVJUKHNob3VsZF9zdG9wX2NvdW50Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIDw9IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3Bl
bmQpOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgICAgICBw
YXNfYml0dmVjdG9yX3NldChjYWNoZS0+c2hvdWxkX3N0b3BfYml0dmVjdG9yLCBhbGxvY2F0b3Jf
aW5kZXgsIHRydWUpOwotICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUtPnNob3VsZF9zdG9w
X3NvbWUgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAg
ICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAgICAgICAgCi0gICAgICAg
ICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfbG9nKCJUb2xkIGl0IHRvIHN0b3AuXG4iKTsKLSAgICAgICAgICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAgICAgc2Nh
dmVuZ2VyX2RhdGEgPSAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSopCisgICAg
ICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICAgICAgCisgICAg
ICAgICAgICAgICAgZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9jb21wdXRlX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSgKKyAgICAgICAgICAgICAgICAg
ICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgZW5kX2FsbG9jYXRvcl9pbmRleCk7CisgICAgICAg
ICAgICAgICAgUEFTX0FTU0VSVChzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPD0gZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLnN0YXJ0X29mX3Bv
c3NpYmxlX2RlY29tbWl0KTsKKyAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHN0YXJ0X29mX3Bv
c3NpYmxlX2RlY29tbWl0CisgICAgICAgICAgICAgICAgICAgICAgICAgICA8PSBkZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UuZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0KTsKKyAgICAgICAgICAgICAg
ICBpZiAocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19jb250aWd1b3VzKGRlY29tbWl0
X2V4Y2x1c2lvbl9yYW5nZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgc3RvcF9hbGxvY2F0b3Io
CisgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZSwgYWxsb2NhdG9yX2FjdGlvbiwgYWxsb2Nh
dG9yX2luZGV4LCBzY2F2ZW5nZXJfZGF0YSwgJnJlc3VsdCwgJmRpZF9zdXNwZW5kKTsKKworICAg
ICAgICAgICAgICAgICAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19zdG9wcGVkKHNjYXZlbmdlcl9kYXRhKSkgeworICAgICAgICAgICAgICAgICAgICAgICAgaWYg
KCFiZWdpbl9sYXlvdXRfbm9kZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWdpbl9s
YXlvdXRfbm9kZSA9IGxheW91dF9ub2RlOworICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSB7
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYygKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJlZ2luX2xheW91dF9ub2RlKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICA8IGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICAgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkZWNv
bW1pdF9leGNsdXNpb25fcmFuZ2UgPQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19k
ZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfY3JlYXRlX2ludmVydGVkKGRlY29tbWl0X2V4Y2x1c2lv
bl9yYW5nZSk7CiAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgCi0g
ICAgICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoc2hvdWxkX3N0b3BfY291bnQKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9w
X2NvdW50X2Zvcl9zdXNwZW5kKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAg
ICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2co
IkRvaW5nIGFjdHVhbCBzdG9wLlxuIik7Ci0gICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICBQQVNfQVNTRVJUKGFsbG9jYXRvcl9hY3Rpb24gPT0gcGFzX2FsbG9jYXRvcl9z
Y2F2ZW5nZV9mb3JjZV9zdG9wX2FjdGlvbik7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICAgICAgaWYgKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX2FjdGl2
ZShzY2F2ZW5nZXJfZGF0YSkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0g
ICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4iKTsKLSAgICAg
ICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICAgfQogCi0jaWYgUEFTX09T
KERBUldJTikKLSAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvZygiTmVlZCB0byBzdXNwZW5kIGZvciBhbGxvY2F0b3IgJXBcbiIsIHNjYXZlbmdl
cl9kYXRhKTsKLSAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoIWRpZF9zdXNw
ZW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgIHN1c3BlbmQoY2FjaGUpOwotICAgICAgICAgICAg
ICAgICAgICBkaWRfc3VzcGVuZCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIAotICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+aXNfaW5fdXNlKSB7
Ci0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0gICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgICAgIGlmIChwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jh
bmdlX2lzX2ludmVydGVkKGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgZGVjb21taXRfYWxsb2NhdG9yX3JhbmdlKAorICAgICAgICAgICAgICAgICAgICAg
ICAgY2FjaGUsIGJlZ2luX2xheW91dF9ub2RlLCBzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCwK
KyAgICAgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5lbmRfb2Zf
cG9zc2libGVfZGVjb21taXQsIGxheW91dF9ub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgc3Rh
cnRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Uuc3RhcnRf
b2ZfcG9zc2libGVfZGVjb21taXQ7CisgICAgICAgICAgICAgICAgICAgIGJlZ2luX2xheW91dF9u
b2RlID0gTlVMTDsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKLSAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiU3RvcHBpbmcgYWxsb2NhdG9yICVw
IHdoaWxlIHN1c3BlbmRlZFxuIiwgc2NhdmVuZ2VyX2RhdGEpOwotICAgICAgICAgICAgICAgIGlm
ICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKAotICAgICAgICAgICAg
ICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEsIHBhc19sb2NrX2xvY2tfbW9kZV90cnlfbG9jaywg
cGFzX2xvY2tfaXNfaGVsZCkpCi0gICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHRydWU7Ci0j
ZW5kaWYKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAogI2lmIFBBU19PUyhEQVJXSU4pCiAg
ICAgICAgICAgICBpZiAoZGlkX3N1c3BlbmQpCiAgICAgICAgICAgICAgICAgcmVzdW1lKGNhY2hl
KTsKICNlbmRpZgorCisgICAgICAgICAgICBiZWdpbl9wYWdlX2luZGV4ID0KKyAgICAgICAgICAg
ICAgICBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMihzdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1p
dCwgcGFnZV9zaXplKQorICAgICAgICAgICAgICAgID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICAg
ICAgICAgIGVuZF9wYWdlX2luZGV4ID0KKyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3NpemVfZm9yX2FsbG9jYXRvcl9pbmRleF9jYXBhY2l0eShjYWNoZS0+YWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KQorICAgICAgICAgICAgICAgID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKwor
ICAgICAgICAgICAgZm9yIChwYWdlX2luZGV4ID0gYmVnaW5fcGFnZV9pbmRleDsgcGFnZV9pbmRl
eCA8IGVuZF9wYWdlX2luZGV4OyArK3BhZ2VfaW5kZXgpIHsKKyAgICAgICAgICAgICAgICBpZiAo
IXBhc19iaXR2ZWN0b3JfZ2V0KGNhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5kZXgpKSB7
CisgICAgICAgICAgICAgICAgICAgIGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNhY2hlLCBiZWdpbl9sYXlvdXRfbm9kZSwgc3RhcnRfb2ZfcG9zc2li
bGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlX2luZGV4IDw8IHBhZ2Vf
c2l6ZV9zaGlmdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dF9ub2RlKTsKKyAgICAg
ICAgICAgICAgICAgICAgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPSAocGFnZV9pbmRleCAr
IDEpIDw8IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICAgICAgICAgICAgICAgICAgYmVnaW5fbGF5b3V0
X25vZGUgPSBOVUxMOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgZGVjb21taXRfYWxsb2NhdG9yX3JhbmdlKAorICAgICAgICAgICAg
ICAgIGNhY2hlLCBiZWdpbl9sYXlvdXRfbm9kZSwgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQs
CisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0
b3JfaW5kZXhfY2FwYWNpdHkoY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSksCisgICAg
ICAgICAgICAgICAgbGF5b3V0X25vZGUpOwogICAgICAgICB9CiAgICAgICAgIAotICAgICAgICBw
YXNfbG9ja191bmxvY2soJm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICAgICAgcGFzX2xvY2tf
dW5sb2NrKCZub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAgfQogICAgIAogICAgIHBhc19oZWFw
X2xvY2tfdW5sb2NrKCk7CkBAIC04MTgsNyArMTE3NCw3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9zaHJpbmsocGFzX3QKIHsKICAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZSkKICAg
ICAgICAgcmV0dXJuOwotICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0
aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19ob2xkX21vZGUpOworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19kaXJlY3QodGhyZWFk
X2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3N0b3BfbG9jYWxfYWxsb2NhdG9ycyh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9j
a19ob2xkX21vZGUpOwogICAgIGlmIChoZWFwX2xvY2tfaG9sZF9tb2RlID09IHBhc19sb2NrX2lz
X25vdF9oZWxkKQogICAgICAgICBwYXNfc2NhdmVuZ2VyX25vdGlmeV9lbGlnaWJpbGl0eV9pZl9u
ZWVkZWQoKTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJwYXNfYWxsb2NhdG9y
X2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24uaCIKICNp
bmNsdWRlICJwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgiCisjaW5jbHVkZSAicGFz
X2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oIgogI2luY2x1ZGUgInBhc19mYXN0X3Rscy5oIgog
I2luY2x1ZGUgInBhc19pbnRlcm5hbF9jb25maWcuaCIKICNpbmNsdWRlICJwYXNfbG9jYWxfYWxs
b2NhdG9yLmgiCkBAIC0zOCw3ICszOSw5IEBACiAjaW5jbHVkZSA8cHRocmVhZC5oPgogCiAjaWYg
ZGVmaW5lZChfX2hhc19pbmNsdWRlKSAmJiBfX2hhc19pbmNsdWRlKDxwdGhyZWFkL3ByaXZhdGUu
aD4pCitQQVNfQkVHSU5fRVhURVJOX0M7CiAjaW5jbHVkZSA8cHRocmVhZC9wcml2YXRlLmg+CitQ
QVNfRU5EX0VYVEVSTl9DOwogI2RlZmluZSBQQVNfSEFWRV9QVEhSRUFEX1BSSVZBVEUgMQogI2Vs
c2UKICNkZWZpbmUgUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRFIDAKQEAgLTgxLDYgKzg0LDcgQEAg
c3RydWN0IHBhc190aHJlYWRfbG9jYWxfY2FjaGUgewogICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbm9kZSogbm9kZTsKIAogICAgIHVuc2lnbmVkKiBzaG91bGRfc3RvcF9iaXR2ZWN0b3I7Cisg
ICAgdW5zaWduZWQqIHBhZ2VzX2NvbW1pdHRlZDsgLyogVGhpcyBpcyBhIGJpdHZlY3RvciwgcHJv
dGVjdGVkIGJ5IHRoZSBzY2F2ZW5nZXIgbG9jay4gKi8KICAgICAKICAgICBwdGhyZWFkX3QgdGhy
ZWFkOwogICAgIApAQCAtMTgwLDYgKzE4NCw0MCBAQCBQQVNfQVBJIHBhc19sb2NhbF9hbGxvY2F0
b3JfcmVzdWx0IHBhc190CiAgICAgdW5zaWduZWQgYWxsb2NhdG9yX2luZGV4LAogICAgIHBhc19s
b2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAorc3RhdGljIFBBU19BTFdBWVNf
SU5MSU5FIHVpbnRwdHJfdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX29mZnNldF9vZl9hbGxvY2F0
b3IocGFzX2FsbG9jYXRvcl9pbmRleCBpbmRleCkKK3sKKyAgICByZXR1cm4gUEFTX09GRlNFVE9G
KHBhc190aHJlYWRfbG9jYWxfY2FjaGUsIGxvY2FsX2FsbG9jYXRvcnMpICsgKHVpbnRwdHJfdClp
bmRleCAqIHNpemVvZih1aW50NjRfdCk7Cit9CisKK1BBU19BUEkgYm9vbCBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2lzX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9j
YWxfY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0b3JfaW5kZXgsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBlbmRfYWxsb2NhdG9yX2luZGV4KTsKKworLyogUmV0dXJucyBhIGRlc2NyaXB0aW9uIG9mIHdo
YXQgcGFydHMgb2YgdGhlIGFsbG9jYXRvciBhcmUgYXZhaWxhYmxlIGZvciBkZWNvbW1pdCwgaW4g
dGhlIHNlbnNlIHRoYXQgdGhleQorICAgYXJlIGNvbW1pdHRlZCBhbmQgYXJlIGxlZ2FsIHRvIGRl
Y29tbWl0LiBUaGUgdmFsdWVzIGluIHRoZSByYW5nZSBhcmUgb2Zmc2V0cyBmcm9tIHRoZSBiYXNl
IG9mIHRoZSBjYWNoZS4KKyAgIAorICAgSWYgdGhpcyBhbGxvY2F0b3IgaXMgdG90YWxseSBjb21t
aXR0ZWQ6IHdlJ2xsIGdldCBhIGNvbnRpZ3VvdXMgcmFuZ2Ugd2l0aCBzdGFydCA9IHN0YXJ0IG9m
IGFsbG9jYXRvciwgZW5kCisgICA9IGVuZCBvZiBhbGxvY2F0b3IuCisgICAKKyAgIElmIHRoaXMg
YWxsb2NhdG9yIGlzIHBhcnRseSBkZWNvbW1pdHRlZDogd2UnbGwgZ2V0IGFuIGludmVydGVkIHJh
bmdlIHdpdGggc3RhcnQgPSB0aGUgZmlyc3QgYnl0ZSBhZnRlciB0aGUKKyAgIGxhc3QgZGVjb21t
aXR0ZWQgYnl0ZSBpbiB0aGUgcGFnZSwgZW5kID0gdGhlIGZpcnN0IGRlY29tbWl0dGVkIGJ5dGUg
aW4gdGhlIHBhZ2UuCisKKyAgIFNvIGVpdGhlciBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
X2lzX2NvbnRpZ3VvdXMoKSBvciAhcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9pc19pbnZl
cnRlZCgpIHRlbGxzCisgICB1cyBpZiB0aGUgYWxsb2NhdG9yIGlzIGNvbW1pdHRlZC4gSXQncyBp
bXBvc3NpYmxlIGZvciB0aGUgcmV0dXJuZWQgcmFuZ2UgdG8gYmUgZW1wdHkuICovCitQQVNfQVBJ
IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9jb21w
dXRlX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSgKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxv
Y2F0b3JfaW5kZXgsCisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4
KTsKKworLyogTXVzdCBob2xkIHRoZSBzY2F2ZW5nZXJfbG9jayBpZiB0aGlzIGlzIGNhbGxlZCBh
bmQgdGhlcmUgaXMgc29tZXRoaW5nIHRvIGNvbW1pdC4gKi8KK1BBU19BUEkgdm9pZCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Vuc3VyZV9jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
dGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRl
eCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KTsKKworUEFTX0FQSSB2b2lk
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGlkX3JlY29tbWl0X2FjY2lkZW50YWxseShwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGVu
ZF9hbGxvY2F0b3JfaW5kZXgpOworCiBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCoKIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3Rfd2l0aG91dF9h
bnlfY2hlY2tzX3doYXRzb2V2ZXIoCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFk
X2xvY2FsX2NhY2hlLApAQCAtMzEzLDYgKzM1MSw5IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X2xvY2FsX2FsbG9jYXQKICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9pbmRleCwgcGFzX2xv
Y2tfaXNfbm90X2hlbGQpOwogfQogCitQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRvcihwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGFsbG9j
YXRvcik7CisKIFBBU19BUEkgdW5zaWduZWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbnVt
X2FsbG9jYXRvcnMocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpOwogCiBQQVNfQVBJIHZv
aWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnMoCkBAIC0zMjcs
NiArMzY4LDkgQEAgUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcAogUEFT
X0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZygK
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCiAgICAgcGFz
X2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOworUEFTX0FQSSB2b2lkIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19kaXJlY3QoCisgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19sb2NrX2hv
bGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKIAogLyogUmV0dXJucyB0cnVlIGlmIGl0J3Mg
cG9zc2libGUgdGhhdCB3ZSdsbCBiZSBhYmxlIHRvIHJldHVybiBtb3JlIG1lbW9yeSBpZiB0aGlz
IHdhcyBjYWxsZWQKICAgIGFnYWluLiAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dC5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw2ICs0MCwxMCBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHBhc190CiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2xhc3Rfbm9kZSA9IE5VTEw7CiBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4ID0KICAgICBQQVNfTE9DQUxf
QUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVM7CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9oYXNodGFibGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxl
X2luc3RhbmNlID0KKyAgICBQQVNfSEFTSFRBQkxFX0lOSVRJQUxJWkVSOworCitQQVNfREVGSU5F
X0xPQ0socGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlKTsKIAogcGFzX2Fs
bG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfbm9kZShwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CkBAIC00Nyw2ICs1MSw3IEBA
IHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKIAogICAgIHBhc19hbGxv
Y2F0b3JfaW5kZXggcmVzdWx0OwogICAgIGJvb2wgZGlkX292ZXJmbG93OworICAgIHBhc19jb21w
YWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBjb21wYWN0X25vZGU7CiAKICAgICBw
YXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAKQEAgLTcyLDEyICs3NywxMiBAQCBwYXNfYWxs
b2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAgICAgaWYgKHZlcmJvc2UpIHsKICAg
ICAgICAgcGFzX2xvZygicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGU6IG5v
ZGUgPSAlcCwgYWxsb2NhdG9yX2luZGV4ID0gJXUsICIKICAgICAgICAgICAgICAgICAibnVtX2Fs
bG9jYXRvcl9pbmRpY2VzID0gJXVcbiIsCi0gICAgICAgICAgICAgICAgbm9kZSwgcmVzdWx0LCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMobm9kZSkp
OworICAgICAgICAgICAgICAgIG5vZGUsIHJlc3VsdCwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9udW1fYWxsb2NhdG9yX2luZGljZXMobm9kZSkpOwogICAgIH0KIAogICAgIGRp
ZF9vdmVyZmxvdyA9IF9fYnVpbHRpbl9hZGRfb3ZlcmZsb3coCiAgICAgICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25leHRfYWxsb2NhdG9yX2luZGV4LAotICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMobm9kZSksCisgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRp
Y2VzKG5vZGUpLAogICAgICAgICAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4dF9h
bGxvY2F0b3JfaW5kZXgpOwogICAgIFBBU19BU1NFUlQoIWRpZF9vdmVyZmxvdyk7CiAKQEAgLTk0
LDYgKzk5LDEzIEBAIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWMKICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zZXRfbmV4dChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUsIG5vZGUpOwogICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9sYXN0X25vZGUgPSBub2RlOwogICAgIH0KKworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9sb2NrX2xvY2soKTsKKyAgICBw
YXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcmUoJmNvbXBhY3Rf
bm9kZSwgbm9kZSk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxl
X2FkZF9uZXcoCisgICAgICAgICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFi
bGVfaW5zdGFuY2UsIGNvbXBhY3Rfbm9kZSwKKyAgICAgICAgTlVMTCwgJnBhc19sYXJnZV91dGls
aXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZyk7CisgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfaGFzaHRhYmxlX2xvY2tfdW5sb2NrKCk7CiAgICAgCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KQEAgLTEzNCw0ICsxNDYsMTYgQEAgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhy
ZWFkX2xvY2FsX2NhYwogICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9h
ZGRfbm9kZShwYXNfd3JhcF9sb2NhbF92aWV3X2NhY2hlX25vZGUoY2FjaGVfbm9kZSkpOwogfQog
CitwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2dldF9ub2RlX2Zvcl9pbmRleChwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4KQor
eworICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBjb21wYWN0
X25vZGU7CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9j
a19sb2NrKCk7CisgICAgY29tcGFjdF9ub2RlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfaGFzaHRhYmxlX2dldCgKKyAgICAgICAgJnBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2hhc2h0YWJsZV9pbnN0YW5jZSwgaW5kZXgpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2hhc2h0YWJsZV9sb2NrX3VubG9jaygpOworCisgICAgcmV0dXJuIHBhc19jb21wYWN0
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZjb21wYWN0X25vZGUpOworfQor
CiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXQuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaAkod29ya2luZyBjb3B5KQpA
QCAtMjgsNiArMjgsOSBAQAogCiAjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgogI2lu
Y2x1ZGUgInBhc19jb25maWcuaCIKKyNpbmNsdWRlICJwYXNfaGFzaHRhYmxlLmgiCisjaW5jbHVk
ZSAicGFzX2xvY2suaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9l
bnRyeS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIK
ICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMzYsNiArMzksMTYgQEAgUEFTX0JFR0lOX0VY
VEVSTl9DOwogUEFTX0FQSSBleHRlcm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9maXJzdF9ub2RlOwogUEFTX0FQSSBleHRl
cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9sYXN0X25vZGU7CiAKK1BBU19DUkVBVEVfSEFTSFRBQkxFKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LAorICAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5KTsKKworLyogTG9jayB1c2VkIGludGVybmFs
bHkgZm9yIGFjY2Vzc2luZyB0aGUgaGFzaHRhYmxlX2luc3RhbmNlLiBZb3UgZG9uJ3QgaGF2ZSB0
byB1c2UgdGhpcyBsb2NrIHVubGVzcyB5b3UKKyAgIGFjY2VzcyB0aGUgaGFzaHRhYmxlX2luc3Rh
bmNlIGRpcmVjdGx5LiAqLworUEFTX0RFQ0xBUkVfTE9DSyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9oYXNodGFibGUpOworCitQQVNfQVBJIGV4dGVybiBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9oYXNodGFibGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRh
YmxlX2luc3RhbmNlOworCiAvKiBDbGllbnRzIGNhbiB1c2UgdGhpcyB0byBmb3JjZSB0aGUgbmV4
dCBjYWxsIHRvIGFkZCB0byBnbyB0byB0aGlzIGluZGV4LiAqLwogUEFTX0FQSSBleHRlcm4gcGFz
X2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9j
YXRvcl9pbmRleDsKIApAQCAtNTEsNiArNjQsMTAgQEAgUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2lu
ZGV4IHBhc190aHJlYWRfbAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2FkZF92aWV3X2NhY2hlKAogICAgIHBhc19zZWdyZWdhdGVkX3Np
emVfZGlyZWN0b3J5KiBkaXJlY3RvcnkpOwogCisvKiBZb3UgZG9uJ3QgbmVlZCB0byBob2xkIGFu
eSBsb2NrcyB0byB1c2UgdGhpcyBiZWNhdXNlIHRoaXMgdXNlcyBpdHMgb3duIGxvY2sgYmVoaW5k
IHRoZSBzY2VuZXMuICovCitQQVNfQVBJIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZ2V0X25vZGVfZm9yX2luZGV4KAorICAg
IHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpOworCiAjZGVmaW5lIFBBU19USFJFQURfTE9DQUxf
Q0FDSEVfTEFZT1VUX0VBQ0hfQUxMT0NBVE9SKG5vZGUpIFwKICAgICBub2RlID0gcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9kZTsgXAogICAgIG5vZGU7IFwKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2VudHJ5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaAkobm9uZXhpc3RlbnQpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9lbnRyeS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsODggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9FTlRSWV9ICisjZGVmaW5lIFBBU19USFJFQURfTE9DQUxfQ0FD
SEVfTEFZT1VUX0VOVFJZX0gKKworI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXguaCIKKyNp
bmNsdWRlICJwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCIKKwor
UEFTX0JFR0lOX0VYVEVSTl9DOworCit0eXBlZGVmIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeTsKK3R5
cGVkZWYgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9r
ZXk7CisKK3N0YXRpYyBpbmxpbmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfY3JlYXRlX2VtcHR5KHZvaWQpCit7
CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIHJlc3VsdDsK
KyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcmUoJnJl
c3VsdCwgTlVMTCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworc3RhdGljIGlubGluZSBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9lbnRyeV9jcmVhdGVfZGVsZXRlZCh2b2lkKQoreworICAgIHBhc19jb21wYWN0X3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSByZXN1bHQ7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZyZXN1bHQsIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlKSh1aW50cHRyX3QpMSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
Kworc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5
X2lzX2VtcHR5X29yX2RlbGV0ZWQoCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
ZW50cnkgZW50cnkpCit7CisgICAgcmV0dXJuICh1aW50cHRyX3QpcGFzX2NvbXBhY3RfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2xvYWQoJmVudHJ5KSA8PSAodWludHB0cl90KTE7Cit9
CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRy
eV9pc19lbXB0eShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSBlbnRyeSkKK3sK
KyAgICByZXR1cm4gcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lz
X251bGwoJmVudHJ5KTsKK30KKworc3RhdGljIGlubGluZSBib29sIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X2VudHJ5X2lzX2RlbGV0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfZW50cnkgZW50cnkpCit7CisgICAgcmV0dXJuICh1aW50cHRyX3QpcGFzX2NvbXBhY3RfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2xvYWQoJmVudHJ5KSA9PSAodWludHB0cl90KTE7
Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9lbnRyeV9nZXRfa2V5KAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYygKKyAgICAgICAgcGFzX2Nv
bXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2xvYWRfbm9uX251bGwoJmVudHJ5
KSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfa2V5X2dldF9oYXNoKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleSBrZXkp
Cit7CisgICAgcmV0dXJuIHBhc19oYXNoMzIoa2V5KTsKK30KKworc3RhdGljIGlubGluZSBib29s
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleV9pc19lcXVhbChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9rZXkgYSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfa2V5IGIpCit7CisgICAgcmV0dXJuIGEgPT0gYjsKK30KKworUEFTX0VORF9FWFRFUk5fQzsK
KworI2VuZGlmIC8qIFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VOVFJZX0ggKi8KKwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkocmV2aXNpb24g
Mjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBA
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2QKIH0KIAogcGFzX2FsbG9j
YXRvcl9pbmRleAotcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9p
bmRpY2VzKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKK3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSkKIHsKICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OwogCkBAIC0xMzEsOSArMTMxLDExIEBAIHZvaWQgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV8KICAgICBwYXNfY29tcGFjdF9hdG9taWNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKG5leHRfcHRyKG5vZGUpLCBuZXh0
X25vZGUpOwogfQogCi12b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29u
c3RydWN0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogY2FjaGUpCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Y29tbWl0X2FuZF9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBu
b2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQogeworICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZW5zdXJlX2NvbW1pdHRlZChub2RlLCBjYWNoZSk7
CisgICAgCiAgICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVz
ZW50c19hbGxvY2F0b3Iobm9kZSkpIHsKICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25z
dHJ1Y3QoCiAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0b3JfZGlyZWN0X2Zvcl9pbml0aWFsaXphdGlvbigKQEAgLTE1NCwxOSArMTU2LDM0IEBAIHZv
aWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV8KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGZyb21f
Y2FjaGUpCiB7CiAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7CisgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogc2NhdmVuZ2VyX2RhdGE7CiAKKyAg
ICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfaXNfY29tbWl0
dGVkKG5vZGUsIHRvX2NhY2hlKSk7CisgICAgCiAgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMo
bm9kZSk7CiAgICAgCisgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X2lzX2NvbW1pdHRlZChub2RlLCBmcm9tX2NhY2hlKSkgeworICAgICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KG5vZGUsIHRvX2NhY2hl
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAgICAgCisgICAgc2NhdmVuZ2VyX2RhdGEg
PSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGZyb21f
Y2FjaGUsIGFsbG9jYXRvcl9pbmRleCk7CisKKyAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmtpbmQg
PT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kKSB7CisgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29tbWl0X2FuZF9jb25zdHJ1Y3Qobm9kZSwg
dG9fY2FjaGUpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIAogICAgIGlmIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7
CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfbW92ZSgKICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3RfZm9yX2luaXRpYWxpemF0
aW9uKHRvX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpLAotICAgICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChmcm9tX2NhY2hlLCBhbGxvY2F0
b3JfaW5kZXgpKTsKKyAgICAgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9yKilzY2F2ZW5nZXJf
ZGF0YSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBwYXNfbG9jYWxfdmlld19jYWNo
ZV9tb3ZlKAogICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfZGlyZWN0X2Zvcl9pbml0aWFsaXphdGlvbih0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwK
LSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVj
dChmcm9tX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpKTsKKyAgICAgICAgKHBhc19sb2NhbF92aWV3
X2NhY2hlKilzY2F2ZW5nZXJfZGF0YSk7CiB9CiAKIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9zdG9wKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9k
ZSwKQEAgLTE5Myw0ICsyMTAsNTYgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlXwogICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3AoYWxsb2NhdG9yLCBwYWdlX2xv
Y2tfbW9kZSk7CiB9CiAKK2Jvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9p
c19jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9j
YXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5vZGUpOworCisgICAg
cmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfaXNfY29tbWl0dGVkKAorICAgICAgICBjYWNo
ZSwKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4LAorICAgICAgICBhbGxvY2F0b3JfaW5kZXggKyBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0b3JfaW5kaWNlcyhu
b2RlKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9lbnN1
cmVfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKQoreworICAgIHBhc19hbGxvY2F0b3JfaW5kZXgg
YWxsb2NhdG9yX2luZGV4OworCisgICAgYWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7CisK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Vuc3VyZV9jb21taXR0ZWQoCisgICAgICAgIGNh
Y2hlLAorICAgICAgICBhbGxvY2F0b3JfaW5kZXgsCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCAr
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2Vz
KG5vZGUpKTsKK30KKwordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3By
ZXBhcmVfdG9fZGVjb21taXQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2Rl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcmFuZ2UgZGVjb21t
aXRfcmFuZ2UpCit7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3JfaW5kZXg7Cisg
ICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9yX2luZGV4OworICAgIHBhc19yYW5n
ZSBhbGxvY2F0b3JfcmFuZ2U7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YSogc2NhdmVuZ2VyX2RhdGE7CisKKyAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKG5vZGUsIGNhY2hlKSk7CisKKyAgICBhbGxvY2F0
b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0
b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsKKyAgICBlbmRfYWxsb2NhdG9yX2luZGV4ID0gYWxsb2Nh
dG9yX2luZGV4ICsgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9udW1fYWxsb2Nh
dG9yX2luZGljZXMobm9kZSk7CisgICAgYWxsb2NhdG9yX3JhbmdlID0gcGFzX3JhbmdlX2NyZWF0
ZSgKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2ZfYWxsb2NhdG9yKGFs
bG9jYXRvcl9pbmRleCksCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29m
X2FsbG9jYXRvcihlbmRfYWxsb2NhdG9yX2luZGV4KSk7CisKKyAgICBpZiAoIXBhc19yYW5nZV9v
dmVybGFwcyhhbGxvY2F0b3JfcmFuZ2UsIGRlY29tbWl0X3JhbmdlKSkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIHNjYXZlbmdlcl9kYXRhID0gKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqKQorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxv
Y2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworCisgICAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9wcmVwYXJlX3RvX2RlY29tbWl0KHNjYXZlbmdlcl9kYXRh
KTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgInBhc19h
bGxvY2F0b3JfaW5kZXguaCIKICNpbmNsdWRlICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc19y
YW5nZS5oIgogI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfa2lu
ZC5oIgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCkBAIC0xMzksNyArMTQwLDcgQEAgUEFTX0FQ
SSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfZ2V0X2RpcmVjdG9yeShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5vZGUpOwogCiBQQVNfQVBJIHBhc19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X251bV9hbGxvY2F0b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUpOworcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZV9udW1fYWxsb2NhdG9yX2luZGljZXMocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBub2RlKTsKIAogc3RhdGljIGlubGluZSBib29sCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX3JlcHJlc2VudHNfYWxsb2NhdG9yKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSkKQEAgLTE3Niw4ICsxNzcsOCBAQCBQQVNfQVBJIHZvaWQKIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQocGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZSBub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5leHRfbm9kZSk7CiAK
LVBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbnN0cnVj
dChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZSogY2FjaGUpOworUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGVfY29tbWl0X2FuZF9jb25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2Fj
aGUpOwogCiBQQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9t
b3ZlKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdG9fY2FjaGUsCkBAIC0xODgsNiArMTg5LDE0IEBAIFBBU19BUEkgdm9pZCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW8KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKK1BBU19BUEkgYm9vbCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSog
Y2FjaGUpOworUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
ZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3ByZXBhcmVfdG9fZGVjb21taXQocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlIGRlY29tbWl0X3Jh
bmdlKTsKKwogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19USFJFQURfTE9DQUxf
Q0FDSEVfTEFZT1VUX05PREVfSCAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmMJ
KHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCSh3b3JraW5nIGNvcHkpCkBAIC02OSw3ICs2OSw3
IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSogcGFzX3RocmVhZF8KICAgICAgICAgcmVz
dWx0LT5uZXh0ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlX2ZpcnN0OwogCiAgICAgICAg
IHBhc19sb2NrX2NvbnN0cnVjdCgmcmVzdWx0LT5wYWdlX2xvY2spOwotICAgICAgICBwYXNfbG9j
a19jb25zdHJ1Y3QoJnJlc3VsdC0+bG9nX2ZsdXNoX2xvY2spOworICAgICAgICBwYXNfbG9ja19j
b25zdHJ1Y3QoJnJlc3VsdC0+c2NhdmVuZ2VyX2xvY2spOwogCiAgICAgICAgIGlmICh2ZXJib3Nl
KQogICAgICAgICAgICAgcGFzX2xvZygiVExDIHBhZ2UgbG9jazogJXBcbiIsICZyZXN1bHQtPnBh
Z2VfbG9jayk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX25vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuaAkocmV2aXNpb24gMjg5
NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9ub2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgc3RydWN0IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZSB7CiAgICAgCiAgICAgcGFzX2xvY2sgcGFnZV9sb2Nr
OwogICAgIAotICAgIHBhc19sb2NrIGxvZ19mbHVzaF9sb2NrOworICAgIHBhc19sb2NrIHNjYXZl
bmdlcl9sb2NrOwogICAgIAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOwogfTsK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVf
aW50cmluc2ljLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWMu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDcgKzE0OCw4IEBAIHBhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljX2ltcGxfY2FzdWFsX2MKIAogICAgICAgICBhbGxvY2F0b3IgPSAocGFzX2xvY2FsX2Fs
bG9jYXRvciopYWxsb2NhdG9yX3Jlc3VsdC5hbGxvY2F0b3I7CiAKLSAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKCFhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2Jq
ZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplKTsKKyAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFh
bGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVkIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0g
YWxpZ25lZF9zaXplCisgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBhbGxvY2F0b3ItPnNj
YXZlbmdlcl9kYXRhLmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5k
KTsKICAgICAKICAgICAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQgb3V0IGluIHRo
ZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFuZAogICAgICAg
ICAgICBhbGlnbm1lbnQgYmVpbmcgdGhlIGNvbnN0YW50IDEuICovCkBAIC0yNDQsNyArMjQ1LDgg
QEAgcGFzX3RyeV9hbGxvY2F0ZV9pbnRyaW5zaWNfaW1wbF9pbmxpbmVfbwogICAgIFBBU19URVNU
SU5HX0FTU0VSVCgKICAgICAgICAgIWFsbG9jYXRvcl9yZXN1bHQuZGlkX3N1Y2NlZWQKICAgICAg
ICAgfHwgYWxsb2NhdG9yLT5vYmplY3Rfc2l6ZSA+PSBhbGlnbmVkX3NpemUKLSAgICAgICAgfHwg
YWxsb2NhdG9yLT5jb25maWdfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5k
X3Vuc2VsZWN0ZWQpOworICAgICAgICB8fCBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID09IHBhc19s
b2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfdW5zZWxlY3RlZAorICAgICAgICB8fCBhbGxvY2F0
b3ItPnNjYXZlbmdlcl9kYXRhLmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRl
ZF9raW5kKTsKICAgICAKICAgICAvKiBUaGlzIHNob3VsZCBiZSBzcGVjaWFsaXplZCBvdXQgaW4g
dGhlIG5vbi1hbGlnbm1lbnQgY2FzZSBiZWNhdXNlIG9mIEFMV0FZU19JTkxJTkUgYW5kCiAgICAg
ICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwpJbmRleDogU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbGl0eV9oZWFwX2Nv
bmZpZy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdXRpbGl0eV9oZWFwX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsNiAr
MTU1LDcgQEAgUEFTX0FQSSB2b2lkIHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2R1bQogICAgICAg
ICAuYWxpZ25lZF9hbGxvY2F0b3IgPSBOVUxMLCBcCiAgICAgICAgIC5hbGlnbmVkX2FsbG9jYXRv
cl90YWxrc190b19zaGFyaW5nX3Bvb2wgPSBmYWxzZSwgXAogICAgICAgICAuZGVhbGxvY2F0b3Ig
PSBOVUxMLCBcCisgICAgICAgIC5tbWFwX2NhcGFiaWxpdHkgPSBwYXNfbWF5X21tYXAsIFwKICAg
ICAgICAgLnJvb3RfZGF0YSA9IE5VTEwsIFwKICAgICAgICAgLnByZXBhcmVfdG9fZW51bWVyYXRl
ID0gTlVMTCwgXAogICAgICAgICAuZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5ID0gcGFz
X3V0aWxpdHlfaGVhcF9jb25maWdfZm9yX2VhY2hfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LCBcCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdXRpbHMuaAkocmV2
aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0
aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTkyMyw2ICs5MjMsMTAgQEAgc3RhdGljIGlubGluZSBi
b29sIHBhc19pc19kaXZpc2libGVfYnkodQogZW51bSBjcHBfaW5pdGlhbGl6YXRpb25fdCB7IGNw
cF9pbml0aWFsaXphdGlvbiB9OwogI2VuZGlmCiAKKyNkZWZpbmUgUEFTX1NZU0NBTEwoeCkgZG8g
eyBcCisgICAgd2hpbGUgKCh4KSA9PSAtMSAmJiBlcnJubyA9PSBFQUdBSU4pIHsgfSBcCit9IHdo
aWxlICgwKQorCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX1VUSUxTX0ggKi8K
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3Jhbmdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Zp
cnR1YWxfcmFuZ2UuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3ZpcnR1YWxfcmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNyw2ICsyNyw3
IEBACiAjZGVmaW5lIFBBU19WSVJUVUFMX1JBTkdFX0gKIAogI2luY2x1ZGUgInBhc19sb2NrLmgi
CisjaW5jbHVkZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgInBhc19yYW5nZS5o
IgogI2luY2x1ZGUgInBhc191dGlscy5oIgogCkBAIC00MSwyMiArNDIsMjUgQEAgc3RydWN0IHBh
c192aXJ0dWFsX3JhbmdlIHsKICAgICB1aW50cHRyX3QgYmVnaW47CiAgICAgdWludHB0cl90IGVu
ZDsKICAgICBwYXNfbG9jayogbG9ja19wdHI7CisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFw
X2NhcGFiaWxpdHk7CiB9OwogCiBzdGF0aWMgaW5saW5lIHBhc192aXJ0dWFsX3JhbmdlIHBhc192
aXJ0dWFsX3JhbmdlX2NyZWF0ZSh1aW50cHRyX3QgYmVnaW4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50cHRyX3QgZW5kLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2xvY2sqIGxvY2tfcHRyKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2sqIGxvY2tfcHRyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0
eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgcGFzX3ZpcnR1YWxfcmFuZ2UgcmVzdWx0OwogICAg
IHJlc3VsdC5iZWdpbiA9IGJlZ2luOwogICAgIHJlc3VsdC5lbmQgPSBlbmQ7CiAgICAgcmVzdWx0
LmxvY2tfcHRyID0gbG9ja19wdHI7CisgICAgcmVzdWx0Lm1tYXBfY2FwYWJpbGl0eSA9IG1tYXBf
Y2FwYWJpbGl0eTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCiBzdGF0aWMgaW5saW5lIHBhc192
aXJ0dWFsX3JhbmdlIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZV9lbXB0eSh2b2lkKQogewotICAg
IHJldHVybiBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoMCwgMCwgTlVMTCk7CisgICAgcmV0dXJu
IHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZSgwLCAwLCBOVUxMLCBwYXNfbWF5X25vdF9tbWFwKTsK
IH0KIAogc3RhdGljIGlubGluZSBwYXNfcmFuZ2UgcGFzX3ZpcnR1YWxfcmFuZ2VfZ2V0X3Jhbmdl
KHBhc192aXJ0dWFsX3JhbmdlIHJhbmdlKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L0xhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy90ZXN0L0xhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHAJKHJldmlzaW9u
IDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQ
b29sVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNyArMTQyLDggQEAgdm9pZCB0ZXN0
R29vZENvYWxlc2NlRXBvY2hVcGRhdGUoKQogICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwogICAg
IHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgICAgICBwYXNfcmFuZ2VfY3Jl
YXRlKDEwICogUEcsIDIwICogUEcpLAotICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xv
Y2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2Fs
X21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAg
cGFzX21heV9tbWFwKTsKICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogCiAgICAgYXNzZXJ0
U3RhdGUoeyBSYW5nZSgwLCAxMCAqIFBHLCBwYXNfY29tbWl0dGVkLCAxMCAqIFBHLCAwKSwKQEAg
LTE1Miw3ICsxNTMsOCBAQCB2b2lkIHRlc3RHb29kQ29hbGVzY2VFcG9jaFVwZGF0ZSgpCiAgICAg
cGFzX2hlYXBfbG9ja19sb2NrKCk7CiAgICAgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9ib290X2Zy
ZWUoCiAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUoMjAgKiBQRywgMzAgKiBQRyksCi0gICAgICAg
IHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xv
Y2spOworICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3Jh
bmdlX2NvbW1vbl9sb2NrLAorICAgICAgICBwYXNfbWF5X21tYXApOwogICAgIHBhc19oZWFwX2xv
Y2tfdW5sb2NrKCk7CiAKICAgICBhc3NlcnRTdGF0ZSh7IFJhbmdlKDAsIDEwICogUEcsIHBhc19j
b21taXR0ZWQsIDEwICogUEcsIDApLApAQCAtMTY0LDcgKzE2Niw4IEBAIHZvaWQgdGVzdEdvb2RD
b2FsZXNjZUVwb2NoVXBkYXRlKCkKICAgICBDSEVDSyhwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Fs
bG9jYXRlX2FuZF9jb21taXQoCiAgICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUoMTAgKiBQ
RywgMzAgKiBQRyksCiAgICAgICAgICAgICAgICZ0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9j
aykpOworICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0
dWFsX3JhbmdlX2NvbW1vbl9sb2NrLAorICAgICAgICAgICAgICBwYXNfbWF5X21tYXApKTsKICAg
ICBwYXNfaGVhcF9sb2NrX3VubG9jaygpOwogICAgIAogICAgIGlmICh2ZXJib3NlKQpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L01lbWFsaWduVGVzdHMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRlc3RzLmNwcAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTWVtYWxpZ25U
ZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIK
KworI2lmIFBBU19FTkFCTEVfQk1BTExPQworCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisj
aW5jbHVkZSAiYm1hbGxvY19oZWFwX2NvbmZpZy5oIgorI2luY2x1ZGUgInBhc19oZWFwLmgiCisj
aW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxpbmVzLmgiCisjaW5jbHVkZSAicGFzX3Nl
Z3JlZ2F0ZWRfdmlldy5oIgorCituYW1lc3BhY2UgeworCit2b2lkIHRlc3RNZW1hbGlnbkFycmF5
KHNpemVfdCBzaXplLCBzaXplX3QgdHlwZVNpemUsIHNpemVfdCB0eXBlQWxpZ25tZW50KQorewor
ICAgIGJtYWxsb2NfdHlwZSB0eXBlID0gQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKHN0YXRpY19j
YXN0PHVuc2lnbmVkPih0eXBlU2l6ZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGVBbGlnbm1lbnQpLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ0ZXN0Iik7
CisgICAgcGFzX2hlYXBfcmVmIGhlYXBSZWYgPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVS
KCZ0eXBlKTsKKyAgICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXc7CisgICAgcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKKworICAgIHZvaWQqIHB0ciA9IGJtYWxsb2Nf
aXNvX2FsbG9jYXRlX3plcm9lZF9hcnJheV9ieV9zaXplKCZoZWFwUmVmLCBzaXplKTsKKyAgICBD
SEVDSyhwdHIpOworCisgICAgdmlldyA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZm9yX29iamVjdChy
ZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSwgJmJtYWxsb2NfaGVhcF9jb25maWcpOwor
ICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZp
ZXcpOworCisgICAgQ0hFQ0tfRVFVQUwocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9zaXplX2RpcmVjdG9y
eV9mb3Jfc2l6ZSgKKyAgICAgICAgICAgICAgICAgICAgJmJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hl
YXAoJmhlYXBSZWYpLT5zZWdyZWdhdGVkX2hlYXAsCisgICAgICAgICAgICAgICAgICAgIHNpemUs
CisgICAgICAgICAgICAgICAgICAgIEJNQUxMT0NfSEVBUF9DT05GSUcsCisgICAgICAgICAgICAg
ICAgICAgIE5VTEwpLAorICAgICAgICAgICAgICAgIGRpcmVjdG9yeSk7Cit9CisKK30gLy8gYW5v
bnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCisKK3ZvaWQg
YWRkTWVtYWxpZ25UZXN0cygpCit7CisjaWYgUEFTX0VOQUJMRV9CTUFMTE9DCisgICAgQUREX1RF
U1QodGVzdE1lbWFsaWduQXJyYXkoMTUyMywgMTYsIDQpKTsKKyAgICBBRERfVEVTVCh0ZXN0TWVt
YWxpZ25BcnJheSgxNTIzLCAxMjgsIDEyOCkpOworI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExP
QworfQorCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRU
ZXN0cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RM
Q0RlY29tbWl0VGVzdHMuY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvdGVzdC9UTENEZWNvbW1pdFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQ3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpbmNsdWRlICJUZXN0SGFybmVzcy5oIgorCisjaWYgUEFTX0VOQUJMRV9CTUFMTE9DCisK
KyNpbmNsdWRlICJibWFsbG9jX2hlYXAuaCIKKyNpbmNsdWRlICJibWFsbG9jX2hlYXBfY29uZmln
LmgiCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KKyNpbmNsdWRlICJwYXNfYWxsX2hlYXBzLmgiCisj
aW5jbHVkZSAicGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZS5oIgorI2luY2x1ZGUgInBhc19i
aXR2ZWN0b3IuaCIKKyNpbmNsdWRlICJwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oIgorI2lu
Y2x1ZGUgInBhc19nZXRfaGVhcC5oIgorI2luY2x1ZGUgInBhc19nZXRfcGFnZV9iYXNlLmgiCisj
aW5jbHVkZSAicGFzX2hlYXBfbG9jay5oIgorI2luY2x1ZGUgInBhc19zY2F2ZW5nZXIuaCIKKyNp
bmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oIgorI2luY2x1ZGUgPHRocmVh
ZD4KKwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIHsKKworc2l6ZV90IG51bUNv
bW1pdHRlZFBhZ2VzSW5UTEMoKQoreworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAgQ0hFQ0soY2FjaGUpOwor
ICAgIHJldHVybiBwYXNfY291bnRfY29tbWl0dGVkX3BhZ2VzKAorICAgICAgICBjYWNoZSwKKyAg
ICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkoCisgICAgICAgICAgICBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KSwKKyAg
ICAgICAgJmFsbG9jYXRpb25Db25maWcpOworfQorCit2b2lkIHRlc3RUTENEZWNvbW1pdCh1bnNp
Z25lZCBudW1IZWFwcywKKyAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uPGJvb2wodW5zaWdu
ZWQpPiBzaG91bGRTdG9wQWxsb2NhdG9yQXRJbmRleCwKKyAgICAgICAgICAgICAgICAgICAgIGJv
b2wgY29tbWl0V2l0aEZyZWUsCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBudW1Db21t
aXR0ZWRQYWdlc0luaXRpYWxseSwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIG51bUNv
bW1pdHRlZFBhZ2VzQWZ0ZXJEZWNvbW1pdCwKKyAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IG51bUNvbW1pdHRlZFBhZ2VzQWZ0ZXJSZWNvbW1pdCkKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1
c3BlbmQoKTsKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zvcl9z
dXNwZW5kID0gMTAwOyAvKiByZXF1ZXN0X3N0b3Agc2hvdWxkIG5vdCBhY3R1YWxseSBzdG9wLiAq
LworCisgICAgcGFzX2hlYXBfcmVmKiBoZWFwcyA9IG5ldyBwYXNfaGVhcF9yZWZbbnVtSGVhcHNd
OworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gbnVtSGVhcHM7IGluZGV4LS07KQorICAgICAgICBo
ZWFwc1tpbmRleF0gPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKG5ldyBibWFsbG9jX3R5
cGUoQk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDQyLCAyLCAidGVzdCIpKSk7CisKKyAgICB2ZWN0
b3I8dm9pZCo+IG9iamVjdHM7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG51
bUhlYXBzOyArK2luZGV4KSB7CisgICAgICAgIHZvaWQqIHB0ciA9IGJtYWxsb2NfaXNvX2FsbG9j
YXRlKGhlYXBzICsgaW5kZXgpOworICAgICAgICBDSEVDSyhwdHIpOworICAgICAgICBDSEVDS19F
UVVBTChwYXNfZ2V0X2hlYXAocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAg
ICAgICAgICAgYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVhcChoZWFwcyArIGluZGV4KSk7CisgICAg
ICAgIG9iamVjdHMucHVzaF9iYWNrKHB0cik7CisgICAgfQorCisgICAgdW5zaWduZWQqIGhhc1Zp
ZXdDYWNoZSA9IG5ldyB1bnNpZ25lZFtQQVNfQklUVkVDVE9SX05VTV9XT1JEUyhudW1IZWFwcyld
OworICAgIHVuc2lnbmVkKiBoYXNBbGxvY2F0b3IgPSBuZXcgdW5zaWduZWRbUEFTX0JJVFZFQ1RP
Ul9OVU1fV09SRFMobnVtSGVhcHMpXTsKKworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gbnVtSGVh
cHM7IGluZGV4LS07KSB7CisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGhhc1ZpZXdDYWNoZSwg
aW5kZXgsIGZhbHNlKTsKKyAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoaGFzQWxsb2NhdG9yLCBp
bmRleCwgZmFsc2UpOworICAgIH0KKworICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworICAgIHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlf
Z2V0KCk7CisgICAgQ0hFQ0soY2FjaGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbGF5b3V0Tm9kZTsKKyAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZ
T1VUX0VBQ0hfQUxMT0NBVE9SKGxheW91dE5vZGUpKSB7CisgICAgICAgIHBhc19hbGxvY2F0b3Jf
aW5kZXggYWxsb2NhdG9ySW5kZXg7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIHNjYXZlbmdlckRhdGE7CisgICAgICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGly
ZWN0b3J5KiBkaXJlY3Rvcnk7CisgICAgICAgIHBhc19oZWFwKiBoZWFwOworCisgICAgICAgIGFs
bG9jYXRvckluZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxs
b2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0Tm9kZSk7CisKKyAgICAgICAgaWYgKGFsbG9jYXRv
ckluZGV4ID49IGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCisgICAgICAgICAg
ICBicmVhazsKKworICAgICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfaXNfY29tbWl0dGVkKGxheW91dE5vZGUsIGNhY2hlKSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIHNjYXZlbmdlckRhdGEgPSBzdGF0aWNfY2FzdDxwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhKj4oCisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JJbmRleCkpOworCisg
ICAgICAgIGRpcmVjdG9yeSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0
X2RpcmVjdG9yeShsYXlvdXROb2RlKTsKKyAgICAgICAgaGVhcCA9IHBhc19oZWFwX2Zvcl9zZWdy
ZWdhdGVkX2hlYXAoZGlyZWN0b3J5LT5oZWFwKTsKKworICAgICAgICBpZiAoIWhlYXAtPmhlYXBf
cmVmKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGhlYXAtPmhlYXBfcmVm
ID49IGhlYXBzICYmIGhlYXAtPmhlYXBfcmVmIDwgaGVhcHMgKyBudW1IZWFwcykgeworICAgICAg
ICAgICAgc2l6ZV90IGluZGV4ID0gaGVhcC0+aGVhcF9yZWYgLSBoZWFwczsKKworICAgICAgICAg
ICAgaWYgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19hbGxv
Y2F0b3IobGF5b3V0Tm9kZSkpCisgICAgICAgICAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoaGFz
QWxsb2NhdG9yLCBpbmRleCwgdHJ1ZSk7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBQQVNfQVNTRVJUKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVz
ZW50c192aWV3X2NhY2hlKGxheW91dE5vZGUpKTsKKyAgICAgICAgICAgICAgICBwYXNfYml0dmVj
dG9yX3NldChoYXNWaWV3Q2FjaGUsIGluZGV4LCB0cnVlKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgQ0hFQ0soIXBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3Rv
cHBlZChzY2F2ZW5nZXJEYXRhKSk7CisgICAgICAgIH0KKyAgICB9CisgICAgcGFzX2hlYXBfbG9j
a191bmxvY2soKTsKKworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gbnVtSGVhcHM7IGluZGV4LS07
KSB7CisgICAgICAgIENIRUNLKHBhc19iaXR2ZWN0b3JfZ2V0KGhhc1ZpZXdDYWNoZSwgaW5kZXgp
KTsKKyAgICAgICAgQ0hFQ0socGFzX2JpdHZlY3Rvcl9nZXQoaGFzQWxsb2NhdG9yLCBpbmRleCkp
OworICAgIH0KKworICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgbnVt
Q29tbWl0dGVkUGFnZXNJbml0aWFsbHkpOworCisgICAgcGFzX2hlYXBfbG9ja19sb2NrKCk7Cisg
ICAgY2FjaGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKTsKKyAgICBDSEVDSyhj
YWNoZSk7CisgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9D
QVRPUihsYXlvdXROb2RlKSkgeworICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGFsbG9jYXRv
ckluZGV4OworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBzY2F2
ZW5nZXJEYXRhOworCisgICAgICAgIGFsbG9jYXRvckluZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0Tm9kZSk7
CisKKyAgICAgICAgaWYgKGFsbG9jYXRvckluZGV4ID49IGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhf
dXBwZXJfYm91bmQpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBzY2F2ZW5nZXJEYXRh
ID0gc3RhdGljX2Nhc3Q8cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSo+KAorICAg
ICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVj
dChjYWNoZSwgYWxsb2NhdG9ySW5kZXgpKTsKKworICAgICAgICBpZiAoc2hvdWxkU3RvcEFsbG9j
YXRvckF0SW5kZXgoYWxsb2NhdG9ySW5kZXgpKQorICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvcl9zY2F2ZW5nZXJfZGF0YV9zdG9wKHNjYXZlbmdlckRhdGEsIHBhc19sb2NrX2xvY2tfbW9k
ZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKKyAgICB9CisgICAgcGFzX2hlYXBfbG9ja191bmxv
Y2soKTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9y
X3NjYXZlbmdlX3JlcXVlc3Rfc3RvcF9hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pOworCisgICAgQ0hF
Q0tfRVFVQUwobnVtQ29tbWl0dGVkUGFnZXNJblRMQygpLCBudW1Db21taXR0ZWRQYWdlc0FmdGVy
RGVjb21taXQpOworCisgICAgaWYgKGNvbW1pdFdpdGhGcmVlKSB7CisgICAgICAgIGZvciAodm9p
ZCogb2JqZWN0IDogb2JqZWN0cykKKyAgICAgICAgICAgIGJtYWxsb2NfZGVhbGxvY2F0ZShvYmpl
Y3QpOworICAgIH0KKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2hyaW5rKAorICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSwKKyAgICAgICAgcGFzX2xvY2tfaXNf
bm90X2hlbGQpOworCisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG51bUhlYXBz
OyArK2luZGV4KSB7CisgICAgICAgIHZvaWQqIHB0ciA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlKGhl
YXBzICsgaW5kZXgpOworICAgICAgICBDSEVDSyhwdHIpOworICAgICAgICBDSEVDS19FUVVBTChw
YXNfZ2V0X2hlYXAocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAgICAgICAg
ICAgYm1hbGxvY19oZWFwX3JlZl9nZXRfaGVhcChoZWFwcyArIGluZGV4KSk7CisgICAgICAgIGlm
IChjb21taXRXaXRoRnJlZSkKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKHB0ciwgb2JqZWN0c1tp
bmRleF0pOworICAgIH0KKworICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMo
KSwgbnVtQ29tbWl0dGVkUGFnZXNBZnRlclJlY29tbWl0KTsKK30KKwordm9pZCB0ZXN0Q2hhb3NU
aGVuRGVjb21taXQodW5zaWduZWQgbnVtSGVhcHMsIHVuc2lnbmVkIHR5cGVTaXplLCB1bnNpZ25l
ZCBtYXhPYmplY3RzQXRBVGltZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVk
IG1heEZyb21TYW1lSGVhcCwgc2l6ZV90IG1heFNpemUsIHNpemVfdCBjb3VudCkKK3sKKyAgICBz
dGF0aWMgY29uc3RleHByIGJvb2wgdmVyYm9zZSA9IGZhbHNlOworICAgIAorICAgIHBhc19oZWFw
X3JlZiogaGVhcFJlZnMgPSBuZXcgcGFzX2hlYXBfcmVmW251bUhlYXBzXTsKKyAgICBmb3IgKHVu
c2lnbmVkIGluZGV4ID0gbnVtSGVhcHM7IGluZGV4LS07KSB7CisgICAgICAgIGhlYXBSZWZzW2lu
ZGV4XSA9IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgICAgICBuZXcgYm1h
bGxvY190eXBlKEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUih0eXBlU2l6ZSwgMSwgInRlc3QiKSkp
OworICAgIH0KKyAgICAKKyAgICB2ZWN0b3I8dmVjdG9yPHZvaWQqPj4gb2JqZWN0czsKKyAgICBz
aXplX3QgdG90YWxTaXplID0gMDsKKworICAgIHBhc19oZWFwX3JlZiogaGVhcFJlZiA9IG51bGxw
dHI7CisKKyAgICBhdXRvIHNlbGVjdE5leHRIZWFwID0gWyZdICgpIHsKKyAgICAgICAgaGVhcFJl
ZiA9IGhlYXBSZWZzICsgZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcihudW1IZWFwcyk7CisgICAg
fTsKKworICAgIHNlbGVjdE5leHRIZWFwKCk7CisKKyAgICB3aGlsZSAoY291bnQtLSkgeworICAg
ICAgICBpZiAoIW9iamVjdHMuZW1wdHkoKQorICAgICAgICAgICAgJiYgKHRvdGFsU2l6ZSA+PSBt
YXhTaXplCisgICAgICAgICAgICAgICAgfHwgZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcigyKSkp
IHsKKyAgICAgICAgICAgIHVuc2lnbmVkIGluZGV4ID0gZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJl
cihzdGF0aWNfY2FzdDx1bnNpZ25lZD4ob2JqZWN0cy5zaXplKCkpKTsKKyAgICAgICAgICAgIHZl
Y3Rvcjx2b2lkKj4gb2JqZWN0c1RvRnJlZSA9IHN0ZDo6bW92ZShvYmplY3RzW2luZGV4XSk7Cisg
ICAgICAgICAgICBvYmplY3RzW2luZGV4XSA9IHN0ZDo6bW92ZShvYmplY3RzLmJhY2soKSk7Cisg
ICAgICAgICAgICBvYmplY3RzLnBvcF9iYWNrKCk7CisgICAgICAgICAgICBmb3IgKHZvaWQqIG9i
amVjdCA6IG9iamVjdHNUb0ZyZWUpIHsKKyAgICAgICAgICAgICAgICBzaXplX3Qgc2l6ZSA9IGJt
YWxsb2NfZ2V0X2FsbG9jYXRpb25fc2l6ZShvYmplY3QpOworICAgICAgICAgICAgICAgIENIRUNL
X0dSRUFURVJfRVFVQUwodG90YWxTaXplLCBzaXplKTsKKyAgICAgICAgICAgICAgICB0b3RhbFNp
emUgLT0gc2l6ZTsKKyAgICAgICAgICAgICAgICBibWFsbG9jX2RlYWxsb2NhdGUob2JqZWN0KTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHVuc2lnbmVkIG51
bU9iamVjdHNOb3cgPSBkZXRlcm1pbmlzdGljUmFuZG9tTnVtYmVyKG1heE9iamVjdHNBdEFUaW1l
KSArIDE7CisgICAgICAgICAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHNOb3c7CisgICAgICAgICAg
ICB3aGlsZSAobnVtT2JqZWN0c05vdy0tKSB7CisgICAgICAgICAgICAgICAgaWYgKCFkZXRlcm1p
bmlzdGljUmFuZG9tTnVtYmVyKG1heEZyb21TYW1lSGVhcCkpCisgICAgICAgICAgICAgICAgICAg
IHNlbGVjdE5leHRIZWFwKCk7CisgICAgICAgICAgICAgICAgdm9pZCogcHRyID0gYm1hbGxvY19p
c29fYWxsb2NhdGUoaGVhcFJlZik7CisgICAgICAgICAgICAgICAgQ0hFQ0socHRyKTsKKyAgICAg
ICAgICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRyLCBCTUFMTE9DX0hFQVBfQ09O
RklHKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBibWFsbG9jX2hlYXBfcmVmX2dldF9o
ZWFwKGhlYXBSZWYpKTsKKyAgICAgICAgICAgICAgICBvYmplY3RzTm93LnB1c2hfYmFjayhwdHIp
OworICAgICAgICAgICAgICAgIHRvdGFsU2l6ZSArPSBibWFsbG9jX2dldF9hbGxvY2F0aW9uX3Np
emUocHRyKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIG9iamVjdHMucHVzaF9iYWNrKHN0
ZDo6bW92ZShvYmplY3RzTm93KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBwYXNfc2NhdmVu
Z2VyX3N1c3BlbmQoKTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBjb3V0IDw8ICJSdW5u
aW5nIHNjYXZlbmdlci5cbiI7CisgICAgCisgICAgcGFzX3NjYXZlbmdlcl9ydW5fc3luY2hyb25v
dXNseV9ub3coKTsKKworICAgIGlmICh2ZXJib3NlKQorICAgICAgICBjb3V0IDw8ICJEb25lIHJ1
bm5pbmcgc2NhdmVuZ2VyLlxuIjsKKworICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2Vz
SW5UTEMoKSwKKyAgICAgICAgICAgICAgICBwYXNfcm91bmRfdXBfdG9fcG93ZXJfb2ZfMigKKyAg
ICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2ZfYWxsb2Nh
dG9yKFBBU19MT0NBTF9BTExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1fSU5ESUNFUyksCisgICAgICAg
ICAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKSkgPj4gcGFzX3BhZ2VfbWFs
bG9jX2FsaWdubWVudF9zaGlmdCgpKTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOworICAg
IHBhc19hbGxfaGVhcHNfdmVyaWZ5X2luX3N0ZWFkeV9zdGF0ZSgpOworICAgIHBhc19oZWFwX2xv
Y2tfdW5sb2NrKCk7Cit9CisKK3ZlY3Rvcjx2b2lkKj4gcHJlcGFyZVRvVGVzdERMQ0RlY29tbWl0
VGhlblN0dWZmKHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHBhc19oZWFwX3JlZiogaGVhcHMg
PSBuZXcgcGFzX2hlYXBfcmVmW251bUhlYXBzXTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IG51
bUhlYXBzOyBpbmRleC0tOykKKyAgICAgICAgaGVhcHNbaW5kZXhdID0gQk1BTExPQ19IRUFQX1JF
Rl9JTklUSUFMSVpFUigKKyAgICAgICAgICAgIG5ldyBibWFsbG9jX3R5cGUoQk1BTExPQ19UWVBF
X0lOSVRJQUxJWkVSKDUxMiwgNTEyLCAidGVzdCIpKSk7CisKKyAgICB2ZWN0b3I8dm9pZCo+IG9i
amVjdHM7CisgICAgZm9yIChzaXplX3QgaW5kZXggPSAwOyBpbmRleCA8IG51bUhlYXBzOyArK2lu
ZGV4KSB7CisgICAgICAgIHBhc19wYWdlX2Jhc2UqIHBhZ2UgPSBudWxscHRyOworICAgICAgICBm
b3IgKHNpemVfdCBvYmplY3RJbmRleCA9IHBhc19zZWdyZWdhdGVkX3BhZ2VfbnVtYmVyX29mX29i
amVjdHMoCisgICAgICAgICAgICAgICAgIDUxMiwgQk1BTExPQ19IRUFQX0NPTkZJRy5zbWFsbF9z
ZWdyZWdhdGVkX2NvbmZpZywgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9leGNsdXNpdmVfcm9sZSk7Cisg
ICAgICAgICAgICAgb2JqZWN0SW5kZXgtLTspIHsKKyAgICAgICAgICAgIHZvaWQqIHB0ciA9IGJt
YWxsb2NfaXNvX2FsbG9jYXRlKGhlYXBzICsgaW5kZXgpOworICAgICAgICAgICAgQ0hFQ0socHRy
KTsKKyAgICAgICAgICAgIENIRUNLX0VRVUFMKHBhc19nZXRfaGVhcChwdHIsIEJNQUxMT0NfSEVB
UF9DT05GSUcpLAorICAgICAgICAgICAgICAgICAgICAgICAgYm1hbGxvY19oZWFwX3JlZl9nZXRf
aGVhcChoZWFwcyArIGluZGV4KSk7CisgICAgICAgICAgICBwYXNfcGFnZV9iYXNlKiBteVBhZ2Ug
PSBwYXNfZ2V0X3BhZ2VfYmFzZShwdHIsIEJNQUxMT0NfSEVBUF9DT05GSUcpOworICAgICAgICAg
ICAgaWYgKCFwYWdlKSB7CisgICAgICAgICAgICAgICAgb2JqZWN0cy5wdXNoX2JhY2socHRyKTsK
KyAgICAgICAgICAgICAgICBwYWdlID0gbXlQYWdlOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgQ0hFQ0tfRVFVQUwobXlQYWdlLCBwYWdlKTsKKyAgICAgICAgICAgIENIRUNL
X0VRVUFMKHBhc19wYWdlX2Jhc2VfZ2V0X2tpbmQobXlQYWdlKSwgcGFzX3NtYWxsX2V4Y2x1c2l2
ZV9zZWdyZWdhdGVkX3BhZ2Vfa2luZCk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICByZXR1cm4g
b2JqZWN0czsKK30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwodW5zaWdu
ZWQgbnVtSGVhcHMpCit7CisgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzID0gcHJlcGFyZVRvVGVz
dERMQ0RlY29tbWl0VGhlblN0dWZmKG51bUhlYXBzKTsKKworICAgIGZvciAodm9pZCogb2JqZWN0
IDogb2JqZWN0cykKKyAgICAgICAgYm1hbGxvY19kZWFsbG9jYXRlKG9iamVjdCk7CisKKyAgICBD
SEVDS19HUkVBVEVSKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgMSk7CisgICAgQ0hFQ0socGFz
X3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgpOwor
CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxsKHBhc19hbGxvY2F0b3Jfc2NhdmVu
Z2VfZm9yY2Vfc3RvcF9hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBhc19kZWFsbG9jYXRvcl9zY2F2ZW5nZV9ub19hY3Rpb24pOworCisgICAgQ0hFQ0tfRVFVQUwo
bnVtQ29tbWl0dGVkUGFnZXNJblRMQygpLCAxKTsKKyAgICBDSEVDSyhwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX3RyeV9nZXQoKS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCk7Cit9CisKK3ZvaWQgdGVz
dFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3kodW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAgcGFzX3Nj
YXZlbmdlcl9zdXNwZW5kKCk7CisKKyAgICB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwo
bnVtSGVhcHMpOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9kZXN0cm95KHBhc19sb2Nr
X2lzX25vdF9oZWxkKTsKK30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUluVGhy
ZWFkKHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOwor
CisgICAgdGhyZWFkIG15VGhyZWFkID0gdGhyZWFkKFsmXSAoKSB7CisgICAgICAgIHRlc3RUTENE
ZWNvbW1pdFRoZW5EZXN0cm95SW1wbChudW1IZWFwcyk7CisgICAgfSk7CisKKyAgICBteVRocmVh
ZC5qb2luKCk7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29tbWl0VGhlbkZsdXNoKHVuc2lnbmVkIG51
bUhlYXBzKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworCisgICAgdGVzdFRMQ0Rl
Y29tbWl0VGhlbkRlc3Ryb3lJbXBsKG51bUhlYXBzKTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCksIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKK30KKwordm9pZCB0ZXN0VExDRGVjb21taXRUaGVu
RGVhbGxvY2F0ZSh1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3Bl
bmQoKTsKKworICAgIHZlY3Rvcjx2b2lkKj4gb2JqZWN0cyA9IHByZXBhcmVUb1Rlc3RETENEZWNv
bW1pdFRoZW5TdHVmZihudW1IZWFwcyk7CisKKyAgICBDSEVDS19HUkVBVEVSKG51bUNvbW1pdHRl
ZFBhZ2VzSW5UTEMoKSwgMSk7CisgICAgQ0hFQ0soIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5
X2dldCgpLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4KTsKKworICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVu
Z2Vfbm9fYWN0aW9uKTsKKworICAgIGZvciAodm9pZCogb2JqZWN0IDogb2JqZWN0cykKKyAgICAg
ICAgYm1hbGxvY19kZWFsbG9jYXRlKG9iamVjdCk7CisgICAgQ0hFQ0socGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgpOworICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKSwgcGFzX2xvY2tfaXNfbm90X2hlbGQpOworfQorCit2b2lkIHRlc3RBbGxv
Y2F0ZUZyb21TdG9wcGVkQmFzZWxpbmVJbXBsKCkKK3sKKyAgICBzdGF0aWMgY29uc3RleHByIGJv
b2wgdmVyYm9zZSA9IGZhbHNlOworCisgICAgaWYgKHZlcmJvc2UpIHsKKyAgICAgICAgY291dCA8
PCAiVExDID0gIiA8PCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSA8PCAiXG4iOwor
ICAgICAgICBjb3V0IDw8ICJjYW4gc2V0IFRMQyA9ICIgPDwgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9jYW5fc2V0KCkgPDwgIlxuIjsKKyAgICB9CisKKyAgICBwYXNfaGVhcF9yZWYgaGVhcFJlZiA9
IEJNQUxMT0NfSEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgIG5ldyBibWFsbG9jX3R5cGUo
Qk1BTExPQ19UWVBFX0lOSVRJQUxJWkVSKDMyLCAxLCAidGVzdCIpKSk7CisKKyAgICB2b2lkKiBw
dHIgPSBibWFsbG9jX2lzb19hbGxvY2F0ZSgmaGVhcFJlZik7CisgICAgQ0hFQ0socHRyKTsKKyAg
ICBwYXNfc2VncmVnYXRlZF92aWV3IHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9vYmpl
Y3QoCisgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludHB0cl90PihwdHIpLCAmYm1hbGxvY19o
ZWFwX2NvbmZpZyk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9y
eSA9IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpOworCisgICAg
Ym9vbCBmb3VuZEluQmFzZWxpbmVUYWJsZSA9IGZhbHNlOworICAgIHVuc2lnbmVkIGZvdW5kSW5k
ZXggPSBVSU5UX01BWDsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSBwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlX2JvdW5kOyBpLS07KSB7CisgICAgICAgIGlmIChwYXNfc2VncmVnYXRlZF92aWV3
X2dldF9zaXplX2RpcmVjdG9yeShwYXNfYmFzZWxpbmVfYWxsb2NhdG9yX3RhYmxlW2ldLnUuYWxs
b2NhdG9yLnZpZXcpCisgICAgICAgICAgICA9PSBkaXJlY3RvcnkpIHsKKyAgICAgICAgICAgIGZv
dW5kSW5CYXNlbGluZVRhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGZvdW5kSW5kZXggPSBpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgQ0hFQ0soZm91bmRJbkJh
c2VsaW5lVGFibGUpOworCisgICAgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZV9mb3JfYWxs
KHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24pOworCisgICAgQ0hFQ0tf
RVFVQUwocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZVtmb3VuZEluZGV4XS51LmFsbG9jYXRv
ci5zY2F2ZW5nZXJfZGF0YS5raW5kLAorICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAg
Y291dCA8PCAiVExDID0gIiA8PCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3RyeV9nZXQoKSA8PCAi
XG4iOworCisgICAgcHRyID0gYm1hbGxvY19pc29fYWxsb2NhdGUoJmhlYXBSZWYpOworICAgIENI
RUNLKHB0cik7Cit9CisKK3ZvaWQgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZSgpCit7
CisgICAgcGFzX3NjYXZlbmdlcl9zdXNwZW5kKCk7CisgICAgdGVzdEFsbG9jYXRlRnJvbVN0b3Bw
ZWRCYXNlbGluZUltcGwoKTsKK30KKworcHRocmVhZF9rZXlfdCB0ZXN0QWxsb2NhdGVGcm9tU3Rv
cHBlZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXk7CisKK3ZvaWQgdGVzdEFsbG9j
YXRlRnJvbVN0b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0aW9uRGVzdHJ1Y3Qodm9p
ZCopCit7CisgICAgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZUltcGwoKTsKKyAgICBp
bnQgcmVzdWx0ID0gcHRocmVhZF9zZXRzcGVjaWZpYyh0ZXN0QWxsb2NhdGVGcm9tU3RvcHBlZEJh
c2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXksICJoZWxsbyIpOworICAgIENIRUNLX0VR
VUFMKHJlc3VsdCwgMCk7Cit9CisKK3ZvaWQgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGlu
ZUR1cmluZ1RocmVhZERlc3RydWN0aW9uKCkKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQo
KTsKKworICAgIHRocmVhZCBteVRocmVhZChbJl0gKCkgeworICAgICAgICBpbnQgcmVzdWx0ID0g
cHRocmVhZF9rZXlfY3JlYXRlKCZ0ZXN0QWxsb2NhdGVGcm9tU3RvcHBlZEJhc2VsaW5lRHVyaW5n
VGhyZWFkRGVzdHJ1Y3Rpb25LZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0
aW9uRGVzdHJ1Y3QpOworICAgICAgICBDSEVDS19FUVVBTChyZXN1bHQsIDApOworICAgICAgICBy
ZXN1bHQgPSBwdGhyZWFkX3NldHNwZWNpZmljKHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxp
bmVEdXJpbmdUaHJlYWREZXN0cnVjdGlvbktleSwgImhlbGxvIik7CisgICAgICAgIENIRUNLX0VR
VUFMKHJlc3VsdCwgMCk7CisgICAgfSk7CisKKyAgICBteVRocmVhZC5qb2luKCk7Cit9CisKK30g
Ly8gYW5vbnltb3VzIG5hbWVzcGFjZQorCisjZW5kaWYgLy8gUEFTX0VOQUJMRV9CTUFMTE9DCisK
K3ZvaWQgYWRkVExDRGVjb21taXRUZXN0cygpCit7CisjaWYgUEFTX0VOQUJMRV9CTUFMTE9DCisg
ICAgeworICAgICAgICBEZWNvbW1pdFplcm9GaWxsIGRlY29tbWl0WmVyb0ZpbGw7CisgICAgCisg
ICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCisgICAgICAgICAgICAicmFnZS10bGNzIiwKKyAg
ICAgICAgICAgIFtdICgpIHsKKyAgICAgICAgICAgICAgICBibWFsbG9jX3R5cGVkX3J1bnRpbWVf
Y29uZmlnLmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX2Jhc2VsaW5lX2FsbG9jYXRvcnMg
PSAwOworICAgICAgICAgICAgICAgIGJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZS5k
aXJlY3Rvcnlfc2l6ZV9ib3VuZF9mb3Jfbm9fdmlld19jYWNoZSA9IDA7CisgICAgICAgICAgICAg
ICAgYm1hbGxvY190eXBlZF9ydW50aW1lX2NvbmZpZy5iYXNlLnZpZXdfY2FjaGVfY2FwYWNpdHlf
Zm9yX29iamVjdF9zaXplID0KKyAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfcnVudGltZV9j
b25maWdfYWdncmVzc2l2ZV92aWV3X2NhY2hlX2NhcGFjaXR5OworICAgICAgICAgICAgfSk7Cisg
ICAgCisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVk
IGluZGV4KSB7IHJldHVybiBpbmRleCA8IDEwMDAwOyB9LCBmYWxzZSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIDU4OCwgMzAwLCAzMDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVz
dFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwg
MTAwMDA7IH0sIHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDMw
MCwgMzA0KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVu
c2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA+IDEwMDAwOyB9LCBmYWxzZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgNiwgMzA0KSk7CisgICAgICAgIEFERF9URVNU
KHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRl
eCA+IDEwMDAwOyB9LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTg4
LCA2LCAzMDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAo
dW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4IDwgMTAwMDAwOyB9LCBmYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgMjU2LCAzMDQpKTsKKyAgICAgICAgQURE
X1RFU1QodGVzdFRMQ0RlY29tbWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJu
IGluZGV4IDwgMTAwMDAwOyB9LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgNTg4LCAyNTYsIDMwNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAw
MDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPiAxMDAwMDA7IH0sIGZhbHNl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNTg4LCA1MCwgMzA0KSk7CisgICAg
ICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4KSB7
IHJldHVybiBpbmRleCA+IDEwMDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDU4OCwgNTAsIDMwNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0Q2hhb3NUaGVu
RGVjb21taXQoMTAwMDAsIDE2LCAxMDAwLCAxMDAsIDQwMDAwMDAwMCwgNTAwMDAwKSk7CisgICAg
ICAgIEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwgMTYsIDEwMDAsIDEwMDAw
LCA0MDAwMDAwMDAsIDEwMDAwMDApKTsKKyAgICAgICAgQUREX1RFU1QodGVzdENoYW9zVGhlbkRl
Y29tbWl0KDEwMDAwLCA1MTIsIDEwLCA1MCwgNTAwMDAwMDAwLCAzMDAwMDAwKSk7CisgICAgICAg
IEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1pdCgxMDAwMCwgNDgsIDEwMCwgMTAwMCwgNjAw
MDAwMDAwLCAzMDAwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RDaGFvc1RoZW5EZWNvbW1p
dCgxMDAwMCwgNDgsIDEwMCwgMTAwMDAsIDYwMDAwMDAwMCwgMzAwMDAwMCkpOworCisgICAgICAg
IHsKKyAgICAgICAgICAgIEZvcmNlRXhjbHVzaXZlcyBmb3JjZUV4Y2x1c2l2ZXM7CisgICAgICAg
ICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXRUaGVuRGVhbGxvY2F0ZSg2NjY2KSk7CisgICAg
ICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXRUaGVuRmx1c2goNjY2NikpOworICAgICAg
ICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3koNjY2NikpOworICAgICAg
ICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJblRocmVhZCg2NjY2KSk7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICB7CisgICAgICAgIEZvcmNlQmFzZWxpbmVzIGZvcmNl
QmFzZWxpbmVzOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVGcm9tU3RvcHBlZEJhc2Vs
aW5lKCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0QWxsb2NhdGVGcm9tU3RvcHBlZEJhc2VsaW5l
RHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb24oKSk7CisgICAgfQorI2VuZGlmIC8vIFBBU19FTkFCTEVf
Qk1BTExPQworfQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJu
ZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVz
dEhhcm5lc3MuY3BwCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL3Rlc3QvVGVzdEhhcm5lc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjMsNiArMjYzLDE3
IEBAIERpc2FibGVQYWdlQmFsYW5jaW5nOjpEaXNhYmxlUGFnZUJhbGFuY2kKIHsKIH0KIAorRGVj
b21taXRaZXJvRmlsbDo6RGVjb21taXRaZXJvRmlsbCgpCisgICAgOiBUZXN0U2NvcGUoCisgICAg
ICAgICJkZWNvbW1pdC16ZXJvLWZpbGwiLAorICAgICAgICBbXSAoKSB7CisjaWYgUEFTX09TKERB
UldJTikKKyAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF96ZXJvX2ZpbGwgPSB0
cnVlOworI2VuZGlmIC8vIFBBU19PUyhEQVJXSU4pCisgICAgICAgIH0pCit7Cit9CisKIG5hbWVz
cGFjZSB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmM+CkBAIC0zNTgsMTAgKzM2OSwxMiBAQCB2
b2lkIGFkZExhcmdlRnJlZUhlYXBUZXN0cygpOwogdm9pZCBhZGRMYXJnZVNoYXJpbmdQb29sVGVz
dHMoKTsKIHZvaWQgYWRkTG9ja0ZyZWVSZWFkUHRyUHRySGFzaHRhYmxlVGVzdHMoKTsKIHZvaWQg
YWRkTG90c09mSGVhcHNBbmRUaHJlYWRzVGVzdHMoKTsKK3ZvaWQgYWRkTWVtYWxpZ25UZXN0cygp
Owogdm9pZCBhZGRNaW5IZWFwVGVzdHMoKTsKIHZvaWQgYWRkUEdNVGVzdHMoKTsKIHZvaWQgYWRk
UmFjZVRlc3RzKCk7CiB2b2lkIGFkZFJlZEJsYWNrVHJlZVRlc3RzKCk7Cit2b2lkIGFkZFRMQ0Rl
Y29tbWl0VGVzdHMoKTsKIHZvaWQgYWRkVFNEVGVzdHMoKTsKIHZvaWQgYWRkVGhpbmd5QW5kVXRp
bGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMoKTsKIHZvaWQgYWRkVXRpbHNUZXN0cygpOwpAQCAtNzIz
LDEwICs3MzYsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIEFERF9T
VUlURShMYXJnZVNoYXJpbmdQb29sKTsKICAgICBBRERfU1VJVEUoTG9ja0ZyZWVSZWFkUHRyUHRy
SGFzaHRhYmxlKTsKICAgICBBRERfU1VJVEUoTG90c09mSGVhcHNBbmRUaHJlYWRzKTsKKyAgICBB
RERfU1VJVEUoTWVtYWxpZ24pOwogICAgIEFERF9TVUlURShNaW5IZWFwKTsKICAgICBBRERfU1VJ
VEUoUEdNKTsKICAgICBBRERfU1VJVEUoUmFjZSk7CiAgICAgQUREX1NVSVRFKFJlZEJsYWNrVHJl
ZSk7CisgICAgQUREX1NVSVRFKFRMQ0RlY29tbWl0KTsKICAgICBBRERfU1VJVEUoVFNEKTsKICAg
ICBBRERfU1VJVEUoVXRpbHMpOwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy90ZXN0L1Rlc3RIYXJuZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtODQs
NiArODQsMTIgQEAgaW5saW5lIHN0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdAogICAg
IHJldHVybiBvdXQ7CiB9CiAKK2lubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpv
c3RyZWFtJiBvdXQsIHBhc19wYWdlX2tpbmQga2luZCkKK3sKKyAgICBvdXQgPDwgcGFzX3BhZ2Vf
a2luZF9nZXRfc3RyaW5nKGtpbmQpOworICAgIHJldHVybiBvdXQ7Cit9CisKICNkZWZpbmUgQ0hF
Q0soZXhwcmVzc2lvbikgZG8geyBcCiAgICAgICAgIGlmICgoZXhwcmVzc2lvbikpIFwKICAgICAg
ICAgICAgIGJyZWFrOyBcCkBAIC0yOTUsNiArMzAxLDExIEBAIHB1YmxpYzoKICAgICBEaXNhYmxl
UGFnZUJhbGFuY2luZygpOwogfTsKIAorY2xhc3MgRGVjb21taXRaZXJvRmlsbCA6IHB1YmxpYyBU
ZXN0U2NvcGUgeworcHVibGljOgorICAgIERlY29tbWl0WmVyb0ZpbGwoKTsKK307CisKIGJvb2wg
aGFzU2NvcGUoY29uc3Qgc3RkOjpzdHJpbmcmIGZpbHRlcik7CiAKIHZvaWQgZHVtcE9iamVjdFNl
dChjb25zdCBzdGQ6OnNldDx2b2lkKj4mIG9iamVjdHMpOwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRp
bGl0eUhlYXBBbGxvY2F0aW9uVGVzdHMuY3BwCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGhpbmd5QW5kVXRpbGl0eUhlYXBBbGxvY2F0aW9uVGVz
dHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMjA5LDcgKzMyMDksNyBAQCB2b2lkIGFkZEFsbFRl
c3RzKCkKICAgICB7CiAgICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCiAgICAgICAgICAgICAi
b25seS1zbWFsbCIsCi0gICAgICAgICAgICBbJl0gKCkgeworICAgICAgICAgICAgW10gKCkgewog
ICAgICAgICAgICAgICAgIHBhc19tZWRpdW1fc2VncmVnYXRlZF9wYWdlX2NvbmZpZ192YXJpYW50
X2lzX2VuYWJsZWRfb3ZlcnJpZGUgPSBmYWxzZTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAK
QEAgLTMyMTksNyArMzIxOSw3IEBAIHZvaWQgYWRkQWxsVGVzdHMoKQogICAgIHsKICAgICAgICAg
VGVzdFNjb3BlIHRlc3RTY29wZSgKICAgICAgICAgICAgICJzbWFsbC1hbmQtbWVkaXVtIiwKLSAg
ICAgICAgICAgIFsmXSAoKSB7CisgICAgICAgICAgICBbXSAoKSB7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgCiAgICAgICAgIGFkZEFsbFRlc3RzSW1wbCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>451587</attachid>
            <date>2022-02-10 12:04:10 -0800</date>
            <delta_ts>2022-02-10 12:04:10 -0800</delta_ts>
            <desc>better patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>294222</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9ibWFsbG9jL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1h
bGxvYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1MCBAQAorMjAyMi0wMS0xOCAgRmlsaXAg
UGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFtsaWJwYXNdIGl0IHNob3VsZCBi
ZSBwb3NzaWJsZSB0byBkZWNvbW1pdCB1bnVzZWQgcGFydHMgb2YgYSB0aHJlYWRfbG9jYWxfY2Fj
aGUgKHVwZGF0ZSB0byA3ODUwOGU3OWZhMjc5NzY4MDM0NGQ0M2I5NDg0MWFlMmU5MDNiMTViKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM1MzQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgWXVzdWtlIFN1enVraS4KKworICAgICAgICBMaWJwYXMgdXNl
cyBUTENzICh0aHJlYWRfbG9jYWxfY2FjaGVzKSBmb3IgYWxsb2NhdGlvbiBhbmQgZGVhbGxvY2F0
aW9uLiBFYWNoIHNpemUgY2xhc3MgaW4gZWFjaCBoZWFwCisgICAgICAgIGdldHMgYSBsb2NhbCBh
bGxvY2F0b3IgYW5kIHBvc3NpYmx5IGEgbG9jYWwgdmlldyBjYWNoZS4gQm90aCBsb2NhbCBhbGxv
Y2F0b3JzIGFuZCBsb2NhbCB2aWV3IGNhY2hlcworICAgICAgICBjYW4gZ2V0IHF1aXRlIGxhcmdl
ICgxMDBzIG9mIGJ5dGVzKS4gU28sIGlmIHlvdSB0cnkgdG8gc3VwcG9ydCBmdWxsIGlzb2hlYXBz
IChidWcgMjMxOTM4KSwgeW91IGVuZCB1cAorICAgICAgICB3aXRoIGdpbm9ybW91cyBUTENzIGFu
ZCB0aGF0IGFjY291bnRzIGZvciBhIGxvdCBvZiB0aGUgbWVtb3J5IG92ZXJoZWFkIG9mIGZ1bGwg
aXNvaGVhcHMuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgdGFrZXMgYSBiaWcgYml0ZSBvdXQgb2Yg
dGhhdCBvdmVyaGVhZCBieSBlbmFibGluZyBkZWNvbW1pdCBvZiBUTEMgcGFnZXM6CisKKyAgICAg
ICAgLSBBbnkgcGFnZSB3aXRoaW4gYSBUTEMgdGhhdCBoYXMgbm90aGluZyBidXQgc3RvcHBlZCBh
bGxvY2F0b3JzIChvciB2aWV3IGNhY2hlczsgSSdsbCBqdXN0IHNheQorICAgICAgICAgICJhbGxv
Y2F0b3JzIiB0byBtZWFuIGJvdGggImxvY2FsIGFsbG9jYXRvcnMiIGFuZCAibG9jYWwgdmlldyBj
YWNoZXMiLCBhcyBJIGRvIGluIHRoZSBjb2RlKSBjYW4gZ2V0CisgICAgICAgICAgZGVjb21taXR0
ZWQgYnkgdGhlIHNjYXZlbmdlci4KKworICAgICAgICAtIFRMQyBwYWdlIGRlY29tbWl0IGp1c3Qg
cmVxdWlyZXMgaG9sZGluZyB0aGUgVExDJ3Mgc2NhdmVuZ2VyX2xvY2sgKGZvcm1lcmx5IGtub3du
IGFzIHRoZQorICAgICAgICAgIGxvZ19mbHVzaF9sb2NrKSBhbmQgdGhlIGhlYXBfbG9jay4gWW91
IGRvbid0IGhhdmUgdG8gc3VzcGVuZCB0aGUgdGhyZWFkIChidXQgc3VzcGVuc2lvbiBjb3VsZCBo
YXZlCisgICAgICAgICAgYmVlbiB1c2VkIHRvIHN0b3AgdGhlIGFsbG9jYXRvciwgYXMgYmVmb3Jl
KS4KKworICAgICAgICAtIEF0dGVtcHRzIHRvIGFsbG9jYXRlIHVzaW5nIGFuIGFsbG9jYXRvciBp
biBhIGRlY29tbWl0dGVkIHBhZ2UgYXJlIGd1YXJhbnRlZWQgdG8gZ28gZG93biBhIHNsb3cKKyAg
ICAgICAgICBwYXRoIHRoYXQgY29tbWl0cyB0aGUgcGFnZSBhbmQgcmVtYXRlcmlhbGl6ZXMgdGhl
IGFsbG9jYXRvci4KKworICAgICAgICAtIFRoaXMgZG9lc24ndCByZXF1aXJlIGFueSBwYWdlIGFs
aWdubWVudCBvZiBhbGxvY2F0b3JzLiBBbGxvY2F0b3JzIGNhbiBzdHJhZGRsZSBwYWdlcy4KKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGJlIHBlcmYtbmV1dHJhbCBvbiB0cnVuay4gSXQgb2ZmZXJz
IGEgfjEuNSUgbWVtb3J5IGltcHJvdmVtZW50IGZvciBidWcgMjMxOTM4LgorCisgICAgICAgICog
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorICAgICAgICAqIGxpYnBhcy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuYzoKKyAgICAgICAgKGJt
YWxsb2NfZmxleF9oZWFwX3JlZl9nZXRfaGVhcCk6CisgICAgICAgIChibWFsbG9jX2F1eGlsaWFy
eV9oZWFwX3JlZl9nZXRfaGVhcCk6CisgICAgICAgIChibWFsbG9jX2dldF9oZWFwKToKKyAgICAg
ICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9ibWFsbG9jX2hlYXAuaDoKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9ibWFsbG9jX2hlYXBfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvaml0X2hlYXBfY29uZmlnLmM6CisgICAgICAgIChqaXRfYWxpZ25lZF9hbGxvY2F0b3Ip
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL2ppdF9oZWFwX2NvbmZpZy5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaDoKKyAgICAgICAg
KiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2FsbG9jYXRvci5jOgorICAgICAgICAocGFz
X2JpdGZpdF9hbGxvY2F0b3JfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19iaXRmaXRfYWxsb2Nh
dG9yX3N0b3ApOgorICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcpOgor
ICAgICAgICAocGFzX2JpdGZpdF9hbGxvY2F0b3JfZmluaXNoX2ZhaWxpbmcpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmg6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0b3JfaW5saW5lcy5oOgorICAgICAgICAo
cGFzX2JpdGZpdF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jOgorICAgICAgICAocGFzX2JpdGZpdF9kaXJl
Y3RvcnlfdGFrZV9sYXN0X2VtcHR5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
Yml0Zml0X3BhZ2VfY29uZmlnLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2Jp
dGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAgKHBhc19iaXRmaXRfcGFnZV9hbGxv
Y2F0aW9uX2NvbW1pdF9ncmFudWxlc19vcl9yZWxvb3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19jb21taXRfc3Bhbi5jOgorICAgICAgICAocGFzX2NvbW1pdF9zcGFuX2NvbnN0
cnVjdCk6CisgICAgICAgIChjb21taXQpOgorICAgICAgICAocGFzX2NvbW1pdF9zcGFuX2FkZF91
bmNoYW5nZWRfYW5kX2NvbW1pdCk6CisgICAgICAgIChkZWNvbW1pdCk6CisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdF9zcGFuLmg6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYzogQWRkZWQuCisgICAgICAgIChwYXNf
Y29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX2NvbW1pdHRl
ZF9wYWdlc192ZWN0b3JfZGVzdHJ1Y3QpOgorICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192
ZWN0b3JfY291bnRfY29tbWl0dGVkKToKKyAgICAgICAgKHBhc19jb3VudF9jb21taXR0ZWRfcGFn
ZXMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVj
dG9yLmg6IEFkZGVkLgorICAgICAgICAocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfaXNfY29t
bWl0dGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRf
cHRyLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlLmg6IEFkZGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGli
cGFzL3Bhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChwYXNf
ZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2VtcHR5KToKKyAgICAgICAgKHBhc19kZWNvbW1p
dF9leGNsdXNpb25fcmFuZ2VfaXNfY29udGlndW91cyk6CisgICAgICAgIChwYXNfZGVjb21taXRf
ZXhjbHVzaW9uX3JhbmdlX2lzX2ludmVydGVkKToKKyAgICAgICAgKHBhc19kZWNvbW1pdF9leGNs
dXNpb25fcmFuZ2VfY3JlYXRlX2ludmVydGVkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBh
cy9wYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmM6CisgICAgICAgIChkZWNvbW1pdF9hbGwpOgor
ICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19leHBlbmRhYmxlX21lbW9yeS5jOgorICAg
ICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X3N0YXRlX3ZlcnNpb25fbmV4dCk6CisgICAgICAg
IChwYXNfZXhwZW5kYWJsZV9tZW1vcnlfY29uc3RydWN0KToKKyAgICAgICAgKHBhc19leHBlbmRh
YmxlX21lbW9yeV9jb21taXRfaWZfbmVjZXNzYXJ5KToKKyAgICAgICAgKHNjYXZlbmdlX2ltcGwp
OgorICAgICAgICAocGFzX2V4cGVuZGFibGVfbWVtb3J5X3NjYXZlbmdlKToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1vcnkuaDoKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFudWxlcy5jOgorICAgICAgICAocGFzX2ZyZWVfZ3Jh
bnVsZXNfZGVjb21taXRfYWZ0ZXJfbG9ja2luZ19yYW5nZSk6CisgICAgICAgICogbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXAuYzoKKyAgICAgICAgKHBhc19oZWFwX2dldF90eXBlX3NpemUpOgor
ICAgICAgICAocGFzX2hlYXBfZ2V0X3R5cGVfYWxpZ25tZW50KToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcC5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19o
ZWFwX2NvbmZpZy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZp
Z191dGlscy5jOgorICAgICAgICAocGFzX2hlYXBfY29uZmlnX3V0aWxzX2FsbG9jYXRlX2FsaWdu
ZWQpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3JlZi5jOgorICAgICAgICAo
cGFzX2Vuc3VyZV9oZWFwX3Nsb3cpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19p
bnRlcm5hbF9jb25maWcuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
ZnJlZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cuYzoKKyAgICAgICAgKHBhc19sYXJnZV9mcmVl
X2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZ19jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX2xhcmdl
X2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2Rlc3RydWN0KToKKyAgICAgICAgKHBhc19s
YXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZ19hZGQpOgorICAgICAgICAoY29tbWl0
KToKKyAgICAgICAgKGNvbW1pdF9hbGwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfaGVscGVycy5jOgorICAgICAgICAobGFy
Z2VfdXRpbGl0eV9hbGlnbmVkX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfbGFyZ2VfZnJlZV9o
ZWFwX2hlbHBlcnNfdHJ5X2FsbG9jYXRlX3dpdGhfYWxpZ25tZW50KToKKyAgICAgICAgKHBhc19s
YXJnZV9mcmVlX2hlYXBfaGVscGVyc19kZWFsbG9jYXRlKToKKyAgICAgICAgKiBsaWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2VfaGVhcC5jOgorICAgICAgICAoYWxsb2NhdGVfaW1wbCk6CisgICAg
ICAgIChwYXNfbGFyZ2VfaGVhcF90cnlfZGVhbGxvY2F0ZSk6CisgICAgICAgIChwYXNfbGFyZ2Vf
aGVhcF90cnlfc2hyaW5rKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
aGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGUuYzoKKyAgICAgICAgKGxhcmdlX2FsaWdu
ZWRfYWxsb2NhdG9yKToKKyAgICAgICAgKHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hh
cmluZ19jYWNoZV90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZS5o
OgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYzoK
KyAgICAgICAgKGNyZWF0ZV9ub2RlKToKKyAgICAgICAgKGNyZWF0ZV9hbmRfaW5zZXJ0KToKKyAg
ICAgICAgKGJvb3RfdHJlZSk6CisgICAgICAgIChzdGF0ZXNfbWF0Y2gpOgorICAgICAgICAoc3Bs
aXRfbm9kZV9hbmRfZ2V0X3JpZ2h0X2ltcGwpOgorICAgICAgICAodHJ5X3NwbGF0X2ltcGwpOgor
ICAgICAgICAodHJ5X3NwbGF0KToKKyAgICAgICAgKHNwbGF0KToKKyAgICAgICAgKHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKToKKyAgICAgICAgKHBhc19sYXJnZV9zaGFyaW5nX3Bv
b2xfZnJlZSk6CisgICAgICAgIChwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2FsbG9jYXRlX2FuZF9j
b21taXQpOgorICAgICAgICAocGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9kZWNvbW1pdF9sZWFzdF9y
ZWNlbnRseV91c2VkKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vfc2hh
cmluZ19wb29sLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2UuaDogQWRkZWQuCisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9jcmVh
dGUpOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KToKKyAg
ICAgICAgKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9yYW5nZSk6CisgICAgICAgIChwYXNf
bGFyZ2VfdmlydHVhbF9yYW5nZV9pc19lbXB0eSk6CisgICAgICAgIChwYXNfbGFyZ2VfdmlydHVh
bF9yYW5nZV9zaXplKToKKyAgICAgICAgKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX292ZXJsYXBz
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9t
aW5faGVhcC5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2NvbXBh
cmVfYmVnaW4pOgorICAgICAgICAocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X2luZGV4KToK
KyAgICAgICAgKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX3NldF9pbmRleCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jOgorICAgICAgICAocGFzX2xv
Y2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9t
b3ZlKToKKyAgICAgICAgKHN0b3BfaW1wbCk6CisgICAgICAgIChwYXNfbG9jYWxfYWxsb2NhdG9y
X3N0b3ApOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jf
aW5saW5lcy5oOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNz
YXJ5X2ltcGwpOgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNz
YXJ5KToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3JfYmxlc3NfcHJpbW9yZGlhbF9wYXJ0
aWFsX3ZpZXdfYmVmb3JlX3N0b3BwaW5nKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
cmVmaWxsX3dpdGhfa25vd25fY29uZmlnKToKKyAgICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jf
dHJ5X2FsbG9jYXRlX3NtYWxsX3NlZ3JlZ2F0ZWRfc2xvd19pbXBsKToKKyAgICAgICAgKHBhc19s
b2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291dF9vZl9saW5lX2Nhc2VzKToKKyAgICAgICAg
KHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3Nsb3dfaW1wbCk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kLmg6CisgICAgICAgIChw
YXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfZ2V0X3N0cmluZyk6CisgICAgICAgIChwYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmRfaXNfc3RvcHBlZCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMv
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5jOgorICAgICAgICAocGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9wcGVkKToKKyAgICAgICAgKHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93KToKKyAg
ICAgICAgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCk6CisgICAgICAg
IChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3ByZXBhcmVfdG9fZGVjb21taXQp
OgorICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3RpdmUp
OiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGEuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9j
YWxfdmlld19jYWNoZS5jOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0
KToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX21vdmUpOgorICAgICAgICAocGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfc3RvcCk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9kaWRf
cmVzdGFydCk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2Fj
aGUuaDoKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZSk6CisgICAgICAg
IChwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3RhdGUpOgorICAgICAgICAocGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfaXNfZnVsbCk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9jYW5fcHVz
aCk6CisgICAgICAgIChwYXNfbG9jYWxfdmlld19jYWNoZV9pc19lbXB0eSk6CisgICAgICAgIChw
YXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3BvcCk6CisgICAgICAgIChwYXNfbG9jYWxf
dmlld19jYWNoZV9wcmVwYXJlX3RvX3B1c2gpOgorICAgICAgICAocGFzX2xvY2FsX3ZpZXdfY2Fj
aGVfcG9wKToKKyAgICAgICAgKHBhc19sb2NhbF92aWV3X2NhY2hlX3B1c2gpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJw
YXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oOiBBZGRlZC4KKyAgICAgICAgKHBhc19tbWFwX2NhcGFi
aWxpdHlfZ2V0X3N0cmluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2Vf
bWFsbG9jLmM6CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3Nsb3cpOgorICAg
ICAgICAocGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdF9zbG93KToKKyAgICAgICAgKHBh
c19wYWdlX21hbGxvY196ZXJvX2ZpbGwpOgorICAgICAgICAoY29tbWl0X2ltcGwpOgorICAgICAg
ICAocGFzX3BhZ2VfbWFsbG9jX2NvbW1pdCk6CisgICAgICAgIChwYXNfcGFnZV9tYWxsb2NfY29t
bWl0X3dpdGhvdXRfbXByb3RlY3QpOgorICAgICAgICAoZGVjb21taXRfaW1wbCk6CisgICAgICAg
IChwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2Rl
Y29tbWl0X3dpdGhvdXRfbXByb3RlY3QpOgorICAgICAgICAocGFzX3BhZ2VfbWFsbG9jX2RlY29t
bWl0X2FzeW1tZXRyaWMpOiBEZWxldGVkLgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19wYWdlX21hbGxvYy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5n
ZXIuYzoKKyAgICAgICAgKGhhbmRsZV9leHBlbmRhYmxlX21lbW9yeSk6CisgICAgICAgIChzY2F2
ZW5nZXJfdGhyZWFkX21haW4pOgorICAgICAgICAocGFzX3NjYXZlbmdlcl9kZWNvbW1pdF9leHBl
bmRhYmxlX21lbW9yeSk6CisgICAgICAgIChwYXNfc2NhdmVuZ2VyX2Zha2VfZGVjb21taXRfZXhw
ZW5kYWJsZV9tZW1vcnkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zY2F2ZW5n
ZXIuaDoKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlldy5jOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY3JlYXRl
KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9leGNsdXNpdmVf
dmlldy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3X2lubGluZXMuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92
aWV3X25vdGVfZWxpZ2liaWxpdHkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19z
ZWdyZWdhdGVkX2hlYXAuYzoKKyAgICAgICAgKG1lZGl1bV9kaXJlY3RvcnlfdHVwbGVfZm9yX2lu
ZGV4X2ltcGwpOgorICAgICAgICAocGFzX3NlZ3JlZ2F0ZWRfaGVhcF9tZWRpdW1fZGlyZWN0b3J5
X3R1cGxlX2Zvcl9pbmRleCk6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX21lZGl1bV9h
bGxvY2F0b3JfaW5kZXhfZm9yX2luZGV4KToKKyAgICAgICAgKHJlY29tcHV0ZV9zaXplX2xvb2t1
cCk6CisgICAgICAgIChyZW1hdGVyaWFsaXplX3NpemVfbG9va3VwX3NldF9tZWRpdW1fZGlyZWN0
b3J5X3R1cGxlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX2FsbG9jYXRv
cl9pbmRleCk6CisgICAgICAgIChjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX3NldF9t
ZWRpdW1fZGlyZWN0b3J5X3R1cGxlKToKKyAgICAgICAgKGNoZWNrX3NpemVfbG9va3VwX3JlY29t
cHV0YXRpb25fZHVtcF9kaXJlY3RvcnkpOgorICAgICAgICAoY2hlY2tfc2l6ZV9sb29rdXBfcmVj
b21wdXRhdGlvbik6CisgICAgICAgIChjaGVja19zaXplX2xvb2t1cF9yZWNvbXB1dGF0aW9uX2lm
X2FwcHJvcHJpYXRlKToKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVf
ZGlyZWN0b3J5X2Zvcl9zaXplKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2Vn
cmVnYXRlZF9oZWFwLmg6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfaGVhcF9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9oZWFwX3RvdWNoX2xv
b2t1cF90YWJsZXMpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVk
X3BhZ2UuYzoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5KToK
KyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3BhZ2VfY29tbWl0X2Z1bGx5KToKKyAgICAgICAgKiBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMuaDoKKyAgICAgICAg
KHBhc19zZWdyZWdhdGVkX3BhZ2VfbG9nX29yX2RlYWxsb2NhdGUpOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jOgorICAgICAgICAocGFz
X3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3X2NyZWF0ZSk6CisgICAgICAgIChjb21wdXRlX3N1bW1h
cnkpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJl
ZF9wYWdlX2RpcmVjdG9yeS5jOgorICAgICAgICAodGFrZV9sYXN0X2VtcHR5X2NvbnNpZGVyX3Zp
ZXcpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92
aWV3LmM6CisgICAgICAgIChwYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlld19jcmVhdGUpOgorICAg
ICAgICAocGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY29tbWl0X3BhZ2UpOgorICAgICAgICAo
Y29tcHV0ZV9zdW1tYXJ5KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVn
YXRlZF9zaGFyZWRfdmlldy5oOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdy
ZWdhdGVkX3NpemVfZGlyZWN0b3J5LmM6CisgICAgICAgICh0YWtlX2xhc3RfZW1wdHlfY29uc2lk
ZXJfdmlldyk6CisgICAgICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6
ZV9kaXJlY3RvcnkuaDoKKyAgICAgICAgKHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2dl
dF90bGNfYWxsb2NhdG9yX2luZGV4KToKKyAgICAgICAgKiBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF92aWV3X2FsbG9jYXRvcl9pbmxpbmVzLmg6CisgICAgICAgIChwYXNfc2VncmVn
YXRlZF92aWV3X3dpbGxfc3RhcnRfYWxsb2NhdGluZyk6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5jOgorICAgICAgICAoZHVtcF9sYXJnZV9zaGFyaW5n
X3Bvb2xfbm9kZV9jYWxsYmFjayk6CisgICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBf
dmlld19zdGF0cyk6CisgICAgICAgIChhbGxvY2F0b3Jfc3RhdGUpOgorICAgICAgICAoZHVtcF9h
bGxvY2F0b3Jfc3RhdGUpOgorICAgICAgICAoZHVtcF9zY2F2ZW5nZXJfZGF0YV9zdGF0ZSk6Cisg
ICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfYmFzZWxpbmVfYWxsb2NhdG9ycyk6Cisg
ICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvY2FsX2NhY2hlcyk6Cisg
ICAgICAgIChwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfZXZlcnl0aGluZyk6CisgICAgICAgICog
bGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRlci5oOgorICAgICAgICAqIGxpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYzoKKyAgICAgICAgKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KToKKyAgICAg
ICAgKG51bV9wYWdlcyk6CisgICAgICAgIChjb21wdXRlX3BhZ2VfaW5kaWNlcyk6CisgICAgICAg
IChwYWdlc19jb21taXR0ZWRfc2l6ZSk6CisgICAgICAgIChkZWFsbG9jYXRlKToKKyAgICAgICAg
KGFsbG9jYXRlX2NhY2hlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY3JlYXRl
KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveSk6CisgICAgICAgIChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3Jfc2xvdyk6CisgICAgICAg
IChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2NvbW1pdHRlZCk6CisgICAgICAgIChwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2NvbXB1dGVfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlKToKKyAgICAg
ICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZW5zdXJlX2NvbW1pdHRlZCk6CisgICAgICAgIChw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKToKKyAg
ICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzKToKKyAg
ICAgICAgKGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aG91dF9yZXNldHRpbmcpOgorICAgICAg
ICAoZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyKToKKyAgICAgICAgKGZsdXNo
X2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9tb2RlKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0KToKKyAgICAgICAgKHN1c3BlbmQp
OgorICAgICAgICAocmVzdW1lKToKKyAgICAgICAgKGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSk6
CisgICAgICAgIChzdG9wX2FsbG9jYXRvcik6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2Zvcl9hbGwpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zaHJpbmspOgor
ICAgICAgICAoZmx1c2hfZGVhbGxvY2F0aW9uX2xvZyk6IERlbGV0ZWQuCisgICAgICAgICogbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oOgorICAgICAgICAocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2ZfYWxsb2NhdG9yKToKKyAgICAgICAgKiBsaWJwYXMv
c3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5jOgorICAgICAgICAocGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25vZGUpOgorICAgICAgICAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZ2V0X25vZGVfZm9yX2luZGV4KToKKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg6
IEFkZGVkLgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfY3Jl
YXRlX2VtcHR5KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5
X2NyZWF0ZV9kZWxldGVkKToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2VudHJ5X2lzX2VtcHR5X29yX2RlbGV0ZWQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnlfaXNfZW1wdHkpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnlfaXNfZGVsZXRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9lbnRyeV9nZXRfa2V5KToKKyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X2tleV9nZXRfaGFzaCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9rZXlfaXNfZXF1YWwpOgorICAgICAgICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYzoKKyAgICAgICAgKHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKToKKyAgICAgICAg
KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29tbWl0X2FuZF9jb25zdHJ1Y3Qp
OgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9tb3ZlKToKKyAg
ICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfaXNfY29tbWl0dGVkKToK
KyAgICAgICAgKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZW5zdXJlX2NvbW1p
dHRlZCk6CisgICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3ByZXBh
cmVfdG9fZGVjb21taXQpOgorICAgICAgICAocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bnVtX2FsbG9jYXRvcl9pbmRpY2VzKTogRGVsZXRlZC4KKyAgICAgICAgKHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg6CisgICAg
ICAgICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmM6Cisg
ICAgICAgIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGVfYWxsb2NhdGUpOgorICAgICAgICAq
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmg6CisgICAg
ICAgIChwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jYXNlKToKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlLmg6CisgICAg
ICAgIChwYXNfdHJ5X2FsbG9jYXRlX3ByaW1pdGl2ZV9pbXBsX2Nhc3VhbF9jYXNlKToKKyAgICAg
ICAgKHBhc190cnlfYWxsb2NhdGVfcHJpbWl0aXZlX2ltcGxfaW5saW5lX29ubHkpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmg6CisgICAgICAg
ICogbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmg6CisgICAgICAgICogbGlicGFzL3NyYy9s
aWJwYXMvcGFzX3ZpcnR1YWxfcmFuZ2UuaDoKKyAgICAgICAgKHBhc192aXJ0dWFsX3JhbmdlX2Ny
ZWF0ZSk6CisgICAgICAgIChwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1wdHkpOgorICAgICAg
ICAqIGxpYnBhcy9zcmMvdGVzdC9FeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwOgorICAgICAgICAo
c3RkOjp0ZXN0UmFnZSk6CisgICAgICAgIChzdGQ6OnRlc3RSZW1hdGVyaWFsaXplQWZ0ZXJTZWFy
Y2hPZkRlY29tbWl0dGVkKToKKyAgICAgICAgKHN0ZDo6dGVzdEJhc2ljU2l6ZUNsYXNzKToKKyAg
ICAgICAgKGFkZEV4cGVuZGFibGVNZW1vcnlUZXN0cyk6CisgICAgICAgICogbGlicGFzL3NyYy90
ZXN0L0xhcmdlU2hhcmluZ1Bvb2xUZXN0cy5jcHA6CisgICAgICAgIChzdGQ6OnRlc3RHb29kQ29h
bGVzY2VFcG9jaFVwZGF0ZSk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L01lbWFsaWduVGVz
dHMuY3BwOiBBZGRlZC4KKyAgICAgICAgKGFkZE1lbWFsaWduVGVzdHMpOgorICAgICAgICAqIGxp
YnBhcy9zcmMvdGVzdC9UTENEZWNvbW1pdFRlc3RzLmNwcDogQWRkZWQuCisgICAgICAgIChzdGQ6
Om51bUNvbW1pdHRlZFBhZ2VzSW5UTEMpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXQp
OgorICAgICAgICAoc3RkOjp0ZXN0Q2hhb3NUaGVuRGVjb21taXQpOgorICAgICAgICAoc3RkOjp0
ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVj
b21taXRUaGVuRGVzdHJveSk6CisgICAgICAgIChzdGQ6OnRlc3RUTENEZWNvbW1pdFRoZW5EZXN0
cm95SW5UaHJlYWQpOgorICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRmx1c2gpOgor
ICAgICAgICAoc3RkOjp0ZXN0VExDRGVjb21taXRUaGVuRGVhbGxvY2F0ZSk6CisgICAgICAgIChh
ZGRUTENEZWNvbW1pdFRlc3RzKToKKyAgICAgICAgKiBsaWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5l
c3MuY3BwOgorICAgICAgICAoUnVudGltZUNvbmZpZ1Rlc3RTY29wZTo6UnVudGltZUNvbmZpZ1Rl
c3RTY29wZSk6CisgICAgICAgIChEZWNvbW1pdFplcm9GaWxsOjpEZWNvbW1pdFplcm9GaWxsKToK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIGxpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5o
OgorICAgICAgICAob3BlcmF0b3I8PCk6CisgICAgICAgICogbGlicGFzL3NyYy90ZXN0L1RoaW5n
eUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcDoKKyAgICAgICAgKHN0ZDo6YWRkQWxs
VGVzdHMpOgorCiAyMDIyLTAyLTA5ICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW2xpYnBhc10gYWRkIGRvY3VtZW50YXRpb24KSW5kZXg6IFNvdXJjZS9ibWFsbG9j
L0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL0NNYWtlTGlzdHMu
dHh0CShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtNzAsNiArNzAsNyBAQCBzZXQoYm1hbGxvY19TT1VSQ0VTCiAgICAg
bGlicGFzL3NyYy9saWJwYXMvcGFzX2Jvb3RzdHJhcF9oZWFwX3BhZ2VfcHJvdmlkZXIuYwogICAg
IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb2FsaWduLmMKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tbWl0X3NwYW4uYworICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFn
ZXNfdmVjdG9yLmMKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9ib290c3RyYXBf
ZnJlZV9oZWFwLmMKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9leHBlbmRhYmxl
X21lbW9yeS5jCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfaGVhcF9yZXNlcnZh
dGlvbi5jCkBAIC0zNTksNiArMzYwLDcgQEAgc2V0KGJtYWxsb2NfUFVCTElDX0hFQURFUlMKICAg
ICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29hbGlnbi5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMv
cGFzX2NvbW1pdF9tb2RlLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4u
aAorICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmgKICAg
ICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF9hdG9taWNfYWxsb2NhdG9yX2luZGV4X3B0
ci5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGly
ZWN0b3J5X3B0ci5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfYXRvbWljX2Jp
dGZpdF9iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaApAQCAtMzk5LDYgKzQwMSw3IEBAIHNldChibWFs
bG9jX1BVQkxJQ19IRUFERVJTCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFn
Z2VkX3BhZ2VfZ3JhbnVsZV91c2VfY291bnRfcHRyLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29tcGFjdF90YWdnZWRfcHRyLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFj
dF90YWdnZWRfdW5zaWduZWRfcHRyLmgKKyAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAogICAgIGxpYnBhcy9zcmMvbGlicGFz
L3Bhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2Nv
bXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfY29uZmlnLmgKQEAgLTQwOCw2ICs0MTEsNyBAQCBzZXQoYm1hbGxvY19QVUJMSUNfSEVBREVS
UwogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWFsbG9jYXRpb25fbW9kZS5oCiAgICAgbGli
cGFzL3NyYy9saWJwYXMvcGFzX2RlYWxsb2NhdG9yLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uLmgKKyAgICBsaWJwYXMvc3JjL2xpYnBhcy9w
YXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
ZGVidWdfaGVhcC5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlYnVnX3NwZWN0cnVtLmgK
ICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmgKQEAgLTQ5
NCw2ICs0OTgsOCBAQCBzZXQoYm1hbGxvY19QVUJMSUNfSEVBREVSUwogICAgIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZXBvY2hfdXBkYXRlX21vZGUuaAogICAgIGxp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuaAogICAgIGxpYnBhcy9zcmMv
bGlicGFzL3Bhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5oCisgICAgbGlicGFzL3NyYy9saWJw
YXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaAorICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19s
YXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNf
bGVuaWVudF9jb21wYWN0X3B0ci5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRf
Y29tcGFjdF9wdHJfaW5saW5lcy5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX2xlbmllbnRf
Y29tcGFjdF91bnNpZ25lZF9wdHIuaApAQCAtNTE0LDYgKzUyMCw3IEBAIHNldChibWFsbG9jX1BV
QkxJQ19IRUFERVJTCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX21lZGl1bV9tZWdhcGFnZV9j
YWNoZS5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX21lZ2FwYWdlX2NhY2hlLmgKICAgICBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfbWluX2hlYXAuaAorICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bh
c19tbWFwX2NhcGFiaWxpdHkuaAogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc19tb25vdG9uaWNf
dGltZS5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX211dGF0aW9uX2NvdW50LmgKICAgICBs
aWJwYXMvc3JjL2xpYnBhcy9wYXNfb2JqZWN0X2tpbmQuaApAQCAtNjE5LDYgKzYyNiw3IEBAIHNl
dChibWFsbG9jX1BVQkxJQ19IRUFERVJTCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVh
ZF9zdXNwZW5kX2xvY2suaAogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxf
Y2FjaGUuaAogICAgIGxpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0LmgKKyAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9lbnRyeS5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oCiAgICAgbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9raW5kLmgKICAgICBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGUuaApJbmRleDogU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxs
b2MvYm1hbGxvYy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02
MDYsNiArNjA2LDE0IEBACiAJCTE0RjI3MUM1MThFQTM5N0UwMDhDMTUyRiAvKiBEZWFsbG9jYXRv
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNDVG
Njg1OTE3OURDOTAyMDBENjU1OTggLyogRGVhbGxvY2F0b3IuY3BwICovOyB9OwogCQkxNEYyNzFD
NzE4RUEzOTkwMDA4QzE1MkYgLyogSGVhcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxNERBMzIwRTE4ODc1RDlGMDA3MjY5RTAgLyogSGVhcC5jcHAg
Ki87IH07CiAJCTE0RjI3MUM4MThFQTM5OTAwMDhDMTUyRiAvKiBPYmplY3RUeXBlLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE0MTA1RTgzMThFMTQz
NzQwMDNBMTA2RSAvKiBPYmplY3RUeXBlLmNwcCAqLzsgfTsKKwkJMkMwOUQ4QzEyNzk3QzZFQTAw
NUFBMTVDIC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDMDlEOEI5Mjc5N0M2RTkwMDVBQTE1QyAv
KiBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkMwOUQ4QzIyNzk3QzZFQTAwNUFBMTVDIC8qIHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCQTI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLzsgfTsKKwkJMkMwOUQ4QzMyNzk3QzZFQTAw
NUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCQjI3OTdDNkU5MDA1QUExNUMgLyog
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCAqLzsgfTsKKwkJMkMwOUQ4QzQyNzk3QzZFQTAw
NUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCQzI3OTdDNkU5MDA1QUExNUMgLyog
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLzsgfTsKKwkJMkMwOUQ4QzUyNzk3QzZFQTAw
NUFBMTVDIC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzA5RDhCRDI3OTdDNkVBMDA1QUExNUMgLyogcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLzsgfTsKKwkJMkMwOUQ4QzYyNzk3QzZFQTAwNUFBMTVD
IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDMDlEOEJFMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbW1hcF9jYXBh
YmlsaXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJMkMwOUQ4QzcyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X2VudHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQzA5RDhCRjI3OTdDNkVBMDA1QUExNUMgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfZW50cnkuaCAqLzsgfTsKKwkJMkMwOUQ4QzgyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19jb21w
YWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMwOUQ4QzAyNzk3QzZFQTAwNUFBMTVDIC8qIHBh
c19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oICovOyB9OwogCQkyQzEx
RTg5NTI3MjhERTI3MDAyMTYyRDAgLyogYm1hbGxvY190eXBlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg5MjI3MjhERTI3MDAyMTYyRDAgLyog
Ym1hbGxvY190eXBlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMkMxMUU4OTYyNzI4REUyNzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkMxMUU4OTMyNzI4REUy
NzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5jICovOyB9OwogCQkyQzExRTg5NzI3MjhERTI3MDAy
MTYyRDAgLyogcGFzX3NpbXBsZV90eXBlLmMgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyQzExRTg5NDI3MjhERTI3MDAyMTYyRDAgLyogcGFzX3NpbXBsZV90
eXBlLmMgKi87IH07CkBAIC0xMjcxLDYgKzEyNzksMTQgQEAKIAkJMTREQTMyMEMxODg3NUIwOTAw
NzI2OUUwIC8qIEhlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSGVhcC5o
OyBwYXRoID0gYm1hbGxvYy9IZWFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTE0
REEzMjBFMTg4NzVEOUYwMDcyNjlFMCAvKiBIZWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IEhlYXAuY3BwOyBwYXRoID0gYm1hbGxvYy9IZWFwLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTRGMjcxQkUxOEVBMzk2MzAwOEMxNTJGIC8qIGxpYmJt
YWxsb2MuYSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
YXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gbGliYm1hbGxvYy5hOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OworCQkyQzA5RDhCOTI3OTdDNkU5MDA1QUEx
NUMgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmg7IHBhdGggPSBsaWJw
YXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJBMjc5N0M2RTkwMDVBQTE1QyAvKiBwYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZV9taW5faGVhcC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5oOyBwYXRoID0gbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkMwOUQ4QkIyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRf
cGFnZXNfdmVjdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IHBhc19jb21t
aXR0ZWRfcGFnZXNfdmVjdG9yLmg7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0
dGVkX3BhZ2VzX3ZlY3Rvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzA5RDhC
QzI3OTdDNkU5MDA1QUExNUMgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYzsg
cGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDMDlEOEJEMjc5N0M2RUEwMDVBQTE1QyAvKiBw
YXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkMw
OUQ4QkUyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFzX21tYXBfY2FwYWJpbGl0eS5oOyBwYXRoID0gbGli
cGFzL3NyYy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyQzA5RDhCRjI3OTdDNkVBMDA1QUExNUMgLyogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGli
cGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTJDMDlEOEMwMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tcGFjdF90
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg7IHBh
dGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkMxMUU4OTIyNzI4REUy
NzAwMjE2MkQwIC8qIGJtYWxsb2NfdHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBibWFsbG9jX3R5cGUuaDsgcGF0aCA9IGxpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfdHlw
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzExRTg5MzI3MjhERTI3MDAyMTYy
RDAgLyogYm1hbGxvY190eXBlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgbmFtZSA9IGJt
YWxsb2NfdHlwZS5jOyBwYXRoID0gbGlicGFzL3NyYy9saWJwYXMvYm1hbGxvY190eXBlLmM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMTFFODk0MjcyOERFMjcwMDIxNjJEMCAvKiBw
YXNfc2ltcGxlX3R5cGUuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0gcGFzX3Np
bXBsZV90eXBlLmM7IHBhdGggPSBsaWJwYXMvc3JjL2xpYnBhcy9wYXNfc2ltcGxlX3R5cGUuYzsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MjYsNiArMTU0Miw4IEBACiAJCQkJMEZD
NDA5QjQyNDUxNDk2MzAwODc2REEwIC8qIHBhc19jb21taXRfbW9kZS5oICovLAogCQkJCTBGODdG
RkNBMjVBRjg5N0MwMDBFMUFCRiAvKiBwYXNfY29tbWl0X3NwYW4uYyAqLywKIAkJCQkwRjg3RkZB
MzI1QUY4OTc5MDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmggKi8sCisJCQkJMkMwOUQ4QkMy
Nzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmMgKi8sCisJCQkJ
MkMwOUQ4QkIyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yLmgg
Ki8sCiAJCQkJMEY3NTQ5ODEyNDg2OTczQzAwMkE0QzdEIC8qIHBhc19jb21wYWN0X2F0b21pY19h
bGxvY2F0b3JfaW5kZXhfcHRyLmggKi8sCiAJCQkJMEY4N0ZGQTgyNUFGODk3QTAwMEUxQUJGIC8q
IHBhc19jb21wYWN0X2F0b21pY19iaWFzaW5nX2RpcmVjdG9yeV9wdHIuaCAqLywKIAkJCQkwRjVG
RTdDQjI1QjYyMTBDMDAxODU5RkMgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpdGZpdF9iaWFzaW5n
X2RpcmVjdG9yeV9wdHIuaCAqLywKQEAgLTE1NzEsNiArMTU4OSw3IEBACiAJCQkJMEZDNDA5NzEy
NDUxNDk1RTAwODc2REEwIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCAqLywKIAkJCQkwRkM0
MDk5RjI0NTE0OTYxMDA4NzZEQTAgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5o
ICovLAogCQkJCTJDRTJBRTUxMjc2OTkyODIwMEQwMkJCQyAvKiBwYXNfY29tcGFjdF90YWdnZWRf
dm9pZF9wdHIuaCAqLywKKwkJCQkyQzA5RDhDMDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2NvbXBh
Y3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmggKi8sCiAJCQkJMEZDNDA5OUEyNDUx
NDk2MTAwODc2REEwIC8qIHBhc19jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAogCQkJCTBGQzQw
OTc5MjQ1MTQ5NUYwMDg3NkRBMCAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFj
a3MuYyAqLywKIAkJCQkwRkM0MDlCMzI0NTE0OTYyMDA4NzZEQTAgLyogcGFzX2NvbXB1dGVfc3Vt
bWFyeV9vYmplY3RfY2FsbGJhY2tzLmggKi8sCkBAIC0xNTg2LDYgKzE2MDUsNyBAQAogCQkJCTBG
MzczRTUzMjY1OUVBNzAwMDM0QkE5NiAvKiBwYXNfZGVidWdfaGVhcC5oICovLAogCQkJCTBGQkM2
MkM0MjY1RjE4MEMwMDVBNTcyMCAvKiBwYXNfZGVidWdfc3BlY3RydW0uYyAqLywKIAkJCQkwRkJD
NjJDNTI2NUYxODBDMDA1QTU3MjAgLyogcGFzX2RlYnVnX3NwZWN0cnVtLmggKi8sCisJCQkJMkMw
OUQ4QjkyNzk3QzZFOTAwNUFBMTVDIC8qIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCAq
LywKIAkJCQkwRkM0MDlCOTI0NTE0OTYzMDA4NzZEQTAgLyogcGFzX2RlZmVycmVkX2RlY29tbWl0
X2xvZy5jICovLAogCQkJCTBGQzQwOUEwMjQ1MTQ5NjEwMDg3NkRBMCAvKiBwYXNfZGVmZXJyZWRf
ZGVjb21taXRfbG9nLmggKi8sCiAJCQkJMEY4RTgzMjYyNDkyRUFGMzAwNDZEN0Y4IC8qIHBhc19k
ZXNpZ25hdGVkX2ludHJpbnNpY19oZWFwLmMgKi8sCkBAIC0xNzEzLDYgKzE3MzMsOCBAQAogCQkJ
CTBGQzQwQUJEMjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2No
X3VwZGF0ZV9tb2RlLmggKi8sCiAJCQkJMEZDNDBBQTMyNDUxNDk4RTAwODc2REEwIC8qIHBhc19s
YXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGQzQwQUYxMjQ1MTQ5OTMwMDg3NkRB
MCAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKKwkJCQkyQzA5RDhCQTI3OTdD
NkU5MDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLywKKwkJ
CQkyQzA5RDhCRDI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAq
LywKIAkJCQkyQzk3MUQwMTI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9w
dHIuaCAqLywKIAkJCQkyQzk3MUQwMDI3OEU3OTg3MDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29t
cGFjdF9wdHJfaW5saW5lcy5oICovLAogCQkJCTJDOTcxRDAzMjc4RTc5ODcwMEM5RTEyOSAvKiBw
YXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovLApAQCAtMTc0Myw2ICsxNzY1LDcg
QEAKIAkJCQkwRkM0MEE4MTI0NTE0OThCMDA4NzZEQTAgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmMg
Ki8sCiAJCQkJMEZDNDBBMjUyNDUxNDk4NTAwODc2REEwIC8qIHBhc19tZWdhcGFnZV9jYWNoZS5o
ICovLAogCQkJCTBGQzQwQTdFMjQ1MTQ5OEIwMDg3NkRBMCAvKiBwYXNfbWluX2hlYXAuaCAqLywK
KwkJCQkyQzA5RDhCRTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5oICov
LAogCQkJCTBGQzQwQThGMjQ1MTQ5OEMwMDg3NkRBMCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuYyAq
LywKIAkJCQkwRkM0MEE3MTI0NTE0OThBMDA4NzZEQTAgLyogcGFzX21vbm90b25pY190aW1lLmgg
Ki8sCiAJCQkJMEZDNDBBRDIyNDUxNDk5MTAwODc2REEwIC8qIHBhc19tdXRhdGlvbl9jb3VudC5o
ICovLApAQCAtMTg4NCw2ICsxOTA3LDggQEAKIAkJCQkwRkM0MEFCOTI0NTE0OThGMDA4NzZEQTAg
LyogcGFzX3N0cmVhbS5oICovLAogCQkJCTBGQzQwQTk1MjQ1MTQ5OEQwMDg3NkRBMCAvKiBwYXNf
c3RyaW5nX3N0cmVhbS5jICovLAogCQkJCTBGQzQwQTNGMjQ1MTQ5ODcwMDg3NkRBMCAvKiBwYXNf
c3RyaW5nX3N0cmVhbS5oICovLAorCQkJCTJDMDlEOEJGMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeS5oICovLAorCQkJCTBGN0M5MkQ4MjZFNTdG
NzUwMDZBRjAxMiAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2tpbmQuaCAq
LywKIAkJCQkwRkM0MEE3QzI0NTE0OThCMDA4NzZEQTAgLyogcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZS5jICovLAogCQkJCTBGQzQwQUM3MjQ1MTQ5OTAwMDg3NkRBMCAvKiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlLmggKi8sCiAJCQkJMEZDNDBBNjIyNDUxNDk4OTAwODc2REEwIC8qIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0LmMgKi8sCkBAIC0yMjE3LDYgKzIyNDIsNyBAQAogCQkJCUUzMjhE
ODREMjNDRUIzODkwMDU0NUIxOCAvKiBQYWNrZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMThG
ODRDMjVDMzQ2NzcwMDcyMUMyQSAvKiBwYWdlc2l6ZTY0a19oZWFwLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjE4Rjg0ODI1QzM0Njc3MDA3MjFDMkEgLyogcGFnZXNpemU2NGtfaGVhcF9jb25maWcu
aCBpbiBIZWFkZXJzICovLAorCQkJCTJDMDlEOEM4Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29t
cGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwOTVBMjQ1MTQ5NDQwMDg3NkRBMCAvKiBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3Vs
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NUIyNDUxNDk0NDAwODc2REEwIC8qIHBhc19h
bGlnbmVkX2FsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDA5NjAyNDUxNDk0NDAw
ODc2REEwIC8qIHBhc19hbGlnbm1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjI2NCw2ICsyMjkw
LDcgQEAKIAkJCQkwRkM0MDlFODI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Jvb3RzdHJhcF9oZWFw
X3BhZ2VfcHJvdmlkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwOUQwMjQ1MTQ5NjQwMDg3
NkRBMCAvKiBwYXNfY2FyZXNfYWJvdXRfc2l6ZV9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RkM0MEExNjI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2NhcnRlc2lhbl90cmVlLmggaW4gSGVhZGVy
cyAqLywKKwkJCQkyQzA5RDhDMTI3OTdDNkVBMDA1QUExNUMgLyogcGFzX2RlY29tbWl0X2V4Y2x1
c2lvbl9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBBMEQyNDUxNDk2NDAwODc2REEw
IC8qIHBhc19jb2FsaWduLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEEwQTI0NTE0OTY0MDA4
NzZEQTAgLyogcGFzX2NvbW1pdF9tb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3RkZEQTI1
QUY4OTdDMDAwRTFBQkYgLyogcGFzX2NvbW1pdF9zcGFuLmggaW4gSGVhZGVycyAqLywKQEAgLTIz
MTQsNiArMjM0MSw3IEBACiAJCQkJMEZDNDA5RkUyNDUxNDk2NDAwODc2REEwIC8qIHBhc19jb25m
aWdfcHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlDNTI0NTE0OTY0MDA4NzZEQTAg
LyogcGFzX2NyZWF0ZV9iYXNpY19oZWFwX3BhZ2VfY2FjaGVzX3dpdGhfcmVzZXJ2ZWRfbWVtb3J5
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MDlGMTI0NTE0OTY0MDA4NzZEQTAgLyogcGFzX2Rl
YWxsb2NhdGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDMDlEOEM1Mjc5N0M2RUEwMDVBQTE1QyAv
KiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1RkU3RUYy
NUI2MjEwRDAwMTg1OUZDIC8qIHBhc19kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZDNDA5RjkyNDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRvci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZDNDA5REIyNDUxNDk2NDAwODc2REEwIC8qIHBhc19kZWFsbG9jYXRv
cl9zY2F2ZW5nZV9hY3Rpb24uaCBpbiBIZWFkZXJzICovLApAQCAtMjM1Myw2ICsyMzgxLDcgQEAK
IAkJCQkwRkM0MEI4RjI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2ZvdW5kX2luZGV4LmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3MDAzODI1QUY4OUM5MDAwRTFBQkYgLyogcGFzX2ZyZWVfZ3JhbnVs
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQzQwQjgzMjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNf
ZnJlZV9tb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhDNjI3OTdDNkVBMDA1QUExNUMg
LyogcGFzX21tYXBfY2FwYWJpbGl0eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCMTMyNDUx
NDk5NDAwODc2REEwIC8qIHBhc19mcmVlX3JhbmdlX2tpbmQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGQzQwQkE2MjQ1MTQ5OTQwMDg3NkRBMCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkM0MEIyNDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX2Z1bGxfYWxsb2Nf
Yml0c19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTI0MzEsMTIgKzI0NjAsMTQgQEAKIAkJ
CQkwRjg3MDA3RDI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWcuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGODcwMDdCMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNl
X2NvbmZpZ19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2QTI1QUY4QTFCMDAw
RTFBQkYgLyogcGFzX3BhZ2VfYmFzZV9jb25maWdfdXRpbHMuaCBpbiBIZWFkZXJzICovLAorCQkJ
CTJDMDlEOEMyMjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5f
aGVhcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwNzMyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYWdlX2Jhc2VfY29uZmlnX3V0aWxzX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
ODcwMDZEMjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9iYXNlX2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGODcwMDY3MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9jb25maWdf
a2luZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY4NzAwN0YyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYWdlX2dyYW51bGVfdXNlX2NvdW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg3MDA2NjI1
QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVyX3BsYWNlbWVudF9tb2RlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjg3MDA2QzI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2VfaGVhZGVy
X3RhYmxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQzA5RDhDNzI3OTdDNkVBMDA1QUExNUMgLyog
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGODcwMDc3MjVBRjhBMUIwMDBFMUFCRiAvKiBwYXNfcGFnZV9raW5kLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRkM0MEJEMDI0NTE0OTk0MDA4NzZEQTAgLyogcGFzX3BhZ2VfbWFsbG9jLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjg3MDA3ODI1QUY4QTFCMDAwRTFBQkYgLyogcGFzX3BhZ2Vfc2hh
cmluZ19tb2RlLmggaW4gSGVhZGVycyAqLywKQEAgLTI1MTQsNiArMjU0NSw3IEBACiAJCQkJMEZD
Q0QxNDUyNjU2MDE4NjAwMTcxQTFGIC8qIHBhc19zaGFyZWRfcGFnZV9kaXJlY3RvcnlfYnlfc2l6
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZDNDBCRDcyNDUxNDlBRTAwODc2REEwIC8qIHBhc19z
aW1wbGVfZnJlZV9oZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0
MEJEODI0NTE0OUFFMDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfZGVmaW5pdGlvbnMu
ZGVmIGluIEhlYWRlcnMgKi8sCisJCQkJMkMwOUQ4QzMyNzk3QzZFQTAwNUFBMTVDIC8qIHBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIxRDI0NTE0
OTk0MDA4NzZEQTAgLyogcGFzX3NpbXBsZV9mcmVlX2hlYXBfaGVscGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEZDNDBCNzYyNDUxNDk5NDAwODc2REEwIC8qIHBhc19zaW1wbGVfbGFyZ2VfZnJl
ZV9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0MEIwNTI0NTE0OTk0MDA4NzZEQTAgLyog
cGFzX3NpbXBsZV90eXBlLmggaW4gSGVhZGVycyAqLywKQEAgLTI3ODksNiArMjgyMSw3IEBACiAJ
CQkJMEY4NzAwN0UyNUFGOEExQjAwMEUxQUJGIC8qIHBhc19wYWdlX2hlYWRlcl90YWJsZS5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCNjUyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX21h
bGxvYy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDNDBCMTIyNDUxNDk5NDAwODc2REEwIC8qIHBh
c19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDMDlEOEM0
Mjc5N0M2RUEwMDVBQTE1QyAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMEZDNDBCOEEyNDUxNDk5NDAwODc2REEwIC8qIHBhc19wYWdlX3NoYXJpbmdf
cG9vbC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4NzAwNjkyNUFGOEExQjAwMEUxQUJGIC8qIHBh
c19wYXlsb2FkX3Jlc2VydmF0aW9uX3BhZ2VfbGlzdC5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZD
NDBCNDkyNDUxNDk5NDAwODc2REEwIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24u
YyBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9saWJwYXMueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjg5NTA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL2xpYnBhcy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC01NjIsNiArNTYyLDExIEBACiAJCTJDMzRGRkZEMjc1NzFEMkYwMDU1
NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2FuZF9yb2xlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzM0RkZGODI3NTcxRDJG
MDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZF9hbmRfcm9sZS5oICov
OyB9OwogCQkyQzM0RkZGRTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9y
b2xlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzM0
RkZGOTI3NTcxRDJGMDA1NTY1Q0IgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9yb2xlLmggKi87IH07
CiAJCTJDM0QwRkM3MjcyQjkyNDEwMDVDNUEwMiAvKiBIZWFwUmVmQWxsb2NhdG9ySW5kZXhUZXN0
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzNE
MEZDNjI3MkI5MjQxMDA1QzVBMDIgLyogSGVhcFJlZkFsbG9jYXRvckluZGV4VGVzdHMuY3BwICov
OyB9OworCQkyQzQ3MzE1MjI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX21tYXBfY2FwYWJpbGl0eS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0NzMxNEYy
NzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCAqLzsgfTsKKwkJMkM0NzMx
NTMyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ3MzE1MDI3
N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaCAqLzsg
fTsKKwkJMkM0NzMxNTQyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ3MzE1
MTI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaCAqLzsgfTsKKwkJ
MkM0NzMxNjIyNzdENEM5RTAwQjYyQzQ5IC8qIFRMQ0RlY29tbWl0VGVzdHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0NzMxNjEyNzdENEM5RTAw
QjYyQzQ5IC8qIFRMQ0RlY29tbWl0VGVzdHMuY3BwICovOyB9OworCQkyQzQ3MzE2QTI3N0Q0RUE4
MDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDczMTY0Mjc3RDRDQ0MwMEI2MkM0OSAv
KiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jICovOyB9OwogCQkyQzQ4MTMyNjI3M0YzNDFB
MDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzQ4MTMyMDI3M0YzNDFBMDA2Q0FCNTUg
LyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CiAJCTJDNDgxMzI3MjczRjM0
MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxlX21lbW9yeS5jIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjEyNzNGMzQxQTAwNkNB
QjU1IC8qIHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5LmMgKi87IH07CiAJCTJDNDgxMzI4
MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzIyMjczRjM0MUEwMDZDQUI1
NSAvKiBwYXNfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLzsgfTsKQEAgLTU2OSwxMyArNTc0LDE2IEBA
CiAJCTJDNDgxMzJBMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1v
cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgx
MzI0MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCAqLzsg
fTsKIAkJMkM0ODEzMkIyNzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM0ODEzMjUy
NzNGMzQxQTAwNkNBQjU1IC8qIHBhc19leHBlbmRhYmxlX21lbW9yeS5oICovOyB9OwogCQkyQzQ4
MTMyRDI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDNDgxMzJDMjczRjQxNTkw
MDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwICovOyB9OworCQkyQzczNEM5MDI3
NzY4MEVGMDAxN0JGRkUgLyogTWVtYWxpZ25UZXN0cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQzczNEM4RjI3NzY4MEVGMDAxN0JGRkUgLyogTWVt
YWxpZ25UZXN0cy5jcHAgKi87IH07CisJCTJDODU0OEIxMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNf
dGhyZWFkX3N1c3BlbmRfbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMkM4NTQ4QUYyN0I0OEZDNTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVu
ZF9sb2NrLmggKi87IH07CisJCTJDODU0OEIyMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFk
X3N1c3BlbmRfbG9jay5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkM4NTQ4QjAyN0I0OEZDNTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVuZF9sb2Nr
LmMgKi87IH07CiAJCTJDODVEQzQxMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRl
X2ludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkM4NURDNDAyNzEyOEYwRjAwMzY3OTA1IC8qIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2lj
LmggKi87IH07CiAJCTJDOTFFNTUwMjcxOERBOUEwMEQ2N0ZGOSAvKiBwYXNfc2l6ZV9sb29rdXBf
bW9kZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5
MUU1NEYyNzE4REE5QTAwRDY3RkY5IC8qIHBhc19zaXplX2xvb2t1cF9tb2RlLmggKi87IH07Ci0J
CTJDOTcxQ0ZBMjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjgyNzhF
MTFDMzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi87IH07Ci0JCTJDOTcx
Q0ZCMjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkM5NzFDRjky
NzhFMTFDMzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggKi87
IH07Ci0JCTJDOTcxQ0ZFMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vu
c2lnbmVkX3B0ci5jIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkM5NzFDRkMyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWdu
ZWRfcHRyLmMgKi87IH07Ci0JCTJDOTcxQ0ZGMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVuaWVu
dF9jb21wYWN0X3B0cl9pbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAyQzk3MUNGRDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29t
cGFjdF9wdHJfaW5saW5lcy5oICovOyB9OwotCQkyQ0I5QjE1MzI3OEY2Qzg1MDAzQThDMUIgLyog
TG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDJDQjlCMTUyMjc4RjZDODUwMDNBOEMxQiAvKiBMb3RzT2ZIZWFwc0Fu
ZFRocmVhZHMuY3BwICovOyB9OworCQkyQ0I5QjE1ODI3OEY4NUVFMDAzQThDMUIgLyogcGFzX2xl
bmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlCMTU0Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVu
dF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovOyB9OworCQkyQ0I5QjE1OTI3OEY4NUVFMDAzQThD
MUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlCMTU1Mjc4Rjg1RUQwMDNBOEMxQiAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3B0ci5oICovOyB9OworCQkyQ0I5QjE1QTI3OEY4NUVFMDAzQThDMUIgLyog
cGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDQjlCMTU2Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNf
bGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovOyB9OworCQkyQ0I5QjE1QjI3OEY4NUVF
MDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNCOUIxNTcyNzhGODVFRTAwM0E4
QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCAqLzsgfTsKKwkJMkNCOUIx
NUQyNzhGODYxQjAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0I5QjE1QzI3OEY4NjFCMDAz
QThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCAqLzsgfTsKIAkJMkNFMkFFMzUyNzVB
OTUzRTAwRDAyQkJDIC8qIEJpdGZpdFRlc3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJDRTJBRTM0Mjc1QTk1M0UwMEQwMkJCQyAvKiBCaXRmaXRU
ZXN0cy5jcHAgKi87IH07CiAvKiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIApAQCAtMTI1
NSw2ICsxMjYzLDE2IEBACiAJCTJDMzRGRkY5Mjc1NzFEMkYwMDU1NjVDQiAvKiBwYXNfc2VncmVn
YXRlZF9wYWdlX3JvbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3Nl
Z3JlZ2F0ZWRfcGFnZV9yb2xlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDMzRG
RkZGMjc1ODE1RDAwMDU1NjVDQiAvKiBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbmZpZ19raW5kX2Fu
ZF9yb2xlLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2tpbmRfYW5kX3JvbGUuYzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkMzRDBGQzYyNzJCOTI0MTAwNUM1QTAyIC8qIEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3Rz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhlYXBSZWZBbGxvY2F0
b3JJbmRleFRlc3RzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNEYy
NzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19tbWFwX2NhcGFiaWxpdHkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gcGFzX21tYXBfY2FwYWJpbGl0eS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQkyQzQ3MzE1MDI3N0E1NDBGMDBCNjJDNDkgLyogcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2VfbWluX2hlYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkM0NzMxNTEyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV92aXJ0dWFsX3Jh
bmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTYxMjc3RDRDOUUwMEI2
MkM0OSAvKiBUTENEZWNvbW1pdFRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRMQ0RlY29tbWl0VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkyQzQ3MzE2MzI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9y
YW5nZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfZGVjb21taXRfZXhj
bHVzaW9uX3JhbmdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNDczMTY0Mjc3
RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzQ3MzE2NTI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFz
X2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJMkM0NzMxNjYyNzdENENDQzAwQjYyQzQ5IC8qIHBhc19wbGF0Zm9ybS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfcGxhdGZvcm0uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMkM0NzMxNjcyNzdENENDQzAwQjYyQzQ5IC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X2VudHJ5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTJDNDczMTY4Mjc3RDRDQ0MwMEI2MkM0OSAvKiBwYXNfY29tcGFjdF90aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJDNDgxMzIwMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNf
bGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBwYXRo
ID0gcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTJDNDgxMzIxMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfY29tcGFjdF9leHBlbmRhYmxl
X21lbW9yeS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmM7IHBhdGggPSBwYXNfY29tcGFjdF9l
eHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMy
MjI3M0YzNDFBMDA2Q0FCNTUgLyogcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19leHBlbmRhYmxlX21lbW9yeS5jOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTI2MiwxMyArMTI4MCwxNiBAQAogCQkyQzQ4MTMyNDI3M0Yz
NDFBMDA2Q0FCNTUgLyogcGFzX2xhcmdlX2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sYXJnZV9leHBlbmRhYmxlX21lbW9yeS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4MTMyNTI3M0YzNDFBMDA2Q0FCNTUgLyogcGFz
X2V4cGVuZGFibGVfbWVtb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBh
c19leHBlbmRhYmxlX21lbW9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzQ4
MTMyQzI3M0Y0MTU5MDA2Q0FCNTUgLyogRXhwZW5kYWJsZU1lbW9yeVRlc3RzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4cGVuZGFibGVNZW1vcnlUZXN0cy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDNzM0QzhGMjc3NjgwRUYwMDE3QkZGRSAv
KiBNZW1hbGlnblRlc3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IE1lbWFsaWduVGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQzg1NDhB
RjI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9zdXNwZW5kX2xvY2suaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gcGFzX3RocmVhZF9zdXNwZW5kX2xvY2suaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkM4NTQ4QjAyN0I0OEZDNTAwMTc1MEJCIC8qIHBhc190
aHJlYWRfc3VzcGVuZF9sb2NrLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBh
c190aHJlYWRfc3VzcGVuZF9sb2NrLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJD
ODVEQzQwMjcxMjhGMEYwMDM2NzkwNSAvKiBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNpYy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfdHJ5X2FsbG9jYXRlX2ludHJpbnNp
Yy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQzkxRTU0RjI3MThEQTlBMDBENjdG
RjkgLyogcGFzX3NpemVfbG9va3VwX21vZGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gcGFzX3NpemVfbG9va3VwX21vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJMkM5NzFDRjgyNzhFMTFDMzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBhY3RfcHRy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTJDOTcxQ0Y5Mjc4RTExQzMwMEM5RTEy
OSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkyQzk3MUNGQzI3OEUxMzYzMDBDOUUxMjkgLyogcGFz
X2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5j
OyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuYzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMkM5NzFDRkQyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50
X2NvbXBhY3RfcHRyX2lubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
cGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQkyQ0I5QjE1MjI3OEY2Qzg1MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExvdHNPZkhlYXBzQW5k
VGhyZWFkcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJDQjlCMTU0Mjc4Rjg1
RUQwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyQ0I5QjE1NTI3OEY4NUVEMDAzQThD
MUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gcGFzX2xlbmllbnRfY29tcGFjdF9wdHIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkNCOUIxNTYyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3Rf
dW5zaWduZWRfcHRyLmMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuYzsgcGF0aCA9IHBhc19sZW5p
ZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJDQjlCMTU3Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0cl9pbmxp
bmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IHBhc19sZW5pZW50X2NvbXBh
Y3RfcHRyX2lubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkNCOUIxNUMy
NzhGODYxQjAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb3RzT2ZIZWFwc0FuZFRocmVhZHMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0UyQUUzNDI3NUE5NTNFMDBEMDJCQkMgLyogQml0
Zml0VGVzdHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQml0Zml0
VGVzdHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZl
cmVuY2Ugc2VjdGlvbiAqLwogCkBAIC0xMzgyLDcgKzE0MDMsOCBAQAogCQkJCTBGRUI2NjY3MjMx
Qzg3QkMwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sRHVtcC5oICovLAogCQkJCTBGRUI2NjY5
MjMxREE4NkYwMDlDMDAxQiAvKiBMYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwICovLAogCQkJCTBG
RUE0NUJFMjM2Q0RBRUQwMEI1QTM3NSAvKiBMb2NrRnJlZVJlYWRQdHJQdHJIYXNodGFibGVUZXN0
cy5jcHAgKi8sCi0JCQkJMkNCOUIxNTIyNzhGNkM4NTAwM0E4QzFCIC8qIExvdHNPZkhlYXBzQW5k
VGhyZWFkcy5jcHAgKi8sCisJCQkJMkNCOUIxNUMyNzhGODYxQjAwM0E4QzFCIC8qIExvdHNPZkhl
YXBzQW5kVGhyZWFkcy5jcHAgKi8sCisJCQkJMkM3MzRDOEYyNzc2ODBFRjAwMTdCRkZFIC8qIE1l
bWFsaWduVGVzdHMuY3BwICovLAogCQkJCTBGRDIyRDA3MjJDRDhBNzUwMEIyMTg0MSAvKiBNaW5I
ZWFwVGVzdHMuY3BwICovLAogCQkJCTJCMkE1ODlCMjc0MkQ4MTUwMDVFRTA3QyAvKiBQR01UZXN0
cy5jcHAgKi8sCiAJCQkJMEY1RTQ4MzkyM0Q2OUY2MTAwNDZEQTVDIC8qIFJhY2VUZXN0cy5jcHAg
Ki8sCkBAIC0xMzkxLDYgKzE0MTMsNyBAQAogCQkJCTBGQzY4MUVCMjExMjdBMTYwMDNDNkExMyAv
KiBUZXN0SGFybmVzcy5jcHAgKi8sCiAJCQkJMEZDNjgxRUEyMTBGRURCNTAwM0M2QTEzIC8qIFRl
c3RIYXJuZXNzLmggKi8sCiAJCQkJMEY4NzAwQjIyNUIwQUIyOTAwMEUxQUJGIC8qIFRoaW5neUFu
ZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcCAqLywKKwkJCQkyQzQ3MzE2MTI3N0Q0QzlF
MDBCNjJDNDkgLyogVExDRGVjb21taXRUZXN0cy5jcHAgKi8sCiAJCQkJMEY4NzAwREUyNUIxNEM2
ODAwMEUxQUJGIC8qIFRTRFRlc3RzLmNwcCAqLywKIAkJCQkwRjUzMTgxMjIyQzk2MDlEMDAzRjdC
NkEgLyogVXRpbHNUZXN0cy5jcHAgKi8sCiAJCQkpOwpAQCAtMTUwNyw2ICsxNTMwLDggQEAKIAkJ
CQkwRjE5MzI0QzIyRUQwNEE1MDBGQkE3MTMgLyogcGFzX2NvbW1pdF9tb2RlLmggKi8sCiAJCQkJ
MEY5QTFDQTQyNTU5OTYxMjAwQzhEMTFCIC8qIHBhc19jb21taXRfc3Bhbi5jICovLAogCQkJCTBG
OUExQ0E4MjU1OTk2MTIwMEM4RDExQiAvKiBwYXNfY29tbWl0X3NwYW4uaCAqLywKKwkJCQkyQzQ3
MzE2NDI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuYyAqLywK
KwkJCQkyQzQ3MzE2NTI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0
b3IuaCAqLywKIAkJCQkwRjIxNTBFQzI0ODRCQjg2MDAwRDYzNEIgLyogcGFzX2NvbXBhY3RfYXRv
bWljX2FsbG9jYXRvcl9pbmRleF9wdHIuaCAqLywKIAkJCQkwRjlBMUQ0NjI1NUUyODQyMDBDOEQx
MUIgLyogcGFzX2NvbXBhY3RfYXRvbWljX2JpYXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLAogCQkJ
CTBGOUExRDNBMjU1QTRCQTYwMEM4RDExQiAvKiBwYXNfY29tcGFjdF9hdG9taWNfYml0Zml0X2Jp
YXNpbmdfZGlyZWN0b3J5X3B0ci5oICovLApAQCAtMTU1MSw2ICsxNTc2LDcgQEAKIAkJCQkwRjlB
MUNEMzI1NTk5NjE2MDBDOEQxMUIgLyogcGFzX2NvbXBhY3RfdGFnZ2VkX3BhZ2VfZ3JhbnVsZV91
c2VfY291bnRfcHRyLmggKi8sCiAJCQkJMEY2RDU2NDQyM0NBQTFCOTAwRjQwREJCIC8qIHBhc19j
b21wYWN0X3RhZ2dlZF9wdHIuaCAqLywKIAkJCQkwRjZENTY3ODIzQ0Q3MDU5MDBGNDBEQkIgLyog
cGFzX2NvbXBhY3RfdGFnZ2VkX3Vuc2lnbmVkX3B0ci5oICovLAorCQkJCTJDNDczMTY4Mjc3RDRD
Q0MwMEI2MkM0OSAvKiBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUu
aCAqLywKIAkJCQkwRjZENTY0RjIzQ0JEMTlCMDBGNDBEQkIgLyogcGFzX2NvbXBhY3RfdW5zaWdu
ZWRfcHRyLmggKi8sCiAJCQkJMEZDNEVDMzUyMzRBOTFFMzAwQjcxMEEzIC8qIHBhc19jb21wdXRl
X3N1bW1hcnlfb2JqZWN0X2NhbGxiYWNrcy5jICovLAogCQkJCTBGQzRFQzMwMjM0QTkxRTIwMEI3
MTBBMyAvKiBwYXNfY29tcHV0ZV9zdW1tYXJ5X29iamVjdF9jYWxsYmFja3MuaCAqLywKQEAgLTE1
NjYsNiArMTU5Miw3IEBACiAJCQkJMEYzNzNFNTEyNjU5RUE1RTAwMzRCQTk2IC8qIHBhc19kZWJ1
Z19oZWFwLmggKi8sCiAJCQkJMEZCQzYyQzAyNjVGMTJBMzAwNUE1NzIwIC8qIHBhc19kZWJ1Z19z
cGVjdHJ1bS5jICovLAogCQkJCTBGQkM2MkMxMjY1RjEyQTMwMDVBNTcyMCAvKiBwYXNfZGVidWdf
c3BlY3RydW0uaCAqLywKKwkJCQkyQzQ3MzE2MzI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX2RlY29t
bWl0X2V4Y2x1c2lvbl9yYW5nZS5oICovLAogCQkJCTBGNzgwODk4MjJGQTZGMDgwMEYzNzQ1MSAv
KiBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nLmMgKi8sCiAJCQkJMEY3ODA4OTkyMkZBNkYwODAw
RjM3NDUxIC8qIHBhc19kZWZlcnJlZF9kZWNvbW1pdF9sb2cuaCAqLywKIAkJCQkwRjVCODNCRTI0
OTE4OTlFMDBGNDEwNTIgLyogcGFzX2Rlc2lnbmF0ZWRfaW50cmluc2ljX2hlYXBfaW5saW5lcy5o
ICovLApAQCAtMTY5MywxMCArMTcyMCwxMiBAQAogCQkJCTBGQ0ZBNDk4MjM4MzUyRUIwMENDRDcy
NiAvKiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmggKi8sCiAJCQkJMEY2RDU0NzUyM0M1NzNFMDAw
RjQwREJCIC8qIHBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcC5jICovLAogCQkJCTBGNkQ1NDcy
MjNDNTczRTAwMEY0MERCQiAvKiBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXAuaCAqLywKLQkJ
CQkyQzk3MUNGRDI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF9wdHJfaW5s
aW5lcy5oICovLAotCQkJCTJDOTcxQ0Y4Mjc4RTExQzMwMEM5RTEyOSAvKiBwYXNfbGVuaWVudF9j
b21wYWN0X3B0ci5oICovLAotCQkJCTJDOTcxQ0ZDMjc4RTEzNjMwMEM5RTEyOSAvKiBwYXNfbGVu
aWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5jICovLAotCQkJCTJDOTcxQ0Y5Mjc4RTExQzMwMEM5
RTEyOSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3Vuc2lnbmVkX3B0ci5oICovLAorCQkJCTJDNDcz
MTUwMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcC5o
ICovLAorCQkJCTJDNDczMTUxMjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9y
YW5nZS5oICovLAorCQkJCTJDQjlCMTU3Mjc4Rjg1RUUwMDNBOEMxQiAvKiBwYXNfbGVuaWVudF9j
b21wYWN0X3B0cl9pbmxpbmVzLmggKi8sCisJCQkJMkNCOUIxNTUyNzhGODVFRDAwM0E4QzFCIC8q
IHBhc19sZW5pZW50X2NvbXBhY3RfcHRyLmggKi8sCisJCQkJMkNCOUIxNTYyNzhGODVFRTAwM0E4
QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgKi8sCisJCQkJMkNCOUIx
NTQyNzhGODVFRDAwM0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmgg
Ki8sCiAJCQkJMEY4QTgwMjcyNUVDNTg4ODAwNzkwQjRBIC8qIHBhc19saW5lX3dvcmRfY29uZmln
LmggKi8sCiAJCQkJMEYzMUE2NDMyM0UzNTA5RTAwMkMwQ0EzIC8qIHBhc19saXN0X2RpcmVjdGlv
bi5oICovLAogCQkJCTBGRDQ4QjAyMjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbmZpZ19raW5kLmggKi8sCkBAIC0xNzIzLDYgKzE3NTIsNyBAQAogCQkJCTBGQzY4MjAw
MjEyMTBCMTkwMDNDNkExMyAvKiBwYXNfbWVnYXBhZ2VfY2FjaGUuYyAqLywKIAkJCQkwRkM2ODFG
RDIxMjEwQjE4MDAzQzZBMTMgLyogcGFzX21lZ2FwYWdlX2NhY2hlLmggKi8sCiAJCQkJMEZEMjJD
RkIyMkNBRjE2NDAwQjIxODQxIC8qIHBhc19taW5faGVhcC5oICovLAorCQkJCTJDNDczMTRGMjc3
QTU0MEYwMEI2MkM0OSAvKiBwYXNfbW1hcF9jYXBhYmlsaXR5LmggKi8sCiAJCQkJMEZENDhCMTAy
M0E5QUJCMTAwMjZDNDZEIC8qIHBhc19tb25vdG9uaWNfdGltZS5jICovLAogCQkJCTBGRDQ4QUZE
MjNBOUFCQjAwMDI2QzQ2RCAvKiBwYXNfbW9ub3RvbmljX3RpbWUuaCAqLywKIAkJCQkwRjA5MjI2
OTIyQjA3QzIxMDA3RDVEM0EgLyogcGFzX211dGF0aW9uX2NvdW50LmggKi8sCkBAIC0xNzU3LDYg
KzE3ODcsNyBAQAogCQkJCTBGNkQ1NDczMjNDNTczRTAwMEY0MERCQiAvKiBwYXNfcGh5c2ljYWxf
bWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZS5oICovLAogCQkJCTBGRjI0OEY3MjJGQzlFREEw
MDc3MjAyRSAvKiBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uLmMgKi8sCiAJCQkJMEY3
ODA4ODYyMkZBMkU0OTAwRjM3NDUxIC8qIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24u
aCAqLywKKwkJCQkyQzQ3MzE2NjI3N0Q0Q0NDMDBCNjJDNDkgLyogcGFzX3BsYXRmb3JtLmggKi8s
CiAJCQkJMEZERUE1NzgyMjhFMjM0NTAwODVFMzQwIC8qIHBhc19wcmltaXRpdmVfaGVhcF9yZWYu
YyAqLywKIAkJCQkwRkRFQTU3NzIyOEUyMzQ0MDA4NUUzNDAgLyogcGFzX3ByaW1pdGl2ZV9oZWFw
X3JlZi5oICovLAogCQkJCTJCMkE1ODk4Mjc0MkQ4MDIwMDVFRTA3QyAvKiBwYXNfcHJvYmFiaWxp
c3RpY19ndWFyZF9tYWxsb2NfYWxsb2NhdG9yLmMgKi8sCkBAIC0xODYzLDYgKzE4OTQsNyBAQAog
CQkJCTBGQzY4MjE5MjEyNTM2MjcwMDNDNkExMyAvKiBwYXNfc3RyZWFtLmggKi8sCiAJCQkJMEZD
NEVDMkUyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmMgKi8sCiAJCQkJMEZD
NEVDMzMyMzRBOTFFMjAwQjcxMEEzIC8qIHBhc19zdHJpbmdfc3RyZWFtLmggKi8sCisJCQkJMkM0
NzMxNjcyNzdENENDQzAwQjYyQzQ5IC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2Vu
dHJ5LmggKi8sCiAJCQkJMEYxNDg3MUUyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfa2luZC5oICovLAogCQkJCTBGQTVFNDUxMjQ5MkQ1QjkwMENF
OTYyQSAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMgKi8sCiAJCQkJMEZB
NUU0NTMyNDkyRDVCOTAwQ0U5NjJBIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUuaCAqLywKQEAgLTE4NzIsNiArMTkwNCw4IEBACiAJCQkJMEY3RjUxQkQyMzE1OUVDMDAwNzU1
MkFFIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5oICovLAogCQkJCTBGQzY4MUM5MjEw
RjdDOUYwMDNDNkExMyAvKiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLmMgKi8sCiAJCQkJMEZDNjgx
QzQyMTBGN0M5RTAwM0M2QTEzIC8qIHBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCAqLywKKwkJCQky
Qzg1NDhCMDI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9zdXNwZW5kX2xvY2suYyAqLywK
KwkJCQkyQzg1NDhBRjI3QjQ4RkM1MDAxNzUwQkIgLyogcGFzX3RocmVhZF9zdXNwZW5kX2xvY2su
aCAqLywKIAkJCQkwRjZENTQ3MTIzQzU3M0UwMDBGNDBEQkIgLyogcGFzX3RpbnlfbGFyZ2VfbWFw
X2VudHJ5LmggKi8sCiAJCQkJMEYzMUE2NjkyM0U4RTU5NDAwMkMwQ0EzIC8qIHBhc190cmVlX2Rp
cmVjdGlvbi5oICovLAogCQkJCTBGOEE4MDBDMjVDRjY0QzkwMDc5MEI0QSAvKiBwYXNfdHJpX3N0
YXRlLmggKi8sCkBAIC0yMDAzLDYgKzIwMzcsNyBAQAogCQkJCTBGOEE4MTAzMjVGNkE3OTUwMDc5
MEI0QSAvKiBob3RiaXRfaGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGOEE4MTA2
MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjhBODEwMjI1RjZBNzk1MDA3OTBCNEEgLyogaG90Yml0X2hlYXBfaW5uYXJkcy5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMkNCOUIxNTkyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19sZW5pZW50
X2NvbXBhY3RfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUU3NzIyOUYwMTBGMDA0RjQx
NjYgLyogaXNvX2hlYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTU2MjI5NzQzMzUwMDRG
NDE2NiAvKiBpc29faGVhcF9jb25maWcuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUZFN0E0MjVC
NjE0RjIwMDE4NTlGQyAvKiBpc29faGVhcF9pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTIw
NjIsNyArMjA5Nyw2IEBACiAJCQkJMEY5QTFENDEyNTVBRjI3OTAwQzhEMTFCIC8qIHBhc19iaXRm
aXRfdmlld19pbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkU3RUUwNDIyOTYwMTQyMDA0
RjQxNjYgLyogcGFzX2JpdHZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMDUyMjk2
MDE0MjAwNEY0MTY2IC8qIHBhc19ib290c3RyYXBfZnJlZV9oZWFwLmggaW4gSGVhZGVycyAqLywK
LQkJCQkyQzk3MUNGQjI3OEUxMUMzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNp
Z25lZF9wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNUI2MDg0MjM1RTU3MjAwMENBRTYyOSAv
KiBwYXNfYm9vdHN0cmFwX2hlYXBfcGFnZV9wcm92aWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEZFN0VFMDgyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19jYXJlc19hYm91dF9zaXplX21vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMzFBNjY2MjNFOEE5NDIwMDJDMENBMyAvKiBwYXNfY2FydGVz
aWFuX3RyZWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjEwNiw2ICsyMTQwLDcgQEAKIAkJCQkwRjZE
NTY2RDIzQ0JEMTlEMDBGNDBEQkIgLyogcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmll
d19wdHIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzE1MjY5Qjc1MTgwMDY4ODdBOSAvKiBw
YXNfY29tcGFjdF9zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X3B0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY2RDU2NjUyM0NCRDE5RDAwRjQwREJCIC8qIHBhc19jb21wYWN0X3NlZ3JlZ2F0ZWRf
dmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkM0NzMxNTIyNzdBNTQwRjAwQjYyQzQ5IC8qIHBh
c19tbWFwX2NhcGFiaWxpdHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNkQ1NjRFMjNDQUJBNjUw
MEY0MERCQiAvKiBwYXNfY29tcGFjdF90YWdnZWRfYXRvbWljX3B0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEY5QTFEMUUyNTU5OTYxNzAwQzhEMTFCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wYWdl
X2dyYW51bGVfdXNlX2NvdW50X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY2RDU2NEIyM0NB
QTFCQTAwRjQwREJCIC8qIHBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCBpbiBIZWFkZXJzICovLApA
QCAtMjExMyw2ICsyMTQ4LDcgQEAKIAkJCQkwRjZENTY2MjIzQ0JEMTlEMDBGNDBEQkIgLyogcGFz
X2NvbXBhY3RfdW5zaWduZWRfcHRyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkM0RUMzOTIzNEE5
MUUzMDBCNzEwQTMgLyogcGFzX2NvbXB1dGVfc3VtbWFyeV9vYmplY3RfY2FsbGJhY2tzLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRkU3RUUwQTIyOTYwMTQyMDA0RjQxNjYgLyogcGFzX2NvbmZpZy5o
IGluIEhlYWRlcnMgKi8sCisJCQkJMkM0NzMxNTMyNzdBNTQwRjAwQjYyQzQ5IC8qIHBhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjg1RUZEQTIy
RTJCRUM3MDAzQTM2MkIgLyogcGFzX2NvbmZpZ19wcmVmaXguaCBpbiBIZWFkZXJzICovLAogCQkJ
CTBGMzI5QTJCMjNGMUQ2MzYwMEExMzNDNCAvKiBwYXNfY3JlYXRlX2Jhc2ljX2hlYXBfcGFnZV9j
YWNoZXNfd2l0aF9yZXNlcnZlZF9tZW1vcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRTdFRTY2
MjI5RTE0RkEwMDRGNDE2NiAvKiBwYXNfZGVhbGxvY2F0ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
MTI4LDYgKzIxNjQsNyBAQAogCQkJCTBGRUE0NUMyMjM2Q0U4OUQwMEI1QTM3NSAvKiBwYXNfZHlu
YW1pY19wcmltaXRpdmVfaGVhcF9tYXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMzI5QTJEMjNG
MUQ2MzYwMEExMzNDNCAvKiBwYXNfZW5zdXJlX2hlYXBfZm9yY2VkX2ludG9fcmVzZXJ2ZWRfbWVt
b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjMyOUEyRTIzRjFENjM2MDBBMTMzQzQgLyogcGFz
X2Vuc3VyZV9oZWFwX3dpdGhfcGFnZV9jYWNoZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTJDNDcz
MTU0Mjc3QTU0MEYwMEI2MkM0OSAvKiBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEY0RjYxQjEyNUEzRDBCQjAwOEI0QTgyIC8qIHBhc19lbnVtZXJhYmxlX3Bh
Z2VfbWFsbG9jLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjRGNjFCNTI1QTNEMEJCMDA4QjRBODIg
LyogcGFzX2VudW1lcmFibGVfcmFuZ2VfbGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY0RjYx
NzgyNTlEMTA2NTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdGVfYml0Zml0X2hlYXBzLmggaW4gSGVh
ZGVycyAqLywKQEAgLTIxNTksNyArMjE5Niw2IEBACiAJCQkJMEZENDhCNTgyM0E5QUJCMzAwMjZD
NDZEIC8qIHBhc19mdWxsX2FsbG9jX2JpdHMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjNB
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfZnVsbF9hbGxvY19iaXRzX2lubGluZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGRjA4RjNBMjJBNUI0MDMwMDM4NjU3NSAvKiBwYXNfZ2VuZXJpY19sYXJn
ZV9mcmVlX2hlYXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTJDOTcxQ0ZBMjc4RTExQzMwMEM5RTEy
OSAvKiBwYXNfbGVuaWVudF9jb21wYWN0X3B0ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VF
NjAyMjlFMTRGQTAwNEY0MTY2IC8qIHBhc19nZXRfYWxsb2NhdGlvbl9zaXplLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwRkU3RUU2NDIyOUUxNEZBMDA0RjQxNjYgLyogcGFzX2dldF9oZWFwLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjlBMUQ0RDI1NUYyQ0Q3MDBDOEQxMUIgLyogcGFzX2dldF9vYmpl
Y3Rfa2luZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yMTkxLDYgKzIyMjcsNyBAQAogCQkJCTJDNDgx
MzJBMjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfbGFyZ2VfZXhwZW5kYWJsZV9tZW1vcnkuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTBGRTdFRTFFMjI5NjAxNDIwMDRGNDE2NiAvKiBwYXNfbGFyZ2VfZnJl
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMUMyMjk2MDE0MjAwNEY0MTY2IC8qIHBhc19s
YXJnZV9mcmVlX2hlYXBfY29uZmlnLmggaW4gSGVhZGVycyAqLywKKwkJCQkyQ0I5QjE1ODI3OEY4
NUVFMDAzQThDMUIgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNjZENTRCMjQ4NzYwQUYwMEZDNzM0NyAvKiBwYXNfbGFyZ2VfZnJlZV9o
ZWFwX2RlY2xhcmF0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKIAkJCQkwRjc4MDg5MzIyRkE1MzQx
MDBGMzc0NTEgLyogcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjY2RDU0QzI0ODc2MEI0MDBGQzczNDcgLyogcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZpbml0aW9ucy5kZWYgaW4gSGVhZGVycyAqLywKQEAgLTIyMTUsNiArMjI1Miw3
IEBACiAJCQkJMEY0NUQ1QUIyNkFCNzMxNDAwQzM1RDkzIC8qIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2NhdmVuZ2VyX2RhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzEyMjY5Qjc1MTgwMDY4
ODdBOSAvKiBwYXNfbG9jYWxfdmlld19jYWNoZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxNDg3
MUYyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19sb2NhbF92aWV3X2NhY2hlX25vZGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTJDODU0OEIxMjdCNDhGQzUwMDE3NTBCQiAvKiBwYXNfdGhyZWFkX3N1c3Bl
bmRfbG9jay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFN0VFMjEyMjk2MDE0MjAwNEY0MTY2IC8q
IHBhc19sb2NrLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVBNDVCRDIzNkNENUFDMDBCNUEzNzUg
LyogcGFzX2xvY2tfZnJlZV9yZWFkX3B0cl9wdHJfaGFzaHRhYmxlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwRjlFOTQ1OTIzNDUyMjYyMDA5RkFGREQgLyogcGFzX2xvZy5oIGluIEhlYWRlcnMgKi8s
CkBAIC0yMjY3LDcgKzIzMDUsNiBAQAogCQkJCTBGNEY2MEZCMjU5NzlCQzgwMDhCNEE4MiAvKiBw
YXNfcm9vdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYxOTMyNkMyMkY3M0U4NTAwRkJBNzEzIC8q
IHBhc19zY2F2ZW5nZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNjgxMjcyMjJCRDRCRjQwMDM2
QTAyQiAvKiBwYXNfc2VnbWVudGVkX3ZlY3Rvci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMkM5NzFD
RkYyNzhFMTM2MzAwQzlFMTI5IC8qIHBhc19sZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGMTQ4NzEwMjY5Qjc1MTgwMDY4ODdBOSAvKiBwYXNfc2VncmVn
YXRlZF9kZWFsbG9jYXRpb25fbW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCNTYyM0E5
QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMEZENDhCNDcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV9iaXRfcmVmZXJlbmNlLmggaW4gSGVhZGVycyAqLywKQEAgLTIyOTgsNiArMjMzNSw3IEBACiAJ
CQkJMEZENDhCNTcyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdl
X2RpcmVjdG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZENDhCNjAyM0E5QUJCMzAwMjZDNDZE
IC8qIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjVF
NUNGMjIzQkZCRkI5MDBBQTBCNkYgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfaW5saW5l
cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkNCOUIxNUIyNzhGODVFRTAwM0E4QzFCIC8qIHBhc19s
ZW5pZW50X2NvbXBhY3RfcHRyX2lubGluZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4QjY0
MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYxNDg3MjEyNjlGNUZDQTAwNjg4N0E5IC8qIHBhc19zZWdyZWdhdGVk
X3NpemVfZGlyZWN0b3J5X2NyZWF0aW9uX21vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRDQ4
QjU0MjNBOUFCQjMwMDI2QzQ2RCAvKiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeV9pbmxp
bmVzLmggaW4gSGVhZGVycyAqLywKQEAgLTI2MDgsMTQgKzI2NDYsMTYgQEAKIAkJCQkwRkM2ODIz
ODIxMjlENEVFMDAzQzZBMTMgLyogQ29hbGlnblRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTJDNDgxMzJEMjczRjQxNTkwMDZDQUI1NSAvKiBFeHBlbmRhYmxlTWVtb3J5VGVzdHMuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZDNjgyMzEyMTI5Q0I0NjAwM0M2QTEzIC8qIEV4dGVuZGVkR0NE
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMkNCOUIxNUQyNzhGODYxQjAwM0E4QzFCIC8q
IExvdHNPZkhlYXBzQW5kVGhyZWFkcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM2ODIxNTIx
MjQ4QTc5MDAzQzZBMTMgLyogSGFzaHRhYmxlVGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MkMzRDBGQzcyNzJCOTI0MTAwNUM1QTAyIC8qIEhlYXBSZWZBbGxvY2F0b3JJbmRleFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTBGRUE0NUM1MjM2RTEwQUEwMEI1QTM3NSAvKiBJc29EeW5h
bWljUHJpbWl0aXZlSGVhcFRlc3RzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQTE4NTQ2MjM2
QjNDODIwMDM2MDlBRCAvKiBJc29IZWFwQ2hhb3NUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkwRkYyNDhGRDIzMENDNENCMDA3NzIwMkUgLyogSXNvSGVhcFBhZ2VTaGFyaW5nVGVzdHMuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJMkM3MzRDOTAyNzc2ODBFRjAwMTdCRkZFIC8qIE1lbWFsaWdu
VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNjcyM0I1ODk5MTAwMjZDNDZEIC8q
IElzb0hlYXBQYXJ0aWFsQW5kQmFzZWxpbmVUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKLQkJCQky
Q0I5QjE1MzI3OEY2Qzg1MDAzQThDMUIgLyogTG90c09mSGVhcHNBbmRUaHJlYWRzLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTBGNUI2MDk0MjM1RTkxOTkwMENBRTYyOSAvKiBJc29IZWFwUmVzZXJ2
ZWRNZW1vcnlUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyQzQ3MzE2MjI3N0Q0QzlFMDBC
NjJDNDkgLyogVExDRGVjb21taXRUZXN0cy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyQ0UyQUUz
NTI3NUE5NTNFMDBEMDJCQkMgLyogQml0Zml0VGVzdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEY1MTkzRTcyNjZBRTVENDAwNDgzQTJDIC8qIEpJVEhlYXBUZXN0cy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkwRkM2NDE5MTIxMzc0NUZBMDA0MENFNUUgLyogTGFyZ2VGcmVlSGVhcFRlc3RzLmNw
cCBpbiBTb3VyY2VzICovLApAQCAtMjY0MSw5ICsyNjgxLDExIEBACiAJCQkJMEY4QTgwNjgyNUVF
Q0MxRDAwNzkwQjRBIC8qIGJtYWxsb2NfaGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAogCQkJ
CTJDMTFFODkxMjcyOEE4OTMwMDIxNjJEMCAvKiBibWFsbG9jX3R5cGUuYyBpbiBTb3VyY2VzICov
LAogCQkJCTBGOEE4MTA0MjVGNkE3OTUwMDc5MEI0QSAvKiBob3RiaXRfaGVhcC5jIGluIFNvdXJj
ZXMgKi8sCisJCQkJMkM4NTQ4QjIyN0I0OEZDNTAwMTc1MEJCIC8qIHBhc190aHJlYWRfc3VzcGVu
ZF9sb2NrLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRjhBODEwMTI1RjZBNzk1MDA3OTBCNEEgLyog
aG90Yml0X2hlYXBfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkU3RUU3NjIyOUYwMTBG
MDA0RjQxNjYgLyogaXNvX2hlYXAuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFRTU3MjI5NzQz
MzUwMDRGNDE2NiAvKiBpc29faGVhcF9jb25maWcuYyBpbiBTb3VyY2VzICovLAorCQkJCTJDNDcz
MTZBMjc3RDRFQTgwMEI2MkM0OSAvKiBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEY1RTVDRjAyM0JFRjU1MzAwQUEwQjZGIC8qIGlzb190ZXN0X2hlYXAu
YyBpbiBTb3VyY2VzICovLAogCQkJCTBGNUU1Q0VDMjNCRUYzNjAwMEFBMEI2RiAvKiBpc29fdGVz
dF9oZWFwX2NvbmZpZy5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY1OUEzOUUyNjY4NDcwRTAwQTM4
NjU3IC8qIGppdF9oZWFwLmMgaW4gU291cmNlcyAqLywKQEAgLTI2OTcsNyArMjczOSw2IEBACiAJ
CQkJMEY0RjYxMUIyNTk4MzhCMTAwOEI0QTgyIC8qIHBhc19lbnVtZXJhdG9yX3JlZ2lvbi5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEYxOTMyNTYyMkVEMDRBNjAwRkJBNzEzIC8qIHBhc19lcG9jaC5j
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCMzQyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19leGNs
dXNpdmVfdmlld190ZW1wbGF0ZV9tZW1vX3RhYmxlLmMgaW4gU291cmNlcyAqLywKLQkJCQkyQzk3
MUNGRTI3OEUxMzYzMDBDOUUxMjkgLyogcGFzX2xlbmllbnRfY29tcGFjdF91bnNpZ25lZF9wdHIu
YyBpbiBTb3VyY2VzICovLAogCQkJCTJDNDgxMzI4MjczRjM0MUEwMDZDQUI1NSAvKiBwYXNfZXhw
ZW5kYWJsZV9tZW1vcnkuYyBpbiBTb3VyY2VzICovLAogCQkJCTBGRTdFREJBMjI5NjAxNDIwMDRG
NDE2NiAvKiBwYXNfZXh0ZW5kZWRfZ2NkLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkYwOEY0MzIy
QTYyN0MxMDAzODY1NzUgLyogcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwLmMgaW4gU291cmNlcyAq
LywKQEAgLTI3NTcsNiArMjc5OCw3IEBACiAJCQkJMEY5N0U2MzAyMkE5QUFDMTAwQzM1NUY4IC8q
IHBhc19zZWdyZWdhdGVkX3BhZ2VfY29uZmlnLmMgaW4gU291cmNlcyAqLywKIAkJCQkwRkQ0OEI1
RTIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfa2luZC5jIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCNEMyM0E5QUJCMzAwMjZDNDZEIC8qIHBhc19zZWdyZWdh
dGVkX3BhcnRpYWxfdmlldy5jIGluIFNvdXJjZXMgKi8sCisJCQkJMkNCOUIxNUEyNzhGODVFRTAw
M0E4QzFCIC8qIHBhc19sZW5pZW50X2NvbXBhY3RfdW5zaWduZWRfcHRyLmMgaW4gU291cmNlcyAq
LywKIAkJCQkwRkQ0OEI0ODIzQTlBQkIzMDAyNkM0NkQgLyogcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVk
X2hhbmRsZS5jIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZENDhCMkUyM0E5QUJCMzAwMjZDNDZEIC8q
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9wYWdlX2RpcmVjdG9yeS5jIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMkMzNDAwMDIyNzU4MTY4NzAwNTU2NUNCIC8qIHBhc19wYWdlX2Jhc2VfY29uZmlnLmMgaW4g
U291cmNlcyAqLywKQEAgLTI4OTUsNyArMjkzNyw3IEBACiAJCQkJCSJERUJVRz0xIiwKIAkJCQkJ
IiQoaW5oZXJpdGVkKSIsCiAJCQkJKTsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAx
MC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1UTF9GQVNU
X01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKIAkJCQlT
REtST09UID0gbWFjb3N4OwpAQCAtMjkxMSw3ICsyOTUzLDcgQEAKIAkJCQlEWUxJQl9DT01QQVRJ
QklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRfVkVSU0lPTiA9IDE7CiAJCQkJ
RVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0g
MTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlNVExfRkFT
VF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CiAJCQkJ
U0RLUk9PVCA9IG1hY29zeDsKQEAgLTI5MzMsNyArMjk3NSw3IEBACiAJCQkJCSJERUJVRz0xIiwK
IAkJCQkJIiQoaW5oZXJpdGVkKSIsCiAJCQkJKTsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJH
RVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJCU1U
TF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsK
IAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMjk1MSw3ICsyOTkzLDcgQEAKIAkJCQlEWUxJQl9D
T01QQVRJQklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRfVkVSU0lPTiA9IDE7
CiAJCQkJRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFS
R0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJCQlN
VExfRkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7
CiAJCQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTI5NzMsNyArMzAxNSw3IEBACiAJCQkJCSJERUJV
Rz0xIiwKIAkJCQkJIiQoaW5oZXJpdGVkKSIsCiAJCQkJKTsKLQkJCQlNQUNPU1hfREVQTE9ZTUVO
VF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwog
CQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05B
TUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMjk5MSw3ICszMDMzLDcgQEAKIAkJCQlE
WUxJQl9DT01QQVRJQklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRfVkVSU0lP
TiA9IDE7CiAJCQkJRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Ci0JCQkJTUFDT1NYX0RFUExPWU1F
TlRfVEFSR0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsK
IAkJCQlNVExfRkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9O
QU1FKSI7CiAJCQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTMwMTMsNyArMzA1NSw3IEBACiAJCQkJ
CSJERUJVRz0xIiwKIAkJCQkJIiQoaW5oZXJpdGVkKSIsCiAJCQkJKTsKLQkJCQlNQUNPU1hfREVQ
TE9ZTUVOVF9UQVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAx
MS4wOwogCQkJCU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFS
R0VUX05BTUUpIjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMzAzMSw3ICszMDczLDcgQEAK
IAkJCQlEWUxJQl9DT01QQVRJQklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRf
VkVSU0lPTiA9IDE7CiAJCQkJRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Ci0JCQkJTUFDT1NYX0RF
UExPWU1FTlRfVEFSR0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0g
MTEuMDsKIAkJCQlNVExfRkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRB
UkdFVF9OQU1FKSI7CiAJCQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTMxNTYsNyArMzE5OCw3IEBA
CiAJCQkJR0NDX1dBUk5fVU5LTk9XTl9QUkFHTUFTID0gWUVTOwogCQkJCUdDQ19XQVJOX1VOVVNF
RF9MQUJFTCA9IFlFUzsKIAkJCQlHQ0NfV0FSTl9VTlVTRURfUEFSQU1FVEVSID0gWUVTOwotCQkJ
CU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0OworCQkJCU1BQ09TWF9ERVBMT1lNRU5U
X1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9IFlFUzsKIAkJCQlPVEhFUl9DRkxB
R1MgPSAiLURMSUJQQVM9MSI7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsK
QEAgLTMxODksNyArMzIzMSw3IEBACiAJCQkJR0NDX1dBUk5fVU5LTk9XTl9QUkFHTUFTID0gWUVT
OwogCQkJCUdDQ19XQVJOX1VOVVNFRF9MQUJFTCA9IFlFUzsKIAkJCQlHQ0NfV0FSTl9VTlVTRURf
UEFSQU1FVEVSID0gWUVTOwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjE0Owor
CQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0ZBU1RfTUFUSCA9
IFlFUzsKIAkJCQlPVEhFUl9DRkxBR1MgPSAiLURMSUJQQVM9MSI7CiAJCQkJUFJPRFVDVF9OQU1F
ID0gIiQoVEFSR0VUX05BTUUpIjsKQEAgLTMyMTMsNyArMzI1NSw3IEBACiAJCQkJCSJERUJVRz0x
IiwKIAkJCQkJIiQoaW5oZXJpdGVkKSIsCiAJCQkJKTsKLQkJCQlNQUNPU1hfREVQTE9ZTUVOVF9U
QVJHRVQgPSAxMC4xNDsKKwkJCQlNQUNPU1hfREVQTE9ZTUVOVF9UQVJHRVQgPSAxMS4wOwogCQkJ
CU1UTF9GQVNUX01BVEggPSBZRVM7CiAJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKIAkJCQlTREtST09UID0gbWFjb3N4OwpAQCAtMzIzMSw3ICszMjczLDcgQEAKIAkJCQlEWUxJ
Ql9DT01QQVRJQklMSVRZX1ZFUlNJT04gPSAxOwogCQkJCURZTElCX0NVUlJFTlRfVkVSU0lPTiA9
IDE7CiAJCQkJRVhFQ1VUQUJMRV9QUkVGSVggPSBsaWI7Ci0JCQkJTUFDT1NYX0RFUExPWU1FTlRf
VEFSR0VUID0gMTAuMTQ7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VUID0gMTEuMDsKIAkJ
CQlNVExfRkFTVF9NQVRIID0gWUVTOwogCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1F
KSI7CiAJCQkJU0RLUk9PVCA9IG1hY29zeDsKQEAgLTMyOTMsNyArMzMzNSw3IEBACiAJCQkJR0ND
X1dBUk5fVU5VU0VEX0ZVTkNUSU9OID0gWUVTOwogCQkJCUdDQ19XQVJOX1VOVVNFRF9WQVJJQUJM
RSA9IFlFUzsKIAkJCQlMTFZNX0RJUiA9ICIkKFNSQ1JPT1QpL2NsYW5nK2xsdm0taW50ZXJuYWwi
OwotCQkJCU1BQ09TWF9ERVBMT1lNRU5UX1RBUkdFVCA9IDEwLjEzOworCQkJCU1BQ09TWF9ERVBM
T1lNRU5UX1RBUkdFVCA9IDExLjA7CiAJCQkJTVRMX0VOQUJMRV9ERUJVR19JTkZPID0gSU5DTFVE
RV9TT1VSQ0U7CiAJCQkJT05MWV9BQ1RJVkVfQVJDSCA9IFlFUzsKIAkJCQlTREtST09UID0gbWFj
b3N4LmludGVybmFsOwpAQCAtMzM1Miw3ICszMzk0LDcgQEAKIAkJCQlHQ0NfV0FSTl9VTlVTRURf
RlVOQ1RJT04gPSBZRVM7CiAJCQkJR0NDX1dBUk5fVU5VU0VEX1ZBUklBQkxFID0gWUVTOwogCQkJ
CUxMVk1fRElSID0gIiQoU1JDUk9PVCkvY2xhbmcrbGx2bS1pbnRlcm5hbCI7Ci0JCQkJTUFDT1NY
X0RFUExPWU1FTlRfVEFSR0VUID0gMTAuMTM7CisJCQkJTUFDT1NYX0RFUExPWU1FTlRfVEFSR0VU
ID0gMTEuMDsKIAkJCQlNVExfRU5BQkxFX0RFQlVHX0lORk8gPSBOTzsKIAkJCQlTREtST09UID0g
bWFjb3N4LmludGVybmFsOwogCQkJCVNVUFBPUlRFRF9QTEFURk9STVMgPSAibWFjb3N4IGlwaG9u
ZW9zIjsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVh
cF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9ibWFsbG9jX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL2JtYWxsb2NfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5
KQpAQCAtMzgsNiArMzgsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAjZGVmaW5lIEJNQUxMT0Nf
TUlOQUxJR05fU0hJRlQgKChzaXplX3QpNCkKICNkZWZpbmUgQk1BTExPQ19NSU5BTElHTl9TSVpF
ICgoc2l6ZV90KTEgPDwgQk1BTExPQ19NSU5BTElHTl9TSElGVCkKIAorI2RlZmluZSBCTUFMTE9D
X1NNQUxMX1NIQVJJTkdfU0hJRlQgNAorCiBQQVNfQVBJIHZvaWQgYm1hbGxvY19oZWFwX2NvbmZp
Z19hY3RpdmF0ZSh2b2lkKTsKIAogI2RlZmluZSBCTUFMTE9DX0hFQVBfQ09ORklHIFBBU19CQVNJ
Q19IRUFQX0NPTkZJRyggXApAQCAtNDgsNyArNTAsNyBAQCBQQVNfQVBJIHZvaWQgYm1hbGxvY19o
ZWFwX2NvbmZpZ19hY3RpdmF0CiAgICAgLmR1bXBfdHlwZSA9IGJtYWxsb2NfdHlwZV9hc19oZWFw
X3R5cGVfZHVtcCwgXAogICAgIC5jaGVja19kZWFsbG9jYXRpb24gPSBmYWxzZSwgXAogICAgIC5z
bWFsbF9zZWdyZWdhdGVkX21pbl9hbGlnbl9zaGlmdCA9IEJNQUxMT0NfTUlOQUxJR05fU0hJRlQs
IFwKLSAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gUEFTX1NNQUxMX1NIQVJJ
TkdfU0hJRlQsIFwKKyAgICAuc21hbGxfc2VncmVnYXRlZF9zaGFyaW5nX3NoaWZ0ID0gQk1BTExP
Q19TTUFMTF9TSEFSSU5HX1NISUZULCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfcGFnZV9zaXpl
ID0gUEFTX1NNQUxMX1BBR0VfREVGQVVMVF9TSVpFLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRf
d2FzdGVhZ2VfaGFuZGljYXAgPSBQQVNfU01BTExfUEFHRV9IQU5ESUNBUCwgXAogICAgIC5zbWFs
bF9leGNsdXNpdmVfc2VncmVnYXRlZF9sb2dnaW5nX21vZGUgPSBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fc2l6ZV9vYmxpdmlvdXNfbG9nZ2luZ19tb2RlLCBcCkluZGV4OiBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuYwkocmV2aXNp
b24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBf
Y29uZmlnLmMJKHdvcmtpbmcgY29weSkKQEAgLTIyMyw3ICsyMjMsNyBAQCBwYXNfYWxpZ25lZF9h
bGxvY2F0aW9uX3Jlc3VsdCBqaXRfYWxpZ25lCiAgICAgYWxpZ25lZF9zaXplID0gcGFzX3JvdW5k
X3VwX3RvX3Bvd2VyX29mXzIoc2l6ZSwgYWxpZ25tZW50LmFsaWdubWVudCk7CiAKICAgICBhbGxv
Y2F0aW9uX3Jlc3VsdCA9IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNo
ZV90cnlfYWxsb2NhdGVfd2l0aF9hbGlnbm1lbnQoCi0gICAgICAgICZqaXRfbGFyZ2VfZnJlc2hf
bWVtb3J5X2hlYXAsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBmYWxzZSk7CisgICAgICAgICZq
aXRfbGFyZ2VfZnJlc2hfbWVtb3J5X2hlYXAsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBjb25m
aWcsIGZhbHNlKTsKICAgICBpZiAoIWFsbG9jYXRpb25fcmVzdWx0LmRpZF9zdWNjZWVkKQogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9qaXRfaGVhcF9jb25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9qaXRfaGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvaml0X2hlYXBfY29uZmlnLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE3Myw2ICsxNzMsNyBAQCBQQVNfSEVBUF9DT05GSUdfU1BFQ0lBTElaQVRJT05f
REVDTEFSQVRJCiAgICAgICAgIC5hbGlnbmVkX2FsbG9jYXRvciA9IGppdF9hbGlnbmVkX2FsbG9j
YXRvciwgXAogICAgICAgICAuYWxpZ25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29s
ID0gdHJ1ZSwgXAogICAgICAgICAuZGVhbGxvY2F0b3IgPSBOVUxMLCBcCisgICAgICAgIC5tbWFw
X2NhcGFiaWxpdHkgPSBwYXNfbWF5X25vdF9tbWFwLCBcCiAgICAgICAgIC5yb290X2RhdGEgPSAm
aml0X3Jvb3RfZGF0YSwgXAogICAgICAgICAucHJlcGFyZV90b19lbnVtZXJhdGUgPSBqaXRfcHJl
cGFyZV90b19lbnVtZXJhdGUsIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVj
dG9yeSA9IGppdF9oZWFwX2NvbmZpZ19mb3JfZWFjaF9zaGFyZWRfcGFnZV9kaXJlY3RvcnksIFwK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9j
b25maWcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9t
aW5hbGlnbjMyX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL21pbmFsaWduMzJfaGVhcF9jb25maWcuaAkod29ya2luZyBj
b3B5KQpAQCAtNDEsNiArNDEsOCBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAjZGVmaW5lIE1JTkFM
SUdOMzJfTUlOQUxJR05fU0hJRlQgKChzaXplX3QpNSkKICNkZWZpbmUgTUlOQUxJR04zMl9NSU5B
TElHTl9TSVpFICgoc2l6ZV90KTEgPDwgTUlOQUxJR04zMl9NSU5BTElHTl9TSElGVCkKIAorI2Rl
ZmluZSBNSU5BTElHTjMyX1NNQUxMX1NIQVJJTkdfU0hJRlQgMworCiBQQVNfQVBJIHZvaWQgbWlu
YWxpZ24zMl9oZWFwX2NvbmZpZ19hY3RpdmF0ZSh2b2lkKTsKIAogI2RlZmluZSBNSU5BTElHTjMy
X0hFQVBfQ09ORklHIFBBU19CQVNJQ19IRUFQX0NPTkZJRyggXApAQCAtNTEsMTMgKzUzLDEzIEBA
IFBBU19BUEkgdm9pZCBtaW5hbGlnbjMyX2hlYXBfY29uZmlnX2FjdGkKICAgICAuZHVtcF90eXBl
ID0gcGFzX3NpbXBsZV90eXBlX2FzX2hlYXBfdHlwZV9kdW1wLCBcCiAgICAgLmNoZWNrX2RlYWxs
b2NhdGlvbiA9IGZhbHNlLCBcCiAgICAgLnNtYWxsX3NlZ3JlZ2F0ZWRfbWluX2FsaWduX3NoaWZ0
ID0gTUlOQUxJR04zMl9NSU5BTElHTl9TSElGVCwgXAotICAgIC5zbWFsbF9zZWdyZWdhdGVkX3No
YXJpbmdfc2hpZnQgPSBQQVNfU01BTExfU0hBUklOR19TSElGVCwgXAorICAgIC5zbWFsbF9zZWdy
ZWdhdGVkX3NoYXJpbmdfc2hpZnQgPSBNSU5BTElHTjMyX1NNQUxMX1NIQVJJTkdfU0hJRlQsIFwK
ICAgICAuc21hbGxfc2VncmVnYXRlZF9wYWdlX3NpemUgPSBQQVNfU01BTExfUEFHRV9ERUZBVUxU
X1NJWkUsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF93YXN0ZWFnZV9oYW5kaWNhcCA9IFBBU19T
TUFMTF9QQUdFX0hBTkRJQ0FQLCBcCiAgICAgLnNtYWxsX2V4Y2x1c2l2ZV9zZWdyZWdhdGVkX2xv
Z2dpbmdfbW9kZSA9IHBhc19zZWdyZWdhdGVkX2RlYWxsb2NhdGlvbl9zaXplX29ibGl2aW91c19s
b2dnaW5nX21vZGUsIFwKICAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfbG9nZ2luZ19tb2Rl
ID0gcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3NpemVfb2JsaXZpb3VzX2xvZ2dpbmdfbW9k
ZSwgXAogICAgIC5zbWFsbF9leGNsdXNpdmVfc2VncmVnYXRlZF9lbmFibGVfZW1wdHlfd29yZF9l
bGlnaWJpbGl0eV9vcHRpbWl6YXRpb24gPSB0cnVlLCBcCi0gICAgLnNtYWxsX3NoYXJlZF9zZWdy
ZWdhdGVkX2VuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5X29wdGltaXphdGlvbiA9IHRydWUs
IFwKKyAgICAuc21hbGxfc2hhcmVkX3NlZ3JlZ2F0ZWRfZW5hYmxlX2VtcHR5X3dvcmRfZWxpZ2li
aWxpdHlfb3B0aW1pemF0aW9uID0gZmFsc2UsIFwKICAgICAuc21hbGxfc2VncmVnYXRlZF91c2Vf
cmV2ZXJzZWRfY3VycmVudF93b3JkID0gdHJ1ZSwgXAogICAgIC5lbmFibGVfdmlld19jYWNoZSA9
IHRydWUsIFwKICAgICAudXNlX3NtYWxsX2JpdGZpdCA9IHRydWUsIFwKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9hbGxvY2F0
b3IuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9hbGxvY2F0b3IuYwkod29ya2luZyBjb3B5KQpAQCAtMzYsNiArMzYsMTgg
QEAKICNpbmNsdWRlICJwYXNfZXBvY2guaCIKICNpbmNsdWRlICJwYXNfcGh5c2ljYWxfbWVtb3J5
X3RyYW5zYWN0aW9uLmgiCiAKK3ZvaWQgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29uc3RydWN0KHBh
c19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xhc3MqIHNpemVfY2xhc3MpCit7CisgICAgYWxs
b2NhdG9yLT5zaXplX2NsYXNzID0gc2l6ZV9jbGFzczsKKyAgICBhbGxvY2F0b3ItPnZpZXcgPSBO
VUxMOworfQorCit2b2lkIHBhc19iaXRmaXRfYWxsb2NhdG9yX3N0b3AocGFzX2JpdGZpdF9hbGxv
Y2F0b3IqIGFsbG9jYXRvcikKK3sKKyAgICBhbGxvY2F0b3ItPnZpZXcgPSBOVUxMOworfQorCiBi
b29sIHBhc19iaXRmaXRfYWxsb2NhdG9yX2NvbW1pdF92aWV3KHBhc19iaXRmaXRfdmlldyogdmll
dywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZyogY29uZmlnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19ob2xkX21vZGUgY29tbWl0X2xvY2tfaG9sZF9tb2RlKQpAQCAtMTc3LDcgKzE4OSw3
IEBAIGJvb2wgcGFzX2JpdGZpdF9hbGxvY2F0b3JfY29tbWl0X3ZpZXcocGEKICAgICAgICAgUEFT
X0FTU0VSVCghdmlldy0+aXNfb3duZWQpOwogCiAgICAgICAgIHBhc19wYWdlX21hbGxvY19jb21t
aXQoCi0gICAgICAgICAgICB2aWV3LT5wYWdlX2JvdW5kYXJ5LCBjb25maWctPmJhc2UucGFnZV9z
aXplKTsKKyAgICAgICAgICAgIHZpZXctPnBhZ2VfYm91bmRhcnksIGNvbmZpZy0+YmFzZS5wYWdl
X3NpemUsIGNvbmZpZy0+YmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAg
ICAgICAgIGNvbmZpZy0+YmFzZS5jcmVhdGVfcGFnZV9oZWFkZXIoCiAgICAgICAgICAgICB2aWV3
LT5wYWdlX2JvdW5kYXJ5LAogICAgICAgICAgICAgcGFzX3BhZ2Vfa2luZF9mb3JfYml0Zml0X3Zh
cmlhbnQoY29uZmlnLT52YXJpYW50KSwKQEAgLTIxOCw2ICsyMzAsNyBAQCBwYXNfYml0Zml0X3Zp
ZXcqIHBhc19iaXRmaXRfYWxsb2NhdG9yX2ZpCiAgICAgcGFzX2JpdGZpdF9zaXplX2NsYXNzKiBz
aXplX2NsYXNzOwogICAgIHBhc19iaXRmaXRfdmlldyogbmV3X3ZpZXc7CiAgICAgdW5zaWduZWQg
dmlld19pbmRleDsKKyAgICBwYXNfYml0Zml0X3ZpZXcqIGFsbG9jYXRvcl92aWV3OwogCiAgICAg
UEFTX1VOVVNFRF9QQVJBTShhbGlnbm1lbnQpOwogCkBAIC0yNDEsNyArMjU0LDggQEAgcGFzX2Jp
dGZpdF92aWV3KiBwYXNfYml0Zml0X2FsbG9jYXRvcl9maQogICAgIAogICAgICAgIE5PVEU6IFRo
ZXJlIGFyZSBzb21lIGFzcGVjdHMgb2YgdGhpcyB0aGF0IHdlIGNvdWxkIGRvIGV2ZW4gaWYgdGhl
IHZpZXcgd2FzIGRpc3BsYWNlZC4gTGlrZSwKICAgICAgICB3ZSBjb3VsZCB1cGRhdGUgdGhlIG1h
eF9mcmVlLiAqLwotICAgIGlmICh2aWV3ID09IGFsbG9jYXRvci0+dmlldyAmJiBsYXJnZXN0X2F2
YWlsYWJsZSA8IHNpemVfY2xhc3MtPnNpemUpIHsKKyAgICBhbGxvY2F0b3JfdmlldyA9IGFsbG9j
YXRvci0+dmlldzsKKyAgICBpZiAoKHZpZXcgPT0gYWxsb2NhdG9yX3ZpZXcgfHwgIWFsbG9jYXRv
cl92aWV3KSAmJiBsYXJnZXN0X2F2YWlsYWJsZSA8IHNpemVfY2xhc3MtPnNpemUpIHsKICAgICAg
ICAgdW5zaWduZWQgaW5kZXg7CiAgICAgICAgIHBhc19iaXRmaXRfc2l6ZV9jbGFzcyogY3VycmVu
dF9zaXplX2NsYXNzOwogICAgICAgICBwYXNfdmVyc2lvbmVkX2ZpZWxkIGZpcnN0X2ZyZWVfdmFs
dWU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2Fs
bG9jYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ2LDYgKzQ2LDExIEBAIHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRvciB7CiAgICAg
cGFzX2JpdGZpdF92aWV3KiB2aWV3OwogfTsKIAorUEFTX0FQSSB2b2lkIHBhc19iaXRmaXRfYWxs
b2NhdG9yX2NvbnN0cnVjdChwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYml0Zml0X3NpemVfY2xh
c3MqIHNpemVfY2xhc3MpOworCitQQVNfQVBJIHZvaWQgcGFzX2JpdGZpdF9hbGxvY2F0b3Jfc3Rv
cChwYXNfYml0Zml0X2FsbG9jYXRvciogYWxsb2NhdG9yKTsKKwogUEFTX0VORF9FWFRFUk5fQzsK
IAogI2VuZGlmIC8qIFBBU19CSVRGSVRfQUxMT0NBVE9SX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2Fs
bG9jYXRvcl9pbmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfYWxsb2NhdG9yX2lubGluZXMuaAkod29ya2luZyBj
b3B5KQpAQCAtNTMsNiArNTMsNyBAQCBwYXNfYml0Zml0X2FsbG9jYXRvcl9maW5pc2hfZmFpbGlu
ZyhwYXNfCiAKIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRp
b25fcmVzdWx0CiBwYXNfYml0Zml0X2FsbG9jYXRvcl90cnlfYWxsb2NhdGUocGFzX2JpdGZpdF9h
bGxvY2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9jYWxfYWxsb2NhdG9yKiBsb2NhbF9hbGxvY2F0b3IsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IHNpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgc2l6ZV90IGFsaWdubWVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIGNvbmZpZykKQEAgLTgwLDcgKzgxLDE4IEBAIHBhc19i
aXRmaXRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZShwYXNfYmkKICAgICAgICAgc2l6ZV90IGJ5dGVz
X2NvbW1pdHRlZDsKICAgICAgICAgCiAgICAgICAgIGlmIChQQVNfVU5MSUtFTFkoIXZpZXcpKSB7
CisgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZTsKKyAgICAgICAgICAg
IAorICAgICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFhbGxvY2F0b3ItPnZpZXcpOworCisg
ICAgICAgICAgICBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAg
ICAgICAgICAgaWYgKGNhY2hlKSB7CisgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnNfaWZfbmVjZXNzYXJ5KAorICAgICAgICAgICAgICAg
ICAgICBjYWNoZSwgbG9jYWxfYWxsb2NhdG9yLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7CisgICAg
ICAgICAgICB9CisKICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yLT52
aWV3KTsKKyAgICAgICAgICAgIAogICAgICAgICAgICAgdmlldyA9IHBhc19iaXRmaXRfc2l6ZV9j
bGFzc19nZXRfZmlyc3RfZnJlZV92aWV3KAogICAgICAgICAgICAgICAgIGFsbG9jYXRvci0+c2l6
ZV9jbGFzcywgKHBhc19iaXRmaXRfcGFnZV9jb25maWcqKWNvbmZpZy5iYXNlLnBhZ2VfY29uZmln
X3B0cik7CiAgICAgICAgICAgICBpZiAoIXZpZXcpCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X2RpcmVjdG9yeS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfZGlyZWN0b3J5LmMJKHJldmlz
aW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRm
aXRfZGlyZWN0b3J5LmMJKHdvcmtpbmcgY29weSkKQEAgLTUxNyw3ICs1MTcsOCBAQCBwYXNfcGFn
ZV9zaGFyaW5nX3Bvb2xfdGFrZV9yZXN1bHQgcGFzX2JpCiAKICAgICAgICAgICAgIHBhc19kZWZl
cnJlZF9kZWNvbW1pdF9sb2dfYWRkX2FscmVhZHlfbG9ja2VkKAogICAgICAgICAgICAgICAgIGRl
Y29tbWl0X2xvZywKLSAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoYmFz
ZSwgYmFzZSArIHBhZ2VfY29uZmlnLT5iYXNlLnBhZ2Vfc2l6ZSwgY29tbWl0X2xvY2spLAorICAg
ICAgICAgICAgICAgIHBhc192aXJ0dWFsX3JhbmdlX2NyZWF0ZShiYXNlLCBiYXNlICsgcGFnZV9j
b25maWctPmJhc2UucGFnZV9zaXplLCBjb21taXRfbG9jaywKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWctPmJhc2UuaGVhcF9jb25maWdfcHRyLT5t
bWFwX2NhcGFiaWxpdHkpLAogICAgICAgICAgICAgICAgIGhlYXBfbG9ja19ob2xkX21vZGUpOwog
ICAgICAgICB9CiAgICAgICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19iaXRmaXRfcGFnZV9jb25maWcuaAkocmV2aXNpb24gMjg5
NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdl
X2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSwxNSArNDEsMTggQEAgc3RydWN0IHBhc19i
aXRmaXRfYWxsb2NhdG9yOwogc3RydWN0IHBhc19iaXRmaXRfcGFnZTsKIHN0cnVjdCBwYXNfYml0
Zml0X3BhZ2VfY29uZmlnOwogc3RydWN0IHBhc19oZWFwX3J1bnRpbWVfY29uZmlnOworc3RydWN0
IHBhc19sb2NhbF9hbGxvY2F0b3I7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X2FsbG9jYXRv
ciBwYXNfYml0Zml0X2FsbG9jYXRvcjsKIHR5cGVkZWYgc3RydWN0IHBhc19iaXRmaXRfcGFnZSBw
YXNfYml0Zml0X3BhZ2U7CiB0eXBlZGVmIHN0cnVjdCBwYXNfYml0Zml0X3BhZ2VfY29uZmlnIHBh
c19iaXRmaXRfcGFnZV9jb25maWc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfaGVhcF9ydW50aW1lX2Nv
bmZpZyBwYXNfaGVhcF9ydW50aW1lX2NvbmZpZzsKK3R5cGVkZWYgc3RydWN0IHBhc19sb2NhbF9h
bGxvY2F0b3IgcGFzX2xvY2FsX2FsbG9jYXRvcjsKIAogdHlwZWRlZiB2b2lkKiAoKnBhc19iaXRm
aXRfcGFnZV9jb25maWdfcGFnZV9hbGxvY2F0b3IpKAogICAgIHBhc19zZWdyZWdhdGVkX2hlYXAq
LCBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbik7CiB0eXBlZGVm
IHBhc19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQgKCpwYXNfYml0Zml0X3BhZ2VfY29uZmln
X3NwZWNpYWxpemVkX2FsbG9jYXRvcl90cnlfYWxsb2NhdGUpKAogICAgIHBhc19iaXRmaXRfYWxs
b2NhdG9yKiBhbGxvY2F0b3IsCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogbG9jYWxfYWxsb2Nh
dG9yLAogICAgIHNpemVfdCBzaXplLAogICAgIHNpemVfdCBhbGlnbm1lbnQpOwogdHlwZWRlZiB2
b2lkICgqcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19zcGVjaWFsaXplZF9wYWdlX2RlYWxsb2NhdGVf
d2l0aF9wYWdlKSgKQEAgLTEyMiw2ICsxMjUsNyBAQCBQQVNfQVBJIGV4dGVybiBib29sIHBhc19t
YXJnZV9iaXRmaXRfcGFnCiAgICAgUEFTX0FQSSBwYXNfZmFzdF9wYXRoX2FsbG9jYXRpb25fcmVz
dWx0IFwKICAgICBsb3dlcl9jYXNlX3BhZ2VfY29uZmlnX25hbWUgIyMgX3NwZWNpYWxpemVkX2Fs
bG9jYXRvcl90cnlfYWxsb2NhdGUoIFwKICAgICAgICAgcGFzX2JpdGZpdF9hbGxvY2F0b3IqIGFs
bG9jYXRvciwgXAorICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yKiBsb2NhbF9hbGxvY2F0b3Is
IFwKICAgICAgICAgc2l6ZV90IHNpemUsIFwKICAgICAgICAgc2l6ZV90IGFsaWdubWVudCk7IFwK
ICAgICBQQVNfQVBJIHZvaWQgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19uYW1lICMjIF9zcGVjaWFs
aXplZF9wYWdlX2RlYWxsb2NhdGVfd2l0aF9wYWdlKCBcCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfY29uZmlnX2lubGluZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2Vf
Y29uZmlnX2lubGluZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2NvbmZpZ19pbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM2LDExICszNiwxMiBAQCBQQVNfQkVHSU5fRVhURVJOX0M7CiAgICAgcGFzX2Zh
c3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdCBcCiAgICAgbG93ZXJfY2FzZV9wYWdlX2NvbmZpZ19u
YW1lICMjIF9zcGVjaWFsaXplZF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlKCBcCiAgICAgICAgIHBh
c19iaXRmaXRfYWxsb2NhdG9yKiBhbGxvY2F0b3IsIFwKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9j
YXRvciogbG9jYWxfYWxsb2NhdG9yLCBcCiAgICAgICAgIHNpemVfdCBzaXplLCBcCiAgICAgICAg
IHNpemVfdCBhbGlnbm1lbnQpIFwKICAgICB7IFwKICAgICAgICAgcmV0dXJuIHBhc19iaXRmaXRf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSggXAotICAgICAgICAgICAgYWxsb2NhdG9yLCBzaXplLCBh
bGlnbm1lbnQsIChwYWdlX2NvbmZpZ192YWx1ZSkpOyBcCisgICAgICAgICAgICBhbGxvY2F0b3Is
IGxvY2FsX2FsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50LCAocGFnZV9jb25maWdfdmFsdWUpKTsg
XAogICAgIH0gXAogICAgIFwKICAgICB2b2lkIGxvd2VyX2Nhc2VfcGFnZV9jb25maWdfbmFtZSAj
IyBfc3BlY2lhbGl6ZWRfcGFnZV9kZWFsbG9jYXRlX3dpdGhfcGFnZSggXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2JpdGZpdF9wYWdlX2lubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfYml0Zml0X3Bh
Z2VfaW5saW5lcy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfYml0Zml0X3BhZ2VfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAjaW5jbHVkZSAicGFzX2JpdGZpdF9wYWdlLmgiCiAjaW5jbHVkZSAicGFz
X2JpdGZpdF92aWV3LmgiCiAjaW5jbHVkZSAicGFzX2NvbW1pdF9zcGFuLmgiCisjaW5jbHVkZSAi
cGFzX2hlYXBfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX3BhZ2VfYmFzZV9pbmxpbmVzLmgiCiAj
aW5jbHVkZSAicGFzX3BhZ2Vfc2hhcmluZ19wb29sLmgiCiAjaW5jbHVkZSA8cHRocmVhZC5oPgpA
QCAtMTQ2LDcgKzE0Nyw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB1bnNpZ25lZCBwYXNf
YmkKICAgICAgICAgUEFTX0FTU0VSVCh2aWV3LT5pc19vd25lZCk7CiAgICAgICAgIHBhc19sb2Nr
X2Fzc2VydF9oZWxkKCZ2aWV3LT5jb21taXRfbG9jayk7CiAgICAgICAgIAotICAgICAgICBwYXNf
Y29tbWl0X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3Bhbik7CisgICAgICAgIHBhc19jb21taXRf
c3Bhbl9jb25zdHJ1Y3QoJmNvbW1pdF9zcGFuLCBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmln
X3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgCiAgICAgICAgIGZvciAoZ3JhbnVsZV9p
bmRleCA9IGluZGV4X29mX2ZpcnN0X2dyYW51bGU7CiAgICAgICAgICAgICAgZ3JhbnVsZV9pbmRl
eCA8PSBpbmRleF9vZl9sYXN0X2dyYW51bGU7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uYwkocmV2aXNpb24gMjg5NTA4KQor
KysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdF9zcGFuLmMJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxNCBAQAogCiBzdGF0aWMgY29uc3QgYm9vbCB2ZXJi
b3NlID0gZmFsc2U7CiAKLXZvaWQgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdChwYXNfY29tbWl0
X3NwYW4qIHNwYW4pCit2b2lkIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QocGFzX2NvbW1pdF9z
cGFuKiBzcGFuLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICBp
ZiAodmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygiJXA6IGNyZWF0aW5nIGNvbW1pdCBzcGFuLlxu
Iiwgc3Bhbik7CiAgICAgc3Bhbi0+aW5kZXhfb2Zfc3RhcnRfb2Zfc3BhbiA9IFVJTlRQVFJfTUFY
OwogICAgIHNwYW4tPmRpZF9hZGRfZmlyc3QgPSBmYWxzZTsKICAgICBzcGFuLT50b3RhbF9ieXRl
cyA9IDA7CisgICAgc3Bhbi0+bW1hcF9jYXBhYmlsaXR5ID0gbW1hcF9jYXBhYmlsaXR5OwogfQog
CiB2b2lkIHBhc19jb21taXRfc3Bhbl9hZGRfdG9fY2hhbmdlKHBhc19jb21taXRfc3Bhbiogc3Bh
biwgdWludHB0cl90IGdyYW51bGVfaW5kZXgpCkBAIC04NCw4ICs4NSwxMSBAQCB2b2lkIHBhc19j
b21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkKHBhc19jCiAKIHN0YXRpYyB2b2lkIGNvbW1pdCh2b2lk
KiBiYXNlLCBzaXplX3Qgc2l6ZSwgdm9pZCogYXJnKQogewotICAgIFBBU19BU1NFUlQoIWFyZyk7
Ci0gICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdChiYXNlLCBzaXplKTsKKyAgICBwYXNfY29tbWl0
X3NwYW4qIHNwYW47CisKKyAgICBzcGFuID0gYXJnOworICAgIAorICAgIHBhc19wYWdlX21hbGxv
Y19jb21taXQoYmFzZSwgc2l6ZSwgc3Bhbi0+bW1hcF9jYXBhYmlsaXR5KTsKIH0KIAogdm9pZCBw
YXNfY29tbWl0X3NwYW5fYWRkX3VuY2hhbmdlZF9hbmRfY29tbWl0KHBhc19jb21taXRfc3Bhbiog
c3BhbiwKQEAgLTkzLDcgKzk3LDcgQEAgdm9pZCBwYXNfY29tbWl0X3NwYW5fYWRkX3VuY2hhbmdl
ZF9hbmRfYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVp
bnRwdHJfdCBncmFudWxlX2luZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19wYWdlX2Jhc2VfY29uZmlnKiBjb25maWcpCiB7Ci0gICAgcGFzX2Nv
bW1pdF9zcGFuX2FkZF91bmNoYW5nZWQoc3BhbiwgcGFnZSwgZ3JhbnVsZV9pbmRleCwgY29uZmln
LCBjb21taXQsIE5VTEwpOworICAgIHBhc19jb21taXRfc3Bhbl9hZGRfdW5jaGFuZ2VkKHNwYW4s
IHBhZ2UsIGdyYW51bGVfaW5kZXgsIGNvbmZpZywgY29tbWl0LCBzcGFuKTsKIH0KIAogdHlwZWRl
ZiBzdHJ1Y3QgewpAQCAtMTE3LDcgKzEyMSw4IEBAIHN0YXRpYyB2b2lkIGRlY29tbWl0KHZvaWQq
IGJhc2UsIHNpemVfdCAKICAgICAgICAgcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKAogICAgICAg
ICAgICAgKHVpbnRwdHJfdCliYXNlLAogICAgICAgICAgICAgKHVpbnRwdHJfdCliYXNlICsgc2l6
ZSwKLSAgICAgICAgICAgIGRhdGEtPnNwYW4tPmRpZF9hZGRfZmlyc3QgPyBOVUxMIDogZGF0YS0+
Y29tbWl0X2xvY2spLAorICAgICAgICAgICAgZGF0YS0+c3Bhbi0+ZGlkX2FkZF9maXJzdCA/IE5V
TEwgOiBkYXRhLT5jb21taXRfbG9jaywKKyAgICAgICAgICAgIGRhdGEtPnNwYW4tPm1tYXBfY2Fw
YWJpbGl0eSksCiAgICAgICAgIGRhdGEtPmhlYXBfbG9ja19ob2xkX21vZGUpOwogfQogCkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3NwYW4uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0X3Nw
YW4uaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX2NvbW1pdF9zcGFuLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChjKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoYykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmlu
ZSBQQVNfQ09NTUlUX1NQQU5fSAogCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKKyNpbmNsdWRlICJw
YXNfbW1hcF9jYXBhYmlsaXR5LmgiCiAKIFBBU19CRUdJTl9FWFRFUk5fQzsKIApAQCAtNDMsOSAr
NDQsMTAgQEAgc3RydWN0IHBhc19jb21taXRfc3BhbiB7CiAgICAgdWludHB0cl90IGluZGV4X29m
X3N0YXJ0X29mX3NwYW47CiAgICAgYm9vbCBkaWRfYWRkX2ZpcnN0OwogICAgIHNpemVfdCB0b3Rh
bF9ieXRlczsKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eTsKIH07CiAK
LVBBU19BUEkgdm9pZCBwYXNfY29tbWl0X3NwYW5fY29uc3RydWN0KHBhc19jb21taXRfc3Bhbiog
c3Bhbik7CitQQVNfQVBJIHZvaWQgcGFzX2NvbW1pdF9zcGFuX2NvbnN0cnVjdChwYXNfY29tbWl0
X3NwYW4qIHNwYW4sIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIFBBU19B
UEkgdm9pZCBwYXNfY29tbWl0X3NwYW5fYWRkX3RvX2NoYW5nZShwYXNfY29tbWl0X3NwYW4qIHNw
YW4sIHVpbnRwdHJfdCBncmFudWxlX2luZGV4KTsKIFBBU19BUEkgdm9pZCBwYXNfY29tbWl0X3Nw
YW5fYWRkX3VuY2hhbmdlZChwYXNfY29tbWl0X3NwYW4qIHNwYW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZSogcGFnZSwKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9y
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Nv
bW1pdHRlZF9wYWdlc192ZWN0b3IuYwkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5jCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4gCisgKi8KKworI2luY2x1ZGUgInBhc19jb25maWcuaCIKKworI2lmIExJQlBBU19FTkFCTEVE
CisKKyNpbmNsdWRlICJwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvci5oIgorCisjaW5jbHVkZSAi
cGFzX2FsbG9jYXRpb25fY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCisK
K1BBU19CRUdJTl9FWFRFUk5fQzsKKwordm9pZCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9j
b25zdHJ1Y3QocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IqIHZlY3RvciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXplLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGFzX2FsbG9jYXRpb25fY29uZmln
KiBhbGxvY2F0aW9uX2NvbmZpZykKK3sKKyAgICBzaXplX3QgcGFnZV9zaXplOworICAgIHNpemVf
dCBwYWdlX3NpemVfc2hpZnQ7CisgICAgc2l6ZV90IG51bV9wYWdlczsKKworICAgIHBhZ2Vfc2l6
ZSA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnQoKTsKKyAgICBwYWdlX3NpemVfc2hpZnQgPSBw
YXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3NoaWZ0KCk7CisKKyAgICBQQVNfQVNTRVJUKHBhc19p
c19hbGlnbmVkKCh1aW50cHRyX3Qpb2JqZWN0LCBwYWdlX3NpemUpKTsKKyAgICBQQVNfQVNTRVJU
KHBhc19pc19hbGlnbmVkKHNpemUsIHBhZ2Vfc2l6ZSkpOworCisgICAgbnVtX3BhZ2VzID0gc2l6
ZSA+PiBwYWdlX3NpemVfc2hpZnQ7CisKKyAgICB2ZWN0b3ItPnJhd19kYXRhID0gYWxsb2NhdGlv
bl9jb25maWctPmFsbG9jYXRlKAorICAgICAgICBudW1fcGFnZXMsICJwYXNfY29tbWl0dGVkX3Bh
Z2VzX3ZlY3Rvci9yYXdfZGF0YSIsIHBhc19vYmplY3RfYWxsb2NhdGlvbiwgYWxsb2NhdGlvbl9j
b25maWctPmFyZyk7CisgICAgdmVjdG9yLT5zaXplID0gbnVtX3BhZ2VzOworCisgICAgUEFTX1NZ
U0NBTEwobWluY29yZShvYmplY3QsIHNpemUsIHZlY3Rvci0+cmF3X2RhdGEpKTsKK30KKwordm9p
ZCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9kZXN0cnVjdChwYXNfY29tbWl0dGVkX3BhZ2Vz
X3ZlY3RvciogdmVjdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBwYXNfYWxsb2NhdGlvbl9jb25maWcqIGFsbG9jYXRpb25fY29uZmlnKQoreworICAg
IGFsbG9jYXRpb25fY29uZmlnLT5kZWFsbG9jYXRlKAorICAgICAgICB2ZWN0b3ItPnJhd19kYXRh
LCB2ZWN0b3ItPnNpemUsIHBhc19vYmplY3RfYWxsb2NhdGlvbiwgYWxsb2NhdGlvbl9jb25maWct
PmFyZyk7Cit9CisKK3NpemVfdCBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb3VudF9jb21t
aXR0ZWQocGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IqIHZlY3RvcikKK3sKKyAgICBzaXplX3Qg
cmVzdWx0OworICAgIHNpemVfdCBpbmRleDsKKyAgICByZXN1bHQgPSAwOworICAgIGZvciAoaW5k
ZXggPSB2ZWN0b3ItPnNpemU7IGluZGV4LS07KQorICAgICAgICByZXN1bHQgKz0gKHNpemVfdClw
YXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9pc19jb21taXR0ZWQodmVjdG9yLCBpbmRleCk7Cisg
ICAgcmV0dXJuIHJlc3VsdDsKK30KKworc2l6ZV90IHBhc19jb3VudF9jb21taXR0ZWRfcGFnZXMo
dm9pZCogb2JqZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNp
emUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXNfYWxsb2NhdGlv
bl9jb25maWcqIGFsbG9jYXRpb25fY29uZmlnKQoreworICAgIHNpemVfdCByZXN1bHQ7CisgICAg
cGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IgdmVjdG9yOworICAgIHBhc19jb21taXR0ZWRfcGFn
ZXNfdmVjdG9yX2NvbnN0cnVjdCgmdmVjdG9yLCBvYmplY3QsIHNpemUsIGFsbG9jYXRpb25fY29u
ZmlnKTsKKyAgICByZXN1bHQgPSBwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rvcl9jb3VudF9jb21t
aXR0ZWQoJnZlY3Rvcik7CisgICAgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfZGVzdHJ1Y3Qo
JnZlY3RvciwgYWxsb2NhdGlvbl9jb25maWcpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1BB
U19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLworCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3Rv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDcyIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuIAorICovCisKKyNpZm5kZWYgUEFTX0NPTU1JVFRFRF9QQUdFU19WRUNUT1JfSAorI2RlZmlu
ZSBQQVNfQ09NTUlUVEVEX1BBR0VTX1ZFQ1RPUl9ICisKKyNpbmNsdWRlICJwYXNfdXRpbHMuaCIK
KyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNpbmNsdWRlIDxzeXMvbW1hbi5oPgorCitQQVNfQkVH
SU5fRVhURVJOX0M7CisKK3N0cnVjdCBwYXNfYWxsb2NhdGlvbl9jb25maWc7CitzdHJ1Y3QgcGFz
X2NvbW1pdHRlZF9wYWdlc192ZWN0b3I7Cit0eXBlZGVmIHN0cnVjdCBwYXNfYWxsb2NhdGlvbl9j
b25maWcgcGFzX2FsbG9jYXRpb25fY29uZmlnOwordHlwZWRlZiBzdHJ1Y3QgcGFzX2NvbW1pdHRl
ZF9wYWdlc192ZWN0b3IgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3I7CisKK3N0cnVjdCBwYXNf
Y29tbWl0dGVkX3BhZ2VzX3ZlY3RvciB7CisgICAgY2hhciogcmF3X2RhdGE7CisgICAgc2l6ZV90
IHNpemU7Cit9OworCitQQVNfQVBJIHZvaWQgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY29u
c3RydWN0KHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIG9iamVjdCwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IHNpemUs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcpOworCitQQVNfQVBJIHZv
aWQgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfZGVzdHJ1Y3QocGFzX2NvbW1pdHRlZF9wYWdl
c192ZWN0b3IqIHZlY3RvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBwYXNfYWxsb2NhdGlvbl9jb25maWcqIGFsbG9jYXRpb25fY29uZmln
KTsKKworc3RhdGljIGlubGluZSBib29sIHBhc19jb21taXR0ZWRfcGFnZXNfdmVjdG9yX2lzX2Nv
bW1pdHRlZChwYXNfY29tbWl0dGVkX3BhZ2VzX3ZlY3RvciogdmVjdG9yLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgcGFn
ZV9pbmRleCkKK3sKKyAgICBQQVNfQVNTRVJUKHBhZ2VfaW5kZXggPCB2ZWN0b3ItPnNpemUpOwor
ICAgIHJldHVybiB2ZWN0b3ItPnJhd19kYXRhW3BhZ2VfaW5kZXhdICYgKE1JTkNPUkVfUkVGRVJF
TkNFRCB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTUlOQ09S
RV9SRUZFUkVOQ0VEX09USEVSIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBNSU5DT1JFX01PRElGSUVEX09USEVSIHwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBNSU5DT1JFX01PRElGSUVEKTsKK30KKworUEFTX0FQSSBzaXpl
X3QgcGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3JfY291bnRfY29tbWl0dGVkKHBhc19jb21taXR0
ZWRfcGFnZXNfdmVjdG9yKiB2ZWN0b3IpOworCitQQVNfQVBJIHNpemVfdCBwYXNfY291bnRfY29t
bWl0dGVkX3BhZ2VzKHZvaWQqIG9iamVjdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgc2l6ZV90IHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IHBhc19hbGxvY2F0aW9uX2NvbmZpZyogYWxsb2NhdGlvbl9jb25maWcp
OworCitQQVNfRU5EX0VYVEVSTl9DOworCisjZW5kaWYgLyogUEFTX0NPTU1JVFRFRF9QQUdFU19W
RUNUT1JfSCAqLworCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
Y29tcGFjdF90YWdnZWRfcHRyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2NvbXBhY3RfdGFnZ2VkX3B0ci5oCShyZXZpc2lvbiAyODk1MDgpCisr
KyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90YWdnZWRfcHRy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTk2LDYgKzk2LDExIEBAIFBBU19CRUdJTl9FWFRFUk5fQzsK
ICAgICAgICAgfSBcCiAgICAgfSBcCiAgICAgXAorICAgIHN0YXRpYyBpbmxpbmUgYm9vbCBuYW1l
ICMjIF9pc19udWxsKG5hbWUqIHB0cikgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gISgqKHVp
bnRwdHJfdCopcHRyICYgUEFTX0NPTVBBQ1RfVEFHR0VEX1BUUl9NQVNLKTsgXAorICAgIH0gXAor
ICAgIFwKICAgICBzdGF0aWMgaW5saW5lIHR5cGUgbmFtZSAjIyBfbG9hZChuYW1lKiBwdHIpIFwK
ICAgICB7IFwKICAgICAgICAgcmV0dXJuIG5hbWUgIyMgX3B0cl9mb3Jfb2Zmc2V0KCoodWludHB0
cl90KilwdHIgJiBQQVNfQ09NUEFDVF9UQUdHRURfUFRSX01BU0spOyBcCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X25vZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfY29tcGFjdF90
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
CisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNp
Zm5kZWYgUEFTX0NPTVBBQ1RfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0gKKyNkZWZp
bmUgUEFTX0NPTVBBQ1RfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0gKKworI2luY2x1
ZGUgInBhc19jb21wYWN0X3RhZ2dlZF9wdHIuaCIKKyNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworUEFTX0RFRklO
RV9DT01QQUNUX1RBR0dFRF9QVFIocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZSk7CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNf
Q09NUEFDVF9USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX05PREVfSCAqLworCkluZGV4OiBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFTX0RFQ09NTUlUX0VYQ0xVU0lPTl9SQU5HRV9ICisj
ZGVmaW5lIFBBU19ERUNPTU1JVF9FWENMVVNJT05fUkFOR0VfSAorCisjaW5jbHVkZSAicGFzX3V0
aWxzLmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RydWN0IHBhc19kZWNvbW1pdF9leGNs
dXNpb25fcmFuZ2U7Cit0eXBlZGVmIHN0cnVjdCBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
IHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2U7CisKK3N0cnVjdCBwYXNfZGVjb21taXRfZXhj
bHVzaW9uX3JhbmdlIHsKKyAgICB1aW50cHRyX3Qgc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQ7
CisgICAgdWludHB0cl90IGVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKK307CisKK3N0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2lzX2VtcHR5KHBhc19kZWNv
bW1pdF9leGNsdXNpb25fcmFuZ2UgcmFuZ2UpCit7CisgICAgcmV0dXJuIHJhbmdlLnN0YXJ0X29m
X3Bvc3NpYmxlX2RlY29tbWl0ID09IHJhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdDsKK30K
Kworc3RhdGljIGlubGluZSBib29sIHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfY29u
dGlndW91cyhwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVy
biByYW5nZS5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA8IHJhbmdlLmVuZF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdDsKK30KKworLyogVGhpcyBtZWFucyB0aGF0IHRoZSBzZXQgb2YgdGhpbmdzIHRo
YXQgY291bGQgYmUgZGVjb21taXR0ZWQgaXMgYW55dGhpbmcgYmVmb3JlIGVuZF9vZl9wb3NzaWJs
ZV9kZWNvbW1pdAorICAgKGV4Y2x1c2l2ZSkgYW5kIGFmdGVyIHN0YXJ0X29mX3Bvc3NpYmxlX2Rl
Y29tbWl0IChpbmNsdXNpdmUpLiAqLworc3RhdGljIGlubGluZSBib29sIHBhc19kZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2VfaXNfaW52ZXJ0ZWQocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSBy
YW5nZSkKK3sKKyAgICByZXR1cm4gcmFuZ2Uuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPiBy
YW5nZS5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX2Rl
Y29tbWl0X2V4Y2x1c2lvbl9yYW5nZQorcGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZV9jcmVh
dGVfaW52ZXJ0ZWQocGFzX2RlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSByYW5nZSkKK3sKKyAgICBw
YXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHJlc3VsdDsKKyAgICByZXN1bHQuc3RhcnRfb2Zf
cG9zc2libGVfZGVjb21taXQgPSByYW5nZS5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQ7CisgICAg
cmVzdWx0LmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9IHJhbmdlLnN0YXJ0X29mX3Bvc3NpYmxl
X2RlY29tbWl0OworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisK
KyNlbmRpZiAvKiBQQVNfREVDT01NSVRfRVhDTFVTSU9OX1JBTkdFX0ggKi8KKwpJbmRleDogU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19kZWZl
cnJlZF9kZWNvbW1pdF9sb2cuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZy5jCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzYsNyArMjM2LDcgQEAgc3RhdGljIHZvaWQgZGVjb21taXRfYWxsKHBhc19kZWZl
cnJlZF9kZQogICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKXJhbmdlLmVuZCk7CiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNv
bW1pdCgodm9pZCopcmFuZ2UuYmVnaW4sIHBhc192aXJ0dWFsX3JhbmdlX3NpemUocmFuZ2UpKTsK
KyAgICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCgodm9pZCopcmFuZ2UuYmVnaW4s
IHBhc192aXJ0dWFsX3JhbmdlX3NpemUocmFuZ2UpLCByYW5nZS5tbWFwX2NhcGFiaWxpdHkpOwog
ICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBQQVNfQVNTRVJUKGVuZF9pbmRleCk7CkluZGV4
OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhwZW5kYWJsZV9tZW1vcnku
Ywo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZXhw
ZW5kYWJsZV9tZW1vcnkuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2V4cGVuZGFibGVfbWVtb3J5LmMJKHdvcmtpbmcgY29weSkKQEAg
LTM0NCw5ICszNDQsMTQgQEAgc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIGJvb2wgc2NhdmVuZ2Vf
aQogICAgICAgICAgICBtZW1vcnkuIFNvLCBpdCBtaWdodCBoYXBwZW4gYWZ0ZXIgd2UgaGF2ZSBh
bHJlYWR5IGRlY29tbWl0dGVkLCBvciBkZWNpZGVkIHRvIGRlY29tbWl0LiAqLwogICAgICAgICBw
YXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKIAorICAgICAgICAvKiBUaGlzIGN1cnJlbnRseSBhc3N1
bWVzIHRoYXQgaXQncyBsZWdhbCB0byBkbyBkZWNvbW1pdCB3aXRob3V0IGxhdGVyIGNvbW1pdHRp
bmcuIEl0J3Mgbm90IG9idmlvdXMKKyAgICAgICAgICAgdGhhdCB0aGlzIGlzIGEgaGFyZCByZXF1
aXJlbWVudCBvZiB0aGUgYWxnb3JpdGhtOyBsaWtlIHBlcmhhcHMgaXQgd291bGQgYmUgZWFzeSB0
byBhZGQgdGhlIG5lY2Vzc2FyeQorICAgICAgICAgICBjb21taXQgY2FsbHMuICovCiAgICAgICAg
IGlmIChzY2F2ZW5nZV9raW5kICE9IHBhc19leHBlbmRhYmxlX21lbW9yeV9zY2F2ZW5nZV9mb3Jj
ZWRfZmFrZSkgewotICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X2FzeW1tZXRy
aWMoKGNoYXIqKXBheWxvYWQgKyBpbmRleCAqIFBBU19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJ
WkUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3Ro
ZXJfaW5kZXggLSBpbmRleCkgKiBQQVNfRVhQRU5EQUJMRV9NRU1PUllfUEFHRV9TSVpFKTsKKyAg
ICAgICAgICAgIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF93aXRob3V0X21wcm90ZWN0KAorICAg
ICAgICAgICAgICAgIChjaGFyKilwYXlsb2FkICsgaW5kZXggKiBQQVNfRVhQRU5EQUJMRV9NRU1P
UllfUEFHRV9TSVpFLAorICAgICAgICAgICAgICAgIChvdGhlcl9pbmRleCAtIGluZGV4KSAqIFBB
U19FWFBFTkRBQkxFX01FTU9SWV9QQUdFX1NJWkUsCisgICAgICAgICAgICAgICAgcGFzX21heV9t
bWFwKTsKICAgICAgICAgfQogCiAgICAgICAgIC8qIEF0IHRoaXMgcG9pbnQsIGFueSBvZiB0aGUg
cGFnZXMgaW4gdGhpcyByYW5nZSBjb3VsZCBnZXQgZGVjb21taXR0ZWQsIGJ1dCBpdCB3b24ndCBu
ZWNlc3NhcmlseQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2Zy
ZWVfZ3JhbnVsZXMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfZnJlZV9ncmFudWxlcy5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfZnJlZV9ncmFudWxlcy5jCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMjAtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJwYXNfZnJlZV9ncmFudWxlcy5oIgogCiAjaW5jbHVk
ZSAicGFzX2NvbW1pdF9zcGFuLmgiCisjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnLmgiCiAjaW5j
bHVkZSAicGFzX2xvZy5oIgogI2luY2x1ZGUgInBhc19wYWdlX2Jhc2VfY29uZmlnLmgiCiAKQEAg
LTEwNSw3ICsxMDYsNyBAQCB2b2lkIHBhc19mcmVlX2dyYW51bGVzX2RlY29tbWl0X2FmdGVyX2xv
CiAgICAgUEFTX0FTU0VSVChudW1fZ3JhbnVsZXMgPj0gMik7IC8qIElmIHRoZXJlIGlzIG9ubHkg
b25lIGdyYW51bGUgdGhlbiB3ZSBkb24ndCBoYXZlIHVzZSBjb3VudHMuICovCiAgICAgUEFTX0FT
U0VSVChudW1fZ3JhbnVsZXMgPD0gUEFTX01BWF9HUkFOVUxFUyk7CiAKLSAgICBwYXNfY29tbWl0
X3NwYW5fY29uc3RydWN0KCZjb21taXRfc3Bhbik7CisgICAgcGFzX2NvbW1pdF9zcGFuX2NvbnN0
cnVjdCgmY29tbWl0X3NwYW4sIHBhZ2VfY29uZmlnLT5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2Fw
YWJpbGl0eSk7CiAKICAgICBmb3IgKGdyYW51bGVfaW5kZXggPSAwOyBncmFudWxlX2luZGV4IDwg
bnVtX2dyYW51bGVzOyArK2dyYW51bGVfaW5kZXgpIHsKICAgICAgICAgaWYgKHBhc19mcmVlX2dy
YW51bGVzX2lzX2ZyZWUoZnJlZV9ncmFudWxlcywgZ3JhbnVsZV9pbmRleCkpIHsKSW5kZXg6IFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwkocmV2aXNpb24gMjg5
NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hlYXAuYwkod29y
a2luZyBjb3B5KQpAQCAtNzYsOSArNzYsMjIgQEAgcGFzX2hlYXAqIHBhc19oZWFwX2NyZWF0ZShw
YXNfaGVhcF9yZWYqIAogCiBzaXplX3QgcGFzX2hlYXBfZ2V0X3R5cGVfc2l6ZShwYXNfaGVhcCog
aGVhcCkKIHsKKyAgICBwYXNfaGVhcF9jb25maWdfa2luZCBraW5kOworICAgIHBhc19oZWFwX2Nv
bmZpZyogY29uZmlnOwogICAgIGlmICghaGVhcCkKICAgICAgICAgcmV0dXJuIDE7Ci0gICAgcmV0
dXJuIHBhc19oZWFwX2NvbmZpZ19raW5kX2dldF9jb25maWcoaGVhcC0+Y29uZmlnX2tpbmQpLT5n
ZXRfdHlwZV9zaXplKGhlYXAtPnR5cGUpOworICAgIGtpbmQgPSBoZWFwLT5jb25maWdfa2luZDsK
KyAgICBQQVNfQVNTRVJUKGtpbmQgIT0gcGFzX2hlYXBfY29uZmlnX2tpbmRfbnVsbCk7CisgICAg
Y29uZmlnID0gcGFzX2hlYXBfY29uZmlnX2tpbmRfZ2V0X2NvbmZpZyhraW5kKTsKKyAgICBQQVNf
QVNTRVJUKGNvbmZpZyk7CisgICAgcmV0dXJuIGNvbmZpZy0+Z2V0X3R5cGVfc2l6ZShoZWFwLT50
eXBlKTsKK30KKworc2l6ZV90IHBhc19oZWFwX2dldF90eXBlX2FsaWdubWVudChwYXNfaGVhcCog
aGVhcCkKK3sKKyAgICBpZiAoIWhlYXApCisgICAgICAgIHJldHVybiAxOworICAgIHJldHVybiBw
YXNfaGVhcF9jb25maWdfa2luZF9nZXRfY29uZmlnKGhlYXAtPmNvbmZpZ19raW5kKS0+Z2V0X3R5
cGVfYWxpZ25tZW50KGhlYXAtPnR5cGUpOwogfQogCiBzaXplX3QgcGFzX2hlYXBfZ2V0X251bV9m
cmVlX2J5dGVzKHBhc19oZWFwKiBoZWFwKQpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfaGVhcC5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1
OSw3IEBAIFBBU19BUEkgcGFzX2hlYXAqIHBhc19oZWFwX2NyZWF0ZShwYXNfaGUKIAogLyogUmV0
dXJucyAxIGZvciBOVUxMIGhlYXAuICovCiBQQVNfQVBJIHNpemVfdCBwYXNfaGVhcF9nZXRfdHlw
ZV9zaXplKHBhc19oZWFwKiBoZWFwKTsKK1BBU19BUEkgc2l6ZV90IHBhc19oZWFwX2dldF90eXBl
X2FsaWdubWVudChwYXNfaGVhcCogaGVhcCk7CiAKIC8qIFRoZSBsYXJnZSBoZWFwIGJlbG9uZ3Mg
dG8gdGhlIGhlYXAgaW4gc3VjaCBhIHdheSB0aGF0IGdpdmVuIGEgbGFyZ2UgaGVhcCwgd2UgY2Fu
IGZpbmQgdGhlCiAgICBoZWFwLiAqLwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfY29uZmlnLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2hlYXBfY29uZmlnLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2NvbmZpZy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSAicGFzX2hlYXBfY29uZmlnX2tpbmQu
aCIKICNpbmNsdWRlICJwYXNfaGVhcF9yZWYuaCIKICNpbmNsdWRlICJwYXNfaGVhcF9yZWZfa2lu
ZC5oIgotI2luY2x1ZGUgInBhc19hbGxvY2F0aW9uX3Jlc3VsdC5oIgorI2luY2x1ZGUgInBhc19t
bWFwX2NhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9oZWFwX2xvb2t1cF9r
aW5kLmgiCiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWcuaCIKICNpbmNsdWRl
ICJwYXNfc2l6ZV9sb29rdXBfbW9kZS5oIgpAQCAtMTc0LDYgKzE3NCw5IEBAIHN0cnVjdCBwYXNf
aGVhcF9jb25maWcgewogICAgIGJvb2wgYWxpZ25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmlu
Z19wb29sOwogICAgIHBhc19kZWFsbG9jYXRvciBkZWFsbG9jYXRvcjsKIAorICAgIC8qIFRlbGxz
IGlmIGl0J3MgT0sgdG8gY2FsbCBtbWFwIG9uIG1lbW9yeSBtYW5hZ2VkIGJ5IHRoaXMgaGVhcC4g
Ki8KKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eTsKKwogICAgIC8qIFRo
aXMgcG9pbnRzIHRvIHRoaW5ncyB0aGF0IGFyZSBuZWNlc3NhcnkgZm9yIGVudW1lcmF0aW9uIHRo
YXQgYXJlIHNwZWNpZmljIHRvIHRoZSBoZWFwIGNvbmZpZy4gKi8KICAgICB2b2lkKiByb290X2Rh
dGE7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX2Nv
bmZpZ191dGlscy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19oZWFwX2NvbmZpZ191dGlscy5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuYwkod29ya2lu
ZyBjb3B5KQpAQCAtMTIzLDcgKzEyMyw3IEBAIHBhc19oZWFwX2NvbmZpZ191dGlsc19hbGxvY2F0
ZV9hbGlnbmVkKAogICAgIAogICAgIGFsbG9jYXRpb25fcmVzdWx0ID0KICAgICAgICAgcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlX3RyeV9hbGxvY2F0ZV93aXRoX2Fs
aWdubWVudCgKLSAgICAgICAgICAgIGNhY2hlLCBhbGlnbmVkX3NpemUsIGFsaWdubWVudCwgc2hv
dWxkX3plcm8pOworICAgICAgICAgICAgY2FjaGUsIGFsaWduZWRfc2l6ZSwgYWxpZ25tZW50LCBj
b25maWcsIHNob3VsZF96ZXJvKTsKICAgICBpZiAoIWFsbG9jYXRpb25fcmVzdWx0LmRpZF9zdWNj
ZWVkKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfaGVhcF9jb25maWdfdXRpbHMuaAkocmV2
aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2hl
YXBfY29uZmlnX3V0aWxzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMzMiw2ICszMzIsNyBAQCB0eXBl
ZGVmIHN0cnVjdCB7CiAgICAgICAgIC5hbGlnbmVkX2FsbG9jYXRvciA9IG5hbWUgIyMgX2FsaWdu
ZWRfYWxsb2NhdG9yLCBcCiAgICAgICAgIC5hbGlnbmVkX2FsbG9jYXRvcl90YWxrc190b19zaGFy
aW5nX3Bvb2wgPSB0cnVlLCBcCiAgICAgICAgIC5kZWFsbG9jYXRvciA9IE5VTEwsIFwKKyAgICAg
ICAgLm1tYXBfY2FwYWJpbGl0eSA9IHBhc19tYXlfbW1hcCwgXAogICAgICAgICAucm9vdF9kYXRh
ID0gJm5hbWUgIyMgX3Jvb3RfZGF0YSwgXAogICAgICAgICAucHJlcGFyZV90b19lbnVtZXJhdGUg
PSBuYW1lICMjIF9wcmVwYXJlX3RvX2VudW1lcmF0ZSwgXAogICAgICAgICAuZm9yX2VhY2hfc2hh
cmVkX3BhZ2VfZGlyZWN0b3J5ID0gXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9s
aWJwYXMvcGFzX2hlYXBfcmVmLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2hlYXBfcmVmLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19oZWFwX3JlZi5jCSh3b3JraW5nIGNvcHkpCkBA
IC00Nyw2ICs0Nyw3IEBAIHBhc19oZWFwKiBwYXNfZW5zdXJlX2hlYXBfc2xvdyhwYXNfaGVhcF8K
ICAgICBoZWFwID0gaGVhcF9yZWYtPmhlYXA7CiAgICAgaWYgKCFoZWFwKSB7CiAgICAgICAgIGhl
YXAgPSBwYXNfaGVhcF9jcmVhdGUoaGVhcF9yZWYsIGhlYXBfcmVmX2tpbmQsIGNvbmZpZywgcnVu
dGltZV9jb25maWcpOworICAgICAgICBwYXNfc3RvcmVfc3RvcmVfZmVuY2UoKTsKICAgICAgICAg
aGVhcF9yZWYtPmhlYXAgPSBoZWFwOwogICAgIH0KICAgICBwYXNfaGVhcF9sb2NrX3VubG9jaygp
OwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2Nv
bmZpZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19pbnRlcm5hbF9jb25maWcuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2ludGVybmFsX2NvbmZpZy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDMsOCArMTQzLDggQEAKICNkZWZpbmUgUEFTX1BBR0VfQkFMQU5DSU5HX0VOQUJMRUQgICAg
ICAgICAgICBmYWxzZQogI2VuZGlmCiAKLSNkZWZpbmUgUEFTX1NNQUxMX1NIQVJFRF9QQUdFX0xP
R19TSElGVCAgICAgMAotI2RlZmluZSBQQVNfTUVESVVNX1NIQVJFRF9QQUdFX0xPR19TSElGVCAg
ICAxCisjZGVmaW5lIFBBU19TTUFMTF9TSEFSRURfUEFHRV9MT0dfU0hJRlQgICAgIDMxCisjZGVm
aW5lIFBBU19NRURJVU1fU0hBUkVEX1BBR0VfTE9HX1NISUZUICAgIDMxCiAKIC8qIE11c3QgYmUg
emVybzsgdXRpbGl0eSBkb2Vzbid0IHN1cHBvcnQgcGFydGlhbHMgcmlnaHQgbm93ICh0aG91Z2gg
aXQgY291bGQgaWYgd2UgaGFja2VkIGRlYWxsb2NhdGlvbiBhbmQKICAgIGFkZGVkIGEgc2hhcmVk
IHBhZ2UgZGlyZWN0b3J5KS4gKi8KQEAgLTE4OSw3ICsxODksNyBAQAogICAgb2JqZWN0cyB3aWxs
IG9ubHkgb3ZlcmxhcCBhdCB0aGUgaGVhZGVyLiBIb3dldmVyLCBGSVhNRTogd2UgbmVlZCBmbGV4
IGhlYXBzIHRvIHVzZSBhIGxhcmdlIGhlYXAKICAgIHRoYXQgd29uJ3Qgb3ZlcmxhcCBvYmplY3Rz
IGluIHRoZXNlIGhlYXBzIGFzIGlmIHRoZXkgd2VyZSBhcnJheXMuICovCiAjZGVmaW5lIFBBU19G
TEVYX0JPVU5EX0ZPUl9QQVJUSUFMX1ZJRVdTICAgICAgICAgICAgICAgICAgICAgICAgMTAKLSNk
ZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX0JBU0VMSU5FX0FMTE9DQVRPUlMgICAgICAgICAgICAg
ICAgICAxMAorI2RlZmluZSBQQVNfRkxFWF9CT1VORF9GT1JfQkFTRUxJTkVfQUxMT0NBVE9SUyAg
ICAgICAgICAgICAgICAgIDAKICNkZWZpbmUgUEFTX0ZMRVhfQk9VTkRfRk9SX05PX1ZJRVdfQ0FD
SEUgICAgICAgICAgICAgICAgICAgICAgICBVSU5UX01BWAogI2RlZmluZSBQQVNfRkxFWF9NQVhf
U0VHUkVHQVRFRF9PQkpFQ1RfU0laRSAgICAgICAgICAgICAgICAgICAgIFVJTlRfTUFYCiAjZGVm
aW5lIFBBU19GTEVYX01BWF9CSVRGSVRfT0JKRUNUX1NJWkUgICAgICAgICAgICAgICAgICAgICAg
ICAgMApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRf
bG9nLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5jCSh3b3JraW5nIGNv
cHkpCkBAIC0zOSw3ICszOSw3IEBACiB2b2lkIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRf
Y29tbWl0X2xvZ19jb25zdHJ1Y3QoCiAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9j
b21taXRfbG9nKiBsb2cpCiB7Ci0gICAgcGFzX3JhbmdlX21pbl9oZWFwX2NvbnN0cnVjdCgmbG9n
LT5pbXBsKTsKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9taW5faGVhcF9jb25zdHJ1Y3Qo
JmxvZy0+aW1wbCk7CiAgICAgbG9nLT50b3RhbCA9IDA7CiB9CiAKQEAgLTUyLDEyICs1MiwxMiBA
QCB2b2lkIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0CiAgICAgUEFTX0FTU0VS
VCghbG9nLT5pbXBsLnNpemUpOwogICAgIAogICAgIHBhc19ib290c3RyYXBfZnJlZV9oZWFwX2Fs
bG9jYXRpb25fY29uZmlnX2NvbnN0cnVjdCgmYWxsb2NhdGlvbl9jb25maWcsIHBhc19sb2NrX2lz
X2hlbGQpOwotICAgIHBhc19yYW5nZV9taW5faGVhcF9kZXN0cnVjdCgmbG9nLT5pbXBsLCAmYWxs
b2NhdGlvbl9jb25maWcpOworICAgIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwX2Rl
c3RydWN0KCZsb2ctPmltcGwsICZhbGxvY2F0aW9uX2NvbmZpZyk7CiB9CiAKIGJvb2wgcGFzX2xh
cmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2FkZCgKICAgICBwYXNfbGFyZ2VfZnJl
ZV9oZWFwX2RlZmVycmVkX2NvbW1pdF9sb2cqIGxvZywKLSAgICBwYXNfcmFuZ2UgcmFuZ2UsCisg
ICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcmFuZ2UsCiAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24pCiB7CiAgICAgcGFzX2FsbG9jYXRpb25fY29uZmln
IGFsbG9jYXRpb25fY29uZmlnOwpAQCAtNzAsMTAgKzcwLDEwIEBAIGJvb2wgcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9kZWZlcnJlZF9jb21taXQKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICAKLSAgICBsb2ctPnRvdGFsICs9IHBhc19yYW5nZV9zaXplKHJhbmdlKTsKKyAgICBsb2ctPnRv
dGFsICs9IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX3NpemUocmFuZ2UpOwogICAgIAogICAgIHBh
c19ib290c3RyYXBfZnJlZV9oZWFwX2FsbG9jYXRpb25fY29uZmlnX2NvbnN0cnVjdCgmYWxsb2Nh
dGlvbl9jb25maWcsIHBhc19sb2NrX2lzX2hlbGQpOwotICAgIHBhc19yYW5nZV9taW5faGVhcF9h
ZGQoJmxvZy0+aW1wbCwgcmFuZ2UsICZhbGxvY2F0aW9uX2NvbmZpZyk7CisgICAgcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXBfYWRkKCZsb2ctPmltcGwsIHJhbmdlLCAmYWxsb2NhdGlv
bl9jb25maWcpOwogICAgIAogICAgIHJldHVybiB0cnVlOwogfQpAQCAtODQsMTEgKzg0LDExIEBA
IHN0YXRpYyB2b2lkIGR1bXBfbGFyZ2VfY29tbWl0KHBhc19zdHJlYW0KICAgICBwYXNfc3RyZWFt
X3ByaW50ZihzdHJlYW0sICJsYXJnZSBkZWZlcnJlZCIpOwogfQogCi1zdGF0aWMgdm9pZCBjb21t
aXQocGFzX3JhbmdlIHJhbmdlKQorc3RhdGljIHZvaWQgY29tbWl0KHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlIHJhbmdlKQogewogICAgIHN0YXRpYyBjb25zdCBib29sIHZlcmJvc2UgPSBmYWxzZTsK
ICAgICAKLSAgICBpZiAocGFzX3JhbmdlX2lzX2VtcHR5KHJhbmdlKSkKKyAgICBpZiAocGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2VfaXNfZW1wdHkocmFuZ2UpKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgaWYgKHZlcmJvc2UpIHsKQEAgLTk3LDEwICs5NywxMCBAQCBzdGF0aWMgdm9pZCBjb21t
aXQocGFzX3JhbmdlIHJhbmdlKQogICAgICAgICAgICAgICAgKHZvaWQqKXJhbmdlLmVuZCk7CiAg
ICAgfQogICAgIAotICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoKHZvaWQqKXJhbmdlLmJlZ2lu
LCBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSkpOworICAgIHBhc19wYWdlX21hbGxvY19jb21taXQoKHZv
aWQqKXJhbmdlLmJlZ2luLCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9zaXplKHJhbmdlKSwgcmFu
Z2UubW1hcF9jYXBhYmlsaXR5KTsKIAogICAgIGlmIChQQVNfREVCVUdfU1BFQ1RSVU1fVVNFX0ZP
Ul9DT01NSVQpCi0gICAgICAgIHBhc19kZWJ1Z19zcGVjdHJ1bV9hZGQoZHVtcF9sYXJnZV9jb21t
aXQsIGR1bXBfbGFyZ2VfY29tbWl0LCBwYXNfcmFuZ2Vfc2l6ZShyYW5nZSkpOworICAgICAgICBw
YXNfZGVidWdfc3BlY3RydW1fYWRkKGR1bXBfbGFyZ2VfY29tbWl0LCBkdW1wX2xhcmdlX2NvbW1p
dCwgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShyYW5nZSkpOwogfQogCiBzdGF0aWMgdm9p
ZCBjb21taXRfYWxsKApAQCAtMTA4LDE5ICsxMDgsMTkgQEAgc3RhdGljIHZvaWQgY29tbWl0X2Fs
bCgKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwKICAg
ICBib29sIGZvcl9yZWFsKQogewotICAgIHBhc19yYW5nZSBjdXJyZW50X3JhbmdlOworICAgIHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlIGN1cnJlbnRfcmFuZ2U7CiAgICAgCiAgICAgaWYgKCFsb2ct
PnRvdGFsKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgY3VycmVudF9yYW5nZSA9IHBhc19y
YW5nZV9jcmVhdGVfZW1wdHkoKTsKKyAgICBjdXJyZW50X3JhbmdlID0gcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KCk7CiAgICAgCiAgICAgZm9yICg7OykgewotICAgICAgICBw
YXNfcmFuZ2UgbmV4dF9yYW5nZSA9IHBhc19yYW5nZV9taW5faGVhcF90YWtlX21pbigmbG9nLT5p
bXBsKTsKLSAgICAgICAgaWYgKHBhc19yYW5nZV9pc19lbXB0eShuZXh0X3JhbmdlKSkKKyAgICAg
ICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgbmV4dF9yYW5nZSA9IHBhc19sYXJnZV92aXJ0dWFs
X3JhbmdlX21pbl9oZWFwX3Rha2VfbWluKCZsb2ctPmltcGwpOworICAgICAgICBpZiAocGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2VfaXNfZW1wdHkobmV4dF9yYW5nZSkpCiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgCi0gICAgICAgIFBBU19BU1NFUlQoIXBhc19yYW5nZV9vdmVybGFwcyhjdXJy
ZW50X3JhbmdlLCBuZXh0X3JhbmdlKSk7CisgICAgICAgIFBBU19BU1NFUlQoIXBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX292ZXJsYXBzKGN1cnJlbnRfcmFuZ2UsIG5leHRfcmFuZ2UpKTsKICAgICAg
ICAgCiAgICAgICAgIGlmIChuZXh0X3JhbmdlLmJlZ2luID09IGN1cnJlbnRfcmFuZ2UuZW5kKSB7
CiAgICAgICAgICAgICBjdXJyZW50X3JhbmdlLmVuZCA9IG5leHRfcmFuZ2UuZW5kOwpJbmRleDog
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZl
cnJlZF9jb21taXRfbG9nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nLmgJKHJldmlz
aW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJn
ZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDggKzI2
LDggQEAKICNpZm5kZWYgUEFTX0xBUkdFX0ZSRUVfSEVBUF9ERUZFUlJFRF9DT01NSVRfTE9HX0gK
ICNkZWZpbmUgUEFTX0xBUkdFX0ZSRUVfSEVBUF9ERUZFUlJFRF9DT01NSVRfTE9HX0gKIAotI2lu
Y2x1ZGUgInBhc19yYW5nZS5oIgotI2luY2x1ZGUgInBhc19yYW5nZV9taW5faGVhcC5oIgorI2lu
Y2x1ZGUgInBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmgiCisjaW5jbHVkZSAicGFzX2xhcmdlX3Zp
cnR1YWxfcmFuZ2VfbWluX2hlYXAuaCIKIAogUEFTX0JFR0lOX0VYVEVSTl9DOwogCkBAIC0zNyw3
ICszNyw3IEBAIHR5cGVkZWYgc3RydWN0IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXIKIHR5cGVk
ZWYgc3RydWN0IHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24gcGFzX3BoeXNpY2FsX21l
bW9yeV90cmFuc2FjdGlvbjsKIAogc3RydWN0IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRf
Y29tbWl0X2xvZyB7Ci0gICAgcGFzX3JhbmdlX21pbl9oZWFwIGltcGw7CisgICAgcGFzX2xhcmdl
X3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAgaW1wbDsKICAgICBzaXplX3QgdG90YWw7IC8qIFRoaXMg
aXMgYWNjdXJhdGUgc28gbG9uZyBhcyB0aGUgcmFuZ2VzIGFyZSBub24tb3ZlcmxhcHBpbmcuICov
CiB9OwogCkBAIC00OSw3ICs0OSw3IEBAIFBBU19BUEkgdm9pZCBwYXNfbGFyZ2VfZnJlZV9oZWFw
X2RlZmVycmUKIAogUEFTX0FQSSBib29sIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29t
bWl0X2xvZ19hZGQoCiAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9n
KiBsb2csCi0gICAgcGFzX3JhbmdlIHJhbmdlLAorICAgIHBhc19sYXJnZV92aXJ0dWFsX3Jhbmdl
IHJhbmdlLAogICAgIHBhc19waHlzaWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9u
KTsKIAogUEFTX0FQSSB2b2lkIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xv
Z19jb21taXRfYWxsKApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2ZyZWVfaGVhcF9oZWxwZXJzLmMJKHJldmlzaW9u
IDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9m
cmVlX2hlYXBfaGVscGVycy5jCSh3b3JraW5nIGNvcHkpCkBAIC04NCw3ICs4NCw4IEBAIHN0YXRp
YyBwYXNfYWxpZ25lZF9hbGxvY2F0aW9uX3Jlc3VsdCBsYXIKICAgICAgICAgCiAgICAgICAgIHBh
c19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9vdF9mcmVlKAogICAgICAgICAgICAgcGFzX3JhbmdlX2Ny
ZWF0ZShhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbiwgYWxsb2NhdGlvbl9yZXN1bHQuYmVnaW4gKyBh
bGlnbmVkX3NpemUpLAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfaGVhcF9sb2NrKTsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2Vk
X2J5X2hlYXBfbG9jaywKKyAgICAgICAgICAgIHBhc19tYXlfbW1hcCk7CiAgICAgfQogCiAgICAg
cmVzdWx0LnJlc3VsdCA9ICh2b2lkKilhbGxvY2F0aW9uX3Jlc3VsdC5iZWdpbjsKQEAgLTEzNyw3
ICsxMzgsOCBAQCB2b2lkKiBwYXNfbGFyZ2VfZnJlZV9oZWFwX2hlbHBlcnNfdHJ5X2FsCiAgICAg
ICAgICAgICBjb21taXRfcmVzdWx0ID0gcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9h
bmRfY29tbWl0KAogICAgICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUocmVzdWx0LmJlZ2lu
LCByZXN1bHQuYmVnaW4gKyBzaXplKSwKICAgICAgICAgICAgICAgICBOVUxMLAotICAgICAgICAg
ICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X2hlYXBfbG9jayk7CisgICAg
ICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrLAor
ICAgICAgICAgICAgICAgIHBhc19tYXlfbW1hcCk7CiAgICAgICAgICAgICBQQVNfQVNTRVJUKGNv
bW1pdF9yZXN1bHQpOwogICAgICAgICB9CiAgICAgICAgICgqbnVtX2FsbG9jYXRlZF9vYmplY3Rf
Ynl0ZXNfcHRyKSArPSBzaXplOwpAQCAtMTY4LDcgKzE3MCw4IEBAIHZvaWQgcGFzX2xhcmdlX2Zy
ZWVfaGVhcF9oZWxwZXJzX2RlYWxsb2MKICAgICAgICAgfQogICAgICAgICBwYXNfbGFyZ2Vfc2hh
cmluZ19wb29sX2ZyZWUoCiAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKCh1aW50cHRyX3Qp
cHRyLCAodWludHB0cl90KXB0ciArIHNpemUpLAotICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21l
bW9yeV9pc19sb2NrZWRfYnlfaGVhcF9sb2NrKTsKKyAgICAgICAgICAgIHBhc19waHlzaWNhbF9t
ZW1vcnlfaXNfbG9ja2VkX2J5X2hlYXBfbG9jaywKKyAgICAgICAgICAgIHBhc19tYXlfbW1hcCk7
CiAgICAgfQogICAgIHBhc19mYXN0X2xhcmdlX2ZyZWVfaGVhcF9kZWFsbG9jYXRlKGhlYXAsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHVpbnRwdHJfdClwdHIsICh1
aW50cHRyX3QpcHRyICsgc2l6ZSwKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sYXJnZV9oZWFwLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXAuYwkod29ya2luZyBjb3B5
KQpAQCAtMTM4LDcgKzEzOCw4IEBAIHN0YXRpYyBwYXNfYWxsb2NhdGlvbl9yZXN1bHQgYWxsb2Nh
dGVfaW0KICAgICAgICAgIXBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYWxsb2NhdGVfYW5kX2NvbW1p
dCgKICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUocmVzdWx0LmJlZ2luLCByZXN1bHQuYmVn
aW4gKyAqc2l6ZSksCiAgICAgICAgICAgICB0cmFuc2FjdGlvbiwKLSAgICAgICAgICAgIHBhc19w
aHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2spKSB7
CisgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3Jh
bmdlX2NvbW1vbl9sb2NrLAorICAgICAgICAgICAgaGVhcF9jb25maWctPm1tYXBfY2FwYWJpbGl0
eSkpIHsKICAgICAgICAgcGFzX2Zhc3RfbGFyZ2VfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCiAgICAg
ICAgICAgICAmaGVhcC0+ZnJlZV9oZWFwLCByZXN1bHQuYmVnaW4sIHJlc3VsdC5iZWdpbiArICpz
aXplLAogICAgICAgICAgICAgcmVzdWx0Lnplcm9fbW9kZSwgJmNvbmZpZyk7CkBAIC0yMDMsNyAr
MjA0LDggQEAgYm9vbCBwYXNfbGFyZ2VfaGVhcF90cnlfZGVhbGxvY2F0ZSh1aW50cAogICAgIGlm
IChoZWFwX2NvbmZpZy0+YWxpZ25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29sKSB7
CiAgICAgICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZnJlZSgKICAgICAgICAgICAgIHBhc19y
YW5nZV9jcmVhdGUobWFwX2VudHJ5LmJlZ2luLCBtYXBfZW50cnkuZW5kKSwKLSAgICAgICAgICAg
IHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xv
Y2spOworICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVh
bF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgICAgIGhlYXBfY29uZmlnLT5tbWFwX2NhcGFi
aWxpdHkpOwogICAgIH0KIAogICAgIGluaXRpYWxpemVfY29uZmlnKCZjb25maWcsIE5VTEwsIG1h
cF9lbnRyeS5oZWFwLCBoZWFwX2NvbmZpZyk7CkBAIC0yNTUsNyArMjU3LDggQEAgYm9vbCBwYXNf
bGFyZ2VfaGVhcF90cnlfc2hyaW5rKHVpbnRwdHJfdAogICAgIGlmIChoZWFwX2NvbmZpZy0+YWxp
Z25lZF9hbGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29sKSB7CiAgICAgICAgIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZnJlZSgKICAgICAgICAgICAgIHBhc19yYW5nZV9jcmVhdGUobWFwX2Vu
dHJ5LmJlZ2luICsgbmV3X3NpemUsIG1hcF9lbnRyeS5lbmQpLAotICAgICAgICAgICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7Cisg
ICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3Jhbmdl
X2NvbW1vbl9sb2NrLAorICAgICAgICAgICAgaGVhcF9jb25maWctPm1tYXBfY2FwYWJpbGl0eSk7
CiAgICAgfQogCiAgICAgaW5pdGlhbGl6ZV9jb25maWcoJmNvbmZpZywgTlVMTCwgaGVhcCwgaGVh
cF9jb25maWcpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xh
cmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFn
ZV9zaGFyaW5nX2NhY2hlLmMJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNo
ZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAicGFzX2xhcmdl
X2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgiCiAKICNpbmNsdWRlICJwYXNfYm9v
dHN0cmFwX2ZyZWVfaGVhcC5oIgorI2luY2x1ZGUgInBhc19oZWFwX2NvbmZpZy5oIgogI2luY2x1
ZGUgInBhc19oZWFwX2xvY2suaCIKICNpbmNsdWRlICJwYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmgi
CiAjaW5jbHVkZSAicGFzX3BhZ2VfbWFsbG9jLmgiCkBAIC00MCw2ICs0MSw3IEBAIHBhc19lbnVt
ZXJhYmxlX3JhbmdlX2xpc3QgcGFzX2xhcmdlX2hlYXAKIAogdHlwZWRlZiBzdHJ1Y3QgewogICAg
IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWNoZSogY2FjaGU7CisgICAg
cGFzX2hlYXBfY29uZmlnKiBjb25maWc7CiAgICAgYm9vbCBzaG91bGRfemVybzsKIH0gYWxpZ25l
ZF9hbGxvY2F0b3JfZGF0YTsKIApAQCAtMTMwLDcgKzEzMiw4IEBAIHN0YXRpYyBwYXNfYWxpZ25l
ZF9hbGxvY2F0aW9uX3Jlc3VsdCBsYXIKICAgICAgICBTbyB3ZSB1c2UgYm9vdF9mcmVlLCB3aGlj
aCBmcmVlcyB3aGlsZSBidW1waW5nIHRoZSBlcG9jaC4gKi8KICAgICBwYXNfbGFyZ2Vfc2hhcmlu
Z19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShhbGxvY2F0aW9uX3Jl
c3VsdC5iZWdpbiwgYWxsb2NhdGlvbl9yZXN1bHQuYmVnaW4gKyBhbGlnbmVkX3NpemUpLAotICAg
ICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2NvbW1v
bl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVh
bF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgZGF0YS0+Y29uZmlnLT5tbWFwX2NhcGFiaWxp
dHkpOwogICAgIAogICAgIHJlc3VsdC5yZXN1bHQgPSAodm9pZCopYWxsb2NhdGlvbl9yZXN1bHQu
YmVnaW47CiAgICAgcmVzdWx0LnJlc3VsdF9zaXplID0gc2l6ZTsKQEAgLTE1OCw2ICsxNjEsNyBA
QCBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjCiAgICAgcGFzX2xhcmdl
X2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlKiBjYWNoZSwKICAgICBzaXplX3Qgc2l6
ZSwKICAgICBwYXNfYWxpZ25tZW50IGFsaWdubWVudCwKKyAgICBwYXNfaGVhcF9jb25maWcqIGhl
YXBfY29uZmlnLAogICAgIGJvb2wgc2hvdWxkX3plcm8pCiB7CiAgICAgc3RhdGljIGNvbnN0IGJv
b2wgdmVyYm9zZSA9IGZhbHNlOwpAQCAtMTY2LDYgKzE3MCw3IEBAIHBhc19sYXJnZV9oZWFwX3Bo
eXNpY2FsX3BhZ2Vfc2hhcmluZ19jYWMKICAgICBwYXNfbGFyZ2VfZnJlZV9oZWFwX2NvbmZpZyBj
b25maWc7CiAgICAgCiAgICAgZGF0YS5jYWNoZSA9IGNhY2hlOworICAgIGRhdGEuY29uZmlnID0g
aGVhcF9jb25maWc7CiAgICAgZGF0YS5zaG91bGRfemVybyA9IHNob3VsZF96ZXJvOwogICAgIAog
ICAgIGNvbmZpZy50eXBlX3NpemUgPSAxOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX2xhcmdlX2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX2hl
YXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3Bh
Z2Vfc2hhcmluZ19jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw5IEBACiAKIFBB
U19CRUdJTl9FWFRFUk5fQzsKIAorc3RydWN0IHBhc19oZWFwX2NvbmZpZzsKIHN0cnVjdCBwYXNf
bGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3NoYXJpbmdfY2FjaGU7Cit0eXBlZGVmIHN0cnVjdCBw
YXNfaGVhcF9jb25maWcgcGFzX2hlYXBfY29uZmlnOwogdHlwZWRlZiBzdHJ1Y3QgcGFzX2xhcmdl
X2hlYXBfcGh5c2ljYWxfcGFnZV9zaGFyaW5nX2NhY2hlIHBhc19sYXJnZV9oZWFwX3BoeXNpY2Fs
X3BhZ2Vfc2hhcmluZ19jYWNoZTsKIAogc3RydWN0IHBhc19sYXJnZV9oZWFwX3BoeXNpY2FsX3Bh
Z2Vfc2hhcmluZ19jYWNoZSB7CkBAIC02NCw2ICs2Niw3IEBAIHBhc19sYXJnZV9oZWFwX3BoeXNp
Y2FsX3BhZ2Vfc2hhcmluZ19jYWMKICAgICBwYXNfbGFyZ2VfaGVhcF9waHlzaWNhbF9wYWdlX3No
YXJpbmdfY2FjaGUqIGNhY2hlLAogICAgIHNpemVfdCBzaXplLAogICAgIHBhc19hbGlnbm1lbnQg
YWxpZ25tZW50LAorICAgIHBhc19oZWFwX2NvbmZpZyogY29uZmlnLAogICAgIGJvb2wgc2hvdWxk
X3plcm8pOwogCiBQQVNfRU5EX0VYVEVSTl9DOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJnZV9zaGFyaW5nX3Bvb2wuYwkocmV2
aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xh
cmdlX3NoYXJpbmdfcG9vbC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDggQEAgc3Rh
dGljIHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIGNyZWF0ZV9ubwogICAgIHVpbnQ2NF90IHVzZV9l
cG9jaCwKICAgICBwYXNfY29tbWl0X21vZGUgaXNfY29tbWl0dGVkLAogICAgIHNpemVfdCBudW1f
bGl2ZV9ieXRlcywKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHls
ZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJv
bml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgIHBhc19tbWFwX2NhcGFi
aWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHBhc19sYXJnZV9zaGFyaW5nX25vZGUqIHJl
c3VsdDsKICAgICAKQEAgLTE4Niw2ICsxODcsNyBAQCBzdGF0aWMgcGFzX2xhcmdlX3NoYXJpbmdf
bm9kZSogY3JlYXRlX25vCiAgICAgcmVzdWx0LT5pc19jb21taXR0ZWQgPSBpc19jb21taXR0ZWQ7
CiAgICAgcmVzdWx0LT5udW1fbGl2ZV9ieXRlcyA9IG51bV9saXZlX2J5dGVzOwogICAgIHJlc3Vs
dC0+c3luY2hyb25pemF0aW9uX3N0eWxlID0gc3luY2hyb25pemF0aW9uX3N0eWxlOworICAgIHJl
c3VsdC0+bW1hcF9jYXBhYmlsaXR5ID0gbW1hcF9jYXBhYmlsaXR5OwogCiAgICAgdmFsaWRhdGVf
bm9kZV9pZl9hc3NlcnRpbmdfYWdncmVzc2l2ZWx5KHJlc3VsdCk7CiAgICAgCkBAIC0xOTcsMTEg
KzE5OSwxMyBAQCBzdGF0aWMgcGFzX2xhcmdlX3NoYXJpbmdfbm9kZSogY3JlYXRlX2FuCiAgICAg
dWludDY0X3QgdXNlX2Vwb2NoLAogICAgIHBhc19jb21taXRfbW9kZSBpc19jb21taXR0ZWQsCiAg
ICAgc2l6ZV90IG51bV9saXZlX2J5dGVzLAotICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hy
b25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSkKKyAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAg
cGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgcGFzX2xhcmdlX3No
YXJpbmdfbm9kZSogcmVzdWx0OwogICAgIAotICAgIHJlc3VsdCA9IGNyZWF0ZV9ub2RlKHJhbmdl
LCB1c2VfZXBvY2gsIGlzX2NvbW1pdHRlZCwgbnVtX2xpdmVfYnl0ZXMsIHN5bmNocm9uaXphdGlv
bl9zdHlsZSk7CisgICAgcmVzdWx0ID0gY3JlYXRlX25vZGUocmFuZ2UsIHVzZV9lcG9jaCwgaXNf
Y29tbWl0dGVkLCBudW1fbGl2ZV9ieXRlcywgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAgcGFzX3JlZF9i
bGFja190cmVlX2luc2VydCgKICAgICAgICAgJnBhc19sYXJnZV9zaGFyaW5nX3RyZWUsICZyZXN1
bHQtPnRyZWVfbm9kZSwgbm9kZV9jb21wYXJlX2NhbGxiYWNrLApAQCAtMjM3LDcgKzI0MSw4IEBA
IHN0YXRpYyB2b2lkIGJvb3RfdHJlZSgpCiAgICAgICAgIDAsCiAgICAgICAgIHBhc19jb21taXR0
ZWQsCiAgICAgICAgIHBhc19yYW5nZV9zaXplKHJhbmdlKSwKLSAgICAgICAgcGFzX3BoeXNpY2Fs
X21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAgICAg
IHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xv
Y2ssCisgICAgICAgIHBhc19tYXlfbW1hcCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRlc3Ryb3lfbm9k
ZShwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlKiBub2RlKQpAQCAtMjkzLDYgKzI5OCw5IEBAIHN0YXRp
YyBib29sIHN0YXRlc19tYXRjaChwYXNfbGFyZ2Vfc2hhcmkKICAgICBpZiAobGVmdC0+c3luY2hy
b25pemF0aW9uX3N0eWxlICE9IHJpZ2h0LT5zeW5jaHJvbml6YXRpb25fc3R5bGUpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmIChsZWZ0LT5tbWFwX2NhcGFiaWxpdHkgIT0gcmlnaHQt
Pm1tYXBfY2FwYWJpbGl0eSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgYm90aF9lbXB0
eSA9CiAgICAgICAgICFsZWZ0LT5udW1fbGl2ZV9ieXRlcyAmJgogICAgICAgICAhcmlnaHQtPm51
bV9saXZlX2J5dGVzOwpAQCAtMzc5LDcgKzM4Nyw4IEBAIHNwbGl0X25vZGVfYW5kX2dldF9yaWdo
dF9pbXBsKHBhc19sYXJnZV8KICAgICAgICAgbm9kZS0+dXNlX2Vwb2NoLAogICAgICAgICBub2Rl
LT5pc19jb21taXR0ZWQsCiAgICAgICAgIG5vZGUtPm51bV9saXZlX2J5dGVzID8gbm9kZS0+cmFu
Z2UuZW5kIC0gc3BsaXRfcG9pbnQgOiAwLAotICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25f
c3R5bGUpOworICAgICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAgICAgIG5v
ZGUtPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAgbm9kZS0+cmFuZ2UuZW5kID0gc3BsaXRf
cG9pbnQ7CiAgICAgbm9kZS0+bnVtX2xpdmVfYnl0ZXMgPSBub2RlLT5udW1fbGl2ZV9ieXRlcyA/
IHNwbGl0X3BvaW50IC0gbm9kZS0+cmFuZ2UuYmVnaW4gOiAwOwpAQCAtNjAzLDcgKzYxMiw4IEBA
IHN0YXRpYyBib29sIHRyeV9zcGxhdF9pbXBsKHBhc19yYW5nZSByYW4KICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogY29t
bWl0X2xvZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWZlcnJlZF9kZWNvbW1p
dF9sb2cqIGRlY29tbWl0X2xvZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19waHlz
aWNhbF9tZW1vcnlfdHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hy
b25pemF0aW9uX3N0eWxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2Fs
X21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxp
dHkpCiB7CiAgICAgcGFzX2xhcmdlX3NoYXJpbmdfbm9kZSogbWluX25vZGU7CiAgICAgcGFzX2xh
cmdlX3NoYXJpbmdfbm9kZSogbWF4X25vZGU7CkBAIC02MTgsOSArNjI4LDEwIEBAIHN0YXRpYyBi
b29sIHRyeV9zcGxhdF9pbXBsKHBhc19yYW5nZSByYW4KICAgICAKICAgICBpZiAodmVyYm9zZSkg
ewogICAgICAgICBwYXNfbG9nKCJEb2luZyBzcGxhdCBpbiByYW5nZSAlcC0lcCwgY29tbWFuZCA9
ICVzLCBlcG9jaCA9ICVsbHUsICIKLSAgICAgICAgICAgICAgICAic3luY2hyb25pemF0aW9uX3N0
eWxlID0gJXNcbiIsCisgICAgICAgICAgICAgICAgInN5bmNocm9uaXphdGlvbl9zdHlsZSA9ICVz
LCBtbWFwX2NhcGFiaWxpdHkgPSAlc1xuIiwKICAgICAgICAgICAgICAgICAodm9pZCopcmFuZ2Uu
YmVnaW4sICh2b2lkKilyYW5nZS5lbmQsIHNwbGF0X2NvbW1hbmRfZ2V0X3N0cmluZyhjb21tYW5k
KSwgKHVuc2lnbmVkIGxvbmcgbG9uZyllcG9jaCwKLSAgICAgICAgICAgICAgICBwYXNfcGh5c2lj
YWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZV9nZXRfc3RyaW5nKHN5bmNocm9uaXphdGlv
bl9zdHlsZSkpOworICAgICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25p
emF0aW9uX3N0eWxlX2dldF9zdHJpbmcoc3luY2hyb25pemF0aW9uX3N0eWxlKSwKKyAgICAgICAg
ICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5X2dldF9zdHJpbmcobW1hcF9jYXBhYmlsaXR5KSk7
CiAgICAgfQogICAgIAogICAgIHBhc19oZWFwX2xvY2tfYXNzZXJ0X2hlbGQoKTsKQEAgLTc2OSw2
ICs3ODAsNyBAQCBzdGF0aWMgYm9vbCB0cnlfc3BsYXRfaW1wbChwYXNfcmFuZ2UgcmFuCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkZXNpcmVkX2NvbW1pdF9tb2RlKTsKICAgICAgICAgICAgICAgICAgaW5uZXJfbm9k
ZSA9IHN1Y2Nlc3Nvcihpbm5lcl9ub2RlKSkgewogICAgICAgICAgICAgICAgIFBBU19BU1NFUlQo
aW5uZXJfbm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlID09IHN5bmNocm9uaXphdGlvbl9zdHls
ZSk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChpbm5lcl9ub2RlLT5tbWFwX2NhcGFiaWxp
dHkgPT0gbW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgICAgICAgICBhZmZlY3RlZF9lbmQgPSBp
bm5lcl9ub2RlLT5yYW5nZS5lbmQ7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTc4
MywxMiArNzk1LDE0IEBAIHN0YXRpYyBib29sIHRyeV9zcGxhdF9pbXBsKHBhc19yYW5nZSByYW4K
ICAgICAgICAgICAgIGNhc2UgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfaGVhcF9s
b2NrOiB7CiAgICAgICAgICAgICAgICAgc3dpdGNoIChkZXNpcmVkX2NvbW1pdF9tb2RlKSB7CiAg
ICAgICAgICAgICAgICAgY2FzZSBwYXNfZGVjb21taXR0ZWQ6Ci0gICAgICAgICAgICAgICAgICAg
IHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCgodm9pZCopYWZmZWN0ZWRfYmVnaW4sIGFmZmVjdGVk
X2VuZCAtIGFmZmVjdGVkX2JlZ2luKTsKKyAgICAgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFs
bG9jX2RlY29tbWl0KCh2b2lkKilhZmZlY3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0
ZWRfYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBt
bWFwX2NhcGFiaWxpdHkpOwogICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9sb2ctPnRvdGFs
ICs9IGFmZmVjdGVkX2VuZCAtIGFmZmVjdGVkX2JlZ2luOwogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgY2FzZSBwYXNfY29t
bWl0dGVkOgotICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KCh2b2lk
KilhZmZlY3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4pOworICAgICAg
ICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KCh2b2lkKilhZmZlY3RlZF9iZWdp
biwgYWZmZWN0ZWRfZW5kIC0gYWZmZWN0ZWRfYmVnaW4sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbW1hcF9jYXBhYmlsaXR5KTsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKFBBU19ERUJVR19TUEVDVFJVTV9VU0VfRk9SX0NPTU1JVCkgewogICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2RlYnVnX3NwZWN0cnVtX2FkZCgKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBkdW1wX2xhcmdlX2NvbW1pdCwgZHVtcF9sYXJnZV9jb21taXQsIGFmZmVjdGVkX2Vu
ZCAtIGFmZmVjdGVkX2JlZ2luKTsKQEAgLTgwNywxNCArODIxLDE1IEBAIHN0YXRpYyBib29sIHRy
eV9zcGxhdF9pbXBsKHBhc19yYW5nZSByYW4KICAgICAgICAgICAgICAgICAgICAgd2FzX2FkZGVk
ID0gcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19hZGQoCiAgICAgICAgICAgICAgICAgICAgICAg
ICBkZWNvbW1pdF9sb2csCiAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdmlydHVhbF9yYW5n
ZV9jcmVhdGUoYWZmZWN0ZWRfYmVnaW4sIGFmZmVjdGVkX2VuZCwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmcGFzX3ZpcnR1YWxfcmFuZ2VfY29tbW9u
X2xvY2spLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICZwYXNfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtbWFwX2NhcGFiaWxpdHkpLAogICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBjYXNlIHBhc19jb21taXR0
ZWQ6CiAgICAgICAgICAgICAgICAgICAgIHdhc19hZGRlZCA9IHBhc19sYXJnZV9mcmVlX2hlYXBf
ZGVmZXJyZWRfY29tbWl0X2xvZ19hZGQoCiAgICAgICAgICAgICAgICAgICAgICAgICBjb21taXRf
bG9nLAotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3JhbmdlX2NyZWF0ZShhZmZlY3RlZF9i
ZWdpbiwgYWZmZWN0ZWRfZW5kKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlX2NyZWF0ZShhZmZlY3RlZF9iZWdpbiwgYWZmZWN0ZWRfZW5kLCBtbWFwX2Nh
cGFiaWxpdHkpLAogICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNhY3Rpb24pOwogICAgICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9CkBAIC04OTUsMTMgKzkxMCwx
OCBAQCBzdGF0aWMgYm9vbCB0cnlfc3BsYXRfaW1wbChwYXNfcmFuZ2UgcmFuCiAgICAgICAgIGNh
c2Ugc3BsYXRfYWxsb2NhdGVfYW5kX2NvbW1pdDoKICAgICAgICAgY2FzZSBzcGxhdF9mcmVlOgog
ICAgICAgICAgICAgUEFTX0FTU0VSVChub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUgPT0gc3lu
Y2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICAgICAgICAgIFBBU19BU1NFUlQobm9kZS0+bW1hcF9j
YXBhYmlsaXR5ID09IG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAg
ICAgICBjYXNlIHNwbGF0X2Jvb3RfZnJlZToKICAgICAgICAgICAgIFBBU19BU1NFUlQoCiAgICAg
ICAgICAgICAgICAgbm9kZS0+c3luY2hyb25pemF0aW9uX3N0eWxlCiAgICAgICAgICAgICAgICAg
PT0gcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25f
bG9jayk7CisgICAgICAgICAgICBQQVNfQVNTRVJUKAorICAgICAgICAgICAgICAgIG5vZGUtPm1t
YXBfY2FwYWJpbGl0eQorICAgICAgICAgICAgICAgID09IHBhc19tYXlfbW1hcCk7CiAgICAgICAg
ICAgICBub2RlLT5zeW5jaHJvbml6YXRpb25fc3R5bGUgPSBzeW5jaHJvbml6YXRpb25fc3R5bGU7
CisgICAgICAgICAgICBub2RlLT5tbWFwX2NhcGFiaWxpdHkgPSBtbWFwX2NhcGFiaWxpdHk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC05NzAsMTIgKzk5MCwxMyBAQCBzdGF0
aWMgYm9vbCB0cnlfc3BsYXQocGFzX3JhbmdlIHJhbmdlLAogICAgICAgICAgICAgICAgICAgICAg
IHBhc19sYXJnZV9mcmVlX2hlYXBfZGVmZXJyZWRfY29tbWl0X2xvZyogY29tbWl0X2xvZywKICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfZGVmZXJyZWRfZGVjb21taXRfbG9nKiBkZWNvbW1pdF9s
b2csCiAgICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlv
biogdHJhbnNhY3Rpb24sCi0gICAgICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlKQorICAgICAgICAg
ICAgICAgICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5
bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsKICAgICBib29sIHJlc3VsdDsKICAgICAKICAgICBy
ZXN1bHQgPSB0cnlfc3BsYXRfaW1wbCgKLSAgICAgICAgcmFuZ2UsIGNvbW1hbmQsIGVwb2NoLCBj
b21taXRfbG9nLCBkZWNvbW1pdF9sb2csIHRyYW5zYWN0aW9uLCBzeW5jaHJvbml6YXRpb25fc3R5
bGUpOworICAgICAgICByYW5nZSwgY29tbWFuZCwgZXBvY2gsIGNvbW1pdF9sb2csIGRlY29tbWl0
X2xvZywgdHJhbnNhY3Rpb24sIHN5bmNocm9uaXphdGlvbl9zdHlsZSwgbW1hcF9jYXBhYmlsaXR5
KTsKICAgICAKICAgICBpZiAocGFzX2xhcmdlX3NoYXJpbmdfcG9vbF92YWxpZGF0ZV9lYWNoX3Nw
bGF0KQogICAgICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX3ZhbGlkYXRlKCk7CkBAIC05ODks
MTkgKzEwMTAsMjEgQEAgc3RhdGljIHZvaWQgc3BsYXQocGFzX3JhbmdlIHJhbmdlLAogICAgICAg
ICAgICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nKiBjb21t
aXRfbG9nLAogICAgICAgICAgICAgICAgICAgcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZyogZGVj
b21taXRfbG9nLAogICAgICAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2Fj
dGlvbiogdHJhbnNhY3Rpb24sCi0gICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5
X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgICAgICAg
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJv
bml6YXRpb25fc3R5bGUsCisgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1t
YXBfY2FwYWJpbGl0eSkKIHsKICAgICBib29sIHJlc3VsdDsKICAgICAKICAgICByZXN1bHQgPSB0
cnlfc3BsYXQoCi0gICAgICAgIHJhbmdlLCBjb21tYW5kLCBlcG9jaCwgY29tbWl0X2xvZywgZGVj
b21taXRfbG9nLCB0cmFuc2FjdGlvbiwgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICAgICAg
cmFuZ2UsIGNvbW1hbmQsIGVwb2NoLCBjb21taXRfbG9nLCBkZWNvbW1pdF9sb2csIHRyYW5zYWN0
aW9uLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1tYXBfY2FwYWJpbGl0eSk7CiAgICAgCiAgICAg
UEFTX0FTU0VSVChyZXN1bHQpOwogfQogCiB2b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYm9v
dF9mcmVlKAogICAgIHBhc19yYW5nZSByYW5nZSwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5
bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpCisgICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAor
ICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHVpbnQ2NF90
IGVwb2NoOwogCkBAIC0xMDA5LDExICsxMDMyLDEyIEBAIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9ib290X2ZyZWUoCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBlcG9jaCA9IHBhc19n
ZXRfZXBvY2goKTsKLSAgICBzcGxhdChyYW5nZSwgc3BsYXRfYm9vdF9mcmVlLCBlcG9jaCwgTlVM
TCwgTlVMTCwgTlVMTCwgc3luY2hyb25pemF0aW9uX3N0eWxlKTsKKyAgICBzcGxhdChyYW5nZSwg
c3BsYXRfYm9vdF9mcmVlLCBlcG9jaCwgTlVMTCwgTlVMTCwgTlVMTCwgc3luY2hyb25pemF0aW9u
X3N0eWxlLCBtbWFwX2NhcGFiaWxpdHkpOwogfQogCiB2b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bv
b2xfZnJlZShwYXNfcmFuZ2UgcmFuZ2UsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRp
b25fc3R5bGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfcGh5c2ljYWxf
bWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2Fw
YWJpbGl0eSkKIHsKICAgICB1aW50NjRfdCBlcG9jaDsKIApAQCAtMTAyMiwxMyArMTA0NiwxNCBA
QCB2b2lkIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfZnJlZShwYXNfcmFuCiAgICAgCiAgICAgZXBv
Y2ggPSBwYXNfZ2V0X2Vwb2NoKCk7CiAgICAgCi0gICAgc3BsYXQocmFuZ2UsIHNwbGF0X2ZyZWUs
IGVwb2NoLCBOVUxMLCBOVUxMLCBOVUxMLCBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgIHNw
bGF0KHJhbmdlLCBzcGxhdF9mcmVlLCBlcG9jaCwgTlVMTCwgTlVMTCwgTlVMTCwgc3luY2hyb25p
emF0aW9uX3N0eWxlLCBtbWFwX2NhcGFiaWxpdHkpOwogfQogCiBib29sIHBhc19sYXJnZV9zaGFy
aW5nX3Bvb2xfYWxsb2NhdGVfYW5kX2NvbW1pdCgKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCiAgICAg
cGFzX3BoeXNpY2FsX21lbW9yeV90cmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sCi0gICAgcGFzX3Bo
eXNpY2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxl
KQorICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9u
aXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkK
IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAgICAgCkBAIC0xMDUx
LDcgKzEwNzYsNyBAQCBib29sIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xfYWxsb2NhdGVfYW5kCiAg
ICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9jb21taXRfbG9nX2NvbnN0cnVjdCgmY29t
bWl0X2xvZyk7CiAKICAgICBpZiAoIXRyeV9zcGxhdChyYW5nZSwgc3BsYXRfYWxsb2NhdGVfYW5k
X2NvbW1pdCwgZXBvY2gsCi0gICAgICAgICAgICAgICAgICAgJmNvbW1pdF9sb2csIE5VTEwsIHRy
YW5zYWN0aW9uLCBzeW5jaHJvbml6YXRpb25fc3R5bGUpKSB7CisgICAgICAgICAgICAgICAgICAg
JmNvbW1pdF9sb2csIE5VTEwsIHRyYW5zYWN0aW9uLCBzeW5jaHJvbml6YXRpb25fc3R5bGUsIG1t
YXBfY2FwYWJpbGl0eSkpIHsKICAgICAgICAgcGFzX2xhcmdlX2ZyZWVfaGVhcF9kZWZlcnJlZF9j
b21taXRfbG9nX2Rlc3RydWN0KCZjb21taXRfbG9nKTsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAg
ICAgICAgICAgICBwYXNfbG9nKCJHaXZpbmcgdXAgb24gYWxsb2NhdGUgYW5kIGNvbW1pdCBiZWNh
dXNlIHRoZSBzcGxhdCBmYWlsZWQuXG4iKTsKQEAgLTExMjUsNyArMTE1MCw3IEBAIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZGVjb21taXRfbGVhc3RfcmUKICAgICB9CiAgICAgCiAgICAgaWYgKHRy
eV9zcGxhdChub2RlLT5yYW5nZSwgc3BsYXRfZGVjb21taXQsIDAsIE5VTEwsIGRlY29tbWl0X2xv
ZywgTlVMTCwKLSAgICAgICAgICAgICAgICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSkp
IHsKKyAgICAgICAgICAgICAgICAgIG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSwgbm9kZS0+
bW1hcF9jYXBhYmlsaXR5KSkgewogICAgICAgICBpZiAodmVyYm9zZSkKICAgICAgICAgICAgIHBh
c19sb2coIlRoZSBzcGxhdCB3b3JrZWQuXG4iKTsKICAgICAgICAgcmV0dXJuIHBhc19wYWdlX3No
YXJpbmdfcG9vbF90YWtlX3N1Y2Nlc3M7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbGFyZ2Vfc2hhcmluZ19wb29sLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3NoYXJpbmdfcG9vbC5oCShyZXZpc2lv
biAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
c2hhcmluZ19wb29sLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChjKSAyMDE5LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAicGFzX2ZyZWVfbW9kZS5oIgogI2luY2x1ZGUgInBhc19oZWFwX3N1bW1hcnkuaCIKICNpbmNs
dWRlICJwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Vwb2NoX3VwZGF0ZV9tb2RlLmgiCisjaW5jbHVk
ZSAicGFzX21tYXBfY2FwYWJpbGl0eS5oIgogI2luY2x1ZGUgInBhc19taW5faGVhcC5oIgogI2lu
Y2x1ZGUgInBhc19wYWdlX3NoYXJpbmdfcGFydGljaXBhbnQuaCIKICNpbmNsdWRlICJwYXNfcGh5
c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZS5oIgpAQCAtNTEsMTAgKzUyLDEwIEBA
IHN0cnVjdCBwYXNfbGFyZ2Vfc2hhcmluZ19ub2RlIHsKICAgICBwYXNfcmVkX2JsYWNrX3RyZWVf
bm9kZSB0cmVlX25vZGU7CiAgICAgCiAgICAgcGFzX2NvbW1pdF9tb2RlIGlzX2NvbW1pdHRlZCA6
IDE7Ci0KICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5j
aHJvbml6YXRpb25fc3R5bGUgOiAxOworICAgIHBhc19tbWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBh
YmlsaXR5IDogMTsKIAotICAgIHVuc2lnbmVkIGluZGV4X2luX21pbl9oZWFwIDogMzA7IC8qIGl0
J3MgYSBvbmUtYmFzZWQgaW5kZXg7IGl0J3MgemVybyB0byBpbmRpY2F0ZSB0aGF0IHdlJ3JlIG5v
dCBpbgorICAgIHVuc2lnbmVkIGluZGV4X2luX21pbl9oZWFwIDogMjk7IC8qIGl0J3MgYSBvbmUt
YmFzZWQgaW5kZXg7IGl0J3MgemVybyB0byBpbmRpY2F0ZSB0aGF0IHdlJ3JlIG5vdCBpbgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZSBtaW5faGVhcC4gKi8KICAg
ICAKICAgICBwYXNfcmFuZ2UgcmFuZ2U7IC8qIEhhcyB0byBiZSBhIHBhZ2UgcmFuZ2UuICovCkBA
IC0xNDUsMTYgKzE0NiwxOSBAQCBQQVNfQVBJIGV4dGVybiBwYXNfbGFyZ2Vfc2hhcmluZ19wb29s
X2VwCiAvKiBUaGlzIG1ha2VzIHRoZSBtZW1vcnkgZnJlZSBhbmQgYWxzbyBidW1wcyB0aGUgZXBv
Y2guICovCiBQQVNfQVBJIHZvaWQgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9ib290X2ZyZWUoCiAg
ICAgcGFzX3JhbmdlIHJhbmdlLAotICAgIHBhc19waHlzaWNhbF9tZW1vcnlfc3luY2hyb25pemF0
aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSk7CisgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlLAorICAgIHBhc19t
bWFwX2NhcGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KTsKIAogUEFTX0FQSSB2b2lkIHBhc19sYXJn
ZV9zaGFyaW5nX3Bvb2xfZnJlZSgKICAgICBwYXNfcmFuZ2UgcmFuZ2UsCi0gICAgcGFzX3BoeXNp
Y2FsX21lbW9yeV9zeW5jaHJvbml6YXRpb25fc3R5bGUgc3luY2hyb25pemF0aW9uX3N0eWxlKTsK
KyAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlvbl9zdHlsZSBzeW5jaHJvbml6
YXRpb25fc3R5bGUsCisgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpOwog
CiBQQVNfQVBJIGJvb2wgcGFzX2xhcmdlX3NoYXJpbmdfcG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0
KAogICAgIHBhc19yYW5nZSByYW5nZSwKICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3RyYW5zYWN0
aW9uKiB0cmFuc2FjdGlvbiwKLSAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9uaXphdGlv
bl9zdHlsZSBzeW5jaHJvbml6YXRpb25fc3R5bGUpOworICAgIHBhc19waHlzaWNhbF9tZW1vcnlf
c3luY2hyb25pemF0aW9uX3N0eWxlIHN5bmNocm9uaXphdGlvbl9zdHlsZSwKKyAgICBwYXNfbW1h
cF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKIC8qIFRoaXMgZG9lc24ndCBhY3R1YWxs
eSBkZWNvbW1pdCB0aGUgbWVtb3J5LiBJdCBqdXN0IHRlbGxzIHlvdSBhYm91dCB3aGF0IG1lbW9y
eSB0byBkZWNvbW1pdAogICAgdXNpbmcgdGhlIGRlY29tbWl0X2xvZy4gSXQncyB5b3VyIGpvYiB0
byBkZWNvbW1pdCBldmVyeXRoaW5nIGluIHRoYXQgbG9nLCB3aGljaCB5b3UgY2FuCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2VfdmlydHVhbF9yYW5nZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgUEFTX0xBUkdFX1ZJUlRVQUxfUkFOR0VfSAorI2RlZmluZSBQQVNfTEFSR0Vf
VklSVFVBTF9SQU5HRV9ICisKKyNpbmNsdWRlICJwYXNfbG9jay5oIgorI2luY2x1ZGUgInBhc19t
bWFwX2NhcGFiaWxpdHkuaCIKKyNpbmNsdWRlICJwYXNfcmFuZ2UuaCIKKyNpbmNsdWRlICJwYXNf
dXRpbHMuaCIKKworUEFTX0JFR0lOX0VYVEVSTl9DOworCitzdHJ1Y3QgcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2U7Cit0eXBlZGVmIHN0cnVjdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBwYXNfbGFy
Z2VfdmlydHVhbF9yYW5nZTsKKworc3RydWN0IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlIHsKKyAg
ICB1aW50cHRyX3QgYmVnaW47CisgICAgdWludHB0cl90IGVuZDsKKyAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eTsKK307CisKK3N0YXRpYyBpbmxpbmUgcGFzX2xhcmdlX3Zp
cnR1YWxfcmFuZ2UgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKHVpbnRwdHJfdCBiZWdp
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKK3sKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBy
ZXN1bHQ7CisgICAgcmVzdWx0LmJlZ2luID0gYmVnaW47CisgICAgcmVzdWx0LmVuZCA9IGVuZDsK
KyAgICByZXN1bHQubW1hcF9jYXBhYmlsaXR5ID0gbW1hcF9jYXBhYmlsaXR5OworICAgIHJldHVy
biByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2UgcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlX2VtcHR5KHZvaWQpCit7CisgICAgcmV0dXJuIHBh
c19sYXJnZV92aXJ0dWFsX3JhbmdlX2NyZWF0ZSgwLCAwLCBwYXNfbWF5X25vdF9tbWFwKTsKK30K
Kworc3RhdGljIGlubGluZSBwYXNfcmFuZ2UgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X3Jh
bmdlKHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlIHJhbmdlKQoreworICAgIHJldHVybiBwYXNfcmFu
Z2VfY3JlYXRlKHJhbmdlLmJlZ2luLCByYW5nZS5lbmQpOworfQorCitzdGF0aWMgaW5saW5lIGJv
b2wgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfaXNfZW1wdHkocGFzX2xhcmdlX3ZpcnR1YWxfcmFu
Z2UgcmFuZ2UpCit7CisgICAgcmV0dXJuIHBhc19yYW5nZV9pc19lbXB0eShwYXNfbGFyZ2Vfdmly
dHVhbF9yYW5nZV9nZXRfcmFuZ2UocmFuZ2UpKTsKK30KKworc3RhdGljIGlubGluZSBzaXplX3Qg
cGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2l6ZShwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSByYW5n
ZSkKK3sKKyAgICByZXR1cm4gcGFzX3JhbmdlX3NpemUocGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vf
Z2V0X3JhbmdlKHJhbmdlKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbGFyZ2Vfdmly
dHVhbF9yYW5nZV9vdmVybGFwcyhwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSBsZWZ0LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sYXJnZV92
aXJ0dWFsX3JhbmdlIHJpZ2h0KQoreworICAgIHJldHVybiBwYXNfcmFuZ2Vfb3ZlcmxhcHMocGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X3JhbmdlKGxlZnQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfZ2V0X3JhbmdlKHJpZ2h0KSk7Cit9
CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfTEFSR0VfVklSVFVBTF9SQU5H
RV9IICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sYXJn
ZV92aXJ0dWFsX3JhbmdlX21pbl9oZWFwLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2VfbWluX2hlYXAuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbGFyZ2Vf
dmlydHVhbF9yYW5nZV9taW5faGVhcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBQ
QVNfTEFSR0VfVklSVFVBTF9SQU5HRV9NSU5fSEVBUF9ICisjZGVmaW5lIFBBU19MQVJHRV9WSVJU
VUFMX1JBTkdFX01JTl9IRUFQX0gKKworI2luY2x1ZGUgInBhc19taW5faGVhcC5oIgorI2luY2x1
ZGUgInBhc191dGlscy5oIgorI2luY2x1ZGUgInBhc19sYXJnZV92aXJ0dWFsX3JhbmdlLmgiCisK
K1BBU19CRUdJTl9FWFRFUk5fQzsKKworc3RhdGljIGlubGluZSBpbnQgcGFzX2xhcmdlX3ZpcnR1
YWxfcmFuZ2VfY29tcGFyZV9iZWdpbihwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogbGVmdCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X2xhcmdlX3ZpcnR1YWxfcmFuZ2UqIHJpZ2h0KQoreworICAgIGlmIChsZWZ0LT5iZWdpbiA8IHJp
Z2h0LT5iZWdpbikKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlmIChsZWZ0LT5iZWdpbiA9PSBy
aWdodC0+YmVnaW4pCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiAxOworfQorCitzdGF0
aWMgaW5saW5lIHNpemVfdCBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9nZXRfaW5kZXgocGFzX2xh
cmdlX3ZpcnR1YWxfcmFuZ2UqIHJhbmdlKQoreworICAgIFBBU19BU1NFUlQoISJTaG91bGQgbm90
IGJlIHJlYWNoZWQiKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKHJhbmdlKTsKKyAgICByZXR1cm4g
MDsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX3NldF9p
bmRleChwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSogcmFuZ2UsIHNpemVfdCBpbmRleCkKK3sKKyAg
ICBQQVNfVU5VU0VEX1BBUkFNKHJhbmdlKTsKKyAgICBQQVNfVU5VU0VEX1BBUkFNKGluZGV4KTsK
K30KKworUEFTX0NSRUFURV9NSU5fSEVBUCgKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZV9t
aW5faGVhcCwKKyAgICBwYXNfbGFyZ2VfdmlydHVhbF9yYW5nZSwKKyAgICAzMiwKKyAgICAuY29t
cGFyZSA9IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2NvbXBhcmVfYmVnaW4sCisgICAgLmdldF9p
bmRleCA9IHBhc19sYXJnZV92aXJ0dWFsX3JhbmdlX2dldF9pbmRleCwKKyAgICAuc2V0X2luZGV4
ID0gcGFzX2xhcmdlX3ZpcnR1YWxfcmFuZ2Vfc2V0X2luZGV4KTsKKworUEFTX0VORF9FWFRFUk5f
QzsKKworI2VuZGlmIC8qIFBBU19MQVJHRV9WSVJUVUFMX1JBTkdFX01JTl9IRUFQX0ggKi8KKwpJ
bmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRv
ci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19s
b2NhbF9hbGxvY2F0b3IuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvci5jCSh3b3JraW5nIGNvcHkpCkBAIC03
Nyw4ICs3Nyw3IEBAIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25zdHJ1Y3QocGFzX2wKICAg
ICAgICAgICAgIHBhc19jb21wYWN0X2JpdGZpdF9kaXJlY3RvcnlfcHRyX2xvYWRfbm9uX251bGwo
JnNpemVfY2xhc3MtPmRpcmVjdG9yeSktPmNvbmZpZ19raW5kKTsKIAogICAgICAgICBiaXRmaXRf
YWxsb2NhdG9yID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvcik7Ci0g
ICAgICAgIGJpdGZpdF9hbGxvY2F0b3ItPnNpemVfY2xhc3MgPSBzaXplX2NsYXNzOwotICAgICAg
ICBiaXRmaXRfYWxsb2NhdG9yLT52aWV3ID0gTlVMTDsKKyAgICAgICAgcGFzX2JpdGZpdF9hbGxv
Y2F0b3JfY29uc3RydWN0KGJpdGZpdF9hbGxvY2F0b3IsIHNpemVfY2xhc3MpOwogICAgIH0gZWxz
ZQogICAgICAgICBhbGxvY2F0b3ItPmNvbmZpZ19raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZF9jcmVhdGVfbm9ybWFsKGRpcmVjdG9yeS0+YmFzZS5wYWdlX2NvbmZpZ19raW5k
KTsKICAgICAKQEAgLTEyMCw2ICsxMTksOSBAQCB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3JfbW92
ZShwYXNfbG9jYWxfCiAKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7IC8qIE5lZWRl
ZCB0byBtb2RpZnkgYSBsZW5pZW50X2NvbXBhY3RfcHRyLiAqLwogCisgICAgUEFTX0FTU0VSVCgh
ZHN0LT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworICAgIFBBU19BU1NFUlQoIXNyYy0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKwogICAgIGRpcmVjdG9yeSA9IHBhc19zZWdyZWdhdGVk
X3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHNyYy0+dmlldyk7CiAgICAgCiAgICAgc2l6ZSA9IHBh
c19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5X2xvY2FsX2FsbG9jYXRvcl9zaXplKGRpcmVjdG9y
eSk7CkBAIC0xNTgsNiArMTYwLDEzIEBAIHN0YXRpYyBib29sIHN0b3BfaW1wbCgKICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgcGFzX2xvZygic3RvcHBpbmcgYWxsb2NhdG9yICVwXG4iLCBhbGxv
Y2F0b3IpOwogCisgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3JfaGFzX2JpdGZpdChhbGxvY2F0
b3IpKSB7CisgICAgICAgIFBBU19BU1NFUlQoIWFsbG9jYXRvci0+cGFnZV9pc2gpOworICAgICAg
ICBwYXNfYml0Zml0X2FsbG9jYXRvcl9zdG9wKHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZp
dChhbGxvY2F0b3IpKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgLyogVGhp
cyBhbHNvIHN0b3BzIHVzIGZyb20gZG9pbmcgYW55dGhpbmcgd2hlbiB3ZSd2ZSBiZWVuIGRlY29t
bWl0dGVkLiAqLwogICAgIGlmICghYWxsb2NhdG9yLT5wYWdlX2lzaCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAKQEAgLTIwMCw4ICsyMDksNiBAQCBzdGF0aWMgYm9vbCBzdG9wX2ltcGwoCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLS8qIEZJWE1FOiBUaGlzIHRoaW5nIGlzIG1lYW5pbmdsZXNzIHdp
dGggaGVhcF9sb2NrX2hvbGRfbW9kZSA9IHBhc19sb2NrX2lzX25vdF9oZWxkIHVubGVzcyB5b3UK
LSAgIGFsc28gc2V0IGlzX2luX3VzZSB0byB0cnVlLiBTZWVtcyBsaWtlIG1heWJlIHRoaXMgc2hv
dWxkIHNldCBpdCBmb3IgeW91PyAqLwogYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoCiAg
ICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgIHBhc19sb2NrX2xvY2tfbW9k
ZSBwYWdlX2xvY2tfbW9kZSwKQEAgLTIxMCw4ICsyMTcsMjcgQEAgYm9vbCBwYXNfbG9jYWxfYWxs
b2NhdG9yX3N0b3AoCiAgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAg
IAogICAgIGJvb2wgcmVzdWx0OworICAgIGJvb2wgaXNfaW5fdXNlOwogCi0gICAgUEFTX0FTU0VS
VCghYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UpOworICAgIGlzX2luX3VzZSA9
IGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlOworICAgIGlmIChpc19pbl91c2Up
IHsKKyAgICAgICAgcGFzX2xvZygiYWxsb2NhdG9yID0gJXBcbiIsIGFsbG9jYXRvcik7CisgICAg
ICAgIHBhc19sb2coImFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEua2luZCA9ICVzXG4iLAorICAg
ICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRv
ci0+c2NhdmVuZ2VyX2RhdGEua2luZCkpOworICAgICAgICBwYXNfbG9nKCJhbGxvY2F0b3ItPnNj
YXZlbmdlcl9kYXRhLmlzX2luX3VzZSA9ICVzXG4iLAorICAgICAgICAgICAgICAgIGFsbG9jYXRv
ci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlID8gInllcyIgOiAibm8iKTsKKyAgICAgICAgcGFz
X2xvZygiYXQgdGltZSBvZiBhc3NlcnQ6IGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5f
dXNlID0gJXNcbiIsCisgICAgICAgICAgICAgICAgaXNfaW5fdXNlID8gInllcyIgOiAibm8iKTsK
KyAgICAgICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgIH0KKwor
ICAgIC8qIERvaW5nIHRoaXMgY2hlY2sgYmVmb3JlIHNldHRpbmcgaXNfaW5fdXNlIGd1YXJkcyBh
Z2FpbnN0IHNpdHVhdGlvbnMgd2hlcmUgY2FsbGluZyBzdG9wIHdvdWxkCisgICAgICAgcmVjb21t
aXQgYSBkZWNvbW1pdHRlZCBhbGxvY2F0b3IuCisgICAgCisgICAgICAgVGhpcyBpcyBhIHByZXR0
eSB3ZWFrIG9wdGltaXphdGlvbiBzaW5jZSBpbiBteSBleHBlcmltZW50cywgcmVhZHMgY2F1c2Ug
Y29tbWl0cy4gV2ViIFRlbXBsYXRlCisgICAgICAgRnJhbWV3b3JrISAqLworICAgIGlmIChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQoJmFsbG9jYXRvci0+c2Nh
dmVuZ2VyX2RhdGEpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGFsbG9jYXRvci0+c2Nh
dmVuZ2VyX2RhdGEuaXNfaW5fdXNlID0gdHJ1ZTsKICAgICBwYXNfY29tcGlsZXJfZmVuY2UoKTsK
QEAgLTIyMiw2ICsyNDgsNyBAQCBib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcCgKICAgICAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBwYXNfbG9nKCJEaWQgc3RvcCBhbGxvY2F0b3Ig
JXBcbiIsIGFsbG9jYXRvcik7CiAgICAgICAgIGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEuc2hv
dWxkX3N0b3BfY291bnQgPSAwOworICAgICAgICBhbGxvY2F0b3ItPnNjYXZlbmdlcl9kYXRhLmtp
bmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQ7CiAgICAgfQog
ICAgIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9pbmxpbmVzLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9p
bmxpbmVzLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3JfaW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02
NSw2ICs2NSwzOSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9yCiAg
ICAgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tp
bmRfY3JlYXRlX25vcm1hbChraW5kKTsKIH0KIAorc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNzYXJ5X2ltcGwocGFzX2xvY2Fs
X2FsbG9jYXRvciogYWxsb2NhdG9yLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2hlYXBfY29uZmln
IGNvbmZpZykKK3sKKyAgICAvKiBJdCdzIHBvc3NpYmxlIHRoYXQ6CisgICAgICAgCisgICAgICAg
LSBUaGUgYWxsb2NhdG9yIHdhcyBzdG9wcGVkLgorICAgICAgIC0gV2Ugc3RhcnRlZCBhbGxvY2F0
aW5nLCBhbmQgc2V0IGlzX2luX3VzZSA9IHRydWUuCisgICAgICAgLSBTb21lb25lIGRlY29tbWl0
dGVkIHRoZSBwYWdlIHRoYXQgdGhpcyBhbGxvY2F0b3Igd2FzIG9uLCBjYXVzaW5nIGlzX2luX3Vz
ZSB0byBiZWNvbWUgZmFsc2UuCisgICAgICAgCisgICAgICAgQW5kIHRoZW4gd2UgZW5kIHVwIGlu
IGhlcmUuCisgICAgCisgICAgICAgVGhlcmVmb3JlLCB3ZSBjYW5ub3QgYXNzZXJ0IHRoYXQgaXNf
aW5fdXNlIGlzIHRydWUuIEJ1dCwgd2hlbiB3ZSByZXR1cm4gZnJvbSBoZXJlLCBpdCBtdXN0IGJl
IHRydWUuICovCisgICAgaWYgKFBBU19MSUtFTFkoYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5r
aW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQpKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoY29uZmlnLmtpbmQgPT0gcGFzX2hlYXBfY29uZmlnX2tpbmRfcGFzX3V0
aWxpdHkpIHsKKyAgICAgICAgYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9hbGxvY2F0b3Jfa2luZDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2Fy
eV9zbG93KAorICAgICAgICAmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSwKKyAgICAgICAgcGFz
X2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3df
aXNfaW5fdXNlX3dpdGhfbm9fbG9ja3NfaGVsZF9tb2RlLAorICAgICAgICBwYXNfbG9jYWxfYWxs
b2NhdG9yX2FsbG9jYXRvcl9raW5kKTsKK30KKworc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNzYXJ5KHBhc19sb2NhbF9hbGxv
Y2F0b3IqIGFsbG9jYXRvciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfaGVhcF9jb25maWcgY29uZmlnKQor
eworICAgIHBhc19sb2NhbF9hbGxvY2F0b3JfY29tbWl0X2lmX25lY2Vzc2FyeV9pbXBsKGFsbG9j
YXRvciwgY29uZmlnKTsKKyAgICBQQVNfQVNTRVJUKGFsbG9jYXRvci0+c2NhdmVuZ2VyX2RhdGEu
aXNfaW5fdXNlKTsKK30KKwogc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jf
c2V0X3VwX2J1bXAocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IHBhZ2VfYm91
bmRhcnksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB1aW50cHRyX3QgYmVnaW4sCkBAIC03NDUsNyArNzc4LDYgQEAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9ibGVzc19wcmltb3JkaWFsX3BhcgogICAgICAgICAgd29yZF9pbmRleCA8IHBhc19zZWdyZWdh
dGVkX3BhZ2VfY29uZmlnX251bV9hbGxvY193b3JkcyhwYWdlX2NvbmZpZyk7CiAgICAgICAgICB3
b3JkX2luZGV4KyspIHsKICAgICAgICAgdW5zaWduZWQgZnVsbF9hbGxvY193b3JkOwotICAgICAg
ICBib29sIHNob3VsZF9iZV9lbGlnaWJsZTsKIAogICAgICAgICBmdWxsX2FsbG9jX3dvcmQgPSBi
aXRzW3dvcmRfaW5kZXhdOwogICAgICAgICAKQEAgLTc1NSwyMSArNzg3LDYgQEAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9ibGVzc19wcmltb3JkaWFsX3BhcgogICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIHBhc19sb2coIk5vbnplcm8gZnVsbCBhbGxvYyB3b3JkIGF0IGluZGV4ID0gJXp1
XG4iLCB3b3JkX2luZGV4KTsKIAotICAgICAgICAvKiBXZSBnbyBpbnRvIHRoaXMgbG9vcCB3aXRo
IHRoZSBwYXJ0aWFsIHZpZXcgYXBwZWFyaW5nIGVsaWdpYmlsZSB0byBkZWFsbG9jYXRpb25zLiBT
bywKLSAgICAgICAgICAgc29tZXRoaW5nIG1heSBoYXZlIGJlZW4gZnJlZWQuIElmIGl0IHdhcywg
bGV0IGZvbGtzIGtub3cuIE5vdGUgdGhhdCB0aGUgb25seSByZWFzb24gd2h5Ci0gICAgICAgICAg
IHdlIGhhdmUgYSBzcGVjaWFsIGNhc2UgZm9yIGVuYWJsZV9lbXB0eV93b3JkX2VsaWdpYmlsaXR5
X29wdGltaXphdGlvbiBpcyB0aGF0IHRoaXMKLSAgICAgICAgICAgc2ltcGxpZmllcyB0aGUgbG9n
aWMgaW4gcGFzX3NlZ3JlZ2F0ZWRfdmlld19zaG91bGRfYmVfZWxpZ2libGUoKS4gSXQgd291bGQg
b25seSBiZSBhIHRpbnkKLSAgICAgICAgICAgYmVoYXZpb3JhbCBjaGFuZ2UgLSBzbGlnaHRseSBi
ZXR0ZXIgZm9yIHNwYWNlLCBzbGlnaHRseSB3b3JzZSBmb3IgdGltZSAtIHRvIGdldCByaWQgb2YK
LSAgICAgICAgICAgdGhpcyBzcGVjaWFsIGNhc2UsIGluIHdoaWNoIGNhc2Ugd2UnZCBoYXZlIHRv
IGVkaXQgc2hvdWxkX2JlX2VsaWdpYmxlKCkuICovCi0gICAgICAgIGlmIChwYWdlX2NvbmZpZy5l
bmFibGVfZW1wdHlfd29yZF9lbGlnaWJpbGl0eV9vcHRpbWl6YXRpb25fZm9yX3NoYXJlZCkKLSAg
ICAgICAgICAgIHNob3VsZF9iZV9lbGlnaWJsZSA9ICEhKGZ1bGxfYWxsb2Nfd29yZCAmJiAhcGFn
ZS0+YWxsb2NfYml0c1t3b3JkX2luZGV4XSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHNo
b3VsZF9iZV9lbGlnaWJsZSA9ICEhKGZ1bGxfYWxsb2Nfd29yZCAmIH5wYWdlLT5hbGxvY19iaXRz
W3dvcmRfaW5kZXhdKTsKLSAgICAgICAgaWYgKHNob3VsZF9iZV9lbGlnaWJsZSkgewotICAgICAg
ICAgICAgdmlldy0+ZWxpZ2liaWxpdHlfbm90aWZpY2F0aW9uX2hhc19iZWVuX2RlZmVycmVkID0g
dHJ1ZTsKLSAgICAgICAgICAgIHZpZXctPmVsaWdpYmlsaXR5X2hhc19iZWVuX25vdGVkID0gdHJ1
ZTsKLSAgICAgICAgfQotCiAgICAgICAgIGlmICghaGFzX2ZpcnN0X25vbl96ZXJvX3dvcmRfaW5k
ZXgpIHsKICAgICAgICAgICAgIGZpcnN0X25vbl96ZXJvX3dvcmRfaW5kZXggPSB3b3JkX2luZGV4
OwogICAgICAgICAgICAgaGFzX2ZpcnN0X25vbl96ZXJvX3dvcmRfaW5kZXggPSB0cnVlOwpAQCAt
MTA2MCw4ICsxMDc3LDggQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZWZpbGxfd2l0aF9rbm93bl9j
bwogICAgICAgICAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAgICAgICAgICAgICAKICAgICAg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxs
b2NhdGlvbigmdmlld19jYWNoZS0+c2NhdmVuZ2VyX2RhdGEpOwotICAgICAgICAgICAgCi0gICAg
ICAgICAgICBpZiAoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2VtcHR5KHZpZXdfY2FjaGUpKSB7
CisKKyAgICAgICAgICAgIGlmIChwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3BvcCh2
aWV3X2NhY2hlKSkgewogICAgICAgICAgICAgICAgIG5ld192aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRf
ZXhjbHVzaXZlX3ZpZXdfYXNfdmlldyhwYXNfbG9jYWxfdmlld19jYWNoZV9wb3Aodmlld19jYWNo
ZSkpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VS
VChwYXNfc2VncmVnYXRlZF92aWV3X2lzX3NvbWVfZXhjbHVzaXZlKG5ld192aWV3KSk7CkBAIC0x
NTE3LDExICsxNTM0LDE0IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX3NtYWxs
X3MKIHsKICAgICBQQVNfQVNTRVJUKCFwYXNfZGVidWdfaGVhcF9pc19lbmFibGVkKGNvbmZpZy5r
aW5kKSk7CiAgICAgCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNzYXJ5
KGFsbG9jYXRvciwgY29uZmlnKTsKKyAgICAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CiAgICAgICAgIGJvb2wgcmVmaWxsX3Jlc3VsdDsKIAog
ICAgICAgICBQQVNfQVNTRVJUKGNvbmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlz
X2VuYWJsZWQpOworCiAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChhbGxvY2F0b3ItPmNvbmZp
Z19raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX25vcm1hbCgK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWcuc21hbGxfc2VncmVnYXRlZF9j
b25maWcua2luZCkpOwogCkBAIC0xNTc3LDggKzE1OTcsOSBAQCBwYXNfbG9jYWxfYWxsb2NhdG9y
X3RyeV9hbGxvY2F0ZV9vdXRfb2ZfCiAgICAgaWYgKGNvbmZpZy5zbWFsbF9iaXRmaXRfY29uZmln
LmJhc2UuaXNfZW5hYmxlZCAmJgogICAgICAgICBvdXJfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbmZpZ19raW5kX2NyZWF0ZV9iaXRmaXQoCiAgICAgICAgICAgICBjb25maWcuc21hbGxf
Yml0Zml0X2NvbmZpZy5raW5kKSkgeworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZl
bmdlcl9kYXRhX2RpZF91c2VfZm9yX2FsbG9jYXRpb24oJmFsbG9jYXRvci0+c2NhdmVuZ2VyX2Rh
dGEpOwogICAgICAgICByZXR1cm4gY29uZmlnLnNtYWxsX2JpdGZpdF9jb25maWcuc3BlY2lhbGl6
ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSgKLSAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBzaXplLCBhbGlnbm1lbnQpOworICAgICAgICAgICAg
cGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvciksIGFsbG9jYXRvciwgc2l6
ZSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCiAgICAgaWYgKGNvbmZpZy5tZWRpdW1fc2VncmVn
YXRlZF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCkBAIC0xNTkyLDggKzE2MTMsOSBAQCBwYXNf
bG9jYWxfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9vdXRfb2ZfCiAgICAgaWYgKGNvbmZpZy5tZWRp
dW1fYml0Zml0X2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYKICAgICAgICAgb3VyX2tpbmQgPT0g
cGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9jcmVhdGVfYml0Zml0KAogICAgICAgICAg
ICAgY29uZmlnLm1lZGl1bV9iaXRmaXRfY29uZmlnLmtpbmQpKSB7CisgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxsb2NhdGlvbigmYWxsb2Nh
dG9yLT5zY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgIHJldHVybiBjb25maWcubWVkaXVtX2JpdGZp
dF9jb25maWcuc3BlY2lhbGl6ZWRfYWxsb2NhdG9yX3RyeV9hbGxvY2F0ZSgKLSAgICAgICAgICAg
IHBhc19sb2NhbF9hbGxvY2F0b3JfZ2V0X2JpdGZpdChhbGxvY2F0b3IpLCBzaXplLCBhbGlnbm1l
bnQpOworICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRv
ciksIGFsbG9jYXRvciwgc2l6ZSwgYWxpZ25tZW50KTsKICAgICB9CiAgICAgCiAgICAgaWYgKGNv
bmZpZy5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZy5iYXNlLmlzX2VuYWJsZWQgJiYKQEAgLTE2MTcs
OCArMTYzOSw5IEBAIHBhc19sb2NhbF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRlX291dF9vZl8KICAg
ICBpZiAoY29uZmlnLm1hcmdlX2JpdGZpdF9jb25maWcuYmFzZS5pc19lbmFibGVkICYmCiAgICAg
ICAgIG91cl9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfY29uZmlnX2tpbmRfY3JlYXRlX2Jp
dGZpdCgKICAgICAgICAgICAgIGNvbmZpZy5tYXJnZV9iaXRmaXRfY29uZmlnLmtpbmQpKSB7Cisg
ICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfZGlkX3VzZV9mb3JfYWxs
b2NhdGlvbigmYWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YSk7CiAgICAgICAgIHJldHVybiBjb25m
aWcubWFyZ2VfYml0Zml0X2NvbmZpZy5zcGVjaWFsaXplZF9hbGxvY2F0b3JfdHJ5X2FsbG9jYXRl
KAotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9nZXRfYml0Zml0KGFsbG9jYXRvciks
IHNpemUsIGFsaWdubWVudCk7CisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2dldF9i
aXRmaXQoYWxsb2NhdG9yKSwgYWxsb2NhdG9yLCBzaXplLCBhbGlnbm1lbnQpOwogICAgIH0KICAg
ICAKICAgICByZXR1cm4gcGFzX2Zhc3RfcGF0aF9hbGxvY2F0aW9uX3Jlc3VsdF9jcmVhdGVfbmVl
ZF9zbG93KCk7CkBAIC0xNjM3LDkgKzE2NjAsMTEgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl90cnlf
YWxsb2NhdGVfc2xvd19pbQogICAgICAgICBwYXNfbG9nKCJDYWxsZWQgdHJ5X2FsbG9jYXRlX3Ns
b3cgd2l0aCBraW5kID0gJXNcbiIsCiAgICAgICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRv
cl9jb25maWdfa2luZF9nZXRfc3RyaW5nKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQpKTsKICAgICB9
Ci0KKyAgICAKICAgICBQQVNfQVNTRVJUKCFwYXNfZGVidWdfaGVhcF9pc19lbmFibGVkKGNvbmZp
Zy5raW5kKSk7CiAgICAgCisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9jb21taXRfaWZfbmVjZXNz
YXJ5KGFsbG9jYXRvciwgY29uZmlnKTsKKyAgICAKICAgICBmb3IgKDs7KSB7CiAgICAgICAgIHBh
c19mYXN0X3BhdGhfYWxsb2NhdGlvbl9yZXN1bHQgZmFzdF9yZXN1bHQ7CiAgICAgICAgIHBhc19h
bGxvY2F0aW9uX3Jlc3VsdCByZXN1bHQ7CkBAIC0xNjU2LDYgKzE2ODEsOCBAQCBwYXNfbG9jYWxf
YWxsb2NhdG9yX3RyeV9hbGxvY2F0ZV9zbG93X2ltCiAgICAgICAgIH0KIAogICAgICAgICBQQVNf
VEVTVElOR19BU1NFUlQoYWxsb2NhdG9yLT5jb25maWdfa2luZCAhPSBwYXNfbG9jYWxfYWxsb2Nh
dG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQpOworICAgICAgICAKKyAgICAgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9j
b25maWdfa2luZF91bnNlbGVjdGVkKTsKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKGFsbG9j
YXRvci0+Y29uZmlnX2tpbmQgIT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25maWdfa2luZF9udWxs
KTsKICAgICAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfYWxsb2NhdG9yX2hhc19i
aXRmaXQoYWxsb2NhdG9yKSk7CiAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF9hbGxvY2F0b3Jfa2luZC5oCShyZXZpc2lv
biAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxf
YWxsb2NhdG9yX2tpbmQuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsMTAgQEAKIFBBU19C
RUdJTl9FWFRFUk5fQzsKIAogZW51bSBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQgeworICAgIHBh
c19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCwKKyAgICBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQsCiAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9hbGxv
Y2F0b3Jfa2luZCwKKyAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfdmlld19jYWNoZV9r
aW5kLAogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kCiB9OwogCkBAIC00
MCw4ICs0MywxNCBAQCB0eXBlZGVmIGVudW0gcGFzX2xvY2FsX2FsbG9jYXRvcl9raW5kIHBhCiBz
dGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9nZXRfc3Ry
aW5nKHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBraW5kKQogewogICAgIHN3aXRjaCAoa2luZCkg
eworICAgIGNhc2UgcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kOgorICAgICAg
ICByZXR1cm4gImRlY29tbWl0dGVkIjsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3Rv
cHBlZF9hbGxvY2F0b3Jfa2luZDoKKyAgICAgICAgcmV0dXJuICJzdG9wcGVkX2FsbG9jYXRvciI7
CiAgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOgogICAgICAgICBy
ZXR1cm4gImFsbG9jYXRvciI7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRf
dmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gInN0b3BwZWRfdmlld19jYWNoZSI7CiAg
ICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKICAgICAgICAgcmV0
dXJuICJ2aWV3X2NhY2hlIjsKICAgICB9CkBAIC00OSw2ICs1OCwyMSBAQCBzdGF0aWMgaW5saW5l
IGNvbnN0IGNoYXIqIHBhc19sb2NhbF9hbGxvCiAgICAgcmV0dXJuIE5VTEw7CiB9CiAKK3N0YXRp
YyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmRfaXNfc3RvcHBlZChwYXNfbG9j
YWxfYWxsb2NhdG9yX2tpbmQga2luZCkKK3sKKyAgICBzd2l0Y2ggKGtpbmQpIHsgCisgICAgY2Fz
ZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQ6CisgICAgY2FzZSBwYXNfbG9j
YWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQ6CisgICAgY2FzZSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3N0b3BwZWRfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ6CisgICAgY2FzZSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZDoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSByZWFjaGVkIik7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0xP
Q0FMX0FMTE9DQVRPUl9LSU5EICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YS5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMv
c3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmMJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAyMS0yMDIyIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksMjEgKzI5LDEyOCBAQAogCiAjaW5jbHVkZSAicGFzX2xvY2FsX2FsbG9jYXRvcl9z
Y2F2ZW5nZXJfZGF0YS5oIgogCisjaW5jbHVkZSAicGFzX2FsbG9jYXRvcl9pbmRleC5oIgorI2lu
Y2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKICNpbmNsdWRlICJwYXNfbG9j
YWxfYWxsb2NhdG9yLmgiCiAjaW5jbHVkZSAicGFzX2xvY2FsX3ZpZXdfY2FjaGUuaCIKKyNpbmNs
dWRlICJwYXNfaGVhcF9sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5o
IgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgiCisjaW5jbHVkZSAi
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZS5oIgorI2luY2x1ZGUgInBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZS5oIgogCiB1aW50OF90IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2hv
dWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQgPSA1OwogCi1ib29sIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfYWN0aXZlKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEqIGRhdGEpCitib29sIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNf
YmFzZWxpbmVfYWxsb2NhdG9yKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRh
dGEpCiB7Ci0gICAgc3dpdGNoIChkYXRhLT5raW5kKSB7Ci0gICAgY2FzZSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2FsbG9jYXRvcl9raW5kOgotICAgICAgICByZXR1cm4gcGFzX2xvY2FsX2FsbG9jYXRv
cl9pc19hY3RpdmUoKHBhc19sb2NhbF9hbGxvY2F0b3IqKWRhdGEpOwotICAgIGNhc2UgcGFzX2xv
Y2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tpbmQ6Ci0gICAgICAgIHJldHVybiAhcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfaXNfZW1wdHkoKHBhc19sb2NhbF92aWV3X2NhY2hlKilkYXRhKTsKKyAgICB1
aW50cHRyX3QgZGF0YV9wdHI7CisgICAgdWludHB0cl90IGJhc2VsaW5lX2JlZ2luOworICAgIHVp
bnRwdHJfdCBiYXNlbGluZV9lbmQ7CisKKyAgICBkYXRhX3B0ciA9ICh1aW50cHRyX3QpZGF0YTsK
KyAgICBiYXNlbGluZV9iZWdpbiA9ICh1aW50cHRyX3QpcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90
YWJsZTsKKyAgICBiYXNlbGluZV9lbmQgPSAodWludHB0cl90KShwYXNfYmFzZWxpbmVfYWxsb2Nh
dG9yX3RhYmxlICsgcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZV9ib3VuZCk7CisKKyAgICBy
ZXR1cm4gZGF0YV9wdHIgPj0gYmFzZWxpbmVfYmVnaW4gJiYgZGF0YV9wdHIgPCBiYXNlbGluZV9l
bmQ7Cit9CisKK2Jvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19zdG9w
cGVkKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7CisgICAgcmV0
dXJuIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZF9pc19zdG9wcGVkKGRhdGEtPmtpbmQpOworfQor
Cit2b2lkIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vz
c2FyeV9zbG93KAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEs
CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNz
YXJ5X3Nsb3dfbW9kZSBtb2RlLAorICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBleHBlY3Rl
ZF9raW5kKQoreworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlOworICAgIHBhc19h
bGxvY2F0b3JfaW5kZXggaW5kZXg7CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZSBsYXlvdXRfbm9kZTsKKyAgICBwYXNfbG9ja19ob2xkX21vZGUgc2NhdmVuZ2VyX2xvY2tf
aG9sZF9tb2RlOworICAgIGJvb2wgaXNfaW5fdXNlOworCisgICAgUEFTX0FTU0VSVChleHBlY3Rl
ZF9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQKKyAgICAgICAgICAg
ICAgIHx8IGV4cGVjdGVkX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl92aWV3X2NhY2hlX2tp
bmQpOworCisgICAgc3dpdGNoIChtb2RlKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvd19pc19pbl91c2Vfd2l0aF9u
b19sb2Nrc19oZWxkX21vZGU6CisgICAgICAgIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSA9IHBh
c19sb2NrX2lzX25vdF9oZWxkOworICAgICAgICBpc19pbl91c2UgPSB0cnVlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0
X2lmX25lY2Vzc2FyeV9zbG93X2lzX25vdF9pbl91c2Vfd2l0aF9zY2F2ZW5nZXJfbG9ja19oZWxk
X21vZGU6CisgICAgICAgIHNjYXZlbmdlcl9sb2NrX2hvbGRfbW9kZSA9IHBhc19sb2NrX2lzX2hl
bGQ7CisgICAgICAgIGlzX2luX3VzZSA9IGZhbHNlOworICAgICAgICBicmVhazsKICAgICB9Ci0g
ICAgUEFTX0FTU0VSVCghIlNob3VsZCBub3QgYmUgcmVhY2hlZCIpOwotICAgIHJldHVybiBmYWxz
ZTsKKworICAgIC8qIE5PVEU6IHRoaXMgY2FuIG9ubHkgYmUgY2FsbGVkIHdoZW4gaXNfaW5fdXNl
LCBidXQgaXQncyBwb3NzaWJsZSB0aGF0IHRoaXMgYWxsb2NhdG9yIHdpbGwgZ2V0CisgICAgICAg
ZGVjb21taXR0ZWQgYXQgYW55IHRpbWUsIHdoaWNoIG1heSByZXN1bHQgaW4gaXNfaW5fdXNlIGJl
aW5nIGNsZWFyZWQuICovCisKKyAgICBpZiAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJf
ZGF0YV9pc19iYXNlbGluZV9hbGxvY2F0b3IoZGF0YSkpIHsKKyAgICAgICAgUEFTX0FTU0VSVChk
YXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxvY2F0b3Jfa2luZCk7
CisgICAgICAgIFBBU19BU1NFUlQoZXhwZWN0ZWRfa2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9y
X2FsbG9jYXRvcl9raW5kKTsKKyAgICAgICAgUEFTX0FTU0VSVChkYXRhLT5pc19pbl91c2UgPT0g
aXNfaW5fdXNlKTsKKyAgICAgICAgZGF0YS0+a2luZCA9IHBhc19sb2NhbF9hbGxvY2F0b3JfYWxs
b2NhdG9yX2tpbmQ7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBjYWNoZSA9IHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAgIFBBU19BU1NFUlQoY2FjaGUpOworICAg
IAorICAgIGlmIChkYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9hbGxv
Y2F0b3Jfa2luZAorICAgICAgICB8fCBkYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jf
c3RvcHBlZF92aWV3X2NhY2hlX2tpbmQpIHsKKyAgICAgICAgYm9vbCBkb25lOworICAgICAgICAK
KyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICAKKyAgICAgICAgcGFzX2xvY2tfbG9ja19j
b25kaXRpb25hbGx5KCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2ssIHNjYXZlbmdlcl9sb2Nr
X2hvbGRfbW9kZSk7CisgICAgICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hlbGQoJmNhY2hl
LT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CisgICAgICAgIHN3aXRjaCAoZGF0YS0+a2luZCkgewor
ICAgICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZDoKKyAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc3RvcHBlZF9h
bGxvY2F0b3Jfa2luZDoKKyAgICAgICAgICAgIFBBU19BU1NFUlQoZXhwZWN0ZWRfa2luZCA9PSBw
YXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kKTsKKyAgICAgICAgICAgIGRhdGEtPmtp
bmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9raW5kOworICAgICAgICAgICAgZG9u
ZSA9IHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBwYXNfbG9jYWxfYWxs
b2NhdG9yX3N0b3BwZWRfdmlld19jYWNoZV9raW5kOgorICAgICAgICAgICAgUEFTX0FTU0VSVChl
eHBlY3RlZF9raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kKTsKKyAg
ICAgICAgICAgIGRhdGEtPmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2lu
ZDsKKyAgICAgICAgICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX2RpZF9yZXN0YXJ0KChwYXNfbG9j
YWxfdmlld19jYWNoZSopZGF0YSk7CisgICAgICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgUEFTX0FTU0VSVCghIlNo
b3VsZCBub3QgYmUgcmVhY2hlZCIpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrX2NvbmRpdGlvbmFsbHkoJmNhY2hlLT5ub2RlLT5zY2F2ZW5n
ZXJfbG9jaywgc2NhdmVuZ2VyX2xvY2tfaG9sZF9tb2RlKTsKKyAgICAgICAgaWYgKGRvbmUpIHsK
KyAgICAgICAgICAgIFBBU19BU1NFUlQoZGF0YS0+aXNfaW5fdXNlID09IGlzX2luX3VzZSk7Cisg
ICAgICAgICAgICBQQVNfQVNTRVJUKGRhdGEtPmtpbmQgPT0gZXhwZWN0ZWRfa2luZCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9CisKKyAgICBQQVNfQVNTRVJUKGRhdGEt
PmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kKTsKKworICAgIHBh
c19sb2NrX2xvY2tfY29uZGl0aW9uYWxseSgmY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrLCBz
Y2F2ZW5nZXJfbG9ja19ob2xkX21vZGUpOworICAgIHBhc19sb2NrX3Rlc3RpbmdfYXNzZXJ0X2hl
bGQoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CisKKyAgICBQQVNfQVNTRVJUKGRhdGEt
PmtpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kKTsKKworICAgIGlu
ZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9hbGxvY2F0b3JfaW5kZXhfZm9yX2FsbG9jYXRv
cihjYWNoZSwgZGF0YSk7CisgICAgbGF5b3V0X25vZGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9nZXRfbm9kZV9mb3JfaW5kZXgoaW5kZXgpOworCisgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgY2Fj
aGUpOworCisgICAgUEFTX0FTU0VSVChkYXRhLT5raW5kID09IGV4cGVjdGVkX2tpbmQpOworICAg
IFBBU19BU1NFUlQoZGF0YS0+a2luZCA9PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2FsbG9jYXRvcl9r
aW5kCisgICAgICAgICAgICAgICB8fCBkYXRhLT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3Jf
dmlld19jYWNoZV9raW5kKTsKKworICAgIGRhdGEtPmlzX2luX3VzZSA9IGlzX2luX3VzZTsKKyAg
ICAKKyAgICBwYXNfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgmY2FjaGUtPm5vZGUtPnNjYXZl
bmdlcl9sb2NrLCBzY2F2ZW5nZXJfbG9ja19ob2xkX21vZGUpOwogfQogCiBib29sIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgKQEAgLTUyLDYgKzE1OSwxMCBAQCBib29s
IHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfCiAgICAgcGFzX2xvY2tfaG9sZF9t
b2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCiB7CiAgICAgc3dpdGNoIChkYXRhLT5raW5kKSB7Cisg
ICAgY2FzZSBwYXNfbG9jYWxfYWxsb2NhdG9yX2RlY29tbWl0dGVkX2tpbmQ6CisgICAgY2FzZSBw
YXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQ6CisgICAgY2FzZSBwYXNf
bG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfdmlld19jYWNoZV9raW5kOgorICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBjYXNlIHBhc19sb2NhbF9hbGxvY2F0b3JfYWxsb2NhdG9yX2tpbmQ6CiAgICAg
ICAgIHJldHVybiBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3AoKHBhc19sb2NhbF9hbGxvY2F0b3Iq
KWRhdGEsIHBhZ2VfbG9ja19tb2RlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICBjYXNlIHBh
c19sb2NhbF9hbGxvY2F0b3Jfdmlld19jYWNoZV9raW5kOgpAQCAtNjEsNiArMTcyLDE5IEBAIGJv
b2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV8KICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKK3ZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9wcmVwYXJlX3Rv
X2RlY29tbWl0KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRhdGEpCit7Cisg
ICAgLyogRnVuIGZhY3Q6IHRoZSBhbGxvY2F0b3IgbWlnaHQgaGF2ZSBpc19pbl91c2UgPSB0cnVl
IHdoZW4gd2UncmUgaW4gdGhlcmUsIGJ1dCBpbiB0aGF0IGNhc2UsIHRoYXQKKyAgICAgICBhbGxv
Y2F0b3IgY2FuJ3QgZG8gYW55dGhpbmcgd2l0aG91dCBncmFiYmluZyB0aGUgc2NhdmVuZ2VyX2xv
Y2sgKGJlY2F1c2UgdGhlIGFsbG9jYXRvciBzYXlzIGl0J3MKKyAgICAgICBzdG9wcGVkKS4gKi8K
KyAgICAKKyAgICBQQVNfQVNTRVJUKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFf
aXNfc3RvcHBlZChkYXRhKSk7CisKKyAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CisK
KyAgICBkYXRhLT5raW5kID0gcGFzX2xvY2FsX2FsbG9jYXRvcl9kZWNvbW1pdHRlZF9raW5kOwor
fQorCiAjZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KIAogCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YS5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9k
YXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDEzICs2NSwzMyBAQCBzdGF0aWMgaW5saW5lIHZv
aWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zCiAgICAgZGF0YS0+c2hvdWxkX3N0b3BfY291bnQgPSAw
OwogfQogCi1QQVNfQVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19hY3RpdmUocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CitQQVNf
QVBJIGJvb2wgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19iYXNlbGluZV9h
bGxvY2F0b3IocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CisKK1BB
U19BUEkgYm9vbCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQo
cGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSk7CisKK2VudW0gcGFzX2xv
Y2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9jb21taXRfaWZfbmVjZXNzYXJ5X3Nsb3dfbW9k
ZSB7CisgICAgLyogVGhpcyBjYXVzZXMgdGhlIGNvbW1pdF9pZl9uZWNlc3NhcnkgY29kZSB0byBh
bHdheXMgc3VjY2VlZCBhbmQgYWx3YXlzIHJldHVybiB0cnVlLiAqLworICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lzX2luX3Vz
ZV93aXRoX25vX2xvY2tzX2hlbGRfbW9kZSwKKworICAgIC8qIFRoaXMgY2F1c2VzIHRoZSBjb21t
aXRfaWZfbmVjZXNzYXJ5IGNvZGUgdG8gc29tZXRpbWVzIGZhaWwgdG8gYWNxdWlyZSB0aGUgaGVh
cCBsb2NrLCBhbmQgdGhlbiBpdCB3aWxsCisgICAgICAgcmV0dXJuIGZhbHNlLiAqLworICAgIHBh
c19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93
X2lzX25vdF9pbl91c2Vfd2l0aF9zY2F2ZW5nZXJfbG9ja19oZWxkX21vZGUKK307CisKK3R5cGVk
ZWYgZW51bSBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNl
c3Nhcnlfc2xvd19tb2RlIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0
X2lmX25lY2Vzc2FyeV9zbG93X21vZGU7CisKK1BBU19BUEkgdm9pZCBwYXNfbG9jYWxfYWxsb2Nh
dG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlfc2xvdygKKyAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhLAorICAgIHBhc19sb2NhbF9hbGxvY2F0
b3Jfc2NhdmVuZ2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X21vZGUgbW9kZSwKKyAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX2tpbmQgZXhwZWN0ZWRfa2luZCk7CiAKIFBBU19BUEkgYm9v
bCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCiAgICAgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSogZGF0YSwKICAgICBwYXNfbG9ja19sb2NrX21vZGUg
cGFnZV9sb2NrX21vZGUsCiAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21v
ZGUpOwogCitQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9w
cmVwYXJlX3RvX2RlY29tbWl0KHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIGRh
dGEpOworCiBQQVNfRU5EX0VYVEVSTl9DOwogCiAjZW5kaWYgLyogUEFTX0xPQ0FMX0FMTE9DQVRP
Ul9TQ0FWRU5HRVJfREFUQV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2NhY2hlLmMJKHJldmlzaW9uIDI4OTUw
OCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NhbF92aWV3X2Nh
Y2hlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQyLDcgKzQyLDcgQEAgdm9pZCBwYXNfbG9jYWxfdmll
d19jYWNoZV9jb25zdHJ1Y3QocGFzXwogICAgIGNhY2hlLT5jYXBhY2l0eSA9IGNhcGFjaXR5Owog
ICAgIGNhY2hlLT5ib3R0b21faW5kZXggPSAwOwogICAgIGNhY2hlLT50b3BfaW5kZXggPSAwOwot
ICAgIGNhY2hlLT5pc19mdWxsID0gZmFsc2U7CisgICAgY2FjaGUtPnN0YXRlID0gcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGU7CiAKICAgICBpZiAoUEFTX0VOQUJMRV9URVNUSU5H
KSB7CiAgICAgICAgIHVpbnQ4X3QgaW5kZXg7CkBAIC01NSw2ICs1NSw4IEBAIHZvaWQgcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfY29uc3RydWN0KHBhc18KIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bW92ZShwYXNfbG9jYWxfdmlld19jYWNoZSogZGVzdGluYXRpb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIHNvdXJjZSkKIHsKKyAgICBQQVNf
QVNTRVJUKCFkZXN0aW5hdGlvbi0+c2NhdmVuZ2VyX2RhdGEuaXNfaW5fdXNlKTsKKyAgICBQQVNf
QVNTRVJUKCFzb3VyY2UtPnNjYXZlbmdlcl9kYXRhLmlzX2luX3VzZSk7CiAgICAgbWVtY3B5KGRl
c3RpbmF0aW9uLCBzb3VyY2UsIFBBU19MT0NBTF9WSUVXX0NBQ0hFX1NJWkUoc291cmNlLT5jYXBh
Y2l0eSkpOwogfQogCkBAIC0xMDksMTMgKzExMSwyNCBAQCBib29sIHBhc19sb2NhbF92aWV3X2Nh
Y2hlX3N0b3AocGFzX2xvY2FsCiAKICAgICBQQVNfQVNTRVJUKCFjYWNoZS0+c2NhdmVuZ2VyX2Rh
dGEuaXNfaW5fdXNlKTsKIAorICAgIC8qIERvaW5nIHRoaXMgY2hlY2sgYmVmb3JlIHNldHRpbmcg
aXNfaW5fdXNlIGd1YXJkcyBhZ2FpbnN0IHNpdHVhdGlvbnMgd2hlcmUgY2FsbGluZyBzdG9wIHdv
dWxkCisgICAgICAgcmVjb21taXQgYSBkZWNvbW1pdHRlZCB2aWV3IGNhY2hlLiAqLworICAgIGlm
IChwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQoJmNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YSkpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAgY2FjaGUtPnNjYXZl
bmdlcl9kYXRhLmlzX2luX3VzZSA9IHRydWU7CiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CiAK
ICAgICByZXN1bHQgPSBzdG9wX2ltcGwoY2FjaGUsIHBhZ2VfbG9ja19tb2RlKTsKIAotICAgIGlm
IChyZXN1bHQpCisgICAgaWYgKHJlc3VsdCkgeworICAgICAgICBQQVNfQVNTRVJUKHBhc19sb2Nh
bF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90
X2Z1bGxfc3RhdGUpOworICAgICAgICBQQVNfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPT0gY2Fj
aGUtPmJvdHRvbV9pbmRleCk7CisKKyAgICAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0
YXRlKGNhY2hlLCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKICAgICAgICAg
Y2FjaGUtPnNjYXZlbmdlcl9kYXRhLnNob3VsZF9zdG9wX2NvdW50ID0gMDsKKyAgICAgICAgY2Fj
aGUtPnNjYXZlbmdlcl9kYXRhLmtpbmQgPSBwYXNfbG9jYWxfYWxsb2NhdG9yX3N0b3BwZWRfdmll
d19jYWNoZV9raW5kOworICAgIH0KIAogICAgIHBhc19jb21waWxlcl9mZW5jZSgpOwogICAgIGNh
Y2hlLT5zY2F2ZW5nZXJfZGF0YS5pc19pbl91c2UgPSBmYWxzZTsKQEAgLTEyMyw1ICsxMzYsMTAg
QEAgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2NhbAogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKK3ZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZGlkX3Jlc3RhcnQocGFzX2xv
Y2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3NldF9z
dGF0ZShjYWNoZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGUpOworfQorCiAj
ZW5kaWYgLyogTElCUEFTX0VOQUJMRUQgKi8KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX2xvY2FsX3ZpZXdfY2FjaGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxfdmlld19jYWNoZS5oCShyZXZpc2lv
biAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfbG9jYWxf
dmlld19jYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMjEgQEAgUEFTX0JFR0lO
X0VYVEVSTl9DOwogc3RydWN0IHBhc19sb2NhbF92aWV3X2NhY2hlOwogdHlwZWRlZiBzdHJ1Y3Qg
cGFzX2xvY2FsX3ZpZXdfY2FjaGUgcGFzX2xvY2FsX3ZpZXdfY2FjaGU7CiAKK2VudW0gcGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfc3RhdGUgeworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0b3BwZWRf
c3RhdGUsCisgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGUsCisgICAgcGFz
X2xvY2FsX3ZpZXdfY2FjaGVfZnVsbF9zdGF0ZQorfTsKKwordHlwZWRlZiBlbnVtIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3N0YXRlIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlOworCiBzdHJ1Y3Qg
cGFzX2xvY2FsX3ZpZXdfY2FjaGUgewogICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGEgc2NhdmVuZ2VyX2RhdGE7CiAgICAgdWludDhfdCBjYXBhY2l0eTsKICAgICAvKiBib3R0
b21faW5kZXggYW5kIHRvcF9pbmRleCBtdXN0IGJlIDwgY2FwYWNpdHkuICovCiAgICAgdWludDhf
dCBib3R0b21faW5kZXg7CiAgICAgdWludDhfdCB0b3BfaW5kZXg7Ci0gICAgYm9vbCBpc19mdWxs
OworICAgIHVpbnQ4X3Qgc3RhdGU7CiAgICAgcGFzX2NvbXBhY3Rfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19wdHIgdmlld3NbMV07CiB9OwogCkBAIC01NCwxMyArNjIsOTAgQEAgc3RydWN0IHBh
c19sb2NhbF92aWV3X2NhY2hlIHsKIFBBU19BUEkgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV9j
b25zdHJ1Y3QocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90IGNhcGFjaXR5KTsKIAorc3RhdGljIGlu
bGluZSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdGF0ZSBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRf
c3RhdGUocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHJldHVybiAocGFzX2xv
Y2FsX3ZpZXdfY2FjaGVfc3RhdGUpY2FjaGUtPnN0YXRlOworfQorCitzdGF0aWMgaW5saW5lIHZv
aWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc2V0X3N0YXRlKHBhc19sb2NhbF92aWV3X2NhY2hlKiBj
YWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RhdGUgc3RhdGUpCit7CisgICAgY2FjaGUtPnN0YXRlID0g
KHVpbnQ4X3Qpc3RhdGU7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfbG9jYWxfdmlld19j
YWNoZV9pc19mdWxsKHBhc19sb2NhbF92aWV3X2NhY2hlKiBjYWNoZSkKK3sKKyAgICByZXR1cm4g
cGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBwYXNfbG9jYWxfdmlld19j
YWNoZV9mdWxsX3N0YXRlOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2FsX3ZpZXdf
Y2FjaGVfY2FuX3B1c2gocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQoreworICAgIHJldHVy
biBwYXNfbG9jYWxfdmlld19jYWNoZV9nZXRfc3RhdGUoY2FjaGUpID09IHBhc19sb2NhbF92aWV3
X2NhY2hlX25vdF9mdWxsX3N0YXRlOworfQorCiBzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfaXNfZW1wdHkocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQogewogICAg
IFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5
KTsKICAgICBQQVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBh
Y2l0eSk7Ci0gICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFjYWNoZS0+aXNfZnVsbCB8fCBjYWNoZS0+
Ym90dG9tX2luZGV4ID09IGNhY2hlLT50b3BfaW5kZXgpOworICAgIFBBU19URVNUSU5HX0FTU0VS
VCghcGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbChjYWNoZSkgfHwgY2FjaGUtPmJvdHRvbV9p
bmRleCA9PSBjYWNoZS0+dG9wX2luZGV4KTsKKworICAgIHJldHVybiBjYWNoZS0+dG9wX2luZGV4
ID09IGNhY2hlLT5ib3R0b21faW5kZXggJiYgIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwo
Y2FjaGUpOworfQogCi0gICAgcmV0dXJuIGNhY2hlLT50b3BfaW5kZXggPT0gY2FjaGUtPmJvdHRv
bV9pbmRleCAmJiAhY2FjaGUtPmlzX2Z1bGw7CitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX2xvY2Fs
X3ZpZXdfY2FjaGVfcHJlcGFyZV90b19wb3AocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQor
eworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlIHN0YXRlOworICAgIAorICAgIFBBU19U
RVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5CisgICAg
ICAgICAgICAgICAgICAgICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNo
ZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CisgICAgUEFTX1RFU1RJ
TkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkKKyAgICAgICAgICAg
ICAgICAgICAgICAgfHwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKSA9PSBw
YXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKKyAgICBQQVNfVEVTVElOR19BU1NF
UlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpIHx8IGNhY2hlLT5ib3R0b21f
aW5kZXggPT0gY2FjaGUtPnRvcF9pbmRleCk7CisKKyAgICBpZiAoY2FjaGUtPnRvcF9pbmRleCAh
PSBjYWNoZS0+Ym90dG9tX2luZGV4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHN0YXRl
ID0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hlKTsKKyAgICBzd2l0Y2ggKHN0
YXRlKSB7CisgICAgY2FzZSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlOgorICAg
ICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nh
cnlfc2xvdygKKyAgICAgICAgICAgICZjYWNoZS0+c2NhdmVuZ2VyX2RhdGEsCisgICAgICAgICAg
ICBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2NvbW1pdF9pZl9uZWNlc3Nhcnlf
c2xvd19pc19pbl91c2Vfd2l0aF9ub19sb2Nrc19oZWxkX21vZGUsCisgICAgICAgICAgICBwYXNf
bG9jYWxfYWxsb2NhdG9yX3ZpZXdfY2FjaGVfa2luZCk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIHBhc19sb2NhbF92aWV3X2NhY2hlX2Z1bGxfc3RhdGU6CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIGNhc2UgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfbm90X2Z1bGxfc3RhdGU6Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNf
bG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3B1c2gocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNh
Y2hlKQoreworICAgIHBhc19sb2NhbF92aWV3X2NhY2hlX3N0YXRlIHN0YXRlOworICAgIAorICAg
IFBBU19URVNUSU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5
CisgICAgICAgICAgICAgICAgICAgICAgIHx8IHBhc19sb2NhbF92aWV3X2NhY2hlX2dldF9zdGF0
ZShjYWNoZSkgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfc3RvcHBlZF9zdGF0ZSk7CisgICAgUEFT
X1RFU1RJTkdfQVNTRVJUKGNhY2hlLT50b3BfaW5kZXggPCBjYWNoZS0+Y2FwYWNpdHkKKyAgICAg
ICAgICAgICAgICAgICAgICAgfHwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZ2V0X3N0YXRlKGNhY2hl
KSA9PSBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wcGVkX3N0YXRlKTsKKyAgICBQQVNfVEVTVElO
R19BU1NFUlQoIXBhc19sb2NhbF92aWV3X2NhY2hlX2lzX2Z1bGwoY2FjaGUpIHx8IGNhY2hlLT5i
b3R0b21faW5kZXggPT0gY2FjaGUtPnRvcF9pbmRleCk7CisKKyAgICBzdGF0ZSA9IHBhc19sb2Nh
bF92aWV3X2NhY2hlX2dldF9zdGF0ZShjYWNoZSk7CisgICAgaWYgKHN0YXRlID09IHBhc19sb2Nh
bF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
IHBhc19jb21waWxlcl9mZW5jZSgpOworICAgIGlmIChzdGF0ZSA9PSBwYXNfbG9jYWxfdmlld19j
YWNoZV9zdG9wcGVkX3N0YXRlKSB7CisgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93KAorICAgICAgICAgICAgJmNhY2hlLT5z
Y2F2ZW5nZXJfZGF0YSwKKyAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfY29tbWl0X2lmX25lY2Vzc2FyeV9zbG93X2lzX25vdF9pbl91c2Vfd2l0aF9zY2F2ZW5n
ZXJfbG9ja19oZWxkX21vZGUsCisgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX3ZpZXdf
Y2FjaGVfa2luZCk7CisgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVChwYXNfbG9jYWxfdmlld19j
YWNoZV9jYW5fcHVzaChjYWNoZSkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICBQQVNfVEVTVElOR19BU1NFUlQoc3RhdGUgPT0gcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZnVsbF9z
dGF0ZSk7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCiBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdh
dGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfbG9jYWxfdmlld19jYWNoZV9wb3AocGFzX2xvY2FsX3Zp
ZXdfY2FjaGUqIGNhY2hlKQpAQCAtMTEwLDggKzE5NSw4IEBAIHN0YXRpYyBpbmxpbmUgcGFzX3Nl
Z3JlZ2F0ZWRfZXhjbHVzaXZlX3YKICAgICAKICAgICBpZiAoUEFTX0VOQUJMRV9URVNUSU5HKQog
ICAgICAgICBwYXNfY29tcGFjdF9zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X3B0cl9zdG9yZShj
YWNoZS0+dmlld3MgKyBwb3BfaW5kZXgsIE5VTEwpOwotICAgIAotICAgIGNhY2hlLT5pc19mdWxs
ID0gZmFsc2U7CisKKyAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zZXRfc3RhdGUoY2FjaGUsIHBh
c19sb2NhbF92aWV3X2NhY2hlX25vdF9mdWxsX3N0YXRlKTsKICAgICAKICAgICBpZiAodmVyYm9z
ZSkKICAgICAgICAgcGFzX2xvZygiJXA6IHBvcHBlZCAlcC5cbiIsIGNhY2hlLCByZXN1bHQpOwpA
QCAtMTE5LDExICsyMDQsNiBAQCBzdGF0aWMgaW5saW5lIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBib29sIHBhc19sb2Nh
bF92aWV3X2NhY2hlX2lzX2Z1bGwocGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlKQotewotICAg
IHJldHVybiBjYWNoZS0+aXNfZnVsbDsKLX0KLQogc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3B1c2goCiAgICAgcGFzX2xvY2FsX3ZpZXdfY2FjaGUqIGNhY2hlLAogICAg
IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiB2aWV3KQpAQCAtMTM1LDcgKzIxNSw3IEBA
IHN0YXRpYyBpbmxpbmUgdm9pZCBwYXNfbG9jYWxfdmlld19jYWNoZV8KIAogICAgIFBBU19URVNU
SU5HX0FTU0VSVChjYWNoZS0+Ym90dG9tX2luZGV4IDwgY2FjaGUtPmNhcGFjaXR5KTsKICAgICBQ
QVNfVEVTVElOR19BU1NFUlQoY2FjaGUtPnRvcF9pbmRleCA8IGNhY2hlLT5jYXBhY2l0eSk7Ci0g
ICAgUEFTX1RFU1RJTkdfQVNTRVJUKCFwYXNfbG9jYWxfdmlld19jYWNoZV9pc19mdWxsKGNhY2hl
KSk7CisgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19sb2NhbF92aWV3X2NhY2hlX2Nhbl9wdXNo
KGNhY2hlKSk7CiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHZpZXcpOwogCiAgICAgaWYgKHZlcmJv
c2UpCkBAIC0xNDksNyArMjI5LDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBhc19sb2NhbF92aWV3
X2NhY2hlXwogICAgIH0KIAogICAgIGlmIChuZXh0X3RvcF9pbmRleCA9PSBjYWNoZS0+Ym90dG9t
X2luZGV4KQotICAgICAgICBjYWNoZS0+aXNfZnVsbCA9IHRydWU7CisgICAgICAgIHBhc19sb2Nh
bF92aWV3X2NhY2hlX3NldF9zdGF0ZShjYWNoZSwgcGFzX2xvY2FsX3ZpZXdfY2FjaGVfZnVsbF9z
dGF0ZSk7CiAgICAgCiAgICAgUEFTX1RFU1RJTkdfQVNTRVJUKHBhc19jb21wYWN0X3NlZ3JlZ2F0
ZWRfZXhjbHVzaXZlX3ZpZXdfcHRyX2lzX251bGwoY2FjaGUtPnZpZXdzICsgdG9wX2luZGV4KSk7
CiAKQEAgLTE2Miw2ICsyNDIsOCBAQCBQQVNfQVBJIHZvaWQgcGFzX2xvY2FsX3ZpZXdfY2FjaGVf
bW92ZShwCiAKIFBBU19BUEkgYm9vbCBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKHBhc19sb2Nh
bF92aWV3X2NhY2hlKiBjYWNoZSwgcGFzX2xvY2tfbG9ja19tb2RlIHBhZ2VfbG9ja19tb2RlKTsK
IAorUEFTX0FQSSB2b2lkIHBhc19sb2NhbF92aWV3X2NhY2hlX2RpZF9yZXN0YXJ0KHBhc19sb2Nh
bF92aWV3X2NhY2hlKiBjYWNoZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQ
QVNfTE9DQUxfVklFV19DQUNIRV9IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc19sb2NrLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc19sb2NrLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwOSw2ICsy
MDksMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwogICAgICAgICByZXR1cm4gcGFzX2xvY2tfdHJ5
X2xvY2soJm5hbWUjI19sb2NrKTsgXAogICAgIH0gXAogICAgIFwKKyAgICBQQVNfVU5VU0VEIHN0
YXRpYyBpbmxpbmUgYm9vbCBuYW1lIyNfbG9ja19sb2NrX3dpdGhfbW9kZShwYXNfbG9ja19sb2Nr
X21vZGUgbW9kZSkgXAorICAgIHsgXAorICAgICAgICByZXR1cm4gcGFzX2xvY2tfbG9ja193aXRo
X21vZGUoJm5hbWUjI19sb2NrLCBtb2RlKTsgXAorICAgIH0gXAorICAgIFwKICAgICBQQVNfVU5V
U0VEIHN0YXRpYyBpbmxpbmUgdm9pZCBuYW1lIyNfbG9ja191bmxvY2sodm9pZCkgXAogICAgIHsg
XAogICAgICAgICBwYXNfbG9ja191bmxvY2soJm5hbWUjI19sb2NrKTsgXApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX21tYXBfY2FwYWJpbGl0eS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19tbWFwX2NhcGFiaWxp
dHkuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfbW1hcF9jYXBhYmlsaXR5LmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw4NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoYykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFBBU19N
TUFQX0NBUEFCSUxJVFlfSAorI2RlZmluZSBQQVNfTU1BUF9DQVBBQklMSVRZX0gKKworI2luY2x1
ZGUgInBhc191dGlscy5oIgorCitQQVNfQkVHSU5fRVhURVJOX0M7CisKKy8qIExpYnBhcyBzb21l
dGltZXMgYWxsb2NhdGVzIGl0cyBvd24gbWVtb3J5IGZyb20gdGhlIE9TLCBhbmQgc29tZXRpbWVz
IGlzIHRvbGQgdG8gbWFuYWdlIG1lbW9yeSBhbHJlYWR5CisgICBhbGxvY2F0ZWQgYnkgc29tZW9u
ZSBlbHNlLiBTb21ldGltZXMsIGNsaWVudHMgZG9uJ3Qgd2FudCBsaWJwYXMgdG8gdXNlIGNlcnRh
aW50IG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9ucworICAgb24gdGhlIG1lbW9yeSB0aGF0IHRo
ZXkgYXNrIGxpYnBhcyB0byBtYW5hZ2UuIFRoaXMgZW51bWVyYXRpb24gY29udHJvbHMgd2hhdCBt
ZW1vcnkgbWFuYWdlbWVudCBmdW5jdGlvbnMKKyAgIGxpYnBhcyBjYW4gY2FsbCBmb3Igc29tZSBt
ZW1vcnkgdGhhdCBpdCBtYW5hZ2VzLiAqLworZW51bSBwYXNfbW1hcF9jYXBhYmlsaXR5IHsKKyAg
ICAvKiBJbmRpY2F0ZXMgdGhhdCBsaWJwYXMgaXNuJ3QgYWxsb3dlZCB0byBjYWxsIG1tYXAsIG1w
cm90ZWN0LCBvciBtb3N0IG90aGVyIG1lbW9yeSBtYW5hZ2VtZW50IGZ1bmN0aW9uIG9uCisgICAg
ICAgdGhlIGdpdmVuIG1lbW9yeS4gVGhpcyBpcyB1c2VkIGZvciBtZW1vcnkgdGhhdCB3YXMgYWxs
b2NhdGVkIGJ5IHRoZSBjbGllbnQgd2l0aCBzb21lIHNwZWNpZmljIHBlcm1pc3Npb25zCisgICAg
ICAgb3Igb3RoZXIgc3BlY2lhbCBtbWFwIGFyZ3VtZW50cy4gT3IsIG1heWJlIGl0IHdhc24ndCBl
dmVuIGFsbG9jYXRlZCB3aXRoIG1tYXAuCisKKyAgICAgICBMaWJwYXMgbWF5IHN0aWxsIGNhbGwg
bWFkdmlzZSgpIG9uIG1lbW9yeSB3aXRoIHRoaXMgY2FwYWJpbGl0eSwgc2luY2UgbWFkdmlzZSgp
IGRvZXNuJ3QgY2hhbmdlIHRoZQorICAgICAgIHBlcm1pc3Npb25zIG9mIHRoZSBtYXBwaW5nLiBD
dXJyZW50bHksIG1hZHZpc2UoKSBpcyB0aGUgb25seSBzeXNjYWxsIHRoYXQgbGlicGFzIGlzIGFs
bG93ZWQgdG8gdXNlIGZvcgorICAgICAgIG1lbW9yeSB0aGF0IGlzIHBhc19tYXlfbm90X21tYXAu
CisgICAgCisgICAgICAgVXNpbmcgcGFzX21heV9ub3RfbW1hcCBtYXkgZGVncmFkZSBwZWZvcm1h
bmNlLCBhZmZlY3QgdGhlIGFjY3VyYWN5IG9mIE9TIG1lbW9yeSB1c2FnZSBhY2NvdW50aW5nLCBv
ciB0dXJuCisgICAgICAgb2ZmIHNvbWUgcnVudGltZSBjaGVja2luZy4gQnV0IGl0IHdpbGwgbm90
IGFmZmVjdCB0aGUgY29ycmVjdG5lc3Mgb2YgdGhlIGFsZ29yaXRobS4KKyAgICAKKyAgICAgICBD
dXJyZW50bHkgdGhlIHByaW1hcnkgY2xpZW50IG9mIHRoaXMgb3B0aW9uIGlzIGppdF9oZWFwX2Nv
bmZpZywgc2luY2UgdGhlIEpJVCBoZWFwIGlzIG1tYXBwZWQgaW4gYQorICAgICAgIHNwZWNpYWwg
d2F5IGFuZCB3aXRoIHNwZWNpYWwgcGVybWlzc2lvbnMuICovCisgICAgcGFzX21heV9ub3RfbW1h
cCwKKworICAgIC8qIEluZGljYXRlcyB0aGF0IGxpYnBhcyBzaG91bGQgYXNzdW1lIHRoYXQgdGhl
IG1lbW9yeSBpcyBtbWFwcGVkIGluIHNvbWUgY2Fub25pY2FsIHdheSAoYW5vbnltb3VzLCBSVyBi
dXQKKyAgICAgICBub3QgWCwgZXRjKS4gTGlicGFzIG1heSBjYWxsIG1tYXAsIG1wcm90ZWN0IGFu
ZCBvdGhlciBzdWNoIGZ1bmN0aW9ucyBvbiB0aGlzIG1lbW9yeSBzbyBsb25nIGFzIGl0CisgICAg
ICAgcmV0dXJucyBpdCB0byB0aGUgY2Fub25pY2FsIHN0YXRlIGJlZm9yZSB0aGUgbWVtb3J5IGlz
IHJldHVybmVkIGJ5IHNvbWUgYWxsb2NhdGUgZnVuY3Rpb24uIExpYnBhcyBjb3VsZAorICAgICAg
IHVzZSB0aGlzIGNhcGFiaWxpdHkgdG86CisgICAgICAgCisgICAgICAgLSBSYXBpZGx5IHplcm8t
ZmlsbCB0aGUgbWVtb3J5IHdpdGggYSBmaXhlZCBtbWFwIGNhbGwuCisgICAgICAgLSBSZXNldCB0
aGUgY29tbWl0IHN0YXRlIHdpdGggYSBmaXhlZCBtbWFwIGNhbGwuCisgICAgICAgLSBQZXJmb3Jt
IHJ1bnRpbWUgY2hlY2tpbmcgdGhhdCBkZWNvbW1pdHRlZCBtZW1vcnkgaXMgbm90IHVzZWQgYnkg
bXByb3RlY3RpbmcgaXQgdG8gUFJPVF9OT05FIChhbmQgdGhlbgorICAgICAgICAgcmV0dXJuaW5n
IGl0IHRvIG5vcm1hbCBwZXJtaXNzaW9ucyB3aGVuIHJlY29tbWl0dGVkKS4KKyAgICAKKyAgICAg
ICBUaGUgY2FwYWJpbGl0aWVzIGVuYWJsZWQgYnkgcGFzX21heV9tbWFwIGFyZSBnb29kIGZvciBw
ZXJmb3JtYW5jZSBhbmQgdGVzdGluZywgYnV0IGFyZW4ndCBuZWNlc3NhcnkgZm9yCisgICAgICAg
bGlicGFzIHRvIHdvcmsgY29ycmVjdGx5LCBzbyBpdCdzIG5vdCB0aGUgZW5kIG9mIHRoZSB3b3Js
ZCB0byBoYXZlIHRvIHVzZSBwYXNfbWF5X25vdF9tbWFwIGluc3RlYWQuICovCisgICAgcGFzX21h
eV9tbWFwCit9OworCit0eXBlZGVmIGVudW0gcGFzX21tYXBfY2FwYWJpbGl0eSBwYXNfbW1hcF9j
YXBhYmlsaXR5OworCitzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIHBhc19tbWFwX2NhcGFiaWxp
dHlfZ2V0X3N0cmluZyhwYXNfbW1hcF9jYXBhYmlsaXR5IGNhcGFiaWxpdHkpCit7CisgICAgc3dp
dGNoIChjYXBhYmlsaXR5KSB7CisgICAgY2FzZSBwYXNfbWF5X25vdF9tbWFwOgorICAgICAgICBy
ZXR1cm4gIm1heV9ub3RfbW1hcCI7CisgICAgY2FzZSBwYXNfbWF5X21tYXA6CisgICAgICAgIHJl
dHVybiAibWF5X21tYXAiOworICAgIH0KKyAgICBQQVNfQVNTRVJUKCEiU2hvdWxkIG5vdCBiZSBy
ZWFjaGVkIik7CisgICAgcmV0dXJuIE5VTEw7Cit9CisKK1BBU19FTkRfRVhURVJOX0M7CisKKyNl
bmRpZiAvKiBQQVNfTU1BUF9DQVBBQklMSVRZX0ggKi8KKwpJbmRleDogU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3BhZ2VfbWFsbG9jLmMJKHJldmlzaW9uIDI4
OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxv
Yy5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoYykg
MjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
YykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDcsNyArNDcsMTAgQEAKIHNpemVfdCBwYXNfcGFnZV9t
YWxsb2NfbnVtX2FsbG9jYXRlZF9ieXRlczsKIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfY2FjaGVk
X2FsaWdubWVudDsKIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfY2FjaGVkX2FsaWdubWVudF9zaGlm
dDsKLWJvb2wgcGFzX3BhZ2VfbWFsbG9jX21wcm90ZWN0X2RlY29tbWl0dGVkID0gUEFTX0VOQUJM
RV9URVNUSU5HOworCisjaWYgUEFTX09TKERBUldJTikKK2Jvb2wgcGFzX3BhZ2VfbWFsbG9jX2Rl
Y29tbWl0X3plcm9fZmlsbCA9IGZhbHNlOworI2VuZGlmIC8qIFBBU19PUyhEQVJXSU4pICovCiAK
ICNpZiBQQVNfT1MoREFSV0lOKQogI2RlZmluZSBQQVNfVk1fVEFHIFZNX01BS0VfVEFHKFZNX01F
TU9SWV9UQ01BTExPQykKQEAgLTYxLDEzICs2NCw3IEBAIGJvb2wgcGFzX3BhZ2VfbWFsbG9jX21w
cm90ZWN0X2RlY29tbWl0dGUKICNkZWZpbmUgUEFTX05PUkVTRVJWRSAwCiAjZW5kaWYKIAotCi0j
ZGVmaW5lIFBBU19TWVNDQUxMKHgpIGRvIHsgXAotICAgIHdoaWxlICgoeCkgPT0gLTEgJiYgZXJy
bm8gPT0gRUFHQUlOKSB7IH0gXAotfSB3aGlsZSAoMCk7Ci0KLQotc2l6ZV90IHBhc19wYWdlX21h
bGxvY19hbGlnbm1lbnRfc2xvdyh2b2lkKQorUEFTX05FVkVSX0lOTElORSBzaXplX3QgcGFzX3Bh
Z2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZvaWQpCiB7CiAgICAgbG9uZyByZXN1bHQgPSBzeXNj
b25mKF9TQ19QQUdFU0laRSk7CiAgICAgUEFTX0FTU0VSVChyZXN1bHQgPj0gMCk7CkBAIC03Niw3
ICs3Myw3IEBAIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50X3Nsb3codm8KICAgICBy
ZXR1cm4gKHNpemVfdClyZXN1bHQ7CiB9CiAKLXNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25t
ZW50X3NoaWZ0X3Nsb3codm9pZCkKK1BBU19ORVZFUl9JTkxJTkUgc2l6ZV90IHBhc19wYWdlX21h
bGxvY19hbGlnbm1lbnRfc2hpZnRfc2xvdyh2b2lkKQogewogICAgIHNpemVfdCByZXN1bHQ7CiAK
QEAgLTE3MiwxMSArMTY5LDI5IEBAIHBhc19wYWdlX21hbGxvY190cnlfYWxsb2NhdGVfd2l0aG91
dF9kZWEKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIHBhc19wYWdlX21hbGxvY19jb21t
aXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3ZvaWQgcGFzX3BhZ2VfbWFsbG9jX3plcm9fZmls
bCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSkKK3sKKyAgICBzaXplX3QgcGFnZV9zaXplOworICAg
IHZvaWQqIHJlc3VsdF9wdHI7CisKKyAgICBwYWdlX3NpemUgPSBwYXNfcGFnZV9tYWxsb2NfYWxp
Z25tZW50KCk7CisgICAgCisgICAgUEFTX0FTU0VSVChwYXNfaXNfYWxpZ25lZCgodWludHB0cl90
KWJhc2UsIHBhZ2Vfc2l6ZSkpOworICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQoc2l6ZSwg
cGFnZV9zaXplKSk7CisKKyAgICByZXN1bHRfcHRyID0gbW1hcChiYXNlLAorICAgICAgICAgICAg
ICAgICAgICAgIHNpemUsCisgICAgICAgICAgICAgICAgICAgICAgUFJPVF9SRUFEIHwgUFJPVF9X
UklURSwKKyAgICAgICAgICAgICAgICAgICAgICBNQVBfUFJJVkFURSB8IE1BUF9BTk9OIHwgTUFQ
X0ZJWEVEIHwgUEFTX05PUkVTRVJWRSwKKyAgICAgICAgICAgICAgICAgICAgICBQQVNfVk1fVEFH
LAorICAgICAgICAgICAgICAgICAgICAgIDApOworICAgIFBBU19BU1NFUlQocmVzdWx0X3B0ciA9
PSBiYXNlKTsKK30KKworc3RhdGljIHZvaWQgY29tbWl0X2ltcGwodm9pZCogcHRyLCBzaXplX3Qg
c2l6ZSwgYm9vbCBkb19tcHJvdGVjdCwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxp
dHkpCiB7CiAgICAgdWludHB0cl90IGJhc2VfYXNfaW50OwogICAgIHVpbnRwdHJfdCBlbmRfYXNf
aW50OwotICAgIGludCByZXN1bHQ7CiAKICAgICBiYXNlX2FzX2ludCA9ICh1aW50cHRyX3QpcHRy
OwogICAgIGVuZF9hc19pbnQgPSBiYXNlX2FzX2ludCArIHNpemU7CkBAIC0xOTAsMjcgKzIwNSwz
NCBAQCB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXQodm9pZCogcHRyLCBzCiAgICAgaWYgKGVu
ZF9hc19pbnQgPT0gYmFzZV9hc19pbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChQQVNf
TVBST1RFQ1RfREVDT01NSVRURUQpIHsKLSAgICAgICAgcmVzdWx0ID0gbXByb3RlY3QoKHZvaWQq
KWJhc2VfYXNfaW50LCBlbmRfYXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfUkVBRCB8IFBST1Rf
V1JJVEUpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBwYXNfbG9nKCJDb3Vs
ZCBub3QgbXByb3RlY3Qgb24gY29tbWl0OiBlcnJvciBjb2RlICVkXG4iLCByZXN1bHQpOwotICAg
ICAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKLSAgICAgICAgfQotICAgIH0KKyAgICBpZiAo
UEFTX01QUk9URUNUX0RFQ09NTUlUVEVEICYmIGRvX21wcm90ZWN0ICYmIG1tYXBfY2FwYWJpbGl0
eSkKKyAgICAgICAgUEFTX1NZU0NBTEwobXByb3RlY3QoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRf
YXNfaW50IC0gYmFzZV9hc19pbnQsIFBST1RfUkVBRCB8IFBST1RfV1JJVEUpKTsKIAogI2lmIFBB
U19PUyhMSU5VWCkKLSAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwg
ZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0RPRFVNUCkpOworICAgIFBBU19TWVNDQUxM
KG1hZHZpc2UocHRyLCBzaXplLCBNQURWX0RPRFVNUCkpOwogI2VuZGlmCiB9CiAKK3ZvaWQgcGFz
X3BhZ2VfbWFsbG9jX2NvbW1pdCh2b2lkKiBwdHIsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9jYXBh
YmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKK3sKKyAgICBzdGF0aWMgY29uc3QgYm9vbCBkb19tcHJv
dGVjdCA9IHRydWU7CisgICAgY29tbWl0X2ltcGwocHRyLCBzaXplLCBkb19tcHJvdGVjdCwgbW1h
cF9jYXBhYmlsaXR5KTsKK30KKwordm9pZCBwYXNfcGFnZV9tYWxsb2NfY29tbWl0X3dpdGhvdXRf
bXByb3RlY3Qodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFw
X2NhcGFiaWxpdHkpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgZG9fbXByb3RlY3QgPSBmYWxz
ZTsKKyAgICBjb21taXRfaW1wbChwdHIsIHNpemUsIGRvX21wcm90ZWN0LCBtbWFwX2NhcGFiaWxp
dHkpOworfQorCiBzdGF0aWMgdm9pZCBkZWNvbW1pdF9pbXBsKHZvaWQqIHB0ciwgc2l6ZV90IHNp
emUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfYXN5bW1ldHJpYykKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBkb19tcHJvdGVjdCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNlOwogICAgIAogICAgIHVpbnRwdHJfdCBiYXNl
X2FzX2ludDsKICAgICB1aW50cHRyX3QgZW5kX2FzX2ludDsKLSAgICBpbnQgcmVzdWx0OwogCiAg
ICAgaWYgKHZlcmJvc2UpCiAgICAgICAgIHBhc19sb2coIkRlY29tbWl0dGluZyAlcC4uLiVwXG4i
LCBwdHIsIChjaGFyKilwdHIgKyBzaXplKTsKQEAgLTIyNSwzMyArMjQ3LDMzIEBAIHN0YXRpYyB2
b2lkIGRlY29tbWl0X2ltcGwodm9pZCogcHRyLCBzaXoKICAgICAgICAgZW5kX2FzX2ludCA9PSBw
YXNfcm91bmRfZG93bl90b19wb3dlcl9vZl8yKGVuZF9hc19pbnQsIHBhc19wYWdlX21hbGxvY19h
bGlnbm1lbnQoKSkpOwogICAgIAogI2lmIFBBU19PUyhEQVJXSU4pCi0gICAgcmVzdWx0ID0gbWFk
dmlzZSgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgTUFEVl9G
UkVFX1JFVVNBQkxFKTsKLSAgICBQQVNfQVNTRVJUKCFyZXN1bHQpOworICAgIGlmIChwYXNfcGFn
ZV9tYWxsb2NfZGVjb21taXRfemVyb19maWxsICYmIG1tYXBfY2FwYWJpbGl0eSkKKyAgICAgICAg
cGFzX3BhZ2VfbWFsbG9jX3plcm9fZmlsbChwdHIsIHNpemUpOworICAgIGVsc2UKKyAgICAgICAg
UEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRlJFRV9SRVVTQUJMRSkpOwogI2Vs
aWYgUEFTX09TKEZSRUVCU0QpCi0gICAgUEFTX1NZU0NBTEwobWFkdmlzZSgodm9pZCopYmFzZV9h
c19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwgTUFEVl9GUkVFKSk7CisgICAgUEFTX1NZ
U0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRlJFRSkpOwogI2VsaWYgUEFTX09TKExJTlVY
KQotICAgIFBBU19TWVNDQUxMKG1hZHZpc2UoKHZvaWQqKWJhc2VfYXNfaW50LCBlbmRfYXNfaW50
IC0gYmFzZV9hc19pbnQsIE1BRFZfRE9OVE5FRUQpKTsKLSAgICBQQVNfU1lTQ0FMTChtYWR2aXNl
KCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2FzX2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0RPTlRE
VU1QKSk7CisgICAgUEFTX1NZU0NBTEwobWFkdmlzZShwdHIsIHNpemUsIE1BRFZfRE9OVE5FRUQp
KTsKKyAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKHB0ciwgc2l6ZSwgTUFEVl9ET05URFVNUCkpOwog
I2Vsc2UKLSAgICBQQVNfU1lTQ0FMTChtYWR2aXNlKCh2b2lkKiliYXNlX2FzX2ludCwgZW5kX2Fz
X2ludCAtIGJhc2VfYXNfaW50LCBNQURWX0RPTlRORUVEKSk7CisgICAgUEFTX1NZU0NBTEwobWFk
dmlzZShwdHIsIHNpemUsIE1BRFZfRE9OVE5FRUQpKTsKICNlbmRpZgogCi0gICAgaWYgKFBBU19N
UFJPVEVDVF9ERUNPTU1JVFRFRCAmJiAhaXNfYXN5bW1ldHJpYykgewotICAgICAgICByZXN1bHQg
PSBtcHJvdGVjdCgodm9pZCopYmFzZV9hc19pbnQsIGVuZF9hc19pbnQgLSBiYXNlX2FzX2ludCwg
UFJPVF9OT05FKTsKLSAgICAgICAgUEFTX0FTU0VSVCghcmVzdWx0KTsKLSAgICB9CisgICAgaWYg
KFBBU19NUFJPVEVDVF9ERUNPTU1JVFRFRCAmJiBkb19tcHJvdGVjdCAmJiBtbWFwX2NhcGFiaWxp
dHkpCisgICAgICAgIFBBU19TWVNDQUxMKG1wcm90ZWN0KCh2b2lkKiliYXNlX2FzX2ludCwgZW5k
X2FzX2ludCAtIGJhc2VfYXNfaW50LCBQUk9UX05PTkUpKTsKIH0KIAotdm9pZCBwYXNfcGFnZV9t
YWxsb2NfZGVjb21taXQodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKK3ZvaWQgcGFzX3BhZ2VfbWFs
bG9jX2RlY29tbWl0KHZvaWQqIHB0ciwgc2l6ZV90IHNpemUsIHBhc19tbWFwX2NhcGFiaWxpdHkg
bW1hcF9jYXBhYmlsaXR5KQogewotICAgIHN0YXRpYyBjb25zdCBib29sIGlzX2FzeW1tZXRyaWMg
PSBmYWxzZTsKLSAgICBkZWNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwgaXNfYXN5bW1ldHJpYyk7Cisg
ICAgc3RhdGljIGNvbnN0IGJvb2wgZG9fbXByb3RlY3QgPSB0cnVlOworICAgIGRlY29tbWl0X2lt
cGwocHRyLCBzaXplLCBkb19tcHJvdGVjdCwgbW1hcF9jYXBhYmlsaXR5KTsKIH0KIAotdm9pZCBw
YXNfcGFnZV9tYWxsb2NfZGVjb21taXRfYXN5bW1ldHJpYyh2b2lkKiBwdHIsIHNpemVfdCBzaXpl
KQordm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfd2l0aG91dF9tcHJvdGVjdCh2b2lkKiBw
dHIsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9jYXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSkKIHsK
LSAgICBzdGF0aWMgY29uc3QgYm9vbCBpc19hc3ltbWV0cmljID0gdHJ1ZTsKLSAgICBkZWNvbW1p
dF9pbXBsKHB0ciwgc2l6ZSwgaXNfYXN5bW1ldHJpYyk7CisgICAgc3RhdGljIGNvbnN0IGJvb2wg
ZG9fbXByb3RlY3QgPSBmYWxzZTsKKyAgICBkZWNvbW1pdF9pbXBsKHB0ciwgc2l6ZSwgZG9fbXBy
b3RlY3QsIG1tYXBfY2FwYWJpbGl0eSk7CiB9CiAKIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX2RlYWxs
b2NhdGUodm9pZCogcHRyLCBzaXplX3Qgc2l6ZSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19wYWdlX21hbGxvYy5oCShyZXZpc2lvbiAyODk1MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfcGFnZV9tYWxsb2MuaAko
d29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgt
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIw
MTgtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgInBhc19hbGlnbmVk
X2FsbG9jYXRpb25fcmVzdWx0LmgiCiAjaW5jbHVkZSAicGFzX2FsaWdubWVudC5oIgorI2luY2x1
ZGUgInBhc19tbWFwX2NhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIAogUEFT
X0JFR0lOX0VYVEVSTl9DOwpAQCAtMzUsOCArMzYsMTEgQEAgUEFTX0JFR0lOX0VYVEVSTl9DOwog
UEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19udW1fYWxsb2NhdGVkX2J5dGVz
OwogUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19jYWNoZWRfYWxpZ25tZW50
OwogUEFTX0FQSSBleHRlcm4gc2l6ZV90IHBhc19wYWdlX21hbGxvY19jYWNoZWRfYWxpZ25tZW50
X3NoaWZ0OworI2lmIFBBU19PUyhEQVJXSU4pCitQQVNfQVBJIGV4dGVybiBib29sIHBhc19wYWdl
X21hbGxvY19kZWNvbW1pdF96ZXJvX2ZpbGw7CisjZW5kaWYgLyogUEFTX09TKERBUldJTikgKi8K
IAotUEFTX0FQSSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zbG93KHZvaWQpOwor
UEFTX0FQSSBQQVNfTkVWRVJfSU5MSU5FIHNpemVfdCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
X3Nsb3codm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90IHBhc19wYWdlX21hbGxvY19hbGln
bm1lbnQodm9pZCkKIHsKQEAgLTQ1LDcgKzQ5LDcgQEAgc3RhdGljIGlubGluZSBzaXplX3QgcGFz
X3BhZ2VfbWFsbG9jX2FsaQogICAgIHJldHVybiBwYXNfcGFnZV9tYWxsb2NfY2FjaGVkX2FsaWdu
bWVudDsKIH0KIAotUEFTX0FQSSBzaXplX3QgcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlm
dF9zbG93KHZvaWQpOworUEFTX0FQSSBQQVNfTkVWRVJfSU5MSU5FIHNpemVfdCBwYXNfcGFnZV9t
YWxsb2NfYWxpZ25tZW50X3NoaWZ0X3Nsb3codm9pZCk7CiAKIHN0YXRpYyBpbmxpbmUgc2l6ZV90
IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQodm9pZCkKIHsKQEAgLTYwLDEyICs2NCwy
MSBAQCBwYXNfcGFnZV9tYWxsb2NfdHJ5X2FsbG9jYXRlX3dpdGhvdXRfZGVhCiAKIFBBU19BUEkg
dm9pZCBwYXNfcGFnZV9tYWxsb2NfZGVhbGxvY2F0ZSh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7
CiAKK1BBU19BUEkgdm9pZCBwYXNfcGFnZV9tYWxsb2NfemVyb19maWxsKHZvaWQqIGJhc2UsIHNp
emVfdCBzaXplKTsKKwogLyogVGhpcyBldmVuIHdvcmtzIGlmIHNpemUgPCBwYXNfcGFnZV9tYWxs
b2NfYWxpZ25tZW50IHNvIGxvbmcgYXMgdGhlIHJhbmdlIFtiYXNlLCBiYXNlK3NpemUpIGlzCiAg
ICBlbnRpcmVseSB3aXRoaW4gYSBwYWdlIGFjY29yZGluZyB0byBwYXNfcGFnZV9tYWxsb2NfYWxp
Z25tZW50LiAqLwotUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXQodm9pZCogYmFz
ZSwgc2l6ZV90IHNpemUpOwotUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCh2
b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSk7CitQQVNfQVBJIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX2Nv
bW1pdCh2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2Nh
cGFiaWxpdHkpOworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdCh2b2lkKiBi
YXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBtbWFwX2NhcGFiaWxpdHkpOwog
Ci1QQVNfQVBJIHZvaWQgcGFzX3BhZ2VfbWFsbG9jX2RlY29tbWl0X2FzeW1tZXRyaWModm9pZCog
YmFzZSwgc2l6ZV90IHNpemUpOworLyogSW4gdGVzdGluZyBtb2RlLCB3ZSBoYXZlIGNvbW1pdC9k
ZWNvbW1pdCBtcHJvdGVjdCB0aGUgbWVtb3J5IGFzIGEgd2F5IG9mIGhlbHBpbmcgdXMgc2VlIGlm
IHdlIGFyZQorICAgYWNjaWRlbnRhbGx5IHJlYWRpbmcgb3Igd3JpdGluZyB0aGF0IG1lbW9yeS4g
QnV0IHNvbWV0aW1lcyB3ZSB1c2UgY29tbWl0L2RlY29tbWl0IGluIGEgd2F5IHRoYXQgcHJldmVu
dHMKKyAgIHVzIGZyb20gbWFraW5nIHN1Y2ggYXNzZXJ0aW9ucywgbGlrZSBpZiB3ZSBhbGxvdyBz
b21lIHJlYWRzIGFuZCB3cml0ZXMgdG8gZGVjb21taXR0ZWQgbWVtb3J5IGluIHJhcmUKKyAgIGNh
c2VzLiAqLworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19jb21taXRfd2l0aG91dF9tcHJv
dGVjdCgKKyAgICB2b2lkKiBiYXNlLCBzaXplX3Qgc2l6ZSwgcGFzX21tYXBfY2FwYWJpbGl0eSBt
bWFwX2NhcGFiaWxpdHkpOworUEFTX0FQSSB2b2lkIHBhc19wYWdlX21hbGxvY19kZWNvbW1pdF93
aXRob3V0X21wcm90ZWN0KAorICAgIHZvaWQqIGJhc2UsIHNpemVfdCBzaXplLCBwYXNfbW1hcF9j
YXBhYmlsaXR5IG1tYXBfY2FwYWJpbGl0eSk7CiAKIFBBU19FTkRfRVhURVJOX0M7CiAKSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291
cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3Zp
ZXcuYwkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMp
IDIwMTktMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KGMpIDIwMTktMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM4LDYgKzM4LDggQEAKICNpbmNsdWRlICJwYXNfc2Vn
cmVnYXRlZF9wYWdlX2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9zaXplX2Rp
cmVjdG9yeS5oIgogCitzaXplX3QgcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfY291bnQ7
CisKIHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmVnYXRlZF9leGNsdXNp
dmVfdmlld19jcmVhdGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVj
dG9yeSwKICAgICBzaXplX3QgaW5kZXgpCkBAIC01NCw2ICs1Niw4IEBAIHBhc19zZWdyZWdhdGVk
X2V4Y2x1c2l2ZV92aWV3KiBwYXNfc2VncmUKICAgICAgICAgInBhc19zZWdyZWdhdGVkX2V4Y2x1
c2l2ZV92aWV3IiwKICAgICAgICAgcGFzX29iamVjdF9hbGxvY2F0aW9uKTsKIAorICAgIHBhc19z
ZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3X2NvdW50Kys7CisKICAgICAvKiBXZSBhbGxvY2F0ZSB0
aGlzIGxhemlseS4gKi8KICAgICByZXN1bHQtPnBhZ2VfYm91bmRhcnkgPSBOVUxMOwogICAgIHBh
c19jb21wYWN0X3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnlfcHRyX3N0b3JlKCZyZXN1bHQtPmRp
cmVjdG9yeSwgZGlyZWN0b3J5KTsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGli
cGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcu
aAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsOCBAQCB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfCiB0eXBlZGVm
IHN0cnVjdCBwYXNfc2VncmVnYXRlZF9wYWdlIHBhc19zZWdyZWdhdGVkX3BhZ2U7CiB0eXBlZGVm
IHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHBhc190aHJlYWRfbG9jYWxfY2FjaGU7CiAK
K1BBU19BUEkgZXh0ZXJuIHNpemVfdCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jb3Vu
dDsKKwogc3RydWN0IHBhc19zZWdyZWdhdGVkX2V4Y2x1c2l2ZV92aWV3IHsKICAgICB2b2lkKiBw
YWdlX2JvdW5kYXJ5OwogICAgIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2V4Y2x1c2l2
ZV92aWV3X2lubGluZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfZXhjbHVzaXZlX3ZpZXdfaW5saW5lcy5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAicGFzX3NlZ3JlZ2F0ZWRf
c2l6ZV9kaXJlY3RvcnkuaCIKICNpbmNsdWRlICJwYXNfc2VncmVnYXRlZF9wYWdlLmgiCiAjaW5j
bHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oIgorI2luY2x1ZGUgInBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbm9kZS5oIgogCiBQQVNfQkVHSU5fRVhURVJOX0M7CiAKQEAgLTE2Nyw2ICsxNjgs
OCBAQCBzdGF0aWMgUEFTX0FMV0FZU19JTkxJTkUgdm9pZCBwYXNfc2VncmVnCiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAgIHBhc19sb2NrX3Rlc3Rp
bmdfYXNzZXJ0X2hlbGQoJmNhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CisKICAgICAgICAg
ICAgIGFsbG9jYXRvcl9yZXN1bHQgPQogICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfdHJ5X2dldF9sb2NhbF9hbGxvY2F0b3JfZm9yX3Bvc3NpYmx5X3VuaW5pdGlhbGl6ZWRf
YnV0X25vdF91bnNlbGVjdGVkX2luZGV4KAogICAgICAgICAgICAgICAgICAgICBjYWNoZSwgcGFn
ZS0+dmlld19jYWNoZV9pbmRleCk7CkBAIC0xODMsOSArMTg2LDkgQEAgc3RhdGljIFBBU19BTFdB
WVNfSU5MSU5FIHZvaWQgcGFzX3NlZ3JlZwogICAgICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiVHJ5aW5nIHRvIHB1c2ggdG8gdmlldyBjYWNoZS5cbiIpOwog
Ci0gICAgICAgICAgICBpZiAocGFzX2xvY2FsX3ZpZXdfY2FjaGVfaXNfZnVsbCh2aWV3X2NhY2hl
KSkgeworICAgICAgICAgICAgaWYgKCFwYXNfbG9jYWxfdmlld19jYWNoZV9wcmVwYXJlX3RvX3B1
c2godmlld19jYWNoZSkpIHsKICAgICAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvZygiJXAsICVwOiBDYWNoZSBpcyBmdWxsICgldSkuXG4iLCBjYWNo
ZS0+bm9kZSwgdmlld19jYWNoZSwgcGFnZS0+b2JqZWN0X3NpemUpOworICAgICAgICAgICAgICAg
ICAgICBwYXNfbG9nKCIlcCwgJXA6IENhY2hlIGlzIGZ1bGwgb3IgaXMgc3RvcHBlZCAoJXUpLlxu
IiwgY2FjaGUtPm5vZGUsIHZpZXdfY2FjaGUsIHBhZ2UtPm9iamVjdF9zaXplKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIApJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX2hl
YXAuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcC5jCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI4LDYgKzEzMjgs
NyBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVjdG9yCiAgICAgc2l6ZV90
IG9iamVjdF9zaXplOwogICAgIHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90
dXBsZSogbWVkaXVtX3R1cGxlOwogICAgIGJvb2wgaXNfdXRpbGl0eTsKKyAgICBzaXplX3QgdHlw
ZV9hbGlnbm1lbnQ7CiAKICAgICBwYXNfaGVhcF9sb2NrX2Fzc2VydF9oZWxkKCk7CiAKQEAgLTEz
NDAsOCArMTM0MSw2IEBAIHBhc19zZWdyZWdhdGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IK
ICAgICAgICAgICAgICAgICBoZWFwLCBwYXNfaGVhcF9jb25maWdfa2luZF9nZXRfc3RyaW5nKGNv
bmZpZy0+a2luZCksIHNpemUsIGFsaWdubWVudCk7CiAgICAgfQogCi0gICAgUEFTX0FTU0VSVChw
YXNfaXNfYWxpZ25lZChzaXplLCBhbGlnbm1lbnQpKTsKLQogICAgIGlmIChQQVNfRU5BQkxFX1RF
U1RJTkcpIHsKICAgICAgICAgY2hlY2tfcGFydF9vZl9hbGxfaGVhcHNfZGF0YSBkYXRhOwogICAg
ICAgICBkYXRhLmhlYXAgPSBoZWFwOwpAQCAtMTM5MCw2ICsxMzg5LDM5IEBAIHBhc19zZWdyZWdh
dGVkX2hlYXBfZW5zdXJlX3NpemVfZGlyZWN0b3IKIAogICAgIHBhcmVudF9oZWFwID0gcGFzX2hl
YXBfZm9yX3NlZ3JlZ2F0ZWRfaGVhcChoZWFwKTsKIAorICAgIC8qIFNheSB0aGF0IHRoZSBoZWFw
J3MgdHlwZSBoYXMgYW4gYWxpZ25tZW50IG9mIDEyOCBhbmQgdGhhdCBzb21lb25lIGNhbGxzIHNv
bWV0aGluZyBsaWtlCisgICAgICAgYm1hbGxvY19pc29fYWxsb2NhdGVfYXJyYXlfYnlfc2l6ZSgm
c29tZV9oZWFwLCA1MTYzKS4KKyAgICAgICAKKyAgICAgICBCZWZvcmUgY29uc2lkZXJpbmcgd2hh
dCB0aGUgcG9zc2libGUgYmVoYXZpb3JzIGNvdWxkIGJlLCBsZXQncyB0YWtlIG5vdGUgb2YgYSBj
b25zdHJhaW50OiBpdCdzIG5vdAorICAgICAgIHJlYXNvbmFibGUgdG8gcmVxdWlyZSB0aGUgZmFz
dCBwYXRoIG9mIGFsbG9jYXRpb24gdG8gYWxpZ24gNTE2MyB0byAxMjgsIHNpbmNlIHRoYXQgd291
bGQgcmVxdWlyZSBsb2FkaW5nCisgICAgICAgdGhlIGFsaWdubWVudCBmcm9tIHRoZSB0eXBlIGFu
ZCBkb2luZyBpdCBkeW5hbWljYWxseSwgd2hpY2ggaW52b2x2ZXMgbW9yZSBjeWNsZXMgZm9yIHRo
ZSBmYXN0IHBhdGggdGhhbgorICAgICAgIHdlJ2QgbGlrZS4KKyAgICAgICAKKyAgICAgICBTbyB3
aGF0IGJlaGF2aW9yIGRvIHdlIHdhbnQgdGhpcyB0byBoYXZlPworICAgICAgIAorICAgICAgIDEp
IFdlIGNvdWxkIG1ha2UgdGhpcyBhbiBlcnJvci4gQnV0LCBzaW5jZSB3ZSBjYW5ub3QgZG8gdGhl
IGFsaWdubWVudCBjb21wdXRhdGlvbiBvbiB0aGUgZmFzdCBwYXRoLCB0aGUKKyAgICAgICAgICBl
cnJvciB3b3VsZCBvbmx5IG1hbmlmZXN0IGlmIHdlIGhpdCBhIHNsb3cgcGF0aC4KKyAgICAgICAK
KyAgICAgICAyKSBXZSBjb3VsZCBqdXN0IHNpbGVudGx5IGFsaWduIHRoZSBzaXplIGZvciB0aGUg
dXNlci4gVG8gbWFrZSB0aGlzIHdvcmssIHdlIGp1c3QgaGF2ZSB0byBtYWtlIHN1cmUgdGhhdAor
ICAgICAgICAgIHdoZW4gdGhlIGZhc3QgcGF0aCBhc2tzIGZvciA1MTYzIGFnYWluLCB0aGV5IHdp
bGwgZ2V0IGFuIGFsbG9jYXRvciB0aGF0IGlzIGFsaWduZWQgYXBwcm9wcmlhdGVseS4KKyAgICAg
ICAKKyAgICAgICBUaGUgZmlyc3Qgb3B0aW9uIHNlZW1zIGRvdWJseSBiYWQ6IGl0IHdpbGwgb25s
eSBtYW5pZmVzdCBzb21ldGltZXMsIGFuZCBpdCdzIHVubmVjZXNzYXJpbHkgcmVzdHJpY3RpdmUu
CisgICAgICAgV2hvIGlzIHRvIHNheSB0aGF0IGFuIGFycmF5IG9mIHRoYXQgbGVuZ3RoIGlzIHJl
YWxseSB3cm9uZz8gTGlicGFzIGdlbmVyYWxseSB0YWtlcyB0aGUgYXBwcm9hY2ggb2YKKyAgICAg
ICBwZXJtaXR0aW5nIHRoZSB1c2VyIHRvIHJlcXVlc3QgYSBtaXNhbGlnbmVkIHNpemUsIGFuZCBp
dCB3aWxsIGFsaWduIHRoZSBzaXplIGZvciB0aGUgdXNlci4KKworICAgICAgIFRvIG1ha2UgdGhl
IHNlY29uZCBvcHRpb24gd29yaywgd2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgYGluZGV4YCBp
cyBjb21wdXRlZCBmcm9tIHRoZSBzaXplIHRoYXQgdGhlCisgICAgICAgdXNlciB0aG91Z2h0IHRo
ZXkgd2VyZSByZXF1ZXN0aW5nLCBhbmQgdGhhdCB0aGlzIGZ1bmN0aW9uIGdldHMgY2FsbGVkIHdp
dGggc2l6ZSBiZWluZyBleGFjdGx5IHRoZSBzaXplCisgICAgICAgdGhhdCB0aGUgYWxsb2NhdG9y
IHNhdy4KKyAgICAgICAKKyAgICAgICBOb3RlIHRoYXQgdGhpcyBzaXplIG1heSBiZSBhbHJlYWR5
IGFsaWduZWQgdG8gdGhlIGR5bmFtaWNhbGx5IHJlcXVlc3RlZCBhbGlnbm1lbnQgKGFzIG9wcG9z
ZWQgdG8gdGhlCisgICAgICAgdHlwZSdzIGFsaWdubWVudCksIGFuZCB0aGF0J3MgZ3JlYXQhIFRo
YXQgYmVoYXZpb3IgZW5zdXJlcyB0aGF0IGlmIHdlIGxhdGVyIHRyeSB0byBhbGxvY2F0ZSB0aGlz
IHNpemUKKyAgICAgICB3aXRob3V0IHRoYXQgYWxpZ25tZW50LCB3ZSBjYW4gZ2V0IGEgZGlyZWN0
b3J5IHRoYXQgaXMgYmV0dGVyIHN1aXRlZC4gVGhlIGBhbGlnbm1lbnRgIHdlIGFyZSBwYXNzZWQg
aGVyZQorICAgICAgIGlzIHRoZSBtYXggb2YgdGhlIHR5cGUncyBhbGlnbm1lbnQgYW5kIHRoZSBy
ZXF1ZXN0ZWQgYWxpZ25tZW50LCBzbyBpZiB0aGUgc2l6ZSBpcyBub3QgYWxpZ25lZCB0bworICAg
ICAgIGBhbGlnbm1lbnRgLCB0aGVuIHdlIGtub3cgaXQncyBiZWNhdXNlIGBhbGlnbm1lbnRgIGlz
IHRoZSB0eXBlJ3MgYWxpZ25tZW50LiAqLworCisgICAgdHlwZV9hbGlnbm1lbnQgPSBwYXNfaGVh
cF9nZXRfdHlwZV9hbGlnbm1lbnQocGFyZW50X2hlYXApOworICAgIFBBU19BU1NFUlQoYWxpZ25t
ZW50ID49IHR5cGVfYWxpZ25tZW50KTsKKyAgICAKICAgICBpbmRleCA9IHBhc19zZWdyZWdhdGVk
X2hlYXBfaW5kZXhfZm9yX3NpemUoc2l6ZSwgKmNvbmZpZyk7CiAgICAgb2JqZWN0X3NpemUgPSBw
YXNfc2VncmVnYXRlZF9oZWFwX3NpemVfZm9yX2luZGV4KGluZGV4LCAqY29uZmlnKTsKIApAQCAt
MTQwMSwxMyArMTQzMywyOCBAQCBwYXNfc2VncmVnYXRlZF9oZWFwX2Vuc3VyZV9zaXplX2RpcmVj
dG9yCiAKICAgICBvYmplY3Rfc2l6ZSA9IFBBU19NQVgobWluX29iamVjdF9zaXplX2Zvcl9oZWFw
X2NvbmZpZyhjb25maWcpLCBvYmplY3Rfc2l6ZSk7CiAKLSAgICBQQVNfQVNTRVJUKHBhc19pc19h
bGlnbmVkKG9iamVjdF9zaXplLCBhbGlnbm1lbnQpKTsKICAgICBQQVNfQVNTRVJUKHBhc19pc19h
bGlnbmVkKAogICAgICAgICAgICAgICAgICAgIG9iamVjdF9zaXplLCBwYXNfc2VncmVnYXRlZF9w
YWdlX2NvbmZpZ19taW5fYWxpZ24oY29uZmlnLT5zbWFsbF9zZWdyZWdhdGVkX2NvbmZpZykpKTsK
IAogICAgIGFsaWdubWVudCA9IFBBU19NQVgoYWxpZ25tZW50LAogICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdfbWluX2FsaWduKGNvbmZpZy0+c21hbGxf
c2VncmVnYXRlZF9jb25maWcpKTsKIAorICAgIGlmIChhbGlnbm1lbnQgPiB0eXBlX2FsaWdubWVu
dCkgeworICAgICAgICAvKiBJZiB0aGUgYWxpZ25tZW50IGlzIGJpZ2dlciB0aGFuIHR5cGVfYWxp
Z25tZW50IHRoZW4gaXQgbWVhbnMgdGhhdCB0aGlzIGlzIGEgZHluYW1pY2FsbHkgcmVxdWVzdGVk
CisgICAgICAgICAgIGFsaWdubWVudC4gU28sIHdlIGV4cGVjdCB0aGF0IHRoZSBvYmplY3Qgc2l6
ZSB3YXMgYWxyZWFkeSBhbGlnbmVkIHRvIGl0IGJ5IHRoZSBhbGxvY2F0b3IgZmFzdAorICAgICAg
ICAgICBwYXRoLiBXZSBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUgd2l0aCBhIHNpemUgdGhhdCBpc24n
dCBhbHJlYWR5IGFsaWduZWQgdG8gdGhlIGR5bmFtaWNhbGx5IHJlcXVlc3RlZAorICAgICAgICAg
ICBhbGlnbm1lbnQhICovCisgICAgICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2JqZWN0
X3NpemUsIGFsaWdubWVudCkpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8qIElmIHRoZSBhbGln
bm1lbnQgaXMgZXhhY3RseSB0aGUgdHlwZV9hbGlnbm1lbnQsIHRoZW4gaXQgbWlnaHQgYmUgdGhh
dCB3ZSBhcmUgYWxsb2NhdGluZyB3aXRob3V0CisgICAgICAgICAgIGFueSBkeW5hbWljYWxseSBy
ZXF1ZXN0ZWQgYWxpZ25tZW50LCBvciBhIGR5bmFtaWNhbGx5IHJlcXVlc3RlZCBhbGlnbm1lbnQg
dGhhdCBpcyBzbWFsbGVyIHRoYW4gdGhlCisgICAgICAgICAgIHR5cGUgYWxpZ25tZW50LiBJbiB0
aGF0IGNhc2UsIHdlIGFsaWduIHRoZSBvYmplY3Rfc2l6ZSBoZXJlLCBzbyB0aGF0IGluIHRoaXMg
aGVhcCwgYWxsIG9iamVjdCBzaXplcworICAgICAgICAgICBhcmUgYWxpZ25lZCB0byB0aGUgdHlw
ZSdzIGFsaWdubWVudC4gKi8KKyAgICAgICAgb2JqZWN0X3NpemUgPSBwYXNfcm91bmRfdXBfdG9f
cG93ZXJfb2ZfMihvYmplY3Rfc2l6ZSwgYWxpZ25tZW50KTsKKyAgICB9CisKKyAgICBQQVNfQVNT
RVJUKG9iamVjdF9zaXplID49IHNpemUpOworCiAgICAgLyogSWYgd2UgaGF2ZSBvdmVyZmxvd2Vk
IGFscmVhZHkgdGhlbiBiYWlsLiAqLwogICAgIGlmICgodW5zaWduZWQpb2JqZWN0X3NpemUgIT0g
b2JqZWN0X3NpemUgfHwKICAgICAgICAgKHVuc2lnbmVkKWFsaWdubWVudCAhPSBhbGlnbm1lbnQp
CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9o
ZWFwX2lubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfc2VncmVnYXRlZF9oZWFwX2lubGluZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfaGVhcF9pbmxp
bmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw3ICsxMjcsOCBAQCBzdGF0aWMgUEFTX0FMV0FZ
U19JTkxJTkUgYm9vbCBwYXNfc2VncmVnCiAgICAgICAgIHR1cGxlcyA9IHBhc19zZWdyZWdhdGVk
X2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZV9wdHJfbG9hZCgKICAgICAgICAgICAgICZkYXRh
W3Bhc19kZXBlbmQobnVtX21lZGl1bV9kaXJlY3RvcmllcyldLm1lZGl1bV9kaXJlY3Rvcmllcyk7
CiAKLSAgICAgICAgaWYgKHR1cGxlcykgeworICAgICAgICBpZiAobnVtX21lZGl1bV9kaXJlY3Rv
cmllcykgeworICAgICAgICAgICAgUEFTX0FTU0VSVCh0dXBsZXMpOwogICAgICAgICAgICAgcmVz
dWx0IHw9IHBhc19jb21wYWN0X2V4cGVuZGFibGVfbWVtb3J5X3RvdWNoKAogICAgICAgICAgICAg
ICAgIHR1cGxlcywKICAgICAgICAgICAgICAgICBudW1fbWVkaXVtX2RpcmVjdG9yaWVzICogc2l6
ZW9mKHBhc19zZWdyZWdhdGVkX2hlYXBfbWVkaXVtX2RpcmVjdG9yeV90dXBsZSksCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfcGFnZS5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3Jj
L2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlLmMJKHdvcmtpbmcgY29weSkKQEAgLTQwOSw3ICs0
MDksOCBAQCBib29sIHBhc19zZWdyZWdhdGVkX3BhZ2VfdGFrZV9waHlzaWNhbGx5CiAgICAgcmFu
Z2UgPSBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoCiAgICAgICAgIGJhc2UsCiAgICAgICAgIGJh
c2UgKyBwYWdlX2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZSwKLSAgICAgICAgY29tbWl0X2xvY2tfZm9y
KHBhZ2UpKTsKKyAgICAgICAgY29tbWl0X2xvY2tfZm9yKHBhZ2UpLAorICAgICAgICBwYWdlX2Nv
bmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsKICAgICAKICAgICBy
ZXR1cm4gcGFzX2RlZmVycmVkX2RlY29tbWl0X2xvZ19hZGRfbWF5YmVfbG9ja2VkKAogICAgICAg
ICBkZWNvbW1pdF9sb2csIHJhbmdlLCByYW5nZV9sb2NrZWRfbW9kZSwgaGVhcF9sb2NrX2hvbGRf
bW9kZSk7CkBAIC00ODksNyArNDkwLDcgQEAgdm9pZCBwYXNfc2VncmVnYXRlZF9wYWdlX2NvbW1p
dF9mdWxseSgKICAgICAgICAgICAgIHBhc19sb2NrX2xvY2soY29tbWl0X2xvY2spOwogICAgICAg
ICBwYXNfY29tcGlsZXJfZmVuY2UoKTsKIAotICAgICAgICBwYXNfY29tbWl0X3NwYW5fY29uc3Ry
dWN0KCZjb21taXRfc3Bhbik7CisgICAgICAgIHBhc19jb21taXRfc3Bhbl9jb25zdHJ1Y3QoJmNv
bW1pdF9zcGFuLCBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmls
aXR5KTsKIAogICAgICAgICBmb3IgKGdyYW51bGVfaW5kZXggPSAwOyBncmFudWxlX2luZGV4IDwg
bnVtX2dyYW51bGVzOyArK2dyYW51bGVfaW5kZXgpIHsKICAgICAgICAgICAgIGlmICh1c2VfY291
bnRzW2dyYW51bGVfaW5kZXhdICE9IFBBU19QQUdFX0dSQU5VTEVfREVDT01NSVRURUQpIHsKSW5k
ZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhZ2Vf
aW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc19zZWdyZWdhdGVkX3BhZ2VfaW5saW5lcy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYWdlX2lubGluZXMu
aAkod29ya2luZyBjb3B5KQpAQCAtNjA0LDcgKzYwNCw3IEBAIHN0YXRpYyBQQVNfQUxXQVlTX0lO
TElORSB2b2lkIHBhc19zZWdyZWcKICAgICAgICAgcGFzX2xvY2sqIGhlbGRfbG9jazsKICAgICAg
ICAgaGVsZF9sb2NrID0gTlVMTDsKICAgICAgICAgcGFzX3NlZ3JlZ2F0ZWRfcGFnZV9kZWFsbG9j
YXRlKAotICAgICAgICAgICAgYmVnaW4sICZoZWxkX2xvY2ssIHBhc19zZWdyZWdhdGVkX2RlYWxs
b2NhdGlvbl90b192aWV3X2NhY2hlX21vZGUsIGNhY2hlLCBwYWdlX2NvbmZpZywgcm9sZSk7Cisg
ICAgICAgICAgICBiZWdpbiwgJmhlbGRfbG9jaywgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X2RpcmVjdF9tb2RlLCBOVUxMLCBwYWdlX2NvbmZpZywgcm9sZSk7CiAgICAgICAgIHBhc19sb2Nr
X3N3aXRjaCgmaGVsZF9sb2NrLCBOVUxMKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlldy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldy5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuYwko
d29ya2luZyBjb3B5KQpAQCAtMzcsNiArMzcsOCBAQAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVk
X3NoYXJlZF92aWV3X2lubGluZXMuaCIKICNpbmNsdWRlICJwYXNfc2hhcmVkX2hhbmRsZV9vcl9w
YWdlX2JvdW5kYXJ5X2lubGluZXMuaCIKIAorc2l6ZV90IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxf
dmlld19jb3VudCA9IDA7CisKIHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyoKIHBhc19zZWdy
ZWdhdGVkX3BhcnRpYWxfdmlld19jcmVhdGUoCiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJl
Y3RvcnkqIGRpcmVjdG9yeSwKQEAgLTU0LDYgKzU2LDggQEAgcGFzX3NlZ3JlZ2F0ZWRfcGFydGlh
bF92aWV3X2NyZWF0ZSgKICAgICAgICAgInBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyIsCiAg
ICAgICAgIHBhc19vYmplY3RfYWxsb2NhdGlvbik7CiAKKyAgICBwYXNfc2VncmVnYXRlZF9wYXJ0
aWFsX3ZpZXdfY291bnQrKzsKKwogICAgIC8qIFdlIGF0dGFjaCB0byBhIHNoYXJlZCB2aWV3IGxh
emlseSAtIG9uY2Ugd2Uga25vdyB3aGF0IHdlJ3JlIGFsbG9jYXRpbmcuICovCiAgICAgcGFzX2Nv
bXBhY3Rfc2VncmVnYXRlZF9zaGFyZWRfdmlld19wdHJfc3RvcmUoJnJlc3VsdC0+c2hhcmVkX3Zp
ZXcsIE5VTEwpOwogCkBAIC0yNDIsNiArMjQ2LDkgQEAgc3RhdGljIHBhc19oZWFwX3N1bW1hcnkg
Y29tcHV0ZV9zdW1tYXJ5KAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKHZpZXctPmlzX2lu
X3VzZV9mb3JfYWxsb2NhdGlvbikKKyAgICAgICAgcmVzdWx0LmNhY2hlZCArPSBwYXNfaGVhcF9z
dW1tYXJ5X3RvdGFsKHJlc3VsdCk7CisKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBT
b3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3Zp
ZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNf
c2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXcuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2Jt
YWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfcGFydGlhbF92aWV3LmgJKHdv
cmtpbmcgY29weSkKQEAgLTQzLDYgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0
ZWRfcGFydGlhbF92aQogdHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcg
cGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXc7CiB0eXBlZGVmIHN0cnVjdCBwYXNfc2VncmVnYXRl
ZF9zaXplX2RpcmVjdG9yeSBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeTsKIAorUEFTX0FQ
SSBleHRlcm4gc2l6ZV90IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlld19jb3VudDsKKwogc3Ry
dWN0IHBhc19zZWdyZWdhdGVkX3BhcnRpYWxfdmlldyB7CiAgICAgdW5zaWduZWQgaW5saW5lX2Fs
bG9jX2JpdHM7CiAgICAgCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9kaXJlY3RvcnkuYwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfcGFnZV9k
aXJlY3RvcnkuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3BhZ2VfZGlyZWN0b3J5LmMJKHdvcmtpbmcg
Y29weSkKQEAgLTQyNiw3ICs0MjYsOCBAQCB0YWtlX2xhc3RfZW1wdHlfY29uc2lkZXJfdmlldygK
ICAgICAgICAgc2hhcmVkX3ZpZXctPmlzX293bmVkID0gZmFsc2U7CiAgICAgICAgIHBhc19wYWdl
X21hbGxvY19kZWNvbW1pdCgKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVkX3BhZ2VfYm91bmRh
cnkocGFnZSwgcGFnZV9jb25maWcpLAotICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdl
X3NpemUpOworICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAg
ICAgICBwYWdlX2NvbmZpZy5iYXNlLmhlYXBfY29uZmlnX3B0ci0+bW1hcF9jYXBhYmlsaXR5KTsK
ICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5kZXN0cm95X3BhZ2VfaGVhZGVyKCZwYWdlLT5iYXNl
LCBwYXNfbG9ja19pc19oZWxkKTsKICAgICAgICAgZGVjb21taXRfbG9nLT50b3RhbCArPSBwYWdl
X2NvbmZpZy5iYXNlLnBhZ2Vfc2l6ZTsKICAgICAgICAgZ290byByZXR1cm5fdGFrZW5fcGFydGlh
bF92aWV3c19hZnRlcl9kZWNvbW1pdDsKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
bGlicGFzL3Bhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3LmMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYwko
cmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFz
X3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuYwkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsOCBA
QAogI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2lubGluZXMuaCIKICNpbmNs
dWRlICJwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5X2lubGluZXMuaCIKIAorc2l6
ZV90IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvdW50ID0gMDsKKwogcGFzX3NlZ3JlZ2F0
ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NyZWF0ZShzaXplX3Qg
aW5kZXgpCiB7CiAgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHJlc3VsdDsKQEAgLTUx
LDYgKzUzLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcqIHBhc19zZWdyZWdhdAogICAg
ICAgICAicGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXciLAogICAgICAgICBwYXNfb2JqZWN0X2Fs
bG9jYXRpb24pOwogCisgICAgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXdfY291bnQrKzsKKwog
ICAgIHJlc3VsdC0+c2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5ID0gTlVMTDsKIAogICAg
IC8qIE5VTEwgbXVzdCBsb29rIGxpa2UgYSBwYWdlLiBDb2RlIHRoYXQgdGVzdHMgaWYgdGhpbmdz
IGFyZSBwYWdlcyBjYW4gaW1wbGljaXRseSBhc3N1bWUgdGhhdApAQCAtMTY3LDcgKzE3MSw4IEBA
IHBhc19zZWdyZWdhdGVkX3NoYXJlZF9oYW5kbGUqIHBhc19zZWdyZWcKICAgICAgICAgcGFzX2hl
YXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseSgKICAgICAgICAgICAgIHBhc19zZWdyZWdhdGVk
X3BhZ2VfY29uZmlnX2hlYXBfbG9ja19ob2xkX21vZGUocGFnZV9jb25maWcpKTsKIAotICAgICAg
ICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGhhbmRsZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25m
aWcuYmFzZS5wYWdlX3NpemUpOworICAgICAgICBwYXNfcGFnZV9tYWxsb2NfY29tbWl0KGhhbmRs
ZS0+cGFnZV9ib3VuZGFyeSwgcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemUsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1t
YXBfY2FwYWJpbGl0eSk7CiAgICAgICAgIHBhZ2VfY29uZmlnLmJhc2UuY3JlYXRlX3BhZ2VfaGVh
ZGVyKAogICAgICAgICAgICAgaGFuZGxlLT5wYWdlX2JvdW5kYXJ5LAogICAgICAgICAgICAgcGFz
X3BhZ2Vfa2luZF9mb3Jfc2VncmVnYXRlZF92YXJpYW50X2FuZF9yb2xlKApAQCAtMzQ2LDYgKzM1
MSw5IEBAIHN0YXRpYyBwYXNfaGVhcF9zdW1tYXJ5IGNvbXB1dGVfc3VtbWFyeSgKICAgICAgICAg
JnBhZ2UtPmJhc2UsICZyZXN1bHQsIHBhc19yYW5nZV9jcmVhdGUoc3RhcnRfb2ZfbGFzdF9mcmVl
LCBlbmRfb2ZfcGF5bG9hZCksCiAgICAgICAgIHBhc19mcmVlX29iamVjdF9yYW5nZSk7CiAKKyAg
ICBpZiAodmlldy0+aXNfaW5fdXNlX2Zvcl9hbGxvY2F0aW9uX2NvdW50KQorICAgICAgICByZXN1
bHQuY2FjaGVkICs9IHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplOworCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfc2hhcmVkX3ZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9zaGFyZWRfdmlldy5oCShyZXZpc2lvbiAyODk1
MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF9z
aGFyZWRfdmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw4IEBAIHN0cnVjdCBwYXNf
c2VncmVnYXRlZF9zaGFyZWRfdmlldzsKIHR5cGVkZWYgc3RydWN0IHBhc19leHRlbmRlZF9zZWdy
ZWdhdGVkX3NoYXJlZF92aWV3IHBhc19leHRlbmRlZF9zZWdyZWdhdGVkX3NoYXJlZF92aWV3Owog
dHlwZWRlZiBzdHJ1Y3QgcGFzX3NlZ3JlZ2F0ZWRfc2hhcmVkX3ZpZXcgcGFzX3NlZ3JlZ2F0ZWRf
c2hhcmVkX3ZpZXc7CiAKK1BBU19BUEkgZXh0ZXJuIHNpemVfdCBwYXNfc2VncmVnYXRlZF9zaGFy
ZWRfdmlld19jb3VudDsKKwogc3RydWN0IHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3IHsKICAg
ICBwYXNfc2hhcmVkX2hhbmRsZV9vcl9wYWdlX2JvdW5kYXJ5IHNoYXJlZF9oYW5kbGVfb3JfcGFn
ZV9ib3VuZGFyeTsKICAgICBwYXNfbG9jayBjb21taXRfbG9jazsKSW5kZXg6IFNvdXJjZS9ibWFs
bG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5LmMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0
ZWRfc2l6ZV9kaXJlY3RvcnkuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkuYwkod29ya2lu
ZyBjb3B5KQpAQCAtNzQ3LDcgKzc0Nyw4IEBAIHRha2VfbGFzdF9lbXB0eV9jb25zaWRlcl92aWV3
KHBhc19zZWdyZWcKICAgICAgICAgfQogICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXQo
CiAgICAgICAgICAgICBwYXNfc2VncmVnYXRlZF9wYWdlX2JvdW5kYXJ5KHBhZ2UsIG15X3BhZ2Vf
Y29uZmlnKSwKLSAgICAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplKTsKKyAg
ICAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXplLAorICAgICAgICAgICAgbXlf
cGFnZV9jb25maWcuYmFzZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAg
ICAgIGRlY29tbWl0X2xvZy0+dG90YWwgKz0gbXlfcGFnZV9jb25maWcuYmFzZS5wYWdlX3NpemU7
CiAgICAgICAgIG15X3BhZ2VfY29uZmlnLmJhc2UuZGVzdHJveV9wYWdlX2hlYWRlcigmcGFnZS0+
YmFzZSwgcGFzX2xvY2tfaXNfaGVsZCk7CiAgICAgICAgIHBhc19zZWdyZWdhdGVkX2RpcmVjdG9y
eV92aWV3X2RpZF9iZWNvbWVfZWxpZ2libGVfYXRfaW5kZXgoZGlyZWN0b3J5LCBpbmRleCk7Cklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3
LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Nl
Z3JlZ2F0ZWRfdmlldy5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJw
YXMvc3JjL2xpYnBhcy9wYXNfc2VncmVnYXRlZF92aWV3LmMJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChjKSAyMDE5LTIwMjIgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00
Miw2ICs0Miw4IEBACiBwYXNfc2VncmVnYXRlZF9zaXplX2RpcmVjdG9yeSoKIHBhc19zZWdyZWdh
dGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5X3Nsb3cocGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3
KQogeworICAgIGlmICghdmlldykKKyAgICAgICAgcmV0dXJuIE5VTEw7CiAgICAgc3dpdGNoIChw
YXNfc2VncmVnYXRlZF92aWV3X2dldF9raW5kKHZpZXcpKSB7CiAgICAgY2FzZSBwYXNfc2VncmVn
YXRlZF9leGNsdXNpdmVfdmlld19raW5kOgogICAgIGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfaW5lbGln
aWJsZV9leGNsdXNpdmVfdmlld19raW5kOgpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3Ny
Yy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5lcy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc19zZWdyZWdhdGVkX3Zp
ZXdfYWxsb2NhdG9yX2lubGluZXMuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3NlZ3JlZ2F0ZWRfdmlld19hbGxvY2F0b3JfaW5saW5l
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xODEsNyArMTgxLDggQEAgcGFzX3NlZ3JlZ2F0ZWRfdmll
d193aWxsX3N0YXJ0X2FsbG9jYXRpbgogICAgICAgICAgICAgICAgICAgICAgICAgbnVtX2xvY2tz
X2hlbGQpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIAotICAgICAgICAgICAgICAg
IHBhc19wYWdlX21hbGxvY19jb21taXQoZXhjbHVzaXZlLT5wYWdlX2JvdW5kYXJ5LCBwYWdlX2Nv
bmZpZy5iYXNlLnBhZ2Vfc2l6ZSk7CisgICAgICAgICAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2Nv
bW1pdChleGNsdXNpdmUtPnBhZ2VfYm91bmRhcnksIHBhZ2VfY29uZmlnLmJhc2UucGFnZV9zaXpl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9jb25maWcuYmFz
ZS5oZWFwX2NvbmZpZ19wdHItPm1tYXBfY2FwYWJpbGl0eSk7CiAgICAgICAgICAgICAgICAgaWYg
KHZlcmJvc2UpIHsKICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiQ3JlYXRpbmcgcGFnZSBo
ZWFkZXIgd2hlbiBjb21taXR0aW5nIGV4Y2x1c2l2ZSBwYWdlLCB2aWV3ID0gJXAsICIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiYm91bmRhcnkgPSAlcC5cbiIsCkluZGV4OiBTb3VyY2Uv
Ym1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3N0YXR1c19yZXBvcnRl
ci5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBh
cy9wYXNfc3RhdHVzX3JlcG9ydGVyLmMJKHdvcmtpbmcgY29weSkKQEAgLTY3Myw2ICs2NzMsMTEg
QEAgc3RhdGljIGJvb2wgZHVtcF9sYXJnZV9zaGFyaW5nX3Bvb2xfbm9kZQogICAgICAgICAgICAg
c3RyZWFtLCAiLCAlcyIsCiAgICAgICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X3N5bmNocm9u
aXphdGlvbl9zdHlsZV9nZXRfc3RyaW5nKG5vZGUtPnN5bmNocm9uaXphdGlvbl9zdHlsZSkpOwog
ICAgIH0KKyAgICBpZiAobm9kZS0+bW1hcF9jYXBhYmlsaXR5ICE9IHBhc19tYXlfbW1hcCkgewor
ICAgICAgICBwYXNfc3RyZWFtX3ByaW50ZigKKyAgICAgICAgICAgIHN0cmVhbSwgIiwgJXMiLAor
ICAgICAgICAgICAgcGFzX21tYXBfY2FwYWJpbGl0eV9nZXRfc3RyaW5nKG5vZGUtPm1tYXBfY2Fw
YWJpbGl0eSkpOworICAgIH0KIAogICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7
CiAKQEAgLTgyMSw2ICs4MjYsMTMgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdG90
YWxfZnJhZwogICAgICAgICAgICAgICAgICAgICAgIGRhdGEubGFyZ2VfZnJhZ21lbnRhdGlvbik7
CiB9CiAKK3ZvaWQgcGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3ZpZXdfc3RhdHMocGFzX3N0cmVh
bSogc3RyZWFtKQoreworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBOdW1iZXIg
b2YgUGFydGlhbCBWaWV3czogJXp1XG4iLCBwYXNfc2VncmVnYXRlZF9wYXJ0aWFsX3ZpZXdfY291
bnQpOworICAgIHBhc19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICBOdW1iZXIgb2YgU2hhcmVk
IFZpZXdzOiAlenVcbiIsIHBhc19zZWdyZWdhdGVkX3NoYXJlZF92aWV3X2NvdW50KTsKKyAgICBw
YXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICIgICAgTnVtYmVyIG9mIEV4Y2x1c2l2ZSBWaWV3czog
JXp1XG4iLCBwYXNfc2VncmVnYXRlZF9leGNsdXNpdmVfdmlld19jb3VudCk7Cit9CisKIHR5cGVk
ZWYgc3RydWN0IHsKICAgICBzaXplX3QgbnVtX2RpcmVjdG9yaWVzX3dpdGhfZGF0YTsKICAgICBz
aXplX3QgbnVtX2RpcmVjdG9yaWVzX3dpdGhfdGxhczsKQEAgLTg5NCw2ICs5MDYsNyBAQCB2b2lk
IHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aWVyX3VwX3JhCiAKIHN0YXRpYyBjb25zdCBjaGFy
KiBhbGxvY2F0b3Jfc3RhdGUocGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yKQogeworICAg
IAogICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9pc19hY3RpdmUoYWxsb2NhdG9yKSkKICAg
ICAgICAgcmV0dXJuICJpbmFjdGl2ZSI7CiAgICAgaWYgKHBhc19zZWdyZWdhdGVkX3ZpZXdfaXNf
cGFydGlhbChhbGxvY2F0b3ItPnZpZXcpKQpAQCAtOTAxLDYgKzkxNCwyOCBAQCBzdGF0aWMgY29u
c3QgY2hhciogYWxsb2NhdG9yX3N0YXRlKHBhc19sCiAgICAgcmV0dXJuICJleGNsdXNpdmUiOwog
fQogCitzdGF0aWMgdm9pZCBkdW1wX2FsbG9jYXRvcl9zdGF0ZShwYXNfc3RyZWFtKiBzdHJlYW0s
IHBhc19sb2NhbF9hbGxvY2F0b3IqIGFsbG9jYXRvcikKK3sKKyAgICBwYXNfc2VncmVnYXRlZF92
aWV3IHZpZXc7CisKKyAgICB2aWV3ID0gYWxsb2NhdG9yLT52aWV3OworICAgIHBhc19zdHJlYW1f
cHJpbnRmKHN0cmVhbSwgIiwgJXMsIHZpZXcgPSAlcCwgZGlyZWN0b3J5ID0gJXAsICVzIiwKKyAg
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX2dldF9z
dHJpbmcoYWxsb2NhdG9yLT5jb25maWdfa2luZCksCisgICAgICAgICAgICAgICAgICAgICAgdmll
dywgdmlldyA/IHBhc19zZWdyZWdhdGVkX3ZpZXdfZ2V0X3NpemVfZGlyZWN0b3J5KHZpZXcpIDog
TlVMTCwKKyAgICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7
Cit9CisKK3N0YXRpYyB2b2lkIGR1bXBfc2NhdmVuZ2VyX2RhdGFfc3RhdGUocGFzX3N0cmVhbSog
c3RyZWFtLCBwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhKiBkYXRhKQoreworICAg
IHBhc19sb2NhbF9hbGxvY2F0b3Jfa2luZCBraW5kOworCisgICAga2luZCA9IGRhdGEtPmtpbmQ7
CisgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiJXMiLCBwYXNfbG9jYWxfYWxsb2NhdG9y
X2tpbmRfZ2V0X3N0cmluZyhraW5kKSk7CisKKyAgICBpZiAoa2luZCA9PSBwYXNfbG9jYWxfYWxs
b2NhdG9yX2FsbG9jYXRvcl9raW5kKQorICAgICAgICBkdW1wX2FsbG9jYXRvcl9zdGF0ZShzdHJl
YW0sIChwYXNfbG9jYWxfYWxsb2NhdG9yKilkYXRhKTsKK30KKwogdm9pZCBwYXNfc3RhdHVzX3Jl
cG9ydGVyX2R1bXBfYmFzZWxpbmVfYWxsb2NhdG9ycyhwYXNfc3RyZWFtKiBzdHJlYW0pCiB7CiAg
ICAgc2l6ZV90IGluZGV4OwpAQCAtOTE0LDE2ICs5NDksMTIgQEAgdm9pZCBwYXNfc3RhdHVzX3Jl
cG9ydGVyX2R1bXBfYmFzZWxpbmVfYQogICAgIAogICAgIGZvciAoaW5kZXggPSAwOyBpbmRleCA8
IFBBU19OVU1fQkFTRUxJTkVfQUxMT0NBVE9SUzsgKytpbmRleCkgewogICAgICAgICBwYXNfbG9j
YWxfYWxsb2NhdG9yKiBhbGxvY2F0b3I7Ci0gICAgICAgIHBhc19zZWdyZWdhdGVkX3ZpZXcgdmll
dzsKIAogICAgICAgICBhbGxvY2F0b3IgPSAmcGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZVtp
bmRleF0udS5hbGxvY2F0b3I7CiAKLSAgICAgICAgdmlldyA9IGFsbG9jYXRvci0+dmlldzsKLSAg
ICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAiICAgICAgICAgJXp1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgIGluZGV4LAotICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3ID8gcGFzX3Nl
Z3JlZ2F0ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkodmlldykgOiBOVUxMLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICBhbGxvY2F0b3Jfc3RhdGUoYWxsb2NhdG9yKSk7CisgICAgICAgIHBh
c19zdHJlYW1fcHJpbnRmKHN0cmVhbSwgIiAgICAgICAgICV6dTogIiwgaW5kZXgpOworICAgICAg
ICBkdW1wX2FsbG9jYXRvcl9zdGF0ZShzdHJlYW0sIGFsbG9jYXRvcik7CisgICAgICAgIHBhc19z
dHJlYW1fcHJpbnRmKHN0cmVhbSwgIlxuIik7CiAgICAgfQogfQogCkBAIC05NjYsMjMgKzk5Nywy
MCBAQCB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aHJlYWRfbG9jCiAKICAgICAgICAg
Zm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXRf
bm9kZSkpIHsKICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4
OwotICAgICAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvciogYWxsb2NhdG9yOwotCi0gICAgICAg
ICAgICBpZiAoIXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfcmVwcmVzZW50c19h
bGxvY2F0b3IobGF5b3V0X25vZGUpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgICAgICBhbGxvY2F0b3JfaW5kZXggPQotICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9mb3JfYWxsb2NhdG9yKGxh
eW91dF9ub2RlKTsKKyAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhsYXlvdXRfbm9kZSk7CiAKICAgICAg
ICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gY2FjaGUtPmFsbG9jYXRvcl9pbmRleF91cHBl
cl9ib3VuZCkKICAgICAgICAgICAgICAgICBicmVhazsKKworICAgICAgICAgICAgaWYgKCFwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChsYXlvdXRfbm9kZSwg
Y2FjaGUpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgCi0gICAgICAg
ICAgICBhbGxvY2F0b3IgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0
b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOwotICAgICAgICAgICAgcGFzX3N0cmVh
bV9wcmludGYoc3RyZWFtLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAg
ICAgICV1OiBkaXJlY3RvcnkgPSAlcCwgJXNcbiIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBhbGxvY2F0b3JfaW5kZXgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNf
c2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeShhbGxvY2F0b3ItPnZpZXcpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsb2NhdG9yX3N0YXRlKGFsbG9jYXRvcikpOwor
ICAgICAgICAgICAgcGFzX3N0cmVhbV9wcmludGYoc3RyZWFtLCAiICAgICAgICAgICAgJXU6ICIs
IGFsbG9jYXRvcl9pbmRleCk7CisgICAgICAgICAgICBkdW1wX3NjYXZlbmdlcl9kYXRhX3N0YXRl
KAorICAgICAgICAgICAgICAgIHN0cmVhbSwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgICAg
ICBwYXNfc3RyZWFtX3ByaW50ZihzdHJlYW0sICJcbiIpOwogICAgICAgICB9CiAgICAgfQogfQpA
QCAtMTA5MCw2ICsxMTE4LDcgQEAgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfZXZlcnl0
aGluZwogCiAgICAgaWYgKHBhc19zdGF0dXNfcmVwb3J0ZXJfZW5hYmxlZCA+PSAzKSB7CiAgICAg
ICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90b3RhbF9mcmFnbWVudGF0aW9uKHN0cmVhbSk7
CisgICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF92aWV3X3N0YXRzKHN0cmVhbSk7CiAg
ICAgICAgIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF90aWVyX3VwX3JhdGVzKHN0cmVhbSk7CiAg
ICAgfQogCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVz
X3JlcG9ydGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJw
YXMvcGFzX3N0YXR1c19yZXBvcnRlci5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1h
bGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfc3RhdHVzX3JlcG9ydGVyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTcxLDYgKzcxLDcgQEAgUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVt
cF9hbAogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJfZHVtcF9sYXJnZV9zaGFyaW5n
X3Bvb2wocGFzX3N0cmVhbSogc3RyZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9y
dGVyX2R1bXBfdXRpbGl0eV9oZWFwKHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJIHZvaWQg
cGFzX3N0YXR1c19yZXBvcnRlcl9kdW1wX3RvdGFsX2ZyYWdtZW50YXRpb24ocGFzX3N0cmVhbSog
c3RyZWFtKTsKK1BBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdmlld19zdGF0
cyhwYXNfc3RyZWFtKiBzdHJlYW0pOwogUEFTX0FQSSB2b2lkIHBhc19zdGF0dXNfcmVwb3J0ZXJf
ZHVtcF90aWVyX3VwX3JhdGVzKHBhc19zdHJlYW0qIHN0cmVhbSk7CiBQQVNfQVBJIHZvaWQgcGFz
X3N0YXR1c19yZXBvcnRlcl9kdW1wX2Jhc2VsaW5lX2FsbG9jYXRvcnMocGFzX3N0cmVhbSogc3Ry
ZWFtKTsKIFBBU19BUEkgdm9pZCBwYXNfc3RhdHVzX3JlcG9ydGVyX2R1bXBfdGhyZWFkX2xvY2Fs
X2NhY2hlcyhwYXNfc3RyZWFtKiBzdHJlYW0pOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5jCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGUuYwkocmV2
aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZS5jCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoYykgMjAxOC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIyIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsNiArMzAsOCBAQAogI2lu
Y2x1ZGUgInBhc190aHJlYWRfbG9jYWxfY2FjaGUuaCIKIAogI2luY2x1ZGUgInBhc19hbGxfaGVh
cF9jb25maWdzLmgiCisjaW5jbHVkZSAicGFzX2JpdHZlY3Rvci5oIgorI2luY2x1ZGUgInBhc19j
b21taXR0ZWRfcGFnZXNfdmVjdG9yLmgiCiAjaW5jbHVkZSAicGFzX2RlYnVnX2hlYXAuaCIKICNp
bmNsdWRlICJwYXNfaGVhcF9sb2NrLmgiCiAjaW5jbHVkZSAicGFzX2xhcmdlX3V0aWxpdHlfZnJl
ZV9oZWFwLmgiCkBAIC01NywyMiArNTksNTMgQEAgc2l6ZV90IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfc2l6ZV9mb3JfYQogICAgIHJlc3VsdCA9IFBBU19PRkZTRVRPRihwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlLCBsb2NhbF9hbGxvY2F0b3JzKQogICAgICAgICArIDggKiBhbGxvY2F0b3JfaW5kZXhf
Y2FwYWNpdHk7CiAgICAgCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gcGFzX3JvdW5k
X3VwX3RvX3Bvd2VyX29mXzIocmVzdWx0LCBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpOwor
fQorCitzdGF0aWMgc2l6ZV90IG51bV9wYWdlcyh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXhfY2Fw
YWNpdHkpCit7CisgICAgcmV0dXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxs
b2NhdG9yX2luZGV4X2NhcGFjaXR5KGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkKKyAgICAgICAg
Pj4gcGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOworfQorCitzdGF0aWMgdm9pZCBj
b21wdXRlX3BhZ2VfaW5kaWNlcyhwYXNfYWxsb2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9p
bmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5k
ZXggZW5kX2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHVpbnRwdHJfdCogYmVnaW5fcGFnZV9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHVpbnRwdHJfdCogZW5kX3BhZ2VfaW5kZXgpCit7CisgICAgc2l6ZV90IHBhZ2Vfc2l6
ZV9zaGlmdDsKKyAgICBwYWdlX3NpemVfc2hpZnQgPSBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50
X3NoaWZ0KCk7CisgICAgKmJlZ2luX3BhZ2VfaW5kZXggPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X29mZnNldF9vZl9hbGxvY2F0b3IoYmVnaW5fYWxsb2NhdG9yX2luZGV4KSA+PiBwYWdlX3NpemVf
c2hpZnQ7CisgICAgKmVuZF9wYWdlX2luZGV4ID0KKyAgICAgICAgKChwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX29mZnNldF9vZl9hbGxvY2F0b3IoZW5kX2FsbG9jYXRvcl9pbmRleCkgLSAxKSA+PiBw
YWdlX3NpemVfc2hpZnQpICsgMTsKK30KKworc3RhdGljIHNpemVfdCBwYWdlc19jb21taXR0ZWRf
c2l6ZSh1bnNpZ25lZCBhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpCit7CisgICAgcmV0dXJuIFBB
U19CSVRWRUNUT1JfTlVNX0JZVEVTKG51bV9wYWdlcyhhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkp
KTsKIH0KIAogc3RhdGljIHZvaWQgZGVhbGxvY2F0ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0
aHJlYWRfbG9jYWxfY2FjaGUpCiB7CiAgICAgY2hhciogYmVnaW47CisgICAgc2l6ZV90IHNpemU7
CiAKICAgICBwYXNfbGFyZ2VfdXRpbGl0eV9mcmVlX2hlYXBfZGVhbGxvY2F0ZSgKICAgICAgICAg
dGhyZWFkX2xvY2FsX2NhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3IsCiAgICAgICAgIFBBU19C
SVRWRUNUT1JfTlVNX0JZVEVTKHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9yX2luZGV4X2Nh
cGFjaXR5KSk7Ci0gICAgCi0gICAgYmVnaW4gPSAoY2hhciopdGhyZWFkX2xvY2FsX2NhY2hlOwor
CiAgICAgcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2RlYWxsb2NhdGUoCi0gICAgICAgIGJl
Z2luLAotICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9yX2FsbG9jYXRvcl9p
bmRleF9jYXBhY2l0eSgKLSAgICAgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+YWxsb2NhdG9y
X2luZGV4X2NhcGFjaXR5KSk7CisgICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+cGFnZXNfY29t
bWl0dGVkLAorICAgICAgICBwYWdlc19jb21taXR0ZWRfc2l6ZSh0aHJlYWRfbG9jYWxfY2FjaGUt
PmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOworCisgICAgYmVnaW4gPSAoY2hhciopdGhyZWFk
X2xvY2FsX2NhY2hlOworICAgIHNpemUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NpemVfZm9y
X2FsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSgKKyAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLT5h
bGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpOworCisgICAgLyogSWYgd2UncmUgZG9pbmcgc3ltbWV0
cmljIGRlY29tbWl0LCB0aGVuIHdlIG5lZWQgdG8gY29tbWl0IHRoZSBtZW1vcnkgZm9yIHRoZSBU
TEMgbm93LiAqLworICAgIHBhc19wYWdlX21hbGxvY19jb21taXRfd2l0aG91dF9tcHJvdGVjdChi
ZWdpbiwgc2l6ZSwgcGFzX21heV9tbWFwKTsKKyAgICAKKyAgICBwYXNfbGFyZ2VfdXRpbGl0eV9m
cmVlX2hlYXBfZGVhbGxvY2F0ZShiZWdpbiwgc2l6ZSk7CiB9CiAKIHN0YXRpYyB2b2lkIGRlc3Ry
b3kocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfbG9ja19o
b2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKQEAgLTEyMiw2ICsxNTUsNyBAQCBzdGF0aWMg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfCiAgICAgCiAgICAgc2l6ZV90IHNpemU7
CiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogcmVzdWx0OworICAgIHNpemVfdCBpbmRleDsK
IAogICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5ID49IFBBU19MT0NBTF9B
TExPQ0FUT1JfVU5TRUxFQ1RFRF9OVU1fSU5ESUNFUyk7CiAKQEAgLTEzMCw3ICsxNjQsOCBAQCBz
dGF0aWMgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogYWxsb2NhdGVfCiAgICAgaWYgKHZlcmJvc2Up
CiAgICAgICAgIHByaW50ZigiQ2FjaGUgc2l6ZTogJXp1XG4iLCBzaXplKTsKICAgICAKLSAgICBy
ZXN1bHQgPSAocGFzX3RocmVhZF9sb2NhbF9jYWNoZSopcGFzX2xhcmdlX3V0aWxpdHlfZnJlZV9o
ZWFwX2FsbG9jYXRlKHNpemUsICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIik7CisgICAgcmVzdWx0
ID0gKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqKXBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9h
bGxvY2F0ZV93aXRoX2FsaWdubWVudCgKKyAgICAgICAgc2l6ZSwgcGFzX2FsaWdubWVudF9jcmVh
dGVfdHJhZGl0aW9uYWwocGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpKSwgInBhc190aHJlYWRf
bG9jYWxfY2FjaGUiKTsKIAogICAgIHBhc196ZXJvX21lbW9yeShyZXN1bHQsIHNpemUpOwogCkBA
IC0xMzksNiArMTc0LDE2IEBAIHN0YXRpYyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBhbGxvY2F0
ZV8KICAgICAgICAgInBhc190aHJlYWRfbG9jYWxfY2FjaGUvc2hvdWxkX3N0b3BfYml0dmVjdG9y
Iik7CiAKICAgICBwYXNfemVyb19tZW1vcnkocmVzdWx0LT5zaG91bGRfc3RvcF9iaXR2ZWN0b3Is
IFBBU19CSVRWRUNUT1JfTlVNX0JZVEVTKGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eSkpOworCisg
ICAgUEFTX0FTU0VSVChwYWdlc19jb21taXR0ZWRfc2l6ZShhbGxvY2F0b3JfaW5kZXhfY2FwYWNp
dHkpKTsKKyAgICAKKyAgICByZXN1bHQtPnBhZ2VzX2NvbW1pdHRlZCA9ICh1bnNpZ25lZCopcGFz
X2xhcmdlX3V0aWxpdHlfZnJlZV9oZWFwX2FsbG9jYXRlKAorICAgICAgICBwYWdlc19jb21taXR0
ZWRfc2l6ZShhbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkpLAorICAgICAgICAicGFzX3RocmVhZF9s
b2NhbF9jYWNoZS9wYWdlc19jb21taXR0ZWQiKTsKKworICAgIHBhc196ZXJvX21lbW9yeShyZXN1
bHQtPnBhZ2VzX2NvbW1pdHRlZCwgcGFnZXNfY29tbWl0dGVkX3NpemUoYWxsb2NhdG9yX2luZGV4
X2NhcGFjaXR5KSk7CisgICAgZm9yIChpbmRleCA9IG51bV9wYWdlcyhhbGxvY2F0b3JfaW5kZXhf
Y2FwYWNpdHkpOyBpbmRleC0tOykKKyAgICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQocmVzdWx0LT5w
YWdlc19jb21taXR0ZWQsIGluZGV4LCB0cnVlKTsKICAgICAKICAgICByZXN1bHQtPmFsbG9jYXRv
cl9pbmRleF9jYXBhY2l0eSA9IGFsbG9jYXRvcl9pbmRleF9jYXBhY2l0eTsKIApAQCAtMTkwLDcg
KzIzNSw3IEBAIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWwKICAgICAg
ICAgICAgIHRocmVhZF9sb2NhbF9jYWNoZSwgUEFTX0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVE
X0lOREVYKSk7CiAKICAgICBmb3IgKFBBU19USFJFQURfTE9DQUxfQ0FDSEVfTEFZT1VUX0VBQ0hf
QUxMT0NBVE9SKGxheW91dF9ub2RlKSkKLSAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9jb25zdHJ1Y3QobGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSk7Cisg
ICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29tbWl0X2FuZF9jb25z
dHJ1Y3QobGF5b3V0X25vZGUsIHRocmVhZF9sb2NhbF9jYWNoZSk7CiAKICAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3NldCh0aHJlYWRfbG9jYWxfY2FjaGUpOwogICAgIApAQCAtMjA4LDExICsy
NTMsMTEgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Rlc3Ryb3kocGFzXwogICAgIGlm
ICghdGhyZWFkX2xvY2FsX2NhY2hlKQogICAgICAgICByZXR1cm47CiAKKyAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3NldChOVUxMKTsKKwogICAgIGlmICh2ZXJib3NlKQogICAgICAgICBwYXNf
bG9nKCJbJWRdIFRMQyAlcCBnZXR0aW5nIGRlc3Ryb3llZFxuIiwgZ2V0cGlkKCksIHRocmVhZF9s
b2NhbF9jYWNoZSk7CiAgICAgZGVzdHJveSh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19o
b2xkX21vZGUpOwotCi0gICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9zZXQoTlVMTCk7CiB9CiAK
IHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X3Nsb3co
cGFzX2hlYXBfY29uZmlnKiBjb25maWcsCkBAIC0yNjAsNiArMzA1LDcgQEAgcGFzX2xvY2FsX2Fs
bG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Zmx1c2hfZGVhbGxvY2F0aW9uX2xvZyh0aHJlYWRfbG9jYWxfY2FjaGUsIGhlYXBfbG9ja19ob2xk
X21vZGUpOwogICAgIAogICAgIHBhc19oZWFwX2xvY2tfbG9ja19jb25kaXRpb25hbGx5KGhlYXBf
bG9ja19ob2xkX21vZGUpOworICAgIHBhc19sb2NrX2xvY2soJnRocmVhZF9sb2NhbF9jYWNoZS0+
bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIAogICAgIFBBU19BU1NFUlQoZGVzaXJlZF9hbGxv
Y2F0b3JfaW5kZXggPCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRv
cl9pbmRleCk7CiAKQEAgLTMxOCw3ICszNjQsNyBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3Vs
dCBwYXNfdGhyZWFkX2xvCiAgICAgICAgIGlmIChhbGxvY2F0b3JfaW5kZXggPj0gZGVzaXJlZF9p
bmRleF91cHBlcl9ib3VuZCkKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfY29uc3RydWN0KGxheW91dF9ub2RlLCBuZXdfdGhy
ZWFkX2xvY2FsX2NhY2hlKTsKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9jb21taXRfYW5kX2NvbnN0cnVjdChsYXlvdXRfbm9kZSwgbmV3X3RocmVhZF9sb2NhbF9j
YWNoZSk7CiAgICAgfQogCiAgICAgcGFzX2NvbXBpbGVyX2ZlbmNlKCk7CkBAIC0zMjcsNiArMzcz
LDcgQEAgcGFzX2xvY2FsX2FsbG9jYXRvcl9yZXN1bHQgcGFzX3RocmVhZF9sbwogICAgIGlmICh0
aHJlYWRfbG9jYWxfY2FjaGUgIT0gbmV3X3RocmVhZF9sb2NhbF9jYWNoZSkKICAgICAgICAgZGVh
bGxvY2F0ZSh0aHJlYWRfbG9jYWxfY2FjaGUpOwogCisgICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJl
YWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKICAgICBwYXNfaGVhcF9sb2Nr
X3VubG9ja19jb25kaXRpb25hbGx5KGhlYXBfbG9ja19ob2xkX21vZGUpOwogCiAgICAgaWYgKHRo
cmVhZF9sb2NhbF9jYWNoZSAhPSBuZXdfdGhyZWFkX2xvY2FsX2NhY2hlKQpAQCAtMzM4LDYgKzM4
NSw5MiBAQCBwYXNfbG9jYWxfYWxsb2NhdG9yX3Jlc3VsdCBwYXNfdGhyZWFkX2xvCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVzaXJl
ZF9hbGxvY2F0b3JfaW5kZXgpKTsKIH0KIAorYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lz
X2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2FjaGUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5k
ZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGVuZF9hbGxvY2F0b3JfaW5kZXgpCit7Cisg
ICAgdWludHB0cl90IGJlZ2luX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IGVuZF9wYWdlX2lu
ZGV4OworICAgIHVpbnRwdHJfdCBwYWdlX2luZGV4OworCisgICAgY29tcHV0ZV9wYWdlX2luZGlj
ZXMoYmVnaW5fYWxsb2NhdG9yX2luZGV4LCBlbmRfYWxsb2NhdG9yX2luZGV4LCAmYmVnaW5fcGFn
ZV9pbmRleCwgJmVuZF9wYWdlX2luZGV4KTsKKworICAgIGZvciAocGFnZV9pbmRleCA9IGJlZ2lu
X3BhZ2VfaW5kZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFnZV9pbmRleDsgKytwYWdlX2luZGV4KSB7
CisgICAgICAgIGlmICghcGFzX2JpdHZlY3Rvcl9nZXQodGhyZWFkX2xvY2FsX2NhY2hlLT5wYWdl
c19jb21taXR0ZWQsIHBhZ2VfaW5kZXgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0KKworICAgIHJldHVybiB0cnVlOworfQorCitwYXNfZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Uo
CisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBh
c19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAgIHBhc19hbGxvY2F0
b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCkKK3sKKyAgICB1aW50cHRyX3QgYmVnaW5fcGFn
ZV9pbmRleDsKKyAgICB1aW50cHRyX3QgZW5kX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IHBh
Z2VfaW5kZXg7CisgICAgcGFzX3JhbmdlIGFsbG9jYXRvcl9yYW5nZTsKKyAgICBwYXNfZGVjb21t
aXRfZXhjbHVzaW9uX3JhbmdlIHJlc3VsdDsKKyAgICBzaXplX3QgcGFnZV9zaXplX3NoaWZ0Owor
CisgICAgYWxsb2NhdG9yX3JhbmdlID0gcGFzX3JhbmdlX2NyZWF0ZShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX29mZnNldF9vZl9hbGxvY2F0b3IoYmVnaW5fYWxsb2NhdG9yX2luZGV4KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
b2Zmc2V0X29mX2FsbG9jYXRvcihlbmRfYWxsb2NhdG9yX2luZGV4KSk7CisgICAgcmVzdWx0LnN0
YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gYWxsb2NhdG9yX3JhbmdlLmJlZ2luOworICAgIHJl
c3VsdC5lbmRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBhbGxvY2F0b3JfcmFuZ2UuZW5kOworCisg
ICAgY29tcHV0ZV9wYWdlX2luZGljZXMoYmVnaW5fYWxsb2NhdG9yX2luZGV4LCBlbmRfYWxsb2Nh
dG9yX2luZGV4LCAmYmVnaW5fcGFnZV9pbmRleCwgJmVuZF9wYWdlX2luZGV4KTsKKworICAgIHBh
Z2Vfc2l6ZV9zaGlmdCA9IHBhc19wYWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKTsKKworICAg
IGZvciAocGFnZV9pbmRleCA9IGJlZ2luX3BhZ2VfaW5kZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFn
ZV9pbmRleDsgKytwYWdlX2luZGV4KSB7CisgICAgICAgIGlmICghcGFzX2JpdHZlY3Rvcl9nZXQo
dGhyZWFkX2xvY2FsX2NhY2hlLT5wYWdlc19jb21taXR0ZWQsIHBhZ2VfaW5kZXgpKSB7CisgICAg
ICAgICAgICByZXN1bHQuc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQgPSBQQVNfTUFYKAorICAg
ICAgICAgICAgICAgIHJlc3VsdC5zdGFydF9vZl9wb3NzaWJsZV9kZWNvbW1pdCwKKyAgICAgICAg
ICAgICAgICBQQVNfTUlOKAorICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfcmFuZ2UuZW5k
LAorICAgICAgICAgICAgICAgICAgICAocGFnZV9pbmRleCArIDEpIDw8IHBhZ2Vfc2l6ZV9zaGlm
dCkpOworICAgICAgICAgICAgcmVzdWx0LmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA9IFBBU19N
SU4oCisgICAgICAgICAgICAgICAgcmVzdWx0LmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCwKKyAg
ICAgICAgICAgICAgICBQQVNfTUFYKAorICAgICAgICAgICAgICAgICAgICBhbGxvY2F0b3JfcmFu
Z2UuYmVnaW4sCisgICAgICAgICAgICAgICAgICAgIHBhZ2VfaW5kZXggPDwgcGFnZV9zaXplX3No
aWZ0KSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBQQVNfQVNTRVJUKCFwYXNfZGVjb21taXRf
ZXhjbHVzaW9uX3JhbmdlX2lzX2VtcHR5KHJlc3VsdCkpOworCisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Vuc3VyZV9jb21taXR0ZWQocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxv
Y2F0b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfYWxsb2NhdG9yX2luZGV4IGVuZF9hbGxvY2F0b3JfaW5kZXgpCit7CisgICAgdWludHB0
cl90IGJlZ2luX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IGVuZF9wYWdlX2luZGV4OworICAg
IHVpbnRwdHJfdCBwYWdlX2luZGV4OworCisgICAgY29tcHV0ZV9wYWdlX2luZGljZXMoYmVnaW5f
YWxsb2NhdG9yX2luZGV4LCBlbmRfYWxsb2NhdG9yX2luZGV4LCAmYmVnaW5fcGFnZV9pbmRleCwg
JmVuZF9wYWdlX2luZGV4KTsKKworICAgIGZvciAocGFnZV9pbmRleCA9IGJlZ2luX3BhZ2VfaW5k
ZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFnZV9pbmRleDsgKytwYWdlX2luZGV4KSB7CisgICAgICAg
IGlmIChwYXNfYml0dmVjdG9yX2dldCh0aHJlYWRfbG9jYWxfY2FjaGUtPnBhZ2VzX2NvbW1pdHRl
ZCwgcGFnZV9pbmRleCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgCisgICAgICAg
IHBhc19sb2NrX2Fzc2VydF9oZWxkKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdl
cl9sb2NrKTsKKyAgICAgICAgCisgICAgICAgIC8qIERvbid0IGF0dGVtcHQgdG8gZG8gZmFuY3kg
dGhpbmdzIHdpdGggc3BhbnMgZm9yIGNvbW1pdCwgc2luY2Ugd2UncmUgbm8gbG9uZ2VyIHJlYWxs
eQorICAgICAgICAgICBvcHRpbWl6aW5nIGZvciBzeW1tZXRyaWMgY29tbWl0IGFueXdheS4gKi8K
KyAgICAgICAgcGFzX3BhZ2VfbWFsbG9jX2NvbW1pdF93aXRob3V0X21wcm90ZWN0KAorICAgICAg
ICAgICAgKGNoYXIqKXRocmVhZF9sb2NhbF9jYWNoZSArIChwYWdlX2luZGV4IDw8IHBhc19wYWdl
X21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKSksCisgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2Nf
YWxpZ25tZW50KCksCisgICAgICAgICAgICBwYXNfbWF5X21tYXApOworCisgICAgICAgIHBhc19i
aXR2ZWN0b3Jfc2V0KHRocmVhZF9sb2NhbF9jYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2lu
ZGV4LCB0cnVlKTsKKyAgICB9Cit9CisKIHBhc19sb2NhbF9hbGxvY2F0b3JfcmVzdWx0CiBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfaWZfY2FuX3NldF9jYWNoZV9m
b3JfcG9zc2libHlfdW5pbml0aWFsaXplZF9pbmRleF9zbG93KAogICAgIHVuc2lnbmVkIGFsbG9j
YXRvcl9pbmRleCwKQEAgLTM1Miw2ICs0ODUsMzcgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9n
ZXRfbG9jYWxfYWxsb2NhdAogICAgICAgICBwYXNfbG9ja19pc19ub3RfaGVsZCk7CiB9CiAKK3Bh
c19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9hbGxvY2F0b3JfaW5kZXhf
Zm9yX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB2b2lkKiBhbGxvY2F0b3IpCit7CisgICAgdWludHB0cl90IGNhY2hlX2FkZHJlc3M7Cisg
ICAgdWludHB0cl90IGFsbG9jYXRvcl9hZGRyZXNzOworICAgIHVpbnRwdHJfdCBiZWdpbl9hbGxv
Y2F0b3JzOworICAgIHVpbnRwdHJfdCBlbmRfYWxsb2NhdG9yczsKKyAgICB1aW50cHRyX3Qgb2Zm
c2V0OworICAgIHVpbnRwdHJfdCBpbmRleDsKKworICAgIGNhY2hlX2FkZHJlc3MgPSAodWludHB0
cl90KWNhY2hlOworICAgIGFsbG9jYXRvcl9hZGRyZXNzID0gKHVpbnRwdHJfdClhbGxvY2F0b3I7
CisKKyAgICBiZWdpbl9hbGxvY2F0b3JzID0gY2FjaGVfYWRkcmVzcyArIFBBU19PRkZTRVRPRihw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLCBsb2NhbF9hbGxvY2F0b3JzKTsKKyAgICBlbmRfYWxsb2Nh
dG9ycyA9IGJlZ2luX2FsbG9jYXRvcnMgKyBzaXplb2YodWludDY0X3QpICogY2FjaGUtPmFsbG9j
YXRvcl9pbmRleF91cHBlcl9ib3VuZDsKKworICAgIFBBU19BU1NFUlQoYWxsb2NhdG9yX2FkZHJl
c3MgPj0gYmVnaW5fYWxsb2NhdG9ycyk7CisgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWRkcmVz
cyA8IGVuZF9hbGxvY2F0b3JzKTsKKworICAgIG9mZnNldCA9IGFsbG9jYXRvcl9hZGRyZXNzIC0g
YmVnaW5fYWxsb2NhdG9yczsKKworICAgIFBBU19BU1NFUlQocGFzX2lzX2FsaWduZWQob2Zmc2V0
LCBzaXplb2YodWludDY0X3QpKSk7CisgICAgCisgICAgaW5kZXggPSBvZmZzZXQgLyBzaXplb2Yo
dWludDY0X3QpOworCisgICAgUEFTX0FTU0VSVChpbmRleCA8IGNhY2hlLT5hbGxvY2F0b3JfaW5k
ZXhfdXBwZXJfYm91bmQpOworCisgICAgUEFTX0FTU0VSVCgocGFzX2FsbG9jYXRvcl9pbmRleClp
bmRleCA9PSBpbmRleCk7CisgICAgcmV0dXJuIChwYXNfYWxsb2NhdG9yX2luZGV4KWluZGV4Owor
fQorCiB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzKHBh
c190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhl
YXBfbG9ja19ob2xkX21vZGUpCiB7CkBAIC0zNjAsNyArNTI0LDcgQEAgdm9pZCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX3N0b3BfbG9jYWxfYQogICAgIC8qIFdlIGhhdmUgdG8gaG9sZCB0aGUgaGVh
cCBsb2NrIHRvIGRvIHRoaW5ncyB0byBvdXIgbG9jYWwgYWxsb2NhdG9ycyB1bmxlc3Mgd2UgYWxz
byBzZXQgdGhlCiAgICAgICAgaXNfaW5fdXNlIGJpdC4gKi8KICAgICBwYXNfaGVhcF9sb2NrX2xv
Y2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsKLSAgICBwYXNfbG9ja19sb2Nr
KCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICBwYXNfbG9j
a19sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5vZGUtPnNjYXZlbmdlcl9sb2NrKTsKIAogICAg
IGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0
X25vZGUpKSB7CiAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4OwpA
QCAtMzcwLDExICs1MzQsMTQgQEAgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0b3BfbG9j
YWxfYQogICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IHRocmVhZF9sb2NhbF9jYWNoZS0+
YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAg
ICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChs
YXlvdXRfbm9kZSwgdGhyZWFkX2xvY2FsX2NhY2hlKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcCgKICAgICAg
ICAgICAgIGxheW91dF9ub2RlLCB0aHJlYWRfbG9jYWxfY2FjaGUsIHBhc19sb2NrX2xvY2tfbW9k
ZV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKTsKICAgICB9CiAKLSAgICBwYXNfbG9ja191bmxvY2so
JnRocmVhZF9sb2NhbF9jYWNoZS0+bm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgIHBhc19sb2Nr
X3VubG9jaygmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAgICAg
cGFzX2hlYXBfbG9ja191bmxvY2tfY29uZGl0aW9uYWxseShoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
IH0KIApAQCAtNTE1LDE0ICs2ODIsMTQgQEAgcHJvY2Vzc19kZWFsbG9jYXRpb25fbG9nX3dpdGhf
Y29uZmlnKHBhcwogICAgIH0KIH0KIAotc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZvaWQgZmx1
c2hfZGVhbGxvY2F0aW9uX2xvZygKK3N0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGZsdXNo
X2RlYWxsb2NhdGlvbl9sb2dfd2l0aG91dF9yZXNldHRpbmcoCiAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAogICAgIHBhc19zZWdyZWdhdGVkX2RlYWxsb2Nh
dGlvbl9tb2RlIGRlYWxsb2NhdGlvbl9tb2RlKQogewogICAgIHNpemVfdCBpbmRleDsKICAgICBw
YXNfbG9jayogaGVsZF9sb2NrOwogCi0gICAgcGFzX2xvY2tfdGVzdGluZ19hc3NlcnRfaGVsZCgm
dGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tf
dGVzdGluZ19hc3NlcnRfaGVsZCgmdGhyZWFkX2xvY2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJf
bG9jayk7CiAgICAgCiAgICAgaW5kZXggPSB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlv
bl9sb2dfaW5kZXg7CiAgICAgaGVsZF9sb2NrID0gTlVMTDsKQEAgLTU1NSwyMSArNzIyLDMwIEBA
IHN0YXRpYyBQQVNfQUxXQVlTX0lOTElORSB2b2lkIGZsdXNoX2RlYWwKIAogc3RhdGljIHZvaWQg
Zmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIHRocmVhZF9sb2NhbF9jYWNoZSkKIHsKLSAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNoZS0+
ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGZsdXNo
X2RlYWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfc2VncmVnYXRlZF9kZWFs
bG9jYXRpb25fZGlyZWN0X21vZGUpOworICAgIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aG91
dF9yZXNldHRpbmcodGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fZGlyZWN0X21vZGUpOwogfQogCi12b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZmx1c2hf
ZGVhbGxvY2F0aW9uX2xvZyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJlYWRfbG9jYWxfY2Fj
aGUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSkKK3N0YXRpYyBQQVNfQUxXQVlT
X0lOTElORSB2b2lkIGZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfd2l0aF9tb2RlKAorICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICBwYXNfbG9ja19ob2xk
X21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSwKKyAgICBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRp
b25fbW9kZSBkZWFsbG9jYXRpb25fbW9kZSkKIHsKICAgICBpZiAoIXRocmVhZF9sb2NhbF9jYWNo
ZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xvY2FsX2Nh
Y2hlLT5ub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgcGFzX2xvY2tfbG9jaygmdGhyZWFkX2xv
Y2FsX2NhY2hlLT5ub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAKLSAgICBmbHVzaF9kZWFsbG9jYXRp
b25fbG9nKHRocmVhZF9sb2NhbF9jYWNoZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX3Rv
X3ZpZXdfY2FjaGVfbW9kZSk7CisgICAgc3dpdGNoIChkZWFsbG9jYXRpb25fbW9kZSkgeworICAg
IGNhc2UgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9uX2RpcmVjdF9tb2RlOgorICAgICAgICAv
KiBJZiB3ZSdyZSBkb2luZyBhIGRpcmVjdCBmbHVzaCB0aGVuIHRyeSB0byBzaGFyZSBjb2RlIHdp
dGggZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ19mb3Jfc2NhdmVuZ2VyLAorICAgICAgICAgICB3aGlj
aCBkb2VzIHRoZSBzYW1lIHRoaW5nIHdlIHdvdWxkIGRvLiAqLworICAgICAgICBmbHVzaF9kZWFs
bG9jYXRpb25fbG9nX2Zvcl9zY2F2ZW5nZXIodGhyZWFkX2xvY2FsX2NhY2hlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBwYXNfc2VncmVnYXRlZF9kZWFsbG9jYXRpb25fdG9fdmlld19jYWNo
ZV9tb2RlOgorICAgICAgICBmbHVzaF9kZWFsbG9jYXRpb25fbG9nX3dpdGhvdXRfcmVzZXR0aW5n
KAorICAgICAgICAgICAgdGhyZWFkX2xvY2FsX2NhY2hlLCBwYXNfc2VncmVnYXRlZF9kZWFsbG9j
YXRpb25fdG9fdmlld19jYWNoZV9tb2RlKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogICAgIAog
ICAgIHRocmVhZF9sb2NhbF9jYWNoZS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCA9IDA7CiAgICAg
dGhyZWFkX2xvY2FsX2NhY2hlLT5udW1fbG9nZ2VkX2J5dGVzID0gMDsKQEAgLTU3OCwyNiArNzU0
LDQ3IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mbHVzaF9kZWFsbG8KICAgICAgICB0
aGlzIGxvZy4gKi8KICAgICB0aHJlYWRfbG9jYWxfY2FjaGUtPmRlYWxsb2NhdGlvbl9sb2dfZGly
dHkgPSB0cnVlOwogCi0gICAgcGFzX2xvY2tfdW5sb2NrKCZ0aHJlYWRfbG9jYWxfY2FjaGUtPm5v
ZGUtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICBwYXNfbG9ja191bmxvY2soJnRocmVhZF9sb2NhbF9j
YWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIAogICAgIGlmIChoZWFwX2xvY2tfaG9s
ZF9tb2RlID09IHBhc19sb2NrX2lzX25vdF9oZWxkKQogICAgICAgICBwYXNfc2NhdmVuZ2VyX25v
dGlmeV9lbGlnaWJpbGl0eV9pZl9uZWVkZWQoKTsKIH0KIAordm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhy
ZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpCit7Cisg
ICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRoX21vZGUoCisgICAgICAgIHRocmVhZF9sb2Nh
bF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxvY2F0aW9u
X3RvX3ZpZXdfY2FjaGVfbW9kZSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
bHVzaF9kZWFsbG9jYXRpb25fbG9nX2RpcmVjdChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiB0aHJl
YWRfbG9jYWxfY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUp
Cit7CisgICAgZmx1c2hfZGVhbGxvY2F0aW9uX2xvZ193aXRoX21vZGUoCisgICAgICAgIHRocmVh
ZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSwgcGFzX3NlZ3JlZ2F0ZWRfZGVhbGxv
Y2F0aW9uX2RpcmVjdF9tb2RlKTsKK30KKwogI2lmIFBBU19PUyhEQVJXSU4pCiAKLXN0YXRpYyB2
b2lkIHN1c3BlbmQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCitzdGF0aWMgdm9pZCBz
dXNwZW5kKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLCBib29sKiBkaWRfc3VzcGVuZCkK
IHsKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAKICAgICBwdGhyZWFk
X3QgdGhyZWFkOwogICAgIG1hY2hfcG9ydF90IG1hY2hfdGhyZWFkOwogICAgIGtlcm5fcmV0dXJu
X3QgcmVzdWx0OworCisgICAgaWYgKCpkaWRfc3VzcGVuZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgKmRpZF9zdXNwZW5kID0gdHJ1ZTsKICAgICAKICAgICBpZiAodmVyYm9zZSkKICAgICAgICAg
cHJpbnRmKCJTdXNwZW5kaW5nIFRMQyAlcCB3aXRoIHRocmVhZCAlcC5cbiIsIGNhY2hlLCBjYWNo
ZS0+dGhyZWFkKTsKIAogICAgIHRocmVhZCA9IGNhY2hlLT50aHJlYWQ7CisgICAgUEFTX0FTU0VS
VCh0aHJlYWQpOworICAgIAogICAgIGlmICh0aHJlYWQgPT0gcHRocmVhZF9zZWxmKCkpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtNjE4LDcgKzgxNSwxMiBAQCBzdGF0aWMgdm9pZCBzdXNwZW5kKHBh
c190aHJlYWRfbG9jYWxfY2FjCiAKIHN0YXRpYyB2b2lkIHJlc3VtZShwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlKiBjYWNoZSkKIHsKKyAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7
CisgICAgCiAgICAga2Vybl9yZXR1cm5fdCByZXN1bHQ7CisKKyAgICBpZiAodmVyYm9zZSkKKyAg
ICAgICAgcGFzX2xvZygiUmVzdW1pbmcgVExDICVwIHdpdGggdGhyZWFkICVwLlxuIiwgY2FjaGUs
IGNhY2hlLT50aHJlYWQpOwogICAgIAogICAgIGlmIChjYWNoZS0+dGhyZWFkID09IHB0aHJlYWRf
c2VsZigpKQogICAgICAgICByZXR1cm47CkBAIC02MzAsMTMgKzgzMiwxNzEgQEAgc3RhdGljIHZv
aWQgcmVzdW1lKHBhc190aHJlYWRfbG9jYWxfY2FjaAogCiAjZW5kaWYKIAotYm9vbCBwYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxs
b2NhdG9yX2FjdGlvbiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19k
ZWFsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gZGVhbGxvY2F0b3JfYWN0aW9uKQorc3RhdGljIHZv
aWQgZGVjb21taXRfYWxsb2NhdG9yX3JhbmdlKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hl
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgYmVnaW5fbGF5b3V0X25vZGUsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgdWludHB0cl90IHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0LAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVpbnRwdHJfdCBlbmRfb2ZfcG9z
c2libGVfZGVjb21taXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFz
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBlbmRfbGF5b3V0X25vZGUpCiB7CisjaWYg
UEFTX09TKERBUldJTikKICAgICBzdGF0aWMgY29uc3QgYm9vbCB2ZXJib3NlID0gZmFsc2U7CiAg
ICAgCisgICAgdWludHB0cl90IGJlZ2luX3BhZ2VfaW5kZXg7CisgICAgdWludHB0cl90IGVuZF9w
YWdlX2luZGV4OworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgaW5uZXJf
bm9kZTsKKyAgICB1aW50cHRyX3QgcGFnZV9pbmRleDsKKyAgICBzaXplX3QgcGFnZV9zaXplOwor
ICAgIHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7CisgICAgcGFzX3JhbmdlIGRlY29tbWl0X3Jhbmdl
OworCisgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOworICAgIHBhc19sb2NrX2Fzc2Vy
dF9oZWxkKCZjYWNoZS0+bm9kZS0+c2NhdmVuZ2VyX2xvY2spOworCisgICAgcGFnZV9zaXplID0g
cGFzX3BhZ2VfbWFsbG9jX2FsaWdubWVudCgpOworICAgIHBhZ2Vfc2l6ZV9zaGlmdCA9IHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKTsKKyAgICAKKyAgICBiZWdpbl9wYWdlX2luZGV4
ID0gcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoCisgICAgICAgIHN0YXJ0X29mX3Bvc3NpYmxl
X2RlY29tbWl0LCBwYWdlX3NpemUpID4+IHBhZ2Vfc2l6ZV9zaGlmdDsKKyAgICBlbmRfcGFnZV9p
bmRleCA9IGVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCA+PiBwYWdlX3NpemVfc2hpZnQ7CisKKyAg
ICBpZiAoYmVnaW5fcGFnZV9pbmRleCA+PSBlbmRfcGFnZV9pbmRleCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgZGVjb21taXRfcmFuZ2UgPSBwYXNfcmFuZ2VfY3JlYXRlKGJlZ2luX3BhZ2VfaW5k
ZXggPDwgcGFnZV9zaXplX3NoaWZ0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbmRfcGFnZV9pbmRleCA8PCBwYWdlX3NpemVfc2hpZnQpOworCisgICAgaWYgKGJlZ2lu
X2xheW91dF9ub2RlKSB7CisgICAgICAgIGZvciAoaW5uZXJfbm9kZSA9IGJlZ2luX2xheW91dF9u
b2RlOworICAgICAgICAgICAgIGlubmVyX25vZGUgIT0gZW5kX2xheW91dF9ub2RlOworICAgICAg
ICAgICAgIGlubmVyX25vZGUgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dl
dF9uZXh0KGlubmVyX25vZGUpKQorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KGlubmVyX25vZGUsIGNhY2hlLCBkZWNvbW1p
dF9yYW5nZSk7CisgICAgfQorICAgIAorICAgIGZvciAocGFnZV9pbmRleCA9IGJlZ2luX3BhZ2Vf
aW5kZXg7IHBhZ2VfaW5kZXggPCBlbmRfcGFnZV9pbmRleDsgKytwYWdlX2luZGV4KSB7CisgICAg
ICAgIFBBU19BU1NFUlQocGFzX2JpdHZlY3Rvcl9nZXQoY2FjaGUtPnBhZ2VzX2NvbW1pdHRlZCwg
cGFnZV9pbmRleCkpOworICAgICAgICBwYXNfYml0dmVjdG9yX3NldChjYWNoZS0+cGFnZXNfY29t
bWl0dGVkLCBwYWdlX2luZGV4LCBmYWxzZSk7CisgICAgfQorCisgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgIHBhc19sb2coIkRlY29tbWl0dGluZyAlcC4uLiVwXG4iLCAodm9pZCopZGVjb21taXRf
cmFuZ2UuYmVnaW4sICh2b2lkKilkZWNvbW1pdF9yYW5nZS5lbmQpOworCisgICAgcGFzX3BhZ2Vf
bWFsbG9jX2RlY29tbWl0X3dpdGhvdXRfbXByb3RlY3QoCisgICAgICAgIChjaGFyKiljYWNoZSAr
IGRlY29tbWl0X3JhbmdlLmJlZ2luLCBwYXNfcmFuZ2Vfc2l6ZShkZWNvbW1pdF9yYW5nZSksIHBh
c19tYXlfbW1hcCk7CisKKyAgICBpZiAodmVyYm9zZSkgeworICAgICAgICBwYXNfbG9nKCJOdW0g
Y29tbWl0dGVkIHBhZ2VzIGluIHRoZSByYW5nZSB3ZSBqdXN0IGRlY29tbWl0dGVkOiAlenVcbiIs
CisgICAgICAgICAgICAgICAgcGFzX2NvdW50X2NvbW1pdHRlZF9wYWdlcygKKyAgICAgICAgICAg
ICAgICAgICAgKGNoYXIqKWNhY2hlICsgZGVjb21taXRfcmFuZ2UuYmVnaW4sCisgICAgICAgICAg
ICAgICAgICAgIHBhc19yYW5nZV9zaXplKGRlY29tbWl0X3JhbmdlKSwKKyAgICAgICAgICAgICAg
ICAgICAgJnBhc19sYXJnZV91dGlsaXR5X2ZyZWVfaGVhcF9hbGxvY2F0aW9uX2NvbmZpZykpOwor
ICAgIH0KKyNlbHNlIC8qIFBBU19PUyhEQVJXSU4pIC0+IHNvICFQQVNfT1MoREFSV0lOKSAqLwor
ICAgIFBBU19VTlVTRURfUEFSQU0oY2FjaGUpOworICAgIFBBU19VTlVTRURfUEFSQU0oYmVnaW5f
bGF5b3V0X25vZGUpOworICAgIFBBU19VTlVTRURfUEFSQU0oc3RhcnRfb2ZfcG9zc2libGVfZGVj
b21taXQpOworICAgIFBBU19VTlVTRURfUEFSQU0oZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0KTsK
KyAgICBQQVNfVU5VU0VEX1BBUkFNKGVuZF9sYXlvdXRfbm9kZSk7CisjZW5kaWYgLyogUEFTX09T
KERBUldJTikgLT4gc28gZW5kIG9mICFQQVNfT1MoREFSV0lOKSAqLworfQorCitzdGF0aWMgdm9p
ZCBzdG9wX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9uIGFsbG9jYXRv
cl9hY3Rpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxsb2NhdG9yX2luZGV4
IGFsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NhbF9h
bGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCogcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCogZGlkX3N1c3BlbmQpCit7CisgICAgc3RhdGljIGNvbnN0IGJvb2wgdmVyYm9zZSA9IGZhbHNl
OworICAgIAorICAgIGlmIChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVu
Z2VfcmVxdWVzdF9zdG9wX2FjdGlvbikgeworICAgICAgICB1aW50OF90IHNob3VsZF9zdG9wX2Nv
dW50OworICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgKHZlcmJvc2UpCisgICAgICAg
ICAgICBwYXNfbG9nKCJEb2luZyB0aGUgcmVxdWVzdCB0aGluZ3kuXG4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+ZGlydHkpIHsKKyAgICAgICAg
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBkaXJ0eS5c
biIpOworICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPmRpcnR5ID0gZmFsc2U7CisgICAgICAg
ICAgICAqcmVzdWx0ID0gdHJ1ZTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisg
ICAgICAgIC8qIEJhaWwgb3V0IGlmIGl0J3Mgbm8gbG9uZ2VyIGFjdGl2ZS4gKi8KKyAgICAgICAg
aWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5n
ZXJfZGF0YSkpIHsKKyAgICAgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgICAgIHBh
c19sb2coIkl0IHdhcyBlbXB0eS5cbiIpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgc2hvdWxkX3N0b3BfY291bnQgPSBzY2F2ZW5nZXJfZGF0YS0+c2hvdWxkX3N0
b3BfY291bnQ7CisgICAgICAgIGlmIChzaG91bGRfc3RvcF9jb3VudCA8IHBhc19sb2NhbF9hbGxv
Y2F0b3Jfc2hvdWxkX3N0b3BfY291bnRfZm9yX3N1c3BlbmQpIHsKKyAgICAgICAgICAgIHNjYXZl
bmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3VudCA9ICsrc2hvdWxkX3N0b3BfY291bnQ7CisgICAg
ICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIFBBU19BU1NFUlQoc2hvdWxkX3N0b3Bf
Y291bnQKKyAgICAgICAgICAgICAgICAgICAgICAgPD0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91
bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCk7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAg
ICAgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGNhY2hlLT5zaG91bGRfc3RvcF9iaXR2ZWN0b3Is
IGFsbG9jYXRvcl9pbmRleCwgdHJ1ZSk7CisgICAgICAgICAgICBjYWNoZS0+c2hvdWxkX3N0b3Bf
c29tZSA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICpyZXN1
bHQgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodmVy
Ym9zZSkKKyAgICAgICAgICAgICAgICBwYXNfbG9nKCJUb2xkIGl0IHRvIHN0b3AuXG4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgICAgICAgICAgICAgIAorICAgICAgICBQQVNfQVNTRVJUKHNob3VsZF9zdG9wX2NvdW50
CisgICAgICAgICAgICAgICAgICAgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9j
b3VudF9mb3Jfc3VzcGVuZCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgICAgICBwYXNfbG9nKCJEb2luZyBhY3R1YWwgc3RvcC5cbiIpOworICAgICAgICAgICAg
ICAgICAgICAKKyAgICAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxv
Y2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24pOworICAgIH0KKworICAgIGlmIChwYXNf
bG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX2lzX3N0b3BwZWQoc2NhdmVuZ2VyX2RhdGEp
KSB7CisgICAgICAgIGlmICh2ZXJib3NlKQorICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGVt
cHR5LlxuIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyNpZiBQQVNfT1MoREFSV0lOKQor
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJOZWVkIHRvIHN1c3BlbmQgZm9yIGFs
bG9jYXRvciAlcFxuIiwgc2NhdmVuZ2VyX2RhdGEpOworCisgICAgc3VzcGVuZChjYWNoZSwgZGlk
X3N1c3BlbmQpOworCisgICAgUEFTX0FTU0VSVCgqZGlkX3N1c3BlbmQpOworICAgICAgICAgICAg
ICAgIAorICAgIGlmIChzY2F2ZW5nZXJfZGF0YS0+aXNfaW5fdXNlKSB7CisgICAgICAgICpyZXN1
bHQgPSB0cnVlOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcGFzX2NvbXBpbGVyX2Zl
bmNlKCk7CisKKyAgICBQQVNfQVNTRVJUKCFzY2F2ZW5nZXJfZGF0YS0+aXNfaW5fdXNlKTsKKwor
ICAgIGlmICh2ZXJib3NlKQorICAgICAgICBwYXNfbG9nKCJTdG9wcGluZyBhbGxvY2F0b3IgJXAg
d2hpbGUgc3VzcGVuZGVkXG4iLCBzY2F2ZW5nZXJfZGF0YSk7CisgICAgaWYgKCFwYXNfbG9jYWxf
YWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRhX3N0b3AoCisgICAgICAgICAgICBzY2F2ZW5nZXJfZGF0
YSwgcGFzX2xvY2tfbG9ja19tb2RlX3RyeV9sb2NrLCBwYXNfbG9ja19pc19oZWxkKSkKKyAgICAg
ICAgKnJlc3VsdCA9IHRydWU7CisjZW5kaWYKK30KKworYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9hY3Rpb24gYWxsb2NhdG9yX2FjdGlv
biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19kZWFsbG9jYXRvcl9z
Y2F2ZW5nZV9hY3Rpb24gZGVhbGxvY2F0b3JfYWN0aW9uKQorewogICAgIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbm9kZSogbm9kZTsKICAgICBib29sIHJlc3VsdDsKKyAgICBzaXplX3QgcGFnZV9z
aXplOworICAgIHNpemVfdCBwYWdlX3NpemVfc2hpZnQ7CisKKyAgICBwYWdlX3NpemUgPSBwYXNf
cGFnZV9tYWxsb2NfYWxpZ25tZW50KCk7CisgICAgcGFnZV9zaXplX3NoaWZ0ID0gcGFzX3BhZ2Vf
bWFsbG9jX2FsaWdubWVudF9zaGlmdCgpOwogCiAgICAgLyogU2V0IHRoaXMgdG8gdHJ1ZSBpZiB3
ZSBlbmNvdW50ZXIgYSBzaXR1YXRpb24gd2hlcmUgd2UgdGhpbmsgdGhhdCBtb3JlIG1lbW9yeSBj
b3VsZAogICAgICAgIGJlIHJldHVybmVkIGlmIHRoaXMgd2FzIGNhbGxlZCBhZ2Fpbi4gKi8KQEAg
LTY2OCw3ICsxMDI4LDcgQEAgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFz
XwogICAgICAgICBpZiAoIWNhY2hlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAg
cGFzX2xvY2tfbG9jaygmbm9kZS0+bG9nX2ZsdXNoX2xvY2spOworICAgICAgICBwYXNfbG9ja19s
b2NrKCZub2RlLT5zY2F2ZW5nZXJfbG9jayk7CiAKICAgICAgICAgc3dpdGNoIChkZWFsbG9jYXRv
cl9hY3Rpb24pIHsKICAgICAgICAgY2FzZSBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0
aW9uOgpAQCAtNjkwLDE0ICsxMDUwLDI1IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9m
b3JfYWxsKHBhc18KICAgICAgICAgaWYgKGFsbG9jYXRvcl9hY3Rpb24gIT0gcGFzX2FsbG9jYXRv
cl9zY2F2ZW5nZV9ub19hY3Rpb24pIHsKICAgICAgICAgICAgIGJvb2wgZGlkX3N1c3BlbmQ7CiAg
ICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIGxheW91dF9ub2Rl
OworICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBiZWdpbl9s
YXlvdXRfbm9kZTsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBzdGFydF9vZl9wb3NzaWJsZV9kZWNv
bW1pdDsKKyAgICAgICAgICAgIHVpbnRwdHJfdCBiZWdpbl9wYWdlX2luZGV4OworICAgICAgICAg
ICAgdWludHB0cl90IGVuZF9wYWdlX2luZGV4OworICAgICAgICAgICAgdWludHB0cl90IHBhZ2Vf
aW5kZXg7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGRpZF9zdXNwZW5kID0gZmFsc2U7CiAK
LSAgICAgICAgICAgIFBBU19VTlVTRURfUEFSQU0oZGlkX3N1c3BlbmQpOworICAgICAgICAgICAg
YmVnaW5fbGF5b3V0X25vZGUgPSBOVUxMOworICAgICAgICAgICAgc3RhcnRfb2ZfcG9zc2libGVf
ZGVjb21taXQgPQorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0
X29mX2FsbG9jYXRvcihQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMp
OworCisgICAgICAgICAgICBQQVNfQVNTRVJUKCFkaWRfc3VzcGVuZCk7CiAKICAgICAgICAgICAg
IGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFDSF9BTExPQ0FUT1IobGF5b3V0
X25vZGUpKSB7CiAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBhbGxvY2F0b3Jf
aW5kZXg7CisgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBlbmRfYWxsb2NhdG9y
X2luZGV4OwogICAgICAgICAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2Rh
dGEqIHNjYXZlbmdlcl9kYXRhOworICAgICAgICAgICAgICAgIHBhc19kZWNvbW1pdF9leGNsdXNp
b25fcmFuZ2UgZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlOwogCiAgICAgICAgICAgICAgICAgYWxs
b2NhdG9yX2luZGV4ID0KICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobGF5b3V0X25vZGUpOwpA
QCAtNzA1LDkxICsxMDc2LDc2IEBAIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9mb3JfYWxs
KHBhc18KICAgICAgICAgICAgICAgICBpZiAoYWxsb2NhdG9yX2luZGV4ID49IGNhY2hlLT5hbGxv
Y2F0b3JfaW5kZXhfdXBwZXJfYm91bmQpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEgPSAocGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2
ZW5nZXJfZGF0YSopcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2Rp
cmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKLQotICAgICAgICAgICAgICAgIGlmIChhbGxv
Y2F0b3JfYWN0aW9uID09IHBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfcmVxdWVzdF9zdG9wX2FjdGlv
bikgewotICAgICAgICAgICAgICAgICAgICB1aW50OF90IHNob3VsZF9zdG9wX2NvdW50OwotICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJEb2luZyB0aGUgcmVxdWVzdCB0aGluZ3kuXG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgICAgIGlmIChzY2F2ZW5n
ZXJfZGF0YS0+ZGlydHkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ZXJib3NlKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2coIkl0IHdhcyBkaXJ0eS5cbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPmRpcnR5ID0gZmFsc2U7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
ICAgICAvKiBCYWlsIG91dCBpZiBpdCdzIG5vIGxvbmdlciBhY3RpdmUuICovCi0gICAgICAgICAg
ICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9pc19hY3Rp
dmUoc2NhdmVuZ2VyX2RhdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAodmVyYm9z
ZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfbG9nKCJJdCB3YXMgZW1wdHkuXG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgZW5kX2FsbG9jYXRvcl9pbmRleCA9CisgICAgICAgICAgICAg
ICAgICAgIGFsbG9jYXRvcl9pbmRleCArIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKGxheW91dF9ub2RlKTsKIAotICAgICAgICAgICAgICAg
ICAgICBzaG91bGRfc3RvcF9jb3VudCA9IHNjYXZlbmdlcl9kYXRhLT5zaG91bGRfc3RvcF9jb3Vu
dDsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHNob3VsZF9zdG9wX2NvdW50IDwgcGFzX2xvY2Fs
X2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgc2NhdmVuZ2VyX2RhdGEtPnNob3VsZF9zdG9wX2NvdW50ID0gKytzaG91bGRf
c3RvcF9jb3VudDsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgUEFTX0FTU0VSVChzaG91bGRfc3RvcF9jb3VudAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICA8PSBwYXNfbG9jYWxfYWxsb2NhdG9yX3Nob3VsZF9zdG9wX2NvdW50X2Zv
cl9zdXNwZW5kKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAg
ICAgICAgcGFzX2JpdHZlY3Rvcl9zZXQoY2FjaGUtPnNob3VsZF9zdG9wX2JpdHZlY3RvciwgYWxs
b2NhdG9yX2luZGV4LCB0cnVlKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlLT5zaG91
bGRfc3RvcF9zb21lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAotICAgICAgICAg
ICAgICAgICAgICAgICAgcmVzdWx0ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgIAot
ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcGFzX2xvZygiVG9sZCBpdCB0byBzdG9wLlxuIik7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAg
ICAgIHNjYXZlbmdlcl9kYXRhID0gKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEq
KQorICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9h
bGxvY2F0b3JfZGlyZWN0KGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZSA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAgICAgICAg
ICAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgsIGVuZF9hbGxvY2F0b3JfaW5kZXgpOwor
ICAgICAgICAgICAgICAgIFBBU19BU1NFUlQoc3RhcnRfb2ZfcG9zc2libGVfZGVjb21taXQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIDw9IGRlY29tbWl0X2V4Y2x1c2lvbl9yYW5nZS5zdGFy
dF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChzdGFy
dF9vZl9wb3NzaWJsZV9kZWNvbW1pdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgPD0gZGVj
b21taXRfZXhjbHVzaW9uX3JhbmdlLmVuZF9vZl9wb3NzaWJsZV9kZWNvbW1pdCk7CisgICAgICAg
ICAgICAgICAgaWYgKHBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2VfaXNfY29udGlndW91cyhk
ZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpKSB7CisgICAgICAgICAgICAgICAgICAgIHN0b3BfYWxs
b2NhdG9yKAorICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGUsIGFsbG9jYXRvcl9hY3Rpb24s
IGFsbG9jYXRvcl9pbmRleCwgc2NhdmVuZ2VyX2RhdGEsICZyZXN1bHQsICZkaWRfc3VzcGVuZCk7
CisKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2Vy
X2RhdGFfaXNfc3RvcHBlZChzY2F2ZW5nZXJfZGF0YSkpIHsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICghYmVnaW5fbGF5b3V0X25vZGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YmVnaW5fbGF5b3V0X25vZGUgPSBsYXlvdXRfbm9kZTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBBU19URVNUSU5HX0FTU0VSVCgK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMoCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBiZWdpbl9sYXlvdXRfbm9kZSkKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPCBhbGxvY2F0b3JfaW5kZXgpOworICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAg
ICAgZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlX2NyZWF0ZV9pbnZlcnRlZChkZWNvbW1pdF9l
eGNsdXNpb25fcmFuZ2UpOwogICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
ICAgIAotICAgICAgICAgICAgICAgICAgICBQQVNfQVNTRVJUKHNob3VsZF9zdG9wX2NvdW50Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91
bGRfc3RvcF9jb3VudF9mb3Jfc3VzcGVuZCk7Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgICAgICBw
YXNfbG9nKCJEb2luZyBhY3R1YWwgc3RvcC5cbiIpOwotICAgICAgICAgICAgICAgICAgICAKLSAg
ICAgICAgICAgICAgICAgICAgUEFTX0FTU0VSVChhbGxvY2F0b3JfYWN0aW9uID09IHBhc19hbGxv
Y2F0b3Jfc2NhdmVuZ2VfZm9yY2Vfc3RvcF9hY3Rpb24pOwotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGlmICghcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YV9p
c19hY3RpdmUoc2NhdmVuZ2VyX2RhdGEpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh2ZXJi
b3NlKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2xvZygiSXQgd2FzIGVtcHR5LlxuIik7
Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgIH0KIAotI2lm
IFBBU19PUyhEQVJXSU4pCi0gICAgICAgICAgICAgICAgaWYgKHZlcmJvc2UpCi0gICAgICAgICAg
ICAgICAgICAgIHBhc19sb2coIk5lZWQgdG8gc3VzcGVuZCBmb3IgYWxsb2NhdG9yICVwXG4iLCBz
Y2F2ZW5nZXJfZGF0YSk7Ci0gICAgICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKCFk
aWRfc3VzcGVuZCkgewotICAgICAgICAgICAgICAgICAgICBzdXNwZW5kKGNhY2hlKTsKLSAgICAg
ICAgICAgICAgICAgICAgZGlkX3N1c3BlbmQgPSB0cnVlOwotICAgICAgICAgICAgICAgIH0KLSAg
ICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICBpZiAoc2NhdmVuZ2VyX2RhdGEtPmlzX2lu
X3VzZSkgewotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0cnVlOwotICAgICAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBpZiAocGFzX2RlY29tbWl0X2V4Y2x1
c2lvbl9yYW5nZV9pc19pbnZlcnRlZChkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGNhY2hlLCBiZWdpbl9sYXlvdXRfbm9kZSwgc3RhcnRfb2ZfcG9zc2libGVfZGVj
b21taXQsCisgICAgICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Uu
ZW5kX29mX3Bvc3NpYmxlX2RlY29tbWl0LCBsYXlvdXRfbm9kZSk7CisgICAgICAgICAgICAgICAg
ICAgIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gZGVjb21taXRfZXhjbHVzaW9uX3Jhbmdl
LnN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0OworICAgICAgICAgICAgICAgICAgICBiZWdpbl9s
YXlvdXRfbm9kZSA9IE5VTEw7CiAgICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
aWYgKHZlcmJvc2UpCi0gICAgICAgICAgICAgICAgICAgIHBhc19sb2coIlN0b3BwaW5nIGFsbG9j
YXRvciAlcCB3aGlsZSBzdXNwZW5kZWRcbiIsIHNjYXZlbmdlcl9kYXRhKTsKLSAgICAgICAgICAg
ICAgICBpZiAoIXBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcCgKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHNjYXZlbmdlcl9kYXRhLCBwYXNfbG9ja19sb2NrX21vZGVfdHJ5
X2xvY2ssIHBhc19sb2NrX2lzX2hlbGQpKQotICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSB0
cnVlOwotI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKICNpZiBQQVNfT1MoREFS
V0lOKQogICAgICAgICAgICAgaWYgKGRpZF9zdXNwZW5kKQogICAgICAgICAgICAgICAgIHJlc3Vt
ZShjYWNoZSk7CiAjZW5kaWYKKworICAgICAgICAgICAgYmVnaW5fcGFnZV9pbmRleCA9CisgICAg
ICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29mXzIoc3RhcnRfb2ZfcG9zc2libGVf
ZGVjb21taXQsIHBhZ2Vfc2l6ZSkKKyAgICAgICAgICAgICAgICA+PiBwYWdlX3NpemVfc2hpZnQ7
CisgICAgICAgICAgICBlbmRfcGFnZV9pbmRleCA9CisgICAgICAgICAgICAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zaXplX2Zvcl9hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkoY2FjaGUtPmFs
bG9jYXRvcl9pbmRleF9jYXBhY2l0eSkKKyAgICAgICAgICAgICAgICA+PiBwYWdlX3NpemVfc2hp
ZnQ7CisKKyAgICAgICAgICAgIGZvciAocGFnZV9pbmRleCA9IGJlZ2luX3BhZ2VfaW5kZXg7IHBh
Z2VfaW5kZXggPCBlbmRfcGFnZV9pbmRleDsgKytwYWdlX2luZGV4KSB7CisgICAgICAgICAgICAg
ICAgaWYgKCFwYXNfYml0dmVjdG9yX2dldChjYWNoZS0+cGFnZXNfY29tbWl0dGVkLCBwYWdlX2lu
ZGV4KSkgeworICAgICAgICAgICAgICAgICAgICBkZWNvbW1pdF9hbGxvY2F0b3JfcmFuZ2UoCisg
ICAgICAgICAgICAgICAgICAgICAgICBjYWNoZSwgYmVnaW5fbGF5b3V0X25vZGUsIHN0YXJ0X29m
X3Bvc3NpYmxlX2RlY29tbWl0LAorICAgICAgICAgICAgICAgICAgICAgICAgcGFnZV9pbmRleCA8
PCBwYWdlX3NpemVfc2hpZnQsCisgICAgICAgICAgICAgICAgICAgICAgICBsYXlvdXRfbm9kZSk7
CisgICAgICAgICAgICAgICAgICAgIHN0YXJ0X29mX3Bvc3NpYmxlX2RlY29tbWl0ID0gKHBhZ2Vf
aW5kZXggKyAxKSA8PCBwYWdlX3NpemVfc2hpZnQ7CisgICAgICAgICAgICAgICAgICAgIGJlZ2lu
X2xheW91dF9ub2RlID0gTlVMTDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICAKKyAgICAgICAgICAgIGRlY29tbWl0X2FsbG9jYXRvcl9yYW5nZSgKKyAgICAg
ICAgICAgICAgICBjYWNoZSwgYmVnaW5fbGF5b3V0X25vZGUsIHN0YXJ0X29mX3Bvc3NpYmxlX2Rl
Y29tbWl0LAorICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3Jf
YWxsb2NhdG9yX2luZGV4X2NhcGFjaXR5KGNhY2hlLT5hbGxvY2F0b3JfaW5kZXhfY2FwYWNpdHkp
LAorICAgICAgICAgICAgICAgIGxheW91dF9ub2RlKTsKICAgICAgICAgfQogICAgICAgICAKLSAg
ICAgICAgcGFzX2xvY2tfdW5sb2NrKCZub2RlLT5sb2dfZmx1c2hfbG9jayk7CisgICAgICAgIHBh
c19sb2NrX3VubG9jaygmbm9kZS0+c2NhdmVuZ2VyX2xvY2spOwogICAgIH0KICAgICAKICAgICBw
YXNfaGVhcF9sb2NrX3VubG9jaygpOwpAQCAtODE4LDcgKzExNzQsNyBAQCB2b2lkIHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfc2hyaW5rKHBhc190CiB7CiAgICAgaWYgKCF0aHJlYWRfbG9jYWxfY2Fj
aGUpCiAgICAgICAgIHJldHVybjsKLSAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2Rl
YWxsb2NhdGlvbl9sb2codGhyZWFkX2xvY2FsX2NhY2hlLCBoZWFwX2xvY2tfaG9sZF9tb2RlKTsK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0
KHRocmVhZF9sb2NhbF9jYWNoZSwgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAgICAgcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9zdG9wX2xvY2FsX2FsbG9jYXRvcnModGhyZWFkX2xvY2FsX2NhY2hlLCBo
ZWFwX2xvY2tfaG9sZF9tb2RlKTsKICAgICBpZiAoaGVhcF9sb2NrX2hvbGRfbW9kZSA9PSBwYXNf
bG9ja19pc19ub3RfaGVsZCkKICAgICAgICAgcGFzX3NjYXZlbmdlcl9ub3RpZnlfZWxpZ2liaWxp
dHlfaWZfbmVlZGVkKCk7CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9w
YXNfdGhyZWFkX2xvY2FsX2NhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGli
cGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZS5oCShyZXZpc2lvbiAyODk1MDgp
CisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChj
KSAyMDE4LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChjKSAyMDE4LTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAicGFzX2Fs
bG9jYXRvcl9pbmRleC5oIgogI2luY2x1ZGUgInBhc19hbGxvY2F0b3Jfc2NhdmVuZ2VfYWN0aW9u
LmgiCiAjaW5jbHVkZSAicGFzX2RlYWxsb2NhdG9yX3NjYXZlbmdlX2FjdGlvbi5oIgorI2luY2x1
ZGUgInBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfZmFzdF90
bHMuaCIKICNpbmNsdWRlICJwYXNfaW50ZXJuYWxfY29uZmlnLmgiCiAjaW5jbHVkZSAicGFzX2xv
Y2FsX2FsbG9jYXRvci5oIgpAQCAtMzgsNyArMzksOSBAQAogI2luY2x1ZGUgPHB0aHJlYWQuaD4K
IAogI2lmIGRlZmluZWQoX19oYXNfaW5jbHVkZSkgJiYgX19oYXNfaW5jbHVkZSg8cHRocmVhZC9w
cml2YXRlLmg+KQorUEFTX0JFR0lOX0VYVEVSTl9DOwogI2luY2x1ZGUgPHB0aHJlYWQvcHJpdmF0
ZS5oPgorUEFTX0VORF9FWFRFUk5fQzsKICNkZWZpbmUgUEFTX0hBVkVfUFRIUkVBRF9QUklWQVRF
IDEKICNlbHNlCiAjZGVmaW5lIFBBU19IQVZFX1BUSFJFQURfUFJJVkFURSAwCkBAIC04MSw2ICs4
NCw3IEBAIHN0cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlIHsKICAgICBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX25vZGUqIG5vZGU7CiAKICAgICB1bnNpZ25lZCogc2hvdWxkX3N0b3BfYml0dmVj
dG9yOworICAgIHVuc2lnbmVkKiBwYWdlc19jb21taXR0ZWQ7IC8qIFRoaXMgaXMgYSBiaXR2ZWN0
b3IsIHByb3RlY3RlZCBieSB0aGUgc2NhdmVuZ2VyIGxvY2suICovCiAgICAgCiAgICAgcHRocmVh
ZF90IHRocmVhZDsKICAgICAKQEAgLTE4MCw2ICsxODQsNDAgQEAgUEFTX0FQSSBwYXNfbG9jYWxf
YWxsb2NhdG9yX3Jlc3VsdCBwYXNfdAogICAgIHVuc2lnbmVkIGFsbG9jYXRvcl9pbmRleCwKICAg
ICBwYXNfbG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKK3N0YXRpYyBQQVNf
QUxXQVlTX0lOTElORSB1aW50cHRyX3QgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9vZmZzZXRfb2Zf
YWxsb2NhdG9yKHBhc19hbGxvY2F0b3JfaW5kZXggaW5kZXgpCit7CisgICAgcmV0dXJuIFBBU19P
RkZTRVRPRihwYXNfdGhyZWFkX2xvY2FsX2NhY2hlLCBsb2NhbF9hbGxvY2F0b3JzKSArICh1aW50
cHRyX3QpaW5kZXggKiBzaXplb2YodWludDY0X3QpOworfQorCitQQVNfQVBJIGJvb2wgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9pc19jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhy
ZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYmVnaW5fYWxsb2NhdG9yX2luZGV4LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19hbGxvY2F0
b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7CisKKy8qIFJldHVybnMgYSBkZXNjcmlwdGlv
biBvZiB3aGF0IHBhcnRzIG9mIHRoZSBhbGxvY2F0b3IgYXJlIGF2YWlsYWJsZSBmb3IgZGVjb21t
aXQsIGluIHRoZSBzZW5zZSB0aGF0IHRoZXkKKyAgIGFyZSBjb21taXR0ZWQgYW5kIGFyZSBsZWdh
bCB0byBkZWNvbW1pdC4gVGhlIHZhbHVlcyBpbiB0aGUgcmFuZ2UgYXJlIG9mZnNldHMgZnJvbSB0
aGUgYmFzZSBvZiB0aGUgY2FjaGUuCisgICAKKyAgIElmIHRoaXMgYWxsb2NhdG9yIGlzIHRvdGFs
bHkgY29tbWl0dGVkOiB3ZSdsbCBnZXQgYSBjb250aWd1b3VzIHJhbmdlIHdpdGggc3RhcnQgPSBz
dGFydCBvZiBhbGxvY2F0b3IsIGVuZAorICAgPSBlbmQgb2YgYWxsb2NhdG9yLgorICAgCisgICBJ
ZiB0aGlzIGFsbG9jYXRvciBpcyBwYXJ0bHkgZGVjb21taXR0ZWQ6IHdlJ2xsIGdldCBhbiBpbnZl
cnRlZCByYW5nZSB3aXRoIHN0YXJ0ID0gdGhlIGZpcnN0IGJ5dGUgYWZ0ZXIgdGhlCisgICBsYXN0
IGRlY29tbWl0dGVkIGJ5dGUgaW4gdGhlIHBhZ2UsIGVuZCA9IHRoZSBmaXJzdCBkZWNvbW1pdHRl
ZCBieXRlIGluIHRoZSBwYWdlLgorCisgICBTbyBlaXRoZXIgcGFzX2RlY29tbWl0X2V4Y2x1c2lv
bl9yYW5nZV9pc19jb250aWd1b3VzKCkgb3IgIXBhc19kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2Vf
aXNfaW52ZXJ0ZWQoKSB0ZWxscworICAgdXMgaWYgdGhlIGFsbG9jYXRvciBpcyBjb21taXR0ZWQu
IEl0J3MgaW1wb3NzaWJsZSBmb3IgdGhlIHJldHVybmVkIHJhbmdlIHRvIGJlIGVtcHR5LiAqLwor
UEFTX0FQSSBwYXNfZGVjb21taXRfZXhjbHVzaW9uX3JhbmdlIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfY29tcHV0ZV9kZWNvbW1pdF9leGNsdXNpb25fcmFuZ2UoCisgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYmVn
aW5fYWxsb2NhdG9yX2luZGV4LAorICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRv
cl9pbmRleCk7CisKKy8qIE11c3QgaG9sZCB0aGUgc2NhdmVuZ2VyX2xvY2sgaWYgdGhpcyBpcyBj
YWxsZWQgYW5kIHRoZXJlIGlzIHNvbWV0aGluZyB0byBjb21taXQuICovCitQQVNfQVBJIHZvaWQg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBiZWdpbl9hbGxvY2F0
b3JfaW5kZXgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleCk7CisKK1BBU19B
UEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2RpZF9yZWNvbW1pdF9hY2NpZGVudGFsbHko
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfYWxs
b2NhdG9yX2luZGV4IGJlZ2luX2FsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2FsbG9jYXRvcl9p
bmRleCBlbmRfYWxsb2NhdG9yX2luZGV4KTsKKwogc3RhdGljIFBBU19BTFdBWVNfSU5MSU5FIHZv
aWQqCiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0X3dp
dGhvdXRfYW55X2NoZWNrc193aGF0c29ldmVyKAogICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUq
IHRocmVhZF9sb2NhbF9jYWNoZSwKQEAgLTMxMyw2ICszNTEsOSBAQCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0CiAgICAgICAgIGNhY2hlLCBhbGxvY2F0b3JfaW5kZXgs
IHBhc19sb2NrX2lzX25vdF9oZWxkKTsKIH0KIAorUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfYWxsb2NhdG9yX2luZGV4X2Zvcl9hbGxvY2F0b3IocGFz
X3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lk
KiBhbGxvY2F0b3IpOworCiBQQVNfQVBJIHVuc2lnbmVkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
Z2V0X251bV9hbGxvY2F0b3JzKHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKIAogUEFT
X0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc3RvcF9sb2NhbF9hbGxvY2F0b3JzKApA
QCAtMzI3LDYgKzM2OCw5IEBAIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3N0
b3AKIFBBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlv
bl9sb2coCiAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZSogdGhyZWFkX2xvY2FsX2NhY2hlLAog
ICAgIHBhc19sb2NrX2hvbGRfbW9kZSBoZWFwX2xvY2tfaG9sZF9tb2RlKTsKK1BBU19BUEkgdm9p
ZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2dfZGlyZWN0KAor
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIHRocmVhZF9sb2NhbF9jYWNoZSwKKyAgICBwYXNf
bG9ja19ob2xkX21vZGUgaGVhcF9sb2NrX2hvbGRfbW9kZSk7CiAKIC8qIFJldHVybnMgdHJ1ZSBp
ZiBpdCdzIHBvc3NpYmxlIHRoYXQgd2UnbGwgYmUgYWJsZSB0byByZXR1cm4gbW9yZSBtZW1vcnkg
aWYgdGhpcyB3YXMgY2FsbGVkCiAgICBhZ2Fpbi4gKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXQuYwkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuYwkod29ya2luZyBjb3B5
KQpAQCAtNDAsNiArNDAsMTAgQEAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBw
YXNfdAogcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9sYXN0X25vZGUgPSBOVUxMOwogcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCA9CiAgICAgUEFT
X0xPQ0FMX0FMTE9DQVRPUl9VTlNFTEVDVEVEX05VTV9JTkRJQ0VTOworcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hh
c2h0YWJsZV9pbnN0YW5jZSA9CisgICAgUEFTX0hBU0hUQUJMRV9JTklUSUFMSVpFUjsKKworUEFT
X0RFRklORV9MT0NLKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZSk7CiAK
IHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfYWRkX25v
ZGUocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKQogewpAQCAtNDcsNiAr
NTEsNyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxfY2FjCiAKICAgICBw
YXNfYWxsb2NhdG9yX2luZGV4IHJlc3VsdDsKICAgICBib29sIGRpZF9vdmVyZmxvdzsKKyAgICBw
YXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgY29tcGFjdF9ub2RlOwog
CiAgICAgcGFzX2hlYXBfbG9ja19hc3NlcnRfaGVsZCgpOwogCkBAIC03MiwxMiArNzcsMTIgQEAg
cGFzX2FsbG9jYXRvcl9pbmRleCBwYXNfdGhyZWFkX2xvY2FsX2NhYwogICAgIGlmICh2ZXJib3Nl
KSB7CiAgICAgICAgIHBhc19sb2coInBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2FkZF9u
b2RlOiBub2RlID0gJXAsIGFsbG9jYXRvcl9pbmRleCA9ICV1LCAiCiAgICAgICAgICAgICAgICAg
Im51bV9hbGxvY2F0b3JfaW5kaWNlcyA9ICV1XG4iLAotICAgICAgICAgICAgICAgIG5vZGUsIHJl
c3VsdCwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2Vz
KG5vZGUpKTsKKyAgICAgICAgICAgICAgICBub2RlLCByZXN1bHQsIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpKTsKICAgICB9CiAK
ICAgICBkaWRfb3ZlcmZsb3cgPSBfX2J1aWx0aW5fYWRkX292ZXJmbG93KAogICAgICAgICBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9uZXh0X2FsbG9jYXRvcl9pbmRleCwKLSAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUp
LAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0
b3JfaW5kaWNlcyhub2RlKSwKICAgICAgICAgJnBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25leHRfYWxsb2NhdG9yX2luZGV4KTsKICAgICBQQVNfQVNTRVJUKCFkaWRfb3ZlcmZsb3cpOwog
CkBAIC05NCw2ICs5OSwxMyBAQCBwYXNfYWxsb2NhdG9yX2luZGV4IHBhc190aHJlYWRfbG9jYWxf
Y2FjCiAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfc2V0X25leHQo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlLCBub2RlKTsKICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlID0gbm9kZTsKICAgICB9CisK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9ja19sb2NrKCk7
CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0b3JlKCZj
b21wYWN0X25vZGUsIG5vZGUpOworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2hh
c2h0YWJsZV9hZGRfbmV3KAorICAgICAgICAmcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
aGFzaHRhYmxlX2luc3RhbmNlLCBjb21wYWN0X25vZGUsCisgICAgICAgIE5VTEwsICZwYXNfbGFy
Z2VfdXRpbGl0eV9mcmVlX2hlYXBfYWxsb2NhdGlvbl9jb25maWcpOworICAgIHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X2hhc2h0YWJsZV9sb2NrX3VubG9jaygpOwogICAgIAogICAgIHJl
dHVybiByZXN1bHQ7CiB9CkBAIC0xMzQsNCArMTQ2LDE2IEBAIHBhc19hbGxvY2F0b3JfaW5kZXgg
cGFzX3RocmVhZF9sb2NhbF9jYWMKICAgICByZXR1cm4gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfYWRkX25vZGUocGFzX3dyYXBfbG9jYWxfdmlld19jYWNoZV9ub2RlKGNhY2hlX25vZGUp
KTsKIH0KIAorcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9nZXRfbm9kZV9mb3JfaW5kZXgocGFzX2FsbG9jYXRvcl9pbmRleCBp
bmRleCkKK3sKKyAgICBwYXNfY29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUg
Y29tcGFjdF9ub2RlOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRh
YmxlX2xvY2tfbG9jaygpOworICAgIGNvbXBhY3Rfbm9kZSA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2hhc2h0YWJsZV9nZXQoCisgICAgICAgICZwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
X2xheW91dF9oYXNodGFibGVfaW5zdGFuY2UsIGluZGV4KTsKKyAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9oYXNodGFibGVfbG9ja191bmxvY2soKTsKKworICAgIHJldHVybiBwYXNf
Y29tcGFjdF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbG9hZCgmY29tcGFjdF9ub2Rl
KTsKK30KKwogI2VuZGlmIC8qIExJQlBBU19FTkFCTEVEICovCkluZGV4OiBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0LmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2luY2x1ZGUgInBhc19hbGxvY2F0b3JfaW5kZXgu
aCIKICNpbmNsdWRlICJwYXNfY29uZmlnLmgiCisjaW5jbHVkZSAicGFzX2hhc2h0YWJsZS5oIgor
I2luY2x1ZGUgInBhc19sb2NrLmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfZW50cnkuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlLmgiCiAjaW5jbHVkZSAicGFzX3V0aWxzLmgiCiAKQEAgLTM2LDYgKzM5LDE2IEBAIFBBU19C
RUdJTl9FWFRFUk5fQzsKIFBBU19BUEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZmlyc3Rfbm9kZTsKIFBBU19B
UEkgZXh0ZXJuIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbGFzdF9ub2RlOwogCitQQVNfQ1JFQVRFX0hBU0hUQUJMRShwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9oYXNodGFibGUsCisgICAgICAgICAgICAgICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeSwKKyAgICAgICAgICAgICAgICAg
ICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2tleSk7CisKKy8qIExvY2sgdXNlZCBp
bnRlcm5hbGx5IGZvciBhY2Nlc3NpbmcgdGhlIGhhc2h0YWJsZV9pbnN0YW5jZS4gWW91IGRvbid0
IGhhdmUgdG8gdXNlIHRoaXMgbG9jayB1bmxlc3MgeW91CisgICBhY2Nlc3MgdGhlIGhhc2h0YWJs
ZV9pbnN0YW5jZSBkaXJlY3RseS4gKi8KK1BBU19ERUNMQVJFX0xPQ0socGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlKTsKKworUEFTX0FQSSBleHRlcm4gcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfaGFzaHRhYmxlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2hhc2h0YWJsZV9pbnN0YW5jZTsKKwogLyogQ2xpZW50cyBjYW4gdXNlIHRoaXMgdG8gZm9yY2Ug
dGhlIG5leHQgY2FsbCB0byBhZGQgdG8gZ28gdG8gdGhpcyBpbmRleC4gKi8KIFBBU19BUEkgZXh0
ZXJuIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbmV4
dF9hbGxvY2F0b3JfaW5kZXg7CiAKQEAgLTUxLDYgKzY0LDEwIEBAIFBBU19BUEkgcGFzX2FsbG9j
YXRvcl9pbmRleCBwYXNfdGhyZWFkX2wKIFBBU19BUEkgcGFzX2FsbG9jYXRvcl9pbmRleCBwYXNf
dGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9hZGRfdmlld19jYWNoZSgKICAgICBwYXNfc2VncmVn
YXRlZF9zaXplX2RpcmVjdG9yeSogZGlyZWN0b3J5KTsKIAorLyogWW91IGRvbid0IG5lZWQgdG8g
aG9sZCBhbnkgbG9ja3MgdG8gdXNlIHRoaXMgYmVjYXVzZSB0aGlzIHVzZXMgaXRzIG93biBsb2Nr
IGJlaGluZCB0aGUgc2NlbmVzLiAqLworUEFTX0FQSSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2dldF9ub2RlX2Zvcl9pbmRl
eCgKKyAgICBwYXNfYWxsb2NhdG9yX2luZGV4IGluZGV4KTsKKwogI2RlZmluZSBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihub2RlKSBcCiAgICAgbm9kZSA9IHBh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2ZpcnN0X25vZGU7IFwKICAgICBub2RlOyBcCklu
ZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9lbnRyeS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5LmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfZW50cnkuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDg4IEBACisv
KgorICogQ29weXJpZ2h0IChjKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgUEFT
X1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRU5UUllfSAorI2RlZmluZSBQQVNfVEhSRUFEX0xP
Q0FMX0NBQ0hFX0xBWU9VVF9FTlRSWV9ICisKKyNpbmNsdWRlICJwYXNfYWxsb2NhdG9yX2luZGV4
LmgiCisjaW5jbHVkZSAicGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
LmgiCisKK1BBU19CRUdJTl9FWFRFUk5fQzsKKwordHlwZWRlZiBwYXNfY29tcGFjdF90aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50
cnk7Cit0eXBlZGVmIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfa2V5OworCitzdGF0aWMgaW5saW5lIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X2VudHJ5IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X2VudHJ5X2NyZWF0ZV9lbXB0eSh2
b2lkKQoreworICAgIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBy
ZXN1bHQ7CisgICAgcGFzX2NvbXBhY3RfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3N0
b3JlKCZyZXN1bHQsIE5VTEwpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3N0YXRpYyBpbmxp
bmUgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkgcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfZW50cnlfY3JlYXRlX2RlbGV0ZWQodm9pZCkKK3sKKyAgICBwYXNfY29tcGFj
dF90aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgcmVzdWx0OworICAgIHBhc19jb21wYWN0
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZSgmcmVzdWx0LCAocGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSkodWludHB0cl90KTEpOworICAgIHJldHVybiByZXN1
bHQ7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9lbnRyeV9pc19lbXB0eV9vcl9kZWxldGVkKAorICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
bGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90KXBhc19jb21wYWN0
X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkgPD0gKHVpbnRwdHJf
dCkxOworfQorCitzdGF0aWMgaW5saW5lIGJvb2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfZW50cnlfaXNfZW1wdHkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnkgZW50
cnkpCit7CisgICAgcmV0dXJuIHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9pc19udWxsKCZlbnRyeSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgYm9vbCBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2xheW91dF9lbnRyeV9pc19kZWxldGVkKHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2VudHJ5IGVudHJ5KQoreworICAgIHJldHVybiAodWludHB0cl90KXBhc19jb21w
YWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkKCZlbnRyeSkgPT0gKHVpbnRw
dHJfdCkxOworfQorCitzdGF0aWMgaW5saW5lIHBhc19hbGxvY2F0b3JfaW5kZXggcGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV9sYXlvdXRfZW50cnlfZ2V0X2tleSgKKyAgICBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9lbnRyeSBlbnRyeSkKK3sKKyAgICByZXR1cm4gcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRfYWxsb2NhdG9yX2luZGV4X2dlbmVyaWMoCisgICAgICAg
IHBhc19jb21wYWN0X3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9sb2FkX25vbl9udWxs
KCZlbnRyeSkpOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X2tleV9nZXRfaGFzaChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9r
ZXkga2V5KQoreworICAgIHJldHVybiBwYXNfaGFzaDMyKGtleSk7Cit9CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9rZXlfaXNfZXF1YWwocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfa2V5IGEsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfbGF5b3V0X2tleSBiKQoreworICAgIHJldHVybiBhID09IGI7Cit9CisKK1BBU19FTkRfRVhU
RVJOX0M7CisKKyNlbmRpZiAvKiBQQVNfVEhSRUFEX0xPQ0FMX0NBQ0hFX0xBWU9VVF9FTlRSWV9I
ICovCisKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9s
aWJwYXMvc3JjL2xpYnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlLmMJKHJl
dmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190
aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtNTAsNyAr
NTAsNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9kCiB9CiAKIHBh
c19hbGxvY2F0b3JfaW5kZXgKLXBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X251bV9hbGxv
Y2F0b3JfaW5kaWNlcyhwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCitw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0b3JfaW5kaWNlcyhw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUpCiB7CiAgICAgcGFzX3NlZ3Jl
Z2F0ZWRfc2l6ZV9kaXJlY3RvcnkqIGRpcmVjdG9yeTsKIApAQCAtMTMxLDkgKzEzMSwxMSBAQCB2
b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAgICAgcGFzX2NvbXBhY3Rf
YXRvbWljX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9zdG9yZShuZXh0X3B0cihub2Rl
KSwgbmV4dF9ub2RlKTsKIH0KIAotdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2NvbnN0cnVjdChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIGNhY2hlKQordm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKIHsKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQobm9kZSwg
Y2FjaGUpOworICAgIAogICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3JlcHJlc2VudHNfYWxsb2NhdG9yKG5vZGUpKSB7CiAgICAgICAgIHBhc19sb2NhbF9hbGxvY2F0
b3JfY29uc3RydWN0KAogICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24oCkBAIC0xNTQsMTkgKzE1Niwz
NCBAQCB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBmcm9tX2NhY2hlKQogewogICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2luZGV4
OworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRh
OwogCisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2lz
X2NvbW1pdHRlZChub2RlLCB0b19jYWNoZSkpOworICAgIAogICAgIGFsbG9jYXRvcl9pbmRleCA9
IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9n
ZW5lcmljKG5vZGUpOwogICAgIAorICAgIGlmICghcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlv
dXRfbm9kZV9pc19jb21taXR0ZWQobm9kZSwgZnJvbV9jYWNoZSkpIHsKKyAgICAgICAgcGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9jb21taXRfYW5kX2NvbnN0cnVjdChub2RlLCB0
b19jYWNoZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgICAgIAorICAgIHNjYXZlbmdl
cl9kYXRhID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVj
dChmcm9tX2NhY2hlLCBhbGxvY2F0b3JfaW5kZXgpOworCisgICAgaWYgKHNjYXZlbmdlcl9kYXRh
LT5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0ZWRfa2luZCkgeworICAgICAg
ICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0
KG5vZGUsIHRvX2NhY2hlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICAKICAgICBpZiAo
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihu
b2RlKSkgewogICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9yX21vdmUoCiAgICAgICAgICAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2dldF9sb2NhbF9hbGxvY2F0b3JfZGlyZWN0X2Zvcl9pbml0
aWFsaXphdGlvbih0b19jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSwKLSAgICAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRvcl9kaXJlY3QoZnJvbV9jYWNoZSwg
YWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgICAgICAocGFzX2xvY2FsX2FsbG9jYXRvciopc2Nh
dmVuZ2VyX2RhdGEpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgcGFzX2xvY2FsX3Zp
ZXdfY2FjaGVfbW92ZSgKICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9jYWxf
YWxsb2NhdG9yX2RpcmVjdF9mb3JfaW5pdGlhbGl6YXRpb24odG9fY2FjaGUsIGFsbG9jYXRvcl9p
bmRleCksCi0gICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3QoZnJvbV9jYWNoZSwgYWxsb2NhdG9yX2luZGV4KSk7CisgICAgICAgIChwYXNfbG9j
YWxfdmlld19jYWNoZSopc2NhdmVuZ2VyX2RhdGEpOwogfQogCiB2b2lkIHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGVfc3RvcChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlIG5vZGUsCkBAIC0xOTMsNCArMjEwLDU2IEBAIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNo
ZV9sYXlvdXRfbm9kZV8KICAgICBwYXNfbG9jYWxfdmlld19jYWNoZV9zdG9wKGFsbG9jYXRvciwg
cGFnZV9sb2NrX21vZGUpOwogfQogCitib29sIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfaXNfY29tbWl0dGVkKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9k
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUpCit7CisgICAgcGFzX2FsbG9jYXRvcl9pbmRl
eCBhbGxvY2F0b3JfaW5kZXg7CisKKyAgICBhbGxvY2F0b3JfaW5kZXggPSBwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2dldF9hbGxvY2F0b3JfaW5kZXhfZ2VuZXJpYyhub2RlKTsK
KworICAgIHJldHVybiBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2lzX2NvbW1pdHRlZCgKKyAgICAg
ICAgY2FjaGUsCisgICAgICAgIGFsbG9jYXRvcl9pbmRleCwKKyAgICAgICAgYWxsb2NhdG9yX2lu
ZGV4ICsgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9udW1fYWxsb2NhdG9yX2lu
ZGljZXMobm9kZSkpOworfQorCit2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGVfZW5zdXJlX2NvbW1pdHRlZChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5v
ZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSkKK3sKKyAgICBwYXNfYWxsb2NhdG9y
X2luZGV4IGFsbG9jYXRvcl9pbmRleDsKKworICAgIGFsbG9jYXRvcl9pbmRleCA9IHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKG5v
ZGUpOworCisgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9lbnN1cmVfY29tbWl0dGVkKAorICAg
ICAgICBjYWNoZSwKKyAgICAgICAgYWxsb2NhdG9yX2luZGV4LAorICAgICAgICBhbGxvY2F0b3Jf
aW5kZXggKyBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX251bV9hbGxvY2F0b3Jf
aW5kaWNlcyhub2RlKSk7Cit9CisKK3ZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZV9wcmVwYXJlX3RvX2RlY29tbWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25v
ZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX3Jhbmdl
IGRlY29tbWl0X3JhbmdlKQoreworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggYWxsb2NhdG9yX2lu
ZGV4OworICAgIHBhc19hbGxvY2F0b3JfaW5kZXggZW5kX2FsbG9jYXRvcl9pbmRleDsKKyAgICBw
YXNfcmFuZ2UgYWxsb2NhdG9yX3JhbmdlOworICAgIHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVu
Z2VyX2RhdGEqIHNjYXZlbmdlcl9kYXRhOworCisgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xv
Y2FsX2NhY2hlX2xheW91dF9ub2RlX2lzX2NvbW1pdHRlZChub2RlLCBjYWNoZSkpOworCisgICAg
YWxsb2NhdG9yX2luZGV4ID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9nZXRf
YWxsb2NhdG9yX2luZGV4X2dlbmVyaWMobm9kZSk7CisgICAgZW5kX2FsbG9jYXRvcl9pbmRleCA9
IGFsbG9jYXRvcl9pbmRleCArIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfbnVt
X2FsbG9jYXRvcl9pbmRpY2VzKG5vZGUpOworICAgIGFsbG9jYXRvcl9yYW5nZSA9IHBhc19yYW5n
ZV9jcmVhdGUoCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29mX2FsbG9j
YXRvcihhbGxvY2F0b3JfaW5kZXgpLAorICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX29m
ZnNldF9vZl9hbGxvY2F0b3IoZW5kX2FsbG9jYXRvcl9pbmRleCkpOworCisgICAgaWYgKCFwYXNf
cmFuZ2Vfb3ZlcmxhcHMoYWxsb2NhdG9yX3JhbmdlLCBkZWNvbW1pdF9yYW5nZSkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBzY2F2ZW5nZXJfZGF0YSA9IChwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhKikKKyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9nZXRfbG9j
YWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9yX2luZGV4KTsKKworICAgIHBhc19s
b2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfcHJlcGFyZV90b19kZWNvbW1pdChzY2F2ZW5n
ZXJfZGF0YSk7Cit9CisKICNlbmRpZiAvKiBMSUJQQVNfRU5BQkxFRCAqLwpJbmRleDogU291cmNl
L2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRf
bm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bh
c190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUuaAkocmV2aXNpb24gMjg5NTA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRl
ICJwYXNfYWxsb2NhdG9yX2luZGV4LmgiCiAjaW5jbHVkZSAicGFzX2xvY2suaCIKKyNpbmNsdWRl
ICJwYXNfcmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2tpbmQuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtMTM5LDcgKzE0MCw3IEBA
IFBBU19BUEkgcGFzX3NlZ3JlZ2F0ZWRfc2l6ZV9kaXJlY3RvcnkqCiBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2dldF9kaXJlY3RvcnkocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9s
YXlvdXRfbm9kZSBub2RlKTsKIAogUEFTX0FQSSBwYXNfYWxsb2NhdG9yX2luZGV4Ci1wYXNfdGhy
ZWFkX2xvY2FsX2NhY2hlX2xheW91dF9udW1fYWxsb2NhdG9yX2luZGljZXMocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlKTsKK3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGVfbnVtX2FsbG9jYXRvcl9pbmRpY2VzKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5
b3V0X25vZGUgbm9kZSk7CiAKIHN0YXRpYyBpbmxpbmUgYm9vbAogcGFzX3RocmVhZF9sb2NhbF9j
YWNoZV9sYXlvdXRfbm9kZV9yZXByZXNlbnRzX2FsbG9jYXRvcihwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIG5vZGUpCkBAIC0xNzYsOCArMTc3LDggQEAgUEFTX0FQSSB2b2lkCiBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3NldF9uZXh0KHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBuZXh0X25v
ZGUpOwogCi1QQVNfQVBJIHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9j
b25zdHJ1Y3QocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190
aHJlYWRfbG9jYWxfY2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2Fs
X2NhY2hlX2xheW91dF9ub2RlX2NvbW1pdF9hbmRfY29uc3RydWN0KHBhc190aHJlYWRfbG9jYWxf
Y2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2Fj
aGUqIGNhY2hlKTsKIAogUEFTX0FQSSB2b2lkIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0
X25vZGVfbW92ZShwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlIG5vZGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJl
YWRfbG9jYWxfY2FjaGUqIHRvX2NhY2hlLApAQCAtMTg4LDYgKzE4OSwxNCBAQCBQQVNfQVBJIHZv
aWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrX2xvY2tfbW9kZSBwYWdlX2xvY2tf
bW9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFzX2xvY2tfaG9sZF9tb2RlIGhlYXBfbG9ja19ob2xkX21vZGUpOwogCitQQVNfQVBJIGJv
b2wgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9pc19jb21taXR0ZWQocGFzX3Ro
cmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxf
Y2FjaGUqIGNhY2hlKTsKK1BBU19BUEkgdm9pZCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91
dF9ub2RlX2Vuc3VyZV9jb21taXR0ZWQocGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9k
ZSBub2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSk7CitQQVNfQVBJ
IHZvaWQgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXRfbm9kZV9wcmVwYXJlX3RvX2RlY29t
bWl0KHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGUgbm9kZSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
cGFzX3RocmVhZF9sb2NhbF9jYWNoZSogY2FjaGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19yYW5nZSBkZWNv
bW1pdF9yYW5nZSk7CisKIFBBU19FTkRfRVhURVJOX0M7CiAKICNlbmRpZiAvKiBQQVNfVEhSRUFE
X0xPQ0FMX0NBQ0hFX0xBWU9VVF9OT0RFX0ggKi8KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBh
cy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZS5jCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJlYWRfbG9jYWxfY2FjaGVf
bm9kZS5jCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xp
YnBhcy9wYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUuYwkod29ya2luZyBjb3B5KQpAQCAtNjks
NyArNjksNyBAQCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUqIHBhc190aHJlYWRfCiAgICAg
ICAgIHJlc3VsdC0+bmV4dCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbm9kZV9maXJzdDsKIAog
ICAgICAgICBwYXNfbG9ja19jb25zdHJ1Y3QoJnJlc3VsdC0+cGFnZV9sb2NrKTsKLSAgICAgICAg
cGFzX2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPmxvZ19mbHVzaF9sb2NrKTsKKyAgICAgICAgcGFz
X2xvY2tfY29uc3RydWN0KCZyZXN1bHQtPnNjYXZlbmdlcl9sb2NrKTsKIAogICAgICAgICBpZiAo
dmVyYm9zZSkKICAgICAgICAgICAgIHBhc19sb2coIlRMQyBwYWdlIGxvY2s6ICVwXG4iLCAmcmVz
dWx0LT5wYWdlX2xvY2spOwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMv
cGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxs
b2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3RocmVhZF9sb2NhbF9jYWNoZV9ub2RlLmgJKHJldmlz
aW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190aHJl
YWRfbG9jYWxfY2FjaGVfbm9kZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIHN0
cnVjdCBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX25vZGUgewogICAgIAogICAgIHBhc19sb2NrIHBh
Z2VfbG9jazsKICAgICAKLSAgICBwYXNfbG9jayBsb2dfZmx1c2hfbG9jazsKKyAgICBwYXNfbG9j
ayBzY2F2ZW5nZXJfbG9jazsKICAgICAKICAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNo
ZTsKIH07CkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdHJ5X2Fs
bG9jYXRlX2ludHJpbnNpYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9z
cmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50cmluc2ljLmgJKHJldmlzaW9uIDI4OTUwOCkK
KysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc190cnlfYWxsb2NhdGVfaW50
cmluc2ljLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw3ICsxNDgsOCBAQCBwYXNfdHJ5X2FsbG9j
YXRlX2ludHJpbnNpY19pbXBsX2Nhc3VhbF9jCiAKICAgICAgICAgYWxsb2NhdG9yID0gKHBhc19s
b2NhbF9hbGxvY2F0b3IqKWFsbG9jYXRvcl9yZXN1bHQuYWxsb2NhdG9yOwogCi0gICAgICAgIFBB
U19URVNUSU5HX0FTU0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0
b3ItPm9iamVjdF9zaXplID49IGFsaWduZWRfc2l6ZSk7CisgICAgICAgIFBBU19URVNUSU5HX0FT
U0VSVCghYWxsb2NhdG9yX3Jlc3VsdC5kaWRfc3VjY2VlZCB8fCBhbGxvY2F0b3ItPm9iamVjdF9z
aXplID49IGFsaWduZWRfc2l6ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgYWxsb2Nh
dG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVjb21taXR0
ZWRfa2luZCk7CiAgICAgCiAgICAgICAgIC8qIFRoaXMgc2hvdWxkIGJlIHNwZWNpYWxpemVkIG91
dCBpbiB0aGUgbm9uLWFsaWdubWVudCBjYXNlIGJlY2F1c2Ugb2YgQUxXQVlTX0lOTElORSBhbmQK
ICAgICAgICAgICAgYWxpZ25tZW50IGJlaW5nIHRoZSBjb25zdGFudCAxLiAqLwpAQCAtMjQ0LDcg
KzI0NSw4IEBAIHBhc190cnlfYWxsb2NhdGVfaW50cmluc2ljX2ltcGxfaW5saW5lX28KICAgICBQ
QVNfVEVTVElOR19BU1NFUlQoCiAgICAgICAgICFhbGxvY2F0b3JfcmVzdWx0LmRpZF9zdWNjZWVk
CiAgICAgICAgIHx8IGFsbG9jYXRvci0+b2JqZWN0X3NpemUgPj0gYWxpZ25lZF9zaXplCi0gICAg
ICAgIHx8IGFsbG9jYXRvci0+Y29uZmlnX2tpbmQgPT0gcGFzX2xvY2FsX2FsbG9jYXRvcl9jb25m
aWdfa2luZF91bnNlbGVjdGVkKTsKKyAgICAgICAgfHwgYWxsb2NhdG9yLT5jb25maWdfa2luZCA9
PSBwYXNfbG9jYWxfYWxsb2NhdG9yX2NvbmZpZ19raW5kX3Vuc2VsZWN0ZWQKKyAgICAgICAgfHwg
YWxsb2NhdG9yLT5zY2F2ZW5nZXJfZGF0YS5raW5kID09IHBhc19sb2NhbF9hbGxvY2F0b3JfZGVj
b21taXR0ZWRfa2luZCk7CiAgICAgCiAgICAgLyogVGhpcyBzaG91bGQgYmUgc3BlY2lhbGl6ZWQg
b3V0IGluIHRoZSBub24tYWxpZ25tZW50IGNhc2UgYmVjYXVzZSBvZiBBTFdBWVNfSU5MSU5FIGFu
ZAogICAgICAgIGFsaWdubWVudCBiZWluZyB0aGUgY29uc3RhbnQgMS4gKi8KSW5kZXg6IFNvdXJj
ZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFzL3Bhc191dGlsaXR5X2hlYXBfY29uZmlnLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxpdHlf
aGVhcF9jb25maWcuaAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFz
L3NyYy9saWJwYXMvcGFzX3V0aWxpdHlfaGVhcF9jb25maWcuaAkod29ya2luZyBjb3B5KQpAQCAt
MTU1LDYgKzE1NSw3IEBAIFBBU19BUEkgdm9pZCBwYXNfdXRpbGl0eV9oZWFwX2NvbmZpZ19kdW0K
ICAgICAgICAgLmFsaWduZWRfYWxsb2NhdG9yID0gTlVMTCwgXAogICAgICAgICAuYWxpZ25lZF9h
bGxvY2F0b3JfdGFsa3NfdG9fc2hhcmluZ19wb29sID0gZmFsc2UsIFwKICAgICAgICAgLmRlYWxs
b2NhdG9yID0gTlVMTCwgXAorICAgICAgICAubW1hcF9jYXBhYmlsaXR5ID0gcGFzX21heV9tbWFw
LCBcCiAgICAgICAgIC5yb290X2RhdGEgPSBOVUxMLCBcCiAgICAgICAgIC5wcmVwYXJlX3RvX2Vu
dW1lcmF0ZSA9IE5VTEwsIFwKICAgICAgICAgLmZvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eSA9IHBhc191dGlsaXR5X2hlYXBfY29uZmlnX2Zvcl9lYWNoX3NoYXJlZF9wYWdlX2RpcmVjdG9y
eSwgXApJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxzLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy9saWJwYXMvcGFzX3V0aWxz
LmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc191dGlscy5oCSh3b3JraW5nIGNvcHkpCkBAIC05MjMsNiArOTIzLDEwIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBwYXNfaXNfZGl2aXNpYmxlX2J5KHUKIGVudW0gY3BwX2luaXRpYWxpemF0aW9u
X3QgeyBjcHBfaW5pdGlhbGl6YXRpb24gfTsKICNlbmRpZgogCisjZGVmaW5lIFBBU19TWVNDQUxM
KHgpIGRvIHsgXAorICAgIHdoaWxlICgoeCkgPT0gLTEgJiYgZXJybm8gPT0gRUFHQUlOKSB7IH0g
XAorfSB3aGlsZSAoMCkKKwogUEFTX0VORF9FWFRFUk5fQzsKIAogI2VuZGlmIC8qIFBBU19VVElM
U19IICovCkluZGV4OiBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL2xpYnBhcy9wYXNfdmlydHVh
bF9yYW5nZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvbGlicGFz
L3Bhc192aXJ0dWFsX3JhbmdlLmgJKHJldmlzaW9uIDI4OTUwOCkKKysrIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvbGlicGFzL3Bhc192aXJ0dWFsX3JhbmdlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChjKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoYykgMjAxOS0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjcs
NiArMjcsNyBAQAogI2RlZmluZSBQQVNfVklSVFVBTF9SQU5HRV9ICiAKICNpbmNsdWRlICJwYXNf
bG9jay5oIgorI2luY2x1ZGUgInBhc19tbWFwX2NhcGFiaWxpdHkuaCIKICNpbmNsdWRlICJwYXNf
cmFuZ2UuaCIKICNpbmNsdWRlICJwYXNfdXRpbHMuaCIKIApAQCAtNDEsMjIgKzQyLDI1IEBAIHN0
cnVjdCBwYXNfdmlydHVhbF9yYW5nZSB7CiAgICAgdWludHB0cl90IGJlZ2luOwogICAgIHVpbnRw
dHJfdCBlbmQ7CiAgICAgcGFzX2xvY2sqIGxvY2tfcHRyOworICAgIHBhc19tbWFwX2NhcGFiaWxp
dHkgbW1hcF9jYXBhYmlsaXR5OwogfTsKIAogc3RhdGljIGlubGluZSBwYXNfdmlydHVhbF9yYW5n
ZSBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUodWludHB0cl90IGJlZ2luLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWludHB0cl90IGVu
ZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBhc19sb2NrKiBsb2NrX3B0cikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19sb2NrKiBsb2NrX3B0ciwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc19tbWFwX2Nh
cGFiaWxpdHkgbW1hcF9jYXBhYmlsaXR5KQogewogICAgIHBhc192aXJ0dWFsX3JhbmdlIHJlc3Vs
dDsKICAgICByZXN1bHQuYmVnaW4gPSBiZWdpbjsKICAgICByZXN1bHQuZW5kID0gZW5kOwogICAg
IHJlc3VsdC5sb2NrX3B0ciA9IGxvY2tfcHRyOworICAgIHJlc3VsdC5tbWFwX2NhcGFiaWxpdHkg
PSBtbWFwX2NhcGFiaWxpdHk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogc3RhdGljIGlubGlu
ZSBwYXNfdmlydHVhbF9yYW5nZSBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGVfZW1wdHkodm9pZCkK
IHsKLSAgICByZXR1cm4gcGFzX3ZpcnR1YWxfcmFuZ2VfY3JlYXRlKDAsIDAsIE5VTEwpOworICAg
IHJldHVybiBwYXNfdmlydHVhbF9yYW5nZV9jcmVhdGUoMCwgMCwgTlVMTCwgcGFzX21heV9ub3Rf
bW1hcCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgcGFzX3JhbmdlIHBhc192aXJ0dWFsX3JhbmdlX2dl
dF9yYW5nZShwYXNfdmlydHVhbF9yYW5nZSByYW5nZSkKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9MYXJnZVNoYXJpbmdQb29sVGVzdHMuY3BwCShy
ZXZpc2lvbiAyODk1MDgpCisrKyBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTGFyZ2VT
aGFyaW5nUG9vbFRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDcgKzE0Miw4IEBAIHZv
aWQgdGVzdEdvb2RDb2FsZXNjZUVwb2NoVXBkYXRlKCkKICAgICBwYXNfaGVhcF9sb2NrX2xvY2so
KTsKICAgICBwYXNfbGFyZ2Vfc2hhcmluZ19wb29sX2Jvb3RfZnJlZSgKICAgICAgICAgcGFzX3Jh
bmdlX2NyZWF0ZSgxMCAqIFBHLCAyMCAqIFBHKSwKLSAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9y
eV9pc19sb2NrZWRfYnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jayk7CisgICAgICAgIHBhc19w
aHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29tbW9uX2xvY2ssCisg
ICAgICAgIHBhc19tYXlfbW1hcCk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKIAogICAg
IGFzc2VydFN0YXRlKHsgUmFuZ2UoMCwgMTAgKiBQRywgcGFzX2NvbW1pdHRlZCwgMTAgKiBQRywg
MCksCkBAIC0xNTIsNyArMTUzLDggQEAgdm9pZCB0ZXN0R29vZENvYWxlc2NlRXBvY2hVcGRhdGUo
KQogICAgIHBhc19oZWFwX2xvY2tfbG9jaygpOwogICAgIHBhc19sYXJnZV9zaGFyaW5nX3Bvb2xf
Ym9vdF9mcmVlKAogICAgICAgICBwYXNfcmFuZ2VfY3JlYXRlKDIwICogUEcsIDMwICogUEcpLAot
ICAgICAgICBwYXNfcGh5c2ljYWxfbWVtb3J5X2lzX2xvY2tlZF9ieV92aXJ0dWFsX3JhbmdlX2Nv
bW1vbl9sb2NrKTsKKyAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRfYnlfdmly
dHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgcGFzX21heV9tbWFwKTsKICAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOwogCiAgICAgYXNzZXJ0U3RhdGUoeyBSYW5nZSgwLCAxMCAqIFBH
LCBwYXNfY29tbWl0dGVkLCAxMCAqIFBHLCAwKSwKQEAgLTE2NCw3ICsxNjYsOCBAQCB2b2lkIHRl
c3RHb29kQ29hbGVzY2VFcG9jaFVwZGF0ZSgpCiAgICAgQ0hFQ0socGFzX2xhcmdlX3NoYXJpbmdf
cG9vbF9hbGxvY2F0ZV9hbmRfY29tbWl0KAogICAgICAgICAgICAgICBwYXNfcmFuZ2VfY3JlYXRl
KDEwICogUEcsIDMwICogUEcpLAogICAgICAgICAgICAgICAmdHJhbnNhY3Rpb24sCi0gICAgICAg
ICAgICAgIHBhc19waHlzaWNhbF9tZW1vcnlfaXNfbG9ja2VkX2J5X3ZpcnR1YWxfcmFuZ2VfY29t
bW9uX2xvY2spKTsKKyAgICAgICAgICAgICAgcGFzX3BoeXNpY2FsX21lbW9yeV9pc19sb2NrZWRf
YnlfdmlydHVhbF9yYW5nZV9jb21tb25fbG9jaywKKyAgICAgICAgICAgICAgcGFzX21heV9tbWFw
KSk7CiAgICAgcGFzX2hlYXBfbG9ja191bmxvY2soKTsKICAgICAKICAgICBpZiAodmVyYm9zZSkK
SW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9NZW1hbGlnblRlc3RzLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvTWVtYWxpZ25UZXN0
cy5jcHAJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L01l
bWFsaWduVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKGMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgIlRlc3RIYXJu
ZXNzLmgiCisKKyNpZiBQQVNfRU5BQkxFX0JNQUxMT0MKKworI2luY2x1ZGUgImJtYWxsb2NfaGVh
cC5oIgorI2luY2x1ZGUgImJtYWxsb2NfaGVhcF9jb25maWcuaCIKKyNpbmNsdWRlICJwYXNfaGVh
cC5oIgorI2luY2x1ZGUgInBhc19zZWdyZWdhdGVkX2hlYXBfaW5saW5lcy5oIgorI2luY2x1ZGUg
InBhc19zZWdyZWdhdGVkX3ZpZXcuaCIKKworbmFtZXNwYWNlIHsKKwordm9pZCB0ZXN0TWVtYWxp
Z25BcnJheShzaXplX3Qgc2l6ZSwgc2l6ZV90IHR5cGVTaXplLCBzaXplX3QgdHlwZUFsaWdubWVu
dCkKK3sKKyAgICBibWFsbG9jX3R5cGUgdHlwZSA9IEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUihz
dGF0aWNfY2FzdDx1bnNpZ25lZD4odHlwZVNpemUpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PHVuc2lnbmVkPih0eXBlQWxpZ25t
ZW50KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
dGVzdCIpOworICAgIHBhc19oZWFwX3JlZiBoZWFwUmVmID0gQk1BTExPQ19IRUFQX1JFRl9JTklU
SUFMSVpFUigmdHlwZSk7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3OworICAgIHBhc19z
ZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBkaXJlY3Rvcnk7CisKKyAgICB2b2lkKiBwdHIgPSBi
bWFsbG9jX2lzb19hbGxvY2F0ZV96ZXJvZWRfYXJyYXlfYnlfc2l6ZSgmaGVhcFJlZiwgc2l6ZSk7
CisgICAgQ0hFQ0socHRyKTsKKworICAgIHZpZXcgPSBwYXNfc2VncmVnYXRlZF92aWV3X2Zvcl9v
YmplY3QocmVpbnRlcnByZXRfY2FzdDx1aW50cHRyX3Q+KHB0ciksICZibWFsbG9jX2hlYXBfY29u
ZmlnKTsKKyAgICBkaXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVj
dG9yeSh2aWV3KTsKKworICAgIENIRUNLX0VRVUFMKHBhc19zZWdyZWdhdGVkX2hlYXBfc2l6ZV9k
aXJlY3RvcnlfZm9yX3NpemUoCisgICAgICAgICAgICAgICAgICAgICZibWFsbG9jX2hlYXBfcmVm
X2dldF9oZWFwKCZoZWFwUmVmKS0+c2VncmVnYXRlZF9oZWFwLAorICAgICAgICAgICAgICAgICAg
ICBzaXplLAorICAgICAgICAgICAgICAgICAgICBCTUFMTE9DX0hFQVBfQ09ORklHLAorICAgICAg
ICAgICAgICAgICAgICBOVUxMKSwKKyAgICAgICAgICAgICAgICBkaXJlY3RvcnkpOworfQorCit9
IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1BTExPQwor
Cit2b2lkIGFkZE1lbWFsaWduVGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1BTExPQworICAg
IEFERF9URVNUKHRlc3RNZW1hbGlnbkFycmF5KDE1MjMsIDE2LCA0KSk7CisgICAgQUREX1RFU1Qo
dGVzdE1lbWFsaWduQXJyYXkoMTUyMywgMTI4LCAxMjgpKTsKKyNlbmRpZiAvLyBQQVNfRU5BQkxF
X0JNQUxMT0MKK30KKwpJbmRleDogU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RMQ0Rl
Y29tbWl0VGVzdHMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMv
dGVzdC9UTENEZWNvbW1pdFRlc3RzLmNwcAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvYm1hbGxv
Yy9saWJwYXMvc3JjL3Rlc3QvVExDRGVjb21taXRUZXN0cy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSw0NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKKyAqLworCisjaW5jbHVkZSAiVGVzdEhhcm5lc3MuaCIKKworI2lmIFBBU19FTkFCTEVfQk1B
TExPQworCisjaW5jbHVkZSAiYm1hbGxvY19oZWFwLmgiCisjaW5jbHVkZSAiYm1hbGxvY19oZWFw
X2NvbmZpZy5oIgorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+CisjaW5jbHVkZSAicGFzX2FsbF9oZWFw
cy5oIgorI2luY2x1ZGUgInBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGUuaCIKKyNpbmNsdWRl
ICJwYXNfYml0dmVjdG9yLmgiCisjaW5jbHVkZSAicGFzX2NvbW1pdHRlZF9wYWdlc192ZWN0b3Iu
aCIKKyNpbmNsdWRlICJwYXNfZ2V0X2hlYXAuaCIKKyNpbmNsdWRlICJwYXNfZ2V0X3BhZ2VfYmFz
ZS5oIgorI2luY2x1ZGUgInBhc19oZWFwX2xvY2suaCIKKyNpbmNsdWRlICJwYXNfc2NhdmVuZ2Vy
LmgiCisjaW5jbHVkZSAicGFzX3RocmVhZF9sb2NhbF9jYWNoZV9sYXlvdXQuaCIKKyNpbmNsdWRl
IDx0aHJlYWQ+CisKK3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSB7CisKK3NpemVf
dCBudW1Db21taXR0ZWRQYWdlc0luVExDKCkKK3sKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hl
KiBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpOworICAgIENIRUNLKGNh
Y2hlKTsKKyAgICByZXR1cm4gcGFzX2NvdW50X2NvbW1pdHRlZF9wYWdlcygKKyAgICAgICAgY2Fj
aGUsCisgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfc2l6ZV9mb3JfYWxsb2NhdG9yX2lu
ZGV4X2NhcGFjaXR5KAorICAgICAgICAgICAgY2FjaGUtPmFsbG9jYXRvcl9pbmRleF9jYXBhY2l0
eSksCisgICAgICAgICZhbGxvY2F0aW9uQ29uZmlnKTsKK30KKwordm9pZCB0ZXN0VExDRGVjb21t
aXQodW5zaWduZWQgbnVtSGVhcHMsCisgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbjxib29s
KHVuc2lnbmVkKT4gc2hvdWxkU3RvcEFsbG9jYXRvckF0SW5kZXgsCisgICAgICAgICAgICAgICAg
ICAgICBib29sIGNvbW1pdFdpdGhGcmVlLAorICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg
bnVtQ29tbWl0dGVkUGFnZXNJbml0aWFsbHksCisgICAgICAgICAgICAgICAgICAgICB1bnNpZ25l
ZCBudW1Db21taXR0ZWRQYWdlc0FmdGVyRGVjb21taXQsCisgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBudW1Db21taXR0ZWRQYWdlc0FmdGVyUmVjb21taXQpCit7CisgICAgcGFzX3NjYXZl
bmdlcl9zdXNwZW5kKCk7CisgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zaG91bGRfc3RvcF9jb3Vu
dF9mb3Jfc3VzcGVuZCA9IDEwMDsgLyogcmVxdWVzdF9zdG9wIHNob3VsZCBub3QgYWN0dWFsbHkg
c3RvcC4gKi8KKworICAgIHBhc19oZWFwX3JlZiogaGVhcHMgPSBuZXcgcGFzX2hlYXBfcmVmW251
bUhlYXBzXTsKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IG51bUhlYXBzOyBpbmRleC0tOykKKyAg
ICAgICAgaGVhcHNbaW5kZXhdID0gQk1BTExPQ19IRUFQX1JFRl9JTklUSUFMSVpFUihuZXcgYm1h
bGxvY190eXBlKEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUig0MiwgMiwgInRlc3QiKSkpOworCisg
ICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5k
ZXggPCBudW1IZWFwczsgKytpbmRleCkgeworICAgICAgICB2b2lkKiBwdHIgPSBibWFsbG9jX2lz
b19hbGxvY2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAgQ0hFQ0socHRyKTsKKyAgICAgICAg
Q0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJRyksCisgICAg
ICAgICAgICAgICAgICAgIGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMgKyBpbmRleCkp
OworICAgICAgICBvYmplY3RzLnB1c2hfYmFjayhwdHIpOworICAgIH0KKworICAgIHVuc2lnbmVk
KiBoYXNWaWV3Q2FjaGUgPSBuZXcgdW5zaWduZWRbUEFTX0JJVFZFQ1RPUl9OVU1fV09SRFMobnVt
SGVhcHMpXTsKKyAgICB1bnNpZ25lZCogaGFzQWxsb2NhdG9yID0gbmV3IHVuc2lnbmVkW1BBU19C
SVRWRUNUT1JfTlVNX1dPUkRTKG51bUhlYXBzKV07CisKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9
IG51bUhlYXBzOyBpbmRleC0tOykgeworICAgICAgICBwYXNfYml0dmVjdG9yX3NldChoYXNWaWV3
Q2FjaGUsIGluZGV4LCBmYWxzZSk7CisgICAgICAgIHBhc19iaXR2ZWN0b3Jfc2V0KGhhc0FsbG9j
YXRvciwgaW5kZXgsIGZhbHNlKTsKKyAgICB9CisKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2soKTsK
KyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlKiBjYWNoZSA9IHBhc190aHJlYWRfbG9jYWxfY2Fj
aGVfdHJ5X2dldCgpOworICAgIENIRUNLKGNhY2hlKTsKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX2xheW91dF9ub2RlIGxheW91dE5vZGU7CisgICAgZm9yIChQQVNfVEhSRUFEX0xPQ0FMX0NB
Q0hFX0xBWU9VVF9FQUNIX0FMTE9DQVRPUihsYXlvdXROb2RlKSkgeworICAgICAgICBwYXNfYWxs
b2NhdG9yX2luZGV4IGFsbG9jYXRvckluZGV4OworICAgICAgICBwYXNfbG9jYWxfYWxsb2NhdG9y
X3NjYXZlbmdlcl9kYXRhKiBzY2F2ZW5nZXJEYXRhOworICAgICAgICBwYXNfc2VncmVnYXRlZF9z
aXplX2RpcmVjdG9yeSogZGlyZWN0b3J5OworICAgICAgICBwYXNfaGVhcCogaGVhcDsKKworICAg
ICAgICBhbGxvY2F0b3JJbmRleCA9IHBhc190aHJlYWRfbG9jYWxfY2FjaGVfbGF5b3V0X25vZGVf
Z2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91dE5vZGUpOworCisgICAgICAgIGlmIChh
bGxvY2F0b3JJbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9yX2luZGV4X3VwcGVyX2JvdW5kKQorICAg
ICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgaWYgKCFwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xh
eW91dF9ub2RlX2lzX2NvbW1pdHRlZChsYXlvdXROb2RlLCBjYWNoZSkpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICBzY2F2ZW5nZXJEYXRhID0gc3RhdGljX2Nhc3Q8cGFzX2xvY2Fs
X2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0YSo+KAorICAgICAgICAgICAgcGFzX3RocmVhZF9sb2Nh
bF9jYWNoZV9nZXRfbG9jYWxfYWxsb2NhdG9yX2RpcmVjdChjYWNoZSwgYWxsb2NhdG9ySW5kZXgp
KTsKKworICAgICAgICBkaXJlY3RvcnkgPSBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9u
b2RlX2dldF9kaXJlY3RvcnkobGF5b3V0Tm9kZSk7CisgICAgICAgIGhlYXAgPSBwYXNfaGVhcF9m
b3Jfc2VncmVnYXRlZF9oZWFwKGRpcmVjdG9yeS0+aGVhcCk7CisKKyAgICAgICAgaWYgKCFoZWFw
LT5oZWFwX3JlZikKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIGlmIChoZWFwLT5o
ZWFwX3JlZiA+PSBoZWFwcyAmJiBoZWFwLT5oZWFwX3JlZiA8IGhlYXBzICsgbnVtSGVhcHMpIHsK
KyAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGhlYXAtPmhlYXBfcmVmIC0gaGVhcHM7CisKKyAg
ICAgICAgICAgIGlmIChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2RlX3JlcHJlc2Vu
dHNfYWxsb2NhdG9yKGxheW91dE5vZGUpKQorICAgICAgICAgICAgICAgIHBhc19iaXR2ZWN0b3Jf
c2V0KGhhc0FsbG9jYXRvciwgaW5kZXgsIHRydWUpOworICAgICAgICAgICAgZWxzZSB7CisgICAg
ICAgICAgICAgICAgUEFTX0FTU0VSVChwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2xheW91dF9ub2Rl
X3JlcHJlc2VudHNfdmlld19jYWNoZShsYXlvdXROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFz
X2JpdHZlY3Rvcl9zZXQoaGFzVmlld0NhY2hlLCBpbmRleCwgdHJ1ZSk7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIENIRUNLKCFwYXNfbG9jYWxfYWxsb2NhdG9yX3NjYXZlbmdlcl9kYXRh
X2lzX3N0b3BwZWQoc2NhdmVuZ2VyRGF0YSkpOworICAgICAgICB9CisgICAgfQorICAgIHBhc19o
ZWFwX2xvY2tfdW5sb2NrKCk7CisKKyAgICBmb3IgKHNpemVfdCBpbmRleCA9IG51bUhlYXBzOyBp
bmRleC0tOykgeworICAgICAgICBDSEVDSyhwYXNfYml0dmVjdG9yX2dldChoYXNWaWV3Q2FjaGUs
IGluZGV4KSk7CisgICAgICAgIENIRUNLKHBhc19iaXR2ZWN0b3JfZ2V0KGhhc0FsbG9jYXRvciwg
aW5kZXgpKTsKKyAgICB9CisKKyAgICBDSEVDS19FUVVBTChudW1Db21taXR0ZWRQYWdlc0luVExD
KCksIG51bUNvbW1pdHRlZFBhZ2VzSW5pdGlhbGx5KTsKKworICAgIHBhc19oZWFwX2xvY2tfbG9j
aygpOworICAgIGNhY2hlID0gcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCk7CisgICAg
Q0hFQ0soY2FjaGUpOworICAgIGZvciAoUEFTX1RIUkVBRF9MT0NBTF9DQUNIRV9MQVlPVVRfRUFD
SF9BTExPQ0FUT1IobGF5b3V0Tm9kZSkpIHsKKyAgICAgICAgcGFzX2FsbG9jYXRvcl9pbmRleCBh
bGxvY2F0b3JJbmRleDsKKyAgICAgICAgcGFzX2xvY2FsX2FsbG9jYXRvcl9zY2F2ZW5nZXJfZGF0
YSogc2NhdmVuZ2VyRGF0YTsKKworICAgICAgICBhbGxvY2F0b3JJbmRleCA9IHBhc190aHJlYWRf
bG9jYWxfY2FjaGVfbGF5b3V0X25vZGVfZ2V0X2FsbG9jYXRvcl9pbmRleF9nZW5lcmljKGxheW91
dE5vZGUpOworCisgICAgICAgIGlmIChhbGxvY2F0b3JJbmRleCA+PSBjYWNoZS0+YWxsb2NhdG9y
X2luZGV4X3VwcGVyX2JvdW5kKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAgc2NhdmVu
Z2VyRGF0YSA9IHN0YXRpY19jYXN0PHBhc19sb2NhbF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGEq
PigKKyAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZ2V0X2xvY2FsX2FsbG9jYXRv
cl9kaXJlY3QoY2FjaGUsIGFsbG9jYXRvckluZGV4KSk7CisKKyAgICAgICAgaWYgKHNob3VsZFN0
b3BBbGxvY2F0b3JBdEluZGV4KGFsbG9jYXRvckluZGV4KSkKKyAgICAgICAgICAgIHBhc19sb2Nh
bF9hbGxvY2F0b3Jfc2NhdmVuZ2VyX2RhdGFfc3RvcChzY2F2ZW5nZXJEYXRhLCBwYXNfbG9ja19s
b2NrX21vZGVfbG9jaywgcGFzX2xvY2tfaXNfaGVsZCk7CisgICAgfQorICAgIHBhc19oZWFwX2xv
Y2tfdW5sb2NrKCk7CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2Fs
bG9jYXRvcl9zY2F2ZW5nZV9yZXF1ZXN0X3N0b3BfYWN0aW9uLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uKTsKKwor
ICAgIENIRUNLX0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgbnVtQ29tbWl0dGVkUGFn
ZXNBZnRlckRlY29tbWl0KTsKKworICAgIGlmIChjb21taXRXaXRoRnJlZSkgeworICAgICAgICBm
b3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHMpCisgICAgICAgICAgICBibWFsbG9jX2RlYWxsb2Nh
dGUob2JqZWN0KTsKKyAgICB9CisKKyAgICBwYXNfdGhyZWFkX2xvY2FsX2NhY2hlX3NocmluaygK
KyAgICAgICAgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCksCisgICAgICAgIHBhc19s
b2NrX2lzX25vdF9oZWxkKTsKKworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBu
dW1IZWFwczsgKytpbmRleCkgeworICAgICAgICB2b2lkKiBwdHIgPSBibWFsbG9jX2lzb19hbGxv
Y2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAgQ0hFQ0socHRyKTsKKyAgICAgICAgQ0hFQ0tf
RVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExPQ19IRUFQX0NPTkZJRyksCisgICAgICAgICAg
ICAgICAgICAgIGJtYWxsb2NfaGVhcF9yZWZfZ2V0X2hlYXAoaGVhcHMgKyBpbmRleCkpOworICAg
ICAgICBpZiAoY29tbWl0V2l0aEZyZWUpCisgICAgICAgICAgICBDSEVDS19FUVVBTChwdHIsIG9i
amVjdHNbaW5kZXhdKTsKKyAgICB9CisKKyAgICBDSEVDS19FUVVBTChudW1Db21taXR0ZWRQYWdl
c0luVExDKCksIG51bUNvbW1pdHRlZFBhZ2VzQWZ0ZXJSZWNvbW1pdCk7Cit9CisKK3ZvaWQgdGVz
dENoYW9zVGhlbkRlY29tbWl0KHVuc2lnbmVkIG51bUhlYXBzLCB1bnNpZ25lZCB0eXBlU2l6ZSwg
dW5zaWduZWQgbWF4T2JqZWN0c0F0QVRpbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB1
bnNpZ25lZCBtYXhGcm9tU2FtZUhlYXAsIHNpemVfdCBtYXhTaXplLCBzaXplX3QgY291bnQpCit7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKKyAgICAKKyAgICBw
YXNfaGVhcF9yZWYqIGhlYXBSZWZzID0gbmV3IHBhc19oZWFwX3JlZltudW1IZWFwc107CisgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IG51bUhlYXBzOyBpbmRleC0tOykgeworICAgICAgICBoZWFw
UmVmc1tpbmRleF0gPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKAorICAgICAgICAgICAg
bmV3IGJtYWxsb2NfdHlwZShCTUFMTE9DX1RZUEVfSU5JVElBTElaRVIodHlwZVNpemUsIDEsICJ0
ZXN0IikpKTsKKyAgICB9CisgICAgCisgICAgdmVjdG9yPHZlY3Rvcjx2b2lkKj4+IG9iamVjdHM7
CisgICAgc2l6ZV90IHRvdGFsU2l6ZSA9IDA7CisKKyAgICBwYXNfaGVhcF9yZWYqIGhlYXBSZWYg
PSBudWxscHRyOworCisgICAgYXV0byBzZWxlY3ROZXh0SGVhcCA9IFsmXSAoKSB7CisgICAgICAg
IGhlYXBSZWYgPSBoZWFwUmVmcyArIGRldGVybWluaXN0aWNSYW5kb21OdW1iZXIobnVtSGVhcHMp
OworICAgIH07CisKKyAgICBzZWxlY3ROZXh0SGVhcCgpOworCisgICAgd2hpbGUgKGNvdW50LS0p
IHsKKyAgICAgICAgaWYgKCFvYmplY3RzLmVtcHR5KCkKKyAgICAgICAgICAgICYmICh0b3RhbFNp
emUgPj0gbWF4U2l6ZQorICAgICAgICAgICAgICAgIHx8IGRldGVybWluaXN0aWNSYW5kb21OdW1i
ZXIoMikpKSB7CisgICAgICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGRldGVybWluaXN0aWNSYW5k
b21OdW1iZXIoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG9iamVjdHMuc2l6ZSgpKSk7CisgICAgICAg
ICAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHNUb0ZyZWUgPSBzdGQ6Om1vdmUob2JqZWN0c1tpbmRl
eF0pOworICAgICAgICAgICAgb2JqZWN0c1tpbmRleF0gPSBzdGQ6Om1vdmUob2JqZWN0cy5iYWNr
KCkpOworICAgICAgICAgICAgb2JqZWN0cy5wb3BfYmFjaygpOworICAgICAgICAgICAgZm9yICh2
b2lkKiBvYmplY3QgOiBvYmplY3RzVG9GcmVlKSB7CisgICAgICAgICAgICAgICAgc2l6ZV90IHNp
emUgPSBibWFsbG9jX2dldF9hbGxvY2F0aW9uX3NpemUob2JqZWN0KTsKKyAgICAgICAgICAgICAg
ICBDSEVDS19HUkVBVEVSX0VRVUFMKHRvdGFsU2l6ZSwgc2l6ZSk7CisgICAgICAgICAgICAgICAg
dG90YWxTaXplIC09IHNpemU7CisgICAgICAgICAgICAgICAgYm1hbGxvY19kZWFsbG9jYXRlKG9i
amVjdCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB1bnNp
Z25lZCBudW1PYmplY3RzTm93ID0gZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcihtYXhPYmplY3Rz
QXRBVGltZSkgKyAxOworICAgICAgICAgICAgdmVjdG9yPHZvaWQqPiBvYmplY3RzTm93OworICAg
ICAgICAgICAgd2hpbGUgKG51bU9iamVjdHNOb3ctLSkgeworICAgICAgICAgICAgICAgIGlmICgh
ZGV0ZXJtaW5pc3RpY1JhbmRvbU51bWJlcihtYXhGcm9tU2FtZUhlYXApKQorICAgICAgICAgICAg
ICAgICAgICBzZWxlY3ROZXh0SGVhcCgpOworICAgICAgICAgICAgICAgIHZvaWQqIHB0ciA9IGJt
YWxsb2NfaXNvX2FsbG9jYXRlKGhlYXBSZWYpOworICAgICAgICAgICAgICAgIENIRUNLKHB0cik7
CisgICAgICAgICAgICAgICAgQ0hFQ0tfRVFVQUwocGFzX2dldF9oZWFwKHB0ciwgQk1BTExPQ19I
RUFQX0NPTkZJRyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm1hbGxvY19oZWFwX3Jl
Zl9nZXRfaGVhcChoZWFwUmVmKSk7CisgICAgICAgICAgICAgICAgb2JqZWN0c05vdy5wdXNoX2Jh
Y2socHRyKTsKKyAgICAgICAgICAgICAgICB0b3RhbFNpemUgKz0gYm1hbGxvY19nZXRfYWxsb2Nh
dGlvbl9zaXplKHB0cik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBvYmplY3RzLnB1c2hf
YmFjayhzdGQ6Om1vdmUob2JqZWN0c05vdykpOworICAgICAgICB9CisgICAgfQorCisgICAgcGFz
X3NjYXZlbmdlcl9zdXNwZW5kKCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgY291dCA8
PCAiUnVubmluZyBzY2F2ZW5nZXIuXG4iOworICAgIAorICAgIHBhc19zY2F2ZW5nZXJfcnVuX3N5
bmNocm9ub3VzbHlfbm93KCk7CisKKyAgICBpZiAodmVyYm9zZSkKKyAgICAgICAgY291dCA8PCAi
RG9uZSBydW5uaW5nIHNjYXZlbmdlci5cbiI7CisKKyAgICBDSEVDS19FUVVBTChudW1Db21taXR0
ZWRQYWdlc0luVExDKCksCisgICAgICAgICAgICAgICAgcGFzX3JvdW5kX3VwX3RvX3Bvd2VyX29m
XzIoCisgICAgICAgICAgICAgICAgICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfb2Zmc2V0X29m
X2FsbG9jYXRvcihQQVNfTE9DQUxfQUxMT0NBVE9SX1VOU0VMRUNURURfTlVNX0lORElDRVMpLAor
ICAgICAgICAgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfYWxpZ25tZW50KCkpID4+IHBhc19w
YWdlX21hbGxvY19hbGlnbm1lbnRfc2hpZnQoKSk7CisKKyAgICBwYXNfaGVhcF9sb2NrX2xvY2so
KTsKKyAgICBwYXNfYWxsX2hlYXBzX3ZlcmlmeV9pbl9zdGVhZHlfc3RhdGUoKTsKKyAgICBwYXNf
aGVhcF9sb2NrX3VubG9jaygpOworfQorCit2ZWN0b3I8dm9pZCo+IHByZXBhcmVUb1Rlc3RETENE
ZWNvbW1pdFRoZW5TdHVmZih1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfaGVhcF9yZWYq
IGhlYXBzID0gbmV3IHBhc19oZWFwX3JlZltudW1IZWFwc107CisgICAgZm9yIChzaXplX3QgaW5k
ZXggPSBudW1IZWFwczsgaW5kZXgtLTspCisgICAgICAgIGhlYXBzW2luZGV4XSA9IEJNQUxMT0Nf
SEVBUF9SRUZfSU5JVElBTElaRVIoCisgICAgICAgICAgICBuZXcgYm1hbGxvY190eXBlKEJNQUxM
T0NfVFlQRV9JTklUSUFMSVpFUig1MTIsIDUxMiwgInRlc3QiKSkpOworCisgICAgdmVjdG9yPHZv
aWQqPiBvYmplY3RzOworICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBudW1IZWFw
czsgKytpbmRleCkgeworICAgICAgICBwYXNfcGFnZV9iYXNlKiBwYWdlID0gbnVsbHB0cjsKKyAg
ICAgICAgZm9yIChzaXplX3Qgb2JqZWN0SW5kZXggPSBwYXNfc2VncmVnYXRlZF9wYWdlX251bWJl
cl9vZl9vYmplY3RzKAorICAgICAgICAgICAgICAgICA1MTIsIEJNQUxMT0NfSEVBUF9DT05GSUcu
c21hbGxfc2VncmVnYXRlZF9jb25maWcsIHBhc19zZWdyZWdhdGVkX3BhZ2VfZXhjbHVzaXZlX3Jv
bGUpOworICAgICAgICAgICAgIG9iamVjdEluZGV4LS07KSB7CisgICAgICAgICAgICB2b2lkKiBw
dHIgPSBibWFsbG9jX2lzb19hbGxvY2F0ZShoZWFwcyArIGluZGV4KTsKKyAgICAgICAgICAgIENI
RUNLKHB0cik7CisgICAgICAgICAgICBDSEVDS19FUVVBTChwYXNfZ2V0X2hlYXAocHRyLCBCTUFM
TE9DX0hFQVBfQ09ORklHKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGJtYWxsb2NfaGVhcF9y
ZWZfZ2V0X2hlYXAoaGVhcHMgKyBpbmRleCkpOworICAgICAgICAgICAgcGFzX3BhZ2VfYmFzZSog
bXlQYWdlID0gcGFzX2dldF9wYWdlX2Jhc2UocHRyLCBCTUFMTE9DX0hFQVBfQ09ORklHKTsKKyAg
ICAgICAgICAgIGlmICghcGFnZSkgeworICAgICAgICAgICAgICAgIG9iamVjdHMucHVzaF9iYWNr
KHB0cik7CisgICAgICAgICAgICAgICAgcGFnZSA9IG15UGFnZTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIENIRUNLX0VRVUFMKG15UGFnZSwgcGFnZSk7CisgICAgICAgICAg
ICBDSEVDS19FUVVBTChwYXNfcGFnZV9iYXNlX2dldF9raW5kKG15UGFnZSksIHBhc19zbWFsbF9l
eGNsdXNpdmVfc2VncmVnYXRlZF9wYWdlX2tpbmQpOworICAgICAgICB9CisgICAgfQorCisgICAg
cmV0dXJuIG9iamVjdHM7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ryb3lJbXBs
KHVuc2lnbmVkIG51bUhlYXBzKQoreworICAgIHZlY3Rvcjx2b2lkKj4gb2JqZWN0cyA9IHByZXBh
cmVUb1Rlc3RETENEZWNvbW1pdFRoZW5TdHVmZihudW1IZWFwcyk7CisKKyAgICBmb3IgKHZvaWQq
IG9iamVjdCA6IG9iamVjdHMpCisgICAgICAgIGJtYWxsb2NfZGVhbGxvY2F0ZShvYmplY3QpOwor
CisgICAgQ0hFQ0tfR1JFQVRFUihudW1Db21taXR0ZWRQYWdlc0luVExDKCksIDEpOworICAgIENI
RUNLKHBhc190aHJlYWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpLT5kZWFsbG9jYXRpb25fbG9nX2lu
ZGV4KTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZm9yX2FsbChwYXNfYWxsb2NhdG9y
X3NjYXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBwYXNfZGVhbGxvY2F0b3Jfc2NhdmVuZ2Vfbm9fYWN0aW9uKTsKKworICAgIENIRUNL
X0VRVUFMKG51bUNvbW1pdHRlZFBhZ2VzSW5UTEMoKSwgMSk7CisgICAgQ0hFQ0socGFzX3RocmVh
ZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCktPmRlYWxsb2NhdGlvbl9sb2dfaW5kZXgpOworfQorCit2
b2lkIHRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95KHVuc2lnbmVkIG51bUhlYXBzKQoreworICAg
IHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworCisgICAgdGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ry
b3lJbXBsKG51bUhlYXBzKTsKKworICAgIHBhc190aHJlYWRfbG9jYWxfY2FjaGVfZGVzdHJveShw
YXNfbG9ja19pc19ub3RfaGVsZCk7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29tbWl0VGhlbkRlc3Ry
b3lJblRocmVhZCh1bnNpZ25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3Bl
bmQoKTsKKworICAgIHRocmVhZCBteVRocmVhZCA9IHRocmVhZChbJl0gKCkgeworICAgICAgICB0
ZXN0VExDRGVjb21taXRUaGVuRGVzdHJveUltcGwobnVtSGVhcHMpOworICAgIH0pOworCisgICAg
bXlUaHJlYWQuam9pbigpOworfQorCit2b2lkIHRlc3RUTENEZWNvbW1pdFRoZW5GbHVzaCh1bnNp
Z25lZCBudW1IZWFwcykKK3sKKyAgICBwYXNfc2NhdmVuZ2VyX3N1c3BlbmQoKTsKKworICAgIHRl
c3RUTENEZWNvbW1pdFRoZW5EZXN0cm95SW1wbChudW1IZWFwcyk7CisgICAgcGFzX3RocmVhZF9s
b2NhbF9jYWNoZV9mbHVzaF9kZWFsbG9jYXRpb25fbG9nKHBhc190aHJlYWRfbG9jYWxfY2FjaGVf
dHJ5X2dldCgpLCBwYXNfbG9ja19pc19ub3RfaGVsZCk7Cit9CisKK3ZvaWQgdGVzdFRMQ0RlY29t
bWl0VGhlbkRlYWxsb2NhdGUodW5zaWduZWQgbnVtSGVhcHMpCit7CisgICAgcGFzX3NjYXZlbmdl
cl9zdXNwZW5kKCk7CisKKyAgICB2ZWN0b3I8dm9pZCo+IG9iamVjdHMgPSBwcmVwYXJlVG9UZXN0
RExDRGVjb21taXRUaGVuU3R1ZmYobnVtSGVhcHMpOworCisgICAgQ0hFQ0tfR1JFQVRFUihudW1D
b21taXR0ZWRQYWdlc0luVExDKCksIDEpOworICAgIENIRUNLKCFwYXNfdGhyZWFkX2xvY2FsX2Nh
Y2hlX3RyeV9nZXQoKS0+ZGVhbGxvY2F0aW9uX2xvZ19pbmRleCk7CisKKyAgICBwYXNfdGhyZWFk
X2xvY2FsX2NhY2hlX2Zvcl9hbGwocGFzX2FsbG9jYXRvcl9zY2F2ZW5nZV9mb3JjZV9zdG9wX2Fj
dGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFzX2RlYWxsb2NhdG9y
X3NjYXZlbmdlX25vX2FjdGlvbik7CisKKyAgICBmb3IgKHZvaWQqIG9iamVjdCA6IG9iamVjdHMp
CisgICAgICAgIGJtYWxsb2NfZGVhbGxvY2F0ZShvYmplY3QpOworICAgIENIRUNLKHBhc190aHJl
YWRfbG9jYWxfY2FjaGVfdHJ5X2dldCgpLT5kZWFsbG9jYXRpb25fbG9nX2luZGV4KTsKKyAgICBw
YXNfdGhyZWFkX2xvY2FsX2NhY2hlX2ZsdXNoX2RlYWxsb2NhdGlvbl9sb2cocGFzX3RocmVhZF9s
b2NhbF9jYWNoZV90cnlfZ2V0KCksIHBhc19sb2NrX2lzX25vdF9oZWxkKTsKK30KKwordm9pZCB0
ZXN0QWxsb2NhdGVGcm9tU3RvcHBlZEJhc2VsaW5lSW1wbCgpCit7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBib29sIHZlcmJvc2UgPSBmYWxzZTsKKworICAgIGlmICh2ZXJib3NlKSB7CisgICAgICAg
IGNvdXQgPDwgIlRMQyA9ICIgPDwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0KCkgPDwg
IlxuIjsKKyAgICAgICAgY291dCA8PCAiY2FuIHNldCBUTEMgPSAiIDw8IHBhc190aHJlYWRfbG9j
YWxfY2FjaGVfY2FuX3NldCgpIDw8ICJcbiI7CisgICAgfQorCisgICAgcGFzX2hlYXBfcmVmIGhl
YXBSZWYgPSBCTUFMTE9DX0hFQVBfUkVGX0lOSVRJQUxJWkVSKAorICAgICAgICBuZXcgYm1hbGxv
Y190eXBlKEJNQUxMT0NfVFlQRV9JTklUSUFMSVpFUigzMiwgMSwgInRlc3QiKSkpOworCisgICAg
dm9pZCogcHRyID0gYm1hbGxvY19pc29fYWxsb2NhdGUoJmhlYXBSZWYpOworICAgIENIRUNLKHB0
cik7CisgICAgcGFzX3NlZ3JlZ2F0ZWRfdmlldyB2aWV3ID0gcGFzX3NlZ3JlZ2F0ZWRfdmlld19m
b3Jfb2JqZWN0KAorICAgICAgICByZWludGVycHJldF9jYXN0PHVpbnRwdHJfdD4ocHRyKSwgJmJt
YWxsb2NfaGVhcF9jb25maWcpOworICAgIHBhc19zZWdyZWdhdGVkX3NpemVfZGlyZWN0b3J5KiBk
aXJlY3RvcnkgPSBwYXNfc2VncmVnYXRlZF92aWV3X2dldF9zaXplX2RpcmVjdG9yeSh2aWV3KTsK
KworICAgIGJvb2wgZm91bmRJbkJhc2VsaW5lVGFibGUgPSBmYWxzZTsKKyAgICB1bnNpZ25lZCBm
b3VuZEluZGV4ID0gVUlOVF9NQVg7CisgICAgZm9yICh1bnNpZ25lZCBpID0gcGFzX2Jhc2VsaW5l
X2FsbG9jYXRvcl90YWJsZV9ib3VuZDsgaS0tOykgeworICAgICAgICBpZiAocGFzX3NlZ3JlZ2F0
ZWRfdmlld19nZXRfc2l6ZV9kaXJlY3RvcnkocGFzX2Jhc2VsaW5lX2FsbG9jYXRvcl90YWJsZVtp
XS51LmFsbG9jYXRvci52aWV3KQorICAgICAgICAgICAgPT0gZGlyZWN0b3J5KSB7CisgICAgICAg
ICAgICBmb3VuZEluQmFzZWxpbmVUYWJsZSA9IHRydWU7CisgICAgICAgICAgICBmb3VuZEluZGV4
ID0gaTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIENIRUNLKGZv
dW5kSW5CYXNlbGluZVRhYmxlKTsKKworICAgIHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVf
Zm9yX2FsbChwYXNfYWxsb2NhdG9yX3NjYXZlbmdlX2ZvcmNlX3N0b3BfYWN0aW9uKTsKKworICAg
IENIRUNLX0VRVUFMKHBhc19iYXNlbGluZV9hbGxvY2F0b3JfdGFibGVbZm91bmRJbmRleF0udS5h
bGxvY2F0b3Iuc2NhdmVuZ2VyX2RhdGEua2luZCwKKyAgICAgICAgICAgICAgICBwYXNfbG9jYWxf
YWxsb2NhdG9yX3N0b3BwZWRfYWxsb2NhdG9yX2tpbmQpOworCisgICAgaWYgKHZlcmJvc2UpCisg
ICAgICAgIGNvdXQgPDwgIlRMQyA9ICIgPDwgcGFzX3RocmVhZF9sb2NhbF9jYWNoZV90cnlfZ2V0
KCkgPDwgIlxuIjsKKworICAgIHB0ciA9IGJtYWxsb2NfaXNvX2FsbG9jYXRlKCZoZWFwUmVmKTsK
KyAgICBDSEVDSyhwdHIpOworfQorCit2b2lkIHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxp
bmUoKQoreworICAgIHBhc19zY2F2ZW5nZXJfc3VzcGVuZCgpOworICAgIHRlc3RBbGxvY2F0ZUZy
b21TdG9wcGVkQmFzZWxpbmVJbXBsKCk7Cit9CisKK3B0aHJlYWRfa2V5X3QgdGVzdEFsbG9jYXRl
RnJvbVN0b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0aW9uS2V5OworCit2b2lkIHRl
c3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxpbmVEdXJpbmdUaHJlYWREZXN0cnVjdGlvbkRlc3Ry
dWN0KHZvaWQqKQoreworICAgIHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxpbmVJbXBsKCk7
CisgICAgaW50IHJlc3VsdCA9IHB0aHJlYWRfc2V0c3BlY2lmaWModGVzdEFsbG9jYXRlRnJvbVN0
b3BwZWRCYXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0aW9uS2V5LCAiaGVsbG8iKTsKKyAgICBD
SEVDS19FUVVBTChyZXN1bHQsIDApOworfQorCit2b2lkIHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVk
QmFzZWxpbmVEdXJpbmdUaHJlYWREZXN0cnVjdGlvbigpCit7CisgICAgcGFzX3NjYXZlbmdlcl9z
dXNwZW5kKCk7CisKKyAgICB0aHJlYWQgbXlUaHJlYWQoWyZdICgpIHsKKyAgICAgICAgaW50IHJl
c3VsdCA9IHB0aHJlYWRfa2V5X2NyZWF0ZSgmdGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRCYXNlbGlu
ZUR1cmluZ1RocmVhZERlc3RydWN0aW9uS2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHRlc3RBbGxvY2F0ZUZyb21TdG9wcGVkQmFzZWxpbmVEdXJpbmdUaHJlYWRE
ZXN0cnVjdGlvbkRlc3RydWN0KTsKKyAgICAgICAgQ0hFQ0tfRVFVQUwocmVzdWx0LCAwKTsKKyAg
ICAgICAgcmVzdWx0ID0gcHRocmVhZF9zZXRzcGVjaWZpYyh0ZXN0QWxsb2NhdGVGcm9tU3RvcHBl
ZEJhc2VsaW5lRHVyaW5nVGhyZWFkRGVzdHJ1Y3Rpb25LZXksICJoZWxsbyIpOworICAgICAgICBD
SEVDS19FUVVBTChyZXN1bHQsIDApOworICAgIH0pOworCisgICAgbXlUaHJlYWQuam9pbigpOwor
fQorCit9IC8vIGFub255bW91cyBuYW1lc3BhY2UKKworI2VuZGlmIC8vIFBBU19FTkFCTEVfQk1B
TExPQworCit2b2lkIGFkZFRMQ0RlY29tbWl0VGVzdHMoKQoreworI2lmIFBBU19FTkFCTEVfQk1B
TExPQworICAgIHsKKyAgICAgICAgRGVjb21taXRaZXJvRmlsbCBkZWNvbW1pdFplcm9GaWxsOwor
ICAgIAorICAgICAgICBUZXN0U2NvcGUgdGVzdFNjb3BlKAorICAgICAgICAgICAgInJhZ2UtdGxj
cyIsCisgICAgICAgICAgICBbXSAoKSB7CisgICAgICAgICAgICAgICAgYm1hbGxvY190eXBlZF9y
dW50aW1lX2NvbmZpZy5iYXNlLmRpcmVjdG9yeV9zaXplX2JvdW5kX2Zvcl9iYXNlbGluZV9hbGxv
Y2F0b3JzID0gMDsKKyAgICAgICAgICAgICAgICBibWFsbG9jX3R5cGVkX3J1bnRpbWVfY29uZmln
LmJhc2UuZGlyZWN0b3J5X3NpemVfYm91bmRfZm9yX25vX3ZpZXdfY2FjaGUgPSAwOworICAgICAg
ICAgICAgICAgIGJtYWxsb2NfdHlwZWRfcnVudGltZV9jb25maWcuYmFzZS52aWV3X2NhY2hlX2Nh
cGFjaXR5X2Zvcl9vYmplY3Rfc2l6ZSA9CisgICAgICAgICAgICAgICAgICAgIHBhc19oZWFwX3J1
bnRpbWVfY29uZmlnX2FnZ3Jlc3NpdmVfdmlld19jYWNoZV9jYXBhY2l0eTsKKyAgICAgICAgICAg
IH0pOworICAgIAorICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAsIFtdICh1
bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPCAxMDAwMDsgfSwgZmFsc2UsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDMwMCwgMzA0KSk7CisgICAgICAgIEFERF9U
RVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBp
bmRleCA8IDEwMDAwOyB9LCB0cnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
NTg4LCAzMDAsIDMwNCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAs
IFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1cm4gaW5kZXggPiAxMDAwMDsgfSwgZmFsc2UsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDYsIDMwNCkpOworICAgICAgICBB
RERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBpbmRleCkgeyByZXR1
cm4gaW5kZXggPiAxMDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIDU4OCwgNiwgMzA0KSk7CisgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAw
MCwgW10gKHVuc2lnbmVkIGluZGV4KSB7IHJldHVybiBpbmRleCA8IDEwMDAwMDsgfSwgZmFsc2Us
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA1ODgsIDI1NiwgMzA0KSk7CisgICAg
ICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdCgxMDAwMCwgW10gKHVuc2lnbmVkIGluZGV4KSB7
IHJldHVybiBpbmRleCA8IDEwMDAwMDsgfSwgdHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIDU4OCwgMjU2LCAzMDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29t
bWl0KDEwMDAwLCBbXSAodW5zaWduZWQgaW5kZXgpIHsgcmV0dXJuIGluZGV4ID4gMTAwMDAwOyB9
LCBmYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDU4OCwgNTAsIDMwNCkp
OworICAgICAgICBBRERfVEVTVCh0ZXN0VExDRGVjb21taXQoMTAwMDAsIFtdICh1bnNpZ25lZCBp
bmRleCkgeyByZXR1cm4gaW5kZXggPiAxMDAwMDA7IH0sIHRydWUsCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICA1ODgsIDUwLCAzMDQpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdENo
YW9zVGhlbkRlY29tbWl0KDEwMDAwLCAxNiwgMTAwMCwgMTAwLCA0MDAwMDAwMDAsIDUwMDAwMCkp
OworICAgICAgICBBRERfVEVTVCh0ZXN0Q2hhb3NUaGVuRGVjb21taXQoMTAwMDAsIDE2LCAxMDAw
LCAxMDAwMCwgNDAwMDAwMDAwLCAxMDAwMDAwKSk7CisgICAgICAgIEFERF9URVNUKHRlc3RDaGFv
c1RoZW5EZWNvbW1pdCgxMDAwMCwgNTEyLCAxMCwgNTAsIDUwMDAwMDAwMCwgMzAwMDAwMCkpOwor
ICAgICAgICBBRERfVEVTVCh0ZXN0Q2hhb3NUaGVuRGVjb21taXQoMTAwMDAsIDQ4LCAxMDAsIDEw
MDAsIDYwMDAwMDAwMCwgMzAwMDAwMCkpOworICAgICAgICBBRERfVEVTVCh0ZXN0Q2hhb3NUaGVu
RGVjb21taXQoMTAwMDAsIDQ4LCAxMDAsIDEwMDAwLCA2MDAwMDAwMDAsIDMwMDAwMDApKTsKKwor
ICAgICAgICB7CisgICAgICAgICAgICBGb3JjZUV4Y2x1c2l2ZXMgZm9yY2VFeGNsdXNpdmVzOwor
ICAgICAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkRlYWxsb2NhdGUoNjY2Nikp
OworICAgICAgICAgICAgQUREX1RFU1QodGVzdFRMQ0RlY29tbWl0VGhlbkZsdXNoKDY2NjYpKTsK
KyAgICAgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95KDY2NjYpKTsK
KyAgICAgICAgICAgIEFERF9URVNUKHRlc3RUTENEZWNvbW1pdFRoZW5EZXN0cm95SW5UaHJlYWQo
NjY2NikpOworICAgICAgICB9CisgICAgfQorCisgICAgeworICAgICAgICBGb3JjZUJhc2VsaW5l
cyBmb3JjZUJhc2VsaW5lczsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRlRnJvbVN0b3Bw
ZWRCYXNlbGluZSgpKTsKKyAgICAgICAgQUREX1RFU1QodGVzdEFsbG9jYXRlRnJvbVN0b3BwZWRC
YXNlbGluZUR1cmluZ1RocmVhZERlc3RydWN0aW9uKCkpOworICAgIH0KKyNlbmRpZiAvLyBQQVNf
RU5BQkxFX0JNQUxMT0MKK30KSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9U
ZXN0SGFybmVzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90
ZXN0L1Rlc3RIYXJuZXNzLmNwcAkocmV2aXNpb24gMjg5NTA4KQorKysgU291cmNlL2JtYWxsb2Mv
bGlicGFzL3NyYy90ZXN0L1Rlc3RIYXJuZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYzLDYg
KzI2MywxNyBAQCBEaXNhYmxlUGFnZUJhbGFuY2luZzo6RGlzYWJsZVBhZ2VCYWxhbmNpCiB7CiB9
CiAKK0RlY29tbWl0WmVyb0ZpbGw6OkRlY29tbWl0WmVyb0ZpbGwoKQorICAgIDogVGVzdFNjb3Bl
KAorICAgICAgICAiZGVjb21taXQtemVyby1maWxsIiwKKyAgICAgICAgW10gKCkgeworI2lmIFBB
U19PUyhEQVJXSU4pCisgICAgICAgICAgICBwYXNfcGFnZV9tYWxsb2NfZGVjb21taXRfemVyb19m
aWxsID0gdHJ1ZTsKKyNlbmRpZiAvLyBQQVNfT1MoREFSV0lOKQorICAgICAgICB9KQoreworfQor
CiBuYW1lc3BhY2UgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgpAQCAtMzU4LDEwICszNjks
MTIgQEAgdm9pZCBhZGRMYXJnZUZyZWVIZWFwVGVzdHMoKTsKIHZvaWQgYWRkTGFyZ2VTaGFyaW5n
UG9vbFRlc3RzKCk7CiB2b2lkIGFkZExvY2tGcmVlUmVhZFB0clB0ckhhc2h0YWJsZVRlc3RzKCk7
CiB2b2lkIGFkZExvdHNPZkhlYXBzQW5kVGhyZWFkc1Rlc3RzKCk7Cit2b2lkIGFkZE1lbWFsaWdu
VGVzdHMoKTsKIHZvaWQgYWRkTWluSGVhcFRlc3RzKCk7CiB2b2lkIGFkZFBHTVRlc3RzKCk7CiB2
b2lkIGFkZFJhY2VUZXN0cygpOwogdm9pZCBhZGRSZWRCbGFja1RyZWVUZXN0cygpOwordm9pZCBh
ZGRUTENEZWNvbW1pdFRlc3RzKCk7CiB2b2lkIGFkZFRTRFRlc3RzKCk7CiB2b2lkIGFkZFRoaW5n
eUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzKCk7CiB2b2lkIGFkZFV0aWxzVGVzdHMoKTsK
QEAgLTcyMywxMCArNzM2LDEyIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAg
ICBBRERfU1VJVEUoTGFyZ2VTaGFyaW5nUG9vbCk7CiAgICAgQUREX1NVSVRFKExvY2tGcmVlUmVh
ZFB0clB0ckhhc2h0YWJsZSk7CiAgICAgQUREX1NVSVRFKExvdHNPZkhlYXBzQW5kVGhyZWFkcyk7
CisgICAgQUREX1NVSVRFKE1lbWFsaWduKTsKICAgICBBRERfU1VJVEUoTWluSGVhcCk7CiAgICAg
QUREX1NVSVRFKFBHTSk7CiAgICAgQUREX1NVSVRFKFJhY2UpOwogICAgIEFERF9TVUlURShSZWRC
bGFja1RyZWUpOworICAgIEFERF9TVUlURShUTENEZWNvbW1pdCk7CiAgICAgQUREX1NVSVRFKFRT
RCk7CiAgICAgQUREX1NVSVRFKFV0aWxzKTsKICAgICAKSW5kZXg6IFNvdXJjZS9ibWFsbG9jL2xp
YnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9ibWFsbG9j
L2xpYnBhcy9zcmMvdGVzdC9UZXN0SGFybmVzcy5oCShyZXZpc2lvbiAyODk1MDgpCisrKyBTb3Vy
Y2UvYm1hbGxvYy9saWJwYXMvc3JjL3Rlc3QvVGVzdEhhcm5lc3MuaAkod29ya2luZyBjb3B5KQpA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTg0LDYgKzg0LDEyIEBAIGlubGluZSBzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpv
c3QKICAgICByZXR1cm4gb3V0OwogfQogCitpbmxpbmUgc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8
KHN0ZDo6b3N0cmVhbSYgb3V0LCBwYXNfcGFnZV9raW5kIGtpbmQpCit7CisgICAgb3V0IDw8IHBh
c19wYWdlX2tpbmRfZ2V0X3N0cmluZyhraW5kKTsKKyAgICByZXR1cm4gb3V0OworfQorCiAjZGVm
aW5lIENIRUNLKGV4cHJlc3Npb24pIGRvIHsgXAogICAgICAgICBpZiAoKGV4cHJlc3Npb24pKSBc
CiAgICAgICAgICAgICBicmVhazsgXApAQCAtMjk1LDYgKzMwMSwxMSBAQCBwdWJsaWM6CiAgICAg
RGlzYWJsZVBhZ2VCYWxhbmNpbmcoKTsKIH07CiAKK2NsYXNzIERlY29tbWl0WmVyb0ZpbGwgOiBw
dWJsaWMgVGVzdFNjb3BlIHsKK3B1YmxpYzoKKyAgICBEZWNvbW1pdFplcm9GaWxsKCk7Cit9Owor
CiBib29sIGhhc1Njb3BlKGNvbnN0IHN0ZDo6c3RyaW5nJiBmaWx0ZXIpOwogCiB2b2lkIGR1bXBP
YmplY3RTZXQoY29uc3Qgc3RkOjpzZXQ8dm9pZCo+JiBvYmplY3RzKTsKSW5kZXg6IFNvdXJjZS9i
bWFsbG9jL2xpYnBhcy9zcmMvdGVzdC9UaGluZ3lBbmRVdGlsaXR5SGVhcEFsbG9jYXRpb25UZXN0
cy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RoaW5n
eUFuZFV0aWxpdHlIZWFwQWxsb2NhdGlvblRlc3RzLmNwcAkocmV2aXNpb24gMjg5NTA4KQorKysg
U291cmNlL2JtYWxsb2MvbGlicGFzL3NyYy90ZXN0L1RoaW5neUFuZFV0aWxpdHlIZWFwQWxsb2Nh
dGlvblRlc3RzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzIwOSw3ICszMjA5LDcgQEAgdm9pZCBh
ZGRBbGxUZXN0cygpCiAgICAgewogICAgICAgICBUZXN0U2NvcGUgdGVzdFNjb3BlKAogICAgICAg
ICAgICAgIm9ubHktc21hbGwiLAotICAgICAgICAgICAgWyZdICgpIHsKKyAgICAgICAgICAgIFtd
ICgpIHsKICAgICAgICAgICAgICAgICBwYXNfbWVkaXVtX3NlZ3JlZ2F0ZWRfcGFnZV9jb25maWdf
dmFyaWFudF9pc19lbmFibGVkX292ZXJyaWRlID0gZmFsc2U7CiAgICAgICAgICAgICB9KTsKICAg
ICAgICAgCkBAIC0zMjE5LDcgKzMyMTksNyBAQCB2b2lkIGFkZEFsbFRlc3RzKCkKICAgICB7CiAg
ICAgICAgIFRlc3RTY29wZSB0ZXN0U2NvcGUoCiAgICAgICAgICAgICAic21hbGwtYW5kLW1lZGl1
bSIsCi0gICAgICAgICAgICBbJl0gKCkgeworICAgICAgICAgICAgW10gKCkgewogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIAogICAgICAgICBhZGRBbGxUZXN0c0ltcGwoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>