<?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>137959</bug_id>
          
          <creation_ts>2014-10-22 07:59:19 -0700</creation_ts>
          <short_desc>Assertion hit in DocumentOrderedMap::get while removing a form element</short_desc>
          <delta_ts>2017-12-18 20:32:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>116980</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1043444</commentid>
    <comment_count>0</comment_count>
      <attachid>240274</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-10-22 07:59:19 -0700</bug_when>
    <thetext>Created attachment 240274
Test case

The failing test case:

&lt;!DOCTYPE html&gt;
&lt;a&gt;
    &lt;p&gt;
        &lt;b&gt;
            &lt;u id=&quot;test&quot;/&gt;
            &lt;keygen form=&quot;test&quot;/&gt;
        &lt;/b&gt;
&lt;/a&gt;


The bug is also present in Blink and it&apos;s reported under crbug.com/426005.

Backtrace:

SHOULD NEVER BE REACHED
../../Source/WebCore/dom/DocumentOrderedMap.cpp(155) : WebCore::Element* WebCore::DocumentOrderedMap::get(const WTF::AtomicStringImpl&amp;, const WebCore::TreeScope&amp;) const [with bool (* keyMatches)(const WTF::AtomicStringImpl&amp;, const WebCore::Element&amp;) = WebCore::keyMatchesId]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fff98c1f700 (LWP 20393)]
0x00007fffedae91b5 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
321     *(int *)(uintptr_t)0xbbadbeef = 0;
#0  0x00007fffedae91b5 in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
#1  0x00007ffff307b3fc in WebCore::DocumentOrderedMap::get&lt;&amp;WebCore::keyMatchesId&gt; (this=0x796f80, key=..., scope=...) at ../../Source/WebCore/dom/DocumentOrderedMap.cpp:155
#2  0x00007ffff307a655 in WebCore::DocumentOrderedMap::getElementById (this=0x796f80, key=..., scope=...) at ../../Source/WebCore/dom/DocumentOrderedMap.cpp:161
#3  0x00007ffff3134d70 in WebCore::TreeScope::getElementById (this=0x788d78, elementId=...) at ../../Source/WebCore/dom/TreeScope.cpp:107
#4  0x00007ffff3248d24 in WebCore::FormAssociatedElement::findAssociatedForm (element=0x798160, currentAssociatedForm=0x0) at ../../Source/WebCore/html/FormAssociatedElement.cpp:100
#5  0x00007ffff3248f77 in WebCore::FormAssociatedElement::resetFormOwner (this=0x7981c8) at ../../Source/WebCore/html/FormAssociatedElement.cpp:153
#6  0x00007ffff324943e in WebCore::FormAssociatedElement::formAttributeTargetChanged (this=0x7981c8) at ../../Source/WebCore/html/FormAssociatedElement.cpp:250
#7  0x00007ffff324952c in WebCore::FormAttributeTargetObserver::idTargetChanged (this=0x94d330) at ../../Source/WebCore/html/FormAssociatedElement.cpp:272
#8  0x00007ffff30b3d3b in WebCore::IdTargetObserverRegistry::notifyObserversInternal (this=0xa7bfa0, id=...) at ../../Source/WebCore/dom/IdTargetObserverRegistry.cpp:70
#9  0x00007ffff3136270 in WebCore::IdTargetObserverRegistry::notifyObservers (this=0xa7bfa0, id=...) at ../../Source/WebCore/dom/IdTargetObserverRegistry.h:73
#10 0x00007ffff3134f7d in WebCore::TreeScope::removeElementById (this=0x788d78, elementId=..., element=...) at ../../Source/WebCore/dom/TreeScope.cpp:143
#11 0x00007ffff3094242 in WebCore::Element::updateIdForTreeScope (this=0x85e0a0, scope=..., oldId=..., newId=...) at ../../Source/WebCore/dom/Element.cpp:2658
#12 0x00007ffff308f321 in WebCore::Element::removedFrom (this=0x85e0a0, insertionPoint=...) at ../../Source/WebCore/dom/Element.cpp:1391
#13 0x00007ffff300b6af in WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.h:240
#14 0x00007ffff301085d in WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.cpp:71
#15 0x00007ffff300b6dd in WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.h:243
#16 0x00007ffff301085d in WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.cpp:71
#17 0x00007ffff300b6dd in WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.h:243
#18 0x00007ffff300b7cf in WebCore::ChildNodeRemovalNotifier::notify (this=0x7fffffffce00, node=...) at ../../Source/WebCore/dom/ContainerNodeAlgorithms.h:258
#19 0x00007ffff30083e9 in WebCore::ContainerNode::parserRemoveChild (this=0xa7cab0, oldChild=...) at ../../Source/WebCore/dom/ContainerNode.cpp:627
#20 0x00007ffff338ba2d in WebCore::insert (task=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:93
#21 0x00007ffff338bcff in WebCore::executeInsertAlreadyParsedChildTask (task=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:127
#22 0x00007ffff338bdb6 in WebCore::executeTask (task=...) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:147
#23 0x00007ffff338c104 in WebCore::HTMLConstructionSite::executeQueuedTasks (this=0xa7c818) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:193
#24 0x00007ffff33bde90 in WebCore::HTMLTreeBuilder::constructTree (this=0xa7c800, token=0x7fffffffcf90) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:367
#25 0x00007ffff3395827 in WebCore::HTMLDocumentParser::constructTreeFromHTMLToken (this=0x8562f0, rawToken=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:352
#26 0x00007ffff339545d in WebCore::HTMLDocumentParser::pumpTokenizer (this=0x8562f0, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:309
#27 0x00007ffff3394bf5 in WebCore::HTMLDocumentParser::pumpTokenizerIfPossible (this=0x8562f0, mode=WebCore::HTMLDocumentParser::AllowYield) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:189
#28 0x00007ffff3395dbd in WebCore::HTMLDocumentParser::append (this=0x8562f0, inputSource=...) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:428
#29 0x00007ffff301f521 in WebCore::DecodedDataDocumentParser::flush (this=0x8562f0, writer=...) at ../../Source/WebCore/dom/DecodedDataDocumentParser.cpp:60
#30 0x00007ffff35031d7 in WebCore::DocumentWriter::end (this=0x850b90) at ../../Source/WebCore/loader/DocumentWriter.cpp:243
#31 0x00007ffff34ee75b in WebCore::DocumentLoader::finishedLoading (this=0x850af0, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:441
#32 0x00007ffff34ee4c4 in WebCore::DocumentLoader::notifyFinished (this=0x850af0, resource=0x84c560) at ../../Source/WebCore/loader/DocumentLoader.cpp:375
#33 0x00007ffff35a0a5a in WebCore::CachedResource::checkNotify (this=0x84c560) at ../../Source/WebCore/loader/cache/CachedResource.cpp:347
#34 0x00007ffff35a0b64 in WebCore::CachedResource::finishLoading (this=0x84c560) at ../../Source/WebCore/loader/cache/CachedResource.cpp:363
#35 0x00007ffff359d466 in WebCore::CachedRawResource::finishLoading (this=0x84c560, data=0xa7e1e0) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:101
#36 0x00007ffff35518fa in WebCore::SubresourceLoader::didFinishLoading (this=0x84cad0, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:309
#37 0x00007ffff354d57d in WebCore::ResourceLoader::didFinishLoading (this=0x84cad0, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:512
#38 0x00007ffff3ef1333 in WebCore::readCallback (asyncResult=0xa7c1c0, data=0x85d170) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1306
#39 0x00007fffeb86c7d6 in async_ready_callback_wrapper (source_object=0x9c5ed0, res=0xa7c1c0, user_data=user_data@entry=0x85d170) at ginputstream.c:523
#40 0x00007fffeb8920d5 in g_task_return_now (task=0xa7c1c0) at gtask.c:1077
#41 0x00007fffeb8920f9 in complete_in_idle_cb (task=0xa7c1c0) at gtask.c:1086
#42 0x00007fffeaad1a2d in g_main_dispatch (context=0x6777f0) at gmain.c:3064
#43 g_main_context_dispatch (context=context@entry=0x6777f0) at gmain.c:3663
#44 0x00007fffeaad1d98 in g_main_context_iterate (context=0x6777f0, block=block@entry=1, dispatch=dispatch@entry=1, self=&lt;optimized out&gt;) at gmain.c:3734
#45 0x00007fffeaad205a in g_main_loop_run (loop=0xb00db0) at gmain.c:3928
#46 0x00007ffff457c386 in WTF::RunLoop::run () at ../../Source/WTF/wtf/gtk/RunLoopGtk.cpp:59
#47 0x00007ffff2ad6a46 in WebKit::ChildProcessMain&lt;WebKit::WebProcess, WebKit::WebProcessMain&gt; (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61
#48 0x00007ffff2ad68ab in WebKit::WebProcessMainUnix (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:73
#49 0x0000000000400871 in main (argc=2, argv=0x7fffffffd8b8) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182649</commentid>
    <comment_count>1</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-04-11 02:02:57 -0700</bug_when>
    <thetext>Chris, do you think this might be related to a top crasher we have?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182706</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-11 08:47:45 -0700</bug_when>
    <thetext>Still crashes on WebKit ToT:
Crashed Thread:        0  Dispatch queue: com.apple.main-thread

Exception Type:        EXC_BAD_ACCESS (SIGSEGV)
Exception Codes:       KERN_INVALID_ADDRESS at 0x00000000bbadbeef
Exception Note:        EXC_CORPSE_NOTIFY

VM Regions Near 0xbbadbeef:
--&gt; 
    __TEXT                 0000000102a79000-0000000102a7b000 [    8K] r-x/rwx SM=COW  /Users/USER/*/Safari-Gala-Debug-SafariTen-199294-82021.app/Contents/Frameworks/WebKit.framework/Versions/A/XPCServices/com.apple.WebKit.WebContent.Development.xpc/Contents/MacOS/com.apple.WebKit.WebContent.Development

Application Specific Information:
Bundle controller class:
BrowserBundleController
 
Process Model:
Multiple Web Processes
 

Global Trace Buffer (reverse chronological seconds):
2.641555     CFNetwork                 	0x00007fff9146eed7 Explicitly setting CF cookie storage singleton
2.641944     CFNetwork                 	0x00007fff914a58ad Explicitly setting cookie storage singleton

Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0   com.apple.JavaScriptCore      	0x0000000107085847 WTFCrash + 39
1   com.apple.WebCore             	0x0000000109aaf221 WebCore::Element* WebCore::DocumentOrderedMap::get&lt;WebCore::DocumentOrderedMap::getElementById(WTF::AtomicStringImpl const&amp;, WebCore::TreeScope const&amp;) const::$_0&gt;(WTF::AtomicStringImpl const&amp;, WebCore::TreeScope const&amp;, WebCore::DocumentOrderedMap::getElementById(WTF::AtomicStringImpl const&amp;, WebCore::TreeScope const&amp;) const::$_0 const&amp;) const + 1089
2   com.apple.WebCore             	0x0000000109aaedd9 WebCore::DocumentOrderedMap::getElementById(WTF::AtomicStringImpl const&amp;, WebCore::TreeScope const&amp;) const + 41
3   com.apple.WebCore             	0x000000010b7979fc WebCore::TreeScope::getElementById(WTF::AtomicString const&amp;) const + 188
4   com.apple.WebCore             	0x0000000109d2cdb4 WebCore::FormAssociatedElement::findAssociatedForm(WebCore::HTMLElement const*, WebCore::HTMLFormElement*) + 116
5   com.apple.WebCore             	0x0000000109d2cfa8 WebCore::FormAssociatedElement::resetFormOwner() + 56
6   com.apple.WebCore             	0x0000000109d2d575 WebCore::FormAssociatedElement::formAttributeTargetChanged() + 21
7   com.apple.WebCore             	0x0000000109d2d6d9 WebCore::FormAttributeTargetObserver::idTargetChanged() + 25
8   com.apple.WebCore             	0x000000010a1887b7 WebCore::IdTargetObserverRegistry::notifyObserversInternal(WTF::AtomicStringImpl const&amp;) + 263
9   com.apple.WebCore             	0x0000000109be5bc0 WebCore::IdTargetObserverRegistry::notifyObservers(WTF::AtomicStringImpl const&amp;) + 192
10  com.apple.WebCore             	0x000000010b798084 WebCore::TreeScope::removeElementById(WTF::AtomicStringImpl const&amp;, WebCore::Element&amp;, bool) + 196
11  com.apple.WebCore             	0x0000000109bdc4f2 WebCore::Element::updateIdForTreeScope(WebCore::TreeScope&amp;, WTF::AtomicString const&amp;, WTF::AtomicString const&amp;, WebCore::Element::NotifyObservers) + 242
12  com.apple.WebCore             	0x0000000109bdce0b WebCore::Element::removedFrom(WebCore::ContainerNode&amp;) + 411
13  com.apple.WebCore             	0x00000001096ddbd4 WebCore::notifyNodeRemovedFromDocument(WebCore::ContainerNode&amp;, WebCore::Node&amp;) + 100
14  com.apple.WebCore             	0x00000001096ddc6e WebCore::notifyNodeRemovedFromDocument(WebCore::ContainerNode&amp;, WebCore::Node&amp;) + 254
15  com.apple.WebCore             	0x00000001096ddc6e WebCore::notifyNodeRemovedFromDocument(WebCore::ContainerNode&amp;, WebCore::Node&amp;) + 254
16  com.apple.WebCore             	0x00000001096ddf79 WebCore::notifyChildNodeRemoved(WebCore::ContainerNode&amp;, WebCore::Node&amp;) + 105
17  com.apple.WebCore             	0x00000001096d0ee0 WebCore::ContainerNode::notifyChildRemoved(WebCore::Node&amp;, WebCore::Node*, WebCore::Node*, WebCore::ContainerNode::ChildChangeSource) + 48
18  com.apple.WebCore             	0x00000001096d2107 WebCore::ContainerNode::parserRemoveChild(WebCore::Node&amp;) + 279
19  com.apple.WebCore             	0x0000000109f45774 WebCore::insert(WebCore::HTMLConstructionSiteTask&amp;) + 196
20  com.apple.WebCore             	0x0000000109f4552e WebCore::executeInsertAlreadyParsedChildTask(WebCore::HTMLConstructionSiteTask&amp;) + 78
21  com.apple.WebCore             	0x0000000109f41b70 WebCore::executeTask(WebCore::HTMLConstructionSiteTask&amp;) + 80
22  com.apple.WebCore             	0x0000000109f41af5 WebCore::HTMLConstructionSite::executeQueuedTasks() + 133
23  com.apple.WebCore             	0x000000010a09735e WebCore::HTMLTreeBuilder::constructTree(WebCore::AtomicHTMLToken&amp;) + 478
24  com.apple.WebCore             	0x0000000109f71b43 WebCore::HTMLDocumentParser::constructTreeFromHTMLToken(WebCore::HTMLTokenizer::TokenPtr&amp;) + 131
25  com.apple.WebCore             	0x0000000109f71a4f WebCore::HTMLDocumentParser::pumpTokenizerLoop(WebCore::HTMLDocumentParser::SynchronousMode, bool, WebCore::PumpSession&amp;) + 1343
26  com.apple.WebCore             	0x0000000109f7075d WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 445
27  com.apple.WebCore             	0x0000000109f7035e WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) + 174
28  com.apple.WebCore             	0x0000000109f72403 WebCore::HTMLDocumentParser::append(WTF::RefPtr&lt;WTF::StringImpl&gt;&amp;&amp;) + 883
29  com.apple.WebCore             	0x0000000109988b8f WebCore::DecodedDataDocumentParser::flush(WebCore::DocumentWriter&amp;) + 143
30  com.apple.WebCore             	0x0000000109ac6884 WebCore::DocumentWriter::end() + 260
31  com.apple.WebCore             	0x0000000109a80a9e WebCore::DocumentLoader::finishedLoading(double) + 398
32  com.apple.WebCore             	0x0000000109a80885 WebCore::DocumentLoader::notifyFinished(WebCore::CachedResource*) + 389
33  com.apple.WebCore             	0x00000001095c15c2 WebCore::CachedResource::checkNotify() + 130
34  com.apple.WebCore             	0x00000001095c16d1 WebCore::CachedResource::finishLoading(WebCore::SharedBuffer*) + 49
35  com.apple.WebCore             	0x00000001095bce7a WebCore::CachedRawResource::finishLoading(WebCore::SharedBuffer*) + 218
36  com.apple.WebCore             	0x000000010b576934 WebCore::SubresourceLoader::didFinishLoading(double) + 532
37  com.apple.WebKit              	0x00000001033e9aa7 WebKit::WebResourceLoader::didFinishResourceLoad(double) + 151
38  com.apple.WebKit              	0x00000001033ef0f3 void IPC::callMemberFunctionImpl&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple&lt;double&gt;, 0ul&gt;(WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple&lt;double&gt;&amp;&amp;, std::index_sequence&lt;0ul&gt;) + 163
39  com.apple.WebKit              	0x00000001033ef048 void IPC::callMemberFunction&lt;WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double), std::__1::tuple&lt;double&gt;, std::make_index_sequence&lt;1ul&gt; &gt;(std::__1::tuple&lt;double&gt;&amp;&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double)) + 88
40  com.apple.WebKit              	0x00000001033ee162 void IPC::handleMessage&lt;Messages::WebResourceLoader::DidFinishResourceLoad, WebKit::WebResourceLoader, void (WebKit::WebResourceLoader::*)(double)&gt;(IPC::MessageDecoder&amp;, WebKit::WebResourceLoader*, void (WebKit::WebResourceLoader::*)(double)) + 226
41  com.apple.WebKit              	0x00000001033ed8dc WebKit::WebResourceLoader::didReceiveWebResourceLoaderMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) + 636
42  com.apple.WebKit              	0x0000000102dbc6c0 WebKit::NetworkProcessConnection::didReceiveMessage(IPC::Connection&amp;, IPC::MessageDecoder&amp;) + 160
43  com.apple.WebKit              	0x0000000102b4a5a3 IPC::Connection::dispatchMessage(IPC::MessageDecoder&amp;) + 51
44  com.apple.WebKit              	0x0000000102b413d1 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;) + 785
45  com.apple.WebKit              	0x0000000102b4ab9f IPC::Connection::dispatchOneMessage() + 1519
46  com.apple.WebKit              	0x0000000102b5bf0d IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::MessageDecoder, std::__1::default_delete&lt;IPC::MessageDecoder&gt; &gt;)::$_10::operator()() const + 29
47  com.apple.WebKit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1183742</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2016-04-14 10:30:09 -0700</bug_when>
    <thetext>I added some logging and here is what I see:
addElementById(test) 0x1207bcc30
getElementById(test)
getElementById(test)
addElementById(test) 0x1207bcc98
getElementById(test)
removeElementById(test) 0x1207bcc30
getElementById(test)
SHOULD NEVER BE REACHED

So we add 2 separate elements with the id &apos;test&apos; to the DocumentOrderedMap, then remove the first one, then crash when calling getElementById(&apos;test&apos;) because the map think there second element with the id &apos;test&apos; but cannot find it in the tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1217448</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-08-04 10:15:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/27702012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382075</commentid>
    <comment_count>5</comment_count>
      <attachid>329465</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-14 23:05:21 -0800</bug_when>
    <thetext>Created attachment 329465
Fixes the assertion failure</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382077</commentid>
    <comment_count>6</comment_count>
      <attachid>329465</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-14 23:49:26 -0800</bug_when>
    <thetext>Comment on attachment 329465
Fixes the assertion failure

Doesn&apos;t quite work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382078</commentid>
    <comment_count>7</comment_count>
      <attachid>329467</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-14 23:57:42 -0800</bug_when>
    <thetext>Created attachment 329467
Fixes the assertion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382976</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-18 16:41:44 -0800</bug_when>
    <thetext>Ping reviewers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382996</commentid>
    <comment_count>9</comment_count>
      <attachid>329467</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-12-18 17:25:46 -0800</bug_when>
    <thetext>Comment on attachment 329467
Fixes the assertion

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

Looks good! I assume the original assertion is still worth having around -- you&apos;ve just silenced instances of the assertion firing that were not really error conditions, right?

&gt; Source/WebCore/ChangeLog:11
&gt; +        attribute of the form associated element. When there are other elements with the same ID in the removed tree,

I feel like this first sentence is missing something. What happens with the very first element with the ID of the form content attribute? Is this just missing &quot;...form associated element was removed. When there are ...&quot;?

&gt; Source/WebCore/dom/ContainerNodeAlgorithms.h:29
&gt; +// FIXME: Delete this class after fixing FormAssociatedElement to avoid calling getElementById during a tree removal.

Should this be a Bugzilla with a number in the FIXME?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383012</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-18 18:14:56 -0800</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #9)
&gt; Comment on attachment 329467 [details]
&gt; Fixes the assertion
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=329467&amp;action=review
&gt; 
&gt; Looks good! I assume the original assertion is still worth having around --
&gt; you&apos;ve just silenced instances of the assertion firing that were not really
&gt; error conditions, right?

Right. This is an edge case which can get hit but doesn&apos;t result in any security or correct bug. 

&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        attribute of the form associated element. When there are other elements with the same ID in the removed tree,
&gt; 
&gt; I feel like this first sentence is missing something. What happens with the
&gt; very first element with the ID of the form content attribute? Is this just
&gt; missing &quot;...form associated element was removed. When there are ...&quot;?

Will revise.

&gt; &gt; Source/WebCore/dom/ContainerNodeAlgorithms.h:29
&gt; &gt; +// FIXME: Delete this class after fixing FormAssociatedElement to avoid calling getElementById during a tree removal.
&gt; 
&gt; Should this be a Bugzilla with a number in the FIXME?

I don&apos;t think it&apos;s worth the effort given we have a goal of fixing form associated elements in general. I can&apos;t think of a way of fixing this without rewriting the entire mechanism anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383044</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-18 20:15:37 -0800</bug_when>
    <thetext>Revised the first paragraph of the change log to:

The assertion failure was caused by FormAssociatedElement::findAssociatedForm calling TreeScope::getElementById for a form associated element inside FormAttributeTargetObserver::idTargetChanged during the removal of the owner form element, or the first non-form element with the matching ID. If there are other elements with the same ID in the removed tree at that moment, MapEntry&apos;s count for the ID can be higher than it needs to be since Element::removedFromAncestor has not been called on those elements yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383046</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2017-12-18 20:32:46 -0800</bug_when>
    <thetext>Committed r226095: &lt;https://trac.webkit.org/changeset/226095&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>240274</attachid>
            <date>2014-10-22 07:59:19 -0700</date>
            <delta_ts>2014-10-22 07:59:19 -0700</delta_ts>
            <desc>Test case</desc>
            <filename>crash.html</filename>
            <type>text/html</type>
            <size>118</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxhPgogICAgPHA+CiAgICAgICAgPGI+CiAgICAgICAgICAgIDx1IGlk
PSJ0ZXN0Ii8+CiAgICAgICAgICAgIDxrZXlnZW4gZm9ybT0idGVzdCIvPgogICAgICAgIDwvYj4K
PC9hPg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329465</attachid>
            <date>2017-12-14 23:05:21 -0800</date>
            <delta_ts>2017-12-14 23:49:26 -0800</delta_ts>
            <desc>Fixes the assertion failure</desc>
            <filename>bug-137959-20171214230521.patch</filename>
            <type>text/plain</type>
            <size>10856</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE3LTEyLTE0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFzc2VydGlvbiBoaXQgaW4gRG9j
dW1lbnRPcmRlcmVkTWFwOjpnZXQgd2hpbGUgcmVtb3ZpbmcgYSBmb3JtIGVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzk1OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjc3MDIwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIGFzc2VydGlvbiBmYWlsdXJlIHdhcyBjYXVzZWQgYnkg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpmaW5kQXNzb2NpYXRlZEZvcm0gY2FsbGluZyBUcmVlU2Nv
cGU6OmdldEVsZW1lbnRCeUlkCisgICAgICAgIGluc2lkZSBGb3JtQXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI6OmlkVGFyZ2V0Q2hhbmdlZCB3aGVuIHRoZSB2ZXJ5IGZpcnN0IGVsZW1lbnQgd2l0aCB0
aGUgSUQgb2YgdGhlIGZvcm0gY29udGVudAorICAgICAgICBhdHRyaWJ1dGUgb2YgdGhlIGZvcm0g
YXNzb2NpYXRlZCBlbGVtZW50LiBXaGVuIHRoZXJlIGFyZSBvdGhlciBlbGVtZW50cyB3aXRoIHRo
ZSBzYW1lIElEIGluIHRoZSByZW1vdmVkIHRyZWUsCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZWRG
cm9tQW5jZXN0b3IgaGFzIG5vdCBiZWVuIGNhbGxlZCBvbiB0aG9zZSBlbGVtZW50cywgYW5kIGNv
bnNlcXVlbnRseSwgTWFwRW50cnkncyBjb3VudCBmb3IKKyAgICAgICAgdGhlIElEIGNhbiBiZSBv
dXQtb2Ytc3luYyB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVsZW1lbnRzIHdpdGggdGhlIElE
LgorCisgICAgICAgIEZpeGVkIHRoZSBidWcgYnkgY2hlY2tpbmcgdGhpcyBjb25kaXRpb24gZXhw
bGljaXRseS4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNjb3Bl
IHdoaWNoCisgICAgICAgIGtlZXBzIHRyYWNrIG9mIHRoZSBjb250YWluZXIgbm9kZSBmcm9tIHdo
aWNoIGEgc3VidHJlZSB3YXMgcmVtb3ZlZCBhcyB3ZWxsIGFzIHRoZSByb290IG9mIHRoZSByZW1v
dmVkIHN1YnRyZWUuCisgICAgICAgIERvY3VtZW50T3JkZXJlZE1hcDo6Z2V0IHRoZW4gY2hlY2tz
IHdoZXRoZXIgdGhlIG1hdGNoaW5nIGVsZW1lbnQgY2FuIGJlIGZvdW5kIGluIHRoaXMgcmVtb3Zl
ZCBzdWJ0cmVlLCBhbmQgaXRzCisgICAgICAgIGlzQ29ubmVjdGVkKCkgc3RpbGwgcmV0dXJucyB0
cnVlICh0aGUgZXZpZGVuY2UgdGhhdCBFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yIGhhcyBu
b3QgYmVlbiBjYWxsZWQpIHdoZW4KKyAgICAgICAgY291bnQgPiAwIGFuZCB0aGVyZSB3YXMgbm8g
bWF0Y2hpbmcgZWxlbWVudCBpbiB0aGUgdHJlZSBzY29wZS4KKworICAgICAgICBJbiB0aGUgbG9u
ZyB0ZXJtLCB3ZSBzaG91bGQgcmVmYWN0b3IgdGhlIHdheSBGb3JtQXNzb2NpYXRlZEVsZW1lbnQg
YW5kIEhUTUxGb3JtRWxlbWVudCByZWZlcnMgdG8gZWFjaCBvdGhlcgorICAgICAgICBhbmQgYXZv
aWQgY2FsbGluZyBEb2N1bWVudE9yZGVyZWRNYXA6OmdldCBiZWZvcmUgZmluaXNoIGNhbGxpbmcg
cmVtb3ZlZEZyb21BbmNlc3RvciBvbiB0aGUgcmVtb3ZlZCBzdWJ0cmVlLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0
aW9uLWZhaWx1cmUtNS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL3VwZGF0ZS1mb3Jt
LW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNi5odG1sCisKKyAgICAg
ICAgKiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bm90aWZ5Q2hpbGROb2RlUmVtb3ZlZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJDaGlsZFJlbW92YWxTY29wZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OkNv
bnRhaW5lckNoaWxkUmVtb3ZhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lckNo
aWxkUmVtb3ZhbFNjb3BlOjp+Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnBhcmVudE9mUmVtb3ZlZFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnJlbW92ZWRD
aGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJDaGlsZFJlbW92YWxTY29wZTo6Y3Vy
cmVudFNjb3BlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50T3JkZXJlZE1hcDo6Z2V0IGNvbnN0KTogQWRkZWQgYSBzcGVj
aWFsIGVhcmx5IGV4aXQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcKKyAgICAg
ICAgYSBub2RlIHJlbW92YWwuCisKIDIwMTctMTItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA8aWZyYW1lIGFsbG93PSJjYW1lcmE7IG1p
Y3JvcGhvbmUiPgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFs
Z29yaXRobXMuY3BwCShyZXZpc2lvbiAyMjU5NjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECitDb250YWlu
ZXJDaGlsZFJlbW92YWxTY29wZSogQ29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnNfc2NvcGUg
PSBudWxscHRyOworI2VuZGlmCisKIGVudW0gY2xhc3MgVHJlZVNjb3BlQ2hhbmdlIHsgQ2hhbmdl
ZCwgRGlkTm90Q2hhbmdlIH07CiAKIHN0YXRpYyB2b2lkIG5vdGlmeU5vZGVJbnNlcnRlZEludG9E
b2N1bWVudChDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSwgTm9kZSYgbm9kZSwg
VHJlZVNjb3BlQ2hhbmdlIHRyZWVTY29wZUNoYW5nZSwgTm9kZVZlY3RvciYgcG9zdEluc2VydGlv
bk5vdGlmaWNhdGlvblRhcmdldHMpCkBAIC0xNDksNiArMTUzLDcgQEAgdm9pZCBub3RpZnlDaGls
ZE5vZGVSZW1vdmVkKENvbnRhaW5lck5vZAogewogICAgIC8vIEFzc2VydCB0aGF0IHRoZSBjYWxs
ZXIgb2YgdGhpcyBmdW5jdGlvbiBoYXMgYW4gaW5zdGFuY2Ugb2YgTm9FdmVudERpc3BhdGNoQXNz
ZXJ0aW9uLgogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkgfHwgIU5vRXZlbnREaXNwYXRjaEFz
c2VydGlvbjo6SW5NYWluVGhyZWFkOjppc0V2ZW50QWxsb3dlZCgpKTsKKyAgICBDb250YWluZXJD
aGlsZFJlbW92YWxTY29wZSByZW1vdmFsU2NvcGUob2xkUGFyZW50T2ZSZW1vdmVkVHJlZSwgY2hp
bGQpOwogCiAgICAgLy8gVHJlZSBzY29wZSBoYXMgY2hhbmdlZCBpZiB0aGUgY29udGFpbmVyIG5v
ZGUgZnJvbSB3aGljaCAibm9kZSIgaXMgcmVtb3ZlZCBpcyBpbiBhIGRvY3VtZW50IG9yIGEgc2hh
ZG93IHJvb3QuCiAgICAgYXV0byB0cmVlU2NvcGVDaGFuZ2UgPSBvbGRQYXJlbnRPZlJlbW92ZWRU
cmVlLmlzSW5UcmVlU2NvcGUoKSA/IFRyZWVTY29wZUNoYW5nZTo6Q2hhbmdlZCA6IFRyZWVTY29w
ZUNoYW5nZTo6RGlkTm90Q2hhbmdlOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGVBbGdvcml0aG1zLmgJKHJldmlzaW9uIDIyNTk2MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw0MCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBEZWxldGUgdGhpcyBj
bGFzcyBhZnRlciBmaXhpbmcgRm9ybUFzc29jaWF0ZWRFbGVtZW50IHRvIGF2b2lkIGNhbGxpbmcg
Z2V0RWxlbWVudEJ5SWQgZHVyaW5nIGEgdHJlZSByZW1vdmFsLgorI2lmICFBU1NFUlRfRElTQUJM
RUQKK2NsYXNzIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNjb3BlIHsKK3B1YmxpYzoKKyAgICBDb250
YWluZXJDaGlsZFJlbW92YWxTY29wZShDb250YWluZXJOb2RlJiBwYXJlbnRPZlJlbW92ZWRUcmVl
LCBOb2RlJiBjaGlsZCkKKyAgICAgICAgOiBtX3BhcmVudE9mUmVtb3ZlZFRyZWUocGFyZW50T2ZS
ZW1vdmVkVHJlZSkKKyAgICAgICAgLCBtX3JlbW92ZWRDaGlsZChjaGlsZCkKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghc19zY29wZSk7CisgICAgICAgIHNfc2NvcGUgPSB0aGlzOworICAgIH0KKwor
ICAgIH5Db250YWluZXJDaGlsZFJlbW92YWxTY29wZSgpCisgICAgeworICAgICAgICBzX3Njb3Bl
ID0gbnVsbHB0cjsKKyAgICB9CisKKyAgICBDb250YWluZXJOb2RlJiBwYXJlbnRPZlJlbW92ZWRU
cmVlKCkgeyByZXR1cm4gbV9wYXJlbnRPZlJlbW92ZWRUcmVlOyB9CisgICAgTm9kZSYgcmVtb3Zl
ZENoaWxkKCkgeyByZXR1cm4gbV9yZW1vdmVkQ2hpbGQ7IH0KKworICAgIHN0YXRpYyBDb250YWlu
ZXJDaGlsZFJlbW92YWxTY29wZSogY3VycmVudFNjb3BlKCkgeyByZXR1cm4gc19zY29wZTsgfQor
Citwcml2YXRlOgorICAgIENvbnRhaW5lck5vZGUmIG1fcGFyZW50T2ZSZW1vdmVkVHJlZTsKKyAg
ICBOb2RlJiBtX3JlbW92ZWRDaGlsZDsKKyAgICBzdGF0aWMgQ29udGFpbmVyQ2hpbGRSZW1vdmFs
U2NvcGUqIHNfc2NvcGU7Cit9OworI2Vsc2UKK2NsYXNzIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNj
b3BlIHsKK3B1YmxpYzoKKyAgICBDb250YWluZXJDaGlsZFJlbW92YWxTY29wZShDb250YWluZXJO
b2RlJiwgTm9kZSYpIHsgfQorfTsKKyNlbmRpZgorCiBOb2RlVmVjdG9yIG5vdGlmeUNoaWxkTm9k
ZUluc2VydGVkKENvbnRhaW5lck5vZGUmIHBhcmVudE9mSW5zZXJ0ZWRUcmVlLCBOb2RlJik7CiB2
b2lkIG5vdGlmeUNoaWxkTm9kZVJlbW92ZWQoQ29udGFpbmVyTm9kZSYgb2xkUGFyZW50T2ZSZW1v
dmVkVHJlZSwgTm9kZSYpOwogdm9pZCByZW1vdmVEZXRhY2hlZENoaWxkcmVuSW5Db250YWluZXIo
Q29udGFpbmVyTm9kZSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJl
ZE1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50T3JkZXJl
ZE1hcC5jcHAJKHJldmlzaW9uIDIyNTk2MCkKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dE9yZGVyZWRNYXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRPcmRlcmVkTWFwLmgiCiAKKyNpbmNsdWRl
ICJDb250YWluZXJOb2RlQWxnb3JpdGhtcy5oIgogI2luY2x1ZGUgIkVsZW1lbnRJdGVyYXRvci5o
IgogI2luY2x1ZGUgIkhUTUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTGFiZWxFbGVt
ZW50LmgiCkBAIC0xMjAsNyArMTIxLDI0IEBAIGlubGluZSBFbGVtZW50KiBEb2N1bWVudE9yZGVy
ZWRNYXA6OmdldCgKICAgICAgICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oZW50
cnkucmVnaXN0ZXJlZEVsZW1lbnRzLmNvbnRhaW5zKGVudHJ5LmVsZW1lbnQpKTsKICAgICAgICAg
cmV0dXJuICZlbGVtZW50OwogICAgIH0KKworI2lmICFBU1NFUlRfRElTQUJMRUQKKyAgICAvLyBG
b3JtQXNzb2NpYXRlZEVsZW1lbnQgbWF5IGNhbGwgZ2V0RWxlbWVudEJ5SWQgdG8gZmluZCBpdHMg
b3duZXIgZm9ybSBpbiB0aGUgbWlkZGxlIG9mIGEgdHJlZSByZW1vdmFsLgorICAgIGlmIChhdXRv
KiBjdXJyZW50U2NvcGUgPSBDb250YWluZXJDaGlsZFJlbW92YWxTY29wZTo6Y3VycmVudFNjb3Bl
KCkpIHsKKyAgICAgICAgQVNTRVJUKCZzY29wZS5yb290Tm9kZSgpID09ICZjdXJyZW50U2NvcGUt
PnBhcmVudE9mUmVtb3ZlZFRyZWUoKS5yb290Tm9kZSgpKTsKKyAgICAgICAgTm9kZSYgcmVtb3Zl
ZFRyZWUgPSBjdXJyZW50U2NvcGUtPnJlbW92ZWRDaGlsZCgpOworICAgICAgICBBU1NFUlQoaXM8
Q29udGFpbmVyTm9kZT4ocmVtb3ZlZFRyZWUpKTsKKyAgICAgICAgZm9yIChhdXRvJiBlbGVtZW50
IDogZGVzY2VuZGFudHNPZlR5cGU8RWxlbWVudD4oZG93bmNhc3Q8Q29udGFpbmVyTm9kZT4ocmVt
b3ZlZFRyZWUpKSkgeworICAgICAgICAgICAgaWYgKCFrZXlNYXRjaGVzKGtleSwgZWxlbWVudCkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBib29sIHJlbW92ZWRGcm9t
QW5jZXN0b3JIYXNOb3RCZWVuQ2FsbGVkWWV0ID0gZWxlbWVudC5pc0Nvbm5lY3RlZCgpOworICAg
ICAgICAgICAgQVNTRVJUKHJlbW92ZWRGcm9tQW5jZXN0b3JIYXNOb3RCZWVuQ2FsbGVkWWV0KTsK
KyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICB9CisgICAgfQogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworI2VuZGlmCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjI1OTYwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMTItMTQgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgQXNzZXJ0aW9uIGhpdCBpbiBEb2N1bWVudE9yZGVyZWRN
YXA6OmdldCB3aGlsZSByZW1vdmluZyBhIGZvcm0gZWxlbWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3OTU5CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yNzcwMjAxMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRlZCByZWdyZXNzaW9uIHRlc3RzIGZvciByZW1vdmluZyBhIHN1YnRyZWUgd2l0
aCBhIGZvcm0gYXNzb2NpYXRlZCBlbGVtZW50LCBpdHMgb3duZXIgZm9ybSBlbGVtZW50CisgICAg
ICAgIGFuZCBhbm90aGVyIGVsZW1lbnQgd2l0aCB0aGUgc2FtZSBJRC4KKworICAgICAgICAqIGZh
c3QvZm9ybXMvdXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFp
bHVyZS01LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy91cGRhdGUt
Zm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJlLTUuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0
cmVlLWFzc2VydGlvbi1mYWlsdXJlLTYtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZh
aWx1cmUtNi5odG1sOiBBZGRlZC4KKwogMjAxNy0xMi0xNCAgWmFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIEluY29uc2lzdGVudCBzZWN0aW9uIGdyaWQgY291bGQgbGVh
ZCB0byBDcmFzaE9uT3ZlcmZsb3cKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdXBkYXRl
LWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS01LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93
bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNS1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1p
bi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJlLTUtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0cyByZW1vdmluZyBhIHN1YnRyZWUgY29u
dGFpbmluZyBhIGZvcm0gYXNzb2NpYXRlZCBlbGVtZW50IHdpdGggdHdvIG5vbi1mb3JtIGVsZW1l
bnRzIHdpdGggbWF0Y2hpbmcgSUQuCitUaGUgdGVzdCBwYXNzc2VzIGlmIFdlYktpdCBkb2Vzbid0
IGhpdCBhIGRlYnVnIGFzc2VydGlvbi4KKworUEFTUy4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
Zm9ybXMvdXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVy
ZS01Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy91cGRhdGUtZm9y
bS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJlLTUuaHRtbAkobm9uZXhp
c3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1v
dmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGJvZHk+Cis8YT4KKyAgICA8cD4KKyAgICAg
ICAgPGI+CisgICAgICAgICAgICA8dSBpZD0idGVzdCIvPgorICAgICAgICAgICAgPGtleWdlbiBm
b3JtPSJ0ZXN0Ii8+CisgICAgICAgIDwvYj4KKzwvYT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisKK2RvY3VtZW50LmJvZHku
aW5uZXJUZXh0ID0gYFRoaXMgdGVzdHMgcmVtb3ZpbmcgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgYSBm
b3JtIGFzc29jaWF0ZWQgZWxlbWVudCB3aXRoIHR3byBub24tZm9ybSBlbGVtZW50cyB3aXRoIG1h
dGNoaW5nIElELgorVGhlIHRlc3QgcGFzc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBoaXQgYSBkZWJ1
ZyBhc3NlcnRpb24uCisKK1BBU1MuYDsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWls
dXJlLTYtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
dXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS02LWV4
cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3VwZGF0
ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNi1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHJlbW92aW5n
IGEgc3VidHJlZSBjb250YWluaW5nIGEgZm9ybSBhc3NvY2lhdGVkIGVsZW1lbnQgd2l0aCB0d28g
Zm9ybSBlbGVtZW50cyB3aXRoIG1hdGNoaW5nIElELgorVGhlIHRlc3QgcGFzc3NlcyBpZiBXZWJL
aXQgZG9lc24ndCBoaXQgYSBkZWJ1ZyBhc3NlcnRpb24uCitQQVNTLgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlv
bi1mYWlsdXJlLTYuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Vw
ZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNi5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdXBkYXRlLWZvcm0tb3du
ZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS02Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTAsMCArMSwxOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPGRp
diBpZD0iY29udGFpbmVyIj4KKyAgICA8Zm9ybSBpZD0idGVzdCI+PC9mb3JtPgorICAgIDxmb3Jt
IGlkPSJ0ZXN0Ij48L2Zvcm0+CisgICAgPGlucHV0IGZvcm09InRlc3QiPgorPC9kaXY+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworY29udGFpbmVyLnJlbW92ZSgpOworZG9jdW1lbnQud3JpdGUoYFRoaXMgdGVzdHMgcmVtb3Zp
bmcgYSBzdWJ0cmVlIGNvbnRhaW5pbmcgYSBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudCB3aXRoIHR3
byBmb3JtIGVsZW1lbnRzIHdpdGggbWF0Y2hpbmcgSUQuPGJyPgorVGhlIHRlc3QgcGFzc3NlcyBp
ZiBXZWJLaXQgZG9lc24ndCBoaXQgYSBkZWJ1ZyBhc3NlcnRpb24uPGJyPgorUEFTUy5gKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329467</attachid>
            <date>2017-12-14 23:57:42 -0800</date>
            <delta_ts>2017-12-18 17:25:46 -0800</delta_ts>
            <desc>Fixes the assertion</desc>
            <filename>bug-137959-20171214235742.patch</filename>
            <type>text/plain</type>
            <size>10923</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTk2NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDE3LTEyLTE0ICBSeW9zdWtl
IE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFzc2VydGlvbiBoaXQgaW4gRG9j
dW1lbnRPcmRlcmVkTWFwOjpnZXQgd2hpbGUgcmVtb3ZpbmcgYSBmb3JtIGVsZW1lbnQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzk1OQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjc3MDIwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhlIGFzc2VydGlvbiBmYWlsdXJlIHdhcyBjYXVzZWQgYnkg
Rm9ybUFzc29jaWF0ZWRFbGVtZW50OjpmaW5kQXNzb2NpYXRlZEZvcm0gY2FsbGluZyBUcmVlU2Nv
cGU6OmdldEVsZW1lbnRCeUlkCisgICAgICAgIGluc2lkZSBGb3JtQXR0cmlidXRlVGFyZ2V0T2Jz
ZXJ2ZXI6OmlkVGFyZ2V0Q2hhbmdlZCB3aGVuIHRoZSB2ZXJ5IGZpcnN0IGVsZW1lbnQgd2l0aCB0
aGUgSUQgb2YgdGhlIGZvcm0gY29udGVudAorICAgICAgICBhdHRyaWJ1dGUgb2YgdGhlIGZvcm0g
YXNzb2NpYXRlZCBlbGVtZW50LiBXaGVuIHRoZXJlIGFyZSBvdGhlciBlbGVtZW50cyB3aXRoIHRo
ZSBzYW1lIElEIGluIHRoZSByZW1vdmVkIHRyZWUsCisgICAgICAgIEVsZW1lbnQ6OnJlbW92ZWRG
cm9tQW5jZXN0b3IgaGFzIG5vdCBiZWVuIGNhbGxlZCBvbiB0aG9zZSBlbGVtZW50cywgYW5kIGNv
bnNlcXVlbnRseSwgTWFwRW50cnkncyBjb3VudCBmb3IKKyAgICAgICAgdGhlIElEIGNhbiBiZSBv
dXQtb2Ytc3luYyB3aXRoIHRoZSBhY3R1YWwgbnVtYmVyIG9mIGVsZW1lbnRzIHdpdGggdGhlIElE
LgorCisgICAgICAgIEZpeGVkIHRoZSBidWcgYnkgY2hlY2tpbmcgdGhpcyBjb25kaXRpb24gZXhw
bGljaXRseS4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNjb3Bl
IHdoaWNoCisgICAgICAgIGtlZXBzIHRyYWNrIG9mIHRoZSBjb250YWluZXIgbm9kZSBmcm9tIHdo
aWNoIGEgc3VidHJlZSB3YXMgcmVtb3ZlZCBhcyB3ZWxsIGFzIHRoZSByb290IG9mIHRoZSByZW1v
dmVkIHN1YnRyZWUuCisgICAgICAgIERvY3VtZW50T3JkZXJlZE1hcDo6Z2V0IHRoZW4gY2hlY2tz
IHdoZXRoZXIgdGhlIG1hdGNoaW5nIGVsZW1lbnQgY2FuIGJlIGZvdW5kIGluIHRoaXMgcmVtb3Zl
ZCBzdWJ0cmVlLCBhbmQgaXRzCisgICAgICAgIGlzQ29ubmVjdGVkKCkgc3RpbGwgcmV0dXJucyB0
cnVlICh0aGUgZXZpZGVuY2UgdGhhdCBFbGVtZW50OjpyZW1vdmVkRnJvbUFuY2VzdG9yIGhhcyBu
b3QgYmVlbiBjYWxsZWQpIHdoZW4KKyAgICAgICAgY291bnQgPiAwIGFuZCB0aGVyZSB3YXMgbm8g
bWF0Y2hpbmcgZWxlbWVudCBpbiB0aGUgdHJlZSBzY29wZS4KKworICAgICAgICBJbiB0aGUgbG9u
ZyB0ZXJtLCB3ZSBzaG91bGQgcmVmYWN0b3IgdGhlIHdheSBGb3JtQXNzb2NpYXRlZEVsZW1lbnQg
YW5kIEhUTUxGb3JtRWxlbWVudCByZWZlcnMgdG8gZWFjaCBvdGhlcgorICAgICAgICBhbmQgYXZv
aWQgY2FsbGluZyBEb2N1bWVudE9yZGVyZWRNYXA6OmdldCBiZWZvcmUgZmluaXNoIGNhbGxpbmcg
cmVtb3ZlZEZyb21BbmNlc3RvciBvbiB0aGUgcmVtb3ZlZCBzdWJ0cmVlLgorCisgICAgICAgIFRl
c3RzOiBmYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0
aW9uLWZhaWx1cmUtNS5odG1sCisgICAgICAgICAgICAgICBmYXN0L2Zvcm1zL3VwZGF0ZS1mb3Jt
LW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNi5odG1sCisKKyAgICAg
ICAgKiBkb20vQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bm90aWZ5Q2hpbGROb2RlUmVtb3ZlZCk6CisgICAgICAgICogZG9tL0NvbnRhaW5lck5vZGVBbGdv
cml0aG1zLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJDaGlsZFJlbW92YWxTY29wZSk6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OkNv
bnRhaW5lckNoaWxkUmVtb3ZhbFNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lckNo
aWxkUmVtb3ZhbFNjb3BlOjp+Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnBhcmVudE9mUmVtb3ZlZFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnJlbW92ZWRD
aGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJDaGlsZFJlbW92YWxTY29wZTo6Y3Vy
cmVudFNjb3BlKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50T3JkZXJlZE1hcDo6Z2V0IGNvbnN0KTogQWRkZWQgYSBzcGVj
aWFsIGVhcmx5IGV4aXQgd2hlbiB0aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBkdXJpbmcKKyAgICAg
ICAgYSBub2RlIHJlbW92YWwuCisKIDIwMTctMTItMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCA8aWZyYW1lIGFsbG93PSJjYW1lcmE7IG1p
Y3JvcGhvbmUiPgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGVBbGdvcml0
aG1zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZUFs
Z29yaXRobXMuY3BwCShyZXZpc2lvbiAyMjU5NjApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZUFsZ29yaXRobXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSwxMCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiAhQVNTRVJUX0RJU0FCTEVECitDb250YWlu
ZXJDaGlsZFJlbW92YWxTY29wZSogQ29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OnNfc2NvcGUg
PSBudWxscHRyOworI2VuZGlmCisKIGVudW0gY2xhc3MgVHJlZVNjb3BlQ2hhbmdlIHsgQ2hhbmdl
ZCwgRGlkTm90Q2hhbmdlIH07CiAKIHN0YXRpYyB2b2lkIG5vdGlmeU5vZGVJbnNlcnRlZEludG9E
b2N1bWVudChDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSwgTm9kZSYgbm9kZSwg
VHJlZVNjb3BlQ2hhbmdlIHRyZWVTY29wZUNoYW5nZSwgTm9kZVZlY3RvciYgcG9zdEluc2VydGlv
bk5vdGlmaWNhdGlvblRhcmdldHMpCkBAIC0xNDksNiArMTUzLDcgQEAgdm9pZCBub3RpZnlDaGls
ZE5vZGVSZW1vdmVkKENvbnRhaW5lck5vZAogewogICAgIC8vIEFzc2VydCB0aGF0IHRoZSBjYWxs
ZXIgb2YgdGhpcyBmdW5jdGlvbiBoYXMgYW4gaW5zdGFuY2Ugb2YgTm9FdmVudERpc3BhdGNoQXNz
ZXJ0aW9uLgogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkgfHwgIU5vRXZlbnREaXNwYXRjaEFz
c2VydGlvbjo6SW5NYWluVGhyZWFkOjppc0V2ZW50QWxsb3dlZCgpKTsKKyAgICBDb250YWluZXJD
aGlsZFJlbW92YWxTY29wZSByZW1vdmFsU2NvcGUob2xkUGFyZW50T2ZSZW1vdmVkVHJlZSwgY2hp
bGQpOwogCiAgICAgLy8gVHJlZSBzY29wZSBoYXMgY2hhbmdlZCBpZiB0aGUgY29udGFpbmVyIG5v
ZGUgZnJvbSB3aGljaCAibm9kZSIgaXMgcmVtb3ZlZCBpcyBpbiBhIGRvY3VtZW50IG9yIGEgc2hh
ZG93IHJvb3QuCiAgICAgYXV0byB0cmVlU2NvcGVDaGFuZ2UgPSBvbGRQYXJlbnRPZlJlbW92ZWRU
cmVlLmlzSW5UcmVlU2NvcGUoKSA/IFRyZWVTY29wZUNoYW5nZTo6Q2hhbmdlZCA6IFRyZWVTY29w
ZUNoYW5nZTo6RGlkTm90Q2hhbmdlOwpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGVBbGdvcml0aG1zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGVBbGdvcml0aG1zLmgJKHJldmlzaW9uIDIyNTk2MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2RvbS9Db250YWluZXJOb2RlQWxnb3JpdGhtcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsy
Niw0MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBEZWxldGUgdGhpcyBj
bGFzcyBhZnRlciBmaXhpbmcgRm9ybUFzc29jaWF0ZWRFbGVtZW50IHRvIGF2b2lkIGNhbGxpbmcg
Z2V0RWxlbWVudEJ5SWQgZHVyaW5nIGEgdHJlZSByZW1vdmFsLgorI2lmICFBU1NFUlRfRElTQUJM
RUQKK2NsYXNzIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNjb3BlIHsKK3B1YmxpYzoKKyAgICBDb250
YWluZXJDaGlsZFJlbW92YWxTY29wZShDb250YWluZXJOb2RlJiBwYXJlbnRPZlJlbW92ZWRUcmVl
LCBOb2RlJiBjaGlsZCkKKyAgICAgICAgOiBtX3BhcmVudE9mUmVtb3ZlZFRyZWUocGFyZW50T2ZS
ZW1vdmVkVHJlZSkKKyAgICAgICAgLCBtX3JlbW92ZWRDaGlsZChjaGlsZCkKKyAgICAgICAgLCBt
X3ByZXZpb3VzU2NvcGUoc19zY29wZSkKKyAgICB7CisgICAgICAgIHNfc2NvcGUgPSB0aGlzOwor
ICAgIH0KKworICAgIH5Db250YWluZXJDaGlsZFJlbW92YWxTY29wZSgpCisgICAgeworICAgICAg
ICBzX3Njb3BlID0gbV9wcmV2aW91c1Njb3BlOworICAgIH0KKworICAgIENvbnRhaW5lck5vZGUm
IHBhcmVudE9mUmVtb3ZlZFRyZWUoKSB7IHJldHVybiBtX3BhcmVudE9mUmVtb3ZlZFRyZWU7IH0K
KyAgICBOb2RlJiByZW1vdmVkQ2hpbGQoKSB7IHJldHVybiBtX3JlbW92ZWRDaGlsZDsgfQorCisg
ICAgc3RhdGljIENvbnRhaW5lckNoaWxkUmVtb3ZhbFNjb3BlKiBjdXJyZW50U2NvcGUoKSB7IHJl
dHVybiBzX3Njb3BlOyB9CisKK3ByaXZhdGU6CisgICAgQ29udGFpbmVyTm9kZSYgbV9wYXJlbnRP
ZlJlbW92ZWRUcmVlOworICAgIE5vZGUmIG1fcmVtb3ZlZENoaWxkOworICAgIENvbnRhaW5lckNo
aWxkUmVtb3ZhbFNjb3BlKiBtX3ByZXZpb3VzU2NvcGU7CisgICAgc3RhdGljIENvbnRhaW5lckNo
aWxkUmVtb3ZhbFNjb3BlKiBzX3Njb3BlOworfTsKKyNlbHNlCitjbGFzcyBDb250YWluZXJDaGls
ZFJlbW92YWxTY29wZSB7CitwdWJsaWM6CisgICAgQ29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGUo
Q29udGFpbmVyTm9kZSYsIE5vZGUmKSB7IH0KK307CisjZW5kaWYKKwogTm9kZVZlY3RvciBub3Rp
ZnlDaGlsZE5vZGVJbnNlcnRlZChDb250YWluZXJOb2RlJiBwYXJlbnRPZkluc2VydGVkVHJlZSwg
Tm9kZSYpOwogdm9pZCBub3RpZnlDaGlsZE5vZGVSZW1vdmVkKENvbnRhaW5lck5vZGUmIG9sZFBh
cmVudE9mUmVtb3ZlZFRyZWUsIE5vZGUmKTsKIHZvaWQgcmVtb3ZlRGV0YWNoZWRDaGlsZHJlbklu
Q29udGFpbmVyKENvbnRhaW5lck5vZGUmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE9yZGVyZWRNYXAuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudE9yZGVyZWRNYXAuY3BwCShyZXZpc2lvbiAyMjU5NjApCisrKyBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnRPcmRlcmVkTWFwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRvY3VtZW50T3JkZXJlZE1hcC5oIgog
CisjaW5jbHVkZSAiQ29udGFpbmVyTm9kZUFsZ29yaXRobXMuaCIKICNpbmNsdWRlICJFbGVtZW50
SXRlcmF0b3IuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TExhYmVsRWxlbWVudC5oIgpAQCAtMTIwLDcgKzEyMSwyNCBAQCBpbmxpbmUgRWxlbWVudCogRG9j
dW1lbnRPcmRlcmVkTWFwOjpnZXQoCiAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJ
Q0FUSU9OKGVudHJ5LnJlZ2lzdGVyZWRFbGVtZW50cy5jb250YWlucyhlbnRyeS5lbGVtZW50KSk7
CiAgICAgICAgIHJldHVybiAmZWxlbWVudDsKICAgICB9CisKKyNpZiAhQVNTRVJUX0RJU0FCTEVE
CisgICAgLy8gRm9ybUFzc29jaWF0ZWRFbGVtZW50IG1heSBjYWxsIGdldEVsZW1lbnRCeUlkIHRv
IGZpbmQgaXRzIG93bmVyIGZvcm0gaW4gdGhlIG1pZGRsZSBvZiBhIHRyZWUgcmVtb3ZhbC4KKyAg
ICBpZiAoYXV0byogY3VycmVudFNjb3BlID0gQ29udGFpbmVyQ2hpbGRSZW1vdmFsU2NvcGU6OmN1
cnJlbnRTY29wZSgpKSB7CisgICAgICAgIEFTU0VSVCgmc2NvcGUucm9vdE5vZGUoKSA9PSAmY3Vy
cmVudFNjb3BlLT5wYXJlbnRPZlJlbW92ZWRUcmVlKCkucm9vdE5vZGUoKSk7CisgICAgICAgIE5v
ZGUmIHJlbW92ZWRUcmVlID0gY3VycmVudFNjb3BlLT5yZW1vdmVkQ2hpbGQoKTsKKyAgICAgICAg
QVNTRVJUKGlzPENvbnRhaW5lck5vZGU+KHJlbW92ZWRUcmVlKSk7CisgICAgICAgIGZvciAoYXV0
byYgZWxlbWVudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPEVsZW1lbnQ+KGRvd25jYXN0PENvbnRhaW5l
ck5vZGU+KHJlbW92ZWRUcmVlKSkpIHsKKyAgICAgICAgICAgIGlmICgha2V5TWF0Y2hlcyhrZXks
IGVsZW1lbnQpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgYm9vbCBy
ZW1vdmVkRnJvbUFuY2VzdG9ySGFzTm90QmVlbkNhbGxlZFlldCA9IGVsZW1lbnQuaXNDb25uZWN0
ZWQoKTsKKyAgICAgICAgICAgIEFTU0VSVChyZW1vdmVkRnJvbUFuY2VzdG9ySGFzTm90QmVlbkNh
bGxlZFlldCk7CisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgfQorICAgIH0K
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorCiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNTk2MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE3LTEyLTE0ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIEFzc2VydGlvbiBoaXQgaW4gRG9jdW1l
bnRPcmRlcmVkTWFwOjpnZXQgd2hpbGUgcmVtb3ZpbmcgYSBmb3JtIGVsZW1lbnQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzk1OQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMjc3MDIwMTI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkZWQgcmVncmVzc2lvbiB0ZXN0cyBmb3IgcmVtb3ZpbmcgYSBz
dWJ0cmVlIHdpdGggYSBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudCwgaXRzIG93bmVyIGZvcm0gZWxl
bWVudAorICAgICAgICBhbmQgYW5vdGhlciBlbGVtZW50IHdpdGggdGhlIHNhbWUgSUQuCisKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNz
ZXJ0aW9uLWZhaWx1cmUtNS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9y
bXMvdXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS01
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvdXBkYXRlLWZvcm0tb3duZXItaW4t
bW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS02LWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFz
c2VydGlvbi1mYWlsdXJlLTYuaHRtbDogQWRkZWQuCisKIDIwMTctMTItMTQgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBJbmNvbnNpc3RlbnQgc2VjdGlvbiBncmlk
IGNvdWxkIGxlYWQgdG8gQ3Jhc2hPbk92ZXJmbG93CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zv
cm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUt
NS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy91cGRh
dGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJlLTUtZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdXBkYXRlLWZv
cm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS01LWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKK1RoaXMgdGVzdHMgcmVtb3ZpbmcgYSBz
dWJ0cmVlIGNvbnRhaW5pbmcgYSBmb3JtIGFzc29jaWF0ZWQgZWxlbWVudCB3aXRoIHR3byBub24t
Zm9ybSBlbGVtZW50cyB3aXRoIG1hdGNoaW5nIElELgorVGhlIHRlc3QgcGFzc3NlcyBpZiBXZWJL
aXQgZG9lc24ndCBoaXQgYSBkZWJ1ZyBhc3NlcnRpb24uCisKK1BBU1MuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0
aW9uLWZhaWx1cmUtNS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMv
dXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3NlcnRpb24tZmFpbHVyZS01Lmh0
bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy91cGRhdGUtZm9ybS1v
d25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJlLTUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxib2R5PgorPGE+CisgICAg
PHA+CisgICAgICAgIDxiPgorICAgICAgICAgICAgPHUgaWQ9InRlc3QiLz4KKyAgICAgICAgICAg
IDxrZXlnZW4gZm9ybT0idGVzdCIvPgorICAgICAgICA8L2I+Cis8L2E+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitkb2N1
bWVudC5ib2R5LmlubmVyVGV4dCA9IGBUaGlzIHRlc3RzIHJlbW92aW5nIGEgc3VidHJlZSBjb250
YWluaW5nIGEgZm9ybSBhc3NvY2lhdGVkIGVsZW1lbnQgd2l0aCB0d28gbm9uLWZvcm0gZWxlbWVu
dHMgd2l0aCBtYXRjaGluZyBJRC4KK1RoZSB0ZXN0IHBhc3NzZXMgaWYgV2ViS2l0IGRvZXNuJ3Qg
aGl0IGEgZGVidWcgYXNzZXJ0aW9uLgorCitQQVNTLmA7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvdXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJlZS1hc3Nl
cnRpb24tZmFpbHVyZS02LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2Zvcm1zL3VwZGF0ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZh
aWx1cmUtNi1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWlsdXJl
LTYtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0
cyByZW1vdmluZyBhIHN1YnRyZWUgY29udGFpbmluZyBhIGZvcm0gYXNzb2NpYXRlZCBlbGVtZW50
IHdpdGggdHdvIGZvcm0gZWxlbWVudHMgd2l0aCBtYXRjaGluZyBJRC4KK1RoZSB0ZXN0IHBhc3Nz
ZXMgaWYgV2ViS2l0IGRvZXNuJ3QgaGl0IGEgZGVidWcgYXNzZXJ0aW9uLgorUEFTUy4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvdXBkYXRlLWZvcm0tb3duZXItaW4tbW92ZWQtc3VidHJl
ZS1hc3NlcnRpb24tZmFpbHVyZS02Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy91cGRhdGUtZm9ybS1vd25lci1pbi1tb3ZlZC1zdWJ0cmVlLWFzc2VydGlvbi1mYWls
dXJlLTYuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3VwZGF0
ZS1mb3JtLW93bmVyLWluLW1vdmVkLXN1YnRyZWUtYXNzZXJ0aW9uLWZhaWx1cmUtNi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTggQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
Ym9keT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+CisgICAgPGZvcm0gaWQ9InRlc3QiPjwvZm9ybT4K
KyAgICA8Zm9ybSBpZD0idGVzdCI+PC9mb3JtPgorICAgIDxpbnB1dCBmb3JtPSJ0ZXN0Ij4KKzwv
ZGl2PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKK2NvbnRhaW5lci5yZW1vdmUoKTsKK2RvY3VtZW50LndyaXRlKGBUaGlzIHRl
c3RzIHJlbW92aW5nIGEgc3VidHJlZSBjb250YWluaW5nIGEgZm9ybSBhc3NvY2lhdGVkIGVsZW1l
bnQgd2l0aCB0d28gZm9ybSBlbGVtZW50cyB3aXRoIG1hdGNoaW5nIElELjxicj4KK1RoZSB0ZXN0
IHBhc3NzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgaGl0IGEgZGVidWcgYXNzZXJ0aW9uLjxicj4KK1BB
U1MuYCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="348555"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
          </attachment>
      

    </bug>

</bugzilla>