<?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>50869</bug_id>
          
          <creation_ts>2010-12-11 04:43:36 -0800</creation_ts>
          <short_desc>[cairo] Rendering a lot of arcs on top of each other causes time outs in some tests</short_desc>
          <delta_ts>2011-01-10 09:58:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alejandro G. Castro">alex</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>mrobinson</cc>
    
    <cc>oliver</cc>
    
    <cc>pkasting</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>320656</commentid>
    <comment_count>0</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-12-11 04:43:36 -0800</bug_when>
    <thetext>When the start angle and the end angle difference is big, like in the test canvas-largedraws.html, we are rendering arcs on top of each other when we could draw just one arc and move to the end position, like it is being done in other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>324432</commentid>
    <comment_count>1</comment_count>
      <attachid>77010</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2010-12-20 09:41:50 -0800</bug_when>
    <thetext>Created attachment 77010
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326636</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-24 09:07:11 -0800</bug_when>
    <thetext>I dont&apos; trust my graphics knowledege w/o seeing examples of the output, but we have lots of graphics-capable folks in webkit...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>326680</commentid>
    <comment_count>3</comment_count>
      <attachid>77010</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-12-24 11:02:50 -0800</bug_when>
    <thetext>Comment on attachment 77010
Proposed patch

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

&gt; WebCore/ChangeLog:10
&gt; +        We avoid the situation where we have to render the same arc
&gt; +        multiple times over itself. Now it renders just one oval and
&gt; +        moves to the end angle.
&gt; +

Are we guaranteed that this will produce the proper rendering? What if the stroke is partially opaque? Is this hitting some weird slow path in Cairo? Maybe it would be more accurate to break the stroke up into pieces and render them in a loop?

&gt; WebCore/platform/graphics/cairo/PathCairo.cpp:154
&gt; +    float sweep = ea - sa;

This is a good opportunity to expand variable names into something more readable.

&gt; WebCore/platform/graphics/cairo/PathCairo.cpp:163
&gt; +    } else

It&apos;s appropriate to use a &quot;{&quot; here since the block is more than one line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330712</commentid>
    <comment_count>4</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-07 02:59:45 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 77010 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77010&amp;action=review
&gt; 
&gt; &gt; WebCore/ChangeLog:10
&gt; &gt; +        We avoid the situation where we have to render the same arc
&gt; &gt; +        multiple times over itself. Now it renders just one oval and
&gt; &gt; +        moves to the end angle.
&gt; &gt; +
&gt; 
&gt; Are we guaranteed that this will produce the proper rendering? What if the stroke is partially opaque? Is this hitting some weird slow path in Cairo?

Hrm, good point, it would not be accurate with oppacity, we will have to sum it. I think chrome is doing actually something similar I assume it is very costly to render a lot (like millions) of huge arcs (18s just to render one arc) that are exactly the same one, it is true that cairo could do this instead of us.

&gt; Maybe it would be more accurate to break the stroke up into pieces and render them in a loop?
&gt;

Not sure if I know what you mean, what I&apos;m thinking now is to use the opacity to render exactly that opacity but just one arc.

&gt; &gt; WebCore/platform/graphics/cairo/PathCairo.cpp:154
&gt; &gt; +    float sweep = ea - sa;
&gt; 
&gt; This is a good opportunity to expand variable names into something more readable.
&gt; 
&gt; &gt; WebCore/platform/graphics/cairo/PathCairo.cpp:163
&gt; &gt; +    } else
&gt; 
&gt; It&apos;s appropriate to use a &quot;{&quot; here since the block is more than one line.

Thanks, I&apos;ll add both.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330730</commentid>
    <comment_count>5</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-07 04:24:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; Are we guaranteed that this will produce the proper rendering? What if the stroke is partially opaque? Is this hitting some weird slow path in Cairo?
&gt; 
&gt; Hrm, good point, it would not be accurate with oppacity, we will have to sum it. I think chrome is doing actually something similar I assume it is very costly to render a lot (like millions) of huge arcs (18s just to render one arc) that are exactly the same one, it is true that cairo could do this instead of us.
&gt; 

I&apos;ve just checked that it does not matter the amount of arcs you add to the path one over the other for the opacity, I guess the opacity of the tint is just applied when stroking so you will have the same result if you draw one or 100, at least in cairo. I&apos;ve also checked that other ports like skia or qt are applying similar solutions.

I like skia solution (it avoids the modff) but it seems slower for cairo, I&apos;ll try to check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330740</commentid>
    <comment_count>6</comment_count>
      <attachid>78225</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-07 05:39:53 -0800</bug_when>
    <thetext>Created attachment 78225
Proposed patch

I made a mistake checking the performance of the solution, we can do it without the modff. This patch avoids using modff to avoid precision errors.

Not sure why in Qt solution they do not pay attention to the end angle in this situation, maybe it is a bug, and in case of skia they do not use anticlockwise property, which could cause issues with fill rules AFAIK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330777</commentid>
    <comment_count>7</comment_count>
      <attachid>78225</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-01-07 08:35:15 -0800</bug_when>
    <thetext>Comment on attachment 78225
Proposed patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330874</commentid>
    <comment_count>8</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-07 11:08:09 -0800</bug_when>
    <thetext>Landed http://trac.webkit.org/changeset/75256</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>330891</commentid>
    <comment_count>9</comment_count>
    <who name="Xan Lopez">xan.lopez</who>
    <bug_when>2011-01-07 11:41:49 -0800</bug_when>
    <thetext>Reverted r75256 for reason:

Broke GTK+ canvas tests

Committed r75260: &lt;http://trac.webkit.org/changeset/75260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331592</commentid>
    <comment_count>10</comment_count>
      <attachid>78394</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-10 05:55:35 -0800</bug_when>
    <thetext>Created attachment 78394
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331593</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-10 05:57:06 -0800</bug_when>
    <thetext>Attachment 78394 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/gtk/Skipped&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/platform/graphics/cairo/PathCairo.cpp&apos;]&quot; exit_code: 1
Source/WebCore/platform/graphics/cairo/PathCairo.cpp:157:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Source/WebCore/platform/graphics/cairo/PathCairo.cpp:158:  Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side.  [whitespace/operators] [4]
Total errors found: 2 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331596</commentid>
    <comment_count>12</comment_count>
      <attachid>78395</attachid>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-10 06:06:23 -0800</bug_when>
    <thetext>Created attachment 78395
Proposed patch

I&apos;ve added a check for the case where the end angle is in the opposite direction of the requested angle, we can not do this in that situation and cairo is already painting a small angle because it increases or decreases the start angle progressively by 2*PI until it is bigger than end angle.

Replaced sa and ea with startAngle and endAngle as suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>331668</commentid>
    <comment_count>13</comment_count>
    <who name="Alejandro G. Castro">alex</who>
    <bug_when>2011-01-10 09:58:43 -0800</bug_when>
    <thetext>Landed http://trac.webkit.org/changeset/75381</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77010</attachid>
            <date>2010-12-20 09:41:50 -0800</date>
            <delta_ts>2011-01-07 05:39:53 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>arc_cairo.patch</filename>
            <type>text/plain</type>
            <size>3243</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYWRiNjAwLi5lMmE1ZjIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTAtMTIt
MjAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKKyAgICAgICAgW2Nh
aXJvXSBSZW5kZXJpbmcgYSBsb3Qgb2YgYXJjcyBvbiB0b3Agb2YgZWFjaCBvdGhlciBjYXVzZXMg
dGltZQorICAgICAgICBvdXRzIGluIHNvbWUgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODY5CisKKyAgICAgICAgVW5za2lwIGNhbnZhcy1s
YXJnZWRyYXdzLmh0bWwgYWZ0ZXIgaW1wcm92aW5nIHRoZSBwZXJmb3JtYW5jZSBmb3IKKyAgICAg
ICAgYmlnIGFuZ2xlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorCisyMDEw
LTEyLTIwICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCiAgICAgICAg
IFVucmV2aWV3ZWQsIGFkZGVkIHRoZSBwcm9wZXIgZXhwZWN0ZWQgcmVzdWx0IGZpbGUuCiAKICAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvZmFzdC90ZXh0L2VtcGhhc2lzLW92ZXJsYXAtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVk
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggZDljMzljNy4uNmZmOWQ1
ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTU1NjYsMTEgKzU1NjYsNiBAQCBmYXN0
L2RvbS9TdHlsZVNoZWV0L2RldGFjaGVkLXN0eWxlLXBpLTIueGh0bWwKIGZhc3QvZG9tL1N0eWxl
U2hlZXQvZGV0YWNoZWQtc3R5bGUtcGkueGh0bWwKIGZhc3QvZG9tL1N0eWxlU2hlZXQvZGV0YWNo
ZWQtc3R5bGUuaHRtbAogCi0jIFRoZSB0ZXN0IHRpbWVzIG91dCwgd2UgaGF2ZSB0byBpbXByb3Zl
IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUKLSMgcmVuZGVyaW5nIGluIHRoZXNlIHNpdHVhdGlvbnMg
dG8KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODY5Ci1mYXN0
L2NhbnZhcy9jYW52YXMtbGFyZ2VkcmF3cy5odG1sCi0KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUwODg2CiBmYXN0L2RvbS9XaW5kb3cvdGltZXItcmVzdW1lLW9u
LW5hdmlnYXRpb24tYmFjay5odG1sCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODRjNDQxMy4uYjFlNmZlMiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMC0xMi0yMCAgQWxlamFuZHJvIEcuIENhc3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KKworICAg
ICAgICBbY2Fpcm9dIFJlbmRlcmluZyBhIGxvdCBvZiBhcmNzIG9uIHRvcCBvZiBlYWNoIG90aGVy
IGNhdXNlcyB0aW1lCisgICAgICAgIG91dHMgaW4gc29tZSB0ZXN0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA4NjkKKworICAgICAgICBXZSBhdm9p
ZCB0aGUgc2l0dWF0aW9uIHdoZXJlIHdlIGhhdmUgdG8gcmVuZGVyIHRoZSBzYW1lIGFyYworICAg
ICAgICBtdWx0aXBsZSB0aW1lcyBvdmVyIGl0c2VsZi4gTm93IGl0IHJlbmRlcnMganVzdCBvbmUg
b3ZhbCBhbmQKKyAgICAgICAgbW92ZXMgdG8gdGhlIGVuZCBhbmdsZS4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQ
YXRoOjphZGRBcmMpOgorCiAyMDEwLTEyLTIwICBBbmRyZWkgUG9wZXNjdSAgPGFuZHJlaXBAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKaW5kZXggMDNmMWQxMC4uMTRm
OGI2ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fp
cm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNw
cApAQCAtMTUxLDEwICsxNTEsMjAgQEAgdm9pZCBQYXRoOjphZGRBcmMoY29uc3QgRmxvYXRQb2lu
dCYgcCwgZmxvYXQgciwgZmxvYXQgc2EsIGZsb2F0IGVhLCBib29sIGFudGljbG8KICAgICAgICAg
cmV0dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9ybVBhdGgoKS0+Y29udGV4dCgpOwot
ICAgIGlmIChhbnRpY2xvY2t3aXNlKQotICAgICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAu
eCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKLSAgICBlbHNlCi0gICAgICAgIGNhaXJvX2FyYyhjciwg
cC54KCksIHAueSgpLCByLCBzYSwgZWEpOworICAgIGZsb2F0IHN3ZWVwID0gZWEgLSBzYTsKKyAg
ICBjb25zdCBmbG9hdCB0d29QSSA9IDIgKiBNX1BJOworICAgIGlmIChzd2VlcCA+PSB0d29QSSB8
fCBzd2VlcCA8PSAtdHdvUEkpIHsKKyAgICAgICAgZmxvYXQgZHVtbXk7CisgICAgICAgIGZsb2F0
IHJlc3VsdEFuZ2xlID0gbW9kZmYoc3dlZXAgLyB0d29QSSwgJmR1bW15KSAqIHR3b1BJOworICAg
ICAgICBpZiAoYW50aWNsb2Nrd2lzZSkKKyAgICAgICAgICAgIGNhaXJvX2FyY19uZWdhdGl2ZShj
ciwgcC54KCksIHAueSgpLCByLCBzYSwgc2EgLSB0d29QSSAtIHJlc3VsdEFuZ2xlKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBz
YSArIHR3b1BJICsgcmVzdWx0QW5nbGUpOworICAgIH0gZWxzZQorICAgICAgICBpZiAoYW50aWNs
b2Nrd2lzZSkKKyAgICAgICAgICAgIGNhaXJvX2FyY19uZWdhdGl2ZShjciwgcC54KCksIHAueSgp
LCByLCBzYSwgZWEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWlyb19hcmMoY3IsIHAu
eCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKIH0KIAogdm9pZCBQYXRoOjphZGRBcmNUbyhjb25zdCBG
bG9hdFBvaW50JiBwMSwgY29uc3QgRmxvYXRQb2ludCYgcDIsIGZsb2F0IHJhZGl1cykK
</data>
<flag name="review"
          id="68051"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78225</attachid>
            <date>2011-01-07 05:39:53 -0800</date>
            <delta_ts>2011-01-10 05:55:35 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>arcs.patch</filename>
            <type>text/plain</type>
            <size>4739</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">Y29tbWl0IDg3NzYzNWUwMDg4NjcwYTlkZDUzOWRmYTE4MmM5ZjMzZTllOGI5YzgKQXV0aG9yOiBB
bGVqYW5kcm8gRy4gQ2FzdHJvIDxhbGV4QGlnYWxpYS5jb20+CkRhdGU6ICAgRnJpIEphbiA3IDE0
OjMxOjQzIDIwMTEgKzAxMDAKCiAgICAyMDExLTAxLTA3ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8
YWxleEBpZ2FsaWEuY29tPgogICAgCiAgICAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgogICAgCiAgICAgICAgICAgIFtjYWlyb10gUmVuZGVyaW5nIGEgbG90IG9mIGFyY3Mgb24g
dG9wIG9mIGVhY2ggb3RoZXIgY2F1c2VzIHRpbWUKICAgICAgICAgICAgb3V0cyBpbiBzb21lIHRl
c3RzCiAgICAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01
MDg2OQogICAgCiAgICAgICAgICAgIFdlIGF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgd2UgaGF2
ZSB0byByZW5kZXIgdGhlIHNhbWUgYXJjCiAgICAgICAgICAgIG11bHRpcGxlIHRpbWVzIG92ZXIg
aXRzZWxmLiBOb3cgaXQgcmVuZGVycyBqdXN0IG9uZSBvdmFsIGFuZAogICAgICAgICAgICBtb3Zl
cyB0byB0aGUgZW5kIGFuZ2xlLgogICAgCiAgICAgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0aENhaXJvLmNwcDoKICAgICAgICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6
CiAgICAKICAgIDIwMTEtMDEtMDcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5j
b20+CiAgICAKICAgICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAg
ICAgICAgICAgW2NhaXJvXSBSZW5kZXJpbmcgYSBsb3Qgb2YgYXJjcyBvbiB0b3Agb2YgZWFjaCBv
dGhlciBjYXVzZXMgdGltZQogICAgICAgICAgICBvdXRzIGluIHNvbWUgdGVzdHMKICAgICAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODY5CiAgICAKICAg
ICAgICAgICAgVW5za2lwIGNhbnZhcy1sYXJnZWRyYXdzLmh0bWwgYWZ0ZXIgaW1wcm92aW5nIHRo
ZSBwZXJmb3JtYW5jZSBmb3IKICAgICAgICAgICAgYmlnIGFuZ2xlcy4KICAgIAogICAgICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjUyM2I2Li5jMTNhNTcxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMTggQEAKIDIwMTEtMDEtMDcgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4
QGlnYWxpYS5jb20+CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgW2NhaXJvXSBSZW5kZXJpbmcgYSBsb3Qgb2YgYXJjcyBvbiB0b3Agb2YgZWFjaCBvdGhl
ciBjYXVzZXMgdGltZQorICAgICAgICBvdXRzIGluIHNvbWUgdGVzdHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUwODY5CisKKyAgICAgICAgVW5za2lw
IGNhbnZhcy1sYXJnZWRyYXdzLmh0bWwgYWZ0ZXIgaW1wcm92aW5nIHRoZSBwZXJmb3JtYW5jZSBm
b3IKKyAgICAgICAgYmlnIGFuZ2xlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVk
OgorCisyMDExLTAxLTA3ICBBbGVqYW5kcm8gRy4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgor
CiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KIAogICAgICAgICBDYWlybydz
IENvbnRleHRTaGFkb3cgbWF5IG1pcy1yZW5kZXIgc29tZSBib3ggc2hhZG93cwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZAppbmRleCA1YmFhMzc0Li45NjE4ODFmIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZApAQCAtNTU4MCwxMSArNTU4MCw2IEBAIGZhc3QvZG9tL1N0eWxlU2hlZXQvZGV0YWNo
ZWQtc3R5bGUtcGktMi54aHRtbAogZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS1w
aS54aHRtbAogZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS5odG1sCiAKLSMgVGhl
IHRlc3QgdGltZXMgb3V0LCB3ZSBoYXZlIHRvIGltcHJvdmUgdGhlIHBlcmZvcm1hbmNlIG9mIHRo
ZQotIyByZW5kZXJpbmcgaW4gdGhlc2Ugc2l0dWF0aW9ucyB0bwotIyBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA4NjkKLWZhc3QvY2FudmFzL2NhbnZhcy1sYXJnZWRy
YXdzLmh0bWwKLQogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTA4
ODYKIGZhc3QvZG9tL1dpbmRvdy90aW1lci1yZXN1bWUtb24tbmF2aWdhdGlvbi1iYWNrLmh0bWwK
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCA2ZDg5YmUyLi5kYjg5ZDc1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAxLTA3ICBBbGVqYW5kcm8g
Ry4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjYWlyb10gUmVuZGVyaW5nIGEgbG90IG9mIGFyY3Mgb24g
dG9wIG9mIGVhY2ggb3RoZXIgY2F1c2VzIHRpbWUKKyAgICAgICAgb3V0cyBpbiBzb21lIHRlc3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg2OQor
CisgICAgICAgIFdlIGF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgd2UgaGF2ZSB0byByZW5kZXIg
dGhlIHNhbWUgYXJjCisgICAgICAgIG11bHRpcGxlIHRpbWVzIG92ZXIgaXRzZWxmLiBOb3cgaXQg
cmVuZGVycyBqdXN0IG9uZSBvdmFsIGFuZAorICAgICAgICBtb3ZlcyB0byB0aGUgZW5kIGFuZ2xl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisKIDIwMTEtMDEtMDcgIEJlbmphbWluIFBv
dWxhaW4gIDxiZW5qYW1pbi5wb3VsYWluQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBBbmRyZWFzIEtsaW5nLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QYXRoQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRo
Q2Fpcm8uY3BwCmluZGV4IDAzZjFkMTAuLjE5NTI2OWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKQEAgLTUsNiArNSw3IEBACiAgICAgICAgICAg
ICAgICAgICAyMDA1LCAyMDA3IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyByZXNlcnZlZC4KICAgICAg
ICAgICAgICAgICAgIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KICAgICAgICAgICAg
ICAgICAgIDIwMDggRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+CisgICAgICAgICAgICAg
ICAgICAyMDExIElnYWxpYSBTLkwuCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE1MSwxMCArMTUy
LDIxIEBAIHZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGZsb2F0IHIsIGZs
b2F0IHNhLCBmbG9hdCBlYSwgYm9vbCBhbnRpY2xvCiAgICAgICAgIHJldHVybjsKIAogICAgIGNh
aXJvX3QqIGNyID0gcGxhdGZvcm1QYXRoKCktPmNvbnRleHQoKTsKLSAgICBpZiAoYW50aWNsb2Nr
d2lzZSkKLSAgICAgICAgY2Fpcm9fYXJjX25lZ2F0aXZlKGNyLCBwLngoKSwgcC55KCksIHIsIHNh
LCBlYSk7Ci0gICAgZWxzZQotICAgICAgICBjYWlyb19hcmMoY3IsIHAueCgpLCBwLnkoKSwgciwg
c2EsIGVhKTsKKyAgICBmbG9hdCBzd2VlcCA9IGVhIC0gc2E7CisgICAgY29uc3QgZmxvYXQgdHdv
UEkgPSAyICogTV9QSTsKKyAgICBpZiAoc3dlZXAgPD0gLXR3b1BJIHx8IHN3ZWVwID49IHR3b1BJ
KSB7CisgICAgICAgIGlmIChhbnRpY2xvY2t3aXNlKQorICAgICAgICAgICAgY2Fpcm9fYXJjX25l
Z2F0aXZlKGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBzYSAtIHR3b1BJKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBzYSArIHR3
b1BJKTsKKyAgICAgICAgY2Fpcm9fbmV3X3N1Yl9wYXRoKGNyKTsKKyAgICAgICAgY2Fpcm9fYXJj
KGNyLCBwLngoKSwgcC55KCksIHIsIGVhLCBlYSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYg
KGFudGljbG9ja3dpc2UpCisgICAgICAgICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAueCgp
LCBwLnkoKSwgciwgc2EsIGVhKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2Fpcm9fYXJj
KGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBlYSk7CisgICAgfQogfQogCiB2b2lkIFBhdGg6OmFk
ZEFyY1RvKGNvbnN0IEZsb2F0UG9pbnQmIHAxLCBjb25zdCBGbG9hdFBvaW50JiBwMiwgZmxvYXQg
cmFkaXVzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78394</attachid>
            <date>2011-01-10 05:55:35 -0800</date>
            <delta_ts>2011-01-10 06:06:23 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>arcs.patch</filename>
            <type>text/plain</type>
            <size>3766</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMTVhZmYzLi4zYzNmODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEt
MTAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2NhaXJvXSBSZW5kZXJpbmcgYSBs
b3Qgb2YgYXJjcyBvbiB0b3Agb2YgZWFjaCBvdGhlciBjYXVzZXMgdGltZQorICAgICAgICBvdXRz
IGluIHNvbWUgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwODY5CisKKyAgICAgICAgVW5za2lwIGNhbnZhcy1sYXJnZWRyYXdzLmh0bWwgYWZ0
ZXIgaW1wcm92aW5nIHRoZSBwZXJmb3JtYW5jZSBmb3IKKyAgICAgICAgYmlnIGFuZ2xlcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorCiAyMDExLTAxLTA5ICBKdXN0aW4gR2Fy
Y2lhICA8anVzdGluLmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIEFk
ZGluZyBzdmcvdGV4dC9jYXJldC1pbi1zdmctdGV4dC54aHRtbCB0byBTa2lwcGVkIGxpc3QgZm9y
IGd0aywgd2hlcmUgdGhlcmUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGZmOTFhYzgu
LmEwOGY4MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NTgxLDExICs1NTgxLDYg
QEAgZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS1waS0yLnhodG1sCiBmYXN0L2Rv
bS9TdHlsZVNoZWV0L2RldGFjaGVkLXN0eWxlLXBpLnhodG1sCiBmYXN0L2RvbS9TdHlsZVNoZWV0
L2RldGFjaGVkLXN0eWxlLmh0bWwKIAotIyBUaGUgdGVzdCB0aW1lcyBvdXQsIHdlIGhhdmUgdG8g
aW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlCi0jIHJlbmRlcmluZyBpbiB0aGVzZSBzaXR1
YXRpb25zIHRvCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg2
OQotZmFzdC9jYW52YXMvY2FudmFzLWxhcmdlZHJhd3MuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg4NgogZmFzdC9kb20vV2luZG93L3RpbWVyLXJl
c3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FmMjQyZS4uNTNi
YTk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAxLTEwICBBbGVqYW5kcm8g
Ry4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjYWlyb10gUmVuZGVyaW5nIGEgbG90IG9mIGFyY3Mgb24g
dG9wIG9mIGVhY2ggb3RoZXIgY2F1c2VzIHRpbWUKKyAgICAgICAgb3V0cyBpbiBzb21lIHRlc3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg2OQor
CisgICAgICAgIFdlIGF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgd2UgaGF2ZSB0byByZW5kZXIg
dGhlIHNhbWUgYXJjCisgICAgICAgIG11bHRpcGxlIHRpbWVzIG92ZXIgaXRzZWxmLiBOb3cgaXQg
cmVuZGVycyBqdXN0IG9uZSBvdmFsIGFuZAorICAgICAgICBtb3ZlcyB0byB0aGUgZW5kIGFuZ2xl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisKIDIwMTEtMDEtMTAgIEpvaG4gS25vdHRl
bmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
ZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0aENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BhdGhDYWlyby5jcHAKaW5kZXggMDNmMWQxMC4uZjM2MTBhNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCkBAIC01
LDYgKzUsNyBAQAogICAgICAgICAgICAgICAgICAgMjAwNSwgMjAwNyBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgcmVzZXJ2ZWQuCiAgICAgICAgICAgICAgICAgICAyMDA3IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CiAgICAgICAgICAgICAgICAgICAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJr
aXQub3JnPgorICAgICAgICAgICAgICAgICAgMjAxMSBJZ2FsaWEgUy5MLgogCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0xNTEsMTAgKzE1MiwyMyBAQCB2b2lkIFBhdGg6OmFkZEFyYyhjb25zdCBGbG9h
dFBvaW50JiBwLCBmbG9hdCByLCBmbG9hdCBzYSwgZmxvYXQgZWEsIGJvb2wgYW50aWNsbwogICAg
ICAgICByZXR1cm47CiAKICAgICBjYWlyb190KiBjciA9IHBsYXRmb3JtUGF0aCgpLT5jb250ZXh0
KCk7Ci0gICAgaWYgKGFudGljbG9ja3dpc2UpCi0gICAgICAgIGNhaXJvX2FyY19uZWdhdGl2ZShj
ciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEpOwotICAgIGVsc2UKLSAgICAgICAgY2Fpcm9fYXJj
KGNyLCBwLngoKSwgcC55KCksIHIsIHNhLCBlYSk7CisgICAgZmxvYXQgc3dlZXAgPSBlYSAtIHNh
OworICAgIGNvbnN0IGZsb2F0IHR3b1BJID0gMiAqIE1fUEk7CisgICAgaWYgKChzd2VlcCA8PSAt
dHdvUEkgfHwgc3dlZXAgPj0gdHdvUEkpICYmCisgICAgICAgICgoYW50aWNsb2Nrd2lzZSAmJiAo
ZWEgPCBzYSkpIHx8CisgICAgICAgICAoIWFudGljbG9ja3dpc2UgJiYgKHNhIDwgZWEpKSkpIHsK
KyAgICAgICAgaWYgKGFudGljbG9ja3dpc2UpCisgICAgICAgICAgICBjYWlyb19hcmNfbmVnYXRp
dmUoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIHNhIC0gdHdvUEkpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBjYWlyb19hcmMoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIHNhICsgdHdvUEkp
OworICAgICAgICBjYWlyb19uZXdfc3ViX3BhdGgoY3IpOworICAgICAgICBjYWlyb19hcmMoY3Is
IHAueCgpLCBwLnkoKSwgciwgZWEsIGVhKTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAoYW50
aWNsb2Nrd2lzZSkKKyAgICAgICAgICAgIGNhaXJvX2FyY19uZWdhdGl2ZShjciwgcC54KCksIHAu
eSgpLCByLCBzYSwgZWEpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjYWlyb19hcmMoY3Is
IHAueCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKKyAgICB9CiB9CiAKIHZvaWQgUGF0aDo6YWRkQXJj
VG8oY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZsb2F0UG9pbnQmIHAyLCBmbG9hdCByYWRp
dXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78395</attachid>
            <date>2011-01-10 06:06:23 -0800</date>
            <delta_ts>2011-01-10 08:20:09 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>arcs.patch</filename>
            <type>text/plain</type>
            <size>4399</size>
            <attacher name="Alejandro G. Castro">alex</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMTVhZmYzLi4zYzNmODRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEt
MTAgIEFsZWphbmRybyBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2NhaXJvXSBSZW5kZXJpbmcgYSBs
b3Qgb2YgYXJjcyBvbiB0b3Agb2YgZWFjaCBvdGhlciBjYXVzZXMgdGltZQorICAgICAgICBvdXRz
IGluIHNvbWUgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUwODY5CisKKyAgICAgICAgVW5za2lwIGNhbnZhcy1sYXJnZWRyYXdzLmh0bWwgYWZ0
ZXIgaW1wcm92aW5nIHRoZSBwZXJmb3JtYW5jZSBmb3IKKyAgICAgICAgYmlnIGFuZ2xlcy4KKwor
ICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorCiAyMDExLTAxLTA5ICBKdXN0aW4gR2Fy
Y2lhICA8anVzdGluLmdhcmNpYUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gIEFk
ZGluZyBzdmcvdGV4dC9jYXJldC1pbi1zdmctdGV4dC54aHRtbCB0byBTa2lwcGVkIGxpc3QgZm9y
IGd0aywgd2hlcmUgdGhlcmUgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IGZmOTFhYzgu
LmEwOGY4MGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC01NTgxLDExICs1NTgxLDYg
QEAgZmFzdC9kb20vU3R5bGVTaGVldC9kZXRhY2hlZC1zdHlsZS1waS0yLnhodG1sCiBmYXN0L2Rv
bS9TdHlsZVNoZWV0L2RldGFjaGVkLXN0eWxlLXBpLnhodG1sCiBmYXN0L2RvbS9TdHlsZVNoZWV0
L2RldGFjaGVkLXN0eWxlLmh0bWwKIAotIyBUaGUgdGVzdCB0aW1lcyBvdXQsIHdlIGhhdmUgdG8g
aW1wcm92ZSB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlCi0jIHJlbmRlcmluZyBpbiB0aGVzZSBzaXR1
YXRpb25zIHRvCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg2
OQotZmFzdC9jYW52YXMvY2FudmFzLWxhcmdlZHJhd3MuaHRtbAotCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg4NgogZmFzdC9kb20vV2luZG93L3RpbWVyLXJl
c3VtZS1vbi1uYXZpZ2F0aW9uLWJhY2suaHRtbAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FmMjQyZS4uNTNi
YTk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTAxLTEwICBBbGVqYW5kcm8g
Ry4gQ2FzdHJvICA8YWxleEBpZ2FsaWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtjYWlyb10gUmVuZGVyaW5nIGEgbG90IG9mIGFyY3Mgb24g
dG9wIG9mIGVhY2ggb3RoZXIgY2F1c2VzIHRpbWUKKyAgICAgICAgb3V0cyBpbiBzb21lIHRlc3Rz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDg2OQor
CisgICAgICAgIFdlIGF2b2lkIHRoZSBzaXR1YXRpb24gd2hlcmUgd2UgaGF2ZSB0byByZW5kZXIg
dGhlIHNhbWUgYXJjCisgICAgICAgIG11bHRpcGxlIHRpbWVzIG92ZXIgaXRzZWxmLiBOb3cgaXQg
cmVuZGVycyBqdXN0IG9uZSBvdmFsIGFuZAorICAgICAgICBtb3ZlcyB0byB0aGUgZW5kIGFuZ2xl
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlBhdGg6OmFkZEFyYyk6CisKIDIwMTEtMDEtMTAgIEpvaG4gS25vdHRl
bmJlbHQgIDxqa25vdHRlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmVy
ZW15IE9ybG93LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vUGF0aENhaXJvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BhdGhDYWlyby5jcHAKaW5kZXggMDNmMWQxMC4uOTgxZmRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwCkBAIC01
LDYgKzUsNyBAQAogICAgICAgICAgICAgICAgICAgMjAwNSwgMjAwNyBBcHBsZSBJbmMuIEFsbCBS
aWdodHMgcmVzZXJ2ZWQuCiAgICAgICAgICAgICAgICAgICAyMDA3IEFscCBUb2tlciA8YWxwQGF0
b2tlci5jb20+CiAgICAgICAgICAgICAgICAgICAyMDA4IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJr
aXQub3JnPgorICAgICAgICAgICAgICAgICAgMjAxMSBJZ2FsaWEgUy5MLgogCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0xNDMsMTggKzE0NCwzMCBAQCB2b2lkIFBhdGg6OmFkZEJlemllckN1cnZlVG8o
Y29uc3QgRmxvYXRQb2ludCYgY29udHJvbFBvaW50MSwgY29uc3QgRmxvYXRQb2ludCYgYwogICAg
ICAgICAgICAgICAgICAgIGNvbnRyb2xQb2ludDMueCgpLCBjb250cm9sUG9pbnQzLnkoKSk7CiB9
CiAKLXZvaWQgUGF0aDo6YWRkQXJjKGNvbnN0IEZsb2F0UG9pbnQmIHAsIGZsb2F0IHIsIGZsb2F0
IHNhLCBmbG9hdCBlYSwgYm9vbCBhbnRpY2xvY2t3aXNlKQordm9pZCBQYXRoOjphZGRBcmMoY29u
c3QgRmxvYXRQb2ludCYgcCwgZmxvYXQgciwgZmxvYXQgc3RhcnRBbmdsZSwgZmxvYXQgZW5kQW5n
bGUsIGJvb2wgYW50aWNsb2Nrd2lzZSkKIHsKICAgICAvLyBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjQ0OQogICAgIC8vIGNhaXJvX2FyYygpIGZ1bmN0aW9ucyBoYW5n
IG9yIGNyYXNoIHdoZW4gcGFzc2VkIGluZiBhcyByYWRpdXMgb3Igc3RhcnQvZW5kIGFuZ2xlCi0g
ICAgaWYgKCFpc2Zpbml0ZShyKSB8fCAhaXNmaW5pdGUoc2EpIHx8ICFpc2Zpbml0ZShlYSkpCisg
ICAgaWYgKCFpc2Zpbml0ZShyKSB8fCAhaXNmaW5pdGUoc3RhcnRBbmdsZSkgfHwgIWlzZmluaXRl
KGVuZEFuZ2xlKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgY2Fpcm9fdCogY3IgPSBwbGF0Zm9y
bVBhdGgoKS0+Y29udGV4dCgpOwotICAgIGlmIChhbnRpY2xvY2t3aXNlKQotICAgICAgICBjYWly
b19hcmNfbmVnYXRpdmUoY3IsIHAueCgpLCBwLnkoKSwgciwgc2EsIGVhKTsKLSAgICBlbHNlCi0g
ICAgICAgIGNhaXJvX2FyYyhjciwgcC54KCksIHAueSgpLCByLCBzYSwgZWEpOworICAgIGZsb2F0
IHN3ZWVwID0gZW5kQW5nbGUgLSBzdGFydEFuZ2xlOworICAgIGNvbnN0IGZsb2F0IHR3b1BJID0g
MiAqIE1fUEk7CisgICAgaWYgKChzd2VlcCA8PSAtdHdvUEkgfHwgc3dlZXAgPj0gdHdvUEkpCisg
ICAgICAgICYmICgoYW50aWNsb2Nrd2lzZSAmJiAoZW5kQW5nbGUgPCBzdGFydEFuZ2xlKSkgfHwg
KCFhbnRpY2xvY2t3aXNlICYmIChzdGFydEFuZ2xlIDwgZW5kQW5nbGUpKSkpIHsKKyAgICAgICAg
aWYgKGFudGljbG9ja3dpc2UpCisgICAgICAgICAgICBjYWlyb19hcmNfbmVnYXRpdmUoY3IsIHAu
eCgpLCBwLnkoKSwgciwgc3RhcnRBbmdsZSwgc3RhcnRBbmdsZSAtIHR3b1BJKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwgcC55KCksIHIsIHN0YXJ0QW5n
bGUsIHN0YXJ0QW5nbGUgKyB0d29QSSk7CisgICAgICAgIGNhaXJvX25ld19zdWJfcGF0aChjcik7
CisgICAgICAgIGNhaXJvX2FyYyhjciwgcC54KCksIHAueSgpLCByLCBlbmRBbmdsZSwgZW5kQW5n
bGUpOworICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChhbnRpY2xvY2t3aXNlKQorICAgICAgICAg
ICAgY2Fpcm9fYXJjX25lZ2F0aXZlKGNyLCBwLngoKSwgcC55KCksIHIsIHN0YXJ0QW5nbGUsIGVu
ZEFuZ2xlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2Fpcm9fYXJjKGNyLCBwLngoKSwg
cC55KCksIHIsIHN0YXJ0QW5nbGUsIGVuZEFuZ2xlKTsKKyAgICB9CiB9CiAKIHZvaWQgUGF0aDo6
YWRkQXJjVG8oY29uc3QgRmxvYXRQb2ludCYgcDEsIGNvbnN0IEZsb2F0UG9pbnQmIHAyLCBmbG9h
dCByYWRpdXMpCg==
</data>
<flag name="review"
          id="69703"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>