<?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>82201</bug_id>
          
          <creation_ts>2012-03-26 07:04:27 -0700</creation_ts>
          <short_desc>[V8][Performance] Optimize createTextNode(), createElement(), cloneNode() etc</short_desc>
          <delta_ts>2012-03-27 00:49:04 -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>WebCore JavaScript</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>arv</cc>
    
    <cc>japhet</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>587691</commentid>
    <comment_count>0</comment_count>
      <attachid>133799</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 07:04:27 -0700</bug_when>
    <thetext>Created attachment 133799
Performance test

createTextNode(), createElement(), cloneNode() etc, which creates a new DOM object every time, are much slower in V8 than in JSC. There are the main methods used in Dromaeo/dom-modify.html.

The results of the attached performance test are as follows:

Chromium/V8/Mac:
createTextNode : median=317ms (mean=439.08ms, min=303ms, max=3126ms)
createElement : median=403ms (mean=695.70ms, min=398ms, max=5615ms)
cloneNode : median=384ms (mean=577.96ms, min=372ms, max=5313ms)

Safari/JSC/Mac:
createTextNode : median=142ms (mean=141.04ms, min=110ms, max=168ms)
createElement : median=234ms (mean=245.74ms, min=219ms, max=305ms)
cloneNode : median=210ms (mean=213.36ms, min=204ms, max=284ms)

Chromium results are really noisy due to the unsteadiness of V8&apos;s GC. Let us focus on the median of the measured times. I&apos;ll discuss the GC issues with the V8 team later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587693</commentid>
    <comment_count>1</comment_count>
      <attachid>133800</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 07:05:31 -0700</bug_when>
    <thetext>Created attachment 133800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587697</commentid>
    <comment_count>2</comment_count>
      <attachid>133802</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 07:08:39 -0700</bug_when>
    <thetext>Created attachment 133802
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587829</commentid>
    <comment_count>3</comment_count>
      <attachid>133802</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2012-03-26 09:33:39 -0700</bug_when>
    <thetext>Comment on attachment 133802
Patch

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

Please don&apos;t forget to run run-binding-tests

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:648
&gt; +    windowShell()-&gt;initContextIfNeeded();
&gt; +    return windowShell()-&gt;context();

I know we currently only get here from the code generated by the code generator which tests for IsNodeSubType so we cannot get here from a worker. But I&apos;m concerned about us special casing so many things. For now I would be OK with an assert. In the long term I think it is bad that we tie the context to the windowShell like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>587872</commentid>
    <comment_count>4</comment_count>
      <attachid>133802</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 10:35:45 -0700</bug_when>
    <thetext>Comment on attachment 133802
Patch

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

&gt; Source/WebCore/bindings/v8/V8Proxy.cpp:642
&gt; +        RefPtr&lt;SharedPersistent&lt;v8::Context&gt; &gt; context = isolatedContext-&gt;sharedContext();

Why is this a RefPtr?

&gt; Source/WebCore/bindings/v8/V8Proxy.h:248
&gt; +        // context() and persistentContext() return the same context.
&gt; +        // While context() returns a newly created Local handle,
&gt; +        // persistentContext() returns an existing Persistent handle.
&gt;          v8::Local&lt;v8::Context&gt; context();
&gt; +        v8::Handle&lt;v8::Context&gt; persistentContext();

I&apos;m pretty sure we use a new local handle here because we&apos;re worried about our persistent handle getting disposed while we&apos;ve entered it.  Consider what happens if we run page JavaScript while having entered our persistent handle and that JavaScript causes the Frame and everything to be torn down.  We&apos;ll dispose the persistent handle, which could cause the context to be destroyed.

I&apos;m pretty sure we&apos;ve had crashes like that before and that&apos;s why we use a new local handle (to ensure that the context stays around).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588373</commentid>
    <comment_count>5</comment_count>
      <attachid>133941</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 17:42:23 -0700</bug_when>
    <thetext>Created attachment 133941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588381</commentid>
    <comment_count>6</comment_count>
      <attachid>133943</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 17:47:35 -0700</bug_when>
    <thetext>Created attachment 133943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588383</commentid>
    <comment_count>7</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 17:49:42 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.cpp:642
&gt; &gt; +        RefPtr&lt;SharedPersistent&lt;v8::Context&gt; &gt; context = isolatedContext-&gt;sharedContext();
&gt; 
&gt; Why is this a RefPtr?

Fixed.

&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.h:248
&gt; &gt; +        // context() and persistentContext() return the same context.
&gt; &gt; +        // While context() returns a newly created Local handle,
&gt; &gt; +        // persistentContext() returns an existing Persistent handle.
&gt; &gt;          v8::Local&lt;v8::Context&gt; context();
&gt; &gt; +        v8::Handle&lt;v8::Context&gt; persistentContext();
&gt; 
&gt; I&apos;m pretty sure we use a new local handle here because we&apos;re worried about our persistent handle getting disposed while we&apos;ve entered it.  Consider what happens if we run page JavaScript while having entered our persistent handle and that JavaScript causes the Frame and everything to be torn down.  We&apos;ll dispose the persistent handle, which could cause the context to be destroyed.

Fixed. Just fixed a code in a cold path, and thus no performance change.


(In reply to comment #3)
&gt; Please don&apos;t forget to run run-binding-tests

Updated.

&gt; &gt; Source/WebCore/bindings/v8/V8Proxy.cpp:648
&gt; &gt; +    windowShell()-&gt;initContextIfNeeded();
&gt; &gt; +    return windowShell()-&gt;context();
&gt; 
&gt; I know we currently only get here from the code generated by the code generator which tests for IsNodeSubType so we cannot get here from a worker. For now I would be OK with an assert.

How should we write the assert, to check if we are not in a worker?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588433</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 18:28:26 -0700</bug_when>
    <thetext>&gt; How should we write the assert, to check if we are not in a worker?

ASSERT(isMainThread());

?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588440</commentid>
    <comment_count>9</comment_count>
      <attachid>133943</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 18:35:23 -0700</bug_when>
    <thetext>Comment on attachment 133943
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3160
&gt; +        // For performance, we do not create a Local handle of the context
&gt; +        // until we really need to enter the context.
&gt; +        if (proxy)
&gt; +            context = proxy-&gt;context();

Is there actually any way of getting here if proxy is false?  It seems like context.IsEmpty() will be true in that case and we&apos;ll never reach this line.

Another idea: Maybe we should move this code into V8Proxy?

v8::Handle&lt;v8::Context&gt; context;
if (proxy &amp;&amp; !proxy-&gt;matchesCurrentContext()) {
    context = proxy-&gt;context();
    if (context)
        context-&gt;Enter();
}

where V8Proxy::matchesCurrentContext is something like:

v8::Handle&lt;v8::Context&gt; context = windowShell()-&gt;context();
return !context-&gt;IsEmpty() &amp;&amp; context == context-&gt;GetCurrent();

(Although likely more complicated to deal with isolated worlds.)

That would save all the trickiness around having two accessors on V8Proxy for the context.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588555</commentid>
    <comment_count>10</comment_count>
      <attachid>133972</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 21:58:17 -0700</bug_when>
    <thetext>Created attachment 133972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588557</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 21:59:38 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; v8::Handle&lt;v8::Context&gt; context;
&gt; if (proxy &amp;&amp; !proxy-&gt;matchesCurrentContext()) {
&gt;     context = proxy-&gt;context();
&gt;     if (context)
&gt;         context-&gt;Enter();
&gt; }
&gt; 
&gt; where V8Proxy::matchesCurrentContext is something like:
&gt; 
&gt; v8::Handle&lt;v8::Context&gt; context = windowShell()-&gt;context();
&gt; return !context-&gt;IsEmpty() &amp;&amp; context == context-&gt;GetCurrent();
&gt; 
&gt; That would save all the trickiness around having two accessors on V8Proxy for the context.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588598</commentid>
    <comment_count>12</comment_count>
      <attachid>133972</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-03-26 23:43:47 -0700</bug_when>
    <thetext>Comment on attachment 133972
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:3150
&gt; +    bool contextEntered = false;

Can&apos;t we just use context.IsEmpty() instead of introducing this bool?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588600</commentid>
    <comment_count>13</comment_count>
      <attachid>133986</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-03-26 23:48:27 -0700</bug_when>
    <thetext>Created attachment 133986
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588623</commentid>
    <comment_count>14</comment_count>
      <attachid>133986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-27 00:48:27 -0700</bug_when>
    <thetext>Comment on attachment 133986
patch for landing

Clearing flags on attachment: 133986

Committed r112218: &lt;http://trac.webkit.org/changeset/112218&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>133799</attachid>
            <date>2012-03-26 07:04:27 -0700</date>
            <delta_ts>2012-03-26 07:04:27 -0700</delta_ts>
            <desc>Performance test</desc>
            <filename>dom_createnode.html</filename>
            <type>text/html</type>
            <size>1565</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPjwvaGVhZD4KPHNjcmlwdD4KaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwoKZnVuY3Rp
b24gcnVuKHRpdGxlLCByZXBlYXROdW0sIGZ1bmMpIHsKICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwoKICB2YXIgcm91bmRzID0gNTA7CiAgdmFyIHRpbWVz
ID0gW107CiAgZm9yICh2YXIgciA9IDA7IHIgPCByb3VuZHM7IHIrKykgewogICAgdmFyIHN0YXJ0
ID0gRGF0ZS5ub3coKTsKICAgIGZ1bmMocmVwZWF0TnVtKTsKICAgIHRpbWVzLnB1c2goRGF0ZS5u
b3coKSAtIHN0YXJ0KTsKICB9CgogIHRpbWVzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJu
IGEgLSBiOyB9KTsKICB2YXIgc3VtID0gMCwgbWluID0gKG5ldyBEYXRlKDIwMjIsIDEyLCAzMSkp
LmdldFRpbWUoKSwgbWF4ID0gLTE7CiAgdmFyIG1lZGlhbiA9IHRpbWVzW01hdGguZmxvb3IodGlt
ZXMubGVuZ3RoIC8gMildOwogIGZvciAodmFyIGkgPSAwOyBpIDwgdGltZXMubGVuZ3RoOyBpKysp
IHsKICAgIGlmIChtaW4gPiB0aW1lc1tpXSkKICAgICAgbWluID0gdGltZXNbaV07CiAgICBpZiAo
bWF4IDwgdGltZXNbaV0pCiAgICAgIG1heCA9IHRpbWVzW2ldOwogICAgc3VtICs9IHRpbWVzW2ld
OwogIH0KCiAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHRpdGxl
ICsgIiA6IG1lZGlhbj0iICsgbWVkaWFuICsgIm1zICgiICsgKG1lZGlhbiAqIDFlNiAvIHJlcGVh
dE51bSkudG9GaXhlZCgyKSArICJucy9pdGVyYXRpb24pLCBtZWFuPSIgKyAoc3VtIC8gcm91bmRz
KS50b0ZpeGVkKDIpICsgIm1zLCBtaW49IiArIG1pbiArICJtcywgbWF4PSIgKyBtYXggKyAibXMi
KSk7CiAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOwp9
Cgp3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkgewogIHZhciByZXBlYXROdW0gPSA2MDAwMDA7
CgogIHJ1bigiY3JlYXRlVGV4dE5vZGUiLCByZXBlYXROdW0sIGZ1bmN0aW9uKHJlcGVhdE51bSkg
ewogICAgZm9yICh2YXIgaiA9IDA7IGogPCByZXBlYXROdW07IGorKykgewogICAgICBkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgiZm9vIik7CiAgICB9CiAgfSk7CgogIHJ1bigiY3JlYXRlRWxlbWVu
dCIsIHJlcGVhdE51bSwgZnVuY3Rpb24ocmVwZWF0TnVtKSB7CiAgICBmb3IgKHZhciBqID0gMDsg
aiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogICAgfQogIH0pOwoKICBydW4oImNsb25lTm9kZSIsIHJlcGVhdE51bSwgZnVuY3Rpb24ocmVw
ZWF0TnVtKSB7CiAgICB2YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAg
ICBmb3IgKHZhciBqID0gMDsgaiA8IHJlcGVhdE51bTsgaisrKSB7CiAgICAgIGRpdi5jbG9uZU5v
ZGUoZmFsc2UpOwogICAgfQogIH0pOwoKfQo8L3NjcmlwdD4KPGJvZHk+CjxkaXYgaWQ9InJlc3Vs
dCI+PC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133800</attachid>
            <date>2012-03-26 07:05:31 -0700</date>
            <delta_ts>2012-03-26 07:08:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82201-20120326230529.patch</filename>
            <type>text/plain</type>
            <size>7394</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uZTEyNmYyZThiYWQyNzc0ZmU2YWEwZGJiODc5ZTZk
YzM4YTk3YmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBjcmVhdGVUZXh0Tm9kZSgpIGJ5IDEz
JSwgY3JlYXRlRWxlbWVudCgpIGJ5IDE0JSwKKyAgICAgICAgYW5kIGNsb25lTm9kZSgpIGJ5IDE2
JS4gU2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aWxsIGJlIG9ic2VydmVkIGluCisg
ICAgICAgIERPTSBtZXRob2RzIHRoYXQgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeSB0aW1lLgor
CisgICAgICAgIFBlcmZvcm1hbmNlIHRlc3Q6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFj
aG1lbnQuY2dpP2lkPTEzMzc5OQorCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMgYXJlIGFzIGZvbGxvd3MuIFNpbmNlIHRoZSBwZXJmb3JtYW5jZSBvZiBWOCdzIEdDIGlzCisg
ICAgICAgIHJlYWxseSB1bnN0YWJsZSwgdGhlIGF2ZXJhZ2Ugb2YgbWVhc3VyZWQgdGltZXMgbWFr
ZXMgbm8gc2Vuc2UgaW4gQ2hyb21pdW0uCisgICAgICAgIEluc3RlYWQsIGxldCB1cyBmb2N1cyBv
biB0aGUgbWVkaWFuLiBJIGJlbGlldmUgdGhhdCB0aGlzIHBlcmZvcm1hbmNlCisgICAgICAgIGlt
cHJvdmVtZW50IGhhcyBpbXBhY3Qgb24gRHJvbWFlbywgYnV0IHdlIGNhbm5vdCBvYnNlcnZlIHRo
ZSBpbXByb3ZlbWVudAorICAgICAgICBkdWUgdG8gdGhlIHVuc3RlYWRpbmVzcyBvZiBWOCdzIEdD
LCBhcyBzaG93biBiZWxvdy4KKworICAgICAgICBDaHJvbWl1bS9WOC9MaW51eCAod2l0aG91dCB0
aGUgcGF0Y2gpOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0yNzdtcyAobWVhbj00
NjAuODhtcywgbWluPTI3MG1zLCBtYXg9MzM4MW1zKQorICAgICAgICBjcmVhdGVFbGVtZW50IDog
bWVkaWFuPTM3OW1zIChtZWFuPTYzNy41Mm1zLCBtaW49MzcybXMsIG1heD0zMDIybXMpCisgICAg
ICAgIGNsb25lTm9kZSA6IG1lZGlhbj0zNjltcyAobWVhbj01ODEuNzJtcywgbWluPTM2M21zLCBt
YXg9MzA1MG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogNDM5
LjE3cnVucy9zIMOCwrEzMS42MCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVv
L2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI4Ny43MXJ1bnMvcyDDgsKxMjguMzklICg8LS0t
IHByZXR0eSBub2lzeSkKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Nsb25lTm9kZTogMTc0
LjYycnVucy9zIMOCwrEyNS42OCUgKDwtLS0gcHJldHR5IG5vaXN5KQorCisgICAgICAgIENocm9t
aXVtL1Y4L0xpbnV4ICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDog
bWVkaWFuPTI0MG1zIChtZWFuPTQxMS4xMm1zLCBtaW49MjM3bXMsIG1heD0yOTY1bXMpCisgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgOiBtZWRpYW49MzI1bXMgKG1lYW49NTg1LjMwbXMsIG1pbj0zMTdt
cywgbWF4PTI5ODRtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTMxMG1zIChtZWFuPTUy
Mi40OG1zLCBtaW49MzAybXMsIG1heD0yOTg4bXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlm
eS9jcmVhdGVFbGVtZW50OiA1MDcuMTVydW5zL3Mgw4LCsTM2LjAwJSAoPC0tLSBwcmV0dHkgbm9p
c3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjUxLjAxcnVu
cy9zIMOCwrE2LjU3JQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzcu
ODVydW5zL3Mgw4LCsTI4Ljc0JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21p
dW0vVjgvTWFjICh3aXRob3V0IHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDog
bWVkaWFuPTMxN21zIChtZWFuPTQzOS4wOG1zLCBtaW49MzAzbXMsIG1heD0zMTI2bXMpCisgICAg
ICAgIGNyZWF0ZUVsZW1lbnQgOiBtZWRpYW49NDAzbXMgKG1lYW49Njk1LjcwbXMsIG1pbj0zOTht
cywgbWF4PTU2MTVtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM4NG1zIChtZWFuPTU3
Ny45Nm1zLCBtaW49MzcybXMsIG1heD01MzEzbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlm
eS9jcmVhdGVFbGVtZW50OiA0OTMuODlydW5zL3Mgw4LCsTI4LjMyJSAoPC0tLSBwcmV0dHkgbm9p
c3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjc5LjY2cnVu
cy9zIMOCwrExLjkxJQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzMu
MDZydW5zL3Mgw4LCsTI0LjQxJSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21p
dW0vVjgvTWFjICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVk
aWFuPTI3N21zIChtZWFuPTQ2MC44OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAg
IGNyZWF0ZUVsZW1lbnQgOiBtZWRpYW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywg
bWF4PTMwMjJtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43
Mm1zLCBtaW49MzYzbXMsIG1heD0zMDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9j
cmVhdGVFbGVtZW50OiA1MTAuNDdydW5zL3Mgw4LCsTI4LjEzJSAoPC0tLSBwcmV0dHkgbm9pc3kp
CisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjE1LjgwcnVucy9z
IMOCwrEyMC45OSUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1tb2Rp
ZnkvY2xvbmVOb2RlOiAxNzQuNDFydW5zL3Mgw4LCsTI0Ljg1JSAoPC0tLSBwcmV0dHkgbm9pc3kp
CisKKyAgICAgICAgU2FmYXJpL0phdmFTY3JpcHRDb3JlL01hYzoKKyAgICAgICAgY3JlYXRlVGV4
dE5vZGUgOiBtZWRpYW49MTQybXMgKG1lYW49MTQxLjA0bXMsIG1pbj0xMTBtcywgbWF4PTE2OG1z
KQorICAgICAgICBjcmVhdGVFbGVtZW50IDogbWVkaWFuPTIzNG1zIChtZWFuPTI0NS43NG1zLCBt
aW49MjE5bXMsIG1heD0zMDVtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTIxMG1zICht
ZWFuPTIxMy4zNm1zLCBtaW49MjA0bXMsIG1heD0yODRtcykKKyAgICAgICAgRHJvbWFlby9kb20t
bW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDgyMi40OXJ1bnMvcyDDgsKxMS42OSUKKyAgICAgICAgRHJv
bWFlby9kb20tbW9kaWZ5L2NyZWF0ZVRleHROb2RlOiA3MzUuNTdydW5zL3Mgw4LCsTAuOTElCisg
ICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDEzNS4yMHJ1bnMvcyDDgsKxNC4x
MyUKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2VzIHRoZSBmb2xsb3dpbmcgdHdvIG9wdGltaXph
dGlvbnM6CisKKyAgICAgICAgWzFdIElmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0IGlz
IGVxdWFsIHRvIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLAorICAgICAg
ICB3ZSBkbyBub3QgY2FsbCBjb250ZXh0LT5FbnRlcigpLgorICAgICAgICBbMl0gVGhpcyBwYXRj
aCBjaGFuZ2VzIHRoZSBjb250ZXh0IGZyb20gYSBMb2NhbCBoYW5kbGUgdG8gYW4gZXhpc3Rpbmcg
UGVyc2lzdGVudCBoYW5kbGUuCisgICAgICAgIEJ5IHRoaXMgY2hhbmdlLCB3ZSBkbyBub3QgbmVl
ZCB0byBnZW5lcmF0ZSBhIG5ldyBMb2NhbCBoYW5kbGUgZXZlcnkgdGltZSBhIERPTSBvYmplY3QK
KyAgICAgICAgaXMgY3JlYXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAg
ICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5Ojpw
ZXJzaXN0ZW50Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9WOFByb3h5Lmg6CisgICAgICAgIChWOFByb3h5KToKKwogMjAxMi0wMy0yNSAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgdXNlIENTU1J1bGVM
aXN0IGZvciBjaGlsZCBydWxlIG93bmVyc2hpcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCAzNGVkZDkwNjYwMzI0MjNlYjBk
MGVlNTJjMTJlMmJiMTFlMjExMGRkLi5iNTY4ODY5N2Y2ZTEzM2U0OGQ4MTM1M2FkMWMwNDQ0ZTZl
NTNjODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbQpAQCAtMzE0OCwxMSArMzE0OCwxNCBAQCBFTkQKIAogICAgIHY4OjpIYW5k
bGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7CiAgICAgaWYgKHByb3h5KQotICAgICAgICBjb250ZXh0
ID0gcHJveHktPmNvbnRleHQoKTsKKyAgICAgICAgY29udGV4dCA9IHByb3h5LT5wZXJzaXN0ZW50
Q29udGV4dCgpOwogCiAgICAgLy8gRW50ZXIgdGhlIG5vZGUncyBjb250ZXh0IGFuZCBjcmVhdGUg
dGhlIHdyYXBwZXIgaW4gdGhhdCBjb250ZXh0LgotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkp
CisgICAgYm9vbCBjb250ZXh0RW50ZXJlZCA9IGZhbHNlOworICAgIGlmICghY29udGV4dC5Jc0Vt
cHR5KCkgJiYgY29udGV4dCAhPSBjb250ZXh0LT5HZXRDdXJyZW50KCkpIHsKKyAgICAgICAgY29u
dGV4dEVudGVyZWQgPSB0cnVlOwogICAgICAgICBjb250ZXh0LT5FbnRlcigpOworICAgIH0KIEVO
RAogICAgIH0KIApAQCAtMzE2Miw3ICszMTY1LDcgQEAgRU5ECiAgICAgaWYgKElzTm9kZVN1YlR5
cGUoJGRhdGFOb2RlKSB8fCBJc1Zpc2libGVBY3Jvc3NPcmlnaW5zKCRkYXRhTm9kZSkpIHsKICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKICAgICAvLyBFeGl0IHRoZSBub2RlJ3Mg
Y29udGV4dCBpZiBpdCB3YXMgZW50ZXJlZC4KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQor
ICAgIGlmIChjb250ZXh0RW50ZXJlZCkKICAgICAgICAgY29udGV4dC0+RXhpdCgpOwogRU5ECiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRleCBkOGE3ZDQ2NmY2
ZTc5NDgwNTUzMjYyMDdmYmE3YzVjOTkxY2Q2ZjQ5Li44YjQ3YjAxNmQzMDE1Y2E0MmI5NmFjMmQ5
MjVmMGYxODAyMzAwNWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApA
QCAtNjM2LDYgKzYzNiwxOCBAQCB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IFY4UHJveHk6OmNvbnRl
eHQoKQogICAgIHJldHVybiBtYWluV29ybGRDb250ZXh0KCk7CiB9CiAKK3Y4OjpIYW5kbGU8djg6
OkNvbnRleHQ+IFY4UHJveHk6OnBlcnNpc3RlbnRDb250ZXh0KCkKK3sKKyAgICBpZiAoVjhJc29s
YXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4dCA9IFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRl
cmVkKCkpIHsKKyAgICAgICAgUmVmUHRyPFNoYXJlZFBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+ID4g
Y29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+c2hhcmVkQ29udGV4dCgpOworICAgICAgICBpZiAo
bV9mcmFtZSAhPSBWOFByb3h5OjpyZXRyaWV2ZUZyYW1lKGNvbnRleHQtPmdldCgpKSkKKyAgICAg
ICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PigpOworICAgICAgICByZXR1cm4g
Y29udGV4dC0+Z2V0KCk7CisgICAgfQorICAgIHdpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZO
ZWVkZWQoKTsKKyAgICByZXR1cm4gd2luZG93U2hlbGwoKS0+Y29udGV4dCgpOworfQorCiB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoKQogewogICAgIHdp
bmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4UHJveHkuaAppbmRleCBmZTQ5NTYzY2E1MjIzNDU4OTA1MzMzOWYwODg0MTFhY2M1MmFkMmQ1
Li4xMzJjMTIzYTkwN2Q3MTRjMDU1MTYxOWE3ZmIxYzcyM2ExYjAwNWIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNDEsNyArMjQxLDExIEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0aHJvd1R5cGVFcnJv
cigpOwogICAgICAgICBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRocm93U3ludGF4RXJy
b3IoKTsKIAorICAgICAgICAvLyBjb250ZXh0KCkgYW5kIHBlcnNpc3RlbnRDb250ZXh0KCkgcmV0
dXJuIHRoZSBzYW1lIGNvbnRleHQuCisgICAgICAgIC8vIFdoaWxlIGNvbnRleHQoKSByZXR1cm5z
IGEgbmV3bHkgY3JlYXRlZCBMb2NhbCBoYW5kbGUsCisgICAgICAgIC8vIHBlcnNpc3RlbnRDb250
ZXh0KCkgcmV0dXJucyBhbiBleGlzdGluZyBQZXJzaXN0ZW50IGhhbmRsZS4KICAgICAgICAgdjg6
OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IHBlcnNpc3RlbnRDb250ZXh0KCk7CiAgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4
dD4gbWFpbldvcmxkQ29udGV4dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBl
dmVudHVhbGx5IHRha2UgRE9NV3JhcHBlcldvcmxkIGFyZ3VtZW50IQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133802</attachid>
            <date>2012-03-26 07:08:39 -0700</date>
            <delta_ts>2012-03-26 17:42:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82201-20120326230838.patch</filename>
            <type>text/plain</type>
            <size>7364</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uODcwZGNlNTIyYmU1ODVjZDcyOWE2Yzg5NmNlZjU0
YjdhMzQzOTY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBjcmVhdGVUZXh0Tm9kZSgpIGJ5IDEz
JSwgY3JlYXRlRWxlbWVudCgpIGJ5IDE0JSwKKyAgICAgICAgYW5kIGNsb25lTm9kZSgpIGJ5IDE2
JS4gU2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aWxsIGJlIG9ic2VydmVkIGluCisg
ICAgICAgIERPTSBtZXRob2RzIHRoYXQgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeSB0aW1lLgor
CisgICAgICAgIFBlcmZvcm1hbmNlIHRlc3Q6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFj
aG1lbnQuY2dpP2lkPTEzMzc5OQorCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMgYXJlIGFzIGZvbGxvd3MuIFNpbmNlIHRoZSBwZXJmb3JtYW5jZSBvZiBWOCdzIEdDIGlzCisg
ICAgICAgIHJlYWxseSB1bnN0YWJsZSwgdGhlIGF2ZXJhZ2Ugb2YgbWVhc3VyZWQgdGltZXMgbWFr
ZXMgbm8gc2Vuc2UgaW4gQ2hyb21pdW0uCisgICAgICAgIEluc3RlYWQsIGxldCB1cyBmb2N1cyBv
biB0aGUgbWVkaWFuLiBJIGJlbGlldmUgdGhhdCB0aGlzIHBlcmZvcm1hbmNlCisgICAgICAgIGlt
cHJvdmVtZW50IGhhcyBpbXBhY3Qgb24gRHJvbWFlbywgYnV0IHdlIGNhbm5vdCBvYnNlcnZlIHRo
ZSBpbXByb3ZlbWVudAorICAgICAgICBkdWUgdG8gdGhlIHVuc3RlYWRpbmVzcyBvZiBWOCdzIEdD
LCBhcyBzaG93biBiZWxvdy4KKworICAgICAgICBDaHJvbWl1bS9WOC9MaW51eCAod2l0aG91dCB0
aGUgcGF0Y2gpOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0yNzdtcyAobWVhbj00
NjAuODhtcywgbWluPTI3MG1zLCBtYXg9MzM4MW1zKQorICAgICAgICBjcmVhdGVFbGVtZW50IDog
bWVkaWFuPTM3OW1zIChtZWFuPTYzNy41Mm1zLCBtaW49MzcybXMsIG1heD0zMDIybXMpCisgICAg
ICAgIGNsb25lTm9kZSA6IG1lZGlhbj0zNjltcyAobWVhbj01ODEuNzJtcywgbWluPTM2M21zLCBt
YXg9MzA1MG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogNDM5
LjE3cnVucy9zICstMzEuNjAlICg8LS0tIHByZXR0eSBub2lzeSkKKyAgICAgICAgRHJvbWFlby9k
b20tbW9kaWZ5L2NyZWF0ZVRleHROb2RlOiAyODcuNzFydW5zL3MgKy0yOC4zOSUgKDwtLS0gcHJl
dHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzQuNjJy
dW5zL3MgKy0yNS42OCUgKDwtLS0gcHJldHR5IG5vaXN5KQorCisgICAgICAgIENocm9taXVtL1Y4
L0xpbnV4ICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFu
PTI0MG1zIChtZWFuPTQxMS4xMm1zLCBtaW49MjM3bXMsIG1heD0yOTY1bXMpCisgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgOiBtZWRpYW49MzI1bXMgKG1lYW49NTg1LjMwbXMsIG1pbj0zMTdtcywgbWF4
PTI5ODRtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTMxMG1zIChtZWFuPTUyMi40OG1z
LCBtaW49MzAybXMsIG1heD0yOTg4bXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVh
dGVFbGVtZW50OiA1MDcuMTVydW5zL3MgKy0zNi4wMCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAg
ICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI1MS4wMXJ1bnMvcyArLTYu
NTclCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3Ny44NXJ1bnMvcyAr
LTI4Ljc0JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3
aXRob3V0IHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTMxN21z
IChtZWFuPTQzOS4wOG1zLCBtaW49MzAzbXMsIG1heD0zMTI2bXMpCisgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgOiBtZWRpYW49NDAzbXMgKG1lYW49Njk1LjcwbXMsIG1pbj0zOThtcywgbWF4PTU2MTVt
cykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM4NG1zIChtZWFuPTU3Ny45Nm1zLCBtaW49
MzcybXMsIG1heD01MzEzbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVt
ZW50OiA0OTMuODlydW5zL3MgKy0yOC4zMiUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBE
cm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI3OS42NnJ1bnMvcyArLTEuOTElCisg
ICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3My4wNnJ1bnMvcyArLTI0LjQx
JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3aXRoIHRo
ZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTI3N21zIChtZWFuPTQ2
MC44OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBt
ZWRpYW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywgbWF4PTMwMjJtcykKKyAgICAg
ICAgY2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43Mm1zLCBtaW49MzYzbXMsIG1h
eD0zMDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVtZW50OiA1MTAu
NDdydW5zL3MgKy0yOC4xMyUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2Rv
bS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDIxNS44MHJ1bnMvcyArLTIwLjk5JSAoPC0tLSBwcmV0
dHkgbm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3NC40MXJ1
bnMvcyArLTI0Ljg1JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgU2FmYXJpL0phdmFT
Y3JpcHRDb3JlL01hYzoKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MTQybXMgKG1l
YW49MTQxLjA0bXMsIG1pbj0xMTBtcywgbWF4PTE2OG1zKQorICAgICAgICBjcmVhdGVFbGVtZW50
IDogbWVkaWFuPTIzNG1zIChtZWFuPTI0NS43NG1zLCBtaW49MjE5bXMsIG1heD0zMDVtcykKKyAg
ICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTIxMG1zIChtZWFuPTIxMy4zNm1zLCBtaW49MjA0bXMs
IG1heD0yODRtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDgy
Mi40OXJ1bnMvcyArLTEuNjklCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0
Tm9kZTogNzM1LjU3cnVucy9zICstMC45MSUKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Ns
b25lTm9kZTogMTM1LjIwcnVucy9zICstNC4xMyUKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2Vz
IHRoZSBmb2xsb3dpbmcgdHdvIG9wdGltaXphdGlvbnM6CisKKyAgICAgICAgWzFdIElmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0IGlzIGVxdWFsIHRvIHRoZSBjb250ZXh0IHRoYXQgd2Ug
YXJlIGFib3V0IHRvIGVudGVyLAorICAgICAgICB3ZSBkbyBub3QgY2FsbCBjb250ZXh0LT5FbnRl
cigpLgorICAgICAgICBbMl0gVGhpcyBwYXRjaCBjaGFuZ2VzIHRoZSBjb250ZXh0IGZyb20gYSBM
b2NhbCBoYW5kbGUgdG8gYW4gZXhpc3RpbmcgUGVyc2lzdGVudCBoYW5kbGUuCisgICAgICAgIEJ5
IHRoaXMgY2hhbmdlLCB3ZSBkbyBub3QgbmVlZCB0byBnZW5lcmF0ZSBhIG5ldyBMb2NhbCBoYW5k
bGUgZXZlcnkgdGltZSBhIERPTSBvYmplY3QKKyAgICAgICAgaXMgY3JlYXRlZC4KKworICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2VuZXJh
dGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpwZXJzaXN0ZW50Q29udGV4dCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChWOFBy
b3h5KToKKwogMjAxMi0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgRG9uJ3QgdXNlIENTU1J1bGVMaXN0IGZvciBjaGlsZCBydWxlIG93bmVyc2hpcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCAzNGVkZDkwNjYwMzI0MjNlYjBkMGVlNTJjMTJlMmJiMTFlMjExMGRkLi5iNTY4ODY5
N2Y2ZTEzM2U0OGQ4MTM1M2FkMWMwNDQ0ZTZlNTNjODc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzE0OCwxMSArMzE0
OCwxNCBAQCBFTkQKIAogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7CiAgICAg
aWYgKHByb3h5KQotICAgICAgICBjb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKKyAgICAgICAg
Y29udGV4dCA9IHByb3h5LT5wZXJzaXN0ZW50Q29udGV4dCgpOwogCiAgICAgLy8gRW50ZXIgdGhl
IG5vZGUncyBjb250ZXh0IGFuZCBjcmVhdGUgdGhlIHdyYXBwZXIgaW4gdGhhdCBjb250ZXh0Lgot
ICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgYm9vbCBjb250ZXh0RW50ZXJlZCA9IGZh
bHNlOworICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkgJiYgY29udGV4dCAhPSBjb250ZXh0LT5H
ZXRDdXJyZW50KCkpIHsKKyAgICAgICAgY29udGV4dEVudGVyZWQgPSB0cnVlOwogICAgICAgICBj
b250ZXh0LT5FbnRlcigpOworICAgIH0KIEVORAogICAgIH0KIApAQCAtMzE2Miw3ICszMTY1LDcg
QEAgRU5ECiAgICAgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSB8fCBJc1Zpc2libGVBY3Jv
c3NPcmlnaW5zKCRkYXRhTm9kZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5E
KTsKICAgICAvLyBFeGl0IHRoZSBub2RlJ3MgY29udGV4dCBpZiBpdCB3YXMgZW50ZXJlZC4KLSAg
ICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgIGlmIChjb250ZXh0RW50ZXJlZCkKICAgICAg
ICAgY29udGV4dC0+RXhpdCgpOwogRU5ECiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9W
OFByb3h5LmNwcAppbmRleCBkOGE3ZDQ2NmY2ZTc5NDgwNTUzMjYyMDdmYmE3YzVjOTkxY2Q2ZjQ5
Li44YjQ3YjAxNmQzMDE1Y2E0MmI5NmFjMmQ5MjVmMGYxODAyMzAwNWZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcApAQCAtNjM2LDYgKzYzNiwxOCBAQCB2ODo6TG9jYWw8
djg6OkNvbnRleHQ+IFY4UHJveHk6OmNvbnRleHQoKQogICAgIHJldHVybiBtYWluV29ybGRDb250
ZXh0KCk7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OkNvbnRleHQ+IFY4UHJveHk6OnBlcnNpc3RlbnRD
b250ZXh0KCkKK3sKKyAgICBpZiAoVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4dCA9
IFY4SXNvbGF0ZWRDb250ZXh0OjpnZXRFbnRlcmVkKCkpIHsKKyAgICAgICAgUmVmUHRyPFNoYXJl
ZFBlcnNpc3RlbnQ8djg6OkNvbnRleHQ+ID4gY29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+c2hh
cmVkQ29udGV4dCgpOworICAgICAgICBpZiAobV9mcmFtZSAhPSBWOFByb3h5OjpyZXRyaWV2ZUZy
YW1lKGNvbnRleHQtPmdldCgpKSkKKyAgICAgICAgICAgIHJldHVybiB2ODo6SGFuZGxlPHY4OjpD
b250ZXh0PigpOworICAgICAgICByZXR1cm4gY29udGV4dC0+Z2V0KCk7CisgICAgfQorICAgIHdp
bmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQoKTsKKyAgICByZXR1cm4gd2luZG93U2hl
bGwoKS0+Y29udGV4dCgpOworfQorCiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IFY4UHJveHk6Om1h
aW5Xb3JsZENvbnRleHQoKQogewogICAgIHdpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVk
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAppbmRleCBmZTQ5NTYzY2E1MjIz
NDU4OTA1MzMzOWYwODg0MTFhY2M1MmFkMmQ1Li4xMzJjMTIzYTkwN2Q3MTRjMDU1MTYxOWE3ZmIx
YzcyM2ExYjAwNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNDEs
NyArMjQxLDExIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0aHJvd1R5cGVFcnJvcigpOwogICAgICAgICBzdGF0aWMgdjg6OkhhbmRs
ZTx2ODo6VmFsdWU+IHRocm93U3ludGF4RXJyb3IoKTsKIAorICAgICAgICAvLyBjb250ZXh0KCkg
YW5kIHBlcnNpc3RlbnRDb250ZXh0KCkgcmV0dXJuIHRoZSBzYW1lIGNvbnRleHQuCisgICAgICAg
IC8vIFdoaWxlIGNvbnRleHQoKSByZXR1cm5zIGEgbmV3bHkgY3JlYXRlZCBMb2NhbCBoYW5kbGUs
CisgICAgICAgIC8vIHBlcnNpc3RlbnRDb250ZXh0KCkgcmV0dXJucyBhbiBleGlzdGluZyBQZXJz
aXN0ZW50IGhhbmRsZS4KICAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCk7
CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IHBlcnNpc3RlbnRDb250ZXh0KCk7CiAg
ICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gbWFpbldvcmxkQ29udGV4dCgpOwogCiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBldmVudHVhbGx5IHRha2UgRE9NV3JhcHBlcldvcmxk
IGFyZ3VtZW50IQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133941</attachid>
            <date>2012-03-26 17:42:23 -0700</date>
            <delta_ts>2012-03-26 17:47:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82201-20120327094221.patch</filename>
            <type>text/plain</type>
            <size>8917</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uMjU3ZjdkZTY3NWExYTRlNzk5NmY1ODg5YjU4M2E0
OTA5ZWRjMWRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBjcmVhdGVUZXh0Tm9kZSgpIGJ5IDEz
JSwgY3JlYXRlRWxlbWVudCgpIGJ5IDE0JSwKKyAgICAgICAgYW5kIGNsb25lTm9kZSgpIGJ5IDE2
JS4gU2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aWxsIGJlIG9ic2VydmVkIGluCisg
ICAgICAgIERPTSBtZXRob2RzIHRoYXQgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeSB0aW1lLgor
CisgICAgICAgIFBlcmZvcm1hbmNlIHRlc3Q6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFj
aG1lbnQuY2dpP2lkPTEzMzc5OQorCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMgYXJlIGFzIGZvbGxvd3MuIFNpbmNlIHRoZSBwZXJmb3JtYW5jZSBvZiBWOCdzIEdDIGlzCisg
ICAgICAgIHJlYWxseSB1bnN0YWJsZSwgdGhlIGF2ZXJhZ2Ugb2YgbWVhc3VyZWQgdGltZXMgbWFr
ZXMgbm8gc2Vuc2UgaW4gQ2hyb21pdW0uCisgICAgICAgIEluc3RlYWQsIGxldCB1cyBmb2N1cyBv
biB0aGUgbWVkaWFuLiBJIGJlbGlldmUgdGhhdCB0aGlzIHBlcmZvcm1hbmNlCisgICAgICAgIGlt
cHJvdmVtZW50IGhhcyBpbXBhY3Qgb24gRHJvbWFlbywgYnV0IHdlIGNhbm5vdCBvYnNlcnZlIHRo
ZSBpbXByb3ZlbWVudAorICAgICAgICBkdWUgdG8gdGhlIHVuc3RlYWRpbmVzcyBvZiBWOCdzIEdD
LCBhcyBzaG93biBiZWxvdy4KKworICAgICAgICBDaHJvbWl1bS9WOC9MaW51eCAod2l0aG91dCB0
aGUgcGF0Y2gpOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0yNzdtcyAobWVhbj00
NjAuODhtcywgbWluPTI3MG1zLCBtYXg9MzM4MW1zKQorICAgICAgICBjcmVhdGVFbGVtZW50IDog
bWVkaWFuPTM3OW1zIChtZWFuPTYzNy41Mm1zLCBtaW49MzcybXMsIG1heD0zMDIybXMpCisgICAg
ICAgIGNsb25lTm9kZSA6IG1lZGlhbj0zNjltcyAobWVhbj01ODEuNzJtcywgbWluPTM2M21zLCBt
YXg9MzA1MG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogNDM5
LjE3cnVucy9zICstMzEuNjAlICg8LS0tIHByZXR0eSBub2lzeSkKKyAgICAgICAgRHJvbWFlby9k
b20tbW9kaWZ5L2NyZWF0ZVRleHROb2RlOiAyODcuNzFydW5zL3MgKy0yOC4zOSUgKDwtLS0gcHJl
dHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzQuNjJy
dW5zL3MgKy0yNS42OCUgKDwtLS0gcHJldHR5IG5vaXN5KQorCisgICAgICAgIENocm9taXVtL1Y4
L0xpbnV4ICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFu
PTI0MG1zIChtZWFuPTQxMS4xMm1zLCBtaW49MjM3bXMsIG1heD0yOTY1bXMpCisgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgOiBtZWRpYW49MzI1bXMgKG1lYW49NTg1LjMwbXMsIG1pbj0zMTdtcywgbWF4
PTI5ODRtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTMxMG1zIChtZWFuPTUyMi40OG1z
LCBtaW49MzAybXMsIG1heD0yOTg4bXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVh
dGVFbGVtZW50OiA1MDcuMTVydW5zL3MgKy0zNi4wMCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAg
ICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI1MS4wMXJ1bnMvcyArLTYu
NTclCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3Ny44NXJ1bnMvcyAr
LTI4Ljc0JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3
aXRob3V0IHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTMxN21z
IChtZWFuPTQzOS4wOG1zLCBtaW49MzAzbXMsIG1heD0zMTI2bXMpCisgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgOiBtZWRpYW49NDAzbXMgKG1lYW49Njk1LjcwbXMsIG1pbj0zOThtcywgbWF4PTU2MTVt
cykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM4NG1zIChtZWFuPTU3Ny45Nm1zLCBtaW49
MzcybXMsIG1heD01MzEzbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVt
ZW50OiA0OTMuODlydW5zL3MgKy0yOC4zMiUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBE
cm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI3OS42NnJ1bnMvcyArLTEuOTElCisg
ICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3My4wNnJ1bnMvcyArLTI0LjQx
JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3aXRoIHRo
ZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTI3N21zIChtZWFuPTQ2
MC44OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBt
ZWRpYW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywgbWF4PTMwMjJtcykKKyAgICAg
ICAgY2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43Mm1zLCBtaW49MzYzbXMsIG1h
eD0zMDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVtZW50OiA1MTAu
NDdydW5zL3MgKy0yOC4xMyUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2Rv
bS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDIxNS44MHJ1bnMvcyArLTIwLjk5JSAoPC0tLSBwcmV0
dHkgbm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3NC40MXJ1
bnMvcyArLTI0Ljg1JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgU2FmYXJpL0phdmFT
Y3JpcHRDb3JlL01hYzoKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MTQybXMgKG1l
YW49MTQxLjA0bXMsIG1pbj0xMTBtcywgbWF4PTE2OG1zKQorICAgICAgICBjcmVhdGVFbGVtZW50
IDogbWVkaWFuPTIzNG1zIChtZWFuPTI0NS43NG1zLCBtaW49MjE5bXMsIG1heD0zMDVtcykKKyAg
ICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTIxMG1zIChtZWFuPTIxMy4zNm1zLCBtaW49MjA0bXMs
IG1heD0yODRtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDgy
Mi40OXJ1bnMvcyArLTEuNjklCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0
Tm9kZTogNzM1LjU3cnVucy9zICstMC45MSUKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Ns
b25lTm9kZTogMTM1LjIwcnVucy9zICstNC4xMyUKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2Vz
IHRoZSBmb2xsb3dpbmcgdHdvIG9wdGltaXphdGlvbnM6CisKKyAgICAgICAgWzFdIElmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0IGlzIGVxdWFsIHRvIHRoZSBjb250ZXh0IHRoYXQgd2Ug
YXJlIGFib3V0IHRvIGVudGVyLAorICAgICAgICB3ZSBkbyBub3QgY2FsbCBjb250ZXh0LT5FbnRl
cigpLgorICAgICAgICBbMl0gV2UgZG8gbm90IGNyZWF0ZSBhIExvY2FsIGhhbmRsZSBvZiB0aGUg
Y29udGV4dCB1bnRpbCB3ZSByZWFsbHkgbmVlZCB0byBlbnRlciB0aGUgY29udGV4dC4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2Vu
ZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpwZXJzaXN0ZW50Q29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChW
OFByb3h5KToKKworICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6IFVwZGF0ZWQgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3Vs
dHMuCisKIDIwMTItMDMtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvbid0IHVzZSBDU1NSdWxlTGlzdCBmb3IgY2hpbGQgcnVsZSBvd25lcnNoaXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggMzRlZGQ5MDY2MDMyNDIzZWIwZDBlZTUyYzEyZTJiYjExZTIxMTBkZC4uNWFkYWFmMmNj
ODI4MDc5NWI1OTkwNzFlODcyOTc0ODRjYzgwYWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxNDgsMTEgKzMxNDgs
MTggQEAgRU5ECiAKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwogICAgIGlm
IChwcm94eSkKLSAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7CisgICAgICAgIGNv
bnRleHQgPSBwcm94eS0+cGVyc2lzdGVudENvbnRleHQoKTsKIAogICAgIC8vIEVudGVyIHRoZSBu
b2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGluIHRoYXQgY29udGV4dC4KLSAg
ICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgIGJvb2wgY29udGV4dEVudGVyZWQgPSBmYWxz
ZTsKKyAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpICYmIGNvbnRleHQgIT0gY29udGV4dC0+R2V0
Q3VycmVudCgpKSB7CisgICAgICAgIGNvbnRleHRFbnRlcmVkID0gdHJ1ZTsKKyAgICAgICAgLy8g
Rm9yIHBlcmZvcm1hbmNlLCB3ZSBkbyBub3QgY3JlYXRlIGEgTG9jYWwgaGFuZGxlIG9mIHRoZSBj
b250ZXh0CisgICAgICAgIC8vIHVudGlsIHdlIHJlYWxseSBuZWVkIHRvIGVudGVyIHRoZSBjb250
ZXh0LgorICAgICAgICBpZiAocHJveHkpCisgICAgICAgICAgICBjb250ZXh0ID0gcHJveHktPmNv
bnRleHQoKTsKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAgICB9CiBFTkQKICAgICB9CiAK
QEAgLTMxNjIsNyArMzE2OSw3IEBAIEVORAogICAgIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9k
ZSkgfHwgSXNWaXNpYmxlQWNyb3NzT3JpZ2lucygkZGF0YU5vZGUpKSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCA8PEVORCk7CiAgICAgLy8gRXhpdCB0aGUgbm9kZSdzIGNvbnRleHQgaWYg
aXQgd2FzIGVudGVyZWQuCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKKyAgICBpZiAoY29u
dGV4dEVudGVyZWQpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIEVORAogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggMDM0YmRhNmJlM2ZiOTY3MjI4YzBjYWI3
ZWQ0YjM2YzdlNGQ0OTg1Yi4uZGFiYTZjMDg3ZWFhNWFmNDc2YWJjYTk3MTQ0NDYwMWNkNzI0ZDli
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTE3MCwxNCArMTcwLDIx
IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3RBY3RpdmVET01PCiAKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiBjb250ZXh0OwogICAgIGlmIChwcm94eSkKLSAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250
ZXh0KCk7CisgICAgICAgIGNvbnRleHQgPSBwcm94eS0+cGVyc2lzdGVudENvbnRleHQoKTsKIAog
ICAgIC8vIEVudGVyIHRoZSBub2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGlu
IHRoYXQgY29udGV4dC4KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgIGJvb2wgY29u
dGV4dEVudGVyZWQgPSBmYWxzZTsKKyAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpICYmIGNvbnRl
eHQgIT0gY29udGV4dC0+R2V0Q3VycmVudCgpKSB7CisgICAgICAgIGNvbnRleHRFbnRlcmVkID0g
dHJ1ZTsKKyAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBkbyBub3QgY3JlYXRlIGEgTG9j
YWwgaGFuZGxlIG9mIHRoZSBjb250ZXh0CisgICAgICAgIC8vIHVudGlsIHdlIHJlYWxseSBuZWVk
IHRvIGVudGVyIHRoZSBjb250ZXh0LgorICAgICAgICBpZiAocHJveHkpCisgICAgICAgICAgICBj
b250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAg
ICB9CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94
eSwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5vZGUncyBjb250ZXh0IGlm
IGl0IHdhcyBlbnRlcmVkLgotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgaWYgKGNv
bnRleHRFbnRlcmVkKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAgICAgaWYgKFVOTElLRUxZ
KHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IGQ4YTdkNDY2ZjZlNzk0ODA1NTMyNjIwN2Zi
YTdjNWM5OTFjZDZmNDkuLjhiNDdiMDE2ZDMwMTVjYTQyYjk2YWMyZDkyNWYwZjE4MDIzMDA1ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC02MzYsNiArNjM2LDE4
IEBAIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gVjhQcm94eTo6Y29udGV4dCgpCiAgICAgcmV0dXJu
IG1haW5Xb3JsZENvbnRleHQoKTsKIH0KIAordjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gVjhQcm94
eTo6cGVyc2lzdGVudENvbnRleHQoKQoreworICAgIGlmIChWOElzb2xhdGVkQ29udGV4dCogaXNv
bGF0ZWRDb250ZXh0ID0gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKSkgeworICAgICAg
ICBSZWZQdHI8U2hhcmVkUGVyc2lzdGVudDx2ODo6Q29udGV4dD4gPiBjb250ZXh0ID0gaXNvbGF0
ZWRDb250ZXh0LT5zaGFyZWRDb250ZXh0KCk7CisgICAgICAgIGlmIChtX2ZyYW1lICE9IFY4UHJv
eHk6OnJldHJpZXZlRnJhbWUoY29udGV4dC0+Z2V0KCkpKQorICAgICAgICAgICAgcmV0dXJuIHY4
OjpIYW5kbGU8djg6OkNvbnRleHQ+KCk7CisgICAgICAgIHJldHVybiBjb250ZXh0LT5nZXQoKTsK
KyAgICB9CisgICAgd2luZG93U2hlbGwoKS0+aW5pdENvbnRleHRJZk5lZWRlZCgpOworICAgIHJl
dHVybiB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7Cit9CisKIHY4OjpMb2NhbDx2ODo6Q29udGV4
dD4gVjhQcm94eTo6bWFpbldvcmxkQ29udGV4dCgpCiB7CiAgICAgd2luZG93U2hlbGwoKS0+aW5p
dENvbnRleHRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4
IGZlNDk1NjNjYTUyMjM0NTg5MDUzMzM5ZjA4ODQxMWFjYzUyYWQyZDUuLjEzMmMxMjNhOTA3ZDcx
NGMwNTUxNjE5YTdmYjFjNzIzYTFiMDA1YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFBy
b3h5LmgKQEAgLTI0MSw3ICsyNDEsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRocm93VHlwZUVycm9yKCk7CiAgICAgICAgIHN0
YXRpYyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdGhyb3dTeW50YXhFcnJvcigpOwogCisgICAgICAg
IC8vIGNvbnRleHQoKSBhbmQgcGVyc2lzdGVudENvbnRleHQoKSByZXR1cm4gdGhlIHNhbWUgY29u
dGV4dC4KKyAgICAgICAgLy8gV2hpbGUgY29udGV4dCgpIHJldHVybnMgYSBuZXdseSBjcmVhdGVk
IExvY2FsIGhhbmRsZSwKKyAgICAgICAgLy8gcGVyc2lzdGVudENvbnRleHQoKSByZXR1cm5zIGFu
IGV4aXN0aW5nIFBlcnNpc3RlbnQgaGFuZGxlLgogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRl
eHQ+IGNvbnRleHQoKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gcGVyc2lzdGVu
dENvbnRleHQoKTsKICAgICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBtYWluV29ybGRDb250
ZXh0KCk7CiAKICAgICAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGV2ZW50dWFsbHkgdGFrZSBE
T01XcmFwcGVyV29ybGQgYXJndW1lbnQhCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133943</attachid>
            <date>2012-03-26 17:47:35 -0700</date>
            <delta_ts>2012-03-26 21:58:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82201-20120327094733.patch</filename>
            <type>text/plain</type>
            <size>8901</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uMjU3ZjdkZTY3NWExYTRlNzk5NmY1ODg5YjU4M2E0
OTA5ZWRjMWRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBjcmVhdGVUZXh0Tm9kZSgpIGJ5IDEz
JSwgY3JlYXRlRWxlbWVudCgpIGJ5IDE0JSwKKyAgICAgICAgYW5kIGNsb25lTm9kZSgpIGJ5IDE2
JS4gU2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aWxsIGJlIG9ic2VydmVkIGluCisg
ICAgICAgIERPTSBtZXRob2RzIHRoYXQgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeSB0aW1lLgor
CisgICAgICAgIFBlcmZvcm1hbmNlIHRlc3Q6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFj
aG1lbnQuY2dpP2lkPTEzMzc5OQorCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMgYXJlIGFzIGZvbGxvd3MuIFNpbmNlIHRoZSBwZXJmb3JtYW5jZSBvZiBWOCdzIEdDIGlzCisg
ICAgICAgIHJlYWxseSB1bnN0YWJsZSwgdGhlIGF2ZXJhZ2Ugb2YgbWVhc3VyZWQgdGltZXMgbWFr
ZXMgbm8gc2Vuc2UgaW4gQ2hyb21pdW0uCisgICAgICAgIEluc3RlYWQsIGxldCB1cyBmb2N1cyBv
biB0aGUgbWVkaWFuLiBJIGJlbGlldmUgdGhhdCB0aGlzIHBlcmZvcm1hbmNlCisgICAgICAgIGlt
cHJvdmVtZW50IGhhcyBpbXBhY3Qgb24gRHJvbWFlbywgYnV0IHdlIGNhbm5vdCBvYnNlcnZlIHRo
ZSBpbXByb3ZlbWVudAorICAgICAgICBkdWUgdG8gdGhlIHVuc3RlYWRpbmVzcyBvZiBWOCdzIEdD
LCBhcyBzaG93biBiZWxvdy4KKworICAgICAgICBDaHJvbWl1bS9WOC9MaW51eCAod2l0aG91dCB0
aGUgcGF0Y2gpOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0yNzdtcyAobWVhbj00
NjAuODhtcywgbWluPTI3MG1zLCBtYXg9MzM4MW1zKQorICAgICAgICBjcmVhdGVFbGVtZW50IDog
bWVkaWFuPTM3OW1zIChtZWFuPTYzNy41Mm1zLCBtaW49MzcybXMsIG1heD0zMDIybXMpCisgICAg
ICAgIGNsb25lTm9kZSA6IG1lZGlhbj0zNjltcyAobWVhbj01ODEuNzJtcywgbWluPTM2M21zLCBt
YXg9MzA1MG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogNDM5
LjE3cnVucy9zICstMzEuNjAlICg8LS0tIHByZXR0eSBub2lzeSkKKyAgICAgICAgRHJvbWFlby9k
b20tbW9kaWZ5L2NyZWF0ZVRleHROb2RlOiAyODcuNzFydW5zL3MgKy0yOC4zOSUgKDwtLS0gcHJl
dHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzQuNjJy
dW5zL3MgKy0yNS42OCUgKDwtLS0gcHJldHR5IG5vaXN5KQorCisgICAgICAgIENocm9taXVtL1Y4
L0xpbnV4ICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFu
PTI0MG1zIChtZWFuPTQxMS4xMm1zLCBtaW49MjM3bXMsIG1heD0yOTY1bXMpCisgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgOiBtZWRpYW49MzI1bXMgKG1lYW49NTg1LjMwbXMsIG1pbj0zMTdtcywgbWF4
PTI5ODRtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTMxMG1zIChtZWFuPTUyMi40OG1z
LCBtaW49MzAybXMsIG1heD0yOTg4bXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVh
dGVFbGVtZW50OiA1MDcuMTVydW5zL3MgKy0zNi4wMCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAg
ICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI1MS4wMXJ1bnMvcyArLTYu
NTclCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3Ny44NXJ1bnMvcyAr
LTI4Ljc0JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3
aXRob3V0IHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTMxN21z
IChtZWFuPTQzOS4wOG1zLCBtaW49MzAzbXMsIG1heD0zMTI2bXMpCisgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgOiBtZWRpYW49NDAzbXMgKG1lYW49Njk1LjcwbXMsIG1pbj0zOThtcywgbWF4PTU2MTVt
cykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM4NG1zIChtZWFuPTU3Ny45Nm1zLCBtaW49
MzcybXMsIG1heD01MzEzbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVt
ZW50OiA0OTMuODlydW5zL3MgKy0yOC4zMiUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBE
cm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI3OS42NnJ1bnMvcyArLTEuOTElCisg
ICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3My4wNnJ1bnMvcyArLTI0LjQx
JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3aXRoIHRo
ZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTI3N21zIChtZWFuPTQ2
MC44OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBt
ZWRpYW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywgbWF4PTMwMjJtcykKKyAgICAg
ICAgY2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43Mm1zLCBtaW49MzYzbXMsIG1h
eD0zMDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVtZW50OiA1MTAu
NDdydW5zL3MgKy0yOC4xMyUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2Rv
bS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDIxNS44MHJ1bnMvcyArLTIwLjk5JSAoPC0tLSBwcmV0
dHkgbm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3NC40MXJ1
bnMvcyArLTI0Ljg1JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgU2FmYXJpL0phdmFT
Y3JpcHRDb3JlL01hYzoKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MTQybXMgKG1l
YW49MTQxLjA0bXMsIG1pbj0xMTBtcywgbWF4PTE2OG1zKQorICAgICAgICBjcmVhdGVFbGVtZW50
IDogbWVkaWFuPTIzNG1zIChtZWFuPTI0NS43NG1zLCBtaW49MjE5bXMsIG1heD0zMDVtcykKKyAg
ICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTIxMG1zIChtZWFuPTIxMy4zNm1zLCBtaW49MjA0bXMs
IG1heD0yODRtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDgy
Mi40OXJ1bnMvcyArLTEuNjklCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0
Tm9kZTogNzM1LjU3cnVucy9zICstMC45MSUKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Ns
b25lTm9kZTogMTM1LjIwcnVucy9zICstNC4xMyUKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2Vz
IHRoZSBmb2xsb3dpbmcgdHdvIG9wdGltaXphdGlvbnM6CisKKyAgICAgICAgWzFdIElmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0IGlzIGVxdWFsIHRvIHRoZSBjb250ZXh0IHRoYXQgd2Ug
YXJlIGFib3V0IHRvIGVudGVyLAorICAgICAgICB3ZSBkbyBub3QgY2FsbCBjb250ZXh0LT5FbnRl
cigpLgorICAgICAgICBbMl0gV2UgZG8gbm90IGNyZWF0ZSBhIExvY2FsIGhhbmRsZSBvZiB0aGUg
Y29udGV4dCB1bnRpbCB3ZSByZWFsbHkgbmVlZCB0byBlbnRlciB0aGUgY29udGV4dC4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2Vu
ZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpwZXJzaXN0ZW50Q29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChW
OFByb3h5KToKKworICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6IFVwZGF0ZWQgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3Vs
dHMuCisKIDIwMTItMDMtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvbid0IHVzZSBDU1NSdWxlTGlzdCBmb3IgY2hpbGQgcnVsZSBvd25lcnNoaXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggMzRlZGQ5MDY2MDMyNDIzZWIwZDBlZTUyYzEyZTJiYjExZTIxMTBkZC4uNWFkYWFmMmNj
ODI4MDc5NWI1OTkwNzFlODcyOTc0ODRjYzgwYWUxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxNDgsMTEgKzMxNDgs
MTggQEAgRU5ECiAKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwogICAgIGlm
IChwcm94eSkKLSAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7CisgICAgICAgIGNv
bnRleHQgPSBwcm94eS0+cGVyc2lzdGVudENvbnRleHQoKTsKIAogICAgIC8vIEVudGVyIHRoZSBu
b2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGluIHRoYXQgY29udGV4dC4KLSAg
ICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgIGJvb2wgY29udGV4dEVudGVyZWQgPSBmYWxz
ZTsKKyAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpICYmIGNvbnRleHQgIT0gY29udGV4dC0+R2V0
Q3VycmVudCgpKSB7CisgICAgICAgIGNvbnRleHRFbnRlcmVkID0gdHJ1ZTsKKyAgICAgICAgLy8g
Rm9yIHBlcmZvcm1hbmNlLCB3ZSBkbyBub3QgY3JlYXRlIGEgTG9jYWwgaGFuZGxlIG9mIHRoZSBj
b250ZXh0CisgICAgICAgIC8vIHVudGlsIHdlIHJlYWxseSBuZWVkIHRvIGVudGVyIHRoZSBjb250
ZXh0LgorICAgICAgICBpZiAocHJveHkpCisgICAgICAgICAgICBjb250ZXh0ID0gcHJveHktPmNv
bnRleHQoKTsKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAgICB9CiBFTkQKICAgICB9CiAK
QEAgLTMxNjIsNyArMzE2OSw3IEBAIEVORAogICAgIGlmIChJc05vZGVTdWJUeXBlKCRkYXRhTm9k
ZSkgfHwgSXNWaXNpYmxlQWNyb3NzT3JpZ2lucygkZGF0YU5vZGUpKSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCA8PEVORCk7CiAgICAgLy8gRXhpdCB0aGUgbm9kZSdzIGNvbnRleHQgaWYg
aXQgd2FzIGVudGVyZWQuCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKKyAgICBpZiAoY29u
dGV4dEVudGVyZWQpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIEVORAogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3Rp
dmVET01PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKaW5kZXggMDM0YmRhNmJlM2ZiOTY3MjI4YzBjYWI3
ZWQ0YjM2YzdlNGQ0OTg1Yi4uZGFiYTZjMDg3ZWFhNWFmNDc2YWJjYTk3MTQ0NDYwMWNkNzI0ZDli
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKQEAgLTE3MCwxNCArMTcwLDIx
IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3RBY3RpdmVET01PCiAKICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0
PiBjb250ZXh0OwogICAgIGlmIChwcm94eSkKLSAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250
ZXh0KCk7CisgICAgICAgIGNvbnRleHQgPSBwcm94eS0+cGVyc2lzdGVudENvbnRleHQoKTsKIAog
ICAgIC8vIEVudGVyIHRoZSBub2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGlu
IHRoYXQgY29udGV4dC4KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgIGJvb2wgY29u
dGV4dEVudGVyZWQgPSBmYWxzZTsKKyAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpICYmIGNvbnRl
eHQgIT0gY29udGV4dC0+R2V0Q3VycmVudCgpKSB7CisgICAgICAgIGNvbnRleHRFbnRlcmVkID0g
dHJ1ZTsKKyAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBkbyBub3QgY3JlYXRlIGEgTG9j
YWwgaGFuZGxlIG9mIHRoZSBjb250ZXh0CisgICAgICAgIC8vIHVudGlsIHdlIHJlYWxseSBuZWVk
IHRvIGVudGVyIHRoZSBjb250ZXh0LgorICAgICAgICBpZiAocHJveHkpCisgICAgICAgICAgICBj
b250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAg
ICB9CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChwcm94
eSwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5vZGUncyBjb250ZXh0IGlm
IGl0IHdhcyBlbnRlcmVkLgotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgaWYgKGNv
bnRleHRFbnRlcmVkKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAgICAgaWYgKFVOTElLRUxZ
KHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IGQ4YTdkNDY2ZjZlNzk0ODA1NTMyNjIwN2Zi
YTdjNWM5OTFjZDZmNDkuLjllYTU2ZWU0MmI1MDY5NjgzODBhOTA0ZjU4MGJkMTM1YThlMWJiNWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBAIC02MzYsNiArNjM2LDE4
IEBAIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gVjhQcm94eTo6Y29udGV4dCgpCiAgICAgcmV0dXJu
IG1haW5Xb3JsZENvbnRleHQoKTsKIH0KIAordjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gVjhQcm94
eTo6cGVyc2lzdGVudENvbnRleHQoKQoreworICAgIGlmIChWOElzb2xhdGVkQ29udGV4dCogaXNv
bGF0ZWRDb250ZXh0ID0gVjhJc29sYXRlZENvbnRleHQ6OmdldEVudGVyZWQoKSkgeworICAgICAg
ICBTaGFyZWRQZXJzaXN0ZW50PHY4OjpDb250ZXh0PiBjb250ZXh0ID0gaXNvbGF0ZWRDb250ZXh0
LT5zaGFyZWRDb250ZXh0KCktPmdldCgpOworICAgICAgICBpZiAobV9mcmFtZSAhPSBWOFByb3h5
OjpyZXRyaWV2ZUZyYW1lKGNvbnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+KCk7CisgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyAgICB3aW5k
b3dTaGVsbCgpLT5pbml0Q29udGV4dElmTmVlZGVkKCk7CisgICAgcmV0dXJuIHdpbmRvd1NoZWxs
KCktPmNvbnRleHQoKTsKK30KKwogdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBWOFByb3h5OjptYWlu
V29ybGRDb250ZXh0KCkKIHsKICAgICB3aW5kb3dTaGVsbCgpLT5pbml0Q29udGV4dElmTmVlZGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKaW5kZXggZmU0OTU2M2NhNTIyMzQ1
ODkwNTMzMzlmMDg4NDExYWNjNTJhZDJkNS4uMTMyYzEyM2E5MDdkNzE0YzA1NTE2MTlhN2ZiMWM3
MjNhMWIwMDViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaApAQCAtMjQxLDcg
KzI0MSwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxl
PHY4OjpWYWx1ZT4gdGhyb3dUeXBlRXJyb3IoKTsKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiB0aHJvd1N5bnRheEVycm9yKCk7CiAKKyAgICAgICAgLy8gY29udGV4dCgpIGFu
ZCBwZXJzaXN0ZW50Q29udGV4dCgpIHJldHVybiB0aGUgc2FtZSBjb250ZXh0LgorICAgICAgICAv
LyBXaGlsZSBjb250ZXh0KCkgcmV0dXJucyBhIG5ld2x5IGNyZWF0ZWQgTG9jYWwgaGFuZGxlLAor
ICAgICAgICAvLyBwZXJzaXN0ZW50Q29udGV4dCgpIHJldHVybnMgYW4gZXhpc3RpbmcgUGVyc2lz
dGVudCBoYW5kbGUuCiAgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpOwor
ICAgICAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBwZXJzaXN0ZW50Q29udGV4dCgpOwogICAg
ICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IG1haW5Xb3JsZENvbnRleHQoKTsKIAogICAgICAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgZXZlbnR1YWxseSB0YWtlIERPTVdyYXBwZXJXb3JsZCBh
cmd1bWVudCEK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133972</attachid>
            <date>2012-03-26 21:58:17 -0700</date>
            <delta_ts>2012-03-27 00:48:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82201-20120327135816.patch</filename>
            <type>text/plain</type>
            <size>9006</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uMjU3ZjdkZTY3NWExYTRlNzk5NmY1ODg5YjU4M2E0
OTA5ZWRjMWRlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBpbXByb3ZlcyBwZXJmb3JtYW5jZSBvZiBjcmVhdGVUZXh0Tm9kZSgpIGJ5IDEz
JSwgY3JlYXRlRWxlbWVudCgpIGJ5IDE0JSwKKyAgICAgICAgYW5kIGNsb25lTm9kZSgpIGJ5IDE2
JS4gU2ltaWxhciBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB3aWxsIGJlIG9ic2VydmVkIGluCisg
ICAgICAgIERPTSBtZXRob2RzIHRoYXQgY3JlYXRlIGEgbmV3IG9iamVjdCBldmVyeSB0aW1lLgor
CisgICAgICAgIFBlcmZvcm1hbmNlIHRlc3Q6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL2F0dGFj
aG1lbnQuY2dpP2lkPTEzMzc5OQorCisgICAgICAgIFRoZSBwZXJmb3JtYW5jZSB0ZXN0IHJlc3Vs
dHMgYXJlIGFzIGZvbGxvd3MuIFNpbmNlIHRoZSBwZXJmb3JtYW5jZSBvZiBWOCdzIEdDIGlzCisg
ICAgICAgIHJlYWxseSB1bnN0YWJsZSwgdGhlIGF2ZXJhZ2Ugb2YgbWVhc3VyZWQgdGltZXMgbWFr
ZXMgbm8gc2Vuc2UgaW4gQ2hyb21pdW0uCisgICAgICAgIEluc3RlYWQsIGxldCB1cyBmb2N1cyBv
biB0aGUgbWVkaWFuLiBJIGJlbGlldmUgdGhhdCB0aGlzIHBlcmZvcm1hbmNlCisgICAgICAgIGlt
cHJvdmVtZW50IGhhcyBpbXBhY3Qgb24gRHJvbWFlbywgYnV0IHdlIGNhbm5vdCBvYnNlcnZlIHRo
ZSBpbXByb3ZlbWVudAorICAgICAgICBkdWUgdG8gdGhlIHVuc3RlYWRpbmVzcyBvZiBWOCdzIEdD
LCBhcyBzaG93biBiZWxvdy4KKworICAgICAgICBDaHJvbWl1bS9WOC9MaW51eCAod2l0aG91dCB0
aGUgcGF0Y2gpOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0yNzdtcyAobWVhbj00
NjAuODhtcywgbWluPTI3MG1zLCBtYXg9MzM4MW1zKQorICAgICAgICBjcmVhdGVFbGVtZW50IDog
bWVkaWFuPTM3OW1zIChtZWFuPTYzNy41Mm1zLCBtaW49MzcybXMsIG1heD0zMDIybXMpCisgICAg
ICAgIGNsb25lTm9kZSA6IG1lZGlhbj0zNjltcyAobWVhbj01ODEuNzJtcywgbWluPTM2M21zLCBt
YXg9MzA1MG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogNDM5
LjE3cnVucy9zICstMzEuNjAlICg8LS0tIHByZXR0eSBub2lzeSkKKyAgICAgICAgRHJvbWFlby9k
b20tbW9kaWZ5L2NyZWF0ZVRleHROb2RlOiAyODcuNzFydW5zL3MgKy0yOC4zOSUgKDwtLS0gcHJl
dHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVOb2RlOiAxNzQuNjJy
dW5zL3MgKy0yNS42OCUgKDwtLS0gcHJldHR5IG5vaXN5KQorCisgICAgICAgIENocm9taXVtL1Y4
L0xpbnV4ICh3aXRoIHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFu
PTI0MG1zIChtZWFuPTQxMS4xMm1zLCBtaW49MjM3bXMsIG1heD0yOTY1bXMpCisgICAgICAgIGNy
ZWF0ZUVsZW1lbnQgOiBtZWRpYW49MzI1bXMgKG1lYW49NTg1LjMwbXMsIG1pbj0zMTdtcywgbWF4
PTI5ODRtcykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTMxMG1zIChtZWFuPTUyMi40OG1z
LCBtaW49MzAybXMsIG1heD0yOTg4bXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVh
dGVFbGVtZW50OiA1MDcuMTVydW5zL3MgKy0zNi4wMCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAg
ICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI1MS4wMXJ1bnMvcyArLTYu
NTclCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3Ny44NXJ1bnMvcyAr
LTI4Ljc0JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3
aXRob3V0IHRoZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTMxN21z
IChtZWFuPTQzOS4wOG1zLCBtaW49MzAzbXMsIG1heD0zMTI2bXMpCisgICAgICAgIGNyZWF0ZUVs
ZW1lbnQgOiBtZWRpYW49NDAzbXMgKG1lYW49Njk1LjcwbXMsIG1pbj0zOThtcywgbWF4PTU2MTVt
cykKKyAgICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTM4NG1zIChtZWFuPTU3Ny45Nm1zLCBtaW49
MzcybXMsIG1heD01MzEzbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVt
ZW50OiA0OTMuODlydW5zL3MgKy0yOC4zMiUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBE
cm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI3OS42NnJ1bnMvcyArLTEuOTElCisg
ICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3My4wNnJ1bnMvcyArLTI0LjQx
JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTWFjICh3aXRoIHRo
ZSBwYXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTI3N21zIChtZWFuPTQ2
MC44OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBt
ZWRpYW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywgbWF4PTMwMjJtcykKKyAgICAg
ICAgY2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43Mm1zLCBtaW49MzYzbXMsIG1h
eD0zMDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVtZW50OiA1MTAu
NDdydW5zL3MgKy0yOC4xMyUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2Rv
bS1tb2RpZnkvY3JlYXRlVGV4dE5vZGU6IDIxNS44MHJ1bnMvcyArLTIwLjk5JSAoPC0tLSBwcmV0
dHkgbm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3NC40MXJ1
bnMvcyArLTI0Ljg1JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgU2FmYXJpL0phdmFT
Y3JpcHRDb3JlL01hYzoKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MTQybXMgKG1l
YW49MTQxLjA0bXMsIG1pbj0xMTBtcywgbWF4PTE2OG1zKQorICAgICAgICBjcmVhdGVFbGVtZW50
IDogbWVkaWFuPTIzNG1zIChtZWFuPTI0NS43NG1zLCBtaW49MjE5bXMsIG1heD0zMDVtcykKKyAg
ICAgICAgY2xvbmVOb2RlIDogbWVkaWFuPTIxMG1zIChtZWFuPTIxMy4zNm1zLCBtaW49MjA0bXMs
IG1heD0yODRtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDgy
Mi40OXJ1bnMvcyArLTEuNjklCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0
Tm9kZTogNzM1LjU3cnVucy9zICstMC45MSUKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Ns
b25lTm9kZTogMTM1LjIwcnVucy9zICstNC4xMyUKKworICAgICAgICBUaGlzIHBhdGNoIG1ha2Vz
IHRoZSBmb2xsb3dpbmcgdHdvIG9wdGltaXphdGlvbnM6CisKKyAgICAgICAgWzFdIElmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0IGlzIGVxdWFsIHRvIHRoZSBjb250ZXh0IHRoYXQgd2Ug
YXJlIGFib3V0IHRvIGVudGVyLAorICAgICAgICB3ZSBkbyBub3QgY2FsbCBjb250ZXh0LT5FbnRl
cigpLgorICAgICAgICBbMl0gV2UgZG8gbm90IGNyZWF0ZSBhIExvY2FsIGhhbmRsZSBvZiB0aGUg
Y29udGV4dCB1bnRpbCB3ZSByZWFsbHkgbmVlZCB0byBlbnRlciB0aGUgY29udGV4dC4KKworICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgorICAgICAgICAoR2Vu
ZXJhdGVUb1Y4Q29udmVydGVycyk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpwZXJzaXN0ZW50Q29udGV4dCk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5Lmg6CisgICAgICAgIChW
OFByb3h5KToKKworICAgICAgICAqIFdlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6IFVwZGF0ZWQgcnVuLWJpbmRpbmdzLXRlc3RzIHJlc3Vs
dHMuCisKIDIwMTItMDMtMjUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIERvbid0IHVzZSBDU1NSdWxlTGlzdCBmb3IgY2hpbGQgcnVsZSBvd25lcnNoaXAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4
LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
aW5kZXggMzRlZGQ5MDY2MDMyNDIzZWIwZDBlZTUyYzEyZTJiYjExZTIxMTBkZC4uOWE5NmE0Zjlh
ZTA5MzYyYTczMmVlYjgwMmRmMDYxNmIxZTBlZDM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTMxNDYsMTMgKzMxNDYs
MTggQEAgRU5ECiAgICAgaWYgKElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSB8fCBJc1Zpc2libGVB
Y3Jvc3NPcmlnaW5zKCRkYXRhTm9kZSkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8
RU5EKTsKIAorICAgIC8vIEVudGVyIHRoZSBub2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3
cmFwcGVyIGluIHRoYXQgY29udGV4dC4KKyAgICBib29sIGNvbnRleHRFbnRlcmVkID0gZmFsc2U7
CiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKLSAgICBpZiAocHJveHkpCisg
ICAgaWYgKHByb3h5ICYmICFwcm94eS0+bWF0Y2hlc0N1cnJlbnRDb250ZXh0KCkpIHsKKyAgICAg
ICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0CisgICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRo
ZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgogICAgICAgICBjb250ZXh0ID0g
cHJveHktPmNvbnRleHQoKTsKLQotICAgIC8vIEVudGVyIHRoZSBub2RlJ3MgY29udGV4dCBhbmQg
Y3JlYXRlIHRoZSB3cmFwcGVyIGluIHRoYXQgY29udGV4dC4KLSAgICBpZiAoIWNvbnRleHQuSXNF
bXB0eSgpKQotICAgICAgICBjb250ZXh0LT5FbnRlcigpOworICAgICAgICBpZiAoIWNvbnRleHQu
SXNFbXB0eSgpKSB7CisgICAgICAgICAgICBjb250ZXh0RW50ZXJlZCA9IHRydWU7CisgICAgICAg
ICAgICBjb250ZXh0LT5FbnRlcigpOworICAgICAgICB9CisgICAgfQogRU5ECiAgICAgfQogCkBA
IC0zMTYyLDcgKzMxNjcsNyBAQCBFTkQKICAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUp
IHx8IElzVmlzaWJsZUFjcm9zc09yaWdpbnMoJGRhdGFOb2RlKSkgewogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgPDxFTkQpOwogICAgIC8vIEV4aXQgdGhlIG5vZGUncyBjb250ZXh0IGlmIGl0
IHdhcyBlbnRlcmVkLgotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCisgICAgaWYgKGNvbnRl
eHRFbnRlcmVkKQogICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiBFTkQKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZl
RE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDAzNGJkYTZiZTNmYjk2NzIyOGMwY2FiN2Vk
NGIzNmM3ZTRkNDk4NWIuLmM3MWJlM2JkOGViOGZhZDYzNGE3OGZhYzJkZGQ0YmUyYmI5MjAyNjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRl
c3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0xNjgsMTYgKzE2OCwyMSBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3co
UGFzc1JlZlB0cjxUZXN0QWN0aXZlRE9NTwogICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxs
KCktPmluaXRDb250ZXh0SWZOZWVkZWQoKTsKICAgICB9CiAKKyAgICAvLyBFbnRlciB0aGUgbm9k
ZSdzIGNvbnRleHQgYW5kIGNyZWF0ZSB0aGUgd3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCisgICAg
Ym9vbCBjb250ZXh0RW50ZXJlZCA9IGZhbHNlOwogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+
IGNvbnRleHQ7Ci0gICAgaWYgKHByb3h5KQorICAgIGlmIChwcm94eSAmJiAhcHJveHktPm1hdGNo
ZXNDdXJyZW50Q29udGV4dCgpKSB7CisgICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50
ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAorICAg
ICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0
byBlbnRlci4KICAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7Ci0KLSAgICAvLyBF
bnRlciB0aGUgbm9kZSdzIGNvbnRleHQgYW5kIGNyZWF0ZSB0aGUgd3JhcHBlciBpbiB0aGF0IGNv
bnRleHQuCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RW50
ZXIoKTsKKyAgICAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkgeworICAgICAgICAgICAgY29u
dGV4dEVudGVyZWQgPSB0cnVlOworICAgICAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAgICAg
ICAgfQorICAgIH0KICAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2Jq
ZWN0KHByb3h5LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgLy8gRXhpdCB0aGUgbm9kZSdzIGNv
bnRleHQgaWYgaXQgd2FzIGVudGVyZWQuCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKKyAg
ICBpZiAoY29udGV4dEVudGVyZWQpCiAgICAgICAgIGNvbnRleHQtPkV4aXQoKTsKICAgICBpZiAo
VU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggZDhhN2Q0NjZmNmU3OTQ4MDU1
MzI2MjA3ZmJhN2M1Yzk5MWNkNmY0OS4uNDI2NjMzNDhhMmI2ZmJhYWFkNTY4NTVhNDliODQ4MTli
ODIzNzAxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTY0Miw2
ICs2NDIsMjAgQEAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBWOFByb3h5OjptYWluV29ybGRDb250
ZXh0KCkKICAgICByZXR1cm4gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KHdpbmRvd1NoZWxs
KCktPmNvbnRleHQoKSk7CiB9CiAKK2Jvb2wgVjhQcm94eTo6bWF0Y2hlc0N1cnJlbnRDb250ZXh0
KCkKK3sKKyAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OworICAgIGlmIChWOElz
b2xhdGVkQ29udGV4dCogaXNvbGF0ZWRDb250ZXh0ID0gVjhJc29sYXRlZENvbnRleHQ6OmdldEVu
dGVyZWQoKSkgeworICAgICAgICBjb250ZXh0ID0gaXNvbGF0ZWRDb250ZXh0LT5zaGFyZWRDb250
ZXh0KCktPmdldCgpOworICAgICAgICBpZiAobV9mcmFtZSAhPSBWOFByb3h5OjpyZXRyaWV2ZUZy
YW1lKGNvbnRleHQpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIHdpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQoKTsKKyAgICAgICAgY29u
dGV4dCA9IHdpbmRvd1NoZWxsKCktPmNvbnRleHQoKTsKKyAgICB9CisgICAgcmV0dXJuIGNvbnRl
eHQgPT0gY29udGV4dC0+R2V0Q3VycmVudCgpOworfQorCiB2ODo6TG9jYWw8djg6OkNvbnRleHQ+
IFY4UHJveHk6Om1haW5Xb3JsZENvbnRleHQoRnJhbWUqIGZyYW1lKQogewogICAgIFY4UHJveHkq
IHByb3h5ID0gcmV0cmlldmUoZnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5o
CmluZGV4IGZlNDk1NjNjYTUyMjM0NTg5MDUzMzM5ZjA4ODQxMWFjYzUyYWQyZDUuLjlkMTViYTUy
M2Q2YTczMmJhYmNlYzZhYjYzYzYzZGY0YjA4NjJjMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOFByb3h5LmgKQEAgLTI0Myw2ICsyNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdjg6OkxvY2FsPHY4OjpDb250ZXh0PiBjb250ZXh0KCk7CiAgICAgICAgIHY4OjpMb2Nh
bDx2ODo6Q29udGV4dD4gbWFpbldvcmxkQ29udGV4dCgpOworICAgICAgICBib29sIG1hdGNoZXND
dXJyZW50Q29udGV4dCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBldmVudHVh
bGx5IHRha2UgRE9NV3JhcHBlcldvcmxkIGFyZ3VtZW50IQogICAgICAgICBWOERPTVdpbmRvd1No
ZWxsKiB3aW5kb3dTaGVsbCgpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93U2hlbGwuZ2V0KCk7IH0K
</data>
<flag name="commit-queue"
          id="138126"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133986</attachid>
            <date>2012-03-26 23:48:27 -0700</date>
            <delta_ts>2012-03-27 00:48:27 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>bug-82201-20120327154825.patch</filename>
            <type>text/plain</type>
            <size>8443</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkNTkzNWMwMGEzNjMw
NmYxMDlkMzg2Y2Y5Mjc1OTc4YmUxNGM1OS4uYTc4NTMwNTA3MjdhMmU1YzYyMzdjMmU5MWFiMGY4
YzgxNjYwMzQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDEyLTAzLTI2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbVjhdW1BlcmZvcm1h
bmNlXSBPcHRpbWl6ZSBjcmVhdGVUZXh0Tm9kZSgpLCBjcmVhdGVFbGVtZW50KCksIGNsb25lTm9k
ZSgpLCBldGMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTgyMjAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBUaGlz
IHBhdGNoIGltcHJvdmVzIHBlcmZvcm1hbmNlIG9mIGNyZWF0ZVRleHROb2RlKCkgYnkgMTMlLCBj
cmVhdGVFbGVtZW50KCkgYnkgMTQlLAorICAgICAgICBhbmQgY2xvbmVOb2RlKCkgYnkgMTYlLiBT
aW1pbGFyIHBlcmZvcm1hbmNlIGltcHJvdmVtZW50IHdpbGwgYmUgb2JzZXJ2ZWQgaW4KKyAgICAg
ICAgRE9NIG1ldGhvZHMgdGhhdCBjcmVhdGUgYSBuZXcgb2JqZWN0IGV2ZXJ5IHRpbWUuCisKKyAg
ICAgICAgUGVyZm9ybWFuY2UgdGVzdDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvYXR0YWNobWVu
dC5jZ2k/aWQ9MTMzNzk5CisKKyAgICAgICAgVGhlIHBlcmZvcm1hbmNlIHRlc3QgcmVzdWx0cyBh
cmUgYXMgZm9sbG93cy4gU2luY2UgdGhlIHBlcmZvcm1hbmNlIG9mIFY4J3MgR0MgaXMKKyAgICAg
ICAgcmVhbGx5IHVuc3RhYmxlLCB0aGUgYXZlcmFnZSBvZiBtZWFzdXJlZCB0aW1lcyBtYWtlcyBu
byBzZW5zZSBpbiBDaHJvbWl1bS4KKyAgICAgICAgSW5zdGVhZCwgbGV0IHVzIGZvY3VzIG9uIHRo
ZSBtZWRpYW4uIEkgYmVsaWV2ZSB0aGF0IHRoaXMgcGVyZm9ybWFuY2UKKyAgICAgICAgaW1wcm92
ZW1lbnQgaGFzIGltcGFjdCBvbiBEcm9tYWVvLCBidXQgd2UgY2Fubm90IG9ic2VydmUgdGhlIGlt
cHJvdmVtZW50CisgICAgICAgIGR1ZSB0byB0aGUgdW5zdGVhZGluZXNzIG9mIFY4J3MgR0MsIGFz
IHNob3duIGJlbG93LgorCisgICAgICAgIENocm9taXVtL1Y4L0xpbnV4ICh3aXRob3V0IHRoZSBw
YXRjaCk6CisgICAgICAgIGNyZWF0ZVRleHROb2RlIDogbWVkaWFuPTI3N21zIChtZWFuPTQ2MC44
OG1zLCBtaW49MjcwbXMsIG1heD0zMzgxbXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBtZWRp
YW49Mzc5bXMgKG1lYW49NjM3LjUybXMsIG1pbj0zNzJtcywgbWF4PTMwMjJtcykKKyAgICAgICAg
Y2xvbmVOb2RlIDogbWVkaWFuPTM2OW1zIChtZWFuPTU4MS43Mm1zLCBtaW49MzYzbXMsIG1heD0z
MDUwbXMpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVFbGVtZW50OiA0MzkuMTdy
dW5zL3MgKy0zMS42MCUgKDwtLS0gcHJldHR5IG5vaXN5KQorICAgICAgICBEcm9tYWVvL2RvbS1t
b2RpZnkvY3JlYXRlVGV4dE5vZGU6IDI4Ny43MXJ1bnMvcyArLTI4LjM5JSAoPC0tLSBwcmV0dHkg
bm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1vZGlmeS9jbG9uZU5vZGU6IDE3NC42MnJ1bnMv
cyArLTI1LjY4JSAoPC0tLSBwcmV0dHkgbm9pc3kpCisKKyAgICAgICAgQ2hyb21pdW0vVjgvTGlu
dXggKHdpdGggdGhlIHBhdGNoKToKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MjQw
bXMgKG1lYW49NDExLjEybXMsIG1pbj0yMzdtcywgbWF4PTI5NjVtcykKKyAgICAgICAgY3JlYXRl
RWxlbWVudCA6IG1lZGlhbj0zMjVtcyAobWVhbj01ODUuMzBtcywgbWluPTMxN21zLCBtYXg9Mjk4
NG1zKQorICAgICAgICBjbG9uZU5vZGUgOiBtZWRpYW49MzEwbXMgKG1lYW49NTIyLjQ4bXMsIG1p
bj0zMDJtcywgbWF4PTI5ODhtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVs
ZW1lbnQ6IDUwNy4xNXJ1bnMvcyArLTM2LjAwJSAoPC0tLSBwcmV0dHkgbm9pc3kpCisgICAgICAg
IERyb21hZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjUxLjAxcnVucy9zICstNi41NyUK
KyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Nsb25lTm9kZTogMTc3Ljg1cnVucy9zICstMjgu
NzQlICg8LS0tIHByZXR0eSBub2lzeSkKKworICAgICAgICBDaHJvbWl1bS9WOC9NYWMgKHdpdGhv
dXQgdGhlIHBhdGNoKToKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49MzE3bXMgKG1l
YW49NDM5LjA4bXMsIG1pbj0zMDNtcywgbWF4PTMxMjZtcykKKyAgICAgICAgY3JlYXRlRWxlbWVu
dCA6IG1lZGlhbj00MDNtcyAobWVhbj02OTUuNzBtcywgbWluPTM5OG1zLCBtYXg9NTYxNW1zKQor
ICAgICAgICBjbG9uZU5vZGUgOiBtZWRpYW49Mzg0bXMgKG1lYW49NTc3Ljk2bXMsIG1pbj0zNzJt
cywgbWF4PTUzMTNtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6
IDQ5My44OXJ1bnMvcyArLTI4LjMyJSAoPC0tLSBwcmV0dHkgbm9pc3kpCisgICAgICAgIERyb21h
ZW8vZG9tLW1vZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjc5LjY2cnVucy9zICstMS45MSUKKyAgICAg
ICAgRHJvbWFlby9kb20tbW9kaWZ5L2Nsb25lTm9kZTogMTczLjA2cnVucy9zICstMjQuNDElICg8
LS0tIHByZXR0eSBub2lzeSkKKworICAgICAgICBDaHJvbWl1bS9WOC9NYWMgKHdpdGggdGhlIHBh
dGNoKToKKyAgICAgICAgY3JlYXRlVGV4dE5vZGUgOiBtZWRpYW49Mjc3bXMgKG1lYW49NDYwLjg4
bXMsIG1pbj0yNzBtcywgbWF4PTMzODFtcykKKyAgICAgICAgY3JlYXRlRWxlbWVudCA6IG1lZGlh
bj0zNzltcyAobWVhbj02MzcuNTJtcywgbWluPTM3Mm1zLCBtYXg9MzAyMm1zKQorICAgICAgICBj
bG9uZU5vZGUgOiBtZWRpYW49MzY5bXMgKG1lYW49NTgxLjcybXMsIG1pbj0zNjNtcywgbWF4PTMw
NTBtcykKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZUVsZW1lbnQ6IDUxMC40N3J1
bnMvcyArLTI4LjEzJSAoPC0tLSBwcmV0dHkgbm9pc3kpCisgICAgICAgIERyb21hZW8vZG9tLW1v
ZGlmeS9jcmVhdGVUZXh0Tm9kZTogMjE1LjgwcnVucy9zICstMjAuOTklICg8LS0tIHByZXR0eSBu
b2lzeSkKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2Nsb25lTm9kZTogMTc0LjQxcnVucy9z
ICstMjQuODUlICg8LS0tIHByZXR0eSBub2lzeSkKKworICAgICAgICBTYWZhcmkvSmF2YVNjcmlw
dENvcmUvTWFjOgorICAgICAgICBjcmVhdGVUZXh0Tm9kZSA6IG1lZGlhbj0xNDJtcyAobWVhbj0x
NDEuMDRtcywgbWluPTExMG1zLCBtYXg9MTY4bXMpCisgICAgICAgIGNyZWF0ZUVsZW1lbnQgOiBt
ZWRpYW49MjM0bXMgKG1lYW49MjQ1Ljc0bXMsIG1pbj0yMTltcywgbWF4PTMwNW1zKQorICAgICAg
ICBjbG9uZU5vZGUgOiBtZWRpYW49MjEwbXMgKG1lYW49MjEzLjM2bXMsIG1pbj0yMDRtcywgbWF4
PTI4NG1zKQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY3JlYXRlRWxlbWVudDogODIyLjQ5
cnVucy9zICstMS42OSUKKyAgICAgICAgRHJvbWFlby9kb20tbW9kaWZ5L2NyZWF0ZVRleHROb2Rl
OiA3MzUuNTdydW5zL3MgKy0wLjkxJQorICAgICAgICBEcm9tYWVvL2RvbS1tb2RpZnkvY2xvbmVO
b2RlOiAxMzUuMjBydW5zL3MgKy00LjEzJQorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgdGhl
IGZvbGxvd2luZyB0d28gb3B0aW1pemF0aW9uczoKKworICAgICAgICBbMV0gSWYgdGhlIGN1cnJl
bnRseSBydW5uaW5nIGNvbnRleHQgaXMgZXF1YWwgdG8gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUg
YWJvdXQgdG8gZW50ZXIsCisgICAgICAgIHdlIGRvIG5vdCBjYWxsIGNvbnRleHQtPkVudGVyKCku
CisgICAgICAgIFsyXSBXZSBkbyBub3QgY3JlYXRlIGEgTG9jYWwgaGFuZGxlIG9mIHRoZSBjb250
ZXh0IHVudGlsIHdlIHJlYWxseSBuZWVkIHRvIGVudGVyIHRoZSBjb250ZXh0LgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OnBlcnNpc3RlbnRDb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4UHJveHkuaDoKKyAgICAgICAgKFY4UHJv
eHkpOgorCisgICAgICAgICogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
QWN0aXZlRE9NT2JqZWN0LmNwcDogVXBkYXRlZCBydW4tYmluZGluZ3MtdGVzdHMgcmVzdWx0cy4K
KwogMjAxMi0wMy0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAg
ICAgRG9uJ3QgdXNlIENTU1J1bGVMaXN0IGZvciBjaGlsZCBydWxlIG93bmVyc2hpcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRl
eCAzNGVkZDkwNjYwMzI0MjNlYjBkMGVlNTJjMTJlMmJiMTFlMjExMGRkLi5mODU0MWNiMmZlMDEx
ZjI0NDYxYmM4NjExMDRmZjAyY2M3NTE5NjA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzE0NiwxMyArMzE0NiwxNSBA
QCBFTkQKICAgICBpZiAoSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpIHx8IElzVmlzaWJsZUFjcm9z
c09yaWdpbnMoJGRhdGFOb2RlKSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQp
OwogCisgICAgLy8gRW50ZXIgdGhlIG5vZGUncyBjb250ZXh0IGFuZCBjcmVhdGUgdGhlIHdyYXBw
ZXIgaW4gdGhhdCBjb250ZXh0LgogICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7
Ci0gICAgaWYgKHByb3h5KQorICAgIGlmIChwcm94eSAmJiAhcHJveHktPm1hdGNoZXNDdXJyZW50
Q29udGV4dCgpKSB7CisgICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhlIGNv
bnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAorICAgICAgICAvLyBp
cyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4K
ICAgICAgICAgY29udGV4dCA9IHByb3h5LT5jb250ZXh0KCk7Ci0KLSAgICAvLyBFbnRlciB0aGUg
bm9kZSdzIGNvbnRleHQgYW5kIGNyZWF0ZSB0aGUgd3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCi0g
ICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKKyAg
ICAgICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRleHQtPkVudGVy
KCk7CisgICAgfQogRU5ECiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3Bw
CmluZGV4IDAzNGJkYTZiZTNmYjk2NzIyOGMwY2FiN2VkNGIzNmM3ZTRkNDk4NWIuLmE4MjkxYWY1
M2MxZWJiZDA1M2ZiMmYxMWFmNzQwYTM2MTQ2YWE3ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVE
T01PYmplY3QuY3BwCkBAIC0xNjgsMTMgKzE2OCwxNSBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IFY4VGVzdEFjdGl2ZURPTU9iamVjdDo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0QWN0aXZlRE9N
TwogICAgICAgICAgICAgcHJveHktPndpbmRvd1NoZWxsKCktPmluaXRDb250ZXh0SWZOZWVkZWQo
KTsKICAgICB9CiAKKyAgICAvLyBFbnRlciB0aGUgbm9kZSdzIGNvbnRleHQgYW5kIGNyZWF0ZSB0
aGUgd3JhcHBlciBpbiB0aGF0IGNvbnRleHQuCiAgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4g
Y29udGV4dDsKLSAgICBpZiAocHJveHkpCisgICAgaWYgKHByb3h5ICYmICFwcm94eS0+bWF0Y2hl
c0N1cnJlbnRDb250ZXh0KCkpIHsKKyAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRl
ciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0CisgICAg
ICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRv
IGVudGVyLgogICAgICAgICBjb250ZXh0ID0gcHJveHktPmNvbnRleHQoKTsKLQotICAgIC8vIEVu
dGVyIHRoZSBub2RlJ3MgY29udGV4dCBhbmQgY3JlYXRlIHRoZSB3cmFwcGVyIGluIHRoYXQgY29u
dGV4dC4KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBjb250ZXh0LT5FbnRl
cigpOworICAgICAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGV4
dC0+RW50ZXIoKTsKKyAgICB9CiAgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlh
dGVWOE9iamVjdChwcm94eSwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIC8vIEV4aXQgdGhlIG5v
ZGUncyBjb250ZXh0IGlmIGl0IHdhcyBlbnRlcmVkLgogICAgIGlmICghY29udGV4dC5Jc0VtcHR5
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCmluZGV4IGQ4YTdkNDY2ZjZl
Nzk0ODA1NTMyNjIwN2ZiYTdjNWM5OTFjZDZmNDkuLjQyNjYzMzQ4YTJiNmZiYWFhZDU2ODU1YTQ5
Yjg0ODE5YjgyMzcwMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCkBA
IC02NDIsNiArNjQyLDIwIEBAIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gVjhQcm94eTo6bWFpbldv
cmxkQ29udGV4dCgpCiAgICAgcmV0dXJuIHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyh3aW5k
b3dTaGVsbCgpLT5jb250ZXh0KCkpOwogfQogCitib29sIFY4UHJveHk6Om1hdGNoZXNDdXJyZW50
Q29udGV4dCgpCit7CisgICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKKyAgICBp
ZiAoVjhJc29sYXRlZENvbnRleHQqIGlzb2xhdGVkQ29udGV4dCA9IFY4SXNvbGF0ZWRDb250ZXh0
OjpnZXRFbnRlcmVkKCkpIHsKKyAgICAgICAgY29udGV4dCA9IGlzb2xhdGVkQ29udGV4dC0+c2hh
cmVkQ29udGV4dCgpLT5nZXQoKTsKKyAgICAgICAgaWYgKG1fZnJhbWUgIT0gVjhQcm94eTo6cmV0
cmlldmVGcmFtZShjb250ZXh0KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9IGVs
c2UgeworICAgICAgICB3aW5kb3dTaGVsbCgpLT5pbml0Q29udGV4dElmTmVlZGVkKCk7CisgICAg
ICAgIGNvbnRleHQgPSB3aW5kb3dTaGVsbCgpLT5jb250ZXh0KCk7CisgICAgfQorICAgIHJldHVy
biBjb250ZXh0ID09IGNvbnRleHQtPkdldEN1cnJlbnQoKTsKK30KKwogdjg6OkxvY2FsPHY4OjpD
b250ZXh0PiBWOFByb3h5OjptYWluV29ybGRDb250ZXh0KEZyYW1lKiBmcmFtZSkKIHsKICAgICBW
OFByb3h5KiBwcm94eSA9IHJldHJpZXZlKGZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
UHJveHkuaAppbmRleCBmZTQ5NTYzY2E1MjIzNDU4OTA1MzMzOWYwODg0MTFhY2M1MmFkMmQ1Li45
ZDE1YmE1MjNkNmE3MzJiYWJjZWM2YWI2M2M2M2RmNGIwODYyYzAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yNDMsNiArMjQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHY4OjpMb2NhbDx2ODo6Q29udGV4dD4gY29udGV4dCgpOwogICAgICAgICB2
ODo6TG9jYWw8djg6OkNvbnRleHQ+IG1haW5Xb3JsZENvbnRleHQoKTsKKyAgICAgICAgYm9vbCBt
YXRjaGVzQ3VycmVudENvbnRleHQoKTsKIAogICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
ZXZlbnR1YWxseSB0YWtlIERPTVdyYXBwZXJXb3JsZCBhcmd1bWVudCEKICAgICAgICAgVjhET01X
aW5kb3dTaGVsbCogd2luZG93U2hlbGwoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd1NoZWxsLmdl
dCgpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>