<?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>130317</bug_id>
          
          <creation_ts>2014-03-16 20:16:48 -0700</creation_ts>
          <short_desc>Remove most uses of deprecatedCharacters in WTF</short_desc>
          <delta_ts>2014-03-17 20:00:32 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>130367</dependson>
          <blocked>126854</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>kling</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991074</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-16 20:16:48 -0700</bug_when>
    <thetext>Remove most uses of deprecatedCharacter in WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991075</commentid>
    <comment_count>1</comment_count>
      <attachid>226873</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-16 20:23:14 -0700</bug_when>
    <thetext>Created attachment 226873
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991084</commentid>
    <comment_count>2</comment_count>
      <attachid>226873</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-16 21:34:05 -0700</bug_when>
    <thetext>Comment on attachment 226873
Patch

r=me! (Read this earlier, was just waiting for mac ewe to go green.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991110</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-16 23:37:26 -0700</bug_when>
    <thetext>Committed r165721: &lt;http://trac.webkit.org/changeset/165721&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991274</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 10:08:36 -0700</bug_when>
    <thetext>I think this may be asserting flakily on bots:

ASSERTION FAILED: !lookupForWriting(Extractor::extract(entry)).second
/Volumes/Data/slave/mavericks-debug/build/WebKitBuild/Debug/usr/local/include/wtf/HashTable.h(911) : ValueType *WTF::HashTable&lt;WTF::StringImpl *, WTF::StringImpl *, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl *&gt;, WTF::HashTraits&lt;WTF::StringImpl *&gt; &gt;::reinsert(ValueType &amp;&amp;) [Key = WTF::StringImpl *, Value = WTF::StringImpl *, Extractor = WTF::IdentityExtractor, HashFunctions = WTF::StringHash, Traits = WTF::HashTraits&lt;WTF::StringImpl *&gt;, KeyTraits = WTF::HashTraits&lt;WTF::StringImpl *&gt;]
1   0x10c719920 WTFCrash
2   0x10c357025 WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::reinsert(WTF::StringImpl*&amp;&amp;)
3   0x10c356e78 WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::rehash(int, WTF::StringImpl**)
4   0x10c355658 WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::expand(WTF::StringImpl**)
5   0x10c71e26d WTF::HashTableAddResult&lt;WTF::HashTableIterator&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt; &gt; WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::add&lt;WTF::IdentityHashTranslator&lt;WTF::StringHash&gt;, WTF::StringImpl* const&amp;, WTF::StringImpl* const&amp;&gt;(WTF::StringImpl* const&amp;&amp;&amp;, WTF::StringImpl* const&amp;&amp;&amp;)
6   0x10c71e003 WTF::HashTable&lt;WTF::StringImpl*, WTF::StringImpl*, WTF::IdentityExtractor, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt;, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::add(WTF::StringImpl* const&amp;)
7   0x10c71c344 WTF::HashSet&lt;WTF::StringImpl*, WTF::StringHash, WTF::HashTraits&lt;WTF::StringImpl*&gt; &gt;::add(WTF::StringImpl* const&amp;)
8   0x10c71b6af WTF::AtomicString::addSlowCase(WTF::StringImpl*)
9   0x10d89a5f0 WTF::AtomicString::add(WTF::StringImpl*)
10  0x10d89a520 WTF::AtomicString::AtomicString(WTF::String const&amp;)
11  0x10d8927ad WTF::AtomicString::AtomicString(WTF::String const&amp;)
12  0x10e7201e6 WebCore::jsElementPrototypeFunctionSetAttributeNS(JSC::ExecState*)
13  0x2be695a01034
14  0x2be695a0955a
15  0x2be695a0a140
16  0x10c535db6 llint_op_call
17  0x10c52fe74 callToJavaScript
18  0x10c3cb41d JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
19  0x10c3af828 JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*)
20  0x10c0e308f JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*)
21  0x10e8b50b2 WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*)
22  0x10f2b345d WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld&amp;)
23  0x10f2b35a4 WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;)
24  0x10f2c325b WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;)
25  0x10f2c1fe0 WebCore::ScriptElement::prepareScript(WTF::TextPosition const&amp;, WebCore::ScriptElement::LegacyTypeSupport)
26  0x10e212979 WebCore::HTMLScriptRunner::runScript(WebCore::Element*, WTF::TextPosition const&amp;)
27  0x10e212789 WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;)
28  0x10e158dad WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder()
29  0x10e158ef8 WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&amp;)
30  0x10e15807f WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode)
31  0x10e157b09 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991431</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-17 15:55:52 -0700</bug_when>
    <thetext>I cannot find Darin, let&apos;s rollout until he can have a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991434</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 16:00:40 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 130367</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991515</commentid>
    <comment_count>7</comment_count>
      <attachid>226873</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-17 19:56:50 -0700</bug_when>
    <thetext>Comment on attachment 226873
Patch

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

&gt; Source/WTF/wtf/unicode/UTF8.cpp:473
&gt; +        if ((b[0] &amp; 0xE0) != 0xC0 || (b[1] &amp; 0xC0) != 80)

Found the problem. This says &quot;80&quot; instead of &quot;0x80&quot;!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991517</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-03-17 20:00:32 -0700</bug_when>
    <thetext>Committed r165792: &lt;http://trac.webkit.org/changeset/165792&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226873</attachid>
            <date>2014-03-16 20:23:14 -0700</date>
            <delta_ts>2014-03-17 19:56:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130317-20140316202254.patch</filename>
            <type>text/plain</type>
            <size>11913</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1NzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDA3N2Q2ZmIxZTIyZjgwZDBlZWJmMzM2
MTVkYjZkOTg1MWZhNWNiNzcuLmY2M2U3OWQ3MjkyM2QyMjkyNjEzZTFlNTE3MDMzYTRkZTJkZDY1
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTQtMDMtMTYgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBtb3N0IHVzZXMgb2YgZGVwcmVjYXRlZENoYXJh
Y3RlciBpbiBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEzMDMxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcDoKKyAgICAgICAgKFdURjo6SGFzaEFuZFVU
RjhDaGFyYWN0ZXJzVHJhbnNsYXRvcjo6ZXF1YWwpOiBBZGQgYW4gOC1iaXQgY29kZSBwYXRoIHRv
IHRoZQorICAgICAgICBub24tQVNDSUkgcGF0aC4KKyAgICAgICAgKFdURjo6U3Vic3RyaW5nVHJh
bnNsYXRvcjg6Omhhc2gpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6U3Vic3RyaW5nVHJhbnNsYXRv
cjg6OmVxdWFsKTogQWRkZWQuCisgICAgICAgIChXVEY6OlN1YnN0cmluZ1RyYW5zbGF0b3IxNjo6
aGFzaCk6IFJlbmFtZWQgY2xhc3MuCisgICAgICAgIChXVEY6OlN1YnN0cmluZ1RyYW5zbGF0b3Ix
Njo6ZXF1YWwpOiBEaXR0by4KKyAgICAgICAgKFdURjo6QXRvbWljU3RyaW5nOjphZGQpOiBBZGRl
ZCBhbiA4LWJpdCBjb2RlIHBhdGggdG8gdGhlIHN1YnN0cmluZyBjYXNlLgorCisgICAgICAgICog
d3RmL3RleHQvQmFzZTY0LmNwcDoKKyAgICAgICAgKFdURjo6YmFzZTY0RGVjb2RlKTogQWRkZWQg
YW4gOCBiaXQgY29kZSBwYXRoLgorICAgICAgICAoV1RGOjpiYXNlNjRVUkxEZWNvZGUpOiBEaXR0
by4KKworICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwOgorICAgICAgICAoV1RGOjpT
dHJpbmdJbXBsOjpmaW5kKTogRml4ZWQgYSBjYXNlIHRoYXQgd2FzIGluY29ycmVjdGx5IHVzaW5n
IGNoYXJhY3RlcnMxNgorICAgICAgICB3aXRob3V0IGZpcnN0IHVzaW5nIGlzOEJpdC4gTmVlZCB0
byByZXR1cm4gbGF0ZXIgdG8gcmVtb3ZlIHVzZSBvZiBkZXByZWNhdGVkQ2hhcmFjdGVycy4KKwor
ICAgICAgICAqIHd0Zi91bmljb2RlL1VURjguY3BwOgorICAgICAgICAoV1RGOjpVbmljb2RlOjpl
cXVhbFVURjE2V2l0aFVURjgpOiBBZGRlZCBhIGNhc2UgZm9yIHdoZW4gdGhlIFVURi0xNiBjaGFy
YWN0ZXJzCisgICAgICAgIGFyZSBBU0NJSS4gQWxzbyByZW1vdmVkIHRoZSBhRW5kIGFyZ3VtZW50
LCBzaW5jZSB0aGUgY2FsbGVyIG9ubHkgY2FsbHMgdGhpcyB3aGVuIHRoZQorICAgICAgICBsZW5n
dGhzIGFyZSBlcXVhbC4KKyAgICAgICAgKFdURjo6VW5pY29kZTo6ZXF1YWxMYXRpbjFXaXRoVVRG
OCk6IEFkZGVkLgorICAgICAgICAqIHd0Zi91bmljb2RlL1VURjguaDogVXBkYXRlZCBhcyBkZXNj
cmliZWQgYWJvdmUuCisKIDIwMTQtMDMtMTYgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxl
LmNvbT4KIAogICAgICAgICBGb2xsb3ctdXA6IEZpeCB1bmRlZmluZWQgYmVoYXZpb3IgaW4gV1RG
OjplcXVhbCgpIGluIFN0cmluZ0ltcGwuaCBmb3IgaTM4Ni94ODZfNjQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3RleHQvQXRvbWljU3RyaW5nLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQv
QXRvbWljU3RyaW5nLmNwcAppbmRleCA4NWVkYzM2YTU4MWU2NWUzZjAxMTlmMWQxYzVkMTk1M2M4
OWFmNGNkLi44NzMyMDZlMGI2NTc1NTk0Mjg3MTYxMmU5YjkyNTA0NmI0ZGM2MGUzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0F0b21pY1N0cmluZy5jcHAKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9BdG9taWNTdHJpbmcuY3BwCkBAIC0xODcsOSArMTg3LDEwIEBAIHN0cnVjdCBI
YXNoQW5kVVRGOENoYXJhY3RlcnNUcmFuc2xhdG9yIHsKIAogICAgICAgICAvLyBJZiBidWZmZXIg
Y29udGFpbnMgb25seSBBU0NJSSBjaGFyYWN0ZXJzIFVURi04IGFuZCBVVEYxNiBsZW5ndGggYXJl
IHRoZSBzYW1lLgogICAgICAgICBpZiAoYnVmZmVyLnV0ZjE2TGVuZ3RoICE9IGJ1ZmZlci5sZW5n
dGgpIHsKLSAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBzdHJpbmdDaGFyYWN0ZXJzID0gc3RyaW5n
LT5kZXByZWNhdGVkQ2hhcmFjdGVycygpOworICAgICAgICAgICAgaWYgKHN0cmluZy0+aXM4Qml0
KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIGVxdWFsTGF0aW4xV2l0aFVURjgoc3RyaW5nLT5j
aGFyYWN0ZXJzOCgpLCBidWZmZXIuY2hhcmFjdGVycywgYnVmZmVyLmNoYXJhY3RlcnMgKyBidWZm
ZXIubGVuZ3RoKTsKIAotICAgICAgICAgICAgcmV0dXJuIGVxdWFsVVRGMTZXaXRoVVRGOChzdHJp
bmdDaGFyYWN0ZXJzLCBzdHJpbmdDaGFyYWN0ZXJzICsgc3RyaW5nLT5sZW5ndGgoKSwgYnVmZmVy
LmNoYXJhY3RlcnMsIGJ1ZmZlci5jaGFyYWN0ZXJzICsgYnVmZmVyLmxlbmd0aCk7CisgICAgICAg
ICAgICByZXR1cm4gZXF1YWxVVEYxNldpdGhVVEY4KHN0cmluZy0+Y2hhcmFjdGVyczE2KCksIGJ1
ZmZlci5jaGFyYWN0ZXJzLCBidWZmZXIuY2hhcmFjdGVycyArIGJ1ZmZlci5sZW5ndGgpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHN0cmluZy0+aXM4Qml0KCkpIHsKQEAgLTI4MSwyOCArMjgy
LDQyIEBAIHN0cnVjdCBTdWJzdHJpbmdMb2NhdGlvbiB7CiB9OwogCiBzdHJ1Y3QgU3Vic3RyaW5n
VHJhbnNsYXRvciB7CisgICAgc3RhdGljIHZvaWQgdHJhbnNsYXRlKFN0cmluZ0ltcGwqJiBsb2Nh
dGlvbiwgY29uc3QgU3Vic3RyaW5nTG9jYXRpb24mIGJ1ZmZlciwgdW5zaWduZWQgaGFzaCkKKyAg
ICB7CisgICAgICAgIGxvY2F0aW9uID0gJlN0cmluZ0ltcGw6OmNyZWF0ZVN1YnN0cmluZ1NoYXJp
bmdJbXBsKGJ1ZmZlci5iYXNlU3RyaW5nLCBidWZmZXIuc3RhcnQsIGJ1ZmZlci5sZW5ndGgpLmxl
YWtSZWYoKTsKKyAgICAgICAgbG9jYXRpb24tPnNldEhhc2goaGFzaCk7CisgICAgICAgIGxvY2F0
aW9uLT5zZXRJc0F0b21pYyh0cnVlKTsKKyAgICB9Cit9OworCitzdHJ1Y3QgU3Vic3RyaW5nVHJh
bnNsYXRvcjggOiBTdWJzdHJpbmdUcmFuc2xhdG9yIHsKICAgICBzdGF0aWMgdW5zaWduZWQgaGFz
aChjb25zdCBTdWJzdHJpbmdMb2NhdGlvbiYgYnVmZmVyKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IFN0cmluZ0hhc2hlcjo6Y29tcHV0ZUhhc2hBbmRNYXNrVG9wOEJpdHMoYnVmZmVyLmJhc2VTdHJp
bmctPmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCkgKyBidWZmZXIuc3RhcnQsIGJ1ZmZlci5sZW5ndGgp
OworICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaEFuZE1hc2tUb3A4Qml0
cyhidWZmZXIuYmFzZVN0cmluZy0+Y2hhcmFjdGVyczgoKSArIGJ1ZmZlci5zdGFydCwgYnVmZmVy
Lmxlbmd0aCk7CiAgICAgfQogCiAgICAgc3RhdGljIGJvb2wgZXF1YWwoU3RyaW5nSW1wbCogY29u
c3QmIHN0cmluZywgY29uc3QgU3Vic3RyaW5nTG9jYXRpb24mIGJ1ZmZlcikKICAgICB7Ci0gICAg
ICAgIHJldHVybiBXVEY6OmVxdWFsKHN0cmluZywgYnVmZmVyLmJhc2VTdHJpbmctPmRlcHJlY2F0
ZWRDaGFyYWN0ZXJzKCkgKyBidWZmZXIuc3RhcnQsIGJ1ZmZlci5sZW5ndGgpOworICAgICAgICBy
ZXR1cm4gV1RGOjplcXVhbChzdHJpbmcsIGJ1ZmZlci5iYXNlU3RyaW5nLT5jaGFyYWN0ZXJzOCgp
ICsgYnVmZmVyLnN0YXJ0LCBidWZmZXIubGVuZ3RoKTsKICAgICB9Cit9OwogCi0gICAgc3RhdGlj
IHZvaWQgdHJhbnNsYXRlKFN0cmluZ0ltcGwqJiBsb2NhdGlvbiwgY29uc3QgU3Vic3RyaW5nTG9j
YXRpb24mIGJ1ZmZlciwgdW5zaWduZWQgaGFzaCkKK3N0cnVjdCBTdWJzdHJpbmdUcmFuc2xhdG9y
MTYgOiBTdWJzdHJpbmdUcmFuc2xhdG9yIHsKKyAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25z
dCBTdWJzdHJpbmdMb2NhdGlvbiYgYnVmZmVyKQogICAgIHsKLSAgICAgICAgbG9jYXRpb24gPSAm
U3RyaW5nSW1wbDo6Y3JlYXRlU3Vic3RyaW5nU2hhcmluZ0ltcGwoYnVmZmVyLmJhc2VTdHJpbmcs
IGJ1ZmZlci5zdGFydCwgYnVmZmVyLmxlbmd0aCkubGVha1JlZigpOwotICAgICAgICBsb2NhdGlv
bi0+c2V0SGFzaChoYXNoKTsKLSAgICAgICAgbG9jYXRpb24tPnNldElzQXRvbWljKHRydWUpOwor
ICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpjb21wdXRlSGFzaEFuZE1hc2tUb3A4Qml0cyhi
dWZmZXIuYmFzZVN0cmluZy0+Y2hhcmFjdGVyczE2KCkgKyBidWZmZXIuc3RhcnQsIGJ1ZmZlci5s
ZW5ndGgpOworICAgIH0KKworICAgIHN0YXRpYyBib29sIGVxdWFsKFN0cmluZ0ltcGwqIGNvbnN0
JiBzdHJpbmcsIGNvbnN0IFN1YnN0cmluZ0xvY2F0aW9uJiBidWZmZXIpCisgICAgeworICAgICAg
ICByZXR1cm4gV1RGOjplcXVhbChzdHJpbmcsIGJ1ZmZlci5iYXNlU3RyaW5nLT5jaGFyYWN0ZXJz
MTYoKSArIGJ1ZmZlci5zdGFydCwgYnVmZmVyLmxlbmd0aCk7CiAgICAgfQogfTsKIAogUGFzc1Jl
ZlB0cjxTdHJpbmdJbXBsPiBBdG9taWNTdHJpbmc6OmFkZChTdHJpbmdJbXBsKiBiYXNlU3RyaW5n
LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoKQogewogICAgIGlmICghYmFzZVN0cmlu
ZykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYg
KCFsZW5ndGggfHwgc3RhcnQgPj0gYmFzZVN0cmluZy0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVy
biBTdHJpbmdJbXBsOjplbXB0eSgpOwpAQCAtMzE1LDcgKzMzMCw5IEBAIFBhc3NSZWZQdHI8U3Ry
aW5nSW1wbD4gQXRvbWljU3RyaW5nOjphZGQoU3RyaW5nSW1wbCogYmFzZVN0cmluZywgdW5zaWdu
ZWQgc3RhcnQsCiAgICAgfQogCiAgICAgU3Vic3RyaW5nTG9jYXRpb24gYnVmZmVyID0geyBiYXNl
U3RyaW5nLCBzdGFydCwgbGVuZ3RoIH07Ci0gICAgcmV0dXJuIGFkZFRvU3RyaW5nVGFibGU8U3Vi
c3RyaW5nTG9jYXRpb24sIFN1YnN0cmluZ1RyYW5zbGF0b3I+KGJ1ZmZlcik7CisgICAgaWYgKGJh
c2VTdHJpbmctPmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gYWRkVG9TdHJpbmdUYWJsZTxTdWJz
dHJpbmdMb2NhdGlvbiwgU3Vic3RyaW5nVHJhbnNsYXRvcjg+KGJ1ZmZlcik7CisgICAgcmV0dXJu
IGFkZFRvU3RyaW5nVGFibGU8U3Vic3RyaW5nTG9jYXRpb24sIFN1YnN0cmluZ1RyYW5zbGF0b3Ix
Nj4oYnVmZmVyKTsKIH0KICAgICAKIHR5cGVkZWYgSGFzaFRyYW5zbGF0b3JDaGFyQnVmZmVyPExD
aGFyPiBMQ2hhckJ1ZmZlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvQmFzZTY0LmNwcAppbmRleCAyMzIzZjNmYTM4MThh
ZjI2NWUzYmE2NjgyYjY4YjgzNTViMTBkNTBjLi4xZGZkOGRkMzM2ZmZkNDY4ZTdjNzdmYzEwZjE1
YjIwY2YwMDJiZjlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L0Jhc2U2NC5jcHAK
KysrIGIvU291cmNlL1dURi93dGYvdGV4dC9CYXNlNjQuY3BwCkBAIC0yNTAsNyArMjUwLDEwIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBiYXNlNjREZWNvZGVJbnRlcm5hbChjb25zdCBUKiBkYXRhLCB1
bnNpZ25lZCBsZW5ndGgsIFZlY3RvcjxjCiAKIGJvb2wgYmFzZTY0RGVjb2RlKGNvbnN0IFN0cmlu
ZyYgaW4sIFNpZ25lZE9yVW5zaWduZWRDaGFyVmVjdG9yQWRhcHRlciBvdXQsIEJhc2U2NERlY29k
ZVBvbGljeSBwb2xpY3kpCiB7Ci0gICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFy
Pihpbi5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBpbi5sZW5ndGgoKSwgb3V0LCBwb2xpY3ksIGJh
c2U2NERlY01hcCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gaW4ubGVuZ3RoKCk7CisgICAgaWYg
KCFsZW5ndGggfHwgaW4uaXM4Qml0KCkpCisgICAgICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRl
cm5hbChpbi5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgsIG91dCwgcG9saWN5LCBiYXNlNjREZWNNYXAp
OworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbChpbi5jaGFyYWN0ZXJzMTYoKSwgbGVu
Z3RoLCBvdXQsIHBvbGljeSwgYmFzZTY0RGVjTWFwKTsKIH0KIAogYm9vbCBiYXNlNjREZWNvZGUo
Y29uc3QgVmVjdG9yPGNoYXI+JiBpbiwgU2lnbmVkT3JVbnNpZ25lZENoYXJWZWN0b3JBZGFwdGVy
IG91dCwgQmFzZTY0RGVjb2RlUG9saWN5IHBvbGljeSkKQEAgLTI2MSwxNyArMjY0LDIwIEBAIGJv
b2wgYmFzZTY0RGVjb2RlKGNvbnN0IFZlY3RvcjxjaGFyPiYgaW4sIFNpZ25lZE9yVW5zaWduZWRD
aGFyVmVjdG9yQWRhcHRlciBvdXQsCiAgICAgaWYgKGluLnNpemUoKSA+IFVJTlRfTUFYKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hh
cj4oaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCwgcG9saWN5LCBiYXNlNjREZWNNYXApOworICAg
IHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oaW4uZGF0YSgpKSwgaW4uc2l6ZSgpLCBvdXQsIHBvbGljeSwgYmFzZTY0RGVjTWFwKTsKIH0K
IAogYm9vbCBiYXNlNjREZWNvZGUoY29uc3QgY2hhciogZGF0YSwgdW5zaWduZWQgbGVuLCBTaWdu
ZWRPclVuc2lnbmVkQ2hhclZlY3RvckFkYXB0ZXIgb3V0LCBCYXNlNjREZWNvZGVQb2xpY3kgcG9s
aWN5KQogewotICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRlcm5hbDxjaGFyPihkYXRhLCBsZW4s
IG91dCwgcG9saWN5LCBiYXNlNjREZWNNYXApOworICAgIHJldHVybiBiYXNlNjREZWNvZGVJbnRl
cm5hbChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oZGF0YSksIGxlbiwgb3V0LCBwb2xp
Y3ksIGJhc2U2NERlY01hcCk7CiB9CiAKIGJvb2wgYmFzZTY0VVJMRGVjb2RlKGNvbnN0IFN0cmlu
ZyYgaW4sIFNpZ25lZE9yVW5zaWduZWRDaGFyVmVjdG9yQWRhcHRlciBvdXQpCiB7Ci0gICAgcmV0
dXJuIGJhc2U2NERlY29kZUludGVybmFsPFVDaGFyPihpbi5kZXByZWNhdGVkQ2hhcmFjdGVycygp
LCBpbi5sZW5ndGgoKSwgb3V0LCBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBiYXNlNjRV
UkxEZWNNYXApOworICAgIHVuc2lnbmVkIGxlbmd0aCA9IGluLmxlbmd0aCgpOworICAgIGlmICgh
bGVuZ3RoIHx8IGluLmlzOEJpdCgpKQorICAgICAgICByZXR1cm4gYmFzZTY0RGVjb2RlSW50ZXJu
YWwoaW4uY2hhcmFjdGVyczgoKSwgbGVuZ3RoLCBvdXQsIEJhc2U2NEZhaWxPbkludmFsaWRDaGFy
YWN0ZXIsIGJhc2U2NFVSTERlY01hcCk7CisgICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFs
KGluLmNoYXJhY3RlcnMxNigpLCBsZW5ndGgsIG91dCwgQmFzZTY0RmFpbE9uSW52YWxpZENoYXJh
Y3RlciwgYmFzZTY0VVJMRGVjTWFwKTsKIH0KIAogYm9vbCBiYXNlNjRVUkxEZWNvZGUoY29uc3Qg
VmVjdG9yPGNoYXI+JiBpbiwgU2lnbmVkT3JVbnNpZ25lZENoYXJWZWN0b3JBZGFwdGVyIG91dCkK
QEAgLTI4MiwxMiArMjg4LDEyIEBAIGJvb2wgYmFzZTY0VVJMRGVjb2RlKGNvbnN0IFZlY3Rvcjxj
aGFyPiYgaW4sIFNpZ25lZE9yVW5zaWduZWRDaGFyVmVjdG9yQWRhcHRlciBvCiAgICAgaWYgKGlu
LnNpemUoKSA+IFVJTlRfTUFYKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4g
YmFzZTY0RGVjb2RlSW50ZXJuYWw8Y2hhcj4oaW4uZGF0YSgpLCBpbi5zaXplKCksIG91dCwgQmFz
ZTY0RmFpbE9uSW52YWxpZENoYXJhY3RlciwgYmFzZTY0VVJMRGVjTWFwKTsKKyAgICByZXR1cm4g
YmFzZTY0RGVjb2RlSW50ZXJuYWwocmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KGluLmRh
dGEoKSksIGluLnNpemUoKSwgb3V0LCBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBiYXNl
NjRVUkxEZWNNYXApOwogfQogCiBib29sIGJhc2U2NFVSTERlY29kZShjb25zdCBjaGFyKiBkYXRh
LCB1bnNpZ25lZCBsZW4sIFNpZ25lZE9yVW5zaWduZWRDaGFyVmVjdG9yQWRhcHRlciBvdXQpCiB7
Ci0gICAgcmV0dXJuIGJhc2U2NERlY29kZUludGVybmFsPGNoYXI+KGRhdGEsIGxlbiwgb3V0LCBC
YXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBiYXNlNjRVUkxEZWNNYXApOworICAgIHJldHVy
biBiYXNlNjREZWNvZGVJbnRlcm5hbChyZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oZGF0
YSksIGxlbiwgb3V0LCBCYXNlNjRGYWlsT25JbnZhbGlkQ2hhcmFjdGVyLCBiYXNlNjRVUkxEZWNN
YXApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3RleHQvU3RyaW5nSW1wbC5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
CmluZGV4IDUyY2ViZjFiOWFkOGY2YWE3YjQwNjllMDBiMjc1NGIzN2UwNzI4YmMuLjgwMGZiMmY4
YjMzYTRmM2JkYmFlMzQ3NWQ1NjA4N2M2ZjgxZTFjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJ
bXBsLmNwcApAQCAtOTg2LDcgKzk4Niw3IEBAIHNpemVfdCBTdHJpbmdJbXBsOjpmaW5kKGNvbnN0
IExDaGFyKiBtYXRjaFN0cmluZywgdW5zaWduZWQgaW5kZXgpCiAKICAgICAvLyBPcHRpbWl6YXRp
b24gMTogZmFzdCBjYXNlIGZvciBzdHJpbmdzIG9mIGxlbmd0aCAxLgogICAgIGlmIChtYXRjaExl
bmd0aCA9PSAxKQotICAgICAgICByZXR1cm4gV1RGOjpmaW5kKGNoYXJhY3RlcnMxNigpLCBsZW5n
dGgoKSwgKm1hdGNoU3RyaW5nLCBpbmRleCk7CisgICAgICAgIHJldHVybiBXVEY6OmZpbmQoZGVw
cmVjYXRlZENoYXJhY3RlcnMoKSwgbGVuZ3RoKCksICptYXRjaFN0cmluZywgaW5kZXgpOwogCiAg
ICAgLy8gQ2hlY2sgaW5kZXggJiBtYXRjaExlbmd0aCBhcmUgaW4gcmFuZ2UuCiAgICAgaWYgKGlu
ZGV4ID4gbGVuZ3RoKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjgu
Y3BwIGIvU291cmNlL1dURi93dGYvdW5pY29kZS9VVEY4LmNwcAppbmRleCBkYjIwZjgxMTk2OGYy
ZGY2YjhiMzQ0YWE3NTJiNmRiNWViOGMxMTdjLi5iZWI0M2U2NWFiMTVjYmIxYTViZGIwMGY2MzEw
ZmI0ZTkyNDIwZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjguY3Bw
CisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRGOC5jcHAKQEAgLTQyMCwxMCArNDIwLDEw
IEBAIHVuc2lnbmVkIGNhbGN1bGF0ZVN0cmluZ0hhc2hBbmRMZW5ndGhGcm9tVVRGOE1hc2tpbmdU
b3A4Qml0cyhjb25zdCBjaGFyKiBkYXRhLCBjCiAgICAgcmV0dXJuIHN0cmluZ0hhc2hlci5oYXNo
V2l0aFRvcDhCaXRzTWFza2VkKCk7CiB9CiAKLWJvb2wgZXF1YWxVVEYxNldpdGhVVEY4KGNvbnN0
IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYUVuZCwgY29uc3QgY2hhciogYiwgY29uc3QgY2hhciog
YkVuZCkKK2Jvb2wgZXF1YWxVVEYxNldpdGhVVEY4KGNvbnN0IFVDaGFyKiBhLCBjb25zdCBjaGFy
KiBiLCBjb25zdCBjaGFyKiBiRW5kKQogewogICAgIHdoaWxlIChiIDwgYkVuZCkgewotICAgICAg
ICBpZiAoaXNBU0NJSSgqYikpIHsKKyAgICAgICAgaWYgKGlzQVNDSUkoKmEpIHx8IGlzQVNDSUko
KmIpKSB7CiAgICAgICAgICAgICBpZiAoKmErKyAhPSAqYisrKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNDM1LDcgKzQzNSw3IEBAIGJv
b2wgZXF1YWxVVEYxNldpdGhVVEY4KGNvbnN0IFVDaGFyKiBhLCBjb25zdCBVQ2hhciogYUVuZCwg
Y29uc3QgY2hhciogYiwgY29uc3QKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICBpZiAoIWlzTGVnYWxVVEY4KHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdW5zaWduZWQgY2hhcio+
KGIpLCB1dGY4U2VxdWVuY2VMZW5ndGgpKQotICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgVUNoYXIzMiBjaGFyYWN0ZXIgPSByZWFkVVRG
OFNlcXVlbmNlKGIsIHV0ZjhTZXF1ZW5jZUxlbmd0aCk7CiAgICAgICAgIEFTU0VSVCghaXNBU0NJ
SShjaGFyYWN0ZXIpKTsKQEAgLTQ1NSw3ICs0NTUsMzMgQEAgYm9vbCBlcXVhbFVURjE2V2l0aFVU
RjgoY29uc3QgVUNoYXIqIGEsIGNvbnN0IFVDaGFyKiBhRW5kLCBjb25zdCBjaGFyKiBiLCBjb25z
dAogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAotICAgIHJldHVybiBhID09IGFF
bmQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgZXF1YWxMYXRpbjFXaXRoVVRGOChjb25z
dCBMQ2hhciogYSwgY29uc3QgY2hhciogYiwgY29uc3QgY2hhciogYkVuZCkKK3sKKyAgICB3aGls
ZSAoYiA8IGJFbmQpIHsKKyAgICAgICAgaWYgKGlzQVNDSUkoKmEpIHx8IGlzQVNDSUkoKmIpKSB7
CisgICAgICAgICAgICBpZiAoKmErKyAhPSAqYisrKQorICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKGIg
KyAxID09IGJFbmQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaWYgKChi
WzBdICYgMHhFMCkgIT0gMHhDMCB8fCAoYlsxXSAmIDB4QzApICE9IDgwKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgICAgIExDaGFyIGNoYXJhY3RlciA9ICgoYlswXSAmIDB4MUYp
IDw8IDYpIHwgKGJbMV0gJiAweDNGKTsKKworICAgICAgICBiICs9IDI7CisKKyAgICAgICAgaWYg
KCphKysgIT0gY2hhcmFjdGVyKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKwor
ICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBVbmljb2RlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL1VURjguaCBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUv
VVRGOC5oCmluZGV4IDMyMzJiNzk5YjU2MWQwZGZiYzNhZDY5MzQ1NDg1OTU0Y2NiZDU2MjcuLjM1
NGFhZDcxZWU4MDA1NDBmMjY4MjIwNTEyOTM1OTY3MDYxOWZmOGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3VuaWNvZGUvVVRGOC5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvVVRG
OC5oCkBAIC03Nyw3ICs3Nyw5IEBAIG5hbWVzcGFjZSBVbmljb2RlIHsKIAogICAgIFdURl9FWFBP
UlRfUFJJVkFURSB1bnNpZ25lZCBjYWxjdWxhdGVTdHJpbmdIYXNoQW5kTGVuZ3RoRnJvbVVURjhN
YXNraW5nVG9wOEJpdHMoY29uc3QgY2hhciogZGF0YSwgY29uc3QgY2hhciogZGF0YUVuZCwgdW5z
aWduZWQmIGRhdGFMZW5ndGgsIHVuc2lnbmVkJiB1dGYxNkxlbmd0aCk7CiAKLSAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBlcXVhbFVURjE2V2l0aFVURjgoY29uc3QgVUNoYXIqIGEsIGNvbnN0
IFVDaGFyKiBhRW5kLCBjb25zdCBjaGFyKiBiLCBjb25zdCBjaGFyKiBiRW5kKTsKKyAgICAvLyBU
aGUgY2FsbGVyIG9mIHRoZXNlIGZ1bmN0aW9ucyBhbHJlYWR5IGtub3dzIHRoYXQgdGhlIGxlbmd0
aHMgYXJlIHRoZSBzYW1lLCBzbyB3ZSBvbWl0IGFuIGVuZCBhcmd1bWVudCBmb3IgVVRGLTE2IGFu
ZCBMYXRpbi0xLgorICAgIGJvb2wgZXF1YWxVVEYxNldpdGhVVEY4KGNvbnN0IFVDaGFyKiBzdHJp
bmdJblVURjE2LCBjb25zdCBjaGFyKiBzdHJpbmdJblVURjgsIGNvbnN0IGNoYXIqIHN0cmluZ0lu
VVRGOEVuZCk7CisgICAgYm9vbCBlcXVhbExhdGluMVdpdGhVVEY4KGNvbnN0IExDaGFyKiBzdHJp
bmdJbkxhdGluMSwgY29uc3QgY2hhciogc3RyaW5nSW5VVEY4LCBjb25zdCBjaGFyKiBzdHJpbmdJ
blVURjhFbmQpOwogCiB9IC8vIG5hbWVzcGFjZSBVbmljb2RlCiB9IC8vIG5hbWVzcGFjZSBXVEYK
</data>
<flag name="review"
          id="251111"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>