<?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>41423</bug_id>
          
          <creation_ts>2010-06-30 11:17:48 -0700</creation_ts>
          <short_desc>spelling underline gets lost on backspace</short_desc>
          <delta_ts>2010-09-12 18:24:01 -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>HTML Editing</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>41832</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Hajime Morrita">morrita</assigned_to>
          <cc>abarth</cc>
    
    <cc>adele</cc>
    
    <cc>enrica</cc>
    
    <cc>eric</cc>
    
    <cc>hbono</cc>
    
    <cc>jparent</cc>
    
    <cc>justin.garcia</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>244852</commentid>
    <comment_count>0</comment_count>
      <attachid>60134</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-06-30 11:17:48 -0700</bug_when>
    <thetext>Created attachment 60134
test case

See the test case. Happens in webkit nightly and chrome dev channel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>245092</commentid>
    <comment_count>1</comment_count>
    <who name="Hironori Bono">hbono</who>
    <bug_when>2010-06-30 22:10:06 -0700</bug_when>
    <thetext>It seems CompositeEditCommand::moveParagraph() (called from DeleteSelectionCommand::mergeParagraphs()) does not call Document::copyMarkers() to copy the markers in the source range. (Unfortunately, I do not have any clear idea how we should fix it, though.)

Regards,</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250443</commentid>
    <comment_count>2</comment_count>
      <attachid>61357</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-13 04:58:39 -0700</bug_when>
    <thetext>Created attachment 61357
a preliminary patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250445</commentid>
    <comment_count>3</comment_count>
      <attachid>61358</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-13 05:00:13 -0700</bug_when>
    <thetext>Created attachment 61358
another repro (with automation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250447</commentid>
    <comment_count>4</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-13 05:01:27 -0700</bug_when>
    <thetext>&gt; a preliminary patch
This is just a preliminary version and has no test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>250748</commentid>
    <comment_count>5</comment_count>
      <attachid>61357</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-07-13 14:31:39 -0700</bug_when>
    <thetext>Comment on attachment 61357
a preliminary patch

Code looks fine to me except for the comments below. Just needs a test. Not sure it&apos;s possible to test spelling markers in DRT. If not, please add a manual test.

&gt; +++ b/WebCore/editing/Editor.h
&gt; +    // Invoked from CompositeEditCommand::moveParagraphs()

This comment doesn&apos;t seem especially useful.

&gt; +    void removeMarkersBeforeMovingParagrah(const VisibleSelection&amp;);
&gt; +    void markMisspellingsAfterMovingParagrah(const VisibleSelection&amp;);

I don&apos;t like that these names are tied to paragraph moving since the implementations themselves are generic. How about calling them clearMispellingsAndBadGrammer and markMispellingsAndBadGrammer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251017</commentid>
    <comment_count>6</comment_count>
      <attachid>61481</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-14 01:20:49 -0700</bug_when>
    <thetext>Created attachment 61481
updated. has no test yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251019</commentid>
    <comment_count>7</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-14 01:25:29 -0700</bug_when>
    <thetext>Hi Ojan, thank you for reviewing!
I updated the patch.

&gt; Code looks fine to me except for the comments below. Just needs a test. Not sure it&apos;s possible to test spelling markers in DRT. If not, please add a manual test.
Though a pixel test is possible, I prefer inspecting marker from more robust way.
I heard that Bono-san has code for testing marker (for Bug 40092).
I&apos;ll ask him if it is available.

&gt; &gt; +    void removeMarkersBeforeMovingParagrah(const VisibleSelection&amp;);
&gt; &gt; +    void markMisspellingsAfterMovingParagrah(const VisibleSelection&amp;);
&gt; 
&gt; I don&apos;t like that these names are tied to paragraph moving since the implementations themselves are generic. How about calling them clearMispellingsAndBadGrammer and markMispellingsAndBadGrammer?
Makes sense. renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>251354</commentid>
    <comment_count>8</comment_count>
    <who name="Justin Garcia">justin.garcia</who>
    <bug_when>2010-07-14 12:25:15 -0700</bug_when>
    <thetext>Is it really necessary to remove the markers from the range that&apos;s about to be moved, they&apos;ll be removed when that range is deleted won&apos;t they?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252302</commentid>
    <comment_count>9</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-15 20:57:50 -0700</bug_when>
    <thetext>Hi Justin, thank you for taking a look!

(In reply to comment #8)
&gt; Is it really necessary to remove the markers from the range that&apos;s about to be moved, they&apos;ll be removed when that range is deleted won&apos;t they?

It is a good question.
Actually, no one except Editor removes the marker thus markers for removed nodes are left orphan.
(It doesn&apos;t cause a memory leak because they are owned by the Document.)

So not removing them likely has little harm. But 
I think it&apos;s more polite to remove it than left them orphan, especially inside the Editor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252324</commentid>
    <comment_count>10</comment_count>
      <attachid>61765</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-15 22:19:28 -0700</bug_when>
    <thetext>Created attachment 61765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>252327</commentid>
    <comment_count>11</comment_count>
      <attachid>61765</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-07-15 22:20:58 -0700</bug_when>
    <thetext>Comment on attachment 61765
Patch

Posted wrong patch. I&apos;m sorry for disturbing you...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274899</commentid>
    <comment_count>12</comment_count>
      <attachid>66691</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-07 01:36:41 -0700</bug_when>
    <thetext>Created attachment 66691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>274904</commentid>
    <comment_count>13</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-07 01:39:45 -0700</bug_when>
    <thetext>As Bug 41832 landed, the patch now has a test and ready for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275301</commentid>
    <comment_count>14</comment_count>
      <attachid>66691</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-07 14:35:22 -0700</bug_when>
    <thetext>Comment on attachment 66691
Patch

&gt; +document.execCommand(&quot;Delete&quot;, false);
&gt; +sel.modify(&quot;move&quot;, &quot;right&quot;, &quot;line&quot;);
&gt; +shouldBe(&quot;textInputController.hasSpellingMarker(0, 6)&quot;, &quot;1&quot;);

Can you add some more test cases?  I think the current test works without this patch because the cursor is on &quot;Secand&quot; so the word gets checked when you move the cursor off of it.  For example, you could also test ForwardDelete or test having multiple misspelled words on the second line.

&gt; diff --git a/WebCore/editing/CompositeEditCommand.cpp b/WebCore/editing/CompositeEditCommand.cpp
&gt;      setEndingSelection(VisibleSelection(start, end, DOWNSTREAM));
&gt; +    document()-&gt;frame()-&gt;editor()-&gt;removeMarkersBeforeMovingParagrah(endingSelection());
&gt;      deleteSelection(false, false, false, false);

Out of curiosity, what happens if you don&apos;t remove the markers?  What is the benefit of removing the markers?

&gt; diff --git a/WebCore/editing/Editor.h b/WebCore/editing/Editor.h
&gt; +    // Invoked from CompositeEditCommand::moveParagraphs()
&gt; +    void removeMarkersBeforeMovingParagrah(const VisibleSelection&amp;);
&gt; +    void markMisspellingsAfterMovingParagrah(const VisibleSelection&amp;);

Did you mean to rename these to what Ojan suggested?  r- because of this, but will be happy to r+ with the methods renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275589</commentid>
    <comment_count>15</comment_count>
      <attachid>66839</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-07 20:56:10 -0700</bug_when>
    <thetext>Created attachment 66839
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275592</commentid>
    <comment_count>16</comment_count>
      <attachid>66840</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-07 21:04:40 -0700</bug_when>
    <thetext>Created attachment 66840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275593</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-07 21:05:03 -0700</bug_when>
    <thetext>Hi Tony, thank you for reviewing!

&gt; Can you add some more test cases?  I think the current test works without this patch because the cursor is on &quot;Secand&quot; so the word gets checked when you move the cursor off of it.  For example, you could also test ForwardDelete or test having multiple misspelled words on the second line.
Oops. The test doesn&apos;t make sense as you mentioned.
I refreshed with 2 test cases, one for &quot;Delete&quot; and another for &quot;DeleteForward&quot; 
Both fail without the change.

&gt; 
&gt; Out of curiosity, what happens if you don&apos;t remove the markers?  What is the benefit of removing the markers?

There would be no observable difference.
Markers are hold in the Document object using a hash map, 
and nobody cleanup the map entry even after the DOM node is gone.
I think it is a kind of a leak.
Although memory  for marked-deleted node goes back to the system 
when once Document is deleted, it stays in WebCore during the document is alive.

&gt; 
&gt; &gt; diff --git a/WebCore/editing/Editor.h b/WebCore/editing/Editor.h
&gt; &gt; +    // Invoked from CompositeEditCommand::moveParagraphs()
&gt; &gt; +    void removeMarkersBeforeMovingParagrah(const VisibleSelection&amp;);
&gt; &gt; +    void markMisspellingsAfterMovingParagrah(const VisibleSelection&amp;);
&gt; 
&gt; Did you mean to rename these to what Ojan suggested?  r- because of this, but will be happy to r+ with the methods renamed.
Fixed. I&apos;m sorry for missing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275883</commentid>
    <comment_count>18</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-08 09:33:49 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; &gt; Out of curiosity, what happens if you don&apos;t remove the markers?  What is the benefit of removing the markers?
&gt; 
&gt; There would be no observable difference.
&gt; Markers are hold in the Document object using a hash map, 
&gt; and nobody cleanup the map entry even after the DOM node is gone.
&gt; I think it is a kind of a leak.
&gt; Although memory  for marked-deleted node goes back to the system 
&gt; when once Document is deleted, it stays in WebCore during the document is alive.

That makes sense.  Thanks for explaining.  I agree that it is good to clear the markers rather than wait until the document is destroyed.

When you commit, please watch the Snow Leopard bots.  I&apos;m not sure if the text will trigger a grammar marker or not (maybe it&apos;s not enabled by default on the bot?).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276267</commentid>
    <comment_count>19</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-08 19:05:41 -0700</bug_when>
    <thetext>Committed r67049: &lt;http://trac.webkit.org/changeset/67049&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276276</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-08 19:28:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67049 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277056</commentid>
    <comment_count>21</comment_count>
      <attachid>67161</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-10 00:33:51 -0700</bug_when>
    <thetext>Created attachment 67161
repro for a remaining problem

Reopening this bug because the case attached is not fixed.
Current codebase assumes that we need to correct single word at a time.
But in this case we should.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277270</commentid>
    <comment_count>22</comment_count>
      <attachid>66840</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2010-09-10 09:57:37 -0700</bug_when>
    <thetext>Comment on attachment 66840
Patch

Removing the r+ so this doesn&apos;t show up in the commit queue.

In the future, you may just want to open a new bug.  It&apos;s normally easier to just have one bug per patch to be committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>277939</commentid>
    <comment_count>23</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2010-09-12 18:24:01 -0700</bug_when>
    <thetext>
&gt; In the future, you may just want to open a new bug.  It&apos;s normally easier to just have one bug per patch to be committed.
Oops. I&apos;m sorry for that. I&apos;ll do so next time.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>60134</attachid>
            <date>2010-06-30 11:17:48 -0700</date>
            <delta_ts>2010-06-30 11:17:48 -0700</delta_ts>
            <desc>test case</desc>
            <filename>test-issue19090.html</filename>
            <type>text/html</type>
            <size>243</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">77u/PGRpdiBpZD0idGVzdCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4NCjxkaXYgaWQ9InRleHQx
Ij5CZCBzcGVsbGluZyE8L2Rpdj4NCjxkaXYgaWQ9InRleHQyIj5UeXBlIGEgbWlzc3BlbGxlZCB3
b3JkIGhlcmUgKGUuZy4gYmQpLiBIaXQgYmFja3NwYWNlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhp
cyBsaW5lLiBUaGUgbWlzc3BlbGxlZCB3b3JkIGxvc2VzIGl0J3Mgc3BlbGxpbmcgdW5kZXJsaW5l
LjwvZGl2Pg0KPC9kaXY+
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61357</attachid>
            <date>2010-07-13 04:58:39 -0700</date>
            <delta_ts>2010-07-14 01:20:43 -0700</delta_ts>
            <desc>a preliminary patch</desc>
            <filename>bug-41423-20100713205837.patch</filename>
            <type>text/plain</type>
            <size>4857</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmYzMTM0Y2UyMGY1ZDAxOTRmNzcwY2YzYTFiN2YzMzgwMWRlZmFkYi4uMDc2ZTI1OTg1Y2E3YmUz
MzAzN2MwZTdiOGFiMGVmODAwZmU1OTZlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0xMyAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0cyBsb3N0IG9u
IGJhY2tzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE0MjMKKworICAgICAgICBtb3ZlUGFyYWdyYXBocygpIGRpZCBtYWtlIGEgRE9NIHJhbmdl
IGJ5IHNlcmlhbGl6aW5nIHNvdXJjZSByYW5nZQorICAgICAgICBhbmQgZGVzZXJpYWxpemluZyBp
dC4gIEFuZCBtYXJrZXJzIGFyZSBnb25lIGR1cmluZyB0aGUgcHJvY2Vzcy4KKyAgICAgICAgVGhp
cyBjaGFuZ2UgcmUtbWFyayBuZXdseSBjcmVhdGVkIERPTSByYW5nZSB1c2luZyBFZGl0b3Igc3Bl
bGwtY2hlY2sgQVBJcy4KKworICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3Jh
cGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnJlbW92ZU1hcmtlcnNCZWZvcmVNb3ZpbmdQYXJhZ3JhaCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1BhcmFncmFoKToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDEwLTA3LTA3ICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWto
YXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwIGIvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA0MWQ2
NzU4MjIyYzk3ZDk0OGVkODRlMDQ2YTliOTMyODk5NThkZjRlLi5hMDViNTBkOTViYzc0MGY0OGI5
MmZhZjVmNDY2MDA4ZTY5NzU3OGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0b3JJbnNlcnRBY3Rpb24uaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgpAQCAtOTQ4LDYgKzk0OSw3
IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgLy8gRklYTUUgKDUwOTg5MzEpOiBXZSBz
aG91bGQgYWRkIGEgbmV3IGluc2VydCBhY3Rpb24gIldlYlZpZXdJbnNlcnRBY3Rpb25Nb3ZlZCIg
YW5kIGNhbGwgc2hvdWxkSW5zZXJ0RnJhZ21lbnQgaGVyZS4KICAgICAKICAgICBzZXRFbmRpbmdT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgZW5kLCBET1dOU1RSRUFNKSk7CisgICAg
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPnJlbW92ZU1hcmtlcnNCZWZvcmVNb3ZpbmdQ
YXJhZ3JhaChlbmRpbmdTZWxlY3Rpb24oKSk7CiAgICAgZGVsZXRlU2VsZWN0aW9uKGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlKTsKIAogICAgIEFTU0VSVChkZXN0aW5hdGlvbi5kZWVwRXF1aXZh
bGVudCgpLm5vZGUoKS0+aW5Eb2N1bWVudCgpKTsKQEAgLTk3Nyw3ICs5NzksOSBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZQYXJhZ3JhcAogICAgIHNldEVuZGluZ1NlbGVjdGlvbihkZXN0aW5hdGlvbik7CiAg
ICAgQVNTRVJUKGVuZGluZ1NlbGVjdGlvbigpLmlzQ2FyZXRPclJhbmdlKCkpOwogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgZnJhZ21lbnQsIHRydWUsIGZhbHNlLCAhcHJlc2VydmVTdHlsZSwgZmFsc2UsIHRydWUp
KTsKLSAgICAKKworICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5tYXJrTWlzc3Bl
bGxpbmdzQWZ0ZXJNb3ZpbmdQYXJhZ3JhaChlbmRpbmdTZWxlY3Rpb24oKSk7CisKICAgICAvLyBJ
ZiB0aGUgc2VsZWN0aW9uIGlzIGluIGFuIGVtcHR5IHBhcmFncmFwaCwgcmVzdG9yZSBzdHlsZXMg
ZnJvbSB0aGUgb2xkIGVtcHR5IHBhcmFncmFwaCB0byB0aGUgbmV3IGVtcHR5IHBhcmFncmFwaC4K
ICAgICBib29sIHNlbGVjdGlvbklzRW1wdHlQYXJhZ3JhcGggPSBlbmRpbmdTZWxlY3Rpb24oKS5p
c0NhcmV0KCkgJiYgaXNTdGFydE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVT
dGFydCgpKSAmJiBpc0VuZE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVTdGFy
dCgpKTsKICAgICBpZiAoc3R5bGVJbkVtcHR5UGFyYWdyYXBoICYmIHNlbGVjdGlvbklzRW1wdHlQ
YXJhZ3JhcGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDc3M2VkOTAwZGZlNzUxMDAwMTUxZWVmYjljZGVi
MWQ0NTBmZTliMDMuLjVlMDk0Y2IyZmYzYWZhYWE3ZGFhNDJlNjk3ZjFiYTgwNmI5OWE2ZDYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC0yMjI4LDYgKzIyMjgsMjkgQEAgYm9vbCBFZGl0b3I6OnNwZWxsaW5n
UGFuZWxJc1Nob3dpbmcoKQogICAgIHJldHVybiBjbGllbnQoKS0+c3BlbGxpbmdVSUlzU2hvd2lu
ZygpOwogfQogCit2b2lkIEVkaXRvcjo6cmVtb3ZlTWFya2Vyc0JlZm9yZU1vdmluZ1BhcmFncmFo
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24gJm1vdmluZ1NlbGVjdGlvbikKK3sKKyAgICBSZWZQdHI8
UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBtb3ZpbmdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2Uo
KTsKKyAgICBpZiAoc2VsZWN0ZWRSYW5nZSkgeworICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgp
LT5yZW1vdmVNYXJrZXJzKHNlbGVjdGVkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVs
bGluZyk7CisgICAgICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnJlbW92ZU1hcmtlcnMoc2VsZWN0
ZWRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOworICAgIH0KK30KKwordm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1BhcmFncmFoKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24gJm1vdmluZ1NlbGVjdGlvbikKK3sKKyAgICBib29sIG1hcmtTcGVsbGluZyA9
IGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgYm9vbCBtYXJrR3JhbW1h
ciA9IG1hcmtTcGVsbGluZyAmJiBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKworICAgIGlm
IChtYXJrU3BlbGxpbmcpIHsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiB1bnVzZWRGaXJzdE1pc3Nw
ZWxsaW5nUmFuZ2U7CisgICAgICAgIG1hcmtNaXNzcGVsbGluZ3MobW92aW5nU2VsZWN0aW9uLCB1
bnVzZWRGaXJzdE1pc3NwZWxsaW5nUmFuZ2UpOworICAgIH0KKworICAgIGlmIChtYXJrR3JhbW1h
cikKKyAgICAgICAgbWFya0JhZEdyYW1tYXIobW92aW5nU2VsZWN0aW9uKTsKK30KKwogdm9pZCBF
ZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvUG9zaXRpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICZwKQogewogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
Y2QxYjIwNDE2ZjJjMjE2N2Q3M2NjMTk5NmZkNmRhOTdlNzRmYzU2Zi4uNDEyZDc5MDdlMDM1ZWNk
NmJmMGJmNzAxZjUwN2Y3MjAxOTYzMDVmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMjkyLDYgKzI5MiwxMCBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gbmV4dFZpc2libGVSYW5nZShSYW5nZSos
IGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlRmxhZywgYm9vbCB3cmFwRmxh
Zyk7CiAgICAgCiAgICAgdm9pZCBhZGRUb0tpbGxSaW5nKFJhbmdlKiwgYm9vbCBwcmVwZW5kKTsK
KworICAgIC8vIEludm9rZWQgZnJvbSBDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFw
aHMoKQorICAgIHZvaWQgcmVtb3ZlTWFya2Vyc0JlZm9yZU1vdmluZ1BhcmFncmFoKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1Bh
cmFncmFoKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIHByaXZhdGU6CiAgICAgRnJhbWUqIG1f
ZnJhbWU7CiAgICAgT3duUHRyPERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI+IG1fZGVsZXRlQnV0dG9u
Q29udHJvbGxlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>61358</attachid>
            <date>2010-07-13 05:00:13 -0700</date>
            <delta_ts>2010-07-13 05:00:13 -0700</delta_ts>
            <desc>another repro (with automation)</desc>
            <filename>spellbr.html</filename>
            <type>text/html</type>
            <size>577</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8c2NyaXB0PgpmdW5jdGlvbiB0ZXN0KCkKewogICAgdmFyIHRhcmdldCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKICAgIHRhcmdldC5mb2N1cygpOwog
ICAgdmFyIHNlbCA9IGRvY3VtZW50LmdldFNlbGVjdGlvbigpOwogICAgc2VsLm1vZGlmeSgibW92
ZSIsICJmb3J3YXJkIiwgImxpbmUiKTsKICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRU
ZXh0IiwgZmFsc2UsICIuIik7CiAgICBzZWwubW9kaWZ5KCJtb3ZlIiwgImxlZnQiLCAid29yZCIp
OwogICAgc2VsLm1vZGlmeSgibW92ZSIsICJsZWZ0IiwgIndvcmQiKTsKICAgIGRvY3VtZW50LmV4
ZWNDb21tYW5kKCJEZWxldGUiLCBmYWxzZSk7Cn0KPC9zY3JpcHQ+CjwvaGVhZD4KPGJvZHkgb25s
b2FkPSJ0ZXN0KCk7Ij4KPGRpdiBpZD0idGFyZ2V0IiBjb250ZW50RWRpdGFibGU9InRydWUiPgo8
ZGl2PkhpLDwvZGl2Pgo8ZGl2PmhlbGxvIFdybGQ8L2Rpdj4KPC9kaXY+CjxwPiJXcmxkIiBhYm92
ZSBzaG91bGQgaGF2ZSBhbiB1bmRlcmxpbmUgZm9yIG1pc3NwZWxsaW5nLjwvcD4KPC9ib2R5Pgo8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61481</attachid>
            <date>2010-07-14 01:20:49 -0700</date>
            <delta_ts>2010-07-15 22:19:19 -0700</delta_ts>
            <desc>updated. has no test yet.</desc>
            <filename>bug-41423-20100714172047.patch</filename>
            <type>text/plain</type>
            <size>4857</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmYzMTM0Y2UyMGY1ZDAxOTRmNzcwY2YzYTFiN2YzMzgwMWRlZmFkYi4uMDc2ZTI1OTg1Y2E3YmUz
MzAzN2MwZTdiOGFiMGVmODAwZmU1OTZlMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNy0xMyAgTU9S
SVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0cyBsb3N0IG9u
IGJhY2tzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NDE0MjMKKworICAgICAgICBtb3ZlUGFyYWdyYXBocygpIGRpZCBtYWtlIGEgRE9NIHJhbmdl
IGJ5IHNlcmlhbGl6aW5nIHNvdXJjZSByYW5nZQorICAgICAgICBhbmQgZGVzZXJpYWxpemluZyBp
dC4gIEFuZCBtYXJrZXJzIGFyZSBnb25lIGR1cmluZyB0aGUgcHJvY2Vzcy4KKyAgICAgICAgVGhp
cyBjaGFuZ2UgcmUtbWFyayBuZXdseSBjcmVhdGVkIERPTSByYW5nZSB1c2luZyBFZGl0b3Igc3Bl
bGwtY2hlY2sgQVBJcy4KKworICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3Jh
cGhzKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnJlbW92ZU1hcmtlcnNCZWZvcmVNb3ZpbmdQYXJhZ3JhaCk6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1BhcmFncmFoKToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvci5oOgorCiAyMDEwLTA3LTA3ICBQYXZlbCBQb2Rpdmlsb3YgIDxw
b2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2VtaWto
YXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwIGIvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCA0MWQ2
NzU4MjIyYzk3ZDk0OGVkODRlMDQ2YTliOTMyODk5NThkZjRlLi5hMDViNTBkOTViYzc0MGY0OGI5
MmZhZjVmNDY2MDA4ZTY5NzU3OGFlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9z
aXRlRWRpdENvbW1hbmQuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0b3JJbnNlcnRBY3Rpb24uaCIK
KyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgpAQCAtOTQ4LDYgKzk0OSw3
IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0IFZpc2li
bGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgLy8gRklYTUUgKDUwOTg5MzEpOiBXZSBz
aG91bGQgYWRkIGEgbmV3IGluc2VydCBhY3Rpb24gIldlYlZpZXdJbnNlcnRBY3Rpb25Nb3ZlZCIg
YW5kIGNhbGwgc2hvdWxkSW5zZXJ0RnJhZ21lbnQgaGVyZS4KICAgICAKICAgICBzZXRFbmRpbmdT
ZWxlY3Rpb24oVmlzaWJsZVNlbGVjdGlvbihzdGFydCwgZW5kLCBET1dOU1RSRUFNKSk7CisgICAg
ZG9jdW1lbnQoKS0+ZnJhbWUoKS0+ZWRpdG9yKCktPnJlbW92ZU1hcmtlcnNCZWZvcmVNb3ZpbmdQ
YXJhZ3JhaChlbmRpbmdTZWxlY3Rpb24oKSk7CiAgICAgZGVsZXRlU2VsZWN0aW9uKGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGZhbHNlKTsKIAogICAgIEFTU0VSVChkZXN0aW5hdGlvbi5kZWVwRXF1aXZh
bGVudCgpLm5vZGUoKS0+aW5Eb2N1bWVudCgpKTsKQEAgLTk3Nyw3ICs5NzksOSBAQCB2b2lkIENv
bXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24m
IHN0YXJ0T2ZQYXJhZ3JhcAogICAgIHNldEVuZGluZ1NlbGVjdGlvbihkZXN0aW5hdGlvbik7CiAg
ICAgQVNTRVJUKGVuZGluZ1NlbGVjdGlvbigpLmlzQ2FyZXRPclJhbmdlKCkpOwogICAgIGFwcGx5
Q29tbWFuZFRvQ29tcG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1l
bnQoKSwgZnJhZ21lbnQsIHRydWUsIGZhbHNlLCAhcHJlc2VydmVTdHlsZSwgZmFsc2UsIHRydWUp
KTsKLSAgICAKKworICAgIGRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5tYXJrTWlzc3Bl
bGxpbmdzQWZ0ZXJNb3ZpbmdQYXJhZ3JhaChlbmRpbmdTZWxlY3Rpb24oKSk7CisKICAgICAvLyBJ
ZiB0aGUgc2VsZWN0aW9uIGlzIGluIGFuIGVtcHR5IHBhcmFncmFwaCwgcmVzdG9yZSBzdHlsZXMg
ZnJvbSB0aGUgb2xkIGVtcHR5IHBhcmFncmFwaCB0byB0aGUgbmV3IGVtcHR5IHBhcmFncmFwaC4K
ICAgICBib29sIHNlbGVjdGlvbklzRW1wdHlQYXJhZ3JhcGggPSBlbmRpbmdTZWxlY3Rpb24oKS5p
c0NhcmV0KCkgJiYgaXNTdGFydE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVT
dGFydCgpKSAmJiBpc0VuZE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVTdGFy
dCgpKTsKICAgICBpZiAoc3R5bGVJbkVtcHR5UGFyYWdyYXBoICYmIHNlbGVjdGlvbklzRW1wdHlQ
YXJhZ3JhcGgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IDc3M2VkOTAwZGZlNzUxMDAwMTUxZWVmYjljZGVi
MWQ0NTBmZTliMDMuLjVlMDk0Y2IyZmYzYWZhYWE3ZGFhNDJlNjk3ZjFiYTgwNmI5OWE2ZDYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuY3BwCkBAIC0yMjI4LDYgKzIyMjgsMjkgQEAgYm9vbCBFZGl0b3I6OnNwZWxsaW5n
UGFuZWxJc1Nob3dpbmcoKQogICAgIHJldHVybiBjbGllbnQoKS0+c3BlbGxpbmdVSUlzU2hvd2lu
ZygpOwogfQogCit2b2lkIEVkaXRvcjo6cmVtb3ZlTWFya2Vyc0JlZm9yZU1vdmluZ1BhcmFncmFo
KGNvbnN0IFZpc2libGVTZWxlY3Rpb24gJm1vdmluZ1NlbGVjdGlvbikKK3sKKyAgICBSZWZQdHI8
UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBtb3ZpbmdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2Uo
KTsKKyAgICBpZiAoc2VsZWN0ZWRSYW5nZSkgeworICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgp
LT5yZW1vdmVNYXJrZXJzKHNlbGVjdGVkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVs
bGluZyk7CisgICAgICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnJlbW92ZU1hcmtlcnMoc2VsZWN0
ZWRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOworICAgIH0KK30KKwordm9p
ZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1BhcmFncmFoKGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24gJm1vdmluZ1NlbGVjdGlvbikKK3sKKyAgICBib29sIG1hcmtTcGVsbGluZyA9
IGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgYm9vbCBtYXJrR3JhbW1h
ciA9IG1hcmtTcGVsbGluZyAmJiBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKworICAgIGlm
IChtYXJrU3BlbGxpbmcpIHsKKyAgICAgICAgUmVmUHRyPFJhbmdlPiB1bnVzZWRGaXJzdE1pc3Nw
ZWxsaW5nUmFuZ2U7CisgICAgICAgIG1hcmtNaXNzcGVsbGluZ3MobW92aW5nU2VsZWN0aW9uLCB1
bnVzZWRGaXJzdE1pc3NwZWxsaW5nUmFuZ2UpOworICAgIH0KKworICAgIGlmIChtYXJrR3JhbW1h
cikKKyAgICAgICAgbWFya0JhZEdyYW1tYXIobW92aW5nU2VsZWN0aW9uKTsKK30KKwogdm9pZCBF
ZGl0b3I6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvUG9zaXRpb24oY29uc3QgVmlzaWJs
ZVBvc2l0aW9uICZwKQogewogI2lmIFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdf
T05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXgg
Y2QxYjIwNDE2ZjJjMjE2N2Q3M2NjMTk5NmZkNmRhOTdlNzRmYzU2Zi4uNDEyZDc5MDdlMDM1ZWNk
NmJmMGJmNzAxZjUwN2Y3MjAxOTYzMDVmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtMjkyLDYgKzI5MiwxMCBA
QCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gbmV4dFZpc2libGVSYW5nZShSYW5nZSos
IGNvbnN0IFN0cmluZyYsIGJvb2wgZm9yd2FyZCwgYm9vbCBjYXNlRmxhZywgYm9vbCB3cmFwRmxh
Zyk7CiAgICAgCiAgICAgdm9pZCBhZGRUb0tpbGxSaW5nKFJhbmdlKiwgYm9vbCBwcmVwZW5kKTsK
KworICAgIC8vIEludm9rZWQgZnJvbSBDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFw
aHMoKQorICAgIHZvaWQgcmVtb3ZlTWFya2Vyc0JlZm9yZU1vdmluZ1BhcmFncmFoKGNvbnN0IFZp
c2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3NBZnRlck1vdmluZ1Bh
cmFncmFoKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIHByaXZhdGU6CiAgICAgRnJhbWUqIG1f
ZnJhbWU7CiAgICAgT3duUHRyPERlbGV0ZUJ1dHRvbkNvbnRyb2xsZXI+IG1fZGVsZXRlQnV0dG9u
Q29udHJvbGxlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>61765</attachid>
            <date>2010-07-15 22:19:28 -0700</date>
            <delta_ts>2010-07-15 22:20:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41423-20100716141924.patch</filename>
            <type>text/plain</type>
            <size>25297</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZDRmZDdjZTdmZGJmYjhhZWUxNmJkYzE0OTMxOGIzODExZTFmYmRmLi5kNDUzMjJj
ODJkYjcwZWNhNmRkNjhkMDBlN2ZhMmVkYmE2YjVhZDY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjAgQEAK
IDIwMTAtMDctMTUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CiAKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSByNjM0
MjIgY2F1c2VkIHN2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2luZy1nbHlwaC54aHRt
bCB0byBmYWlsIG9uIExpbnV4IGFuZCBXaW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MTQyMworICAgICAgICAKKyAgICAgICAgQWRkZWQgZXhw
ZWN0YXRpb25zLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3Rv
bS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvY3VzdG9tL3N2Zy1mb250
cy13aXRob3V0LW1pc3NpbmctZ2x5cGgtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5n
LWdseXBoLWV4cGVjdGVkLmNoZWNrc3VtOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4cGVj
dGVkLnBuZzogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0
b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2luZy1nbHlwaC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
CisyMDEwLTA3LTE1ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCiAgICAg
ICAgIFRleHQgbGF5b3V0IGlzIHdyb25nIHdpdGggYSBTVkcgRm9udCB0aGF0IGxhY2tzIDxtaXNz
aW5nLWdseXBoPiBlbGVtZW50CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjM1MgogICAgICAgICAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2luZy1n
bHlwaC1leHBlY3RlZC5jaGVja3N1bSBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxp
bnV4L3N2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2luZy1nbHlwaC1leHBlY3RlZC5j
aGVja3N1bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YWY2MGUzZWEyOGIwZGI5NDhjZjZmNzE1OGU1ZjYzNGUyZmE3
NjBjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4cGVjdGVkLmNo
ZWNrc3VtCkBAIC0wLDAgKzEgQEAKKzJlZmE1MDQwYzcyOWM1N2YxNmI5NDgyNGE3NmJjMDczClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWds
eXBoLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2
Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2luZy1nbHlwaC1leHBlY3RlZC5wbmcKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZjgxODExNGNiZTJlMzNkYzBkYTIyZjc1NmNiYzI3YWVhMmEzYTA4ZQpHSVQgYmlu
YXJ5IHBhdGNoCmxpdGVyYWwgMTQzOTcKemNtZUh1WEg/VTkqS08yTVc+alFHNWs/VDA4QVUpIU03
cCRiOTdJSDVrbHN+OUkteiRHK3NGVXtEb3R2WEIxajNICnpLcXZ1ZVFZMzxPTkoyK1M1O34hVWRv
c15eLSp3a3AqMWFGQHYrbil5dXZ9UlZHNWBGXklzNUZyJnpaMTRiVHY3VAp6QCpQRFc1UyZeIWUh
cT1DOVFwfT9JQjVGcUxITnlTPyRhVSYjN192Vi0+KHxfcl9qaGohR19iUj5QeDVvOHZQKF8KemNy
Xlgtam9TUSlxY0A1KXJoYldVN0hga0JhK1E7YUMlYS1zSUxFUm9jcTl1cE9iVClnbXVfPnZqbTxV
TWVlXnkmCnpGOHRfa2BVaGcjMUZ5Yn1Gd2dvJD4oWmxOckItKXJ5Pz94cnNDQUdsZVFnZ3RKLXlI
PUx0UmFvUm5tR0VaTGdjdwp6N1QkZEMyTHhoVmM3JUVlZmwmUFh0dGtUVz0pMz50RkxwO3cmNFQ4
PV8oS2ZoO15ONEBCZCgzbEkyVDUleWRyb2MKemh3JilQe1FHUlI/WE1ad3tUbjRFSCFvdyM5clFo
eThuUzh3PDNiaUpyaXB2QnVIME1fPTZUVDlBbkZKWV9CVjMmCnpNZXooVjFLOzRpMSZmaCNhbVMm
T09xMFNBPVJ6ezhUZUo5aHQ/SGlsSS1ZM05vdU8mZzVpamdJNjJDXlBVWX1Kagp6Kz98UmtUV0Ba
YkpKVTcpYEU1MD1pZXZKPyF8UCNMeWh2cz9XOzs2QGl6Y0x9fDU3RHd3PCkwUHRGcDZMOFkrYkwK
emUtYzkxak5uRG1ocyZMVnBLX2AxRjY5OzBDQjFJV0ghRD99Wjc/KXhtM1BUJEJPIztIQ0VJTkpg
aWdzY2hTU3NNCnpsaWh8WD8rdnVsX240RX4pV0V6TUZUcDg2fEZLNWBWYmErdT5zYHVudHdKX1Ft
I0x6fHV0bmhyVVh3b0JkYDdnQgp6PUpQPnd5anBuMCo/e3xWMWZPK21xPEc8fEYrKnkoJj5sPG5k
R2p1YzFIcCRCSHhgaSp6SGV0Jj9uVnc9cFlLeCoKeitQTEwqPnBSbWg4ai1iTDchVkwoV01wKF5g
Kj9heSYyR352ejJNbllLUiNrZEdPQks8KDFzV3U5P29wYyZDT2swCnpUeF94bytAeEM+OGdpckdh
MU5EO2BGe0w0dDQqQGx3NiRwP2h8IW5rKilHRFV2KjU9SldAd2gwU1VYfnFjYmFRfAp6dCRkKjRO
PGBhRFBoLV8/ckQ7MWw9QSk8dTNqK2lGKXdaRTAlbkl2PD5uIWtBMHx3ZVI/YDVZRSk7bmJeRUls
O3gKenE2QTlRMCgwa3l0aGBeZ2hJPHI8aU04JWB0N0ZrbFBVJnZzbzlmSXJFRnQzMCpHak5LSUM1
R2YyTz1yKzUjfjNrCno+Y3heTkAzXjVia3U/OHE0UE0mJTNxSWZKSTFgKSY5O2ExcD18fWJuXkZG
UGlAOVhRIXQ+SFJTNXZqaVRgUiVwKAp6YVhJVTMtTmNAckBsYl53O3kmSklWdGprT1QhQ3M/I28j
Q3BnKmJfanh+UHwjJDMwK0tzJW4pS21ZJE9AQUBBNjsKekYlYGVoajFFVkk8VntidDY+ekRfPUpf
bCpeeVdOeUs8ZCh4Rzl7RHwrfClAYjJCfWgzOHYzJTFKLUM+bS1ldHRFCnpGfHl3bXZEUigmJWVC
YTw3fWkjaF55fStlcEhPSS1rbk9kMV5tMiNwYlY0TU4qXkNANmJNI3Y0KjM/VjlFWnA9dAp6REwt
S0ska0ZUMTYtQnFrZzsrJmlMUXhNR3lRRj1Xb2RwfWBgSD1hJk88Tmd6YGQyRChZb2VMdnlaRHQh
MzkzNEwKelNra35yRnZ0YTgtQVMpSlhGdChvKyROY3dTfjJxZWhMVmcyYWZjaT1STylyRklCRmZ1
RFVlaiMzTmRgYWFaS188Cnp3QXl4I0xBSV9+V0UrPShAQlJwdDx2VnljbHZhKVpjSkA9VTl+QD8x
WipRLXZfaythSFRBezRiPDd2QVU9Rys9YAp6YXs5Zy14V2BYVWchfEcqMyZ4STNZIWF6a1EheiRk
RG4lQTc/TX1PdXNkZ25WVW56X0pJLU8pSVFqfnkmdn4zRysKeko2PHhRejVTTCEmfEZxaEF0dUIq
YypsYjNCeURAVyVZSHllLUFNbjM1U253QV5UNW9eUkJ2ZmUkeHBEbjxDaFFUCnpafkZ+bXdDdUxt
PUp4bGZgJkwjfndIJT9XUzRaLT4pY3o2KHtFQUMxMyoyejJAVElXPTZsOSgjUDt6UzVkUkF1Qgp6
b1QpZ2dKdWZrX0ZlNCs0UkF0NzdyMnBSZkBNSlZuVFNhQiZeI2ZGMHFPYTVHKTc9V2hEeFhoRCFe
Zmw/bWErUm8Kem15dn5PKzg4KmJ1SERgNmwkMEU9KiQwfH1MLX41eCNWQClZdFFpRl5yQG84am97
WksqaHtPOzx7QnFxfGsyYU9ICnpmIypfUUVhSChnX29rMC08KEdEQ1BZVWg3elAtQT1QYEpOOVdH
JEd+dDs4N0Btfi07V3lSXkwkaiNnKit8OGczXwp6JnZrTEljcHN1Nj91TG5lJiY4OTgoYmd5KGZg
Q29uVG8jO0NGd05QPGBPNzw8aDVtd3xeP0E5d0FELWVWZnE0fTIKejBgOFZIaWM8NE1TNk5hLUJ3
SVR7aXY3NTJCSmJgLXQ1JUgyejNvNiEqTDk3X2FeTGM7OGpmMF5gcTJBM0JUO0lFCnplNG05ZmFY
d2trcnozZEg0OXhebU5AQWRAbXwxSS1uVjkyK0BicndSVlZYVTFUQT09XiZ3Xjk3RjFaX3o4ZHts
Xwp6diV0NT1xaV9XfVVKSmJwSDJ6JDhkVSZgNG5KfXlvayZDSj5TUSspfDs4TXo1bzZtIVBUdzsr
JU5ydzIma1g8TDgKek5HPU88Yil9VUxTbzQjRllKKWFlJSpwNmUzTzsqZDlPXmU+MyhRSXtDQDNn
fHJ3N3JpdmVWTmk4YVJaV3RLVjl+CnpeeStLVW1idis9WTt8LSNGXyRNTlh8O2p0PTZFLTk1VGtZ
PVRNc0s1VVEkfCRzdkxoZEhEUWtwc2M8dEh1bnV6ZAp6KUYhMj1eODJhelMpQlc2Pi1+VXJvfGc2
ZEB4QGEwcCg/THwocXB7RlN0QU9LMkYwYz5UYDIrdTx7YHNxTiZ3YnsKeiUoc0tiWGpANjkofDxX
T1hOZUJqM2ZWTjBTNDwkPilPTD1FdW44X0VOWTlGfTxSMEFHdmhSMm40N3VmO0VUPig0Cno8eXk5
YHUlMjJ+RFRTNE1NRyljZUpjUGRwejVOQXk7VWM0JlFELVcjKEo0YlpaeXFtYyFHcU0hIzFaJVI3
fFpiKgp6NWpAU2RMeE10dF9sPFNpXkxlTDg3dmhfQEc1ZF50VkxsT15xKnpoaXgpKGZ+Skpmdl42
MF9BSTs1WWl4cHs9WFMKelpNNlJPSypNbEopPCN4QnU4OGh2ZSs0WiZ2UV5MYGtXbXthU0I9fj9H
PlZofGVCWGNtUHV8PWwxIV5EYiEhYVkrCnpVKXc5SU09b1JhMXJ+VnVqZUgxMld2U3xYNnwmYEoj
IWlvUlVzJF9XKlZjSX1Ha3lLX3VpZXZUWDczWG4+bUxAMwp6OzI5VUlye2lnNzspJnR1bEFuQE0w
YUd0O295bUkleHo7aW1kU0dGRnp5e1V0R0I2XkFzIyg0KyFMemZ9JGFQQmMKekBaclBEP1k9Wk10
NWs9dmBiUH1uS0R1VWtBX0I9OEohdElWO2p5Q3B0aHU+KWRCY3d5cU0mckNtYkpZd2NjbGhpCnpa
SHJCSGJhV1YkK0RTPX42IStnSWtIbX1ke041ZV4hP19DOTdIUFM7blFzczt0O1o9O0hgMEB1dFQ1
MVd1USp6NQp6bV5TZmd2KERzWVZDSHRzaFBqVGx3Yj5SZnhVY00/Jip+QGFfNEVAMEh8MVIlP3Jg
PzB2cG5uPGBycTVuKnNHN2sKejY+WURIYit7aUVYWjJPazsqV0RVXzRwJXhEaD1gSD5RRDhmQm5B
XzJLYGY8PC1tS1o9KSMmYSg2MzxkXkpXYkJoCnpQRHBlQUBaQmFBZ09UOD1VVEdLS0JvRSNtXiU8
fSMmZ3xAa0g8PkxFb2hjNmFJOSVPb20tM2hPT0FlcGtoPXdRMAp6SW1fRjNyS0c2XzI/bDxCM2tm
PiU8WWpOYT9gVXp4PGprazQ9NFA2Um8qVmd7JlJWdio1b1I/UmRwNkt2RT5na1IKem43KTQ1Nm1I
c1dmTzV0QTxJUD0jQHQyeD4qMm5MU1I1K31DVGA/PjU8bEJ2QF5AZTBrKSN0WGUofno7QkBuJXIh
CnpOI2piaFhWO1JjblN5aEd0MWshOSh7VVNlYXN1S1B1YmBRQz17O0ZBZE0qQV9HY1ckQHBhKHU2
RTxxRGROIW1Dcgp6QDJHPEt7UDVqe2tgQExmJiFtdEx3fHRzc2c1WFF6TCk4RlE4NHZfaXtGaCk4
OF9kci0wdnBuO1hKZDk8dyhKd14KelVUTn1jYlFpWUBDZ1UycClSPUZ5Q2Jpfjh6OEdQRmlPXkNE
NGZNemFTQnMxZG9sVjFKYFJlazR7KzhAMmk7IWVfCnpQVT1Jc0s8fTsyTUNCeWVnIV82YiNXTDJi
VSRBWitmNWhNV3tEdiQ9Z3B5WFRoKHxeMVY2NmsxZXlDUkNuJDV8JAp6Yz9nKEQmcm9RR1kjRUJt
aWFDeUw9aHUpbEZCPmVqKSNUUGxtVXJkNWJtIU9oaUE1elBDQWdWPWVCRkExcy1tfCsKelhsaEpN
RFBVJCg8Tlc7bSUlfGttaiN0IWFtIVQ1N2lDPUV0MzxYOWdZNEp8VmMmUEdgbyV5QEJJWFVsdVVi
SVE3CnpaKXhUNnFnPT5pYiNyTmFAezJLU0JKX2p2TFZweChTT2RXQWl1WWpvazQ9QzVGcj1wJXc9
RWB7N0BCJnV7ZHYwUgp6X0ViIWNBRU59SVAmMysxK1MmTE4/eEVeWmVIU0N4ZSF6NDA/QCE5dDcj
ZUE0Y3lDUmc9MkVZYjJ+U15LJSpua3QKejJvYVlXIVpnMG8mVG96bGVpYjxCdF4mMjY5WjF0MTMw
Uk1vR2l+ZHFQb0dZKF5sVz40X31CKmQrZiVuIWo4e3A8CnpyZ35NNjxJWXl4VU5qPihlU1dGPVBF
ZVlxK2JfNyZyZWBpOShrU1FibHJDeXNgZH5vMHM9ensleE5EYjhQKEhHVAp6LThVPEN2IVllYTNW
S3NSYmhLcmphTSs4ZXQ4NUhEPE18TXNFKmtGWG5hJn5qRiRfNzB7dipVMHh3IW9JeF8mSHIKemd9
TWAtPyhpdXw/bzdDe0FIQypJIXtha0Q0fXp6flpNMDxqYH0/aGQ4fF5wK1laM2V5WH1nelI9MFEx
XntNM1h4Cnp4MSV5V2xfQG9fKjErTVllemowcVM2d3d8clpjN0s9blFgSl9Fd3VuY09pT3haazco
JTt4aGloSClLY3RWJiE3dQp6aCtBSXAqU0QkckU2QVp9bF4lSXpGPVN1PV4+ZiRuNkRWZ2leYkA0
Ml9iU3NvdUc9USRJI0U9JXdANFA2YHJnZCgKel92JVlRR0o9UjNfQ2lQVShSPHMlPlllVkE3c2JW
JG81TjQqYjZjVWVyY3JmVTU3MjF6I0N0WVYtRW4qUlUxS1BoCno5PWJBUUM7UVI0PkMlWU02OVVe
eCQxaitYNkA4azFYaFdJTndYaGtRYysqLSFWe3hsfE1fWlU2Q2ZNSDF0eGJreAp6aHoqI3ozaSQ9
VjdXKEs9REw/Jn1AY0YkV1Z4YVJZaT9yYTlgQjMjeXdQNjJeLTdWVjVDeCEzQilSO2RSfDR+JDYK
eipQLWBpWUhkIzApQVEhX1h4eU1HXn00V2R3VWxneW4/VDZeUEliUW5SLUtxQGtsa31HTjtMVjNr
RVM2dU16MVI+CnpKcU5RLWVsWU5uUDViMkxxNiVYMW8jfj52azw8JVRTbjN8I3VQeDRzOzBeSVJW
QVRmc0hhMjlCNmApMz9lQCplfgp6KHhValNPdG1mNzVffWZvOWJDSDhIOVNNKjxhQyU4K251Rz5y
NE12Z0dyNnFNSjJkPHg0WUZIVFJeR1drS1BNO1cKenJHV2Z4QUQ9QEMmLTlYdzZLXmo/KmVzZVN6
cD1wZ09sNjtCR3l1e2peNi1UJEhfektmaUtXVXEyNXFDcmc2JTJeCnpDZjR0RF5CMFg2Q2lqTl5s
KE0+Y1FycXg2UVojVGp3WXNZJVJ4R1k5Um1rJXI/ejk9UXdrKzVfXj5pVHhMekVCcQp6d0skciQz
fXhiLWxsZiZQKVVVTFk2N25jWTNhKmtzQWZUdnFaT3c7ezk1PH5FXndIMzBXfXI4Iy0yZ1g2RTBA
MXEKenthdjQxMTVmc354Skx+UypKSWVSeH0odnQ0a3tDV29xSDcmd0F7Pl90KHpKK2xWfnJteEpY
IWQrfE95Uks9SFNvCno3enp+KDZzMEh2K1d0TiVIKChoZmlwJE0pRHIjKERFO1NDdlZ0VTE2P2xy
YlYlQjNuTm9MNShOOFNKMD4+ZlVlfAp6M3hCdH1JbFZ6RTxgNWR5UzVQcC1SN2g7KTh1Y2tEUmM5
NEh5IT1pNmBocWpUUzVrfURabyk9U1dxRUdZKTYzNmoKemdLbzdrPlNaKjdaKUd1Q1Epd2ZaVmJl
Y2U1Tj99eik8Ym8pUGhIbnFJY1FhRXk0V3NgUHhaY1NIbFpUUmhGSFQkCnpQU2YpOGF6XmJZPCFn
Nl8hUSpEKXt0bDcyTmVQPDYqK01QR1FTXz9qZGYkSXBuZU9vOG9SQ1NkTDJtKS13cyYrdQp6YFJD
VHEkRXQ8QUxQaFFhYEgkKCo+eGhAK01PdSVKalVeeSQobj09VjxIUSRxbSVfenlmMmp3SmRiR0xA
N1RxTmkKemR8Q3prRVYodHolKi1aUnF4STR6Q3o+TSt1Ml9+aT0kfDlxeEFnSUduUVRlZy1SJmpp
Uk05R0V1bn5GSisqR3lOCnolU3k2a0U+K1hIY0A7KTwtQFhlS2ZqJk49QylQOGMzaGc7cS0wYmlv
ZyVKTGpgfWBKKl5MOGh4I2BWMmJLWXFjZwp6OXpedThaTTA7OGEjdzdqUE9fUzZCYXh7d1kmV0Zy
RW4ybUpZYlMpRipTYj9CJUA+Vl9APVMmeG9vSXRVei1ESksKenRuN1F0cjI/VmdLZFNCajR2KXBs
b1NmKSlvJj5aUz1tQk1WPD5YNkVLe0UobkEwTUErTERlcVIlfjg8NytiXiEyCnooNHEmQWZCMkkm
VCVOMkp2SktHNFJgS1ZlUmFWJjRWdz8qej0ofGIhOXpGRl42VFFgOGdSXkY1TWdObHtvQiRqYwp6
YmRRekBaRD8ja1U8blNITDBHXkVZc2M1QHZ2JX5rMTw9ZyNDbWRXWCkrVFgoOVY3PG4kfVJRR0Jr
QFdPe1NyPGkKel43RiZ4V2ApK0RecHQ2REspenteTmd8TVZHYHVycmNoVkpqQldpP2FYV3BjQWQl
YzZEek1ubVAje1I0IWV4RkpFCnpxcmZ+YWNtdG9UemRGUElxb1pTSmFMVWVKbFF2PXhEe2ByU3hW
U3VOQXJRMmZIa3kqKT1LMj9GNTA1aV94am98PAp6P25Yez45VWM2Nnh1fmRVbylZQWpaPnFueSsq
KWlaRitaeGJmWmVhIU8wPSl8TlliLVhsTzJhOFdiNVB3WnckPnQKej9ZVmR7OWJ7ND14X2slI1le
T3pgZ3JyPWtLfTEobTRwTkB7dHQwfmtCPGd5QitBcUBaezdtSTA8QVFYTkd6U0cyCnooK3MqVjJW
KHdZKFotWE8hayN3WHQ3UD5ULSNxTzZDTGZ+KzAoUUBZPXJuZVgpMXU8fU1lKGVvaHswPVd5JkZP
dQp6YEA1dEhvNHdvPk8/OVZyZGJOTnJlZXVUI3BabyV2c1pwUUROUUl2SS1SKlg5M3l0Yytpbyoh
bUlDMFpgUV4zSXIKeio5ZilVT0wqO3NaUGFORHFqdVBoKylsNDl7TnpXaCk+R1QlSyhLek97OWAj
Zj4mK1ZAWlZpeTBLM3lyUEQ1NiFoCnp0QShLamVfIXdLNzhPbSN4Y3NXVWpyT35aWUZvYG5iOFFu
dWslREV6YzQlcEUhMX1wcCF2YWdRVDNePnNAc2g+dQp6P0t2NnxVdGU1SGc3e3kzZCN3fiVTRTtj
e3pvJnAkSmJtQzg7LV5hazdye0NeUnJMU25NVnI1PHIwMykzZmZ6bHQKemZXX2swMyNpNCZ0NTEm
NT82YEtpRDAtS3l4WWpFO2woMGVQbjIzIz89Uko8UV49VG0rTHFEOW0/KX4taVRPY3p+CnohZlhp
TWp5WSk9cUV8cEJvIVp5Zz11JjIhNFBJKTEzaGk9I2tFS2NxQD9DM0w/OTFkMDE/TlFeUzItYld2
KD9VcAp6VkslWj1hM3R8QmNBeml3bU88djZ6b0A2Vy1zXjcqJCNwVWtTO3c1MSVmX2F+I0MmO3NF
dEM8JDJyOGBJRmVmSzgKenNRUTxHYjBXQXsqMiY0cTcteUwlbnAwNClfY2JIaHl1dXxCcl5YWlVf
djV5a1N7fWBSelEjckZgMGt5dU0oQTEzCno4e35+el4tPTN3S1NQX0c2VzFLNHFVblgweUBpRys5
UDBiS3N+fV49a3d9e3xod2N8WVV3aEQlUW5qaHQrQU99JQp6UHhienlRKCNfeFE5Xj5may1mSHwo
dCRAc3d2O2wqRkJ4RG9FVmx8SiNLbkN8UiR3Xlc/M21aQXpJeWVfVzNuYUgKenZ0NyoyJk1zXk0t
azY9OVc9bHFQalMpbTglR2hefUg5V0JpVVQkdTBaLTtsT0FUdDJ3M1lCYUEtalAzTiU/cjc/CnpJ
OXk0fFdvenU8VkR5RnlCNjhIM0FAVWoqOGFUNEt2dnBrVTtodEtDSD1qJXFhZCNSQ0p7SihpdyNY
NFlpWk1ffgp6JXs5dX5jc0tqaGA7aXpEJChSQVJZd0RGWXBCV0tEVDFedkJVMz92VldqK1ZJdWNr
JjU+ajJeSXQjPi1mK3ZeSm4Kenc9cFlpQkUlaGZeKWdNKXgmTiUrczdLcCg1PEMmQWFFKWAlYzwm
RnxiVylHcTtkKXhiayFSTnRGVUcmcXZDbUBjCnpBRUFvI0w+TCh3SHNMcVhrTExuJkBGN0dqWTN6
YExRKXJ0QWhEdGpyPVhOSlhNMzI+YGhra1c/MiRzYzBOTFVhaAp6SVplaWJofjkmKiM/YEV9cEI2
V0U4TDIzY3RgMHNpdDJFWlZgSm04eWR5fXliaFRWQz1qa3p4KEpRMi0haEBWa2wKem8rZFVTYT82
V3MxRnRTKmh4c1I3SDJpe0lTfTx0eTdOblZRM2RDWlY7TnlgfVVhN0gmX3IoWENmc0tnYXhtOHZe
CnpwMGxkPHI5dGdOcDt3YlRjaXRKKz9RTSlLXks7X31eU01tJCZWMW9yXnYoenMlP1A0S3NMTnFr
eVVkVXVrTVQkLQp6MD9QTn10ZCNINktpcl49UGB5YTElVzV7NXk+KFJaQilfQ1pNR2JRekF9PXFg
QWQybkdZM1JxcyNyY2Y/JCRNU2oKeig5QTNtaT4xUXVENzhWdl4/blFlOUBTSDt2bWB5Mj84VWY2
VHM3VjQlUjlpODlyOUduKCM4bDE4QCRwNlNJQDRyCnpHQVojPil6VXJXTTdBUmA4S3NQYWIjdGsl
e1h6SmArKzhKWSZpQ2Nud25sK08pMFhXfEg3e1dmUmx8SyVkKFpVewp6RzVkaUZVc0FgdEdqMHhD
bzVfJiVPayNeYmExKiQkZTB8ZGg5eFleSHJ+OFR3YnxsdVNDJDJCM0BgJDhhTmhUJWUKejtTbnl1
LUJCLSsjdT5mMlloMD9fTGlNMHBHREw2ZykrWnoraTE/az5DV3l2ZWZ8RWFudFNKZ3VvakdeP3ho
UkJ4CnprPWsyMm15LWQ+aSh2SUNZYldsTyFaZkBHPUljVjdpU151PFkmfjd3dHx3ZS11TEM7MjNy
akEkb0hGfHFxTWRDawp6V243TzgxZkk4YHd2KTtUb0BNUFleaSkjNzd8S2VwUFYjNT04dDZzLUQ0
a0JYPTUqQEp2I1doVlN+fmVuQFllbWgKemBaeWYzbmImNF8yMyMlcDhuentVRSVYRlFaTzB7RCVg
U3R8NHlSVj1KYihrODYrVW5sMWdzRCFOZVB+eXtrPV4lCnp4WCpBKS1uM3lrJUMlclBPKiN7dDg/
NjZDbX5RSG9XPFJDbnJjKi1US3w/QkZfWklFLXh4cXB2Jl9BOVVGfHFSTAp6THQlRENBVGRSLSFK
ZVJ9ej5AJCoxMmhHejY1dHNTdT1PWGVISXZMaGA/Vz8xNnQ0fTtMZlI0R3YjPmcweShSYj4KelE4
NipJcUJ7KmdobntfUHcqPjRpP1p0SG5gaEhhbjN+THEzMFZmVyg1Z1F4Wmx4QElKXyhoRWg+MzAw
Yk9KZXxuCnoqOWg7MHA7OG4xR2BlbDBScFpBRUduRV9YdHtkUylUaDM7XntJVz0/LUZlMno1NGcj
THZgJmVNaUo/ITRXR2RzdQp6c3ghcyZIcitXe3g2Z1dpejZ5U34mantSRHp+YCRSYzhYZDArK2NE
X1NQe3hoM2F5MWcqN1BOS0AoSyFRe1JJfSEKejZuSjclQUBEJUwrdVNRMmd3WGIqU0l4PmxOSDkk
aj5WMjBzPnNAXzVaYDAmKlY9TkB6UyZlUkJId01QV1klb3M9CnpvUFE2b091OTdsXm9ZJmJgUiVi
TVR5RWZGVmZTfXVgNCF4NXhmU04qQ189KSk2MyM/NCEmKEQzN0N9fkYmIUBSawp6WTY1Xk93WVBP
SHdHVTtRYlIxVmRLbGs4M2FGeShhVV9MO0tAY3M8ZlN3KGw/aDA4UkU3cSpjaHdqTEpnOWNTQ30K
ekpRMks5eFlNb2Fnd20xe1NaMTIzZ25Zb3RscnlnQzAjQWYxd041cUhPVzktPjZFUWpCSSRRP0c1
RzI2XkN+aT9gCnpVMz5ZdCVFcipBM0o+X2JSdkJoaW5GXkd6OHFJN0o+SWQoYUVJI0FgQiRUQU9k
NDloJU5oUzlJWHZ2a2JPbDF3Vwp6TmZjYU5Sd2hlIV9QZShPLWpWdVRYM1MraE5nU09mO3EjOT9Z
YWhNI09rZUluKGxVaChkPk8jIyFxTkcoVTJwcGYKempaKjlKPjsmOFliNzhvQWYkZ0xjWGhOOVg8
K3FgTmVBPHxzcn16Z2Z5Kl88WHBxYENyWDRnJndKeXA1WUBkPGdDCnpMSERLfkc8KkJ8ITd4Zm5O
fWBqaSFHejNgUl9APDwhc29tbGZiJmJaenN8Yig7SS0jJj9aK20leEN1QExTZnh5fgp6NjBVKGEp
Y2RCa0hWSTFDUF5yQyRnMD02RW8hNHd2V2I/aCVuTktAaWVzd1hzeT0+ZDNRYl5uKjdLRlF8ZWle
dDcKek8lZDBCaT9OcEUtfklWTy1RdmQ1Zy14KH0mJHxnb0I5Vkgjd1lTSSNWY3Ywbntgc2VVcypr
WSpQWH4jRnk+JDEoCnoocy1rN0B1MiR0c3ljQ0YqbTtne2xMN15SI28lfFZkPCh1T3lNJnQleEJF
S0o+MjEhYzBPR2c8cmNVc1pFfGRKQQp6dDtLNS0+O1koJEFaMyt3Kk5gKFVLNShgVlhmSmRCbipF
UjBKU1YkU2xgWURoO3NUdUowYHVeN2w8X1FucWJJN0YKemQ1KWQzQ0kja3dmTmt2aldaeX5wOCtz
ZWNlSk9HbXtmYHJfaFFiQ0c2THI4OUdaN3xvNXw2Y0tNRz9XO1lDWT85CnozbW5fU3lwfkojaHEm
Jm1TJmtOZmxqUWttaVcwPGQ/VG1gVmBwPkxkR05qdChfdUBLTHJlbUA1b2tabGlaZi0rNgp6X3Jn
RlNxYkV6LXZqZlhvJVZyK3kxe0olUHQtZEY9Xj9uc2o3O15pZ2BgWXlpIyEkej5CfENpUmZqbSUl
UTJaVCYKemc4LURYUSs+XkVoVEo9NjEhOFQ0RXJHJGBVVStSQUhCQFk/SWVAYyoxWDE1KVA+Si1u
M242RE5OPWQwciN+UFRJCnpKTlc/MWRSSFVTUGk4K1dqSGN1QGJIME1POUVyTT5jLWdLdU4xd0F4
ITNgOSU9Mj8mNXBYdTh2Ti1qSGRFekBIMAp6PWFBNDRVfE9nYm85NUB8T1gkQ0Z5SFolUWE/eyR7
ZGdnc3J2VlFJUWRZM1JjaGl+eWBEOz9XKzVFZGsrNWV7czEKeiNWcGNQNEVBeVpWWVkoKT9fbnhf
QCF+d1crN0NFez1WWCtDdk0hTFdJQn1ESFN8JWxwcSZXRTtCbzZjPS11bWVNCnpSKHNfNWs0Mz4t
REB+MmY1eGlYZF43IzsqJUNBJXZOb1JiKypqVFh8M3pnJE9vJGMhVEYoX3dSRUUkPTYyOGspWgp6
c3tAN2I+UVdNXmRQNSo9Z1lrLSklU3ZFZDBWfmhPO0haX296eTR1cDcpJD5lPjRJQTd5Ryh4bTVM
c1NFPzM5eX0KekxsU3BBeGkje1Azdno+YGdYZW0oR3o5fnVLbz0+djR6Sk5yNy1iZnR5KE4tQUxs
bkheJjZFNmQ3Ym0zJVUoK0VHCnpEWnRZSnVzZEglIT4tdVRGc2F1WkcrNjBqeUd1YG1zO0pIcnU/
SFdJTkVielN2I19pPT84SUpuT2xvU2F8TUNSMAp6azE0ZHpZJVA4OD1eXyR8UyEmPnore1k2RCpw
RXE3ajxKM0g9Nm1kMCNxNzNYVHFyZTRjNzxlSjE4JnZickE5QzsKemwkY3tyQVVnbl9QaUM8OWNx
LSRqIWNaWllRTlNYZzlCaEdSNlZUfHM4IThZVjlJZ2YqMFp0OTJESWVPQj9jIztjCnooe3JHTGk1
PmRiKXxSTmBeI0JTQzJ5MCFDbk5XVCVRPl5gKis5KUJMV1lPP2Z5eGNqUGhQXkAwekNgQV9hWVpX
Swp6SmVRckFvVTlCfmZvJmBUbFIpKzc0Xl9DMTAxJEVla1gmbzRkbzdHTi1QQD1NI34ob1F4c1RQ
ZUpeWDxOXkdmJHwKenZGd3p+ZlFpaH5efFlTWUdAK295VnJiez1GPGFIVWc1UWAqUkR8cW8wTFIr
Oz5zLV9nWXF2WUlVOCRNXktFMSRuCnpaeVFKNGN1RDgqO3ArMExnI3hpN0p+UmZHbyZATHNCP1o+
N2h1S1FOZ3hOMjkrdj84QUglNDQ1NWU8aEJtLUN0TAp6aDI2clRaRStnUGVUUDhzR1RFfkxCSCg3
O2lfQ2xhLUtoJl9KKF8taXZUSDsoK3V0NF9jRDEjRWY8aUF0d0p8Zz8KeiE5ZTQxb3N2PChRNVpq
VzFXT25HbWY1NGxVdiElaW9uenEre29JK0U4REhBKWBnb2BpVX1UZkVrTjcwSnU/KUx1CnpqYF81
XndRNW8zdW5nU1h7X0RrbkFUYXNFTFAzfTM/ZkE5PD1APjR5WkRwVXh5PCVgVCh4N19Acm1aM1hl
U2Z9TAp6T3Bub3U/fjFqVXtrZ2k5SjFQZz9qaXszRXFsa01PREpkITc8dXctJDNoJEhzWXNUMkJw
PDdjWjFsbyN3Yjl4eHkKeilmc3tTXnwxJT8mQ0JPdzRSanFMYkQ+Y1hnRHBAbENzM09wbDxhYXlt
bDZVczw4WXkhbnZQU2xqTE9MPGREcjAtCnpEOHlNPVMqPWhmYGI9IUJIbTk8NGc0YEMhUyhGayZz
Sjdhbj49ZShOPFZJbU8tREQjJmxzNVBpdl58JXR6Uz0xeAp6bWFSRytgen5iIU4tYURvLS1mOHhg
MTFzZE1yQkZYKns8K0l0MzFURldfaig0OTtwYUxLK3kkTFcmezFTajVrZTYKejhwSmZRZHZnPFRa
ZlNwSXBGI2cqYUZqM3FJaTkjUmxnd15LeHcrQXk8SUw9YmhGaHc2YU9DSFNpSFNoY0lNQmRMCnpQ
UTV1JlIpcVdaX0NsY1E+e0MyaWZIJWd7UlIpeHduWU5nOG1+SlAkPX5SREkmdWVMJVUmb3R8dE9V
YUQxQkhsPAp6anFLKkM5OVZwODs1JiQ7OUAtZ3hDOUxnTUg2MChAJDVVNnN3PD5QdCpLVEhKKD5A
XmR1IVZVV0otQktIUDhGPTYKejhSX1JyQ2FnbypTNjt8My1QbkJkcldpS3NSIXlxX3tkZjw8Yl5p
NGNqUFFiUDA2PyVsY1FmXnlaeG9rOyNTWm5lCnpGOShRKEZBeS1HN2tmTEspU3xuTVlqYTtWO1F7
KjRjS3JnZCRpVkZIMEdsTEpaTkl5KVQ2bitLQVBPVUI3cHhAdQp6QEtDaCY4VnJlcWgheCZCZkN6
czFle29uT01FNXttV2hIWks3UH11RGJyP35FZm5QWDcteFFWK1NCIVh3YE5yeygKekY/ZVl1WUY+
WTlpTCFnbTtsRm9lWVFed0wtMCVqYVJwISl9dERrWTVaNk5RVXVPa3BVWDJURTVLPit8dmAhRmNi
CnpjQXhXXz0/cUkzTUl1b1U9YGdqQ3FLO3VUZ2BNSnVrSU87RWdMPFl3bz83N0RRZWpxTl9MNFpf
O2h2fiNlUzJIbQp6OFAmaXdhSTRhUS0/N15mezZNNn50R3M1QHszcm9LTHFuV0FPJV5+aWp2WUl1
ODctS2FvRSlASmZSN1NWdVBaQ18KendqbXV3Kyk7Tkw2VT84Q1IhME53RV9aO1JeZUxrRzkjbnFr
K2dJPTJ5PSFGRF93blZxNEFGS0hpN2lrJDYtS31KCnpLWiF1dG9IdjY0KXt5QDV3UCgtSUR0VXJq
MUxwRm56MWBfeyEjfiZ0XnNhYUByazBpfSZARn5rPHZlcnd7S3N6KQp6aCZsKHAoP3ZXfG1qMitk
eCh5Yk03ZDQpTT97UmM9MWNEKHxIVDZuUkhTaiFOTF9+eXcraTBjZGJiQnFvNX43fmgKekZ5by17
KXZGQ3E7QEh6UTlnPXcyX2pmaUhoYkNKaCNsXig1KyQxQz1LWHI3N2k/VitQbGl3YWYxV1VgK29h
aEoxCnoxeER2SXZfLTQpXkIyS19hQVIrMTlIXztNK2dMYjt6NFphVEItdTdIOVpgU2F7ckUkNlRs
PjkxSGg5PkpFJk0xNgp6Y29ZPCMkeiQ7bld8I2UhI3QwIVp2JEtCbHleaXl9P31MO0E1ZjcxWCRg
MGcjMk1wQj53QUdLJEQxczhzNFh1NFkKekwwRWhKcWVIdz5tWm9yY2NkcUt8Y2Yra0xhR0w2Sz4h
Y195MUs5aWhhMTVjaWx2JkhjanZrb0BvcXdULSgzZ2RsCno8T2c8fExUa156cXRhcyV7ODxeXj1Y
YFFiP1hoQlREY1hMRXVzaytMdGc1UE5jeUlgQGJvZ15sXjVfQUNMayglSgp6RzNAfD88PyZDTWp7
NVVFUSlzM0ZnJGpPd2dabz9qQEomOVQ/K0prYGhBanNYZX1SaCloUl4rdzhDZCVCYk8mZ1cKemd2
RCNjVG9BcSg1Z3JhbUUoZSRjSjxlZCVfNXA8QXJBJHMhNyFwWDhiMmk/amxjQU5hMjZubj1fe3oh
KEREQEZ8Cno9K140MlVXJWYkelM0aCtjRVFhPDI9X1pUXz1gTH1KK0RVIyk8Vlo5OHxIQzl3PUs3
QDJiPGBsUlp2aUAhNElnKAp6RGwwMjFEc29AQCs3MEsjPTVmJSYqVmZrRmQ/U1EtYzxCMH0le3V+
c15QbyheWjB3VTFQfVVNV0ZiUUdtYENvXjYKejV5dV9eYXJSUWx5PCpjUjhyUG0zS2NuUDFSYnRt
TSkwTFZHdUZZPW1lOzRZUlQ3UTQ7S1pVeHM4JlhufCl8MXNDCnpvTTczTHAmOStWdCV0YGxQJDNo
WDxxIzglSyU2KXFkRElrbytzZUwrNCVFNm1OJk0pbVFNSTZyTWV3OElWcT8hTQp6I0sqX2FPaSFR
WVg4KntSdXM1WER4TnhWeXhee2F5IUtNeHpnXnU/Mkgxemh8UlFBemgkQj5te2s3S3QtTUBKVjUK
emlSaGs4RWl1MXBgPnp+YHYwcj1LPilDYWBfcXs9fm9VYHZfcXlpNSZ4NjVkeV5sfnF0SUBrKTll
aElzfnlQJmpuCnpRbT5UMVdiZm9nJnlqb3BaZzZwO2V3NG1mfExfMSVQSk0xNCg1aj1BOSl+emlT
WFIwTlAjRkVeTlFkcFo3R1huVgp6cjIoc2lYe3g1K2Z1dz5XNEJtbGFzWEc0amwocWwocEZwVVpF
I01Gb0FYZFotLWdQRGBBWXVGfVRlbyh4cT1Sa3EKemJuWEc2NzlNbmc7NncyRiMzJjtXay1SaFBm
V1B0bUtmYEh0SG1uRFZrN2pNblptJDBVUzheUCMxZVBzdSNYSU51CnpWWmBTaklYVXZ2KTY8UmVq
M2ZFdj0ydHE5Zyp6XylIUnlrPGRKY0EtNTZKUSMhYFpqSl4jMzNhaVc/cT5OVjdwYwp6PWd+dFdi
OH5aM1FebWx3dVcrOWhzOUsrMDx9JVFadyFfZXhoQiZlWSZqUkZWVXJvVE98MEl9M0R4bCRrSnxt
VHQKenROKylCbjNANzIkJDN0Rmdycit0LUMxQW9ZdmZldWx+ZXxuLX0/Tl9EZEpmPEFmekRCVD9V
SVRvY15ESXwxM0x7CnpPR3ElSDhPJCNOdmt9Kz9rVWswWEdLWV5aZSlmcTdKJH5qZ0pQKWUkciZN
Skg9I2deNEFuNkgyO3o4czg3U2FqcAp6JDlTYndmY198ZWEwZEYtSCopdk1WRlpIWDtqSUpDe3wl
XyRjI2l9KTF9KE87S3w9eFMydmx9fm47JTJHbT1ueloKekBaa2ZIe0dZTzw2JTttTSN0QUZ5YylP
aVUyZClDcHBUS35lQ0BDcG5KNU8jWFA5RTZPazEpT2t0KG9KM0R3Uz9RCnooOEdtaC0jZ3ZacSoy
Qkgzak4heXxNM30hZXo8YjVkSSRLNihuWFVMSnRrOylzeEA0UmtyQklxZ05ZNjwmYChHdAp6R0NV
bXdhV3Q0SXoqa3xIa1RYdDJjWjc2fkJrb3xkZzFHdVloXnBKUSN7ejApamQoI0pOd0QlQUdCVUF9
MTJwcFEKejBFMEV+ISo/UHpPQ09Gd1BiblAjb0w+UH5RPXtWNTVHIVd6X3xwLUAqcyhXez9EIUF9
aHVySFNnRUVpPUJFV0NICnp4JHNZV2lJPX4jNGk0XnU0Nm44U1UyWTk9PE5PPEN3fn1OWDhPUEtM
bEAyMDs+K1UobUNNMXhPPG5uP3g+MGxqRgp6IU12JlFfOz09bGhUMkVyJX5Yfn0pRitzO3QlJmM1
KTxMdiNATm5xaHIrfk5sQndkcytfYiE8Jm1oTHRfSjFoYT8Keno0ZnkwVD5VYCMpZ05AZTRtJX1z
VTA/Ul5jI01BKXhselp5Pz1TVkleREYtJjt+M147TjYrKT9oeDdrRCMrdyF9CnpsTCZhT3hMRE08
cD8/NGhkeHJqanlmPCZ8Sz5vNlErVWE8VWZCV15nUG15dDxeJmFGZTYkQmE+e2QoJHFZanZXcQp6
aCE/V0tobjw7QTw3e18rYiFDTyF4OG85MlZGR2BrZ0N7KEFrUFcpUzsqZHkya2khRGZfbklDYUkw
UGp1VTM3bDUKelk4QUAla3JRVkByRntVbnRWSj9NRk1Oa3MzYit8YF88dlhGSCVzbjduY3MwUjI0
MU0yO3BXTUtjKFdWfipaa3w5CnpnRk9GKTdyP1pDRTl5X3x6JTdDIWJHVCYmRFFnPmI0NiRTdmRw
ZT8tUGh5QCoreiZyM28oQUpfYU9SbkxWdj5Abwp6R3B9dVBeWVlsPDR4bzs9b3JaP1M5JntrT0dn
QEp5Yys7ZmBjJWVJfE9+YntEN2VQRHI8PitUZjVxRFJQdiVkazMKejN6VFc/YXRwc3F0UFZLNyZ+
eVNLVE1PMjFsOFB5P3NWQzEwPz9lTFUxcnJmbW5YaGJWMX5lNW8qTU5tQHIqdGNECnolJDFUM0Rl
IW94QmhiNUpYeWsofShpUzc0c1Z8RyhXZGhGP1FCZCRKJXRqIVZudExFZmRVfD5RN2hxKDFjNGhf
YAp6S21xdV9nX3w0aUEmSllLMlV5VWBgQVYrZGd1N35pRE5xekBJblEkST87cUdwXzRxVVhnUGpt
OyRLRXs+SHdCJSsKeldeLVY5T2U3PmQ7fVN4SFNIKnN3bT5wRHY1RSRsIyN1ZHp3emArcm10dzUo
UjtJUi0rJnsyUlhIMFlBUitlNmlVCnpqMkVYNEFfbDJeLTxtPmBFeFAmTWZSJiVzP3A+KC1wcjY2
S2l9bDBAMHNDZFFwKnk2aUMwTmokYilWQD42a3tOOAp6SGJmUzUjTH5kSmg3dk8mc1c5cShPLW9C
bENIP0BBNSYkeVRDSX52MTt0XzZCRmcocjZpLUlEcWJYcyp8Jn5fRyEKelZkLUpFemY2U3k/Ym98
OW0mdDYtdHB4Zj1mb1RufmdtU2oyME8kN2pAIzkrVGNSO1h6ZkF7Yi0yMislb2RBX09gCnp5aSs4
eUBYZWNfVVdVSi0zZihlPVpSbCRYeiNLSGBKa0RwR0xCIztARkRzOXAwKV8hYXF0dXNYP3BKKlg2
N1pIbgp6Nil6OHVIT3hKVE1GUjYwZk5sJERwT2Ijb05iNEZWNj8lalE/TkdqP2YhQmxmYC1TQldo
WWpIfm84cU49YXxqZCQKemR5I29LZj5Tajc0K2wjY0Y9QlYxJjJmS2V0aWZrd2IjK3pRWEk+Vloy
K3tDPDgyJHo9NHdSdSE2Nig9e3l4WFdFCnpARlVUMUBZT0E/dFc9P3lOdzdPNXFSVmMqNTVUfEdv
YThfLUtZLX1+dHBiPTB1fCZaWGd+TFFzN0BtcF9hJigtNwp6ITNFSWMkKDFOb0dteTxOSSlUfEoj
Y0pyNmZ1cjxBUHJhNmMxSXAoS1lUZSNDalQ8cWhlT3tTLTNaVVlnWDRJfEMKencrYXc0QEVgME1J
WGh0ck40XyZXN05SI0lKcVBzUThUeCY4IUAqWHE+M2pJeFRZYXA/d31AWFM8I3hAVUFgcjQrCno0
LVheMGZCbW5RZjFTYTw7XjFGdEBHbUklN1pVenxrQSNFITk2I0JWXjFSOT0xM15VfnZAfj5vJE5o
SGFAJjVwfApDSD4mZGgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL3N2Zy1mb250cy13aXRob3V0
LW1pc3NpbmctZ2x5cGgtZXhwZWN0ZWQuY2hlY2tzdW0gYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS13aW4vc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4
cGVjdGVkLmNoZWNrc3VtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmMGEzNjlhZDdmOWE3NWZjZDY5NGY4M2M2ZjZj
ZjljNGFjMzAxOTgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vc3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4cGVj
dGVkLmNoZWNrc3VtCkBAIC0wLDAgKzEgQEAKK2VjYjQyY2ZhZmFmNWIzNWJjNTA4MTk3ODA1ZDFi
NzcyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2lu
Zy1nbHlwaC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4v
c3ZnL2N1c3RvbS9zdmctZm9udHMtd2l0aG91dC1taXNzaW5nLWdseXBoLWV4cGVjdGVkLnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45ZDUyMzc1MGEwM2IwZGIzNzQ3NzYyNzA2MWRmNmJkODMwYTNiYzVhCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCA2OTg4CnpjbWVITWRwTUsqfEclWjg1flR5Pl5yV09oNm1xdUNE
eU1Sczk0bSlyNz5RdytRaENaM0omI2spNis9ISNqKzw/SQp6QnplU1FaNVoxc3A7QEVaNDRkKTJg
K29vVTlqQD02Ji00N1EtKnI4SS1rPEJmSzhOP2BiJFp8VCFeO2pmVFF+M0IKejM7QDheaXg8djEw
ZjYqUjBJJmAheUFCLUx3UjR2PzBJMk1eYz1uVl9PZCojNjNFOWIoRWImSDU+WWwkSHteZkN7CnpY
OFQrM0psbGNHOCRIYmp3R005SSl2YjV3T01kYkolKVlaXz4tUn17WXU+ZGgoKTg1Kzg0fXZ8dHZv
JlEtcms0Qwp6cCRfP28yQXJmSHhvVDtNN2RIQG1lRHNTUGdyZENCUVFvWW0tKjYmQXBVanM3bDEk
ZzsrRHJoemsxREdSQj5BbnwKejB7cngoYX4mWGl1cFIqSlp1JT5TZ2pZVnAyfGZzN19FZkFqPiNq
fHlwZTtRQmp2Xm8jR1NrYVExJSZOeV84TTB5Cnpmd300XlBIRlhRd0xwYGQ7T1FNcjw0UHNENXpo
TTlvaGRVdGN0eUs7QktIeihPR1pMNmcmbHF4e2F0JXFfMkM1Ygp6QHt6bCNGMWgocERCeCtTQFhT
NU4jS2EtUGZiYE1rKlA0LUpzQEA/PGE+dEZXeTRrUEs0flFfbVh8Ynp9VU5tRXYKekhXKio5OFNw
TkE4KER2eTZQI0M2XlhCUlNrNHdeVjFTRj5KWVB7UndWLV9QZ0U1SVEwZ0JmKTZUYyVUTmFtbXhI
Cnp5ZkUmTkk+cXU3WmZDRGkjOG53YHU1K2Q/JENAWT4wLWJnYU9nWG9aJmRKIWl5N1Zgbj59flhq
OEAwV3F3KDBERwp6XjBSeE0zNGg7fHVQJVB0PGU9dENHS1cpa2w4WVI1JDJmJDdSYj1JdUdfWGw4
TVlpO0lgfDtCZT8qeSRZPEA+OCkKelIyfnc1N3dBVSMqUDljfmImcE5HTypBfmxRfkJBdTQhJGtz
YVRyWkhHVjwjIVMqJl5hIXJrcGFfeXV7JXdya2tvCno+SnY3K0gqQ0dwUisoPUhFNihxZFFTRT4y
M1VsNyFJcHp9aFh7QGwjPjVTJnlLd1JVOHlTKGtMP2hwSHB4eyVRJgp6M3QyREI5MiRvRjBvfjh4
KCQoZ05qYWcrXnhPcTtMeXwjIW0qR0MyQUlWYmszKj02PiZqQ2ZRI1o5Rkc9aT4wfjMKemB0S3xA
dz1MSHBvMG5uJD08QTUkRlU2KWFpPzZEej9qSkhoUEZjYCRsdyZJPz9pNElkeyFtIVp3fjRGOCNQ
dUtWCnpuWkomI3BRXl5OVzhIMEh5SG5EVUV8JUlnV3YxLXJ3LX05SntyS2o+WCs9RyNgJUNMZSVl
N2ZNckR5fiQyRkElNgp6YXBMKnw0d1Y1TmMzbEdoQCpRemZfZDlSZ3c/I2MwKzs3XkRhTFBWNk5o
V0UzXyp2NHFDdDUpZGdTRCNfRGQjakEKekNsNDItRTFoeEZVPSVGaXA3TSs4bT1ZWTx3aDx2XiUx
I2c0c0RwSzAzNjkhYztlVmZfeFhtV0l8TmoyIUpifkheCno5cEU+OyFGfDhjX3J2JDxjcjdeMnN8
e15oVjM/Ryk5a1lvPik9S0EwQytQeSgxQX1Vc2M4QW9yVDYmPVN6dSFCZQp6WmRAUn4+QW1wZ3dK
Wk04ampRbTM1aXQhZ2lUQ2IyNmJrUz1uNCUyRHhLdEg4eVclZFIqZlkqSGNeKyFqVkYzZjEKekVi
NFomU0dsXm81RUspeFRORjV+SVI/NEt5JTZ7VFV1UTJVWSVmUV9jfk4hNk42fmB2SnxfayNFQGxl
UF4zYWNfCno4YTRMbTBvd3Z2X1NBVHdocTJ+e1N4ZTNkJkFFWXhpZSFCeW88PFEkWFA0Rz1Ofnxt
Q2VSIUd0PTZoQVNVWFlIfAp6Jl5LNFZCO3IrTFlnVmlMQjgxaUV3VXwxPClXeTV2bSNmOzM2Z2U9
N3QhZVdxTzRFU1peTlEkK2Z9RW5jM0BhcS0KejMxWmx3T0pPT1V3QkI4SGR9b21ORU9QZUQ0U1RI
KnlqTHdnMChkIzghSVlBWipXQ2F4K0chdEImVXBmeitxWGVgCnpJKGFXTCZ4TmZzKDdDZykmLXti
KmVXMjZIT0QxKGNXJUJ4IWdDbF83RGNqcHgkZWF8bTRna0heRGNZdHJSY1lyZAp6KSVtJEZkMTJv
cm0jbFZoeGJUTXpPPk5yO29IViR6MG9aMmVDazNxRTBSQDBwPnYjWEBMLWxWdVhOKWdrIV8xI1gK
emBCISVqaGdadGFOenNeei0lJEpHclBDJGJqb0hMJjN9MjxsbnMhK0g9UW1wTVF9MiotM3wwXmg4
IWlnWFVuUGtNCnphTTZSREZmM0NYS2JPLVBFVXNqNGk3Z0tEcG03IXNZU0Aqcmo8NGVjPER+ajdk
aDNtQ0VgOWdtQnFzTn5YYih6UAp6QXkkaVhxPTQ3fFleZ1N7dTB0ciVCbEJrIzh+UldtUmwhTXFG
V18jd0NRMWt1UTNHejRjQStCNG4oQlUoeX08fkcKelBfbDw4KXdCOUB7X1hNbG5UJGBwPGYtb0FA
eVNGeXEle0t4QXRVRCsjPVB0KyYrUlVPWlJKflNeVnExPFdkPTFVCnpERFNQeDglbWlOQkFec21V
KkdHa2I5MHs5X2dmWGNtdFFrQlcpSmdeY3k3JiRpMTx2MV5UbFdjUXVUSyF5LT9wPAp6JCVLaGNX
eiF4amR4YHkwN2RgUGt4TnEtWEdxbGAxPV9vNEM5QFFxY2lmKyRNUzFAY1NwfV5xQD5DTihSZFlN
XyUKej85akowPiY0KVRpLUFTREZoK0dQekc8TzdZYmlNNUJuJkR0RT43JiREeURrZWc1PUh+PDU3
bndaTmd7JFJla3NYCnpOX0R3ZGU1QyN6VTBOcmk8dVclPCN7MndrKV5JVDdYd2lWSF9aZDs+RiZA
IXV4ZVg/cnVXbFEwR0VUd0JZVUp+Uwp6Q0AoWjhFUUZ6ZUEtSWJwREMlSmVBTUR7QD1PWnxvUm5l
Sk13I01BQ0E8ZiNaOzY+KVJCSGpwfElGSXo7c0BoVisKemRUWWUodXdULXA2fHVaPkxSUVNoN05T
fCFoWClKc2s1QzYwUHBNO1k8U24rKWdZPmZWSTI+fkozQSNHdzJHOUhICno7a3wpczl5clFwbk4t
cSpmYXV6aDhvY0s9dERhdClLbGRzcEN6IXcpJUNBPGFaTXZ8NGEjditGclI/eWUyNWhDKQp6JmRl
TDZMWjBwTDxzS3ptNVkwflFVTU5kKlYqRnwqajllbGY7Yk1rZjt3SEIydnViUXxTPExtMSh8VHla
VEA3bXcKemFhODxpVHJOZlMyNVpac3dhMG9BJGFrTWQkbFE/IU1ealQpd2sjUkUhKEJ7OyspR0Q9
NVZOKFgzSWtfOHJsLTJoCnomQzAlJCsqMjVUWWJOQXRpZjNlZkNKYU8wVHRrY342MFpPQEFyQ3NR
OT5Ia0hAb1c5ZE89eUJedlp0SFdDLWI3fQp6anVHQyp2LS09WS0jeFE3M0Nfc1VUWTg2TzdMVU1j
a3hLS3clQyl9ckYmQzw/Y1c1JDByYDloODx8aXMjJF9UTSkKekRENCR3LTR8JDUoWlRLfTxzJHcw
Kkd7bG5kX2RnZzt8KHF4aEIzRiZWfHYlbjFVfCR5N2dnaSVfPCRQfUtRKEp9Cno2XzBJU3VxYnZE
N3Z7MEdkRTNjKCMoNX5uRnRhJUVCRip8c0klMHE3Tz4rbXZ4d293XiNRNGIlJDFQMmdIVyhBPgp6
KSFXfTJsfHdJSnElaXVKSDRpVVE4P0s3M0xBNVUhWlZJS0tPU1JwYG5wJFl4SX19PUNWemRZQGEw
cz1veSlSSUkKejl2ViF0cGM+eUVyQHVhTThGbUJyRjRiaT9aPXxnSlN+R1JiaWRDU0Y1fWlCN0E9
QndmN3ZkaCg7azR8QCVZd3dQCnpndURaKnF3ZldlUT9kOHlMR0dkIyorbEcmd348eFQlbVlgX1JV
RjwhI3tZaFdGWUs0c3A2QEBNKCsqJG5ATVRNegp6aCZXTzdeTnloRzt3Q2xVVXpfaGw/SHJRe3xL
ZkZYWFprQ2RrPStefSZ1cH56Kkl2LVdfN3ome0p9ZDhmdWtITz0KekU2PSpERWVebCNDeVJEYSgo
MFIzSFBgPVBObyE+TDJISClkeFlkPkEhRXEmXmxWfD9DbFJpMitOfmFHJmZ6Rmh0Cnp4em4pe3I4
dlVwaXAqO202XmU4QFR3T2p6TU1YdFAtJHltPXlqVXp3TUhtNGYmSUAxdCZYMEd4S3Y4SCE2ZGN5
Uwp6QW9yd2g9MktVU3I+QUZ6eD5lbFRzKVdnOEtDe3tsQndebSlgcV9aWXw2SnlSYnVaPXhzfk08
Z2x2dXt6bioyU3gKenh3I3BTb2IkbSloZ3ohSmdxUSlIelhuNU87UTUhU0YqQz5nNDNyRGFxaz5U
PWlAd0gwNX4tbWZMTS1HYVpJdUNfCnpaZlZuZ2w5RSNkWDQhS14/R1dSd1pRLTl6N2Yram5qWCNN
dS08d3dGT0lqN01EZ0ZLWjglKSN5S2VNUktIOHJ1Swp6QlVYTnY+THE1OFF9ZEkzOTFlJH5WcEJS
O1Yxbj09IzJKZmU+d3JRKUJXalApcTgjblooI01JT2o4djJLb3s1KTEKeldGYHJ7SGJickVobilh
QT1ncjRDZXBAI3QrdlhuNDQpZ04jI0stY2RZQ1QmRXgkOzB3blhvZnx6JjFQYVQ3NiRxCnp1RCkr
RTFXbStVQWg5M2BCMDtpQCFxaioka2ZjUlpna25rKXNyTjMpRGEpcklTajVfYEhNKUojTllEKU1M
NWY9ZAp6czE8bEJkeTV4T0U+cnJCV3UyJFYjfFhjVDNXZD07ZiQoYEUyXn02QHxCKXNRPXN2Mz5v
cyRKbCtTbXdzaWxxUSsKeilqdjllTCskKzEmWC1QO09IeWghMTBUeSRIYE5wczcxaEAyckVMSG4y
WTcmOGZKazJ1Klheaj9efmw2UU4lZW9pCnpBYCZZRF8hJTF3XylXJUlVbzJ0RWpKNihnPkNvekhP
aXxEWDNrfGkzNk1VNzM3Zn5xR3p1eUFee2ZeJlpJYClCKwp6OW58cT1mfHNmN1NtKUs9KndQWmNJ
TG0rISpRTkRMbjFMcypLVGFwViU1Uys2eChscW1iQT59RjBzKj8/K0BpXmUKejZKYWMoUlprb014
U2crezxzRztac19ma3N6S19nVEYkdUc/UiFjaVNqUCpyfTFuakEpRExhbDcwTnZ5NVM8JihjCnpU
cXdebD0lX0VUZ0dqVXtMPlRRUWZZKFReYzRyS09PSUA7X0liSTJ5ZzU4UyQmWVM0elJfVTRHamxL
KztXMEJBYwp6R3R+NFNsVzEtNm1WcH42ZCpOPXN4SUlDcSlCOGFURj50UF43N0wqQmNlcHxnYDxe
cX5NQ3pxM1lJJU5nbkxrfmYKekRpQkwzNl5AWFk/QHVSdz9EVjNvVSQqQDh1Q2JlQHM+QjN3JVpk
NiUtN3lBKGZTaENBUkA3LXcyYTxNQ1Ymcks/CnpOc21IfTJtX35jMD81VHlWQCY0SlZ5NGZCeGtV
d2VkMGI3O0dEeSkhNWt4Y0tXYz9GfVAhOHpLYGxETWcrVHJeMQp6ckd4eHd2STVFKC0xQ2A9e31L
bmxUUUcwd207b2FBenc1IXxCPGhEKUctcnB8RGNvY0xLdkVfcVZJJHslWEBMKkIKekk9MHd4R25m
cDdwQHgkaTkhZj1JWXlrV1lIPzYwfFNTSFNZPkNNKTByX3BHJE9haDhhWnwyMiNzcFUrXk1tU1hz
Cno+cDE/U1Nzbm9JUHckU2d2WWJQYWN7NzFmNnlRTih1fGBKUDYyI0hteDNKVTMtT2UwdlM/Yz5D
YkVUdFJafX1eNAp6KG9gfVhMNWVTTWhEKXB5YVA5M0xGWTl+fFBGTChYQSEtMG56c3stRlAoNmNP
WGNoX0gpNTV8NkpGUnJeRHxuWSEKekEzfkx7eDJHaS08XjNpVHZYPCFvUTRUUD9LKE9JJDZxckdp
VXdzX0gqa1YrTVh8eW5BTT1YYXtPTWw2YjB4b1F6CnpfMnVmNU9DWWBrMCY1UTNmYXExU090KHF9
LXdFVFp7TExDe3BwQV8tKCF4I1MjbHB9fnpXfFJHSlJVWDJCKE0qLQp6dWA3THpwSXd5IWZTUH4y
aUw5NUdtdjNvcE98NThFU2BiVDtsYXApMD9TPEQqK3cxcFNfOX14VkBmJCQ2T3ZGY20Kem9we21l
aCM+JGx7PTYxa2MhZEhRZik5XmtOdjx8SVlVKzF1M2tYNnNNeUZ5fU44dTJvYVMxSGBGM1BgRXpS
PFpqCnpaTU96azxtKjMoeVc3Y0dNZW9PbnZyVCl8ZlM7aGxoY1VGP2l0Wm1MZUJmWFIleyp+dzwt
eTAjKGpkJHBvVmY/KQp6Yi1GWT4/ant6dEloWkV9ME0ldCReX1IzQVQoYGh9Sm41QTRVaTBhO2J0
Y1YmQHpSQlNQPDlXSE1yRDkpPz1IXiUKejJ8PlQhO2cwZCVHKkhRejx7PHtrRTdPb1FfVkV4KWIh
NTlRMj03WUpBdnNTWXJ3MWdHSVchcys+WnokZiRgZkE5CnpPMFJaRkppcCg+SChgTSk2MigjS0ta
VW43RyZCJjJMPXArWSs3MFM9eUtxbTxyfD4xSnlSWVFPb1JqK0tKbW5NMAp6YTtzdzIrVWkjdWh6
T2pvTHxPUiNRJigrbT9jeThAbHBnZEhzSio2fT10MT8tKGIyP0o1ZUtyaU94OGZKQEVDWmMKelNk
eiVDY2VHeWlOMT8+MmBveGl1ayk+aE1zO2s5QTxBMCU+cDh7RmcqVmhQJnNSVyRnMlh5QThlRV5g
Rm83MChwCnpAQ3J6dnVgemhuXldIbG9pOWBhRHo7e2hGNEFLQ0xtY1hNekw3RGJWVCVIOG94bHRE
JXtePlZgI1A3LUEhJHhhbQp6QVN2THpBfmZAV05Xe1R2VSFsNjN2I192T1RrMyY7Uis9MyE4ZTx1
aiZvTXtOaiNyYzxpaDNaYyROQ3h2WiNGZUYKekBJVmBOZ2gtNiRyS0FBVyl8Xmg8ZkFafDEoYj1H
WiFlekUyVEdYeE4zeVFlaE16bn1oYXcqYXEzITNgVU04QDJCCnpKSEphfkhUK2Z8Y2RWNX5LJC1M
JjJhPlhYKjw5MWhkaiZGMSQrMj44K0lhLUM8Rk1QSEA5S1BSaVI0PWxOeTBePgp6X1FgS2RDUj5Y
YGooWnNNS0U2c3VFelZ8X0h5PXo8MU5ufHkrN0lmdzspfjhCI205fCpsJiNuYjEqJCE0N3gmd0AK
emp6a0lXXzdJZ2JqM3VvfT1HTTNmYmlxSldrcChnPUdMazx+V1lLKk08aThTV3NlNSZtMit8KGgy
K3BweyYhRnUjCnorbGw9S2o1ZVMqRm1YfXZ4UTYjJmFgTmhrWClwPiZOUmFnRGxVQXRNTUJgLXZD
e0E2VXpIMzk0RlR6SElMU2F4egp6ZzBPKEs2MVp2dWxFPmZhJkhALSFLb05GRiVxQHk1OTdfX3Zl
Pnt+RihEZi1DamF+eF84eGJ7PHJlWHEkJmRiKTsKeis8PyhrQzRKKVpRfmAqWm5SKjY7VlV3WHdO
Ui02WWFseURgb181RHJSaH5zbUBLa3wlPFp4JGFuUnEwXlFoa2tJCnp2YkhqU0JwTztGMnNjQVJ4
eFopWWtpLW58eD4zQigtUDB2I0FBQSo8cH4jUm0lWTt9YkFaZj4hKHNGJU9Sbi1zIwp6IWJDRHlA
VUtWJENJYWttZngxaSRveHpZVzdtNDZMKT5nPUMyTH04fWs8JCpqa242SFF4YU10PENySXF1IT5n
XmIKelFveGdrZjMjV3NfMV8tPFVoKTYjeVlKdCV8R1Z+b0B2bnh6QUB+MFdhJSk/RjFhciRaSVpP
PXJta2hYZyZmI3BgCklYfWBQdzFaU0wqRWRUJWoKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL3N2
Zy1mb250cy13aXRob3V0LW1pc3NpbmctZ2x5cGgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0td2luL3N2Zy9jdXN0b20vc3ZnLWZvbnRzLXdpdGhvdXQtbWlzc2lu
Zy1nbHlwaC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1NzlhZDM4Y2JlYjJjZTkyYmQ5OTk1
ZDMxYjRlNzk5MmVhYzE5YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLXdpbi9zdmcvY3VzdG9tL3N2Zy1mb250cy13aXRob3V0LW1pc3NpbmctZ2x5cGgt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjkgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYw
MA0KKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDANCitsYXllciBhdCAoMCwwKSBz
aXplIDgwMHgyNzUNCisgIFJlbmRlckJsb2NrIHtodG1sfSBhdCAoMCwwKSBzaXplIDgwMHgyNzUN
CisgICAgUmVuZGVyQm9keSB7Ym9keX0gYXQgKDgsMjEpIHNpemUgNzg0eDIzOA0KKyAgICAgIFJl
bmRlckJsb2NrIHtoMX0gYXQgKDAsMCkgc2l6ZSA3ODR4MzcNCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDExNngzNg0KKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAxMTY6ICJUZXN0IGZvciAiDQorICAgICAgICBSZW5kZXJJbmxpbmUge2F9IGF0ICgw
LDApIHNpemUgMTQ0eDM2IFtjb2xvcj0jMDAwMEVFXQ0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDExNiwwKSBzaXplIDE0NHgzNg0KKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgx
MTYsMCkgd2lkdGggMTQ0OiAiQnVnIDQyMzUyIg0KKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAo
MCw1OCkgc2l6ZSA3ODR4MjANCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDQ3NHgxOQ0KKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NzQ6ICJGb2xs
b3dpbmcgdGV4dCBzaG91bGQgYmUgcmVuZGVyZWQgYXMgdXN1YWwuIE9ubHkgXCJBXCIgaGFzIGEg
Z2x5cGggaW4gU1ZHIEZvbnQuIg0KKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCw5NCkgc2l6
ZSA3ODR4MTYNCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1eDE1
DQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1OiAiWFhBIg0KKyAgICAgIFJl
bmRlckJsb2NrIHtwfSBhdCAoMCwxMjYpIHNpemUgNzg0eDE2DQorICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNXgxNQ0KKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzNTogIlhBWCINCisgICAgICBSZW5kZXJCbG9jayB7cH0gYXQgKDAsMTU4KSBzaXpl
IDc4NHgxNg0KKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzV4MTUN
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU6ICJBWFgiDQorICAgICAgUmVu
ZGVyQmxvY2sge3B9IGF0ICgwLDE5MCkgc2l6ZSA3ODR4MTYNCisgICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMzeDE1DQorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDMzOiAiWFhYIg0KKyAgICAgIFJlbmRlckJsb2NrIHtwfSBhdCAoMCwyMjIpIHNpemUg
Nzg0eDE2DQorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzOHgxNQ0K
KyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzODogIkFBQSINCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66691</attachid>
            <date>2010-09-07 01:36:41 -0700</date>
            <delta_ts>2010-09-07 20:56:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41423-20100907173639.patch</filename>
            <type>text/plain</type>
            <size>10722</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZjdlNzI4ZDM5Y2U3OGZiNGFkMjViNGZlOGMxNGQzOTkzM2U0OWNjLi41OGZkYTk5
OWFlN2IzOWU3OWIwZWE4ODk3YmUxMGEyNTQzYzVlYjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDktMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxpbmcgdW5kZXJs
aW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQxNDIzCisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Nj
cmlwdC10ZXN0cy9URU1QTEFURS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbC4KKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5q
czogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2ZTUwZmZkNWQw
ZTgzM2JmNjVlNDI1MzViNTJjZTc5MjllODVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2Ny
aXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxpbmctYmFja3NwYWNlLWJldHdl
ZW4tbGluZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWE2YzAyNjgxMTU2YmM1ZGQ5YjMzOGMzZmYzNmI4NGRk
YTZmZjRmZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c2NyaXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzCkBAIC0wLDAg
KzEsMTkgQEAKKworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDE0MjM6IFNwZWxsaW5nIG1hcmtlciBz
aG91bGQgcmVtYWluIGFmdGVyIGhpdHRpbmcgYSBiYWNrc3BhY2Uga2V5LicpOworCit2YXIgdGVz
dFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5z
ZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCit0ZXN0Um9v
dC5pbm5lckhUTUwgPSAiPGRpdiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFibGU+PGRpdiBpZD0n
Zmlyc3QnPkZpcnN0IGxpbmUsPC9kaXY+PGRpdiBpZD0nc2Vjb25kJz5TZWNhbmQgbGluZSwgc2hv
dWxkIGJlIHNlY29uZDwvZGl2PjwvZGl2PiI7CisKK3ZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgidGFyZ2V0Iik7Cit0YXJnZXQuZm9jdXMoKTsKKwordmFyIHNlbCA9IGRvY3Vt
ZW50LmdldFNlbGVjdGlvbigpOworc2VsLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxpbmUi
KTsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCJEZWxldGUiLCBmYWxzZSk7CitzZWwubW9kaWZ5KCJt
b3ZlIiwgInJpZ2h0IiwgImxpbmUiKTsKK3Nob3VsZEJlKCJ0ZXh0SW5wdXRDb250cm9sbGVyLmhh
c1NwZWxsaW5nTWFya2VyKDAsIDYpIiwgIjEiKTsKK3Rlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAi
bm9uZSI7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5l
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJh
Y2tzcGFjZS1iZXR3ZWVuLWxpbmVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWQ5ODBlM2E2
OTU0OThhODc2ZDBlZTRlNzY3ZGNjMTBmM2M2OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorRm9yIEJ1ZyA0MTQyMzogU3BlbGxpbmcgbWFy
a2VyIHNob3VsZCByZW1haW4gYWZ0ZXIgaGl0dGluZyBhIGJhY2tzcGFjZSBrZXkuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3Bl
bGxpbmdNYXJrZXIoMCwgNikgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZDIwZTk2Y2EzYTM2ZWIxOGY2YWFkZGE0ZmU2ODg5YzQxZTM0N2ExCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3Bh
Y2UtYmV0d2Vlbi1saW5lcy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUu
Y3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNo
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+
PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3Rz
L3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBhNjg1Mzc1NDgzZDdiNWJhODBiMDg5NjZmZDJmMjZkZmVjYWNiYmUz
Li5mOTNmMDBlMzc4Y2YzZjRjMmVkZjNjNzlmYTEzZGY4Zjg2ODRhODk0IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBA
CisyMDEwLTA5LTA3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsaW5nIHVuZGVy
bGluZSBnZXRzIGxvc3Qgb24gYmFja3NwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD00MTQyMworCisgICAgICAgIG1vdmVQYXJhZ3JhcGhzKCkgZGlk
IG1ha2UgYSBET00gcmFuZ2UgYnkgc2VyaWFsaXppbmcgc291cmNlIHJhbmdlCisgICAgICAgIGFu
ZCBkZXNlcmlhbGl6aW5nIGl0IGJhY2ssIGFuZCBtYXJrZXJzIGFyZSBnb25lIGR1cmluZyB0aGUg
cHJvY2Vzcy4KKyAgICAgICAgVGhpcyBjaGFuZ2UgbWFya3MgdGhhdCBET00gcmFuZ2UgYWdhaW4u
CisKKyAgICAgICAgVGVzdDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0
d2Vlbi1saW5lcy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5k
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdy
YXBocyk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpyZW1vdmVNYXJrZXJzQmVmb3JlTW92aW5nUGFyYWdyYWgpOgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJNb3ZpbmdQYXJhZ3JhaCk6CisgICAg
ICAgICogZWRpdGluZy9FZGl0b3IuaDoKKwogMjAxMC0wOS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwIGIvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAppbmRleCBhYTM3MTkzZDRlMjkyNTBjZTE2
ZWM4NmEwM2M5ZWI2MDMwOWY3MWQyLi40ZWQ0ZGFkMmJkZjUyODE2YTUyNjRiNWVmMGE3MDhjY2Fm
YTI0ODgxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQu
Y3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKQEAgLTM2
LDYgKzM2LDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50RnJh
Z21lbnQuaCIKICNpbmNsdWRlICJFZGl0b3JJbnNlcnRBY3Rpb24uaCIKKyNpbmNsdWRlICJGcmFt
ZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAj
aW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgpAQCAtOTM5LDYgKzk0MCw3IEBAIHZvaWQgQ29tcG9z
aXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3Rh
cnRPZlBhcmFncmFwCiAgICAgLy8gRklYTUUgKDUwOTg5MzEpOiBXZSBzaG91bGQgYWRkIGEgbmV3
IGluc2VydCBhY3Rpb24gIldlYlZpZXdJbnNlcnRBY3Rpb25Nb3ZlZCIgYW5kIGNhbGwgc2hvdWxk
SW5zZXJ0RnJhZ21lbnQgaGVyZS4KICAgICAKICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oVmlzaWJs
ZVNlbGVjdGlvbihzdGFydCwgZW5kLCBET1dOU1RSRUFNKSk7CisgICAgZG9jdW1lbnQoKS0+ZnJh
bWUoKS0+ZWRpdG9yKCktPnJlbW92ZU1hcmtlcnNCZWZvcmVNb3ZpbmdQYXJhZ3JhaChlbmRpbmdT
ZWxlY3Rpb24oKSk7CiAgICAgZGVsZXRlU2VsZWN0aW9uKGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh
bHNlKTsKIAogICAgIEFTU0VSVChkZXN0aW5hdGlvbi5kZWVwRXF1aXZhbGVudCgpLm5vZGUoKS0+
aW5Eb2N1bWVudCgpKTsKQEAgLTk2OCw3ICs5NzAsOSBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21t
YW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3Jh
cAogICAgIHNldEVuZGluZ1NlbGVjdGlvbihkZXN0aW5hdGlvbik7CiAgICAgQVNTRVJUKGVuZGlu
Z1NlbGVjdGlvbigpLmlzQ2FyZXRPclJhbmdlKCkpOwogICAgIGFwcGx5Q29tbWFuZFRvQ29tcG9z
aXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21lbnQs
IHRydWUsIGZhbHNlLCAhcHJlc2VydmVTdHlsZSwgZmFsc2UsIHRydWUpKTsKLSAgICAKKworICAg
IGRvY3VtZW50KCktPmZyYW1lKCktPmVkaXRvcigpLT5tYXJrTWlzc3BlbGxpbmdzQWZ0ZXJNb3Zp
bmdQYXJhZ3JhaChlbmRpbmdTZWxlY3Rpb24oKSk7CisKICAgICAvLyBJZiB0aGUgc2VsZWN0aW9u
IGlzIGluIGFuIGVtcHR5IHBhcmFncmFwaCwgcmVzdG9yZSBzdHlsZXMgZnJvbSB0aGUgb2xkIGVt
cHR5IHBhcmFncmFwaCB0byB0aGUgbmV3IGVtcHR5IHBhcmFncmFwaC4KICAgICBib29sIHNlbGVj
dGlvbklzRW1wdHlQYXJhZ3JhcGggPSBlbmRpbmdTZWxlY3Rpb24oKS5pc0NhcmV0KCkgJiYgaXNT
dGFydE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVTdGFydCgpKSAmJiBpc0Vu
ZE9mUGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVTdGFydCgpKTsKICAgICBpZiAo
c3R5bGVJbkVtcHR5UGFyYWdyYXBoICYmIHNlbGVjdGlvbklzRW1wdHlQYXJhZ3JhcGgpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCmluZGV4IDExNzI5MmM1MTRkMWUzZGEzMjA0ZjQ3MDA3OWEzMDRjN2JmYWVjNTUuLmFi
M2Q4Y2RhNDU5YTYyMzZkYmNmMzhhNmM0YjE0ZmJlY2ViNjJiNDQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBA
IC0yMzUzLDYgKzIzNTMsMjkgQEAgYm9vbCBFZGl0b3I6OnNwZWxsaW5nUGFuZWxJc1Nob3dpbmco
KQogICAgIHJldHVybiBjbGllbnQoKS0+c3BlbGxpbmdVSUlzU2hvd2luZygpOwogfQogCit2b2lk
IEVkaXRvcjo6cmVtb3ZlTWFya2Vyc0JlZm9yZU1vdmluZ1BhcmFncmFoKGNvbnN0IFZpc2libGVT
ZWxlY3Rpb24gJm1vdmluZ1NlbGVjdGlvbikKK3sKKyAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVk
UmFuZ2UgPSBtb3ZpbmdTZWxlY3Rpb24udG9Ob3JtYWxpemVkUmFuZ2UoKTsKKyAgICBpZiAoc2Vs
ZWN0ZWRSYW5nZSkgeworICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPnJl
bW92ZU1hcmtlcnMoc2VsZWN0ZWRSYW5nZS5nZXQoKSwgRG9jdW1lbnRNYXJrZXI6OlNwZWxsaW5n
KTsKKyAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5yZW1vdmVNYXJrZXJz
KHNlbGVjdGVkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpHcmFtbWFyKTsKKyAgICB9Cit9
CisKK3ZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJNb3ZpbmdQYXJhZ3JhaChjb25z
dCBWaXNpYmxlU2VsZWN0aW9uICZtb3ZpbmdTZWxlY3Rpb24pCit7CisgICAgYm9vbCBtYXJrU3Bl
bGxpbmcgPSBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOworICAgIGJvb2wgbWFy
a0dyYW1tYXIgPSBtYXJrU3BlbGxpbmcgJiYgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CisK
KyAgICBpZiAobWFya1NwZWxsaW5nKSB7CisgICAgICAgIFJlZlB0cjxSYW5nZT4gdW51c2VkRmly
c3RNaXNzcGVsbGluZ1JhbmdlOworICAgICAgICBtYXJrTWlzc3BlbGxpbmdzKG1vdmluZ1NlbGVj
dGlvbiwgdW51c2VkRmlyc3RNaXNzcGVsbGluZ1JhbmdlKTsKKyAgICB9CisKKyAgICBpZiAobWFy
a0dyYW1tYXIpCisgICAgICAgIG1hcmtCYWRHcmFtbWFyKG1vdmluZ1NlbGVjdGlvbik7Cit9CisK
IHZvaWQgRWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmdUb1Bvc2l0aW9uKGNvbnN0
IFZpc2libGVQb3NpdGlvbiAmcCkKIHsKICNpZiBQTEFURk9STShNQUMpICYmICFkZWZpbmVkKEJV
SUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJEKQpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5o
CmluZGV4IDc4ZTg5YjQ4NWVhOTgyNzM2ZjI3NTg1M2VkYWYwNmYxNDIwY2UyMjIuLjhhNzUxMTky
Njc1MjQyNzcyOTk5YzBlYWQyN2VhNGI1MzE1ZDUwYzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuaAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTMxNCw2ICsz
MTQsMTAgQEAgcHVibGljOgogCiAgICAgLy8gVGhpcyBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgbWFj
IHdoZXJlIHBhc3RlIGlzIGltcGxlbWVudGVkIHByaW1hcmlseSBhdCB0aGUgV2ViS2l0IGxldmVs
LgogICAgIHZvaWQgcGFzdGVBc1BsYWluVGV4dEJ5cGFzc2luZ0RIVE1MKCk7CisgCisgICAgLy8g
SW52b2tlZCBmcm9tIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocygpCisgICAg
dm9pZCByZW1vdmVNYXJrZXJzQmVmb3JlTW92aW5nUGFyYWdyYWgoY29uc3QgVmlzaWJsZVNlbGVj
dGlvbiYpOworICAgIHZvaWQgbWFya01pc3NwZWxsaW5nc0FmdGVyTW92aW5nUGFyYWdyYWgoY29u
c3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgTm9kZSogZmluZEV2ZW50VGFyZ2V0RnJvbShj
b25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNvbnN0OwogcHJpdmF0ZToKZGlmZiAt
LWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXgg
MGY1OGZkMzU1YTY2ODk4OTc1OTVhMTU2MDM3MjlhMjljMDk0NTViMy4uNjVkYjQzMWM2OGFiZjkx
Zjk2Yzc1ZmFkOGZmMmIyOTlkZjYzN2FkYyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wOS0w
NyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVsbGluZyB1bmRlcmxpbmUgZ2V0cyBs
b3N0IG9uIGJhY2tzcGFjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDE0MjMKKworICAgICAgICBTd2l0Y2hlZCB0byB1c2UgYSBhbmNob3JOb2RlIG9m
IHRoZSBzZWxlY3Rpb24gaW5zdGVhZCBvZiBhIGZvY3VzZWQKKyAgICAgICAgbm9kZSBmb3IgZmlu
ZXIgY29udHJvbCBvZiBub2RlIHNlbGVjdGlvbiBpbiBzcGVsbGluZ05vZGUoKToKKyAgICAgICAg
V2l0aCB0aGUgZm9jdXNlZCBub2RlLCB3ZSBjYW5ub3Qgc2VsZWN0IG90aGVyIG5vZGVzIGJ1dCB0
aGUgZmlyc3QKKyAgICAgICAgY2hpbGQgb2YgdGhhdCBub2RlLiBJbiBzb21lIGNhc2UsIHdlIG5l
ZWQgdG8gaW5zcGVjdCB0aGVzZS4KKworICAgICAgICBUaGUgQVBJIGlzIG9ubHkgZm9yIExheW91
dFRlc3RzLCBhbmQgdGhlIGNoYW5nZSBpcyBjb21wYXRpYmxlIGZvcgorICAgICAgICBleGlzdGlu
ZyB0ZXN0IGNhc2VzLgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgor
ICAgICAgICAoc3BlbGxpbmdOb2RlKToKKwogMjAxMC0wOS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCmluZGV4IDYzMTVkNDM4ZGYxMzhlYmUyNzEyZWZlMjM5OGI1ODhiZTE1YzA0
YjkuLjhkNzJjNDYxOWFhMjA4ZTQ4ZjYyYzAxODA0MzhhNjdhZjljZjU4MjAgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KQEAgLTEzNjgsNyArMTM2OCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNv
dXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogCiBzdGF0aWMgTm9kZSog
c3BlbGxpbmdOb2RlKEZyYW1lKiBjb3JlRnJhbWUpCiB7Ci0gICAgTm9kZSogZm9jdXNlZE5vZGUg
PSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2RlKCk7CisgICAgTm9kZSogZm9jdXNl
ZE5vZGUgPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLT5zdGFydCgpLm5vZGUoKTsKICAgICBpZiAo
IWZvY3VzZWROb2RlIHx8ICFmb2N1c2VkTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJu
IDA7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66839</attachid>
            <date>2010-09-07 20:56:10 -0700</date>
            <delta_ts>2010-09-07 21:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41423-20100908125608.patch</filename>
            <type>text/plain</type>
            <size>12106</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZjdlNzI4ZDM5Y2U3OGZiNGFkMjViNGZlOGMxNGQzOTkzM2U0OWNjLi41OGZkYTk5
OWFlN2IzOWU3OWIwZWE4ODk3YmUxMGEyNTQzYzVlYjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDktMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxpbmcgdW5kZXJs
aW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQxNDIzCisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Nj
cmlwdC10ZXN0cy9URU1QTEFURS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbC4KKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5q
czogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2ZTUwZmZkNWQw
ZTgzM2JmNjVlNDI1MzViNTJjZTc5MjllODVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2Ny
aXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxpbmctYmFja3NwYWNlLWJldHdl
ZW4tbGluZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM2NjNkMjMzNDJkMDE3OGExYmJkODEzNWQ2YzdkNmNi
MDY4ZGE5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c2NyaXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzCkBAIC0wLDAg
KzEsNjUgQEAKKworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDE0MjM6IFNwZWxsaW5nIG1hcmtlciBz
aG91bGQgcmVtYWluIGFmdGVyIGhpdHRpbmcgYSBiYWNrc3BhY2Uga2V5LicpOworCit2YXIgdGVz
dFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5z
ZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCitmdW5jdGlv
biBzZXR1cCh0YXJnZXROYW1lKQoreworICAgIHRlc3RSb290LmlubmVySFRNTCA9ICI8ZGl2IGlk
PSciICsgdGFyZ2V0TmFtZSArICInIGNvbnRlbnRFZGl0YWJsZT48ZGl2Pk9LPC9kaXY+PGRpdj5P
SyB6eiBPSzwvZGl2PjwvZGl2PiI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0
TmFtZSkuZm9jdXMoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Cit9CisK
K2Z1bmN0aW9uIGZpcnN0TGluZVRleHQoKQoreworICAgIHJldHVybiB0ZXN0Um9vdC5maXJzdENo
aWxkLmZpcnN0Q2hpbGQuaW5uZXJUZXh0LnRyaW0oKTsKK30KKworZnVuY3Rpb24gdGVzdFdpdGhE
ZWxldGUoKQoreworICAgIHdpbmRvdy5zZWwgPSBzZXR1cCgidGFyZ2V0MSIpOworCisgICAgc2Vs
Lm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxpbmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDM7IGkrKykgLy8gMyBmb3IgWyJPSywgInp6IiwgIk9LIl0ubGVuZ3RoCisgICAgICAgIHNl
bC5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJ3b3JkIik7CisKKyAgICBzaG91bGRCZSgiZmly
c3RMaW5lVGV4dCgpIiwgIidPSyciKTsKKyAgICBzaG91bGRCZSgic2VsLmFuY2hvck5vZGUuZGF0
YSIsICInT0sgenogT0snIik7CisgICAgc2hvdWxkQmUoInRleHRJbnB1dENvbnRyb2xsZXIuaGFz
U3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOworCisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJs
ZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJEZWxldGUi
LCBmYWxzZSk7CisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJyaWdodCIsICJsaW5lIik7IC8vIE1v
dmVzIHRvIHRoZSBsaW5lIGVuZGluZyB0byBmb2N1cyB0aGUgIk9LIHp6IE9LIiB0ZXh0LgorCisg
ICAgc2hvdWxkQmUoInNlbC5hbmNob3JOb2RlLmRhdGEiLCAiJ09LIHp6IE9LJyIpOworICAgIHNo
b3VsZEJlKCJmaXJzdExpbmVUZXh0KCkiLCAiJ09LT0sgenogT0snIik7CisgICAgc2hvdWxkQmUo
InRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOworfQor
CitmdW5jdGlvbiB0ZXN0V2l0aEZvcndhcmREZWxldGUoKQoreworICAgIHdpbmRvdy5zZWwgPSBz
ZXR1cCgidGFyZ2V0MSIpOworCisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxp
bmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykgLy8gMyBmb3IgWyJPSywgInp6
IiwgIk9LIl0ubGVuZ3RoCisgICAgICAgIHNlbC5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJ3
b3JkIik7CisKKyAgICBzaG91bGRCZSgiZmlyc3RMaW5lVGV4dCgpIiwgIidPSyciKTsKKyAgICBz
aG91bGRCZSgic2VsLmFuY2hvck5vZGUuZGF0YSIsICInT0sgenogT0snIik7CisgICAgc2hvdWxk
QmUoInRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOwor
CisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJsZWZ0IiwgImxpbmUiKTsKKyAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiRm9yd2FyZERlbGV0ZSIsIGZhbHNlKTsKKyAgICBzZWwubW9kaWZ5KCJtb3Zl
IiwgInJpZ2h0IiwgImxpbmUiKTsgLy8gTW92ZXMgdG8gdGhlIGxpbmUgZW5kaW5nIHRvIGZvY3Vz
IHRoZSAiT0sgenogT0siIHRleHQuCisKKyAgICBzaG91bGRCZSgiZmlyc3RMaW5lVGV4dCgpIiwg
IidPS09LIHp6IE9LJyIpOworICAgIHNob3VsZEJlKCJzZWwuYW5jaG9yTm9kZS5kYXRhIiwgIidP
SyB6eiBPSyciKTsKKyAgICBzaG91bGRCZSgidGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGlu
Z01hcmtlcigzLCAyKSIsICIxIik7Cit9CisKK3Rlc3RXaXRoRGVsZXRlKCk7Cit0ZXN0V2l0aEZv
cndhcmREZWxldGUoKTsKK3Rlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVu
LWxpbmVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWQ5ODBlM2E2OTU0OThhODc2ZDBlZTRl
NzY3ZGNjMTBmM2M2OGNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwxMCBAQAorRm9yIEJ1ZyA0MTQyMzogU3BlbGxpbmcgbWFya2VyIHNob3VsZCByZW1h
aW4gYWZ0ZXIgaGl0dGluZyBhIGJhY2tzcGFjZSBrZXkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIHRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMCwg
NikgaXMgMQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctYmFj
a3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDIwZTk2
Y2EzYTM2ZWIxOGY2YWFkZGE0ZmU2ODg5YzQxZTM0N2ExCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5l
cy5odG1sCkBAIC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8v
RFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2pzLXRlc3Qtc2VsZWN0aW9uLXNoYXJlZC5qcyI+PC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tz
cGFjZS1iZXR3ZWVuLWxpbmVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCBhNjg1Mzc1NDgzZDdiNWJhODBiMDg5NjZmZDJmMjZkZmVjYWNiYmUzLi4xOTk2NWZkYjQzMzY5
OTgxZTJjZTVmZGFjNGI4NThmMzBjYTdhNTI5IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEwLTA5LTA3ICBN
T1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHNwZWxsaW5nIHVuZGVybGluZSBnZXRzIGxvc3Qg
b24gYmFja3NwYWNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00MTQyMworCisgICAgICAgIG1vdmVQYXJhZ3JhcGhzKCkgZGlkIG1ha2UgYSBET00gcmFu
Z2UgYnkgc2VyaWFsaXppbmcgc291cmNlIHJhbmdlCisgICAgICAgIGFuZCBkZXNlcmlhbGl6aW5n
IGl0IGJhY2ssIGFuZCBtYXJrZXJzIGFyZSBnb25lIGR1cmluZyB0aGUgcHJvY2Vzcy4KKyAgICAg
ICAgVGhpcyBjaGFuZ2UgbWFya3MgdGhhdCBET00gcmFuZ2UgYWdhaW4uCisKKyAgICAgICAgVGVz
dDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyk6CisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpjbGVhck1p
c3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
cjo6bWFya01pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIpOiBBZGRlZC4KKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5oOgorCiAyMDEwLTA5LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvQ29t
cG9zaXRlRWRpdENvbW1hbmQuY3BwCmluZGV4IGFhMzcxOTNkNGUyOTI1MGNlMTZlYzg2YTAzYzll
YjYwMzA5ZjcxZDIuLjM1NmE3MTcwNjIxYTEyODY4ZWQwMmQzOTVmZjVkZDE0OWZkNmVmOTYgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKKysrIGIv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMzYsNiArMzYsNyBA
QAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgog
I2luY2x1ZGUgIkVkaXRvckluc2VydEFjdGlvbi5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5j
bHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJJ
bmxpbmVUZXh0Qm94LmgiCkBAIC05MzksNiArOTQwLDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6bW92ZVBhcmFncmFwaHMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydE9mUGFyYWdy
YXAKICAgICAvLyBGSVhNRSAoNTA5ODkzMSk6IFdlIHNob3VsZCBhZGQgYSBuZXcgaW5zZXJ0IGFj
dGlvbiAiV2ViVmlld0luc2VydEFjdGlvbk1vdmVkIiBhbmQgY2FsbCBzaG91bGRJbnNlcnRGcmFn
bWVudCBoZXJlLgogICAgIAogICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KHN0YXJ0LCBlbmQsIERPV05TVFJFQU0pKTsKKyAgICBkb2N1bWVudCgpLT5mcmFtZSgpLT5lZGl0
b3IoKS0+Y2xlYXJNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGVuZGluZ1NlbGVjdGlvbigpKTsK
ICAgICBkZWxldGVTZWxlY3Rpb24oZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UpOwogCiAgICAg
QVNTRVJUKGRlc3RpbmF0aW9uLmRlZXBFcXVpdmFsZW50KCkubm9kZSgpLT5pbkRvY3VtZW50KCkp
OwpAQCAtOTY4LDcgKzk3MCw5IEBAIHZvaWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJh
Z3JhcGhzKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgc3RhcnRPZlBhcmFncmFwCiAgICAgc2V0RW5k
aW5nU2VsZWN0aW9uKGRlc3RpbmF0aW9uKTsKICAgICBBU1NFUlQoZW5kaW5nU2VsZWN0aW9uKCku
aXNDYXJldE9yUmFuZ2UoKSk7CiAgICAgYXBwbHlDb21tYW5kVG9Db21wb3NpdGUoUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6OmNyZWF0ZShkb2N1bWVudCgpLCBmcmFnbWVudCwgdHJ1ZSwgZmFsc2Us
ICFwcmVzZXJ2ZVN0eWxlLCBmYWxzZSwgdHJ1ZSkpOwotICAgIAorCisgICAgZG9jdW1lbnQoKS0+
ZnJhbWUoKS0+ZWRpdG9yKCktPm1hcmtNaXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGVuZGluZ1Nl
bGVjdGlvbigpKTsKKwogICAgIC8vIElmIHRoZSBzZWxlY3Rpb24gaXMgaW4gYW4gZW1wdHkgcGFy
YWdyYXBoLCByZXN0b3JlIHN0eWxlcyBmcm9tIHRoZSBvbGQgZW1wdHkgcGFyYWdyYXBoIHRvIHRo
ZSBuZXcgZW1wdHkgcGFyYWdyYXBoLgogICAgIGJvb2wgc2VsZWN0aW9uSXNFbXB0eVBhcmFncmFw
aCA9IGVuZGluZ1NlbGVjdGlvbigpLmlzQ2FyZXQoKSAmJiBpc1N0YXJ0T2ZQYXJhZ3JhcGgoZW5k
aW5nU2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCkpICYmIGlzRW5kT2ZQYXJhZ3JhcGgoZW5kaW5n
U2VsZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCkpOwogICAgIGlmIChzdHlsZUluRW1wdHlQYXJhZ3Jh
cGggJiYgc2VsZWN0aW9uSXNFbXB0eVBhcmFncmFwaCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMTE3Mjky
YzUxNGQxZTNkYTMyMDRmNDcwMDc5YTMwNGM3YmZhZWM1NS4uMjI0MWY3OWQ5NjhiNzkwOTU1MjQ4
MDViMDlmM2U1MTIwZjVhNDMzZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKKysrIGIvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTIzNTMsNiArMjM1MywyOSBA
QCBib29sIEVkaXRvcjo6c3BlbGxpbmdQYW5lbElzU2hvd2luZygpCiAgICAgcmV0dXJuIGNsaWVu
dCgpLT5zcGVsbGluZ1VJSXNTaG93aW5nKCk7CiB9CiAKK3ZvaWQgRWRpdG9yOjpjbGVhck1pc3Nw
ZWxsaW5nc0FuZEJhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiAmbW92aW5nU2VsZWN0
aW9uKQoreworICAgIFJlZlB0cjxSYW5nZT4gc2VsZWN0ZWRSYW5nZSA9IG1vdmluZ1NlbGVjdGlv
bi50b05vcm1hbGl6ZWRSYW5nZSgpOworICAgIGlmIChzZWxlY3RlZFJhbmdlKSB7CisgICAgICAg
IGZyYW1lKCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+cmVtb3ZlTWFya2VycyhzZWxlY3RlZFJh
bmdlLmdldCgpLCBEb2N1bWVudE1hcmtlcjo6U3BlbGxpbmcpOworICAgICAgICBmcmFtZSgpLT5k
b2N1bWVudCgpLT5tYXJrZXJzKCktPnJlbW92ZU1hcmtlcnMoc2VsZWN0ZWRSYW5nZS5nZXQoKSwg
RG9jdW1lbnRNYXJrZXI6OkdyYW1tYXIpOworICAgIH0KK30KKwordm9pZCBFZGl0b3I6Om1hcmtN
aXNzcGVsbGluZ3NBbmRCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24gJm1vdmluZ1Nl
bGVjdGlvbikKK3sKKyAgICBib29sIG1hcmtTcGVsbGluZyA9IGlzQ29udGludW91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKCk7CisgICAgYm9vbCBtYXJrR3JhbW1hciA9IG1hcmtTcGVsbGluZyAmJiBp
c0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKKworICAgIGlmIChtYXJrU3BlbGxpbmcpIHsKKyAg
ICAgICAgUmVmUHRyPFJhbmdlPiB1bnVzZWRGaXJzdE1pc3NwZWxsaW5nUmFuZ2U7CisgICAgICAg
IG1hcmtNaXNzcGVsbGluZ3MobW92aW5nU2VsZWN0aW9uLCB1bnVzZWRGaXJzdE1pc3NwZWxsaW5n
UmFuZ2UpOworICAgIH0KKworICAgIGlmIChtYXJrR3JhbW1hcikKKyAgICAgICAgbWFya0JhZEdy
YW1tYXIobW92aW5nU2VsZWN0aW9uKTsKK30KKwogdm9pZCBFZGl0b3I6Om1hcmtNaXNzcGVsbGlu
Z3NBZnRlclR5cGluZ1RvUG9zaXRpb24oY29uc3QgVmlzaWJsZVBvc2l0aW9uICZwKQogewogI2lm
IFBMQVRGT1JNKE1BQykgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVk
KEJVSUxESU5HX09OX0xFT1BBUkQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
LmggYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggNzhlODliNDg1ZWE5ODI3MzZmMjc1
ODUzZWRhZjA2ZjE0MjBjZTIyMi4uNzk1NTJiNDU2YjlkMDM0YzRkYzRiYmVkYzM0NDUxMDk3OGE0
MjZlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3IuaApAQCAtMzE0LDYgKzMxNCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIFRo
aXMgaXMgb25seSBjYWxsZWQgb24gdGhlIG1hYyB3aGVyZSBwYXN0ZSBpcyBpbXBsZW1lbnRlZCBw
cmltYXJpbHkgYXQgdGhlIFdlYktpdCBsZXZlbC4KICAgICB2b2lkIHBhc3RlQXNQbGFpblRleHRC
eXBhc3NpbmdESFRNTCgpOworIAorICAgIHZvaWQgY2xlYXJNaXNzcGVsbGluZ3NBbmRCYWRHcmFt
bWFyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKKyAgICB2b2lkIG1hcmtNaXNzcGVsbGluZ3NB
bmRCYWRHcmFtbWFyKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKTsKIAogICAgIE5vZGUqIGZpbmRF
dmVudFRhcmdldEZyb20oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKSBjb25zdDsK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMv
Q2hhbmdlTG9nCmluZGV4IDBmNThmZDM1NWE2Njg5ODk3NTk1YTE1NjAzNzI5YTI5YzA5NDU1YjMu
LjY1ZGI0MzFjNjhhYmY5MWY5NmM3NWZhZDhmZjJiMjk5ZGY2MzdhZGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMTAtMDktMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxpbmcg
dW5kZXJsaW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQxNDIzCisKKyAgICAgICAgU3dpdGNoZWQgdG8gdXNl
IGEgYW5jaG9yTm9kZSBvZiB0aGUgc2VsZWN0aW9uIGluc3RlYWQgb2YgYSBmb2N1c2VkCisgICAg
ICAgIG5vZGUgZm9yIGZpbmVyIGNvbnRyb2wgb2Ygbm9kZSBzZWxlY3Rpb24gaW4gc3BlbGxpbmdO
b2RlKCk6CisgICAgICAgIFdpdGggdGhlIGZvY3VzZWQgbm9kZSwgd2UgY2Fubm90IHNlbGVjdCBv
dGhlciBub2RlcyBidXQgdGhlIGZpcnN0CisgICAgICAgIGNoaWxkIG9mIHRoYXQgbm9kZS4gSW4g
c29tZSBjYXNlLCB3ZSBuZWVkIHRvIGluc3BlY3QgdGhlc2UuCisKKyAgICAgICAgVGhlIEFQSSBp
cyBvbmx5IGZvciBMYXlvdXRUZXN0cywgYW5kIHRoZSBjaGFuZ2UgaXMgY29tcGF0aWJsZSBmb3IK
KyAgICAgICAgZXhpc3RpbmcgdGVzdCBjYXNlcy4KKyAgICAgICAgCisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZS5tbToKKyAgICAgICAgKHNwZWxsaW5nTm9kZSk6CisKIDIwMTAtMDktMDYgIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCA2MzE1ZDQzOGRmMTM4ZWJlMjcxMmVm
ZTIzOThiNTg4YmUxNWMwNGI5Li44ZDcyYzQ2MTlhYTIwOGU0OGY2MmMwMTgwNDM4YTY3YWY5Y2Y1
ODIwIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0xMzY4LDcgKzEzNjgsNyBAQCBzdGF0aWMg
aW5saW5lIFdlYkRhdGFTb3VyY2UgKmRhdGFTb3VyY2UoRG9jdW1lbnRMb2FkZXIqIGxvYWRlcikK
IAogc3RhdGljIE5vZGUqIHNwZWxsaW5nTm9kZShGcmFtZSogY29yZUZyYW1lKQogewotICAgIE5v
ZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5kb2N1bWVudCgpLT5mb2N1c2VkTm9kZSgpOwor
ICAgIE5vZGUqIGZvY3VzZWROb2RlID0gY29yZUZyYW1lLT5zZWxlY3Rpb24oKS0+c3RhcnQoKS5u
b2RlKCk7CiAgICAgaWYgKCFmb2N1c2VkTm9kZSB8fCAhZm9jdXNlZE5vZGUtPnJlbmRlcmVyKCkp
CiAgICAgICAgIHJldHVybiAwOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66840</attachid>
            <date>2010-09-07 21:04:40 -0700</date>
            <delta_ts>2010-09-10 09:57:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-41423-20100908130438.patch</filename>
            <type>text/plain</type>
            <size>12567</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3ZjdlNzI4ZDM5Y2U3OGZiNGFkMjViNGZlOGMxNGQzOTkzM2U0OWNjLi41OGZkYTk5
OWFlN2IzOWU3OWIwZWE4ODk3YmUxMGEyNTQzYzVlYjFjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDktMDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxpbmcgdW5kZXJs
aW5lIGdldHMgbG9zdCBvbiBiYWNrc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQxNDIzCisKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Nj
cmlwdC10ZXN0cy9URU1QTEFURS5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbC4KKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL3NjcmlwdC10ZXN0cy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5q
czogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2Ut
YmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctYmFja3NwYWNlLWJldHdlZW4tbGluZXMuaHRtbDogQWRkZWQuCisKIDIw
MTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zY3JpcHQtdGVzdHMvVEVNUExBVEUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU2ZTUwZmZkNWQw
ZTgzM2JmNjVlNDI1MzViNTJjZTc5MjllODVkNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc2NyaXB0LXRlc3RzL1RFTVBMQVRFLmh0bWwKQEAgLTAsMCAr
MSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3Qv
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
KzxzY3JpcHQgc3JjPSJZT1VSX0pTX0ZJTEVfSEVSRSI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc2Ny
aXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zY3JpcHQtdGVzdHMvc3BlbGxpbmctYmFja3NwYWNlLWJldHdl
ZW4tbGluZXMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDM2NjNkMjMzNDJkMDE3OGExYmJkODEzNWQ2YzdkNmNi
MDY4ZGE5MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c2NyaXB0LXRlc3RzL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmpzCkBAIC0wLDAg
KzEsNjUgQEAKKworZGVzY3JpcHRpb24oJ0ZvciBCdWcgNDE0MjM6IFNwZWxsaW5nIG1hcmtlciBz
aG91bGQgcmVtYWluIGFmdGVyIGhpdHRpbmcgYSBiYWNrc3BhY2Uga2V5LicpOworCit2YXIgdGVz
dFJvb3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKK2RvY3VtZW50LmJvZHkuaW5z
ZXJ0QmVmb3JlKHRlc3RSb290LCBkb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOworCitmdW5jdGlv
biBzZXR1cCh0YXJnZXROYW1lKQoreworICAgIHRlc3RSb290LmlubmVySFRNTCA9ICI8ZGl2IGlk
PSciICsgdGFyZ2V0TmFtZSArICInIGNvbnRlbnRFZGl0YWJsZT48ZGl2Pk9LPC9kaXY+PGRpdj5P
SyB6eiBPSzwvZGl2PjwvZGl2PiI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGFyZ2V0
TmFtZSkuZm9jdXMoKTsKKyAgICByZXR1cm4gZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7Cit9CisK
K2Z1bmN0aW9uIGZpcnN0TGluZVRleHQoKQoreworICAgIHJldHVybiB0ZXN0Um9vdC5maXJzdENo
aWxkLmZpcnN0Q2hpbGQuaW5uZXJUZXh0LnRyaW0oKTsKK30KKworZnVuY3Rpb24gdGVzdFdpdGhE
ZWxldGUoKQoreworICAgIHdpbmRvdy5zZWwgPSBzZXR1cCgidGFyZ2V0MSIpOworCisgICAgc2Vs
Lm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxpbmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDM7IGkrKykgLy8gMyBmb3IgWyJPSywgInp6IiwgIk9LIl0ubGVuZ3RoCisgICAgICAgIHNl
bC5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJ3b3JkIik7CisKKyAgICBzaG91bGRCZSgiZmly
c3RMaW5lVGV4dCgpIiwgIidPSyciKTsKKyAgICBzaG91bGRCZSgic2VsLmFuY2hvck5vZGUuZGF0
YSIsICInT0sgenogT0snIik7CisgICAgc2hvdWxkQmUoInRleHRJbnB1dENvbnRyb2xsZXIuaGFz
U3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOworCisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJs
ZWZ0IiwgImxpbmVib3VuZGFyeSIpOworICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJEZWxldGUi
LCBmYWxzZSk7CisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJyaWdodCIsICJsaW5lIik7IC8vIE1v
dmVzIHRvIHRoZSBsaW5lIGVuZGluZyB0byBmb2N1cyB0aGUgIk9LIHp6IE9LIiB0ZXh0LgorCisg
ICAgc2hvdWxkQmUoInNlbC5hbmNob3JOb2RlLmRhdGEiLCAiJ09LIHp6IE9LJyIpOworICAgIHNo
b3VsZEJlKCJmaXJzdExpbmVUZXh0KCkiLCAiJ09LT0sgenogT0snIik7CisgICAgc2hvdWxkQmUo
InRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOworfQor
CitmdW5jdGlvbiB0ZXN0V2l0aEZvcndhcmREZWxldGUoKQoreworICAgIHdpbmRvdy5zZWwgPSBz
ZXR1cCgidGFyZ2V0MSIpOworCisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJmb3J3YXJkIiwgImxp
bmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDM7IGkrKykgLy8gMyBmb3IgWyJPSywgInp6
IiwgIk9LIl0ubGVuZ3RoCisgICAgICAgIHNlbC5tb2RpZnkoIm1vdmUiLCAiZm9yd2FyZCIsICJ3
b3JkIik7CisKKyAgICBzaG91bGRCZSgiZmlyc3RMaW5lVGV4dCgpIiwgIidPSyciKTsKKyAgICBz
aG91bGRCZSgic2VsLmFuY2hvck5vZGUuZGF0YSIsICInT0sgenogT0snIik7CisgICAgc2hvdWxk
QmUoInRleHRJbnB1dENvbnRyb2xsZXIuaGFzU3BlbGxpbmdNYXJrZXIoMywgMikiLCAiMSIpOwor
CisgICAgc2VsLm1vZGlmeSgibW92ZSIsICJsZWZ0IiwgImxpbmUiKTsKKyAgICBkb2N1bWVudC5l
eGVjQ29tbWFuZCgiRm9yd2FyZERlbGV0ZSIsIGZhbHNlKTsKKyAgICBzZWwubW9kaWZ5KCJtb3Zl
IiwgInJpZ2h0IiwgImxpbmUiKTsgLy8gTW92ZXMgdG8gdGhlIGxpbmUgZW5kaW5nIHRvIGZvY3Vz
IHRoZSAiT0sgenogT0siIHRleHQuCisKKyAgICBzaG91bGRCZSgiZmlyc3RMaW5lVGV4dCgpIiwg
IidPS09LIHp6IE9LJyIpOworICAgIHNob3VsZEJlKCJzZWwuYW5jaG9yTm9kZS5kYXRhIiwgIidP
SyB6eiBPSyciKTsKKyAgICBzaG91bGRCZSgidGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGlu
Z01hcmtlcigzLCAyKSIsICIxIik7Cit9CisKK3Rlc3RXaXRoRGVsZXRlKCk7Cit0ZXN0V2l0aEZv
cndhcmREZWxldGUoKTsKK3Rlc3RSb290LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisKK3ZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVu
LWxpbmVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzg0MWYzMjFlMGZlOWM5OTI0ODMxOWMw
Zjk5YTBmYjg4ZDE3MzkyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyMSBAQAorRm9yIEJ1ZyA0MTQyMzogU3BlbGxpbmcgbWFya2VyIHNob3VsZCByZW1h
aW4gYWZ0ZXIgaGl0dGluZyBhIGJhY2tzcGFjZSBrZXkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxs
IHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBM
RVRFIi4KKworCitQQVNTIGZpcnN0TGluZVRleHQoKSBpcyAnT0snCitQQVNTIHNlbC5hbmNob3JO
b2RlLmRhdGEgaXMgJ09LIHp6IE9LJworUEFTUyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxs
aW5nTWFya2VyKDMsIDIpIGlzIDEKK1BBU1Mgc2VsLmFuY2hvck5vZGUuZGF0YSBpcyAnT0sgenog
T0snCitQQVNTIGZpcnN0TGluZVRleHQoKSBpcyAnT0tPSyB6eiBPSycKK1BBU1MgdGV4dElucHV0
Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtlcigzLCAyKSBpcyAxCitQQVNTIGZpcnN0TGluZVRl
eHQoKSBpcyAnT0snCitQQVNTIHNlbC5hbmNob3JOb2RlLmRhdGEgaXMgJ09LIHp6IE9LJworUEFT
UyB0ZXh0SW5wdXRDb250cm9sbGVyLmhhc1NwZWxsaW5nTWFya2VyKDMsIDIpIGlzIDEKK1BBU1Mg
Zmlyc3RMaW5lVGV4dCgpIGlzICdPS09LIHp6IE9LJworUEFTUyBzZWwuYW5jaG9yTm9kZS5kYXRh
IGlzICdPSyB6eiBPSycKK1BBU1MgdGV4dElucHV0Q29udHJvbGxlci5oYXNTcGVsbGluZ01hcmtl
cigzLCAyKSBpcyAxCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1iYWNrc3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJk
MjBlOTZjYTNhMzZlYjE4ZjZhYWRkYTRmZTY4ODljNDFlMzQ3YTEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVu
LWxpbmVzLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9J
RVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVl
dCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvanMtdGVzdC1zZWxlY3Rpb24tc2hhcmVkLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2
IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvc3BlbGxpbmct
YmFja3NwYWNlLWJldHdlZW4tbGluZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
L2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CmluZGV4IGE2ODUzNzU0ODNkN2I1YmE4MGIwODk2NmZkMmYyNmRmZWNhY2JiZTMuLjE5OTY1ZmRi
NDMzNjk5ODFlMmNlNWZkYWM0Yjg1OGYzMGNhN2E1MjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTAtMDkt
MDcgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdvb2dsZS5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgc3BlbGxpbmcgdW5kZXJsaW5lIGdldHMg
bG9zdCBvbiBiYWNrc3BhY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQxNDIzCisKKyAgICAgICAgbW92ZVBhcmFncmFwaHMoKSBkaWQgbWFrZSBhIERP
TSByYW5nZSBieSBzZXJpYWxpemluZyBzb3VyY2UgcmFuZ2UKKyAgICAgICAgYW5kIGRlc2VyaWFs
aXppbmcgaXQgYmFjaywgYW5kIG1hcmtlcnMgYXJlIGdvbmUgZHVyaW5nIHRoZSBwcm9jZXNzLgor
ICAgICAgICBUaGlzIGNoYW5nZSBtYXJrcyB0aGF0IERPTSByYW5nZSBhZ2Fpbi4KKworICAgICAg
ICBUZXN0OiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVz
Lmh0bWwKKworICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzKToKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OmNs
ZWFyTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjptYXJrTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcik6IEFkZGVkLgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmg6CisKIDIwMTAtMDktMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcCBiL1dlYkNvcmUvZWRpdGlu
Zy9Db21wb3NpdGVFZGl0Q29tbWFuZC5jcHAKaW5kZXggYWEzNzE5M2Q0ZTI5MjUwY2UxNmVjODZh
MDNjOWViNjAzMDlmNzFkMi4uMzU2YTcxNzA2MjFhMTI4NjhlZDAyZDM5NWZmNWRkMTQ5ZmQ2ZWY5
NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAor
KysgYi9XZWJDb3JlL2VkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1hbmQuY3BwCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50
LmgiCiAjaW5jbHVkZSAiRWRpdG9ySW5zZXJ0QWN0aW9uLmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1
ZGUgIklubGluZVRleHRCb3guaCIKQEAgLTkzOSw2ICs5NDAsNyBAQCB2b2lkIENvbXBvc2l0ZUVk
aXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25zdCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQ
YXJhZ3JhcAogICAgIC8vIEZJWE1FICg1MDk4OTMxKTogV2Ugc2hvdWxkIGFkZCBhIG5ldyBpbnNl
cnQgYWN0aW9uICJXZWJWaWV3SW5zZXJ0QWN0aW9uTW92ZWQiIGFuZCBjYWxsIHNob3VsZEluc2Vy
dEZyYWdtZW50IGhlcmUuCiAgICAgCiAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxl
Y3Rpb24oc3RhcnQsIGVuZCwgRE9XTlNUUkVBTSkpOworICAgIGRvY3VtZW50KCktPmZyYW1lKCkt
PmVkaXRvcigpLT5jbGVhck1pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIoZW5kaW5nU2VsZWN0aW9u
KCkpOwogICAgIGRlbGV0ZVNlbGVjdGlvbihmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CiAK
ICAgICBBU1NFUlQoZGVzdGluYXRpb24uZGVlcEVxdWl2YWxlbnQoKS5ub2RlKCktPmluRG9jdW1l
bnQoKSk7CkBAIC05NjgsNyArOTcwLDkgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92
ZVBhcmFncmFwaHMoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBzdGFydE9mUGFyYWdyYXAKICAgICBz
ZXRFbmRpbmdTZWxlY3Rpb24oZGVzdGluYXRpb24pOwogICAgIEFTU0VSVChlbmRpbmdTZWxlY3Rp
b24oKS5pc0NhcmV0T3JSYW5nZSgpKTsKICAgICBhcHBseUNvbW1hbmRUb0NvbXBvc2l0ZShSZXBs
YWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGRvY3VtZW50KCksIGZyYWdtZW50LCB0cnVlLCBm
YWxzZSwgIXByZXNlcnZlU3R5bGUsIGZhbHNlLCB0cnVlKSk7Ci0gICAgCisKKyAgICBkb2N1bWVu
dCgpLT5mcmFtZSgpLT5lZGl0b3IoKS0+bWFya01pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIoZW5k
aW5nU2VsZWN0aW9uKCkpOworCiAgICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBpbiBhbiBlbXB0
eSBwYXJhZ3JhcGgsIHJlc3RvcmUgc3R5bGVzIGZyb20gdGhlIG9sZCBlbXB0eSBwYXJhZ3JhcGgg
dG8gdGhlIG5ldyBlbXB0eSBwYXJhZ3JhcGguCiAgICAgYm9vbCBzZWxlY3Rpb25Jc0VtcHR5UGFy
YWdyYXBoID0gZW5kaW5nU2VsZWN0aW9uKCkuaXNDYXJldCgpICYmIGlzU3RhcnRPZlBhcmFncmFw
aChlbmRpbmdTZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKSkgJiYgaXNFbmRPZlBhcmFncmFwaChl
bmRpbmdTZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKSk7CiAgICAgaWYgKHN0eWxlSW5FbXB0eVBh
cmFncmFwaCAmJiBzZWxlY3Rpb25Jc0VtcHR5UGFyYWdyYXBoKQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAppbmRleCAx
MTcyOTJjNTE0ZDFlM2RhMzIwNGY0NzAwNzlhMzA0YzdiZmFlYzU1Li4yMjQxZjc5ZDk2OGI3OTA5
NTUyNDgwNWIwOWYzZTUxMjBmNWE0MzNlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAorKysgYi9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjM1Myw2ICsyMzUz
LDI5IEBAIGJvb2wgRWRpdG9yOjpzcGVsbGluZ1BhbmVsSXNTaG93aW5nKCkKICAgICByZXR1cm4g
Y2xpZW50KCktPnNwZWxsaW5nVUlJc1Nob3dpbmcoKTsKIH0KIAordm9pZCBFZGl0b3I6OmNsZWFy
TWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1hcihjb25zdCBWaXNpYmxlU2VsZWN0aW9uICZtb3ZpbmdT
ZWxlY3Rpb24pCit7CisgICAgUmVmUHRyPFJhbmdlPiBzZWxlY3RlZFJhbmdlID0gbW92aW5nU2Vs
ZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7CisgICAgaWYgKHNlbGVjdGVkUmFuZ2UpIHsKKyAg
ICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+bWFya2VycygpLT5yZW1vdmVNYXJrZXJzKHNlbGVj
dGVkUmFuZ2UuZ2V0KCksIERvY3VtZW50TWFya2VyOjpTcGVsbGluZyk7CisgICAgICAgIGZyYW1l
KCktPmRvY3VtZW50KCktPm1hcmtlcnMoKS0+cmVtb3ZlTWFya2VycyhzZWxlY3RlZFJhbmdlLmdl
dCgpLCBEb2N1bWVudE1hcmtlcjo6R3JhbW1hcik7CisgICAgfQorfQorCit2b2lkIEVkaXRvcjo6
bWFya01pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiAmbW92
aW5nU2VsZWN0aW9uKQoreworICAgIGJvb2wgbWFya1NwZWxsaW5nID0gaXNDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoKTsKKyAgICBib29sIG1hcmtHcmFtbWFyID0gbWFya1NwZWxsaW5n
ICYmIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOworCisgICAgaWYgKG1hcmtTcGVsbGluZykg
eworICAgICAgICBSZWZQdHI8UmFuZ2U+IHVudXNlZEZpcnN0TWlzc3BlbGxpbmdSYW5nZTsKKyAg
ICAgICAgbWFya01pc3NwZWxsaW5ncyhtb3ZpbmdTZWxlY3Rpb24sIHVudXNlZEZpcnN0TWlzc3Bl
bGxpbmdSYW5nZSk7CisgICAgfQorCisgICAgaWYgKG1hcmtHcmFtbWFyKQorICAgICAgICBtYXJr
QmFkR3JhbW1hcihtb3ZpbmdTZWxlY3Rpb24pOworfQorCiB2b2lkIEVkaXRvcjo6bWFya01pc3Nw
ZWxsaW5nc0FmdGVyVHlwaW5nVG9Qb3NpdGlvbihjb25zdCBWaXNpYmxlUG9zaXRpb24gJnApCiB7
CiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRl
ZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaCBiL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCA3OGU4OWI0ODVlYTk4Mjcz
NmYyNzU4NTNlZGFmMDZmMTQyMGNlMjIyLi43OTU1MmI0NTZiOWQwMzRjNGRjNGJiZWRjMzQ0NTEw
OTc4YTQyNmU3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0zMTQsNiArMzE0LDkgQEAgcHVibGljOgogCiAgICAg
Ly8gVGhpcyBpcyBvbmx5IGNhbGxlZCBvbiB0aGUgbWFjIHdoZXJlIHBhc3RlIGlzIGltcGxlbWVu
dGVkIHByaW1hcmlseSBhdCB0aGUgV2ViS2l0IGxldmVsLgogICAgIHZvaWQgcGFzdGVBc1BsYWlu
VGV4dEJ5cGFzc2luZ0RIVE1MKCk7CisgCisgICAgdm9pZCBjbGVhck1pc3NwZWxsaW5nc0FuZEJh
ZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOworICAgIHZvaWQgbWFya01pc3NwZWxs
aW5nc0FuZEJhZEdyYW1tYXIoY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYpOwogCiAgICAgTm9kZSog
ZmluZEV2ZW50VGFyZ2V0RnJvbShjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pIGNv
bnN0OwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggMGY1OGZkMzU1YTY2ODk4OTc1OTVhMTU2MDM3MjlhMjljMDk0
NTViMy4uNjVkYjQzMWM2OGFiZjkxZjk2Yzc1ZmFkOGZmMmIyOTlkZjYzN2FkYyAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMC0wOS0wNyAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBzcGVs
bGluZyB1bmRlcmxpbmUgZ2V0cyBsb3N0IG9uIGJhY2tzcGFjZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDE0MjMKKworICAgICAgICBTd2l0Y2hlZCB0
byB1c2UgYSBhbmNob3JOb2RlIG9mIHRoZSBzZWxlY3Rpb24gaW5zdGVhZCBvZiBhIGZvY3VzZWQK
KyAgICAgICAgbm9kZSBmb3IgZmluZXIgY29udHJvbCBvZiBub2RlIHNlbGVjdGlvbiBpbiBzcGVs
bGluZ05vZGUoKToKKyAgICAgICAgV2l0aCB0aGUgZm9jdXNlZCBub2RlLCB3ZSBjYW5ub3Qgc2Vs
ZWN0IG90aGVyIG5vZGVzIGJ1dCB0aGUgZmlyc3QKKyAgICAgICAgY2hpbGQgb2YgdGhhdCBub2Rl
LiBJbiBzb21lIGNhc2UsIHdlIG5lZWQgdG8gaW5zcGVjdCB0aGVzZS4KKworICAgICAgICBUaGUg
QVBJIGlzIG9ubHkgZm9yIExheW91dFRlc3RzLCBhbmQgdGhlIGNoYW5nZSBpcyBjb21wYXRpYmxl
IGZvcgorICAgICAgICBleGlzdGluZyB0ZXN0IGNhc2VzLgorICAgICAgICAKKyAgICAgICAgKiBX
ZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoc3BlbGxpbmdOb2RlKToKKwogMjAxMC0wOS0w
NiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDYzMTVkNDM4ZGYxMzhlYmUy
NzEyZWZlMjM5OGI1ODhiZTE1YzA0YjkuLjhkNzJjNDYxOWFhMjA4ZTQ4ZjYyYzAxODA0MzhhNjdh
ZjljZjU4MjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysg
Yi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTEzNjgsNyArMTM2OCw3IEBAIHN0
YXRpYyBpbmxpbmUgV2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9h
ZGVyKQogCiBzdGF0aWMgTm9kZSogc3BlbGxpbmdOb2RlKEZyYW1lKiBjb3JlRnJhbWUpCiB7Ci0g
ICAgTm9kZSogZm9jdXNlZE5vZGUgPSBjb3JlRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWROb2Rl
KCk7CisgICAgTm9kZSogZm9jdXNlZE5vZGUgPSBjb3JlRnJhbWUtPnNlbGVjdGlvbigpLT5zdGFy
dCgpLm5vZGUoKTsKICAgICBpZiAoIWZvY3VzZWROb2RlIHx8ICFmb2N1c2VkTm9kZS0+cmVuZGVy
ZXIoKSkKICAgICAgICAgcmV0dXJuIDA7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>67161</attachid>
            <date>2010-09-10 00:33:51 -0700</date>
            <delta_ts>2010-09-10 00:33:51 -0700</delta_ts>
            <desc>repro for a remaining problem</desc>
            <filename>double-wrong-word.html</filename>
            <type>text/html</type>
            <size>341</size>
            <attacher name="Hajime Morrita">morrita</attacher>
            
              <data encoding="base64">PGh0bWw+Cjxib2R5PgogIDxoMj5XaGVuIHlvdSBjb25jYXRpbmNhdGVzIGZpcnN0IGxpbmUgYW5k
IHNlY29uZCBsaW5lIHVzaW5nIGJhY2tzcGFjZSwgc2Vjb25kICJ6eiIgd2lsbCBsb3NlIGl0cyBt
YXJrZXIuPC9oMj4KICA8ZGl2IGNvbnRlbnRFZGl0YWJsZT4KICAgICA8ZGl2PmZpcnN0IGxpbmUu
PC9kaXY+CiAgICAgPGRpdj5zZWNvbmQgenogenogbGluZS48L2Rpdj4KICA8L2Rpdj4KICA8aW5w
dXQgdHlwZT0iYnV0dG9uIiBvbmNsaWNrPSJkb2N1bWVudC5leGVjQ29tbWFuZCgnRm9yd2FyZERl
bGV0ZScsIGZhbHNlKSIgdmFsdWU9IkZvcndhcmREZWxldGUiIC8+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>