<?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>224912</bug_id>
          
          <creation_ts>2021-04-21 20:22:52 -0700</creation_ts>
          <short_desc>REGRESSION(r276380): Caused WPT css/css-counter-styles/cssom test crashes on macOS WK1 with ASan</short_desc>
          <delta_ts>2021-04-22 17:46:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>224875</blocked>
    
    <blocked>224718</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1753017</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-04-21 20:22:52 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/276380 broke the build:
Caused WPT css/css-counter-styles/cssom test crashes on macOS WK1 with ASan

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753020</commentid>
    <comment_count>1</comment_count>
      <attachid>426767</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-04-21 20:23:02 -0700</bug_when>
    <thetext>Created attachment 426767
REVERT of r276380

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753024</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-04-21 20:24:51 -0700</bug_when>
    <thetext>These are the tests that were crashing on macOS WK1 under ASan:

imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-additive-symbols-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-fallback-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-name-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-negative-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-pad-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-prefix-suffix-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-range-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter-invalid.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-symbols-setter.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-1.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-2.html
imported/w3c/web-platform-tests/css/css-counter-styles/cssom/cssom-system-setter-invalid.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753025</commentid>
    <comment_count>3</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-04-21 20:25:03 -0700</bug_when>
    <thetext>==41704==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffee70753b8 at pc 0x00012e571e86 bp 0x7ffee7074c40 sp 0x7ffee7074c38
READ of size 4 at 0x7ffee70753b8 thread T0
    #0 0x12e571e85 in WebCore::CSSParserToken::type() const+0x35 (WebCore:x86_64+0x342de85)
    #1 0x12e8842b0 in WTF::Optional&lt;int&gt; WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRaw&lt;int&gt;(WebCore::CSSParserTokenRange&amp;, double)+0xd0 (WebCore:x86_64+0x37402b0)
    #2 0x12e8841cd in WebCore::CSSPropertyParserHelpers::consumeIntegerRaw(WebCore::CSSParserTokenRange&amp;, double)+0xd (WebCore:x86_64+0x37401cd)
    #3 0x12e861038 in WebCore::CSSPropertyParserHelpers::consumeInteger(WebCore::CSSParserTokenRange&amp;, double)+0xc8 (WebCore:x86_64+0x371d038)
    #4 0x12e86f584 in WebCore::consumeCounterStyleAdditiveSymbols(WebCore::CSSParserTokenRange&amp;, WebCore::CSSParserContext const&amp;)+0x284 (WebCore:x86_64+0x372b584)
    #5 0x12e86ce27 in WebCore::CSSPropertyParser::parseCounterStyleDescriptor(WebCore::CSSPropertyID, WebCore::CSSParserTokenRange&amp;, WebCore::CSSParserContext const&amp;)+0x1f7 (WebCore:x86_64+0x3728e27)
    #6 0x12e5dfccb in WebCore::CSSCounterStyleRule::setterInternal(WebCore::CSSPropertyID, WTF::String const&amp;)+0x1db (WebCore:x86_64+0x349bccb)
    #7 0x12e5e0020 in WebCore::CSSCounterStyleRule::setAdditiveSymbols(WTF::String const&amp;)+0x10 (WebCore:x86_64+0x349c020)
    #8 0x12b890bbf in WebCore::setJSCSSCounterStyleRule_additiveSymbolsSetter(JSC::JSGlobalObject&amp;, WebCore::JSCSSCounterStyleRule&amp;, JSC::JSValue)::&apos;lambda&apos;()::operator()() const+0x4f (WebCore:x86_64+0x74cbbf)
    #9 0x12b890b68 in void WebCore::invokeFunctorPropagatingExceptionIfNecessary&lt;WebCore::setJSCSSCounterStyleRule_additiveSymbolsSetter(JSC::JSGlobalObject&amp;, WebCore::JSCSSCounterStyleRule&amp;, JSC::JSValue)::&apos;lambda&apos;()&gt;(JSC::JSGlobalObject&amp;, JSC::ThrowScope&amp;, WebCore::setJSCSSCounterStyleRule_additiveSymbolsSetter(JSC::JSGlobalObject&amp;, WebCore::JSCSSCounterStyleRule&amp;, JSC::JSValue)::&apos;lambda&apos;()&amp;&amp;)+0x8 (WebCore:x86_64+0x74cb68)
    #10 0x12b890a64 in WebCore::setJSCSSCounterStyleRule_additiveSymbolsSetter(JSC::JSGlobalObject&amp;, WebCore::JSCSSCounterStyleRule&amp;, JSC::JSValue)+0x164 (WebCore:x86_64+0x74ca64)
    #11 0x12b7d49fb in bool WebCore::IDLAttribute&lt;WebCore::JSCSSCounterStyleRule&gt;::set&lt;&amp;(WebCore::setJSCSSCounterStyleRule_additiveSymbolsSetter(JSC::JSGlobalObject&amp;, WebCore::JSCSSCounterStyleRule&amp;, JSC::JSValue)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::JSGlobalObject&amp;, long long, long long, JSC::PropertyName)+0x10b (WebCore:x86_64+0x6909fb)
    #12 0x12b7d48e8 in WebCore::setJSCSSCounterStyleRule_additiveSymbols(JSC::JSGlobalObject*, long long, long long, JSC::PropertyName)+0x8 (WebCore:x86_64+0x6908e8)
    #13 0x10ca7261a in JSC::callCustomSetter(JSC::JSGlobalObject*, bool (*)(JSC::JSGlobalObject*, long long, long long, JSC::PropertyName), bool, JSC::JSObject*, JSC::JSValue, JSC::JSValue, JSC::PropertyName)+0xea (JavaScriptCore:x86_64+0x2ccb61a)
    #14 0x10cd036f7 in JSC::JSObject::putInlineSlow(JSC::JSGlobalObject*, JSC::PropertyName, JSC::JSValue, JSC::PutPropertySlot&amp;)+0x857 (JavaScriptCore:x86_64+0x2f5c6f7)
    #15 0x10c5bcdd7 in llint_slow_path_put_by_id+0xa27 (JavaScriptCore:x86_64+0x2815dd7)
    #16 0x10a9fcdff in llint_entry+0xa01f (JavaScriptCore:x86_64+0xc55dff)
    #17 0x10a9f2bd8 in vmEntryToJavaScript+0xd7 (JavaScriptCore:x86_64+0xc4bbd8)
    #18 0x10c2b0fdc in JSC::Interpreter::executeProgram(JSC::SourceCode const&amp;, JSC::JSGlobalObject*, JSC::JSObject*)+0x7b8c (JavaScriptCore:x86_64+0x2509fdc)
    #19 0x10ca6017e in JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0x21e (JavaScriptCore:x86_64+0x2cb917e)
    #20 0x10ca60437 in JSC::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0xe7 (JavaScriptCore:x86_64+0x2cb9437)
    #21 0x12e2c8400 in WebCore::JSExecState::profiledEvaluate(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::SourceCode const&amp;, JSC::JSValue, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)+0xe0 (WebCore:x86_64+0x3184400)
    #22 0x12e2c7c05 in WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)+0x2e5 (WebCore:x86_64+0x3183c05)
    #23 0x12e2c77fd in WebCore::ScriptController::evaluateInWorldIgnoringException(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)+0xed (WebCore:x86_64+0x31837fd)
    #24 0x12e2c860f in WebCore::ScriptController::evaluateIgnoringException(WebCore::ScriptSourceCode const&amp;)+0x1f (WebCore:x86_64+0x318460f)
    #25 0x12ec781ac in WebCore::ScriptElement::executeClassicScript(WebCore::ScriptSourceCode const&amp;)+0x3bc (WebCore:x86_64+0x3b341ac)
    #26 0x12ec74c8e in WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport)+0xb0e (WebCore:x86_64+0x3b30c8e)
    #27 0x12f40bd06 in WebCore::HTMLScriptRunner::runScript(WebCore::ScriptElement&amp;, WTF::TextPosition const&amp;)+0x206 (WebCore:x86_64+0x42c7d06)
    #28 0x12f40b9d4 in WebCore::HTMLScriptRunner::execute(WTF::Ref&lt;WebCore::ScriptElement, WTF::RawPtrTraits&lt;WebCore::ScriptElement&gt; &gt;&amp;&amp;, WTF::TextPosition const&amp;)+0x84 (WebCore:x86_64+0x42c79d4)
    #29 0x12f3e23bd in WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()+0x3ed (WebCore:x86_64+0x429e3bd)
    #30 0x12f3e2a4d in WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;)+0x32d (WebCore:x86_64+0x429ea4d)
    #31 0x12f3e19fe in WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)+0x17e (WebCore:x86_64+0x429d9fe)
    #32 0x12f3e1578 in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)+0x38 (WebCore:x86_64+0x429d578)
    #33 0x12f3e3999 in WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl, WTF::RawPtrTraits&lt;WTF::StringImpl&gt;, WTF::DefaultRefDerefTraits&lt;WTF::StringImpl&gt; &gt;&amp;&amp;)+0x2d9 (WebCore:x86_64+0x429f999)
    #34 0x12ea20a5f in WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;)+0x14f (WebCore:x86_64+0x38dca5f)
    #35 0x12f91047b in WebCore::DocumentWriter::end()+0x14b (WebCore:x86_64+0x47cc47b)
    #36 0x12f90f032 in WebCore::DocumentLoader::finishedLoading()+0x2e2 (WebCore:x86_64+0x47cb032)
    #37 0x12f90e998 in WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource&amp;, WebCore::NetworkLoadMetrics const&amp;)+0x2c8 (WebCore:x86_64+0x47ca998)
    #38 0x12fae3e1f in WebCore::CachedResource::checkNotify(WebCore::NetworkLoadMetrics const&amp;)+0x17f (WebCore:x86_64+0x499fe1f)
    #39 0x12fade2ce in WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)+0x4e (WebCore:x86_64+0x499a2ce)
    #40 0x12fadfd48 in WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*, WebCore::NetworkLoadMetrics const&amp;)+0x258 (WebCore:x86_64+0x499bd48)
    #41 0x12fa519b7 in WebCore::SubresourceLoader::didFinishLoading(WebCore::NetworkLoadMetrics const&amp;)+0x737 (WebCore:x86_64+0x490d9b7)
    #42 0x12fa31300 in WebCore::ResourceLoader::didFinishLoading(WebCore::ResourceHandle*)+0x140 (WebCore:x86_64+0x48ed300)
    #43 0x1315a5940 in -[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]::$_7::operator()()+0xe0 (WebCore:x86_64+0x6461940)
    #44 0x1315a57ac in WTF::Detail::CallableWrapper&lt;-[WebCoreResourceHandleAsOperationQueueDelegate connectionDidFinishLoading:]::$_7, void&gt;::call()+0xc (WebCore:x86_64+0x64617ac)
    #45 0x109de0eee in WTF::Function&lt;void ()&gt;::operator()() const+0x3e (JavaScriptCore:x86_64+0x39eee)
    #46 0x109e80328 in WTF::RunLoop::performWork()+0x238 (JavaScriptCore:x86_64+0xd9328)
    #47 0x109e837aa in WTF::RunLoop::performWork(void*)+0xba (JavaScriptCore:x86_64+0xdc7aa)
    #48 0x7fff204d47db in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__+0x10 (CoreFoundation:x86_64+0x817db)
    #49 0x7fff204d4743 in __CFRunLoopDoSource0+0xb3 (CoreFoundation:x86_64+0x81743)
    #50 0x7fff204d44b9 in __CFRunLoopDoSources0+0xf1 (CoreFoundation:x86_64+0x814b9)
    #51 0x7fff204d2ec7 in __CFRunLoopRun+0x380 (CoreFoundation:x86_64+0x7fec7)
    #52 0x7fff204d247f in CFRunLoopRunSpecific+0x236 (CoreFoundation:x86_64+0x7f47f)
    #53 0x108bb7d00 in runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) DumpRenderTree.mm:1959
    #54 0x108bb7131 in runTestingServerLoop() DumpRenderTree.mm:1073
    #55 0x108bb6005 in dumpRenderTree(int, char const**) DumpRenderTree.mm:1186
    #56 0x108bb8ac4 in DumpRenderTreeMain(int, char const**) DumpRenderTree.mm:1297
    #57 0x108cb6198 in main DumpRenderTreeMain.mm:34
    #58 0x7fff203f6f3c in start+0x0 (libdyld.dylib:x86_64+0x15f3c)
 
Address 0x7ffee70753b8 is located in stack of thread T0 at offset 248 in frame
    #0 0x12e5dfaff in WebCore::CSSCounterStyleRule::setterInternal(WebCore::CSSPropertyID, WTF::String const&amp;)+0xf (WebCore:x86_64+0x349baff)
 
  This frame has 7 object(s):
    [32, 40) &apos;ref.tmp.i.i15&apos;
    [64, 72) &apos;ref.tmp.i.i&apos;
    [96, 112) &apos;tokens&apos; (line 223)
    [128, 1032) &apos;ref.tmp&apos; (line 223) &lt;== Memory access at offset 248 is inside this variable
    [1168, 1176) &apos;newValue&apos; (line 224)
    [1200, 1208) &apos;agg.tmp&apos;
    [1232, 1256) &apos;mutationScope&apos; (line 228)
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-use-after-scope (WebCore:x86_64+0x342de85) in WebCore::CSSParserToken::type() const+0x35
Shadow bytes around the buggy address:
  0x1fffdce0ea20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x1fffdce0ea30: 00 00 00 00 f1 f1 f1 f1 f8 f2 f2 f2 f8 f2 f2 f2
  0x1fffdce0ea40: f8 f2 f2 f2 f8 f3 f3 f3 00 00 00 00 00 00 00 00
  0x1fffdce0ea50: 00 00 00 00 00 00 00 00 f1 f1 f1 f1 f8 f2 f2 f2
  0x1fffdce0ea60: f8 f2 f2 f2 00 00 f2 f2 f8 f8 f8 f8 f8 f8 f8 f8
=&gt;0x1fffdce0ea70: f8 f8 f8 f8 f8 f8 f8[f8]f8 f8 f8 f8 f8 f8 f8 f8
  0x1fffdce0ea80: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
  0x1fffdce0ea90: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
  0x1fffdce0eaa0: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
  0x1fffdce0eab0: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
  0x1fffdce0eac0: f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8
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
==41704==ABORTING</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753026</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-21 20:28:10 -0700</bug_when>
    <thetext>Committed r276418 (236883@main): &lt;https://commits.webkit.org/236883@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426767.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1753404</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-22 17:46:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/77047779&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426767</attachid>
            <date>2021-04-21 20:23:02 -0700</date>
            <delta_ts>2021-04-21 20:28:10 -0700</delta_ts>
            <desc>REVERT of r276380</desc>
            <filename>bug-224912-20210422032301.patch</filename>
            <type>text/plain</type>
            <size>49308</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2NDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODM0ZWM1M2MxYTAyNDE5
MTQwNmY2MDAxNWYwYTQ0YzRkMTQ3YTdlNC4uZTEwNDFjOGNkZWZkOGEyYjBjNjY0NjI4NzA4NTll
Mzg1MGNlOWQ1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTIxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3NjM4MCBhbmQgcjI3NjM4Ni4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDkxMgorCisgICAgICAgIENhdXNlZCBXUFQgY3Nz
L2Nzcy1jb3VudGVyLXN0eWxlcy9jc3NvbSB0ZXN0IGNyYXNoZXMgb24gbWFjT1MKKyAgICAgICAg
V0sxIHdpdGggQVNhbgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
Iltjc3MtY291bnRlci1zdHlsZXNdIFBhcnNlIEBjb3VudGVyLXN0eWxlIGRlc2NyaXB0b3JzIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzE4Cisg
ICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzYzODAKKworICAgICAg
ICAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBzaG91bGQgdXNlIEMrKyBzdHlsZQor
ICAgICAgICBjb21tZW50cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNDg3NQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjc2Mzg2CisKIDIwMjEtMDQtMjEgIFBlbmcgTGl1ICA8cGVuZy5saXU2QGFwcGxlLmNvbT4K
IAogICAgICAgICBbR1BVUF0gUmVmYWN0b3IgU291cmNlQnVmZmVyOjplbnF1ZXVlZFNhbXBsZXNG
b3JUcmFja0lEKCkgZm9yIHRlc3RpbmcgcHVycG9zZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKaW5kZXggYzUwMWQ0ZDFlNDhiZmRm
YzhmOWY1OGNhMjA5MDUyNTQyODhmMjVlMi4uNTExZjg5ZTY1MGY5YjRkNTI1OGI0MmFmMmI4Nzlh
YTk0OWE1ZWQ0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAKQEAgLTM5MDYsNyArMzkwNiw3IEBAIFJlZlB0cjxDU1NWYWx1ZT4g
Q29tcHV0ZWRTdHlsZUV4dHJhY3Rvcjo6dmFsdWVGb3JQcm9wZXJ0eUluU3R5bGUoY29uc3QgUmVu
ZGVyU3R5CiAgICAgICAgIH0KICNlbmRpZgogCi0gICAgICAgIC8vIEluZGl2aWR1YWwgcHJvcGVy
dGllcyBub3QgcGFydCBvZiB0aGUgc3BlYworICAgICAgICAvKiBJbmRpdmlkdWFsIHByb3BlcnRp
ZXMgbm90IHBhcnQgb2YgdGhlIHNwZWMgKi8KICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJhY2tn
cm91bmRSZXBlYXRYOgogICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZFJlcGVhdFk6
CiAgICAgICAgICAgICBicmVhazsKQEAgLTM5NDcsMTMgKzM5NDcsMTMgQEAgUmVmUHRyPENTU1Zh
bHVlPiBDb21wdXRlZFN0eWxlRXh0cmFjdG9yOjp2YWx1ZUZvclByb3BlcnR5SW5TdHlsZShjb25z
dCBSZW5kZXJTdHkKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVF1b3RlczoKICAgICAgICAgICAg
IHJldHVybiB2YWx1ZUZvclF1b3RlcyhzdHlsZS5xdW90ZXMoKSk7CiAKLSAgICAgICAgLy8gVW5p
bXBsZW1lbnRlZCBDU1MgMyBwcm9wZXJ0aWVzIChpbmNsdWRpbmcgQ1NTMyBzaG9ydGhhbmQgcHJv
cGVydGllcykKKyAgICAgICAgLyogVW5pbXBsZW1lbnRlZCBDU1MgMyBwcm9wZXJ0aWVzIChpbmNs
dWRpbmcgQ1NTMyBzaG9ydGhhbmQgcHJvcGVydGllcykgKi8KICAgICAgICAgY2FzZSBDU1NQcm9w
ZXJ0eUFsbDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFuaW1hdGlvbjoKICAgICAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdFRleHRFbXBoYXNpczoKICAgICAgICAgICAgIGJyZWFrOwogCi0g
ICAgICAgIC8vIERpcmVjdGlvbmFsIHByb3BlcnRpZXMgYXJlIHJlc29sdmVkIGJ5IHJlc29sdmVE
aXJlY3Rpb25Bd2FyZVByb3BlcnR5KCkgYmVmb3JlIHRoZSBzd2l0Y2guCisgICAgICAgIC8qIERp
cmVjdGlvbmFsIHByb3BlcnRpZXMgYXJlIHJlc29sdmVkIGJ5IHJlc29sdmVEaXJlY3Rpb25Bd2Fy
ZVByb3BlcnR5KCkgYmVmb3JlIHRoZSBzd2l0Y2guICovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlCb3JkZXJCbG9ja0VuZDoKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUJvcmRlckJsb2NrRW5k
Q29sb3I6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlCb3JkZXJCbG9ja0VuZFN0eWxlOgpAQCAt
NDAwMywzMCArNDAwMywxOCBAQCBSZWZQdHI8Q1NTVmFsdWU+IENvbXB1dGVkU3R5bGVFeHRyYWN0
b3I6OnZhbHVlRm9yUHJvcGVydHlJblN0eWxlKGNvbnN0IFJlbmRlclN0eQogICAgICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICBicmVhazsKIAotICAgICAgICAvLyBU
aGVzZSBhcmUgaW50ZW50aW9uYWxseSB1bmltcGxlbWVudGVkIGJlY2F1c2UgdGhleSBhcmUgYWN0
dWFsbHkgZGVzY3JpcHRvcnMgZm9yIEBjb3VudGVyLXN0eWxlLgotICAgICAgICBjYXNlIENTU1By
b3BlcnR5U3lzdGVtOgotICAgICAgICBjYXNlIENTU1Byb3BlcnR5TmVnYXRpdmU6Ci0gICAgICAg
IGNhc2UgQ1NTUHJvcGVydHlQcmVmaXg6Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTdWZmaXg6
Ci0gICAgICAgIGNhc2UgQ1NTUHJvcGVydHlSYW5nZToKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0
eVBhZDoKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUZhbGxiYWNrOgotICAgICAgICBjYXNlIENT
U1Byb3BlcnR5U3ltYm9sczoKLSAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eUFkZGl0aXZlU3ltYm9s
czoKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIC8vIFVuaW1wbGVtZW50ZWQgQGZvbnQt
ZmFjZSBwcm9wZXJ0aWVzCisgICAgICAgIC8qIFVuaW1wbGVtZW50ZWQgQGZvbnQtZmFjZSBwcm9w
ZXJ0aWVzICovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlTcmM6CiAgICAgICAgIGNhc2UgQ1NT
UHJvcGVydHlVbmljb2RlUmFuZ2U6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlGb250RGlzcGxh
eToKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIC8vIE90aGVyIHVuaW1wbGVtZW50ZWQg
cHJvcGVydGllcworICAgICAgICAvKiBPdGhlciB1bmltcGxlbWVudGVkIHByb3BlcnRpZXMgKi8K
ICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVBhZ2U6IC8vIGZvciBAcGFnZQogICAgICAgICBjYXNl
IENTU1Byb3BlcnR5U2l6ZTogLy8gZm9yIEBwYWdlCiAgICAgICAgICAgICBicmVhazsKIAotICAg
ICAgICAvLyBVbmltcGxlbWVudGVkIC13ZWJraXQtIHByb3BlcnRpZXMKKyAgICAgICAgLyogVW5p
bXBsZW1lbnRlZCAtd2Via2l0LSBwcm9wZXJ0aWVzICovCiAgICAgICAgIGNhc2UgQ1NTUHJvcGVy
dHlXZWJraXRCb3JkZXJSYWRpdXM6CiAgICAgICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJn
aW5Db2xsYXBzZToKICAgICAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rp
b246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ291bnRlclN0eWxlUnVsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ291bnRlclN0eWxlUnVsZS5jcHAKaW5kZXggMWZm
ZjI0Y2E4ZWZjMTU1OTI2NzE4YmE4NDg3NDA5YjliNTZkZjk0Mi4uMjI5YzQ1MjRkMWVlOGE3ZTg0
MmNiN2ViNGM3ZDU1M2Q5MjhlYTYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NvdW50ZXJTdHlsZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb3VudGVy
U3R5bGVSdWxlLmNwcApAQCAtMjYsMTIgKzI2LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJDU1NDb3VudGVyU3R5bGVSdWxlLmgiCiAKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eVBh
cnNlci5oIgotI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKLSNpbmNsdWRlICJDU1NUb2tlbml6
ZXIuaCIKLSNpbmNsdWRlICJQYWlyLmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgotCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBTdHlsZVJ1bGVDb3VudGVyU3R5bGU6
OlN0eWxlUnVsZUNvdW50ZXJTdHlsZShjb25zdCBBdG9tU3RyaW5nJiBuYW1lLCBSZWY8U3R5bGVQ
cm9wZXJ0aWVzPiYmIHByb3BlcnRpZXMpCkBAIC00Niw5NCArNDAsNiBAQCBSZWY8U3R5bGVSdWxl
Q291bnRlclN0eWxlPiBTdHlsZVJ1bGVDb3VudGVyU3R5bGU6OmNyZWF0ZShjb25zdCBBdG9tU3Ry
aW5nJiBuYW1lLAogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFN0eWxlUnVsZUNvdW50ZXJTdHls
ZShuYW1lLCBXVEZNb3ZlKHByb3BlcnRpZXMpKSk7CiB9CiAKLXN0YXRpYyBDb3VudGVyU3R5bGVT
eXN0ZW0gdG9Db3VudGVyU3R5bGVTeXN0ZW1FbnVtKFJlZlB0cjxDU1NWYWx1ZT4gc3lzdGVtKQot
ewotICAgIGlmICghc3lzdGVtIHx8ICFzeXN0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkKLSAgICAg
ICAgcmV0dXJuIENvdW50ZXJTdHlsZVN5c3RlbTo6U3ltYm9saWM7Ci0KLSAgICBhdXRvJiBwcmlt
aXRpdmVTeXN0ZW1WYWx1ZSA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqc3lzdGVtKTsK
LSAgICBBU1NFUlQocHJpbWl0aXZlU3lzdGVtVmFsdWUuaXNWYWx1ZUlEKCkgfHwgcHJpbWl0aXZl
U3lzdGVtVmFsdWUuaXNQYWlyKCkpOwotICAgIENTU1ZhbHVlSUQgc3lzdGVtS2V5d29yZCA9IENT
U1ZhbHVlSW52YWxpZDsKLSAgICBpZiAocHJpbWl0aXZlU3lzdGVtVmFsdWUuaXNWYWx1ZUlEKCkp
Ci0gICAgICAgIHN5c3RlbUtleXdvcmQgPSBwcmltaXRpdmVTeXN0ZW1WYWx1ZS52YWx1ZUlEKCk7
Ci0gICAgZWxzZSBpZiAoYXV0byogcGFpciA9IHByaW1pdGl2ZVN5c3RlbVZhbHVlLnBhaXJWYWx1
ZSgpKSB7Ci0gICAgICAgIC8vIFRoaXMgdmFsdWUgbXVzdCBiZSBgZml4ZWRgIG9yIGBleHRlbmRz
YCwgYm90aCBvZiB3aGljaCBjYW4gb3IgbXVzdCBoYXZlIGFuIGFkZGl0aW9uYWwgY29tcG9uZW50
LgotICAgICAgICBhdXRvIGZpcnN0VmFsdWUgPSBwYWlyLT5maXJzdCgpOwotICAgICAgICBBU1NF
UlQoZmlyc3RWYWx1ZSAmJiBmaXJzdFZhbHVlLT5pc1ZhbHVlSUQoKSk7Ci0gICAgICAgIGlmIChm
aXJzdFZhbHVlKQotICAgICAgICAgICAgc3lzdGVtS2V5d29yZCA9IGZpcnN0VmFsdWUtPnZhbHVl
SUQoKTsKLSAgICB9Ci0KLSAgICBzd2l0Y2ggKHN5c3RlbUtleXdvcmQpIHsKLSAgICBjYXNlIENT
U1ZhbHVlQ3ljbGljOgotICAgICAgICByZXR1cm4gQ291bnRlclN0eWxlU3lzdGVtOjpDeWNsaWM7
Ci0gICAgY2FzZSBDU1NWYWx1ZUZpeGVkOgotICAgICAgICByZXR1cm4gQ291bnRlclN0eWxlU3lz
dGVtOjpGaXhlZDsKLSAgICBjYXNlIENTU1ZhbHVlU3ltYm9saWM6Ci0gICAgICAgIHJldHVybiBD
b3VudGVyU3R5bGVTeXN0ZW06OlN5bWJvbGljOwotICAgIGNhc2UgQ1NTVmFsdWVBbHBoYWJldGlj
OgotICAgICAgICByZXR1cm4gQ291bnRlclN0eWxlU3lzdGVtOjpBbHBoYWJldGljOwotICAgIGNh
c2UgQ1NTVmFsdWVOdW1lcmljOgotICAgICAgICByZXR1cm4gQ291bnRlclN0eWxlU3lzdGVtOjpO
dW1lcmljOwotICAgIGNhc2UgQ1NTVmFsdWVBZGRpdGl2ZToKLSAgICAgICAgcmV0dXJuIENvdW50
ZXJTdHlsZVN5c3RlbTo6QWRkaXRpdmU7Ci0gICAgY2FzZSBDU1NWYWx1ZUV4dGVuZHM6Ci0gICAg
ICAgIHJldHVybiBDb3VudGVyU3R5bGVTeXN0ZW06OkV4dGVuZHM7Ci0gICAgZGVmYXVsdDoKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBDb3VudGVyU3R5bGVT
eXN0ZW06OlN5bWJvbGljOwotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgc3ltYm9sc1ZhbGlkRm9y
U3lzdGVtKENvdW50ZXJTdHlsZVN5c3RlbSBzeXN0ZW0sIFJlZlB0cjxDU1NWYWx1ZT4gc3ltYm9s
cywgUmVmUHRyPENTU1ZhbHVlPiBhZGRpdGl2ZVN5bWJvbHMpCi17Ci0gICAgc3dpdGNoIChzeXN0
ZW0pIHsKLSAgICBjYXNlIENvdW50ZXJTdHlsZVN5c3RlbTo6Q3ljbGljOgotICAgIGNhc2UgQ291
bnRlclN0eWxlU3lzdGVtOjpGaXhlZDoKLSAgICBjYXNlIENvdW50ZXJTdHlsZVN5c3RlbTo6U3lt
Ym9saWM6Ci0gICAgICAgIHJldHVybiBzeW1ib2xzICYmIHN5bWJvbHMtPmlzVmFsdWVMaXN0KCkg
JiYgZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pigqc3ltYm9scykubGVuZ3RoKCk7Ci0gICAgY2FzZSBD
b3VudGVyU3R5bGVTeXN0ZW06OkFscGhhYmV0aWM6Ci0gICAgY2FzZSBDb3VudGVyU3R5bGVTeXN0
ZW06Ok51bWVyaWM6Ci0gICAgICAgIHJldHVybiBzeW1ib2xzICYmIHN5bWJvbHMtPmlzVmFsdWVM
aXN0KCkgJiYgZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pigqc3ltYm9scykubGVuZ3RoKCkgPj0gMnU7
Ci0gICAgY2FzZSBDb3VudGVyU3R5bGVTeXN0ZW06OkFkZGl0aXZlOgotICAgICAgICByZXR1cm4g
YWRkaXRpdmVTeW1ib2xzICYmIGFkZGl0aXZlU3ltYm9scy0+aXNWYWx1ZUxpc3QoKSAmJiBkb3du
Y2FzdDxDU1NWYWx1ZUxpc3Q+KCphZGRpdGl2ZVN5bWJvbHMpLmxlbmd0aCgpOwotICAgIGNhc2Ug
Q291bnRlclN0eWxlU3lzdGVtOjpFeHRlbmRzOgotICAgICAgICByZXR1cm4gIXN5bWJvbHMgJiYg
IWFkZGl0aXZlU3ltYm9sczsKLSAgICBkZWZhdWx0OgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLX0KLQotYm9vbCBTdHlsZVJ1bGVD
b3VudGVyU3R5bGU6Om5ld1ZhbHVlSW52YWxpZE9yRXF1YWwoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0
eUlELCBjb25zdCBSZWZQdHI8Q1NTVmFsdWU+IG5ld1ZhbHVlKSBjb25zdAotewotICAgIGF1dG8g
Y3VycmVudFZhbHVlID0gbV9wcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKHByb3BlcnR5
SUQpOwotICAgIGlmIChjb21wYXJlQ1NTVmFsdWVQdHIoY3VycmVudFZhbHVlLCBuZXdWYWx1ZSkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgUmVmUHRyPENTU1ZhbHVlPiBzeW1ib2xzOwot
ICAgIFJlZlB0cjxDU1NWYWx1ZT4gYWRkaXRpdmVTeW1ib2xzOwotICAgIHN3aXRjaCAocHJvcGVy
dHlJRCkgewotICAgIGNhc2UgQ1NTUHJvcGVydHlTeXN0ZW06Ci0gICAgICAgIC8vIElmIHRoZSBh
dHRyaWJ1dGUgYmVpbmcgc2V0IGlzIGBzeXN0ZW1gLCBhbmQgdGhlIG5ldyB2YWx1ZSB3b3VsZCBj
aGFuZ2UgdGhlIGFsZ29yaXRobSB1c2VkLCBkbyBub3RoaW5nCi0gICAgICAgIC8vIGFuZCBhYm9y
dCB0aGVzZSBzdGVwcy4KLSAgICAgICAgLy8gKEl0J3Mgb2theSB0byBjaGFuZ2UgYW4gYXNwZWN0
IG9mIHRoZSBhbGdvcml0aG0sIGxpa2UgdGhlIGZpcnN0IHN5bWJvbCB2YWx1ZSBvZiBhIGBmaXhl
ZGAgc3lzdGVtLikKLSAgICAgICAgcmV0dXJuIHRvQ291bnRlclN0eWxlU3lzdGVtRW51bShjdXJy
ZW50VmFsdWUpICE9IHRvQ291bnRlclN0eWxlU3lzdGVtRW51bShuZXdWYWx1ZSk7Ci0gICAgY2Fz
ZSBDU1NQcm9wZXJ0eVN5bWJvbHM6Ci0gICAgICAgIHN5bWJvbHMgPSBuZXdWYWx1ZTsKLSAgICAg
ICAgYWRkaXRpdmVTeW1ib2xzID0gbV9wcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eUNTU1ZhbHVlKENT
U1Byb3BlcnR5QWRkaXRpdmVTeW1ib2xzKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NQ
cm9wZXJ0eUFkZGl0aXZlU3ltYm9sczoKLSAgICAgICAgc3ltYm9scyA9IG1fcHJvcGVydGllcy0+
Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVN5bWJvbHMpOwotICAgICAgICBhZGRpdGl2
ZVN5bWJvbHMgPSBuZXdWYWx1ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgZGVmYXVsdDoKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICBhdXRvIHN5c3RlbSA9IG1fcHJvcGVydGllcy0+
Z2V0UHJvcGVydHlDU1NWYWx1ZShDU1NQcm9wZXJ0eVN5c3RlbSk7Ci0gICAgcmV0dXJuIHN5bWJv
bHNWYWxpZEZvclN5c3RlbSh0b0NvdW50ZXJTdHlsZVN5c3RlbUVudW0oc3lzdGVtKSwgc3ltYm9s
cywgYWRkaXRpdmVTeW1ib2xzKTsKLX0KLQogU3R5bGVSdWxlQ291bnRlclN0eWxlOjp+U3R5bGVS
dWxlQ291bnRlclN0eWxlKCkgPSBkZWZhdWx0OwogCiBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzJiBT
dHlsZVJ1bGVDb3VudGVyU3R5bGU6Om11dGFibGVQcm9wZXJ0aWVzKCkKQEAgLTE1OCw0NyArNjQs
OCBAQCBDU1NDb3VudGVyU3R5bGVSdWxlOjp+Q1NTQ291bnRlclN0eWxlUnVsZSgpID0gZGVmYXVs
dDsKIAogU3RyaW5nIENTU0NvdW50ZXJTdHlsZVJ1bGU6OmNzc1RleHQoKSBjb25zdAogewotICAg
IFN0cmluZyBzeXN0ZW1UZXh0ID0gc3lzdGVtKCk7Ci0gICAgY29uc3QgY2hhciogc3lzdGVtUHJl
Zml4ID0gc3lzdGVtVGV4dC5pc0VtcHR5KCkgPyAiIiA6ICIgc3lzdGVtOiAiOwotICAgIGNvbnN0
IGNoYXIqIHN5c3RlbVN1ZmZpeCA9IHN5c3RlbVRleHQuaXNFbXB0eSgpID8gIiIgOiAiOyI7Ci0K
LSAgICBTdHJpbmcgc3ltYm9sc1RleHQgPSBzeW1ib2xzKCk7Ci0gICAgY29uc3QgY2hhciogc3lt
Ym9sc1ByZWZpeCA9IHN5bWJvbHNUZXh0LmlzRW1wdHkoKSA/ICIiIDogIiBzeW1ib2xzOiAiOwot
ICAgIGNvbnN0IGNoYXIqIHN5bWJvbHNTdWZmaXggPSBzeW1ib2xzVGV4dC5pc0VtcHR5KCkgPyAi
IiA6ICI7IjsKLQotICAgIFN0cmluZyBhZGRpdGl2ZVN5bWJvbHNUZXh0ID0gYWRkaXRpdmVTeW1i
b2xzKCk7Ci0gICAgY29uc3QgY2hhciogYWRkaXRpdmVTeW1ib2xzUHJlZml4ID0gYWRkaXRpdmVT
eW1ib2xzVGV4dC5pc0VtcHR5KCkgPyAiIiA6ICIgYWRkaXRpdmUtc3ltYm9sczogIjsKLSAgICBj
b25zdCBjaGFyKiBhZGRpdGl2ZVN5bWJvbHNTdWZmaXggPSBhZGRpdGl2ZVN5bWJvbHNUZXh0Lmlz
RW1wdHkoKSA/ICIiIDogIjsiOwotCi0gICAgU3RyaW5nIG5lZ2F0aXZlVGV4dCA9IG5lZ2F0aXZl
KCk7Ci0gICAgY29uc3QgY2hhciogbmVnYXRpdmVQcmVmaXggPSBuZWdhdGl2ZVRleHQuaXNFbXB0
eSgpID8gIiIgOiAiIG5lZ2F0aXZlOiAiOwotICAgIGNvbnN0IGNoYXIqIG5lZ2F0aXZlU3VmZml4
ID0gbmVnYXRpdmVUZXh0LmlzRW1wdHkoKSA/ICIiIDogIjsiOwotCi0gICAgU3RyaW5nIHByZWZp
eFRleHQgPSBwcmVmaXgoKTsKLSAgICBjb25zdCBjaGFyKiBwcmVmaXhUZXh0UHJlZml4ID0gcHJl
Zml4VGV4dC5pc0VtcHR5KCkgPyAiIiA6ICIgcHJlZml4OiAiOwotICAgIGNvbnN0IGNoYXIqIHBy
ZWZpeFRleHRTdWZmaXggPSBwcmVmaXhUZXh0LmlzRW1wdHkoKSA/ICIiIDogIjsiOwotCi0gICAg
U3RyaW5nIHN1ZmZpeFRleHQgPSBzdWZmaXgoKTsKLSAgICBjb25zdCBjaGFyKiBzdWZmaXhUZXh0
UHJlZml4ID0gc3VmZml4VGV4dC5pc0VtcHR5KCkgPyAiIiA6ICIgc3VmZml4OiAiOwotICAgIGNv
bnN0IGNoYXIqIHN1ZmZpeFRleHRTdWZmaXggPSBzdWZmaXhUZXh0LmlzRW1wdHkoKSA/ICIiIDog
IjsiOwotCi0gICAgU3RyaW5nIHBhZFRleHQgPSBwYWQoKTsKLSAgICBjb25zdCBjaGFyKiBwYWRQ
cmVmaXggPSBwYWRUZXh0LmlzRW1wdHkoKSA/ICIiIDogIiBwYWQ6ICI7Ci0gICAgY29uc3QgY2hh
ciogcGFkU3VmZml4ID0gcGFkVGV4dC5pc0VtcHR5KCkgPyAiIiA6ICI7IjsKLQotICAgIFN0cmlu
ZyByYW5nZVRleHQgPSByYW5nZSgpOwotICAgIGNvbnN0IGNoYXIqIHJhbmdlUHJlZml4ID0gcmFu
Z2VUZXh0LmlzRW1wdHkoKSA/ICIiIDogIiByYW5nZTogIjsKLSAgICBjb25zdCBjaGFyKiByYW5n
ZVN1ZmZpeCA9IHJhbmdlVGV4dC5pc0VtcHR5KCkgPyAiIiA6ICI7IjsKLQotICAgIFN0cmluZyBm
YWxsYmFja1RleHQgPSBmYWxsYmFjaygpOwotICAgIGNvbnN0IGNoYXIqIGZhbGxiYWNrUHJlZml4
ID0gZmFsbGJhY2tUZXh0LmlzRW1wdHkoKSA/ICIiIDogIiBmYWxsYmFjazogIjsKLSAgICBjb25z
dCBjaGFyKiBmYWxsYmFja1N1ZmZpeCA9IGZhbGxiYWNrVGV4dC5pc0VtcHR5KCkgPyAiIiA6ICI7
IjsKLQotICAgIFN0cmluZyBzcGVha0FzVGV4dCA9IHNwZWFrQXMoKTsKLSAgICBjb25zdCBjaGFy
KiBzcGVha0FzUHJlZml4ID0gc3BlYWtBc1RleHQuaXNFbXB0eSgpID8gIiIgOiAiIHNwZWFrLWFz
OiAiOwotICAgIGNvbnN0IGNoYXIqIHNwZWFrQXNTdWZmaXggPSBzcGVha0FzVGV4dC5pc0VtcHR5
KCkgPyAiIiA6ICI7IjsKLQotICAgIHJldHVybiBtYWtlU3RyaW5nKCJAY291bnRlci1zdHlsZSAi
LCBuYW1lKCksICIgeyIsIHN5c3RlbVByZWZpeCwgc3lzdGVtVGV4dCwgc3lzdGVtU3VmZml4LCBz
eW1ib2xzUHJlZml4LCBzeW1ib2xzVGV4dCwgc3ltYm9sc1N1ZmZpeCwgYWRkaXRpdmVTeW1ib2xz
UHJlZml4LCBhZGRpdGl2ZVN5bWJvbHNUZXh0LCBhZGRpdGl2ZVN5bWJvbHNTdWZmaXgsIG5lZ2F0
aXZlUHJlZml4LCBuZWdhdGl2ZVRleHQsIG5lZ2F0aXZlU3VmZml4LCBwcmVmaXhUZXh0UHJlZml4
LCBwcmVmaXhUZXh0LCBwcmVmaXhUZXh0U3VmZml4LCBzdWZmaXhUZXh0UHJlZml4LCBzdWZmaXhU
ZXh0LCBzdWZmaXhUZXh0U3VmZml4LCBwYWRQcmVmaXgsIHBhZFRleHQsIHBhZFN1ZmZpeCwgcmFu
Z2VQcmVmaXgsIHJhbmdlVGV4dCwgcmFuZ2VTdWZmaXgsIGZhbGxiYWNrUHJlZml4LCBmYWxsYmFj
a1RleHQsIGZhbGxiYWNrU3VmZml4LCBzcGVha0FzUHJlZml4LCBzcGVha0FzVGV4dCwgc3BlYWtB
c1N1ZmZpeCwgIiB9Iik7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGZ1bmN0aW9uIHdo
ZW4gd2UgcGFyc2UgQGNvdW50ZXItc3R5bGUgZGVzY3JpcHRvcnMuCisgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiB9CiAKIHZvaWQgQ1NTQ291bnRlclN0eWxlUnVsZTo6cmVhdHRhY2goU3R5bGVS
dWxlQmFzZSYgcnVsZSkKQEAgLTIwNiw3NyArNzMsNCBAQCB2b2lkIENTU0NvdW50ZXJTdHlsZVJ1
bGU6OnJlYXR0YWNoKFN0eWxlUnVsZUJhc2UmIHJ1bGUpCiAgICAgbV9jb3VudGVyU3R5bGVSdWxl
ID0gc3RhdGljX2Nhc3Q8U3R5bGVSdWxlQ291bnRlclN0eWxlJj4ocnVsZSk7CiB9CiAKLS8vIGh0
dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtY291bnRlci1zdHlsZXMtMy8jZG9tLWNzc2NvdW50
ZXJzdHlsZXJ1bGUtbmFtZQotdm9pZCBDU1NDb3VudGVyU3R5bGVSdWxlOjpzZXROYW1lKGNvbnN0
IFN0cmluZyYgdGV4dCkKLXsKLSAgICBhdXRvIHRva2VucyA9IENTU1Rva2VuaXplcih0ZXh0KS50
b2tlblJhbmdlKCk7Ci0gICAgYXV0byBuYW1lID0gQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpj
b25zdW1lQ291bnRlclN0eWxlTmFtZUluUHJlbHVkZSh0b2tlbnMpOwotICAgIGlmIChuYW1lLmlz
TnVsbCgpIHx8IG5hbWUgPT0gbV9jb3VudGVyU3R5bGVSdWxlLT5uYW1lKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2Nv
cGUodGhpcyk7Ci0gICAgbV9jb3VudGVyU3R5bGVSdWxlLT5zZXROYW1lKG5hbWUpOwotfQotCi12
b2lkIENTU0NvdW50ZXJTdHlsZVJ1bGU6OnNldHRlckludGVybmFsKENTU1Byb3BlcnR5SUQgcHJv
cGVydHlJRCwgY29uc3QgU3RyaW5nJiB2YWx1ZVRleHQpCi17Ci0gICAgYXV0byB0b2tlbnMgPSBD
U1NUb2tlbml6ZXIodmFsdWVUZXh0KS50b2tlblJhbmdlKCk7Ci0gICAgYXV0byBuZXdWYWx1ZSA9
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZUNvdW50ZXJTdHlsZURlc2NyaXB0b3IocHJvcGVydHlJ
RCwgdG9rZW5zLCBwYXJzZXJDb250ZXh0KCkpOwotICAgIGlmIChtX2NvdW50ZXJTdHlsZVJ1bGUt
Pm5ld1ZhbHVlSW52YWxpZE9yRXF1YWwocHJvcGVydHlJRCwgbmV3VmFsdWUpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNj
b3BlKHRoaXMpOwotICAgIG1fY291bnRlclN0eWxlUnVsZS0+bXV0YWJsZVByb3BlcnRpZXMoKS5z
ZXRQcm9wZXJ0eShwcm9wZXJ0eUlELCBXVEZNb3ZlKG5ld1ZhbHVlKSk7Ci19Ci0KLXZvaWQgQ1NT
Q291bnRlclN0eWxlUnVsZTo6c2V0U3lzdGVtKGNvbnN0IFN0cmluZyYgdGV4dCkKLXsKLSAgICBz
ZXR0ZXJJbnRlcm5hbChDU1NQcm9wZXJ0eVN5c3RlbSwgdGV4dCk7Ci19Ci0KLXZvaWQgQ1NTQ291
bnRlclN0eWxlUnVsZTo6c2V0TmVnYXRpdmUoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIHNl
dHRlckludGVybmFsKENTU1Byb3BlcnR5TmVnYXRpdmUsIHRleHQpOwotfQotCi12b2lkIENTU0Nv
dW50ZXJTdHlsZVJ1bGU6OnNldFByZWZpeChjb25zdCBTdHJpbmcmIHRleHQpCi17Ci0gICAgc2V0
dGVySW50ZXJuYWwoQ1NTUHJvcGVydHlQcmVmaXgsIHRleHQpOwotfQotCi12b2lkIENTU0NvdW50
ZXJTdHlsZVJ1bGU6OnNldFN1ZmZpeChjb25zdCBTdHJpbmcmIHRleHQpCi17Ci0gICAgc2V0dGVy
SW50ZXJuYWwoQ1NTUHJvcGVydHlTdWZmaXgsIHRleHQpOwotfQotCi12b2lkIENTU0NvdW50ZXJT
dHlsZVJ1bGU6OnNldFJhbmdlKGNvbnN0IFN0cmluZyYgdGV4dCkKLXsKLSAgICBzZXR0ZXJJbnRl
cm5hbChDU1NQcm9wZXJ0eVJhbmdlLCB0ZXh0KTsKLX0KLQotdm9pZCBDU1NDb3VudGVyU3R5bGVS
dWxlOjpzZXRQYWQoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIHNldHRlckludGVybmFsKENT
U1Byb3BlcnR5UGFkLCB0ZXh0KTsKLX0KLQotdm9pZCBDU1NDb3VudGVyU3R5bGVSdWxlOjpzZXRG
YWxsYmFjayhjb25zdCBTdHJpbmcmIHRleHQpCi17Ci0gICAgc2V0dGVySW50ZXJuYWwoQ1NTUHJv
cGVydHlGYWxsYmFjaywgdGV4dCk7Ci19Ci0KLXZvaWQgQ1NTQ291bnRlclN0eWxlUnVsZTo6c2V0
U3ltYm9scyhjb25zdCBTdHJpbmcmIHRleHQpCi17Ci0gICAgc2V0dGVySW50ZXJuYWwoQ1NTUHJv
cGVydHlTeW1ib2xzLCB0ZXh0KTsKLX0KLQotdm9pZCBDU1NDb3VudGVyU3R5bGVSdWxlOjpzZXRB
ZGRpdGl2ZVN5bWJvbHMoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIHNldHRlckludGVybmFs
KENTU1Byb3BlcnR5QWRkaXRpdmVTeW1ib2xzLCB0ZXh0KTsKLX0KLQotdm9pZCBDU1NDb3VudGVy
U3R5bGVSdWxlOjpzZXRTcGVha0FzKGNvbnN0IFN0cmluZyYgdGV4dCkKLXsKLSAgICBzZXR0ZXJJ
bnRlcm5hbChDU1NQcm9wZXJ0eVNwZWFrQXMsIHRleHQpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ291bnRlclN0eWxlUnVs
ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvdW50ZXJTdHlsZVJ1bGUuaAppbmRleCA3YTg5
N2ZiMTJlMzk1NmVlNmVmODZmODIzOTlhNTdjZmFhNDM1YzA4Li5iMjRmZTFmZDY2ZjE0ZGNmOTU4
YWE5YTdhZjdiM2MwOTQ3YzMyODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Q291bnRlclN0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb3VudGVyU3R5
bGVSdWxlLmgKQEAgLTMyLDE4ICszMiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotLy8g
VGhlIGtleXdvcmRzIHRoYXQgY2FuIGJlIHVzZWQgYXMgdmFsdWVzIGZvciB0aGUgY291bnRlci1z
dHlsZSBgc3lzdGVtYCBkZXNjcmlwdG9yLgotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1j
b3VudGVyLXN0eWxlcy0zLyNjb3VudGVyLXN0eWxlLXN5c3RlbQotZW51bSBjbGFzcyBDb3VudGVy
U3R5bGVTeXN0ZW0gOiB1aW50OF90IHsKLSAgICBDeWNsaWMsCi0gICAgTnVtZXJpYywKLSAgICBB
bHBoYWJldGljLAotICAgIFN5bWJvbGljLAotICAgIEFkZGl0aXZlLAotICAgIEZpeGVkLAotICAg
IEV4dGVuZHMKLX07Ci0KIGNsYXNzIFN0eWxlUnVsZUNvdW50ZXJTdHlsZSBmaW5hbCA6IHB1Ymxp
YyBTdHlsZVJ1bGVCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFN0eWxlUnVsZUNvdW50
ZXJTdHlsZT4gY3JlYXRlKGNvbnN0IEF0b21TdHJpbmcmIG5hbWUsIFJlZjxTdHlsZVByb3BlcnRp
ZXM+JiYpOwpAQCAtNTMsMjAgKzQxLDYgQEAgcHVibGljOgogICAgIE11dGFibGVTdHlsZVByb3Bl
cnRpZXMmIG11dGFibGVQcm9wZXJ0aWVzKCk7CiAKICAgICBjb25zdCBBdG9tU3RyaW5nJiBuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9Ci0gICAgU3RyaW5nIHN5c3RlbSgpIGNvbnN0IHsg
cmV0dXJuIG1fcHJvcGVydGllcy0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVN5c3RlbSk7
IH0KLSAgICBTdHJpbmcgbmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMtPmdl
dFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlOZWdhdGl2ZSk7IH0KLSAgICBTdHJpbmcgcHJlZml4
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eVZhbHVlKENTU1Byb3Bl
cnR5UHJlZml4KTsgfQotICAgIFN0cmluZyBzdWZmaXgoKSBjb25zdCB7IHJldHVybiBtX3Byb3Bl
cnRpZXMtPmdldFByb3BlcnR5VmFsdWUoQ1NTUHJvcGVydHlTdWZmaXgpOyB9Ci0gICAgU3RyaW5n
IHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9wcm9wZXJ0aWVzLT5nZXRQcm9wZXJ0eVZhbHVlKENT
U1Byb3BlcnR5UmFuZ2UpOyB9Ci0gICAgU3RyaW5nIHBhZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJv
cGVydGllcy0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVBhZCk7IH0KLSAgICBTdHJpbmcg
ZmFsbGJhY2soKSBjb25zdCB7IHJldHVybiBtX3Byb3BlcnRpZXMtPmdldFByb3BlcnR5VmFsdWUo
Q1NTUHJvcGVydHlGYWxsYmFjayk7IH0KLSAgICBTdHJpbmcgc3ltYm9scygpIGNvbnN0IHsgcmV0
dXJuIG1fcHJvcGVydGllcy0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eVN5bWJvbHMpOyB9
Ci0gICAgU3RyaW5nIGFkZGl0aXZlU3ltYm9scygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGll
cy0+Z2V0UHJvcGVydHlWYWx1ZShDU1NQcm9wZXJ0eUFkZGl0aXZlU3ltYm9scyk7IH0KLSAgICBT
dHJpbmcgc3BlYWtBcygpIGNvbnN0IHsgcmV0dXJuIG1fcHJvcGVydGllcy0+Z2V0UHJvcGVydHlW
YWx1ZShDU1NQcm9wZXJ0eVNwZWFrQXMpOyB9Ci0KLSAgICBib29sIG5ld1ZhbHVlSW52YWxpZE9y
RXF1YWwoQ1NTUHJvcGVydHlJRCwgY29uc3QgUmVmUHRyPENTU1ZhbHVlPiBuZXdWYWx1ZSkgY29u
c3Q7Ci0KLSAgICB2b2lkIHNldE5hbWUoY29uc3QgQXRvbVN0cmluZyYgbmFtZSkgeyBtX25hbWUg
PSBuYW1lOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU3R5bGVSdWxlQ291bnRlclN0eWxl
KGNvbnN0IEF0b21TdHJpbmcmLCBSZWY8U3R5bGVQcm9wZXJ0aWVzPiYmKTsKQEAgLTg1LDM0ICs1
OSwzNCBAQCBwdWJsaWM6CiAgICAgQ1NTUnVsZTo6VHlwZSB0eXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQ09VTlRFUl9TVFlMRV9SVUxFOyB9CiAKICAgICBTdHJpbmcgbmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY291bnRlclN0eWxlUnVsZS0+bmFtZSgpOyB9Ci0gICAgU3RyaW5nIHN5c3RlbSgp
IGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclN0eWxlUnVsZS0+c3lzdGVtKCk7IH0KLSAgICBTdHJp
bmcgbmVnYXRpdmUoKSBjb25zdCB7IHJldHVybiBtX2NvdW50ZXJTdHlsZVJ1bGUtPm5lZ2F0aXZl
KCk7IH0KLSAgICBTdHJpbmcgcHJlZml4KCkgY29uc3QgeyByZXR1cm4gbV9jb3VudGVyU3R5bGVS
dWxlLT5wcmVmaXgoKTsgfQotICAgIFN0cmluZyBzdWZmaXgoKSBjb25zdCB7IHJldHVybiBtX2Nv
dW50ZXJTdHlsZVJ1bGUtPnN1ZmZpeCgpOyB9Ci0gICAgU3RyaW5nIHJhbmdlKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb3VudGVyU3R5bGVSdWxlLT5yYW5nZSgpOyB9Ci0gICAgU3RyaW5nIHBhZCgpIGNv
bnN0IHsgcmV0dXJuIG1fY291bnRlclN0eWxlUnVsZS0+cGFkKCk7IH0KLSAgICBTdHJpbmcgZmFs
bGJhY2soKSBjb25zdCB7IHJldHVybiBtX2NvdW50ZXJTdHlsZVJ1bGUtPmZhbGxiYWNrKCk7IH0K
LSAgICBTdHJpbmcgc3ltYm9scygpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclN0eWxlUnVsZS0+
c3ltYm9scygpOyB9Ci0gICAgU3RyaW5nIGFkZGl0aXZlU3ltYm9scygpIGNvbnN0IHsgcmV0dXJu
IG1fY291bnRlclN0eWxlUnVsZS0+YWRkaXRpdmVTeW1ib2xzKCk7IH0KLSAgICBTdHJpbmcgc3Bl
YWtBcygpIGNvbnN0IHsgcmV0dXJuIG1fY291bnRlclN0eWxlUnVsZS0+c3BlYWtBcygpOyB9Ci0K
LSAgICB2b2lkIHNldE5hbWUoY29uc3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXRTeXN0ZW0oY29u
c3QgU3RyaW5nJik7Ci0gICAgdm9pZCBzZXROZWdhdGl2ZShjb25zdCBTdHJpbmcmKTsKLSAgICB2
b2lkIHNldFByZWZpeChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIHNldFN1ZmZpeChjb25zdCBT
dHJpbmcmKTsKLSAgICB2b2lkIHNldFJhbmdlKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0
UGFkKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0RmFsbGJhY2soY29uc3QgU3RyaW5nJik7
Ci0gICAgdm9pZCBzZXRTeW1ib2xzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0QWRkaXRp
dmVTeW1ib2xzKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgc2V0U3BlYWtBcyhjb25zdCBTdHJp
bmcmKTsKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGFmdGVyIHdlIHBhcnNlIEBjb3VudGVyLXN0
eWxlIGRlc2NyaXB0b3JzLgorICAgIFN0cmluZyBzeXN0ZW0oKSBjb25zdCB7IHJldHVybiBlbXB0
eVN0cmluZygpOyB9CisgICAgU3RyaW5nIG5lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gZW1wdHlT
dHJpbmcoKTsgfQorICAgIFN0cmluZyBwcmVmaXgoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmlu
ZygpOyB9CisgICAgU3RyaW5nIHN1ZmZpeCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
IH0KKyAgICBTdHJpbmcgcmFuZ2UoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9Cisg
ICAgU3RyaW5nIHBhZCgpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKyAgICBTdHJp
bmcgZmFsbGJhY2soKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgU3RyaW5n
IHN5bWJvbHMoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9CisgICAgU3RyaW5nIGFk
ZGl0aXZlU3ltYm9scygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKyAgICBTdHJp
bmcgc3BlYWtBcygpIGNvbnN0IHsgcmV0dXJuIGVtcHR5U3RyaW5nKCk7IH0KKworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgYWZ0ZXIgd2UgcGFyc2UgQGNvdW50ZXItc3R5bGUgZGVzY3JpcHRvcnMu
CisgICAgdm9pZCBzZXROYW1lKGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZvaWQgc2V0U3lzdGVt
KGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZvaWQgc2V0TmVnYXRpdmUoY29uc3QgU3RyaW5nJikg
eyB9CisgICAgdm9pZCBzZXRQcmVmaXgoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdm9pZCBzZXRT
dWZmaXgoY29uc3QgU3RyaW5nJikgeyB9CisgICAgdm9pZCBzZXRSYW5nZShjb25zdCBTdHJpbmcm
KSB7IH0KKyAgICB2b2lkIHNldFBhZChjb25zdCBTdHJpbmcmKSB7IH0KKyAgICB2b2lkIHNldEZh
bGxiYWNrKGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZvaWQgc2V0U3ltYm9scyhjb25zdCBTdHJp
bmcmKSB7IH0KKyAgICB2b2lkIHNldEFkZGl0aXZlU3ltYm9scyhjb25zdCBTdHJpbmcmKSB7IH0K
KyAgICB2b2lkIHNldFNwZWFrQXMoY29uc3QgU3RyaW5nJikgeyB9CiAKIHByaXZhdGU6CiAgICAg
Q1NTQ291bnRlclN0eWxlUnVsZShTdHlsZVJ1bGVDb3VudGVyU3R5bGUmLCBDU1NTdHlsZVNoZWV0
KiBwYXJlbnQpOwogCi0gICAgdm9pZCBzZXR0ZXJJbnRlcm5hbChDU1NQcm9wZXJ0eUlELCBjb25z
dCBTdHJpbmcmKTsKLQogICAgIFJlZjxTdHlsZVJ1bGVDb3VudGVyU3R5bGU+IG1fY291bnRlclN0
eWxlUnVsZTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0
aWVzLmpzb24gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJvcGVydGllcy5qc29uCmluZGV4IGQ4
Y2NkNmIyNDA4ZDA5NzY4ZDczNGU1YTNiM2E0MmE1NDhiZjBiNGEuLjcyYjk1N2VjMDg1NTQ0ZDA2
NmRjNTIzZTViMTA0MDBhOTk3MTczOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcm9wZXJ0aWVzLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Byb3BlcnRpZXMu
anNvbgpAQCAtODAzLDE2ICs4MDMsNiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6
Ly93d3cudzMub3JnL1RSL2Nzcy1ydWJ5LTEvI3J1Ynlwb3MiCiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0sCi0gICAgICAgICJhZGRpdGl2ZS1zeW1ib2xzIjogewotICAgICAgICAgICAgInNldHRp
bmdzLWZsYWciOiAiY3NzQ291bnRlclN0eWxlQXRSdWxlIiwKLSAgICAgICAgICAgICJjb2RlZ2Vu
LXByb3BlcnRpZXMiOiB7Ci0gICAgICAgICAgICAgICAgInNraXAtYnVpbGRlciI6IHRydWUKLSAg
ICAgICAgICAgIH0sCi0gICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKLSAgICAgICAgICAg
ICAgICAiY2F0ZWdvcnkiOiAiY3NzLWNvdW50ZXItc3R5bGVzIiwKLSAgICAgICAgICAgICAgICAi
dXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY291bnRlci1zdHlsZXMtMy8jY291bnRl
ci1zdHlsZS1zeW1ib2xzIgotICAgICAgICAgICAgfQotICAgICAgICB9LAogICAgICAgICAiYWxp
Z25tZW50LWJhc2VsaW5lIjogewogICAgICAgICAgICAgInZhbHVlcyI6IFsKICAgICAgICAgICAg
ICAgICAiYXV0byIsCkBAIC0yNDQ2LDE2ICsyNDM2LDYgQEAKICAgICAgICAgICAgICAgICAiY2F0
ZWdvcnkiOiAic3ZnIgogICAgICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAiZmFsbGJh
Y2siOiB7Ci0gICAgICAgICAgICAic2V0dGluZ3MtZmxhZyI6ICJjc3NDb3VudGVyU3R5bGVBdFJ1
bGUiLAotICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKLSAgICAgICAgICAgICAg
ICAic2tpcC1idWlsZGVyIjogdHJ1ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJzcGVj
aWZpY2F0aW9uIjogewotICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3MtY291bnRlci1z
dHlsZXMiLAotICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nz
cy1jb3VudGVyLXN0eWxlcy0zLyNjb3VudGVyLXN0eWxlLWZhbGxiYWNrIgotICAgICAgICAgICAg
fQotICAgICAgICB9LAogICAgICAgICAiZmlsbCI6IHsKICAgICAgICAgICAgICJpbmhlcml0ZWQi
OiB0cnVlLAogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKQEAgLTMzOTcsMTYg
KzMzNzcsNiBAQAogICAgICAgICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly9kcmFmdHMuY3Nzd2cu
b3JnL2Nzcy1vdmVyc2Nyb2xsLTEvI3Byb3BkZWYtb3ZlcnNjcm9sbC1iZWhhdmlvci15IgogICAg
ICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAicGFkIjogewotICAgICAgICAgICAgInNl
dHRpbmdzLWZsYWciOiAiY3NzQ291bnRlclN0eWxlQXRSdWxlIiwKLSAgICAgICAgICAgICJjb2Rl
Z2VuLXByb3BlcnRpZXMiOiB7Ci0gICAgICAgICAgICAgICAgInNraXAtYnVpbGRlciI6IHRydWUK
LSAgICAgICAgICAgIH0sCi0gICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKLSAgICAgICAg
ICAgICAgICAiY2F0ZWdvcnkiOiAiY3NzLWNvdW50ZXItc3R5bGVzIiwKLSAgICAgICAgICAgICAg
ICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY291bnRlci1zdHlsZXMtMy8jY291
bnRlci1zdHlsZS1wYWQiCi0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCiAgICAgICAgICJwYWRk
aW5nIjogewogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAg
ICAgICAibG9uZ2hhbmRzIjogWwpAQCAtMzg4MCwxNiArMzg1MCw2IEBACiAgICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzMy1zcGVlY2gvI3NwZWFrLWFzIgog
ICAgICAgICAgICAgfQogICAgICAgICB9LAotICAgICAgICAic3ltYm9scyI6IHsKLSAgICAgICAg
ICAgICJzZXR0aW5ncy1mbGFnIjogImNzc0NvdW50ZXJTdHlsZUF0UnVsZSIsCi0gICAgICAgICAg
ICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewotICAgICAgICAgICAgICAgICJza2lwLWJ1aWxkZXIi
OiB0cnVlCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Ci0g
ICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1jb3VudGVyLXN0eWxlcyIsCi0gICAgICAg
ICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvdW50ZXItc3R5bGVz
LTMvI2NvdW50ZXItc3R5bGUtc3ltYm9scyIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKICAg
ICAgICAgInRhYmxlLWxheW91dCI6IHsKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCiAgICAgICAg
ICAgICAgICAgImF1dG8iLApAQCAtNjA4NCwxNiArNjA0NCw2IEBACiAgICAgICAgICAgICB9LAog
ICAgICAgICAgICAgInN0YXR1cyI6ICJub24tc3RhbmRhcmQiCiAgICAgICAgIH0sCi0gICAgICAg
ICJuZWdhdGl2ZSI6IHsKLSAgICAgICAgICAgICJzZXR0aW5ncy1mbGFnIjogImNzc0NvdW50ZXJT
dHlsZUF0UnVsZSIsCi0gICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewotICAgICAg
ICAgICAgICAgICJza2lwLWJ1aWxkZXIiOiB0cnVlCi0gICAgICAgICAgICB9LAotICAgICAgICAg
ICAgInNwZWNpZmljYXRpb24iOiB7Ci0gICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1j
b3VudGVyLXN0eWxlcyIsCi0gICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5v
cmcvVFIvY3NzLWNvdW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtbmVnYXRpdmUiCi0gICAg
ICAgICAgICB9Ci0gICAgICAgIH0sCiAgICAgICAgICJjb2xvci1zY2hlbWUiOiB7CiAgICAgICAg
ICAgICAiaW5oZXJpdGVkIjogdHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02MTc5
LDE2ICs2MTI5LDYgQEAKICAgICAgICAgICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9y
Zy9UUi9jc3MtdHJhbnNmb3Jtcy0xLyNwcm9wZGVmLXBlcnNwZWN0aXZlLW9yaWdpbiIKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSwKLSAgICAgICAgInByZWZpeCI6IHsKLSAgICAgICAgICAgICJz
ZXR0aW5ncy1mbGFnIjogImNzc0NvdW50ZXJTdHlsZUF0UnVsZSIsCi0gICAgICAgICAgICAiY29k
ZWdlbi1wcm9wZXJ0aWVzIjogewotICAgICAgICAgICAgICAgICJza2lwLWJ1aWxkZXIiOiB0cnVl
Ci0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInNwZWNpZmljYXRpb24iOiB7Ci0gICAgICAg
ICAgICAgICAgImNhdGVnb3J5IjogImNzcy1jb3VudGVyLXN0eWxlcyIsCi0gICAgICAgICAgICAg
ICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvdW50ZXItc3R5bGVzLTMvI2Nv
dW50ZXItc3R5bGUtcHJlZml4IgotICAgICAgICAgICAgfQotICAgICAgICB9LAogICAgICAgICAi
LXdlYmtpdC1wcmludC1jb2xvci1hZGp1c3QiOiB7CiAgICAgICAgICAgICAiaW5oZXJpdGVkIjog
dHJ1ZSwKICAgICAgICAgICAgICJ2YWx1ZXMiOiBbCkBAIC02MTk3LDE2ICs2MTM3LDYgQEAKICAg
ICAgICAgICAgIF0sCiAgICAgICAgICAgICAic3RhdHVzIjogIm5vbi1zdGFuZGFyZCIKICAgICAg
ICAgfSwKLSAgICAgICAgInJhbmdlIjogewotICAgICAgICAgICAgInNldHRpbmdzLWZsYWciOiAi
Y3NzQ291bnRlclN0eWxlQXRSdWxlIiwKLSAgICAgICAgICAgICJjb2RlZ2VuLXByb3BlcnRpZXMi
OiB7Ci0gICAgICAgICAgICAgICAgInNraXAtYnVpbGRlciI6IHRydWUKLSAgICAgICAgICAgIH0s
Ci0gICAgICAgICAgICAic3BlY2lmaWNhdGlvbiI6IHsKLSAgICAgICAgICAgICAgICAiY2F0ZWdv
cnkiOiAiY3NzLWNvdW50ZXItc3R5bGVzIiwKLSAgICAgICAgICAgICAgICAidXJsIjogImh0dHBz
Oi8vd3d3LnczLm9yZy9UUi9jc3MtY291bnRlci1zdHlsZXMtMy8jY291bnRlci1zdHlsZS1yYW5n
ZSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKICAgICAgICAgIi13ZWJraXQtcnRsLW9yZGVy
aW5nIjogewogICAgICAgICAgICAgImluaGVyaXRlZCI6IHRydWUsCiAgICAgICAgICAgICAidmFs
dWVzIjogWwpAQCAtNjIxOSwxNiArNjE0OSw2IEBACiAgICAgICAgICAgICB9LAogICAgICAgICAg
ICAgInN0YXR1cyI6ICJub24tc3RhbmRhcmQiCiAgICAgICAgIH0sCi0gICAgICAgICJzdWZmaXgi
OiB7Ci0gICAgICAgICAgICAicnVudGltZS1mbGFnIjogImNzc0NvdW50ZXJTdHlsZUF0UnVsZSIs
Ci0gICAgICAgICAgICAiY29kZWdlbi1wcm9wZXJ0aWVzIjogewotICAgICAgICAgICAgICAgICJz
a2lwLWJ1aWxkZXIiOiB0cnVlCi0gICAgICAgICAgICB9LAotICAgICAgICAgICAgInNwZWNpZmlj
YXRpb24iOiB7Ci0gICAgICAgICAgICAgICAgImNhdGVnb3J5IjogImNzcy1jb3VudGVyLXN0eWxl
cyIsCi0gICAgICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNv
dW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtc3VmZml4IgotICAgICAgICAgICAgfQotICAg
ICAgICB9LAogICAgICAgICAiLXdlYmtpdC1zdmctc2hhZG93IjogewogICAgICAgICAgICAgImNv
ZGVnZW4tcHJvcGVydGllcyI6IHsKICAgICAgICAgICAgICAgICAic2tpcC1jb2RlZ2VuIjogdHJ1
ZQpAQCAtNzA1MSwxNiArNjk3MSw2IEBACiAgICAgICAgICAgICAgICAgInVybCI6ICJodHRwczov
L3d3dy53My5vcmcvVFIvY3NzLXNoYXBlcy8jcHJvcGRlZi1zaGFwZS1pbWFnZS10aHJlc2hvbGQi
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0sCi0gICAgICAgICJzeXN0ZW0iOiB7Ci0gICAgICAg
ICAgICAic2V0dGluZ3MtZmxhZyI6ICJjc3NDb3VudGVyU3R5bGVBdFJ1bGUiLAotICAgICAgICAg
ICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKLSAgICAgICAgICAgICAgICAic2tpcC1idWlsZGVy
IjogdHJ1ZQotICAgICAgICAgICAgfSwKLSAgICAgICAgICAgICJzcGVjaWZpY2F0aW9uIjogewot
ICAgICAgICAgICAgICAgICJjYXRlZ29yeSI6ICJjc3MtY291bnRlci1zdHlsZXMiLAotICAgICAg
ICAgICAgICAgICJ1cmwiOiAiaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb3VudGVyLXN0eWxl
cy0zLyNjb3VudGVyLXN0eWxlLXN5c3RlbSIKLSAgICAgICAgICAgIH0KLSAgICAgICAgfSwKICAg
ICAgICAgIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciI6IHsKICAgICAgICAgICAgICJpbmhl
cml0ZWQiOiB0cnVlLAogICAgICAgICAgICAgImNvZGVnZW4tcHJvcGVydGllcyI6IHsKQEAgLTcy
MzEsMTEgKzcxNDEsNiBAQAogICAgICAgICAgICAgImxvbmduYW1lIjogIkNTUyBHZW5lcmF0ZWQg
Q29udGVudCBNb2R1bGUiLAogICAgICAgICAgICAgInVybCI6ICJodHRwczovL3d3dy53My5vcmcv
VFIvY3NzLWNvbnRlbnQtMy8iCiAgICAgICAgIH0sCi0gICAgICAgICJjc3MtY291bnRlci1zdHls
ZXMiOiB7Ci0gICAgICAgICAgICAic2hvcnRuYW1lIjogIkNTUyBDb3VudGVyIFN0eWxlcyIsCi0g
ICAgICAgICAgICAibG9uZ25hbWUiOiAiQ1NTIENvdW50ZXIgU3R5bGVzIE1vZHVsZSIsCi0gICAg
ICAgICAgICAidXJsIjogImh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY291bnRlci1zdHlsZXMt
MyIKLSAgICAgICAgfSwKICAgICAgICAgImNzcy1kZXZpY2UtYWRhcHQiOiB7CiAgICAgICAgICAg
ICAic2hvcnRuYW1lIjogIkNTUyBEZXZpY2UgQWRhcHRhdGlvbiIsCiAgICAgICAgICAgICAibG9u
Z25hbWUiOiAiQ1NTIERldmljZSBBZGFwdGF0aW9uIE1vZHVsZSIsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDNmM2RhMDBiMTViMzA5MjEyNDg4M2NjZjlkY2JlM2Zm
NDFhOGMzYzQuLmUyNGM5YmY4YzgzNGJmY2U3MGFlMDA5MDg1MjM1ODAzYjIxY2RlZTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC0xNTA1LDI0ICsxNTA1LDYgQEAg
ZnJvbS1mb250CiBzdGFuZGFyZAogaGlnaAogCi0vLyBAY291bnRlci1zdHlsZSBgc3lzdGVtYCBk
ZXNjcmlwdG9yIHZhbHVlcwotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL2Nzcy1jb3VudGVyLXN0
eWxlcy0zLyNjb3VudGVyLXN0eWxlLXN5c3RlbQotY3ljbGljCi1udW1lcmljCi0vLyBhbHBoYWJl
dGljCi1zeW1ib2xpYwotYWRkaXRpdmUKLS8vIGZpeGVkCi1leHRlbmRzCi0KLS8vIEBjb3VudGVy
LXN0eWxlIGBzcGVhay1hc2AgZGVzY3JpcHRvciB2YWx1ZXMKLS8vIGh0dHBzOi8vd3d3LnczLm9y
Zy9UUi9jc3MtY291bnRlci1zdHlsZXMtMy8jY291bnRlci1zdHlsZS1zcGVhay1hcwotLy8gYXV0
bwotYnVsbGV0cwotbnVtYmVycwotd29yZHMKLS8vIHNwZWxsLW91dAotCiAvLyBAc3VwcG9ydHMg
c2VsZWN0b3IoKQogLy8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1jb25kaXRpb25hbC00
LyN0eXBlZGVmLXN1cHBvcnRzLXNlbGVjdG9yLWZuCiBzZWxlY3RvcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VyLmNwcAppbmRleCA3ZWI0MTFiYzFmNzI5
Nzg3ZjgxZmM4MmVkZjYyNmVkNzFlYzViMzM4Li5lNTE0YzM5OGI0NWI3MzhmOTBhYTEwNzZjMTI2
NWExZTY4OGNkNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1By
b3BlcnR5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3Bl
cnR5UGFyc2VyLmNwcApAQCAtNDUzNSwyMTkgKzQ1MzUsMTUgQEAgUmVmUHRyPENTU0N1c3RvbVBy
b3BlcnR5VmFsdWU+IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJvcGVydHlW
YWx1ZSgKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAotLy8gaHR0cHM6Ly93d3cudzMub3JnL1RS
L2Nzcy1jb3VudGVyLXN0eWxlcy0zLyNjb3VudGVyLXN0eWxlLXN5c3RlbQotc3RhdGljIFJlZlB0
cjxDU1NQcmltaXRpdmVWYWx1ZT4gY29uc3VtZUNvdW50ZXJTdHlsZVN5c3RlbShDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSkKLXsKLSAgICBpZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudDxD
U1NWYWx1ZUN5Y2xpYywgQ1NTVmFsdWVOdW1lcmljLCBDU1NWYWx1ZUFscGhhYmV0aWMsIENTU1Zh
bHVlU3ltYm9saWMsIENTU1ZhbHVlQWRkaXRpdmU+KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGlk
ZW50OwotCi0gICAgaWYgKGF1dG8gaWRlbnQgPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVGaXhlZD4o
cmFuZ2UpKSB7Ci0gICAgICAgIGlmIChyYW5nZS5hdEVuZCgpKQotICAgICAgICAgICAgcmV0dXJu
IGlkZW50OwotICAgICAgICAvLyBJZiB3ZSBoYXZlIHRoZSBgZml4ZWRgIGtleXdvcmQgYnV0IHRo
ZSByYW5nZSBpcyBub3QgYXQgdGhlIGVuZCwgdGhlIG5leHQgdG9rZW4gbXVzdCBiZSBhIGludGVn
ZXIuCi0gICAgICAgIC8vIElmIGl0J3Mgbm90LCB0aGlzIHZhbHVlIGlzIGludmFsaWQuCi0gICAg
ICAgIGF1dG8gZmlyc3RTeW1ib2xWYWx1ZSA9IGNvbnN1bWVJbnRlZ2VyKHJhbmdlKTsKLSAgICAg
ICAgaWYgKCFmaXJzdFN5bWJvbFZhbHVlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgIHJldHVybiBjcmVhdGVQcmltaXRpdmVWYWx1ZVBhaXIoaWRlbnQucmVsZWFzZU5vbk51
bGwoKSwgZmlyc3RTeW1ib2xWYWx1ZS5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICB9Ci0KLSAgICBp
ZiAoYXV0byBpZGVudCA9IGNvbnN1bWVJZGVudDxDU1NWYWx1ZUV4dGVuZHM+KHJhbmdlKSkgewot
ICAgICAgICAvLyBUaGVyZSBtdXN0IGJlIGEgYDxjb3VudGVyLXN0eWxlLW5hbWU+YCBmb2xsb3dp
bmcgdGhlIGBleHRlbmRzYCBrZXl3b3JkLiBJZiB0aGVyZSBpc24ndCwgdGhpcyB2YWx1ZSBpcyBp
bnZhbGlkLgotICAgICAgICBhdXRvIHBhcnNlZENvdW50ZXJTdHlsZU5hbWUgPSBjb25zdW1lQ291
bnRlclN0eWxlTmFtZShyYW5nZSk7Ci0gICAgICAgIGlmICghcGFyc2VkQ291bnRlclN0eWxlTmFt
ZSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICByZXR1cm4gY3JlYXRlUHJp
bWl0aXZlVmFsdWVQYWlyKGlkZW50LnJlbGVhc2VOb25OdWxsKCksIHBhcnNlZENvdW50ZXJTdHls
ZU5hbWUucmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgfQotICAgIHJldHVybiBudWxscHRyOwotfQot
Ci0vLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWNvdW50ZXItc3R5bGVzLTMvI3R5cGVkZWYt
c3ltYm9sCi1zdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lQ291bnRlclN0eWxlU3ltYm9s
KENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBjb250
ZXh0KQotewotICAgIGlmIChhdXRvIHN0cmluZyA9IGNvbnN1bWVTdHJpbmcocmFuZ2UpKQotICAg
ICAgICByZXR1cm4gc3RyaW5nOwotICAgIGlmIChhdXRvIGN1c3RvbUlkZW50ID0gY29uc3VtZUN1
c3RvbUlkZW50KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGN1c3RvbUlkZW50OwotICAgIC8vIFRo
ZXJlIGFyZSBpbmhlcmVudCBkaWZmaWN1bHRpZXMgaW4gc3VwcG9ydGluZyA8aW1hZ2U+IHN5bWJv
bHMgaW4gQGNvdW50ZXItc3R5bGVzLCBzbyBnYXRlIHRoZW0gYmVoaW5kIGEKLSAgICAvLyBmbGFn
IGZvciBub3cuIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjc2NDUK
LSAgICBpZiAoY29udGV4dC5jb3VudGVyU3R5bGVBdFJ1bGVJbWFnZVN5bWJvbHNFbmFibGVkKSB7
Ci0gICAgICAgIGlmIChhdXRvIGltYWdlID0gY29uc3VtZUltYWdlKHJhbmdlLCBjb250ZXh0LCB7
IEFsbG93ZWRJbWFnZVR5cGU6OlVSTEZ1bmN0aW9uLCBBbGxvd2VkSW1hZ2VUeXBlOjpHZW5lcmF0
ZWRJbWFnZSB9KSkKLSAgICAgICAgICAgIHJldHVybiBpbWFnZTsKLSAgICB9Ci0gICAgcmV0dXJu
IG51bGxwdHI7Ci19Ci0KLS8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtY291bnRlci1zdHls
ZXMtMy8jY291bnRlci1zdHlsZS1uZWdhdGl2ZQotc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29u
c3VtZUNvdW50ZXJTdHlsZU5lZ2F0aXZlKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlLCBjb25z
dCBDU1NQYXJzZXJDb250ZXh0JiBjb250ZXh0KQotewotICAgIGF1dG8gcHJlcGVuZFZhbHVlID0g
Y29uc3VtZUNvdW50ZXJTdHlsZVN5bWJvbChyYW5nZSwgY29udGV4dCk7Ci0gICAgaWYgKCFwcmVw
ZW5kVmFsdWUpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGlmIChyYW5nZS5hdEVuZCgp
KQotICAgICAgICByZXR1cm4gcHJlcGVuZFZhbHVlOwotCi0gICAgYXV0byBhcHBlbmRWYWx1ZSA9
IGNvbnN1bWVDb3VudGVyU3R5bGVTeW1ib2wocmFuZ2UsIGNvbnRleHQpOwotICAgIGlmICghYXBw
ZW5kVmFsdWUgfHwgIXJhbmdlLmF0RW5kKCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotCi0g
ICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gdmFsdWVzID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwotICAgIHZhbHVlcy0+YXBwZW5kKHByZXBlbmRWYWx1ZS5yZWxlYXNlTm9u
TnVsbCgpKTsKLSAgICB2YWx1ZXMtPmFwcGVuZChhcHBlbmRWYWx1ZS5yZWxlYXNlTm9uTnVsbCgp
KTsKLSAgICByZXR1cm4gdmFsdWVzOwotfQotCi0vLyBodHRwczovL3d3dy53My5vcmcvVFIvY3Nz
LWNvdW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtcmFuZ2UKLXN0YXRpYyBSZWZQdHI8Q1NT
UHJpbWl0aXZlVmFsdWU+IGNvbnN1bWVDb3VudGVyU3R5bGVSYW5nZUJvdW5kKENTU1BhcnNlclRv
a2VuUmFuZ2UmIHJhbmdlKQotewotICAgIGlmIChhdXRvIGluZmluaXRlID0gY29uc3VtZUlkZW50
PENTU1ZhbHVlSW5maW5pdGU+KHJhbmdlKSkKLSAgICAgICAgcmV0dXJuIGluZmluaXRlOwotICAg
IGlmIChhdXRvIGludGVnZXIgPSBjb25zdW1lSW50ZWdlcihyYW5nZSkpCi0gICAgICAgIHJldHVy
biBpbnRlZ2VyOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi0vLyBodHRwczovL3d3dy53My5v
cmcvVFIvY3NzLWNvdW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtcmFuZ2UKLXN0YXRpYyBS
ZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVDb3VudGVyU3R5bGVSYW5nZShDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSkKLXsKLSAgICBpZiAoYXV0byBhdXRvVmFsdWUgPSBjb25zdW1lSWRlbnQ8Q1NT
VmFsdWVBdXRvPihyYW5nZSkpCi0gICAgICAgIHJldHVybiBhdXRvVmFsdWU7Ci0KLSAgICBhdXRv
IHJhbmdlTGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29tbWFTZXBhcmF0ZWQoKTsKLSAgICBk
byB7Ci0gICAgICAgIGF1dG8gbG93ZXJCb3VuZCA9IGNvbnN1bWVDb3VudGVyU3R5bGVSYW5nZUJv
dW5kKHJhbmdlKTsKLSAgICAgICAgaWYgKCFsb3dlckJvdW5kKQotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gdXBwZXJCb3VuZCA9IGNvbnN1bWVDb3VudGVyU3R5bGVS
YW5nZUJvdW5kKHJhbmdlKTsKLSAgICAgICAgaWYgKCF1cHBlckJvdW5kKQotICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAgLy8gSWYgdGhlIGxvd2VyIGJvdW5kIG9mIGFueSBy
YW5nZSBpcyBoaWdoZXIgdGhhbiB0aGUgdXBwZXIgYm91bmQsIHRoZSBlbnRpcmUgZGVzY3JpcHRv
ciBpcyBpbnZhbGlkIGFuZCBtdXN0IGJlCi0gICAgICAgIC8vIGlnbm9yZWQuCi0gICAgICAgIGlm
IChsb3dlckJvdW5kLT5pc051bWJlcigpICYmIHVwcGVyQm91bmQtPmlzTnVtYmVyKCkgJiYgbG93
ZXJCb3VuZC0+aW50VmFsdWUoKSA+IHVwcGVyQm91bmQtPmludFZhbHVlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgcmFuZ2VMaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0
aXZlVmFsdWVQYWlyKGxvd2VyQm91bmQucmVsZWFzZU5vbk51bGwoKSwgdXBwZXJCb3VuZC5yZWxl
YXNlTm9uTnVsbCgpLCBQYWlyOjpJZGVudGljYWxWYWx1ZUVuY29kaW5nOjpEb05vdENvYWxlc2Nl
KSk7Ci0gICAgfSB3aGlsZSAoY29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShyYW5nZSkp
OwotICAgIGlmICghcmFuZ2UuYXRFbmQoKSB8fCAhcmFuZ2VMaXN0LT5sZW5ndGgoKSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIHJhbmdlTGlzdDsKLX0KLQotLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL2Nzcy1jb3VudGVyLXN0eWxlcy0zLyNjb3VudGVyLXN0eWxlLXBhZAot
c3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUNvdW50ZXJTdHlsZVBhZChDU1NQYXJzZXJU
b2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKLXsKLSAg
ICBSZWZQdHI8Q1NTVmFsdWU+IGludGVnZXI7Ci0gICAgUmVmUHRyPENTU1ZhbHVlPiBzeW1ib2w7
Ci0gICAgd2hpbGUgKCFpbnRlZ2VyIHx8ICFzeW1ib2wpIHsKLSAgICAgICAgaWYgKCFpbnRlZ2Vy
KSB7Ci0gICAgICAgICAgICBpbnRlZ2VyID0gY29uc3VtZUludGVnZXIocmFuZ2UsIFZhbHVlUmFu
Z2VOb25OZWdhdGl2ZSk7Ci0gICAgICAgICAgICBpZiAoaW50ZWdlcikKLSAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN5bWJvbCkgewotICAgICAgICAg
ICAgc3ltYm9sID0gY29uc3VtZUNvdW50ZXJTdHlsZVN5bWJvbChyYW5nZSwgY29udGV4dCk7Ci0g
ICAgICAgICAgICBpZiAoc3ltYm9sKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICB9Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICBpZiAoIXJhbmdlLmF0RW5k
KCkpCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIGF1dG8gdmFsdWVzID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwotICAgIHZhbHVlcy0+YXBwZW5kKGludGVnZXIu
cmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgdmFsdWVzLT5hcHBlbmQoc3ltYm9sLnJlbGVhc2VOb25O
dWxsKCkpOwotICAgIHJldHVybiB2YWx1ZXM7Ci19Ci0KLS8vIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui9jc3MtY291bnRlci1zdHlsZXMtMy8jY291bnRlci1zdHlsZS1zeW1ib2xzCi1zdGF0aWMgUmVm
UHRyPENTU1ZhbHVlPiBjb25zdW1lQ291bnRlclN0eWxlU3ltYm9scyhDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKLXsKLSAgICBhdXRv
IHN5bWJvbHMgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAgd2hp
bGUgKCFyYW5nZS5hdEVuZCgpKSB7Ci0gICAgICAgIGF1dG8gc3ltYm9sID0gY29uc3VtZUNvdW50
ZXJTdHlsZVN5bWJvbChyYW5nZSwgY29udGV4dCk7Ci0gICAgICAgIGlmICghc3ltYm9sKQotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHN5bWJvbHMtPmFwcGVuZChzeW1ib2wu
cmVsZWFzZU5vbk51bGwoKSk7Ci0gICAgfQotICAgIGlmICghc3ltYm9scy0+bGVuZ3RoKCkpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBzeW1ib2xzOwotfQotCi0vLyBodHRw
czovL3d3dy53My5vcmcvVFIvY3NzLWNvdW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtc3lt
Ym9scwotc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZUNvdW50ZXJTdHlsZUFkZGl0aXZl
U3ltYm9scyhDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3QgQ1NTUGFyc2VyQ29udGV4
dCYgY29udGV4dCkKLXsKLSAgICBhdXRvIHZhbHVlcyA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRlQ29t
bWFTZXBhcmF0ZWQoKTsKLSAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGxhc3RJbnRlZ2Vy
OwotICAgIGRvIHsKLSAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBpbnRlZ2VyOwot
ICAgICAgICBSZWZQdHI8Q1NTVmFsdWU+IHN5bWJvbDsKLSAgICAgICAgd2hpbGUgKCFpbnRlZ2Vy
IHx8ICFzeW1ib2wpIHsKLSAgICAgICAgICAgIGlmICghaW50ZWdlcikgewotICAgICAgICAgICAg
ICAgIGludGVnZXIgPSBjb25zdW1lSW50ZWdlcihyYW5nZSwgVmFsdWVSYW5nZU5vbk5lZ2F0aXZl
KTsKLSAgICAgICAgICAgICAgICBpZiAoaW50ZWdlcikKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoIXN5bWJvbCkgewotICAgICAg
ICAgICAgICAgIHN5bWJvbCA9IGNvbnN1bWVDb3VudGVyU3R5bGVTeW1ib2wocmFuZ2UsIGNvbnRl
eHQpOwotICAgICAgICAgICAgICAgIGlmIChzeW1ib2wpCi0gICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIH0KLQotICAgICAgICBpZiAobGFzdEludGVnZXIpIHsKLSAgICAgICAgICAgIC8vIFRoZSBh
ZGRpdGl2ZSB0dXBsZXMgbXVzdCBiZSBzcGVjaWZpZWQgaW4gb3JkZXIgb2Ygc3RyaWN0bHkgZGVz
Y2VuZGluZwotICAgICAgICAgICAgLy8gd2VpZ2h0OyBvdGhlcndpc2UsIHRoZSBkZWNsYXJhdGlv
biBpcyBpbnZhbGlkIGFuZCBtdXN0IGJlIGlnbm9yZWQuCi0gICAgICAgICAgICBpZiAoaW50ZWdl
ci0+aW50VmFsdWUoKSA+PSBsYXN0SW50ZWdlci0+aW50VmFsdWUoKSkKLSAgICAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICBsYXN0SW50ZWdlciA9IGludGVn
ZXI7Ci0gICAgICAgIHZhbHVlcy0+YXBwZW5kKGludGVnZXIucmVsZWFzZU5vbk51bGwoKSk7Ci0g
ICAgICAgIHZhbHVlcy0+YXBwZW5kKHN5bWJvbC5yZWxlYXNlTm9uTnVsbCgpKTsKLSAgICB9IHdo
aWxlIChjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKHJhbmdlKSk7Ci0gICAgaWYgKCFy
YW5nZS5hdEVuZCgpIHx8ICF2YWx1ZXMtPmxlbmd0aCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICByZXR1cm4gdmFsdWVzOwotfQotCi0vLyBodHRwczovL3d3dy53My5vcmcvVFIvY3Nz
LWNvdW50ZXItc3R5bGVzLTMvI2NvdW50ZXItc3R5bGUtc3BlYWstYXMKLXN0YXRpYyBSZWZQdHI8
Q1NTVmFsdWU+IGNvbnN1bWVDb3VudGVyU3R5bGVTcGVha0FzKENTU1BhcnNlclRva2VuUmFuZ2Um
IHJhbmdlKQotewotICAgIGlmIChhdXRvIHNwZWFrQXNJZGVudCA9IGNvbnN1bWVJZGVudDxDU1NW
YWx1ZUF1dG8sIENTU1ZhbHVlQnVsbGV0cywgQ1NTVmFsdWVOdW1iZXJzLCBDU1NWYWx1ZVdvcmRz
LCBDU1NWYWx1ZVNwZWxsT3V0PihyYW5nZSkpCi0gICAgICAgIHJldHVybiBzcGVha0FzSWRlbnQ7
Ci0gICAgcmV0dXJuIGNvbnN1bWVDb3VudGVyU3R5bGVOYW1lKHJhbmdlKTsKLX0KLQogUmVmUHRy
PENTU1ZhbHVlPiBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VDb3VudGVyU3R5bGVEZXNjcmlwdG9y
KENTU1Byb3BlcnR5SUQgcHJvcElkLCBDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgY29uc3Qg
Q1NTUGFyc2VyQ29udGV4dCYgY29udGV4dCkKIHsKICAgICBpZiAoIWNvbnRleHQuY291bnRlclN0
eWxlQXRSdWxlc0VuYWJsZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgc3dpdGNo
IChwcm9wSWQpIHsKLSAgICBjYXNlIENTU1Byb3BlcnR5U3lzdGVtOgotICAgICAgICByZXR1cm4g
Y29uc3VtZUNvdW50ZXJTdHlsZVN5c3RlbShyYW5nZSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eU5l
Z2F0aXZlOgotICAgICAgICByZXR1cm4gY29uc3VtZUNvdW50ZXJTdHlsZU5lZ2F0aXZlKHJhbmdl
LCBjb250ZXh0KTsKLSAgICBjYXNlIENTU1Byb3BlcnR5UHJlZml4OgotICAgIGNhc2UgQ1NTUHJv
cGVydHlTdWZmaXg6Ci0gICAgICAgIHJldHVybiBjb25zdW1lQ291bnRlclN0eWxlU3ltYm9sKHJh
bmdlLCBjb250ZXh0KTsKLSAgICBjYXNlIENTU1Byb3BlcnR5UmFuZ2U6Ci0gICAgICAgIHJldHVy
biBjb25zdW1lQ291bnRlclN0eWxlUmFuZ2UocmFuZ2UpOwotICAgIGNhc2UgQ1NTUHJvcGVydHlQ
YWQ6Ci0gICAgICAgIHJldHVybiBjb25zdW1lQ291bnRlclN0eWxlUGFkKHJhbmdlLCBjb250ZXh0
KTsKLSAgICBjYXNlIENTU1Byb3BlcnR5RmFsbGJhY2s6Ci0gICAgICAgIHJldHVybiBjb25zdW1l
Q291bnRlclN0eWxlTmFtZShyYW5nZSk7Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eVN5bWJvbHM6Ci0g
ICAgICAgIHJldHVybiBjb25zdW1lQ291bnRlclN0eWxlU3ltYm9scyhyYW5nZSwgY29udGV4dCk7
Ci0gICAgY2FzZSBDU1NQcm9wZXJ0eUFkZGl0aXZlU3ltYm9sczoKLSAgICAgICAgcmV0dXJuIGNv
bnN1bWVDb3VudGVyU3R5bGVBZGRpdGl2ZVN5bWJvbHMocmFuZ2UsIGNvbnRleHQpOwotICAgIGNh
c2UgQ1NTUHJvcGVydHlTcGVha0FzOgotICAgICAgICByZXR1cm4gY29uc3VtZUNvdW50ZXJTdHls
ZVNwZWFrQXMocmFuZ2UpOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9CisgICAgLy8gRklYTUU6IEltcGxl
bWVudCB0aGlzIGZ1bmN0aW9uIHdoZW4gd2UgY2FuIHBhcnNlIEBjb3VudGVyLXN0eWxlIGRlc2Ny
aXB0b3JzLgorICAgIFVOVVNFRF9QQVJBTShwcm9wSWQpOworICAgIFVOVVNFRF9QQVJBTShyYW5n
ZSk7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIHJldHVybiBudWxscHRyOwogfQog
CiBib29sIENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZUNvdW50ZXJTdHlsZURlc2NyaXB0b3IoQ1NT
UHJvcGVydHlJRCBwcm9wSWQsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGNvbnRleHQpCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTNkOTU1M2Qy
NTFkZTljZDIzYzYzOTQ4ZDU4YjE2ZTVlNDgzYmQ0My4uZGUzMmRhMzY5YTI2Y2JhZWI1ODExNDQw
ODg0YTY1YjdkZWMzZjA5YiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTIxICBDb21taXQgUXVldWUgIDxj
b21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcg
cjI3NjM4MCBhbmQgcjI3NjM4Ni4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNDkxMgorCisgICAgICAgIENhdXNlZCBXUFQgY3NzL2Nzcy1jb3VudGVy
LXN0eWxlcy9jc3NvbSB0ZXN0IGNyYXNoZXMgb24gbWFjT1MKKyAgICAgICAgV0sxIHdpdGggQVNh
bgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAgIltjc3MtY291bnRl
ci1zdHlsZXNdIFBhcnNlIEBjb3VudGVyLXN0eWxlIGRlc2NyaXB0b3JzIgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzE4CisgICAgICAgIGh0dHBz
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzYzODAKKworICAgICAgICAiQ1NTQ29tcHV0
ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBzaG91bGQgdXNlIEMrKyBzdHlsZQorICAgICAgICBjb21t
ZW50cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NDg3NQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjc2Mzg2CisK
IDIwMjEtMDQtMjEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWdyZXNzaW9uKHIyNzU4ODcpIG9wZW4uc3BvdGlmeS5jb20gc2F5cyBTYWZhcmkgaXMgbm90IHN1
cHBvcnRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdE9wdGlvbnMuY3BwCmluZGV4IGVlMGUzY2ViYzBm
N2NmZWQ5ODlmMWM1MDJkZTMzZjU5NTRlMDg4YzYuLmZiOGEyMzJhY2NhYzUxZDYzMjQ2ZGQ0Mzk1
ZTEyNGMwOTk2ZjUwZGEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RPcHRp
b25zLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0T3B0aW9ucy5jcHAKQEAgLTEz
Myw3ICsxMzMsNyBAQCBjb25zdCBUZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygp
CiAgICAgICAgICAgICB7ICJBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQiLCBmYWxzZSB9LAogICAg
ICAgICAgICAgeyAiQXR0YWNobWVudEVsZW1lbnRFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAg
ICAgIHsgIkNTU0NvbnRhaW5tZW50RW5hYmxlZCIsIGZhbHNlIH0sCi0gICAgICAgICAgICB7ICJD
U1NDb3VudGVyU3R5bGVBdFJ1bGVzRW5hYmxlZCIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJD
U1NDb3VudGVyU3R5bGVBdFJ1bGVFbmFibGVkIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgIkNT
U0NvdW50ZXJTdHlsZUF0UnVsZUltYWdlU3ltYm9sc0VuYWJsZWQiLCBmYWxzZSB9LAogICAgICAg
ICAgICAgeyAiQ1NTTG9naWNhbEVuYWJsZWQiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiQ1NT
T01WaWV3U21vb3RoU2Nyb2xsaW5nRW5hYmxlZCIsIGZhbHNlIH0sCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmI2MzRmNTdj
YmQ1MGViNjU1NTg2M2FiYTVlNGIwMGI1MzZjMGFhZi4uNTAyMjcxZGZiN2YyYTRiYzQxNmFlOGQ5
M2MwM2M2NDZiNDMxZjdhMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA0LTIxICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI3NjM4MCBhbmQgcjI3NjM4Ni4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDkxMgorCisgICAgICAgIENhdXNlZCBXUFQgY3Nz
L2Nzcy1jb3VudGVyLXN0eWxlcy9jc3NvbSB0ZXN0IGNyYXNoZXMgb24gbWFjT1MKKyAgICAgICAg
V0sxIHdpdGggQVNhbgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldHM6CisKKyAgICAgICAg
Iltjc3MtY291bnRlci1zdHlsZXNdIFBhcnNlIEBjb3VudGVyLXN0eWxlIGRlc2NyaXB0b3JzIgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI0NzE4Cisg
ICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yNzYzODAKKworICAgICAg
ICAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcCBzaG91bGQgdXNlIEMrKyBzdHlsZQor
ICAgICAgICBjb21tZW50cyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIyNDg3NQorICAgICAgICBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2Vz
ZXQvMjc2Mzg2CisKIDIwMjEtMDQtMjEgIFJvYmVydCBKZW5uZXIgIDxqZW5uZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIE1hc3MgcmVtb3ZpbmcgcHJpb3IgdGVzdCBleHBlY3RhdGlvbnMgdGhhdCBk
b24ndCBuZWVkIHRvIGJlIHNldCBhbnltb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpp
bmRleCA3NjY2NGViNGZkMThhMDU0NDFjYzYyMDE1NzQxNDA3YjcxMDQ0OTg1Li5kYjk1YjRkOTRm
NDRkNDlkMTNhYTZlNGM5MmFiZjVhYzUxNTdhYWNiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0wNC0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzYz
ODAgYW5kIHIyNzYzODYuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjQ5MTIKKworICAgICAgICBDYXVzZWQgV1BUIGNzcy9jc3MtY291bnRlci1zdHls
ZXMvY3Nzb20gdGVzdCBjcmFzaGVzIG9uIG1hY09TCisgICAgICAgIFdLMSB3aXRoIEFTYW4KKwor
ICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJbY3NzLWNvdW50ZXItc3R5
bGVzXSBQYXJzZSBAY291bnRlci1zdHlsZSBkZXNjcmlwdG9ycyIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDcxOAorICAgICAgICBodHRwczovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjc2MzgwCisKKyAgICAgICAgIkNTU0NvbXB1dGVkU3R5
bGVEZWNsYXJhdGlvbi5jcHAgc2hvdWxkIHVzZSBDKysgc3R5bGUKKyAgICAgICAgY29tbWVudHMi
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQ4NzUK
KyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzI3NjM4NgorCiAyMDIx
LTA0LTIxICBUeWxlciBXaWxjb2NrICA8dHdpbGNvLm9AcHJvdG9ubWFpbC5jb20+CiAKICAgICAg
ICAgW2Nzcy1jb3VudGVyLXN0eWxlc10gUGFyc2UgQGNvdW50ZXItc3R5bGUgZGVzY3JpcHRvcnMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9jb3VudGVyLXN0eWxlLWZhbGxiYWNrLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b3VudGVyLXN0eWxlcy9jb3VudGVyLXN0eWxlLWZhbGxiYWNrLWV4cGVjdGVkLnR4dAppbmRleCA3
NTk0Nzg4ZTFjMjA5YzA5OWNlMmJlM2RlNzk0N2E3ZTNkNTIyODA5Li41NmFmOWUxZDQ4NGU1YzQ1
ZDQ3Y2FkMzM3YmM1YTdkMGRhMTA3NDc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvY291bnRlci1z
dHlsZS1mYWxsYmFjay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUt
ZmFsbGJhY2stZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1QQVNTIEBjb3VudGVyLXN0
eWxlICdmYWxsYmFjazogYmFyJyBpcyB2YWxpZAorRkFJTCBAY291bnRlci1zdHlsZSAnZmFsbGJh
Y2s6IGJhcicgaXMgdmFsaWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVl
IC0xCiBQQVNTIEBjb3VudGVyLXN0eWxlICdmYWxsYmFjazogImJhciInIGlzIGludmFsaWQKIFBB
U1MgQGNvdW50ZXItc3R5bGUgJ2ZhbGxiYWNrOiBub25lJyBpcyBpbnZhbGlkCiBQQVNTIEBjb3Vu
dGVyLXN0eWxlICdmYWxsYmFjazogaW5pdGlhbCcgaXMgaW52YWxpZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXIt
c3R5bGVzL2NvdW50ZXItc3R5bGUtcHJlZml4LXN1ZmZpeC1zeW50YXgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50
ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUtcHJlZml4LXN1ZmZpeC1zeW50YXgtZXhwZWN0ZWQudHh0
CmluZGV4IDg3YzZhMDZhNmI0ODRiZmUwMjI3OTcwN2QwMmE1NmYzZTAyMjVhMzguLjA5MmQ3YTkx
Y2Q5YmU5MmFkNDFhMjgwMzNiOGU1MWY2M2U1YzFhMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9j
b3VudGVyLXN0eWxlLXByZWZpeC1zdWZmaXgtc3ludGF4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1z
dHlsZXMvY291bnRlci1zdHlsZS1wcmVmaXgtc3VmZml4LXN5bnRheC1leHBlY3RlZC50eHQKQEAg
LTcsMjAgKzcsMjAgQEAgRkFJTCBAY291bnRlci1zdHlsZSAncHJlZml4OiAiaW5oZXJpdCInIGlz
IHZhbGlkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3cKIEZBSUwgQGNvdW50ZXItc3R5
bGUgJ3N1ZmZpeDogImluaGVyaXQiJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgLTEKIEZBSUwgQGNvdW50ZXItc3R5bGUgJ3ByZWZpeDogInVuc2V0Iicg
aXMgdmFsaWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCiBGQUlM
IEBjb3VudGVyLXN0eWxlICdzdWZmaXg6ICJ1bnNldCInIGlzIHZhbGlkIGFzc2VydF9ub3RfZXF1
YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQotUEFTUyBAY291bnRlci1zdHlsZSAncHJlZml4
OiBjdXN0b20taWRlbnQnIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdzdWZmaXg6IGN1
c3RvbS1pZGVudCcgaXMgdmFsaWQKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3ByZWZpeDogY3VzdG9t
LWlkZW50JyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUg
LTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3N1ZmZpeDogY3VzdG9tLWlkZW50JyBpcyB2YWxpZCBh
c3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgLTEKIFBBU1MgQGNvdW50ZXIt
c3R5bGUgJ3ByZWZpeDogaW5pdGlhbCcgaXMgaW52YWxpZAogUEFTUyBAY291bnRlci1zdHlsZSAn
c3VmZml4OiBpbml0aWFsJyBpcyBpbnZhbGlkCiBQQVNTIEBjb3VudGVyLXN0eWxlICdwcmVmaXg6
IGluaGVyaXQnIGlzIGludmFsaWQKIFBBU1MgQGNvdW50ZXItc3R5bGUgJ3N1ZmZpeDogaW5oZXJp
dCcgaXMgaW52YWxpZAogUEFTUyBAY291bnRlci1zdHlsZSAncHJlZml4OiB1bnNldCcgaXMgaW52
YWxpZAogUEFTUyBAY291bnRlci1zdHlsZSAnc3VmZml4OiB1bnNldCcgaXMgaW52YWxpZAotUEFT
UyBAY291bnRlci1zdHlsZSAncHJlZml4OiB1cmwoImh0dHBzOi8vZXhhbXBsZS5jb20vZm9vLnBu
ZyIpJyBpcyB2YWxpZAotUEFTUyBAY291bnRlci1zdHlsZSAnc3VmZml4OiB1cmwoImh0dHBzOi8v
ZXhhbXBsZS5jb20vZm9vLnBuZyIpJyBpcyB2YWxpZAotUEFTUyBAY291bnRlci1zdHlsZSAncHJl
Zml4OiB1cmwoaHR0cHM6Ly9leGFtcGxlLmNvbS9mb28ucG5nKScgaXMgdmFsaWQKLVBBU1MgQGNv
dW50ZXItc3R5bGUgJ3N1ZmZpeDogdXJsKGh0dHBzOi8vZXhhbXBsZS5jb20vZm9vLnBuZyknIGlz
IHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdwcmVmaXg6IGxpbmVhci1ncmFkaWVudCh5ZWxs
b3csIGJsdWUpJyBpcyB2YWxpZAotUEFTUyBAY291bnRlci1zdHlsZSAnc3VmZml4OiBsaW5lYXIt
Z3JhZGllbnQoeWVsbG93LCBibHVlKScgaXMgdmFsaWQKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3By
ZWZpeDogdXJsKCJodHRwczovL2V4YW1wbGUuY29tL2Zvby5wbmciKScgaXMgdmFsaWQgYXNzZXJ0
X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0eWxl
ICdzdWZmaXg6IHVybCgiaHR0cHM6Ly9leGFtcGxlLmNvbS9mb28ucG5nIiknIGlzIHZhbGlkIGFz
c2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJTCBAY291bnRlci1z
dHlsZSAncHJlZml4OiB1cmwoaHR0cHM6Ly9leGFtcGxlLmNvbS9mb28ucG5nKScgaXMgdmFsaWQg
YXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVy
LXN0eWxlICdzdWZmaXg6IHVybChodHRwczovL2V4YW1wbGUuY29tL2Zvby5wbmcpJyBpcyB2YWxp
ZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgLTEKK0ZBSUwgQGNvdW50
ZXItc3R5bGUgJ3ByZWZpeDogbGluZWFyLWdyYWRpZW50KHllbGxvdywgYmx1ZSknIGlzIHZhbGlk
IGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJTCBAY291bnRl
ci1zdHlsZSAnc3VmZml4OiBsaW5lYXItZ3JhZGllbnQoeWVsbG93LCBibHVlKScgaXMgdmFsaWQg
YXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCiBQQVNTIEBjb3VudGVy
LXN0eWxlICdwcmVmaXg6ICcgaXMgaW52YWxpZAogUEFTUyBAY291bnRlci1zdHlsZSAnc3VmZml4
OiAnIGlzIGludmFsaWQKIFBBU1MgQGNvdW50ZXItc3R5bGUgJ3ByZWZpeDogZm9vIGJhcicgaXMg
aW52YWxpZApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUtcmFuZ2Utc3ludGF4
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxlcy9jb3VudGVyLXN0eWxlLXJhbmdlLXN5bnRheC1leHBl
Y3RlZC50eHQKaW5kZXggMzQzNzEwMTk5ODA3MmRkNDY2OTE1ZDJlZTk2M2JhOGI4NTQzNzcxYy4u
NDI3MzcyZTE4MDIzMTU1YmYzYWQ0NjVmMGViYTg2ZDI2M2Q3NjFkMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXIt
c3R5bGVzL2NvdW50ZXItc3R5bGUtcmFuZ2Utc3ludGF4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1z
dHlsZXMvY291bnRlci1zdHlsZS1yYW5nZS1zeW50YXgtZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsx
LDEwIEBACiAKLVBBU1MgQGNvdW50ZXItc3R5bGUgJ3JhbmdlOiBhdXRvJyBpcyB2YWxpZAotUEFT
UyBAY291bnRlci1zdHlsZSAncmFuZ2U6IGluZmluaXRlIGluZmluaXRlJyBpcyB2YWxpZAotUEFT
UyBAY291bnRlci1zdHlsZSAncmFuZ2U6IGluZmluaXRlIDAnIGlzIHZhbGlkCi1QQVNTIEBjb3Vu
dGVyLXN0eWxlICdyYW5nZTogMCBpbmZpbml0ZScgaXMgdmFsaWQKLVBBU1MgQGNvdW50ZXItc3R5
bGUgJ3JhbmdlOiBpbmZpbml0ZSAwLCA1IDEwLCAxMDAgaW5maW5pdGUnIGlzIHZhbGlkCi1QQVNT
IEBjb3VudGVyLXN0eWxlICdyYW5nZTogaW5maW5pdGUgMTAsIDUgMjAsIDE1IGluZmluaXRlJyBp
cyB2YWxpZAorRkFJTCBAY291bnRlci1zdHlsZSAncmFuZ2U6IGF1dG8nIGlzIHZhbGlkIGFzc2Vy
dF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJTCBAY291bnRlci1zdHls
ZSAncmFuZ2U6IGluZmluaXRlIGluZmluaXRlJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczog
Z290IGRpc2FsbG93ZWQgdmFsdWUgLTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3JhbmdlOiBpbmZp
bml0ZSAwJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUg
LTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3JhbmdlOiAwIGluZmluaXRlJyBpcyB2YWxpZCBhc3Nl
cnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgLTEKK0ZBSUwgQGNvdW50ZXItc3R5
bGUgJ3JhbmdlOiBpbmZpbml0ZSAwLCA1IDEwLCAxMDAgaW5maW5pdGUnIGlzIHZhbGlkIGFzc2Vy
dF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJTCBAY291bnRlci1zdHls
ZSAncmFuZ2U6IGluZmluaXRlIDEwLCA1IDIwLCAxNSBpbmZpbml0ZScgaXMgdmFsaWQgYXNzZXJ0
X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCiBQQVNTIEBjb3VudGVyLXN0eWxl
ICdyYW5nZTogJyBpcyBpbnZhbGlkCiBQQVNTIEBjb3VudGVyLXN0eWxlICdyYW5nZTogMCAtMScg
aXMgaW52YWxpZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY291bnRlci1zdHlsZXMvY291bnRlci1zdHlsZS1zcGVhay1h
cy1zeW50YXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUtc3BlYWstYXMt
c3ludGF4LWV4cGVjdGVkLnR4dAppbmRleCBjNjNkZjc2M2ZkNTFiMzQ2YzMzZGY0NTBmNmMxNTIy
NjhkY2JkNDU3Li5kM2IzZTQzYzdmNTFjYzhkYjMyZjE3ZWUwODNhOTI1ZTVkNDc2NTRhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY291bnRlci1zdHlsZXMvY291bnRlci1zdHlsZS1zcGVhay1hcy1zeW50YXgtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb3VudGVyLXN0eWxlcy9jb3VudGVyLXN0eWxlLXNwZWFrLWFzLXN5bnRheC1leHBlY3Rl
ZC50eHQKQEAgLTEsMTEgKzEsMTEgQEAKIAotUEFTUyBAY291bnRlci1zdHlsZSAnc3BlYWstYXM6
IGF1dG8nIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdzcGVhay1hczogYnVsbGV0cycg
aXMgdmFsaWQKLVBBU1MgQGNvdW50ZXItc3R5bGUgJ3NwZWFrLWFzOiBudW1iZXJzJyBpcyB2YWxp
ZAotUEFTUyBAY291bnRlci1zdHlsZSAnc3BlYWstYXM6IHdvcmRzJyBpcyB2YWxpZAotUEFTUyBA
Y291bnRlci1zdHlsZSAnc3BlYWstYXM6IHNwZWxsLW91dCcgaXMgdmFsaWQKLVBBU1MgQGNvdW50
ZXItc3R5bGUgJ3NwZWFrLWFzOiBiYXInIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdz
cGVhay1hczogc3BlbGxvdXQnIGlzIHZhbGlkCitGQUlMIEBjb3VudGVyLXN0eWxlICdzcGVhay1h
czogYXV0bycgaXMgdmFsaWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVl
IC0xCitGQUlMIEBjb3VudGVyLXN0eWxlICdzcGVhay1hczogYnVsbGV0cycgaXMgdmFsaWQgYXNz
ZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0
eWxlICdzcGVhay1hczogbnVtYmVycycgaXMgdmFsaWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBk
aXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0eWxlICdzcGVhay1hczogd29yZHMn
IGlzIHZhbGlkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJ
TCBAY291bnRlci1zdHlsZSAnc3BlYWstYXM6IHNwZWxsLW91dCcgaXMgdmFsaWQgYXNzZXJ0X25v
dF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0eWxlICdz
cGVhay1hczogYmFyJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQg
dmFsdWUgLTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3NwZWFrLWFzOiBzcGVsbG91dCcgaXMgdmFs
aWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCiBQQVNTIEBjb3Vu
dGVyLXN0eWxlICdzcGVhay1hczogYnVsbGV0cyBudW1iZXJzJyBpcyBpbnZhbGlkCiBQQVNTIEBj
b3VudGVyLXN0eWxlICdzcGVhay1hczogbm9uZScgaXMgaW52YWxpZAogUEFTUyBAY291bnRlci1z
dHlsZSAnc3BlYWstYXM6IGluaXRpYWwnIGlzIGludmFsaWQKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb3VudGVyLXN0eWxl
cy9jb3VudGVyLXN0eWxlLXN5c3RlbS1zeW50YXgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2Nv
dW50ZXItc3R5bGUtc3lzdGVtLXN5bnRheC1leHBlY3RlZC50eHQKaW5kZXggNTc2MWVhMWQ4Mjc4
OWExZjA5NDA3OGRhNWJkYTg0NDkwYjNmYmQxZC4uZmUxZWZjODcyYzQ1M2M4ODliZWExYmZjOGU3
ZDNlM2NjYTc2YmIxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUtc3lzdGVt
LXN5bnRheC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvdW50ZXItc3R5bGVzL2NvdW50ZXItc3R5bGUtc3lzdGVt
LXN5bnRheC1leHBlY3RlZC50eHQKQEAgLTEsMTMgKzEsMTMgQEAKIAotUEFTUyBAY291bnRlci1z
dHlsZSAnc3lzdGVtOiBjeWNsaWMnIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdzeXN0
ZW06IGZpeGVkJyBpcyB2YWxpZAotUEFTUyBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBmaXhlZCAx
MDAnIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdzeXN0ZW06IGZpeGVkIC0xJyBpcyB2
YWxpZAotUEFTUyBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBzeW1ib2xpYycgaXMgdmFsaWQKLVBB
U1MgQGNvdW50ZXItc3R5bGUgJ3N5c3RlbTogYWxwaGFiZXRpYycgaXMgdmFsaWQKLVBBU1MgQGNv
dW50ZXItc3R5bGUgJ3N5c3RlbTogbnVtZXJpYycgaXMgdmFsaWQKLVBBU1MgQGNvdW50ZXItc3R5
bGUgJ3N5c3RlbTogYWRkaXRpdmUnIGlzIHZhbGlkCi1QQVNTIEBjb3VudGVyLXN0eWxlICdzeXN0
ZW06IGV4dGVuZHMgYmFyJyBpcyB2YWxpZAorRkFJTCBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBj
eWNsaWMnIGlzIHZhbGlkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAt
MQorRkFJTCBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBmaXhlZCcgaXMgdmFsaWQgYXNzZXJ0X25v
dF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0eWxlICdz
eXN0ZW06IGZpeGVkIDEwMCcgaXMgdmFsaWQgYXNzZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxv
d2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0eWxlICdzeXN0ZW06IGZpeGVkIC0xJyBpcyB2
YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFsdWUgLTEKK0ZBSUwgQGNv
dW50ZXItc3R5bGUgJ3N5c3RlbTogc3ltYm9saWMnIGlzIHZhbGlkIGFzc2VydF9ub3RfZXF1YWxz
OiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQorRkFJTCBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBh
bHBoYWJldGljJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRpc2FsbG93ZWQgdmFs
dWUgLTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3N5c3RlbTogbnVtZXJpYycgaXMgdmFsaWQgYXNz
ZXJ0X25vdF9lcXVhbHM6IGdvdCBkaXNhbGxvd2VkIHZhbHVlIC0xCitGQUlMIEBjb3VudGVyLXN0
eWxlICdzeXN0ZW06IGFkZGl0aXZlJyBpcyB2YWxpZCBhc3NlcnRfbm90X2VxdWFsczogZ290IGRp
c2FsbG93ZWQgdmFsdWUgLTEKK0ZBSUwgQGNvdW50ZXItc3R5bGUgJ3N5c3RlbTogZXh0ZW5kcyBi
YXInIGlzIHZhbGlkIGFzc2VydF9ub3RfZXF1YWxzOiBnb3QgZGlzYWxsb3dlZCB2YWx1ZSAtMQog
UEFTUyBAY291bnRlci1zdHlsZSAnc3lzdGVtOiBmbG9hdCcgaXMgaW52YWxpZAogUEFTUyBAY291
bnRlci1zdHlsZSAnc3lzdGVtOiBjeWNsaWMgY3ljbGljJyBpcyBpbnZhbGlkCiBQQVNTIEBjb3Vu
dGVyLXN0eWxlICdzeXN0ZW06IGV4dGVuZHMgbm9uZScgaXMgaW52YWxpZApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZjM3NjEzYjhlMGMwYTgzOTFiOTQ4
MDM4ZDIxYjUyZDZmMTAyZGYxLi5jZWYzNTgxMGExZWRjMDZhODg3ZDY3OWEzMWZmYjdkZmEwNTI0
MmZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDY1
Nyw3ICs0NjU3LDMgQEAgZmFzdC9mb3Jtcy9vbnNlbGVjdC10ZXh0ZmllbGQuaHRtbCBbIFBhc3Mg
RmFpbHVyZSBdCiBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIGZhc3QvZm9ybXMvcGFzc3dvcmQtZG91YmxlY2xpY2stc2VsZWN0aW9uLmh0bWwgWyBQ
YXNzIEZhaWx1cmUgXQogZmFzdC90ZXh0L29mZnNldEZvclBvc2l0aW9uLWNvbXBsZXgtZmFsbGJh
Y2suaHRtbCBbIFBhc3MgRmFpbHVyZSBdCi0KLSMgVGhpcyB0ZXN0IGlzIHNraXBwZWQgYmVjYXVz
ZSB0aGUgbmVjZXNzYXJ5IGZlYXR1cmUgZmxhZyBmdW5jdGlvbmFsaXR5IHNwZWNpZmljIHRvIHRo
ZSBXaW5kb3dzIFdlYktpdCBsZWdhY3kgcG9ydCBpcwotIyBub3QgaW1wbGVtZW50ZWQuICBUaGUg
ZmVhdHVyZSBmbGFncyBpbiBxdWVzdGlvbiBhcmUgQ1NTQ291bnRlclN0eWxlQXRSdWxlc0VuYWJs
ZWQgYW5kIENTU0NvdW50ZXJTdHlsZUF0UnVsZUltYWdlU3ltYm9sc0VuYWJsZWQuCi13ZWJleHBv
c2VkL2NvdW50ZXItc3R5bGUtaW1hZ2Utc3ltYm9scy1ub3QtZXhwb3NlZC5odG1sIFsgU2tpcCBd
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJleHBvc2VkL2NvdW50ZXItc3R5bGUtaW1hZ2Ut
c3ltYm9scy1ub3QtZXhwb3NlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJleHBvc2Vk
L2NvdW50ZXItc3R5bGUtaW1hZ2Utc3ltYm9scy1ub3QtZXhwb3NlZC1leHBlY3RlZC50eHQKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA5Y2ZiM2NjNGEzN2U5ZDQzZDhjYmIzN2I2NGQ4
NjBlNWQ5NTZmMDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jb3VudGVyLXN0eWxlLWltYWdlLXN5bWJvbHMtbm90
LWV4cG9zZWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLVBB
U1MgQGNvdW50ZXItc3R5bGUgaW1hZ2Ugc3ltYm9scyBhcmUgbm90IGV4cG9zZWQKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViZXhwb3NlZC9jb3VudGVyLXN0eWxlLWltYWdlLXN5bWJvbHMt
bm90LWV4cG9zZWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmV4cG9zZWQvY291bnRlci1zdHlsZS1p
bWFnZS1zeW1ib2xzLW5vdC1leHBvc2VkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDUzOTA2YTRkYjc3M2JjYTMxZDE5NjIyY2JhZTQ5MGNmYzM0ZjgxN2YuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvd2ViZXhwb3Nl
ZC9jb3VudGVyLXN0eWxlLWltYWdlLXN5bWJvbHMtbm90LWV4cG9zZWQuaHRtbAorKysgL2Rldi9u
dWxsCkBAIC0xLDE3ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIENTU0NvdW50ZXJTdHlsZUF0UnVsZUltYWdlU3ltYm9sc0VuYWJsZWQ9ZmFsc2UgXSAt
LT4KLTxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgot
PHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Ci08c3R5bGU+Ci0gICAgQGNvdW50ZXItc3R5bGUgZm9vIHsKLSAgICAgICAgc3lzdGVtOiBjeWNs
aWM7Ci0gICAgICAgIHN1ZmZpeDogIiAiOwotICAgICAgICBzeW1ib2xzOiBsaW5lYXItZ3JhZGll
bnQoeWVsbG93LCBibHVlKTsKLSAgICB9Ci08L3N0eWxlPgotPHNjcmlwdD4KLSAgICB0ZXN0KGZ1
bmN0aW9uKCkgewotICAgICAgICBjb25zdCBjc3NSdWxlcyA9IGRvY3VtZW50LnN0eWxlU2hlZXRz
WzBdLmNzc1J1bGVzCi0gICAgICAgIGFzc2VydF9lcXVhbHMoY3NzUnVsZXMubGVuZ3RoLCAxLCAn
U2hvdWxkXCd2ZSBiZWVuIGFibGUgdG8gcGFyc2UgQGNvdW50ZXItc3R5bGUuJykKLSAgICAgICAg
YXNzZXJ0X2VxdWFscyhjc3NSdWxlc1swXS5zeW1ib2xzLCAnJywgJ1Nob3VsZG5cJ3QgaGF2ZSBi
ZWVuIGFibGUgdG8gcGFyc2UgaW1hZ2Ugc3ltYm9sIHZhbHVlIHdpdGggdGhlIHJ1bnRpbWUgZmVh
dHVyZSBmbGFnIGRpc2FibGVkLicpCi0gICAgfSwgJ0Bjb3VudGVyLXN0eWxlIGltYWdlIHN5bWJv
bHMgYXJlIG5vdCBleHBvc2VkJykKLTwvc2NyaXB0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUK
</data>

          </attachment>
      

    </bug>

</bugzilla>