<?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>23727</bug_id>
          
          <creation_ts>2009-02-04 02:07:45 -0800</creation_ts>
          <short_desc>Implementaion of WCSS marquee extension relevant to XHML MP</short_desc>
          <delta_ts>2009-08-13 18:28:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>
          <dependson>23452</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="yichao.yin">yichao.yin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>charles.wei</cc>
    
    <cc>eric</cc>
    
    <cc>ian</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>nickshanks</cc>
    
    <cc>staikos</cc>
    
    <cc>yichao.yin</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>108252</commentid>
    <comment_count>0</comment_count>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-02-04 02:07:45 -0800</bug_when>
    <thetext>As part of WCSS extensions, WCSS marquee extension is also relevant to XHMLMP, so that this bug depends on bug 23452</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108253</commentid>
    <comment_count>1</comment_count>
      <attachid>27310</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-02-04 02:14:05 -0800</bug_when>
    <thetext>Created attachment 27310
inital patch for WCSS marquee support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108255</commentid>
    <comment_count>2</comment_count>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-02-04 02:17:04 -0800</bug_when>
    <thetext>Without the XHMLMP patch filed in bug 23452, this patch won&apos;t work because WCSS is supposed to used with XHMLMP document</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109651</commentid>
    <comment_count>3</comment_count>
      <attachid>27651</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-02-13 02:38:14 -0800</bug_when>
    <thetext>Created attachment 27651
updated patch for WCSS marquee extension


split the initial patch into two parts: one is for changed code, the other is for layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109652</commentid>
    <comment_count>4</comment_count>
      <attachid>27652</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-02-13 02:43:42 -0800</bug_when>
    <thetext>Created attachment 27652
updated patch for layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121241</commentid>
    <comment_count>5</comment_count>
      <attachid>30322</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-14 02:47:29 -0700</bug_when>
    <thetext>Created attachment 30322
Updated patch for adding tests

Latest tests for WCSS marquee extension support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121242</commentid>
    <comment_count>6</comment_count>
      <attachid>30323</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-14 02:48:44 -0700</bug_when>
    <thetext>Created attachment 30323
Updated patch for code changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>121765</commentid>
    <comment_count>7</comment_count>
      <attachid>30444</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-18 02:00:25 -0700</bug_when>
    <thetext>Created attachment 30444
Latest Updated patch for code changes

Add copyright messages for code changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122029</commentid>
    <comment_count>8</comment_count>
      <attachid>30322</attachid>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-05-19 20:38:08 -0700</bug_when>
    <thetext>Comment on attachment 30322
Updated patch for adding tests

They should also be added to Qt skipped list, but okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122050</commentid>
    <comment_count>9</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-05-19 21:35:16 -0700</bug_when>
    <thetext>Checked in as 43888.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122084</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-19 23:57:41 -0700</bug_when>
    <thetext>This change caused 31 tests to fail.  Dave Levin is about to roll it out.

http://build.webkit.org/builders/Tiger%20Intel%20Release/builds/1207</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122088</commentid>
    <comment_count>11</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-20 00:28:31 -0700</bug_when>
    <thetext>As Eric noted, this has been rolled out due to many failing layout test: http://trac.webkit.org/changeset/43889</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122090</commentid>
    <comment_count>12</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-20 00:34:29 -0700</bug_when>
    <thetext>The problem is likely due to new CSS property names and values being added unconditionally to the .in files.

I think it would be best to have separate .in files for the WAP-related CSS properties, the same way we have SVGCSSPropertyNames.in, SVGCSSValueKeywords.in and DashboardSupportCSSPropertyNames.in.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122091</commentid>
    <comment_count>13</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-05-20 00:40:20 -0700</bug_when>
    <thetext>fyi, since I was looking at this change due to the test break, I noticed some style nits in the change:

In WebCore/css/CSSParser.cpp
    FInteger|FNonNeg 
 should be 
    FInteger | FNonNeg

    FTime|FInteger|FNonNeg
 same as above.

In WebCore/css/CSSStyleSelector.cpp

    EOverflow o = OMARQUEE;
 This variable appears unused.


   switch (primitiveValue-&gt;getIdent()) {
       case CSSValueLtr:
The case should align with the switch -- the statements in the case should be indented.


WebCore/rendering/RenderMarquee.cpp
   if (m_totalLoops == 0)
should be
   if (!m_totalLoops)

Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122093</commentid>
    <comment_count>14</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-05-20 00:43:13 -0700</bug_when>
    <thetext>Even if they had been added conditionally the change still would have been wrong, but only for builds where the new code was enabled.  The problem is that a new value keyword was added to CSSValueKeywords.in and the comment at the top of the file was ignored:

# WARNING:
# --------
#
# The Values are sorted according to the properties they belong to,
# and have to be in the same order as the enums in RenderStyle.h.
#
# If not, the optimizations in the cssparser and style selector will fail,
# and produce incorrect results.


This patch results in the values for the display property being out of sync with the values of the EDisplay enum in RenderStyleConstants.h, which leads to the incorrect results that the comment warns of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122094</commentid>
    <comment_count>15</comment_count>
      <attachid>30322</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-05-20 00:43:32 -0700</bug_when>
    <thetext>Comment on attachment 30322
Updated patch for adding tests

Clearing review since patch was landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122095</commentid>
    <comment_count>16</comment_count>
      <attachid>30444</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-05-20 00:43:45 -0700</bug_when>
    <thetext>Comment on attachment 30444
Latest Updated patch for code changes

Clearing review flag since the patch was rolled out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122142</commentid>
    <comment_count>17</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-05-20 06:12:05 -0700</bug_when>
    <thetext>Seems to be a symptom of bit rot on the old patch.  We&apos;ll have to fix it up and try again today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122143</commentid>
    <comment_count>18</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-05-20 06:19:24 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Even if they had been added conditionally the change still would have been
&gt; wrong, but only for builds where the new code was enabled.  The problem is that
&gt; a new value keyword was added to CSSValueKeywords.in and the comment at the top
&gt; of the file was ignored:

  Not ignored.  It&apos;s not surprising this happened since this code long long long predates that optimization, and even the initial rewrite to try to get it merged predates the optimization.  Likewise the test tree predates it.  A good reason why patches should not be left to rot for so long.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122192</commentid>
    <comment_count>19</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-05-20 11:01:29 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #14)
&gt; &gt; Even if they had been added conditionally the change still would have been
&gt; &gt; wrong, but only for builds where the new code was enabled.  The problem is that
&gt; &gt; a new value keyword was added to CSSValueKeywords.in and the comment at the top
&gt; &gt; of the file was ignored:
&gt; 
&gt;   Not ignored.  It&apos;s not surprising this happened since this code long long
&gt; long predates that optimization, and even the initial rewrite to try to get it
&gt; merged predates the optimization.  Likewise the test tree predates it.  A good
&gt; reason why patches should not be left to rot for so long.

   Actually not so sure about how this happened after all.  Too many changes happened since the original patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122306</commentid>
    <comment_count>20</comment_count>
      <attachid>30536</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-21 03:03:55 -0700</bug_when>
    <thetext>Created attachment 30536
Latest patch for code changes

Thank all of you for the comments.

This patch tries to fix the issues mentioned by you guys.
I haven&apos;t verified it on tiger since I just have Qt+Linux environment.
George, please help to verify it. thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122572</commentid>
    <comment_count>21</comment_count>
      <attachid>30536</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-22 00:10:29 -0700</bug_when>
    <thetext>Comment on attachment 30536
Latest patch for code changes

It looks like the new -wap keywords are still being added unconditionally to the .in files. That&apos;s wrong, especially in the case of the addition to CSSValueKeywords.in.If you add -wap-marquee to the .in file unconditionally, but only add it to the EDisplay enum conditionally, the tests will break on platforms with WCSS enabled the same way as before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122577</commentid>
    <comment_count>22</comment_count>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-22 00:20:39 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; (From update of attachment 30536 [review])
&gt; It looks like the new -wap keywords are still being added unconditionally to
&gt; the .in files. That&apos;s wrong, especially in the case of the addition to
&gt; CSSValueKeywords.in.If you add -wap-marquee to the .in file unconditionally,
&gt; but only add it to the EDisplay enum conditionally, the tests will break on
&gt; platforms with WCSS enabled the same way as before.

Thanks, you are right. will fix it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122591</commentid>
    <comment_count>23</comment_count>
      <attachid>30576</attachid>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-22 00:50:31 -0700</bug_when>
    <thetext>Created attachment 30576
Updated patch for code changes


According to Maciej&apos;s comment, fixed the issue of without conditionalization constrains for WAP marquee css properties and values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122856</commentid>
    <comment_count>24</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-05-23 07:43:20 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; Created an attachment (id=30576) [review]
&gt; Updated patch for code changes
&gt; 
&gt; 
&gt; According to Maciej&apos;s comment, fixed the issue of without conditionalization
&gt; constrains for WAP marquee css properties and values.

Patch looks great! Three issues remaining, otherwhise I&apos;d r+ it:

1) Maciej commented before that he&apos;d like a seperated .in file for WCSS before. Or is it fine to add these properties in ENABLE(WML) blocks to the CSS*.in files directly?

2) Hardcoded changes in CSSStyleSelector:

&gt; +            if (primitiveValue-&gt;getIdent() == CSSValueWapMarquee) {
&gt; +                // Initialize Wap Marquee style 
&gt; +                m_style-&gt;setOverflowX(OMARQUEE);
&gt; +                m_style-&gt;setOverflowY(OMARQUEE);
&gt; +                m_style-&gt;setWhiteSpace(NOWRAP);
&gt; +                m_style-&gt;setMarqueeDirection(MLEFT);
&gt; +                m_style-&gt;setMarqueeSpeed(85); // Normal speed 
&gt; +                m_style-&gt;setMarqueeLoopCount(1);
&gt; +                m_style-&gt;setMarqueeBehavior(MSCROLL);

Hm, in WML the marquee mode is enabled using the display=&quot;-wap-marquee&quot; _attribute_ right?
Then you could move this to a WCSS specific .css file, somthing along the lines:
*[display=&quot;-wap-marquee&quot;] { overflow: ... }

The universal selector combined with a specific attribute selector would do.

3) The changes in RenderMarquee concern me a bit, as they&apos;d also affect the HTML marquee implementation, if WML is enabled. Is that fine? Or shouldn&apos;t we better check if we&apos;re operating on a WML document?

&gt; Index: WebCore/rendering/RenderMarquee.cpp
&gt; ===================================================================
&gt; --- WebCore/rendering/RenderMarquee.cpp	(revision 44034)
&gt; +++ WebCore/rendering/RenderMarquee.cpp	(working copy)
&gt; @@ -1,5 +1,6 @@
&gt;  /*
&gt;   * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
&gt; + * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
&gt;   *
&gt;   * Portions are Copyright (C) 1998 Netscape Communications Corporation.
&gt;   *
&gt; @@ -196,6 +197,12 @@ void RenderMarquee::updateMarqueePositio
&gt;      if (activate) {
&gt;          EMarqueeBehavior behavior = m_layer-&gt;renderer()-&gt;style()-&gt;marqueeBehavior();
&gt;          m_start = computePosition(direction(), behavior == MALTERNATE);
&gt; +#if ENABLE(WCSS)
&gt; +        // As per the spec WAP-239-WCSS-20011026-a.pdf, if the &apos;-wap-marquee-loop&apos; is &apos;0&apos;, no looping occurs.
&gt; +        if (!m_totalLoops)
&gt; +            m_end = m_start;
&gt; +        else 
&gt; +#endif
&gt;          m_end = computePosition(reverseDirection(), behavior == MALTERNATE || behavior == MSLIDE);
&gt;          if (!m_stopped)
&gt;              start();
&gt; @@ -298,6 +305,10 @@ void RenderMarquee::timerFired(Timer&lt;Ren
&gt;          m_currentLoop++;
&gt;          if (m_totalLoops &gt; 0 &amp;&amp; m_currentLoop &gt;= m_totalLoops)
&gt;              m_timer.stop();
&gt; +#if ENABLE(WCSS)
&gt; +        else if (!m_totalLoops &amp;&amp; m_timer.isActive())
&gt; +            m_timer.stop();
&gt; +#endif
&gt;          else if (s-&gt;marqueeBehavior() != MALTERNATE)
&gt;              m_reset = true;
&gt;      }

Have a nice day,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>122896</commentid>
    <comment_count>25</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-05-23 17:25:06 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; Created an attachment (id=30576) [review] [review]
&gt; &gt; Updated patch for code changes
&gt; &gt; 
&gt; &gt; 
&gt; &gt; According to Maciej&apos;s comment, fixed the issue of without conditionalization
&gt; &gt; constrains for WAP marquee css properties and values.
&gt; 
&gt; Patch looks great! Three issues remaining, otherwhise I&apos;d r+ it:
&gt; 
&gt; 1) Maciej commented before that he&apos;d like a seperated .in file for WCSS before.
&gt; Or is it fine to add these properties in ENABLE(WML) blocks to the CSS*.in
&gt; files directly?
&gt; 

For the values, it turns out that&apos;s not possible, since the patch adds a new value for the &apos;display&apos; property.

r- for the remaining issues Niko cited, please update and repost.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>123097</commentid>
    <comment_count>26</comment_count>
    <who name="yichao.yin">yichao.yin</who>
    <bug_when>2009-05-25 20:01:08 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (In reply to comment #23)
&gt; &gt; Created an attachment (id=30576) [review] [review]
&gt; &gt; Updated patch for code changes
&gt; &gt; 
&gt; &gt; 
&gt; &gt; According to Maciej&apos;s comment, fixed the issue of without conditionalization
&gt; &gt; constrains for WAP marquee css properties and values.
&gt; Patch looks great! Three issues remaining, otherwhise I&apos;d r+ it:
&gt; 1) Maciej commented before that he&apos;d like a seperated .in file for WCSS before.
&gt; Or is it fine to add these properties in ENABLE(WML) blocks to the CSS*.in
&gt; files directly?

ENABLE(WML)? you mean ENABLE(WCSS)? As for WAP marquee, it is not required by WML 1.3 but WML 2.0.
And current WebKit just supports WML 1.3. right? 
Like Maciej said, it&apos;s not fine to add the property to CSS*.in files directly.


&gt; 2) Hardcoded changes in CSSStyleSelector:
&gt; &gt; +            if (primitiveValue-&gt;getIdent() == CSSValueWapMarquee) {
&gt; &gt; +                // Initialize Wap Marquee style 
&gt; &gt; +                m_style-&gt;setOverflowX(OMARQUEE);
&gt; &gt; +                m_style-&gt;setOverflowY(OMARQUEE);
&gt; &gt; +                m_style-&gt;setWhiteSpace(NOWRAP);
&gt; &gt; +                m_style-&gt;setMarqueeDirection(MLEFT);
&gt; &gt; +                m_style-&gt;setMarqueeSpeed(85); // Normal speed 
&gt; &gt; +                m_style-&gt;setMarqueeLoopCount(1);
&gt; &gt; +                m_style-&gt;setMarqueeBehavior(MSCROLL);
&gt; Hm, in WML the marquee mode is enabled using the display=&quot;-wap-marquee&quot;
&gt; _attribute_ right?

Actually, WCSS marquee extension is for XHMLMP. and not WML1.3 but WML2.0 is required to support it.

&gt; Then you could move this to a WCSS specific .css file, somthing along the
&gt; lines:
&gt; *[display=&quot;-wap-marquee&quot;] { overflow: ... }
&gt; The universal selector combined with a specific attribute selector would do.

Yeah, sounds better, I will try to reimplement it. thanks. :)


&gt; 3) The changes in RenderMarquee concern me a bit, as they&apos;d also affect the
&gt; HTML marquee implementation, if WML is enabled. Is that fine? Or shouldn&apos;t we
&gt; better check if we&apos;re operating on a WML document?

Like I said above, now we needn&apos;t consider WML. But you are right, I should 
consider checking if it&apos;s an XHTMLMP document to avoid to affect HTML marquee.

&gt; &gt; Index: WebCore/rendering/RenderMarquee.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/rendering/RenderMarquee.cpp	(revision 44034)
&gt; &gt; +++ WebCore/rendering/RenderMarquee.cpp	(working copy)
&gt; &gt; @@ -1,5 +1,6 @@
&gt; &gt;  /*
&gt; &gt;   * Copyright (C) 2006, 2007, 2008 Apple Inc. All rights reserved.
&gt; &gt; + * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmobile.com/)
&gt; &gt;   *
&gt; &gt;   * Portions are Copyright (C) 1998 Netscape Communications Corporation.
&gt; &gt;   *
&gt; &gt; @@ -196,6 +197,12 @@ void RenderMarquee::updateMarqueePositio
&gt; &gt;      if (activate) {
&gt; &gt;          EMarqueeBehavior behavior = m_layer-&gt;renderer()-&gt;style()-&gt;marqueeBehavior();
&gt; &gt;          m_start = computePosition(direction(), behavior == MALTERNATE);
&gt; &gt; +#if ENABLE(WCSS)
&gt; &gt; +        // As per the spec WAP-239-WCSS-20011026-a.pdf, if the &apos;-wap-marquee-loop&apos; is &apos;0&apos;, no looping occurs.
&gt; &gt; +        if (!m_totalLoops)
&gt; &gt; +            m_end = m_start;
&gt; &gt; +        else 
&gt; &gt; +#endif
&gt; &gt;          m_end = computePosition(reverseDirection(), behavior == MALTERNATE || behavior == MSLIDE);
&gt; &gt;          if (!m_stopped)
&gt; &gt;              start();
&gt; &gt; @@ -298,6 +305,10 @@ void RenderMarquee::timerFired(Timer&lt;Ren
&gt; &gt;          m_currentLoop++;
&gt; &gt;          if (m_totalLoops &gt; 0 &amp;&amp; m_currentLoop &gt;= m_totalLoops)
&gt; &gt;              m_timer.stop();
&gt; &gt; +#if ENABLE(WCSS)
&gt; &gt; +        else if (!m_totalLoops &amp;&amp; m_timer.isActive())
&gt; &gt; +            m_timer.stop();
&gt; &gt; +#endif
&gt; &gt;          else if (s-&gt;marqueeBehavior() != MALTERNATE)
&gt; &gt;              m_reset = true;
&gt; &gt;      }
&gt; Have a nice day,
&gt; Niko
Thanks for your comments, Niko!
Have a nice day! :)
Yichao

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137265</commentid>
    <comment_count>27</comment_count>
      <attachid>34119</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-08-05 00:28:17 -0700</bug_when>
    <thetext>Created attachment 34119
new patch with seperate .in file for the new WCSS properties.

This is a new patch for the code changes, the most important change is that it seperates the WCSS specific CSS properties in a seperate .in file, and can be conditionally picked up by webkit with ENABLE(WCSS) .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137474</commentid>
    <comment_count>28</comment_count>
      <attachid>34119</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-08-05 16:21:44 -0700</bug_when>
    <thetext>Comment on attachment 34119
new patch with seperate .in file for the new WCSS properties.

Hi Charles,

r-, because the old review comments still apply. Still hardcoded things in CSSStyleSelector that should go in a .css file, and the RenderMarquee changes that affect HTML. These are the only remaining issues, the introduction of the new .in files look good.

Have a nice day,
NIko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139285</commentid>
    <comment_count>29</comment_count>
      <attachid>34648</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-08-12 02:36:11 -0700</bug_when>
    <thetext>Created attachment 34648
resubmit the patch to address comments

This patch differes from the patch submitted on Aug 8 , 2009 is that :

For the changes for RenderMarquee,  it only applys when the WCSS and XHTMLMP are enabled, and the document is of XHTMLMP type,  no impacts to the HTML documents. 

For the other comment from Niko to have a .css file to replace the hard-coded codes that initializes the marquee status with :

*[display=&quot;-wap-marquee&quot;] {overflow=...}

Actually this doesn&apos;t work. The above universal selector works for something like display as an attribute like:

&lt;a display=&quot;-wap-marquee&quot;&gt;

There&apos;s no such an attribute for HTML/xHTML tags,  actually the WCSS marquee is an extension to WCSS display and it works like this : 

&lt;a href=&quot;...&quot; style=&quot;display:-wap-marquee;-wap-marquee-loop:xxx;-wap-marquee-dir:xxx;-wap-marquee-style:xxx;-wap-marquee-speed:xxx&quot;&gt;

So the universal selector  *[display=&quot;-wap-marquee&quot;] {...} doesn&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139307</commentid>
    <comment_count>30</comment_count>
      <attachid>34648</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-08-12 06:13:54 -0700</bug_when>
    <thetext>Comment on attachment 34648
resubmit the patch to address comments

Hi Charles,

patch looks great, along with your comments (regarding the impossiblity to not-hardcode the stuff.)

One last question:

&gt; Index: WebCore/css/WCSSValueKeywords.in
&gt; ===================================================================
&gt; --- WebCore/css/WCSSValueKeywords.in	(revision 0)
&gt; +++ WebCore/css/WCSSValueKeywords.in	(revision 0)
&gt; @@ -0,0 +1 @@
&gt; +# place holder for all WCSS specific CSS value keywords

Do we need this file? I suspect you _may_ need it for the build process?
If not, please remove this file completly, and reupload a patch, then I&apos;ll set &quot;commit-queue +&quot; as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139586</commentid>
    <comment_count>31</comment_count>
      <attachid>34648</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-12 15:15:14 -0700</bug_when>
    <thetext>Comment on attachment 34648
resubmit the patch to address comments


 157     if (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument()) {
 158         if (m_timer.isActive() || m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero() || !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount())    
 159             return;
 160     } else {
 161         if (m_timer.isActive() || m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero())
 162             return;
 163     }
 164     

I would have written that as:

161         if (m_timer.isActive() || m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero() || (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument() &amp;&amp; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount())
 162             return;

in fact, that can seasily just be added as part of the existing if:

     if (m_timer.isActive() || m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero()
#if WCSS
|| (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument() &amp;&amp; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount()
#endif
}
156167         return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139597</commentid>
    <comment_count>32</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-12 15:26:24 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 34648 [details])
&gt;
&gt; in fact, that can seasily just be added as part of the existing if:
&gt; 
&gt;      if (m_timer.isActive() ||
&gt; m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero()
&gt; #if WCSS
&gt; || (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument() &amp;&amp;
&gt; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount()
&gt; #endif
&gt; }
&gt; 156167         return;


I&apos;m already on it.  Fixed a few other minor style issues and this one, but in the end took your implementation as above.

I&apos;m still concerned about the unconditional addition to CSSValueKeywords.in.  How can we deal with that, or is it just fine to include it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139707</commentid>
    <comment_count>33</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-12 19:58:48 -0700</bug_when>
    <thetext>Checked in as r47176.  If the CSSValueKeywords.in change is an issue, we should back it out and find a solution but right now I can&apos;t find a reason against it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139820</commentid>
    <comment_count>34</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-08-13 05:54:16 -0700</bug_when>
    <thetext>(In reply to comment #31)
&gt; (From update of attachment 34648 [details])
&gt; 
&gt;  157     if (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument()) {
&gt;  158         if (m_timer.isActive() ||
&gt; m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero() ||
&gt; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount())    
&gt;  159             return;
&gt;  160     } else {
&gt;  161         if (m_timer.isActive() ||
&gt; m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero())
&gt;  162             return;
&gt;  163     }
&gt;  164     
&gt; 
&gt; I would have written that as:
&gt; 
&gt; 161         if (m_timer.isActive() ||
&gt; m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero() ||
&gt; (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument() &amp;&amp;
&gt; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount())
&gt;  162             return;
&gt; 
&gt; in fact, that can seasily just be added as part of the existing if:
&gt; 
&gt;      if (m_timer.isActive() ||
&gt; m_layer-&gt;renderer()-&gt;style()-&gt;marqueeIncrement().isZero()
&gt; #if WCSS
&gt; || (m_layer-&gt;renderer()-&gt;document()-&gt;isXHTMLMPDocument() &amp;&amp;
&gt; !m_layer-&gt;renderer()-&gt;style()-&gt;marqueeLoopCount()
&gt; #endif
&gt; }
&gt; 156167         return;

Okay, but that doesn&apos;t satifsy a r- in my opinion. It could be done before landing.
Any other reason for that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139821</commentid>
    <comment_count>35</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-08-13 05:55:55 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; Checked in as r47176.  If the CSSValueKeywords.in change is an issue, we should
&gt; back it out and find a solution but right now I can&apos;t find a reason against it.

What about the empty WCSSValueKeywords.in file? No way to remove it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139829</commentid>
    <comment_count>36</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-13 06:54:21 -0700</bug_when>
    <thetext>(In reply to comment #35)
&gt; (In reply to comment #33)
&gt; &gt; Checked in as r47176.  If the CSSValueKeywords.in change is an issue, we should
&gt; &gt; back it out and find a solution but right now I can&apos;t find a reason against it.
&gt; 
&gt; What about the empty WCSSValueKeywords.in file? No way to remove it?

Harmless and I think it&apos;s to be used later?  Otherwise I&apos;ll remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139831</commentid>
    <comment_count>37</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-08-13 06:59:57 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; (In reply to comment #35)
&gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; Checked in as r47176.  If the CSSValueKeywords.in change is an issue, we should
&gt; &gt; &gt; back it out and find a solution but right now I can&apos;t find a reason against it.
&gt; &gt; 
&gt; &gt; What about the empty WCSSValueKeywords.in file? No way to remove it?
&gt; 
&gt; Harmless and I think it&apos;s to be used later?  Otherwise I&apos;ll remove it.
Oh, if there are follow-up patches, that may add content there, I see no problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>139860</commentid>
    <comment_count>38</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-13 08:59:37 -0700</bug_when>
    <thetext>(In reply to comment #34)
&gt; Okay, but that doesn&apos;t satifsy a r- in my opinion. It could be done before
&gt; landing.
&gt; Any other reason for that?

AFAIK Charles Wei is not a committer, so it wouldn&apos;t be possible for him to fix those before landing anyway.  I guess I view &quot;r-&quot; as more &quot;not quite perfect, try again&quot; instead of &quot;completely rejected, go home&quot;. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140124</commentid>
    <comment_count>39</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-08-13 18:28:02 -0700</bug_when>
    <thetext>We have two other patches for other (In reply to comment #37)
&gt; (In reply to comment #36)
&gt; &gt; (In reply to comment #35)
&gt; &gt; &gt; (In reply to comment #33)
&gt; &gt; &gt; &gt; Checked in as r47176.  If the CSSValueKeywords.in change is an issue, we should
&gt; &gt; &gt; &gt; back it out and find a solution but right now I can&apos;t find a reason against it.
&gt; &gt; &gt; 
&gt; &gt; &gt; What about the empty WCSSValueKeywords.in file? No way to remove it?
&gt; &gt; 
&gt; &gt; Harmless and I think it&apos;s to be used later?  Otherwise I&apos;ll remove it.
&gt; Oh, if there are follow-up patches, that may add content there, I see no
&gt; problem.


We have two other patches for other WCSS features, which might put CSS values in WCSSVAlueKeywords.in ,  that&apos;s why we keep it as a placeholder.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27310</attachid>
            <date>2009-02-04 02:14:05 -0800</date>
            <delta_ts>2009-02-13 02:38:14 -0800</delta_ts>
            <desc>inital patch for WCSS marquee support</desc>
            <filename>addwcssmarqueesupport.patch</filename>
            <type>text/plain</type>
            <size>14694</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDYwOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDItMDQgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdlYmtpdAorICAg
ICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIwMDExMDI2LWEu
cGRmCisKKyAgICAgICAgU2luY2UgV0NTUyBpcyB0aGUgY29tcGFuaW9uIG9mIFhIVE1MIE1vYmls
ZSBQcm9maWxlIChYSFRNTCBNUCksIAorICAgICAgICB0aGlzIGNoYW5nZSBkZXBlbmRzIG9uIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3djc3MvbWFycXVlZS1kaXIueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nz
cy9tYXJxdWVlLWxvb3AueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nzcy9tYXJxdWVlLXNw
ZWVkLnhodG1sCisgICAgICAgICAgICAgICBmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbAor
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1h
cnF1ZWVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp0aW1lckZp
cmVkKToKKwogMjAwOS0wMi0wMyAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEpvaG4gU3VsbGl2YW4uCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUu
cHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQwNTYwKQor
KysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw3IEBA
IENPTkZJRyhRVERJUl9idWlsZCkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFUSD0u
KTogREVGSU5FUyArPSBFTkFCTEVfWFBBVEg9MQogIyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVf
WEJMPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YQkw9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9XTUw9Lik6IERFRklORVMgKz0gRU5BQkxFX1dNTD0wCishY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1hIVE1MTVA9Lik6IERFRklORVMgKz0gRU5BQkxFX1hIVE1MTVA9MAogIWNvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9TVkc9Lik6IERFRklORVMgKz0gRU5BQkxFX1NWRz0xCiAhY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1NWR19GT05UUz0uKTogREVGSU5FUyArPSBFTkFCTEVfU1ZHX0ZPTlRT
PTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHX0ZJTFRFUlM9Lik6IERFRklORVMgKz0g
RU5BQkxFX1NWR19GSUxURVJTPTEKQEAgLTE0NzUsNiArMTQ3NiwxNSBAQCBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfV01MPTEpIHsKICAgICBhZGRFeHRyYUNvbXBpbGVyV2l0aEhlYWRlcih3bWxu
YW1lc19iKQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEhUTUxNUD0xKSB7CisgICAg
RkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hIVE1MTVA9MQorICAgICFjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0uKTogREVGSU5FUyArPSBFTkFCTEVfV0NTUz0xCit9
CisgCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0xKSB7CisgICAgRkVBVFVSRV9ERUZJ
TkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dDU1M9MQorfQorCiBjb250YWlucyhERUZJTkVTLCBF
TkFCTEVfU1ZHPTEpIHsKICAgICBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVf
U1ZHPTEKIApJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiA0MDU2MCkKKysrIFdlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Myw2ICs2OTMsMTIgQEAgYm9vbCBD
U1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAvLyB0YWJsZS1jb2x1
bW4tZ3JvdXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJsZS1jZWxsIHwgdGFibGUtY2FwdGlvbiB8IGJv
eCB8IGlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoKGlkID49IENTU1Zh
bHVlSW5saW5lICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94KSB8fCBpZCA9PSBDU1NW
YWx1ZU5vbmUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworI2lmIEVOQUJM
RShXQ1NTKQorICAgICAgICBlbHNlIGlmKGlkID09IENTU1ZhbHVlV2FwTWFycXVlZSkgeworICAg
ICAgICAgICAgYWRkUHJvcGVydHkocHJvcElkLCBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlSWRl
bnRpZmllcihpZCksIGltcG9ydGFudCk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQorI2VuZGlmCiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBDU1NQcm9wZXJ0eURpcmVj
dGlvbjogICAgICAgICAgICAvLyBsdHIgfCBydGwgfCBpbmhlcml0CkBAIC0xMjY4LDYgKzEyNzQs
MjggQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICBl
bHNlCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1l
fEZJbnRlZ2VyfEZOb25OZWcsIG1fc3RyaWN0KTsKICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxF
KFdDU1MpCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVEaXI6CisgICAgICAgIGlmIChp
ZCA9PSBDU1NWYWx1ZUx0ciB8fCBpZCA9PSBDU1NWYWx1ZVJ0bCkKKyAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlX
YXBNYXJxdWVlU3R5bGU6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0g
Q1NTVmFsdWVTbGlkZSB8fCBpZCA9PSBDU1NWYWx1ZVNjcm9sbCB8fCBpZCA9PSBDU1NWYWx1ZUFs
dGVybmF0ZSkKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlTG9vcDoKKyAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlSW5maW5pdGUpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVl
OworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQo
dmFsdWUsIEZJbnRlZ2VyfEZOb25OZWcsIG1fc3RyaWN0KTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTcGVlZDoKKyAgICAgICAgaWYgKGlkID09IENTU1Zh
bHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlU2xvdyB8fCBpZCA9PSBDU1NWYWx1ZUZhc3QpCisg
ICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1lfEZJbnRlZ2VyfEZO
b25OZWcsIG1fc3RyaWN0KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICBjYXNlIENTU1By
b3BlcnR5V2Via2l0VXNlckRyYWc6IC8vIGF1dG8gfCBub25lIHwgZWxlbWVudAogICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVBdXRvIHx8IGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NW
YWx1ZUVsZW1lbnQpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZpc2lvbiA0MDU2MCkKKysrIFdlYkNvcmUvY3NzL0NT
U1Byb3BlcnR5TmFtZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsMTAgQEAgd29y
ZC1zcGFjaW5nCiB3b3JkLXdyYXAKIHotaW5kZXgKIHpvb20KKy13YXAtbWFycXVlZS1kaXIKKy13
YXAtbWFycXVlZS1sb29wCistd2FwLW1hcnF1ZWUtc3BlZWQKKy13YXAtbWFycXVlZS1zdHlsZQog
LXdlYmtpdC1hbmltYXRpb24KIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0LWFuaW1h
dGlvbi1kaXJlY3Rpb24KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA0
MDU2MCkKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOTMyLDcgKzI5MzIsMjkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KGludAogICAgIHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwoZGlzcGxh
eSwgRGlzcGxheSkKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQorI2lmIEVOQUJMRShXQ1NT
KQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkg
PT0gQ1NTVmFsdWVXYXBNYXJxdWVlKSB7CisgICAgICAgICAgICAgICAgLy8gSW5pdGlhbCBXYXAg
TWFycXVlZSBzdHlsZSAKKyAgICAgICAgICAgICAgICBFT3ZlcmZsb3cgbyA9IE9NQVJRVUVFOwor
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WChPTUFSUVVFRSk7CisgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0T3ZlcmZsb3dZKE9NQVJRVUVFKTsKKyAgICAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXRXaGl0ZVNwYWNlKE5PV1JBUCk7CisgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TWFycXVlZURpcmVjdGlvbihNTEVGVCk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+
c2V0TWFycXVlZVNwZWVkKDg1KTsgLy8gbm9ybWFsIHNwZWVkIAorICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQoMSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+
c2V0TWFycXVlZUJlaGF2aW9yKE1TQ1JPTEwpOworCisgICAgICAgICAgICAgICAgaWYgKG1fcGFy
ZW50U3R5bGUpCisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXkobV9wYXJl
bnRTdHlsZS0+ZGlzcGxheSgpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXkoKnByaW1pdGl2ZVZhbHVlKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXkoKnByaW1pdGl2ZVZh
bHVlKTsKKyAgICAgICAgfQorI2Vsc2UKICAgICAgICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXko
KnByaW1pdGl2ZVZhbHVlKTsKKyNlbmRpZgogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC00
NzUyLDYgKzQ3NzQsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50
CiAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQobV9wYXJlbnRTdHlsZS0+bWFy
cXVlZUxvb3BDb3VudCgpKTsKICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUJlaGF2aW9yKG1f
cGFyZW50U3R5bGUtPm1hcnF1ZWVCZWhhdmlvcigpKTsKICAgICAgICAgcmV0dXJuOworI2lmIEVO
QUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlTG9vcDoKKyNlbmRpZgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlUmVwZXRpdGlvbjogewogICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlTG9vcENvdW50LCBNYXJxdWVlTG9vcENv
dW50KQogICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNDc2Miw2ICs0Nzg3LDkgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICAgICAgbV9z
dHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudChwcmltaXRpdmVWYWx1ZS0+Z2V0SW50VmFsdWUoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdhcE1hcnF1ZWVTcGVlZDoKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXJxdWVlU3BlZWQ6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFy
cXVlZVNwZWVkLCBNYXJxdWVlU3BlZWQpICAgICAgCiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFs
dWUpCkBAIC00ODEyLDEyICs0ODQwLDMzIEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQ
cm9wZXJ0eShpbnQKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3R5bGU6CisjZW5kaWYKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVN0eWxlOiB7CiAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVCZWhhdmlvciwgTWFycXVlZUJlaGF2aW9yKSAgICAg
IAogICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUpCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRN
YXJxdWVlQmVoYXZpb3IoKnByaW1pdGl2ZVZhbHVlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
KyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZURpcjoKKyAg
ICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZURpcmVjdGlvbiwgTWFycXVl
ZURpcmVjdGlvbikKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpKSB7CisgICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJ
ZGVudCgpKSB7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZUx0cjoKKyAgICAgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbihNUklHSFQpOworICAgICAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICBjYXNlIENTU1ZhbHVlUnRsOgorICAg
ICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlRGlyZWN0aW9uKE1MRUZUKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAg
ICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbigqcHJpbWl0aXZlVmFs
dWUpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICByZXR1cm47CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFy
cXVlZURpcmVjdGlvbjogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJx
dWVlRGlyZWN0aW9uLCBNYXJxdWVlRGlyZWN0aW9uKQogICAgICAgICBpZiAocHJpbWl0aXZlVmFs
dWUpCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHJldmlzaW9uIDQwNTYwKQorKysgV2Vi
Q29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjU4LDYgKzI1
OCw3IEBAIHRhYmxlLWNvbHVtbi1ncm91cAogdGFibGUtY29sdW1uCiB0YWJsZS1jZWxsCiB0YWJs
ZS1jYXB0aW9uCistd2FwLW1hcnF1ZWUKIC13ZWJraXQtYm94CiAtd2Via2l0LWlubGluZS1ib3gK
ICNub25lCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAkocmV2aXNpb24gNDA1
NjApCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTk1LDYgKzE5NSwxMyBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1hcnF1ZWVQ
b3NpdGlvCiAgICAgaWYgKGFjdGl2YXRlKSB7CiAgICAgICAgIEVNYXJxdWVlQmVoYXZpb3IgYmVo
YXZpb3IgPSBtX2xheWVyLT5yZW5kZXJlcigpLT5zdHlsZSgpLT5tYXJxdWVlQmVoYXZpb3IoKTsK
ICAgICAgICAgbV9zdGFydCA9IGNvbXB1dGVQb3NpdGlvbihkaXJlY3Rpb24oKSwgYmVoYXZpb3Ig
PT0gTUFMVEVSTkFURSk7CisjaWYgRU5BQkxFKFdDU1MpCisgICAgICAgIC8vIEFzIHRvIHRoZSBz
cGVjaWZpY2F0aW9uIFdBUC0yMzktV0NTUy0yMDAxMTAyNi1hLnBkZiwgCisgICAgICAgIC8vIGlm
IHRoZSAnLXdhcC1tYXJxdWVlLWxvb3AnIGlzICcwJywgbm8gbG9vcGluZyBvY2N1cnMuCisgICAg
ICAgIGlmIChtX3RvdGFsTG9vcHMgPT0gMCkKKyAgICAgICAgICAgIG1fZW5kID0gbV9zdGFydDsK
KyAgICAgICAgZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2VuZCA9IGNvbXB1dGVQb3NpdGlvbihy
ZXZlcnNlRGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUgfHwgYmVoYXZpb3IgPT0g
TVNMSURFKTsKICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAgICAgICAgICAgICBzdGFydCgpOwpA
QCAtMjk3LDYgKzMwNCwxMCBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQoVGltZXI8
UmVuCiAgICAgICAgIG1fY3VycmVudExvb3ArKzsKICAgICAgICAgaWYgKG1fdG90YWxMb29wcyA+
IDAgJiYgbV9jdXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMpCiAgICAgICAgICAgICBtX3RpbWVy
LnN0b3AoKTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBpZiAobV90b3RhbExvb3Bz
ID09IDAgJiYgbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7
CisjZW5kaWYKICAgICAgICAgZWxzZSBpZiAocy0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTUFMVEVS
TkFURSkKICAgICAgICAgICAgIG1fcmVzZXQgPSB0cnVlOwogICAgIH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDQwNjA5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMDktMDItMDQgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNobW9i
aWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIGZhc3Qvd2NzczogQWRkZWQuCisgICAgICAgICogZmFzdC93Y3NzL21hcnF1ZWUtZGly
LnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3djc3MvbWFycXVlZS1sb29wLnhodG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWw6IEFkZGVkLgorCiAyMDA5LTAy
LTAzICBCcmFkIEdhcmNpYSAgPGJnYXJjaWFAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWRp
ci54aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1kaXIu
eGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1kaXIu
eGh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/
PgorPCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAx
LjEvL0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+
CisKKzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgor
PHRpdGxlPldDU1MgbWFycXVlZSB0ZXN0IC0gZGlyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+
Cistd2FwLW1hcnFlZS1kaXI6IGx0cgorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7
IC13YXAtbWFycXVlZS1kaXI6IGx0cjsgLXdhcC1tYXJxdWVlLXNwZWVkOiBub3JtYWw7IiA+IEgx
IHdpdGggbWFycXVlZSwgbHRyPC9oMT4gIDxoci8+Cistd2FwLW1hcnFlZS1kaXI6IHJ0bAorPGgx
IHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVlZS1kaXI6IHJ0bDsgLXdh
cC1tYXJxdWVlLXNwZWVkOiBub3JtYWw7IiA+IEgxIHdpdGggbWFycXVlZSwgcnRsPC9oMT4gIDxo
ci8+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVl
ZS1sb29wLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVl
LWxvb3AueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVl
ZS1sb29wLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBN
b2JpbGUgMS4xLy9FTiIgImh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC94aHRtbC1tb2JpbGUx
MS5kdGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8
aGVhZD4KKzx0aXRsZT5XQ1NTIG1hcnF1ZWUgdGVzdCAtIGxvb3A8L3RpdGxlPgorPC9oZWFkPgor
Cis8Ym9keT4KK0Rvbid0IHNwZWNpZnkgLXdhcC1tYXJxdWVlLWxvb3AKKzxoMSBzdHlsZT0iZGlz
cGxheTogLXdhcC1tYXJxdWVlOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBObyAt
d2FwLW1hcnF1ZWUtbG9vcDwvaDE+PGhyLz4KKy13YXAtbWFycXVlZS1sb29wOiAwCis8aDEgc3R5
bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDAiID4gVGVzdCBI
MSBlbGVtZW50IHdpdGggbWFycXVlZSwgLXdhcC1tYXJxdWVlLWxvb3A6IDA8L2gxPjxoci8+Cist
d2FwLW1hcnF1ZWUtbG9vcDogMQorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13
YXAtbWFycXVlZS1sb29wOiAxIiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIC13YXAt
bWFycXVlZS1sb29wOiAxPC9oMT48aHIvPgorLXdhcC1tYXJxdWVlLWxvb3A6IDIKKzxoMSBzdHls
ZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtbG9vcDogMiIgPiBUZXN0IEgx
IGVsZW1lbnQgd2l0aCBtYXJxdWVlLCAtd2FwLW1hcnF1ZWUtbG9vcDogMjwvaDE+PGhyLz4KKy13
YXAtbWFycXVlZS1sb29wOiBpbmZpbml0ZQorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1
ZWU7IC13YXAtbWFycXVlZS1sb29wOiBpbmZpbml0ZSIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBt
YXJxdWVlLCAtd2FwLW1hcnF1ZWUtbG9vcDogaW5maW5pdGU8L2gxPjxoci8+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXNwZWVkLnhodG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwh
RE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4xLy9F
TiIgImh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC94aHRtbC1tb2JpbGUxMS5kdGQiPgorCis8
aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzx0aXRs
ZT5XQ1NTIG1hcnF1ZWUgdGVzdCAtIHNwZWVkPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cist
d2FwLW1hcnF1ZWUtc3BlZWQ6IHNsb3cKKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVl
OyAtd2FwLW1hcnF1ZWUtc3BlZWQ6IHNsb3ciID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVl
ZSwgc2xvdyBzcGVlZDwvaDE+ICA8aHIvPgorLXdhcC1tYXJxdWVlLXNwZWVkOiBub3JtYWwgCis8
aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLXNwZWVkOiBub3Jt
YWwiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgbm9ybWFsIHNwZWVkPC9oMT4gIDxo
ci8+Cistd2FwLW1hcnF1ZWUtc3BlZWQ6IGZhc3QgCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAt
bWFycXVlZTsgLXdhcC1tYXJxdWVlLXNwZWVkOiBmYXN0IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRo
IG1hcnF1ZWUsIGZhc3Qgc3BlZWQ8L2gxPiAgPGhyLz4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0bWwg
UFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjEvL0VOIiAiaHR0cDovL3d3
dy53YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+CisKKzxodG1sIHhtbG5zPSJo
dHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHRpdGxlPldDU1MgbWFycXVl
ZSB0ZXN0IC0gc3R5bGU8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKy13YXAtbWFycXVlZS1z
dHlsZTogc2xpZGUKKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1
ZWUtc3R5bGU6IHNsaWRlOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzbGlkZSBz
dHlsZTwvaDE+Cis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVl
LXN0eWxlOiBzbGlkZTsiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgc2xpZGUgc3R5
bGUsIGxvbmcgdGV4dCBsb25nIHRleHQgbG9uZyB0ZXh0PC9oMT48aHIvPgorCistd2FwLW1hcnF1
ZWUtc3R5bGU6IHNjcm9sbAorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAt
bWFycXVlZS1zdHlsZTogc2Nyb2xsOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBz
Y3JvbGwgc3R5bGU8L2gxPgorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAt
bWFycXVlZS1zdHlsZTogc2Nyb2xsOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBz
Y3JvbGwgc3R5bGUsIGxvbmcgdGV4dCBsb25nIHRleHQgbG9uZyB0ZXh0PC9oMT48aHIvPgorCist
d2FwLW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0ZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDMKKzxoMSBz
dHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0
ZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDMiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwg
YWx0ZXJuYXRlIHN0eWxlPC9oMT4KKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAt
d2FwLW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0ZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDMiID4gVGVz
dCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgYWx0ZXJuYXRlIHN0eWxlLCBsb25nIHRleHQgbG9u
ZyB0ZXh0IGxvbmcgdGV4dDwvaDE+PGhyLz4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27651</attachid>
            <date>2009-02-13 02:38:14 -0800</date>
            <delta_ts>2009-05-14 02:48:44 -0700</delta_ts>
            <desc>updated patch for WCSS marquee extension</desc>
            <filename>addwcssmarquee_codechange.patch</filename>
            <type>text/plain</type>
            <size>9612</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MDk2NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDItMTMgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdlYmtpdAorICAg
ICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIwMDExMDI2LWEu
cGRmCisKKyAgICAgICAgU2luY2UgV0NTUyBpcyB0aGUgY29tcGFuaW9uIG9mIFhIVE1MIE1vYmls
ZSBQcm9maWxlIChYSFRNTCBNUCksIAorICAgICAgICB0aGlzIGNoYW5nZSBkZXBlbmRzIG9uIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3djc3MvbWFycXVlZS1kaXIueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nz
cy9tYXJxdWVlLWxvb3AueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nzcy9tYXJxdWVlLXNw
ZWVkLnhodG1sCisgICAgICAgICAgICAgICBmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbAor
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1h
cnF1ZWVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp0aW1lckZp
cmVkKToKKwogMjAwOS0wMi0xMiAgbWlnZ2lsaW4gIDxtci5kaWdnaWxpbkBnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgS2V2aW4gT2xsaXZpZXIuCkluZGV4OiBXZWJDb3JlL1dlYkNv
cmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQwODQ2
KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTAxLDYgKzEwMSw3
IEBAIENPTkZJRyhRVERJUl9idWlsZCkgewogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFU
SD0uKTogREVGSU5FUyArPSBFTkFCTEVfWFBBVEg9MQogIyFjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfWEJMPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YQkw9MQogIWNvbnRhaW5zKERFRklORVMsIEVO
QUJMRV9XTUw9Lik6IERFRklORVMgKz0gRU5BQkxFX1dNTD0wCishY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1hIVE1MTVA9Lik6IERFRklORVMgKz0gRU5BQkxFX1hIVE1MTVA9MAogIWNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9TVkc9Lik6IERFRklORVMgKz0gRU5BQkxFX1NWRz0xCiAhY29udGFp
bnMoREVGSU5FUywgRU5BQkxFX1NWR19GT05UUz0uKTogREVGSU5FUyArPSBFTkFCTEVfU1ZHX0ZP
TlRTPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHX0ZJTFRFUlM9Lik6IERFRklORVMg
Kz0gRU5BQkxFX1NWR19GSUxURVJTPTEKQEAgLTE0NzYsNiArMTQ3NywxNSBAQCBjb250YWlucyhE
RUZJTkVTLCBFTkFCTEVfV01MPTEpIHsKICAgICBhZGRFeHRyYUNvbXBpbGVyV2l0aEhlYWRlcih3
bWxuYW1lc19iKQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEhUTUxNUD0xKSB7Cisg
ICAgRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hIVE1MTVA9MQorICAgICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0uKTogREVGSU5FUyArPSBFTkFCTEVfV0NTUz0x
Cit9CisgCitjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0xKSB7CisgICAgRkVBVFVSRV9E
RUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dDU1M9MQorfQorCiBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfU1ZHPTEpIHsKICAgICBGRUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFC
TEVfU1ZHPTEKIApJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiA0MDg0NikKKysrIFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5Myw2ICs2OTMsMTIgQEAgYm9v
bCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAgICAgICAvLyB0YWJsZS1j
b2x1bW4tZ3JvdXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJsZS1jZWxsIHwgdGFibGUtY2FwdGlvbiB8
IGJveCB8IGlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAogICAgICAgICBpZiAoKGlkID49IENT
U1ZhbHVlSW5saW5lICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0SW5saW5lQm94KSB8fCBpZCA9PSBD
U1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworI2lmIEVO
QUJMRShXQ1NTKQorICAgICAgICBlbHNlIGlmIChpZCA9PSBDU1NWYWx1ZVdhcE1hcnF1ZWUpIHsK
KyAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZUlkZW50aWZpZXIoaWQpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ1NTUHJvcGVydHlE
aXJlY3Rpb246ICAgICAgICAgICAgLy8gbHRyIHwgcnRsIHwgaW5oZXJpdApAQCAtMTI2OCw2ICsx
Mjc0LDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIKICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBG
VGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOworI2lmIEVO
QUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlRGlyOgorICAgICAgICBp
ZiAoaWQgPT0gQ1NTVmFsdWVMdHIgfHwgaWQgPT0gQ1NTVmFsdWVSdGwpCisgICAgICAgICAgICB2
YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2FwTWFycXVlZVN0eWxlOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlk
ID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgaWQgPT0gQ1NTVmFs
dWVBbHRlcm5hdGUpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZUxvb3A6CisgICAgICAgIGlm
IChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRV
bml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisgICAgICAgIGlmIChpZCA9PSBD
U1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0
KQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGVGltZXxGSW50ZWdl
cnxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8IGVsZW1lbnQKICAgICAg
ICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0g
Q1NTVmFsdWVFbGVtZW50KQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKSW5k
ZXg6IFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2aXNpb24gNDA4NDYpCisrKyBXZWJDb3JlL2Nz
cy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsNiArMTQzLDEwIEBA
IHdvcmQtc3BhY2luZwogd29yZC13cmFwCiB6LWluZGV4CiB6b29tCistd2FwLW1hcnF1ZWUtZGly
Cistd2FwLW1hcnF1ZWUtbG9vcAorLXdhcC1tYXJxdWVlLXNwZWVkCistd2FwLW1hcnF1ZWUtc3R5
bGUKIC13ZWJraXQtYW5pbWF0aW9uCiAtd2Via2l0LWFuaW1hdGlvbi1kZWxheQogLXdlYmtpdC1h
bmltYXRpb24tZGlyZWN0aW9uCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNp
b24gNDA4NDYpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjkzMiw3ICsyOTMyLDI5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQ
cm9wZXJ0eShpbnQKICAgICB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKGRp
c3BsYXksIERpc3BsYXkpCiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKKyNpZiBFTkFCTEUo
V0NTUykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVu
dCgpID09IENTU1ZhbHVlV2FwTWFycXVlZSkgeworICAgICAgICAgICAgICAgIC8vIEluaXRpYWxp
emUgV2FwIE1hcnF1ZWUgc3R5bGUgCisgICAgICAgICAgICAgICAgRU92ZXJmbG93IG8gPSBPTUFS
UVVFRTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRPdmVyZmxvd1goT01BUlFVRUUpOwor
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WShPTUFSUVVFRSk7CisgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0V2hpdGVTcGFjZShOT1dSQVApOworICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQpOworICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldE1hcnF1ZWVTcGVlZCg4NSk7IC8vIG5vcm1hbCBzcGVlZCAKKyAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KDEpOworICAgICAgICAgICAgICAgIG1f
c3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlvcihNU0NST0xMKTsKKworICAgICAgICAgICAgICAgIGlm
IChtX3BhcmVudFN0eWxlKQorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXREaXNwbGF5
KG1fcGFyZW50U3R5bGUtPmRpc3BsYXkoKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgICAgICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmlt
aXRpdmVWYWx1ZSk7CisgICAgICAgIH0KKyNlbHNlCiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRE
aXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisjZW5kaWYKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApAQCAtNDc1Miw2ICs0Nzc0LDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3Bl
cnR5KGludAogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KG1fcGFyZW50U3R5
bGUtPm1hcnF1ZWVMb29wQ291bnQoKSk7CiAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhh
dmlvcihtX3BhcmVudFN0eWxlLT5tYXJxdWVlQmVoYXZpb3IoKSk7CiAgICAgICAgIHJldHVybjsK
KyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZUxvb3A6Cisj
ZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVJlcGV0aXRpb246IHsKICAg
ICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZUxvb3BDb3VudCwgTWFycXVl
ZUxvb3BDb3VudCkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ3NjIsNiArNDc4
Nyw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQocHJpbWl0aXZlVmFsdWUtPmdldEludFZh
bHVlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShXQ1NTKQorICAgIGNh
c2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3Bl
cnR5V2Via2l0TWFycXVlZVNwZWVkOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKG1hcnF1ZWVTcGVlZCwgTWFycXVlZVNwZWVkKSAgICAgIAogICAgICAgICBpZiAoIXByaW1p
dGl2ZVZhbHVlKQpAQCAtNDgxMiwxMiArNDg0MCwzMyBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6
OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNp
ZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVN0eWxlOgorI2Vu
ZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTdHlsZTogewogICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlQmVoYXZpb3IsIE1hcnF1ZWVCZWhhdmlv
cikgICAgICAKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQogICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TWFycXVlZUJlaGF2aW9yKCpwcmltaXRpdmVWYWx1ZSk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVE
aXI6CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVEaXJlY3Rpb24s
IE1hcnF1ZWVEaXJlY3Rpb24pCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSAmJiBwcmltaXRp
dmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgc3dpdGNoIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6CisgICAg
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTVJJR0hUKTsKKyAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgY2FzZSBDU1NWYWx1ZVJ0
bDoKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbihNTEVG
VCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIGRlZmF1bHQ6
CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oKnByaW1p
dGl2ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdl
YmtpdE1hcnF1ZWVEaXJlY3Rpb246IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJ
QUwobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURpcmVjdGlvbikKICAgICAgICAgaWYgKHByaW1p
dGl2ZVZhbHVlKQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA0MDg0NikK
KysrIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI1
OCw2ICsyNTgsNyBAQCB0YWJsZS1jb2x1bW4tZ3JvdXAKIHRhYmxlLWNvbHVtbgogdGFibGUtY2Vs
bAogdGFibGUtY2FwdGlvbgorLXdhcC1tYXJxdWVlCiAtd2Via2l0LWJveAogLXdlYmtpdC1pbmxp
bmUtYm94CiAjbm9uZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAJKHJldmlz
aW9uIDQwODQ2KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTE5Niw2ICsxOTYsMTIgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp1cGRhdGVN
YXJxdWVlUG9zaXRpbwogICAgIGlmIChhY3RpdmF0ZSkgewogICAgICAgICBFTWFycXVlZUJlaGF2
aW9yIGJlaGF2aW9yID0gbV9sYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFycXVlZUJlaGF2
aW9yKCk7CiAgICAgICAgIG1fc3RhcnQgPSBjb21wdXRlUG9zaXRpb24oZGlyZWN0aW9uKCksIGJl
aGF2aW9yID09IE1BTFRFUk5BVEUpOworI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBBcyB0
byB0aGUgc3BlY2lmaWNhdGlvbiBXQVAtMjM5LVdDU1MtMjAwMTEwMjYtYS5wZGYsIGlmIHRoZSAn
LXdhcC1tYXJxdWVlLWxvb3AnIGlzICcwJywgbm8gbG9vcGluZyBvY2N1cnMuCisgICAgICAgIGlm
IChtX3RvdGFsTG9vcHMgPT0gMCkKKyAgICAgICAgICAgIG1fZW5kID0gbV9zdGFydDsKKyAgICAg
ICAgZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2VuZCA9IGNvbXB1dGVQb3NpdGlvbihyZXZlcnNl
RGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUgfHwgYmVoYXZpb3IgPT0gTVNMSURF
KTsKICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAgICAgICAgICAgICBzdGFydCgpOwpAQCAtMjk4
LDYgKzMwNCwxMCBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQoVGltZXI8UmVuCiAg
ICAgICAgIG1fY3VycmVudExvb3ArKzsKICAgICAgICAgaWYgKG1fdG90YWxMb29wcyA+IDAgJiYg
bV9jdXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMpCiAgICAgICAgICAgICBtX3RpbWVyLnN0b3Ao
KTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBpZiAobV90b3RhbExvb3BzID09IDAg
JiYgbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7CisjZW5k
aWYKICAgICAgICAgZWxzZSBpZiAocy0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTUFMVEVSTkFURSkK
ICAgICAgICAgICAgIG1fcmVzZXQgPSB0cnVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27652</attachid>
            <date>2009-02-13 02:43:42 -0800</date>
            <delta_ts>2009-05-14 02:47:29 -0700</delta_ts>
            <desc>updated patch for layout tests</desc>
            <filename>addwcssmarquee_layouttests.patch</filename>
            <type>text/plain</type>
            <size>6916</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQwOTY1KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMDktMDItMTMgIFlpY2hhbyBZaW4gIDx5aWNo
YW8ueWluQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGZhc3Qvd2NzczogQWRkZWQuCisgICAgICAgICogZmFzdC93
Y3NzL21hcnF1ZWUtZGlyLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3djc3MvbWFycXVl
ZS1sb29wLnhodG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3djc3MvbWFycXVlZS1zcGVlZC54
aHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9Ta2lwcGVkOgorCiAyMDA5LTAy
LTEyICBIb3JpYSBPbGFydSAgPG9sYXJ1QGFkb2JlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBPbGl2ZXIgSHVudC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWRpci54
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1kaXIueGh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1kaXIueGh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pgor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjEv
L0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+CisK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHRp
dGxlPldDU1MgbWFycXVlZSB0ZXN0IC0gZGlyPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cist
d2FwLW1hcnFlZS1kaXI6IGx0cgorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13
YXAtbWFycXVlZS1kaXI6IGx0cjsgLXdhcC1tYXJxdWVlLXNwZWVkOiBub3JtYWw7IiA+IEgxIHdp
dGggbWFycXVlZSwgbHRyPC9oMT4gIDxoci8+Cistd2FwLW1hcnFlZS1kaXI6IHJ0bAorPGgxIHN0
eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVlZS1kaXI6IHJ0bDsgLXdhcC1t
YXJxdWVlLXNwZWVkOiBub3JtYWw7IiA+IEgxIHdpdGggbWFycXVlZSwgcnRsPC9oMT4gIDxoci8+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1s
b29wLnhodG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWxv
b3AueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1s
b29wLnhodG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIxIEBACis8P3htbCB2ZXJzaW9uPSIx
LjAiPz4KKzwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2Jp
bGUgMS4xLy9FTiIgImh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC94aHRtbC1tb2JpbGUxMS5k
dGQiPgorCis8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVh
ZD4KKzx0aXRsZT5XQ1NTIG1hcnF1ZWUgdGVzdCAtIGxvb3A8L3RpdGxlPgorPC9oZWFkPgorCis8
Ym9keT4KK0Rvbid0IHNwZWNpZnkgLXdhcC1tYXJxdWVlLWxvb3AKKzxoMSBzdHlsZT0iZGlzcGxh
eTogLXdhcC1tYXJxdWVlOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBObyAtd2Fw
LW1hcnF1ZWUtbG9vcDwvaDE+PGhyLz4KKy13YXAtbWFycXVlZS1sb29wOiAwCis8aDEgc3R5bGU9
ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDAiID4gVGVzdCBIMSBl
bGVtZW50IHdpdGggbWFycXVlZSwgLXdhcC1tYXJxdWVlLWxvb3A6IDA8L2gxPjxoci8+Cistd2Fw
LW1hcnF1ZWUtbG9vcDogMQorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAt
bWFycXVlZS1sb29wOiAxIiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIC13YXAtbWFy
cXVlZS1sb29wOiAxPC9oMT48aHIvPgorLXdhcC1tYXJxdWVlLWxvb3A6IDIKKzxoMSBzdHlsZT0i
ZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtbG9vcDogMiIgPiBUZXN0IEgxIGVs
ZW1lbnQgd2l0aCBtYXJxdWVlLCAtd2FwLW1hcnF1ZWUtbG9vcDogMjwvaDE+PGhyLz4KKy13YXAt
bWFycXVlZS1sb29wOiBpbmZpbml0ZQorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7
IC13YXAtbWFycXVlZS1sb29wOiBpbmZpbml0ZSIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJx
dWVlLCAtd2FwLW1hcnF1ZWUtbG9vcDogaW5maW5pdGU8L2gxPjxoci8+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXNwZWVkLnhodG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiPz4KKzwhRE9D
VFlQRSBodG1sIFBVQkxJQyAiLS8vV0FQRk9SVU0vL0RURCBYSFRNTCBNb2JpbGUgMS4xLy9FTiIg
Imh0dHA6Ly93d3cud2FwZm9ydW0ub3JnL0RURC94aHRtbC1tb2JpbGUxMS5kdGQiPgorCis8aHRt
bCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCI+Cis8aGVhZD4KKzx0aXRsZT5X
Q1NTIG1hcnF1ZWUgdGVzdCAtIHNwZWVkPC90aXRsZT4KKzwvaGVhZD4KKworPGJvZHk+Cistd2Fw
LW1hcnF1ZWUtc3BlZWQ6IHNsb3cKKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAt
d2FwLW1hcnF1ZWUtc3BlZWQ6IHNsb3ciID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwg
c2xvdyBzcGVlZDwvaDE+ICA8aHIvPgorLXdhcC1tYXJxdWVlLXNwZWVkOiBub3JtYWwgCis8aDEg
c3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLXNwZWVkOiBub3JtYWwi
ID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgbm9ybWFsIHNwZWVkPC9oMT4gIDxoci8+
Cistd2FwLW1hcnF1ZWUtc3BlZWQ6IGZhc3QgCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFy
cXVlZTsgLXdhcC1tYXJxdWVlLXNwZWVkOiBmYXN0IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1h
cnF1ZWUsIGZhc3Qgc3BlZWQ8L2gxPiAgPGhyLz4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWwJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMjIgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0bWwgUFVC
TElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjEvL0VOIiAiaHR0cDovL3d3dy53
YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+CisKKzxodG1sIHhtbG5zPSJodHRw
Oi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHRpdGxlPldDU1MgbWFycXVlZSB0
ZXN0IC0gc3R5bGU8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKy13YXAtbWFycXVlZS1zdHls
ZTogc2xpZGUKKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUt
c3R5bGU6IHNsaWRlOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzbGlkZSBzdHls
ZTwvaDE+Cis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLXN0
eWxlOiBzbGlkZTsiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgc2xpZGUgc3R5bGUs
IGxvbmcgdGV4dCBsb25nIHRleHQgbG9uZyB0ZXh0PC9oMT48aHIvPgorCistd2FwLW1hcnF1ZWUt
c3R5bGU6IHNjcm9sbAorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFy
cXVlZS1zdHlsZTogc2Nyb2xsOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzY3Jv
bGwgc3R5bGU8L2gxPgorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFy
cXVlZS1zdHlsZTogc2Nyb2xsOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzY3Jv
bGwgc3R5bGUsIGxvbmcgdGV4dCBsb25nIHRleHQgbG9uZyB0ZXh0PC9oMT48aHIvPgorCistd2Fw
LW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0ZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDMKKzxoMSBzdHls
ZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0ZTsg
LXdhcC1tYXJxdWVlLWxvb3A6IDMiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgYWx0
ZXJuYXRlIHN0eWxlPC9oMT4KKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2Fw
LW1hcnF1ZWUtc3R5bGU6IGFsdGVybmF0ZTsgLXdhcC1tYXJxdWVlLWxvb3A6IDMiID4gVGVzdCBI
MSBlbGVtZW50IHdpdGggbWFycXVlZSwgYWx0ZXJuYXRlIHN0eWxlLCBsb25nIHRleHQgbG9uZyB0
ZXh0IGxvbmcgdGV4dDwvaDE+PGhyLz4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9Ta2lwcGVkCShyZXZpc2lvbiA0MDg0NikKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0yMjE2LDMgKzIyMTYsOSBAQCBwbHVnaW5z
L25ldHNjYXBlLWRvbS1hY2Nlc3MuaHRtbAogIyBUZXN0cyBpbiB0cmFuc2l0aW9ucy8gZGlyZWN0
b3J5CiAjIFRlc3RzIGdlbmVyYXRpbmcgbmV3IHJlc3VsdHMKIHRyYW5zaXRpb25zL3RyYW5zaXRp
b24tZHJ0LWFwaS5odG1sCisKKyMgVGVzdHMgZm9yIFdDU1MgbWFycXVlZSBleHRlbnNpb24gd2hp
Y2ggaXMgbm90IHZlcmlmaWVkIG9uIEdUSworZmFzdC93Y3NzL21hcnF1ZWUtZGlyLnhodG1sCitm
YXN0L3djc3MvbWFycXVlZS1sb29wLnhodG1sCitmYXN0L3djc3MvbWFycXVlZS1zcGVlZC54aHRt
bAorZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCShyZXZpc2lvbiA0MDg0NikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCSh3b3JraW5nIGNvcHkpCkBAIC00NiwzICs0Niw5IEBAIHRhYmxlcy9tb3ppbGxhX2V4cGVj
dGVkX2ZhaWx1cmVzL2J1Z3MvYnUKIAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MTMgUmVwYWludCBwaXhlbCB0ZXN0IGZhaWx1cmUKIGZhc3QvcmVwYWludC9i
b2R5LWJhY2tncm91bmQtaW1hZ2UuaHRtbAorCisjIFRlc3RzIGZvciBXQ1NTIG1hcnF1ZWUgZXh0
ZW5zaW9uIHdoaWNoIGlzIG5vdCB2ZXJpZmllZCBvbiBNYWMgCitmYXN0L3djc3MvbWFycXVlZS1k
aXIueGh0bWwKK2Zhc3Qvd2Nzcy9tYXJxdWVlLWxvb3AueGh0bWwKK2Zhc3Qvd2Nzcy9tYXJxdWVl
LXNwZWVkLnhodG1sCitmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbApJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQJKHJldmlzaW9uIDQwODQ2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTQzNiwzICs0MzYsOSBAQCB0cmFuc2l0
aW9ucy90cmFuc2l0aW9uLWRydC1hcGkuaHRtbAogdHJhbnNpdGlvbnMvdHJhbnNpdGlvbi1kcnQt
YXBpLWRlbGF5Lmh0bWwKIHRyYW5zaXRpb25zL3RyYW5zaXRpb24tc2hvcnRoYW5kLWRlbGF5Lmh0
bWwKIHRyYW5zaXRpb25zL3plcm8tZHVyYXRpb24tbm9uLXplcm8tZGVsYXktZW5kLmh0bWwKKwor
IyBUZXN0cyBmb3IgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiB3aGljaCBpcyBub3QgdmVyaWZpZWQg
b24gV2luZG93cyAKK2Zhc3Qvd2Nzcy9tYXJxdWVlLWRpci54aHRtbAorZmFzdC93Y3NzL21hcnF1
ZWUtbG9vcC54aHRtbAorZmFzdC93Y3NzL21hcnF1ZWUtc3BlZWQueGh0bWwKK2Zhc3Qvd2Nzcy9t
YXJxdWVlLXN0eWxlLnhodG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30322</attachid>
            <date>2009-05-14 02:47:29 -0700</date>
            <delta_ts>2009-05-20 00:43:32 -0700</delta_ts>
            <desc>Updated patch for adding tests</desc>
            <filename>WCSSMarqueeTests.patch</filename>
            <type>text/plain</type>
            <size>7012</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQzNjg5KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDUtMTQgIFlpY2hhbyBZaW4gIDx5aWNo
YW8ueWluQHRvcmNobW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgdGVzdHMgZm9yIFdDU1MgbWFycXVlZSBleHRlbnNpb24g
c3VwcG9ydAorCisgICAgICAgICogZmFzdC93Y3NzOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3dj
c3MvbWFycXVlZS1kaXIueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvd2Nzcy9tYXJxdWVl
LWxvb3AueGh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvd2Nzcy9tYXJxdWVlLXNwZWVkLnho
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMDktMDUt
MTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTm8g
cmV2aWV3LgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC93Y3NzL21hcnF1ZWUtZGlyLnhodG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWRpci54aHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWRpci54aHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZ
UEUgaHRtbCBQVUJMSUMgIi0vL1dBUEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEuMS8vRU4iICJo
dHRwOi8vd3d3LndhcGZvcnVtLm9yZy9EVEQveGh0bWwtbW9iaWxlMTEuZHRkIj4KKworPGh0bWwg
eG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8dGl0bGU+V0NT
UyBtYXJxdWVlIHRlc3QgLSBkaXI8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKy13YXAtbWFy
cWVlLWRpcjogbHRyCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJx
dWVlLWRpcjogbHRyOyAtd2FwLW1hcnF1ZWUtc3BlZWQ6IG5vcm1hbDsiID4gSDEgd2l0aCBtYXJx
dWVlLCBsdHI8L2gxPiAgPGhyLz4KKy13YXAtbWFycWVlLWRpcjogcnRsCis8aDEgc3R5bGU9ImRp
c3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLWRpcjogcnRsOyAtd2FwLW1hcnF1ZWUt
c3BlZWQ6IG5vcm1hbDsiID4gSDEgd2l0aCBtYXJxdWVlLCBydGw8L2gxPiAgPGhyLz4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWxvb3AueGh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC93Y3NzL21hcnF1ZWUtbG9vcC54aHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLWxvb3AueGh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjEgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/Pgor
PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjEv
L0VOIiAiaHR0cDovL3d3dy53YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+CisK
KzxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHRp
dGxlPldDU1MgbWFycXVlZSB0ZXN0IC0gbG9vcDwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5Pgor
RG9uJ3Qgc3BlY2lmeSAtd2FwLW1hcnF1ZWUtbG9vcAorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2Fw
LW1hcnF1ZWU7IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIE5vIC13YXAtbWFycXVl
ZS1sb29wPC9oMT48aHIvPgorLXdhcC1tYXJxdWVlLWxvb3A6IDAKKzxoMSBzdHlsZT0iZGlzcGxh
eTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtbG9vcDogMCIgPiBUZXN0IEgxIGVsZW1lbnQg
d2l0aCBtYXJxdWVlLCAtd2FwLW1hcnF1ZWUtbG9vcDogMDwvaDE+PGhyLz4KKy13YXAtbWFycXVl
ZS1sb29wOiAxCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVl
LWxvb3A6IDEiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwgLXdhcC1tYXJxdWVlLWxv
b3A6IDE8L2gxPjxoci8+Cistd2FwLW1hcnF1ZWUtbG9vcDogMgorPGgxIHN0eWxlPSJkaXNwbGF5
OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVlZS1sb29wOiAyIiA+IFRlc3QgSDEgZWxlbWVudCB3
aXRoIG1hcnF1ZWUsIC13YXAtbWFycXVlZS1sb29wOiAyPC9oMT48aHIvPgorLXdhcC1tYXJxdWVl
LWxvb3A6IGluZmluaXRlCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1t
YXJxdWVlLWxvb3A6IGluZmluaXRlIiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIC13
YXAtbWFycXVlZS1sb29wOiBpbmZpbml0ZTwvaDE+PGhyLz4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXNwZWVkLnhodG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3Qvd2Nzcy9tYXJxdWVlLXNwZWVkLnhodG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC93Y3NzL21hcnF1ZWUtc3BlZWQueGh0bWwJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIGh0
bWwgUFVCTElDICItLy9XQVBGT1JVTS8vRFREIFhIVE1MIE1vYmlsZSAxLjEvL0VOIiAiaHR0cDov
L3d3dy53YXBmb3J1bS5vcmcvRFREL3hodG1sLW1vYmlsZTExLmR0ZCI+CisKKzxodG1sIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIj4KKzxoZWFkPgorPHRpdGxlPldDU1MgbWFy
cXVlZSB0ZXN0IC0gc3BlZWQ8L3RpdGxlPgorPC9oZWFkPgorCis8Ym9keT4KKy13YXAtbWFycXVl
ZS1zcGVlZDogc2xvdworPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFy
cXVlZS1zcGVlZDogc2xvdyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzbG93IHNw
ZWVkPC9oMT4gIDxoci8+Cistd2FwLW1hcnF1ZWUtc3BlZWQ6IG5vcm1hbCAKKzxoMSBzdHlsZT0i
ZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtc3BlZWQ6IG5vcm1hbCIgPiBUZXN0
IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBub3JtYWwgc3BlZWQ8L2gxPiAgPGhyLz4KKy13YXAt
bWFycXVlZS1zcGVlZDogZmFzdCAKKzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAt
d2FwLW1hcnF1ZWUtc3BlZWQ6IGZhc3QiID4gVGVzdCBIMSBlbGVtZW50IHdpdGggbWFycXVlZSwg
ZmFzdCBzcGVlZDwvaDE+ICA8aHIvPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC93Y3NzL21hcnF1ZWUtc3R5bGUueGh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyMiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgaHRtbCBQVUJMSUMgIi0v
L1dBUEZPUlVNLy9EVEQgWEhUTUwgTW9iaWxlIDEuMS8vRU4iICJodHRwOi8vd3d3LndhcGZvcnVt
Lm9yZy9EVEQveGh0bWwtbW9iaWxlMTEuZHRkIj4KKworPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkveGh0bWwiPgorPGhlYWQ+Cis8dGl0bGU+V0NTUyBtYXJxdWVlIHRlc3QgLSBz
dHlsZTwvdGl0bGU+Cis8L2hlYWQ+CisKKzxib2R5PgorLXdhcC1tYXJxdWVlLXN0eWxlOiBzbGlk
ZQorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVlZS1zdHlsZTog
c2xpZGU7IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIHNsaWRlIHN0eWxlPC9oMT4K
KzxoMSBzdHlsZT0iZGlzcGxheTogLXdhcC1tYXJxdWVlOyAtd2FwLW1hcnF1ZWUtc3R5bGU6IHNs
aWRlOyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBzbGlkZSBzdHlsZSwgbG9uZyB0
ZXh0IGxvbmcgdGV4dCBsb25nIHRleHQ8L2gxPjxoci8+CisKKy13YXAtbWFycXVlZS1zdHlsZTog
c2Nyb2xsCis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLXN0
eWxlOiBzY3JvbGw7IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIHNjcm9sbCBzdHls
ZTwvaDE+Cis8aDEgc3R5bGU9ImRpc3BsYXk6IC13YXAtbWFycXVlZTsgLXdhcC1tYXJxdWVlLXN0
eWxlOiBzY3JvbGw7IiA+IFRlc3QgSDEgZWxlbWVudCB3aXRoIG1hcnF1ZWUsIHNjcm9sbCBzdHls
ZSwgbG9uZyB0ZXh0IGxvbmcgdGV4dCBsb25nIHRleHQ8L2gxPjxoci8+CisKKy13YXAtbWFycXVl
ZS1zdHlsZTogYWx0ZXJuYXRlOyAtd2FwLW1hcnF1ZWUtbG9vcDogMworPGgxIHN0eWxlPSJkaXNw
bGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVlZS1zdHlsZTogYWx0ZXJuYXRlOyAtd2FwLW1h
cnF1ZWUtbG9vcDogMyIgPiBUZXN0IEgxIGVsZW1lbnQgd2l0aCBtYXJxdWVlLCBhbHRlcm5hdGUg
c3R5bGU8L2gxPgorPGgxIHN0eWxlPSJkaXNwbGF5OiAtd2FwLW1hcnF1ZWU7IC13YXAtbWFycXVl
ZS1zdHlsZTogYWx0ZXJuYXRlOyAtd2FwLW1hcnF1ZWUtbG9vcDogMyIgPiBUZXN0IEgxIGVsZW1l
bnQgd2l0aCBtYXJxdWVlLCBhbHRlcm5hdGUgc3R5bGUsIGxvbmcgdGV4dCBsb25nIHRleHQgbG9u
ZyB0ZXh0PC9oMT48aHIvPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1NraXBwZWQJKHJldmlzaW9uIDQzNjgxKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Nr
aXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTU5NDIsMyArNTk0Miw5IEBAIHdlYmFyY2hpdmUvdGVz
dC1zY3JpcHQtc3JjLmh0bWwKIHdlYmFyY2hpdmUvdGVzdC10YWJsZS1iYWNrZ3JvdW5kLmh0bWwK
IHdlYmFyY2hpdmUvdGVzdC10ZC1iYWNrZ3JvdW5kLmh0bWwKIHdlYmFyY2hpdmUvdGVzdC14bWwt
c3R5bGVzaGVldC54bWwKKworIyBUZXN0cyBmb3IgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiB3aGlj
aCBpcyBub3QgdmVyaWZpZWQKK2Zhc3Qvd2Nzcy9tYXJxdWVlLWRpci54aHRtbAorZmFzdC93Y3Nz
L21hcnF1ZWUtbG9vcC54aHRtbAorZmFzdC93Y3NzL21hcnF1ZWUtc3BlZWQueGh0bWwKK2Zhc3Qv
d2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
U2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAko
cmV2aXNpb24gNDM2ODEpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29y
a2luZyBjb3B5KQpAQCAtNjYsMyArNjYsOSBAQCBzdmcvaGl4aWUvcGVyZi8wMDIueG1sCiAKICMg
PHJkYXI6Ly9wcm9ibGVtLzY3MTA2MjU+IFRlc3QgbWVkaWEvdmlkZW8tZXJyb3ItYWJvcnQuaHRt
bCBkb2Vzbid0IHdvcmsKIG1lZGlhL3ZpZGVvLWVycm9yLWFib3J0Lmh0bWwKKworIyBUZXN0cyBm
b3IgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiB3aGljaCBpcyBub3QgdmVyaWZpZWQKK2Zhc3Qvd2Nz
cy9tYXJxdWVlLWRpci54aHRtbAorZmFzdC93Y3NzL21hcnF1ZWUtbG9vcC54aHRtbAorZmFzdC93
Y3NzL21hcnF1ZWUtc3BlZWQueGh0bWwKK2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1sCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkocmV2aXNpb24gNDM2ODEpCisrKyBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtNTk1LDMgKzU5NSw5
IEBAIG1lZGlhL3ZpZGVvLWRvY3VtZW50LXR5cGVzLmh0bWwKICMgQnVnIDI1NTgzOiBOZXcgU1ZH
IHJlZ3Jlc3Npb24gdGVzdHMgYWRkZWQgaW4gcjQzMjY5IGZhaWwgb24gV2luZG93cyA8aHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI1NTgzPgogc3ZnL3RyYW5zZm9ybXMv
dGV4dC13aXRoLXBhdHRlcm4taW5zaWRlLXRyYW5zZm9ybWVkLWh0bWwueGh0bWwKIHN2Zy90cmFu
c2Zvcm1zL3RleHQtd2l0aC1wYXR0ZXJuLXdpdGgtc3ZnLXRyYW5zZm9ybS5zdmcKKworIyBUZXN0
cyBmb3IgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiB3aGljaCBpcyBub3QgdmVyaWZpZWQKK2Zhc3Qv
d2Nzcy9tYXJxdWVlLWRpci54aHRtbAorZmFzdC93Y3NzL21hcnF1ZWUtbG9vcC54aHRtbAorZmFz
dC93Y3NzL21hcnF1ZWUtc3BlZWQueGh0bWwKK2Zhc3Qvd2Nzcy9tYXJxdWVlLXN0eWxlLnhodG1s
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30323</attachid>
            <date>2009-05-14 02:48:44 -0700</date>
            <delta_ts>2009-05-18 02:00:25 -0700</delta_ts>
            <desc>Updated patch for code changes</desc>
            <filename>WCSSMarqueeChange.patch</filename>
            <type>text/plain</type>
            <size>9456</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzY4OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDUtMTQgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdlYmtpdAorICAg
ICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIwMDExMDI2LWEu
cGRmCisKKyAgICAgICAgU2luY2UgV0NTUyBpcyB0aGUgY29tcGFuaW9uIG9mIFhIVE1MIE1vYmls
ZSBQcm9maWxlIChYSFRNTCBNUCksIAorICAgICAgICB0aGlzIGNoYW5nZSBkZXBlbmRzIG9uIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3djc3MvbWFycXVlZS1kaXIueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nz
cy9tYXJxdWVlLWxvb3AueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nzcy9tYXJxdWVlLXNw
ZWVkLnhodG1sCisgICAgICAgICAgICAgICBmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbAor
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1h
cnF1ZWVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp0aW1lckZp
cmVkKToKKwogMjAwOS0wNS0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpeCBidWlsZC4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gNDM2ODEpCisrKyBXZWJDb3Jl
L1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgQ09ORklHKFFU
RElSX2J1aWxkKSB7CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JU
PS4pOiBERUZJTkVTICs9IEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVD0wCiAhY29udGFpbnMoREVG
SU5FUywgRU5BQkxFX1hQQVRIPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YUEFUSD0xCiAjIWNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9YQkw9Lik6IERFRklORVMgKz0gRU5BQkxFX1hCTD0xCishY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9Lik6IERFRklORVMgKz0gRU5BQkxFX1dDU1M9MAog
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9Lik6IERFRklORVMgKz0gRU5BQkxFX1dNTD0w
CiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxF
X1dPUktFUlM9MQogCkBAIC0xNDc2LDYgKzE0NzcsMTEgQEAgY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1hCTD0xKSB7CiAgICAgRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1hC
TD0xCiB9CiAKK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XQ1NTPTEpIHsKKyAgICBGRUFUVVJF
X0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfV0NTUz0xCisgICAgIWNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9YSFRNTE1QPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YSFRNTE1QPTEKK30KKwog
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dNTD0xKSB7CiAgICAgU09VUkNFUyArPSBcCiAgICAg
ICAgIHdtbC9XTUxBRWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiA0MzY4
MSkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5NCw2
ICs2OTQsMTIgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgogICAg
ICAgICAvLyB0YWJsZS1jb2x1bW4tZ3JvdXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJsZS1jZWxsIHwg
dGFibGUtY2FwdGlvbiB8IGJveCB8IGlubGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAogICAgICAg
ICBpZiAoKGlkID49IENTU1ZhbHVlSW5saW5lICYmIGlkIDw9IENTU1ZhbHVlV2Via2l0SW5saW5l
Qm94KSB8fCBpZCA9PSBDU1NWYWx1ZU5vbmUpCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICBlbHNlIGlmIChpZCA9PSBDU1NWYWx1
ZVdhcE1hcnF1ZWUpIHsKKyAgICAgICAgICAgIGFkZFByb3BlcnR5KHByb3BJZCwgQ1NTUHJpbWl0
aXZlVmFsdWU6OmNyZWF0ZUlkZW50aWZpZXIoaWQpLCBpbXBvcnRhbnQpOworICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgICAgIH0KKyNlbmRpZgogICAgICAgICBicmVhazsKIAogICAgIGNh
c2UgQ1NTUHJvcGVydHlEaXJlY3Rpb246ICAgICAgICAgICAgLy8gbHRyIHwgcnRsIHwgaW5oZXJp
dApAQCAtMTI1OSw2ICsxMjY1LDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBw
cm9wSWQsIGIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFs
aWRVbml0KHZhbHVlLCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAg
IGJyZWFrOworI2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVl
RGlyOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVMdHIgfHwgaWQgPT0gQ1NTVmFsdWVSdGwp
CisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVN0eWxlOgorICAgICAgICBpZiAoaWQgPT0gQ1NT
VmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwg
fHwgaWQgPT0gQ1NTVmFsdWVBbHRlcm5hdGUpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUg
PSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZUxv
b3A6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisgICAg
ICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQg
PT0gQ1NTVmFsdWVGYXN0KQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVl
LCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOworI2Vu
ZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8
IGVsZW1lbnQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1
ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVFbGVtZW50KQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2aXNpb24gNDM2ODEp
CisrKyBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0x
MzYsNiArMTM2LDEwIEBAIHdvcmQtc3BhY2luZwogd29yZC13cmFwCiB6LWluZGV4CiB6b29tCist
d2FwLW1hcnF1ZWUtZGlyCistd2FwLW1hcnF1ZWUtbG9vcAorLXdhcC1tYXJxdWVlLXNwZWVkCist
d2FwLW1hcnF1ZWUtc3R5bGUKIC13ZWJraXQtYW5pbWF0aW9uCiAtd2Via2l0LWFuaW1hdGlvbi1k
ZWxheQogLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NT
dHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcAkocmV2aXNpb24gNDM2ODEpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9y
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2NCw3ICsyOTY0LDI5IEBAIHZvaWQgQ1NTU3R5bGVT
ZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklU
X0FORF9JTklUSUFMKGRpc3BsYXksIERpc3BsYXkpCiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZSkKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHByaW1pdGl2
ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2FwTWFycXVlZSkgeworICAgICAgICAgICAg
ICAgIC8vIEluaXRpYWxpemUgV2FwIE1hcnF1ZWUgc3R5bGUgCisgICAgICAgICAgICAgICAgRU92
ZXJmbG93IG8gPSBPTUFSUVVFRTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRPdmVyZmxv
d1goT01BUlFVRUUpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WShPTUFS
UVVFRSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0V2hpdGVTcGFjZShOT1dSQVApOwor
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQpOworICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVTcGVlZCg4NSk7IC8vIG5vcm1hbCBzcGVl
ZCAKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KDEpOworICAg
ICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlvcihNU0NST0xMKTsKKworICAg
ICAgICAgICAgICAgIGlmIChtX3BhcmVudFN0eWxlKQorICAgICAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXREaXNwbGF5KG1fcGFyZW50U3R5bGUtPmRpc3BsYXkoKSk7CisgICAgICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmltaXRp
dmVWYWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5z
ZXREaXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgIH0KKyNlbHNlCiAgICAgICAgICAg
ICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisjZW5kaWYKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtNDc5Myw2ICs0ODE1LDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENv
dW50KG1fcGFyZW50U3R5bGUtPm1hcnF1ZWVMb29wQ291bnQoKSk7CiAgICAgICAgIG1fc3R5bGUt
PnNldE1hcnF1ZWVCZWhhdmlvcihtX3BhcmVudFN0eWxlLT5tYXJxdWVlQmVoYXZpb3IoKSk7CiAg
ICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Fw
TWFycXVlZUxvb3A6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVJl
cGV0aXRpb246IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZUxv
b3BDb3VudCwgTWFycXVlZUxvb3BDb3VudCkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkK
QEAgLTQ4MDMsNiArNDgyOCw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0
eShpbnQKICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQocHJpbWl0aXZl
VmFsdWUtPmdldEludFZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJM
RShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisjZW5kaWYKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVNwZWVkOiB7CiAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVTcGVlZCwgTWFycXVlZVNwZWVkKSAgICAgIAogICAg
ICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNDg1MywxMiArNDg4MSwzMyBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFy
cXVlZVN0eWxlOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTdHls
ZTogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlQmVoYXZpb3Is
IE1hcnF1ZWVCZWhhdmlvcikgICAgICAKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQogICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUJlaGF2aW9yKCpwcmltaXRpdmVWYWx1ZSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdhcE1hcnF1ZWVEaXI6CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG1h
cnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCisgICAgICAgIGlmIChwcmltaXRpdmVW
YWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgc3dpdGNo
IChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ1NT
VmFsdWVMdHI6CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rp
b24oTVJJR0hUKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAg
Y2FzZSBDU1NWYWx1ZVJ0bDoKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVl
ZURpcmVjdGlvbihNTEVGVCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVE
aXJlY3Rpb24oKnByaW1pdGl2ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rpb246IHsKICAgICAgICAgSEFORExFX0lO
SEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURpcmVjdGlvbikKICAg
ICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQpJbmRleDogV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCShy
ZXZpc2lvbiA0MzY4MSkKKysrIFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTI1OCw2ICsyNTgsNyBAQCB0YWJsZS1jb2x1bW4tZ3JvdXAKIHRhYmxlLWNv
bHVtbgogdGFibGUtY2VsbAogdGFibGUtY2FwdGlvbgorLXdhcC1tYXJxdWVlCiAtd2Via2l0LWJv
eAogLXdlYmtpdC1pbmxpbmUtYm94CiAjbm9uZQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWFycXVlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFy
cXVlZS5jcHAJKHJldmlzaW9uIDQzNjgxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFy
cXVlZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Niw2ICsxOTYsMTIgQEAgdm9pZCBSZW5kZXJN
YXJxdWVlOjp1cGRhdGVNYXJxdWVlUG9zaXRpbwogICAgIGlmIChhY3RpdmF0ZSkgewogICAgICAg
ICBFTWFycXVlZUJlaGF2aW9yIGJlaGF2aW9yID0gbV9sYXllci0+cmVuZGVyZXIoKS0+c3R5bGUo
KS0+bWFycXVlZUJlaGF2aW9yKCk7CiAgICAgICAgIG1fc3RhcnQgPSBjb21wdXRlUG9zaXRpb24o
ZGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUpOworI2lmIEVOQUJMRShXQ1NTKQor
ICAgICAgICAvLyBBcyB0byB0aGUgc3BlY2lmaWNhdGlvbiBXQVAtMjM5LVdDU1MtMjAwMTEwMjYt
YS5wZGYsIGlmIHRoZSAnLXdhcC1tYXJxdWVlLWxvb3AnIGlzICcwJywgbm8gbG9vcGluZyBvY2N1
cnMuCisgICAgICAgIGlmIChtX3RvdGFsTG9vcHMgPT0gMCkKKyAgICAgICAgICAgIG1fZW5kID0g
bV9zdGFydDsKKyAgICAgICAgZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2VuZCA9IGNvbXB1dGVQ
b3NpdGlvbihyZXZlcnNlRGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUgfHwgYmVo
YXZpb3IgPT0gTVNMSURFKTsKICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAgICAgICAgICAgICBz
dGFydCgpOwpAQCAtMjk4LDYgKzMwNCwxMCBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnRpbWVyRmly
ZWQoVGltZXI8UmVuCiAgICAgICAgIG1fY3VycmVudExvb3ArKzsKICAgICAgICAgaWYgKG1fdG90
YWxMb29wcyA+IDAgJiYgbV9jdXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMpCiAgICAgICAgICAg
ICBtX3RpbWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBpZiAobV90
b3RhbExvb3BzID09IDAgJiYgbV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1l
ci5zdG9wKCk7CisjZW5kaWYKICAgICAgICAgZWxzZSBpZiAocy0+bWFycXVlZUJlaGF2aW9yKCkg
IT0gTUFMVEVSTkFURSkKICAgICAgICAgICAgIG1fcmVzZXQgPSB0cnVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30444</attachid>
            <date>2009-05-18 02:00:25 -0700</date>
            <delta_ts>2009-05-21 03:03:55 -0700</delta_ts>
            <desc>Latest Updated patch for code changes</desc>
            <filename>WCSSMarqueeChange.patch</filename>
            <type>text/plain</type>
            <size>10179</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MzgxOSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMDktMDUtMTggIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdlYmtpdAorICAg
ICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIwMDExMDI2LWEu
cGRmCisgCisgICAgICAgIFNpbmNlIFdDU1MgaXMgdGhlIGNvbXBhbmlvbiBvZiBYSFRNTCBNb2Jp
bGUgUHJvZmlsZSAoWEhUTUwgTVApLAorICAgICAgICB0aGlzIGNoYW5nZSBkZXBlbmRzIG9uIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MgorCisgICAgICAgIFRl
c3RzOiBmYXN0L3djc3MvbWFycXVlZS1kaXIueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nz
cy9tYXJxdWVlLWxvb3AueGh0bWwKKyAgICAgICAgICAgICAgIGZhc3Qvd2Nzcy9tYXJxdWVlLXNw
ZWVkLnhodG1sCisgICAgICAgICAgICAgICBmYXN0L3djc3MvbWFycXVlZS1zdHlsZS54aHRtbAor
CisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9D
U1NQcm9wZXJ0eU5hbWVzLmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJNYXJxdWVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1h
cnF1ZWVQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp0aW1lckZp
cmVkKToKKwogMjAwOS0wNS0xNyAgR2VvcmdlIFN0YWlrb3MgIDxnZW9yZ2Uuc3RhaWtvc0B0b3Jj
aG1vYmlsZS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkIC0gYnVpbGQgZml4LgpJbmRleDog
V2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShy
ZXZpc2lvbiA0MzY4MSkKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAg
LTEwNSw2ICsxMDUsNyBAQCBDT05GSUcoUVRESVJfYnVpbGQpIHsKICFjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQ9Lik6IERFRklORVMgKz0gRU5BQkxFX0RBU0hCT0FS
RF9TVVBQT1JUPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9Lik6IERFRklORVMg
Kz0gRU5BQkxFX1hQQVRIPTEKICMhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hCTD0uKTogREVG
SU5FUyArPSBFTkFCTEVfWEJMPTEKKyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0uKTog
REVGSU5FUyArPSBFTkFCTEVfV0NTUz0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dNTD0u
KTogREVGSU5FUyArPSBFTkFCTEVfV01MPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV09S
S0VSUz0uKTogREVGSU5FUyArPSBFTkFCTEVfV09SS0VSUz0xCiAKQEAgLTE0NzYsNiArMTQ3Nywx
MSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEJMPTEpIHsKICAgICBGRUFUVVJFX0RFRklO
RVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWEJMPTEKIH0KIAorY29udGFpbnMoREVGSU5FUywgRU5B
QkxFX1dDU1M9MSkgeworICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9X
Q1NTPTEKKyAgICAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hIVE1MTVA9Lik6IERFRklORVMg
Kz0gRU5BQkxFX1hIVE1MTVA9MQorfQorCiBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV01MPTEp
IHsKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgd21sL1dNTEFFbGVtZW50LmNwcCBcCkluZGV4
OiBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAJKHJldmlzaW9uIDQzNjgxKQorKysgV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNCw2ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwg
MjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMDcgTmljaG9sYXMgU2hhbmtzIDx3ZWJraXRAbmlja3NoYW5rcy5j
b20+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
KyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC02OTQsNiArNjk1LDEyIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQs
IGIKICAgICAgICAgLy8gdGFibGUtY29sdW1uLWdyb3VwIHwgdGFibGUtY29sdW1uIHwgdGFibGUt
Y2VsbCB8IHRhYmxlLWNhcHRpb24gfCBib3ggfCBpbmxpbmUtYm94IHwgbm9uZSB8IGluaGVyaXQK
ICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUlubGluZSAmJiBpZCA8PSBDU1NWYWx1ZVdlYmtp
dElubGluZUJveCkgfHwgaWQgPT0gQ1NTVmFsdWVOb25lKQogICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBpZiAoaWQgPT0g
Q1NTVmFsdWVXYXBNYXJxdWVlKSB7CisgICAgICAgICAgICBhZGRQcm9wZXJ0eShwcm9wSWQsIENT
U1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGVJZGVudGlmaWVyKGlkKSwgaW1wb3J0YW50KTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgYnJlYWs7CiAK
ICAgICBjYXNlIENTU1Byb3BlcnR5RGlyZWN0aW9uOiAgICAgICAgICAgIC8vIGx0ciB8IHJ0bCB8
IGluaGVyaXQKQEAgLTEyNTksNiArMTI2NiwyOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1
ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2
ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwog
ICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Fw
TWFycXVlZURpcjoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1Zh
bHVlUnRsKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTdHlsZToKKyAgICAgICAgaWYgKGlk
ID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVNsaWRlIHx8IGlkID09IENTU1ZhbHVl
U2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQWx0ZXJuYXRlKQorICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1h
cnF1ZWVMb29wOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbmZpbml0ZSkKKyAgICAgICAg
ICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXJ8Rk5vbk5lZywgbV9zdHJp
Y3QpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVNwZWVk
OgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgaWQgPT0gQ1NTVmFsdWVTbG93
IHx8IGlkID09IENTU1ZhbHVlRmFzdCkKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRy
dWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5p
dCh2YWx1ZSwgRlRpbWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICBicmVh
azsKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8gYXV0byB8
IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0g
Q1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkKICAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHRydWU7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmlu
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4JKHJldmlzaW9u
IDQzNjgxKQorKysgV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkod29ya2luZyBjb3B5
KQpAQCAtMTM2LDYgKzEzNiwxMCBAQCB3b3JkLXNwYWNpbmcKIHdvcmQtd3JhcAogei1pbmRleAog
em9vbQorLXdhcC1tYXJxdWVlLWRpcgorLXdhcC1tYXJxdWVlLWxvb3AKKy13YXAtbWFycXVlZS1z
cGVlZAorLXdhcC1tYXJxdWVlLXN0eWxlCiAtd2Via2l0LWFuaW1hdGlvbgogLXdlYmtpdC1hbmlt
YXRpb24tZGVsYXkKIC13ZWJraXQtYW5pbWF0aW9uLWRpcmVjdGlvbgpJbmRleDogV2ViQ29yZS9j
c3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5
bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDQzNjgxKQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVT
ZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NjQsNyArMjk2NCwyOSBAQCB2b2lkIENT
U1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgewogICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChkaXNwbGF5LCBEaXNwbGF5KQogICAgICAgICBpZiAocHJpbWl0
aXZlVmFsdWUpCisjaWYgRU5BQkxFKFdDU1MpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmIChw
cmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZVdhcE1hcnF1ZWUpIHsKKyAgICAg
ICAgICAgICAgICAvLyBJbml0aWFsaXplIFdhcCBNYXJxdWVlIHN0eWxlIAorICAgICAgICAgICAg
ICAgIEVPdmVyZmxvdyBvID0gT01BUlFVRUU7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
T3ZlcmZsb3dYKE9NQVJRVUVFKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRPdmVyZmxv
d1koT01BUlFVRUUpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldFdoaXRlU3BhY2UoTk9X
UkFQKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlRGlyZWN0aW9uKE1MRUZU
KTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlU3BlZWQoODUpOyAvLyBub3Jt
YWwgc3BlZWQgCisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudCgx
KTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlQmVoYXZpb3IoTVNDUk9MTCk7
CisKKyAgICAgICAgICAgICAgICBpZiAobV9wYXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0RGlzcGxheShtX3BhcmVudFN0eWxlLT5kaXNwbGF5KCkpOworICAgICAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgq
cHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICB9CisjZWxzZQogICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFsdWUpOworI2VuZGlmCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ3OTMsNiArNDgxNSw5IEBAIHZvaWQgQ1NTU3R5
bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVl
ZUxvb3BDb3VudChtX3BhcmVudFN0eWxlLT5tYXJxdWVlTG9vcENvdW50KCkpOwogICAgICAgICBt
X3N0eWxlLT5zZXRNYXJxdWVlQmVoYXZpb3IobV9wYXJlbnRTdHlsZS0+bWFycXVlZUJlaGF2aW9y
KCkpOwogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdhcE1hcnF1ZWVMb29wOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
cnF1ZWVSZXBldGl0aW9uOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG1h
cnF1ZWVMb29wQ291bnQsIE1hcnF1ZWVMb29wQ291bnQpCiAgICAgICAgIGlmICghcHJpbWl0aXZl
VmFsdWUpCkBAIC00ODAzLDYgKzQ4MjgsOSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkoaW50CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KHBy
aW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyNp
ZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVNwZWVkOgorI2Vu
ZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTcGVlZDogewogICAgICAgICBI
QU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlU3BlZWQsIE1hcnF1ZWVTcGVlZCkgICAg
ICAKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ4NTMsMTIgKzQ4ODEsMzMgQEAg
dm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICB9CiAgICAg
ICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQcm9wZXJ0
eVdhcE1hcnF1ZWVTdHlsZToKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJx
dWVlU3R5bGU6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZUJl
aGF2aW9yLCBNYXJxdWVlQmVoYXZpb3IpICAgICAgCiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZSkKICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlvcigqcHJpbWl0aXZlVmFs
dWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXYXBNYXJxdWVlRGlyOgorICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5J
VElBTChtYXJxdWVlRGlyZWN0aW9uLCBNYXJxdWVlRGlyZWN0aW9uKQorICAgICAgICBpZiAocHJp
bWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAg
IHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAgICAgICAgICAgICAgICBj
YXNlIENTU1ZhbHVlTHRyOgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVl
RGlyZWN0aW9uKE1SSUdIVCk7CisgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgICAgIGNhc2UgQ1NTVmFsdWVSdGw6CisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNl
dE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQpOworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRN
YXJxdWVlRGlyZWN0aW9uKCpwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyNlbmRpZgog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlRGlyZWN0aW9uOiB7CiAgICAgICAgIEhB
TkRMRV9JTkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rp
b24pCiAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgkocmV2aXNpb24gNDM2ODEpCisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CSh3b3JraW5nIGNvcHkpCkBAIC0yNTgsNiArMjU4LDcgQEAgdGFibGUtY29sdW1uLWdyb3VwCiB0
YWJsZS1jb2x1bW4KIHRhYmxlLWNlbGwKIHRhYmxlLWNhcHRpb24KKy13YXAtbWFycXVlZQogLXdl
YmtpdC1ib3gKIC13ZWJraXQtaW5saW5lLWJveAogI25vbmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1hcnF1ZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1hcnF1ZWUuY3BwCShyZXZpc2lvbiA0MzY4MSkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1hcnF1ZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBQb3J0aW9ucyBh
cmUgQ29weXJpZ2h0IChDKSAxOTk4IE5ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9u
LgogICoKQEAgLTE5Niw2ICsxOTcsMTIgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp1cGRhdGVNYXJx
dWVlUG9zaXRpbwogICAgIGlmIChhY3RpdmF0ZSkgewogICAgICAgICBFTWFycXVlZUJlaGF2aW9y
IGJlaGF2aW9yID0gbV9sYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFycXVlZUJlaGF2aW9y
KCk7CiAgICAgICAgIG1fc3RhcnQgPSBjb21wdXRlUG9zaXRpb24oZGlyZWN0aW9uKCksIGJlaGF2
aW9yID09IE1BTFRFUk5BVEUpOworI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBBcyB0byB0
aGUgc3BlY2lmaWNhdGlvbiBXQVAtMjM5LVdDU1MtMjAwMTEwMjYtYS5wZGYsIGlmIHRoZSAnLXdh
cC1tYXJxdWVlLWxvb3AnIGlzICcwJywgbm8gbG9vcGluZyBvY2N1cnMuCisgICAgICAgIGlmICht
X3RvdGFsTG9vcHMgPT0gMCkKKyAgICAgICAgICAgIG1fZW5kID0gbV9zdGFydDsKKyAgICAgICAg
ZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2VuZCA9IGNvbXB1dGVQb3NpdGlvbihyZXZlcnNlRGly
ZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUgfHwgYmVoYXZpb3IgPT0gTVNMSURFKTsK
ICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAgICAgICAgICAgICBzdGFydCgpOwpAQCAtMjk4LDYg
KzMwNSwxMCBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQoVGltZXI8UmVuCiAgICAg
ICAgIG1fY3VycmVudExvb3ArKzsKICAgICAgICAgaWYgKG1fdG90YWxMb29wcyA+IDAgJiYgbV9j
dXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMpCiAgICAgICAgICAgICBtX3RpbWVyLnN0b3AoKTsK
KyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBpZiAobV90b3RhbExvb3BzID09IDAgJiYg
bV90aW1lci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7CisjZW5kaWYK
ICAgICAgICAgZWxzZSBpZiAocy0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTUFMVEVSTkFURSkKICAg
ICAgICAgICAgIG1fcmVzZXQgPSB0cnVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30536</attachid>
            <date>2009-05-21 03:03:55 -0700</date>
            <delta_ts>2009-05-22 00:50:31 -0700</delta_ts>
            <desc>Latest patch for code changes</desc>
            <filename>WCSSMarqueeChange.patch</filename>
            <type>text/plain</type>
            <size>12929</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0Mzk2MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDUtMjEgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWcgMjM3Mjc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcyNworICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdl
YmtpdAorICAgICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIw
MDExMDI2LWEucGRmCisgCisgICAgICAgIFNpbmNlIFdDU1MgaXMgdGhlIGNvbXBhbmlvbiBvZiBY
SFRNTCBNb2JpbGUgUHJvZmlsZSAoWEhUTUwgTVApLAorICAgICAgICB0aGlzIGNoYW5nZSBkZXBl
bmRzIG9uIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ1MgorCisg
ICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVW
YWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcm9wZXJ0eU5hbWVz
LmluOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NW
YWx1ZUtleXdvcmRzLmluOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnVwZGF0ZU1hcnF1ZWVQb3NpdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6Y3JlYXRlT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGVDb25zdGFudHMuaDoKKyAgICAgICAgKFdlYkNvcmU6Oik6CisKIDIwMDktMDUtMjAgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJp
IEdsYXprb3YuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQzOTQ4KQorKysgV2ViQ29yZS9XZWJDb3JlLnBybwko
d29ya2luZyBjb3B5KQpAQCAtMTAzLDYgKzEwMyw3IEBAIENPTkZJRyhRVERJUl9idWlsZCkgewog
IWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YUEFUSD0uKTogREVGSU5FUyArPSBFTkFCTEVfWFBB
VEg9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YU0xUPS4pOiBERUZJTkVTICs9IEVOQUJM
RV9YU0xUPTAKICMhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hCTD0uKTogREVGSU5FUyArPSBF
TkFCTEVfWEJMPTEKKyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV0NTUz0uKTogREVGSU5FUyAr
PSBFTkFCTEVfV0NTUz0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dNTD0uKTogREVGSU5F
UyArPSBFTkFCTEVfV01MPTAKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfV09SS0VSUz0uKTog
REVGSU5FUyArPSBFTkFCTEVfV09SS0VSUz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hI
VE1MTVA9Lik6IERFRklORVMgKz0gRU5BQkxFX1hIVE1MTVA9MApAQCAtMTQ4MSw2ICsxNDgyLDE0
IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YQkw9MSkgewogICAgIEZFQVRVUkVfREVGSU5F
U19KQVZBU0NSSVBUICs9IEVOQUJMRV9YQkw9MQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfV0NTUz0xKSB7CisgICAgRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dD
U1M9MQorICAgIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YSFRNTE1QPTApIHsKKyAgICAgICAg
REVGSU5FUyAtPSBFTkFCTEVfWEhUTUxNUD0wCisgICAgICAgIERFRklORVMgKz0gRU5BQkxFX1hI
VE1MTVA9MQorICAgIH0KK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dNTD0xKSB7CiAg
ICAgU09VUkNFUyArPSBcCiAgICAgICAgIHdtbC9XTUxBRWxlbWVudC5jcHAgXApJbmRleDogV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCShyZXZpc2lvbiA0Mzk0OCkKKysrIFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUs
IDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDA3IE5pY2hvbGFzIFNoYW5rcyA8d2Via2l0QG5pY2tzaGFua3MuY29tPgog
ICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4g
KGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTI1
OSw2ICsxMjYwLDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKGludCBwcm9wSWQsIGIK
ICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZh
bHVlLCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CiAgICAgICAgIGJyZWFrOwor
I2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlRGlyOgorICAg
ICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVMdHIgfHwgaWQgPT0gQ1NTVmFsdWVSdGwpCisgICAgICAg
ICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENT
U1Byb3BlcnR5V2FwTWFycXVlZVN0eWxlOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVOb25l
IHx8IGlkID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVTY3JvbGwgfHwgaWQgPT0g
Q1NTVmFsdWVBbHRlcm5hdGUpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZUxvb3A6CisgICAg
ICAgIGlmIChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0g
dmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZOb25OZWcsIG1fc3RyaWN0KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTcGVlZDoKKyAgICAgICAgaWYg
KGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlU2xvdyB8fCBpZCA9PSBDU1NW
YWx1ZUZhc3QpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBl
bHNlCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVuaXQodmFsdWUsIEZUaW1l
IHwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOworI2VuZGlm
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBhdXRvIHwgbm9uZSB8IGVs
ZW1lbnQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBpZCA9PSBDU1NWYWx1ZU5v
bmUgfHwgaWQgPT0gQ1NTVmFsdWVFbGVtZW50KQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdHJ1ZTsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJl
dmlzaW9uIDQzOTQ4KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NyBBbGV4ZXkgUHJvc2t1cnlha292IDxhcEBueXBvcC5jb20+LgogICogQ29weXJpZ2h0IChDKSAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3Jj
aG1vYmlsZS5jb20vKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03NDAsNiAr
NzQxLDExIEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MKICAgICAg
ICAgY2FzZSBUQUJMRV9DQVBUSU9OOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1Zh
bHVlVGFibGVDYXB0aW9uOwogICAgICAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdDU1MpCisg
ICAgICAgIGNhc2UgV0FQX01BUlFVRUU6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NT
VmFsdWVXYXBNYXJxdWVlOworICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2Fz
ZSBCT1g6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRCb3g7CiAg
ICAgICAgICAgICBicmVhazsKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2aXNpb24g
NDM5NDgpCisrKyBXZWJDb3JlL2Nzcy9DU1NQcm9wZXJ0eU5hbWVzLmluCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzYsNiArMTM2LDEwIEBAIHdvcmQtc3BhY2luZwogd29yZC13cmFwCiB6LWluZGV4CiB6
b29tCistd2FwLW1hcnF1ZWUtZGlyCistd2FwLW1hcnF1ZWUtbG9vcAorLXdhcC1tYXJxdWVlLXNw
ZWVkCistd2FwLW1hcnF1ZWUtc3R5bGUKIC13ZWJraXQtYW5pbWF0aW9uCiAtd2Via2l0LWFuaW1h
dGlvbi1kZWxheQogLXdlYmtpdC1hbmltYXRpb24tZGlyZWN0aW9uCkluZGV4OiBXZWJDb3JlL2Nz
cy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNDM5NDgpCisrKyBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNl
bGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk2NCw3ICsyOTY0LDI4IEBAIHZvaWQgQ1NT
U3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICB7CiAgICAgICAgIEhBTkRMRV9J
TkhFUklUX0FORF9JTklUSUFMKGRpc3BsYXksIERpc3BsYXkpCiAgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZSkKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2FwTWFycXVlZSkgeworICAgICAg
ICAgICAgICAgIC8vIEluaXRpYWxpemUgV2FwIE1hcnF1ZWUgc3R5bGUgCisgICAgICAgICAgICAg
ICAgbV9zdHlsZS0+c2V0T3ZlcmZsb3dYKE9NQVJRVUVFKTsKKyAgICAgICAgICAgICAgICBtX3N0
eWxlLT5zZXRPdmVyZmxvd1koT01BUlFVRUUpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNl
dFdoaXRlU3BhY2UoTk9XUkFQKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVl
RGlyZWN0aW9uKE1MRUZUKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlU3Bl
ZWQoODUpOyAvLyBOb3JtYWwgc3BlZWQgCisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFy
cXVlZUxvb3BDb3VudCgxKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlQmVo
YXZpb3IoTVNDUk9MTCk7CisKKyAgICAgICAgICAgICAgICBpZiAobV9wYXJlbnRTdHlsZSkKKyAg
ICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheShtX3BhcmVudFN0eWxlLT5kaXNw
bGF5KCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFsdWUpOworICAgICAg
ICB9CisjZWxzZQogICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFs
dWUpOworI2VuZGlmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQ3OTMsNiArNDgxNCw5
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgbV9z
dHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudChtX3BhcmVudFN0eWxlLT5tYXJxdWVlTG9vcENvdW50
KCkpOwogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlQmVoYXZpb3IobV9wYXJlbnRTdHlsZS0+
bWFycXVlZUJlaGF2aW9yKCkpOwogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKFdDU1MpCisg
ICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVMb29wOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdlYmtpdE1hcnF1ZWVSZXBldGl0aW9uOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklU
X0FORF9JTklUSUFMKG1hcnF1ZWVMb29wQ291bnQsIE1hcnF1ZWVMb29wQ291bnQpCiAgICAgICAg
IGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC00ODAzLDYgKzQ4MjcsOSBAQCB2b2lkIENTU1N0eWxl
U2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJx
dWVlTG9vcENvdW50KHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFy
cXVlZVNwZWVkOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVTcGVl
ZDogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlU3BlZWQsIE1h
cnF1ZWVTcGVlZCkgICAgICAKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ4NTMs
MTIgKzQ4ODAsMzMgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5KGludAog
ICAgICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTdHlsZToKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJv
cGVydHlXZWJraXRNYXJxdWVlU3R5bGU6IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lO
SVRJQUwobWFycXVlZUJlaGF2aW9yLCBNYXJxdWVlQmVoYXZpb3IpICAgICAgCiAgICAgICAgIGlm
IChwcmltaXRpdmVWYWx1ZSkKICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlv
cigqcHJpbWl0aXZlVmFsdWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShX
Q1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlRGlyOgorICAgICAgICBIQU5ETEVf
SU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlRGlyZWN0aW9uLCBNYXJxdWVlRGlyZWN0aW9uKQor
ICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkp
IHsKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0
TWFycXVlZURpcmVjdGlvbihNUklHSFQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJx
dWVlRGlyZWN0aW9uKE1MRUZUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbigq
cHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRNYXJxdWVlRGlyZWN0aW9uOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklU
SUFMKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCiAgICAgICAgIGlmIChwcmlt
aXRpdmVWYWx1ZSkKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNpb24gNDM5NDgp
CisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0y
NTgsNiArMjU4LDcgQEAgdGFibGUtY29sdW1uLWdyb3VwCiB0YWJsZS1jb2x1bW4KIHRhYmxlLWNl
bGwKIHRhYmxlLWNhcHRpb24KKy13YXAtbWFycXVlZQogLXdlYmtpdC1ib3gKIC13ZWJraXQtaW5s
aW5lLWJveAogI25vbmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCShyZXZp
c2lvbiA0Mzk0OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cu
dG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBQb3J0aW9ucyBhcmUgQ29weXJpZ2h0IChDKSAxOTk4
IE5ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uLgogICoKQEAgLTE5Niw2ICsxOTcs
MTIgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp1cGRhdGVNYXJxdWVlUG9zaXRpbwogICAgIGlmIChh
Y3RpdmF0ZSkgewogICAgICAgICBFTWFycXVlZUJlaGF2aW9yIGJlaGF2aW9yID0gbV9sYXllci0+
cmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFycXVlZUJlaGF2aW9yKCk7CiAgICAgICAgIG1fc3RhcnQg
PSBjb21wdXRlUG9zaXRpb24oZGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUpOwor
I2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBBcyBwZXIgdGhlIHNwZWMgV0FQLTIzOS1XQ1NT
LTIwMDExMDI2LWEucGRmLCBpZiB0aGUgJy13YXAtbWFycXVlZS1sb29wJyBpcyAnMCcsIG5vIGxv
b3Bpbmcgb2NjdXJzLgorICAgICAgICBpZiAoIW1fdG90YWxMb29wcykKKyAgICAgICAgICAgIG1f
ZW5kID0gbV9zdGFydDsKKyAgICAgICAgZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2VuZCA9IGNv
bXB1dGVQb3NpdGlvbihyZXZlcnNlRGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5BVEUg
fHwgYmVoYXZpb3IgPT0gTVNMSURFKTsKICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAgICAgICAg
ICAgICBzdGFydCgpOwpAQCAtMjk4LDYgKzMwNSwxMCBAQCB2b2lkIFJlbmRlck1hcnF1ZWU6OnRp
bWVyRmlyZWQoVGltZXI8UmVuCiAgICAgICAgIG1fY3VycmVudExvb3ArKzsKICAgICAgICAgaWYg
KG1fdG90YWxMb29wcyA+IDAgJiYgbV9jdXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMpCiAgICAg
ICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgZWxzZSBp
ZiAoIW1fdG90YWxMb29wcyAmJiBtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX3Rp
bWVyLnN0b3AoKTsKKyNlbmRpZgogICAgICAgICBlbHNlIGlmIChzLT5tYXJxdWVlQmVoYXZpb3Io
KSAhPSBNQUxURVJOQVRFKQogICAgICAgICAgICAgbV9yZXNldCA9IHRydWU7CiAgICAgfQpJbmRl
eDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiA0Mzk0OCkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3
IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcp
CiAgKiAgICAgICAgICAgKEMpIDIwMDQgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVAY2FyZXdv
bGYuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3Jj
aCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmls
ZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNDIsNiArMTQzLDEyIEBAIFJlbmRlck9i
amVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QKICAgICAgICAgICAgIG8gPSBuZXcgKGFy
ZW5hKSBSZW5kZXJUYWJsZUNlbGwobm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBUQUJMRV9DQVBUSU9OOgorI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBBcyBwZXIg
dGhlIHNlY3Rpb24gMTcuMSBvZiB0aGUgc3BlYyBXQVAtMjM5LVdDU1MtMjAwMTEwMjYtYS5wZGYs
IAorICAgICAgICAvLyB0aGUgbWFycXVlZSBib3ggaW5oZXJpdHMgYW5kIGV4dGVuZHMgdGhlIGNo
YXJhY3RlcmlzdGljcyBvZiB0aGUgCisgICAgICAgIC8vIHByaW5jaXBhbCBibG9jayBib3ggKFtD
U1MyXSBzZWN0aW9uIDkuMi4xKS4KKyAgICAgICAgY2FzZSBXQVBfTUFSUVVFRToKKyNlbmRpZgog
ICAgICAgICAgICAgbyA9IG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrKG5vZGUpOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQk9YOgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA0Mzk0OCkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcgY29weSkK
QEAgLTQsNiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVs
bGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2
IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5uaXNAZ21haWwuY29tKQorICogQ29weXJpZ2h0IChD
KSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3
LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI4OCw3ICsyODksMTEg
QEAgZW51bSBFRGlzcGxheSB7CiAgICAgVEFCTEUsIElOTElORV9UQUJMRSwgVEFCTEVfUk9XX0dS
T1VQLAogICAgIFRBQkxFX0hFQURFUl9HUk9VUCwgVEFCTEVfRk9PVEVSX0dST1VQLCBUQUJMRV9S
T1csCiAgICAgVEFCTEVfQ09MVU1OX0dST1VQLCBUQUJMRV9DT0xVTU4sIFRBQkxFX0NFTEwsCi0g
ICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCBOT05FCisgICAgVEFCTEVfQ0FQVElP
TiwgCisjaWYgRU5BQkxFKFdDU1MpCisgICAgV0FQX01BUlFVRUUsCisjZW5kaWYKKyAgICBCT1gs
IElOTElORV9CT1gsIE5PTkUKIH07CiAKIGVudW0gRVBvaW50ZXJFdmVudHMgewo=
</data>
<flag name="review"
          id="15428"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>30576</attachid>
            <date>2009-05-22 00:50:31 -0700</date>
            <delta_ts>2009-05-23 17:25:36 -0700</delta_ts>
            <desc>Updated patch for code changes</desc>
            <filename>WCSSMarqueeChange.patch</filename>
            <type>text/plain</type>
            <size>12992</size>
            <attacher name="yichao.yin">yichao.yin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NDAzNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDktMDUtMjIgIFlpY2hhbyBZaW4gIDx5aWNoYW8ueWluQHRvcmNo
bW9iaWxlLmNvbS5jbj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBCdWcgMjM3Mjc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzcyNworICAgICAgICBBZGQgV0NTUyBtYXJxdWVlIGV4dGVuc2lvbiBzdXBwb3J0IHRvIFdl
YmtpdAorICAgICAgICByZWZlciB0byB0aGUgc3BlY2lmaWNhdGlvbjogV0FQLTIzOS1XQ1NTLTIw
MDExMDI2LWEucGRmCisKKyAgICAgICAgU2luY2UgV0NTUyBpcyB0aGUgY29tcGFuaW9uIG9mIFhI
VE1MIE1vYmlsZSBQcm9maWxlIChYSFRNTCBNUCksCisgICAgICAgIHRoaXMgY2hhbmdlIGRlcGVu
ZHMgb24gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDUyCisKKyAg
ICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW46CisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eSk6CisgICAgICAgICogY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW46CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWFycXVlZTo6dXBkYXRlTWFycXVlZVBvc2l0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnRpbWVyRmlyZWQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpjcmVhdGVPYmplY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZUNvbnN0YW50cy5oOgorICAgICAgICAoV2ViQ29yZTo6KToKKwogMjAwOS0wNS0xNSAgRnJpZHJp
Y2ggU3RyYmEgIDxmcmlkcmljaC5zdHJiYUBibHVld2luLmNoPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IE1hY2llaiBTdGFjaG93aWFrLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA0NDAzNCkKKysrIFdlYkNvcmUv
V2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEwMyw2ICsxMDMsNyBAQCBDT05GSUcoUVRE
SVJfYnVpbGQpIHsKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9Lik6IERFRklORVMg
Kz0gRU5BQkxFX1hQQVRIPTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFNMVD0uKTogREVG
SU5FUyArPSBFTkFCTEVfWFNMVD0wCiAjIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YQkw9Lik6
IERFRklORVMgKz0gRU5BQkxFX1hCTD0xCishY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9
Lik6IERFRklORVMgKz0gRU5BQkxFX1dDU1M9MAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9X
TUw9Lik6IERFRklORVMgKz0gRU5BQkxFX1dNTD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlM9MQogIWNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9YSFRNTE1QPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YSFRNTE1QPTAKQEAgLTE0
ODEsNiArMTQ4MiwxNCBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEJMPTEpIHsKICAgICBG
RUFUVVJFX0RFRklORVNfSkFWQVNDUklQVCArPSBFTkFCTEVfWEJMPTEKIH0KIAorY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX1dDU1M9MSkgeworICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBU
ICs9IEVOQUJMRV9XQ1NTPTEKKyAgICBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEhUTUxNUD0w
KSB7CisgICAgICAgIERFRklORVMgLT0gRU5BQkxFX1hIVE1MTVA9MAorICAgICAgICBERUZJTkVT
ICs9IEVOQUJMRV9YSFRNTE1QPTEKKyAgICB9Cit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJM
RV9XTUw9MSkgewogICAgIFNPVVJDRVMgKz0gXAogICAgICAgICB3bWwvV01MQUVsZW1lbnQuY3Bw
IFwKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAkocmV2aXNpb24gNDQwMzQpCisrKyBXZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNyBOaWNob2xhcyBTaGFua3MgPHdlYmtpdEBuaWNr
c2hhbmtzLmNvbT4KICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJr
aXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKQEAgLTEyNTksNiArMTI2MCwyOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShp
bnQgcHJvcElkLCBiCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9
IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWV8RkludGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwogICAg
ICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFy
cXVlZURpcjoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1ZhbHVl
UnRsKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTdHlsZToKKyAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NWYWx1ZVNsaWRlIHx8IGlkID09IENTU1ZhbHVlU2Ny
b2xsIHx8IGlkID09IENTU1ZhbHVlQWx0ZXJuYXRlKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0
aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1
ZWVMb29wOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVJbmZpbml0ZSkKKyAgICAgICAgICAg
IHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbGlk
X3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmlj
dCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6
CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cg
fHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1
ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0
KHZhbHVlLCBGVGltZSB8IEZJbnRlZ2VyIHwgRk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICBi
cmVhazsKKyNlbmRpZgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8gYXV0
byB8IG5vbmUgfCBlbGVtZW50CiAgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQg
PT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlRWxlbWVudCkKICAgICAgICAgICAgIHZh
bGlkX3ByaW1pdGl2ZSA9IHRydWU7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVN
YXBwaW5ncy5oCShyZXZpc2lvbiA0NDAzNCkKKysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlTWFwcGluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5
cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3NrdXJ5YWtvdiA8YXBAbnlwb3AuY29tPi4KICAqIENv
cHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0
dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNzQwLDYgKzc0MSwxMSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1
ZTo6Q1NTCiAgICAgICAgIGNhc2UgVEFCTEVfQ0FQVElPTjoKICAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ2FwdGlvbjsKICAgICAgICAgICAgIGJyZWFrOworI2lmIEVO
QUJMRShXQ1NTKQorICAgICAgICBjYXNlIFdBUF9NQVJRVUVFOgorICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlV2FwTWFycXVlZTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlm
CiAgICAgICAgIGNhc2UgQk9YOgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
V2Via2l0Qm94OwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NQcm9w
ZXJ0eU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1Byb3BlcnR5TmFtZXMu
aW4JKHJldmlzaW9uIDQ0MDM0KQorKysgV2ViQ29yZS9jc3MvQ1NTUHJvcGVydHlOYW1lcy5pbgko
d29ya2luZyBjb3B5KQpAQCAtMTM2LDYgKzEzNiwxMiBAQCB3b3JkLXNwYWNpbmcKIHdvcmQtd3Jh
cAogei1pbmRleAogem9vbQorI2lmIEVOQUJMRV9XQ1NTCistd2FwLW1hcnF1ZWUtZGlyCistd2Fw
LW1hcnF1ZWUtbG9vcAorLXdhcC1tYXJxdWVlLXNwZWVkCistd2FwLW1hcnF1ZWUtc3R5bGUKKyNl
bmRpZgogLXdlYmtpdC1hbmltYXRpb24KIC13ZWJraXQtYW5pbWF0aW9uLWRlbGF5CiAtd2Via2l0
LWFuaW1hdGlvbi1kaXJlY3Rpb24KSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZp
c2lvbiA0NDAzNCkKKysrIFdlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTY0LDcgKzI5NjQsMjggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBs
eVByb3BlcnR5KGludAogICAgIHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwo
ZGlzcGxheSwgRGlzcGxheSkKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQorI2lmIEVOQUJM
RShXQ1NTKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElk
ZW50KCkgPT0gQ1NTVmFsdWVXYXBNYXJxdWVlKSB7CisgICAgICAgICAgICAgICAgLy8gSW5pdGlh
bGl6ZSBXYXAgTWFycXVlZSBzdHlsZSAKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRPdmVy
Zmxvd1goT01BUlFVRUUpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WShP
TUFSUVVFRSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0V2hpdGVTcGFjZShOT1dSQVAp
OworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQpOwor
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVTcGVlZCg4NSk7IC8vIE5vcm1hbCBz
cGVlZCAKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KDEpOwor
ICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlvcihNU0NST0xMKTsKKwor
ICAgICAgICAgICAgICAgIGlmIChtX3BhcmVudFN0eWxlKQorICAgICAgICAgICAgICAgICAgICBt
X3N0eWxlLT5zZXREaXNwbGF5KG1fcGFyZW50U3R5bGUtPmRpc3BsYXkoKSk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmlt
aXRpdmVWYWx1ZSk7CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXREaXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisgICAgICAgIH0KKyNlbHNlCiAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXREaXNwbGF5KCpwcmltaXRpdmVWYWx1ZSk7CisjZW5kaWYKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtNDc5Myw2ICs0ODE0LDkgQEAgdm9pZCBDU1NTdHlsZVNl
bGVjdG9yOjphcHBseVByb3BlcnR5KGludAogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9v
cENvdW50KG1fcGFyZW50U3R5bGUtPm1hcnF1ZWVMb29wQ291bnQoKSk7CiAgICAgICAgIG1fc3R5
bGUtPnNldE1hcnF1ZWVCZWhhdmlvcihtX3BhcmVudFN0eWxlLT5tYXJxdWVlQmVoYXZpb3IoKSk7
CiAgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5
V2FwTWFycXVlZUxvb3A6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVl
ZVJlcGV0aXRpb246IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVl
ZUxvb3BDb3VudCwgTWFycXVlZUxvb3BDb3VudCkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1
ZSkKQEAgLTQ4MDMsNiArNDgyNyw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9w
ZXJ0eShpbnQKICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQocHJpbWl0
aXZlVmFsdWUtPmdldEludFZhbHVlKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVO
QUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisjZW5kaWYK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVNwZWVkOiB7CiAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVTcGVlZCwgTWFycXVlZVNwZWVkKSAgICAgIAog
ICAgICAgICBpZiAoIXByaW1pdGl2ZVZhbHVlKQpAQCAtNDg1MywxMiArNDg4MCwzMyBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2Fw
TWFycXVlZVN0eWxlOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVT
dHlsZTogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlQmVoYXZp
b3IsIE1hcnF1ZWVCZWhhdmlvcikgICAgICAKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQog
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUJlaGF2aW9yKCpwcmltaXRpdmVWYWx1ZSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisjaWYgRU5BQkxFKFdDU1MpCisgICAgY2FzZSBDU1NQ
cm9wZXJ0eVdhcE1hcnF1ZWVEaXI6CisgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCisgICAgICAgIGlmIChwcmltaXRp
dmVWYWx1ZSAmJiBwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgc3dp
dGNoIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSkgeworICAgICAgICAgICAgY2FzZSBDU1NW
YWx1ZUx0cjoKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlRGlyZWN0aW9uKE1S
SUdIVCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1ZhbHVl
UnRsOgorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAg
ICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlRGlyZWN0aW9uKCpwcmltaXRpdmVWYWx1ZSk7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAg
cmV0dXJuOworI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rp
b246IHsKICAgICAgICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZURpcmVjdGlv
biwgTWFycXVlZURpcmVjdGlvbikKICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKQpJbmRleDog
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Nz
cy9DU1NWYWx1ZUtleXdvcmRzLmluCShyZXZpc2lvbiA0NDAzNCkKKysrIFdlYkNvcmUvY3NzL0NT
U1ZhbHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI1OCw2ICsyNTgsOSBAQCB0YWJs
ZS1jb2x1bW4tZ3JvdXAKIHRhYmxlLWNvbHVtbgogdGFibGUtY2VsbAogdGFibGUtY2FwdGlvbgor
I2lmIEVOQUJMRV9XQ1NTCistd2FwLW1hcnF1ZWUKKyNlbmRpZgogLXdlYmtpdC1ib3gKIC13ZWJr
aXQtaW5saW5lLWJveAogI25vbmUKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1
ZWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3Bw
CShyZXZpc2lvbiA0NDAzNCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAw
NiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6
Ly93d3cudG9yY2htb2JpbGUuY29tLykKICAqCiAgKiBQb3J0aW9ucyBhcmUgQ29weXJpZ2h0IChD
KSAxOTk4IE5ldHNjYXBlIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uLgogICoKQEAgLTE5Niw2
ICsxOTcsMTIgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp1cGRhdGVNYXJxdWVlUG9zaXRpbwogICAg
IGlmIChhY3RpdmF0ZSkgewogICAgICAgICBFTWFycXVlZUJlaGF2aW9yIGJlaGF2aW9yID0gbV9s
YXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFycXVlZUJlaGF2aW9yKCk7CiAgICAgICAgIG1f
c3RhcnQgPSBjb21wdXRlUG9zaXRpb24oZGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRFUk5B
VEUpOworI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBBcyBwZXIgdGhlIHNwZWMgV0FQLTIz
OS1XQ1NTLTIwMDExMDI2LWEucGRmLCBpZiB0aGUgJy13YXAtbWFycXVlZS1sb29wJyBpcyAnMCcs
IG5vIGxvb3Bpbmcgb2NjdXJzLgorICAgICAgICBpZiAoIW1fdG90YWxMb29wcykKKyAgICAgICAg
ICAgIG1fZW5kID0gbV9zdGFydDsKKyAgICAgICAgZWxzZSAKKyNlbmRpZgogICAgICAgICBtX2Vu
ZCA9IGNvbXB1dGVQb3NpdGlvbihyZXZlcnNlRGlyZWN0aW9uKCksIGJlaGF2aW9yID09IE1BTFRF
Uk5BVEUgfHwgYmVoYXZpb3IgPT0gTVNMSURFKTsKICAgICAgICAgaWYgKCFtX3N0b3BwZWQpCiAg
ICAgICAgICAgICBzdGFydCgpOwpAQCAtMjk4LDYgKzMwNSwxMCBAQCB2b2lkIFJlbmRlck1hcnF1
ZWU6OnRpbWVyRmlyZWQoVGltZXI8UmVuCiAgICAgICAgIG1fY3VycmVudExvb3ArKzsKICAgICAg
ICAgaWYgKG1fdG90YWxMb29wcyA+IDAgJiYgbV9jdXJyZW50TG9vcCA+PSBtX3RvdGFsTG9vcHMp
CiAgICAgICAgICAgICBtX3RpbWVyLnN0b3AoKTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAg
ZWxzZSBpZiAoIW1fdG90YWxMb29wcyAmJiBtX3RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAg
ICBtX3RpbWVyLnN0b3AoKTsKKyNlbmRpZgogICAgICAgICBlbHNlIGlmIChzLT5tYXJxdWVlQmVo
YXZpb3IoKSAhPSBNQUxURVJOQVRFKQogICAgICAgICAgICAgbV9yZXNldCA9IHRydWU7CiAgICAg
fQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZpc2lvbiA0NDAzNCkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQs
NiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtk
ZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDQgQWxsYW4gU2FuZGZlbGQgSmVuc2VuIChrZGVA
Y2FyZXdvbGYuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAy
MDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
OSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3Jj
aG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNDIsNiArMTQzLDEyIEBAIFJl
bmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QKICAgICAgICAgICAgIG8gPSBu
ZXcgKGFyZW5hKSBSZW5kZXJUYWJsZUNlbGwobm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICAvLyBB
cyBwZXIgdGhlIHNlY3Rpb24gMTcuMSBvZiB0aGUgc3BlYyBXQVAtMjM5LVdDU1MtMjAwMTEwMjYt
YS5wZGYsIAorICAgICAgICAvLyB0aGUgbWFycXVlZSBib3ggaW5oZXJpdHMgYW5kIGV4dGVuZHMg
dGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgCisgICAgICAgIC8vIHByaW5jaXBhbCBibG9jayBi
b3ggKFtDU1MyXSBzZWN0aW9uIDkuMi4xKS4KKyAgICAgICAgY2FzZSBXQVBfTUFSUVVFRToKKyNl
bmRpZgogICAgICAgICAgICAgbyA9IG5ldyAoYXJlbmEpIFJlbmRlckJsb2NrKG5vZGUpOwogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQk9YOgpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZpc2lvbiA0MTEyOSkKKysr
IFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVsbGVy
IChtdWVsbGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDYsIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSAyMDA2IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5uaXNAZ21haWwuY29tKQorICogQ29weXJp
Z2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuIChodHRw
Oi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI4OCw3ICsy
ODksMTEgQEAgZW51bSBFRGlzcGxheSB7CiAgICAgVEFCTEUsIElOTElORV9UQUJMRSwgVEFCTEVf
Uk9XX0dST1VQLAogICAgIFRBQkxFX0hFQURFUl9HUk9VUCwgVEFCTEVfRk9PVEVSX0dST1VQLCBU
QUJMRV9ST1csCiAgICAgVEFCTEVfQ09MVU1OX0dST1VQLCBUQUJMRV9DT0xVTU4sIFRBQkxFX0NF
TEwsCi0gICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCBOT05FCisgICAgVEFCTEVf
Q0FQVElPTiwgCisjaWYgRU5BQkxFKFdDU1MpCisgICAgV0FQX01BUlFVRUUsCisjZW5kaWYKKyAg
ICBCT1gsIElOTElORV9CT1gsIE5PTkUKIH07CiAKIGVudW0gRVBvaW50ZXJFdmVudHMgewo=
</data>
<flag name="review"
          id="15460"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34119</attachid>
            <date>2009-08-05 00:28:17 -0700</date>
            <delta_ts>2009-08-05 16:21:43 -0700</delta_ts>
            <desc>new patch with seperate .in file for the new WCSS properties.</desc>
            <filename>wcss-marquee-23727.patch</filename>
            <type>text/plain</type>
            <size>18981</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IHRydW5rL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL1dlYkNv
cmUvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NjYxOSkKKysrIHRydW5rL1dlYkNvcmUvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMDktMDgtMDUgIGNoYXJsZXMgd2Vp
ICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzI3PgorICAgICAgICBCdWcgMjM3Mjc6IEltcGxlbWVudGF0aW9u
IG9mIFdDU1MgbWFycXVlZSBleHRlbnNpb24gCisKKyAgICAgICAgbm8gbmV3IHRlc3RzLCB0aGUg
dGVzdCBjYXNlcyBoYXZlIGFscmVhZHkgYmVlbiBsYW5kZWQgYXQgTGF5b3V0VGVzdHMvZmFzdC93
Y3NzLworCisgICAgICAgICogV2ViQ29yZS5wcm86CisgICAgICAgICogY3NzL0NTU1BhcnNlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAq
IGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NTdHls
ZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5
UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAgICAgICAq
IGNzcy9XQ1NTUHJvcGVydHlOYW1lcy5pbjogQWRkZWQuCisgICAgICAgICogY3NzL1dDU1NWYWx1
ZUtleXdvcmRzLmluOiBBZGRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjp1cGRhdGVNYXJxdWVlUG9zaXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWFycXVlZTo6dGltZXJGaXJlZCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjopOgorCiAyMDA5LTA3LTMwICBN
YXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRlbGUg
UGV0ZXJzb24gYW5kIEpvbiBIb25leWN1dHQuCkluZGV4OiB0cnVuay9XZWJDb3JlL1dlYkNvcmUu
cHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIHRydW5rL1dlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDQ2
NjE5KQorKysgdHJ1bmsvV2ViQ29yZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtMTE5
LDYgKzExOSw3IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQKICFj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9Lik6IERFRklORVMgKz0gRU5BQkxFX1hQQVRI
PTEKICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFNMVD0uKTogREVGSU5FUyArPSBFTkFCTEVf
WFNMVD0wCiAjIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YQkw9Lik6IERFRklORVMgKz0gRU5B
QkxFX1hCTD0xCishY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9Lik6IERFRklORVMgKz0g
RU5BQkxFX1dDU1M9MAogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9Lik6IERFRklORVMg
Kz0gRU5BQkxFX1dNTD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NIQVJFRF9XT1JLRVJT
PS4pOiBERUZJTkVTICs9IEVOQUJMRV9TSEFSRURfV09SS0VSUz0wCiAhY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlM9MQpAQCAtMjQ3
LDkgKzI0OCwxNiBAQCBXQUxET0NTU1ZBTFVFUyA9ICQkUFdEL2Nzcy9DU1NWYWx1ZUtleXdvCiAK
IERBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTID0gJCRQV0QvY3NzL0Rhc2hib2FyZFN1cHBv
cnRDU1NQcm9wZXJ0eU5hbWVzLmluCiAKLVNWR0NTU1BST1BFUlRJRVMgPSAkJFBXRC9jc3MvU1ZH
Q1NTUHJvcGVydHlOYW1lcy5pbgogCi1TVkdDU1NWQUxVRVMgPSAkJFBXRC9jc3MvU1ZHQ1NTVmFs
dWVLZXl3b3Jkcy5pbgorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CisgICAgRVhU
UkFDU1NQUk9QRVJUSUVTICs9ICQkUFdEL2Nzcy9TVkdDU1NQcm9wZXJ0eU5hbWVzLmluCisgICAg
RVhUUkFDU1NWQUxVRVMgKz0gJCRQV0QvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMuaW4KK30KKwor
Y29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9MSkgeworICAgIEVYVFJBQ1NTUFJPUEVSVElF
UyArPSAkJFBXRC9jc3MvV0NTU1Byb3BlcnR5TmFtZXMuaW4KKyAgICBFWFRSQUNTU1ZBTFVFUyAr
PSAkJFBXRC9jc3MvV0NTU1ZhbHVlS2V5d29yZHMuaW4KK30KIAogU1RZTEVTSEVFVFNfRU1CRUQg
PSBcCiAgICAgJCRQV0QvY3NzL2h0bWwuY3NzIFwKQEAgLTI1MzEsNiArMjUzOSwxNCBAQCBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfRklMVEVSUz0xKSB7CiAgICAgRkVBVFVSRV9ERUZJTkVTX0pB
VkFTQ1JJUFQgKz0gRU5BQkxFX0ZJTFRFUlM9MQogfQogCitjb250YWlucyhERUZJTkVTLCBFTkFC
TEVfV0NTUz0xKSB7CisgICAgRkVBVFVSRV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX1dD
U1M9MQorICAgIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YSFRNTE1QPTApIHsKKyAgICAgICAg
REVGSU5FUyAtPSBFTkFCTEVfWEhUTUxNUD0wCisgICAgICAgIERFRklORVMgKz0gRU5BQkxFX1hI
VE1MTVA9MQorICAgIH0KK30KKwogY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dNTD0xKSB7CiAg
ICAgU09VUkNFUyArPSBcCiAgICAgICAgIHdtbC9XTUxBRWxlbWVudC5jcHAgXApAQCAtMjk3NCw0
MiArMjk5MCwyNSBAQCBjb250YWlucyhERUZJTkVTLCBFTkFCTEVfU1ZHPTEpIHsKICAgICAgICAg
eGxpbmtuYW1lcy52YXJpYWJsZV9vdXQgPSBHRU5FUkFURURfU09VUkNFUwogICAgICAgICBhZGRF
eHRyYUNvbXBpbGVyV2l0aEhlYWRlcih4bGlua25hbWVzKQogCi0gICAgIyBHRU5FUkFUT1IgNi1B
OgotICAgIGNzc3Byb3BzLm91dHB1dCA9ICQke0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFL
RV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5jcHAKLSAgICBjc3Nwcm9wcy5pbnB1dCA9IFdB
TERPQ1NTUFJPUFMKLSAgICBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNc
IiAke1FNQUtFX0ZJTEVfTkFNRX0gJCREQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFUyAkJFNW
R0NTU1BST1BFUlRJRVMgPiAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NF
UH0ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRHRU5FUkFURURfU09VUkNFU19ESVIgJiYg
cGVybCAkJFBXRC9jc3MvbWFrZXByb3AucGwgJiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JB
U0V9LnN0cmlwICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYK
LSAgICBjc3Nwcm9wcy5DT05GSUcgPSB0YXJnZXRfcHJlZGVwcyBub19saW5rCi0gICAgY3NzcHJv
cHMudmFyaWFibGVfb3V0ID0KLSAgICBjc3Nwcm9wcy5kZXBlbmQgPSAke1FNQUtFX0ZJTEVfTkFN
RX0gREFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVMgU1ZHQ1NTUFJPUEVSVElFUwotICAgIGFk
ZEV4dHJhQ29tcGlsZXJXaXRoSGVhZGVyKGNzc3Byb3BzKQotCi0gICAgIyBHRU5FUkFUT1IgNi1C
OgotICAgIGNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1B
S0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uYwotICAgIGNzc3ZhbHVlcy5pbnB1dCA9IFdB
TERPQ1NTVkFMVUVTCi0gICAgY3NzdmFsdWVzLmNvbW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBs
Y1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJFNWR0NTU1ZBTFVFUyA+ICQke0dFTkVSQVRFRF9TT1VS
Q0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJEdF
TkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkUFdEL2Nzcy9tYWtldmFsdWVzLnBsICYmICQo
REVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uc3RyaXAg
JHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi0gICAgY3NzdmFsdWVzLkNPTkZJRyA9IHRhcmdldF9w
cmVkZXBzIG5vX2xpbmsKLSAgICBjc3N2YWx1ZXMudmFyaWFibGVfb3V0ID0KLSAgICBjc3N2YWx1
ZXMuZGVwZW5kID0gJHtRTUFLRV9GSUxFX05BTUV9IFNWR0NTU1ZBTFVFUwotICAgIGFkZEV4dHJh
Q29tcGlsZXJXaXRoSGVhZGVyKGNzc3ZhbHVlcykKLX0gZWxzZSB7Ci0gICAgIyBHRU5FUkFUT1Ig
Ni1BOgotICAgIGNzc3Byb3BzLm91dHB1dCA9ICQke0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtR
TUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5jcHAKLSAgICBjc3Nwcm9wcy5pbnB1dCA9
IFdBTERPQ1NTUFJPUFMKLSAgICBjc3Nwcm9wcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQg
bGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCREQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFUyA+
ICQke0dFTkVSQVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9C
QVNFfS5pbiAmJiBjZCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkUFdEL2Nzcy9t
YWtlcHJvcC5wbCAmJiAkKERFTF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uc3RyaXAgJHtRTUFL
RV9GSUxFX0JBU0V9LmluICR7UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotICAgIGNzc3Byb3BzLkNP
TkZJRyA9IHRhcmdldF9wcmVkZXBzIG5vX2xpbmsKLSAgICBjc3Nwcm9wcy52YXJpYWJsZV9vdXQg
PQotICAgIGNzc3Byb3BzLmRlcGVuZCA9ICR7UU1BS0VfRklMRV9OQU1FfSBEQVNIQk9BUkRTVVBQ
T1JUQ1NTUFJPUEVSVElFUwotICAgIGFkZEV4dHJhQ29tcGlsZXJXaXRoSGVhZGVyKGNzc3Byb3Bz
KQotCi0gICAgIyBHRU5FUkFUT1IgNi1COgotICAgIGNzc3ZhbHVlcy5vdXRwdXQgPSAkJHtHRU5F
UkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uYwot
ICAgIGNzc3ZhbHVlcy5pbnB1dCA9IFdBTERPQ1NTVkFMVUVTCi0gICAgY3NzdmFsdWVzLmNvbW1h
bmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSA+ICQke0dFTkVS
QVRFRF9TT1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5pbiAm
JiBjZCAkJEdFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkUFdEL2Nzcy9tYWtldmFsdWVz
LnBsICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFT
RX0uc3RyaXAgJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi0gICAgY3NzdmFsdWVzLkNPTkZJRyA9
IHRhcmdldF9wcmVkZXBzIG5vX2xpbmsKLSAgICBjc3N2YWx1ZXMudmFyaWFibGVfb3V0ID0KLSAg
ICBjc3N2YWx1ZXMuY2xlYW4gPSAke1FNQUtFX0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9HRU5FUkFU
RURfU09VUkNFU19ESVJfU0xBU0h9JHtRTUFLRV9GSUxFX0JBU0V9LmgKLSAgICBhZGRFeHRyYUNv
bXBpbGVyKGNzc3ZhbHVlcykKLX0KK30gCisjIEdFTkVSQVRPUiA2LUE6Citjc3Nwcm9wcy5vdXRw
dXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJ
TEVfQkFTRX0uY3BwCitjc3Nwcm9wcy5pbnB1dCA9IFdBTERPQ1NTUFJPUFMKK2Nzc3Byb3BzLmNv
bW1hbmRzID0gcGVybCAtbmUgXCJwcmludCBsY1wiICR7UU1BS0VfRklMRV9OQU1FfSAkJERBU0hC
T0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTICQkRVhUUkFDU1NQUk9QRVJUSUVTID4gJCR7R0VORVJB
VEVEX1NPVVJDRVNfRElSfSQke1FNQUtFX0RJUl9TRVB9JHtRTUFLRV9GSUxFX0JBU0V9LmluICYm
IGNkICQkR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRQV0QvY3NzL21ha2Vwcm9wLnBs
ICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5zdHJpcCAke1FNQUtFX0ZJTEVfQkFT
RX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCitjc3Nwcm9wcy5DT05GSUcgPSB0YXJnZXRf
cHJlZGVwcyBub19saW5rCitjc3Nwcm9wcy52YXJpYWJsZV9vdXQgPQorY3NzcHJvcHMuZGVwZW5k
ID0gJHtRTUFLRV9GSUxFX05BTUV9IERBU0hCT0FSRFNVUFBPUlRDU1NQUk9QRVJUSUVTIEVYVFJB
Q1NTUFJPUEVSVElFUworYWRkRXh0cmFDb21waWxlcldpdGhIZWFkZXIoY3NzcHJvcHMpCisKKyMg
R0VORVJBVE9SIDYtQjoKK2Nzc3ZhbHVlcy5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19E
SVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uYworY3NzdmFsdWVzLmlucHV0
ID0gV0FMRE9DU1NWQUxVRVMKK2Nzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQg
bGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCRFWFRSQUNTU1ZBTFVFUyA+ICQke0dFTkVSQVRFRF9T
T1VSQ0VTX0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAk
JEdFTkVSQVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkUFdEL2Nzcy9tYWtldmFsdWVzLnBsICYm
ICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uc3Ry
aXAgJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCitjc3N2YWx1ZXMuQ09ORklHID0gdGFyZ2V0X3By
ZWRlcHMgbm9fbGluaworY3NzdmFsdWVzLnZhcmlhYmxlX291dCA9Citjc3N2YWx1ZXMuZGVwZW5k
ID0gJHtRTUFLRV9GSUxFX05BTUV9IEVYVFJBQ1NTVkFMVUVTCitjc3N2YWx1ZXMuY2xlYW4gPSAk
e1FNQUtFX0ZJTEVfT1VUfSAke1FNQUtFX1ZBUl9HRU5FUkFURURfU09VUkNFU19ESVJfU0xBU0h9
JHtRTUFLRV9GSUxFX0JBU0V9LmgKK2FkZEV4dHJhQ29tcGlsZXIoY3NzdmFsdWVzKQogCiBjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUj0xKSB7CiAgICAgRkVBVFVS
RV9ERUZJTkVTX0pBVkFTQ1JJUFQgKz0gRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MQpJbmRl
eDogdHJ1bmsvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCShyZXZpc2lvbiA0NjYxOSkKKysrIHRydW5rL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA3IE5pY2hvbGFzIFNo
YW5rcyA8d2Via2l0QG5pY2tzaGFua3MuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA4IEVyaWMg
U2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9i
aWxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29t
LykKICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjk1LDcgKzY5NiwxMSBAQCBib29sIENTU1BhcnNl
cjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIC8vIGlubGluZSB8IGJsb2NrIHwg
bGlzdC1pdGVtIHwgcnVuLWluIHwgaW5saW5lLWJsb2NrIHwgdGFibGUgfAogICAgICAgICAvLyBp
bmxpbmUtdGFibGUgfCB0YWJsZS1yb3ctZ3JvdXAgfCB0YWJsZS1oZWFkZXItZ3JvdXAgfCB0YWJs
ZS1mb290ZXItZ3JvdXAgfCB0YWJsZS1yb3cgfAogICAgICAgICAvLyB0YWJsZS1jb2x1bW4tZ3Jv
dXAgfCB0YWJsZS1jb2x1bW4gfCB0YWJsZS1jZWxsIHwgdGFibGUtY2FwdGlvbiB8IGJveCB8IGlu
bGluZS1ib3ggfCBub25lIHwgaW5oZXJpdAorI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICBpZiAo
KGlkID49IENTU1ZhbHVlSW5saW5lICYmIGlkIDw9IENTU1ZhbHVlV2FwTWFycXVlZSkgfHwgaWQg
PT0gQ1NTVmFsdWVOb25lKQorI2Vsc2UKICAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUlubGlu
ZSAmJiBpZCA8PSBDU1NWYWx1ZVdlYmtpdElubGluZUJveCkgfHwgaWQgPT0gQ1NTVmFsdWVOb25l
KQorI2VuZGlmCiAgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOwogICAgICAgICBi
cmVhazsKIApAQCAtMTI2MSw2ICsxMjY2LDI4IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVl
KGludCBwcm9wSWQsIGIKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZl
ID0gdmFsaWRVbml0KHZhbHVlLCBGVGltZXxGSW50ZWdlcnxGTm9uTmVnLCBtX3N0cmljdCk7CiAg
ICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBN
YXJxdWVlRGlyOgorICAgICAgICBpZiAoaWQgPT0gQ1NTVmFsdWVMdHIgfHwgaWQgPT0gQ1NTVmFs
dWVSdGwpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0cnVlOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVN0eWxlOgorICAgICAgICBpZiAoaWQg
PT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENTU1ZhbHVlU2xpZGUgfHwgaWQgPT0gQ1NTVmFsdWVT
Y3JvbGwgfHwgaWQgPT0gQ1NTVmFsdWVBbHRlcm5hdGUpCisgICAgICAgICAgICB2YWxpZF9wcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFy
cXVlZUxvb3A6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1ZUluZmluaXRlKQorICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgdmFs
aWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGSW50ZWdlciB8IEZOb25OZWcsIG1fc3Ry
aWN0KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVTcGVl
ZDoKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9ybWFsIHx8IGlkID09IENTU1ZhbHVlU2xv
dyB8fCBpZCA9PSBDU1NWYWx1ZUZhc3QpCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB0
cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2YWxpZF9wcmltaXRpdmUgPSB2YWxpZFVu
aXQodmFsdWUsIEZUaW1lIHwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAg
IGJyZWFrOworI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdFVzZXJEcmFnOiAvLyBh
dXRvIHwgbm9uZSB8IGVsZW1lbnQKICAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlQXV0byB8fCBp
ZCA9PSBDU1NWYWx1ZU5vbmUgfHwgaWQgPT0gQ1NTVmFsdWVFbGVtZW50KQogICAgICAgICAgICAg
dmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKSW5kZXg6IHRydW5rL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlTWFwcGluZ3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9XZWJDb3JlL2Nzcy9DU1NQ
cmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgJKHJldmlzaW9uIDQ2NjE5KQorKysgdHJ1bmsvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYg
KzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwNyBBbGV4ZXkgUHJvc2t1cnlha292IDxh
cEBueXBvcC5jb20+LgogICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLiAoaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC03NzcsNiArNzc4LDExIEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1MKICAgICAgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgog
ICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlVGFibGVDYXB0aW9uOwogICAgICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFdDU1MpCisgICAgICAgIGNhc2UgV0FQX01BUlFVRUU6
CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVXYXBNYXJxdWVlOworICAgICAg
ICAgICAgYnJlYWs7CisjZW5kaWYKICAgICAgICAgY2FzZSBCT1g6CiAgICAgICAgICAgICBtX3Zh
bHVlLmlkZW50ID0gQ1NTVmFsdWVXZWJraXRCb3g7CiAgICAgICAgICAgICBicmVhazsKSW5kZXg6
IHRydW5rL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRy
dW5rL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCShyZXZpc2lvbiA0NjYxOSkKKysr
IHRydW5rL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2VsZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTkxLDcgKzI5OTEsMjggQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KGludAogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBDU1NQcm9wZXJ0eURpc3BsYXk6CiAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUoZGlzcGxheSwgRGlz
cGxheSkKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlKSB7Cisg
ICAgICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVXYXBN
YXJxdWVlKSB7CisgICAgICAgICAgICAgICAgLy8gSW5pdGlhbGl6ZSBXYXAgTWFycXVlZSBzdHls
ZQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WChPTUFSUVVFRSk7CisgICAg
ICAgICAgICAgICAgbV9zdHlsZS0+c2V0T3ZlcmZsb3dZKE9NQVJRVUVFKTsKKyAgICAgICAgICAg
ICAgICBtX3N0eWxlLT5zZXRXaGl0ZVNwYWNlKE5PV1JBUCk7CisgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0TWFycXVlZURpcmVjdGlvbihNTEVGVCk7CisgICAgICAgICAgICAgICAgbV9zdHls
ZS0+c2V0TWFycXVlZVNwZWVkKDg1KTsgLy8gTm9ybWFsIHNwZWVkCisgICAgICAgICAgICAgICAg
bV9zdHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudCgxKTsKKyAgICAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRNYXJxdWVlQmVoYXZpb3IoTVNDUk9MTCk7CisKKyAgICAgICAgICAgICAgICBpZiAobV9w
YXJlbnRTdHlsZSkKKyAgICAgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheShtX3Bh
cmVudFN0eWxlLT5kaXNwbGF5KCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAg
ICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0RGlzcGxheSgqcHJpbWl0aXZl
VmFsdWUpOworICAgICAgICB9CisjZW5kaWYKICAgICAgICAgcmV0dXJuOworCiAgICAgY2FzZSBD
U1NQcm9wZXJ0eUVtcHR5Q2VsbHM6CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
X0FORF9QUklNSVRJVkUoZW1wdHlDZWxscywgRW1wdHlDZWxscykKICAgICAgICAgcmV0dXJuOwpA
QCAtNDc0Miw2ICs0NzYzLDkgQEAgdm9pZCBDU1NTdHlsZVNlbGVjdG9yOjphcHBseVByb3BlcnR5
KGludAogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlTG9vcENvdW50KG1fcGFyZW50U3R5bGUt
Pm1hcnF1ZWVMb29wQ291bnQoKSk7CiAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVCZWhhdmlv
cihtX3BhcmVudFN0eWxlLT5tYXJxdWVlQmVoYXZpb3IoKSk7CiAgICAgICAgIHJldHVybjsKKyNp
ZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZUxvb3A6CisjZW5k
aWYKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVJlcGV0aXRpb246IHsKICAgICAg
ICAgSEFORExFX0lOSEVSSVRfQU5EX0lOSVRJQUwobWFycXVlZUxvb3BDb3VudCwgTWFycXVlZUxv
b3BDb3VudCkKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkKQEAgLTQ3NTIsNiArNDc3Niw5
IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAgICAgICAgICAg
IG1fc3R5bGUtPnNldE1hcnF1ZWVMb29wQ291bnQocHJpbWl0aXZlVmFsdWUtPmdldEludFZhbHVl
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQorI2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2Ug
Q1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5
V2Via2l0TWFycXVlZVNwZWVkOiB7CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFM
KG1hcnF1ZWVTcGVlZCwgTWFycXVlZVNwZWVkKSAgICAgIAogICAgICAgICBpZiAoIXByaW1pdGl2
ZVZhbHVlKQpAQCAtNDgwMiw5ICs0ODI5LDM1IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICAgICAgfQogICAgICAgICByZXR1cm47CiAgICAgfQorIAorICAg
IAorI2lmIEVOQUJMRShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3R5bGU6
CisjZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRNYXJxdWVlU3R5bGU6CiAgICAg
ICAgIEhBTkRMRV9JTkhFUklUX0FORF9JTklUSUFMX0FORF9QUklNSVRJVkUobWFycXVlZUJlaGF2
aW9yLCBNYXJxdWVlQmVoYXZpb3IpICAgICAgCiAgICAgICAgIHJldHVybjsKKworI2lmIEVOQUJM
RShXQ1NTKQorICAgIGNhc2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlRGlyOgorICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVlRGlyZWN0aW9uLCBNYXJxdWVlRGlyZWN0aW9u
KQorICAgICAgICBpZiAocHJpbWl0aXZlVmFsdWUgJiYgcHJpbWl0aXZlVmFsdWUtPmdldElkZW50
KCkpIHsKKyAgICAgICAgICAgIHN3aXRjaCAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkpIHsK
KyAgICAgICAgICAgIGNhc2UgQ1NTVmFsdWVMdHI6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+
c2V0TWFycXVlZURpcmVjdGlvbihNUklHSFQpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBDU1NWYWx1ZVJ0bDoKKyAgICAgICAgICAgICAgICBtX3N0eWxlLT5zZXRN
YXJxdWVlRGlyZWN0aW9uKE1MRUZUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURpcmVjdGlv
bigqcHJpbWl0aXZlVmFsdWUpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyNlbmRpZgorCiAgICAgY2FzZSBDU1NQcm9w
ZXJ0eVdlYmtpdE1hcnF1ZWVEaXJlY3Rpb246CiAgICAgICAgIEhBTkRMRV9JTkhFUklUX0FORF9J
TklUSUFMX0FORF9QUklNSVRJVkUobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURpcmVjdGlvbikK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTE0MCw2ICs1MTkzLDcgQEAgdm9pZCBDU1NTdHlsZVNlbGVj
dG9yOjphcHBseVByb3BlcnR5KGludAogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRUZXh0U3Ry
b2tlOgogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJraXRWYXJpYWJsZURlY2xhcmF0aW9uQmxvY2s6
CiAgICAgICAgIHJldHVybjsKKwogI2lmIEVOQUJMRShTVkcpCiAgICAgZGVmYXVsdDoKICAgICAg
ICAgLy8gVHJ5IHRoZSBTVkcgcHJvcGVydGllcwpJbmRleDogdHJ1bmsvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9XZWJDb3JlL2Nzcy9DU1NWYWx1
ZUtleXdvcmRzLmluCShyZXZpc2lvbiA0NjYxOSkKKysrIHRydW5rL1dlYkNvcmUvY3NzL0NTU1Zh
bHVlS2V5d29yZHMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTI2MCw2ICsyNjAsNyBAQCB0YWJsZS1j
ZWxsCiB0YWJsZS1jYXB0aW9uCiAtd2Via2l0LWJveAogLXdlYmtpdC1pbmxpbmUtYm94Cistd2Fw
LW1hcnF1ZWUKICNub25lCiAjCiAjIENTU19QUk9QX0NVUlNPUjoKSW5kZXg6IHRydW5rL1dlYkNv
cmUvY3NzL1dDU1NQcm9wZXJ0eU5hbWVzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRydW5rL1dlYkNvcmUv
Y3NzL1dDU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZpc2lvbiAwKQorKysgdHJ1bmsvV2ViQ29yZS9j
c3MvV0NTU1Byb3BlcnR5TmFtZXMuaW4JKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorLXdh
cC1tYXJxdWVlLWRpcgorLXdhcC1tYXJxdWVlLWxvb3AKKy13YXAtbWFycXVlZS1zcGVlZAorLXdh
cC1tYXJxdWVlLXN0eWxlCkluZGV4OiB0cnVuay9XZWJDb3JlL2Nzcy9XQ1NTVmFsdWVLZXl3b3Jk
cy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9XZWJDb3JlL2Nzcy9XQ1NTVmFsdWVLZXl3b3Jkcy5p
bgkocmV2aXNpb24gMCkKKysrIHRydW5rL1dlYkNvcmUvY3NzL1dDU1NWYWx1ZUtleXdvcmRzLmlu
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxIEBACisjIHBsYWNlIGhvbGRlciBmb3IgYWxsIFdDU1Mg
c3BlY2lmaWMgQ1NTIHZhbHVlIGtleXdvcmRzCkluZGV4OiB0cnVuay9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNYXJxdWVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0cnVuay9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNYXJxdWVlLmNwcAkocmV2aXNpb24gNDY2MTkpCisrKyB0cnVuay9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNYXJxdWVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICog
UG9ydGlvbnMgYXJlIENvcHlyaWdodCAoQykgMTk5OCBOZXRzY2FwZSBDb21tdW5pY2F0aW9ucyBD
b3Jwb3JhdGlvbi4KICAqCkBAIC0xOTYsNiArMTk3LDEyIEBAIHZvaWQgUmVuZGVyTWFycXVlZTo6
dXBkYXRlTWFycXVlZVBvc2l0aW8KICAgICBpZiAoYWN0aXZhdGUpIHsKICAgICAgICAgRU1hcnF1
ZWVCZWhhdmlvciBiZWhhdmlvciA9IG1fbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPm1hcnF1
ZWVCZWhhdmlvcigpOwogICAgICAgICBtX3N0YXJ0ID0gY29tcHV0ZVBvc2l0aW9uKGRpcmVjdGlv
bigpLCBiZWhhdmlvciA9PSBNQUxURVJOQVRFKTsKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAg
Ly8gQXMgcGVyIHRoZSBzcGVjIFdBUC0yMzktV0NTUy0yMDAxMTAyNi1hLnBkZiwgaWYgdGhlICct
d2FwLW1hcnF1ZWUtbG9vcCcgaXMgJzAnLCBubyBsb29waW5nIG9jY3Vycy4KKyAgICAgICAgaWYg
KCFtX3RvdGFsTG9vcHMpCisgICAgICAgICAgICBtX2VuZCA9IG1fc3RhcnQ7CisgICAgICAgIGVs
c2UgCisjZW5kaWYKICAgICAgICAgbV9lbmQgPSBjb21wdXRlUG9zaXRpb24ocmV2ZXJzZURpcmVj
dGlvbigpLCBiZWhhdmlvciA9PSBNQUxURVJOQVRFIHx8IGJlaGF2aW9yID09IE1TTElERSk7CiAg
ICAgICAgIGlmICghbV9zdG9wcGVkKQogICAgICAgICAgICAgc3RhcnQoKTsKQEAgLTI5OCw2ICsz
MDUsMTAgQEAgdm9pZCBSZW5kZXJNYXJxdWVlOjp0aW1lckZpcmVkKFRpbWVyPFJlbgogICAgICAg
ICBtX2N1cnJlbnRMb29wKys7CiAgICAgICAgIGlmIChtX3RvdGFsTG9vcHMgPiAwICYmIG1fY3Vy
cmVudExvb3AgPj0gbV90b3RhbExvb3BzKQogICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7Cisj
aWYgRU5BQkxFKFdDU1MpCisgICAgICAgIGVsc2UgaWYgKCFtX3RvdGFsTG9vcHMgJiYgbV90aW1l
ci5pc0FjdGl2ZSgpKQorICAgICAgICAgICAgbV90aW1lci5zdG9wKCk7CisjZW5kaWYKICAgICAg
ICAgZWxzZSBpZiAocy0+bWFycXVlZUJlaGF2aW9yKCkgIT0gTUFMVEVSTkFURSkKICAgICAgICAg
ICAgIG1fcmVzZXQgPSB0cnVlOwogICAgIH0KSW5kZXg6IHRydW5rL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNDY2MTkpCisrKyB0cnVuay9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICog
ICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVlbGxlciAobXVlbGxlckBrZGUub3JnKQogICogICAg
ICAgICAgIChDKSAyMDA0IEFsbGFuIFNhbmRmZWxkIEplbnNlbiAoa2RlQGNhcmV3b2xmLmNvbSkK
ICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMTQyLDYgKzE0MywxMiBAQCBSZW5kZXJPYmplY3QqIFJl
bmRlck9iamVjdDo6Y3JlYXRlT2JqZWN0CiAgICAgICAgICAgICBvID0gbmV3IChhcmVuYSkgUmVu
ZGVyVGFibGVDZWxsKG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgVEFC
TEVfQ0FQVElPTjoKKyNpZiBFTkFCTEUoV0NTUykKKyAgICAgICAgLy8gQXMgcGVyIHRoZSBzZWN0
aW9uIDE3LjEgb2YgdGhlIHNwZWMgV0FQLTIzOS1XQ1NTLTIwMDExMDI2LWEucGRmLCAKKyAgICAg
ICAgLy8gdGhlIG1hcnF1ZWUgYm94IGluaGVyaXRzIGFuZCBleHRlbmRzIHRoZSBjaGFyYWN0ZXJp
c3RpY3Mgb2YgdGhlIAorICAgICAgICAvLyBwcmluY2lwYWwgYmxvY2sgYm94IChbQ1NTMl0gc2Vj
dGlvbiA5LjIuMSkuCisgICAgICAgIGNhc2UgV0FQX01BUlFVRUU6CisjZW5kaWYKICAgICAgICAg
ICAgIG8gPSBuZXcgKGFyZW5hKSBSZW5kZXJCbG9jayhub2RlKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICBjYXNlIEJPWDoKSW5kZXg6IHRydW5rL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdHJ1bmsvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAkocmV2aXNpb24gNDY2MTkpCisrKyB0
cnVuay9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogICAgICAgICAgIChDKSAyMDAwIERpcmsgTXVl
bGxlciAobXVlbGxlckBrZGUub3JnKQogICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBHcmFoYW0gRGVubmlzIChncmFoYW0uZGVubmlzQGdtYWlsLmNvbSkKKyAqIENv
cHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAo
aHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOTgs
NyArMjk5LDExIEBAIGVudW0gRURpc3BsYXkgewogICAgIFRBQkxFLCBJTkxJTkVfVEFCTEUsIFRB
QkxFX1JPV19HUk9VUCwKICAgICBUQUJMRV9IRUFERVJfR1JPVVAsIFRBQkxFX0ZPT1RFUl9HUk9V
UCwgVEFCTEVfUk9XLAogICAgIFRBQkxFX0NPTFVNTl9HUk9VUCwgVEFCTEVfQ09MVU1OLCBUQUJM
RV9DRUxMLAotICAgIFRBQkxFX0NBUFRJT04sIEJPWCwgSU5MSU5FX0JPWCwgTk9ORQorICAgIFRB
QkxFX0NBUFRJT04sIEJPWCwgSU5MSU5FX0JPWCwgCisjaWYgRU5BQkxFKFdDU1MpCisgICAgV0FQ
X01BUlFVRUUsCisjZW5kaWYKKyAgICBOT05FCiB9OwogCiBlbnVtIEVQb2ludGVyRXZlbnRzIHsK
</data>
<flag name="review"
          id="18283"
          type_id="1"
          status="-"
          setter="zimmermann"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34648</attachid>
            <date>2009-08-12 02:36:11 -0700</date>
            <delta_ts>2009-08-12 15:15:14 -0700</delta_ts>
            <desc>resubmit the patch to address comments</desc>
            <filename>wcss-marquee-23727.patch</filename>
            <type>text/plain</type>
            <size>18935</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NzA5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDgtMTIgIGNoYXJsZXMgd2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgaXMgdG8gYWRkIFdDU1MgbWFycXVlZSBzdXBwb3J0ICwgd2hpY2ggaXMg
ZGVmaW5lZCBieSBPTUEgYW5kIGlzIGFuIGV4dGVuc2lvbiBmb3IgQ1NTMiwgCisgICAgICAgIEl0
IGV4dGVuZHMgQ1NTIGRpc3BsYXkgd2l0aCAiZGlzcGxheTotd2FwLW1hcnF1ZWU7LXdhcC1tYXJx
dWVlLWRpcjp4eHg7LXdhcC1tYXJxdWVlLXNwZWVkOnh4eDstd2FwLW1hcnF1ZWUtc3R5bGU6eHh4
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjcK
KworICAgICAgICBObyBuZXcgdGVzdHMsIHRoZSB0ZXN0cyBoYXZlIGFscmVhZHkgYmVlbiBsYW5k
ZWQgYXQgTGF5b3V0VGVzdHMvZmFzdC93Y3NzLworCisgICAgICAgICogV2ViQ29yZS5wcm86Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6
OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUp
OgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkpOgorICAgICAgICAqIGNzcy9DU1NWYWx1
ZUtleXdvcmRzLmluOgorICAgICAgICAqIGNzcy9XQ1NTUHJvcGVydHlOYW1lcy5pbjogQWRkZWQu
CisgICAgICAgICogY3NzL1dDU1NWYWx1ZUtleXdvcmRzLmluOiBBZGRlZC4KKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXJx
dWVlOjpzdGFydCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmNyZWF0ZU9iamVjdCk6CisgICAgICAgICogcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjop
OgorCiAyMDA5LTA4LTEyICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9X
ZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiA0
NzA4MikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTEyNSwxMCAr
MTI1LDExIEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TSU5HTEVfVEhSRUFERUQKICFjb250
YWlucyhERUZJTkVTLCBFTkFCTEVfWFBBVEg9Lik6IERFRklORVMgKz0gRU5BQkxFX1hQQVRIPTEK
ICFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWFNMVD0uKTogREVGSU5FUyArPSBFTkFCTEVfWFNM
VD0wCiAjIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9YQkw9Lik6IERFRklORVMgKz0gRU5BQkxF
X1hCTD0xCishY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9Lik6IERFRklORVMgKz0gRU5B
QkxFX1dDU1M9MQogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9Lik6IERFRklORVMgKz0g
RU5BQkxFX1dNTD0wCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NIQVJFRF9XT1JLRVJTPS4p
OiBERUZJTkVTICs9IEVOQUJMRV9TSEFSRURfV09SS0VSUz0wCiAhY29udGFpbnMoREVGSU5FUywg
RU5BQkxFX1dPUktFUlM9Lik6IERFRklORVMgKz0gRU5BQkxFX1dPUktFUlM9MQotIWNvbnRhaW5z
KERFRklORVMsIEVOQUJMRV9YSFRNTE1QPS4pOiBERUZJTkVTICs9IEVOQUJMRV9YSFRNTE1QPTAK
KyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEhUTUxNUD0uKTogREVGSU5FUyArPSBFTkFCTEVf
WEhUTUxNUD0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0RBVEFHUklEPS4pOiBERUZJTkVT
ICs9IEVOQUJMRV9EQVRBR1JJRD0xCiAKICMgU1ZHIHN1cHBvcnQKQEAgLTI1NSw5ICsyNTYsMTYg
QEAgV0FMRE9DU1NWQUxVRVMgPSAkJFBXRC9jc3MvQ1NTVmFsdWVLZXl3bwogCiBEQVNIQk9BUkRT
VVBQT1JUQ1NTUFJPUEVSVElFUyA9ICQkUFdEL2Nzcy9EYXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVy
dHlOYW1lcy5pbgogCi1TVkdDU1NQUk9QRVJUSUVTID0gJCRQV0QvY3NzL1NWR0NTU1Byb3BlcnR5
TmFtZXMuaW4KIAotU1ZHQ1NTVkFMVUVTID0gJCRQV0QvY3NzL1NWR0NTU1ZhbHVlS2V5d29yZHMu
aW4KK2NvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9MSkgeworICAgIEVYVFJBQ1NTUFJPUEVS
VElFUyArPSAkJFBXRC9jc3MvU1ZHQ1NTUHJvcGVydHlOYW1lcy5pbgorICAgIEVYVFJBQ1NTVkFM
VUVTICs9ICQkUFdEL2Nzcy9TVkdDU1NWYWx1ZUtleXdvcmRzLmluCit9CisKK2NvbnRhaW5zKERF
RklORVMsIEVOQUJMRV9XQ1NTPTEpIHsKKyAgICBFWFRSQUNTU1BST1BFUlRJRVMgKz0gJCRQV0Qv
Y3NzL1dDU1NQcm9wZXJ0eU5hbWVzLmluCisgICAgRVhUUkFDU1NWQUxVRVMgKz0gJCRQV0QvY3Nz
L1dDU1NWYWx1ZUtleXdvcmRzLmluCit9CiAKIFNUWUxFU0hFRVRTX0VNQkVEID0gXAogICAgICQk
UFdEL2Nzcy9odG1sLmNzcyBcCkBAIC0yNjczLDYgKzI2ODEsMTQgQEAgY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0ZJTFRFUlM9MSkgewogICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9
IEVOQUJMRV9GSUxURVJTPTEKIH0KIAorY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1dDU1M9MSkg
eworICAgIEZFQVRVUkVfREVGSU5FU19KQVZBU0NSSVBUICs9IEVOQUJMRV9XQ1NTPTEKKyAgICBj
b250YWlucyhERUZJTkVTLCBFTkFCTEVfWEhUTUxNUD0wKSB7CisgICAgICAgIERFRklORVMgLT0g
RU5BQkxFX1hIVE1MTVA9MAorICAgICAgICBERUZJTkVTICs9IEVOQUJMRV9YSFRNTE1QPTEKKyAg
ICB9Cit9CisKIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9XTUw9MSkgewogICAgIFNPVVJDRVMg
Kz0gXAogICAgICAgICB3bWwvV01MQUVsZW1lbnQuY3BwIFwKQEAgLTI5ODEsNDIgKzI5OTcsMjUg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1NWRz0xKSB7CiAgICAgICAgIHhsaW5rbmFtZXMu
dmFyaWFibGVfb3V0ID0gR0VORVJBVEVEX1NPVVJDRVMKICAgICAgICAgYWRkRXh0cmFDb21waWxl
cldpdGhIZWFkZXIoeGxpbmtuYW1lcykKIAotICAgICMgR0VORVJBVE9SIDYtQToKLSAgICBjc3Nw
cm9wcy5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0k
e1FNQUtFX0ZJTEVfQkFTRX0uY3BwCi0gICAgY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BT
Ci0gICAgY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFLRV9G
SUxFX05BTUV9ICQkREFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVMgJCRTVkdDU1NQUk9QRVJU
SUVTID4gJCR7R0VORVJBVEVEX1NPVVJDRVNfRElSfSQke1FNQUtFX0RJUl9TRVB9JHtRTUFLRV9G
SUxFX0JBU0V9LmluICYmIGNkICQkR0VORVJBVEVEX1NPVVJDRVNfRElSICYmIHBlcmwgJCRQV0Qv
Y3NzL21ha2Vwcm9wLnBsICYmICQoREVMX0ZJTEUpICR7UU1BS0VfRklMRV9CQVNFfS5zdHJpcCAk
e1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LmdwZXJmCi0gICAgY3NzcHJv
cHMuQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMgbm9fbGluawotICAgIGNzc3Byb3BzLnZhcmlhYmxl
X291dCA9Ci0gICAgY3NzcHJvcHMuZGVwZW5kID0gJHtRTUFLRV9GSUxFX05BTUV9IERBU0hCT0FS
RFNVUFBPUlRDU1NQUk9QRVJUSUVTIFNWR0NTU1BST1BFUlRJRVMKLSAgICBhZGRFeHRyYUNvbXBp
bGVyV2l0aEhlYWRlcihjc3Nwcm9wcykKLQotICAgICMgR0VORVJBVE9SIDYtQjoKLSAgICBjc3N2
YWx1ZXMub3V0cHV0ID0gJCR7R0VORVJBVEVEX1NPVVJDRVNfRElSfSQke1FNQUtFX0RJUl9TRVB9
JHtRTUFLRV9GSUxFX0JBU0V9LmMKLSAgICBjc3N2YWx1ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVF
UwotICAgIGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtF
X0ZJTEVfTkFNRX0gJCRTVkdDU1NWQUxVRVMgPiAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7
UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRHRU5FUkFURURfU09V
UkNFU19ESVIgJiYgcGVybCAkJFBXRC9jc3MvbWFrZXZhbHVlcy5wbCAmJiAkKERFTF9GSUxFKSAk
e1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LnN0cmlwICR7UU1BS0VfRklM
RV9CQVNFfS5ncGVyZgotICAgIGNzc3ZhbHVlcy5DT05GSUcgPSB0YXJnZXRfcHJlZGVwcyBub19s
aW5rCi0gICAgY3NzdmFsdWVzLnZhcmlhYmxlX291dCA9Ci0gICAgY3NzdmFsdWVzLmRlcGVuZCA9
ICR7UU1BS0VfRklMRV9OQU1FfSBTVkdDU1NWQUxVRVMKLSAgICBhZGRFeHRyYUNvbXBpbGVyV2l0
aEhlYWRlcihjc3N2YWx1ZXMpCi19IGVsc2UgewotICAgICMgR0VORVJBVE9SIDYtQToKLSAgICBj
c3Nwcm9wcy5vdXRwdXQgPSAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NF
UH0ke1FNQUtFX0ZJTEVfQkFTRX0uY3BwCi0gICAgY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BS
T1BTCi0gICAgY3NzcHJvcHMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFL
RV9GSUxFX05BTUV9ICQkREFTSEJPQVJEU1VQUE9SVENTU1BST1BFUlRJRVMgPiAkJHtHRU5FUkFU
RURfU09VUkNFU19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYg
Y2QgJCRHRU5FUkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJFBXRC9jc3MvbWFrZXByb3AucGwg
JiYgJChERUxfRklMRSkgJHtRTUFLRV9GSUxFX0JBU0V9LnN0cmlwICR7UU1BS0VfRklMRV9CQVNF
fS5pbiAke1FNQUtFX0ZJTEVfQkFTRX0uZ3BlcmYKLSAgICBjc3Nwcm9wcy5DT05GSUcgPSB0YXJn
ZXRfcHJlZGVwcyBub19saW5rCi0gICAgY3NzcHJvcHMudmFyaWFibGVfb3V0ID0KLSAgICBjc3Nw
cm9wcy5kZXBlbmQgPSAke1FNQUtFX0ZJTEVfTkFNRX0gREFTSEJPQVJEU1VQUE9SVENTU1BST1BF
UlRJRVMKLSAgICBhZGRFeHRyYUNvbXBpbGVyV2l0aEhlYWRlcihjc3Nwcm9wcykKLQotICAgICMg
R0VORVJBVE9SIDYtQjoKLSAgICBjc3N2YWx1ZXMub3V0cHV0ID0gJCR7R0VORVJBVEVEX1NPVVJD
RVNfRElSfSQke1FNQUtFX0RJUl9TRVB9JHtRTUFLRV9GSUxFX0JBU0V9LmMKLSAgICBjc3N2YWx1
ZXMuaW5wdXQgPSBXQUxET0NTU1ZBTFVFUwotICAgIGNzc3ZhbHVlcy5jb21tYW5kcyA9IHBlcmwg
LW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gPiAkJHtHRU5FUkFURURfU09VUkNF
U19ESVJ9JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRHRU5F
UkFURURfU09VUkNFU19ESVIgJiYgcGVybCAkJFBXRC9jc3MvbWFrZXZhbHVlcy5wbCAmJiAkKERF
TF9GSUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LnN0cmlwICR7
UU1BS0VfRklMRV9CQVNFfS5ncGVyZgotICAgIGNzc3ZhbHVlcy5DT05GSUcgPSB0YXJnZXRfcHJl
ZGVwcyBub19saW5rCi0gICAgY3NzdmFsdWVzLnZhcmlhYmxlX291dCA9Ci0gICAgY3NzdmFsdWVz
LmNsZWFuID0gJHtRTUFLRV9GSUxFX09VVH0gJHtRTUFLRV9WQVJfR0VORVJBVEVEX1NPVVJDRVNf
RElSX1NMQVNIfSR7UU1BS0VfRklMRV9CQVNFfS5oCi0gICAgYWRkRXh0cmFDb21waWxlcihjc3N2
YWx1ZXMpCi19Cit9IAorIyBHRU5FUkFUT1IgNi1BOgorY3NzcHJvcHMub3V0cHV0ID0gJCR7R0VO
RVJBVEVEX1NPVVJDRVNfRElSfSQke1FNQUtFX0RJUl9TRVB9JHtRTUFLRV9GSUxFX0JBU0V9LmNw
cAorY3NzcHJvcHMuaW5wdXQgPSBXQUxET0NTU1BST1BTCitjc3Nwcm9wcy5jb21tYW5kcyA9IHBl
cmwgLW5lIFwicHJpbnQgbGNcIiAke1FNQUtFX0ZJTEVfTkFNRX0gJCREQVNIQk9BUkRTVVBQT1JU
Q1NTUFJPUEVSVElFUyAkJEVYVFJBQ1NTUFJPUEVSVElFUyA+ICQke0dFTkVSQVRFRF9TT1VSQ0VT
X0RJUn0kJHtRTUFLRV9ESVJfU0VQfSR7UU1BS0VfRklMRV9CQVNFfS5pbiAmJiBjZCAkJEdFTkVS
QVRFRF9TT1VSQ0VTX0RJUiAmJiBwZXJsICQkUFdEL2Nzcy9tYWtlcHJvcC5wbCAmJiAkKERFTF9G
SUxFKSAke1FNQUtFX0ZJTEVfQkFTRX0uc3RyaXAgJHtRTUFLRV9GSUxFX0JBU0V9LmluICR7UU1B
S0VfRklMRV9CQVNFfS5ncGVyZgorY3NzcHJvcHMuQ09ORklHID0gdGFyZ2V0X3ByZWRlcHMgbm9f
bGluaworY3NzcHJvcHMudmFyaWFibGVfb3V0ID0KK2Nzc3Byb3BzLmRlcGVuZCA9ICR7UU1BS0Vf
RklMRV9OQU1FfSBEQVNIQk9BUkRTVVBQT1JUQ1NTUFJPUEVSVElFUyBFWFRSQUNTU1BST1BFUlRJ
RVMKK2FkZEV4dHJhQ29tcGlsZXJXaXRoSGVhZGVyKGNzc3Byb3BzKQorCisjIEdFTkVSQVRPUiA2
LUI6Citjc3N2YWx1ZXMub3V0cHV0ID0gJCR7R0VORVJBVEVEX1NPVVJDRVNfRElSfSQke1FNQUtF
X0RJUl9TRVB9JHtRTUFLRV9GSUxFX0JBU0V9LmMKK2Nzc3ZhbHVlcy5pbnB1dCA9IFdBTERPQ1NT
VkFMVUVTCitjc3N2YWx1ZXMuY29tbWFuZHMgPSBwZXJsIC1uZSBcInByaW50IGxjXCIgJHtRTUFL
RV9GSUxFX05BTUV9ICQkRVhUUkFDU1NWQUxVRVMgPiAkJHtHRU5FUkFURURfU09VUkNFU19ESVJ9
JCR7UU1BS0VfRElSX1NFUH0ke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJiYgY2QgJCRHRU5FUkFURURf
U09VUkNFU19ESVIgJiYgcGVybCAkJFBXRC9jc3MvbWFrZXZhbHVlcy5wbCAmJiAkKERFTF9GSUxF
KSAke1FNQUtFX0ZJTEVfQkFTRX0uaW4gJHtRTUFLRV9GSUxFX0JBU0V9LnN0cmlwICR7UU1BS0Vf
RklMRV9CQVNFfS5ncGVyZgorY3NzdmFsdWVzLkNPTkZJRyA9IHRhcmdldF9wcmVkZXBzIG5vX2xp
bmsKK2Nzc3ZhbHVlcy52YXJpYWJsZV9vdXQgPQorY3NzdmFsdWVzLmRlcGVuZCA9ICR7UU1BS0Vf
RklMRV9OQU1FfSBFWFRSQUNTU1ZBTFVFUworY3NzdmFsdWVzLmNsZWFuID0gJHtRTUFLRV9GSUxF
X09VVH0gJHtRTUFLRV9WQVJfR0VORVJBVEVEX1NPVVJDRVNfRElSX1NMQVNIfSR7UU1BS0VfRklM
RV9CQVNFfS5oCithZGRFeHRyYUNvbXBpbGVyKGNzc3ZhbHVlcykKIAogY29udGFpbnMoREVGSU5F
UywgRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVI9MSkgewogICAgIEZFQVRVUkVfREVGSU5FU19K
QVZBU0NSSVBUICs9IEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSPTEKSW5kZXg6IFdlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAkocmV2aXNpb24gNDcwODIpCisrKyBXZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00LDYgKzQsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2
LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAwNyBOaWNob2xhcyBTaGFua3MgPHdlYmtpdEBuaWNrc2hhbmtzLmNvbT4K
ICAqIENvcHlyaWdodCAoQykgMjAwOCBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICog
Q29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
IChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0
IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY5
NSw3ICs2OTYsMTEgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlVmFsdWUoaW50IHByb3BJZCwgYgog
ICAgICAgICAvLyBpbmxpbmUgfCBibG9jayB8IGxpc3QtaXRlbSB8IHJ1bi1pbiB8IGlubGluZS1i
bG9jayB8IHRhYmxlIHwKICAgICAgICAgLy8gaW5saW5lLXRhYmxlIHwgdGFibGUtcm93LWdyb3Vw
IHwgdGFibGUtaGVhZGVyLWdyb3VwIHwgdGFibGUtZm9vdGVyLWdyb3VwIHwgdGFibGUtcm93IHwK
ICAgICAgICAgLy8gdGFibGUtY29sdW1uLWdyb3VwIHwgdGFibGUtY29sdW1uIHwgdGFibGUtY2Vs
bCB8IHRhYmxlLWNhcHRpb24gfCBib3ggfCBpbmxpbmUtYm94IHwgbm9uZSB8IGluaGVyaXQKKyNp
ZiBFTkFCTEUoV0NTUykKKyAgICAgICAgaWYgKChpZCA+PSBDU1NWYWx1ZUlubGluZSAmJiBpZCA8
PSBDU1NWYWx1ZVdhcE1hcnF1ZWUpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKKyNlbHNlCiAgICAg
ICAgIGlmICgoaWQgPj0gQ1NTVmFsdWVJbmxpbmUgJiYgaWQgPD0gQ1NTVmFsdWVXZWJraXRJbmxp
bmVCb3gpIHx8IGlkID09IENTU1ZhbHVlTm9uZSkKKyNlbmRpZgogICAgICAgICAgICAgdmFsaWRf
cHJpbWl0aXZlID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAKQEAgLTEyNjEsNiArMTI2NiwyOCBA
QCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShpbnQgcHJvcElkLCBiCiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1ZSwgRlRpbWV8Rklu
dGVnZXJ8Rk5vbk5lZywgbV9zdHJpY3QpOwogICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoV0NT
UykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZURpcjoKKyAgICAgICAgaWYgKGlkID09
IENTU1ZhbHVlTHRyIHx8IGlkID09IENTU1ZhbHVlUnRsKQorICAgICAgICAgICAgdmFsaWRfcHJp
bWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1h
cnF1ZWVTdHlsZToKKyAgICAgICAgaWYgKGlkID09IENTU1ZhbHVlTm9uZSB8fCBpZCA9PSBDU1NW
YWx1ZVNsaWRlIHx8IGlkID09IENTU1ZhbHVlU2Nyb2xsIHx8IGlkID09IENTU1ZhbHVlQWx0ZXJu
YXRlKQorICAgICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVMb29wOgorICAgICAgICBpZiAoaWQgPT0g
Q1NTVmFsdWVJbmZpbml0ZSkKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHZhbGlkVW5pdCh2YWx1
ZSwgRkludGVnZXIgfCBGTm9uTmVnLCBtX3N0cmljdCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgQ1NTUHJvcGVydHlXYXBNYXJxdWVlU3BlZWQ6CisgICAgICAgIGlmIChpZCA9PSBDU1NWYWx1
ZU5vcm1hbCB8fCBpZCA9PSBDU1NWYWx1ZVNsb3cgfHwgaWQgPT0gQ1NTVmFsdWVGYXN0KQorICAg
ICAgICAgICAgdmFsaWRfcHJpbWl0aXZlID0gdHJ1ZTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgdmFsaWRfcHJpbWl0aXZlID0gdmFsaWRVbml0KHZhbHVlLCBGVGltZSB8IEZJbnRlZ2VyIHwg
Rk5vbk5lZywgbV9zdHJpY3QpOworICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRVc2VyRHJhZzogLy8gYXV0byB8IG5vbmUgfCBlbGVtZW50CiAgICAgICAg
IGlmIChpZCA9PSBDU1NWYWx1ZUF1dG8gfHwgaWQgPT0gQ1NTVmFsdWVOb25lIHx8IGlkID09IENT
U1ZhbHVlRWxlbWVudCkKICAgICAgICAgICAgIHZhbGlkX3ByaW1pdGl2ZSA9IHRydWU7CkluZGV4
OiBXZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCShyZXZpc2lvbiA0NzA4MikK
KysrIFdlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAkod29ya2luZyBjb3B5
KQpAQCAtMSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxleGV5IFByb3Nr
dXJ5YWtvdiA8YXBAbnlwb3AuY29tPi4KICAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4gKGh0dHA6Ly93d3cudG9yY2htb2JpbGUuY29tLykK
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNzc3LDYgKzc3OCwxMSBAQCB0ZW1w
bGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTCiAgICAgICAgIGNhc2UgVEFCTEVf
Q0FQVElPTjoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZVRhYmxlQ2FwdGlv
bjsKICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShXQ1NTKQorICAgICAgICBjYXNlIFdB
UF9NQVJRVUVFOgorICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2FwTWFycXVl
ZTsKKyAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgICAgIGNhc2UgQk9YOgogICAgICAg
ICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlV2Via2l0Qm94OwogICAgICAgICAgICAgYnJl
YWs7CkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNDcwODIpCisrKyBX
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjk5MSw3
ICsyOTkxLDI4IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgcmV0dXJuOwogICAgIGNhc2UgQ1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKGRpc3BsYXksIERpc3BsYXkpCisj
aWYgRU5BQkxFKFdDU1MpCisgICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZSkgeworICAgICAgICAg
ICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlV2FwTWFycXVlZSkg
eworICAgICAgICAgICAgICAgIC8vIEluaXRpYWxpemUgV2FwIE1hcnF1ZWUgc3R5bGUKKyAgICAg
ICAgICAgICAgICBtX3N0eWxlLT5zZXRPdmVyZmxvd1goT01BUlFVRUUpOworICAgICAgICAgICAg
ICAgIG1fc3R5bGUtPnNldE92ZXJmbG93WShPTUFSUVVFRSk7CisgICAgICAgICAgICAgICAgbV9z
dHlsZS0+c2V0V2hpdGVTcGFjZShOT1dSQVApOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNl
dE1hcnF1ZWVEaXJlY3Rpb24oTUxFRlQpOworICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1h
cnF1ZWVTcGVlZCg4NSk7IC8vIE5vcm1hbCBzcGVlZAorICAgICAgICAgICAgICAgIG1fc3R5bGUt
PnNldE1hcnF1ZWVMb29wQ291bnQoMSk7CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFy
cXVlZUJlaGF2aW9yKE1TQ1JPTEwpOworCisgICAgICAgICAgICAgICAgaWYgKG1fcGFyZW50U3R5
bGUpCisgICAgICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXkobV9wYXJlbnRTdHls
ZS0+ZGlzcGxheSgpKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAg
IG1fc3R5bGUtPnNldERpc3BsYXkoKnByaW1pdGl2ZVZhbHVlKTsKKyAgICAgICAgICAgIH0gZWxz
ZQorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldERpc3BsYXkoKnByaW1pdGl2ZVZhbHVlKTsK
KyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIHJldHVybjsKKwogICAgIGNhc2UgQ1NTUHJvcGVy
dHlFbXB0eUNlbGxzOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9BTkRfUFJJ
TUlUSVZFKGVtcHR5Q2VsbHMsIEVtcHR5Q2VsbHMpCiAgICAgICAgIHJldHVybjsKQEAgLTQ3NDIs
NiArNDc2Myw5IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBwbHlQcm9wZXJ0eShpbnQKICAg
ICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZUxvb3BDb3VudChtX3BhcmVudFN0eWxlLT5tYXJxdWVl
TG9vcENvdW50KCkpOwogICAgICAgICBtX3N0eWxlLT5zZXRNYXJxdWVlQmVoYXZpb3IobV9wYXJl
bnRTdHlsZS0+bWFycXVlZUJlaGF2aW9yKCkpOwogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxF
KFdDU1MpCisgICAgY2FzZSBDU1NQcm9wZXJ0eVdhcE1hcnF1ZWVMb29wOgorI2VuZGlmCiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1hcnF1ZWVSZXBldGl0aW9uOiB7CiAgICAgICAgIEhBTkRM
RV9JTkhFUklUX0FORF9JTklUSUFMKG1hcnF1ZWVMb29wQ291bnQsIE1hcnF1ZWVMb29wQ291bnQp
CiAgICAgICAgIGlmICghcHJpbWl0aXZlVmFsdWUpCkBAIC00NzUyLDYgKzQ3NzYsOSBAQCB2b2lk
IENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVydHkoaW50CiAgICAgICAgICAgICBtX3N0eWxl
LT5zZXRNYXJxdWVlTG9vcENvdW50KHByaW1pdGl2ZVZhbHVlLT5nZXRJbnRWYWx1ZSgpKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KKyNpZiBFTkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3Bl
cnR5V2FwTWFycXVlZVNwZWVkOgorI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdlYmtpdE1h
cnF1ZWVTcGVlZDogewogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTChtYXJxdWVl
U3BlZWQsIE1hcnF1ZWVTcGVlZCkgICAgICAKICAgICAgICAgaWYgKCFwcmltaXRpdmVWYWx1ZSkK
QEAgLTQ4MDIsOSArNDgyOSwzNSBAQCB2b2lkIENTU1N0eWxlU2VsZWN0b3I6OmFwcGx5UHJvcGVy
dHkoaW50CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAKKyAgICAKKyNpZiBF
TkFCTEUoV0NTUykKKyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZVN0eWxlOgorI2VuZGlm
CisKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0TWFycXVlZVN0eWxlOgogICAgICAgICBIQU5E
TEVfSU5IRVJJVF9BTkRfSU5JVElBTF9BTkRfUFJJTUlUSVZFKG1hcnF1ZWVCZWhhdmlvciwgTWFy
cXVlZUJlaGF2aW9yKSAgICAgIAogICAgICAgICByZXR1cm47CisKKyNpZiBFTkFCTEUoV0NTUykK
KyAgICBjYXNlIENTU1Byb3BlcnR5V2FwTWFycXVlZURpcjoKKyAgICAgICAgSEFORExFX0lOSEVS
SVRfQU5EX0lOSVRJQUwobWFycXVlZURpcmVjdGlvbiwgTWFycXVlZURpcmVjdGlvbikKKyAgICAg
ICAgaWYgKHByaW1pdGl2ZVZhbHVlICYmIHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7Cisg
ICAgICAgICAgICBzd2l0Y2ggKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpKSB7CisgICAgICAg
ICAgICBjYXNlIENTU1ZhbHVlTHRyOgorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1
ZWVEaXJlY3Rpb24oTVJJR0hUKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTVmFsdWVSdGw6CisgICAgICAgICAgICAgICAgbV9zdHlsZS0+c2V0TWFycXVlZURp
cmVjdGlvbihNTEVGVCk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZh
dWx0OgorICAgICAgICAgICAgICAgIG1fc3R5bGUtPnNldE1hcnF1ZWVEaXJlY3Rpb24oKnByaW1p
dGl2ZVZhbHVlKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgICAgICByZXR1cm47CisjZW5kaWYKKwogICAgIGNhc2UgQ1NTUHJvcGVydHlXZWJr
aXRNYXJxdWVlRGlyZWN0aW9uOgogICAgICAgICBIQU5ETEVfSU5IRVJJVF9BTkRfSU5JVElBTF9B
TkRfUFJJTUlUSVZFKG1hcnF1ZWVEaXJlY3Rpb24sIE1hcnF1ZWVEaXJlY3Rpb24pCiAgICAgICAg
IHJldHVybjsKQEAgLTUxNDAsNiArNTE5Myw3IEBAIHZvaWQgQ1NTU3R5bGVTZWxlY3Rvcjo6YXBw
bHlQcm9wZXJ0eShpbnQKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VGV4dFN0cm9rZToKICAg
ICBjYXNlIENTU1Byb3BlcnR5V2Via2l0VmFyaWFibGVEZWNsYXJhdGlvbkJsb2NrOgogICAgICAg
ICByZXR1cm47CisKICNpZiBFTkFCTEUoU1ZHKQogICAgIGRlZmF1bHQ6CiAgICAgICAgIC8vIFRy
eSB0aGUgU1ZHIHByb3BlcnRpZXMKSW5kZXg6IFdlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMu
aW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2aXNp
b24gNDcwODIpCisrKyBXZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCSh3b3JraW5nIGNv
cHkpCkBAIC0yNjAsNiArMjYwLDcgQEAgdGFibGUtY2VsbAogdGFibGUtY2FwdGlvbgogLXdlYmtp
dC1ib3gKIC13ZWJraXQtaW5saW5lLWJveAorLXdhcC1tYXJxdWVlCiAjbm9uZQogIwogIyBDU1Nf
UFJPUF9DVVJTT1I6CkluZGV4OiBXZWJDb3JlL2Nzcy9XQ1NTUHJvcGVydHlOYW1lcy5pbgo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2Nzcy9XQ1NTUHJvcGVydHlOYW1lcy5pbgkocmV2aXNpb24gMCkK
KysrIFdlYkNvcmUvY3NzL1dDU1NQcm9wZXJ0eU5hbWVzLmluCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQgQEAKKy13YXAtbWFycXVlZS1kaXIKKy13YXAtbWFycXVlZS1sb29wCistd2FwLW1hcnF1
ZWUtc3BlZWQKKy13YXAtbWFycXVlZS1zdHlsZQpJbmRleDogV2ViQ29yZS9jc3MvV0NTU1ZhbHVl
S2V5d29yZHMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9jc3MvV0NTU1ZhbHVlS2V5d29yZHMu
aW4JKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL2Nzcy9XQ1NTVmFsdWVLZXl3b3Jkcy5pbgkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSBAQAorIyBwbGFjZSBob2xkZXIgZm9yIGFsbCBXQ1NTIHNwZWNp
ZmljIENTUyB2YWx1ZSBrZXl3b3JkcwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFy
cXVlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5j
cHAJKHJldmlzaW9uIDQ3MDgyKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAy
MDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAoaHR0
cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFBvcnRpb25zIGFyZSBDb3B5cmlnaHQg
KEMpIDE5OTggTmV0c2NhcGUgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24uCiAgKgpAQCAtMTUy
LDggKzE1MywxOSBAQCBpbnQgUmVuZGVyTWFycXVlZTo6Y29tcHV0ZVBvc2l0aW9uKEVNYXJxCiAK
IHZvaWQgUmVuZGVyTWFycXVlZTo6c3RhcnQoKQogeworI2lmIEVOQUJMRShXQ1NTKSAmJiBFTkFC
TEUoWEhUTUxNUCkKKyAgICBpZiAobV9sYXllci0+cmVuZGVyZXIoKS0+ZG9jdW1lbnQoKS0+aXNY
SFRNTE1QRG9jdW1lbnQoKSkgeworICAgICAgICBpZiAobV90aW1lci5pc0FjdGl2ZSgpIHx8IG1f
bGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPm1hcnF1ZWVJbmNyZW1lbnQoKS5pc1plcm8oKSB8
fCAhbV9sYXllci0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+bWFycXVlZUxvb3BDb3VudCgpKSAgICAK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV90aW1lci5p
c0FjdGl2ZSgpIHx8IG1fbGF5ZXItPnJlbmRlcmVyKCktPnN0eWxlKCktPm1hcnF1ZWVJbmNyZW1l
bnQoKS5pc1plcm8oKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgCisjZWxzZQog
ICAgIGlmIChtX3RpbWVyLmlzQWN0aXZlKCkgfHwgbV9sYXllci0+cmVuZGVyZXIoKS0+c3R5bGUo
KS0+bWFycXVlZUluY3JlbWVudCgpLmlzWmVybygpKQogICAgICAgICByZXR1cm47CisjZW5kaWYK
IAogICAgIC8vIFdlIG1heSBlbmQgdXAgcHJvcGFnYXRpbmcgYSBzY3JvbGwgZXZlbnQuIEl0IGlz
IGltcG9ydGFudCB0aGF0IHdlIHN1c3BlbmQgZXZlbnRzIHVudGlsIAogICAgIC8vIHRoZSBlbmQg
b2YgdGhlIGZ1bmN0aW9uIHNpbmNlIHRoZXkgY291bGQgZGVsZXRlIHRoZSBsYXllciwgaW5jbHVk
aW5nIHRoZSBtYXJxdWVlLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCShyZXZp
c2lvbiA0NzA4MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQsNiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIwMDAgRGlyayBNdWVs
bGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiAgICAgICAgICAgKEMpIDIwMDQgQWxsYW4gU2FuZGZl
bGQgSmVuc2VuIChrZGVAY2FyZXdvbGYuY29tKQogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLiAo
aHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20vKQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0xNDIs
NiArMTQzLDEyIEBAIFJlbmRlck9iamVjdCogUmVuZGVyT2JqZWN0OjpjcmVhdGVPYmplY3QKICAg
ICAgICAgICAgIG8gPSBuZXcgKGFyZW5hKSBSZW5kZXJUYWJsZUNlbGwobm9kZSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBUQUJMRV9DQVBUSU9OOgorI2lmIEVOQUJMRShXQ1NT
KQorICAgICAgICAvLyBBcyBwZXIgdGhlIHNlY3Rpb24gMTcuMSBvZiB0aGUgc3BlYyBXQVAtMjM5
LVdDU1MtMjAwMTEwMjYtYS5wZGYsIAorICAgICAgICAvLyB0aGUgbWFycXVlZSBib3ggaW5oZXJp
dHMgYW5kIGV4dGVuZHMgdGhlIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgCisgICAgICAgIC8vIHBy
aW5jaXBhbCBibG9jayBib3ggKFtDU1MyXSBzZWN0aW9uIDkuMi4xKS4KKyAgICAgICAgY2FzZSBX
QVBfTUFSUVVFRToKKyNlbmRpZgogICAgICAgICAgICAgbyA9IG5ldyAoYXJlbmEpIFJlbmRlckJs
b2NrKG5vZGUpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQk9YOgpJbmRleDog
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCShyZXZp
c2lvbiA0NzA4MikKKysrIFdlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3Rh
bnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw3IEBACiAgKiAgICAgICAgICAgKEMpIDIw
MDAgRGlyayBNdWVsbGVyIChtdWVsbGVyQGtkZS5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDMs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDA2IEdyYWhhbSBEZW5uaXMgKGdyYWhhbS5kZW5uaXNAZ21haWwu
Y29tKQorICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuIChodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8pCiAgKgogICogVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICog
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI5OCw3ICsyOTksMTEgQEAgZW51bSBFRGlzcGxheSB7CiAgICAgVEFCTEUsIElOTElO
RV9UQUJMRSwgVEFCTEVfUk9XX0dST1VQLAogICAgIFRBQkxFX0hFQURFUl9HUk9VUCwgVEFCTEVf
Rk9PVEVSX0dST1VQLCBUQUJMRV9ST1csCiAgICAgVEFCTEVfQ09MVU1OX0dST1VQLCBUQUJMRV9D
T0xVTU4sIFRBQkxFX0NFTEwsCi0gICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCBO
T05FCisgICAgVEFCTEVfQ0FQVElPTiwgQk9YLCBJTkxJTkVfQk9YLCAKKyNpZiBFTkFCTEUoV0NT
UykKKyAgICBXQVBfTUFSUVVFRSwKKyNlbmRpZgorICAgIE5PTkUKIH07CiAKIGVudW0gRVBvaW50
ZXJFdmVudHMgewo=
</data>
<flag name="review"
          id="18798"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>