<?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>112051</bug_id>
          
          <creation_ts>2013-03-11 12:45:55 -0700</creation_ts>
          <short_desc>Crash in DumpRenderTree at com.apple.WebCore: WebCore::CaptionUserPreferences::captionPreferencesChanged + 185</short_desc>
          <delta_ts>2013-03-14 10:29:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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, MakingBotsRed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jer.noble</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>852599</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-11 12:45:55 -0700</bug_when>
    <thetext>Crash in DumpRenderTree at com.apple.WebCore: WebCore::CaptionUserPreferences::captionPreferencesChanged + 185</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852600</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-11 12:46:26 -0700</bug_when>
    <thetext>Thread 0 Crashed ↩:: Dispatch queue: com.apple.main-thread
0   com.apple.WebCore             	0x000000010b4521a9 WebCore::CaptionUserPreferences::captionPreferencesChanged() + 185 (CaptionUserPreferences.cpp:62)
1   com.apple.WebCore             	0x000000010b4520df WebCore::CaptionUserPreferences::setUserPrefersCaptions(bool) + 63 (CaptionUserPreferences.cpp:54)
2   com.apple.WebCore             	0x000000010a40dfac WebCore::HTMLMediaElement::toggleTrackAtIndex(int, bool) + 252 (HTMLMediaElement.cpp:3128)
3   com.apple.WebCore             	0x000000010acbc59e WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler(WebCore::Event*) + 238 (MediaControlElements.cpp:765)
4   com.apple.WebCore             	0x000000010a12b3ca WebCore::EventDispatcher::dispatchEventPostProcess(WTF::PassRefPtr&lt;WebCore::Event&gt;, void*) + 586 (EventDispatcher.cpp:230)
5   com.apple.WebCore             	0x000000010a12a7e8 WebCore::EventDispatcher::dispatchEvent(WTF::PassRefPtr&lt;WebCore::Event&gt;) + 1032 (EventDispatcher.cpp:135)
6   com.apple.WebCore             	0x000000010ad23c4d WebCore::MouseEventDispatchMediator::dispatchEvent(WebCore::EventDispatcher*) const + 685 (MouseEvent.cpp:280)
7   com.apple.WebCore             	0x000000010a129c89 WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr&lt;WebCore::EventDispatchMediator&gt;) + 169 (EventDispatcher.cpp:55)
8   com.apple.WebCore             	0x000000010ad59440 WebCore::Node::dispatchMouseEvent(WebCore::PlatformMouseEvent const&amp;, WTF::AtomicString const&amp;, int, WebCore::Node*) + 176 (Node.cpp:2371)
9   com.apple.WebCore             	0x000000010a136ad4 WebCore::EventHandler::dispatchMouseEvent(WTF::AtomicString const&amp;, WebCore::Node*, bool, int, WebCore::PlatformMouseEvent const&amp;, bool) + 212 (EventHandler.cpp:2235)
10  com.apple.WebCore             	0x000000010a1390d5 WebCore::EventHandler::handleMouseReleaseEvent(WebCore::PlatformMouseEvent const&amp;) + 1381 (EventHandler.cpp:1848)
11  com.apple.WebCore             	0x000000010a147be4 WebCore::EventHandler::mouseUp(NSEvent*) + 340 (EventHandlerMac.mm:514)
12  com.apple.WebKit              	0x00000001094972e8 -[WebHTMLView mouseUp:] + 344 (WebHTMLView.mm:3760)
13  DumpRenderTree                	0x00000001080472a9 -[EventSendingController mouseUp:withModifiers:] + 1065 (EventSendingController.mm:426)
14  com.apple.CoreFoundation      	0x00007fff8e07663c __invoking___ + 140
15  com.apple.CoreFoundation      	0x00007fff8e0764d7 -[NSInvocation invoke] + 263
16  DumpRenderTree                	0x0000000108048353 +[EventSendingController replaySavedEvents] + 195 (EventSendingController.mm:579)
17  DumpRenderTree                	0x0000000108046fee -[EventSendingController mouseUp:withModifiers:] + 366 (EventSendingController.mm:404)
18  com.apple.CoreFoundation      	0x00007fff8e07663c __invoking___ + 140
19  com.apple.CoreFoundation      	0x00007fff8e0764d7 -[NSInvocation invoke] + 263
20  com.apple.WebCore             	0x000000010ad8bf93 JSC::Bindings::ObjcInstance::invokeObjcMethod(JSC::ExecState*, JSC::Bindings::ObjcMethod*) + 1923 (objc_instance.mm:320)
21  com.apple.WebCore             	0x000000010ad8b7f0 JSC::Bindings::ObjcInstance::invokeMethod(JSC::ExecState*, JSC::RuntimeMethod*) + 304 (objc_instance.mm:232)
22  com.apple.WebCore             	0x000000010b1886d2 JSC::callRuntimeMethod(JSC::ExecState*) + 530 (runtime_method.cpp:115)
23  com.apple.JavaScriptCore      	0x000000010853d7b9 JSC::LLInt::handleHostCall(JSC::ExecState*, JSC::Instruction*, JSC::JSValue, JSC::CodeSpecializationKind) + 329 (LLIntSlowPaths.cpp:1364)
24  com.apple.JavaScriptCore      	0x000000010853e6dc JSC::LLInt::setUpCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 92 (LLIntSlowPaths.cpp:1408)
25  com.apple.JavaScriptCore      	0x000000010853e666 JSC::LLInt::genericCall(JSC::ExecState*, JSC::Instruction*, JSC::CodeSpecializationKind) + 246 (LLIntSlowPaths.cpp:1464)
26  com.apple.JavaScriptCore      	0x000000010853b75c llint_slow_path_call + 60 (LLIntSlowPaths.cpp:1470)
27  com.apple.JavaScriptCore      	0x0000000108544352 llint_op_call + 184
28  com.apple.JavaScriptCore      	0x0000000108421544 JSC::JITCode::execute(JSC::JSStack*, JSC::ExecState*, JSC::JSGlobalData*) + 84 (JITCode.h:135)
29  com.apple.JavaScriptCore      	0x000000010841e7bf JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 1519 (Interpreter.cpp:1055)
30  com.apple.JavaScriptCore      	0x00000001082310c2 JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 306 (CallData.cpp:40)
31  com.apple.WebCore             	0x000000010a6b0582 WebCore::JSMainThreadExecState::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;) + 146 (JSMainThreadExecState.h:56)
32  com.apple.WebCore             	0x000000010b194f7f WebCore::ScheduledAction::executeFunctionInContext(JSC::JSGlobalObject*, JSC::JSValue, WebCore::ScriptExecutionContext*) + 559 (ScheduledAction.cpp:112)
33  com.apple.WebCore             	0x000000010b194b43 WebCore::ScheduledAction::execute(WebCore::Document*) + 323 (ScheduledAction.cpp:134)
34  com.apple.WebCore             	0x000000010b194984 WebCore::ScheduledAction::execute(WebCore::ScriptExecutionContext*) + 116 (ScheduledAction.cpp:80)
35  com.apple.WebCore             	0x000000010a0947aa WebCore::DOMTimer::fired() + 538 (DOMTimer.cpp:141)
36  com.apple.WebCore             	0x000000010b52bade WebCore::ThreadTimers::sharedTimerFiredInternal() + 302 (ThreadTimers.cpp:132)
37  com.apple.WebCore             	0x000000010b52b7f9 WebCore::ThreadTimers::sharedTimerFired() + 25 (ThreadTimers.cpp:106)
38  com.apple.WebCore             	0x000000010b25bbf3 WebCore::timerFired(__CFRunLoopTimer*, void*) + 67 (SharedTimerMac.mm:167)
39  com.apple.CoreFoundation      	0x00007fff8e03fda4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
40  com.apple.CoreFoundation      	0x00007fff8e03f8bd __CFRunLoopDoTimer + 557
41  com.apple.CoreFoundation      	0x00007fff8e025099 __CFRunLoopRun + 1513
42  com.apple.CoreFoundation      	0x00007fff8e0246b2 CFRunLoopRunSpecific + 290
43  com.apple.Foundation          	0x00007fff8904289e -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 268
44  DumpRenderTree                	0x000000010803ab29 runTest(std::__1::basic_string&lt;char, std::__1::char_traits&lt;char&gt;, std::__1::allocator&lt;char&gt; &gt; const&amp;) + 5017 (DumpRenderTree.mm:1374)
45  DumpRenderTree                	0x000000010803971a runTestingServerLoop() + 282 (DumpRenderTree.mm:832)
46  DumpRenderTree                	0x0000000108039115 dumpRenderTree(int, char const**) + 405 (DumpRenderTree.mm:887)
47  DumpRenderTree                	0x000000010803b319 main + 105 (DumpRenderTree.mm:925)
48  libdyld.dylib                 	0x00007fff8b77e7e1 start + 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852601</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-11 12:46:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/13367999&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853953</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2013-03-12 18:07:26 -0700</bug_when>
    <thetext>CRASHING TEST: media/video-controls-captions-trackmenu.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854428</commentid>
    <comment_count>4</comment_count>
      <attachid>192952</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-13 11:27:58 -0700</bug_when>
    <thetext>Created attachment 192952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855286</commentid>
    <comment_count>5</comment_count>
      <attachid>192952</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2013-03-14 10:16:18 -0700</bug_when>
    <thetext>Comment on attachment 192952
Patch

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

&gt; Source/WebCore/page/CaptionUserPreferences.cpp:33
&gt; +#include &quot;Page.h&quot;
&gt; +#include &quot;PageCache.h&quot;
&gt; +#include &quot;PageGroup.h&quot;

Do we really need all three of these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855292</commentid>
    <comment_count>6</comment_count>
      <attachid>192952</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-14 10:24:17 -0700</bug_when>
    <thetext>Comment on attachment 192952
Patch

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

&gt;&gt; Source/WebCore/page/CaptionUserPreferences.cpp:33
&gt;&gt; +#include &quot;PageGroup.h&quot;
&gt; 
&gt; Do we really need all three of these?

Whoops, no, just PageCache.h.  (CaptionUserPreferences::captionPreferencesChanged() used to do all the work in PageGroup::captionPreferencesChanged(), which is why they were there in the first place.)

Removed the unnecessary #includes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855298</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2013-03-14 10:29:33 -0700</bug_when>
    <thetext>Committed r145826: &lt;http://trac.webkit.org/changeset/145826&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192952</attachid>
            <date>2013-03-13 11:27:58 -0700</date>
            <delta_ts>2013-03-14 10:24:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-112051-20130313112356.patch</filename>
            <type>text/plain</type>
            <size>21256</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJiYzUzZThiYWFlOTVi
MTk3NTQ0NGMyMjM3Zjg1YzI4ZDBjZjUzNC4uN2Y5N2EwNGE1YjU2NjMzODYzNjkyOGEzNWYwYjM3
YjE5MTAxYTM3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDEzLTAzLTExICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIENyYXNoIGluIER1bXBSZW5k
ZXJUcmVlIGF0IGNvbS5hcHBsZS5XZWJDb3JlOiBXZWJDb3JlOjpDYXB0aW9uVXNlclByZWZlcmVu
Y2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkICsgMTg1CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTIwNTEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM7IGZpeGVzIGEgY3Jhc2gg
ZHVyaW5nIG1lZGlhL3ZpZGVvLWNvbnRyb2xzLWNhcHRpb25zLXRyYWNrbWVudS5odG1sLgorCisg
ICAgICAgIEluc3RlYWQgb2YgcmVseWluZyBvbiBhIHJlZ2lzdHJhdGlvbiBzeXN0ZW0gd2hpY2gg
Y2FuIGZhaWwgd2hlbiBhbiBlbGVtZW50J3MgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBhIHBhZ2Us
CisgICAgICAgIEVsZW1lbnRzIHdpbGwgcmVnaXN0ZXIgZm9yIGNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWQoKSBub3RpZmljYXRpb25zIGRpcmVjdGx5IHdpdGggdGhlaXIgb3duaW5nIERvY3VtZW50
LgorICAgICAgICBDYXB0aW9uVXNlclByZWZlcmVuY2VzLCBpbiB0dXJuLCB3aWxsIG5vdGlmeSBh
bGwgRG9jdW1lbnRzIGluIGl0cyBQYWdlR3JvdXAsIHJhdGhlciB0aGFuIG9ubHkgZGlyZWN0bHkK
KyAgICAgICAgcmVnaXN0ZXJlZCBsaXN0ZW5lcnMuCisKKyAgICAgICAgKiBkb20vRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlZ2lzdGVyRm9yQ2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZENhbGxiYWNrcyk6IEFkZGVkLiBOb3RpZnkgdGhlIENhcHRpb25Vc2VyUHJl
ZmVyZW5jZXMgdGhhdCBzb21lb25lCisgICAgICAgICAgICBpcyBpbnRlcmVzdGVkIGluIGNhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWQgbm90ZmljYXRpb25zLgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnVucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKTog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y2FwdGlvblByZWZlcmVuY2VzQ2hh
bmdlZCk6IEFkZGVkLiBQYXNzIHRvIGFsbCByZWdpc3RlcmVkIGVsZW1lbnRzLgorICAgICAgICAq
IGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50OjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKTogQWRkZWQuIEVtcHR5OyBp
bnRlbmRlZAorICAgICAgICAgICAgdG8gYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLgorICAg
ICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQ
YWdlOjpDYWNoZWRQYWdlKTogSW5pdGlhbGl6ZSBtX25lZWRzQ2FwdGlvblByZWZlcmVuY2VDaGFu
Z2VkIG1lbWJlci4KKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFBhZ2U6OnJlc3RvcmUpOiBDYWxs
IGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKSBpZiBuZWNlc3NhcnkuCisgICAgICAgICogaGlz
dG9yeS9DYWNoZWRQYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRQYWdlOjptYXJrRm9y
Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCk6IFNldCB0aGUgbV9uZWVkc0NhcHRpb25QcmVmZXJl
bmNlQ2hhbmdlZCBtZW1iZXIuCisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UGFnZUNhY2hlOjptYXJrUGFnZXNGb3JDYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkKTogUGFzcyB0byBldmVyeSBDYWNoZWRQYWdlLgorICAgICAgICAqIGhpc3RvcnkvUGFn
ZUNhY2hlLmg6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQpOiBSZWdpc3RlciB3
aXRoIHRoZSBEb2N1bWVudC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6On5I
VE1MTWVkaWFFbGVtZW50KTogVW5yZWdpc3RlciB3aXRoIHNhbWUuCisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjphdHRhY2gpOiBSZW1vdmUgcHJldmlvdXMgcmVnaXN0cmF0aW9u
IGNhbGwuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6CisgICAgICAgICogcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25V
c2VyUHJlZmVyZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQpOiBQYXNzIHRvIHRoZQor
ICAgICAgICAgICAgUGFnZUdyb3VwLgorICAgICAgICAqIHBhZ2UvQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcy5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6aW50ZXJl
c3RlZEluQ2FwdGlvblByZWZlcmVuY2VDaGFuZ2VzKToKKyAgICAgICAgICAgIEVtcHR5OyBpbnRl
bmRlZCB0byBiZSBvdmVycmlkZGVuIGJ5IHN1YmNsYXNzZXMuCisgICAgICAgICogcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzTWFjLmg6CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZl
cmVuY2VzTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01h
Yzo6aW50ZXJlc3RlZEluQ2FwdGlvblByZWZlcmVuY2VDaGFuZ2VzKToKKyAgICAgICAgICAgIFJl
bmFtZWQgZnJvbSByZWdpc3RlckZvclByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcygpLgorICAg
ICAgICAoV2ViQ29yZTo6Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6Y2FwdGlvblByZWZlcmVu
Y2VzQ2hhbmdlZCk6CisgICAgICAgICAgICBSZXBsYWNlIGNhbGwgdG8gaGF2ZVByZWZlcmVuY2VD
aGFuZ2VMaXN0ZW5lcnMoKSB3aXRoIG1fbGlzdGVuaW5nRm9yUHJlZmVyZW5jZUNoYW5nZXMuCisg
ICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmNhcHRpb25Q
cmVmZXJlbmNlc0NoYW5nZWQpOgorICAgICAgICAgICAgUGFzcyB0byBldmVyeSBjb250YWluZWQg
RG9jdW1lbnQuCisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9DYXB0aW9u
VXNlclByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQpOiBQYXNzIHRvIHRoZSBQYWdlR3JvdXAu
CisgICAgICAgICogcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmg6CisgICAgICAgICogcGFn
ZS9QYWdlR3JvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZUdyb3VwOjpjYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkKTogUGFzcyB0byBldmVyeSBwYWdlLCBhcyB3ZWxsIGFzIHBhZ2VzIGlu
IHRoZSBQYWdlQ2FjaGUuCisgICAgICAgICogcGFnZS9QYWdlR3JvdXAuaDoKKwogMjAxMy0wMy0x
MSAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCB0
eXBvIGZyb20gcjE0NTM5OS4gUnViYmVyIHN0YW1wZWQgYnkgQWJoaXNoZWsgQXJ5YS4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IGZjZWRlMmQ3OTliZDljZDA2NDI0NjkzMWVlNjI0Y2ExYzM3
MGZiNjkuLmI3MDYxMDNmNGU1OTg3NTBjYmE1NTI4Y2Q0MTRlMjUzNWVlMjc0M2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtMjQ4LDYgKzI0OCwxMCBAQAogI2luY2x1ZGUgIlRyYWNlRXZl
bnQuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorI2luY2x1ZGUgIkNhcHRp
b25Vc2VyUHJlZmVyZW5jZXMuaCIKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogdXNp
bmcgbmFtZXNwYWNlIFdURjsKIHVzaW5nIG5hbWVzcGFjZSBVbmljb2RlOwpAQCAtNDE0NCw2ICs0
MTQ4LDI4IEBAIHZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JQcml2YXRlQnJvd3NpbmdTdGF0
ZUNoYW5nZWRDYWxsYmFja3MoRWxlbWVudCogZSkKICAgICBtX3ByaXZhdGVCcm93c2luZ1N0YXRl
Q2hhbmdlZEVsZW1lbnRzLnJlbW92ZShlKTsKIH0KIAorI2lmIEVOQUJMRShWSURFT19UUkFDSykK
K3ZvaWQgRG9jdW1lbnQ6OnJlZ2lzdGVyRm9yQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZENhbGxi
YWNrcyhFbGVtZW50KiBlKQoreworICAgIGlmIChwYWdlKCkpCisgICAgICAgIHBhZ2UoKS0+Z3Jv
dXAoKS5jYXB0aW9uUHJlZmVyZW5jZXMoKS0+aW50ZXJlc3RlZEluQ2FwdGlvblByZWZlcmVuY2VD
aGFuZ2VzKCk7CisKKyAgICBtX2NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRFbGVtZW50cy5hZGQo
ZSk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkQ2FsbGJhY2tzKEVsZW1lbnQqIGUpCit7CisgICAgbV9jYXB0aW9uUHJlZmVyZW5jZXND
aGFuZ2VkRWxlbWVudHMucmVtb3ZlKGUpOworfQorCit2b2lkIERvY3VtZW50OjpjYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkKCkKK3sKKyAgICBIYXNoU2V0PEVsZW1lbnQqPjo6aXRlcmF0b3IgZW5k
ID0gbV9jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkRWxlbWVudHMuZW5kKCk7CisgICAgZm9yIChI
YXNoU2V0PEVsZW1lbnQqPjo6aXRlcmF0b3IgaXQgPSBtX2NhcHRpb25QcmVmZXJlbmNlc0NoYW5n
ZWRFbGVtZW50cy5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpCisgICAgICAgICgqaXQpLT5jYXB0
aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7Cit9CisjZW5kaWYKKwogdm9pZCBEb2N1bWVudDo6c2V0
U2hvdWxkQ3JlYXRlUmVuZGVyZXJzKGJvb2wgZikKIHsKICAgICBtX2NyZWF0ZVJlbmRlcmVycyA9
IGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDNmNWRjMjAxOGIwMjllYTE4MDg5NjNhZDA4ZGFj
ZjU5ODYxMzc0YWMuLmU3YzE3OTBmNjBhMjg4NDBkYTM4YWJhNDJlM2M4NDliMmJjNzNjNDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC05NjcsNiArOTY3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lk
IHN0b3JhZ2VCbG9ja2luZ1N0YXRlRGlkQ2hhbmdlKCk7CiAgICAgdm9pZCBwcml2YXRlQnJvd3Np
bmdTdGF0ZURpZENoYW5nZSgpOwogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIHZvaWQg
cmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKEVsZW1lbnQqKTsK
KyAgICB2b2lkIHVucmVnaXN0ZXJGb3JDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tz
KEVsZW1lbnQqKTsKKyAgICB2b2lkIGNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKKyNlbmRp
ZgorCiAgICAgdm9pZCBzZXRTaG91bGRDcmVhdGVSZW5kZXJlcnMoYm9vbCk7CiAgICAgYm9vbCBz
aG91bGRDcmVhdGVSZW5kZXJlcnMoKTsKIApAQCAtMTQ1Miw4ICsxNDU4LDExIEBAIHByaXZhdGU6
CiAgICAgSGFzaFNldDxFbGVtZW50Kj4gbV9kb2N1bWVudFN1c3BlbnNpb25DYWxsYmFja0VsZW1l
bnRzOwogICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1fbWVkaWFWb2x1bWVDYWxsYmFja0VsZW1lbnRz
OwogICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1fcHJpdmF0ZUJyb3dzaW5nU3RhdGVDaGFuZ2VkRWxl
bWVudHM7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIEhhc2hTZXQ8RWxlbWVudCo+IG1f
Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZEVsZW1lbnRzOworI2VuZGlmCiAKLSAgICBIYXNoTWFw
PFN0cmluZ0ltcGwqLCBFbGVtZW50KiwgQ2FzZUZvbGRpbmdIYXNoPiBtX2VsZW1lbnRzQnlBY2Nl
c3NLZXk7ICAgIAorICAgIEhhc2hNYXA8U3RyaW5nSW1wbCosIEVsZW1lbnQqLCBDYXNlRm9sZGlu
Z0hhc2g+IG1fZWxlbWVudHNCeUFjY2Vzc0tleTsKICAgICBib29sIG1fYWNjZXNzS2V5TWFwVmFs
aWQ7CiAKICAgICBPd25QdHI8U2VsZWN0b3JRdWVyeUNhY2hlPiBtX3NlbGVjdG9yUXVlcnlDYWNo
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5oCmluZGV4IDQ5ODhiMWQ3N2RkZGU0ZTQzMGY3YjU1M2M0ZTYzMmNk
ZGQwNWYzYmUuLjc1M2VjOTZmZDdiMzhmZTg5NDZiMjFmYzE1YWUzYjQyN2I3NTQwMGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaApAQCAtNDgyLDYgKzQ4MiwxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRpZEJlY29tZUZ1bGxzY3JlZW5FbGVtZW50KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTdG9wQmVpbmdGdWxsc2NyZWVuRWxlbWVudCgpIHsgfQogCisjaWYgRU5BQkxFKFZJREVPX1RS
QUNLKQorICAgIHZpcnR1YWwgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkgeyB9Cisj
ZW5kaWYKKwogICAgIGJvb2wgaXNGaW5pc2hlZFBhcnNpbmdDaGlsZHJlbigpIGNvbnN0IHsgcmV0
dXJuIGlzUGFyc2luZ0NoaWxkcmVuRmluaXNoZWQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBmaW5p
c2hQYXJzaW5nQ2hpbGRyZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5QYXJzaW5nQ2hpbGRy
ZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkUGFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCmluZGV4IDNkZGI4ZWEzZjEz
Y2FmZDczMmEwODc2ZDFkOTFiYWRlOTMyYzEyZjEuLjcwOTk5ODg0ODk5NGZiNmMxMDE2NzQ3MWEy
OWQ0ZjllNGI4MTQ3ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVk
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdlLmNwcApAQCAt
NTQsNiArNTQsNyBAQCBDYWNoZWRQYWdlOjpDYWNoZWRQYWdlKFBhZ2UqIHBhZ2UpCiAgICAgLCBt
X2NhY2hlZE1haW5GcmFtZShDYWNoZWRGcmFtZTo6Y3JlYXRlKHBhZ2UtPm1haW5GcmFtZSgpKSkK
ICAgICAsIG1fbmVlZFN0eWxlUmVjYWxjRm9yVmlzaXRlZExpbmtzKGZhbHNlKQogICAgICwgbV9u
ZWVkc0Z1bGxTdHlsZVJlY2FsYyhmYWxzZSkKKyAgICAsIG1fbmVlZHNDYXB0aW9uUHJlZmVyZW5j
ZXNDaGFuZ2VkKGZhbHNlKQogewogI2lmbmRlZiBOREVCVUcKICAgICBjYWNoZWRQYWdlQ291bnRl
ci5pbmNyZW1lbnQoKTsKQEAgLTk0LDYgKzk1LDExIEBAIHZvaWQgQ2FjaGVkUGFnZTo6cmVzdG9y
ZShQYWdlKiBwYWdlKQogICAgIGlmIChtX25lZWRzRnVsbFN0eWxlUmVjYWxjKQogICAgICAgICBw
YWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKIAorI2lmIEVOQUJMRShWSURF
T19UUkFDSykKKyAgICBpZiAobV9uZWVkc0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQpCisgICAg
ICAgIHBhZ2UtPmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKKyNlbmRpZgorCiAgICAgY2xl
YXIoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRQYWdl
LmggYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaAppbmRleCBlNTg2NmNmZjFi
OTFiZDFiY2VmMjMyMzcyZjRlZTJhMjhmOWI0MzE5Li4yMDVjYjg0MWZhM2RkOTVjNmFmM2M0N2Rj
YWVmZGI1YjYxMmQzZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZFBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuaApAQCAtNTMs
NiArNTMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIG1hcmtGb3JWaXN0ZWRMaW5rU3R5bGVSZWNh
bGMoKSB7IG1fbmVlZFN0eWxlUmVjYWxjRm9yVmlzaXRlZExpbmtzID0gdHJ1ZTsgfQogICAgIHZv
aWQgbWFya0ZvckZ1bGxTdHlsZVJlY2FsYygpIHsgbV9uZWVkc0Z1bGxTdHlsZVJlY2FsYyA9IHRy
dWU7IH0KKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgdm9pZCBtYXJrRm9yQ2FwdGlvblBy
ZWZlcmVuY2VzQ2hhbmdlZCgpIHsgbV9uZWVkc0NhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQgPSB0
cnVlOyB9CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBDYWNoZWRQYWdlKFBhZ2UqKTsKQEAgLTYx
LDYgKzY0LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q2FjaGVkRnJhbWU+IG1fY2FjaGVkTWFp
bkZyYW1lOwogICAgIGJvb2wgbV9uZWVkU3R5bGVSZWNhbGNGb3JWaXNpdGVkTGlua3M7CiAgICAg
Ym9vbCBtX25lZWRzRnVsbFN0eWxlUmVjYWxjOworICAgIGJvb2wgbV9uZWVkc0NhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5jcHAKaW5kZXggNTRmNDY5NDkzZjJkMTRjMjQ4MTI5MjlhMmQ4MDQ0
ODE1NGZjMzlmMC4uMDliNDQ5NjA3Zjg5NzFmM2M3MjIwNWJmOWE4MzI2MzE5MjJkMTliZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcApAQCAtNDM2LDYgKzQzNiwxNCBAQCB2b2lk
IFBhZ2VDYWNoZTo6bWFya1BhZ2VzRm9yRnVsbFN0eWxlUmVjYWxjKFBhZ2UqIHBhZ2UpCiAgICAg
fQogfQogCisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQordm9pZCBQYWdlQ2FjaGU6Om1hcmtQYWdl
c0ZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKQoreworICAgIGZvciAoSGlzdG9yeUl0ZW0q
IGN1cnJlbnQgPSBtX2hlYWQ7IGN1cnJlbnQ7IGN1cnJlbnQgPSBjdXJyZW50LT5tX25leHQpCisg
ICAgICAgIGN1cnJlbnQtPm1fY2FjaGVkUGFnZS0+bWFya0ZvckNhcHRpb25QcmVmZXJlbmNlc0No
YW5nZWQoKTsKK30KKyNlbmRpZgorCiB2b2lkIFBhZ2VDYWNoZTo6YWRkKFBhc3NSZWZQdHI8SGlz
dG9yeUl0ZW0+IHBycEl0ZW0sIFBhZ2UqIHBhZ2UpCiB7CiAgICAgQVNTRVJUKHBycEl0ZW0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmgKaW5kZXggMDZmZDRkOThkOTU2ZjBiNWQxMzAxN2Zi
YTRjYmU4OTliOTU0ZjNlMS4uNmVlMDE0Y2IzOGQ5MGIwNzhjOTFkYmRkYjRhYzVmNWQ1M2JiMDQ4
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5oCkBAIC02MCw2ICs2MCwxMCBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIFdpbGwgbWFyayBhbGwgY2FjaGVkIHBhZ2VzIGFz
c29jaWF0ZWQgd2l0aCB0aGUgZ2l2ZW4gcGFnZSBhcyBuZWVkaW5nIHN0eWxlIHJlY2FsYy4KICAg
ICAgICAgdm9pZCBtYXJrUGFnZXNGb3JGdWxsU3R5bGVSZWNhbGMoUGFnZSopOwogCisjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQorICAgICAgICB2b2lkIG1hcmtQYWdlc0ZvckNhcHRpb25QcmVmZXJl
bmNlc0NoYW5nZWQoKTsKKyNlbmRpZgorCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQogICAgICAgICBib29sIHNob3VsZENsZWFyQmFja2luZ1N0b3JlcygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkQ2xlYXJCYWNraW5nU3RvcmVzOyB9CiAgICAgICAgIHZvaWQgc2V0U2hvdWxkQ2xl
YXJCYWNraW5nU3RvcmVzKGJvb2wgZmxhZykgeyBtX3Nob3VsZENsZWFyQmFja2luZ1N0b3JlcyA9
IGZsYWc7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IGNm
OGVhZTZiYzAxODY4ODZjYmY3MjE4OWVmYmU0ZjRmMzlhYzI4YTUuLmU1ODRmODVjOTU1MjU2Y2My
ZTVlNGJhZjk0ZWJkNjJhMWNlNDAzMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtOTgsNiArOTgsNyBAQAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIkhU
TUxUcmFja0VsZW1lbnQuaCIKICNpbmNsdWRlICJJbmJhbmRUZXh0VHJhY2suaCIKICNpbmNsdWRl
ICJJbmJhbmRUZXh0VHJhY2tQcml2YXRlLmgiCkBAIC0zMDUsNyArMzA2LDcgQEAgSFRNTE1lZGlh
RWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bWVudCogZG9jdW0KICAgICBMT0coTWVkaWEsICJIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVk
aWFFbGVtZW50Iik7CiAgICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yTWVkaWFWb2x1bWVDYWxsYmFj
a3ModGhpcyk7CiAgICAgZG9jdW1lbnQtPnJlZ2lzdGVyRm9yUHJpdmF0ZUJyb3dzaW5nU3RhdGVD
aGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOwotICAgIAorCiAgICAgaWYgKGRvY3VtZW50LT5zZXR0aW5n
cygpICYmIGRvY3VtZW50LT5zZXR0aW5ncygpLT5tZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2Vz
dHVyZSgpKSB7CiAgICAgICAgIGFkZEJlaGF2aW9yUmVzdHJpY3Rpb24oUmVxdWlyZVVzZXJHZXN0
dXJlRm9yUmF0ZUNoYW5nZVJlc3RyaWN0aW9uKTsKICAgICAgICAgYWRkQmVoYXZpb3JSZXN0cmlj
dGlvbihSZXF1aXJlVXNlckdlc3R1cmVGb3JMb2FkUmVzdHJpY3Rpb24pOwpAQCAtMzE1LDYgKzMx
Niw3IEBAIEhUTUxNZWRpYUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtCiAgICAgYWRkRWxlbWVudFRvRG9jdW1lbnRN
YXAodGhpcywgZG9jdW1lbnQpOwogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgIGRvY3Vt
ZW50LT5yZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3ModGhpcyk7
CiAgICAgaWYgKGRvY3VtZW50LT5wYWdlKCkpIHsKICAgICAgICAgQ2FwdGlvblVzZXJQcmVmZXJl
bmNlcyogY2FwdGlvblByZWZlcmVuY2VzID0gZG9jdW1lbnQtPnBhZ2UoKS0+Z3JvdXAoKS5jYXB0
aW9uUHJlZmVyZW5jZXMoKTsKICAgICAgICAgaWYgKGNhcHRpb25QcmVmZXJlbmNlcy0+dXNlckhh
c0NhcHRpb25QcmVmZXJlbmNlcygpKQpAQCAtMzMyLDYgKzMzNCw3IEBAIEhUTUxNZWRpYUVsZW1l
bnQ6On5IVE1MTWVkaWFFbGVtZW50KCkKICAgICBkb2N1bWVudCgpLT51bnJlZ2lzdGVyRm9yTWVk
aWFWb2x1bWVDYWxsYmFja3ModGhpcyk7CiAgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3RlckZvclBy
aXZhdGVCcm93c2luZ1N0YXRlQ2hhbmdlZENhbGxiYWNrcyh0aGlzKTsKICNpZiBFTkFCTEUoVklE
RU9fVFJBQ0spCisgICAgZG9jdW1lbnQoKS0+dW5yZWdpc3RlckZvckNhcHRpb25QcmVmZXJlbmNl
c0NoYW5nZWRDYWxsYmFja3ModGhpcyk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykKICAgICAgICAg
bV90ZXh0VHJhY2tzLT5jbGVhck93bmVyKCk7CiAgICAgaWYgKG1fdGV4dFRyYWNrcykgewpAQCAt
NTkxLDIwICs1OTQsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmF0dGFjaCgpCiAgICAgICAg
ICAgICBmcmFtZS0+bG9hZGVyKCktPmNsaWVudCgpLT5oaWRlTWVkaWFQbGF5ZXJQcm94eVBsdWdp
bihtX3Byb3h5V2lkZ2V0LmdldCgpKTsKICAgICB9CiAjZW5kaWYKLQotI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICBpZiAoZG9jdW1lbnQoKS0+cGFnZSgpKQotICAgICAgICBkb2N1bWVudCgp
LT5wYWdlKCktPmdyb3VwKCkuY2FwdGlvblByZWZlcmVuY2VzKCktPnJlZ2lzdGVyRm9yUHJlZmVy
ZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKHRoaXMpOwotI2VuZGlmCi19Ci0KLXZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6ZGV0YWNoKCkKLXsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgaWYgKGRv
Y3VtZW50KCktPnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS0+cGFnZSgpLT5ncm91cCgpLmNh
cHRpb25QcmVmZXJlbmNlcygpLT51bnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJh
Y2tzKHRoaXMpOwotI2VuZGlmCi0gICAgSFRNTEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCiB2b2lk
IEhUTUxNZWRpYUVsZW1lbnQ6OmRpZFJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAppbmRleCA1ODI3ZjE5Yjg0ODY3NGU4ZmFlOTUxNzdj
M2E3YmRmNDMzMDhjNDJjLi4wOGMyZGM2MzlhMzUwNDlmYjg1MGFhZjkwYzBkY2QxNzYwNzY1YjQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuaApAQCAtMzksNyArMzksNiBA
QAogI2VuZGlmCiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0jaW5jbHVkZSAiQ2FwdGlvblVz
ZXJQcmVmZXJlbmNlcy5oIgogI2luY2x1ZGUgIlBPREludGVydmFsVHJlZS5oIgogI2luY2x1ZGUg
IlRleHRUcmFjay5oIgogI2luY2x1ZGUgIlRleHRUcmFja0N1ZS5oIgpAQCAtODQsNyArODMsNyBA
QCB0eXBlZGVmIFZlY3RvcjxDdWVJbnRlcnZhbD4gQ3VlTGlzdDsKIAogY2xhc3MgSFRNTE1lZGlh
RWxlbWVudCA6IHB1YmxpYyBIVE1MRWxlbWVudCwgcHVibGljIE1lZGlhUGxheWVyQ2xpZW50LCBw
dWJsaWMgTWVkaWFQbGF5ZXJTdXBwb3J0c1R5cGVDbGllbnQsIHByaXZhdGUgTWVkaWFDYW5TdGFy
dExpc3RlbmVyLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgTWVkaWFDb250cm9sbGVy
SW50ZXJmYWNlCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgICwgcHJpdmF0ZSBUZXh0VHJh
Y2tDbGllbnQsIHByaXZhdGUgQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyCisgICAg
LCBwcml2YXRlIFRleHRUcmFja0NsaWVudAogI2VuZGlmCiAjaWYgVVNFKFBMQVRGT1JNX1RFWFRf
VFJBQ0tfTUVOVSkKICAgICAsIHB1YmxpYyBQbGF0Zm9ybVRleHRUcmFja01lbnVDbGllbnQKQEAg
LTM2NSw3ICszNjQsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGZpbmlzaFBhcnNp
bmdDaGlsZHJlbigpOwogICAgIHZpcnR1YWwgYm9vbCBpc1VSTEF0dHJpYnV0ZShjb25zdCBBdHRy
aWJ1dGUmKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoKCkgT1ZFUlJJ
REU7Ci0gICAgdmlydHVhbCB2b2lkIGRldGFjaCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2
b2lkIGRpZE1vdmVUb05ld0RvY3VtZW50KERvY3VtZW50KiBvbGREb2N1bWVudCkgT1ZFUlJJREU7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNl
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXMuY3BwCmlu
ZGV4IDMxOTkwNDZlMDA5YTY0YTY3YTQ2MzE3YThhZmE5NTkxZTI5YjM5ZjkuLjQ1MTAyNDcxOThi
ZDlhYzA5YjUzNmVhYzE5NjkyMjcwNjY0NGFkZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmNwcApAQCAtMjgsMjIgKzI4LDEyIEBACiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogCiAjaW5jbHVkZSAiQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIgor
I2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKKyNpbmNsdWRlICJQYWdl
R3JvdXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIENhcHRpb25Vc2VyUHJlZmVy
ZW5jZXM6OnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzKENhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCi17Ci0gICAgbV9jYXB0aW9uUHJlZmVy
ZW5jZUNoYW5nZUxpc3RlbmVycy5hZGQobGlzdGVuZXIpOwotfQotCi12b2lkIENhcHRpb25Vc2Vy
UHJlZmVyZW5jZXM6OnVucmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2Fw
dGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKiBsaXN0ZW5lcikKLXsKLSAgICBpZiAobV9j
YXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMucmVtb3ZlKGxpc3Rl
bmVyKTsKLX0KLQogdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2VzOjpzZXRVc2VyUHJlZmVyc0Nh
cHRpb25zKGJvb2wgcHJlZmVyZW5jZSkKIHsKICAgICBtX3VzZXJQcmVmZXJzQ2FwdGlvbnMgPSBw
cmVmZXJlbmNlOwpAQCAtNTUsMTEgKzQ1LDcgQEAgdm9pZCBDYXB0aW9uVXNlclByZWZlcmVuY2Vz
OjpzZXRVc2VyUHJlZmVyc0NhcHRpb25zKGJvb2wgcHJlZmVyZW5jZSkKIAogdm9pZCBDYXB0aW9u
VXNlclByZWZlcmVuY2VzOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKIHsKLSAgICBpZiAo
bV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybjsKLSAgICAKLSAgICBmb3IgKEhhc2hTZXQ8Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExp
c3RlbmVyKj46Oml0ZXJhdG9yIGkgPSBtX2NhcHRpb25QcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJz
LmJlZ2luKCk7IGkgIT0gbV9jYXB0aW9uUHJlZmVyZW5jZUNoYW5nZUxpc3RlbmVycy5lbmQoKTsg
KytpKQotICAgICAgICAoKmkpLT5jYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisgICAgbV9w
YWdlR3JvdXAtPmNhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKIH0KIAogVmVjdG9yPFN0cmlu
Zz4gQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cHJlZmVycmVkTGFuZ3VhZ2VzKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlcy5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzLmgKaW5kZXggYjU3MjE2
Y2IxZWNmMzlkNTU5ZDU0N2IyMzI2ZjJkNGMwMTIzZmM0Yi4uNjZkOGY1NzYxYTRhZTRiNDc2NGI3
ZWMyODJjOWM5NTIzYTVkNTA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0
aW9uVXNlclByZWZlcmVuY2VzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNl
clByZWZlcmVuY2VzLmgKQEAgLTM4LDEzICszOCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgUGFnZUdyb3VwOwogCi1jbGFzcyBDYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkTGlzdGVu
ZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCkgPSAwOwotcHJvdGVjdGVkOgotICAgIHZpcnR1YWwgfkNhcHRpb25QcmVmZXJlbmNlc0NoYW5n
ZWRMaXN0ZW5lcigpIHsgfQotfTsKLQogY2xhc3MgQ2FwdGlvblVzZXJQcmVmZXJlbmNlcyB7CiBw
dWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8Q2FwdGlvblVzZXJQcmVmZXJlbmNlcz4gY3Jl
YXRlKFBhZ2VHcm91cCogZ3JvdXApIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBDYXB0aW9uVXNlclBy
ZWZlcmVuY2VzKGdyb3VwKSk7IH0KQEAgLTU2LDEwICs0OSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlKGJvb2wmIGltcG9ydGFudCkgY29uc3QgeyBp
bXBvcnRhbnQgPSBmYWxzZTsgcmV0dXJuIDAuMDVmOyB9CiAgICAgdmlydHVhbCBTdHJpbmcgY2Fw
dGlvbnNTdHlsZVNoZWV0T3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBlbXB0eVN0cmluZygpOyB9
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFj
a3MoQ2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKik7Ci0gICAgdmlydHVhbCB2b2lk
IHVucmVnaXN0ZXJGb3JQcmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByZWZlcmVu
Y2VzQ2hhbmdlZExpc3RlbmVyKik7CisgICAgdmlydHVhbCB2b2lkIGludGVyZXN0ZWRJbkNhcHRp
b25QcmVmZXJlbmNlQ2hhbmdlcygpIHsgfQorCiAgICAgdmlydHVhbCB2b2lkIGNhcHRpb25QcmVm
ZXJlbmNlc0NoYW5nZWQoKTsKLSAgICBib29sIGhhdmVQcmVmZXJlbmNlQ2hhbmdlTGlzdGVuZXJz
KCkgY29uc3QgeyByZXR1cm4gIW1fY2FwdGlvblByZWZlcmVuY2VDaGFuZ2VMaXN0ZW5lcnMuaXNF
bXB0eSgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0UHJlZmVycmVkTGFuZ3VhZ2UoU3RyaW5n
KTsKICAgICB2aXJ0dWFsIFZlY3RvcjxTdHJpbmc+IHByZWZlcnJlZExhbmd1YWdlcygpIGNvbnN0
OwpAQCAtODEsNyArNzMsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgfQogCiBwcml2YXRlOgotICAgIEhh
c2hTZXQ8Q2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZExpc3RlbmVyKj4gbV9jYXB0aW9uUHJlZmVy
ZW5jZUNoYW5nZUxpc3RlbmVyczsKICAgICBQYWdlR3JvdXAqIG1fcGFnZUdyb3VwOwogICAgIFN0
cmluZyBtX3VzZXJQcmVmZXJyZWRMYW5ndWFnZTsKICAgICBib29sIG1fdGVzdGluZ01vZGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5oCmluZGV4
IDU0NjBhNTNjYTE4MjliOWRlNTcwZDU0YjM2NzQ2YTc5OTk2OWRlM2UuLmNjMmE3ZGMwY2JmYjgz
YzNlMmViZjBiYjMzNGQ0MjM0NTEzMGYxMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGZsb2F0IGNhcHRpb25Gb250U2l6ZVNjYWxlKGJvb2wmKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIFN0cmluZyBjYXB0aW9uc1N0eWxlU2hlZXRPdmVycmlkZSgpIGNvbnN0
IE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFu
Z2VkQ2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciopIE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCBpbnRlcmVzdGVkSW5DYXB0aW9uUHJlZmVyZW5jZUNoYW5nZXMo
KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRQcmVmZXJyZWRMYW5ndWFnZShTdHJp
bmcpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgVmVjdG9yPFN0cmluZz4gcHJlZmVycmVkTGFuZ3Vh
Z2VzKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nh
cHRpb25Vc2VyUHJlZmVyZW5jZXNNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NhcHRpb25V
c2VyUHJlZmVyZW5jZXNNYWMubW0KaW5kZXggYWUyNWFmMTI2YTEzNTIyZjRhYTUzMDQ3YjM1NjY4
MzU2MWI3M2JlYy4uYThkMDE3ZmU4MTE2Y2VjNThhMWViYTZkNWE0MjFlOWRiMTQ5OGVhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DYXB0aW9uVXNlclByZWZlcmVuY2VzTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYy5tbQpA
QCAtMTM3LDEwICsxMzcsOCBAQCBib29sIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OnVzZXJI
YXNDYXB0aW9uUHJlZmVyZW5jZXMoKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lk
IENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OnJlZ2lzdGVyRm9yUHJlZmVyZW5jZXNDaGFuZ2Vk
Q2FsbGJhY2tzKENhcHRpb25QcmVmZXJlbmNlc0NoYW5nZWRMaXN0ZW5lciogbGlzdGVuZXIpCit2
b2lkIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNYWM6OmludGVyZXN0ZWRJbkNhcHRpb25QcmVmZXJl
bmNlQ2hhbmdlcygpCiB7Ci0gICAgQ2FwdGlvblVzZXJQcmVmZXJlbmNlczo6cmVnaXN0ZXJGb3JQ
cmVmZXJlbmNlc0NoYW5nZWRDYWxsYmFja3MobGlzdGVuZXIpOwotCiAgICAgaWYgKCFNZWRpYUFj
Y2Vzc2liaWxpdHlMaWJyYXJ5KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTU3LDcgKzE1NSw3
IEBAIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01hYzo6cmVnaXN0ZXJGb3JQcmVmZXJlbmNl
c0NoYW5nZWRDYWxsYmFja3MoQ2FwdGlvblByCiAKIHZvaWQgQ2FwdGlvblVzZXJQcmVmZXJlbmNl
c01hYzo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKGhhdmVQcmVmZXJl
bmNlQ2hhbmdlTGlzdGVuZXJzKCkpCisgICAgaWYgKG1fbGlzdGVuaW5nRm9yUHJlZmVyZW5jZUNo
YW5nZXMpCiAgICAgICAgIHVwZGF0ZUNhcHRpb25TdHlsZVNoZWV0T3ZlcmlkZSgpOwogCiAgICAg
Q2FwdGlvblVzZXJQcmVmZXJlbmNlczo6Y2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKaW5kZXggMjJmMzEyZmMzOWU5NDA5MzU5YWI4Y2ZiNGEzNDQwYWZlMTIwMjcz
Mi4uZDNiZGIwZTJjNjc2ZGZlZjU3YzA3Yzk2OGJkYzVmNjMwYjlhMDlmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCkBAIC0xNDkwLDYgKzE0OTAsMTQgQEAgdm9pZCBQYWdlOjpyZXBvcnRNZW1vcnlVc2Fn
ZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlPYmplY3RJbmZvKSBjb25zdAogICAgIGluZm8uaWdu
b3JlTWVtYmVyKG1fdmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQpOwogfQogCisjaWYgRU5BQkxFKFZJ
REVPX1RSQUNLKQordm9pZCBQYWdlOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCkKK3sKKyAg
ICBmb3IgKEZyYW1lKiBmcmFtZSA9IG1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+
dHJlZSgpLT50cmF2ZXJzZU5leHQoKSkKKyAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPmNhcHRp
b25QcmVmZXJlbmNlc0NoYW5nZWQoKTsKK30KKyNlbmRpZgorCiBQYWdlOjpQYWdlQ2xpZW50czo6
UGFnZUNsaWVudHMoKQogICAgIDogYWx0ZXJuYXRpdmVUZXh0Q2xpZW50KDApCiAgICAgLCBjaHJv
bWVDbGllbnQoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggOTk5MTVhMDliYzVlN2Y0MDY1ZmVlZjllNmI0
MWE0NDBjODViNDU5ZS4uNWM0MzQxN2M1MjZiMzVlZjViZDk1NmE2MzI3NmJkMzI4YTMwYmFkMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmgKQEAgLTM4MCw2ICszODAsMTAgQEAgcHVibGljOgogCiAgICAgdm9pZCBy
ZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKKyNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCisgICAgdm9pZCBjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2VkKCk7CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICB2b2lkIGluaXRHcm91cCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VH
cm91cC5jcHAKaW5kZXggNjBkMGE0MjdlN2ZkZjFiMWNiZTFkYWY0OWE1YWFkMmFkZmNiNGYxNC4u
ZjViYjIxZGI2YzE4MDU3MWM5ZmZkZDFmODQ0ZDNlOTM1MmE0MWNkZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZUdyb3VwLmNwcApAQCAtNDE3LDYgKzQxNywxMyBAQCB2b2lkIFBhZ2VHcm91cDo6aW52YWxp
ZGF0ZWRJbmplY3RlZFN0eWxlU2hlZXRDYWNoZUluQWxsRnJhbWVzKCkKIH0KIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKK3ZvaWQgUGFnZUdyb3VwOjpjYXB0aW9uUHJlZmVyZW5jZXNDaGFuZ2Vk
KCkKK3sKKyAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+OjppdGVyYXRvciBpID0gbV9wYWdlcy5iZWdp
bigpOyBpICE9IG1fcGFnZXMuZW5kKCk7ICsraSkKKyAgICAgICAgKCppKS0+Y2FwdGlvblByZWZl
cmVuY2VzQ2hhbmdlZCgpOworICAgIHBhZ2VDYWNoZSgpLT5tYXJrUGFnZXNGb3JDYXB0aW9uUHJl
ZmVyZW5jZXNDaGFuZ2VkKCk7Cit9CisKIENhcHRpb25Vc2VyUHJlZmVyZW5jZXMqIFBhZ2VHcm91
cDo6Y2FwdGlvblByZWZlcmVuY2VzKCkKIHsKICAgICBpZiAoIW1fY2FwdGlvblByZWZlcmVuY2Vz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZUdyb3VwLmgKaW5kZXggZTQ1Yzk4OGNmNjgzOGQ2MzA4NGQ0NTFmMWM0
NDA5YmNmMDI4NTAyYy4uNjgzMWRlZGY3NTlmYjY0ZjIzNTQ4MDM1MzNmNGIxMzJjMzM3NjBjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlR3JvdXAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VHcm91cC5oCkBAIC0xMDksNiArMTA5LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBHcm91cFNldHRpbmdzKiBncm91cFNldHRpbmdzKCkgY29uc3QgeyBy
ZXR1cm4gbV9ncm91cFNldHRpbmdzLmdldCgpOyB9CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CisgICAgICAgIHZvaWQgY2FwdGlvblByZWZlcmVuY2VzQ2hhbmdlZCgpOwogICAgICAgICBDYXB0
aW9uVXNlclByZWZlcmVuY2VzKiBjYXB0aW9uUHJlZmVyZW5jZXMoKTsKICNlbmRpZgogCg==
</data>
<flag name="review"
          id="214341"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
      

    </bug>

</bugzilla>