<?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>64504</bug_id>
          
          <creation_ts>2011-07-13 19:29:29 -0700</creation_ts>
          <short_desc>Focus and selection events are not fired when a &lt;select&gt;&apos;s selection changes</short_desc>
          <delta_ts>2011-07-18 16:17:20 -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>Accessibility</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, PlatformOnly</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>64681</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jon Honeycutt">jhoneycutt</reporter>
          <assigned_to name="Jon Honeycutt">jhoneycutt</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>pnormand</cc>
    
    <cc>rniwa</cc>
    
    <cc>scheib</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436882</commentid>
    <comment_count>0</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-13 19:29:29 -0700</bug_when>
    <thetext>WebKit should fire focus and selection events when the selected &lt;option&gt; in a &lt;select&gt; element changes.

&lt;rdar://problem/9319881&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>436966</commentid>
    <comment_count>1</comment_count>
      <attachid>100780</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-14 00:07:30 -0700</bug_when>
    <thetext>Created attachment 100780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437664</commentid>
    <comment_count>2</comment_count>
      <attachid>100957</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-15 04:34:55 -0700</bug_when>
    <thetext>Created attachment 100957
Patch v2

Try to fix Chromium build. Changed an AXObjectCache::getOrCreate() call to just get() in RenderMenuList::didUpdateActiveOption() - we don&apos;t need to create the object if it doesn&apos;t exist.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>437999</commentid>
    <comment_count>3</comment_count>
      <attachid>100957</attachid>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2011-07-15 14:51:15 -0700</bug_when>
    <thetext>Comment on attachment 100957
Patch v2

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

r=me assuming the location of the early return in didSetSelectedIndex is either fine or fixed up.

&gt; Source/WebCore/rendering/RenderMenuList.cpp:353
&gt; +

It looks like didSetSelectedIndex used to set m_lastSelectedIndex even if accessibilityEnabled was false.  Now you&apos;re not going to be setting m_lastActiveIndex if accessibility isn&apos;t enabled.  I guess that&apos;s okay if m_lastActiveIndex is only ever read or written if accessibility is enabled, but i can&apos;t tell 100% from this patch.  could you confirm this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438052</commentid>
    <comment_count>4</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-15 16:27:21 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 100957 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=100957&amp;action=review
&gt; 
&gt; r=me assuming the location of the early return in didSetSelectedIndex is either fine or fixed up.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMenuList.cpp:353
&gt; &gt; +
&gt; 
&gt; It looks like didSetSelectedIndex used to set m_lastSelectedIndex even if accessibilityEnabled was false.  Now you&apos;re not going to be setting m_lastActiveIndex if accessibility isn&apos;t enabled.  I guess that&apos;s okay if m_lastActiveIndex is only ever read or written if accessibility is enabled, but i can&apos;t tell 100% from this patch.  could you confirm this?

Good catch! m_lastSelectedIndex is only used by this accessibility code, so I&apos;ll leave it as-is. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438140</commentid>
    <comment_count>5</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-16 05:42:46 -0700</bug_when>
    <thetext>Landed in &lt;http://trac.webkit.org/changeset/91132&gt;. Build fix in &lt;http://trac.webkit.org/changeset/91135&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438360</commentid>
    <comment_count>6</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-18 00:13:14 -0700</bug_when>
    <thetext>A bunch of tests seem to have start hitting assertions on Chromium bots after this patch was landed:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20chromium.org&amp;tests=editing%2Fselection%2Fiframe.html%2Cdom%2Fhtml%2Flevel2%2Fhtml%2FHTMLOptGroupElement01.html%2Cdom%2Fhtml%2Flevel2%2Fhtml%2FHTMLOptGroupElement02.html%2Cediting%2Fpasteboard%2F4641033.html%2Cfast%2Fcss%2Fpseudo-required-optional-unapplied.html%2Cfast%2Fevents%2Ftabindex-focus-blur-all.html%2Cfast%2Fforms%2FValidityState-valueMissing-001.html%2Cfast%2Fforms%2Fform-collection-elements.html%2Cfast%2Fforms%2Foption-in-optgroup-removal.html%2Cfast%2Fforms%2Fselect-out-of-bounds-index.html%2Cfast%2Fforms%2Fselect-selected.html%2Cfast%2Fforms%2Fstuff-on-my-optgroup.html%2Cfast%2Finvalid%2Fresidual-style.html%2Cfast%2Fregex%2FtoString.html%2Chtml5lib%2Frunner.html%2Cediting%2Fselection%2Fmove-by-word-visually-others.html%2Cfast%2Fjs%2Ffunction-apply.html%2Cfast%2Fjs%2Freserved-words-as-property.html%2Cjquery%2Fcss.html%2Cjquery%2Fdata.html%2Cstorage%2Findexeddb%2Findex-cursor.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438361</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-18 00:19:00 -0700</bug_when>
    <thetext>Looking at http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug?numbuilds=50
and http://build.webkit.org/builders/GTK%20Linux%2064-bit%20Debug/builds/24311

this patch also caused major failures on GTK :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438362</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-18 00:22:26 -0700</bug_when>
    <thetext>GTK stack trace:


#0  0x00002ae02f0b9016 in WebCore::RenderMenuList::didUpdateActiveOption (this=0xfb9eb28, optionIndex=0) at ../../Source/WebCore/rendering/RenderMenuList.cpp:362
362	    ASSERT(toOptionElement(select-&gt;listItems()[optionIndex]));

Thread 1 (Thread 15390):
#0  0x00002ae02f0b9016 in WebCore::RenderMenuList::didUpdateActiveOption (this=0xfb9eb28, optionIndex=0) at ../../Source/WebCore/rendering/RenderMenuList.cpp:362
#1  0x00002ae02f0b801e in WebCore::RenderMenuList::setTextFromOption (this=0xfb9eb28, optionIndex=0) at ../../Source/WebCore/rendering/RenderMenuList.cpp:208
#2  0x00002ae02f0b7ead in WebCore::RenderMenuList::updateFromElement (this=0xfb9eb28) at ../../Source/WebCore/rendering/RenderMenuList.cpp:188
#3  0x00002ae02eade996 in WebCore::SelectElement::setSelectedIndex (data=..., element=0xfb2f2f0, optionIndex=0, deselect=true, fireOnChangeNow=false, userDrivenChange=false) at ../../Source/WebCore/dom/SelectElement.cpp:381
#4  0x00002ae02ec2f0ec in WebCore::HTMLSelectElement::setSelectedIndex (this=0xfb2f2f0, optionIndex=0, deselect=false) at ../../Source/WebCore/html/HTMLSelectElement.cpp:86
#5  0x00002ae02ec28fe3 in WebCore::HTMLOptionElement::insertedIntoTree (this=0xef04990, deep=false) at ../../Source/WebCore/html/HTMLOptionElement.cpp:251
#6  0x00002ae02ea13ec7 in WebCore::ContainerNode::insertedIntoDocument (this=0xef04990) at ../../Source/WebCore/dom/ContainerNode.cpp:784
#7  0x00002ae02ea744a3 in WebCore::Element::insertedIntoDocument (this=0xef04990) at ../../Source/WebCore/dom/Element.cpp:959
#8  0x00002ae02eae7825 in WebCore::StyledElement::insertedIntoDocument (this=0xef04990) at ../../Source/WebCore/dom/StyledElement.cpp:455
#9  0x00002ae02ebf5416 in WebCore::HTMLFormControlElement::insertedIntoDocument (this=0xef04990) at ../../Source/WebCore/html/HTMLFormControlElement.cpp:194
#10 0x00002ae02ea13a40 in WebCore::ContainerNode::parserAddChild (this=0xfb9f180, newChild=...) at ../../Source/WebCore/dom/ContainerNode.cpp:690
#11 0x00002ae02ec527fd in WebCore::HTMLConstructionSite::attach&lt;WebCore::Element&gt; (this=0xc7e9578, rawParent=0xfb9f180, prpChild=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:103
#12 0x00002ae02ec50738 in WebCore::HTMLConstructionSite::attachToCurrent (this=0xc7e9578, child=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:265
#13 0x00002ae02ec50be2 in WebCore::HTMLConstructionSite::insertHTMLElement (this=0xc7e9578, token=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:295
#14 0x00002ae02ec77c32 in WebCore::HTMLTreeBuilder::processStartTag (this=0xc7e9550, token=...) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:1429
#15 0x00002ae02ec72547 in WebCore::HTMLTreeBuilder::processToken (this=0xc7e9550, token=...) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:481
#16 0x00002ae02ec723f4 in WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken (this=0xc7e9550, token=...) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:462
#17 0x00002ae02ec72356 in WebCore::HTMLTreeBuilder::constructTreeFromToken (this=0xc7e9550, rawToken=...) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:452
#18 0x00002ae02ec54b14 in WebCore::HTMLDocumentParser::pumpTokenizer (this=0xef07310, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:276
#19 0x00002ae02ec54532 in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible (this=0xef07310, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:175
#20 0x00002ae02ec55080 in WebCore::HTMLDocumentParser::append (this=0xef07310, source=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:367
#21 0x00002ae02ea18e8c in WebCore::DecodedDataDocumentParser::appendBytes (this=0xef07310, writer=0xf150550, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebCore/dom/DecodedDataDocumentParser.cpp:50
#22 0x00002ae02ed923aa in WebCore::DocumentWriter::addData (this=0xf150550, bytes=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebCore/loader/DocumentWriter.cpp:203
#23 0x00002ae02ed8632b in WebCore::DocumentLoader::commitData (this=0xf150450, bytes=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebCore/loader/DocumentLoader.cpp:321
#24 0x00002ae02e70c16d in WebKit::FrameLoaderClient::committedLoad (this=0x20ea130, loader=0xf150450, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp:320
#25 0x00002ae02ed86203 in WebCore::DocumentLoader::commitLoad (this=0xf150450, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebCore/loader/DocumentLoader.cpp:307
#26 0x00002ae02ed863e6 in WebCore::DocumentLoader::receivedData (this=0xf150450, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821) at ../../Source/WebCore/loader/DocumentLoader.cpp:333
#27 0x00002ae02edd1267 in WebCore::MainResourceLoader::addData (this=0xef06600, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:168
#28 0x00002ae02eddeaaf in WebCore::ResourceLoader::didReceiveData (this=0xef06600, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821, encodedDataLength=3821, allAtOnce=false) at ../../Source/WebCore/loader/ResourceLoader.cpp:284
#29 0x00002ae02edd2696 in WebCore::MainResourceLoader::didReceiveData (this=0xef06600, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821, encodedDataLength=3821, allAtOnce=false) at ../../Source/WebCore/loader/MainResourceLoader.cpp:464
#30 0x00002ae02eddf3b4 in WebCore::ResourceLoader::didReceiveData (this=0xef06600, data=0xfb2c7c0 &quot;&lt;!DOCTYPE HTML PUBLIC \&quot;-//IETF//DTD HTML//EN\&quot;&gt;\n&lt;html&gt;\n&lt;head&gt;\n&lt;title&gt;required and basic valueMissing&lt;/title&gt;\n&lt;link rel=\&quot;stylesheet\&quot; href=\&quot;../../fast/js/resources/js-test-style.css\&quot;&gt;\n&lt;script src=\&quot;../../&quot;..., length=3821, encodedDataLength=3821) at ../../Source/WebCore/loader/ResourceLoader.cpp:442
#31 0x00002ae02ef73f1b in WebCore::readCallback (source=0xb05f400, asyncResult=0xa9205e0, data=0x0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:801
#32 0x00002ae032a5db59 in async_ready_callback_wrapper (source_object=0xb05f400, res=0xa9205e0, user_data=0x0) at /tmp/buildd/glib2.0-2.28.6/./gio/ginputstream.c:470
#33 0x00002ae032a6da68 in complete_in_idle_cb_for_thread (_data=0xfb553d0) at /tmp/buildd/glib2.0-2.28.6/./gio/gsimpleasyncresult.c:812
#34 0x00002ae0335db4a3 in g_main_dispatch (context=0x2073a40) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:2440
#35 g_main_context_dispatch (context=0x2073a40) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3013
#36 0x00002ae0335dbc80 in g_main_context_iterate (context=0x2073a40, block=1, dispatch=1, self=&lt;value optimized out&gt;) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3091
#37 0x00002ae0335dc2f2 in g_main_loop_run (loop=0xfaeb880) at /tmp/buildd/glib2.0-2.28.6/./glib/gmain.c:3299
#38 0x00002ae0315172b7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#39 0x000000000042dc00 in runTest (testPathOrURL=...) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:707
#40 0x000000000042d29d in runTestingServerLoop () at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:499
#41 0x000000000042f558 in main (argc=2, argv=0x7ffff5b64fd8) at ../../Tools/DumpRenderTree/gtk/DumpRenderTree.cpp:1187</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438363</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-07-18 00:28:20 -0700</bug_when>
    <thetext>http://webkit-bots.igalia.com/amd64/svn_91171.core-when_1310958982-_-who_DumpRenderTree-_-why_11.trace.html

is the link to the above stack-trace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438367</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-18 00:31:04 -0700</bug_when>
    <thetext>Per discussion on IRC, we&apos;re rolling this patch out: https://bugs.webkit.org/show_bug.cgi?id=64681

Sorry :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438370</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-07-18 00:37:40 -0700</bug_when>
    <thetext>fast/forms/option-in-optgroup-removal.html

Chromium Windows

ASSERTION FAILED: toOptionElement(select-&gt;listItems()[optionIndex])
Backtrace:
	WebCore::RenderMenuList::didUpdateActiveOption [0x02422B1C+220] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\rendering\rendermenulist.cpp:362)
	WebCore::RenderMenuList::setTextFromOption [0x02421D3D+285] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\rendering\rendermenulist.cpp:209)
	WebCore::RenderMenuList::updateFromElement [0x02421C09+169] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\rendering\rendermenulist.cpp:189)
	WebCore::updateFromElementCallback [0x016C0F97+215] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\htmlformcontrolelement.cpp:258)
	WebCore::ContainerNode::dispatchPostAttachCallbacks [0x017D9CCE+126] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\containernode.cpp:746)
	WebCore::ContainerNode::resumePostAttachCallbacks [0x017D9ABE+46] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\containernode.cpp:714)
	WebCore::Document::recalcStyle [0x01788758+936] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\document.cpp:1563)
	WebCore::Document::updateStyleIfNeeded [0x01788A38+248] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\document.cpp:1582)
	WebCore::Document::finishedParsing [0x01793752+322] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\dom\document.cpp:4193)
	WebCore::HTMLTreeBuilder::finished [0x017639B4+100] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmltreebuilder.cpp:2825)
	WebCore::HTMLDocumentParser::end [0x01739503+131] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:379)
	WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd [0x017395F6+182] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:388)
	WebCore::HTMLDocumentParser::prepareToStopParsing [0x017382AC+188] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:152)
	WebCore::HTMLDocumentParser::attemptToEnd [0x01739669+57] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:399)
	WebCore::HTMLDocumentParser::finish [0x017397B3+51] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\html\parser\htmldocumentparser.cpp:427)
	WebCore::DocumentWriter::endIfNotLoadingMainResource [0x010DE429+201] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentwriter.cpp:226)
	WebCore::DocumentWriter::end [0x010DE347+39] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentwriter.cpp:210)
	WebCore::DocumentLoader::finishedLoading [0x011D2894+84] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\documentloader.cpp:290)
	WebCore::FrameLoader::finishedLoading [0x0110FDC2+82] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\frameloader.cpp:2045)
	WebCore::MainResourceLoader::didFinishLoading [0x01426890+304] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\mainresourceloader.cpp:486)
	WebCore::ResourceLoader::didFinishLoading [0x0141F67B+91] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webcore\loader\resourceloader.cpp:449)
	WebCore::ResourceHandleInternal::didFinishLoading [0x022FB9F0+144] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\source\webkit\chromium\src\resourcehandle.cpp:190)
	webkit_glue::WebURLLoaderImpl::Context::OnCompletedRequest [0x00B503E5+533] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\glue\weburlloader_impl.cc:664)
	`anonymous namespace&apos;::RequestProxy::NotifyCompletedRequest [0x00ACED69+57] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\tools\test_shell\simple_resource_loader_bridge.cc:274)
	 [0x00AD6391+33] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\tuple.h:564)
	 [0x00AD4AB5+53] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\task.h:338)
	`anonymous namespace&apos;::TaskClosureAdapter::Run [0x01F07812+50] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:104)
	base::internal::Invoker1&lt;0,base::internal::InvokerStorage1&lt;void (__thiscall `anonymous namespace&apos;::TaskClosureAdapter::*)(void),A0x17a47d7c::TaskClosureAdapter *&gt;,void (__thiscall `anonymous namespace&apos;::TaskClosureAdapter::*)(void)&gt;::DoInvoke [0x01F1280D+45] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\bind_internal.h:595)
	base::Callback&lt;void __cdecl(void)&gt;::Run [0x00E0B47F+47] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\callback.h:265)
	MessageLoop::RunTask [0x01F08E75+293] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:486)
	MessageLoop::DeferOrRunPendingTask [0x01F08FC3+51] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:505)
	MessageLoop::DoWork [0x01F0999D+221] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:693)
	base::MessagePumpForUI::DoRunLoop [0x01F6BBA4+84] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.cc:203)
	base::MessagePumpWin::RunWithDispatcher [0x01F6B472+130] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.cc:51)
	base::MessagePumpWin::Run [0x01F6B6DC+28] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_pump_win.h:80)
	MessageLoop::RunInternal [0x01F08BC7+247] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:451)
	MessageLoop::RunHandler [0x01F0899E+46] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:425)
	MessageLoop::Run [0x01F082AA+58] (e:\b\build\slave\webkit_win__dbg__1_\build\src\base\message_loop.cc:349)
	webkit_support::RunMessageLoop [0x008E01BF+15] (e:\b\build\slave\webkit_win__dbg__1_\build\src\webkit\support\webkit_support.cc:375)
	TestShell::waitTestFinished [0x0042BCED+141] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshellwin.cpp:106)
	TestShell::runFileTest [0x0044646F+479] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\testshell.cpp:235)
	runTest [0x0041B12D+733] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:125)
	main [0x0041A928+2232] (e:\b\build\slave\webkit_win__dbg__1_\build\src\third_party\webkit\tools\dumprendertree\chromium\dumprendertree.cpp:248)
	__tmainCRTStartup [0x00A74967+279] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:266)
	mainCRTStartup [0x00A7483F+15] (f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c:182)
	RegisterWaitForInputIdle [0x7C817077+73]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438403</commentid>
    <comment_count>12</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-18 05:02:05 -0700</bug_when>
    <thetext>Reopening, since this was rolled out. Updated patch coming shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438410</commentid>
    <comment_count>13</comment_count>
      <attachid>101150</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-18 05:24:04 -0700</bug_when>
    <thetext>Created attachment 101150
Patch v3

This should fix the logic error that was causing the assertion failures on the bots - the error being that an option index was used where a list index should&apos;ve been used. Also note that an incorrect &gt; was replaced with a &gt;=. Here is the relevant diff:


--- a/Source/WebCore/rendering/RenderMenuList.cpp
+++ b/Source/WebCore/rendering/RenderMenuList.cpp
@@ -356,10 +356,11 @@ void RenderMenuList::didUpdateActiveOption(int optionIndex)
     m_lastActiveIndex = optionIndex;

     SelectElement* select = toSelectElement(static_cast&lt;Element*&gt;(node()));
-    if (optionIndex &lt; 0 || optionIndex &gt; static_cast&lt;int&gt;(select-&gt;listItems().size()))
+    int listIndex = select-&gt;optionToListIndex(optionIndex);
+    if (listIndex &lt; 0 || listIndex &gt;= select-&gt;listItems().size())
         return;

-    ASSERT(toOptionElement(select-&gt;listItems()[optionIndex]));
+    ASSERT(toOptionElement(select-&gt;listItems()[listIndex]));

     if (AccessibilityMenuList* menuList = static_cast&lt;AccessibilityMenuList*&gt;(document()-&gt;axObjectCache()-&gt;get(this)))
         menuList-&gt;didUpdateActiveOption(optionIndex);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438414</commentid>
    <comment_count>14</comment_count>
      <attachid>101150</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-07-18 05:36:38 -0700</bug_when>
    <thetext>Comment on attachment 101150
Patch v3

Attachment 101150 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/9110391</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438421</commentid>
    <comment_count>15</comment_count>
      <attachid>101152</attachid>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-18 05:47:32 -0700</bug_when>
    <thetext>Created attachment 101152
Patch v4

Fix a signed/unsigned comparison mismatch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>438805</commentid>
    <comment_count>16</comment_count>
    <who name="Jon Honeycutt">jhoneycutt</who>
    <bug_when>2011-07-18 16:17:20 -0700</bug_when>
    <thetext>Landed in r91219.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100780</attachid>
            <date>2011-07-14 00:07:30 -0700</date>
            <delta_ts>2011-07-15 04:34:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0003-focus-and-selection-events-are-not-fired-when-a-sele.patch</filename>
            <type>text/plain</type>
            <size>23918</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAxYzEzODU0MGRkMjA5NTgzNjdiNGVjMGUxOTUwMWUwNWRhOWNkOTY3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxMyBKdWwgMjAxMSAxOTo0NzozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEZv
Y3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mg
c2VsZWN0aW9uCiBjaGFuZ2VzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1MDQKIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKCiogYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CkRlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBBWE1l
bnVMaXN0SXRlbVNlbGVjdGVkLgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9w
dGlvbik6ClRlbGwgb3VyIGNoaWxkIHBvcHVwIHRoYXQgdGhlIGFjdGl2ZSBvcHRpb24gY2hhbmdl
ZCwgYW5kIHBvc3QgYQpub3RpZmljYXRpb24gdGhhdCBvdXIgdmFsdWUgY2hhbmdlZC4KCiogYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDoKRGVjbGFyZSBkaWRVcGRhdGVBY3Rp
dmVPcHRpb24oKS4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5j
cHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlkVXBkYXRlQWN0aXZl
T3B0aW9uKToKR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50IHRoYXQgaXMgc2VsZWN0ZWQs
IGFuZCBmaXJlIGZvY3VzIGFuZApzZWxlY3Rpb24gZXZlbnRzIGZvciBpdC4KCiogYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgpEZWNsYXJlIGRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbigpLgoKKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoKKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Ck1hcCBBWE1l
bnVMaXN0SXRlbVNlbGVjdGVkIC0+IEVWRU5UX09CSkVDVF9TRUxFQ1RJT04uCgoqIGRvbS9TZWxl
Y3RFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgp
OgpQYXNzIHRoZSBuZXdseS1zZWxlY3RlZCBpbmRleC4KCiogcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6ClVwZGF0
ZSB0aGUgaW5pdGlhbGl6YXRpb24gbGlzdCBmb3IgdGhlIHJlbmFtZWQgbV9sYXN0QWN0aXZlSW5k
ZXguCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24pOgpBIG5ldyBz
ZWxlY3Rpb24gaGFzIGJlZW4gbWFkZSBpbiB0aGUgcG9wdXA7IGNhbGwKZGlkVXBkYXRlQWN0aXZl
T3B0aW9uKCkuCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRleCk6
CkNhbGwgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCksIHBhc3NpbmcgdGhlIGluZGV4IG9mIHRoZSBu
ZXdseS1zZWxlY3RlZAo8b3B0aW9uPi4KKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpkaWRVcGRh
dGVBY3RpdmVPcHRpb24pOgpJZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLCBvciBpZiB0aGUg
YWN0aXZlIG9wdGlvbiBoYXMgbm90IGNoYW5nZWQsCnJldHVybiBlYXJseS4gQ2hlY2sgd2hldGhl
ciB0aGUgb3B0aW9uIGluZGV4IGlzIGluIHRoZSByYW5nZSBvZiBsaXN0Cml0ZW1zLCBhbmQgYXNz
ZXJ0IHRoYXQgdGhlIGl0ZW0gYXQgdGhhdCBpbmRleCBpcyBhbiA8b3B0aW9uPiBlbGVtZW50LgpU
ZWxsIHRoZSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QgZm9yIHRoaXMgZWxlbWVudCB0aGF0IHdlIHVw
ZGF0ZWQgdGhlCmFjdGl2ZSBvcHRpb24uCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oOgpV
cGRhdGVkIHRoZSBkZWNsYXJhdGlvbiBvZiBkaWRTZXRTZWxlY3RlZEluZGV4KCkgdG8gdGFrZSB0
aGUgc2VsZWN0ZWQKaW5kZXguIERlY2xhcmVkIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLiBSZW5h
bWVkIG1fbGFzdFNlbGVjdGVkSW5kZXggdG8KbV9sYXN0QWN0aXZlSW5kZXguCgpUb29sczoKCiog
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKQWRkZWQgbV9ub3RpZmlj
YXRpb25zRXZlbnRIb29rIGZvciBhZGROb3RpZmljYXRpb25MaXN0ZW5lcigpLgptX2FsbEV2ZW50
c0hvb2sgd2lsbCBub3cgYmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpLgoK
KiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgooQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKSW5pdGlhbGl6
ZSBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2suCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6fkFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyKToKVHVybiBvZmYgbG9nZ2luZyBvZiBhbGwgYWNjZXNzaWJp
bGl0eSBldmVudHMuIElmCm1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayBpcyBub24tbnVsbCwgdW5o
b29rIGl0LgoobG9nRXZlbnRQcm9jKToKQWRkIGhhbmRsaW5nIG9mIEVWRU5UX09CSkVDVF9TRUxF
Q1RJT04uCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50
cyk6CklmIHRoZSBzdGF0ZSBvZiBsb2dnaW5nIGlzIG5vdCBjaGFuZ2luZywgcmV0dXJuIGVhcmx5
LiBJZiB3ZSdyZSB0dXJuaW5nCm9mZiBsb2dnaW5nLCB1bmhvb2sgbV9hbGxFdmVudHNIb29rLCBh
bmQgemVybyBpdCBvdXQuIE90aGVyd2lzZSwgYWRkIGEKaG9vayBmb3IgYWxsIGV2ZW50cy4KKEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcik6ClVzZSBtX25v
dGlmaWNhdGlvbnNFdmVudEhvb2sgcmF0aGVyIHRoYW4gbV9hbGxFdmVudHNIb29rLgoKTGF5b3V0
VGVzdHM6CgoqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVj
dGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0vd2lu
L2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMu
aHRtbDogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEyICsrKysKIC4uLmVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1l
dmVudHMtZXhwZWN0ZWQudHh0IHwgICAxMCArKysKIC4uLi9vcHRpb24tZWxlbWVudC1zZWxlY3Rp
b24tYW5kLWZvY3VzLWV2ZW50cy5odG1sIHwgICAzMiArKysrKysrKysrKwogU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDU5ICsrKysrKysrKysr
KysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCAg
ICAgICB8ICAgIDEgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNw
cCAgICAgICAgfCAgIDE4ICsrKysrKwogLi4uL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3QuaCAgfCAgICAyICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdFBvcHVwLmNwcCAgIHwgICAxMyArKysrCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oICAgICB8ICAgIDMgKwogLi4uL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAgfCAgICA0ICsKIFNvdXJjZS9XZWJDb3Jl
L2RvbS9TZWxlY3RFbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICAgMiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgfCAgIDI5ICsrKysrKyst
LQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAgICAgfCAg
ICA2ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMjggKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oICAgICB8ICAgIDEgKwogLi4uL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldp
bi5jcHAgICAgICAgICAgICAgfCAgIDMyICsrKysrKysrKy0tCiAxNiBmaWxlcyBjaGFuZ2VkLCAy
MzcgaW5zZXJ0aW9ucygrKSwgMTUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0
aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0
aW9uLWFuZC1mb2N1cy1ldmVudHMuaHRtbAoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzNTMxMTE3Li44OTc1NTZiIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDctMTMgIEpvbiBIb25leWN1dHQgIDxqaG9uZXljdXR0
QGFwcGxlLmNvbT4KKworICAgICAgICBGb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBhcmUgbm90
IGZpcmVkIHdoZW4gYSA8c2VsZWN0PidzIHNlbGVjdGlvbgorICAgICAgICBjaGFuZ2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwNAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vOTMxOTg4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1l
bGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0
aW9uLWFuZC1mb2N1cy1ldmVudHMuaHRtbDogQWRkZWQuCisKIDIwMTEtMDctMTIgIEpvbiBIb25l
eWN1dHQgIDxqaG9uZXljdXR0QGFwcGxlLmNvbT4KIAogICAgICAgICBFbnN1cmUgdGhhdCBhIHNp
bmdsZSBzZWxlY3QgZWxlbWVudCdzIGNoaWxkIG9wdGlvbiBlbGVtZW50cyBhcmUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50
LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9j
dXMtZXZlbnRzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5mZjA4ZGFkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2Fj
Y2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKK1JlY2VpdmVkIGZvY3VzIGV2ZW50IGZvciBvYmpl
Y3QgJ29wdGlvbiAyJy4KK1JlY2VpdmVkIHNlbGVjdGlvbiBldmVudCBmb3Igb2JqZWN0ICdvcHRp
b24gMicuCitSZWNlaXZlZCB2YWx1ZSBjaGFuZ2UgZXZlbnQgZm9yIG9iamVjdCAnc2VsZWN0IGVs
ZW1lbnQnLCB2YWx1ZSAnb3B0aW9uIDInLgorUmVjZWl2ZWQgZm9jdXMgZXZlbnQgZm9yIG9iamVj
dCAnb3B0aW9uIDEnLgorUmVjZWl2ZWQgc2VsZWN0aW9uIGV2ZW50IGZvciBvYmplY3QgJ29wdGlv
biAxJy4KK1JlY2VpdmVkIHZhbHVlIGNoYW5nZSBldmVudCBmb3Igb2JqZWN0ICdzZWxlY3QgZWxl
bWVudCcsIHZhbHVlICdvcHRpb24gMScuCisKK1RoaXMgdGVzdHMgdGhhdCBjaGFuZ2luZyBzZWxl
Y3Rpb24gaW4gYSBub24tbXVsdGlwbGUgc2VsZWN0IGVsZW1lbnQgZmlyZXMgZm9jdXMgYW5kIHNl
bGVjdGlvbiBldmVudHMgZm9yIHRoZSBzZWxlY3RlZCBvcHRpb24gZWxlbWVudC4KKworVGhpcyB0
ZXN0IHNob3VsZCBvbmx5IGJlIHJ1biBpbnNpZGUgb2YgRHVtcFJlbmRlclRyZWUuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVu
dC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVu
dHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MTcxM2M5Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0
aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMuaHRtbApAQCAtMCwwICsxLDMy
IEBACis8aHRtbD4KKworPGJvZHkgaWQ9ImJvZHkiPgorCis8c2VsZWN0IGlkPSJzZWxlY3QiIHRp
dGxlPSJzZWxlY3QgZWxlbWVudCI+Cis8b3B0aW9uIFNFTEVDVEVEPm9wdGlvbiAxPC9vcHRpb24+
Cis8b3B0aW9uPm9wdGlvbiAyPC9vcHRpb24+Cis8b3B0aW9uPm9wdGlvbiAzPC9vcHRpb24+Cis8
b3B0aW9uPm9wdGlvbiA0PC9vcHRpb24+Cis8L3NlbGVjdD4KKworPHA+VGhpcyB0ZXN0cyB0aGF0
IGNoYW5naW5nIHNlbGVjdGlvbiBpbiBhIG5vbi1tdWx0aXBsZSBzZWxlY3QgZWxlbWVudCBmaXJl
cworZm9jdXMgYW5kIHNlbGVjdGlvbiBldmVudHMgZm9yIHRoZSBzZWxlY3RlZCBvcHRpb24gZWxl
bWVudC48L3A+CisKKzxwIGlkPSJub3REUlQiPlRoaXMgdGVzdCBzaG91bGQgb25seSBiZSBydW4g
aW5zaWRlIG9mIER1bXBSZW5kZXJUcmVlLjwvcD4KKworPHNjcmlwdD4KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikg
eworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJzZWxlY3QiKS5mb2N1cygpOworICAgICAgICBhY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5sb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKCk7CisKKyAgICAgICAgLy8g
VGVzdCB0aGF0IHdlIHNlbmQgZXZlbnRzIHdpdGggdGhlIGxpc3QgY29sbGFwc2VkLgorICAgICAg
ICBldmVudFNlbmRlci5rZXlEb3duKCJkb3duQXJyb3ciKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
a2V5RG93bigidXBBcnJvdyIpOworCisgICAgICAgIC8vIFdlIHNob3VsZCB0ZXN0IHdoZXRoZXIg
d2Ugc2VuZCBldmVudHMgd2hlbiB1c2luZyBhcnJvdyBrZXlzIHdpdGggdGhlCisgICAgICAgIC8v
IG1lbnUgZXhwYW5kZWQsIGJ1dCBldmVudFNlbmRlciBjYW5ub3Qgc2VuZCBldmVudHMgdG8gdGhl
IHBvcHVwIG1lbnUuCisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggY2M0YTc3NS4uYjdiZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDEx
LTA3LTEzICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKKyAgICAgICAg
Rm9jdXMgYW5kIHNlbGVjdGlvbiBldmVudHMgYXJlIG5vdCBmaXJlZCB3aGVuIGEgPHNlbGVjdD4n
cyBzZWxlY3Rpb24KKyAgICAgICAgY2hhbmdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MDQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkzMTk4
ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFu
ZC1mb2N1cy1ldmVudHMuaHRtbAorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENh
Y2hlLmg6CisgICAgICAgIERlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBBWE1lbnVMaXN0SXRl
bVNlbGVjdGVkLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxp
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpkaWRVcGRh
dGVBY3RpdmVPcHRpb24pOgorICAgICAgICBUZWxsIG91ciBjaGlsZCBwb3B1cCB0aGF0IHRoZSBh
Y3RpdmUgb3B0aW9uIGNoYW5nZWQsIGFuZCBwb3N0IGEKKyAgICAgICAgbm90aWZpY2F0aW9uIHRo
YXQgb3VyIHZhbHVlIGNoYW5nZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlNZW51TGlzdC5oOgorICAgICAgICBEZWNsYXJlIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigp
LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlkVXBk
YXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50
IHRoYXQgaXMgc2VsZWN0ZWQsIGFuZCBmaXJlIGZvY3VzIGFuZAorICAgICAgICBzZWxlY3Rpb24g
ZXZlbnRzIGZvciBpdC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXAuaDoKKyAgICAgICAgRGVjbGFyZSBkaWRVcGRhdGVBY3RpdmVPcHRpb24oKS4K
KworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToK
KyAgICAgICAgTWFwIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQgLT4gRVZFTlRfT0JKRUNUX1NFTEVD
VElPTi4KKworICAgICAgICAqIGRvbS9TZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOgorICAgICAgICBQYXNzIHRoZSBu
ZXdseS1zZWxlY3RlZCBpbmRleC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3Qp
OgorICAgICAgICBVcGRhdGUgdGhlIGluaXRpYWxpemF0aW9uIGxpc3QgZm9yIHRoZSByZW5hbWVk
IG1fbGFzdEFjdGl2ZUluZGV4LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OnNl
dFRleHRGcm9tT3B0aW9uKToKKyAgICAgICAgQSBuZXcgc2VsZWN0aW9uIGhhcyBiZWVuIG1hZGUg
aW4gdGhlIHBvcHVwOyBjYWxsCisgICAgICAgIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmRpZFNldFNlbGVjdGVkSW5kZXgpOgorICAg
ICAgICBDYWxsIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLCBwYXNzaW5nIHRoZSBpbmRleCBvZiB0
aGUgbmV3bHktc2VsZWN0ZWQKKyAgICAgICAgPG9wdGlvbj4uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgSWYgYWNjZXNz
aWJpbGl0eSBpcyBkaXNhYmxlZCwgb3IgaWYgdGhlIGFjdGl2ZSBvcHRpb24gaGFzIG5vdCBjaGFu
Z2VkLAorICAgICAgICByZXR1cm4gZWFybHkuIENoZWNrIHdoZXRoZXIgdGhlIG9wdGlvbiBpbmRl
eCBpcyBpbiB0aGUgcmFuZ2Ugb2YgbGlzdAorICAgICAgICBpdGVtcywgYW5kIGFzc2VydCB0aGF0
IHRoZSBpdGVtIGF0IHRoYXQgaW5kZXggaXMgYW4gPG9wdGlvbj4gZWxlbWVudC4KKyAgICAgICAg
VGVsbCB0aGUgQWNjZXNzaWJpbGl0eU1lbnVMaXN0IGZvciB0aGlzIGVsZW1lbnQgdGhhdCB3ZSB1
cGRhdGVkIHRoZQorICAgICAgICBhY3RpdmUgb3B0aW9uLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIFVwZGF0ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIGRp
ZFNldFNlbGVjdGVkSW5kZXgoKSB0byB0YWtlIHRoZSBzZWxlY3RlZAorICAgICAgICBpbmRleC4g
RGVjbGFyZWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuIFJlbmFtZWQgbV9sYXN0U2VsZWN0ZWRJ
bmRleCB0bworICAgICAgICBtX2xhc3RBY3RpdmVJbmRleC4KKworMjAxMS0wNy0xMyAgSm9uIEhv
bmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCiAgICAgICAgIEFMVCArIERPV04gYXJy
b3cga2V5IGRvZXMgbm90IG9wZW4gc2VsZWN0CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NDA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5oCmluZGV4IDk1Y2M3ZjMuLjI3Nzg5ZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xMjksNiArMTI5LDcgQEAg
cHVibGljOgogICAgICAgICBBWFZhbHVlQ2hhbmdlZCwKICAgICAgICAgQVhTY3JvbGxlZFRvQW5j
aG9yLAogICAgICAgICBBWExpdmVSZWdpb25DaGFuZ2VkLAorICAgICAgICBBWE1lbnVMaXN0SXRl
bVNlbGVjdGVkLAogICAgICAgICBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkLAogICAgICAgICBBWFJv
d0NvdW50Q2hhbmdlZCwKICAgICAgICAgQVhSb3dDb2xsYXBzZWQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHAKaW5kZXgg
ZTBjMDNjMy4uNzYyMWEyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcApAQCAtODIsNCArODIsMjIgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmlzQ29sbGFwc2VkKCkgY29uc3QKICAgICByZXR1cm4gIXN0
YXRpY19jYXN0PFJlbmRlck1lbnVMaXN0Kj4obV9yZW5kZXJlciktPnBvcHVwSXNWaXNpYmxlKCk7
CiB9CiAKK3ZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpkaWRVcGRhdGVBY3RpdmVPcHRpb24o
aW50IG9wdGlvbkluZGV4KQoreworICAgIGNvbnN0IEFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3Rv
ciYgY2hpbGRPYmplY3RzID0gY2hpbGRyZW4oKTsKKyAgICBpZiAoY2hpbGRPYmplY3RzLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKGNoaWxkT2JqZWN0cy5zaXplKCkg
PT0gMSk7CisgICAgQVNTRVJUKGNoaWxkT2JqZWN0c1swXS0+aXNNZW51TGlzdFBvcHVwKCkpOwor
CisgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fcmVuZGVyZXItPmRvY3VtZW50KCk7
CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpOwor
CisgICAgaWYgKEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwKiBwb3B1cCA9IHN0YXRpY19jYXN0
PEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwKj4oY2hpbGRPYmplY3RzWzBdLmdldCgpKSkKKyAg
ICAgICAgcG9wdXAtPmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihvcHRpb25JbmRleCk7CisKKyAgICBj
YWNoZS0+cG9zdE5vdGlmaWNhdGlvbih0aGlzLCBkb2N1bWVudC5nZXQoKSwgQVhPYmplY3RDYWNo
ZTo6QVhNZW51TGlzdFZhbHVlQ2hhbmdlZCwgdHJ1ZSwgUG9zdFN5bmNocm9ub3VzbHkpOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaAppbmRleCBjZGIzYWMyLi42OGY0MjRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmgKQEAgLTQyLDYgKzQyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bGxhcHNlZCgpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwcmVzcygpIGNvbnN0OwogCisgICAg
dm9pZCBkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4KTsKKwogcHJpdmF0ZToK
ICAgICBBY2Nlc3NpYmlsaXR5TWVudUxpc3QoUmVuZGVyTWVudUxpc3QqKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dFBvcHVwLmNwcAppbmRleCA0NWRkZTg1Li45Y2NlZDY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNw
cApAQCAtMTI1LDQgKzEyNSwxNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpz
ZXRNZW51TGlzdChBY2Nlc3NpYmlsaXR5TWVudUxpc3QqIG1lbnVMaXN0KQogICAgIG1fbWVudUxp
c3QgPSBtZW51TGlzdDsKIH0KIAordm9pZCBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlk
VXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCkKK3sKKyAgICBBU1NFUlRfQVJHKG9w
dGlvbkluZGV4LCBvcHRpb25JbmRleCA+PSAwKTsKKyAgICBBU1NFUlRfQVJHKG9wdGlvbkluZGV4
LCBvcHRpb25JbmRleCA8IG1fY2hpbGRyZW4uc2l6ZSgpKTsKKworICAgIFJlZlB0cjxEb2N1bWVu
dD4gZG9jdW1lbnQgPSBtX21lbnVMaXN0LT5yZW5kZXJlcigpLT5kb2N1bWVudCgpOworICAgIEFY
T2JqZWN0Q2FjaGUqIGNhY2hlID0gZG9jdW1lbnQtPmF4T2JqZWN0Q2FjaGUoKTsKKyAgICBSZWZQ
dHI8QWNjZXNzaWJpbGl0eU9iamVjdD4gY2hpbGQgPSBtX2NoaWxkcmVuW29wdGlvbkluZGV4XS5n
ZXQoKTsKKworICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGNoaWxkLmdldCgpLCBkb2N1bWVu
dC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhGb2N1c2VkVUlFbGVtZW50Q2hhbmdlZCwgdHJ1ZSwg
UG9zdFN5bmNocm9ub3VzbHkpOworICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0aW9uKGNoaWxkLmdl
dCgpLCBkb2N1bWVudC5nZXQoKSwgQVhPYmplY3RDYWNoZTo6QVhNZW51TGlzdEl0ZW1TZWxlY3Rl
ZCwgdHJ1ZSwgUG9zdFN5bmNocm9ub3VzbHkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlN
ZW51TGlzdFBvcHVwLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdFBvcHVwLmgKaW5kZXggODhmYmY3Yy4uMzgwY2NkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9w
dXAuaApAQCAtMzMsNiArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q7CiBjbGFzcyBBY2Nlc3NpYmlsaXR5TWVudUxpc3RPcHRpb247CiBjbGFz
cyBIVE1MRWxlbWVudDsKK2NsYXNzIEhUTUxTZWxlY3RFbGVtZW50OwogCiBjbGFzcyBBY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cCA6IHB1YmxpYyBBY2Nlc3NpYmlsaXR5T2JqZWN0IHsKIHB1Ymxp
YzoKQEAgLTQzLDYgKzQ0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0VuYWJsZWQo
KSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNPZmZTY3JlZW4oKSBjb25zdDsKIAorICAgIHZv
aWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7CisKIHByaXZhdGU6CiAg
ICAgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcAppbmRleCBiMjBiNTFh
Li40ZTAyYzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dpbi9B
WE9iamVjdENhY2hlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dp
bi9BWE9iamVjdENhY2hlV2luLmNwcApAQCAtODgsNiArODgsMTAgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqLCBB
WE5vdGlmaWMKICAgICAgICAgICAgIG1zYWFFdmVudCA9IEVWRU5UX09CSkVDVF9WQUxVRUNIQU5H
RTsKICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgQVhNZW51TGlzdEl0ZW1TZWxl
Y3RlZDoKKyAgICAgICAgICAgIG1zYWFFdmVudCA9IEVWRU5UX09CSkVDVF9TRUxFQ1RJT047Cisg
ICAgICAgICAgICBicmVhazsKKwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJu
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcAppbmRleCAxMjIyZDdiLi4x
YmU1ZTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCkBAIC0zOTAsNyArMzkw
LDcgQEAgdm9pZCBTZWxlY3RFbGVtZW50OjpzZXRTZWxlY3RlZEluZGV4KFNlbGVjdEVsZW1lbnRE
YXRhJiBkYXRhLCBFbGVtZW50KiBlbGVtZW50LAogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKTsKICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAg
ICAgICAgICBpZiAoZGF0YS51c2VzTWVudUxpc3QoKSkKLSAgICAgICAgICAgICAgICB0b1JlbmRl
ck1lbnVMaXN0KHJlbmRlcmVyKS0+ZGlkU2V0U2VsZWN0ZWRJbmRleCgpOworICAgICAgICAgICAg
ICAgIHRvUmVuZGVyTWVudUxpc3QocmVuZGVyZXIpLT5kaWRTZXRTZWxlY3RlZEluZGV4KGxpc3RJ
bmRleCk7CiAgICAgICAgICAgICBlbHNlIGlmIChyZW5kZXJlci0+aXNMaXN0Qm94KCkpCiAgICAg
ICAgICAgICAgICAgdG9SZW5kZXJMaXN0Qm94KHJlbmRlcmVyKS0+c2VsZWN0aW9uQ2hhbmdlZCgp
OwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cAppbmRleCBjYTlkN2UzMy4uMWYxZjc5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiUmVuZGVyTWVu
dUxpc3QuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5TWVudUxpc3QuaCIKICNpbmNsdWRlICJDU1NGb250U2VsZWN0b3IuaCIKICNpbmNsdWRl
ICJDU1NTdHlsZVNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCkBAIC01Nyw3ICs1OCw3
IEBAIFJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdChFbGVtZW50KiBlbGVtZW50KQogICAg
ICwgbV9pbm5lckJsb2NrKDApCiAgICAgLCBtX29wdGlvbnNDaGFuZ2VkKHRydWUpCiAgICAgLCBt
X29wdGlvbnNXaWR0aCgwKQotICAgICwgbV9sYXN0U2VsZWN0ZWRJbmRleCgtMSkKKyAgICAsIG1f
bGFzdEFjdGl2ZUluZGV4KC0xKQogICAgICwgbV9wb3B1cElzVmlzaWJsZShmYWxzZSkKIHsKIH0K
QEAgLTIwNCw2ICsyMDUsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbU9wdGlv
bihpbnQgb3B0aW9uSW5kZXgpCiAgICAgfQogCiAgICAgc2V0VGV4dCh0ZXh0LnN0cmlwV2hpdGVT
cGFjZSgpKTsKKyAgICBkaWRVcGRhdGVBY3RpdmVPcHRpb24ob3B0aW9uSW5kZXgpOwogfQogCiB2
b2lkIFJlbmRlck1lbnVMaXN0OjpzZXRUZXh0KGNvbnN0IFN0cmluZyYgcykKQEAgLTMzOCwxNiAr
MzQwLDI5IEBAIGJvb2wgUmVuZGVyTWVudUxpc3Q6Om11bHRpcGxlKCkKIH0KICNlbmRpZgogCi12
b2lkIFJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxlY3RlZEluZGV4KCkKK3ZvaWQgUmVuZGVyTWVu
dUxpc3Q6OmRpZFNldFNlbGVjdGVkSW5kZXgoaW50IGxpc3RJbmRleCkKIHsKLSAgICBpbnQgaW5k
ZXggPSBzZWxlY3RlZEluZGV4KCk7Ci0gICAgaWYgKG1fbGFzdFNlbGVjdGVkSW5kZXggPT0gaW5k
ZXgpCisgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19j
YXN0PEVsZW1lbnQqPihub2RlKCkpKTsKKyAgICBkaWRVcGRhdGVBY3RpdmVPcHRpb24oc2VsZWN0
LT5saXN0VG9PcHRpb25JbmRleChsaXN0SW5kZXgpKTsKK30KKwordm9pZCBSZW5kZXJNZW51TGlz
dDo6ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCkKK3sKKyAgICBpZiAoIUFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChtX2xhc3RBY3RpdmVJbmRleCA9PSBvcHRpb25JbmRleCkKKyAgICAgICAgcmV0dXJu
OworICAgIG1fbGFzdEFjdGl2ZUluZGV4ID0gb3B0aW9uSW5kZXg7CisKKyAgICBTZWxlY3RFbGVt
ZW50KiBzZWxlY3QgPSB0b1NlbGVjdEVsZW1lbnQoc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG5vZGUo
KSkpOworICAgIGlmIChvcHRpb25JbmRleCA8IDAgfHwgb3B0aW9uSW5kZXggPiBzdGF0aWNfY2Fz
dDxpbnQ+KHNlbGVjdC0+bGlzdEl0ZW1zKCkuc2l6ZSgpKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9sYXN0U2VsZWN0ZWRJbmRleCA9IGluZGV4OworICAgIEFTU0VSVCh0b09wdGlvbkVsZW1l
bnQoc2VsZWN0LT5saXN0SXRlbXMoKVtvcHRpb25JbmRleF0pKTsKIAotICAgIGlmIChBWE9iamVj
dENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBkb2N1bWVudCgpLT5heE9i
amVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhNZW51
TGlzdFZhbHVlQ2hhbmdlZCwgdHJ1ZSwgUG9zdFN5bmNocm9ub3VzbHkpOworICAgIEFjY2Vzc2li
aWxpdHlNZW51TGlzdCogbWVudUxpc3QgPSBzdGF0aWNfY2FzdDxBY2Nlc3NpYmlsaXR5TWVudUxp
c3QqPihkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPmdldE9yQ3JlYXRlKHRoaXMpKTsKKyAg
ICBtZW51TGlzdC0+ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogU3Ry
aW5nIFJlbmRlck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IGUyOTEyM2EuLjhm
M2JiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3B0aW9uc0NoYW5nZWQoYm9vbCBj
aGFuZ2VkKSB7IG1fb3B0aW9uc0NoYW5nZWQgPSBjaGFuZ2VkOyB9CiAKLSAgICB2b2lkIGRpZFNl
dFNlbGVjdGVkSW5kZXgoKTsKKyAgICB2b2lkIGRpZFNldFNlbGVjdGVkSW5kZXgoaW50IGxpc3RJ
bmRleCk7CiAKICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0OwogCkBAIC0xMjQsMTMgKzEyNCwxNSBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0VGV4dEZyb21PcHRpb24oaW50IG9wdGlvbkluZGV4KTsK
ICAgICB2b2lkIHVwZGF0ZU9wdGlvbnNXaWR0aCgpOwogCisgICAgdm9pZCBkaWRVcGRhdGVBY3Rp
dmVPcHRpb24oaW50IG9wdGlvbkluZGV4KTsKKwogICAgIFJlbmRlclRleHQqIG1fYnV0dG9uVGV4
dDsKICAgICBSZW5kZXJCbG9jayogbV9pbm5lckJsb2NrOwogCiAgICAgYm9vbCBtX29wdGlvbnND
aGFuZ2VkOwogICAgIGludCBtX29wdGlvbnNXaWR0aDsKIAotICAgIGludCBtX2xhc3RTZWxlY3Rl
ZEluZGV4OworICAgIGludCBtX2xhc3RBY3RpdmVJbmRleDsKIAogICAgIFJlZlB0cjxSZW5kZXJT
dHlsZT4gbV9vcHRpb25TdHlsZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IDc5OTUxZjAuLjM2MzQxYzQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0wNy0x
MyAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZvY3Vz
IGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mgc2Vs
ZWN0aW9uCisgICAgICAgIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY0NTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgQWRkZWQgbV9ub3Rp
ZmljYXRpb25zRXZlbnRIb29rIGZvciBhZGROb3RpZmljYXRpb25MaXN0ZW5lcigpLgorICAgICAg
ICBtX2FsbEV2ZW50c0hvb2sgd2lsbCBub3cgYmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0
eUV2ZW50cygpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgIEluaXRpYWxpemUgbV9ub3RpZmljYXRpb25z
RXZlbnRIb29rLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmls
aXR5Q29udHJvbGxlcik6CisgICAgICAgIFR1cm4gb2ZmIGxvZ2dpbmcgb2YgYWxsIGFjY2Vzc2li
aWxpdHkgZXZlbnRzLiBJZgorICAgICAgICBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2sgaXMgbm9u
LW51bGwsIHVuaG9vayBpdC4KKyAgICAgICAgKGxvZ0V2ZW50UHJvYyk6CisgICAgICAgIEFkZCBo
YW5kbGluZyBvZiBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OLgorICAgICAgICAoQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICBJZiB0aGUg
c3RhdGUgb2YgbG9nZ2luZyBpcyBub3QgY2hhbmdpbmcsIHJldHVybiBlYXJseS4gSWYgd2UncmUg
dHVybmluZworICAgICAgICBvZmYgbG9nZ2luZywgdW5ob29rIG1fYWxsRXZlbnRzSG9vaywgYW5k
IHplcm8gaXQgb3V0LiBPdGhlcndpc2UsIGFkZCBhCisgICAgICAgIGhvb2sgZm9yIGFsbCBldmVu
dHMuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlz
dGVuZXIpOgorICAgICAgICBVc2UgbV9ub3RpZmljYXRpb25zRXZlbnRIb29rIHJhdGhlciB0aGFu
IG1fYWxsRXZlbnRzSG9vay4KKwogMjAxMS0wNy0xMyAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBuZXctcnVuLXdlYmtpdC10ZXN0czogcHJpbnQgYmFzZWxp
bmUgc2VhcmNoIHBhdGggYXMgcGFydCBvZiBjb25maWcgb3V0cHV0CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA0NjJjNDg0Li4yNWEzYTAy
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxl
ci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgK
QEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBIV0lORVZFTlRIT09LIG1fc2Nyb2xsaW5n
U3RhcnRFdmVudEhvb2s7CiAKICAgICBIV0lORVZFTlRIT09LIG1fYWxsRXZlbnRzSG9vazsKKyAg
ICBIV0lORVZFTlRIT09LIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vazsKICAgICBIYXNoTWFwPFBs
YXRmb3JtVUlFbGVtZW50LCBKU09iamVjdFJlZj4gbV9ub3RpZmljYXRpb25MaXN0ZW5lcnM7CiAj
ZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyV2luLmNwcAppbmRleCA2ZTRlZTQ2Li44ODQ1NDIzIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldp
bi5jcHAKQEAgLTQ0LDE2ICs0NCwxOCBAQCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIoKQogICAgICwgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vaygwKQog
ICAgICwgbV92YWx1ZUNoYW5nZUV2ZW50SG9vaygwKQogICAgICwgbV9hbGxFdmVudHNIb29rKDAp
CisgICAgLCBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2soMCkKIHsKIH0KIAogQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpCiB7CiAgICAgc2V0TG9nRm9j
dXNFdmVudHMoZmFsc2UpOworICAgIHNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoZmFsc2UpOwog
ICAgIHNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKGZhbHNlKTsKIAotICAgIGlmIChtX2FsbEV2ZW50
c0hvb2spCi0gICAgICAgIFVuaG9va1dpbkV2ZW50KG1fYWxsRXZlbnRzSG9vayk7CisgICAgaWYg
KG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vaykKKyAgICAgICAgVW5ob29rV2luRXZlbnQobV9ub3Rp
ZmljYXRpb25zRXZlbnRIb29rKTsKIAogICAgIGZvciAoSGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVu
dCwgSlNPYmplY3RSZWY+OjppdGVyYXRvciBpdCA9IG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmJl
Z2luKCk7IGl0ICE9IG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmVuZCgpOyArK2l0KQogICAgICAg
ICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLT5nbG9iYWxDb250ZXh0KCksIGl0LT5zZWNvbmQpOwpA
QCAtMTMwLDYgKzEzMiwxMCBAQCBzdGF0aWMgdm9pZCBDQUxMQkFDSyBsb2dFdmVudFByb2MoSFdJ
TkVWRU5USE9PSywgRFdPUkQgZXZlbnQsIEhXTkQgaHduZCwgTE9ORyBpZAogICAgICAgICAgICAg
cHJpbnRmKCJSZWNlaXZlZCBmb2N1cyBldmVudCBmb3Igb2JqZWN0ICclUycuXG4iLCBuYW1lLmNf
c3RyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBFVkVOVF9PQkpFQ1Rf
U0VMRUNUSU9OOgorICAgICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCBzZWxlY3Rpb24gZXZlbnQg
Zm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOwor
CiAgICAgICAgIGNhc2UgRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFOiB7CiAgICAgICAgICAgICBC
U1RSIHZhbHVlQlNUUjsKICAgICAgICAgICAgIGhyID0gcGFyZW50T2JqZWN0LT5nZXRfYWNjVmFs
dWUodkNoaWxkLCAmdmFsdWVCU1RSKTsKQEAgLTIxMyw4ICsyMTksMjQgQEAgdm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoYm9vbCBsb2dTY3Jv
bGxpbmdTdGFydEUKICAgICBBU1NFUlQobV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vayk7CiB9CiAK
LXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMo
Ym9vbCkKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlF
dmVudHMoYm9vbCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKQogeworICAgIGlmICghIW1fYWxsRXZl
bnRzSG9vayA9PSBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIWxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpIHsKKyAgICAgICAgVW5ob29rV2luRXZlbnQo
bV9hbGxFdmVudHNIb29rKTsKKyAgICAgICAgbV9hbGxFdmVudHNIb29rID0gMDsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIC8vIEVuc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkgaXMgaW5p
dGlhbGl6ZWQgZm9yIHRoZSBXZWJWaWV3IGJ5IHF1ZXJ5aW5nIGZvcgorICAgIC8vIHRoZSByb290
IGFjY2Vzc2libGUgb2JqZWN0LgorICAgIHJvb3RFbGVtZW50KCk7CisKKyAgICBtX2FsbEV2ZW50
c0hvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlOLCBFVkVOVF9NQVgsIEdldE1vZHVsZUhh
bmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5U
X0lOQ09OVEVYVCk7CisKKyAgICBBU1NFUlQobV9hbGxFdmVudHNIb29rKTsKIH0KIAogc3RhdGlj
IHN0cmluZyBzdHJpbmdFdmVudChEV09SRCBldmVudCkKQEAgLTI5MSw4ICszMTMsOCBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpub3RpZmljYXRpb25SZWNlaXZlZChQbGF0Zm9ybVVJ
RWxlbWVudCBlbGVtZW50LCBjbwogCiB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGRO
b3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50LCBKU09iamVjdFJl
ZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIGlmICghbV9hbGxFdmVudHNIb29rKQotICAgICAg
ICBtX2FsbEV2ZW50c0hvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlOLCBFVkVOVF9NQVgs
IEdldE1vZHVsZUhhbmRsZSgwKSwgbm90aWZpY2F0aW9uTGlzdGVuZXJQcm9jLCBHZXRDdXJyZW50
UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CisgICAgaWYgKCFtX25vdGlmaWNh
dGlvbnNFdmVudEhvb2spCisgICAgICAgIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayA9IFNldFdp
bkV2ZW50SG9vayhFVkVOVF9NSU4sIEVWRU5UX01BWCwgR2V0TW9kdWxlSGFuZGxlKDApLCBub3Rp
ZmljYXRpb25MaXN0ZW5lclByb2MsIEdldEN1cnJlbnRQcm9jZXNzSWQoKSwgMCwgV0lORVZFTlRf
SU5DT05URVhUKTsKIAogICAgIEpTVmFsdWVQcm90ZWN0KGZyYW1lLT5nbG9iYWxDb250ZXh0KCks
IGZ1bmN0aW9uQ2FsbGJhY2spOwogICAgIG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmFkZChlbGVt
ZW50LCBmdW5jdGlvbkNhbGxiYWNrKTsKLS0gCjEuNy40Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>100957</attachid>
            <date>2011-07-15 04:34:55 -0700</date>
            <delta_ts>2011-07-18 05:24:04 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0003-source-webcore-focus-and-selection-events-are-not-fi.patch</filename>
            <type>text/plain</type>
            <size>24405</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA1ZWFiZTI0M2FkY2I4ZmVmNmRiNmJmMGY5ZTllNWNhNjVkYTM0ZDI4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogV2VkLCAxMyBKdWwgMjAxMSAxOTo0NzozMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFNv
dXJjZS9XZWJDb3JlOiBGb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBhcmUgbm90IGZpcmVkIHdo
ZW4gYSA8c2VsZWN0PidzIHNlbGVjdGlvbgogY2hhbmdlcwogaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY0NTA0CiA8cmRhcjovL3Byb2JsZW0vOTMxOTg4MT4KClJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGVzdDogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkv
b3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMuaHRtbAoKKiBhY2Nlc3Np
YmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6CihXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgpBZGQgbmV3IG5vdGlmaWNhdGlv
biB0eXBlIHRvIHRoZSBzZWN0aW9uIG9mIHVuaGFuZGxlZCBub3RpZmljYXRpb25zLgoKKiBhY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKRGVjbGFyZSBhIG5ldyBub3RpZmljYXRpb24sIEFY
TWVudUxpc3RJdGVtU2VsZWN0ZWQuCgoqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVM
aXN0LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZl
T3B0aW9uKToKVGVsbCBvdXIgY2hpbGQgcG9wdXAgdGhhdCB0aGUgYWN0aXZlIG9wdGlvbiBjaGFu
Z2VkLCBhbmQgcG9zdCBhCm5vdGlmaWNhdGlvbiB0aGF0IG91ciB2YWx1ZSBjaGFuZ2VkLgoKKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5oOgpEZWNsYXJlIGRpZFVwZGF0ZUFj
dGl2ZU9wdGlvbigpLgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVw
LmNwcDoKKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpkaWRVcGRhdGVBY3Rp
dmVPcHRpb24pOgpHZXQgdGhlIGNoaWxkIDxvcHRpb24+IGVsZW1lbnQgdGhhdCBpcyBzZWxlY3Rl
ZCwgYW5kIGZpcmUgZm9jdXMgYW5kCnNlbGVjdGlvbiBldmVudHMgZm9yIGl0LgoKKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmg6CkRlY2xhcmUgZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKCkuCgoqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgoo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKTWFwIEFY
TWVudUxpc3RJdGVtU2VsZWN0ZWQgLT4gRVZFTlRfT0JKRUNUX1NFTEVDVElPTi4KCiogZG9tL1Nl
bGVjdEVsZW1lbnQuY3BwOgooV2ViQ29yZTo6U2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRl
eCk6ClBhc3MgdGhlIG5ld2x5LXNlbGVjdGVkIGluZGV4LgoKKiByZW5kZXJpbmcvUmVuZGVyTWVu
dUxpc3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OlJlbmRlck1lbnVMaXN0KToKVXBk
YXRlIHRoZSBpbml0aWFsaXphdGlvbiBsaXN0IGZvciB0aGUgcmVuYW1lZCBtX2xhc3RBY3RpdmVJ
bmRleC4KKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpzZXRUZXh0RnJvbU9wdGlvbik6CkEgbmV3
IHNlbGVjdGlvbiBoYXMgYmVlbiBtYWRlIGluIHRoZSBwb3B1cDsgY2FsbApkaWRVcGRhdGVBY3Rp
dmVPcHRpb24oKS4KKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxlY3RlZEluZGV4
KToKQ2FsbCBkaWRVcGRhdGVBY3RpdmVPcHRpb24oKSwgcGFzc2luZyB0aGUgaW5kZXggb2YgdGhl
IG5ld2x5LXNlbGVjdGVkCjxvcHRpb24+LgooV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmRpZFVw
ZGF0ZUFjdGl2ZU9wdGlvbik6CklmIGFjY2Vzc2liaWxpdHkgaXMgZGlzYWJsZWQsIG9yIGlmIHRo
ZSBhY3RpdmUgb3B0aW9uIGhhcyBub3QgY2hhbmdlZCwKcmV0dXJuIGVhcmx5LiBDaGVjayB3aGV0
aGVyIHRoZSBvcHRpb24gaW5kZXggaXMgaW4gdGhlIHJhbmdlIG9mIGxpc3QKaXRlbXMsIGFuZCBh
c3NlcnQgdGhhdCB0aGUgaXRlbSBhdCB0aGF0IGluZGV4IGlzIGFuIDxvcHRpb24+IGVsZW1lbnQu
ClRlbGwgdGhlIEFjY2Vzc2liaWxpdHlNZW51TGlzdCBmb3IgdGhpcyBlbGVtZW50IHRoYXQgd2Ug
dXBkYXRlZCB0aGUKYWN0aXZlIG9wdGlvbi4KCiogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0Lmg6
ClVwZGF0ZWQgdGhlIGRlY2xhcmF0aW9uIG9mIGRpZFNldFNlbGVjdGVkSW5kZXgoKSB0byB0YWtl
IHRoZSBzZWxlY3RlZAppbmRleC4gRGVjbGFyZWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuIFJl
bmFtZWQgbV9sYXN0U2VsZWN0ZWRJbmRleCB0bwptX2xhc3RBY3RpdmVJbmRleC4KClRvb2xzOiBO
ZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24gYW5kIGJ1ZyBVUkwgKE9PUFMhKQoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoqIFNjcmlwdHMvb2xkLXJ1bi13ZWJraXQtdGVzdHM6CgpMYXlvdXRU
ZXN0czogRm9jdXMgYW5kIHNlbGVjdGlvbiBldmVudHMgYXJlIG5vdCBmaXJlZCB3aGVuIGEgPHNl
bGVjdD4ncyBzZWxlY3Rpb24KY2hhbmdlcwpodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjQ1MDQKPHJkYXI6Ly9wcm9ibGVtLzkzMTk4ODE+CgpSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KCiogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQt
c2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKiBwbGF0Zm9y
bS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2
ZW50cy5odG1sOiBBZGRlZC4KLS0tCiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKwogLi4uZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZv
Y3VzLWV2ZW50cy1leHBlY3RlZC50eHQgfCAgIDEwICsrKwogLi4uL29wdGlvbi1lbGVtZW50LXNl
bGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwgfCAgIDMyICsrKysrKysrKysKIFNvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2MyArKysrKysr
KysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
LmggICAgICAgfCAgICAxICsKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlz
dC5jcHAgICAgICAgIHwgICAxOCArKysrKysKIC4uLi9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU1lbnVMaXN0LmggIHwgICAgMiArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5TWVudUxpc3RQb3B1cC5jcHAgICB8ICAgMTMgKysrKwogLi4uL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaCAgICAgfCAgICAzICsKIC4uLi9jaHJvbWl1bS9B
WE9iamVjdENhY2hlQ2hyb21pdW0uY3BwICAgICAgICAgICAgIHwgICAgMSArCiAuLi4vV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcCB8ICAgIDQgKwogU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwICAgICAgICAgICAgICAgfCAgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwICAgICAgICB8ICAgMjkg
KysrKysrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCAgICAg
ICAgICB8ICAgIDYgKy0KIFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgICAyOCArKysrKysrKysKIFRvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmggICAgIHwgICAgMSArCiAuLi4vd2luL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyV2luLmNwcCAgICAgICAgICAgICB8ICAgMzIgKysrKysrKystLQogMTcgZmlsZXMgY2hh
bmdlZCwgMjQyIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50
LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dAogY3JlYXRlIG1vZGUgMTAw
NjQ0IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50
LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzUzMTExNy4uODk3NTU2
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTA3LTEzICBKb24gSG9uZXljdXR0ICA8amhv
bmV5Y3V0dEBhcHBsZS5jb20+CisKKyAgICAgICAgRm9jdXMgYW5kIHNlbGVjdGlvbiBldmVudHMg
YXJlIG5vdCBmaXJlZCB3aGVuIGEgPHNlbGVjdD4ncyBzZWxlY3Rpb24KKyAgICAgICAgY2hhbmdl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MDQK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkzMTk4ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9v
cHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50
LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDExLTA3LTEyICBK
b24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+CiAKICAgICAgICAgRW5zdXJlIHRo
YXQgYSBzaW5nbGUgc2VsZWN0IGVsZW1lbnQncyBjaGlsZCBvcHRpb24gZWxlbWVudHMgYXJlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24t
ZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24t
YW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZmYwOGRhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZl
bnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitSZWNlaXZlZCBmb2N1cyBldmVudCBm
b3Igb2JqZWN0ICdvcHRpb24gMicuCitSZWNlaXZlZCBzZWxlY3Rpb24gZXZlbnQgZm9yIG9iamVj
dCAnb3B0aW9uIDInLgorUmVjZWl2ZWQgdmFsdWUgY2hhbmdlIGV2ZW50IGZvciBvYmplY3QgJ3Nl
bGVjdCBlbGVtZW50JywgdmFsdWUgJ29wdGlvbiAyJy4KK1JlY2VpdmVkIGZvY3VzIGV2ZW50IGZv
ciBvYmplY3QgJ29wdGlvbiAxJy4KK1JlY2VpdmVkIHNlbGVjdGlvbiBldmVudCBmb3Igb2JqZWN0
ICdvcHRpb24gMScuCitSZWNlaXZlZCB2YWx1ZSBjaGFuZ2UgZXZlbnQgZm9yIG9iamVjdCAnc2Vs
ZWN0IGVsZW1lbnQnLCB2YWx1ZSAnb3B0aW9uIDEnLgorCitUaGlzIHRlc3RzIHRoYXQgY2hhbmdp
bmcgc2VsZWN0aW9uIGluIGEgbm9uLW11bHRpcGxlIHNlbGVjdCBlbGVtZW50IGZpcmVzIGZvY3Vz
IGFuZCBzZWxlY3Rpb24gZXZlbnRzIGZvciB0aGUgc2VsZWN0ZWQgb3B0aW9uIGVsZW1lbnQuCisK
K1RoaXMgdGVzdCBzaG91bGQgb25seSBiZSBydW4gaW5zaWRlIG9mIER1bXBSZW5kZXJUcmVlLgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0aW9u
LWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9j
dXMtZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTE3MTNj
OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmls
aXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKQEAgLTAs
MCArMSwzMiBAQAorPGh0bWw+CisKKzxib2R5IGlkPSJib2R5Ij4KKworPHNlbGVjdCBpZD0ic2Vs
ZWN0IiB0aXRsZT0ic2VsZWN0IGVsZW1lbnQiPgorPG9wdGlvbiBTRUxFQ1RFRD5vcHRpb24gMTwv
b3B0aW9uPgorPG9wdGlvbj5vcHRpb24gMjwvb3B0aW9uPgorPG9wdGlvbj5vcHRpb24gMzwvb3B0
aW9uPgorPG9wdGlvbj5vcHRpb24gNDwvb3B0aW9uPgorPC9zZWxlY3Q+CisKKzxwPlRoaXMgdGVz
dHMgdGhhdCBjaGFuZ2luZyBzZWxlY3Rpb24gaW4gYSBub24tbXVsdGlwbGUgc2VsZWN0IGVsZW1l
bnQgZmlyZXMKK2ZvY3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGZvciB0aGUgc2VsZWN0ZWQgb3B0
aW9uIGVsZW1lbnQuPC9wPgorCis8cCBpZD0ibm90RFJUIj5UaGlzIHRlc3Qgc2hvdWxkIG9ubHkg
YmUgcnVuIGluc2lkZSBvZiBEdW1wUmVuZGVyVHJlZS48L3A+CisKKzxzY3JpcHQ+CisgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2VsZWN0IikuZm9jdXMoKTsKKyAgICAgICAg
YWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIubG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpOworCisgICAg
ICAgIC8vIFRlc3QgdGhhdCB3ZSBzZW5kIGV2ZW50cyB3aXRoIHRoZSBsaXN0IGNvbGxhcHNlZC4K
KyAgICAgICAgZXZlbnRTZW5kZXIua2V5RG93bigiZG93bkFycm93Iik7CisgICAgICAgIGV2ZW50
U2VuZGVyLmtleURvd24oInVwQXJyb3ciKTsKKworICAgICAgICAvLyBXZSBzaG91bGQgdGVzdCB3
aGV0aGVyIHdlIHNlbmQgZXZlbnRzIHdoZW4gdXNpbmcgYXJyb3cga2V5cyB3aXRoIHRoZQorICAg
ICAgICAvLyBtZW51IGV4cGFuZGVkLCBidXQgZXZlbnRTZW5kZXIgY2Fubm90IHNlbmQgZXZlbnRz
IHRvIHRoZSBwb3B1cCBtZW51LgorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCmluZGV4IGU0MTdmYzAuLjc5YzUyZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw2OCBA
QAogMjAxMS0wNy0xMyAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCisg
ICAgICAgIEZvY3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxz
ZWxlY3Q+J3Mgc2VsZWN0aW9uCisgICAgICAgIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS85MzE5ODgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3Q6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVj
dGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvY2hy
b21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6CisgICAgICAgIEFkZCBuZXcgbm90
aWZpY2F0aW9uIHR5cGUgdG8gdGhlIHNlY3Rpb24gb2YgdW5oYW5kbGVkIG5vdGlmaWNhdGlvbnMu
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoKKyAgICAgICAgRGVj
bGFyZSBhIG5ldyBub3RpZmljYXRpb24sIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQuCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbik6Cisg
ICAgICAgIFRlbGwgb3VyIGNoaWxkIHBvcHVwIHRoYXQgdGhlIGFjdGl2ZSBvcHRpb24gY2hhbmdl
ZCwgYW5kIHBvc3QgYQorICAgICAgICBub3RpZmljYXRpb24gdGhhdCBvdXIgdmFsdWUgY2hhbmdl
ZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0Lmg6Cisg
ICAgICAgIERlY2xhcmUgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpkaWRVcGRhdGVBY3RpdmVPcHRpb24pOgor
ICAgICAgICBHZXQgdGhlIGNoaWxkIDxvcHRpb24+IGVsZW1lbnQgdGhhdCBpcyBzZWxlY3RlZCwg
YW5kIGZpcmUgZm9jdXMgYW5kCisgICAgICAgIHNlbGVjdGlvbiBldmVudHMgZm9yIGl0LgorCisg
ICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgorICAg
ICAgICBEZWNsYXJlIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLgorCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24pOgorICAgICAgICBNYXAgQVhNZW51
TGlzdEl0ZW1TZWxlY3RlZCAtPiBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OLgorCisgICAgICAgICog
ZG9tL1NlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0RWxlbWVudDo6
c2V0U2VsZWN0ZWRJbmRleCk6CisgICAgICAgIFBhc3MgdGhlIG5ld2x5LXNlbGVjdGVkIGluZGV4
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6CisgICAgICAgIFVwZGF0ZSB0
aGUgaW5pdGlhbGl6YXRpb24gbGlzdCBmb3IgdGhlIHJlbmFtZWQgbV9sYXN0QWN0aXZlSW5kZXgu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24pOgor
ICAgICAgICBBIG5ldyBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZSBpbiB0aGUgcG9wdXA7IGNhbGwK
KyAgICAgICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRleCk6CisgICAgICAgIENhbGwgZGlkVXBkYXRl
QWN0aXZlT3B0aW9uKCksIHBhc3NpbmcgdGhlIGluZGV4IG9mIHRoZSBuZXdseS1zZWxlY3RlZAor
ICAgICAgICA8b3B0aW9uPi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpkaWRV
cGRhdGVBY3RpdmVPcHRpb24pOgorICAgICAgICBJZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVk
LCBvciBpZiB0aGUgYWN0aXZlIG9wdGlvbiBoYXMgbm90IGNoYW5nZWQsCisgICAgICAgIHJldHVy
biBlYXJseS4gQ2hlY2sgd2hldGhlciB0aGUgb3B0aW9uIGluZGV4IGlzIGluIHRoZSByYW5nZSBv
ZiBsaXN0CisgICAgICAgIGl0ZW1zLCBhbmQgYXNzZXJ0IHRoYXQgdGhlIGl0ZW0gYXQgdGhhdCBp
bmRleCBpcyBhbiA8b3B0aW9uPiBlbGVtZW50LgorICAgICAgICBUZWxsIHRoZSBBY2Nlc3NpYmls
aXR5TWVudUxpc3QgZm9yIHRoaXMgZWxlbWVudCB0aGF0IHdlIHVwZGF0ZWQgdGhlCisgICAgICAg
IGFjdGl2ZSBvcHRpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaDoK
KyAgICAgICAgVXBkYXRlZCB0aGUgZGVjbGFyYXRpb24gb2YgZGlkU2V0U2VsZWN0ZWRJbmRleCgp
IHRvIHRha2UgdGhlIHNlbGVjdGVkCisgICAgICAgIGluZGV4LiBEZWNsYXJlZCBkaWRVcGRhdGVB
Y3RpdmVPcHRpb24oKS4gUmVuYW1lZCBtX2xhc3RTZWxlY3RlZEluZGV4IHRvCisgICAgICAgIG1f
bGFzdEFjdGl2ZUluZGV4LgorCisyMDExLTA3LTEzICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0
dEBhcHBsZS5jb20+CisKICAgICAgICAgQUxUICsgRE9XTiBhcnJvdyBrZXkgZG9lcyBub3Qgb3Bl
biBzZWxlY3QKIAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTQ0MDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggOTVjYzdmMy4uMjc3ODlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIEFY
VmFsdWVDaGFuZ2VkLAogICAgICAgICBBWFNjcm9sbGVkVG9BbmNob3IsCiAgICAgICAgIEFYTGl2
ZVJlZ2lvbkNoYW5nZWQsCisgICAgICAgIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQsCiAgICAgICAg
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQsCiAgICAgICAgIEFYUm93Q291bnRDaGFuZ2VkLAogICAg
ICAgICBBWFJvd0NvbGxhcHNlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAppbmRleCBlMGMwM2MzLi43NjIxYTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVudUxpc3QuY3BwCkBAIC04Miw0ICs4MiwyMiBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlz
dDo6aXNDb2xsYXBzZWQoKSBjb25zdAogICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8UmVuZGVyTWVu
dUxpc3QqPihtX3JlbmRlcmVyKS0+cG9wdXBJc1Zpc2libGUoKTsKIH0KIAordm9pZCBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpCit7
CisgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZE9iamVjdHMgPSBj
aGlsZHJlbigpOworICAgIGlmIChjaGlsZE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoY2hpbGRPYmplY3RzLnNpemUoKSA9PSAxKTsKKyAgICBBU1NFUlQo
Y2hpbGRPYmplY3RzWzBdLT5pc01lbnVMaXN0UG9wdXAoKSk7CisKKyAgICBSZWZQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50ID0gbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKKyAgICBBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50LT5heE9iamVjdENhY2hlKCk7CisKKyAgICBpZiAoQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAqPihjaGlsZE9iamVjdHNbMF0uZ2V0KCkpKQorICAgICAgICBwb3B1cC0+ZGlkVXBk
YXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKKworICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKHRoaXMsIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0VmFsdWVD
aGFuZ2VkLCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdC5oCmluZGV4IGNkYjNhYzIuLjY4ZjQyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtNDIsNiAr
NDIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpOworCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdChSZW5kZXJNZW51TGlzdCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDQ1
ZGRlODUuLjljY2VkNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCkBAIC0xMjUsNCArMTI1LDE3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnNldE1lbnVMaXN0KEFjY2Vzc2li
aWxpdHlNZW51TGlzdCogbWVudUxpc3QpCiAgICAgbV9tZW51TGlzdCA9IG1lbnVMaXN0OwogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpkaWRVcGRhdGVBY3RpdmVPcHRpb24o
aW50IG9wdGlvbkluZGV4KQoreworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbklu
ZGV4ID49IDApOworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbkluZGV4IDwgbV9j
aGlsZHJlbi5zaXplKCkpOworCisgICAgUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCA9IG1fbWVu
dUxpc3QtPnJlbmRlcmVyKCktPmRvY3VtZW50KCk7CisgICAgQVhPYmplY3RDYWNoZSogY2FjaGUg
PSBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpOworICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2Jq
ZWN0PiBjaGlsZCA9IG1fY2hpbGRyZW5bb3B0aW9uSW5kZXhdLmdldCgpOworCisgICAgY2FjaGUt
PnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0KCksIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENh
Y2hlOjpBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkLCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7
CisgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0KCksIGRvY3VtZW50LmdldCgp
LCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0SXRlbVNlbGVjdGVkLCB0cnVlLCBQb3N0U3luY2hy
b25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuaApp
bmRleCA4OGZiZjdjLi4zODBjY2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oCkBAIC0zMyw2ICszMyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdDsKIGNs
YXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjsKIGNsYXNzIEhUTUxFbGVtZW50OworY2xh
c3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVw
IDogcHVibGljIEFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVibGljOgpAQCAtNDMsNiArNDQsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgpIGNvbnN0OwogICAgIHZpcnR1
YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwogCisgICAgdm9pZCBkaWRVcGRhdGVBY3RpdmVP
cHRpb24oaW50IG9wdGlvbkluZGV4KTsKKwogcHJpdmF0ZToKICAgICBBY2Nlc3NpYmlsaXR5TWVu
dUxpc3RQb3B1cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAKaW5kZXggMGZlZDQz
Ny4uM2JjZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9jaHJv
bWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVtLmNwcApAQCAtODcsNiArODcs
NyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIGNhc2UgQVhMYXlvdXRDb21wbGV0ZToK
ICAgICBjYXNlIEFYTGl2ZVJlZ2lvbkNoYW5nZWQ6CiAgICAgY2FzZSBBWExvYWRDb21wbGV0ZToK
KyAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CiAgICAgY2FzZSBBWE1lbnVMaXN0VmFs
dWVDaGFuZ2VkOgogICAgIGNhc2UgQVhSb3dDb2xsYXBzZWQ6CiAgICAgY2FzZSBBWFJvd0NvdW50
Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd2luL0FY
T2JqZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhP
YmplY3RDYWNoZVdpbi5jcHAKaW5kZXggYjIwYjUxYS4uNGUwMmMyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKQEAg
LTg4LDYgKzg4LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmljCiAgICAgICAgICAgICBtc2Fh
RXZlbnQgPSBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0U7CiAgICAgICAgICAgICBicmVhazsKIAor
ICAgICAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CisgICAgICAgICAgICBtc2FhRXZl
bnQgPSBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OOworICAgICAgICAgICAgYnJlYWs7CisKICAgICAg
ICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2Vs
ZWN0RWxlbWVudC5jcHAKaW5kZXggZTgxOGQ2MC4uNWQ3MWFmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RFbGVtZW50LmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIHZvaWQgU2VsZWN0RWxlbWVudDo6
c2V0U2VsZWN0ZWRJbmRleChTZWxlY3RFbGVtZW50RGF0YSYgZGF0YSwgRWxlbWVudCogZWxlbWVu
dCwKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCk7
CiAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAgaWYgKGRhdGEudXNlc01lbnVM
aXN0KCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJNZW51TGlzdChyZW5kZXJlciktPmRpZFNl
dFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgICAgICAgICB0b1JlbmRlck1lbnVMaXN0KHJlbmRl
cmVyKS0+ZGlkU2V0U2VsZWN0ZWRJbmRleChsaXN0SW5kZXgpOwogICAgICAgICAgICAgZWxzZSBp
ZiAocmVuZGVyZXItPmlzTGlzdEJveCgpKQogICAgICAgICAgICAgICAgIHRvUmVuZGVyTGlzdEJv
eChyZW5kZXJlciktPnNlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXggY2E5ZDdlMzMuLmRlZmZmZGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0LmgiCiAKICNpbmNsdWRlICJBWE9i
amVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgiCiAjaW5jbHVk
ZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2lu
Y2x1ZGUgIkNocm9tZS5oIgpAQCAtNTcsNyArNTgsNyBAQCBSZW5kZXJNZW51TGlzdDo6UmVuZGVy
TWVudUxpc3QoRWxlbWVudCogZWxlbWVudCkKICAgICAsIG1faW5uZXJCbG9jaygwKQogICAgICwg
bV9vcHRpb25zQ2hhbmdlZCh0cnVlKQogICAgICwgbV9vcHRpb25zV2lkdGgoMCkKLSAgICAsIG1f
bGFzdFNlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX2xhc3RBY3RpdmVJbmRleCgtMSkKICAgICAs
IG1fcG9wdXBJc1Zpc2libGUoZmFsc2UpCiB7CiB9CkBAIC0yMDQsNiArMjA1LDcgQEAgdm9pZCBS
ZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24oaW50IG9wdGlvbkluZGV4KQogICAgIH0K
IAogICAgIHNldFRleHQodGV4dC5zdHJpcFdoaXRlU3BhY2UoKSk7CisgICAgZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0VGV4
dChjb25zdCBTdHJpbmcmIHMpCkBAIC0zMzgsMTYgKzM0MCwyOSBAQCBib29sIFJlbmRlck1lbnVM
aXN0OjptdWx0aXBsZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBSZW5kZXJNZW51TGlzdDo6ZGlkU2V0
U2VsZWN0ZWRJbmRleCgpCit2b2lkIFJlbmRlck1lbnVMaXN0OjpkaWRTZXRTZWxlY3RlZEluZGV4
KGludCBsaXN0SW5kZXgpCiB7Ci0gICAgaW50IGluZGV4ID0gc2VsZWN0ZWRJbmRleCgpOwotICAg
IGlmIChtX2xhc3RTZWxlY3RlZEluZGV4ID09IGluZGV4KQorICAgIFNlbGVjdEVsZW1lbnQqIHNl
bGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVtZW50Kj4obm9kZSgpKSk7Cisg
ICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKHNlbGVjdC0+bGlzdFRvT3B0aW9uSW5kZXgobGlzdElu
ZGV4KSk7Cit9CisKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihp
bnQgb3B0aW9uSW5kZXgpCit7CisgICAgaWYgKCFBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9sYXN0QWN0aXZlSW5kZXgg
PT0gb3B0aW9uSW5kZXgpCisgICAgICAgIHJldHVybjsKKyAgICBtX2xhc3RBY3RpdmVJbmRleCA9
IG9wdGlvbkluZGV4OworCisgICAgU2VsZWN0RWxlbWVudCogc2VsZWN0ID0gdG9TZWxlY3RFbGVt
ZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKKyAgICBpZiAob3B0aW9uSW5kZXgg
PCAwIHx8IG9wdGlvbkluZGV4ID4gc3RhdGljX2Nhc3Q8aW50PihzZWxlY3QtPmxpc3RJdGVtcygp
LnNpemUoKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fbGFzdFNlbGVjdGVkSW5kZXggPSBp
bmRleDsKKyAgICBBU1NFUlQodG9PcHRpb25FbGVtZW50KHNlbGVjdC0+bGlzdEl0ZW1zKClbb3B0
aW9uSW5kZXhdKSk7CiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZTo6YWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5wb3N0Tm90aWZpY2F0
aW9uKHRoaXMsIEFYT2JqZWN0Q2FjaGU6OkFYTWVudUxpc3RWYWx1ZUNoYW5nZWQsIHRydWUsIFBv
c3RTeW5jaHJvbm91c2x5KTsKKyAgICBpZiAoQWNjZXNzaWJpbGl0eU1lbnVMaXN0KiBtZW51TGlz
dCA9IHN0YXRpY19jYXN0PEFjY2Vzc2liaWxpdHlNZW51TGlzdCo+KGRvY3VtZW50KCktPmF4T2Jq
ZWN0Q2FjaGUoKS0+Z2V0KHRoaXMpKSkKKyAgICAgICAgbWVudUxpc3QtPmRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbihvcHRpb25JbmRleCk7CiB9CiAKIFN0cmluZyBSZW5kZXJNZW51TGlzdDo6aXRlbVRl
eHQodW5zaWduZWQgbGlzdEluZGV4KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuaAppbmRleCBlMjkxMjNhLi44ZjNiYmY2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldE9wdGlvbnNDaGFuZ2VkKGJvb2wgY2hhbmdlZCkgeyBtX29wdGlvbnNDaGFuZ2Vk
ID0gY2hhbmdlZDsgfQogCi0gICAgdm9pZCBkaWRTZXRTZWxlY3RlZEluZGV4KCk7CisgICAgdm9p
ZCBkaWRTZXRTZWxlY3RlZEluZGV4KGludCBsaXN0SW5kZXgpOwogCiAgICAgU3RyaW5nIHRleHQo
KSBjb25zdDsKIApAQCAtMTI0LDEzICsxMjQsMTUgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFRl
eHRGcm9tT3B0aW9uKGludCBvcHRpb25JbmRleCk7CiAgICAgdm9pZCB1cGRhdGVPcHRpb25zV2lk
dGgoKTsKIAorICAgIHZvaWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKGludCBvcHRpb25JbmRleCk7
CisKICAgICBSZW5kZXJUZXh0KiBtX2J1dHRvblRleHQ7CiAgICAgUmVuZGVyQmxvY2sqIG1faW5u
ZXJCbG9jazsKIAogICAgIGJvb2wgbV9vcHRpb25zQ2hhbmdlZDsKICAgICBpbnQgbV9vcHRpb25z
V2lkdGg7CiAKLSAgICBpbnQgbV9sYXN0U2VsZWN0ZWRJbmRleDsKKyAgICBpbnQgbV9sYXN0QWN0
aXZlSW5kZXg7CiAKICAgICBSZWZQdHI8UmVuZGVyU3R5bGU+IG1fb3B0aW9uU3R5bGU7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3OTk1MWYw
Li4zNjM0MWM0IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMDctMTMgIEpvbiBIb25leWN1dHQgIDxqaG9uZXlj
dXR0QGFwcGxlLmNvbT4KKworICAgICAgICBGb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBhcmUg
bm90IGZpcmVkIHdoZW4gYSA8c2VsZWN0PidzIHNlbGVjdGlvbgorICAgICAgICBjaGFuZ2VzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwNAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vOTMxOTg4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmg6CisgICAgICAgIEFkZGVkIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayBmb3IgYWRk
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKS4KKyAgICAgICAgbV9hbGxFdmVudHNIb29rIHdpbGwgbm93
IGJlIHVzZWQgZm9yIHNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoKS4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAg
IChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAg
ICAgICBJbml0aWFsaXplIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vay4KKyAgICAgICAgKEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIpOgorICAgICAgICBU
dXJuIG9mZiBsb2dnaW5nIG9mIGFsbCBhY2Nlc3NpYmlsaXR5IGV2ZW50cy4gSWYKKyAgICAgICAg
bV9ub3RpZmljYXRpb25zRXZlbnRIb29rIGlzIG5vbi1udWxsLCB1bmhvb2sgaXQuCisgICAgICAg
IChsb2dFdmVudFByb2MpOgorICAgICAgICBBZGQgaGFuZGxpbmcgb2YgRVZFTlRfT0JKRUNUX1NF
TEVDVElPTi4KKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpzZXRMb2dBY2Nlc3Np
YmlsaXR5RXZlbnRzKToKKyAgICAgICAgSWYgdGhlIHN0YXRlIG9mIGxvZ2dpbmcgaXMgbm90IGNo
YW5naW5nLCByZXR1cm4gZWFybHkuIElmIHdlJ3JlIHR1cm5pbmcKKyAgICAgICAgb2ZmIGxvZ2dp
bmcsIHVuaG9vayBtX2FsbEV2ZW50c0hvb2ssIGFuZCB6ZXJvIGl0IG91dC4gT3RoZXJ3aXNlLCBh
ZGQgYQorICAgICAgICBob29rIGZvciBhbGwgZXZlbnRzLgorICAgICAgICAoQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXI6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKToKKyAgICAgICAgVXNlIG1fbm90
aWZpY2F0aW9uc0V2ZW50SG9vayByYXRoZXIgdGhhbiBtX2FsbEV2ZW50c0hvb2suCisKIDIwMTEt
MDctMTMgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgbmV3
LXJ1bi13ZWJraXQtdGVzdHM6IHByaW50IGJhc2VsaW5lIHNlYXJjaCBwYXRoIGFzIHBhcnQgb2Yg
Y29uZmlnIG91dHB1dApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmgKaW5kZXggNDYyYzQ4NC4uMjVhM2EwMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6
CiAgICAgSFdJTkVWRU5USE9PSyBtX3Njcm9sbGluZ1N0YXJ0RXZlbnRIb29rOwogCiAgICAgSFdJ
TkVWRU5USE9PSyBtX2FsbEV2ZW50c0hvb2s7CisgICAgSFdJTkVWRU5USE9PSyBtX25vdGlmaWNh
dGlvbnNFdmVudEhvb2s7CiAgICAgSGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RS
ZWY+IG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKaW5k
ZXggNmU0ZWU0Ni4uODg0NTQyMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCkBAIC00NCwxNiArNDQsMTggQEAg
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKCkKICAgICAs
IG1fc2Nyb2xsaW5nU3RhcnRFdmVudEhvb2soMCkKICAgICAsIG1fdmFsdWVDaGFuZ2VFdmVudEhv
b2soMCkKICAgICAsIG1fYWxsRXZlbnRzSG9vaygwKQorICAgICwgbV9ub3RpZmljYXRpb25zRXZl
bnRIb29rKDApCiB7CiB9CiAKIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjp+QWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIoKQogewogICAgIHNldExvZ0ZvY3VzRXZlbnRzKGZhbHNlKTsKKyAgICBzZXRM
b2dBY2Nlc3NpYmlsaXR5RXZlbnRzKGZhbHNlKTsKICAgICBzZXRMb2dWYWx1ZUNoYW5nZUV2ZW50
cyhmYWxzZSk7CiAKLSAgICBpZiAobV9hbGxFdmVudHNIb29rKQotICAgICAgICBVbmhvb2tXaW5F
dmVudChtX2FsbEV2ZW50c0hvb2spOworICAgIGlmIChtX25vdGlmaWNhdGlvbnNFdmVudEhvb2sp
CisgICAgICAgIFVuaG9va1dpbkV2ZW50KG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayk7CiAKICAg
ICBmb3IgKEhhc2hNYXA8UGxhdGZvcm1VSUVsZW1lbnQsIEpTT2JqZWN0UmVmPjo6aXRlcmF0b3Ig
aXQgPSBtX25vdGlmaWNhdGlvbkxpc3RlbmVycy5iZWdpbigpOyBpdCAhPSBtX25vdGlmaWNhdGlv
bkxpc3RlbmVycy5lbmQoKTsgKytpdCkKICAgICAgICAgSlNWYWx1ZVVucHJvdGVjdChmcmFtZS0+
Z2xvYmFsQ29udGV4dCgpLCBpdC0+c2Vjb25kKTsKQEAgLTEzMCw2ICsxMzIsMTAgQEAgc3RhdGlj
IHZvaWQgQ0FMTEJBQ0sgbG9nRXZlbnRQcm9jKEhXSU5FVkVOVEhPT0ssIERXT1JEIGV2ZW50LCBI
V05EIGh3bmQsIExPTkcgaWQKICAgICAgICAgICAgIHByaW50ZigiUmVjZWl2ZWQgZm9jdXMgZXZl
bnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKICAgICAgICAgICAgIGJyZWFr
OwogCisgICAgICAgIGNhc2UgRVZFTlRfT0JKRUNUX1NFTEVDVElPTjoKKyAgICAgICAgICAgIHBy
aW50ZigiUmVjZWl2ZWQgc2VsZWN0aW9uIGV2ZW50IGZvciBvYmplY3QgJyVTJy5cbiIsIG5hbWUu
Y19zdHIoKSk7CisgICAgICAgICAgICBicmVhazsKKwogICAgICAgICBjYXNlIEVWRU5UX09CSkVD
VF9WQUxVRUNIQU5HRTogewogICAgICAgICAgICAgQlNUUiB2YWx1ZUJTVFI7CiAgICAgICAgICAg
ICBociA9IHBhcmVudE9iamVjdC0+Z2V0X2FjY1ZhbHVlKHZDaGlsZCwgJnZhbHVlQlNUUik7CkBA
IC0yMTMsOCArMjE5LDI0IEBAIHZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ1Nj
cm9sbGluZ1N0YXJ0RXZlbnRzKGJvb2wgbG9nU2Nyb2xsaW5nU3RhcnRFCiAgICAgQVNTRVJUKG1f
c2Nyb2xsaW5nU3RhcnRFdmVudEhvb2spOwogfQogCi12b2lkIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjpzZXRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKGJvb2wpCit2b2lkIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyOjpzZXRMb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKGJvb2wgbG9nQWNjZXNzaWJpbGl0
eUV2ZW50cykKIHsKKyAgICBpZiAoISFtX2FsbEV2ZW50c0hvb2sgPT0gbG9nQWNjZXNzaWJpbGl0
eUV2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFsb2dBY2Nlc3NpYmlsaXR5RXZl
bnRzKSB7CisgICAgICAgIFVuaG9va1dpbkV2ZW50KG1fYWxsRXZlbnRzSG9vayk7CisgICAgICAg
IG1fYWxsRXZlbnRzSG9vayA9IDA7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBF
bnN1cmUgdGhhdCBhY2Nlc3NpYmlsaXR5IGlzIGluaXRpYWxpemVkIGZvciB0aGUgV2ViVmlldyBi
eSBxdWVyeWluZyBmb3IKKyAgICAvLyB0aGUgcm9vdCBhY2Nlc3NpYmxlIG9iamVjdC4KKyAgICBy
b290RWxlbWVudCgpOworCisgICAgbV9hbGxFdmVudHNIb29rID0gU2V0V2luRXZlbnRIb29rKEVW
RU5UX01JTiwgRVZFTlRfTUFYLCBHZXRNb2R1bGVIYW5kbGUoMCksIGxvZ0V2ZW50UHJvYywgR2V0
Q3VycmVudFByb2Nlc3NJZCgpLCAwLCBXSU5FVkVOVF9JTkNPTlRFWFQpOworCisgICAgQVNTRVJU
KG1fYWxsRXZlbnRzSG9vayk7CiB9CiAKIHN0YXRpYyBzdHJpbmcgc3RyaW5nRXZlbnQoRFdPUkQg
ZXZlbnQpCkBAIC0yOTEsOCArMzEzLDggQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
bm90aWZpY2F0aW9uUmVjZWl2ZWQoUGxhdGZvcm1VSUVsZW1lbnQgZWxlbWVudCwgY28KIAogdm9p
ZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIoUGxhdGZv
cm1VSUVsZW1lbnQgZWxlbWVudCwgSlNPYmplY3RSZWYgZnVuY3Rpb25DYWxsYmFjaykKIHsKLSAg
ICBpZiAoIW1fYWxsRXZlbnRzSG9vaykKLSAgICAgICAgbV9hbGxFdmVudHNIb29rID0gU2V0V2lu
RXZlbnRIb29rKEVWRU5UX01JTiwgRVZFTlRfTUFYLCBHZXRNb2R1bGVIYW5kbGUoMCksIG5vdGlm
aWNhdGlvbkxpc3RlbmVyUHJvYywgR2V0Q3VycmVudFByb2Nlc3NJZCgpLCAwLCBXSU5FVkVOVF9J
TkNPTlRFWFQpOworICAgIGlmICghbV9ub3RpZmljYXRpb25zRXZlbnRIb29rKQorICAgICAgICBt
X25vdGlmaWNhdGlvbnNFdmVudEhvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlOLCBFVkVO
VF9NQVgsIEdldE1vZHVsZUhhbmRsZSgwKSwgbm90aWZpY2F0aW9uTGlzdGVuZXJQcm9jLCBHZXRD
dXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CiAKICAgICBKU1ZhbHVl
UHJvdGVjdChmcmFtZS0+Z2xvYmFsQ29udGV4dCgpLCBmdW5jdGlvbkNhbGxiYWNrKTsKICAgICBt
X25vdGlmaWNhdGlvbkxpc3RlbmVycy5hZGQoZWxlbWVudCwgZnVuY3Rpb25DYWxsYmFjayk7Ci0t
IAoxLjcuNAoK
</data>
<flag name="review"
          id="95743"
          type_id="1"
          status="+"
          setter="alice.barraclough"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101150</attachid>
            <date>2011-07-18 05:24:04 -0700</date>
            <delta_ts>2011-07-18 05:47:32 -0700</delta_ts>
            <desc>Patch v3</desc>
            <filename>0001-focus-and-selection-events-are-not-fired-when-a-sele.patch</filename>
            <type>text/plain</type>
            <size>24950</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSA5YWZlMTNjMzY3Yjc4NTk1NTllZGE2YWE4MmI3YTAyOTVmY2FlMTMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCAxOCBKdWwgMjAxMSAwNDo1NTo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEZv
Y3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mg
c2VsZWN0aW9uCiBjaGFuZ2VzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1MDQKIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKCiogYWNjZXNz
aWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKQWRkIG5ldyBub3RpZmljYXRp
b24gdHlwZSB0byB0aGUgc2VjdGlvbiBvZiB1bmhhbmRsZWQgbm90aWZpY2F0aW9ucy4KCiogYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CkRlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBB
WE1lbnVMaXN0SXRlbVNlbGVjdGVkLgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbik6ClRlbGwgb3VyIGNoaWxkIHBvcHVwIHRoYXQgdGhlIGFjdGl2ZSBvcHRpb24gY2hh
bmdlZCwgYW5kIHBvc3QgYQpub3RpZmljYXRpb24gdGhhdCBvdXIgdmFsdWUgY2hhbmdlZC4KCiog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDoKRGVjbGFyZSBkaWRVcGRhdGVB
Y3RpdmVPcHRpb24oKS4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKToKR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50IHRoYXQgaXMgc2VsZWN0
ZWQsIGFuZCBmaXJlIGZvY3VzIGFuZApzZWxlY3Rpb24gZXZlbnRzIGZvciBpdC4KCiogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgpEZWNsYXJlIGRpZFVwZGF0ZUFj
dGl2ZU9wdGlvbigpLgoKKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Ck1hcCBB
WE1lbnVMaXN0SXRlbVNlbGVjdGVkIC0+IEVWRU5UX09CSkVDVF9TRUxFQ1RJT04uCgoqIGRvbS9T
ZWxlY3RFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5k
ZXgpOgpQYXNzIHRoZSBuZXdseS1zZWxlY3RlZCBpbmRleC4KCiogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6ClVw
ZGF0ZSB0aGUgaW5pdGlhbGl6YXRpb24gbGlzdCBmb3IgdGhlIHJlbmFtZWQgbV9sYXN0QWN0aXZl
SW5kZXguCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24pOgpBIG5l
dyBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZSBpbiB0aGUgcG9wdXA7IGNhbGwKZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKCkuCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRl
eCk6CkNhbGwgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCksIHBhc3NpbmcgdGhlIGluZGV4IG9mIHRo
ZSBuZXdseS1zZWxlY3RlZAo8b3B0aW9uPi4KKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpkaWRV
cGRhdGVBY3RpdmVPcHRpb24pOgpJZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLCBvciBpZiB0
aGUgYWN0aXZlIG9wdGlvbiBoYXMgbm90IGNoYW5nZWQsCnJldHVybiBlYXJseS4gQ2hlY2sgd2hl
dGhlciB0aGUgb3B0aW9uIGluZGV4IGlzIGluIHRoZSByYW5nZSBvZiBsaXN0Cml0ZW1zLCBhbmQg
YXNzZXJ0IHRoYXQgdGhlIGl0ZW0gYXQgdGhhdCBpbmRleCBpcyBhbiA8b3B0aW9uPiBlbGVtZW50
LgpUZWxsIHRoZSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QgZm9yIHRoaXMgZWxlbWVudCB0aGF0IHdl
IHVwZGF0ZWQgdGhlCmFjdGl2ZSBvcHRpb24uCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
OgpVcGRhdGVkIHRoZSBkZWNsYXJhdGlvbiBvZiBkaWRTZXRTZWxlY3RlZEluZGV4KCkgdG8gdGFr
ZSB0aGUgc2VsZWN0ZWQKaW5kZXguIERlY2xhcmVkIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLiBS
ZW5hbWVkIG1fbGFzdFNlbGVjdGVkSW5kZXggdG8KbV9sYXN0QWN0aXZlSW5kZXguCgpUb29sczoK
CiogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKQWRkZWQgbV9ub3Rp
ZmljYXRpb25zRXZlbnRIb29rIGZvciBhZGROb3RpZmljYXRpb25MaXN0ZW5lcigpLgptX2FsbEV2
ZW50c0hvb2sgd2lsbCBub3cgYmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50cygp
LgoKKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKSW5pdGlh
bGl6ZSBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2suCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
fkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKVHVybiBvZmYgbG9nZ2luZyBvZiBhbGwgYWNjZXNz
aWJpbGl0eSBldmVudHMuIElmCm1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayBpcyBub24tbnVsbCwg
dW5ob29rIGl0LgoobG9nRXZlbnRQcm9jKToKQWRkIGhhbmRsaW5nIG9mIEVWRU5UX09CSkVDVF9T
RUxFQ1RJT04uCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nQWNjZXNzaWJpbGl0eUV2
ZW50cyk6CklmIHRoZSBzdGF0ZSBvZiBsb2dnaW5nIGlzIG5vdCBjaGFuZ2luZywgcmV0dXJuIGVh
cmx5LiBJZiB3ZSdyZSB0dXJuaW5nCm9mZiBsb2dnaW5nLCB1bmhvb2sgbV9hbGxFdmVudHNIb29r
LCBhbmQgemVybyBpdCBvdXQuIE90aGVyd2lzZSwgYWRkIGEKaG9vayBmb3IgYWxsIGV2ZW50cy4K
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcik6ClVzZSBt
X25vdGlmaWNhdGlvbnNFdmVudEhvb2sgcmF0aGVyIHRoYW4gbV9hbGxFdmVudHNIb29rLgoKTGF5
b3V0VGVzdHM6CgoqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNl
bGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVu
dHMuaHRtbDogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIC4uLmVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1
cy1ldmVudHMtZXhwZWN0ZWQudHh0IHwgICAxMCArKysKIC4uLi9vcHRpb24tZWxlbWVudC1zZWxl
Y3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sIHwgICAzMiArKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjMgKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
ICAgICAgIHwgICAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwICAgICAgICB8ICAgMTggKysrKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5oICB8ICAgIDIgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAuY3BwICAgfCAgIDEzICsrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggICAgIHwgICAgMyArCiAuLi4vY2hyb21pdW0vQVhP
YmplY3RDYWNoZUNocm9taXVtLmNwcCAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAgfCAgICA0ICsKIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgfCAgIDMwICsr
KysrKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAg
ICAgfCAgICA2ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMjggKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oICAgICB8ICAgIDEgKwogLi4uL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcldpbi5jcHAgICAgICAgICAgICAgfCAgIDMyICsrKysrKysrLS0KIDE3IGZpbGVzIGNoYW5n
ZWQsIDI0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4ZjE5NDIuLmViNDBiMGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNy0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZvY3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFy
ZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mgc2VsZWN0aW9uCisgICAgICAgIGNoYW5nZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTA0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0
aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xOCAgR2Fi
b3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBRdCByZWJhc2VsaW5lcyBhZnRl
ciByOTEwNjAgYW5kIHI5MTExNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0
aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMDhkYWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
UmVjZWl2ZWQgZm9jdXMgZXZlbnQgZm9yIG9iamVjdCAnb3B0aW9uIDInLgorUmVjZWl2ZWQgc2Vs
ZWN0aW9uIGV2ZW50IGZvciBvYmplY3QgJ29wdGlvbiAyJy4KK1JlY2VpdmVkIHZhbHVlIGNoYW5n
ZSBldmVudCBmb3Igb2JqZWN0ICdzZWxlY3QgZWxlbWVudCcsIHZhbHVlICdvcHRpb24gMicuCitS
ZWNlaXZlZCBmb2N1cyBldmVudCBmb3Igb2JqZWN0ICdvcHRpb24gMScuCitSZWNlaXZlZCBzZWxl
Y3Rpb24gZXZlbnQgZm9yIG9iamVjdCAnb3B0aW9uIDEnLgorUmVjZWl2ZWQgdmFsdWUgY2hhbmdl
IGV2ZW50IGZvciBvYmplY3QgJ3NlbGVjdCBlbGVtZW50JywgdmFsdWUgJ29wdGlvbiAxJy4KKwor
VGhpcyB0ZXN0cyB0aGF0IGNoYW5naW5nIHNlbGVjdGlvbiBpbiBhIG5vbi1tdWx0aXBsZSBzZWxl
Y3QgZWxlbWVudCBmaXJlcyBmb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBmb3IgdGhlIHNlbGVj
dGVkIG9wdGlvbiBlbGVtZW50LgorCitUaGlzIHRlc3Qgc2hvdWxkIG9ubHkgYmUgcnVuIGluc2lk
ZSBvZiBEdW1wUmVuZGVyVHJlZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxl
bWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjUxNzEzYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZv
Y3VzLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgorCis8Ym9keSBpZD0iYm9k
eSI+CisKKzxzZWxlY3QgaWQ9InNlbGVjdCIgdGl0bGU9InNlbGVjdCBlbGVtZW50Ij4KKzxvcHRp
b24gU0VMRUNURUQ+b3B0aW9uIDE8L29wdGlvbj4KKzxvcHRpb24+b3B0aW9uIDI8L29wdGlvbj4K
KzxvcHRpb24+b3B0aW9uIDM8L29wdGlvbj4KKzxvcHRpb24+b3B0aW9uIDQ8L29wdGlvbj4KKzwv
c2VsZWN0PgorCis8cD5UaGlzIHRlc3RzIHRoYXQgY2hhbmdpbmcgc2VsZWN0aW9uIGluIGEgbm9u
LW11bHRpcGxlIHNlbGVjdCBlbGVtZW50IGZpcmVzCitmb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50
cyBmb3IgdGhlIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50LjwvcD4KKworPHAgaWQ9Im5vdERSVCI+
VGhpcyB0ZXN0IHNob3VsZCBvbmx5IGJlIHJ1biBpbnNpZGUgb2YgRHVtcFJlbmRlclRyZWUuPC9w
PgorCis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVj
dCIpLmZvY3VzKCk7CisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmxvZ0FjY2Vzc2li
aWxpdHlFdmVudHMoKTsKKworICAgICAgICAvLyBUZXN0IHRoYXQgd2Ugc2VuZCBldmVudHMgd2l0
aCB0aGUgbGlzdCBjb2xsYXBzZWQuCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25B
cnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisKKyAgICAg
ICAgLy8gV2Ugc2hvdWxkIHRlc3Qgd2hldGhlciB3ZSBzZW5kIGV2ZW50cyB3aGVuIHVzaW5nIGFy
cm93IGtleXMgd2l0aCB0aGUKKyAgICAgICAgLy8gbWVudSBleHBhbmRlZCwgYnV0IGV2ZW50U2Vu
ZGVyIGNhbm5vdCBzZW5kIGV2ZW50cyB0byB0aGUgcG9wdXAgbWVudS4KKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDg3OGVkLi45YTIyYzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMDctMTggIEpvbiBIb25leWN1dHQgIDxqaG9u
ZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBGb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBh
cmUgbm90IGZpcmVkIHdoZW4gYSA8c2VsZWN0PidzIHNlbGVjdGlvbgorICAgICAgICBjaGFuZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTMxOTg4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0
eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbiB0eXBlIHRvIHRoZSBzZWN0aW9uIG9mIHVu
aGFuZGxlZCBub3RpZmljYXRpb25zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmg6CisgICAgICAgIERlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBBWE1lbnVMaXN0
SXRlbVNlbGVjdGVkLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpkaWRV
cGRhdGVBY3RpdmVPcHRpb24pOgorICAgICAgICBUZWxsIG91ciBjaGlsZCBwb3B1cCB0aGF0IHRo
ZSBhY3RpdmUgb3B0aW9uIGNoYW5nZWQsIGFuZCBwb3N0IGEKKyAgICAgICAgbm90aWZpY2F0aW9u
IHRoYXQgb3VyIHZhbHVlIGNoYW5nZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5oOgorICAgICAgICBEZWNsYXJlIGRpZFVwZGF0ZUFjdGl2ZU9wdGlv
bigpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlk
VXBkYXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVt
ZW50IHRoYXQgaXMgc2VsZWN0ZWQsIGFuZCBmaXJlIGZvY3VzIGFuZAorICAgICAgICBzZWxlY3Rp
b24gZXZlbnRzIGZvciBpdC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaDoKKyAgICAgICAgRGVjbGFyZSBkaWRVcGRhdGVBY3RpdmVPcHRpb24o
KS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgTWFwIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQgLT4gRVZFTlRfT0JKRUNUX1NF
TEVDVElPTi4KKworICAgICAgICAqIGRvbS9TZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOgorICAgICAgICBQYXNzIHRo
ZSBuZXdseS1zZWxlY3RlZCBpbmRleC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxp
c3QpOgorICAgICAgICBVcGRhdGUgdGhlIGluaXRpYWxpemF0aW9uIGxpc3QgZm9yIHRoZSByZW5h
bWVkIG1fbGFzdEFjdGl2ZUluZGV4LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6
OnNldFRleHRGcm9tT3B0aW9uKToKKyAgICAgICAgQSBuZXcgc2VsZWN0aW9uIGhhcyBiZWVuIG1h
ZGUgaW4gdGhlIHBvcHVwOyBjYWxsCisgICAgICAgIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmRpZFNldFNlbGVjdGVkSW5kZXgpOgor
ICAgICAgICBDYWxsIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLCBwYXNzaW5nIHRoZSBpbmRleCBv
ZiB0aGUgbmV3bHktc2VsZWN0ZWQKKyAgICAgICAgPG9wdGlvbj4uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgSWYgYWNj
ZXNzaWJpbGl0eSBpcyBkaXNhYmxlZCwgb3IgaWYgdGhlIGFjdGl2ZSBvcHRpb24gaGFzIG5vdCBj
aGFuZ2VkLAorICAgICAgICByZXR1cm4gZWFybHkuIENoZWNrIHdoZXRoZXIgdGhlIG9wdGlvbiBp
bmRleCBpcyBpbiB0aGUgcmFuZ2Ugb2YgbGlzdAorICAgICAgICBpdGVtcywgYW5kIGFzc2VydCB0
aGF0IHRoZSBpdGVtIGF0IHRoYXQgaW5kZXggaXMgYW4gPG9wdGlvbj4gZWxlbWVudC4KKyAgICAg
ICAgVGVsbCB0aGUgQWNjZXNzaWJpbGl0eU1lbnVMaXN0IGZvciB0aGlzIGVsZW1lbnQgdGhhdCB3
ZSB1cGRhdGVkIHRoZQorICAgICAgICBhY3RpdmUgb3B0aW9uLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIFVwZGF0ZWQgdGhlIGRlY2xhcmF0aW9uIG9m
IGRpZFNldFNlbGVjdGVkSW5kZXgoKSB0byB0YWtlIHRoZSBzZWxlY3RlZAorICAgICAgICBpbmRl
eC4gRGVjbGFyZWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuIFJlbmFtZWQgbV9sYXN0U2VsZWN0
ZWRJbmRleCB0bworICAgICAgICBtX2xhc3RBY3RpdmVJbmRleC4KKwogMjAxMS0wNy0xOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZG8gbm90IHBhdXNlIG9uIGNhdWdodCBleGNlcHRpb25zIHdoaWxlIHR5cGluZyBpbiB0aGUg
Y29uc29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggOTVjYzdmMy4uMjc3ODlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIEFY
VmFsdWVDaGFuZ2VkLAogICAgICAgICBBWFNjcm9sbGVkVG9BbmNob3IsCiAgICAgICAgIEFYTGl2
ZVJlZ2lvbkNoYW5nZWQsCisgICAgICAgIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQsCiAgICAgICAg
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQsCiAgICAgICAgIEFYUm93Q291bnRDaGFuZ2VkLAogICAg
ICAgICBBWFJvd0NvbGxhcHNlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAppbmRleCBlMGMwM2MzLi43NjIxYTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVudUxpc3QuY3BwCkBAIC04Miw0ICs4MiwyMiBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlz
dDo6aXNDb2xsYXBzZWQoKSBjb25zdAogICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8UmVuZGVyTWVu
dUxpc3QqPihtX3JlbmRlcmVyKS0+cG9wdXBJc1Zpc2libGUoKTsKIH0KIAordm9pZCBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpCit7
CisgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZE9iamVjdHMgPSBj
aGlsZHJlbigpOworICAgIGlmIChjaGlsZE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoY2hpbGRPYmplY3RzLnNpemUoKSA9PSAxKTsKKyAgICBBU1NFUlQo
Y2hpbGRPYmplY3RzWzBdLT5pc01lbnVMaXN0UG9wdXAoKSk7CisKKyAgICBSZWZQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50ID0gbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKKyAgICBBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50LT5heE9iamVjdENhY2hlKCk7CisKKyAgICBpZiAoQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAqPihjaGlsZE9iamVjdHNbMF0uZ2V0KCkpKQorICAgICAgICBwb3B1cC0+ZGlkVXBk
YXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKKworICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKHRoaXMsIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0VmFsdWVD
aGFuZ2VkLCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdC5oCmluZGV4IGNkYjNhYzIuLjY4ZjQyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtNDIsNiAr
NDIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpOworCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdChSZW5kZXJNZW51TGlzdCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDk5
NTAzMTMuLjdjZjg5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCkBAIC0xMjMsNCArMTIzLDE3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnNldE1lbnVMaXN0KEFjY2Vzc2li
aWxpdHlNZW51TGlzdCogbWVudUxpc3QpCiAgICAgbV9tZW51TGlzdCA9IG1lbnVMaXN0OwogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpkaWRVcGRhdGVBY3RpdmVPcHRpb24o
aW50IG9wdGlvbkluZGV4KQoreworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbklu
ZGV4ID49IDApOworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbkluZGV4IDwgc3Rh
dGljX2Nhc3Q8aW50PihtX2NoaWxkcmVuLnNpemUoKSkpOworCisgICAgUmVmUHRyPERvY3VtZW50
PiBkb2N1bWVudCA9IG1fbWVudUxpc3QtPnJlbmRlcmVyKCktPmRvY3VtZW50KCk7CisgICAgQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpOworICAgIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjaGlsZCA9IG1fY2hpbGRyZW5bb3B0aW9uSW5kZXhdLmdl
dCgpOworCisgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0KCksIGRvY3VtZW50
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkLCB0cnVlLCBQ
b3N0U3luY2hyb25vdXNseSk7CisgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0
KCksIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0SXRlbVNlbGVjdGVk
LCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaAppbmRleCA4OGZiZjdjLi4zODBjY2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5oCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2li
aWxpdHlNZW51TGlzdDsKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjsKIGNsYXNz
IEhUTUxFbGVtZW50OworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2li
aWxpdHlNZW51TGlzdFBvcHVwIDogcHVibGljIEFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVibGlj
OgpAQCAtNDMsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwogCisgICAgdm9p
ZCBkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4KTsKKwogcHJpdmF0ZToKICAg
ICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1
bS5jcHAKaW5kZXggMGZlZDQzNy4uM2JjZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVt
LmNwcApAQCAtODcsNiArODcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICBjYXNlIEFYTGl2ZVJlZ2lvbkNoYW5nZWQ6CiAgICAgY2Fz
ZSBBWExvYWRDb21wbGV0ZToKKyAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CiAgICAg
Y2FzZSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkOgogICAgIGNhc2UgQVhSb3dDb2xsYXBzZWQ6CiAg
ICAgY2FzZSBBWFJvd0NvdW50Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKaW5kZXggYjIwYjUxYS4uNGUwMmMy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RD
YWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmpl
Y3RDYWNoZVdpbi5jcHAKQEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
CiAgICAgICAgICAgICBtc2FhRXZlbnQgPSBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0U7CiAgICAg
ICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6Cisg
ICAgICAgICAgICBtc2FhRXZlbnQgPSBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OOworICAgICAgICAg
ICAgYnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMjlhOWZiMi4uNjhhNDg0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIHZv
aWQgU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChTZWxlY3RFbGVtZW50RGF0YSYgZGF0
YSwgRWxlbWVudCogZWxlbWVudCwKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAg
aWYgKGRhdGEudXNlc01lbnVMaXN0KCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJNZW51TGlz
dChyZW5kZXJlciktPmRpZFNldFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgICAgICAgICB0b1Jl
bmRlck1lbnVMaXN0KHJlbmRlcmVyKS0+ZGlkU2V0U2VsZWN0ZWRJbmRleChsaXN0SW5kZXgpOwog
ICAgICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzTGlzdEJveCgpKQogICAgICAgICAgICAg
ICAgIHRvUmVuZGVyTGlzdEJveChyZW5kZXJlciktPnNlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXgg
Y2E5ZDdlMzMuLjdmM2JlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtNTcsNyArNTgsNyBAQCBSZW5k
ZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoRWxlbWVudCogZWxlbWVudCkKICAgICAsIG1faW5u
ZXJCbG9jaygwKQogICAgICwgbV9vcHRpb25zQ2hhbmdlZCh0cnVlKQogICAgICwgbV9vcHRpb25z
V2lkdGgoMCkKLSAgICAsIG1fbGFzdFNlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX2xhc3RBY3Rp
dmVJbmRleCgtMSkKICAgICAsIG1fcG9wdXBJc1Zpc2libGUoZmFsc2UpCiB7CiB9CkBAIC0yMDQs
NiArMjA1LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24oaW50IG9w
dGlvbkluZGV4KQogICAgIH0KIAogICAgIHNldFRleHQodGV4dC5zdHJpcFdoaXRlU3BhY2UoKSk7
CisgICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogdm9pZCBSZW5k
ZXJNZW51TGlzdDo6c2V0VGV4dChjb25zdCBTdHJpbmcmIHMpCkBAIC0zMzgsMTYgKzM0MCwzMCBA
QCBib29sIFJlbmRlck1lbnVMaXN0OjptdWx0aXBsZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBSZW5k
ZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRleCgpCit2b2lkIFJlbmRlck1lbnVMaXN0Ojpk
aWRTZXRTZWxlY3RlZEluZGV4KGludCBsaXN0SW5kZXgpCiB7Ci0gICAgaW50IGluZGV4ID0gc2Vs
ZWN0ZWRJbmRleCgpOwotICAgIGlmIChtX2xhc3RTZWxlY3RlZEluZGV4ID09IGluZGV4KQorICAg
IFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVt
ZW50Kj4obm9kZSgpKSk7CisgICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKHNlbGVjdC0+bGlzdFRv
T3B0aW9uSW5kZXgobGlzdEluZGV4KSk7Cit9CisKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OmRpZFVw
ZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bV9sYXN0QWN0aXZlSW5kZXggPT0gb3B0aW9uSW5kZXgpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2xhc3RBY3RpdmVJbmRleCA9IG9wdGlvbkluZGV4OworCisgICAgU2VsZWN0RWxlbWVudCogc2Vs
ZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKKyAg
ICBpbnQgbGlzdEluZGV4ID0gc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChvcHRpb25JbmRleCk7
CisgICAgaWYgKGxpc3RJbmRleCA8IDAgfHwgbGlzdEluZGV4ID49IHNlbGVjdC0+bGlzdEl0ZW1z
KCkuc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2xhc3RTZWxlY3RlZEluZGV4ID0g
aW5kZXg7CisgICAgQVNTRVJUKHRvT3B0aW9uRWxlbWVudChzZWxlY3QtPmxpc3RJdGVtcygpW2xp
c3RJbmRleF0pKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQotICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hlKCktPnBvc3ROb3RpZmljYXRp
b24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhNZW51TGlzdFZhbHVlQ2hhbmdlZCwgdHJ1ZSwgUG9z
dFN5bmNocm9ub3VzbHkpOworICAgIGlmIChBY2Nlc3NpYmlsaXR5TWVudUxpc3QqIG1lbnVMaXN0
ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVMaXN0Kj4oZG9jdW1lbnQoKS0+YXhPYmpl
Y3RDYWNoZSgpLT5nZXQodGhpcykpKQorICAgICAgICBtZW51TGlzdC0+ZGlkVXBkYXRlQWN0aXZl
T3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogU3RyaW5nIFJlbmRlck1lbnVMaXN0OjppdGVtVGV4
dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZW51TGlzdC5oCmluZGV4IGUyOTEyM2EuLjhmM2JiZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgc2V0T3B0aW9uc0NoYW5nZWQoYm9vbCBjaGFuZ2VkKSB7IG1fb3B0aW9uc0NoYW5nZWQg
PSBjaGFuZ2VkOyB9CiAKLSAgICB2b2lkIGRpZFNldFNlbGVjdGVkSW5kZXgoKTsKKyAgICB2b2lk
IGRpZFNldFNlbGVjdGVkSW5kZXgoaW50IGxpc3RJbmRleCk7CiAKICAgICBTdHJpbmcgdGV4dCgp
IGNvbnN0OwogCkBAIC0xMjQsMTMgKzEyNCwxNSBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0VGV4
dEZyb21PcHRpb24oaW50IG9wdGlvbkluZGV4KTsKICAgICB2b2lkIHVwZGF0ZU9wdGlvbnNXaWR0
aCgpOwogCisgICAgdm9pZCBkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4KTsK
KwogICAgIFJlbmRlclRleHQqIG1fYnV0dG9uVGV4dDsKICAgICBSZW5kZXJCbG9jayogbV9pbm5l
ckJsb2NrOwogCiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwogICAgIGludCBtX29wdGlvbnNX
aWR0aDsKIAotICAgIGludCBtX2xhc3RTZWxlY3RlZEluZGV4OworICAgIGludCBtX2xhc3RBY3Rp
dmVJbmRleDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9vcHRpb25TdHlsZTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRhMTBhZWUu
LmY2NTM1NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0wNy0xMyAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1
dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZvY3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBu
b3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mgc2VsZWN0aW9uCisgICAgICAgIGNoYW5nZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTA0CisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuaDoKKyAgICAgICAgQWRkZWQgbV9ub3RpZmljYXRpb25zRXZlbnRIb29rIGZvciBhZGRO
b3RpZmljYXRpb25MaXN0ZW5lcigpLgorICAgICAgICBtX2FsbEV2ZW50c0hvb2sgd2lsbCBub3cg
YmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50cygpLgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcDoKKyAgICAgICAg
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAg
ICAgIEluaXRpYWxpemUgbV9ub3RpZmljYXRpb25zRXZlbnRIb29rLgorICAgICAgICAoQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcik6CisgICAgICAgIFR1
cm4gb2ZmIGxvZ2dpbmcgb2YgYWxsIGFjY2Vzc2liaWxpdHkgZXZlbnRzLiBJZgorICAgICAgICBt
X25vdGlmaWNhdGlvbnNFdmVudEhvb2sgaXMgbm9uLW51bGwsIHVuaG9vayBpdC4KKyAgICAgICAg
KGxvZ0V2ZW50UHJvYyk6CisgICAgICAgIEFkZCBoYW5kbGluZyBvZiBFVkVOVF9PQkpFQ1RfU0VM
RUNUSU9OLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2li
aWxpdHlFdmVudHMpOgorICAgICAgICBJZiB0aGUgc3RhdGUgb2YgbG9nZ2luZyBpcyBub3QgY2hh
bmdpbmcsIHJldHVybiBlYXJseS4gSWYgd2UncmUgdHVybmluZworICAgICAgICBvZmYgbG9nZ2lu
ZywgdW5ob29rIG1fYWxsRXZlbnRzSG9vaywgYW5kIHplcm8gaXQgb3V0LiBPdGhlcndpc2UsIGFk
ZCBhCisgICAgICAgIGhvb2sgZm9yIGFsbCBldmVudHMuCisgICAgICAgIChBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIpOgorICAgICAgICBVc2UgbV9ub3Rp
ZmljYXRpb25zRXZlbnRIb29rIHJhdGhlciB0aGFuIG1fYWxsRXZlbnRzSG9vay4KKwogMjAxMS0w
Ny0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkxMTMyIGFuZCByOTExMzUuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA0NjJjNDg0Li4y
NWEzYTAyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBIV0lORVZFTlRIT09LIG1fc2Ny
b2xsaW5nU3RhcnRFdmVudEhvb2s7CiAKICAgICBIV0lORVZFTlRIT09LIG1fYWxsRXZlbnRzSG9v
azsKKyAgICBIV0lORVZFTlRIT09LIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vazsKICAgICBIYXNo
TWFwPFBsYXRmb3JtVUlFbGVtZW50LCBKU09iamVjdFJlZj4gbV9ub3RpZmljYXRpb25MaXN0ZW5l
cnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAppbmRleCA2ZTRlZTQ2Li44ODQ1NDIzIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJX
aW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcldpbi5jcHAKQEAgLTQ0LDE2ICs0NCwxOCBAQCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogICAgICwgbV9zY3JvbGxpbmdTdGFydEV2ZW50SG9v
aygwKQogICAgICwgbV92YWx1ZUNoYW5nZUV2ZW50SG9vaygwKQogICAgICwgbV9hbGxFdmVudHNI
b29rKDApCisgICAgLCBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2soMCkKIHsKIH0KIAogQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcigpCiB7CiAgICAgc2V0
TG9nRm9jdXNFdmVudHMoZmFsc2UpOworICAgIHNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoZmFs
c2UpOwogICAgIHNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKGZhbHNlKTsKIAotICAgIGlmIChtX2Fs
bEV2ZW50c0hvb2spCi0gICAgICAgIFVuaG9va1dpbkV2ZW50KG1fYWxsRXZlbnRzSG9vayk7Cisg
ICAgaWYgKG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vaykKKyAgICAgICAgVW5ob29rV2luRXZlbnQo
bV9ub3RpZmljYXRpb25zRXZlbnRIb29rKTsKIAogICAgIGZvciAoSGFzaE1hcDxQbGF0Zm9ybVVJ
RWxlbWVudCwgSlNPYmplY3RSZWY+OjppdGVyYXRvciBpdCA9IG1fbm90aWZpY2F0aW9uTGlzdGVu
ZXJzLmJlZ2luKCk7IGl0ICE9IG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmVuZCgpOyArK2l0KQog
ICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLT5nbG9iYWxDb250ZXh0KCksIGl0LT5zZWNv
bmQpOwpAQCAtMTMwLDYgKzEzMiwxMCBAQCBzdGF0aWMgdm9pZCBDQUxMQkFDSyBsb2dFdmVudFBy
b2MoSFdJTkVWRU5USE9PSywgRFdPUkQgZXZlbnQsIEhXTkQgaHduZCwgTE9ORyBpZAogICAgICAg
ICAgICAgcHJpbnRmKCJSZWNlaXZlZCBmb2N1cyBldmVudCBmb3Igb2JqZWN0ICclUycuXG4iLCBu
YW1lLmNfc3RyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBFVkVOVF9P
QkpFQ1RfU0VMRUNUSU9OOgorICAgICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCBzZWxlY3Rpb24g
ZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJy
ZWFrOworCiAgICAgICAgIGNhc2UgRVZFTlRfT0JKRUNUX1ZBTFVFQ0hBTkdFOiB7CiAgICAgICAg
ICAgICBCU1RSIHZhbHVlQlNUUjsKICAgICAgICAgICAgIGhyID0gcGFyZW50T2JqZWN0LT5nZXRf
YWNjVmFsdWUodkNoaWxkLCAmdmFsdWVCU1RSKTsKQEAgLTIxMyw4ICsyMTksMjQgQEAgdm9pZCBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nU2Nyb2xsaW5nU3RhcnRFdmVudHMoYm9vbCBs
b2dTY3JvbGxpbmdTdGFydEUKICAgICBBU1NFUlQobV9zY3JvbGxpbmdTdGFydEV2ZW50SG9vayk7
CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlF
dmVudHMoYm9vbCkKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNldExvZ0FjY2Vzc2li
aWxpdHlFdmVudHMoYm9vbCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKQogeworICAgIGlmICghIW1f
YWxsRXZlbnRzSG9vayA9PSBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRzKQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAoIWxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpIHsKKyAgICAgICAgVW5ob29rV2lu
RXZlbnQobV9hbGxFdmVudHNIb29rKTsKKyAgICAgICAgbV9hbGxFdmVudHNIb29rID0gMDsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEVuc3VyZSB0aGF0IGFjY2Vzc2liaWxpdHkg
aXMgaW5pdGlhbGl6ZWQgZm9yIHRoZSBXZWJWaWV3IGJ5IHF1ZXJ5aW5nIGZvcgorICAgIC8vIHRo
ZSByb290IGFjY2Vzc2libGUgb2JqZWN0LgorICAgIHJvb3RFbGVtZW50KCk7CisKKyAgICBtX2Fs
bEV2ZW50c0hvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlOLCBFVkVOVF9NQVgsIEdldE1v
ZHVsZUhhbmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJ
TkVWRU5UX0lOQ09OVEVYVCk7CisKKyAgICBBU1NFUlQobV9hbGxFdmVudHNIb29rKTsKIH0KIAog
c3RhdGljIHN0cmluZyBzdHJpbmdFdmVudChEV09SRCBldmVudCkKQEAgLTI5MSw4ICszMTMsOCBA
QCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpub3RpZmljYXRpb25SZWNlaXZlZChQbGF0
Zm9ybVVJRWxlbWVudCBlbGVtZW50LCBjbwogCiB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50LCBKU09i
amVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIGlmICghbV9hbGxFdmVudHNIb29rKQot
ICAgICAgICBtX2FsbEV2ZW50c0hvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlOLCBFVkVO
VF9NQVgsIEdldE1vZHVsZUhhbmRsZSgwKSwgbm90aWZpY2F0aW9uTGlzdGVuZXJQcm9jLCBHZXRD
dXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CisgICAgaWYgKCFtX25v
dGlmaWNhdGlvbnNFdmVudEhvb2spCisgICAgICAgIG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayA9
IFNldFdpbkV2ZW50SG9vayhFVkVOVF9NSU4sIEVWRU5UX01BWCwgR2V0TW9kdWxlSGFuZGxlKDAp
LCBub3RpZmljYXRpb25MaXN0ZW5lclByb2MsIEdldEN1cnJlbnRQcm9jZXNzSWQoKSwgMCwgV0lO
RVZFTlRfSU5DT05URVhUKTsKIAogICAgIEpTVmFsdWVQcm90ZWN0KGZyYW1lLT5nbG9iYWxDb250
ZXh0KCksIGZ1bmN0aW9uQ2FsbGJhY2spOwogICAgIG1fbm90aWZpY2F0aW9uTGlzdGVuZXJzLmFk
ZChlbGVtZW50LCBmdW5jdGlvbkNhbGxiYWNrKTsKLS0gCjEuNy40Cgo=
</data>
<flag name="commit-queue"
          id="95975"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101152</attachid>
            <date>2011-07-18 05:47:32 -0700</date>
            <delta_ts>2011-07-18 14:54:42 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>0001-focus-and-selection-events-are-not-fired-when-a-sele.patch</filename>
            <type>text/plain</type>
            <size>24968</size>
            <attacher name="Jon Honeycutt">jhoneycutt</attacher>
            
              <data encoding="base64">RnJvbSAyMGNmY2Q1YWI5NDI4MmNhZmQyNmYxZDUxMDBlZTRiM2IyZTgwZTZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb24gSG9uZXljdXR0IDxqaG9uZXljdXR0QGFwcGxlLmNvbT4K
RGF0ZTogTW9uLCAxOCBKdWwgMjAxMSAwNDo1NTo1OCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIEZv
Y3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mg
c2VsZWN0aW9uCiBjaGFuZ2VzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NjQ1MDQKIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCgpTb3VyY2UvV2ViQ29yZToKClRlc3Q6IHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5
L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLmh0bWwKCiogYWNjZXNz
aWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwOgooV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKToKQWRkIG5ldyBub3RpZmljYXRp
b24gdHlwZSB0byB0aGUgc2VjdGlvbiBvZiB1bmhhbmRsZWQgbm90aWZpY2F0aW9ucy4KCiogYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmg6CkRlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBB
WE1lbnVMaXN0SXRlbVNlbGVjdGVkLgoKKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbik6ClRlbGwgb3VyIGNoaWxkIHBvcHVwIHRoYXQgdGhlIGFjdGl2ZSBvcHRpb24gY2hh
bmdlZCwgYW5kIHBvc3QgYQpub3RpZmljYXRpb24gdGhhdCBvdXIgdmFsdWUgY2hhbmdlZC4KCiog
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaDoKRGVjbGFyZSBkaWRVcGRhdGVB
Y3RpdmVPcHRpb24oKS4KCiogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHA6CihXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKToKR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVtZW50IHRoYXQgaXMgc2VsZWN0
ZWQsIGFuZCBmaXJlIGZvY3VzIGFuZApzZWxlY3Rpb24gZXZlbnRzIGZvciBpdC4KCiogYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cC5oOgpEZWNsYXJlIGRpZFVwZGF0ZUFj
dGl2ZU9wdGlvbigpLgoKKiBhY2Nlc3NpYmlsaXR5L3dpbi9BWE9iamVjdENhY2hlV2luLmNwcDoK
KFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5vdGlmaWNhdGlvbik6Ck1hcCBB
WE1lbnVMaXN0SXRlbVNlbGVjdGVkIC0+IEVWRU5UX09CSkVDVF9TRUxFQ1RJT04uCgoqIGRvbS9T
ZWxlY3RFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5k
ZXgpOgpQYXNzIHRoZSBuZXdseS1zZWxlY3RlZCBpbmRleC4KCiogcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpSZW5kZXJNZW51TGlzdCk6ClVw
ZGF0ZSB0aGUgaW5pdGlhbGl6YXRpb24gbGlzdCBmb3IgdGhlIHJlbmFtZWQgbV9sYXN0QWN0aXZl
SW5kZXguCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24pOgpBIG5l
dyBzZWxlY3Rpb24gaGFzIGJlZW4gbWFkZSBpbiB0aGUgcG9wdXA7IGNhbGwKZGlkVXBkYXRlQWN0
aXZlT3B0aW9uKCkuCihXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRl
eCk6CkNhbGwgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCksIHBhc3NpbmcgdGhlIGluZGV4IG9mIHRo
ZSBuZXdseS1zZWxlY3RlZAo8b3B0aW9uPi4KKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjpkaWRV
cGRhdGVBY3RpdmVPcHRpb24pOgpJZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLCBvciBpZiB0
aGUgYWN0aXZlIG9wdGlvbiBoYXMgbm90IGNoYW5nZWQsCnJldHVybiBlYXJseS4gQ2hlY2sgd2hl
dGhlciB0aGUgb3B0aW9uIGluZGV4IGlzIGluIHRoZSByYW5nZSBvZiBsaXN0Cml0ZW1zLCBhbmQg
YXNzZXJ0IHRoYXQgdGhlIGl0ZW0gYXQgdGhhdCBpbmRleCBpcyBhbiA8b3B0aW9uPiBlbGVtZW50
LgpUZWxsIHRoZSBBY2Nlc3NpYmlsaXR5TWVudUxpc3QgZm9yIHRoaXMgZWxlbWVudCB0aGF0IHdl
IHVwZGF0ZWQgdGhlCmFjdGl2ZSBvcHRpb24uCgoqIHJlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5o
OgpVcGRhdGVkIHRoZSBkZWNsYXJhdGlvbiBvZiBkaWRTZXRTZWxlY3RlZEluZGV4KCkgdG8gdGFr
ZSB0aGUgc2VsZWN0ZWQKaW5kZXguIERlY2xhcmVkIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLiBS
ZW5hbWVkIG1fbGFzdFNlbGVjdGVkSW5kZXggdG8KbV9sYXN0QWN0aXZlSW5kZXguCgpUb29sczoK
CiogRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKQWRkZWQgbV9ub3Rp
ZmljYXRpb25zRXZlbnRIb29rIGZvciBhZGROb3RpZmljYXRpb25MaXN0ZW5lcigpLgptX2FsbEV2
ZW50c0hvb2sgd2lsbCBub3cgYmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50cygp
LgoKKiBEdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwOgoo
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKSW5pdGlh
bGl6ZSBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2suCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
fkFjY2Vzc2liaWxpdHlDb250cm9sbGVyKToKVHVybiBvZmYgbG9nZ2luZyBvZiBhbGwgYWNjZXNz
aWJpbGl0eSBldmVudHMuIElmCm1fbm90aWZpY2F0aW9uc0V2ZW50SG9vayBpcyBub24tbnVsbCwg
dW5ob29rIGl0LgoobG9nRXZlbnRQcm9jKToKQWRkIGhhbmRsaW5nIG9mIEVWRU5UX09CSkVDVF9T
RUxFQ1RJT04uCihBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nQWNjZXNzaWJpbGl0eUV2
ZW50cyk6CklmIHRoZSBzdGF0ZSBvZiBsb2dnaW5nIGlzIG5vdCBjaGFuZ2luZywgcmV0dXJuIGVh
cmx5LiBJZiB3ZSdyZSB0dXJuaW5nCm9mZiBsb2dnaW5nLCB1bmhvb2sgbV9hbGxFdmVudHNIb29r
LCBhbmQgemVybyBpdCBvdXQuIE90aGVyd2lzZSwgYWRkIGEKaG9vayBmb3IgYWxsIGV2ZW50cy4K
KEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcik6ClVzZSBt
X25vdGlmaWNhdGlvbnNFdmVudEhvb2sgcmF0aGVyIHRoYW4gbV9hbGxFdmVudHNIb29rLgoKTGF5
b3V0VGVzdHM6CgoqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNl
bGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRzLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVu
dHMuaHRtbDogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgIDEyICsrKysKIC4uLmVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1
cy1ldmVudHMtZXhwZWN0ZWQudHh0IHwgICAxMCArKysKIC4uLi9vcHRpb24tZWxlbWVudC1zZWxl
Y3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sIHwgICAzMiArKysrKysrKysrCiBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjMgKysrKysrKysr
KysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5o
ICAgICAgIHwgICAgMSArCiAuLi4vYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3Qu
Y3BwICAgICAgICB8ICAgMTggKysrKysrCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5oICB8ICAgIDIgKwogLi4uL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAuY3BwICAgfCAgIDEzICsrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmggICAgIHwgICAgMyArCiAuLi4vY2hyb21pdW0vQVhP
YmplY3RDYWNoZUNocm9taXVtLmNwcCAgICAgICAgICAgICB8ICAgIDEgKwogLi4uL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAgfCAgICA0ICsKIFNvdXJjZS9X
ZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgICAgMiArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcCAgICAgICAgfCAgIDMwICsr
KysrKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmggICAgICAg
ICAgfCAgICA2ICstCiBUb29scy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgMjggKysrKysrKysrCiBUb29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmls
aXR5Q29udHJvbGxlci5oICAgICB8ICAgIDEgKwogLi4uL3dpbi9BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcldpbi5jcHAgICAgICAgICAgICAgfCAgIDMyICsrKysrKysrLS0KIDE3IGZpbGVzIGNoYW5n
ZWQsIDI0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4ZjE5NDIuLmViNDBiMGIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNy0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25l
eWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZvY3VzIGFuZCBzZWxlY3Rpb24gZXZlbnRzIGFy
ZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mgc2VsZWN0aW9uCisgICAgICAgIGNoYW5nZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTA0Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0
aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sOiBBZGRlZC4KKwogMjAxMS0wNy0xOCAgR2Fi
b3IgTG9raSAgPGxva2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBRdCByZWJhc2VsaW5lcyBhZnRl
ciByOTEwNjAgYW5kIHI5MTExNgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L2FjY2Vzc2liaWxpdHkvb3B0aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvb3B0
aW9uLWVsZW1lbnQtc2VsZWN0aW9uLWFuZC1mb2N1cy1ldmVudHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmMDhkYWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1z
ZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAor
UmVjZWl2ZWQgZm9jdXMgZXZlbnQgZm9yIG9iamVjdCAnb3B0aW9uIDInLgorUmVjZWl2ZWQgc2Vs
ZWN0aW9uIGV2ZW50IGZvciBvYmplY3QgJ29wdGlvbiAyJy4KK1JlY2VpdmVkIHZhbHVlIGNoYW5n
ZSBldmVudCBmb3Igb2JqZWN0ICdzZWxlY3QgZWxlbWVudCcsIHZhbHVlICdvcHRpb24gMicuCitS
ZWNlaXZlZCBmb2N1cyBldmVudCBmb3Igb2JqZWN0ICdvcHRpb24gMScuCitSZWNlaXZlZCBzZWxl
Y3Rpb24gZXZlbnQgZm9yIG9iamVjdCAnb3B0aW9uIDEnLgorUmVjZWl2ZWQgdmFsdWUgY2hhbmdl
IGV2ZW50IGZvciBvYmplY3QgJ3NlbGVjdCBlbGVtZW50JywgdmFsdWUgJ29wdGlvbiAxJy4KKwor
VGhpcyB0ZXN0cyB0aGF0IGNoYW5naW5nIHNlbGVjdGlvbiBpbiBhIG5vbi1tdWx0aXBsZSBzZWxl
Y3QgZWxlbWVudCBmaXJlcyBmb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBmb3IgdGhlIHNlbGVj
dGVkIG9wdGlvbiBlbGVtZW50LgorCitUaGlzIHRlc3Qgc2hvdWxkIG9ubHkgYmUgcnVuIGluc2lk
ZSBvZiBEdW1wUmVuZGVyVHJlZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9hY2Nlc3NpYmlsaXR5L29wdGlvbi1lbGVtZW50LXNlbGVjdGlvbi1hbmQtZm9jdXMtZXZlbnRz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxl
bWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLjUxNzEzYzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZv
Y3VzLWV2ZW50cy5odG1sCkBAIC0wLDAgKzEsMzIgQEAKKzxodG1sPgorCis8Ym9keSBpZD0iYm9k
eSI+CisKKzxzZWxlY3QgaWQ9InNlbGVjdCIgdGl0bGU9InNlbGVjdCBlbGVtZW50Ij4KKzxvcHRp
b24gU0VMRUNURUQ+b3B0aW9uIDE8L29wdGlvbj4KKzxvcHRpb24+b3B0aW9uIDI8L29wdGlvbj4K
KzxvcHRpb24+b3B0aW9uIDM8L29wdGlvbj4KKzxvcHRpb24+b3B0aW9uIDQ8L29wdGlvbj4KKzwv
c2VsZWN0PgorCis8cD5UaGlzIHRlc3RzIHRoYXQgY2hhbmdpbmcgc2VsZWN0aW9uIGluIGEgbm9u
LW11bHRpcGxlIHNlbGVjdCBlbGVtZW50IGZpcmVzCitmb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50
cyBmb3IgdGhlIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50LjwvcD4KKworPHAgaWQ9Im5vdERSVCI+
VGhpcyB0ZXN0IHNob3VsZCBvbmx5IGJlIHJ1biBpbnNpZGUgb2YgRHVtcFJlbmRlclRyZWUuPC9w
PgorCis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2lu
ZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNlbGVj
dCIpLmZvY3VzKCk7CisgICAgICAgIGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmxvZ0FjY2Vzc2li
aWxpdHlFdmVudHMoKTsKKworICAgICAgICAvLyBUZXN0IHRoYXQgd2Ugc2VuZCBldmVudHMgd2l0
aCB0aGUgbGlzdCBjb2xsYXBzZWQuCisgICAgICAgIGV2ZW50U2VuZGVyLmtleURvd24oImRvd25B
cnJvdyIpOworICAgICAgICBldmVudFNlbmRlci5rZXlEb3duKCJ1cEFycm93Iik7CisKKyAgICAg
ICAgLy8gV2Ugc2hvdWxkIHRlc3Qgd2hldGhlciB3ZSBzZW5kIGV2ZW50cyB3aGVuIHVzaW5nIGFy
cm93IGtleXMgd2l0aCB0aGUKKyAgICAgICAgLy8gbWVudSBleHBhbmRlZCwgYnV0IGV2ZW50U2Vu
ZGVyIGNhbm5vdCBzZW5kIGV2ZW50cyB0byB0aGUgcG9wdXAgbWVudS4KKyAgICB9Cis8L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkMDg3OGVkLi45YTIyYzI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMTEtMDctMTggIEpvbiBIb25leWN1dHQgIDxqaG9u
ZXljdXR0QGFwcGxlLmNvbT4KKworICAgICAgICBGb2N1cyBhbmQgc2VsZWN0aW9uIGV2ZW50cyBh
cmUgbm90IGZpcmVkIHdoZW4gYSA8c2VsZWN0PidzIHNlbGVjdGlvbgorICAgICAgICBjaGFuZ2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUwNAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vOTMxOTg4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0
eS9vcHRpb24tZWxlbWVudC1zZWxlY3Rpb24tYW5kLWZvY3VzLWV2ZW50cy5odG1sCisKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRpb24p
OgorICAgICAgICBBZGQgbmV3IG5vdGlmaWNhdGlvbiB0eXBlIHRvIHRoZSBzZWN0aW9uIG9mIHVu
aGFuZGxlZCBub3RpZmljYXRpb25zLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVj
dENhY2hlLmg6CisgICAgICAgIERlY2xhcmUgYSBuZXcgbm90aWZpY2F0aW9uLCBBWE1lbnVMaXN0
SXRlbVNlbGVjdGVkLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVu
dUxpc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU1lbnVMaXN0OjpkaWRV
cGRhdGVBY3RpdmVPcHRpb24pOgorICAgICAgICBUZWxsIG91ciBjaGlsZCBwb3B1cCB0aGF0IHRo
ZSBhY3RpdmUgb3B0aW9uIGNoYW5nZWQsIGFuZCBwb3N0IGEKKyAgICAgICAgbm90aWZpY2F0aW9u
IHRoYXQgb3VyIHZhbHVlIGNoYW5nZWQuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlNZW51TGlzdC5oOgorICAgICAgICBEZWNsYXJlIGRpZFVwZGF0ZUFjdGl2ZU9wdGlv
bigpLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cDo6ZGlk
VXBkYXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgR2V0IHRoZSBjaGlsZCA8b3B0aW9uPiBlbGVt
ZW50IHRoYXQgaXMgc2VsZWN0ZWQsIGFuZCBmaXJlIGZvY3VzIGFuZAorICAgICAgICBzZWxlY3Rp
b24gZXZlbnRzIGZvciBpdC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaDoKKyAgICAgICAgRGVjbGFyZSBkaWRVcGRhdGVBY3RpdmVPcHRpb24o
KS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9u
KToKKyAgICAgICAgTWFwIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQgLT4gRVZFTlRfT0JKRUNUX1NF
TEVDVElPTi4KKworICAgICAgICAqIGRvbS9TZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNlbGVjdEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOgorICAgICAgICBQYXNzIHRo
ZSBuZXdseS1zZWxlY3RlZCBpbmRleC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNZW51TGlzdDo6UmVuZGVyTWVudUxp
c3QpOgorICAgICAgICBVcGRhdGUgdGhlIGluaXRpYWxpemF0aW9uIGxpc3QgZm9yIHRoZSByZW5h
bWVkIG1fbGFzdEFjdGl2ZUluZGV4LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6
OnNldFRleHRGcm9tT3B0aW9uKToKKyAgICAgICAgQSBuZXcgc2VsZWN0aW9uIGhhcyBiZWVuIG1h
ZGUgaW4gdGhlIHBvcHVwOyBjYWxsCisgICAgICAgIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVudUxpc3Q6OmRpZFNldFNlbGVjdGVkSW5kZXgpOgor
ICAgICAgICBDYWxsIGRpZFVwZGF0ZUFjdGl2ZU9wdGlvbigpLCBwYXNzaW5nIHRoZSBpbmRleCBv
ZiB0aGUgbmV3bHktc2VsZWN0ZWQKKyAgICAgICAgPG9wdGlvbj4uCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJNZW51TGlzdDo6ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKToKKyAgICAgICAgSWYgYWNj
ZXNzaWJpbGl0eSBpcyBkaXNhYmxlZCwgb3IgaWYgdGhlIGFjdGl2ZSBvcHRpb24gaGFzIG5vdCBj
aGFuZ2VkLAorICAgICAgICByZXR1cm4gZWFybHkuIENoZWNrIHdoZXRoZXIgdGhlIG9wdGlvbiBp
bmRleCBpcyBpbiB0aGUgcmFuZ2Ugb2YgbGlzdAorICAgICAgICBpdGVtcywgYW5kIGFzc2VydCB0
aGF0IHRoZSBpdGVtIGF0IHRoYXQgaW5kZXggaXMgYW4gPG9wdGlvbj4gZWxlbWVudC4KKyAgICAg
ICAgVGVsbCB0aGUgQWNjZXNzaWJpbGl0eU1lbnVMaXN0IGZvciB0aGlzIGVsZW1lbnQgdGhhdCB3
ZSB1cGRhdGVkIHRoZQorICAgICAgICBhY3RpdmUgb3B0aW9uLgorCisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlck1lbnVMaXN0Lmg6CisgICAgICAgIFVwZGF0ZWQgdGhlIGRlY2xhcmF0aW9uIG9m
IGRpZFNldFNlbGVjdGVkSW5kZXgoKSB0byB0YWtlIHRoZSBzZWxlY3RlZAorICAgICAgICBpbmRl
eC4gRGVjbGFyZWQgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKCkuIFJlbmFtZWQgbV9sYXN0U2VsZWN0
ZWRJbmRleCB0bworICAgICAgICBtX2xhc3RBY3RpdmVJbmRleC4KKwogMjAxMS0wNy0xOCAgUGF2
ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogZG8gbm90IHBhdXNlIG9uIGNhdWdodCBleGNlcHRpb25zIHdoaWxlIHR5cGluZyBpbiB0aGUg
Y29uc29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmpl
Y3RDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmgK
aW5kZXggOTVjYzdmMy4uMjc3ODlmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWE9iamVjdENhY2hlLmgKQEAgLTEyOSw2ICsxMjksNyBAQCBwdWJsaWM6CiAgICAgICAgIEFY
VmFsdWVDaGFuZ2VkLAogICAgICAgICBBWFNjcm9sbGVkVG9BbmNob3IsCiAgICAgICAgIEFYTGl2
ZVJlZ2lvbkNoYW5nZWQsCisgICAgICAgIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQsCiAgICAgICAg
IEFYTWVudUxpc3RWYWx1ZUNoYW5nZWQsCiAgICAgICAgIEFYUm93Q291bnRDaGFuZ2VkLAogICAg
ICAgICBBWFJvd0NvbGxhcHNlZCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmNwcAppbmRleCBlMGMwM2MzLi43NjIxYTIyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
TWVudUxpc3QuY3BwCkBAIC04Miw0ICs4MiwyMiBAQCBib29sIEFjY2Vzc2liaWxpdHlNZW51TGlz
dDo6aXNDb2xsYXBzZWQoKSBjb25zdAogICAgIHJldHVybiAhc3RhdGljX2Nhc3Q8UmVuZGVyTWVu
dUxpc3QqPihtX3JlbmRlcmVyKS0+cG9wdXBJc1Zpc2libGUoKTsKIH0KIAordm9pZCBBY2Nlc3Np
YmlsaXR5TWVudUxpc3Q6OmRpZFVwZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpCit7
CisgICAgY29uc3QgQWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiBjaGlsZE9iamVjdHMgPSBj
aGlsZHJlbigpOworICAgIGlmIChjaGlsZE9iamVjdHMuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoY2hpbGRPYmplY3RzLnNpemUoKSA9PSAxKTsKKyAgICBBU1NFUlQo
Y2hpbGRPYmplY3RzWzBdLT5pc01lbnVMaXN0UG9wdXAoKSk7CisKKyAgICBSZWZQdHI8RG9jdW1l
bnQ+IGRvY3VtZW50ID0gbV9yZW5kZXJlci0+ZG9jdW1lbnQoKTsKKyAgICBBWE9iamVjdENhY2hl
KiBjYWNoZSA9IGRvY3VtZW50LT5heE9iamVjdENhY2hlKCk7CisKKyAgICBpZiAoQWNjZXNzaWJp
bGl0eU1lbnVMaXN0UG9wdXAqIHBvcHVwID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVM
aXN0UG9wdXAqPihjaGlsZE9iamVjdHNbMF0uZ2V0KCkpKQorICAgICAgICBwb3B1cC0+ZGlkVXBk
YXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKKworICAgIGNhY2hlLT5wb3N0Tm90aWZpY2F0
aW9uKHRoaXMsIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0VmFsdWVD
aGFuZ2VkLCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU1lbnVMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlNZW51TGlzdC5oCmluZGV4IGNkYjNhYzIuLjY4ZjQyNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3QuaApAQCAtNDIsNiAr
NDIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzQ29sbGFwc2VkKCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIHByZXNzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGRpZFVwZGF0ZUFjdGl2
ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpOworCiBwcml2YXRlOgogICAgIEFjY2Vzc2liaWxpdHlN
ZW51TGlzdChSZW5kZXJNZW51TGlzdCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCmluZGV4IDk5
NTAzMTMuLjdjZjg5MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXAuY3BwCkBAIC0xMjMsNCArMTIzLDE3
IEBAIHZvaWQgQWNjZXNzaWJpbGl0eU1lbnVMaXN0UG9wdXA6OnNldE1lbnVMaXN0KEFjY2Vzc2li
aWxpdHlNZW51TGlzdCogbWVudUxpc3QpCiAgICAgbV9tZW51TGlzdCA9IG1lbnVMaXN0OwogfQog
Cit2b2lkIEFjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwOjpkaWRVcGRhdGVBY3RpdmVPcHRpb24o
aW50IG9wdGlvbkluZGV4KQoreworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbklu
ZGV4ID49IDApOworICAgIEFTU0VSVF9BUkcob3B0aW9uSW5kZXgsIG9wdGlvbkluZGV4IDwgc3Rh
dGljX2Nhc3Q8aW50PihtX2NoaWxkcmVuLnNpemUoKSkpOworCisgICAgUmVmUHRyPERvY3VtZW50
PiBkb2N1bWVudCA9IG1fbWVudUxpc3QtPnJlbmRlcmVyKCktPmRvY3VtZW50KCk7CisgICAgQVhP
YmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC0+YXhPYmplY3RDYWNoZSgpOworICAgIFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjaGlsZCA9IG1fY2hpbGRyZW5bb3B0aW9uSW5kZXhdLmdl
dCgpOworCisgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0KCksIGRvY3VtZW50
LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWEZvY3VzZWRVSUVsZW1lbnRDaGFuZ2VkLCB0cnVlLCBQ
b3N0U3luY2hyb25vdXNseSk7CisgICAgY2FjaGUtPnBvc3ROb3RpZmljYXRpb24oY2hpbGQuZ2V0
KCksIGRvY3VtZW50LmdldCgpLCBBWE9iamVjdENhY2hlOjpBWE1lbnVMaXN0SXRlbVNlbGVjdGVk
LCB0cnVlLCBQb3N0U3luY2hyb25vdXNseSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU1l
bnVMaXN0UG9wdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU1lbnVMaXN0UG9wdXAuaAppbmRleCA4OGZiZjdjLi4zODBjY2QwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlNZW51TGlzdFBvcHVwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1
cC5oCkBAIC0zMyw2ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFjY2Vzc2li
aWxpdHlNZW51TGlzdDsKIGNsYXNzIEFjY2Vzc2liaWxpdHlNZW51TGlzdE9wdGlvbjsKIGNsYXNz
IEhUTUxFbGVtZW50OworY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQ7CiAKIGNsYXNzIEFjY2Vzc2li
aWxpdHlNZW51TGlzdFBvcHVwIDogcHVibGljIEFjY2Vzc2liaWxpdHlPYmplY3QgewogcHVibGlj
OgpAQCAtNDMsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRW5hYmxlZCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc09mZlNjcmVlbigpIGNvbnN0OwogCisgICAgdm9p
ZCBkaWRVcGRhdGVBY3RpdmVPcHRpb24oaW50IG9wdGlvbkluZGV4KTsKKwogcHJpdmF0ZToKICAg
ICBBY2Nlc3NpYmlsaXR5TWVudUxpc3RQb3B1cCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1bS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2Nocm9taXVtL0FYT2JqZWN0Q2FjaGVDaHJvbWl1
bS5jcHAKaW5kZXggMGZlZDQzNy4uM2JjZDY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9jaHJvbWl1bS9BWE9iamVjdENhY2hlQ2hyb21pdW0uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvY2hyb21pdW0vQVhPYmplY3RDYWNoZUNocm9taXVt
LmNwcApAQCAtODcsNiArODcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RQbGF0Zm9ybU5v
dGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmosIEFYTm90aWZpYwogICAgIGNhc2Ug
QVhMYXlvdXRDb21wbGV0ZToKICAgICBjYXNlIEFYTGl2ZVJlZ2lvbkNoYW5nZWQ6CiAgICAgY2Fz
ZSBBWExvYWRDb21wbGV0ZToKKyAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6CiAgICAg
Y2FzZSBBWE1lbnVMaXN0VmFsdWVDaGFuZ2VkOgogICAgIGNhc2UgQVhSb3dDb2xsYXBzZWQ6CiAg
ICAgY2FzZSBBWFJvd0NvdW50Q2hhbmdlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd2luL0FYT2JqZWN0Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS93aW4vQVhPYmplY3RDYWNoZVdpbi5jcHAKaW5kZXggYjIwYjUxYS4uNGUwMmMy
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmplY3RD
YWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93aW4vQVhPYmpl
Y3RDYWNoZVdpbi5jcHAKQEAgLTg4LDYgKzg4LDEwIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9z
dFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iaiwgQVhOb3RpZmlj
CiAgICAgICAgICAgICBtc2FhRXZlbnQgPSBFVkVOVF9PQkpFQ1RfVkFMVUVDSEFOR0U7CiAgICAg
ICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNlIEFYTWVudUxpc3RJdGVtU2VsZWN0ZWQ6Cisg
ICAgICAgICAgICBtc2FhRXZlbnQgPSBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OOworICAgICAgICAg
ICAgYnJlYWs7CisKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggMjlhOWZiMi4uNjhhNDg0YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RFbGVtZW50LmNwcApAQCAtMzkwLDcgKzM5MCw3IEBAIHZv
aWQgU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleChTZWxlY3RFbGVtZW50RGF0YSYgZGF0
YSwgRWxlbWVudCogZWxlbWVudCwKICAgICAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCk7CiAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAg
aWYgKGRhdGEudXNlc01lbnVMaXN0KCkpCi0gICAgICAgICAgICAgICAgdG9SZW5kZXJNZW51TGlz
dChyZW5kZXJlciktPmRpZFNldFNlbGVjdGVkSW5kZXgoKTsKKyAgICAgICAgICAgICAgICB0b1Jl
bmRlck1lbnVMaXN0KHJlbmRlcmVyKS0+ZGlkU2V0U2VsZWN0ZWRJbmRleChsaXN0SW5kZXgpOwog
ICAgICAgICAgICAgZWxzZSBpZiAocmVuZGVyZXItPmlzTGlzdEJveCgpKQogICAgICAgICAgICAg
ICAgIHRvUmVuZGVyTGlzdEJveChyZW5kZXJlciktPnNlbGVjdGlvbkNoYW5nZWQoKTsKICAgICAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5kZXgg
Y2E5ZDdlMzMuLmI3YTMyYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlJlbmRlck1lbnVMaXN0Lmgi
CiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eU1l
bnVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTRm9udFNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiQ1NTU3R5
bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgpAQCAtNTcsNyArNTgsNyBAQCBSZW5k
ZXJNZW51TGlzdDo6UmVuZGVyTWVudUxpc3QoRWxlbWVudCogZWxlbWVudCkKICAgICAsIG1faW5u
ZXJCbG9jaygwKQogICAgICwgbV9vcHRpb25zQ2hhbmdlZCh0cnVlKQogICAgICwgbV9vcHRpb25z
V2lkdGgoMCkKLSAgICAsIG1fbGFzdFNlbGVjdGVkSW5kZXgoLTEpCisgICAgLCBtX2xhc3RBY3Rp
dmVJbmRleCgtMSkKICAgICAsIG1fcG9wdXBJc1Zpc2libGUoZmFsc2UpCiB7CiB9CkBAIC0yMDQs
NiArMjA1LDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6c2V0VGV4dEZyb21PcHRpb24oaW50IG9w
dGlvbkluZGV4KQogICAgIH0KIAogICAgIHNldFRleHQodGV4dC5zdHJpcFdoaXRlU3BhY2UoKSk7
CisgICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogdm9pZCBSZW5k
ZXJNZW51TGlzdDo6c2V0VGV4dChjb25zdCBTdHJpbmcmIHMpCkBAIC0zMzgsMTYgKzM0MCwzMCBA
QCBib29sIFJlbmRlck1lbnVMaXN0OjptdWx0aXBsZSgpCiB9CiAjZW5kaWYKIAotdm9pZCBSZW5k
ZXJNZW51TGlzdDo6ZGlkU2V0U2VsZWN0ZWRJbmRleCgpCit2b2lkIFJlbmRlck1lbnVMaXN0Ojpk
aWRTZXRTZWxlY3RlZEluZGV4KGludCBsaXN0SW5kZXgpCiB7Ci0gICAgaW50IGluZGV4ID0gc2Vs
ZWN0ZWRJbmRleCgpOwotICAgIGlmIChtX2xhc3RTZWxlY3RlZEluZGV4ID09IGluZGV4KQorICAg
IFNlbGVjdEVsZW1lbnQqIHNlbGVjdCA9IHRvU2VsZWN0RWxlbWVudChzdGF0aWNfY2FzdDxFbGVt
ZW50Kj4obm9kZSgpKSk7CisgICAgZGlkVXBkYXRlQWN0aXZlT3B0aW9uKHNlbGVjdC0+bGlzdFRv
T3B0aW9uSW5kZXgobGlzdEluZGV4KSk7Cit9CisKK3ZvaWQgUmVuZGVyTWVudUxpc3Q6OmRpZFVw
ZGF0ZUFjdGl2ZU9wdGlvbihpbnQgb3B0aW9uSW5kZXgpCit7CisgICAgaWYgKCFBWE9iamVjdENh
Y2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
bV9sYXN0QWN0aXZlSW5kZXggPT0gb3B0aW9uSW5kZXgpCisgICAgICAgIHJldHVybjsKKyAgICBt
X2xhc3RBY3RpdmVJbmRleCA9IG9wdGlvbkluZGV4OworCisgICAgU2VsZWN0RWxlbWVudCogc2Vs
ZWN0ID0gdG9TZWxlY3RFbGVtZW50KHN0YXRpY19jYXN0PEVsZW1lbnQqPihub2RlKCkpKTsKKyAg
ICBpbnQgbGlzdEluZGV4ID0gc2VsZWN0LT5vcHRpb25Ub0xpc3RJbmRleChvcHRpb25JbmRleCk7
CisgICAgaWYgKGxpc3RJbmRleCA8IDAgfHwgbGlzdEluZGV4ID49IHN0YXRpY19jYXN0PGludD4o
c2VsZWN0LT5saXN0SXRlbXMoKS5zaXplKCkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2xh
c3RTZWxlY3RlZEluZGV4ID0gaW5kZXg7CisgICAgQVNTRVJUKHRvT3B0aW9uRWxlbWVudChzZWxl
Y3QtPmxpc3RJdGVtcygpW2xpc3RJbmRleF0pKTsKIAotICAgIGlmIChBWE9iamVjdENhY2hlOjph
Y2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICBkb2N1bWVudCgpLT5heE9iamVjdENhY2hl
KCktPnBvc3ROb3RpZmljYXRpb24odGhpcywgQVhPYmplY3RDYWNoZTo6QVhNZW51TGlzdFZhbHVl
Q2hhbmdlZCwgdHJ1ZSwgUG9zdFN5bmNocm9ub3VzbHkpOworICAgIGlmIChBY2Nlc3NpYmlsaXR5
TWVudUxpc3QqIG1lbnVMaXN0ID0gc3RhdGljX2Nhc3Q8QWNjZXNzaWJpbGl0eU1lbnVMaXN0Kj4o
ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgpLT5nZXQodGhpcykpKQorICAgICAgICBtZW51TGlz
dC0+ZGlkVXBkYXRlQWN0aXZlT3B0aW9uKG9wdGlvbkluZGV4KTsKIH0KIAogU3RyaW5nIFJlbmRl
ck1lbnVMaXN0OjppdGVtVGV4dCh1bnNpZ25lZCBsaXN0SW5kZXgpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCmluZGV4IGUyOTEyM2EuLjhmM2JiZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5oCkBAIC01NSw3ICs1NSw3
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0T3B0aW9uc0NoYW5nZWQoYm9vbCBjaGFuZ2VkKSB7
IG1fb3B0aW9uc0NoYW5nZWQgPSBjaGFuZ2VkOyB9CiAKLSAgICB2b2lkIGRpZFNldFNlbGVjdGVk
SW5kZXgoKTsKKyAgICB2b2lkIGRpZFNldFNlbGVjdGVkSW5kZXgoaW50IGxpc3RJbmRleCk7CiAK
ICAgICBTdHJpbmcgdGV4dCgpIGNvbnN0OwogCkBAIC0xMjQsMTMgKzEyNCwxNSBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0VGV4dEZyb21PcHRpb24oaW50IG9wdGlvbkluZGV4KTsKICAgICB2b2lk
IHVwZGF0ZU9wdGlvbnNXaWR0aCgpOwogCisgICAgdm9pZCBkaWRVcGRhdGVBY3RpdmVPcHRpb24o
aW50IG9wdGlvbkluZGV4KTsKKwogICAgIFJlbmRlclRleHQqIG1fYnV0dG9uVGV4dDsKICAgICBS
ZW5kZXJCbG9jayogbV9pbm5lckJsb2NrOwogCiAgICAgYm9vbCBtX29wdGlvbnNDaGFuZ2VkOwog
ICAgIGludCBtX29wdGlvbnNXaWR0aDsKIAotICAgIGludCBtX2xhc3RTZWxlY3RlZEluZGV4Owor
ICAgIGludCBtX2xhc3RBY3RpdmVJbmRleDsKIAogICAgIFJlZlB0cjxSZW5kZXJTdHlsZT4gbV9v
cHRpb25TdHlsZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGRhMTBhZWUuLmY2NTM1NTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMS0wNy0xMyAgSm9uIEhv
bmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgorCisgICAgICAgIEZvY3VzIGFuZCBzZWxl
Y3Rpb24gZXZlbnRzIGFyZSBub3QgZmlyZWQgd2hlbiBhIDxzZWxlY3Q+J3Mgc2VsZWN0aW9uCisg
ICAgICAgIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NTA0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85MzE5ODgxPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgQWRkZWQgbV9ub3RpZmljYXRpb25z
RXZlbnRIb29rIGZvciBhZGROb3RpZmljYXRpb25MaXN0ZW5lcigpLgorICAgICAgICBtX2FsbEV2
ZW50c0hvb2sgd2lsbCBub3cgYmUgdXNlZCBmb3Igc2V0TG9nQWNjZXNzaWJpbGl0eUV2ZW50cygp
LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
V2luLmNwcDoKKyAgICAgICAgKEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpBY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcik6CisgICAgICAgIEluaXRpYWxpemUgbV9ub3RpZmljYXRpb25zRXZlbnRIb29r
LgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcik6CisgICAgICAgIFR1cm4gb2ZmIGxvZ2dpbmcgb2YgYWxsIGFjY2Vzc2liaWxpdHkgZXZl
bnRzLiBJZgorICAgICAgICBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2sgaXMgbm9uLW51bGwsIHVu
aG9vayBpdC4KKyAgICAgICAgKGxvZ0V2ZW50UHJvYyk6CisgICAgICAgIEFkZCBoYW5kbGluZyBv
ZiBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OLgorICAgICAgICAoQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMpOgorICAgICAgICBJZiB0aGUgc3RhdGUgb2Yg
bG9nZ2luZyBpcyBub3QgY2hhbmdpbmcsIHJldHVybiBlYXJseS4gSWYgd2UncmUgdHVybmluZwor
ICAgICAgICBvZmYgbG9nZ2luZywgdW5ob29rIG1fYWxsRXZlbnRzSG9vaywgYW5kIHplcm8gaXQg
b3V0LiBPdGhlcndpc2UsIGFkZCBhCisgICAgICAgIGhvb2sgZm9yIGFsbCBldmVudHMuCisgICAg
ICAgIChBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlzdGVuZXIpOgor
ICAgICAgICBVc2UgbV9ub3RpZmljYXRpb25zRXZlbnRIb29rIHJhdGhlciB0aGFuIG1fYWxsRXZl
bnRzSG9vay4KKwogMjAxMS0wNy0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkxMTMyIGFuZCBy
OTExMzUuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9BY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIu
aAppbmRleCA0NjJjNDg0Li4yNWEzYTAyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0Fj
Y2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICBI
V0lORVZFTlRIT09LIG1fc2Nyb2xsaW5nU3RhcnRFdmVudEhvb2s7CiAKICAgICBIV0lORVZFTlRI
T09LIG1fYWxsRXZlbnRzSG9vazsKKyAgICBIV0lORVZFTlRIT09LIG1fbm90aWZpY2F0aW9uc0V2
ZW50SG9vazsKICAgICBIYXNoTWFwPFBsYXRmb3JtVUlFbGVtZW50LCBKU09iamVjdFJlZj4gbV9u
b3RpZmljYXRpb25MaXN0ZW5lcnM7CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV2luLmNwcAppbmRleCA2ZTRl
ZTQ2Li44ODQ1NDIzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcldpbi5jcHAKQEAgLTQ0LDE2ICs0NCwxOCBAQCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIoKQogICAgICwgbV9zY3Jv
bGxpbmdTdGFydEV2ZW50SG9vaygwKQogICAgICwgbV92YWx1ZUNoYW5nZUV2ZW50SG9vaygwKQog
ICAgICwgbV9hbGxFdmVudHNIb29rKDApCisgICAgLCBtX25vdGlmaWNhdGlvbnNFdmVudEhvb2so
MCkKIHsKIH0KIAogQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6On5BY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcigpCiB7CiAgICAgc2V0TG9nRm9jdXNFdmVudHMoZmFsc2UpOworICAgIHNldExvZ0FjY2Vz
c2liaWxpdHlFdmVudHMoZmFsc2UpOwogICAgIHNldExvZ1ZhbHVlQ2hhbmdlRXZlbnRzKGZhbHNl
KTsKIAotICAgIGlmIChtX2FsbEV2ZW50c0hvb2spCi0gICAgICAgIFVuaG9va1dpbkV2ZW50KG1f
YWxsRXZlbnRzSG9vayk7CisgICAgaWYgKG1fbm90aWZpY2F0aW9uc0V2ZW50SG9vaykKKyAgICAg
ICAgVW5ob29rV2luRXZlbnQobV9ub3RpZmljYXRpb25zRXZlbnRIb29rKTsKIAogICAgIGZvciAo
SGFzaE1hcDxQbGF0Zm9ybVVJRWxlbWVudCwgSlNPYmplY3RSZWY+OjppdGVyYXRvciBpdCA9IG1f
bm90aWZpY2F0aW9uTGlzdGVuZXJzLmJlZ2luKCk7IGl0ICE9IG1fbm90aWZpY2F0aW9uTGlzdGVu
ZXJzLmVuZCgpOyArK2l0KQogICAgICAgICBKU1ZhbHVlVW5wcm90ZWN0KGZyYW1lLT5nbG9iYWxD
b250ZXh0KCksIGl0LT5zZWNvbmQpOwpAQCAtMTMwLDYgKzEzMiwxMCBAQCBzdGF0aWMgdm9pZCBD
QUxMQkFDSyBsb2dFdmVudFByb2MoSFdJTkVWRU5USE9PSywgRFdPUkQgZXZlbnQsIEhXTkQgaHdu
ZCwgTE9ORyBpZAogICAgICAgICAgICAgcHJpbnRmKCJSZWNlaXZlZCBmb2N1cyBldmVudCBmb3Ig
b2JqZWN0ICclUycuXG4iLCBuYW1lLmNfc3RyKCkpOwogICAgICAgICAgICAgYnJlYWs7CiAKKyAg
ICAgICAgY2FzZSBFVkVOVF9PQkpFQ1RfU0VMRUNUSU9OOgorICAgICAgICAgICAgcHJpbnRmKCJS
ZWNlaXZlZCBzZWxlY3Rpb24gZXZlbnQgZm9yIG9iamVjdCAnJVMnLlxuIiwgbmFtZS5jX3N0cigp
KTsKKyAgICAgICAgICAgIGJyZWFrOworCiAgICAgICAgIGNhc2UgRVZFTlRfT0JKRUNUX1ZBTFVF
Q0hBTkdFOiB7CiAgICAgICAgICAgICBCU1RSIHZhbHVlQlNUUjsKICAgICAgICAgICAgIGhyID0g
cGFyZW50T2JqZWN0LT5nZXRfYWNjVmFsdWUodkNoaWxkLCAmdmFsdWVCU1RSKTsKQEAgLTIxMyw4
ICsyMTksMjQgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6c2V0TG9nU2Nyb2xsaW5n
U3RhcnRFdmVudHMoYm9vbCBsb2dTY3JvbGxpbmdTdGFydEUKICAgICBBU1NFUlQobV9zY3JvbGxp
bmdTdGFydEV2ZW50SG9vayk7CiB9CiAKLXZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnNl
dExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoYm9vbCkKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OnNldExvZ0FjY2Vzc2liaWxpdHlFdmVudHMoYm9vbCBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRz
KQogeworICAgIGlmICghIW1fYWxsRXZlbnRzSG9vayA9PSBsb2dBY2Nlc3NpYmlsaXR5RXZlbnRz
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWxvZ0FjY2Vzc2liaWxpdHlFdmVudHMpIHsK
KyAgICAgICAgVW5ob29rV2luRXZlbnQobV9hbGxFdmVudHNIb29rKTsKKyAgICAgICAgbV9hbGxF
dmVudHNIb29rID0gMDsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIEVuc3VyZSB0
aGF0IGFjY2Vzc2liaWxpdHkgaXMgaW5pdGlhbGl6ZWQgZm9yIHRoZSBXZWJWaWV3IGJ5IHF1ZXJ5
aW5nIGZvcgorICAgIC8vIHRoZSByb290IGFjY2Vzc2libGUgb2JqZWN0LgorICAgIHJvb3RFbGVt
ZW50KCk7CisKKyAgICBtX2FsbEV2ZW50c0hvb2sgPSBTZXRXaW5FdmVudEhvb2soRVZFTlRfTUlO
LCBFVkVOVF9NQVgsIEdldE1vZHVsZUhhbmRsZSgwKSwgbG9nRXZlbnRQcm9jLCBHZXRDdXJyZW50
UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVYVCk7CisKKyAgICBBU1NFUlQobV9hbGxF
dmVudHNIb29rKTsKIH0KIAogc3RhdGljIHN0cmluZyBzdHJpbmdFdmVudChEV09SRCBldmVudCkK
QEAgLTI5MSw4ICszMTMsOCBAQCB2b2lkIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpub3RpZmlj
YXRpb25SZWNlaXZlZChQbGF0Zm9ybVVJRWxlbWVudCBlbGVtZW50LCBjbwogCiB2b2lkIEFjY2Vz
c2liaWxpdHlDb250cm9sbGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihQbGF0Zm9ybVVJRWxl
bWVudCBlbGVtZW50LCBKU09iamVjdFJlZiBmdW5jdGlvbkNhbGxiYWNrKQogewotICAgIGlmICgh
bV9hbGxFdmVudHNIb29rKQotICAgICAgICBtX2FsbEV2ZW50c0hvb2sgPSBTZXRXaW5FdmVudEhv
b2soRVZFTlRfTUlOLCBFVkVOVF9NQVgsIEdldE1vZHVsZUhhbmRsZSgwKSwgbm90aWZpY2F0aW9u
TGlzdGVuZXJQcm9jLCBHZXRDdXJyZW50UHJvY2Vzc0lkKCksIDAsIFdJTkVWRU5UX0lOQ09OVEVY
VCk7CisgICAgaWYgKCFtX25vdGlmaWNhdGlvbnNFdmVudEhvb2spCisgICAgICAgIG1fbm90aWZp
Y2F0aW9uc0V2ZW50SG9vayA9IFNldFdpbkV2ZW50SG9vayhFVkVOVF9NSU4sIEVWRU5UX01BWCwg
R2V0TW9kdWxlSGFuZGxlKDApLCBub3RpZmljYXRpb25MaXN0ZW5lclByb2MsIEdldEN1cnJlbnRQ
cm9jZXNzSWQoKSwgMCwgV0lORVZFTlRfSU5DT05URVhUKTsKIAogICAgIEpTVmFsdWVQcm90ZWN0
KGZyYW1lLT5nbG9iYWxDb250ZXh0KCksIGZ1bmN0aW9uQ2FsbGJhY2spOwogICAgIG1fbm90aWZp
Y2F0aW9uTGlzdGVuZXJzLmFkZChlbGVtZW50LCBmdW5jdGlvbkNhbGxiYWNrKTsKLS0gCjEuNy40
Cgo=
</data>
<flag name="review"
          id="95978"
          type_id="1"
          status="+"
          setter="alice.barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>