<?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>107781</bug_id>
          
          <creation_ts>2013-01-23 20:48:06 -0800</creation_ts>
          <short_desc>Leak bots erroneously report JSC::WatchpointSet as leaking</short_desc>
          <delta_ts>2013-03-22 00:39:16 -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>JavaScriptCore</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>106716</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>barraclough</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>mjs</cc>
    
    <cc>psolanki</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>815020</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-01-23 20:48:06 -0800</bug_when>
    <thetext>http://build.webkit.org/LeaksViewer/?url=%2Fresults%2FApple%20MountainLion%20%28Leaks%29%2Fr140529%20%282594%29%2F

Sample stack trace (backwards):

-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:] ResourceHandleMac.mm:785
WebCore::ResourceLoader::didReceiveData(WebCore::ResourceHandle*, char const*, int, int) ResourceLoader.cpp:452
WebCore::SubresourceLoader::didReceiveData(char const*, int, long long, bool) SubresourceLoader.cpp:228
WebCore::SubresourceLoader::sendDataToResource(char const*, int) SubresourceLoader.cpp:255
WebCore::CachedRawResource::data(WTF::PassRefPtr&lt;WebCore::ResourceBuffer&gt;, bool) CachedRawResource.cpp:70
WebCore::MainResourceLoader::dataReceived(WebCore::CachedResource*, char const*, int) MainResourceLoader.cpp:515
WebCore::DocumentLoader::receivedData(char const*, int) DocumentLoader.cpp:398
WebCore::DocumentLoader::commitLoad(char const*, int) DocumentLoader.cpp:319
WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) WebFrameLoaderClient.mm:846
-[WebDataSource(WebInternal) _receivedData:] WebDataSource.mm:215
-[WebHTMLRepresentation receivedData:withDataSource:] WebHTMLRepresentation.mm:186
-[WebFrame(WebInternal) _commitData:] WebFrame.mm:826
WebCore::DocumentLoader::commitData(char const*, unsigned long) DocumentLoader.cpp:357
WebCore::DocumentWriter::addData(char const*, unsigned long) DocumentWriter.cpp:222
WebCore::DecodedDataDocumentParser::appendBytes(WebCore::DocumentWriter*, char const*, unsigned long) DecodedDataDocumentParser.cpp:50
WebCore::HTMLDocumentParser::append(WebCore::SegmentedString const&amp;) HTMLDocumentParser.cpp:522
WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) HTMLDocumentParser.cpp:195
WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) HTMLDocumentParser.cpp:332
WebCore::HTMLDocumentParser::canTakeNextToken(WebCore::HTMLDocumentParser::SynchronousMode, WebCore::PumpSession&amp;) HTMLDocumentParser.cpp:243
WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder() HTMLDocumentParser.cpp:223
WebCore::HTMLScriptRunner::execute(WTF::PassRefPtr&lt;WebCore::Element&gt;, WTF::TextPosition const&amp;) HTMLScriptRunner.cpp:180
WebCore::HTMLScriptRunner::executeParsingBlockingScripts() HTMLScriptRunner.cpp:190
WebCore::HTMLScriptRunner::executeParsingBlockingScript() HTMLScriptRunner.cpp:118
WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&amp;) HTMLScriptRunner.cpp:139
WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&amp;) ScriptElement.cpp:304
WebCore::ScriptController::evaluate(WebCore::ScriptSourceCode const&amp;) ScriptController.cpp:158
WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&amp;, WebCore::DOMWrapperWorld*) ScriptController.cpp:141
WebCore::JSMainThreadExecState::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*) JSMainThreadExecState.h:77
JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&amp;, JSC::JSValue, JSC::JSValue*) Completion.cpp:76
JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) Interpreter.cpp:955
JSC::ProgramExecutable::initializeGlobalProperties(JSC::JSGlobalData&amp;, JSC::ExecState*, JSC::JSScope*) Executable.cpp:405
JSC::ProgramExecutable::addGlobalVar(JSC::JSGlobalObject*, JSC::Identifier const&amp;, JSC::ProgramExecutable::ConstantMode, JSC::ProgramExecutable::FunctionMode) Executable.cpp:368
JSC::SymbolTableEntry::attemptToWatch() SymbolTable.cpp:71
WTF::RefCounted&lt;JSC::WatchpointSet&gt;::operator new(unsigned long) RefCounted.h:197
WTF::fastMalloc(unsigned long) FastMalloc.cpp:274
malloc
malloc_zone_malloc 
Leak: 0x7f9cb1ae4c40  size=48  zone: DefaultMallocZone_0x10b4af000</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815571</commentid>
    <comment_count>1</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-01-24 10:00:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/12999306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>815659</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-01-24 11:29:44 -0800</bug_when>
    <thetext>This appears to be due to the fact that SymbolTable does low-bit tagging when pointing at the watchpoint set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824998</commentid>
    <comment_count>3</comment_count>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2013-02-04 18:27:39 -0800</bug_when>
    <thetext>&gt; This appears to be due to the fact that SymbolTable does low-bit tagging when pointing at the watchpoint set.

So does that mean this isn&apos;t really a leak? That the memory is actually referenced and used but leaks doesn&apos;t know about it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856425</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-15 17:25:22 -0700</bug_when>
    <thetext>*** Bug 107782 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856427</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-15 17:26:41 -0700</bug_when>
    <thetext>We&apos;ve found out that this is a false positive due to the fact FatEntry is a tagged pointer. I&apos;m going to post a patch to work-around this problem in leaks by making it an &quot;untagged&quot; pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856511</commentid>
    <comment_count>6</comment_count>
      <attachid>193423</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-15 21:54:01 -0700</bug_when>
    <thetext>Created attachment 193423
Use &apos;Untagged pointer&apos; to work around leaks&apos; limitation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856512</commentid>
    <comment_count>7</comment_count>
      <attachid>193423</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-15 21:55:57 -0700</bug_when>
    <thetext>Comment on attachment 193423
Use &apos;Untagged pointer&apos; to work around leaks&apos; limitation

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

&gt; Source/JavaScriptCore/runtime/SymbolTable.h:132
&gt; -                return m_bits &amp; FatFlag;
&gt; +                return m_bits &amp;&amp; !(m_bits &amp; SlimFlag);

I&apos;m somewhat concerned about the performance implication of this change.

&gt; Source/JavaScriptCore/runtime/SymbolTable.h:323
&gt; -            bitsRef = (static_cast&lt;intptr_t&gt;(index) &lt;&lt; FlagBits) | NotNullFlag;
&gt; +            bitsRef = (static_cast&lt;intptr_t&gt;(index) &lt;&lt; FlagBits) | NotNullFlag | (bitsRef &amp; SlimFlag);

And also this dependency. It appears that the code assumed that FatFlag is never set so we could add ASSERT(!isFat()) and simply | SlimFlag here instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856643</commentid>
    <comment_count>8</comment_count>
      <attachid>193423</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-16 18:46:13 -0700</bug_when>
    <thetext>Comment on attachment 193423
Use &apos;Untagged pointer&apos; to work around leaks&apos; limitation

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

Looks good, but I kind of want to know why you need to check that m_bits is non-zero in addition to checking that it doesn&apos;t have SlimFlag set.

&gt;&gt; Source/JavaScriptCore/runtime/SymbolTable.h:132
&gt;&gt; +                return m_bits &amp;&amp; !(m_bits &amp; SlimFlag);
&gt; 
&gt; I&apos;m somewhat concerned about the performance implication of this change.

Why doesn&apos;t this just say !(m_bits &amp; SlimFlag)?

&gt;&gt; Source/JavaScriptCore/runtime/SymbolTable.h:323
&gt;&gt; +            bitsRef = (static_cast&lt;intptr_t&gt;(index) &lt;&lt; FlagBits) | NotNullFlag | (bitsRef &amp; SlimFlag);
&gt; 
&gt; And also this dependency. It appears that the code assumed that FatFlag is never set so we could add ASSERT(!isFat()) and simply | SlimFlag here instead.

Looks right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856645</commentid>
    <comment_count>9</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-16 18:47:37 -0700</bug_when>
    <thetext>*** Bug 112497 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856763</commentid>
    <comment_count>10</comment_count>
      <attachid>193423</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-17 15:53:36 -0700</bug_when>
    <thetext>Comment on attachment 193423
Use &apos;Untagged pointer&apos; to work around leaks&apos; limitation

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

&gt;&gt;&gt; Source/JavaScriptCore/runtime/SymbolTable.h:132
&gt;&gt;&gt; +                return m_bits &amp;&amp; !(m_bits &amp; SlimFlag);
&gt;&gt; 
&gt;&gt; I&apos;m somewhat concerned about the performance implication of this change.
&gt; 
&gt; Why doesn&apos;t this just say !(m_bits &amp; SlimFlag)?

So the reason SymbolTableEntry::isFast checks m_bits &amp;&amp; !(m_bits &amp; SlimFlag) is because we have emptyValueIsZero set to true in SymbolTableIndexHashTraits
but we probably don’t need it here if we forced to set SlimFlag or NotNullFlag in Fast::Fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857457</commentid>
    <comment_count>11</comment_count>
      <attachid>193636</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 13:10:57 -0700</bug_when>
    <thetext>Created attachment 193636
Simplified pack</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857488</commentid>
    <comment_count>12</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-03-18 13:37:10 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 193423 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193423&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/JavaScriptCore/runtime/SymbolTable.h:132
&gt; &gt;&gt;&gt; +                return m_bits &amp;&amp; !(m_bits &amp; SlimFlag);
&gt; &gt;&gt; 
&gt; &gt;&gt; I&apos;m somewhat concerned about the performance implication of this change.
&gt; &gt; 
&gt; &gt; Why doesn&apos;t this just say !(m_bits &amp; SlimFlag)?
&gt; 
&gt; So the reason SymbolTableEntry::isFast checks m_bits &amp;&amp; !(m_bits &amp; SlimFlag) is because we have emptyValueIsZero set to true in SymbolTableIndexHashTraits
&gt; but we probably don’t need it here if we forced to set SlimFlag or NotNullFlag in Fast::Fast.

Can we just change the traits?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857500</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 13:51:06 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 193423 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=193423&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/JavaScriptCore/runtime/SymbolTable.h:132
&gt; &gt; &gt;&gt;&gt; +                return m_bits &amp;&amp; !(m_bits &amp; SlimFlag);
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; I&apos;m somewhat concerned about the performance implication of this change.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why doesn&apos;t this just say !(m_bits &amp; SlimFlag)?
&gt; &gt; 
&gt; &gt; So the reason SymbolTableEntry::isFast checks m_bits &amp;&amp; !(m_bits &amp; SlimFlag) is because we have emptyValueIsZero set to true in SymbolTableIndexHashTraits
&gt; &gt; but we probably don’t need it here if we forced to set SlimFlag or NotNullFlag in Fast::Fast.
&gt; 
&gt; Can we just change the traits?

I&apos;m concerned that it may negatively affect the performance but we can try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857816</commentid>
    <comment_count>14</comment_count>
      <attachid>193707</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-18 17:49:46 -0700</bug_when>
    <thetext>Created attachment 193707
Use emptyValueIsZero = false</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>858866</commentid>
    <comment_count>15</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2013-03-19 16:38:11 -0700</bug_when>
    <thetext>&lt;rdar://problem/12999306&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861173</commentid>
    <comment_count>16</comment_count>
      <attachid>193707</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 00:39:12 -0700</bug_when>
    <thetext>Comment on attachment 193707
Use emptyValueIsZero = false

Clearing flags on attachment: 193707

Committed r146568: &lt;http://trac.webkit.org/changeset/146568&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861174</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-22 00:39:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193423</attachid>
            <date>2013-03-15 21:54:01 -0700</date>
            <delta_ts>2013-03-18 13:10:53 -0700</delta_ts>
            <desc>Use &apos;Untagged pointer&apos; to work around leaks&apos; limitation</desc>
            <filename>bug-107781-20130315214956.patch</filename>
            <type>text/plain</type>
            <size>6037</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDEzLTAzLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IExlYWsgYm90cyBlcnJvbmVvdXNseSByZXBvcnQgSlNDOjpXYXRjaHBvaW50U2V0IGFzIGxlYWtp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzc4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNl
IGxlYWtzIGRvZXNuJ3Qgc3VwcG9ydCB0YWdnZWQgcG9pbnRlcnMsIGF2b2lkIHVzaW5nIGl0IGJ5
IGZsaXBwaW5nIHRoZSBiaXQgZmxhZyB0byBpbmRpY2F0ZQorICAgICAgICB0aGUgZW50cnkgaXMg
ImZhdCIuIFdlIHNldCB0aGUgZmxhZyB3aGVuIHRoZSBlbnRyeSBpcyBOT1QgZmF0OyBpLmUuIHNs
aW0uCisKKyAgICAgICAgUmVwbGFjZWQgRmF0RmxhZyBieSBTbGltRmxhZyBhbmQgaW5pdGlhbGl6
ZWQgbV9iaXRzIHdpdGggdGhpcyBmbGFnIHRvIGluZGljYXRlIHRoYXQgdGhlIGVudHJ5IGlzCisg
ICAgICAgIGluaXRpYWxseSAic2xpbSIuIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IHNpbXBseSBj
aGVjayB0aGF0IGZsYWcgaXMgbm90IHNldCBpbiBpc0ZhdCgpIHNpbmNlIHdlCisgICAgICAgIHdh
bnQgdGhlIGVtcHR5IHZhbHVlIHRvIGJlIHplcm8gaW4gU2hhcmVkU3ltYm9sVGFibGUuIENoZWNr
IG1fYml0cyAmJiAhKG1fYml0cyAmIFNsaW1GbGFnKSBpbnN0ZWFkLgorCisgICAgICAgICogcnVu
dGltZS9TeW1ib2xUYWJsZS5jcHA6CisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OmNv
cHlTbG93KTogRG9uJ3Qgc2V0IEZhdEZsYWcgc2luY2UgaXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkg
U2xpbUZsYWcuCisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OmluZmxhdGVTbG93KTog
RGl0dG8uCisKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFRhYmxlLmg6CisgICAgICAgIChKU0M6
OlN5bWJvbFRhYmxlRW50cnk6OkZhc3Q6OkZhc3QpOiBTZXQgU2xpbUZsYWcgYnkgZGVmYXVsdC4K
KyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6RmFzdDo6aXNGYXQpOiBBbiBlbnRyeSBp
cyBmYXQgd2hlbiBtX2JpdHMgaXMgbm90IGVudGlyZWx5IHplcm8gYW5kIFNsaW1GbGFnCisgICAg
ICAgIGlzIG5vdCBzZXQuCisKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6U3ltYm9s
VGFibGVFbnRyeSk6IFNldCBTbGltRmxhZyBieSBkZWZhdWx0LgorICAgICAgICAoSlNDOjpTeW1i
b2xUYWJsZUVudHJ5OjpTeW1ib2xUYWJsZUVudHJ5OjpnZXRGYXN0KTogU2V0IFNsaW1GbGFnIHdo
ZW4gY3JlYXRpbmcgRmFzdCBmcm9tIGEgZmF0IGVudHJ5LgorICAgICAgICAoSlNDOjpTeW1ib2xU
YWJsZUVudHJ5OjpGYXRFbnRyeTo6RmF0RW50cnkpOiBTdHJpcCBTbGltRmxhZy4KKyAgICAgICAg
KEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6aXNGYXQpOiBBbiBlbnRyeSBpcyBmYXQgd2hlbiBtX2Jp
dHMgaXMgbm90IGVudGlyZWx5IHplcm8gYW5kIFNsaW1GbGFnIGlzIHVuc2V0LgorICAgICAgICAo
SlNDOjpTeW1ib2xUYWJsZUVudHJ5OjpmYXRFbnRyeSk6IFdlIGRvbid0IG5lZWQgdG8gZmlsdGVy
IEZhdEZsYWcgYW55bW9yZS4KKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6cGFjayk6
IFByZXNlcnZlIFNsaW1GbGFnLgorCiAyMDEzLTAzLTE1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5n
QGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBhbHNvIGNsb25lIFN0cnVjdHVyZVJhcmVEYXRh
IHdoZW4gY2xvbmluZyBTdHJ1Y3R1cmUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sVGFibGUuY3BwCShyZXZpc2lvbiAxNDU5NzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgU3ltYm9sVGFibGVFbnRyeSYgU3ltYm9sVGFibGVFbnRyeTo6Y29weQogICAg
IEFTU0VSVChvdGhlci5pc0ZhdCgpKTsKICAgICBGYXRFbnRyeSogbmV3RmF0RW50cnkgPSBuZXcg
RmF0RW50cnkoKm90aGVyLmZhdEVudHJ5KCkpOwogICAgIGZyZWVGYXRFbnRyeSgpOwotICAgIG1f
Yml0cyA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4obmV3RmF0RW50cnkpIHwgRmF0RmxhZzsKKyAg
ICBtX2JpdHMgPSBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KG5ld0ZhdEVudHJ5KTsKICAgICByZXR1
cm4gKnRoaXM7CiB9CiAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBTeW1ib2xUYWJsZUVudHJ5Ojpu
b3RpZnlXcml0ZVNsb3coKQogU3ltYm9sVGFibGVFbnRyeTo6RmF0RW50cnkqIFN5bWJvbFRhYmxl
RW50cnk6OmluZmxhdGVTbG93KCkKIHsKICAgICBGYXRFbnRyeSogZW50cnkgPSBuZXcgRmF0RW50
cnkobV9iaXRzKTsKLSAgICBtX2JpdHMgPSBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGVudHJ5KSB8
IEZhdEZsYWc7CisgICAgbV9iaXRzID0gYml0d2lzZV9jYXN0PGludHB0cl90PihlbnRyeSk7CiAg
ICAgcmV0dXJuIGVudHJ5OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbFRhYmxlLmgJKHJldmlzaW9uIDE0NTk3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNsYXNzIEZhc3QgewogICAgICAgICBwdWJsaWM6
CiAgICAgICAgICAgICBGYXN0KCkKLSAgICAgICAgICAgICAgICA6IG1fYml0cygwKQorICAgICAg
ICAgICAgICAgIDogbV9iaXRzKFNsaW1GbGFnKQogICAgICAgICAgICAgewogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCkBAIC0xMjksNyArMTI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgICAgIGJvb2wgaXNGYXQoKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiBtX2JpdHMgJiBGYXRGbGFnOworICAgICAgICAgICAgICAgIHJldHVybiBtX2Jp
dHMgJiYgIShtX2JpdHMgJiBTbGltRmxhZyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgcHJpdmF0ZToKQEAgLTE0MywxNCArMTQzLDE0IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB9CiAKICAgICAgICAgU3ltYm9sVGFibGVFbnRyeShpbnQgaW5kZXgpCi0gICAgICAg
ICAgICA6IG1fYml0cygwKQorICAgICAgICAgICAgOiBtX2JpdHMoU2xpbUZsYWcpCiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkSW5kZXgoaW5kZXgpKTsKICAgICAgICAgICAg
IHBhY2soaW5kZXgsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBTeW1ib2xU
YWJsZUVudHJ5KGludCBpbmRleCwgdW5zaWduZWQgYXR0cmlidXRlcykKLSAgICAgICAgICAgIDog
bV9iaXRzKDApCisgICAgICAgICAgICA6IG1fYml0cyhTbGltRmxhZykKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKGlzVmFsaWRJbmRleChpbmRleCkpOwogICAgICAgICAgICAgcGFjayhp
bmRleCwgYXR0cmlidXRlcyAmIFJlYWRPbmx5LCBhdHRyaWJ1dGVzICYgRG9udEVudW0pOwpAQCAt
MTk2LDcgKzE5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgRmFzdCByZXN1bHQ7
CiAgICAgICAgICAgICB3YXNGYXQgPSBpc0ZhdCgpOwogICAgICAgICAgICAgaWYgKHdhc0ZhdCkK
LSAgICAgICAgICAgICAgICByZXN1bHQubV9iaXRzID0gZmF0RW50cnkoKS0+bV9iaXRzOworICAg
ICAgICAgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBmYXRFbnRyeSgpLT5tX2JpdHMgfCBTbGltRmxh
ZzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXN1bHQubV9iaXRzID0gbV9i
aXRzOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI0Niw3ICsyNDYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBz
dGF0aWMgY29uc3QgaW50cHRyX3QgRmF0RmxhZyA9IDB4MTsKKyAgICAgICAgc3RhdGljIGNvbnN0
IGludHB0cl90IFNsaW1GbGFnID0gMHgxOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3Qg
UmVhZE9ubHlGbGFnID0gMHgyOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgRG9udEVu
dW1GbGFnID0gMHg0OwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgTm90TnVsbEZsYWcg
PSAweDg7CkBAIC0yNTYsNyArMjU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgcHVibGljOgogICAgICAgICAgICAgRmF0
RW50cnkoaW50cHRyX3QgYml0cykKLSAgICAgICAgICAgICAgICA6IG1fYml0cyhiaXRzIHwgRmF0
RmxhZykKKyAgICAgICAgICAgICAgICA6IG1fYml0cyhiaXRzICYgflNsaW1GbGFnKQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0yNzAsMTkgKzI3MCwxOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIGJvb2wgaXNGYXQoKSBjb25zdAog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgRmF0RmxhZzsKKyAgICAgICAg
ICAgIHJldHVybiBtX2JpdHMgJiYgIShtX2JpdHMgJiBTbGltRmxhZyk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIGNvbnN0IEZhdEVudHJ5KiBmYXRFbnRyeSgpIGNvbnN0CiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVChpc0ZhdCgpKTsKLSAgICAgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8Y29uc3QgRmF0RW50cnkqPihtX2JpdHMgJiB+RmF0RmxhZyk7CisgICAgICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PGNvbnN0IEZhdEVudHJ5Kj4obV9iaXRzKTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgRmF0RW50cnkqIGZhdEVudHJ5KCkKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKGlzRmF0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxGYXRFbnRyeSo+KG1fYml0cyAmIH5GYXRGbGFnKTsKKyAgICAgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8RmF0RW50cnkqPihtX2JpdHMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBGYXRFbnRyeSogaW5mbGF0ZSgpCkBAIC0zMjAsNyArMzIwLDcgQEAgbmFtZXNwYWNlIEpTQyB7
CiAgICAgICAgIHZvaWQgcGFjayhpbnQgaW5kZXgsIGJvb2wgcmVhZE9ubHksIGJvb2wgZG9udEVu
dW0pCiAgICAgICAgIHsKICAgICAgICAgICAgIGludHB0cl90JiBiaXRzUmVmID0gYml0cygpOwot
ICAgICAgICAgICAgYml0c1JlZiA9IChzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaW5kZXgpIDw8IEZs
YWdCaXRzKSB8IE5vdE51bGxGbGFnOworICAgICAgICAgICAgYml0c1JlZiA9IChzdGF0aWNfY2Fz
dDxpbnRwdHJfdD4oaW5kZXgpIDw8IEZsYWdCaXRzKSB8IE5vdE51bGxGbGFnIHwgKGJpdHNSZWYg
JiBTbGltRmxhZyk7CiAgICAgICAgICAgICBpZiAocmVhZE9ubHkpCiAgICAgICAgICAgICAgICAg
Yml0c1JlZiB8PSBSZWFkT25seUZsYWc7CiAgICAgICAgICAgICBpZiAoZG9udEVudW0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193636</attachid>
            <date>2013-03-18 13:10:57 -0700</date>
            <delta_ts>2013-03-18 17:49:44 -0700</delta_ts>
            <desc>Simplified pack</desc>
            <filename>bug-107781-20130318130653.patch</filename>
            <type>text/plain</type>
            <size>6058</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ1OTgyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDEzLTAzLTE1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IExlYWsgYm90cyBlcnJvbmVvdXNseSByZXBvcnQgSlNDOjpXYXRjaHBvaW50U2V0IGFzIGxlYWtp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzc4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNl
IGxlYWtzIGRvZXNuJ3Qgc3VwcG9ydCB0YWdnZWQgcG9pbnRlcnMsIGF2b2lkIHVzaW5nIGl0IGJ5
IGZsaXBwaW5nIHRoZSBiaXQgZmxhZyB0byBpbmRpY2F0ZQorICAgICAgICB0aGUgZW50cnkgaXMg
ImZhdCIuIFdlIHNldCB0aGUgZmxhZyB3aGVuIHRoZSBlbnRyeSBpcyBOT1QgZmF0OyBpLmUuIHNs
aW0uCisKKyAgICAgICAgUmVwbGFjZWQgRmF0RmxhZyBieSBTbGltRmxhZyBhbmQgaW5pdGlhbGl6
ZWQgbV9iaXRzIHdpdGggdGhpcyBmbGFnIHRvIGluZGljYXRlIHRoYXQgdGhlIGVudHJ5IGlzCisg
ICAgICAgIGluaXRpYWxseSAic2xpbSIuIFVuZm9ydHVuYXRlbHksIHdlIGNhbid0IHNpbXBseSBj
aGVjayB0aGF0IGZsYWcgaXMgbm90IHNldCBpbiBpc0ZhdCgpIHNpbmNlIHdlCisgICAgICAgIHdh
bnQgdGhlIGVtcHR5IHZhbHVlIHRvIGJlIHplcm8gaW4gU2hhcmVkU3ltYm9sVGFibGUuIENoZWNr
IG1fYml0cyAmJiAhKG1fYml0cyAmIFNsaW1GbGFnKSBpbnN0ZWFkLgorCisgICAgICAgICogcnVu
dGltZS9TeW1ib2xUYWJsZS5jcHA6CisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OmNv
cHlTbG93KTogRG9uJ3Qgc2V0IEZhdEZsYWcgc2luY2UgaXQgaGFzIGJlZW4gcmVwbGFjZWQgYnkg
U2xpbUZsYWcuCisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OmluZmxhdGVTbG93KTog
RGl0dG8uCisKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFRhYmxlLmg6CisgICAgICAgIChKU0M6
OlN5bWJvbFRhYmxlRW50cnk6OkZhc3Q6OkZhc3QpOiBTZXQgU2xpbUZsYWcgYnkgZGVmYXVsdC4K
KyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6RmFzdDo6aXNGYXQpOiBBbiBlbnRyeSBp
cyBmYXQgd2hlbiBtX2JpdHMgaXMgbm90IGVudGlyZWx5IHplcm8gYW5kIFNsaW1GbGFnCisgICAg
ICAgIGlzIG5vdCBzZXQuCisKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6U3ltYm9s
VGFibGVFbnRyeSk6IFNldCBTbGltRmxhZyBieSBkZWZhdWx0LgorICAgICAgICAoSlNDOjpTeW1i
b2xUYWJsZUVudHJ5OjpTeW1ib2xUYWJsZUVudHJ5OjpnZXRGYXN0KTogU2V0IFNsaW1GbGFnIHdo
ZW4gY3JlYXRpbmcgRmFzdCBmcm9tIGEgZmF0IGVudHJ5LgorICAgICAgICAoSlNDOjpTeW1ib2xU
YWJsZUVudHJ5OjpGYXRFbnRyeTo6RmF0RW50cnkpOiBTdHJpcCBTbGltRmxhZy4KKyAgICAgICAg
KEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6aXNGYXQpOiBBbiBlbnRyeSBpcyBmYXQgd2hlbiBtX2Jp
dHMgaXMgbm90IGVudGlyZWx5IHplcm8gYW5kIFNsaW1GbGFnIGlzIHVuc2V0LgorICAgICAgICAo
SlNDOjpTeW1ib2xUYWJsZUVudHJ5OjpmYXRFbnRyeSk6IFdlIGRvbid0IG5lZWQgdG8gZmlsdGVy
IEZhdEZsYWcgYW55bW9yZS4KKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6cGFjayk6
IFByZXNlcnZlIFNsaW1GbGFnLgorCiAyMDEzLTAzLTE1ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5n
QGFwcGxlLmNvbT4KIAogICAgICAgICBEb24ndCBhbHNvIGNsb25lIFN0cnVjdHVyZVJhcmVEYXRh
IHdoZW4gY2xvbmluZyBTdHJ1Y3R1cmUuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9TeW1ib2xUYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3ltYm9sVGFibGUuY3BwCShyZXZpc2lvbiAxNDU5NzcpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4
LDcgKzM4LDcgQEAgU3ltYm9sVGFibGVFbnRyeSYgU3ltYm9sVGFibGVFbnRyeTo6Y29weQogICAg
IEFTU0VSVChvdGhlci5pc0ZhdCgpKTsKICAgICBGYXRFbnRyeSogbmV3RmF0RW50cnkgPSBuZXcg
RmF0RW50cnkoKm90aGVyLmZhdEVudHJ5KCkpOwogICAgIGZyZWVGYXRFbnRyeSgpOwotICAgIG1f
Yml0cyA9IGJpdHdpc2VfY2FzdDxpbnRwdHJfdD4obmV3RmF0RW50cnkpIHwgRmF0RmxhZzsKKyAg
ICBtX2JpdHMgPSBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KG5ld0ZhdEVudHJ5KTsKICAgICByZXR1
cm4gKnRoaXM7CiB9CiAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBTeW1ib2xUYWJsZUVudHJ5Ojpu
b3RpZnlXcml0ZVNsb3coKQogU3ltYm9sVGFibGVFbnRyeTo6RmF0RW50cnkqIFN5bWJvbFRhYmxl
RW50cnk6OmluZmxhdGVTbG93KCkKIHsKICAgICBGYXRFbnRyeSogZW50cnkgPSBuZXcgRmF0RW50
cnkobV9iaXRzKTsKLSAgICBtX2JpdHMgPSBiaXR3aXNlX2Nhc3Q8aW50cHRyX3Q+KGVudHJ5KSB8
IEZhdEZsYWc7CisgICAgbV9iaXRzID0gYml0d2lzZV9jYXN0PGludHB0cl90PihlbnRyeSk7CiAg
ICAgcmV0dXJuIGVudHJ5OwogfQogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TeW1ib2xUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL1N5bWJvbFRhYmxlLmgJKHJldmlzaW9uIDE0NTk3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIGNsYXNzIEZhc3QgewogICAgICAgICBwdWJsaWM6
CiAgICAgICAgICAgICBGYXN0KCkKLSAgICAgICAgICAgICAgICA6IG1fYml0cygwKQorICAgICAg
ICAgICAgICAgIDogbV9iaXRzKFNsaW1GbGFnKQogICAgICAgICAgICAgewogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCkBAIC0xMjksNyArMTI5LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAKICAg
ICAgICAgICAgIGJvb2wgaXNGYXQoKSBjb25zdAogICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHJldHVybiBtX2JpdHMgJiBGYXRGbGFnOworICAgICAgICAgICAgICAgIHJldHVybiBtX2Jp
dHMgJiYgIShtX2JpdHMgJiBTbGltRmxhZyk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAK
ICAgICAgICAgcHJpdmF0ZToKQEAgLTE0MywxNCArMTQzLDE0IEBAIG5hbWVzcGFjZSBKU0Mgewog
ICAgICAgICB9CiAKICAgICAgICAgU3ltYm9sVGFibGVFbnRyeShpbnQgaW5kZXgpCi0gICAgICAg
ICAgICA6IG1fYml0cygwKQorICAgICAgICAgICAgOiBtX2JpdHMoU2xpbUZsYWcpCiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkSW5kZXgoaW5kZXgpKTsKICAgICAgICAgICAg
IHBhY2soaW5kZXgsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIH0KIAogICAgICAgICBTeW1ib2xU
YWJsZUVudHJ5KGludCBpbmRleCwgdW5zaWduZWQgYXR0cmlidXRlcykKLSAgICAgICAgICAgIDog
bV9iaXRzKDApCisgICAgICAgICAgICA6IG1fYml0cyhTbGltRmxhZykKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKGlzVmFsaWRJbmRleChpbmRleCkpOwogICAgICAgICAgICAgcGFjayhp
bmRleCwgYXR0cmlidXRlcyAmIFJlYWRPbmx5LCBhdHRyaWJ1dGVzICYgRG9udEVudW0pOwpAQCAt
MTk2LDcgKzE5Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICAgICAgRmFzdCByZXN1bHQ7
CiAgICAgICAgICAgICB3YXNGYXQgPSBpc0ZhdCgpOwogICAgICAgICAgICAgaWYgKHdhc0ZhdCkK
LSAgICAgICAgICAgICAgICByZXN1bHQubV9iaXRzID0gZmF0RW50cnkoKS0+bV9iaXRzOworICAg
ICAgICAgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBmYXRFbnRyeSgpLT5tX2JpdHMgfCBTbGltRmxh
ZzsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByZXN1bHQubV9iaXRzID0gbV9i
aXRzOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKQEAgLTI0Niw3ICsyNDYsNyBAQCBuYW1l
c3BhY2UgSlNDIHsKICAgICAgICAgfQogICAgICAgICAKICAgICBwcml2YXRlOgotICAgICAgICBz
dGF0aWMgY29uc3QgaW50cHRyX3QgRmF0RmxhZyA9IDB4MTsKKyAgICAgICAgc3RhdGljIGNvbnN0
IGludHB0cl90IFNsaW1GbGFnID0gMHgxOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3Qg
UmVhZE9ubHlGbGFnID0gMHgyOwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgRG9udEVu
dW1GbGFnID0gMHg0OwogICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgTm90TnVsbEZsYWcg
PSAweDg7CkBAIC0yNTYsNyArMjU2LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICAgICAgcHVibGljOgogICAgICAgICAgICAgRmF0
RW50cnkoaW50cHRyX3QgYml0cykKLSAgICAgICAgICAgICAgICA6IG1fYml0cyhiaXRzIHwgRmF0
RmxhZykKKyAgICAgICAgICAgICAgICA6IG1fYml0cyhiaXRzICYgflNsaW1GbGFnKQogICAgICAg
ICAgICAgewogICAgICAgICAgICAgfQogICAgICAgICAgICAgCkBAIC0yNzAsMTkgKzI3MCwxOSBA
QCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgIGJvb2wgaXNGYXQoKSBjb25zdAog
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9iaXRzICYgRmF0RmxhZzsKKyAgICAgICAg
ICAgIHJldHVybiBtX2JpdHMgJiYgIShtX2JpdHMgJiBTbGltRmxhZyk7CiAgICAgICAgIH0KICAg
ICAgICAgCiAgICAgICAgIGNvbnN0IEZhdEVudHJ5KiBmYXRFbnRyeSgpIGNvbnN0CiAgICAgICAg
IHsKICAgICAgICAgICAgIEFTU0VSVChpc0ZhdCgpKTsKLSAgICAgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8Y29uc3QgRmF0RW50cnkqPihtX2JpdHMgJiB+RmF0RmxhZyk7CisgICAgICAgICAg
ICByZXR1cm4gYml0d2lzZV9jYXN0PGNvbnN0IEZhdEVudHJ5Kj4obV9iaXRzKTsKICAgICAgICAg
fQogICAgICAgICAKICAgICAgICAgRmF0RW50cnkqIGZhdEVudHJ5KCkKICAgICAgICAgewogICAg
ICAgICAgICAgQVNTRVJUKGlzRmF0KCkpOwotICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2Fz
dDxGYXRFbnRyeSo+KG1fYml0cyAmIH5GYXRGbGFnKTsKKyAgICAgICAgICAgIHJldHVybiBiaXR3
aXNlX2Nhc3Q8RmF0RW50cnkqPihtX2JpdHMpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAg
ICBGYXRFbnRyeSogaW5mbGF0ZSgpCkBAIC0zMTksOCArMzE5LDkgQEAgbmFtZXNwYWNlIEpTQyB7
CiAKICAgICAgICAgdm9pZCBwYWNrKGludCBpbmRleCwgYm9vbCByZWFkT25seSwgYm9vbCBkb250
RW51bSkKICAgICAgICAgeworICAgICAgICAgICAgQVNTRVJUKCFpc0ZhdCgpKTsKICAgICAgICAg
ICAgIGludHB0cl90JiBiaXRzUmVmID0gYml0cygpOwotICAgICAgICAgICAgYml0c1JlZiA9IChz
dGF0aWNfY2FzdDxpbnRwdHJfdD4oaW5kZXgpIDw8IEZsYWdCaXRzKSB8IE5vdE51bGxGbGFnOwor
ICAgICAgICAgICAgYml0c1JlZiA9IChzdGF0aWNfY2FzdDxpbnRwdHJfdD4oaW5kZXgpIDw8IEZs
YWdCaXRzKSB8IE5vdE51bGxGbGFnIHwgU2xpbUZsYWc7CiAgICAgICAgICAgICBpZiAocmVhZE9u
bHkpCiAgICAgICAgICAgICAgICAgYml0c1JlZiB8PSBSZWFkT25seUZsYWc7CiAgICAgICAgICAg
ICBpZiAoZG9udEVudW0pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193707</attachid>
            <date>2013-03-18 17:49:46 -0700</date>
            <delta_ts>2013-03-22 00:39:12 -0700</delta_ts>
            <desc>Use emptyValueIsZero = false</desc>
            <filename>bug-107781-20130318174542.patch</filename>
            <type>text/plain</type>
            <size>7170</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTQ2MTYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDEzLTAzLTE4ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAg
IExlYWsgYm90cyBlcnJvbmVvdXNseSByZXBvcnQgSlNDOjpXYXRjaHBvaW50U2V0IGFzIGxlYWtp
bmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwNzc4
MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbmNl
IGxlYWtzIGRvZXNuJ3Qgc3VwcG9ydCB0YWdnZWQgcG9pbnRlcnMsIGF2b2lkIHVzaW5nIGl0IGJ5
IGZsaXBwaW5nIHRoZSBiaXQgZmxhZyB0byBpbmRpY2F0ZQorICAgICAgICB0aGUgZW50cnkgaXMg
ImZhdCIuIFdlIHNldCB0aGUgZmxhZyB3aGVuIHRoZSBlbnRyeSBpcyBOT1QgZmF0OyBpLmUuIHNs
aW0uCisKKyAgICAgICAgUmVwbGFjZWQgRmF0RmxhZyBieSBTbGltRmxhZyBhbmQgaW5pdGlhbGl6
ZWQgbV9iaXRzIHdpdGggdGhpcyBmbGFnIHRvIGluZGljYXRlIHRoYXQgdGhlIGVudHJ5IGlzCisg
ICAgICAgIGluaXRpYWxseSAic2xpbSIuCisKKyAgICAgICAgKiBydW50aW1lL1N5bWJvbFRhYmxl
LmNwcDoKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6Y29weVNsb3cpOiBEb24ndCBz
ZXQgRmF0RmxhZyBzaW5jZSBpdCBoYXMgYmVlbiByZXBsYWNlZCBieSBTbGltRmxhZy4KKyAgICAg
ICAgKEpTQzo6U3ltYm9sVGFibGVFbnRyeTo6aW5mbGF0ZVNsb3cpOiBEaXR0by4KKworICAgICAg
ICAqIHJ1bnRpbWUvU3ltYm9sVGFibGUuaDoKKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRy
eTo6RmFzdDo6RmFzdCk6IFNldCBTbGltRmxhZyBieSBkZWZhdWx0LgorICAgICAgICAoSlNDOjpT
eW1ib2xUYWJsZUVudHJ5OjpGYXN0Ojppc051bGwpOiBJZ25vcmUgU2xpbUZsYWcuCisgICAgICAg
IChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OkZhc3Q6OmlzRmF0KTogQW4gZW50cnkgaXMgZmF0IHdo
ZW4gbV9iaXRzIGlzIG5vdCBlbnRpcmVseSB6ZXJvIGFuZCBTbGltRmxhZworICAgICAgICBpcyBu
b3Qgc2V0LgorCisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxlRW50cnk6OlN5bWJvbFRhYmxlRW50
cnkpOiBTZXQgU2xpbUZsYWcgYnkgZGVmYXVsdC4KKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVF
bnRyeTo6U3ltYm9sVGFibGVFbnRyeTo6Z2V0RmFzdCk6IFNldCBTbGltRmxhZyB3aGVuIGNyZWF0
aW5nIEZhc3QgZnJvbSBhIGZhdCBlbnRyeS4KKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRy
eTo6aXNOdWxsKTogSWdub3JlIFNsaW1GbGFnLgorICAgICAgICAoSlNDOjpTeW1ib2xUYWJsZUVu
dHJ5OjpGYXRFbnRyeTo6RmF0RW50cnkpOiBTdHJpcCBTbGltRmxhZy4KKyAgICAgICAgKEpTQzo6
U3ltYm9sVGFibGVFbnRyeTo6aXNGYXQpOiBBbiBlbnRyeSBpcyBmYXQgd2hlbiBtX2JpdHMgaXMg
bm90IGVudGlyZWx5IHplcm8gYW5kIFNsaW1GbGFnIGlzIHVuc2V0LgorICAgICAgICAoSlNDOjpT
eW1ib2xUYWJsZUVudHJ5OjpmYXRFbnRyeSk6IERvbid0IHN0cmlwIEZhdEZsYWcgYXMgdGhpcyBm
bGFnIGRvZXNuJ3QgZXhpc3QgYW55bW9yZS4KKyAgICAgICAgKEpTQzo6U3ltYm9sVGFibGVFbnRy
eTo6cGFjayk6IFByZXNlcnZlIFNsaW1GbGFnLgorCisgICAgICAgIChKU0M6OlN5bWJvbFRhYmxl
SW5kZXhIYXNoVHJhaXRzKTogZW1wdHkgdmFsdWUgaXMgbm8gbG9uZ2VyIHplcm8gc28gZG9uJ3Qg
c2V0IGVtcHR5VmFsdWVJc1plcm8gdHJ1ZS4KKwogMjAxMy0wMy0xOCAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIEpTQ19OQVRJVkVfRlVOQ1RJT04oKSB0YWtlcyBh
biBpZGVudGlmaWVyIGZvciB0aGUgbmFtZSBhbmQgdGhlbiB1c2VzICNuYW1lLCB3aGljaCBpcyB1
bnNhZmUgaWYgbmFtZSB3YXMgYWxyZWFkeSAjZGVmaW5lJ2QgdG8gc29tZXRoaW5nIGVsc2UKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TeW1ib2xUYWJsZS5jcHAJKHJl
dmlzaW9uIDE0NTk3NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRh
YmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgsNyBAQCBTeW1ib2xUYWJsZUVudHJ5
JiBTeW1ib2xUYWJsZUVudHJ5Ojpjb3B5CiAgICAgQVNTRVJUKG90aGVyLmlzRmF0KCkpOwogICAg
IEZhdEVudHJ5KiBuZXdGYXRFbnRyeSA9IG5ldyBGYXRFbnRyeSgqb3RoZXIuZmF0RW50cnkoKSk7
CiAgICAgZnJlZUZhdEVudHJ5KCk7Ci0gICAgbV9iaXRzID0gYml0d2lzZV9jYXN0PGludHB0cl90
PihuZXdGYXRFbnRyeSkgfCBGYXRGbGFnOworICAgIG1fYml0cyA9IGJpdHdpc2VfY2FzdDxpbnRw
dHJfdD4obmV3RmF0RW50cnkpOwogICAgIHJldHVybiAqdGhpczsKIH0KIApAQCAtOTQsNyArOTQs
NyBAQCB2b2lkIFN5bWJvbFRhYmxlRW50cnk6Om5vdGlmeVdyaXRlU2xvdygpCiBTeW1ib2xUYWJs
ZUVudHJ5OjpGYXRFbnRyeSogU3ltYm9sVGFibGVFbnRyeTo6aW5mbGF0ZVNsb3coKQogewogICAg
IEZhdEVudHJ5KiBlbnRyeSA9IG5ldyBGYXRFbnRyeShtX2JpdHMpOwotICAgIG1fYml0cyA9IGJp
dHdpc2VfY2FzdDxpbnRwdHJfdD4oZW50cnkpIHwgRmF0RmxhZzsKKyAgICBtX2JpdHMgPSBiaXR3
aXNlX2Nhc3Q8aW50cHRyX3Q+KGVudHJ5KTsKICAgICByZXR1cm4gZW50cnk7CiB9CiAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N5bWJvbFRhYmxlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAkocmV2aXNpb24g
MTQ1OTc3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3ltYm9sVGFibGUuaAko
d29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAg
Y2xhc3MgRmFzdCB7CiAgICAgICAgIHB1YmxpYzoKICAgICAgICAgICAgIEZhc3QoKQotICAgICAg
ICAgICAgICAgIDogbV9iaXRzKDApCisgICAgICAgICAgICAgICAgOiBtX2JpdHMoU2xpbUZsYWcp
CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICAKQEAgLTEwNCw3ICsx
MDQsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgCiAgICAgICAgICAgICBib29sIGlzTnVs
bCgpIGNvbnN0CiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuICFtX2JpdHM7
CisgICAgICAgICAgICAgICAgcmV0dXJuICEobV9iaXRzICYgflNsaW1GbGFnKTsKICAgICAgICAg
ICAgIH0KIAogICAgICAgICAgICAgaW50IGdldEluZGV4KCkgY29uc3QKQEAgLTEyOSw3ICsxMjks
NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogICAgICAgICAgICAgYm9vbCBpc0ZhdCgpIGNvbnN0CiAg
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgcmV0dXJuIG1fYml0cyAmIEZhdEZsYWc7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuICEobV9iaXRzICYgU2xpbUZsYWcpOwogICAgICAgICAgICAg
fQogICAgICAgICAgICAgCiAgICAgICAgIHByaXZhdGU6CkBAIC0xMzgsMTkgKzEzOCwxOSBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgfTsKIAogICAgICAgICBTeW1ib2xUYWJsZUVudHJ5KCkK
LSAgICAgICAgICAgIDogbV9iaXRzKDApCisgICAgICAgICAgICA6IG1fYml0cyhTbGltRmxhZykK
ICAgICAgICAgewogICAgICAgICB9CiAKICAgICAgICAgU3ltYm9sVGFibGVFbnRyeShpbnQgaW5k
ZXgpCi0gICAgICAgICAgICA6IG1fYml0cygwKQorICAgICAgICAgICAgOiBtX2JpdHMoU2xpbUZs
YWcpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChpc1ZhbGlkSW5kZXgoaW5kZXgpKTsK
ICAgICAgICAgICAgIHBhY2soaW5kZXgsIGZhbHNlLCBmYWxzZSk7CiAgICAgICAgIH0KIAogICAg
ICAgICBTeW1ib2xUYWJsZUVudHJ5KGludCBpbmRleCwgdW5zaWduZWQgYXR0cmlidXRlcykKLSAg
ICAgICAgICAgIDogbV9iaXRzKDApCisgICAgICAgICAgICA6IG1fYml0cyhTbGltRmxhZykKICAg
ICAgICAgewogICAgICAgICAgICAgQVNTRVJUKGlzVmFsaWRJbmRleChpbmRleCkpOwogICAgICAg
ICAgICAgcGFjayhpbmRleCwgYXR0cmlidXRlcyAmIFJlYWRPbmx5LCBhdHRyaWJ1dGVzICYgRG9u
dEVudW0pOwpAQCAtMTYyLDcgKzE2Miw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9CiAg
ICAgICAgIAogICAgICAgICBTeW1ib2xUYWJsZUVudHJ5KGNvbnN0IFN5bWJvbFRhYmxlRW50cnkm
IG90aGVyKQotICAgICAgICAgICAgOiBtX2JpdHMoMCkKKyAgICAgICAgICAgIDogbV9iaXRzKFNs
aW1GbGFnKQogICAgICAgICB7CiAgICAgICAgICAgICAqdGhpcyA9IG90aGVyOwogICAgICAgICB9
CkBAIC0xNzgsNyArMTc4LDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIAogICAgICAgICBi
b29sIGlzTnVsbCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiAhYml0cygp
OworICAgICAgICAgICAgcmV0dXJuICEoYml0cygpICYgflNsaW1GbGFnKTsKICAgICAgICAgfQog
CiAgICAgICAgIGludCBnZXRJbmRleCgpIGNvbnN0CkBAIC0xOTYsNyArMTk2LDcgQEAgbmFtZXNw
YWNlIEpTQyB7CiAgICAgICAgICAgICBGYXN0IHJlc3VsdDsKICAgICAgICAgICAgIHdhc0ZhdCA9
IGlzRmF0KCk7CiAgICAgICAgICAgICBpZiAod2FzRmF0KQotICAgICAgICAgICAgICAgIHJlc3Vs
dC5tX2JpdHMgPSBmYXRFbnRyeSgpLT5tX2JpdHM7CisgICAgICAgICAgICAgICAgcmVzdWx0Lm1f
Yml0cyA9IGZhdEVudHJ5KCktPm1fYml0cyB8IFNsaW1GbGFnOwogICAgICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgIHJlc3VsdC5tX2JpdHMgPSBtX2JpdHM7CiAgICAgICAgICAgICByZXR1
cm4gcmVzdWx0OwpAQCAtMjQ2LDcgKzI0Niw3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB9
CiAgICAgICAgIAogICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBG
YXRGbGFnID0gMHgxOworICAgICAgICBzdGF0aWMgY29uc3QgaW50cHRyX3QgU2xpbUZsYWcgPSAw
eDE7CiAgICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBSZWFkT25seUZsYWcgPSAweDI7CiAg
ICAgICAgIHN0YXRpYyBjb25zdCBpbnRwdHJfdCBEb250RW51bUZsYWcgPSAweDQ7CiAgICAgICAg
IHN0YXRpYyBjb25zdCBpbnRwdHJfdCBOb3ROdWxsRmxhZyA9IDB4ODsKQEAgLTI1Niw3ICsyNTYs
NyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgICAgICBwdWJsaWM6CiAgICAgICAgICAgICBGYXRFbnRyeShpbnRwdHJfdCBiaXRzKQot
ICAgICAgICAgICAgICAgIDogbV9iaXRzKGJpdHMgfCBGYXRGbGFnKQorICAgICAgICAgICAgICAg
IDogbV9iaXRzKGJpdHMgJiB+U2xpbUZsYWcpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAKQEAgLTI3MCwxOSArMjcwLDE5IEBAIG5hbWVzcGFjZSBKU0MgewogICAg
ICAgICAKICAgICAgICAgYm9vbCBpc0ZhdCgpIGNvbnN0CiAgICAgICAgIHsKLSAgICAgICAgICAg
IHJldHVybiBtX2JpdHMgJiBGYXRGbGFnOworICAgICAgICAgICAgcmV0dXJuICEobV9iaXRzICYg
U2xpbUZsYWcpOwogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBjb25zdCBGYXRFbnRyeSog
ZmF0RW50cnkoKSBjb25zdAogICAgICAgICB7CiAgICAgICAgICAgICBBU1NFUlQoaXNGYXQoKSk7
Ci0gICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PGNvbnN0IEZhdEVudHJ5Kj4obV9iaXRz
ICYgfkZhdEZsYWcpOworICAgICAgICAgICAgcmV0dXJuIGJpdHdpc2VfY2FzdDxjb25zdCBGYXRF
bnRyeSo+KG1fYml0cyk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIEZhdEVudHJ5KiBm
YXRFbnRyeSgpCiAgICAgICAgIHsKICAgICAgICAgICAgIEFTU0VSVChpc0ZhdCgpKTsKLSAgICAg
ICAgICAgIHJldHVybiBiaXR3aXNlX2Nhc3Q8RmF0RW50cnkqPihtX2JpdHMgJiB+RmF0RmxhZyk7
CisgICAgICAgICAgICByZXR1cm4gYml0d2lzZV9jYXN0PEZhdEVudHJ5Kj4obV9iaXRzKTsKICAg
ICAgICAgfQogICAgICAgICAKICAgICAgICAgRmF0RW50cnkqIGluZmxhdGUoKQpAQCAtMzE5LDgg
KzMxOSw5IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIHZvaWQgcGFjayhpbnQgaW5kZXgs
IGJvb2wgcmVhZE9ubHksIGJvb2wgZG9udEVudW0pCiAgICAgICAgIHsKKyAgICAgICAgICAgIEFT
U0VSVCghaXNGYXQoKSk7CiAgICAgICAgICAgICBpbnRwdHJfdCYgYml0c1JlZiA9IGJpdHMoKTsK
LSAgICAgICAgICAgIGJpdHNSZWYgPSAoc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KGluZGV4KSA8PCBG
bGFnQml0cykgfCBOb3ROdWxsRmxhZzsKKyAgICAgICAgICAgIGJpdHNSZWYgPSAoc3RhdGljX2Nh
c3Q8aW50cHRyX3Q+KGluZGV4KSA8PCBGbGFnQml0cykgfCBOb3ROdWxsRmxhZyB8IFNsaW1GbGFn
OwogICAgICAgICAgICAgaWYgKHJlYWRPbmx5KQogICAgICAgICAgICAgICAgIGJpdHNSZWYgfD0g
UmVhZE9ubHlGbGFnOwogICAgICAgICAgICAgaWYgKGRvbnRFbnVtKQpAQCAtMzM2LDcgKzMzNyw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIH07CiAKICAgICBzdHJ1Y3QgU3ltYm9sVGFibGVJbmRl
eEhhc2hUcmFpdHMgOiBIYXNoVHJhaXRzPFN5bWJvbFRhYmxlRW50cnk+IHsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IGJvb2wgZW1wdHlWYWx1ZUlzWmVybyA9IHRydWU7CiAgICAgICAgIHN0YXRpYyBj
b25zdCBib29sIG5lZWRzRGVzdHJ1Y3Rpb24gPSB0cnVlOwogICAgIH07CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>