<?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>34544</bug_id>
          
          <creation_ts>2010-02-03 15:25:44 -0800</creation_ts>
          <short_desc>[Chromium] RenderTheme does not draw focus rings on SL for checkboxes, radio buttons</short_desc>
          <delta_ts>2010-02-09 19:25:59 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</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="Avi Drissman">avi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>mitz</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187522</commentid>
    <comment_count>0</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-03 15:25:44 -0800</bug_when>
    <thetext>Downstream bug at http://code.google.com/p/chromium/issues/detail?id=27493 .

Explanation and fix in patch, to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187523</commentid>
    <comment_count>1</comment_count>
      <attachid>48071</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-03 15:27:26 -0800</bug_when>
    <thetext>Created attachment 48071
Patch to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187555</commentid>
    <comment_count>2</comment_count>
      <attachid>48071</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-03 17:03:35 -0800</bug_when>
    <thetext>Comment on attachment 48071
Patch to fix.

I don&apos;t know why I was CCed on this bug. But since I was, I looked. And I couldn&apos;t get past the wall of text comment and the poor class name, namespaces and methods that have 7604051 littered all over. Be more creative and name these things better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187579</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-03 18:05:58 -0800</bug_when>
    <thetext>I CC&apos;d you on it because you speak Obj-C much better than I (and much of the WebKit project) do these days.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187796</commentid>
    <comment_count>4</comment_count>
      <attachid>48143</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-04 08:03:22 -0800</bug_when>
    <thetext>Created attachment 48143
Updated per review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187800</commentid>
    <comment_count>5</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-04 08:08:02 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; And I
&gt; couldn&apos;t get past the wall of text comment and the poor class name, namespaces
&gt; and methods that have 7604051 littered all over. Be more creative and name
&gt; these things better.

Timothy:

I take it that there were two issues that you had a concern with:

1. The use of &quot;7604051&quot; all over the place.
2. The size of the comment.

Do I read your review correctly?

In response to 1, I agree. The patch section is pretty well-delimited, so internally it&apos;s not necessary to label everything. (Updated patch attached.)

As for 2, I disagree. While I know that WebKit style tends to be comment-light, there&apos;s nothing in the style guide that prohibits explanatory comments. Since the bug and the fix are both rather opaque, I feel that a comment is definitely worthwhile in this instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188214</commentid>
    <comment_count>6</comment_count>
      <attachid>48143</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2010-02-05 10:38:24 -0800</bug_when>
    <thetext>Comment on attachment 48143
Updated per review

I don&apos;t feel comfortable reviewing Objective-C but I can help with general stuff to make it easier for an Objective-C reviewer.


&gt; Index: WebCore/platform/chromium/ThemeChromiumMac.mm
&gt; @@ -47,6 +48,7 @@ using namespace std;
&gt;  //   rendering.
&gt;  // - In updateStates() the code to update the cells&apos; inactive state.
&gt;  // - In paintButton() the code to save/restore the window&apos;s default button cell.
&gt; +// - The Fix7604051 code and the calls to it.

How about:
// - A focus indication fix for radio buttons/checkboxes on Snow Leopard.
instead?


&gt; +// --- START FIX FOR RADAR 7604051 ---

Is there a better name for the bug other than &quot;RADAR 7604051&quot; (like &quot;START FIX FOR radio button/checkbox focus indication on Snow Leopard.)


How about shortening the comment to this?

On Snow Leopard in the focus ring drawing code, it calls +[NSView focusView] to get 
the currently focused view. The focus ring drawing code then calls a rect-returning
method on that view, and uses that rect to clip.  If there is no focus view, the rect
returned from that method is garbage which results in clipping out the selection glow
entirely.

To fix this, do some quick swizzling to make sure that the focus ring code is works
properly if a test of drawing the focus ring into contexts fails.

FIXME: After rdar://problem/7604051 is fixed on all supported platforms, remove this code.


&gt; +@interface TCMVisibleView : NSView
&gt; +
&gt; +@end
&gt; +
&gt; +@implementation TCMVisibleView
&gt; +
&gt; +- (struct CGRect)_focusRingVisibleRect {

Braces for functions start on the next line (many instances of this but I&apos;m only flagging the first).


&gt; +namespace Fix7604051 {

Perhaps FocusIndicationFix 

&gt; +    return (pixel == 0);

WebKit style is to avoid comparisons to 0. Use &quot;return !pixel;&quot; instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188246</commentid>
    <comment_count>7</comment_count>
      <attachid>48248</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-05 12:24:54 -0800</bug_when>
    <thetext>Created attachment 48248
Update style, comment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188247</commentid>
    <comment_count>8</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-05 12:26:30 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 48143 [details])
&gt; I don&apos;t feel comfortable reviewing Objective-C but I can help with general
&gt; stuff to make it easier for an Objective-C reviewer.

Made all changes suggested; tweaked your revised comment slightly but it&apos;s still significantly shorter.

Timothy, looks like you&apos;re our Obj-C guy. What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188994</commentid>
    <comment_count>9</comment_count>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-09 07:24:59 -0800</bug_when>
    <thetext>Ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189010</commentid>
    <comment_count>10</comment_count>
      <attachid>48248</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-09 07:48:58 -0800</bug_when>
    <thetext>Comment on attachment 48248
Update style, comment


&gt; ++ (NSView*)TCMInterposing_focusView;

Should have a space between the type and the star for ObjC types.

&gt; +BOOL CurrentOSHasSetFocusRingStyleInBitmapBug()

You should use bool. Should start with a lowercase &quot;c&quot;.

&gt; +    UInt32 *pixelPlane = &amp;pixel;
&gt; +    UInt32 **pixelPlanes = &amp;pixelPlane;

Put the stars next to the type here.

&gt; +    NSBitmapImageRep *bitmap = [[NSBitmapImageRep alloc] initWithBitmapDataPlanes:(unsigned char **)pixelPlanes

Use UInt8 to match the UInt32s used earlier. No space should be between the type and stars.

&gt; +    NSRectFill(NSMakeRect(0,0,1,1));

Spaces needed after the commas.

&gt; +bool swizzle()

Could use a more descriptive name since the swizzles specific methods.

&gt; +class ScopedFixer
&gt; +{

Brace should go on the previous line.

&gt; ++ (NSView*)TCMInterposing_focusView

Space between the star and ObjC type.

&gt; +    NSView* view = [self TCMInterposing_focusView];

Srar should be next to the variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189017</commentid>
    <comment_count>11</comment_count>
      <attachid>48248</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2010-02-09 07:55:41 -0800</bug_when>
    <thetext>Comment on attachment 48248
Update style, comment

&gt; ++ (NSView*)TCMInterposing_focusView
&gt; +{
&gt; +    NSView* view = [self TCMInterposing_focusView];

Also this should have a comment so it is clear you are calling the old method here because the were swizzled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189033</commentid>
    <comment_count>12</comment_count>
      <attachid>48418</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-09 08:27:07 -0800</bug_when>
    <thetext>Created attachment 48418
Update for style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189035</commentid>
    <comment_count>13</comment_count>
      <attachid>48419</attachid>
    <who name="Avi Drissman">avi</who>
    <bug_when>2010-02-09 08:29:10 -0800</bug_when>
    <thetext>Created attachment 48419
Update for style (fixed double ChangeLog)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189214</commentid>
    <comment_count>14</comment_count>
      <attachid>48419</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-09 19:25:49 -0800</bug_when>
    <thetext>Comment on attachment 48419
Update for style (fixed double ChangeLog)

Clearing flags on attachment: 48419

Committed r54582: &lt;http://trac.webkit.org/changeset/54582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189215</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-09 19:25:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48071</attachid>
            <date>2010-02-03 15:27:26 -0800</date>
            <delta_ts>2010-02-04 08:03:22 -0800</delta_ts>
            <desc>Patch to fix.</desc>
            <filename>ring</filename>
            <type>text/plain</type>
            <size>8385</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDMwNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDItMDMgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hy
b21pdW0gUmVuZGVyVGhlbWUgZG9lcyBub3QgZHJhdyBmb2N1cyByaW5ncyBvbiBTTCBmb3IgY2hl
Y2tib3hlcywgcmFkaW8gYnV0dG9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQ1NDQKKworICAgICAgICBDb3ZlcmVkIGJ5IHBpeGVsIHRlc3RzLCB3
aGVuIHJ1biBvbiBTbm93IExlb3BhcmQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9U
aGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoLVtGaXg3NjA0MDUxVmlzaWJsZVZpZXcgX2Zv
Y3VzUmluZ1Zpc2libGVSZWN0XSk6CisgICAgICAgICgtW0ZpeDc2MDQwNTFWaXNpYmxlVmlldyBf
Zm9jdXNSaW5nQ2xpcEFuY2VzdG9yXSk6CisgICAgICAgIChGaXg3NjA0MDUxOjpDdXJyZW50T1NI
YXNTZXRGb2N1c1JpbmdTdHlsZUluQml0bWFwQnVnKToKKyAgICAgICAgKEZpeDc2MDQwNTE6OnN3
aXp6bGUpOgorICAgICAgICAoRml4NzYwNDA1MTo6U2NvcGVkRml4ZXI6OlNjb3BlZEZpeGVyKToK
KyAgICAgICAgKEZpeDc2MDQwNTE6OlNjb3BlZEZpeGVyOjp+U2NvcGVkRml4ZXIpOgorICAgICAg
ICAoK1tOU1ZpZXcgRml4NzYwNDA1MUludGVycG9zaW5nX2ZvY3VzVmlld10pOgorICAgICAgICAo
V2ViQ29yZTo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJhZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50QnV0dG9uKToKKwogMjAxMC0wMi0wMyAgTmF0ZSBDaGFw
aW4gIDxqYXBoZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVt
IG1hYyBidWlsZCBmaXguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RoZW1lQ2hy
b21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9UaGVt
ZUNocm9taXVtTWFjLm1tCShyZXZpc2lvbiA1NDMwNikKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vVGhlbWVDaHJvbWl1bU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBA
QAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPG9iamMvcnVudGlt
ZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC00Nyw2ICs0OCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBzdGQ7CiAvLyAgIHJlbmRlcmluZy4KIC8vIC0gSW4gdXBkYXRlU3RhdGVzKCkgdGhl
IGNvZGUgdG8gdXBkYXRlIHRoZSBjZWxscycgaW5hY3RpdmUgc3RhdGUuCiAvLyAtIEluIHBhaW50
QnV0dG9uKCkgdGhlIGNvZGUgdG8gc2F2ZS9yZXN0b3JlIHRoZSB3aW5kb3cncyBkZWZhdWx0IGJ1
dHRvbiBjZWxsLgorLy8gLSBUaGUgRml4NzYwNDA1MSBjb2RlIGFuZCB0aGUgY2FsbHMgdG8gaXQu
CiAvLwogLy8gRm9yIGFsbCBvdGhlciBkaWZmZXJlbmNlcywgaWYgaXQgd2FzIGludHJvZHVjZWQg
aW4gdGhpcyBmaWxlLCB0aGVuIHRoZQogLy8gbWFpbnRhaW5lciBmb3Jnb3QgdG8gaW5jbHVkZSBp
dCBpbiB0aGUgbGlzdDsgb3RoZXJ3aXNlIGl0IGlzIGFuIHVwZGF0ZSB0aGF0CkBAIC01NCw2ICs1
NiwxMzggQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogLy8gRklYTUU6IERlZmF1bHQgYnV0dG9u
cyByZWFsbHkgc2hvdWxkIGJlIG1vcmUgbGlrZSBwdXNoIGJ1dHRvbnMgYW5kIG5vdCBsaWtlIGJ1
dHRvbnMuCiAKKy8vIC0tLSBTVEFSVCBGSVggRk9SIFJBREFSIDc2MDQwNTEgLS0tCisKKy8vIGh0
dHA6Ly9jcmJ1Zy5jb20vMjc0OTMgd2FzIGEgYnVnIGFib3V0IGNoZWNrYm94ZXMgYW5kIHJhZGlv
IGJ1dHRvbnMgbm90CisvLyBkaXNwbGF5aW5nIGEgZm9jdXMgcmluZyB3aGVuIHNlbGVjdGVkLCBi
dXQgb25seSBvbiBTbm93IExlb3BhcmQuIFdoYXQgd2FzCisvLyBjdXJpb3VzIGlzIHRoYXQgaWYg
dGhlIE5TQnV0dG9uQ2VsbCB3YXMgZHJhd2luZyBpbnRvIGEgdmlldyBpbiByZXNwb25zZSB0bwor
Ly8gaXRzIC1kcmF3UmVjdDosIGl0IGRyZXcgdGhlIGZvY3VzIHJpbmcganVzdCBmaW5lLiBPbmx5
IHdoZW4gdGhlIGNlbGwgd2FzIHRvbGQKKy8vIHRvIGRyYXcgaW50byBhIG5vbi12aWV3LWJhc2Vk
IGNvbnRleHQgZGlkIGl0IGZhaWwgdG8gZHJhdyB0aGUgcmluZy4KKy8vCisvLyBZZXMsIGJ1ZyBm
aWxlZDogcmRhcjovL3Byb2JsZW0vNzYwNDA1MSBodHRwOi8vb3BlbnJhZGFyLmFwcHNwb3QuY29t
Lzc2MDQwNTEgLgorLy8KKy8vIEV2ZXJ5IGdvb2QgT2JqZWN0aXZlLUMgcHJvZ3JhbW1lciBrbm93
cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3Ugc2VuZCBhIG1lc3NhZ2UKKy8vIHRvIG5pbC4gTm90aGlu
Zy4gVGhlIGRpc3BhdGNoIHJldHVybnMsIGFuZCBpZiB0aGVyZSB3YXMgYSByZXR1cm4gdmFsdWUg
ZnJvbQorLy8gdGhlIG1ldGhvZCwgaXQncyAwIG9yIG5pbCBvciAwLjAgKGV4Y2VwdCBmb3IgdGhh
dCBvbmUgdGltZSBvbiBQUEMgbWFjaGluZXMsCisvLyBidXQgd2Ugd2VyZSBkcnVuaykuIFNvIGV2
ZXJ5b25lIGp1c3QgZ29lcyBhcm91bmQgc2VuZGluZyBtZXNzYWdlcyB0byBuaWwgYW5kCisvLyBl
eHBlY3RpbmcgaXQgdG8gYmUgdG90YWxseSBzYWZlLgorLy8KKy8vIEFzIHRoZXkgc2F5LCBpdCdz
IGFsbCBmdW4gYW5kIGdhbWVzIHVudGlsIHNvbWVvbmUgbG9zZXMgYW4gZXllLiBGcm9tIGFuCisv
LyB1bmluaXRpYWxpemVkIHJldHVybiBzdHJ1Y3R1cmUuCisvLworLy8gV2hhdCBoYXBwZW5zIChh
Y2NvcmRpbmcgdG8gb3VyIGZyaWVuZHMgYXQgQXBwbGUpIGlzIHRoYXQgd2hlbiB0aGUgZm9jdXMg
cmluZworLy8gZHJhd2luZyBjb2RlIHJ1bnMsIGl0IGNhbGxzICtbTlNWaWV3IGZvY3VzVmlld10g
dG8gZ2V0IHRoZSBjdXJyZW50IHZpZXcgd2l0aAorLy8gdGhlIGZvY3VzLCB0byBnZXQgZGV0YWls
cyBvbiBob3cgdG8gY2xpcCB0aGUgZm9jdXMgcmluZy4gVGhlIGZvY3VzIHJpbmcKKy8vIGRyYXdp
bmcgY29kZSB0aGVuIGNhbGxzIGEgcmVjdC1yZXR1cm5pbmcgbWV0aG9kIG9uIHRoYXQgdmlldywg
YW5kIHVzZXMgdGhhdAorLy8gcmVjdCB0byBjbGlwLiAgSWYgdGhlcmUgaXMgbm8gZm9jdXMgdmll
dywgdGhlbiB0aGUgcmVjdCByZXR1cm4gdmFsdWUgZnJvbQorLy8gdGhhdCBtZXRob2QgaXMgZ2Fy
YmFnZS4gT24gTGVvcGFyZCwgdGhlIGdhcmJhZ2Ugd2FzIGVpdGhlciBlbXB0eSBvciBodWdlLCBh
bmQKKy8vIHRoZXJlIHdhcyBubyBwcm9ibGVtLiBPbiBTbm93IExlb3BhcmQsIHRoZSBnYXJiYWdl
IGlzIHBsYXVzaWJsZSBhbmQgY2xpcHMgb3V0CisvLyB0aGUgc2VsZWN0aW9uIGdsb3cgZW50aXJl
bHkuCisvLworLy8gVGh1cyB3ZSBkbyBhIHF1aWNrIHJ1bnRpbWUgY2hlY2sgdG8gc2VlIGlmIHRo
ZSBmb2N1cyByaW5nIHByb3Blcmx5IGRyYXdzCisvLyBpdHNlbGYgaW50byBjb250ZXh0cy4gSWYg
aXQgZG9lcyBub3QgdGhlbiB3ZSBkbyBzb21lIHF1aWNrIHN3aXp6bGluZyB0byBtYWtlCisvLyBz
dXJlIHRoYXQgdGhlIGZvY3VzIHJpbmcgY29kZSBpcyBhZGVxdWF0ZWx5IGRlbHVkZWQgaW50byB3
b3JraW5nIHByb3Blcmx5LgorLy8KKy8vIFNvbWVkYXkgaW4gdGhlIGZ1dHVyZSwgdGhlIG1pbmlt
dW0gcmVxdWlyZWQgc3lzdGVtIGZvciBDaHJvbWl1bSB3aWxsIGJlCisvLyBncmVhdGVyIHRoYW4g
U25vdyBMZW9wYXJkLiBBdCB0aGF0IHBvaW50LCBUT0RPKGF2aSk6dmVyaWZ5IHRoYXQgdGhpcwor
Ly8gd29ya2Fyb3VuZCBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCByZW1vdmUgdGhpcyBjb2RlLgor
CitAaW50ZXJmYWNlIEZpeDc2MDQwNTFWaXNpYmxlVmlldyA6IE5TVmlldworCitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBGaXg3NjA0MDUxVmlzaWJsZVZpZXcKKworLSAoc3RydWN0IENHUmVjdClf
Zm9jdXNSaW5nVmlzaWJsZVJlY3QgeworICAgIHJldHVybiBDR1JlY3RaZXJvOworfQorCistIChp
ZClfZm9jdXNSaW5nQ2xpcEFuY2VzdG9yIHsKKyAgICByZXR1cm4gc2VsZjsKK30KKworQGVuZAor
CitAaW50ZXJmYWNlIE5TVmlldyAoRml4NzYwNDA1MUludGVycG9zaW5nKQorKyAoTlNWaWV3KilG
aXg3NjA0MDUxSW50ZXJwb3NpbmdfZm9jdXNWaWV3OworQGVuZAorCituYW1lc3BhY2UgRml4NzYw
NDA1MSB7CisKK0JPT0wgQ3VycmVudE9TSGFzU2V0Rm9jdXNSaW5nU3R5bGVJbkJpdG1hcEJ1Zygp
IHsKKyAgICBVSW50MzIgcGl4ZWwgPSAwOworICAgIFVJbnQzMiAqcGl4ZWxQbGFuZSA9ICZwaXhl
bDsKKyAgICBVSW50MzIgKipwaXhlbFBsYW5lcyA9ICZwaXhlbFBsYW5lOworICAgIE5TQml0bWFw
SW1hZ2VSZXAgKmJpdG1hcCA9IFtbTlNCaXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhCaXRt
YXBEYXRhUGxhbmVzOih1bnNpZ25lZCBjaGFyICoqKXBpeGVsUGxhbmVzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHBpeGVsc1dpZGU6MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbHNIaWdoOjEKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0
c1BlclNhbXBsZTo4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGVzUGVyUGl4ZWw6NAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGhhc0FscGhhOllFUworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUGxhbmFyOk5PCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29s
b3JTcGFjZU5hbWU6TlNDYWxpYnJhdGVkUkdCQ29sb3JTcGFjZQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFw
Rm9ybWF0Ok5TQWxwaGFGaXJzdEJpdG1hcEZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93
OjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJpdHNQZXJQaXhlbDozMl07CisgICAgW05TR3JhcGhpY3NDb250ZXh0
IHNhdmVHcmFwaGljc1N0YXRlXTsKKyAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENv
bnRleHQ6W05TR3JhcGhpY3NDb250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhCaXRtYXBJbWFnZVJl
cDpiaXRtYXBdXTsKKyAgICBOU1NldEZvY3VzUmluZ1N0eWxlKE5TRm9jdXNSaW5nT25seSk7Cisg
ICAgTlNSZWN0RmlsbChOU01ha2VSZWN0KDAsMCwxLDEpKTsKKyAgICBbTlNHcmFwaGljc0NvbnRl
eHQgcmVzdG9yZUdyYXBoaWNzU3RhdGVdOworICAgIFtiaXRtYXAgcmVsZWFzZV07CisKKyAgICBy
ZXR1cm4gKHBpeGVsID09IDApOworfQorCitib29sIHN3aXp6bGUoKSB7CisgICAgaWYgKCFDdXJy
ZW50T1NIYXNTZXRGb2N1c1JpbmdTdHlsZUluQml0bWFwQnVnKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIENsYXNzIG5zdmlldyA9IFtOU1ZpZXcgY2xhc3NdOworICAgIE1ldGhvZCBt
MSA9IGNsYXNzX2dldENsYXNzTWV0aG9kKG5zdmlldywgQHNlbGVjdG9yKGZvY3VzVmlldykpOwor
ICAgIE1ldGhvZCBtMiA9IGNsYXNzX2dldENsYXNzTWV0aG9kKG5zdmlldywgQHNlbGVjdG9yKEZp
eDc2MDQwNTFJbnRlcnBvc2luZ19mb2N1c1ZpZXcpKTsKKyAgICBpZiAobTEgJiYgbTIpIHsKKyAg
ICAgICAgbWV0aG9kX2V4Y2hhbmdlSW1wbGVtZW50YXRpb25zKG0xLCBtMik7CisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wg
aW50ZXJwb3NlID0gZmFsc2U7CisKKy8vIEEgY2xhc3MgdG8gcmVzdHJpY3QgdGhlIGFtb3VudCBv
ZiB0aW1lIHNwZW50IG1lc3Npbmcgd2l0aCBpbnRlcnBvc2luZy4gSXQKKy8vIG9ubHkgc3RhY2tz
IG9uZS1kZWVwLgorY2xhc3MgU2NvcGVkRml4ZXIgeworcHVibGljOgorICAgIFNjb3BlZEZpeGVy
KCkgeworICAgICAgICBzdGF0aWMgYm9vbCBzd2l6emxlZCA9IHN3aXp6bGUoKTsKKyAgICAgICAg
aW50ZXJwb3NlID0gc3dpenpsZWQ7CisgICAgfQorCisgICAgflNjb3BlZEZpeGVyKCkgeworICAg
ICAgICBpbnRlcnBvc2UgPSBmYWxzZTsKKyAgICB9Cit9OworCit9ICAvLyBuYW1lc3BhY2UgRml4
NzYwNDA1MQorCitAaW1wbGVtZW50YXRpb24gTlNWaWV3IChGaXg3NjA0MDUxSW50ZXJwb3Npbmcp
CisKKysgKE5TVmlldyopRml4NzYwNDA1MUludGVycG9zaW5nX2ZvY3VzVmlldyB7CisgICAgTlNW
aWV3KiB2aWV3ID0gW3NlbGYgRml4NzYwNDA1MUludGVycG9zaW5nX2ZvY3VzVmlld107CisgICAg
aWYgKCF2aWV3ICYmIEZpeDc2MDQwNTE6OmludGVycG9zZSkgeworICAgICAgICBzdGF0aWMgRml4
NzYwNDA1MVZpc2libGVWaWV3KiBmaXhlZFZpZXcgPSBbW0ZpeDc2MDQwNTFWaXNpYmxlVmlldyBh
bGxvY10gaW5pdF07CisgICAgICAgIHZpZXcgPSBmaXhlZFZpZXc7CisgICAgfQorCisgICAgcmV0
dXJuIHZpZXc7Cit9CisKK0BlbmQKKworLy8gLS0tIEVORCBGSVggRk9SIFJBREFSIDc2MDQwNTEg
LS0tCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gUGljayB1cCB1dGlsaXR5IGZ1bmN0aW9u
IGZyb20gUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy4KQEAgLTI0MSw3ICszNzUsMTAgQEAgc3RhdGlj
IHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzIAogICAgICAgICBjb250ZXh0LT50cmFu
c2xhdGUoLWluZmxhdGVkUmVjdC54KCksIC1pbmZsYXRlZFJlY3QueSgpKTsKICAgICB9CiAKLSAg
ICBbY2hlY2tib3hDZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3
OkZsaXBwZWRWaWV3KCldOworICAgIHsKKyAgICAgICAgRml4NzYwNDA1MTo6U2NvcGVkRml4ZXIg
Zml4NzYwNDA1MTsKKyAgICAgICAgW2NoZWNrYm94Q2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChp
bmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygpXTsKKyAgICB9CiAgICAgW2NoZWNrYm94
Q2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAgICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAt
MzE5LDcgKzQ1NiwxMCBAQCBzdGF0aWMgdm9pZCBwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMgc3Rh
CiAgICAgfQogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAgW3JhZGlvQ2Vs
bCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygp
XTsKKyAgICB7CisgICAgICAgIEZpeDc2MDQwNTE6OlNjb3BlZEZpeGVyIGZpeDc2MDQwNTE7Cisg
ICAgICAgIFtyYWRpb0NlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZp
ZXc6RmxpcHBlZFZpZXcoKV07CisgICAgfQogICAgIFtyYWRpb0NlbGwgc2V0Q29udHJvbFZpZXc6
bmlsXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKQEAgLTQyOSw3ICs1NjksMTAg
QEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQgcGFydAogICAgICAgICB9CiAg
ICAgfQogCi0gICAgW2J1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0
KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgeworICAgICAgICBGaXg3NjA0MDUxOjpTY29w
ZWRGaXhlciBmaXg3NjA0MDUxOworICAgICAgICBbYnV0dG9uQ2VsbCBkcmF3V2l0aEZyYW1lOk5T
UmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygpXTsKKyAgICB9CiAgICAgW2J1
dHRvbkNlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMK
</data>
<flag name="review"
          id="30689"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48143</attachid>
            <date>2010-02-04 08:03:22 -0800</date>
            <delta_ts>2010-02-05 12:24:54 -0800</delta_ts>
            <desc>Updated per review</desc>
            <filename>ring</filename>
            <type>text/plain</type>
            <size>8282</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDM0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDItMDMgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hy
b21pdW0gUmVuZGVyVGhlbWUgZG9lcyBub3QgZHJhdyBmb2N1cyByaW5ncyBvbiBTTCBmb3IgY2hl
Y2tib3hlcywgcmFkaW8gYnV0dG9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQ1NDQKKworICAgICAgICBDb3ZlcmVkIGJ5IHBpeGVsIHRlc3RzLCB3
aGVuIHJ1biBvbiBTbm93IExlb3BhcmQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9U
aGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoLVtGaXg3NjA0MDUxVmlzaWJsZVZpZXcgX2Zv
Y3VzUmluZ1Zpc2libGVSZWN0XSk6CisgICAgICAgICgtW0ZpeDc2MDQwNTFWaXNpYmxlVmlldyBf
Zm9jdXNSaW5nQ2xpcEFuY2VzdG9yXSk6CisgICAgICAgIChGaXg3NjA0MDUxOjpDdXJyZW50T1NI
YXNTZXRGb2N1c1JpbmdTdHlsZUluQml0bWFwQnVnKToKKyAgICAgICAgKEZpeDc2MDQwNTE6OnN3
aXp6bGUpOgorICAgICAgICAoRml4NzYwNDA1MTo6U2NvcGVkRml4ZXI6OlNjb3BlZEZpeGVyKToK
KyAgICAgICAgKEZpeDc2MDQwNTE6OlNjb3BlZEZpeGVyOjp+U2NvcGVkRml4ZXIpOgorICAgICAg
ICAoK1tOU1ZpZXcgRml4NzYwNDA1MUludGVycG9zaW5nX2ZvY3VzVmlld10pOgorICAgICAgICAo
V2ViQ29yZTo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJhZGlvKToK
KyAgICAgICAgKFdlYkNvcmU6OnBhaW50QnV0dG9uKToKKwogMjAxMC0wMi0wNCAgQW50b24gTXVo
aW4gIDxhbnRvbm1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RoZW1lQ2hyb21pdW1NYWMubW0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9UaGVtZUNocm9taXVtTWFj
Lm1tCShyZXZpc2lvbiA1NDM0MikKKysrIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVD
aHJvbWl1bU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAi
U2Nyb2xsVmlldy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2luY2x1
ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogCiB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC00Nyw2ICs0OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiAvLyAgIHJlbmRlcmluZy4KIC8vIC0gSW4gdXBkYXRlU3RhdGVzKCkgdGhlIGNvZGUgdG8gdXBk
YXRlIHRoZSBjZWxscycgaW5hY3RpdmUgc3RhdGUuCiAvLyAtIEluIHBhaW50QnV0dG9uKCkgdGhl
IGNvZGUgdG8gc2F2ZS9yZXN0b3JlIHRoZSB3aW5kb3cncyBkZWZhdWx0IGJ1dHRvbiBjZWxsLgor
Ly8gLSBUaGUgRml4NzYwNDA1MSBjb2RlIGFuZCB0aGUgY2FsbHMgdG8gaXQuCiAvLwogLy8gRm9y
IGFsbCBvdGhlciBkaWZmZXJlbmNlcywgaWYgaXQgd2FzIGludHJvZHVjZWQgaW4gdGhpcyBmaWxl
LCB0aGVuIHRoZQogLy8gbWFpbnRhaW5lciBmb3Jnb3QgdG8gaW5jbHVkZSBpdCBpbiB0aGUgbGlz
dDsgb3RoZXJ3aXNlIGl0IGlzIGFuIHVwZGF0ZSB0aGF0CkBAIC01NCw2ICs1NiwxMzggQEAgdXNp
bmcgbmFtZXNwYWNlIHN0ZDsKIAogLy8gRklYTUU6IERlZmF1bHQgYnV0dG9ucyByZWFsbHkgc2hv
dWxkIGJlIG1vcmUgbGlrZSBwdXNoIGJ1dHRvbnMgYW5kIG5vdCBsaWtlIGJ1dHRvbnMuCiAKKy8v
IC0tLSBTVEFSVCBGSVggRk9SIFJBREFSIDc2MDQwNTEgLS0tCisKKy8vIGh0dHA6Ly9jcmJ1Zy5j
b20vMjc0OTMgd2FzIGEgYnVnIGFib3V0IGNoZWNrYm94ZXMgYW5kIHJhZGlvIGJ1dHRvbnMgbm90
CisvLyBkaXNwbGF5aW5nIGEgZm9jdXMgcmluZyB3aGVuIHNlbGVjdGVkLCBidXQgb25seSBvbiBT
bm93IExlb3BhcmQuIFdoYXQgd2FzCisvLyBjdXJpb3VzIGlzIHRoYXQgaWYgdGhlIE5TQnV0dG9u
Q2VsbCB3YXMgZHJhd2luZyBpbnRvIGEgdmlldyBpbiByZXNwb25zZSB0bworLy8gaXRzIC1kcmF3
UmVjdDosIGl0IGRyZXcgdGhlIGZvY3VzIHJpbmcganVzdCBmaW5lLiBPbmx5IHdoZW4gdGhlIGNl
bGwgd2FzIHRvbGQKKy8vIHRvIGRyYXcgaW50byBhIG5vbi12aWV3LWJhc2VkIGNvbnRleHQgZGlk
IGl0IGZhaWwgdG8gZHJhdyB0aGUgcmluZy4KKy8vCisvLyBZZXMsIGJ1ZyBmaWxlZDogcmRhcjov
L3Byb2JsZW0vNzYwNDA1MSBodHRwOi8vb3BlbnJhZGFyLmFwcHNwb3QuY29tLzc2MDQwNTEgLgor
Ly8KKy8vIEV2ZXJ5IGdvb2QgT2JqZWN0aXZlLUMgcHJvZ3JhbW1lciBrbm93cyB3aGF0IGhhcHBl
bnMgd2hlbiB5b3Ugc2VuZCBhIG1lc3NhZ2UKKy8vIHRvIG5pbC4gTm90aGluZy4gVGhlIGRpc3Bh
dGNoIHJldHVybnMsIGFuZCBpZiB0aGVyZSB3YXMgYSByZXR1cm4gdmFsdWUgZnJvbQorLy8gdGhl
IG1ldGhvZCwgaXQncyAwIG9yIG5pbCBvciAwLjAgKGV4Y2VwdCBmb3IgdGhhdCBvbmUgdGltZSBv
biBQUEMgbWFjaGluZXMsCisvLyBidXQgd2Ugd2VyZSBkcnVuaykuIFNvIGV2ZXJ5b25lIGp1c3Qg
Z29lcyBhcm91bmQgc2VuZGluZyBtZXNzYWdlcyB0byBuaWwgYW5kCisvLyBleHBlY3RpbmcgaXQg
dG8gYmUgdG90YWxseSBzYWZlLgorLy8KKy8vIEFzIHRoZXkgc2F5LCBpdCdzIGFsbCBmdW4gYW5k
IGdhbWVzIHVudGlsIHNvbWVvbmUgbG9zZXMgYW4gZXllLiBGcm9tIGFuCisvLyB1bmluaXRpYWxp
emVkIHJldHVybiBzdHJ1Y3R1cmUuCisvLworLy8gV2hhdCBoYXBwZW5zIChhY2NvcmRpbmcgdG8g
b3VyIGZyaWVuZHMgYXQgQXBwbGUpIGlzIHRoYXQgd2hlbiB0aGUgZm9jdXMgcmluZworLy8gZHJh
d2luZyBjb2RlIHJ1bnMsIGl0IGNhbGxzICtbTlNWaWV3IGZvY3VzVmlld10gdG8gZ2V0IHRoZSBj
dXJyZW50IHZpZXcgd2l0aAorLy8gdGhlIGZvY3VzLCB0byBnZXQgZGV0YWlscyBvbiBob3cgdG8g
Y2xpcCB0aGUgZm9jdXMgcmluZy4gVGhlIGZvY3VzIHJpbmcKKy8vIGRyYXdpbmcgY29kZSB0aGVu
IGNhbGxzIGEgcmVjdC1yZXR1cm5pbmcgbWV0aG9kIG9uIHRoYXQgdmlldywgYW5kIHVzZXMgdGhh
dAorLy8gcmVjdCB0byBjbGlwLiAgSWYgdGhlcmUgaXMgbm8gZm9jdXMgdmlldywgdGhlbiB0aGUg
cmVjdCByZXR1cm4gdmFsdWUgZnJvbQorLy8gdGhhdCBtZXRob2QgaXMgZ2FyYmFnZS4gT24gTGVv
cGFyZCwgdGhlIGdhcmJhZ2Ugd2FzIGVpdGhlciBlbXB0eSBvciBodWdlLCBhbmQKKy8vIHRoZXJl
IHdhcyBubyBwcm9ibGVtLiBPbiBTbm93IExlb3BhcmQsIHRoZSBnYXJiYWdlIGlzIHBsYXVzaWJs
ZSBhbmQgY2xpcHMgb3V0CisvLyB0aGUgc2VsZWN0aW9uIGdsb3cgZW50aXJlbHkuCisvLworLy8g
VGh1cyB3ZSBkbyBhIHF1aWNrIHJ1bnRpbWUgY2hlY2sgdG8gc2VlIGlmIHRoZSBmb2N1cyByaW5n
IHByb3Blcmx5IGRyYXdzCisvLyBpdHNlbGYgaW50byBjb250ZXh0cy4gSWYgaXQgZG9lcyBub3Qg
dGhlbiB3ZSBkbyBzb21lIHF1aWNrIHN3aXp6bGluZyB0byBtYWtlCisvLyBzdXJlIHRoYXQgdGhl
IGZvY3VzIHJpbmcgY29kZSBpcyBhZGVxdWF0ZWx5IGRlbHVkZWQgaW50byB3b3JraW5nIHByb3Bl
cmx5LgorLy8KKy8vIFNvbWVkYXkgaW4gdGhlIGZ1dHVyZSwgdGhlIG1pbmltdW0gcmVxdWlyZWQg
c3lzdGVtIGZvciBDaHJvbWl1bSB3aWxsIGJlCisvLyBncmVhdGVyIHRoYW4gU25vdyBMZW9wYXJk
LiBBdCB0aGF0IHBvaW50LCBUT0RPKGF2aSk6dmVyaWZ5IHRoYXQgdGhpcworLy8gd29ya2Fyb3Vu
ZCBpcyBubyBsb25nZXIgbmVlZGVkIGFuZCByZW1vdmUgdGhpcyBjb2RlLgorCitAaW50ZXJmYWNl
IFRDTVZpc2libGVWaWV3IDogTlNWaWV3CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRDTVZp
c2libGVWaWV3CisKKy0gKHN0cnVjdCBDR1JlY3QpX2ZvY3VzUmluZ1Zpc2libGVSZWN0IHsKKyAg
ICByZXR1cm4gQ0dSZWN0WmVybzsKK30KKworLSAoaWQpX2ZvY3VzUmluZ0NsaXBBbmNlc3RvciB7
CisgICAgcmV0dXJuIHNlbGY7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBOU1ZpZXcgKFRDTUlu
dGVycG9zaW5nKQorKyAoTlNWaWV3KilUQ01JbnRlcnBvc2luZ19mb2N1c1ZpZXc7CitAZW5kCisK
K25hbWVzcGFjZSBGaXg3NjA0MDUxIHsKKworQk9PTCBDdXJyZW50T1NIYXNTZXRGb2N1c1JpbmdT
dHlsZUluQml0bWFwQnVnKCkgeworICAgIFVJbnQzMiBwaXhlbCA9IDA7CisgICAgVUludDMyICpw
aXhlbFBsYW5lID0gJnBpeGVsOworICAgIFVJbnQzMiAqKnBpeGVsUGxhbmVzID0gJnBpeGVsUGxh
bmU7CisgICAgTlNCaXRtYXBJbWFnZVJlcCAqYml0bWFwID0gW1tOU0JpdG1hcEltYWdlUmVwIGFs
bG9jXSBpbml0V2l0aEJpdG1hcERhdGFQbGFuZXM6KHVuc2lnbmVkIGNoYXIgKiopcGl4ZWxQbGFu
ZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGl4ZWxzV2lkZToxCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsc0hpZ2g6
MQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBiaXRzUGVyU2FtcGxlOjgKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZXNQZXJQaXhlbDo0
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGFzQWxwaGE6WUVTCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNQbGFuYXI6
Tk8KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb2xvclNwYWNlTmFtZTpOU0NhbGlicmF0ZWRSR0JDb2xvclNwYWNlCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBiaXRtYXBGb3JtYXQ6TlNBbHBoYUZpcnN0Qml0bWFwRm9ybWF0CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnl0ZXNQZXJSb3c6NAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c1BlclBpeGVsOjMyXTsKKyAgICBb
TlNHcmFwaGljc0NvbnRleHQgc2F2ZUdyYXBoaWNzU3RhdGVdOworICAgIFtOU0dyYXBoaWNzQ29u
dGV4dCBzZXRDdXJyZW50Q29udGV4dDpbTlNHcmFwaGljc0NvbnRleHQgZ3JhcGhpY3NDb250ZXh0
V2l0aEJpdG1hcEltYWdlUmVwOmJpdG1hcF1dOworICAgIE5TU2V0Rm9jdXNSaW5nU3R5bGUoTlNG
b2N1c1JpbmdPbmx5KTsKKyAgICBOU1JlY3RGaWxsKE5TTWFrZVJlY3QoMCwwLDEsMSkpOworICAg
IFtOU0dyYXBoaWNzQ29udGV4dCByZXN0b3JlR3JhcGhpY3NTdGF0ZV07CisgICAgW2JpdG1hcCBy
ZWxlYXNlXTsKKworICAgIHJldHVybiAocGl4ZWwgPT0gMCk7Cit9CisKK2Jvb2wgc3dpenpsZSgp
IHsKKyAgICBpZiAoIUN1cnJlbnRPU0hhc1NldEZvY3VzUmluZ1N0eWxlSW5CaXRtYXBCdWcoKSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ2xhc3MgbnN2aWV3ID0gW05TVmlldyBjbGFz
c107CisgICAgTWV0aG9kIG0xID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QobnN2aWV3LCBAc2VsZWN0
b3IoZm9jdXNWaWV3KSk7CisgICAgTWV0aG9kIG0yID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QobnN2
aWV3LCBAc2VsZWN0b3IoVENNSW50ZXJwb3NpbmdfZm9jdXNWaWV3KSk7CisgICAgaWYgKG0xICYm
IG0yKSB7CisgICAgICAgIG1ldGhvZF9leGNoYW5nZUltcGxlbWVudGF0aW9ucyhtMSwgbTIpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0
YXRpYyBib29sIGludGVycG9zZSA9IGZhbHNlOworCisvLyBBIGNsYXNzIHRvIHJlc3RyaWN0IHRo
ZSBhbW91bnQgb2YgdGltZSBzcGVudCBtZXNzaW5nIHdpdGggaW50ZXJwb3NpbmcuIEl0CisvLyBv
bmx5IHN0YWNrcyBvbmUtZGVlcC4KK2NsYXNzIFNjb3BlZEZpeGVyIHsKK3B1YmxpYzoKKyAgICBT
Y29wZWRGaXhlcigpIHsKKyAgICAgICAgc3RhdGljIGJvb2wgc3dpenpsZWQgPSBzd2l6emxlKCk7
CisgICAgICAgIGludGVycG9zZSA9IHN3aXp6bGVkOworICAgIH0KKworICAgIH5TY29wZWRGaXhl
cigpIHsKKyAgICAgICAgaW50ZXJwb3NlID0gZmFsc2U7CisgICAgfQorfTsKKworfSAgLy8gbmFt
ZXNwYWNlIEZpeDc2MDQwNTEKKworQGltcGxlbWVudGF0aW9uIE5TVmlldyAoVENNSW50ZXJwb3Np
bmcpCisKKysgKE5TVmlldyopVENNSW50ZXJwb3NpbmdfZm9jdXNWaWV3IHsKKyAgICBOU1ZpZXcq
IHZpZXcgPSBbc2VsZiBUQ01JbnRlcnBvc2luZ19mb2N1c1ZpZXddOworICAgIGlmICghdmlldyAm
JiBGaXg3NjA0MDUxOjppbnRlcnBvc2UpIHsKKyAgICAgICAgc3RhdGljIFRDTVZpc2libGVWaWV3
KiBmaXhlZFZpZXcgPSBbW1RDTVZpc2libGVWaWV3IGFsbG9jXSBpbml0XTsKKyAgICAgICAgdmll
dyA9IGZpeGVkVmlldzsKKyAgICB9CisKKyAgICByZXR1cm4gdmlldzsKK30KKworQGVuZAorCisv
LyAtLS0gRU5EIEZJWCBGT1IgUkFEQVIgNzYwNDA1MSAtLS0KKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAvLyBQaWNrIHVwIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBSZW5kZXJUaGVtZUNocm9taXVt
TWFjLgpAQCAtMjQxLDcgKzM3NSwxMCBAQCBzdGF0aWMgdm9pZCBwYWludENoZWNrYm94KENvbnRy
b2xTdGF0ZXMgCiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtaW5mbGF0ZWRSZWN0LngoKSwg
LWluZmxhdGVkUmVjdC55KCkpOwogICAgIH0KIAotICAgIFtjaGVja2JveENlbGwgZHJhd1dpdGhG
cmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgewor
ICAgICAgICBGaXg3NjA0MDUxOjpTY29wZWRGaXhlciBmaXg7CisgICAgICAgIFtjaGVja2JveENl
bGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXco
KV07CisgICAgfQogICAgIFtjaGVja2JveENlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKIAogICAg
IGNvbnRleHQtPnJlc3RvcmUoKTsKQEAgLTMxOSw3ICs0NTYsMTAgQEAgc3RhdGljIHZvaWQgcGFp
bnRSYWRpbyhDb250cm9sU3RhdGVzIHN0YQogICAgIH0KIAogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUwotICAgIFtyYWRpb0NlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRS
ZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgeworICAgICAgICBGaXg3NjA0MDUxOjpT
Y29wZWRGaXhlciBmaXg7CisgICAgICAgIFtyYWRpb0NlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3Qo
aW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgfQogICAgIFtyYWRpb0Nl
bGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAK
QEAgLTQyOSw3ICs1NjksMTAgQEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFBhcnQg
cGFydAogICAgICAgICB9CiAgICAgfQogCi0gICAgW2J1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTpO
U1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgeworICAgICAg
ICBGaXg3NjA0MDUxOjpTY29wZWRGaXhlciBmaXg7CisgICAgICAgIFtidXR0b25DZWxsIGRyYXdX
aXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAg
IH0KICAgICBbYnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwo=
</data>
<flag name="review"
          id="30767"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48248</attachid>
            <date>2010-02-05 12:24:54 -0800</date>
            <delta_ts>2010-02-09 08:27:07 -0800</delta_ts>
            <desc>Update style, comment</desc>
            <filename>ring</filename>
            <type>text/plain</type>
            <size>7313</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDQzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDItMDUgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBSZW5kZXJUaGVtZSBkb2VzIG5vdCBkcmF3IGZvY3VzIHJpbmdzIG9uIFNMIGZvciBj
aGVja2JveGVzLCByYWRpbyBidXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDU0NAorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQor
CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVDaHJvbWl1bU1hYy5tbToKKyAgICAg
ICAgKC1bVENNVmlzaWJsZVZpZXcgX2ZvY3VzUmluZ1Zpc2libGVSZWN0XSk6CisgICAgICAgICgt
W1RDTVZpc2libGVWaWV3IF9mb2N1c1JpbmdDbGlwQW5jZXN0b3JdKToKKyAgICAgICAgKEZvY3Vz
SW5kaWNhdGlvbkZpeDo6Q3VycmVudE9TSGFzU2V0Rm9jdXNSaW5nU3R5bGVJbkJpdG1hcEJ1Zyk6
CisgICAgICAgIChGb2N1c0luZGljYXRpb25GaXg6OnN3aXp6bGUpOgorICAgICAgICAoRm9jdXNJ
bmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6U2NvcGVkRml4ZXIpOgorICAgICAgICAoRm9jdXNJ
bmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6flNjb3BlZEZpeGVyKToKKyAgICAgICAgKCtbTlNW
aWV3IFRDTUludGVycG9zaW5nX2ZvY3VzVmlld10pOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRD
aGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpwYWludFJhZGlvKToKKyAgICAgICAgKFdlYkNv
cmU6OnBhaW50QnV0dG9uKToKKwogMjAxMC0wMi0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYW4gQmVybnN0ZWluLgpJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9UaGVtZUNocm9taXVtTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVDaHJvbWl1bU1hYy5tbQkocmV2
aXNpb24gNTQ0MzgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1RoZW1lQ2hyb21pdW1N
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIlNjcm9sbFZp
ZXcuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KIAogdXNpbmcgbmFtZXNw
YWNlIHN0ZDsKIApAQCAtNDcsNiArNDgsOCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogLy8gICBy
ZW5kZXJpbmcuCiAvLyAtIEluIHVwZGF0ZVN0YXRlcygpIHRoZSBjb2RlIHRvIHVwZGF0ZSB0aGUg
Y2VsbHMnIGluYWN0aXZlIHN0YXRlLgogLy8gLSBJbiBwYWludEJ1dHRvbigpIHRoZSBjb2RlIHRv
IHNhdmUvcmVzdG9yZSB0aGUgd2luZG93J3MgZGVmYXVsdCBidXR0b24gY2VsbC4KKy8vIC0gVGhl
IFNub3cgTGVvcGFyZCBmb2N1cyByaW5nIGJ1ZyBmaXggYW5kIGl0cyB1c2UgYXJvdW5kIGV2ZXJ5
IGNhbGwgdG8KKy8vICAgLVtOU0J1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTppblZpZXc6XS4KIC8v
CiAvLyBGb3IgYWxsIG90aGVyIGRpZmZlcmVuY2VzLCBpZiBpdCB3YXMgaW50cm9kdWNlZCBpbiB0
aGlzIGZpbGUsIHRoZW4gdGhlCiAvLyBtYWludGFpbmVyIGZvcmdvdCB0byBpbmNsdWRlIGl0IGlu
IHRoZSBsaXN0OyBvdGhlcndpc2UgaXQgaXMgYW4gdXBkYXRlIHRoYXQKQEAgLTU0LDYgKzU3LDEz
MCBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiAvLyBGSVhNRTogRGVmYXVsdCBidXR0b25zIHJl
YWxseSBzaG91bGQgYmUgbW9yZSBsaWtlIHB1c2ggYnV0dG9ucyBhbmQgbm90IGxpa2UgYnV0dG9u
cy4KIAorLy8gLS0tIFNUQVJUIGZpeCBmb3IgU25vdyBMZW9wYXJkIGZvY3VzIHJpbmcgYnVnIC0t
LQorCisvLyBUaGVyZSBpcyBhIGJ1ZyBpbiB0aGUgQ29jb2EgZm9jdXMgcmluZyBkcmF3aW5nIGNv
ZGUuIFRoZSBjb2RlIGNhbGxzICtbTlNWaWV3CisvLyBmb2N1c1ZpZXddICh0byBnZXQgdGhlIGN1
cnJlbnRseSBmb2N1c2VkIHZpZXcpIGFuZCB0aGVuIGNhbGxzIGFuIE5TUmVjdC0KKy8vIHJldHVy
bmluZyBtZXRob2Qgb24gdGhhdCB2aWV3IHRvIG9idGFpbiBhIGNsaXBwaW5nIHJlY3QuIEhvd2V2
ZXIsIGlmIHRoZXJlIGlzCisvLyBubyBmb2N1c2VkIHZpZXcgKGFzIHRoZXJlIHdvbid0IGJlIGlm
IHRoZSBkZXN0aW5hdGlvbiBpcyBhIGNvbnRleHQpLCB0aGUgcmVjdAorLy8gcmV0dXJuZWQgZnJv
bSB0aGUgbWV0aG9kIGludm9jYXRpb24gb24gbmlsIGlzIGdhcmJhZ2UuCisvLworLy8gVGhlIGdh
cmJhZ2UgZm9ydHVuYXRlbHkgZG9lcyBub3QgY2xpcCB0aGUgZm9jdXMgcmluZyBvbiBMZW9wYXJk
LCBidXQKKy8vIHVuZm9ydHVuYXRlbHkgZG9lcyBzbyBvbiBTbm93IExlb3BhcmQuIFRoZXJlZm9y
ZSwgaWYgYSBydW50aW1lIHRlc3Qgc2hvd3MKKy8vIHRoYXQgZm9jdXMgcmluZyBkcmF3aW5nIGZh
aWxzLCB3ZSBzd2l6emxlIE5TVmlldyB0byBlbnN1cmUgaXQgcmV0dXJucyBhIHZhbGlkCisvLyB2
aWV3IHdpdGggYSB2YWxpZCBjbGlwcGluZyByZWN0YW5nbGUuCisvLworLy8gRklYTUU6IEFmdGVy
IHRoZSByZWZlcmVuY2VkIGJ1ZyBpcyBmaXhlZCBvbiBhbGwgc3VwcG9ydGVkIHBsYXRmb3Jtcywg
cmVtb3ZlCisvLyB0aGlzIGNvZGUuCisvLworLy8gUmVmZXJlbmNlczoKKy8vICA8aHR0cDovL2Ny
YnVnLmNvbS8yNzQ5Mz4KKy8vICA8cmRhcjovL3Byb2JsZW0vNzYwNDA1MT4gKDxodHRwOi8vb3Bl
bnJhZGFyLmFwcHNwb3QuY29tLzc2MDQwNTE+KQorCitAaW50ZXJmYWNlIFRDTVZpc2libGVWaWV3
IDogTlNWaWV3CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFRDTVZpc2libGVWaWV3CisKKy0g
KHN0cnVjdCBDR1JlY3QpX2ZvY3VzUmluZ1Zpc2libGVSZWN0Cit7CisgICAgcmV0dXJuIENHUmVj
dFplcm87Cit9CisKKy0gKGlkKV9mb2N1c1JpbmdDbGlwQW5jZXN0b3IKK3sKKyAgICByZXR1cm4g
c2VsZjsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIE5TVmlldyAoVENNSW50ZXJwb3NpbmcpCisr
IChOU1ZpZXcqKVRDTUludGVycG9zaW5nX2ZvY3VzVmlldzsKK0BlbmQKKworbmFtZXNwYWNlIEZv
Y3VzSW5kaWNhdGlvbkZpeCB7CisKK0JPT0wgQ3VycmVudE9TSGFzU2V0Rm9jdXNSaW5nU3R5bGVJ
bkJpdG1hcEJ1ZygpCit7CisgICAgVUludDMyIHBpeGVsID0gMDsKKyAgICBVSW50MzIgKnBpeGVs
UGxhbmUgPSAmcGl4ZWw7CisgICAgVUludDMyICoqcGl4ZWxQbGFuZXMgPSAmcGl4ZWxQbGFuZTsK
KyAgICBOU0JpdG1hcEltYWdlUmVwICpiaXRtYXAgPSBbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2Nd
IGluaXRXaXRoQml0bWFwRGF0YVBsYW5lczoodW5zaWduZWQgY2hhciAqKilwaXhlbFBsYW5lcwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwaXhlbHNXaWRlOjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGl4ZWxzSGlnaDoxCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGJpdHNQZXJTYW1wbGU6OAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2FtcGxlc1BlclBpeGVsOjQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBoYXNBbHBoYTpZRVMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1BsYW5hcjpOTwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbG9yU3BhY2VOYW1lOk5TQ2FsaWJyYXRlZFJHQkNvbG9yU3BhY2UKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGJpdG1hcEZvcm1hdDpOU0FscGhhRmlyc3RCaXRtYXBGb3JtYXQKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBieXRlc1BlclJvdzo0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzUGVyUGl4ZWw6MzJdOworICAgIFtOU0dy
YXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07CisgICAgW05TR3JhcGhpY3NDb250ZXh0
IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4dCBncmFwaGljc0NvbnRleHRXaXRo
Qml0bWFwSW1hZ2VSZXA6Yml0bWFwXV07CisgICAgTlNTZXRGb2N1c1JpbmdTdHlsZShOU0ZvY3Vz
UmluZ09ubHkpOworICAgIE5TUmVjdEZpbGwoTlNNYWtlUmVjdCgwLDAsMSwxKSk7CisgICAgW05T
R3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGljc1N0YXRlXTsKKyAgICBbYml0bWFwIHJlbGVh
c2VdOworCisgICAgcmV0dXJuICFwaXhlbDsKK30KKworYm9vbCBzd2l6emxlKCkKK3sKKyAgICBp
ZiAoIUN1cnJlbnRPU0hhc1NldEZvY3VzUmluZ1N0eWxlSW5CaXRtYXBCdWcoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgQ2xhc3MgbnN2aWV3ID0gW05TVmlldyBjbGFzc107CisgICAg
TWV0aG9kIG0xID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QobnN2aWV3LCBAc2VsZWN0b3IoZm9jdXNW
aWV3KSk7CisgICAgTWV0aG9kIG0yID0gY2xhc3NfZ2V0Q2xhc3NNZXRob2QobnN2aWV3LCBAc2Vs
ZWN0b3IoVENNSW50ZXJwb3NpbmdfZm9jdXNWaWV3KSk7CisgICAgaWYgKG0xICYmIG0yKSB7Cisg
ICAgICAgIG1ldGhvZF9leGNoYW5nZUltcGxlbWVudGF0aW9ucyhtMSwgbTIpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29s
IGludGVycG9zZSA9IGZhbHNlOworCisvLyBBIGNsYXNzIHRvIHJlc3RyaWN0IHRoZSBhbW91bnQg
b2YgdGltZSBzcGVudCBtZXNzaW5nIHdpdGggaW50ZXJwb3NpbmcuIEl0CisvLyBvbmx5IHN0YWNr
cyBvbmUtZGVlcC4KK2NsYXNzIFNjb3BlZEZpeGVyCit7CitwdWJsaWM6CisgICAgU2NvcGVkRml4
ZXIoKQorICAgIHsKKyAgICAgICAgc3RhdGljIGJvb2wgc3dpenpsZWQgPSBzd2l6emxlKCk7Cisg
ICAgICAgIGludGVycG9zZSA9IHN3aXp6bGVkOworICAgIH0KKworICAgIH5TY29wZWRGaXhlcigp
CisgICAgeworICAgICAgICBpbnRlcnBvc2UgPSBmYWxzZTsKKyAgICB9Cit9OworCit9ICAvLyBu
YW1lc3BhY2UgRm9jdXNJbmRpY2F0aW9uRml4CisKK0BpbXBsZW1lbnRhdGlvbiBOU1ZpZXcgKFRD
TUludGVycG9zaW5nKQorCisrIChOU1ZpZXcqKVRDTUludGVycG9zaW5nX2ZvY3VzVmlldworewor
ICAgIE5TVmlldyogdmlldyA9IFtzZWxmIFRDTUludGVycG9zaW5nX2ZvY3VzVmlld107CisgICAg
aWYgKCF2aWV3ICYmIEZvY3VzSW5kaWNhdGlvbkZpeDo6aW50ZXJwb3NlKSB7CisgICAgICAgIHN0
YXRpYyBUQ01WaXNpYmxlVmlldyogZml4ZWRWaWV3ID0gW1tUQ01WaXNpYmxlVmlldyBhbGxvY10g
aW5pdF07CisgICAgICAgIHZpZXcgPSBmaXhlZFZpZXc7CisgICAgfQorCisgICAgcmV0dXJuIHZp
ZXc7Cit9CisKK0BlbmQKKworLy8gLS0tIEVORCBmaXggZm9yIFNub3cgTGVvcGFyZCBmb2N1cyBy
aW5nIGJ1ZyAtLS0KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBQaWNrIHVwIHV0aWxpdHkg
ZnVuY3Rpb24gZnJvbSBSZW5kZXJUaGVtZUNocm9taXVtTWFjLgpAQCAtMjQxLDcgKzM2OCwxMCBA
QCBzdGF0aWMgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMgCiAgICAgICAgIGNvbnRl
eHQtPnRyYW5zbGF0ZSgtaW5mbGF0ZWRSZWN0LngoKSwgLWluZmxhdGVkUmVjdC55KCkpOwogICAg
IH0KIAotICAgIFtjaGVja2JveENlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0
KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgeworICAgICAgICBGb2N1c0luZGljYXRpb25G
aXg6OlNjb3BlZEZpeGVyIGZpeDsKKyAgICAgICAgW2NoZWNrYm94Q2VsbCBkcmF3V2l0aEZyYW1l
Ok5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygpXTsKKyAgICB9CiAgICAg
W2NoZWNrYm94Q2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAgICAgY29udGV4dC0+cmVzdG9y
ZSgpOwpAQCAtMzE5LDcgKzQ0OSwxMCBAQCBzdGF0aWMgdm9pZCBwYWludFJhZGlvKENvbnRyb2xT
dGF0ZXMgc3RhCiAgICAgfQogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCi0gICAg
W3JhZGlvQ2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlw
cGVkVmlldygpXTsKKyAgICB7CisgICAgICAgIEZvY3VzSW5kaWNhdGlvbkZpeDo6U2NvcGVkRml4
ZXIgZml4OworICAgICAgICBbcmFkaW9DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVk
UmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAgIH0KICAgICBbcmFkaW9DZWxsIHNldENv
bnRyb2xWaWV3Om5pbF07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCkBAIC00Mjks
NyArNTYyLDEwIEBAIHN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENvbnRyb2xQYXJ0IHBhcnQKICAg
ICAgICAgfQogICAgIH0KIAotICAgIFtidXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGlu
ZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAgIHsKKyAgICAgICAgRm9jdXNJ
bmRpY2F0aW9uRml4OjpTY29wZWRGaXhlciBmaXg7CisgICAgICAgIFtidXR0b25DZWxsIGRyYXdX
aXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAg
IH0KICAgICBbYnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAgICAgRU5EX0JMT0NL
X09CSkNfRVhDRVBUSU9OUwo=
</data>
<flag name="review"
          id="30895"
          type_id="1"
          status="-"
          setter="timothy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48418</attachid>
            <date>2010-02-09 08:27:07 -0800</date>
            <delta_ts>2010-02-09 08:29:10 -0800</delta_ts>
            <desc>Update for style</desc>
            <filename>ring</filename>
            <type>text/plain</type>
            <size>8191</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDU1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDUgQEAKKzIwMTAtMDItMDkgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBSZW5kZXJUaGVtZSBkb2VzIG5vdCBkcmF3IGZvY3VzIHJpbmdzIG9uIFNMIGZvciBj
aGVja2JveGVzLCByYWRpbyBidXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDU0NAorCisgICAgICAgIENvdmVyZWQgYnkgbGF5b3V0IHRlc3Rz
IHdoZW4gcnVuIG9uIFNMLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVDaHJv
bWl1bU1hYy5tbToKKyAgICAgICAgKC1bVENNVmlzaWJsZVZpZXcgX2ZvY3VzUmluZ1Zpc2libGVS
ZWN0XSk6CisgICAgICAgICgtW1RDTVZpc2libGVWaWV3IF9mb2N1c1JpbmdDbGlwQW5jZXN0b3Jd
KToKKyAgICAgICAgKEZvY3VzSW5kaWNhdGlvbkZpeDo6Y3VycmVudE9TSGFzU2V0Rm9jdXNSaW5n
U3R5bGVJbkJpdG1hcEJ1Zyk6CisgICAgICAgIChGb2N1c0luZGljYXRpb25GaXg6OnN3aXp6bGVG
b2N1c1ZpZXcpOgorICAgICAgICAoRm9jdXNJbmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6U2Nv
cGVkRml4ZXIpOgorICAgICAgICAoRm9jdXNJbmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6flNj
b3BlZEZpeGVyKToKKyAgICAgICAgKCtbTlNWaWV3IFRDTUludGVycG9zaW5nX2ZvY3VzVmlld10p
OgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpw
YWludFJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50QnV0dG9uKToKKworMjAxMC0wMi0w
NSAgQXZpIERyaXNzbWFuICA8YXZpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIFJlbmRlclRoZW1lIGRvZXMg
bm90IGRyYXcgZm9jdXMgcmluZ3Mgb24gU0wgZm9yIGNoZWNrYm94ZXMsIHJhZGlvIGJ1dHRvbnMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0NTQ0CisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9UaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoLVtUQ01WaXNpYmxlVmlldyBfZm9j
dXNSaW5nVmlzaWJsZVJlY3RdKToKKyAgICAgICAgKC1bVENNVmlzaWJsZVZpZXcgX2ZvY3VzUmlu
Z0NsaXBBbmNlc3Rvcl0pOgorICAgICAgICAoRm9jdXNJbmRpY2F0aW9uRml4OjpDdXJyZW50T1NI
YXNTZXRGb2N1c1JpbmdTdHlsZUluQml0bWFwQnVnKToKKyAgICAgICAgKEZvY3VzSW5kaWNhdGlv
bkZpeDo6c3dpenpsZSk6CisgICAgICAgIChGb2N1c0luZGljYXRpb25GaXg6OlNjb3BlZEZpeGVy
OjpTY29wZWRGaXhlcik6CisgICAgICAgIChGb2N1c0luZGljYXRpb25GaXg6OlNjb3BlZEZpeGVy
Ojp+U2NvcGVkRml4ZXIpOgorICAgICAgICAoK1tOU1ZpZXcgVENNSW50ZXJwb3NpbmdfZm9jdXNW
aWV3XSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludENoZWNrYm94KToKKyAgICAgICAgKFdlYkNv
cmU6OnBhaW50UmFkaW8pOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRCdXR0b24pOgorCiAyMDEw
LTAyLTA5ICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IERpcmsgU2NodWx6ZS4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vY2hy
b21pdW0vVGhlbWVDaHJvbWl1bU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L2Nocm9taXVtL1RoZW1lQ2hyb21pdW1NYWMubW0JKHJldmlzaW9uIDU0NTUxKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9jaHJvbWl1bS9UaGVtZUNocm9taXVtTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJTY3JvbGxWaWV3LmgiCiAjaW1wb3J0ICJXZWJDb3Jl
U3lzdGVtSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTQ3LDYgKzQ4
LDggQEAgdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIC8vICAgcmVuZGVyaW5nLgogLy8gLSBJbiB1cGRh
dGVTdGF0ZXMoKSB0aGUgY29kZSB0byB1cGRhdGUgdGhlIGNlbGxzJyBpbmFjdGl2ZSBzdGF0ZS4K
IC8vIC0gSW4gcGFpbnRCdXR0b24oKSB0aGUgY29kZSB0byBzYXZlL3Jlc3RvcmUgdGhlIHdpbmRv
dydzIGRlZmF1bHQgYnV0dG9uIGNlbGwuCisvLyAtIFRoZSBTbm93IExlb3BhcmQgZm9jdXMgcmlu
ZyBidWcgZml4IGFuZCBpdHMgdXNlIGFyb3VuZCBldmVyeSBjYWxsIHRvCisvLyAgIC1bTlNCdXR0
b25DZWxsIGRyYXdXaXRoRnJhbWU6aW5WaWV3Ol0uCiAvLwogLy8gRm9yIGFsbCBvdGhlciBkaWZm
ZXJlbmNlcywgaWYgaXQgd2FzIGludHJvZHVjZWQgaW4gdGhpcyBmaWxlLCB0aGVuIHRoZQogLy8g
bWFpbnRhaW5lciBmb3Jnb3QgdG8gaW5jbHVkZSBpdCBpbiB0aGUgbGlzdDsgb3RoZXJ3aXNlIGl0
IGlzIGFuIHVwZGF0ZSB0aGF0CkBAIC01NCw2ICs1NywxMjkgQEAgdXNpbmcgbmFtZXNwYWNlIHN0
ZDsKIAogLy8gRklYTUU6IERlZmF1bHQgYnV0dG9ucyByZWFsbHkgc2hvdWxkIGJlIG1vcmUgbGlr
ZSBwdXNoIGJ1dHRvbnMgYW5kIG5vdCBsaWtlIGJ1dHRvbnMuCiAKKy8vIC0tLSBTVEFSVCBmaXgg
Zm9yIFNub3cgTGVvcGFyZCBmb2N1cyByaW5nIGJ1ZyAtLS0KKworLy8gVGhlcmUgaXMgYSBidWcg
aW4gdGhlIENvY29hIGZvY3VzIHJpbmcgZHJhd2luZyBjb2RlLiBUaGUgY29kZSBjYWxscyArW05T
VmlldworLy8gZm9jdXNWaWV3XSAodG8gZ2V0IHRoZSBjdXJyZW50bHkgZm9jdXNlZCB2aWV3KSBh
bmQgdGhlbiBjYWxscyBhbiBOU1JlY3QtCisvLyByZXR1cm5pbmcgbWV0aG9kIG9uIHRoYXQgdmll
dyB0byBvYnRhaW4gYSBjbGlwcGluZyByZWN0LiBIb3dldmVyLCBpZiB0aGVyZSBpcworLy8gbm8g
Zm9jdXNlZCB2aWV3IChhcyB0aGVyZSB3b24ndCBiZSBpZiB0aGUgZGVzdGluYXRpb24gaXMgYSBj
b250ZXh0KSwgdGhlIHJlY3QKKy8vIHJldHVybmVkIGZyb20gdGhlIG1ldGhvZCBpbnZvY2F0aW9u
IG9uIG5pbCBpcyBnYXJiYWdlLgorLy8KKy8vIFRoZSBnYXJiYWdlIGZvcnR1bmF0ZWx5IGRvZXMg
bm90IGNsaXAgdGhlIGZvY3VzIHJpbmcgb24gTGVvcGFyZCwgYnV0CisvLyB1bmZvcnR1bmF0ZWx5
IGRvZXMgc28gb24gU25vdyBMZW9wYXJkLiBUaGVyZWZvcmUsIGlmIGEgcnVudGltZSB0ZXN0IHNo
b3dzCisvLyB0aGF0IGZvY3VzIHJpbmcgZHJhd2luZyBmYWlscywgd2Ugc3dpenpsZSBOU1ZpZXcg
dG8gZW5zdXJlIGl0IHJldHVybnMgYSB2YWxpZAorLy8gdmlldyB3aXRoIGEgdmFsaWQgY2xpcHBp
bmcgcmVjdGFuZ2xlLgorLy8KKy8vIEZJWE1FOiBBZnRlciB0aGUgcmVmZXJlbmNlZCBidWcgaXMg
Zml4ZWQgb24gYWxsIHN1cHBvcnRlZCBwbGF0Zm9ybXMsIHJlbW92ZQorLy8gdGhpcyBjb2RlLgor
Ly8KKy8vIFJlZmVyZW5jZXM6CisvLyAgPGh0dHA6Ly9jcmJ1Zy5jb20vMjc0OTM+CisvLyAgPHJk
YXI6Ly9wcm9ibGVtLzc2MDQwNTE+ICg8aHR0cDovL29wZW5yYWRhci5hcHBzcG90LmNvbS83NjA0
MDUxPikKKworQGludGVyZmFjZSBUQ01WaXNpYmxlVmlldyA6IE5TVmlldworCitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBUQ01WaXNpYmxlVmlldworCistIChzdHJ1Y3QgQ0dSZWN0KV9mb2N1c1Jp
bmdWaXNpYmxlUmVjdAoreworICAgIHJldHVybiBDR1JlY3RaZXJvOworfQorCistIChpZClfZm9j
dXNSaW5nQ2xpcEFuY2VzdG9yCit7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKK0BlbmQKKworQGlu
dGVyZmFjZSBOU1ZpZXcgKFRDTUludGVycG9zaW5nKQorKyAoTlNWaWV3ICopVENNSW50ZXJwb3Np
bmdfZm9jdXNWaWV3OworQGVuZAorCituYW1lc3BhY2UgRm9jdXNJbmRpY2F0aW9uRml4IHsKKwor
Ym9vbCBjdXJyZW50T1NIYXNTZXRGb2N1c1JpbmdTdHlsZUluQml0bWFwQnVnKCkKK3sKKyAgICBV
SW50MzIgcGl4ZWwgPSAwOworICAgIFVJbnQzMiogcGl4ZWxQbGFuZSA9ICZwaXhlbDsKKyAgICBV
SW50MzIqKiBwaXhlbFBsYW5lcyA9ICZwaXhlbFBsYW5lOworICAgIE5TQml0bWFwSW1hZ2VSZXAg
KmJpdG1hcCA9IFtbTlNCaXRtYXBJbWFnZVJlcCBhbGxvY10gaW5pdFdpdGhCaXRtYXBEYXRhUGxh
bmVzOihVSW50OCoqKXBpeGVsUGxhbmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpeGVsc1dpZGU6MQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBwaXhlbHNIaWdoOjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0c1BlclNhbXBsZTo4CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzYW1wbGVzUGVyUGl4ZWw6NAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0FscGhhOllFUworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlzUGxhbmFyOk5PCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3JTcGFjZU5hbWU6TlNDYWxp
YnJhdGVkUkdCQ29sb3JTcGFjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYml0bWFwRm9ybWF0Ok5TQWxwaGFGaXJz
dEJpdG1hcEZvcm1hdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ5dGVzUGVyUm93OjQKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJp
dHNQZXJQaXhlbDozMl07CisgICAgW05TR3JhcGhpY3NDb250ZXh0IHNhdmVHcmFwaGljc1N0YXRl
XTsKKyAgICBbTlNHcmFwaGljc0NvbnRleHQgc2V0Q3VycmVudENvbnRleHQ6W05TR3JhcGhpY3ND
b250ZXh0IGdyYXBoaWNzQ29udGV4dFdpdGhCaXRtYXBJbWFnZVJlcDpiaXRtYXBdXTsKKyAgICBO
U1NldEZvY3VzUmluZ1N0eWxlKE5TRm9jdXNSaW5nT25seSk7CisgICAgTlNSZWN0RmlsbChOU01h
a2VSZWN0KDAsIDAsIDEsIDEpKTsKKyAgICBbTlNHcmFwaGljc0NvbnRleHQgcmVzdG9yZUdyYXBo
aWNzU3RhdGVdOworICAgIFtiaXRtYXAgcmVsZWFzZV07CisKKyAgICByZXR1cm4gIXBpeGVsOwor
fQorCitib29sIHN3aXp6bGVGb2N1c1ZpZXcoKQoreworICAgIGlmICghY3VycmVudE9TSGFzU2V0
Rm9jdXNSaW5nU3R5bGVJbkJpdG1hcEJ1ZygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBDbGFzcyBuc3ZpZXcgPSBbTlNWaWV3IGNsYXNzXTsKKyAgICBNZXRob2QgbTEgPSBjbGFzc19n
ZXRDbGFzc01ldGhvZChuc3ZpZXcsIEBzZWxlY3Rvcihmb2N1c1ZpZXcpKTsKKyAgICBNZXRob2Qg
bTIgPSBjbGFzc19nZXRDbGFzc01ldGhvZChuc3ZpZXcsIEBzZWxlY3RvcihUQ01JbnRlcnBvc2lu
Z19mb2N1c1ZpZXcpKTsKKyAgICBpZiAobTEgJiYgbTIpIHsKKyAgICAgICAgbWV0aG9kX2V4Y2hh
bmdlSW1wbGVtZW50YXRpb25zKG0xLCBtMik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIGJvb2wgaW50ZXJwb3NlID0gZmFsc2U7
CisKKy8vIEEgY2xhc3MgdG8gcmVzdHJpY3QgdGhlIGFtb3VudCBvZiB0aW1lIHNwZW50IG1lc3Np
bmcgd2l0aCBpbnRlcnBvc2luZy4gSXQKKy8vIG9ubHkgc3RhY2tzIG9uZS1kZWVwLgorY2xhc3Mg
U2NvcGVkRml4ZXIgeworcHVibGljOgorICAgIFNjb3BlZEZpeGVyKCkKKyAgICB7CisgICAgICAg
IHN0YXRpYyBib29sIHN3aXp6bGVkID0gc3dpenpsZUZvY3VzVmlldygpOworICAgICAgICBpbnRl
cnBvc2UgPSBzd2l6emxlZDsKKyAgICB9CisKKyAgICB+U2NvcGVkRml4ZXIoKQorICAgIHsKKyAg
ICAgICAgaW50ZXJwb3NlID0gZmFsc2U7CisgICAgfQorfTsKKworfSAgLy8gbmFtZXNwYWNlIEZv
Y3VzSW5kaWNhdGlvbkZpeAorCitAaW1wbGVtZW50YXRpb24gTlNWaWV3IChUQ01JbnRlcnBvc2lu
ZykKKworKyAoTlNWaWV3ICopVENNSW50ZXJwb3NpbmdfZm9jdXNWaWV3Cit7CisgICAgTlNWaWV3
ICp2aWV3ID0gW3NlbGYgVENNSW50ZXJwb3NpbmdfZm9jdXNWaWV3XTsgIC8vIGNhbGwgb3JpZ2lu
YWwgKHdhcyBzd2l6emxlZCkKKyAgICBpZiAoIXZpZXcgJiYgRm9jdXNJbmRpY2F0aW9uRml4Ojpp
bnRlcnBvc2UpIHsKKyAgICAgICAgc3RhdGljIFRDTVZpc2libGVWaWV3KiBmaXhlZFZpZXcgPSBb
W1RDTVZpc2libGVWaWV3IGFsbG9jXSBpbml0XTsKKyAgICAgICAgdmlldyA9IGZpeGVkVmlldzsK
KyAgICB9CisKKyAgICByZXR1cm4gdmlldzsKK30KKworQGVuZAorCisvLyAtLS0gRU5EIGZpeCBm
b3IgU25vdyBMZW9wYXJkIGZvY3VzIHJpbmcgYnVnIC0tLQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIC8vIFBpY2sgdXAgdXRpbGl0eSBmdW5jdGlvbiBmcm9tIFJlbmRlclRoZW1lQ2hyb21pdW1N
YWMuCkBAIC0yNDEsNyArMzY3LDEwIEBAIHN0YXRpYyB2b2lkIHBhaW50Q2hlY2tib3goQ29udHJv
bFN0YXRlcyAKICAgICAgICAgY29udGV4dC0+dHJhbnNsYXRlKC1pbmZsYXRlZFJlY3QueCgpLCAt
aW5mbGF0ZWRSZWN0LnkoKSk7CiAgICAgfQogCi0gICAgW2NoZWNrYm94Q2VsbCBkcmF3V2l0aEZy
YW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygpXTsKKyAgICB7Cisg
ICAgICAgIEZvY3VzSW5kaWNhdGlvbkZpeDo6U2NvcGVkRml4ZXIgZml4OworICAgICAgICBbY2hl
Y2tib3hDZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBw
ZWRWaWV3KCldOworICAgIH0KICAgICBbY2hlY2tib3hDZWxsIHNldENvbnRyb2xWaWV3Om5pbF07
CiAKICAgICBjb250ZXh0LT5yZXN0b3JlKCk7CkBAIC0zMTksNyArNDQ4LDEwIEBAIHN0YXRpYyB2
b2lkIHBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyBzdGEKICAgICB9CiAKICAgICBCRUdJTl9CTE9D
S19PQkpDX0VYQ0VQVElPTlMKLSAgICBbcmFkaW9DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGlu
ZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAgIHsKKyAgICAgICAgRm9jdXNJ
bmRpY2F0aW9uRml4OjpTY29wZWRGaXhlciBmaXg7CisgICAgICAgIFtyYWRpb0NlbGwgZHJhd1dp
dGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAg
fQogICAgIFtyYWRpb0NlbGwgc2V0Q29udHJvbFZpZXc6bmlsXTsKICAgICBFTkRfQkxPQ0tfT0JK
Q19FWENFUFRJT05TCiAKQEAgLTQyOSw3ICs1NjEsMTAgQEAgc3RhdGljIHZvaWQgcGFpbnRCdXR0
b24oQ29udHJvbFBhcnQgcGFydAogICAgICAgICB9CiAgICAgfQogCi0gICAgW2J1dHRvbkNlbGwg
ZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07
CisgICAgeworICAgICAgICBGb2N1c0luZGljYXRpb25GaXg6OlNjb3BlZEZpeGVyIGZpeDsKKyAg
ICAgICAgW2J1dHRvbkNlbGwgZHJhd1dpdGhGcmFtZTpOU1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZp
ZXc6RmxpcHBlZFZpZXcoKV07CisgICAgfQogICAgIFtidXR0b25DZWxsIHNldENvbnRyb2xWaWV3
Om5pbF07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48419</attachid>
            <date>2010-02-09 08:29:10 -0800</date>
            <delta_ts>2010-02-09 19:25:48 -0800</delta_ts>
            <desc>Update for style (fixed double ChangeLog)</desc>
            <filename>ring</filename>
            <type>text/plain</type>
            <size>7388</size>
            <attacher name="Avi Drissman">avi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDU1MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDItMDkgIEF2aSBEcmlzc21hbiAgPGF2aUBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0No
cm9taXVtXSBSZW5kZXJUaGVtZSBkb2VzIG5vdCBkcmF3IGZvY3VzIHJpbmdzIG9uIFNMIGZvciBj
aGVja2JveGVzLCByYWRpbyBidXR0b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDU0NAorCisgICAgICAgIENvdmVyZWQgYnkgbGF5b3V0IHRlc3Rz
IHdoZW4gcnVuIG9uIFNMLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vVGhlbWVDaHJv
bWl1bU1hYy5tbToKKyAgICAgICAgKC1bVENNVmlzaWJsZVZpZXcgX2ZvY3VzUmluZ1Zpc2libGVS
ZWN0XSk6CisgICAgICAgICgtW1RDTVZpc2libGVWaWV3IF9mb2N1c1JpbmdDbGlwQW5jZXN0b3Jd
KToKKyAgICAgICAgKEZvY3VzSW5kaWNhdGlvbkZpeDo6Y3VycmVudE9TSGFzU2V0Rm9jdXNSaW5n
U3R5bGVJbkJpdG1hcEJ1Zyk6CisgICAgICAgIChGb2N1c0luZGljYXRpb25GaXg6OnN3aXp6bGVG
b2N1c1ZpZXcpOgorICAgICAgICAoRm9jdXNJbmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6U2Nv
cGVkRml4ZXIpOgorICAgICAgICAoRm9jdXNJbmRpY2F0aW9uRml4OjpTY29wZWRGaXhlcjo6flNj
b3BlZEZpeGVyKToKKyAgICAgICAgKCtbTlNWaWV3IFRDTUludGVycG9zaW5nX2ZvY3VzVmlld10p
OgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRDaGVja2JveCk6CisgICAgICAgIChXZWJDb3JlOjpw
YWludFJhZGlvKToKKyAgICAgICAgKFdlYkNvcmU6OnBhaW50QnV0dG9uKToKKwogMjAxMC0wMi0w
OSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEaXJrIFNjaHVsemUuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L1RoZW1lQ2hyb21pdW1NYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9UaGVtZUNocm9taXVtTWFjLm1tCShyZXZpc2lvbiA1NDU1MSkKKysrIFdlYkNvcmUvcGxh
dGZvcm0vY2hyb21pdW0vVGhlbWVDaHJvbWl1bU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMs
NiArMzMsNyBAQAogI2ltcG9ydCAiU2Nyb2xsVmlldy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3Rl
bUludGVyZmFjZS5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KKyNpbXBvcnQgPG9i
amMvcnVudGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC00Nyw2ICs0OCw4IEBA
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAvLyAgIHJlbmRlcmluZy4KIC8vIC0gSW4gdXBkYXRlU3Rh
dGVzKCkgdGhlIGNvZGUgdG8gdXBkYXRlIHRoZSBjZWxscycgaW5hY3RpdmUgc3RhdGUuCiAvLyAt
IEluIHBhaW50QnV0dG9uKCkgdGhlIGNvZGUgdG8gc2F2ZS9yZXN0b3JlIHRoZSB3aW5kb3cncyBk
ZWZhdWx0IGJ1dHRvbiBjZWxsLgorLy8gLSBUaGUgU25vdyBMZW9wYXJkIGZvY3VzIHJpbmcgYnVn
IGZpeCBhbmQgaXRzIHVzZSBhcm91bmQgZXZlcnkgY2FsbCB0bworLy8gICAtW05TQnV0dG9uQ2Vs
bCBkcmF3V2l0aEZyYW1lOmluVmlldzpdLgogLy8KIC8vIEZvciBhbGwgb3RoZXIgZGlmZmVyZW5j
ZXMsIGlmIGl0IHdhcyBpbnRyb2R1Y2VkIGluIHRoaXMgZmlsZSwgdGhlbiB0aGUKIC8vIG1haW50
YWluZXIgZm9yZ290IHRvIGluY2x1ZGUgaXQgaW4gdGhlIGxpc3Q7IG90aGVyd2lzZSBpdCBpcyBh
biB1cGRhdGUgdGhhdApAQCAtNTQsNiArNTcsMTI5IEBAIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAK
IC8vIEZJWE1FOiBEZWZhdWx0IGJ1dHRvbnMgcmVhbGx5IHNob3VsZCBiZSBtb3JlIGxpa2UgcHVz
aCBidXR0b25zIGFuZCBub3QgbGlrZSBidXR0b25zLgogCisvLyAtLS0gU1RBUlQgZml4IGZvciBT
bm93IExlb3BhcmQgZm9jdXMgcmluZyBidWcgLS0tCisKKy8vIFRoZXJlIGlzIGEgYnVnIGluIHRo
ZSBDb2NvYSBmb2N1cyByaW5nIGRyYXdpbmcgY29kZS4gVGhlIGNvZGUgY2FsbHMgK1tOU1ZpZXcK
Ky8vIGZvY3VzVmlld10gKHRvIGdldCB0aGUgY3VycmVudGx5IGZvY3VzZWQgdmlldykgYW5kIHRo
ZW4gY2FsbHMgYW4gTlNSZWN0LQorLy8gcmV0dXJuaW5nIG1ldGhvZCBvbiB0aGF0IHZpZXcgdG8g
b2J0YWluIGEgY2xpcHBpbmcgcmVjdC4gSG93ZXZlciwgaWYgdGhlcmUgaXMKKy8vIG5vIGZvY3Vz
ZWQgdmlldyAoYXMgdGhlcmUgd29uJ3QgYmUgaWYgdGhlIGRlc3RpbmF0aW9uIGlzIGEgY29udGV4
dCksIHRoZSByZWN0CisvLyByZXR1cm5lZCBmcm9tIHRoZSBtZXRob2QgaW52b2NhdGlvbiBvbiBu
aWwgaXMgZ2FyYmFnZS4KKy8vCisvLyBUaGUgZ2FyYmFnZSBmb3J0dW5hdGVseSBkb2VzIG5vdCBj
bGlwIHRoZSBmb2N1cyByaW5nIG9uIExlb3BhcmQsIGJ1dAorLy8gdW5mb3J0dW5hdGVseSBkb2Vz
IHNvIG9uIFNub3cgTGVvcGFyZC4gVGhlcmVmb3JlLCBpZiBhIHJ1bnRpbWUgdGVzdCBzaG93cwor
Ly8gdGhhdCBmb2N1cyByaW5nIGRyYXdpbmcgZmFpbHMsIHdlIHN3aXp6bGUgTlNWaWV3IHRvIGVu
c3VyZSBpdCByZXR1cm5zIGEgdmFsaWQKKy8vIHZpZXcgd2l0aCBhIHZhbGlkIGNsaXBwaW5nIHJl
Y3RhbmdsZS4KKy8vCisvLyBGSVhNRTogQWZ0ZXIgdGhlIHJlZmVyZW5jZWQgYnVnIGlzIGZpeGVk
IG9uIGFsbCBzdXBwb3J0ZWQgcGxhdGZvcm1zLCByZW1vdmUKKy8vIHRoaXMgY29kZS4KKy8vCisv
LyBSZWZlcmVuY2VzOgorLy8gIDxodHRwOi8vY3JidWcuY29tLzI3NDkzPgorLy8gIDxyZGFyOi8v
cHJvYmxlbS83NjA0MDUxPiAoPGh0dHA6Ly9vcGVucmFkYXIuYXBwc3BvdC5jb20vNzYwNDA1MT4p
CisKK0BpbnRlcmZhY2UgVENNVmlzaWJsZVZpZXcgOiBOU1ZpZXcKKworQGVuZAorCitAaW1wbGVt
ZW50YXRpb24gVENNVmlzaWJsZVZpZXcKKworLSAoc3RydWN0IENHUmVjdClfZm9jdXNSaW5nVmlz
aWJsZVJlY3QKK3sKKyAgICByZXR1cm4gQ0dSZWN0WmVybzsKK30KKworLSAoaWQpX2ZvY3VzUmlu
Z0NsaXBBbmNlc3RvcgoreworICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKK0BpbnRlcmZh
Y2UgTlNWaWV3IChUQ01JbnRlcnBvc2luZykKKysgKE5TVmlldyAqKVRDTUludGVycG9zaW5nX2Zv
Y3VzVmlldzsKK0BlbmQKKworbmFtZXNwYWNlIEZvY3VzSW5kaWNhdGlvbkZpeCB7CisKK2Jvb2wg
Y3VycmVudE9TSGFzU2V0Rm9jdXNSaW5nU3R5bGVJbkJpdG1hcEJ1ZygpCit7CisgICAgVUludDMy
IHBpeGVsID0gMDsKKyAgICBVSW50MzIqIHBpeGVsUGxhbmUgPSAmcGl4ZWw7CisgICAgVUludDMy
KiogcGl4ZWxQbGFuZXMgPSAmcGl4ZWxQbGFuZTsKKyAgICBOU0JpdG1hcEltYWdlUmVwICpiaXRt
YXAgPSBbW05TQml0bWFwSW1hZ2VSZXAgYWxsb2NdIGluaXRXaXRoQml0bWFwRGF0YVBsYW5lczoo
VUludDgqKilwaXhlbFBsYW5lcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaXhlbHNXaWRlOjEKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGl4ZWxzSGlnaDoxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdHNQZXJTYW1wbGU6OAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2FtcGxlc1BlclBpeGVsOjQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNBbHBoYTpZRVMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBpc1BsYW5hcjpOTworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yU3BhY2VOYW1lOk5TQ2FsaWJyYXRl
ZFJHQkNvbG9yU3BhY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJpdG1hcEZvcm1hdDpOU0FscGhhRmlyc3RCaXRt
YXBGb3JtYXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBieXRlc1BlclJvdzo0CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiaXRzUGVy
UGl4ZWw6MzJdOworICAgIFtOU0dyYXBoaWNzQ29udGV4dCBzYXZlR3JhcGhpY3NTdGF0ZV07Cisg
ICAgW05TR3JhcGhpY3NDb250ZXh0IHNldEN1cnJlbnRDb250ZXh0OltOU0dyYXBoaWNzQ29udGV4
dCBncmFwaGljc0NvbnRleHRXaXRoQml0bWFwSW1hZ2VSZXA6Yml0bWFwXV07CisgICAgTlNTZXRG
b2N1c1JpbmdTdHlsZShOU0ZvY3VzUmluZ09ubHkpOworICAgIE5TUmVjdEZpbGwoTlNNYWtlUmVj
dCgwLCAwLCAxLCAxKSk7CisgICAgW05TR3JhcGhpY3NDb250ZXh0IHJlc3RvcmVHcmFwaGljc1N0
YXRlXTsKKyAgICBbYml0bWFwIHJlbGVhc2VdOworCisgICAgcmV0dXJuICFwaXhlbDsKK30KKwor
Ym9vbCBzd2l6emxlRm9jdXNWaWV3KCkKK3sKKyAgICBpZiAoIWN1cnJlbnRPU0hhc1NldEZvY3Vz
UmluZ1N0eWxlSW5CaXRtYXBCdWcoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgQ2xh
c3MgbnN2aWV3ID0gW05TVmlldyBjbGFzc107CisgICAgTWV0aG9kIG0xID0gY2xhc3NfZ2V0Q2xh
c3NNZXRob2QobnN2aWV3LCBAc2VsZWN0b3IoZm9jdXNWaWV3KSk7CisgICAgTWV0aG9kIG0yID0g
Y2xhc3NfZ2V0Q2xhc3NNZXRob2QobnN2aWV3LCBAc2VsZWN0b3IoVENNSW50ZXJwb3NpbmdfZm9j
dXNWaWV3KSk7CisgICAgaWYgKG0xICYmIG0yKSB7CisgICAgICAgIG1ldGhvZF9leGNoYW5nZUlt
cGxlbWVudGF0aW9ucyhtMSwgbTIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3N0YXRpYyBib29sIGludGVycG9zZSA9IGZhbHNlOworCisv
LyBBIGNsYXNzIHRvIHJlc3RyaWN0IHRoZSBhbW91bnQgb2YgdGltZSBzcGVudCBtZXNzaW5nIHdp
dGggaW50ZXJwb3NpbmcuIEl0CisvLyBvbmx5IHN0YWNrcyBvbmUtZGVlcC4KK2NsYXNzIFNjb3Bl
ZEZpeGVyIHsKK3B1YmxpYzoKKyAgICBTY29wZWRGaXhlcigpCisgICAgeworICAgICAgICBzdGF0
aWMgYm9vbCBzd2l6emxlZCA9IHN3aXp6bGVGb2N1c1ZpZXcoKTsKKyAgICAgICAgaW50ZXJwb3Nl
ID0gc3dpenpsZWQ7CisgICAgfQorCisgICAgflNjb3BlZEZpeGVyKCkKKyAgICB7CisgICAgICAg
IGludGVycG9zZSA9IGZhbHNlOworICAgIH0KK307CisKK30gIC8vIG5hbWVzcGFjZSBGb2N1c0lu
ZGljYXRpb25GaXgKKworQGltcGxlbWVudGF0aW9uIE5TVmlldyAoVENNSW50ZXJwb3NpbmcpCisK
KysgKE5TVmlldyAqKVRDTUludGVycG9zaW5nX2ZvY3VzVmlldworeworICAgIE5TVmlldyAqdmll
dyA9IFtzZWxmIFRDTUludGVycG9zaW5nX2ZvY3VzVmlld107ICAvLyBjYWxsIG9yaWdpbmFsICh3
YXMgc3dpenpsZWQpCisgICAgaWYgKCF2aWV3ICYmIEZvY3VzSW5kaWNhdGlvbkZpeDo6aW50ZXJw
b3NlKSB7CisgICAgICAgIHN0YXRpYyBUQ01WaXNpYmxlVmlldyogZml4ZWRWaWV3ID0gW1tUQ01W
aXNpYmxlVmlldyBhbGxvY10gaW5pdF07CisgICAgICAgIHZpZXcgPSBmaXhlZFZpZXc7CisgICAg
fQorCisgICAgcmV0dXJuIHZpZXc7Cit9CisKK0BlbmQKKworLy8gLS0tIEVORCBmaXggZm9yIFNu
b3cgTGVvcGFyZCBmb2N1cyByaW5nIGJ1ZyAtLS0KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAv
LyBQaWNrIHVwIHV0aWxpdHkgZnVuY3Rpb24gZnJvbSBSZW5kZXJUaGVtZUNocm9taXVtTWFjLgpA
QCAtMjQxLDcgKzM2NywxMCBAQCBzdGF0aWMgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0
ZXMgCiAgICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZSgtaW5mbGF0ZWRSZWN0LngoKSwgLWluZmxh
dGVkUmVjdC55KCkpOwogICAgIH0KIAotICAgIFtjaGVja2JveENlbGwgZHJhd1dpdGhGcmFtZTpO
U1JlY3QoaW5mbGF0ZWRSZWN0KSBpblZpZXc6RmxpcHBlZFZpZXcoKV07CisgICAgeworICAgICAg
ICBGb2N1c0luZGljYXRpb25GaXg6OlNjb3BlZEZpeGVyIGZpeDsKKyAgICAgICAgW2NoZWNrYm94
Q2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRlZFJlY3QpIGluVmlldzpGbGlwcGVkVmll
dygpXTsKKyAgICB9CiAgICAgW2NoZWNrYm94Q2VsbCBzZXRDb250cm9sVmlldzpuaWxdOwogCiAg
ICAgY29udGV4dC0+cmVzdG9yZSgpOwpAQCAtMzE5LDcgKzQ0OCwxMCBAQCBzdGF0aWMgdm9pZCBw
YWludFJhZGlvKENvbnRyb2xTdGF0ZXMgc3RhCiAgICAgfQogCiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TCi0gICAgW3JhZGlvQ2VsbCBkcmF3V2l0aEZyYW1lOk5TUmVjdChpbmZsYXRl
ZFJlY3QpIGluVmlldzpGbGlwcGVkVmlldygpXTsKKyAgICB7CisgICAgICAgIEZvY3VzSW5kaWNh
dGlvbkZpeDo6U2NvcGVkRml4ZXIgZml4OworICAgICAgICBbcmFkaW9DZWxsIGRyYXdXaXRoRnJh
bWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAgIH0KICAg
ICBbcmFkaW9DZWxsIHNldENvbnRyb2xWaWV3Om5pbF07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUwogCkBAIC00MjksNyArNTYxLDEwIEBAIHN0YXRpYyB2b2lkIHBhaW50QnV0dG9uKENv
bnRyb2xQYXJ0IHBhcnQKICAgICAgICAgfQogICAgIH0KIAotICAgIFtidXR0b25DZWxsIGRyYXdX
aXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZsaXBwZWRWaWV3KCldOworICAg
IHsKKyAgICAgICAgRm9jdXNJbmRpY2F0aW9uRml4OjpTY29wZWRGaXhlciBmaXg7CisgICAgICAg
IFtidXR0b25DZWxsIGRyYXdXaXRoRnJhbWU6TlNSZWN0KGluZmxhdGVkUmVjdCkgaW5WaWV3OkZs
aXBwZWRWaWV3KCldOworICAgIH0KICAgICBbYnV0dG9uQ2VsbCBzZXRDb250cm9sVmlldzpuaWxd
OwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>