<?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>45087</bug_id>
          
          <creation_ts>2010-09-01 20:17:54 -0700</creation_ts>
          <short_desc>[chromium] Disable subpixel rendering in Linux when GPU compositor is active</short_desc>
          <delta_ts>2010-09-09 21:02:41 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>45510</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexey Marinichev">amarinichev</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jamesr</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273183</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-01 20:17:54 -0700</bug_when>
    <thetext>[chromium] Disable subpixel rendering in Linux when GPU compositor is active</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273185</commentid>
    <comment_count>1</comment_count>
      <attachid>66316</attachid>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-01 20:24:16 -0700</bug_when>
    <thetext>Created attachment 66316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273186</commentid>
    <comment_count>2</comment_count>
      <attachid>66317</attachid>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-01 20:29:05 -0700</bug_when>
    <thetext>Created attachment 66317
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273187</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-01 20:30:14 -0700</bug_when>
    <thetext>webkit-patch kindly created a Changelog file, but didn&apos;t add it to the commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273589</commentid>
    <comment_count>4</comment_count>
      <attachid>66317</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-02 14:56:19 -0700</bug_when>
    <thetext>Comment on attachment 66317
Patch

Looks good!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273598</commentid>
    <comment_count>5</comment_count>
      <attachid>66317</attachid>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2010-09-02 15:07:29 -0700</bug_when>
    <thetext>Comment on attachment 66317
Patch

Ooops, please disregard my previous response. I got mixed up with the bugs.

&gt; diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
&gt; index c8f9bcf61fa93600c1aac821e070adcb3f67a2d9..55a2df599434fc3fdb374b088460fbb543ad22ca 100644
&gt; --- a/WebCore/ChangeLog
&gt; +++ b/WebCore/ChangeLog
&gt; @@ -1,3 +1,29 @@
&gt; +2010-09-01  Alexey Marinichev  &lt;amarinichev@chromium.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        [chromium] Disable subpixel rendering in Linux when GPU compositor is active
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=45087
&gt; +
&gt; +        No new tests. (OOPS!)

We&apos;ll probably need some test here...

&gt; +
&gt; +        * platform/graphics/chromium/ContentLayerChromium.cpp:
&gt; +        (WebCore::ContentLayerChromium::updateContents):
&gt; +        * platform/graphics/chromium/FontLinux.cpp:
&gt; +        (WebCore::adjustTextRenderMode): Added a check to see if the compositor is active.
&gt; +        (WebCore::Font::drawGlyphs):
&gt; +        (WebCore::Font::drawComplexText):
&gt; +        * platform/graphics/chromium/LayerRendererChromium.cpp:
&gt; +        (WebCore::LayerRendererChromium::setRootLayerCanvasSize):
&gt; +        * platform/graphics/chromium/VideoLayerChromium.cpp:
&gt; +        (WebCore::VideoLayerChromium::updateContents):
&gt; +        * platform/graphics/skia/ImageBufferSkia.cpp:
&gt; +        (WebCore::ImageBuffer::ImageBuffer):
&gt; +        * platform/graphics/skia/PlatformContextSkia.cpp:
&gt; +        (WebCore::PlatformContextSkia::PlatformContextSkia): Made setDrawingToImageBuffer and
&gt; +        isDrawingToImageBuffer available to Linux.
&gt; +        * platform/graphics/skia/PlatformContextSkia.h:
&gt; +
&gt;  2010-08-27  Simon Fraser  &lt;simon.fraser@apple.com&gt;
&gt;  
&gt;          Reviewed by Tony Chang.
&gt; diff --git a/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp b/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
&gt; index 974933d45b779cc9394319cc46d3f06dce91b6bf..259a1fd6345f31d1836c499bd84eac72be1bc0bb 100644
&gt; --- a/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
&gt; +++ b/WebCore/platform/graphics/chromium/ContentLayerChromium.cpp
&gt; @@ -174,12 +174,11 @@ void ContentLayerChromium::updateContents()
&gt;      canvas.set(new skia::PlatformCanvas(dirtyRect.width(), dirtyRect.height(), false));
&gt;      skiaContext.set(new PlatformContextSkia(canvas.get()));
&gt;  
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)

I don&apos;t think that we need to test for OS(WINDOWS) || OS(LINUX) anymore. Can&apos;t this method be available to all OS&apos;s that use PLATFORM(SKIA)? 

&gt;      // This is needed to get text to show up correctly. Without it,
&gt;      // GDI renders with zero alpha and the text becomes invisible.
&gt;      // Unfortunately, setting this to true disables cleartype.
&gt;      // FIXME: Does this take us down a very slow text rendering path?
&gt; -    // FIXME: why is this is a windows-only call ?
&gt;      skiaContext-&gt;setDrawingToImageBuffer(true);
&gt;  #endif
&gt;  
&gt; diff --git a/WebCore/platform/graphics/chromium/FontLinux.cpp b/WebCore/platform/graphics/chromium/FontLinux.cpp
&gt; index ec79b82bb52171c9ef95071aa0d016403439bf65..239266db098cb618905b02fd2d4afc0c65a60de0 100644
&gt; --- a/WebCore/platform/graphics/chromium/FontLinux.cpp
&gt; +++ b/WebCore/platform/graphics/chromium/FontLinux.cpp
&gt; @@ -65,13 +65,13 @@ static bool isCanvasMultiLayered(SkCanvas* canvas)
&gt;      return !layerIterator.done();
&gt;  }
&gt;  
&gt; -static void adjustTextRenderMode(SkPaint* paint, bool isCanvasMultiLayered)
&gt; +static void adjustTextRenderMode(SkPaint* paint, GraphicsContext* gc)
&gt;  {
&gt;      // Our layers only have a single alpha channel. This means that subpixel
&gt;      // rendered text cannot be compositied correctly when the layer is
&gt;      // collapsed. Therefore, subpixel text is disabled when we are drawing
&gt; -    // onto a layer.
&gt; -    if (isCanvasMultiLayered)
&gt; +    // onto a layer or when the compositor is being used.
&gt; +    if (isCanvasMultiLayered(gc-&gt;platformContext()-&gt;canvas()) || gc-&gt;platformContext()-&gt;isDrawingToImageBuffer())
&gt;          paint-&gt;setLCDRenderText(false);
&gt;  }
&gt;  
&gt; @@ -102,14 +102,13 @@ void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font,
&gt;  
&gt;      SkCanvas* canvas = gc-&gt;platformContext()-&gt;canvas();
&gt;      int textMode = gc-&gt;platformContext()-&gt;getTextDrawingMode();
&gt; -    bool haveMultipleLayers = isCanvasMultiLayered(canvas);
&gt;  
&gt;      // We draw text up to two times (once for fill, once for stroke).
&gt;      if (textMode &amp; cTextFill) {
&gt;          SkPaint paint;
&gt;          gc-&gt;platformContext()-&gt;setupPaintForFilling(&amp;paint);
&gt;          font-&gt;platformData().setupPaint(&amp;paint);
&gt; -        adjustTextRenderMode(&amp;paint, haveMultipleLayers);
&gt; +        adjustTextRenderMode(&amp;paint, gc);
&gt;          paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
&gt;          paint.setColor(gc-&gt;fillColor().rgb());
&gt;          canvas-&gt;drawPosText(glyphs, numGlyphs &lt;&lt; 1, pos, paint);
&gt; @@ -122,7 +121,7 @@ void Font::drawGlyphs(GraphicsContext* gc, const SimpleFontData* font,
&gt;          SkPaint paint;
&gt;          gc-&gt;platformContext()-&gt;setupPaintForStroking(&amp;paint, 0, 0);
&gt;          font-&gt;platformData().setupPaint(&amp;paint);
&gt; -        adjustTextRenderMode(&amp;paint, haveMultipleLayers);
&gt; +        adjustTextRenderMode(&amp;paint, gc);
&gt;          paint.setTextEncoding(SkPaint::kGlyphID_TextEncoding);
&gt;          paint.setColor(gc-&gt;strokeColor().rgb());
&gt;  
&gt; @@ -637,7 +636,6 @@ void Font::drawComplexText(GraphicsContext* gc, const TextRun&amp; run,
&gt;      }
&gt;  
&gt;      TextRunWalker walker(run, point.x(), this);
&gt; -    bool haveMultipleLayers = isCanvasMultiLayered(canvas);
&gt;      walker.setWordSpacingAdjustment(wordSpacing());
&gt;      walker.setLetterSpacingAdjustment(letterSpacing());
&gt;      walker.setPadding(run.padding());
&gt; @@ -645,13 +643,13 @@ void Font::drawComplexText(GraphicsContext* gc, const TextRun&amp; run,
&gt;      while (walker.nextScriptRun()) {
&gt;          if (fill) {
&gt;              walker.fontPlatformDataForScriptRun()-&gt;setupPaint(&amp;fillPaint);
&gt; -            adjustTextRenderMode(&amp;fillPaint, haveMultipleLayers);
&gt; +            adjustTextRenderMode(&amp;fillPaint, gc);
&gt;              canvas-&gt;drawPosTextH(walker.glyphs(), walker.length() &lt;&lt; 1, walker.xPositions(), point.y(), fillPaint);
&gt;          }
&gt;  
&gt;          if (stroke) {
&gt;              walker.fontPlatformDataForScriptRun()-&gt;setupPaint(&amp;strokePaint);
&gt; -            adjustTextRenderMode(&amp;strokePaint, haveMultipleLayers);
&gt; +            adjustTextRenderMode(&amp;strokePaint, gc);
&gt;              canvas-&gt;drawPosTextH(walker.glyphs(), walker.length() &lt;&lt; 1, walker.xPositions(), point.y(), strokePaint);
&gt;          }
&gt;      }
&gt; diff --git a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
&gt; index e87d63e1f2765ce36e5e5f524bace2b73596c7df..a501a281102bd4e9a5982e5e36d4b46a66eb2ca8 100644
&gt; --- a/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
&gt; +++ b/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
&gt; @@ -118,7 +118,7 @@ void LayerRendererChromium::setRootLayerCanvasSize(const IntSize&amp; size)
&gt;      // the old ones.
&gt;      m_rootLayerCanvas = new skia::PlatformCanvas(size.width(), size.height(), false);
&gt;      m_rootLayerSkiaContext = new PlatformContextSkia(m_rootLayerCanvas.get());
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;      // FIXME: why is this is a windows-only call ?

FIXME is no longer valid

&gt;      m_rootLayerSkiaContext-&gt;setDrawingToImageBuffer(true);
&gt;  #endif
&gt; diff --git a/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
&gt; index 7ff98b93fd03ada2da68fc4d1f6e29b5740ff4be..62530274f227e829888a0e51e42f14f87f2392db 100644
&gt; --- a/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
&gt; +++ b/WebCore/platform/graphics/chromium/VideoLayerChromium.cpp
&gt; @@ -96,7 +96,7 @@ void VideoLayerChromium::updateContents()
&gt;          m_canvas = new skia::PlatformCanvas(dirtyRect.width(), dirtyRect.height(), true);
&gt;          m_skiaContext = new PlatformContextSkia(m_canvas.get());
&gt;  
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;          // This is needed to get text to show up correctly. Without it,
&gt;          // GDI renders with zero alpha and the text becomes invisible.
Please remove the GDI comment here if this will be called on Linux as well

&gt;          // Unfortunately, setting this to true disables cleartype.
&gt; diff --git a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
&gt; index 9403406300a7fe79fe04fe21cf14955e72a259db..0f4172e38a9bf0733331db5d37c958dcb5e454dd 100644
&gt; --- a/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
&gt; +++ b/WebCore/platform/graphics/skia/ImageBufferSkia.cpp
&gt; @@ -67,7 +67,7 @@ ImageBuffer::ImageBuffer(const IntSize&amp; size, ImageColorSpace imageColorSpace, b
&gt;  
&gt;      m_data.m_platformContext.setCanvas(&amp;m_data.m_canvas);
&gt;      m_context.set(new GraphicsContext(&amp;m_data.m_platformContext));
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;      m_context-&gt;platformContext()-&gt;setDrawingToImageBuffer(true);
&gt;  #endif
&gt;  
&gt; diff --git a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
&gt; index af0c4c41ac79aebe2f088911be31120869c30c57..5078826cae172deb03054f100a76c516f91eb01c 100644
&gt; --- a/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
&gt; +++ b/WebCore/platform/graphics/skia/PlatformContextSkia.cpp
&gt; @@ -204,7 +204,7 @@ SkColor PlatformContextSkia::State::applyAlpha(SkColor c) const
&gt;  // Danger: canvas can be NULL.
&gt;  PlatformContextSkia::PlatformContextSkia(skia::PlatformCanvas* canvas)
&gt;      : m_canvas(canvas)
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;      , m_drawingToImageBuffer(false)
&gt;  #endif
&gt;      , m_useGPU(false)
&gt; @@ -230,7 +230,7 @@ void PlatformContextSkia::setCanvas(skia::PlatformCanvas* canvas)
&gt;      m_canvas = canvas;
&gt;  }
&gt;  
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;  void PlatformContextSkia::setDrawingToImageBuffer(bool value)
&gt;  {
&gt;      m_drawingToImageBuffer = value;
&gt; diff --git a/WebCore/platform/graphics/skia/PlatformContextSkia.h b/WebCore/platform/graphics/skia/PlatformContextSkia.h
&gt; index fc0fb0b13e0e5cb89972ae0f4789b192a2481b36..8e82ebf2796fcfd32d65021254754ff066698567 100644
&gt; --- a/WebCore/platform/graphics/skia/PlatformContextSkia.h
&gt; +++ b/WebCore/platform/graphics/skia/PlatformContextSkia.h
&gt; @@ -78,7 +78,7 @@ public:
&gt;      // to the constructor.
&gt;      void setCanvas(skia::PlatformCanvas*);
&gt;  
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)

Why not on have it on all OS&apos;s that use PlatformContextSkia? 

&gt;      // If false we&apos;re rendering to a GraphicsContext for a web page, if false
&gt;      // we&apos;re not (as is the case when rendering to a canvas object).
&gt;      // If this is true the contents have not been marked up with the magic
&gt; @@ -222,7 +222,7 @@ private:
&gt;      // Values are used in ImageSkia.cpp
&gt;      IntSize m_imageResamplingHintSrcSize;
&gt;      FloatSize m_imageResamplingHintDstSize;
&gt; -#if OS(WINDOWS)
&gt; +#if OS(WINDOWS) || OS(LINUX)
&gt;      bool m_drawingToImageBuffer;
&gt;  #endif
&gt;      bool m_useGPU;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273659</commentid>
    <comment_count>6</comment_count>
      <attachid>66427</attachid>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-02 16:25:20 -0700</bug_when>
    <thetext>Created attachment 66427
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276052</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-08 14:08:02 -0700</bug_when>
    <thetext>Comments addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276781</commentid>
    <comment_count>8</comment_count>
      <attachid>66427</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 14:59:02 -0700</bug_when>
    <thetext>Comment on attachment 66427
Patch

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

&gt; WebCore/platform/graphics/chromium/FontLinux.cpp:68
&gt; -static void adjustTextRenderMode(SkPaint* paint, bool isCanvasMultiLayered)
&gt; +static void adjustTextRenderMode(SkPaint* paint, GraphicsContext* gc)
I think it would be a marginal improvement if this took a PlatformContextSkia* instead of a GraphicsContext*.  This function is only concerned with Skia-specific state, not general WebCore::GraphicsContext stuff.

&gt; WebCore/platform/graphics/skia/ImageBufferSkia.cpp:70
&gt; +#if OS(WINDOWS) || OS(LINUX)
Unnecessary.  OS(WINDOWS) || OS(LINUX) === skia and this is a skia-only file.

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.cpp:207
&gt; +#if OS(LINUX) || OS(WINDOWS)
remove

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.cpp:233
&gt; +#if OS(LINUX) || OS(WINDOWS)
remove

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.h:81
&gt; +#if OS(LINUX) || OS(WINDOWS)
remove

&gt; WebCore/platform/graphics/skia/PlatformContextSkia.h:225
&gt; +#if OS(WINDOWS) || OS(LINUX)
remove</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276805</commentid>
    <comment_count>9</comment_count>
      <attachid>67106</attachid>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-09 15:43:21 -0700</bug_when>
    <thetext>Created attachment 67106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276822</commentid>
    <comment_count>10</comment_count>
      <attachid>67106</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 16:10:04 -0700</bug_when>
    <thetext>Comment on attachment 67106
Patch

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

&gt; WebCore/platform/graphics/chromium/FontLinux.cpp:68
&gt; +static void adjustTextRenderMode(SkPaint* paint, PlatformGraphicsContext* pgc)
PlatformContextSkia, not PlatformGraphicsContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276831</commentid>
    <comment_count>11</comment_count>
      <attachid>67112</attachid>
    <who name="Alexey Marinichev">amarinichev</who>
    <bug_when>2010-09-09 16:22:42 -0700</bug_when>
    <thetext>Created attachment 67112
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276842</commentid>
    <comment_count>12</comment_count>
      <attachid>67112</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 16:39:15 -0700</bug_when>
    <thetext>Comment on attachment 67112
Patch

R=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276845</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 16:44:55 -0700</bug_when>
    <thetext>Committed r67126: &lt;http://trac.webkit.org/changeset/67126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276870</commentid>
    <comment_count>14</comment_count>
      <attachid>67112</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 17:36:47 -0700</bug_when>
    <thetext>Comment on attachment 67112
Patch

Patch has landed, clearing flags.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276903</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-09 18:12:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67126 might have broken Chromium Mac Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67128
http://trac.webkit.org/changeset/67129
http://trac.webkit.org/changeset/67126
http://trac.webkit.org/changeset/67127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276904</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-09 18:12:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/67127 might have broken Chromium Mac Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/67128
http://trac.webkit.org/changeset/67129
http://trac.webkit.org/changeset/67126
http://trac.webkit.org/changeset/67127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276933</commentid>
    <comment_count>17</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 18:52:25 -0700</bug_when>
    <thetext>This broke the chromium mac compile.  Apparently it attempts to compile PlatformContextSkia.cpp, but it appears that it&apos;s not actually used.  I&apos;m going to expand the exclusion list for mac and try to re-land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>276991</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-09-09 21:02:41 -0700</bug_when>
    <thetext>Committed r67161: &lt;http://trac.webkit.org/changeset/67161&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66316</attachid>
            <date>2010-09-01 20:24:16 -0700</date>
            <delta_ts>2010-09-01 20:29:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45087-20100901202415.patch</filename>
            <type>text/plain</type>
            <size>8768</size>
            <attacher name="Alexey Marinichev">amarinichev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOTc0OTMzZDQ1Yjc3OWNjOTM5NDMxOWNjNDZkM2Yw
NmRjZTkxYjZiZi4uMjU5YTFmZDYzNDVmMzFkMTgzNmM0OTliZDg0ZWFjNzJiZTFiYzBiYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJD
aHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE3NCwxMiArMTc0LDExIEBAIHZvaWQgQ29udGVudExh
eWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKCkKICAgICBjYW52YXMuc2V0KG5ldyBza2lhOjpQ
bGF0Zm9ybUNhbnZhcyhkaXJ0eVJlY3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCBmYWxz
ZSkpOwogICAgIHNraWFDb250ZXh0LnNldChuZXcgUGxhdGZvcm1Db250ZXh0U2tpYShjYW52YXMu
Z2V0KCkpKTsKIAotI2lmIE9TKFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgp
CiAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3JyZWN0bHku
IFdpdGhvdXQgaXQsCiAgICAgLy8gR0RJIHJlbmRlcnMgd2l0aCB6ZXJvIGFscGhhIGFuZCB0aGUg
dGV4dCBiZWNvbWVzIGludmlzaWJsZS4KICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0aW5nIHRo
aXMgdG8gdHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCiAgICAgLy8gRklYTUU6IERvZXMgdGhpcyB0
YWtlIHVzIGRvd24gYSB2ZXJ5IHNsb3cgdGV4dCByZW5kZXJpbmcgcGF0aD8KLSAgICAvLyBGSVhN
RTogd2h5IGlzIHRoaXMgaXMgYSB3aW5kb3dzLW9ubHkgY2FsbCA/CiAgICAgc2tpYUNvbnRleHQt
PnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAppbmRleCBlYzc5YjgyYmI1
MjE3MWM5ZWY5NTA3MWFhMGQwMTY0MDM0MzliZjY1Li4yMzkyNjZkYjA5OGNiNjE4OTA1YjAyZmQy
ZDRhZmMwYzY1YTYwZGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250TGludXguY3BwCkBAIC02NSwxMyArNjUsMTMgQEAgc3RhdGljIGJvb2wgaXNDYW52
YXNNdWx0aUxheWVyZWQoU2tDYW52YXMqIGNhbnZhcykKICAgICByZXR1cm4gIWxheWVySXRlcmF0
b3IuZG9uZSgpOwogfQogCi1zdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50
KiBwYWludCwgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJlZCkKK3N0YXRpYyB2b2lkIGFkanVzdFRl
eHRSZW5kZXJNb2RlKFNrUGFpbnQqIHBhaW50LCBHcmFwaGljc0NvbnRleHQqIGdjKQogewogICAg
IC8vIE91ciBsYXllcnMgb25seSBoYXZlIGEgc2luZ2xlIGFscGhhIGNoYW5uZWwuIFRoaXMgbWVh
bnMgdGhhdCBzdWJwaXhlbAogICAgIC8vIHJlbmRlcmVkIHRleHQgY2Fubm90IGJlIGNvbXBvc2l0
aWVkIGNvcnJlY3RseSB3aGVuIHRoZSBsYXllciBpcwogICAgIC8vIGNvbGxhcHNlZC4gVGhlcmVm
b3JlLCBzdWJwaXhlbCB0ZXh0IGlzIGRpc2FibGVkIHdoZW4gd2UgYXJlIGRyYXdpbmcKLSAgICAv
LyBvbnRvIGEgbGF5ZXIuCi0gICAgaWYgKGlzQ2FudmFzTXVsdGlMYXllcmVkKQorICAgIC8vIG9u
dG8gYSBsYXllciBvciB3aGVuIHRoZSBjb21wb3NpdG9yIGlzIGJlaW5nIHVzZWQuCisgICAgaWYg
KGlzQ2FudmFzTXVsdGlMYXllcmVkKGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCkpIHx8
IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+aXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpKQogICAgICAg
ICBwYWludC0+c2V0TENEUmVuZGVyVGV4dChmYWxzZSk7CiB9CiAKQEAgLTEwMiwxNCArMTAyLDEz
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKIAogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1D
b250ZXh0KCktPmNhbnZhcygpOwogICAgIGludCB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7Ci0gICAgYm9vbCBoYXZlTXVsdGlwbGVMYXllcnMg
PSBpc0NhbnZhc011bHRpTGF5ZXJlZChjYW52YXMpOwogCiAgICAgLy8gV2UgZHJhdyB0ZXh0IHVw
IHRvIHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25jZSBmb3Igc3Ryb2tlKS4KICAgICBpZiAo
dGV4dE1vZGUgJiBjVGV4dEZpbGwpIHsKICAgICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAg
Z2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAg
ICAgICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7Ci0gICAgICAgIGFk
anVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgaGF2ZU11bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAg
YWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBnYyk7CiAgICAgICAgIHBhaW50LnNldFRleHRF
bmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOwogICAgICAgICBwYWludC5z
ZXRDb2xvcihnYy0+ZmlsbENvbG9yKCkucmdiKCkpOwogICAgICAgICBjYW52YXMtPmRyYXdQb3NU
ZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOwpAQCAtMTIyLDcgKzEyMSw3
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKICAgICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAgZ2MtPnBs
YXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tpbmcoJnBhaW50LCAwLCAwKTsKICAg
ICAgICAgZm9udC0+cGxhdGZvcm1EYXRhKCkuc2V0dXBQYWludCgmcGFpbnQpOwotICAgICAgICBh
ZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGhhdmVNdWx0aXBsZUxheWVycyk7CisgICAgICAg
IGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgZ2MpOwogICAgICAgICBwYWludC5zZXRUZXh0
RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsKICAgICAgICAgcGFpbnQu
c2V0Q29sb3IoZ2MtPnN0cm9rZUNvbG9yKCkucmdiKCkpOwogCkBAIC02MzcsNyArNjM2LDYgQEAg
dm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4
dFJ1biYgcnVuLAogICAgIH0KIAogICAgIFRleHRSdW5XYWxrZXIgd2Fsa2VyKHJ1biwgcG9pbnQu
eCgpLCB0aGlzKTsKLSAgICBib29sIGhhdmVNdWx0aXBsZUxheWVycyA9IGlzQ2FudmFzTXVsdGlM
YXllcmVkKGNhbnZhcyk7CiAgICAgd2Fsa2VyLnNldFdvcmRTcGFjaW5nQWRqdXN0bWVudCh3b3Jk
U3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0TGV0dGVyU3BhY2luZ0FkanVzdG1lbnQobGV0dGVy
U3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0UGFkZGluZyhydW4ucGFkZGluZygpKTsKQEAgLTY0
NSwxMyArNjQzLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4
dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICB3aGlsZSAod2Fsa2VyLm5leHRTY3JpcHRS
dW4oKSkgewogICAgICAgICBpZiAoZmlsbCkgewogICAgICAgICAgICAgd2Fsa2VyLmZvbnRQbGF0
Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgmZmlsbFBhaW50KTsKLSAgICAgICAg
ICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxsUGFpbnQsIGhhdmVNdWx0aXBsZUxheWVycyk7
CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmZmlsbFBhaW50LCBnYyk7CiAgICAg
ICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0SCh3YWxrZXIuZ2x5cGhzKCksIHdhbGtlci5sZW5n
dGgoKSA8PCAxLCB3YWxrZXIueFBvc2l0aW9ucygpLCBwb2ludC55KCksIGZpbGxQYWludCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAgICB3YWxrZXIuZm9u
dFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1cFBhaW50KCZzdHJva2VQYWludCk7Ci0g
ICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGhhdmVNdWx0aXBs
ZUxheWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQs
IGdjKTsKICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHRIKHdhbGtlci5nbHlwaHMoKSwg
d2Fsa2VyLmxlbmd0aCgpIDw8IDEsIHdhbGtlci54UG9zaXRpb25zKCksIHBvaW50LnkoKSwgc3Ry
b2tlUGFpbnQpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IGU4N2Q2M2UxZjI3NjVjZTM2ZTVlNWY1MjRiYWNlMmI3MzU5NmM3ZGYuLmE1MDFhMjgxMTAyYmQ0
ZTlhNTk4MmU1ZTM2ZDRiNDZhNjZlYjJjYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAg
LTExOCw3ICsxMTgsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0Um9vdExheWVy
Q2FudmFzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIC8vIHRoZSBvbGQgb25lcy4KICAg
ICBtX3Jvb3RMYXllckNhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIGZhbHNlKTsKICAgICBtX3Jvb3RMYXllclNraWFDb250ZXh0ID0g
bmV3IFBsYXRmb3JtQ29udGV4dFNraWEobV9yb290TGF5ZXJDYW52YXMuZ2V0KCkpOwotI2lmIE9T
KFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpCiAgICAgLy8gRklYTUU6IHdo
eSBpcyB0aGlzIGlzIGEgd2luZG93cy1vbmx5IGNhbGwgPwogICAgIG1fcm9vdExheWVyU2tpYUNv
bnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggN2ZmOThiOTNmZDAzYWRhMmRhNjhmYzRkMWY2ZTI5YjU3NDBmZjRiZS4uNjI1
MzAyNzRmMjI3ZTgyOTg4OGEwZTUxZTQyZjE0Zjg3ZjIzOTJkYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNw
cApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVu
dHMoKQogICAgICAgICBtX2NhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhkaXJ0eVJl
Y3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCB0cnVlKTsKICAgICAgICAgbV9za2lhQ29u
dGV4dCA9IG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKG1fY2FudmFzLmdldCgpKTsKIAotI2lmIE9T
KFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpCiAgICAgICAgIC8vIFRoaXMg
aXMgbmVlZGVkIHRvIGdldCB0ZXh0IHRvIHNob3cgdXAgY29ycmVjdGx5LiBXaXRob3V0IGl0LAog
ICAgICAgICAvLyBHREkgcmVuZGVycyB3aXRoIHplcm8gYWxwaGEgYW5kIHRoZSB0ZXh0IGJlY29t
ZXMgaW52aXNpYmxlLgogICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0aW5nIHRoaXMgdG8g
dHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDk0MDM0MDYzMDBhN2ZlNzlmZTA0ZmUy
MWNmMTQ5NTVlNzJhMjU5ZGIuLjBmNDE3MmUzOGE5YmYwNzMzMzMxZGI1ZDM3Yzk1OGRjYjVlNDU0
ZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBJbnRTaXplJiBzaXplLCBJbWFnZUNvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBiCiAKICAg
ICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKCZtX2RhdGEubV9jYW52YXMpOwog
ICAgIG1fY29udGV4dC5zZXQobmV3IEdyYXBoaWNzQ29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1D
b250ZXh0KSk7Ci0jaWYgT1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkK
ICAgICBtX2NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZl
cih0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5kZXggYWYwYzRjNDFhYzc5YWViZTJmMDg4
OTExYmUzMTEyMDg2OWMzMGM1Ny4uNTA3ODgyNmNhZTE3MmRlYjAzMDU0ZjEwMGE3NmM1MTZmOTFl
YjAxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIFNrQ29sb3IgUGxhdGZvcm1D
b250ZXh0U2tpYTo6U3RhdGU6OmFwcGx5QWxwaGEoU2tDb2xvciBjKSBjb25zdAogLy8gRGFuZ2Vy
OiBjYW52YXMgY2FuIGJlIE5VTEwuCiBQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRl
eHRTa2lhKHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAgICAgOiBtX2NhbnZhcyhjYW52
YXMpCi0jaWYgT1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkKICAgICAs
IG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fdXNlR1BVKGZh
bHNlKQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0Q2Fu
dmFzKHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAgICAgbV9jYW52YXMgPSBjYW52YXM7
CiB9CiAKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8IE9TKExJTlVYKQogdm9p
ZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcihib29sIHZhbHVl
KQogewogICAgIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXIgPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCmluZGV4IGZj
MGZiMGIxM2UwZTVjYjg5OTcyYWUwZjQ3ODliMTkyYTI0ODFiMzYuLjhlODJlYmYyNzk2ZmNmZDMy
ZDY1MDIxMjU0NzU0ZmYwNjY2OTg1NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJs
aWM6CiAgICAgLy8gdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgIHZvaWQgc2V0Q2FudmFzKHNraWE6
OlBsYXRmb3JtQ2FudmFzKik7CiAKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8
IE9TKExJTlVYKQogICAgIC8vIElmIGZhbHNlIHdlJ3JlIHJlbmRlcmluZyB0byBhIEdyYXBoaWNz
Q29udGV4dCBmb3IgYSB3ZWIgcGFnZSwgaWYgZmFsc2UKICAgICAvLyB3ZSdyZSBub3QgKGFzIGlz
IHRoZSBjYXNlIHdoZW4gcmVuZGVyaW5nIHRvIGEgY2FudmFzIG9iamVjdCkuCiAgICAgLy8gSWYg
dGhpcyBpcyB0cnVlIHRoZSBjb250ZW50cyBoYXZlIG5vdCBiZWVuIG1hcmtlZCB1cCB3aXRoIHRo
ZSBtYWdpYwpAQCAtMjIyLDcgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gVmFsdWVzIGFyZSB1
c2VkIGluIEltYWdlU2tpYS5jcHAKICAgICBJbnRTaXplIG1faW1hZ2VSZXNhbXBsaW5nSGludFNy
Y1NpemU7CiAgICAgRmxvYXRTaXplIG1faW1hZ2VSZXNhbXBsaW5nSGludERzdFNpemU7Ci0jaWYg
T1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkKICAgICBib29sIG1fZHJh
d2luZ1RvSW1hZ2VCdWZmZXI7CiAjZW5kaWYKICAgICBib29sIG1fdXNlR1BVOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66317</attachid>
            <date>2010-09-01 20:29:05 -0700</date>
            <delta_ts>2010-09-02 16:25:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45087-20100901202904.patch</filename>
            <type>text/plain</type>
            <size>10307</size>
            <attacher name="Alexey Marinichev">amarinichev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzhmOWJjZjYxZmE5MzYwMGMxYWFjODIxZTA3MGFkY2IzZjY3YTJkOS4uNTVhMmRmNTk5NDM0ZmMz
ZmRiMzc0YjA4ODQ2MGZiYjU0M2FkMjJjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOS0wMSAgQWxl
eGV5IE1hcmluaWNoZXYgIDxhbWFyaW5pY2hldkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEaXNhYmxlIHN1
YnBpeGVsIHJlbmRlcmluZyBpbiBMaW51eCB3aGVuIEdQVSBjb21wb3NpdG9yIGlzIGFjdGl2ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwODcKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFRleHRSZW5kZXJNb2RlKTogQWRkZWQgYSBjaGVjayB0byBzZWUgaWYgdGhlIGNvbXBvc2l0
b3IgaXMgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFJvb3RMYXllckNhbnZhc1NpemUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lhKTogTWFk
ZSBzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlciBhbmQKKyAgICAgICAgaXNEcmF3aW5nVG9JbWFnZUJ1
ZmZlciBhdmFpbGFibGUgdG8gTGludXguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9QbGF0Zm9ybUNvbnRleHRTa2lhLmg6CisKIDIwMTAtMDgtMjcgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOTc0OTMzZDQ1Yjc3OWNjOTM5NDMxOWNjNDZkM2Yw
NmRjZTkxYjZiZi4uMjU5YTFmZDYzNDVmMzFkMTgzNmM0OTliZDg0ZWFjNzJiZTFiYzBiYiAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJD
aHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE3NCwxMiArMTc0LDExIEBAIHZvaWQgQ29udGVudExh
eWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKCkKICAgICBjYW52YXMuc2V0KG5ldyBza2lhOjpQ
bGF0Zm9ybUNhbnZhcyhkaXJ0eVJlY3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCBmYWxz
ZSkpOwogICAgIHNraWFDb250ZXh0LnNldChuZXcgUGxhdGZvcm1Db250ZXh0U2tpYShjYW52YXMu
Z2V0KCkpKTsKIAotI2lmIE9TKFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgp
CiAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3JyZWN0bHku
IFdpdGhvdXQgaXQsCiAgICAgLy8gR0RJIHJlbmRlcnMgd2l0aCB6ZXJvIGFscGhhIGFuZCB0aGUg
dGV4dCBiZWNvbWVzIGludmlzaWJsZS4KICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0aW5nIHRo
aXMgdG8gdHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCiAgICAgLy8gRklYTUU6IERvZXMgdGhpcyB0
YWtlIHVzIGRvd24gYSB2ZXJ5IHNsb3cgdGV4dCByZW5kZXJpbmcgcGF0aD8KLSAgICAvLyBGSVhN
RTogd2h5IGlzIHRoaXMgaXMgYSB3aW5kb3dzLW9ubHkgY2FsbCA/CiAgICAgc2tpYUNvbnRleHQt
PnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAppbmRleCBlYzc5YjgyYmI1
MjE3MWM5ZWY5NTA3MWFhMGQwMTY0MDM0MzliZjY1Li4yMzkyNjZkYjA5OGNiNjE4OTA1YjAyZmQy
ZDRhZmMwYzY1YTYwZGUwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250TGludXguY3BwCkBAIC02NSwxMyArNjUsMTMgQEAgc3RhdGljIGJvb2wgaXNDYW52
YXNNdWx0aUxheWVyZWQoU2tDYW52YXMqIGNhbnZhcykKICAgICByZXR1cm4gIWxheWVySXRlcmF0
b3IuZG9uZSgpOwogfQogCi1zdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50
KiBwYWludCwgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJlZCkKK3N0YXRpYyB2b2lkIGFkanVzdFRl
eHRSZW5kZXJNb2RlKFNrUGFpbnQqIHBhaW50LCBHcmFwaGljc0NvbnRleHQqIGdjKQogewogICAg
IC8vIE91ciBsYXllcnMgb25seSBoYXZlIGEgc2luZ2xlIGFscGhhIGNoYW5uZWwuIFRoaXMgbWVh
bnMgdGhhdCBzdWJwaXhlbAogICAgIC8vIHJlbmRlcmVkIHRleHQgY2Fubm90IGJlIGNvbXBvc2l0
aWVkIGNvcnJlY3RseSB3aGVuIHRoZSBsYXllciBpcwogICAgIC8vIGNvbGxhcHNlZC4gVGhlcmVm
b3JlLCBzdWJwaXhlbCB0ZXh0IGlzIGRpc2FibGVkIHdoZW4gd2UgYXJlIGRyYXdpbmcKLSAgICAv
LyBvbnRvIGEgbGF5ZXIuCi0gICAgaWYgKGlzQ2FudmFzTXVsdGlMYXllcmVkKQorICAgIC8vIG9u
dG8gYSBsYXllciBvciB3aGVuIHRoZSBjb21wb3NpdG9yIGlzIGJlaW5nIHVzZWQuCisgICAgaWYg
KGlzQ2FudmFzTXVsdGlMYXllcmVkKGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCkpIHx8
IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+aXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpKQogICAgICAg
ICBwYWludC0+c2V0TENEUmVuZGVyVGV4dChmYWxzZSk7CiB9CiAKQEAgLTEwMiwxNCArMTAyLDEz
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKIAogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1D
b250ZXh0KCktPmNhbnZhcygpOwogICAgIGludCB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRl
eHQoKS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7Ci0gICAgYm9vbCBoYXZlTXVsdGlwbGVMYXllcnMg
PSBpc0NhbnZhc011bHRpTGF5ZXJlZChjYW52YXMpOwogCiAgICAgLy8gV2UgZHJhdyB0ZXh0IHVw
IHRvIHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25jZSBmb3Igc3Ryb2tlKS4KICAgICBpZiAo
dGV4dE1vZGUgJiBjVGV4dEZpbGwpIHsKICAgICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAg
Z2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAg
ICAgICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7Ci0gICAgICAgIGFk
anVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgaGF2ZU11bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAg
YWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBnYyk7CiAgICAgICAgIHBhaW50LnNldFRleHRF
bmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOwogICAgICAgICBwYWludC5z
ZXRDb2xvcihnYy0+ZmlsbENvbG9yKCkucmdiKCkpOwogICAgICAgICBjYW52YXMtPmRyYXdQb3NU
ZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywgcGFpbnQpOwpAQCAtMTIyLDcgKzEyMSw3
IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1w
bGVGb250RGF0YSogZm9udCwKICAgICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAgZ2MtPnBs
YXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tpbmcoJnBhaW50LCAwLCAwKTsKICAg
ICAgICAgZm9udC0+cGxhdGZvcm1EYXRhKCkuc2V0dXBQYWludCgmcGFpbnQpOwotICAgICAgICBh
ZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGhhdmVNdWx0aXBsZUxheWVycyk7CisgICAgICAg
IGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgZ2MpOwogICAgICAgICBwYWludC5zZXRUZXh0
RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsKICAgICAgICAgcGFpbnQu
c2V0Q29sb3IoZ2MtPnN0cm9rZUNvbG9yKCkucmdiKCkpOwogCkBAIC02MzcsNyArNjM2LDYgQEAg
dm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4
dFJ1biYgcnVuLAogICAgIH0KIAogICAgIFRleHRSdW5XYWxrZXIgd2Fsa2VyKHJ1biwgcG9pbnQu
eCgpLCB0aGlzKTsKLSAgICBib29sIGhhdmVNdWx0aXBsZUxheWVycyA9IGlzQ2FudmFzTXVsdGlM
YXllcmVkKGNhbnZhcyk7CiAgICAgd2Fsa2VyLnNldFdvcmRTcGFjaW5nQWRqdXN0bWVudCh3b3Jk
U3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0TGV0dGVyU3BhY2luZ0FkanVzdG1lbnQobGV0dGVy
U3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0UGFkZGluZyhydW4ucGFkZGluZygpKTsKQEAgLTY0
NSwxMyArNjQzLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4
dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICB3aGlsZSAod2Fsa2VyLm5leHRTY3JpcHRS
dW4oKSkgewogICAgICAgICBpZiAoZmlsbCkgewogICAgICAgICAgICAgd2Fsa2VyLmZvbnRQbGF0
Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgmZmlsbFBhaW50KTsKLSAgICAgICAg
ICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxsUGFpbnQsIGhhdmVNdWx0aXBsZUxheWVycyk7
CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmZmlsbFBhaW50LCBnYyk7CiAgICAg
ICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0SCh3YWxrZXIuZ2x5cGhzKCksIHdhbGtlci5sZW5n
dGgoKSA8PCAxLCB3YWxrZXIueFBvc2l0aW9ucygpLCBwb2ludC55KCksIGZpbGxQYWludCk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAgICB3YWxrZXIuZm9u
dFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1cFBhaW50KCZzdHJva2VQYWludCk7Ci0g
ICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGhhdmVNdWx0aXBs
ZUxheWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQs
IGdjKTsKICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHRIKHdhbGtlci5nbHlwaHMoKSwg
d2Fsa2VyLmxlbmd0aCgpIDw8IDEsIHdhbGtlci54UG9zaXRpb25zKCksIHBvaW50LnkoKSwgc3Ry
b2tlUGFpbnQpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4
IGU4N2Q2M2UxZjI3NjVjZTM2ZTVlNWY1MjRiYWNlMmI3MzU5NmM3ZGYuLmE1MDFhMjgxMTAyYmQ0
ZTlhNTk4MmU1ZTM2ZDRiNDZhNjZlYjJjYTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAg
LTExOCw3ICsxMTgsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0Um9vdExheWVy
Q2FudmFzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIC8vIHRoZSBvbGQgb25lcy4KICAg
ICBtX3Jvb3RMYXllckNhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhzaXplLndpZHRo
KCksIHNpemUuaGVpZ2h0KCksIGZhbHNlKTsKICAgICBtX3Jvb3RMYXllclNraWFDb250ZXh0ID0g
bmV3IFBsYXRmb3JtQ29udGV4dFNraWEobV9yb290TGF5ZXJDYW52YXMuZ2V0KCkpOwotI2lmIE9T
KFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpCiAgICAgLy8gRklYTUU6IHdo
eSBpcyB0aGlzIGlzIGEgd2luZG93cy1vbmx5IGNhbGwgPwogICAgIG1fcm9vdExheWVyU2tpYUNv
bnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1
bS5jcHAKaW5kZXggN2ZmOThiOTNmZDAzYWRhMmRhNjhmYzRkMWY2ZTI5YjU3NDBmZjRiZS4uNjI1
MzAyNzRmMjI3ZTgyOTg4OGEwZTUxZTQyZjE0Zjg3ZjIzOTJkYiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNw
cApAQCAtOTYsNyArOTYsNyBAQCB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVu
dHMoKQogICAgICAgICBtX2NhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhkaXJ0eVJl
Y3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCB0cnVlKTsKICAgICAgICAgbV9za2lhQ29u
dGV4dCA9IG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKG1fY2FudmFzLmdldCgpKTsKIAotI2lmIE9T
KFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpCiAgICAgICAgIC8vIFRoaXMg
aXMgbmVlZGVkIHRvIGdldCB0ZXh0IHRvIHNob3cgdXAgY29ycmVjdGx5LiBXaXRob3V0IGl0LAog
ICAgICAgICAvLyBHREkgcmVuZGVycyB3aXRoIHplcm8gYWxwaGEgYW5kIHRoZSB0ZXh0IGJlY29t
ZXMgaW52aXNpYmxlLgogICAgICAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0aW5nIHRoaXMgdG8g
dHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IDk0MDM0MDYzMDBhN2ZlNzlmZTA0ZmUy
MWNmMTQ5NTVlNzJhMjU5ZGIuLjBmNDE3MmUzOGE5YmYwNzMzMzMxZGI1ZDM3Yzk1OGRjYjVlNDU0
ZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZl
clNraWEuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIEltYWdlQnVmZmVyOjpJbWFnZUJ1ZmZlcihjb25z
dCBJbnRTaXplJiBzaXplLCBJbWFnZUNvbG9yU3BhY2UgaW1hZ2VDb2xvclNwYWNlLCBiCiAKICAg
ICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKCZtX2RhdGEubV9jYW52YXMpOwog
ICAgIG1fY29udGV4dC5zZXQobmV3IEdyYXBoaWNzQ29udGV4dCgmbV9kYXRhLm1fcGxhdGZvcm1D
b250ZXh0KSk7Ci0jaWYgT1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkK
ICAgICBtX2NvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZl
cih0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5kZXggYWYwYzRjNDFhYzc5YWViZTJmMDg4
OTExYmUzMTEyMDg2OWMzMGM1Ny4uNTA3ODgyNmNhZTE3MmRlYjAzMDU0ZjEwMGE3NmM1MTZmOTFl
YjAxYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3Jt
Q29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmNwcApAQCAtMjA0LDcgKzIwNCw3IEBAIFNrQ29sb3IgUGxhdGZvcm1D
b250ZXh0U2tpYTo6U3RhdGU6OmFwcGx5QWxwaGEoU2tDb2xvciBjKSBjb25zdAogLy8gRGFuZ2Vy
OiBjYW52YXMgY2FuIGJlIE5VTEwuCiBQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRl
eHRTa2lhKHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAgICAgOiBtX2NhbnZhcyhjYW52
YXMpCi0jaWYgT1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkKICAgICAs
IG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpCiAjZW5kaWYKICAgICAsIG1fdXNlR1BVKGZh
bHNlKQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2V0Q2Fu
dmFzKHNraWE6OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAgICAgbV9jYW52YXMgPSBjYW52YXM7
CiB9CiAKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8IE9TKExJTlVYKQogdm9p
ZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcihib29sIHZhbHVl
KQogewogICAgIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXIgPSB2YWx1ZTsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmggYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCmluZGV4IGZj
MGZiMGIxM2UwZTVjYjg5OTcyYWUwZjQ3ODliMTkyYTI0ODFiMzYuLjhlODJlYmYyNzk2ZmNmZDMy
ZDY1MDIxMjU0NzU0ZmYwNjY2OTg1NjcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaApAQCAtNzgsNyArNzgsNyBAQCBwdWJs
aWM6CiAgICAgLy8gdG8gdGhlIGNvbnN0cnVjdG9yLgogICAgIHZvaWQgc2V0Q2FudmFzKHNraWE6
OlBsYXRmb3JtQ2FudmFzKik7CiAKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8
IE9TKExJTlVYKQogICAgIC8vIElmIGZhbHNlIHdlJ3JlIHJlbmRlcmluZyB0byBhIEdyYXBoaWNz
Q29udGV4dCBmb3IgYSB3ZWIgcGFnZSwgaWYgZmFsc2UKICAgICAvLyB3ZSdyZSBub3QgKGFzIGlz
IHRoZSBjYXNlIHdoZW4gcmVuZGVyaW5nIHRvIGEgY2FudmFzIG9iamVjdCkuCiAgICAgLy8gSWYg
dGhpcyBpcyB0cnVlIHRoZSBjb250ZW50cyBoYXZlIG5vdCBiZWVuIG1hcmtlZCB1cCB3aXRoIHRo
ZSBtYWdpYwpAQCAtMjIyLDcgKzIyMiw3IEBAIHByaXZhdGU6CiAgICAgLy8gVmFsdWVzIGFyZSB1
c2VkIGluIEltYWdlU2tpYS5jcHAKICAgICBJbnRTaXplIG1faW1hZ2VSZXNhbXBsaW5nSGludFNy
Y1NpemU7CiAgICAgRmxvYXRTaXplIG1faW1hZ2VSZXNhbXBsaW5nSGludERzdFNpemU7Ci0jaWYg
T1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKSB8fCBPUyhMSU5VWCkKICAgICBib29sIG1fZHJh
d2luZ1RvSW1hZ2VCdWZmZXI7CiAjZW5kaWYKICAgICBib29sIG1fdXNlR1BVOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66427</attachid>
            <date>2010-09-02 16:25:20 -0700</date>
            <delta_ts>2010-09-09 15:43:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45087-20100902162519.patch</filename>
            <type>text/plain</type>
            <size>11014</size>
            <attacher name="Alexey Marinichev">amarinichev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzhmOWJjZjYxZmE5MzYwMGMxYWFjODIxZTA3MGFkY2IzZjY3YTJkOS4uNTVhMmRmNTk5NDM0ZmMz
ZmRiMzc0YjA4ODQ2MGZiYjU0M2FkMjJjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wOS0wMSAgQWxl
eGV5IE1hcmluaWNoZXYgIDxhbWFyaW5pY2hldkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEaXNhYmxlIHN1
YnBpeGVsIHJlbmRlcmluZyBpbiBMaW51eCB3aGVuIEdQVSBjb21wb3NpdG9yIGlzIGFjdGl2ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwODcKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFRleHRSZW5kZXJNb2RlKTogQWRkZWQgYSBjaGVjayB0byBzZWUgaWYgdGhlIGNvbXBvc2l0
b3IgaXMgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFJvb3RMYXllckNhbnZhc1NpemUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lhKTogTWFk
ZSBzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlciBhbmQKKyAgICAgICAgaXNEcmF3aW5nVG9JbWFnZUJ1
ZmZlciBhdmFpbGFibGUgdG8gTGludXguCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tp
YS9QbGF0Zm9ybUNvbnRleHRTa2lhLmg6CisKIDIwMTAtMDgtMjcgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVG9ueSBDaGFuZy4K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExh
eWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggOTc0OTMzZDQ1Yjc3OWNjOTM5NDMxOWNjNDZkM2Yw
NmRjZTkxYjZiZi4uZTRkMzdlMmMyZTUyZjNjYWVlNjA5ZGE5ZjY2NWY0MzMxMThmODc1MSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250ZW50TGF5ZXJD
aHJvbWl1bS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Db250
ZW50TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE3NCwxNCArMTc0LDkgQEAgdm9pZCBDb250ZW50TGF5
ZXJDaHJvbWl1bTo6dXBkYXRlQ29udGVudHMoKQogICAgIGNhbnZhcy5zZXQobmV3IHNraWE6OlBs
YXRmb3JtQ2FudmFzKGRpcnR5UmVjdC53aWR0aCgpLCBkaXJ0eVJlY3QuaGVpZ2h0KCksIGZhbHNl
KSk7CiAgICAgc2tpYUNvbnRleHQuc2V0KG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKGNhbnZhcy5n
ZXQoKSkpOwogCi0jaWYgT1MoV0lORE9XUykKLSAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBnZXQg
dGV4dCB0byBzaG93IHVwIGNvcnJlY3RseS4gV2l0aG91dCBpdCwKLSAgICAvLyBHREkgcmVuZGVy
cyB3aXRoIHplcm8gYWxwaGEgYW5kIHRoZSB0ZXh0IGJlY29tZXMgaW52aXNpYmxlLgotICAgIC8v
IFVuZm9ydHVuYXRlbHksIHNldHRpbmcgdGhpcyB0byB0cnVlIGRpc2FibGVzIGNsZWFydHlwZS4K
KyAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBnZXQgdGV4dCB0byBzaG93IHVwIGNvcnJlY3RseS4K
ICAgICAvLyBGSVhNRTogRG9lcyB0aGlzIHRha2UgdXMgZG93biBhIHZlcnkgc2xvdyB0ZXh0IHJl
bmRlcmluZyBwYXRoPwotICAgIC8vIEZJWE1FOiB3aHkgaXMgdGhpcyBpcyBhIHdpbmRvd3Mtb25s
eSBjYWxsID8KICAgICBza2lhQ29udGV4dC0+c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7
Ci0jZW5kaWYKIAogICAgIGdyYXBoaWNzQ29udGV4dC5zZXQobmV3IEdyYXBoaWNzQ29udGV4dChy
ZWludGVycHJldF9jYXN0PFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kj4oc2tpYUNvbnRleHQuZ2V0
KCkpKSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udExpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExp
bnV4LmNwcAppbmRleCBlYzc5YjgyYmI1MjE3MWM5ZWY5NTA3MWFhMGQwMTY0MDM0MzliZjY1Li4y
MzkyNjZkYjA5OGNiNjE4OTA1YjAyZmQyZDRhZmMwYzY1YTYwZGUwIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCkBAIC02NSwxMyArNjUs
MTMgQEAgc3RhdGljIGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQoU2tDYW52YXMqIGNhbnZhcykK
ICAgICByZXR1cm4gIWxheWVySXRlcmF0b3IuZG9uZSgpOwogfQogCi1zdGF0aWMgdm9pZCBhZGp1
c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50KiBwYWludCwgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJl
ZCkKK3N0YXRpYyB2b2lkIGFkanVzdFRleHRSZW5kZXJNb2RlKFNrUGFpbnQqIHBhaW50LCBHcmFw
aGljc0NvbnRleHQqIGdjKQogewogICAgIC8vIE91ciBsYXllcnMgb25seSBoYXZlIGEgc2luZ2xl
IGFscGhhIGNoYW5uZWwuIFRoaXMgbWVhbnMgdGhhdCBzdWJwaXhlbAogICAgIC8vIHJlbmRlcmVk
IHRleHQgY2Fubm90IGJlIGNvbXBvc2l0aWVkIGNvcnJlY3RseSB3aGVuIHRoZSBsYXllciBpcwog
ICAgIC8vIGNvbGxhcHNlZC4gVGhlcmVmb3JlLCBzdWJwaXhlbCB0ZXh0IGlzIGRpc2FibGVkIHdo
ZW4gd2UgYXJlIGRyYXdpbmcKLSAgICAvLyBvbnRvIGEgbGF5ZXIuCi0gICAgaWYgKGlzQ2FudmFz
TXVsdGlMYXllcmVkKQorICAgIC8vIG9udG8gYSBsYXllciBvciB3aGVuIHRoZSBjb21wb3NpdG9y
IGlzIGJlaW5nIHVzZWQuCisgICAgaWYgKGlzQ2FudmFzTXVsdGlMYXllcmVkKGdjLT5wbGF0Zm9y
bUNvbnRleHQoKS0+Y2FudmFzKCkpIHx8IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+aXNEcmF3aW5n
VG9JbWFnZUJ1ZmZlcigpKQogICAgICAgICBwYWludC0+c2V0TENEUmVuZGVyVGV4dChmYWxzZSk7
CiB9CiAKQEAgLTEwMiwxNCArMTAyLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwKIAogICAgIFNrQ2FudmFz
KiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpOwogICAgIGludCB0ZXh0
TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7Ci0gICAg
Ym9vbCBoYXZlTXVsdGlwbGVMYXllcnMgPSBpc0NhbnZhc011bHRpTGF5ZXJlZChjYW52YXMpOwog
CiAgICAgLy8gV2UgZHJhdyB0ZXh0IHVwIHRvIHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25j
ZSBmb3Igc3Ryb2tlKS4KICAgICBpZiAodGV4dE1vZGUgJiBjVGV4dEZpbGwpIHsKICAgICAgICAg
U2tQYWludCBwYWludDsKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50
Rm9yRmlsbGluZygmcGFpbnQpOwogICAgICAgICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBh
aW50KCZwYWludCk7Ci0gICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgaGF2ZU11
bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBnYyk7
CiAgICAgICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5cGhJRF9UZXh0RW5j
b2RpbmcpOwogICAgICAgICBwYWludC5zZXRDb2xvcihnYy0+ZmlsbENvbG9yKCkucmdiKCkpOwog
ICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0KGdseXBocywgbnVtR2x5cGhzIDw8IDEsIHBvcywg
cGFpbnQpOwpAQCAtMTIyLDcgKzEyMSw3IEBAIHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGlj
c0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwKICAgICAgICAgU2tQYWlu
dCBwYWludDsKICAgICAgICAgZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ry
b2tpbmcoJnBhaW50LCAwLCAwKTsKICAgICAgICAgZm9udC0+cGxhdGZvcm1EYXRhKCkuc2V0dXBQ
YWludCgmcGFpbnQpOwotICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGhhdmVN
dWx0aXBsZUxheWVycyk7CisgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZwYWludCwgZ2Mp
OwogICAgICAgICBwYWludC5zZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVu
Y29kaW5nKTsKICAgICAgICAgcGFpbnQuc2V0Q29sb3IoZ2MtPnN0cm9rZUNvbG9yKCkucmdiKCkp
OwogCkBAIC02MzcsNyArNjM2LDYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhp
Y3NDb250ZXh0KiBnYywgY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIH0KIAogICAgIFRleHRSdW5X
YWxrZXIgd2Fsa2VyKHJ1biwgcG9pbnQueCgpLCB0aGlzKTsKLSAgICBib29sIGhhdmVNdWx0aXBs
ZUxheWVycyA9IGlzQ2FudmFzTXVsdGlMYXllcmVkKGNhbnZhcyk7CiAgICAgd2Fsa2VyLnNldFdv
cmRTcGFjaW5nQWRqdXN0bWVudCh3b3JkU3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0TGV0dGVy
U3BhY2luZ0FkanVzdG1lbnQobGV0dGVyU3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0UGFkZGlu
ZyhydW4ucGFkZGluZygpKTsKQEAgLTY0NSwxMyArNjQzLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0Nv
bXBsZXhUZXh0KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICB3
aGlsZSAod2Fsa2VyLm5leHRTY3JpcHRSdW4oKSkgewogICAgICAgICBpZiAoZmlsbCkgewogICAg
ICAgICAgICAgd2Fsa2VyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWlu
dCgmZmlsbFBhaW50KTsKLSAgICAgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxsUGFp
bnQsIGhhdmVNdWx0aXBsZUxheWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9k
ZSgmZmlsbFBhaW50LCBnYyk7CiAgICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0SCh3YWxr
ZXIuZ2x5cGhzKCksIHdhbGtlci5sZW5ndGgoKSA8PCAxLCB3YWxrZXIueFBvc2l0aW9ucygpLCBw
b2ludC55KCksIGZpbGxQYWludCk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7
CiAgICAgICAgICAgICB3YWxrZXIuZm9udFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1
cFBhaW50KCZzdHJva2VQYWludCk7Ci0gICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgm
c3Ryb2tlUGFpbnQsIGhhdmVNdWx0aXBsZUxheWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0
UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGdjKTsKICAgICAgICAgICAgIGNhbnZhcy0+ZHJhd1Bv
c1RleHRIKHdhbGtlci5nbHlwaHMoKSwgd2Fsa2VyLmxlbmd0aCgpIDw8IDEsIHdhbGtlci54UG9z
aXRpb25zKCksIHBvaW50LnkoKSwgc3Ryb2tlUGFpbnQpOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJl
bmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGU4N2Q2M2UxZjI3NjVjZTM2ZTVlNWY1MjRiYWNlMmI3
MzU5NmM3ZGYuLjI2NWY0ODBhNWIzZGY0ZDEyNDc5ZmQzYzIzYTAyNGM4ODAxYjQ1N2UgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAKQEAgLTExOCwxMCArMTE4LDcgQEAgdm9pZCBMYXllclJlbmRl
cmVyQ2hyb21pdW06OnNldFJvb3RMYXllckNhbnZhc1NpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkK
ICAgICAvLyB0aGUgb2xkIG9uZXMuCiAgICAgbV9yb290TGF5ZXJDYW52YXMgPSBuZXcgc2tpYTo6
UGxhdGZvcm1DYW52YXMoc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpLCBmYWxzZSk7CiAgICAg
bV9yb290TGF5ZXJTa2lhQ29udGV4dCA9IG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKG1fcm9vdExh
eWVyQ2FudmFzLmdldCgpKTsKLSNpZiBPUyhXSU5ET1dTKQotICAgIC8vIEZJWE1FOiB3aHkgaXMg
dGhpcyBpcyBhIHdpbmRvd3Mtb25seSBjYWxsID8KICAgICBtX3Jvb3RMYXllclNraWFDb250ZXh0
LT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKLSNlbmRpZgogICAgIG1fcm9vdExheWVy
R3JhcGhpY3NDb250ZXh0ID0gbmV3IEdyYXBoaWNzQ29udGV4dChyZWludGVycHJldF9jYXN0PFBs
YXRmb3JtR3JhcGhpY3NDb250ZXh0Kj4obV9yb290TGF5ZXJTa2lhQ29udGV4dC5nZXQoKSkpOwog
I2VsaWYgUExBVEZPUk0oQ0cpCiAgICAgLy8gUmVsZWFzZSB0aGUgcHJldmlvdXMgQ0dCaXRtYXBD
b250ZXh0IGJlZm9yZSByZWFsbG9jYXRpbmcgdGhlIGJhY2tpbmcgc3RvcmUgYXMgYSBwcmVjYXV0
aW9uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRl
b0xheWVyQ2hyb21pdW0uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9W
aWRlb0xheWVyQ2hyb21pdW0uY3BwCmluZGV4IDdmZjk4YjkzZmQwM2FkYTJkYTY4ZmM0ZDFmNmUy
OWI1NzQwZmY0YmUuLmMwZGEyODU2N2IzZmU5YzFkZGU2OTE3MjI2OGNmNjVkNzI5MjQyN2YgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNo
cm9taXVtLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVv
TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTk2LDE0ICs5Niw5IEBAIHZvaWQgVmlkZW9MYXllckNocm9t
aXVtOjp1cGRhdGVDb250ZW50cygpCiAgICAgICAgIG1fY2FudmFzID0gbmV3IHNraWE6OlBsYXRm
b3JtQ2FudmFzKGRpcnR5UmVjdC53aWR0aCgpLCBkaXJ0eVJlY3QuaGVpZ2h0KCksIHRydWUpOwog
ICAgICAgICBtX3NraWFDb250ZXh0ID0gbmV3IFBsYXRmb3JtQ29udGV4dFNraWEobV9jYW52YXMu
Z2V0KCkpOwogCi0jaWYgT1MoV0lORE9XUykKLSAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8g
Z2V0IHRleHQgdG8gc2hvdyB1cCBjb3JyZWN0bHkuIFdpdGhvdXQgaXQsCi0gICAgICAgIC8vIEdE
SSByZW5kZXJzIHdpdGggemVybyBhbHBoYSBhbmQgdGhlIHRleHQgYmVjb21lcyBpbnZpc2libGUu
Ci0gICAgICAgIC8vIFVuZm9ydHVuYXRlbHksIHNldHRpbmcgdGhpcyB0byB0cnVlIGRpc2FibGVz
IGNsZWFydHlwZS4KKyAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IHRleHQgdG8gc2hv
dyB1cCBjb3JyZWN0bHkuCiAgICAgICAgIC8vIEZJWE1FOiBEb2VzIHRoaXMgdGFrZSB1cyBkb3du
IGEgdmVyeSBzbG93IHRleHQgcmVuZGVyaW5nIHBhdGg/Ci0gICAgICAgIC8vIEZJWE1FOiBXaHkg
aXMgdGhpcyBpcyBhIHdpbmRvd3Mtb25seSBjYWxsPwogICAgICAgICBtX3NraWFDb250ZXh0LT5z
ZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKLSNlbmRpZgogICAgICAgICBtX2dyYXBoaWNz
Q29udGV4dCA9IG5ldyBHcmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCo+KG1fc2tpYUNvbnRleHQuZ2V0KCkpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKaW5kZXgg
OTQwMzQwNjMwMGE3ZmU3OWZlMDRmZTIxY2YxNDk1NWU3MmEyNTlkYi4uMGY0MTcyZTM4YTliZjA3
MzMzMzFkYjVkMzdjOTU4ZGNiNWU0NTRkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgSW1hZ2VC
dWZmZXI6OkltYWdlQnVmZmVyKGNvbnN0IEludFNpemUmIHNpemUsIEltYWdlQ29sb3JTcGFjZSBp
bWFnZUNvbG9yU3BhY2UsIGIKIAogICAgIG1fZGF0YS5tX3BsYXRmb3JtQ29udGV4dC5zZXRDYW52
YXMoJm1fZGF0YS5tX2NhbnZhcyk7CiAgICAgbV9jb250ZXh0LnNldChuZXcgR3JhcGhpY3NDb250
ZXh0KCZtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQpKTsKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9T
KFdJTkRPV1MpIHx8IE9TKExJTlVYKQogICAgIG1fY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCkt
PnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcAppbmRl
eCBhZjBjNGM0MWFjNzlhZWJlMmYwODg5MTFiZTMxMTIwODY5YzMwYzU3Li5jZGE3OTAyNjhiZWRh
ZTI4MDNiMjFlOTAyZGRlMzQyYWExZmMxODdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCkBAIC0yMDQsNyArMjA0
LDcgQEAgU2tDb2xvciBQbGF0Zm9ybUNvbnRleHRTa2lhOjpTdGF0ZTo6YXBwbHlBbHBoYShTa0Nv
bG9yIGMpIGNvbnN0CiAvLyBEYW5nZXI6IGNhbnZhcyBjYW4gYmUgTlVMTC4KIFBsYXRmb3JtQ29u
dGV4dFNraWE6OlBsYXRmb3JtQ29udGV4dFNraWEoc2tpYTo6UGxhdGZvcm1DYW52YXMqIGNhbnZh
cykKICAgICA6IG1fY2FudmFzKGNhbnZhcykKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKExJTlVY
KSB8fCBPUyhXSU5ET1dTKQogICAgICwgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcihmYWxzZSkKICNl
bmRpZgogICAgICwgbV91c2VHUFUoZmFsc2UpCkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBQbGF0
Zm9ybUNvbnRleHRTa2lhOjpzZXRDYW52YXMoc2tpYTo6UGxhdGZvcm1DYW52YXMqIGNhbnZhcykK
ICAgICBtX2NhbnZhcyA9IGNhbnZhczsKIH0KIAotI2lmIE9TKFdJTkRPV1MpCisjaWYgT1MoTElO
VVgpIHx8IE9TKFdJTkRPV1MpCiB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldERyYXdpbmdU
b0ltYWdlQnVmZmVyKGJvb2wgdmFsdWUpCiB7CiAgICAgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlciA9
IHZhbHVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRm
b3JtQ29udGV4dFNraWEuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9y
bUNvbnRleHRTa2lhLmgKaW5kZXggZmMwZmIwYjEzZTBlNWNiODk5NzJhZTBmNDc4OWIxOTJhMjQ4
MWIzNi4uOThmNTQwNGI4ZTc1MzM0ZGE0ODFkYjM1NTM0NzU0NGIzYTAwZGJmNiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaAor
KysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5o
CkBAIC03OCw3ICs3OCw3IEBAIHB1YmxpYzoKICAgICAvLyB0byB0aGUgY29uc3RydWN0b3IuCiAg
ICAgdm9pZCBzZXRDYW52YXMoc2tpYTo6UGxhdGZvcm1DYW52YXMqKTsKIAotI2lmIE9TKFdJTkRP
V1MpCisjaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCiAgICAgLy8gSWYgZmFsc2Ugd2UncmUg
cmVuZGVyaW5nIHRvIGEgR3JhcGhpY3NDb250ZXh0IGZvciBhIHdlYiBwYWdlLCBpZiBmYWxzZQog
ICAgIC8vIHdlJ3JlIG5vdCAoYXMgaXMgdGhlIGNhc2Ugd2hlbiByZW5kZXJpbmcgdG8gYSBjYW52
YXMgb2JqZWN0KS4KICAgICAvLyBJZiB0aGlzIGlzIHRydWUgdGhlIGNvbnRlbnRzIGhhdmUgbm90
IGJlZW4gbWFya2VkIHVwIHdpdGggdGhlIG1hZ2ljCkBAIC0yMjIsNyArMjIyLDcgQEAgcHJpdmF0
ZToKICAgICAvLyBWYWx1ZXMgYXJlIHVzZWQgaW4gSW1hZ2VTa2lhLmNwcAogICAgIEludFNpemUg
bV9pbWFnZVJlc2FtcGxpbmdIaW50U3JjU2l6ZTsKICAgICBGbG9hdFNpemUgbV9pbWFnZVJlc2Ft
cGxpbmdIaW50RHN0U2l6ZTsKLSNpZiBPUyhXSU5ET1dTKQorI2lmIE9TKFdJTkRPV1MpIHx8IE9T
KExJTlVYKQogICAgIGJvb2wgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcjsKICNlbmRpZgogICAgIGJv
b2wgbV91c2VHUFU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67106</attachid>
            <date>2010-09-09 15:43:21 -0700</date>
            <delta_ts>2010-09-09 16:22:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45087-20100909154320.patch</filename>
            <type>text/plain</type>
            <size>16305</size>
            <attacher name="Alexey Marinichev">amarinichev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTA3NDkwMzVmZGMxNmEyNWYxMTVlYTJmNTIyYjg3YTQxODQzMDc1OC4uODgzZTM1MGU3NzMxMjQx
ZGM3NDdiYzJkMDFkZDUwNWY0NDYzNTA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wOS0wOSAgQWxl
eGV5IE1hcmluaWNoZXYgIDxhbWFyaW5pY2hldkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEaXNhYmxlIHN1
YnBpeGVsIHJlbmRlcmluZyBpbiBMaW51eCB3aGVuIEdQVSBjb21wb3NpdG9yIGlzIGFjdGl2ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwODcKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFRleHRSZW5kZXJNb2RlKTogQWRkZWQgYSBjaGVjayB0byBzZWUgaWYgdGhlIGNvbXBvc2l0
b3IgaXMgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFJvb3RMYXllckNhbnZhc1NpemUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNsaXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6CisgICAgICAgIE1hZGUgc2V0RHJhd2luZ1Rv
SW1hZ2VCdWZmZXIgYW5kIGlzRHJhd2luZ1RvSW1hZ2VCdWZmZXIgYXZhaWxhYmxlIHRvCisgICAg
ICAgIExpbnV4OyByZW1vdmVkIGFsbCAjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpLgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6U3RhdGU6OlN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OlBsYXRmb3JtQ29udGV4dFNraWEpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6aXNEcmF3aW5nVG9JbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpzYXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OmJlZ2luTGF5ZXJDbGlwcGVkVG9J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpyZXN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OmFwcGx5Q2xpcEZyb21JbWFn
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
Lmg6CisKIDIwMTAtMDktMDcgIEphbiBFIEhhbnNzZW4gIDxqaGFuc3NlbkBzZW5jaGEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IDk3NDkzM2Q0NWI3NzljYzkzOTQzMTljYzQ2ZDNmMDZkY2U5MWI2YmYuLmU0ZDM3ZTJj
MmU1MmYzY2FlZTYwOWRhOWY2NjVmNDMzMTE4Zjg3NTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CkBAIC0xNzQsMTQgKzE3NCw5IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNv
bnRlbnRzKCkKICAgICBjYW52YXMuc2V0KG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhkaXJ0eVJl
Y3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCBmYWxzZSkpOwogICAgIHNraWFDb250ZXh0
LnNldChuZXcgUGxhdGZvcm1Db250ZXh0U2tpYShjYW52YXMuZ2V0KCkpKTsKIAotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3Jy
ZWN0bHkuIFdpdGhvdXQgaXQsCi0gICAgLy8gR0RJIHJlbmRlcnMgd2l0aCB6ZXJvIGFscGhhIGFu
ZCB0aGUgdGV4dCBiZWNvbWVzIGludmlzaWJsZS4KLSAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0
aW5nIHRoaXMgdG8gdHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCisgICAgLy8gVGhpcyBpcyBuZWVk
ZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3JyZWN0bHkuCiAgICAgLy8gRklYTUU6IERvZXMg
dGhpcyB0YWtlIHVzIGRvd24gYSB2ZXJ5IHNsb3cgdGV4dCByZW5kZXJpbmcgcGF0aD8KLSAgICAv
LyBGSVhNRTogd2h5IGlzIHRoaXMgaXMgYSB3aW5kb3dzLW9ubHkgY2FsbCA/CiAgICAgc2tpYUNv
bnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwotI2VuZGlmCiAKICAgICBncmFw
aGljc0NvbnRleHQuc2V0KG5ldyBHcmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dCo+KHNraWFDb250ZXh0LmdldCgpKSkpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKaW5kZXggYWIzMDQ1
ZTQyMjM4MmYxOTJjNThjOTgyNjFlMzY5Y2FmYWU3ZWI5My4uNGI1ZTYxNDdkMjk5ODJlMzZkNzhi
ZGFmZDM0ZTc3N2M3ZjZiZWYxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtNjUsMTMgKzY1LDEzIEBAIHN0YXRpYyBib29sIGlz
Q2FudmFzTXVsdGlMYXllcmVkKFNrQ2FudmFzKiBjYW52YXMpCiAgICAgcmV0dXJuICFsYXllckl0
ZXJhdG9yLmRvbmUoKTsKIH0KIAotc3RhdGljIHZvaWQgYWRqdXN0VGV4dFJlbmRlck1vZGUoU2tQ
YWludCogcGFpbnQsIGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQpCitzdGF0aWMgdm9pZCBhZGp1
c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50KiBwYWludCwgUGxhdGZvcm1HcmFwaGljc0NvbnRleHQq
IHBnYykKIHsKICAgICAvLyBPdXIgbGF5ZXJzIG9ubHkgaGF2ZSBhIHNpbmdsZSBhbHBoYSBjaGFu
bmVsLiBUaGlzIG1lYW5zIHRoYXQgc3VicGl4ZWwKICAgICAvLyByZW5kZXJlZCB0ZXh0IGNhbm5v
dCBiZSBjb21wb3NpdGllZCBjb3JyZWN0bHkgd2hlbiB0aGUgbGF5ZXIgaXMKICAgICAvLyBjb2xs
YXBzZWQuIFRoZXJlZm9yZSwgc3VicGl4ZWwgdGV4dCBpcyBkaXNhYmxlZCB3aGVuIHdlIGFyZSBk
cmF3aW5nCi0gICAgLy8gb250byBhIGxheWVyLgotICAgIGlmIChpc0NhbnZhc011bHRpTGF5ZXJl
ZCkKKyAgICAvLyBvbnRvIGEgbGF5ZXIgb3Igd2hlbiB0aGUgY29tcG9zaXRvciBpcyBiZWluZyB1
c2VkLgorICAgIGlmIChpc0NhbnZhc011bHRpTGF5ZXJlZChwZ2MtPmNhbnZhcygpKSB8fCBwZ2Mt
PmlzRHJhd2luZ1RvSW1hZ2VCdWZmZXIoKSkKICAgICAgICAgcGFpbnQtPnNldExDRFJlbmRlclRl
eHQoZmFsc2UpOwogfQogCkBAIC0xMDQsMTQgKzEwNCwxMyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlw
aHMoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAKICAg
ICBTa0NhbnZhcyogY2FudmFzID0gZ2MtPnBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMoKTsKICAg
ICBpbnQgdGV4dE1vZGUgPSBnYy0+cGxhdGZvcm1Db250ZXh0KCktPmdldFRleHREcmF3aW5nTW9k
ZSgpOwotICAgIGJvb2wgaGF2ZU11bHRpcGxlTGF5ZXJzID0gaXNDYW52YXNNdWx0aUxheWVyZWQo
Y2FudmFzKTsKIAogICAgIC8vIFdlIGRyYXcgdGV4dCB1cCB0byB0d28gdGltZXMgKG9uY2UgZm9y
IGZpbGwsIG9uY2UgZm9yIHN0cm9rZSkuCiAgICAgaWYgKHRleHRNb2RlICYgY1RleHRGaWxsKSB7
CiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7CiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+
c2V0dXBQYWludEZvckZpbGxpbmcoJnBhaW50KTsKICAgICAgICAgZm9udC0+cGxhdGZvcm1EYXRh
KCkuc2V0dXBQYWludCgmcGFpbnQpOwotICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFp
bnQsIGhhdmVNdWx0aXBsZUxheWVycyk7CisgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZw
YWludCwgZ2MtPnBsYXRmb3JtQ29udGV4dCgpKTsKICAgICAgICAgcGFpbnQuc2V0VGV4dEVuY29k
aW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNvZGluZyk7CiAgICAgICAgIHBhaW50LnNldENv
bG9yKGdjLT5maWxsQ29sb3IoKS5yZ2IoKSk7CiAgICAgICAgIGNhbnZhcy0+ZHJhd1Bvc1RleHQo
Z2x5cGhzLCBudW1HbHlwaHMgPDwgMSwgcG9zLCBwYWludCk7CkBAIC0xMjQsNyArMTIzLDcgQEAg
dm9pZCBGb250OjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFNpbXBsZUZv
bnREYXRhKiBmb250LAogICAgICAgICBTa1BhaW50IHBhaW50OwogICAgICAgICBnYy0+cGxhdGZv
cm1Db250ZXh0KCktPnNldHVwUGFpbnRGb3JTdHJva2luZygmcGFpbnQsIDAsIDApOwogICAgICAg
ICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7Ci0gICAgICAgIGFkanVz
dFRleHRSZW5kZXJNb2RlKCZwYWludCwgaGF2ZU11bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAgYWRq
dXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwogICAgICAg
ICBwYWludC5zZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsK
ICAgICAgICAgcGFpbnQuc2V0Q29sb3IoZ2MtPnN0cm9rZUNvbG9yKCkucmdiKCkpOwogCkBAIC02
NDYsNyArNjQ1LDYgQEAgdm9pZCBGb250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0
KiBnYywgY29uc3QgVGV4dFJ1biYgcnVuLAogICAgIH0KIAogICAgIFRleHRSdW5XYWxrZXIgd2Fs
a2VyKHJ1biwgcG9pbnQueCgpLCB0aGlzKTsKLSAgICBib29sIGhhdmVNdWx0aXBsZUxheWVycyA9
IGlzQ2FudmFzTXVsdGlMYXllcmVkKGNhbnZhcyk7CiAgICAgd2Fsa2VyLnNldFdvcmRTcGFjaW5n
QWRqdXN0bWVudCh3b3JkU3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0TGV0dGVyU3BhY2luZ0Fk
anVzdG1lbnQobGV0dGVyU3BhY2luZygpKTsKICAgICB3YWxrZXIuc2V0UGFkZGluZyhydW4ucGFk
ZGluZygpKTsKQEAgLTY1NCwxMyArNjUyLDEzIEBAIHZvaWQgRm9udDo6ZHJhd0NvbXBsZXhUZXh0
KEdyYXBoaWNzQ29udGV4dCogZ2MsIGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICB3aGlsZSAod2Fs
a2VyLm5leHRTY3JpcHRSdW4oKSkgewogICAgICAgICBpZiAoZmlsbCkgewogICAgICAgICAgICAg
d2Fsa2VyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRSdW4oKS0+c2V0dXBQYWludCgmZmlsbFBh
aW50KTsKLSAgICAgICAgICAgIGFkanVzdFRleHRSZW5kZXJNb2RlKCZmaWxsUGFpbnQsIGhhdmVN
dWx0aXBsZUxheWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmZmlsbFBh
aW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwogICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9z
VGV4dEgod2Fsa2VyLmdseXBocygpLCB3YWxrZXIubGVuZ3RoKCkgPDwgMSwgd2Fsa2VyLnhQb3Np
dGlvbnMoKSwgcG9pbnQueSgpLCBmaWxsUGFpbnQpOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KHN0cm9rZSkgewogICAgICAgICAgICAgd2Fsa2VyLmZvbnRQbGF0Zm9ybURhdGFGb3JTY3JpcHRS
dW4oKS0+c2V0dXBQYWludCgmc3Ryb2tlUGFpbnQpOwotICAgICAgICAgICAgYWRqdXN0VGV4dFJl
bmRlck1vZGUoJnN0cm9rZVBhaW50LCBoYXZlTXVsdGlwbGVMYXllcnMpOworICAgICAgICAgICAg
YWRqdXN0VGV4dFJlbmRlck1vZGUoJnN0cm9rZVBhaW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkp
OwogICAgICAgICAgICAgY2FudmFzLT5kcmF3UG9zVGV4dEgod2Fsa2VyLmdseXBocygpLCB3YWxr
ZXIubGVuZ3RoKCkgPDwgMSwgd2Fsa2VyLnhQb3NpdGlvbnMoKSwgcG9pbnQueSgpLCBzdHJva2VQ
YWludCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHAKaW5kZXggNzg5
Mjk4YWVkOGNlOTc2MzAyMGNmZTBhZTIyNDhlMzczM2RmMmM4Yy4uNDcwODMxMDM0OTc5N2Y5ODdi
MjEwYzk4ZDA4NjQ3ZDNmOTE1ZWIzMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVyQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMTI1
LDEwICsxMjUsNyBAQCB2b2lkIExheWVyUmVuZGVyZXJDaHJvbWl1bTo6c2V0Um9vdExheWVyQ2Fu
dmFzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogICAgIC8vIHRoZSBvbGQgb25lcy4KICAgICBt
X3Jvb3RMYXllckNhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhzaXplLndpZHRoKCks
IHNpemUuaGVpZ2h0KCksIGZhbHNlKTsKICAgICBtX3Jvb3RMYXllclNraWFDb250ZXh0ID0gbmV3
IFBsYXRmb3JtQ29udGV4dFNraWEobV9yb290TGF5ZXJDYW52YXMuZ2V0KCkpOwotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgLy8gRklYTUU6IHdoeSBpcyB0aGlzIGlzIGEgd2luZG93cy1vbmx5IGNhbGwg
PwogICAgIG1fcm9vdExheWVyU2tpYUNvbnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRy
dWUpOwotI2VuZGlmCiAgICAgbV9yb290TGF5ZXJHcmFwaGljc0NvbnRleHQgPSBuZXcgR3JhcGhp
Y3NDb250ZXh0KHJlaW50ZXJwcmV0X2Nhc3Q8UGxhdGZvcm1HcmFwaGljc0NvbnRleHQqPihtX3Jv
b3RMYXllclNraWFDb250ZXh0LmdldCgpKSk7CiAjZWxpZiBQTEFURk9STShDRykKICAgICAvLyBS
ZWxlYXNlIHRoZSBwcmV2aW91cyBDR0JpdG1hcENvbnRleHQgYmVmb3JlIHJlYWxsb2NhdGluZyB0
aGUgYmFja2luZyBzdG9yZSBhcyBhIHByZWNhdXRpb24uCmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXgg
N2ZmOThiOTNmZDAzYWRhMmRhNjhmYzRkMWY2ZTI5YjU3NDBmZjRiZS4uYzBkYTI4NTY3YjNmZTlj
MWRkZTY5MTcyMjY4Y2Y2NWQ3MjkyNDI3ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hyb21pdW0uY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNocm9taXVtLmNwcApAQCAtOTYsMTQg
Kzk2LDkgQEAgdm9pZCBWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRzKCkKICAgICAg
ICAgbV9jYW52YXMgPSBuZXcgc2tpYTo6UGxhdGZvcm1DYW52YXMoZGlydHlSZWN0LndpZHRoKCks
IGRpcnR5UmVjdC5oZWlnaHQoKSwgdHJ1ZSk7CiAgICAgICAgIG1fc2tpYUNvbnRleHQgPSBuZXcg
UGxhdGZvcm1Db250ZXh0U2tpYShtX2NhbnZhcy5nZXQoKSk7CiAKLSNpZiBPUyhXSU5ET1dTKQot
ICAgICAgICAvLyBUaGlzIGlzIG5lZWRlZCB0byBnZXQgdGV4dCB0byBzaG93IHVwIGNvcnJlY3Rs
eS4gV2l0aG91dCBpdCwKLSAgICAgICAgLy8gR0RJIHJlbmRlcnMgd2l0aCB6ZXJvIGFscGhhIGFu
ZCB0aGUgdGV4dCBiZWNvbWVzIGludmlzaWJsZS4KLSAgICAgICAgLy8gVW5mb3J0dW5hdGVseSwg
c2V0dGluZyB0aGlzIHRvIHRydWUgZGlzYWJsZXMgY2xlYXJ0eXBlLgorICAgICAgICAvLyBUaGlz
IGlzIG5lZWRlZCB0byBnZXQgdGV4dCB0byBzaG93IHVwIGNvcnJlY3RseS4KICAgICAgICAgLy8g
RklYTUU6IERvZXMgdGhpcyB0YWtlIHVzIGRvd24gYSB2ZXJ5IHNsb3cgdGV4dCByZW5kZXJpbmcg
cGF0aD8KLSAgICAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIGlzIGEgd2luZG93cy1vbmx5IGNh
bGw/CiAgICAgICAgIG1fc2tpYUNvbnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUp
OwotI2VuZGlmCiAgICAgICAgIG1fZ3JhcGhpY3NDb250ZXh0ID0gbmV3IEdyYXBoaWNzQ29udGV4
dChyZWludGVycHJldF9jYXN0PFBsYXRmb3JtR3JhcGhpY3NDb250ZXh0Kj4obV9za2lhQ29udGV4
dC5nZXQoKSkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvSW1hZ2VCdWZmZXJTa2lhLmNwcAppbmRleCBlMGJkYTAzZmJlM2IzZDQ3MmZkMDYzZWJlMjJh
MzIwZGVlY2ZiOTZiLi4xMzg0Y2ZjOTI1N2ViYzU3ZWM0OTk4MmU1MjI2NDM1M2M3ZmE2NTQ3IDEw
MDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lh
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lh
LmNwcApAQCAtNjksOSArNjksNyBAQCBJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIoY29uc3QgSW50
U2l6ZSYgc2l6ZSwgSW1hZ2VDb2xvclNwYWNlIGltYWdlQ29sb3JTcGFjZSwgYgogCiAgICAgbV9k
YXRhLm1fcGxhdGZvcm1Db250ZXh0LnNldENhbnZhcygmbV9kYXRhLm1fY2FudmFzKTsKICAgICBt
X2NvbnRleHQuc2V0KG5ldyBHcmFwaGljc0NvbnRleHQoJm1fZGF0YS5tX3BsYXRmb3JtQ29udGV4
dCkpOwotI2lmIE9TKFdJTkRPV1MpCiAgICAgbV9jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKS0+
c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7Ci0jZW5kaWYKIAogICAgIC8vIE1ha2UgdGhl
IGJhY2tncm91bmQgdHJhbnNwYXJlbnQuIEl0IHdvdWxkIGJlIG5pY2UgaWYgdGhpcyB3YXNuJ3QK
ICAgICAvLyByZXF1aXJlZCwgYnV0IHRoZSBjYW52YXMgaXMgY3VycmVudGx5IGZpbGxlZCB3aXRo
IHRoZSBtYWdpYyB0cmFuc3BhcmVuY3kKQEAgLTEwMiw5ICsxMDAsNyBAQCBQYXNzUmVmUHRyPElt
YWdlPiBJbWFnZUJ1ZmZlcjo6Y29weUltYWdlKCkgY29uc3QKIAogdm9pZCBJbWFnZUJ1ZmZlcjo6
Y2xpcChHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkgY29u
c3QKIHsKLSNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKICAgICBjb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKS0+YmVnaW5MYXllckNsaXBwZWRUb0ltYWdlKHJlY3QsIHRoaXMpOwotI2VuZGlm
CiB9CiAKIHZvaWQgSW1hZ2VCdWZmZXI6OmRyYXcoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBD
b2xvclNwYWNlIHN0eWxlQ29sb3JTcGFjZSwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCmluZGV4IDRhMjE1M2U4NzQwYzAxZjgy
N2Q1NTNlNTYyZTlkZDk5YmUwNDNjZmIuLjE5OTU2MTdkN2QwN2M0MWYxYWI1NjRiNWEwYTFmYjJi
ODI5YjExNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
UGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKQEAgLTk3LDEyICs5NywxMCBAQCBzdHJ1Y3QgUGxhdGZv
cm1Db250ZXh0U2tpYTo6U3RhdGUgewogICAgIC8vIGNvbG9yIHRvIHByb2R1Y2UgYSBuZXcgb3V0
cHV0IGNvbG9yLgogICAgIFNrQ29sb3IgYXBwbHlBbHBoYShTa0NvbG9yKSBjb25zdDsKIAotI2lm
IE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQogICAgIC8vIElmIG5vbi1lbXB0eSwgdGhlIGN1cnJl
bnQgU3RhdGUgaXMgY2xpcHBlZCB0byB0aGlzIGltYWdlLgogICAgIFNrQml0bWFwIG1faW1hZ2VC
dWZmZXJDbGlwOwogICAgIC8vIElmIG1faW1hZ2VCdWZmZXJDbGlwIGlzIG5vbi1lbXB0eSwgdGhp
cyBpcyB0aGUgcmVnaW9uIHRoZSBpbWFnZSBpcyBjbGlwcGVkIHRvLgogICAgIEZsb2F0UmVjdCBt
X2NsaXA7Ci0jZW5kaWYKIAogICAgIC8vIFRoaXMgaXMgYSBsaXN0IG9mIGNsaXBwaW5nIHBhdGhz
IHdoaWNoIGFyZSBjdXJyZW50bHkgYWN0aXZlLCBpbiB0aGUKICAgICAvLyBvcmRlciBpbiB3aGlj
aCB0aGV5IHdlcmUgcHVzaGVkLgpAQCAtMTU0LDEwICsxNTIsOCBAQCBQbGF0Zm9ybUNvbnRleHRT
a2lhOjpTdGF0ZTo6U3RhdGUoY29uc3QgU3RhdGUmIG90aGVyKQogICAgICwgbV9saW5lSm9pbihv
dGhlci5tX2xpbmVKb2luKQogICAgICwgbV9kYXNoKG90aGVyLm1fZGFzaCkKICAgICAsIG1fdGV4
dERyYXdpbmdNb2RlKG90aGVyLm1fdGV4dERyYXdpbmdNb2RlKQotI2lmIE9TKExJTlVYKSB8fCBP
UyhXSU5ET1dTKQogICAgICwgbV9pbWFnZUJ1ZmZlckNsaXAob3RoZXIubV9pbWFnZUJ1ZmZlckNs
aXApCiAgICAgLCBtX2NsaXAob3RoZXIubV9jbGlwKQotI2VuZGlmCiAgICAgLCBtX2FudGlBbGlh
c0NsaXBQYXRocyhvdGhlci5tX2FudGlBbGlhc0NsaXBQYXRocykKICAgICAsIG1faW50ZXJwb2xh
dGlvblF1YWxpdHkob3RoZXIubV9pbnRlcnBvbGF0aW9uUXVhbGl0eSkKIHsKQEAgLTIwNCw5ICsy
MDAsNyBAQCBTa0NvbG9yIFBsYXRmb3JtQ29udGV4dFNraWE6OlN0YXRlOjphcHBseUFscGhhKFNr
Q29sb3IgYykgY29uc3QKIC8vIERhbmdlcjogY2FudmFzIGNhbiBiZSBOVUxMLgogUGxhdGZvcm1D
b250ZXh0U2tpYTo6UGxhdGZvcm1Db250ZXh0U2tpYShza2lhOjpQbGF0Zm9ybUNhbnZhcyogY2Fu
dmFzKQogICAgIDogbV9jYW52YXMoY2FudmFzKQotI2lmIE9TKFdJTkRPV1MpCiAgICAgLCBtX2Ry
YXdpbmdUb0ltYWdlQnVmZmVyKGZhbHNlKQotI2VuZGlmCiAgICAgLCBtX3VzZUdQVShmYWxzZSkK
ICAgICAsIG1fZ3B1Q2FudmFzKDApCiAgICAgLCBtX2JhY2tpbmdTdG9yZVN0YXRlKE5vbmUpCkBA
IC0yMjYsNyArMjIwLDYgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzZXRDYW52YXMoc2tp
YTo6UGxhdGZvcm1DYW52YXMqIGNhbnZhcykKICAgICBtX2NhbnZhcyA9IGNhbnZhczsKIH0KIAot
I2lmIE9TKFdJTkRPV1MpCiB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OnNldERyYXdpbmdUb0lt
YWdlQnVmZmVyKGJvb2wgdmFsdWUpCiB7CiAgICAgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlciA9IHZh
bHVlOwpAQCAtMjM2LDcgKzIyOSw2IEBAIGJvb2wgUGxhdGZvcm1Db250ZXh0U2tpYTo6aXNEcmF3
aW5nVG9JbWFnZUJ1ZmZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fZHJhd2luZ1RvSW1hZ2VC
dWZmZXI7CiB9Ci0jZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpzYXZlKCkKIHsK
QEAgLTI0NSwxNyArMjM3LDE0IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6c2F2ZSgpCiAg
ICAgbV9zdGF0ZVN0YWNrLmFwcGVuZChtX3N0YXRlLT5jbG9uZUluaGVyaXRlZFByb3BlcnRpZXMo
KSk7CiAgICAgbV9zdGF0ZSA9ICZtX3N0YXRlU3RhY2subGFzdCgpOwogCi0jaWYgT1MoTElOVVgp
IHx8IE9TKFdJTkRPV1MpCiAgICAgLy8gVGhlIGNsaXAgaW1hZ2Ugb25seSBuZWVkcyB0byBiZSBh
cHBsaWVkIG9uY2UuIFJlc2V0IHRoZSBpbWFnZSBzbyB0aGF0IHdlCiAgICAgLy8gZG9uJ3QgYXR0
ZW1wdCB0byBjbGlwIG11bHRpcGxlIHRpbWVzLgogICAgIG1fc3RhdGUtPm1faW1hZ2VCdWZmZXJD
bGlwLnJlc2V0KCk7Ci0jZW5kaWYKIAogICAgIC8vIFNhdmUgb3VyIG5hdGl2ZSBjYW52YXMuCiAg
ICAgY2FudmFzKCktPnNhdmUoKTsKIH0KIAotI2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQog
dm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpiZWdpbkxheWVyQ2xpcHBlZFRvSW1hZ2UoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgSW1hZ2VCdWZmZXIqIGltYWdlQnVmZmVyKQogewpAQCAtMjg0LDcg
KzI3Myw2IEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6YmVnaW5MYXllckNsaXBwZWRUb0lt
YWdlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwKICAgICAgICAgbV9zdGF0ZS0+bV9pbWFnZUJ1ZmZl
ckNsaXAgPSAqYml0bWFwOwogICAgIH0KIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ29udGV4
dFNraWE6OmNsaXBQYXRoQW50aUFsaWFzZWQoY29uc3QgU2tQYXRoJiBjbGlwUGF0aCkKIHsKQEAg
LTMwMywxMiArMjkxLDEwIEBAIHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6Y2xpcFBhdGhBbnRp
QWxpYXNlZChjb25zdCBTa1BhdGgmIGNsaXBQYXRoKQogCiB2b2lkIFBsYXRmb3JtQ29udGV4dFNr
aWE6OnJlc3RvcmUoKQogewotI2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQogICAgIGlmICgh
bV9zdGF0ZS0+bV9pbWFnZUJ1ZmZlckNsaXAuZW1wdHkoKSkgewogICAgICAgICBhcHBseUNsaXBG
cm9tSW1hZ2UobV9zdGF0ZS0+bV9jbGlwLCBtX3N0YXRlLT5tX2ltYWdlQnVmZmVyQ2xpcCk7CiAg
ICAgICAgIGNhbnZhcygpLT5yZXN0b3JlKCk7CiAgICAgfQotI2VuZGlmCiAKICAgICBpZiAoIW1f
c3RhdGUtPm1fYW50aUFsaWFzQ2xpcFBhdGhzLmlzRW1wdHkoKSkKICAgICAgICAgYXBwbHlBbnRp
QWxpYXNlZENsaXBQYXRocyhtX3N0YXRlLT5tX2FudGlBbGlhc0NsaXBQYXRocyk7CkBAIC02Mjcs
NyArNjEzLDYgQEAgYm9vbCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpoYXNJbWFnZVJlc2FtcGxpbmdI
aW50KCkgY29uc3QKICAgICByZXR1cm4gIW1faW1hZ2VSZXNhbXBsaW5nSGludFNyY1NpemUuaXNF
bXB0eSgpICYmICFtX2ltYWdlUmVzYW1wbGluZ0hpbnREc3RTaXplLmlzRW1wdHkoKTsKIH0KIAot
I2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQogdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjph
cHBseUNsaXBGcm9tSW1hZ2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBTa0JpdG1hcCYg
aW1hZ2VCdWZmZXIpCiB7CiAgICAgLy8gTk9URTogdGhpcyBhc3N1bWVzIHRoZSBpbWFnZSBtYXNr
IGNvbnRhaW5zIG9wYXF1ZSBibGFjayBmb3IgdGhlIHBvcnRpb25zIHRoYXQgYXJlIHRvIGJlIHNo
b3duLCBhcyBzdWNoIHdlCkBAIC02MzYsNyArNjIxLDYgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRT
a2lhOjphcHBseUNsaXBGcm9tSW1hZ2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBjb25zdCBTa0Jp
dG0KICAgICBwYWludC5zZXRYZmVybW9kZU1vZGUoU2tYZmVybW9kZTo6a0RzdEluX01vZGUpOwog
ICAgIG1fY2FudmFzLT5kcmF3Qml0bWFwKGltYWdlQnVmZmVyLCBTa0Zsb2F0VG9TY2FsYXIocmVj
dC54KCkpLCBTa0Zsb2F0VG9TY2FsYXIocmVjdC55KCkpLCAmcGFpbnQpOwogfQotI2VuZGlmCiAK
IHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6YXBwbHlBbnRpQWxpYXNlZENsaXBQYXRocyhXVEY6
OlZlY3RvcjxTa1BhdGg+JiBwYXRocykKIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCmluZGV4IDI2MDYyNDAyNGIxMzRmMGQ3
ZDIwYzE4NmRmYzgzNjE1MmM1NTVlNDcuLmI5MjMwZWYyMDJiNGFjM2EzNDczMTIwZjliMTk5MjU0
ZDM5MjU2MTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0
Zm9ybUNvbnRleHRTa2lhLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1Bs
YXRmb3JtQ29udGV4dFNraWEuaApAQCAtNzgsNyArNzgsNiBAQCBwdWJsaWM6CiAgICAgLy8gdG8g
dGhlIGNvbnN0cnVjdG9yLgogICAgIHZvaWQgc2V0Q2FudmFzKHNraWE6OlBsYXRmb3JtQ2FudmFz
Kik7CiAKLSNpZiBPUyhXSU5ET1dTKQogICAgIC8vIElmIGZhbHNlIHdlJ3JlIHJlbmRlcmluZyB0
byBhIEdyYXBoaWNzQ29udGV4dCBmb3IgYSB3ZWIgcGFnZSwgaWYgZmFsc2UKICAgICAvLyB3ZSdy
ZSBub3QgKGFzIGlzIHRoZSBjYXNlIHdoZW4gcmVuZGVyaW5nIHRvIGEgY2FudmFzIG9iamVjdCku
CiAgICAgLy8gSWYgdGhpcyBpcyB0cnVlIHRoZSBjb250ZW50cyBoYXZlIG5vdCBiZWVuIG1hcmtl
ZCB1cCB3aXRoIHRoZSBtYWdpYwpAQCAtODYsNyArODUsNiBAQCBwdWJsaWM6CiAgICAgLy8gY29y
cmVjdGx5IHVwZGF0ZWQuCiAgICAgdm9pZCBzZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcihib29sKTsK
ICAgICBib29sIGlzRHJhd2luZ1RvSW1hZ2VCdWZmZXIoKSBjb25zdDsKLSNlbmRpZgogCiAgICAg
dm9pZCBzYXZlKCk7CiAgICAgdm9pZCByZXN0b3JlKCk7CkBAIC05NSw5ICs5Myw3IEBAIHB1Ymxp
YzoKICAgICAvLyB8cmVjdHwuIFRoaXMgbGF5ZXIgaXMgaW1wbGljaXRseSByZXN0b3JlZCB3aGVu
IHRoZSBuZXh0IHJlc3RvcmUgaXMKICAgICAvLyBpbnZva2VkLgogICAgIC8vIE5PVEU6IHxpbWFn
ZUJ1ZmZlcnwgbWF5IGJlIGRlbGV0ZWQgYmVmb3JlIHRoZSB8cmVzdG9yZXwgaXMgaW52b2tlZC4K
LSNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKICAgICB2b2lkIGJlZ2luTGF5ZXJDbGlwcGVk
VG9JbWFnZShjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBJbWFnZUJ1ZmZlciopOwotI2VuZGlmCiAg
ICAgdm9pZCBjbGlwUGF0aEFudGlBbGlhc2VkKGNvbnN0IFNrUGF0aCYpOwogCiAgICAgLy8gU2V0
cyB1cCB0aGUgY29tbW9uIGZsYWdzIG9uIGEgcGFpbnQgZm9yIGFudGlhbGlhc2luZywgZWZmZWN0
cywgZXRjLgpAQCAtMTkyLDExICsxODgsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzeW5jU29mdHdh
cmVDYW52YXMoKSBjb25zdDsKIAogcHJpdmF0ZToKLSNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9X
UykKICAgICAvLyBVc2VkIHdoZW4gcmVzdG9yaW5nIGFuZCB0aGUgc3RhdGUgaGFzIGFuIGltYWdl
IGNsaXAuIE9ubHkgc2hvd3MgdGhlIHBpeGVscyBpbgogICAgIC8vIG1fY2FudmFzIHRoYXQgYXJl
IGFsc28gaW4gaW1hZ2VCdWZmZXIuCiAgICAgdm9pZCBhcHBseUNsaXBGcm9tSW1hZ2UoY29uc3Qg
RmxvYXRSZWN0JiwgY29uc3QgU2tCaXRtYXAmKTsKLSNlbmRpZgogICAgIHZvaWQgYXBwbHlBbnRp
QWxpYXNlZENsaXBQYXRocyhXVEY6OlZlY3RvcjxTa1BhdGg+JiBwYXRocyk7CiAKICAgICB2b2lk
IHVwbG9hZFNvZnR3YXJlVG9IYXJkd2FyZShDb21wb3NpdGVPcGVyYXRvcikgY29uc3Q7CkBAIC0y
MjIsOSArMjE2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBWYWx1ZXMgYXJlIHVzZWQgaW4gSW1hZ2VT
a2lhLmNwcAogICAgIEludFNpemUgbV9pbWFnZVJlc2FtcGxpbmdIaW50U3JjU2l6ZTsKICAgICBG
bG9hdFNpemUgbV9pbWFnZVJlc2FtcGxpbmdIaW50RHN0U2l6ZTsKLSNpZiBPUyhXSU5ET1dTKQog
ICAgIGJvb2wgbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcjsKLSNlbmRpZgogICAgIGJvb2wgbV91c2VH
UFU7CiAgICAgT3duUHRyPEdMRVMyQ2FudmFzPiBtX2dwdUNhbnZhczsKICAgICBtdXRhYmxlIGVu
dW0geyBOb25lLCBTb2Z0d2FyZSwgTWl4ZWQsIEhhcmR3YXJlIH0gbV9iYWNraW5nU3RvcmVTdGF0
ZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67112</attachid>
            <date>2010-09-09 16:22:42 -0700</date>
            <delta_ts>2010-09-09 17:36:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45087-20100909162236.patch</filename>
            <type>text/plain</type>
            <size>16325</size>
            <attacher name="Alexey Marinichev">amarinichev</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NTA3NDkwMzVmZGMxNmEyNWYxMTVlYTJmNTIyYjg3YTQxODQzMDc1OC4uODgzZTM1MGU3NzMxMjQx
ZGM3NDdiYzJkMDFkZDUwNWY0NDYzNTA4YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wOS0wOSAgQWxl
eGV5IE1hcmluaWNoZXYgIDxhbWFyaW5pY2hldkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW2Nocm9taXVtXSBEaXNhYmxlIHN1
YnBpeGVsIHJlbmRlcmluZyBpbiBMaW51eCB3aGVuIEdQVSBjb21wb3NpdG9yIGlzIGFjdGl2ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUwODcKKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRMYXllckNocm9taXVtOjp1cGRhdGVDb250ZW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
anVzdFRleHRSZW5kZXJNb2RlKTogQWRkZWQgYSBjaGVjayB0byBzZWUgaWYgdGhlIGNvbXBvc2l0
b3IgaXMgYWN0aXZlLgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0dseXBocyk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250OjpkcmF3Q29tcGxleFRleHQpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXllclJlbmRlcmVyQ2hyb21pdW06OnNldFJvb3RMYXllckNhbnZhc1NpemUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWaWRlb0xheWVyQ2hyb21pdW06OnVwZGF0ZUNvbnRlbnRz
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL0ltYWdlQnVmZmVyU2tpYS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJbWFnZUJ1ZmZlcjo6SW1hZ2VCdWZmZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VCdWZmZXI6OmNsaXApOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHA6CisgICAgICAgIE1hZGUgc2V0RHJhd2luZ1Rv
SW1hZ2VCdWZmZXIgYW5kIGlzRHJhd2luZ1RvSW1hZ2VCdWZmZXIgYXZhaWxhYmxlIHRvCisgICAg
ICAgIExpbnV4OyByZW1vdmVkIGFsbCAjaWYgT1MoV0lORE9XUykgfHwgT1MoTElOVVgpLgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6U3RhdGU6OlN0YXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OlBsYXRmb3JtQ29udGV4dFNraWEpOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1Db250ZXh0U2tpYTo6aXNEcmF3aW5nVG9JbWFnZUJ1
ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpzYXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OmJlZ2luTGF5ZXJDbGlwcGVkVG9J
bWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybUNvbnRleHRTa2lhOjpyZXN0b3JlKToK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtQ29udGV4dFNraWE6OmFwcGx5Q2xpcEZyb21JbWFn
ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lh
Lmg6CisKIDIwMTAtMDktMDcgIEphbiBFIEhhbnNzZW4gIDxqaGFuc3NlbkBzZW5jaGEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFuZHJlYXMgS2xpbmcuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0NvbnRlbnRMYXllckNocm9taXVtLmNwcCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CmluZGV4IDk3NDkzM2Q0NWI3NzljYzkzOTQzMTljYzQ2ZDNmMDZkY2U5MWI2YmYuLmU0ZDM3ZTJj
MmU1MmYzY2FlZTYwOWRhOWY2NjVmNDMzMTE4Zjg3NTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3BwCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vQ29udGVudExheWVyQ2hyb21pdW0uY3Bw
CkBAIC0xNzQsMTQgKzE3NCw5IEBAIHZvaWQgQ29udGVudExheWVyQ2hyb21pdW06OnVwZGF0ZUNv
bnRlbnRzKCkKICAgICBjYW52YXMuc2V0KG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZhcyhkaXJ0eVJl
Y3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCBmYWxzZSkpOwogICAgIHNraWFDb250ZXh0
LnNldChuZXcgUGxhdGZvcm1Db250ZXh0U2tpYShjYW52YXMuZ2V0KCkpKTsKIAotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgLy8gVGhpcyBpcyBuZWVkZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3Jy
ZWN0bHkuIFdpdGhvdXQgaXQsCi0gICAgLy8gR0RJIHJlbmRlcnMgd2l0aCB6ZXJvIGFscGhhIGFu
ZCB0aGUgdGV4dCBiZWNvbWVzIGludmlzaWJsZS4KLSAgICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0
aW5nIHRoaXMgdG8gdHJ1ZSBkaXNhYmxlcyBjbGVhcnR5cGUuCisgICAgLy8gVGhpcyBpcyBuZWVk
ZWQgdG8gZ2V0IHRleHQgdG8gc2hvdyB1cCBjb3JyZWN0bHkuCiAgICAgLy8gRklYTUU6IERvZXMg
dGhpcyB0YWtlIHVzIGRvd24gYSB2ZXJ5IHNsb3cgdGV4dCByZW5kZXJpbmcgcGF0aD8KLSAgICAv
LyBGSVhNRTogd2h5IGlzIHRoaXMgaXMgYSB3aW5kb3dzLW9ubHkgY2FsbCA/CiAgICAgc2tpYUNv
bnRleHQtPnNldERyYXdpbmdUb0ltYWdlQnVmZmVyKHRydWUpOwotI2VuZGlmCiAKICAgICBncmFw
aGljc0NvbnRleHQuc2V0KG5ldyBHcmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0
Zm9ybUdyYXBoaWNzQ29udGV4dCo+KHNraWFDb250ZXh0LmdldCgpKSkpOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKaW5kZXggYWIzMDQ1
ZTQyMjM4MmYxOTJjNThjOTgyNjFlMzY5Y2FmYWU3ZWI5My4uNjk2Y2Q5Y2VhMGQxMTBlNDdiMDhh
NGI5N2YyYmFlM2RlZTI3NjRkMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtNjUsMTMgKzY1LDEzIEBAIHN0YXRpYyBib29sIGlz
Q2FudmFzTXVsdGlMYXllcmVkKFNrQ2FudmFzKiBjYW52YXMpCiAgICAgcmV0dXJuICFsYXllckl0
ZXJhdG9yLmRvbmUoKTsKIH0KIAotc3RhdGljIHZvaWQgYWRqdXN0VGV4dFJlbmRlck1vZGUoU2tQ
YWludCogcGFpbnQsIGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQpCitzdGF0aWMgdm9pZCBhZGp1
c3RUZXh0UmVuZGVyTW9kZShTa1BhaW50KiBwYWludCwgUGxhdGZvcm1Db250ZXh0U2tpYSogc2tp
YUNvbnRleHQpCiB7CiAgICAgLy8gT3VyIGxheWVycyBvbmx5IGhhdmUgYSBzaW5nbGUgYWxwaGEg
Y2hhbm5lbC4gVGhpcyBtZWFucyB0aGF0IHN1YnBpeGVsCiAgICAgLy8gcmVuZGVyZWQgdGV4dCBj
YW5ub3QgYmUgY29tcG9zaXRpZWQgY29ycmVjdGx5IHdoZW4gdGhlIGxheWVyIGlzCiAgICAgLy8g
Y29sbGFwc2VkLiBUaGVyZWZvcmUsIHN1YnBpeGVsIHRleHQgaXMgZGlzYWJsZWQgd2hlbiB3ZSBh
cmUgZHJhd2luZwotICAgIC8vIG9udG8gYSBsYXllci4KLSAgICBpZiAoaXNDYW52YXNNdWx0aUxh
eWVyZWQpCisgICAgLy8gb250byBhIGxheWVyIG9yIHdoZW4gdGhlIGNvbXBvc2l0b3IgaXMgYmVp
bmcgdXNlZC4KKyAgICBpZiAoaXNDYW52YXNNdWx0aUxheWVyZWQoc2tpYUNvbnRleHQtPmNhbnZh
cygpKSB8fCBza2lhQ29udGV4dC0+aXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpKQogICAgICAgICBw
YWludC0+c2V0TENEUmVuZGVyVGV4dChmYWxzZSk7CiB9CiAKQEAgLTEwNCwxNCArMTA0LDEzIEBA
IHZvaWQgRm9udDo6ZHJhd0dseXBocyhHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBTaW1wbGVG
b250RGF0YSogZm9udCwKIAogICAgIFNrQ2FudmFzKiBjYW52YXMgPSBnYy0+cGxhdGZvcm1Db250
ZXh0KCktPmNhbnZhcygpOwogICAgIGludCB0ZXh0TW9kZSA9IGdjLT5wbGF0Zm9ybUNvbnRleHQo
KS0+Z2V0VGV4dERyYXdpbmdNb2RlKCk7Ci0gICAgYm9vbCBoYXZlTXVsdGlwbGVMYXllcnMgPSBp
c0NhbnZhc011bHRpTGF5ZXJlZChjYW52YXMpOwogCiAgICAgLy8gV2UgZHJhdyB0ZXh0IHVwIHRv
IHR3byB0aW1lcyAob25jZSBmb3IgZmlsbCwgb25jZSBmb3Igc3Ryb2tlKS4KICAgICBpZiAodGV4
dE1vZGUgJiBjVGV4dEZpbGwpIHsKICAgICAgICAgU2tQYWludCBwYWludDsKICAgICAgICAgZ2Mt
PnBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAgICAg
ICBmb250LT5wbGF0Zm9ybURhdGEoKS5zZXR1cFBhaW50KCZwYWludCk7Ci0gICAgICAgIGFkanVz
dFRleHRSZW5kZXJNb2RlKCZwYWludCwgaGF2ZU11bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAgYWRq
dXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBnYy0+cGxhdGZvcm1Db250ZXh0KCkpOwogICAgICAg
ICBwYWludC5zZXRUZXh0RW5jb2RpbmcoU2tQYWludDo6a0dseXBoSURfVGV4dEVuY29kaW5nKTsK
ICAgICAgICAgcGFpbnQuc2V0Q29sb3IoZ2MtPmZpbGxDb2xvcigpLnJnYigpKTsKICAgICAgICAg
Y2FudmFzLT5kcmF3UG9zVGV4dChnbHlwaHMsIG51bUdseXBocyA8PCAxLCBwb3MsIHBhaW50KTsK
QEAgLTEyNCw3ICsxMjMsNyBAQCB2b2lkIEZvbnQ6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250ZXh0
KiBnYywgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsCiAgICAgICAgIFNrUGFpbnQgcGFpbnQ7
CiAgICAgICAgIGdjLT5wbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZw
YWludCwgMCwgMCk7CiAgICAgICAgIGZvbnQtPnBsYXRmb3JtRGF0YSgpLnNldHVwUGFpbnQoJnBh
aW50KTsKLSAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1vZGUoJnBhaW50LCBoYXZlTXVsdGlwbGVM
YXllcnMpOworICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmcGFpbnQsIGdjLT5wbGF0Zm9y
bUNvbnRleHQoKSk7CiAgICAgICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5
cGhJRF9UZXh0RW5jb2RpbmcpOwogICAgICAgICBwYWludC5zZXRDb2xvcihnYy0+c3Ryb2tlQ29s
b3IoKS5yZ2IoKSk7CiAKQEAgLTY0Niw3ICs2NDUsNiBAQCB2b2lkIEZvbnQ6OmRyYXdDb21wbGV4
VGV4dChHcmFwaGljc0NvbnRleHQqIGdjLCBjb25zdCBUZXh0UnVuJiBydW4sCiAgICAgfQogCiAg
ICAgVGV4dFJ1bldhbGtlciB3YWxrZXIocnVuLCBwb2ludC54KCksIHRoaXMpOwotICAgIGJvb2wg
aGF2ZU11bHRpcGxlTGF5ZXJzID0gaXNDYW52YXNNdWx0aUxheWVyZWQoY2FudmFzKTsKICAgICB3
YWxrZXIuc2V0V29yZFNwYWNpbmdBZGp1c3RtZW50KHdvcmRTcGFjaW5nKCkpOwogICAgIHdhbGtl
ci5zZXRMZXR0ZXJTcGFjaW5nQWRqdXN0bWVudChsZXR0ZXJTcGFjaW5nKCkpOwogICAgIHdhbGtl
ci5zZXRQYWRkaW5nKHJ1bi5wYWRkaW5nKCkpOwpAQCAtNjU0LDEzICs2NTIsMTMgQEAgdm9pZCBG
b250OjpkcmF3Q29tcGxleFRleHQoR3JhcGhpY3NDb250ZXh0KiBnYywgY29uc3QgVGV4dFJ1biYg
cnVuLAogICAgIHdoaWxlICh3YWxrZXIubmV4dFNjcmlwdFJ1bigpKSB7CiAgICAgICAgIGlmIChm
aWxsKSB7CiAgICAgICAgICAgICB3YWxrZXIuZm9udFBsYXRmb3JtRGF0YUZvclNjcmlwdFJ1bigp
LT5zZXR1cFBhaW50KCZmaWxsUGFpbnQpOwotICAgICAgICAgICAgYWRqdXN0VGV4dFJlbmRlck1v
ZGUoJmZpbGxQYWludCwgaGF2ZU11bHRpcGxlTGF5ZXJzKTsKKyAgICAgICAgICAgIGFkanVzdFRl
eHRSZW5kZXJNb2RlKCZmaWxsUGFpbnQsIGdjLT5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgICAg
ICAgICBjYW52YXMtPmRyYXdQb3NUZXh0SCh3YWxrZXIuZ2x5cGhzKCksIHdhbGtlci5sZW5ndGgo
KSA8PCAxLCB3YWxrZXIueFBvc2l0aW9ucygpLCBwb2ludC55KCksIGZpbGxQYWludCk7CiAgICAg
ICAgIH0KIAogICAgICAgICBpZiAoc3Ryb2tlKSB7CiAgICAgICAgICAgICB3YWxrZXIuZm9udFBs
YXRmb3JtRGF0YUZvclNjcmlwdFJ1bigpLT5zZXR1cFBhaW50KCZzdHJva2VQYWludCk7Ci0gICAg
ICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGhhdmVNdWx0aXBsZUxh
eWVycyk7CisgICAgICAgICAgICBhZGp1c3RUZXh0UmVuZGVyTW9kZSgmc3Ryb2tlUGFpbnQsIGdj
LT5wbGF0Zm9ybUNvbnRleHQoKSk7CiAgICAgICAgICAgICBjYW52YXMtPmRyYXdQb3NUZXh0SCh3
YWxrZXIuZ2x5cGhzKCksIHdhbGtlci5sZW5ndGgoKSA8PCAxLCB3YWxrZXIueFBvc2l0aW9ucygp
LCBwb2ludC55KCksIHN0cm9rZVBhaW50KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVt
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNo
cm9taXVtLmNwcAppbmRleCA3ODkyOThhZWQ4Y2U5NzYzMDIwY2ZlMGFlMjI0OGUzNzMzZGYyYzhj
Li40NzA4MzEwMzQ5Nzk3Zjk4N2IyMTBjOThkMDg2NDdkM2Y5MTVlYjMyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJvbWl1bS5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllclJlbmRlcmVy
Q2hyb21pdW0uY3BwCkBAIC0xMjUsMTAgKzEyNSw3IEBAIHZvaWQgTGF5ZXJSZW5kZXJlckNocm9t
aXVtOjpzZXRSb290TGF5ZXJDYW52YXNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAgICAgLy8g
dGhlIG9sZCBvbmVzLgogICAgIG1fcm9vdExheWVyQ2FudmFzID0gbmV3IHNraWE6OlBsYXRmb3Jt
Q2FudmFzKHNpemUud2lkdGgoKSwgc2l6ZS5oZWlnaHQoKSwgZmFsc2UpOwogICAgIG1fcm9vdExh
eWVyU2tpYUNvbnRleHQgPSBuZXcgUGxhdGZvcm1Db250ZXh0U2tpYShtX3Jvb3RMYXllckNhbnZh
cy5nZXQoKSk7Ci0jaWYgT1MoV0lORE9XUykKLSAgICAvLyBGSVhNRTogd2h5IGlzIHRoaXMgaXMg
YSB3aW5kb3dzLW9ubHkgY2FsbCA/CiAgICAgbV9yb290TGF5ZXJTa2lhQ29udGV4dC0+c2V0RHJh
d2luZ1RvSW1hZ2VCdWZmZXIodHJ1ZSk7Ci0jZW5kaWYKICAgICBtX3Jvb3RMYXllckdyYXBoaWNz
Q29udGV4dCA9IG5ldyBHcmFwaGljc0NvbnRleHQocmVpbnRlcnByZXRfY2FzdDxQbGF0Zm9ybUdy
YXBoaWNzQ29udGV4dCo+KG1fcm9vdExheWVyU2tpYUNvbnRleHQuZ2V0KCkpKTsKICNlbGlmIFBM
QVRGT1JNKENHKQogICAgIC8vIFJlbGVhc2UgdGhlIHByZXZpb3VzIENHQml0bWFwQ29udGV4dCBi
ZWZvcmUgcmVhbGxvY2F0aW5nIHRoZSBiYWNraW5nIHN0b3JlIGFzIGEgcHJlY2F1dGlvbi4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXllckNo
cm9taXVtLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVmlkZW9MYXll
ckNocm9taXVtLmNwcAppbmRleCA3ZmY5OGI5M2ZkMDNhZGEyZGE2OGZjNGQxZjZlMjliNTc0MGZm
NGJlLi5jMGRhMjg1NjdiM2ZlOWMxZGRlNjkxNzIyNjhjZjY1ZDcyOTI0MjdmIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1ZpZGVvTGF5ZXJDaHJvbWl1bS5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9WaWRlb0xheWVyQ2hy
b21pdW0uY3BwCkBAIC05NiwxNCArOTYsOSBAQCB2b2lkIFZpZGVvTGF5ZXJDaHJvbWl1bTo6dXBk
YXRlQ29udGVudHMoKQogICAgICAgICBtX2NhbnZhcyA9IG5ldyBza2lhOjpQbGF0Zm9ybUNhbnZh
cyhkaXJ0eVJlY3Qud2lkdGgoKSwgZGlydHlSZWN0LmhlaWdodCgpLCB0cnVlKTsKICAgICAgICAg
bV9za2lhQ29udGV4dCA9IG5ldyBQbGF0Zm9ybUNvbnRleHRTa2lhKG1fY2FudmFzLmdldCgpKTsK
IAotI2lmIE9TKFdJTkRPV1MpCi0gICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGdldCB0ZXh0
IHRvIHNob3cgdXAgY29ycmVjdGx5LiBXaXRob3V0IGl0LAotICAgICAgICAvLyBHREkgcmVuZGVy
cyB3aXRoIHplcm8gYWxwaGEgYW5kIHRoZSB0ZXh0IGJlY29tZXMgaW52aXNpYmxlLgotICAgICAg
ICAvLyBVbmZvcnR1bmF0ZWx5LCBzZXR0aW5nIHRoaXMgdG8gdHJ1ZSBkaXNhYmxlcyBjbGVhcnR5
cGUuCisgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIHRvIGdldCB0ZXh0IHRvIHNob3cgdXAgY29y
cmVjdGx5LgogICAgICAgICAvLyBGSVhNRTogRG9lcyB0aGlzIHRha2UgdXMgZG93biBhIHZlcnkg
c2xvdyB0ZXh0IHJlbmRlcmluZyBwYXRoPwotICAgICAgICAvLyBGSVhNRTogV2h5IGlzIHRoaXMg
aXMgYSB3aW5kb3dzLW9ubHkgY2FsbD8KICAgICAgICAgbV9za2lhQ29udGV4dC0+c2V0RHJhd2lu
Z1RvSW1hZ2VCdWZmZXIodHJ1ZSk7Ci0jZW5kaWYKICAgICAgICAgbV9ncmFwaGljc0NvbnRleHQg
PSBuZXcgR3JhcGhpY3NDb250ZXh0KHJlaW50ZXJwcmV0X2Nhc3Q8UGxhdGZvcm1HcmFwaGljc0Nv
bnRleHQqPihtX3NraWFDb250ZXh0LmdldCgpKSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvSW1hZ2VCdWZmZXJTa2lhLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCmluZGV4IGUwYmRhMDNm
YmUzYjNkNDcyZmQwNjNlYmUyMmEzMjBkZWVjZmI5NmIuLjEzODRjZmM5MjU3ZWJjNTdlYzQ5OTgy
ZTUyMjY0MzUzYzdmYTY1NDcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
c2tpYS9JbWFnZUJ1ZmZlclNraWEuY3BwCkBAIC02OSw5ICs2OSw3IEBAIEltYWdlQnVmZmVyOjpJ
bWFnZUJ1ZmZlcihjb25zdCBJbnRTaXplJiBzaXplLCBJbWFnZUNvbG9yU3BhY2UgaW1hZ2VDb2xv
clNwYWNlLCBiCiAKICAgICBtX2RhdGEubV9wbGF0Zm9ybUNvbnRleHQuc2V0Q2FudmFzKCZtX2Rh
dGEubV9jYW52YXMpOwogICAgIG1fY29udGV4dC5zZXQobmV3IEdyYXBoaWNzQ29udGV4dCgmbV9k
YXRhLm1fcGxhdGZvcm1Db250ZXh0KSk7Ci0jaWYgT1MoV0lORE9XUykKICAgICBtX2NvbnRleHQt
PnBsYXRmb3JtQ29udGV4dCgpLT5zZXREcmF3aW5nVG9JbWFnZUJ1ZmZlcih0cnVlKTsKLSNlbmRp
ZgogCiAgICAgLy8gTWFrZSB0aGUgYmFja2dyb3VuZCB0cmFuc3BhcmVudC4gSXQgd291bGQgYmUg
bmljZSBpZiB0aGlzIHdhc24ndAogICAgIC8vIHJlcXVpcmVkLCBidXQgdGhlIGNhbnZhcyBpcyBj
dXJyZW50bHkgZmlsbGVkIHdpdGggdGhlIG1hZ2ljIHRyYW5zcGFyZW5jeQpAQCAtMTAyLDkgKzEw
MCw3IEBAIFBhc3NSZWZQdHI8SW1hZ2U+IEltYWdlQnVmZmVyOjpjb3B5SW1hZ2UoKSBjb25zdAog
CiB2b2lkIEltYWdlQnVmZmVyOjpjbGlwKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiByZWN0KSBjb25zdAogewotI2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQog
ICAgIGNvbnRleHQtPnBsYXRmb3JtQ29udGV4dCgpLT5iZWdpbkxheWVyQ2xpcHBlZFRvSW1hZ2Uo
cmVjdCwgdGhpcyk7Ci0jZW5kaWYKIH0KIAogdm9pZCBJbWFnZUJ1ZmZlcjo6ZHJhdyhHcmFwaGlj
c0NvbnRleHQqIGNvbnRleHQsIENvbG9yU3BhY2Ugc3R5bGVDb2xvclNwYWNlLCBjb25zdCBGbG9h
dFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5jcHAKaW5k
ZXggNGEyMTUzZTg3NDBjMDFmODI3ZDU1M2U1NjJlOWRkOTliZTA0M2NmYi4uMTk5NTYxN2Q3ZDA3
YzQxZjFhYjU2NGI1YTBhMWZiMmI4MjliMTE2YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmNwcApAQCAtOTcsMTIgKzk3
LDEwIEBAIHN0cnVjdCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpTdGF0ZSB7CiAgICAgLy8gY29sb3Ig
dG8gcHJvZHVjZSBhIG5ldyBvdXRwdXQgY29sb3IuCiAgICAgU2tDb2xvciBhcHBseUFscGhhKFNr
Q29sb3IpIGNvbnN0OwogCi0jaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCiAgICAgLy8gSWYg
bm9uLWVtcHR5LCB0aGUgY3VycmVudCBTdGF0ZSBpcyBjbGlwcGVkIHRvIHRoaXMgaW1hZ2UuCiAg
ICAgU2tCaXRtYXAgbV9pbWFnZUJ1ZmZlckNsaXA7CiAgICAgLy8gSWYgbV9pbWFnZUJ1ZmZlckNs
aXAgaXMgbm9uLWVtcHR5LCB0aGlzIGlzIHRoZSByZWdpb24gdGhlIGltYWdlIGlzIGNsaXBwZWQg
dG8uCiAgICAgRmxvYXRSZWN0IG1fY2xpcDsKLSNlbmRpZgogCiAgICAgLy8gVGhpcyBpcyBhIGxp
c3Qgb2YgY2xpcHBpbmcgcGF0aHMgd2hpY2ggYXJlIGN1cnJlbnRseSBhY3RpdmUsIGluIHRoZQog
ICAgIC8vIG9yZGVyIGluIHdoaWNoIHRoZXkgd2VyZSBwdXNoZWQuCkBAIC0xNTQsMTAgKzE1Miw4
IEBAIFBsYXRmb3JtQ29udGV4dFNraWE6OlN0YXRlOjpTdGF0ZShjb25zdCBTdGF0ZSYgb3RoZXIp
CiAgICAgLCBtX2xpbmVKb2luKG90aGVyLm1fbGluZUpvaW4pCiAgICAgLCBtX2Rhc2gob3RoZXIu
bV9kYXNoKQogICAgICwgbV90ZXh0RHJhd2luZ01vZGUob3RoZXIubV90ZXh0RHJhd2luZ01vZGUp
Ci0jaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCiAgICAgLCBtX2ltYWdlQnVmZmVyQ2xpcChv
dGhlci5tX2ltYWdlQnVmZmVyQ2xpcCkKICAgICAsIG1fY2xpcChvdGhlci5tX2NsaXApCi0jZW5k
aWYKICAgICAsIG1fYW50aUFsaWFzQ2xpcFBhdGhzKG90aGVyLm1fYW50aUFsaWFzQ2xpcFBhdGhz
KQogICAgICwgbV9pbnRlcnBvbGF0aW9uUXVhbGl0eShvdGhlci5tX2ludGVycG9sYXRpb25RdWFs
aXR5KQogewpAQCAtMjA0LDkgKzIwMCw3IEBAIFNrQ29sb3IgUGxhdGZvcm1Db250ZXh0U2tpYTo6
U3RhdGU6OmFwcGx5QWxwaGEoU2tDb2xvciBjKSBjb25zdAogLy8gRGFuZ2VyOiBjYW52YXMgY2Fu
IGJlIE5VTEwuCiBQbGF0Zm9ybUNvbnRleHRTa2lhOjpQbGF0Zm9ybUNvbnRleHRTa2lhKHNraWE6
OlBsYXRmb3JtQ2FudmFzKiBjYW52YXMpCiAgICAgOiBtX2NhbnZhcyhjYW52YXMpCi0jaWYgT1Mo
V0lORE9XUykKICAgICAsIG1fZHJhd2luZ1RvSW1hZ2VCdWZmZXIoZmFsc2UpCi0jZW5kaWYKICAg
ICAsIG1fdXNlR1BVKGZhbHNlKQogICAgICwgbV9ncHVDYW52YXMoMCkKICAgICAsIG1fYmFja2lu
Z1N0b3JlU3RhdGUoTm9uZSkKQEAgLTIyNiw3ICsyMjAsNiBAQCB2b2lkIFBsYXRmb3JtQ29udGV4
dFNraWE6OnNldENhbnZhcyhza2lhOjpQbGF0Zm9ybUNhbnZhcyogY2FudmFzKQogICAgIG1fY2Fu
dmFzID0gY2FudmFzOwogfQogCi0jaWYgT1MoV0lORE9XUykKIHZvaWQgUGxhdGZvcm1Db250ZXh0
U2tpYTo6c2V0RHJhd2luZ1RvSW1hZ2VCdWZmZXIoYm9vbCB2YWx1ZSkKIHsKICAgICBtX2RyYXdp
bmdUb0ltYWdlQnVmZmVyID0gdmFsdWU7CkBAIC0yMzYsNyArMjI5LDYgQEAgYm9vbCBQbGF0Zm9y
bUNvbnRleHRTa2lhOjppc0RyYXdpbmdUb0ltYWdlQnVmZmVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9kcmF3aW5nVG9JbWFnZUJ1ZmZlcjsKIH0KLSNlbmRpZgogCiB2b2lkIFBsYXRmb3JtQ29u
dGV4dFNraWE6OnNhdmUoKQogewpAQCAtMjQ1LDE3ICsyMzcsMTQgQEAgdm9pZCBQbGF0Zm9ybUNv
bnRleHRTa2lhOjpzYXZlKCkKICAgICBtX3N0YXRlU3RhY2suYXBwZW5kKG1fc3RhdGUtPmNsb25l
SW5oZXJpdGVkUHJvcGVydGllcygpKTsKICAgICBtX3N0YXRlID0gJm1fc3RhdGVTdGFjay5sYXN0
KCk7CiAKLSNpZiBPUyhMSU5VWCkgfHwgT1MoV0lORE9XUykKICAgICAvLyBUaGUgY2xpcCBpbWFn
ZSBvbmx5IG5lZWRzIHRvIGJlIGFwcGxpZWQgb25jZS4gUmVzZXQgdGhlIGltYWdlIHNvIHRoYXQg
d2UKICAgICAvLyBkb24ndCBhdHRlbXB0IHRvIGNsaXAgbXVsdGlwbGUgdGltZXMuCiAgICAgbV9z
dGF0ZS0+bV9pbWFnZUJ1ZmZlckNsaXAucmVzZXQoKTsKLSNlbmRpZgogCiAgICAgLy8gU2F2ZSBv
dXIgbmF0aXZlIGNhbnZhcy4KICAgICBjYW52YXMoKS0+c2F2ZSgpOwogfQogCi0jaWYgT1MoTElO
VVgpIHx8IE9TKFdJTkRPV1MpCiB2b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OmJlZ2luTGF5ZXJD
bGlwcGVkVG9JbWFnZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBJbWFnZUJ1ZmZlciogaW1hZ2VC
dWZmZXIpCiB7CkBAIC0yODQsNyArMjczLDYgQEAgdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjpi
ZWdpbkxheWVyQ2xpcHBlZFRvSW1hZ2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LAogICAgICAgICBt
X3N0YXRlLT5tX2ltYWdlQnVmZmVyQ2xpcCA9ICpiaXRtYXA7CiAgICAgfQogfQotI2VuZGlmCiAK
IHZvaWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6Y2xpcFBhdGhBbnRpQWxpYXNlZChjb25zdCBTa1Bh
dGgmIGNsaXBQYXRoKQogewpAQCAtMzAzLDEyICsyOTEsMTAgQEAgdm9pZCBQbGF0Zm9ybUNvbnRl
eHRTa2lhOjpjbGlwUGF0aEFudGlBbGlhc2VkKGNvbnN0IFNrUGF0aCYgY2xpcFBhdGgpCiAKIHZv
aWQgUGxhdGZvcm1Db250ZXh0U2tpYTo6cmVzdG9yZSgpCiB7Ci0jaWYgT1MoTElOVVgpIHx8IE9T
KFdJTkRPV1MpCiAgICAgaWYgKCFtX3N0YXRlLT5tX2ltYWdlQnVmZmVyQ2xpcC5lbXB0eSgpKSB7
CiAgICAgICAgIGFwcGx5Q2xpcEZyb21JbWFnZShtX3N0YXRlLT5tX2NsaXAsIG1fc3RhdGUtPm1f
aW1hZ2VCdWZmZXJDbGlwKTsKICAgICAgICAgY2FudmFzKCktPnJlc3RvcmUoKTsKICAgICB9Ci0j
ZW5kaWYKIAogICAgIGlmICghbV9zdGF0ZS0+bV9hbnRpQWxpYXNDbGlwUGF0aHMuaXNFbXB0eSgp
KQogICAgICAgICBhcHBseUFudGlBbGlhc2VkQ2xpcFBhdGhzKG1fc3RhdGUtPm1fYW50aUFsaWFz
Q2xpcFBhdGhzKTsKQEAgLTYyNyw3ICs2MTMsNiBAQCBib29sIFBsYXRmb3JtQ29udGV4dFNraWE6
Omhhc0ltYWdlUmVzYW1wbGluZ0hpbnQoKSBjb25zdAogICAgIHJldHVybiAhbV9pbWFnZVJlc2Ft
cGxpbmdIaW50U3JjU2l6ZS5pc0VtcHR5KCkgJiYgIW1faW1hZ2VSZXNhbXBsaW5nSGludERzdFNp
emUuaXNFbXB0eSgpOwogfQogCi0jaWYgT1MoTElOVVgpIHx8IE9TKFdJTkRPV1MpCiB2b2lkIFBs
YXRmb3JtQ29udGV4dFNraWE6OmFwcGx5Q2xpcEZyb21JbWFnZShjb25zdCBGbG9hdFJlY3QmIHJl
Y3QsIGNvbnN0IFNrQml0bWFwJiBpbWFnZUJ1ZmZlcikKIHsKICAgICAvLyBOT1RFOiB0aGlzIGFz
c3VtZXMgdGhlIGltYWdlIG1hc2sgY29udGFpbnMgb3BhcXVlIGJsYWNrIGZvciB0aGUgcG9ydGlv
bnMgdGhhdCBhcmUgdG8gYmUgc2hvd24sIGFzIHN1Y2ggd2UKQEAgLTYzNiw3ICs2MjEsNiBAQCB2
b2lkIFBsYXRmb3JtQ29udGV4dFNraWE6OmFwcGx5Q2xpcEZyb21JbWFnZShjb25zdCBGbG9hdFJl
Y3QmIHJlY3QsIGNvbnN0IFNrQml0bQogICAgIHBhaW50LnNldFhmZXJtb2RlTW9kZShTa1hmZXJt
b2RlOjprRHN0SW5fTW9kZSk7CiAgICAgbV9jYW52YXMtPmRyYXdCaXRtYXAoaW1hZ2VCdWZmZXIs
IFNrRmxvYXRUb1NjYWxhcihyZWN0LngoKSksIFNrRmxvYXRUb1NjYWxhcihyZWN0LnkoKSksICZw
YWludCk7CiB9Ci0jZW5kaWYKIAogdm9pZCBQbGF0Zm9ybUNvbnRleHRTa2lhOjphcHBseUFudGlB
bGlhc2VkQ2xpcFBhdGhzKFdURjo6VmVjdG9yPFNrUGF0aD4mIHBhdGhzKQogewpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9QbGF0Zm9ybUNvbnRleHRTa2lhLmgKaW5k
ZXggMjYwNjI0MDI0YjEzNGYwZDdkMjBjMTg2ZGZjODM2MTUyYzU1NWU0Ny4uYjkyMzBlZjIwMmI0
YWMzYTM0NzMxMjBmOWIxOTkyNTRkMzkyNTYxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL1BsYXRmb3JtQ29udGV4dFNraWEuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvUGxhdGZvcm1Db250ZXh0U2tpYS5oCkBAIC03OCw3ICs3OCw2IEBA
IHB1YmxpYzoKICAgICAvLyB0byB0aGUgY29uc3RydWN0b3IuCiAgICAgdm9pZCBzZXRDYW52YXMo
c2tpYTo6UGxhdGZvcm1DYW52YXMqKTsKIAotI2lmIE9TKFdJTkRPV1MpCiAgICAgLy8gSWYgZmFs
c2Ugd2UncmUgcmVuZGVyaW5nIHRvIGEgR3JhcGhpY3NDb250ZXh0IGZvciBhIHdlYiBwYWdlLCBp
ZiBmYWxzZQogICAgIC8vIHdlJ3JlIG5vdCAoYXMgaXMgdGhlIGNhc2Ugd2hlbiByZW5kZXJpbmcg
dG8gYSBjYW52YXMgb2JqZWN0KS4KICAgICAvLyBJZiB0aGlzIGlzIHRydWUgdGhlIGNvbnRlbnRz
IGhhdmUgbm90IGJlZW4gbWFya2VkIHVwIHdpdGggdGhlIG1hZ2ljCkBAIC04Niw3ICs4NSw2IEBA
IHB1YmxpYzoKICAgICAvLyBjb3JyZWN0bHkgdXBkYXRlZC4KICAgICB2b2lkIHNldERyYXdpbmdU
b0ltYWdlQnVmZmVyKGJvb2wpOwogICAgIGJvb2wgaXNEcmF3aW5nVG9JbWFnZUJ1ZmZlcigpIGNv
bnN0OwotI2VuZGlmCiAKICAgICB2b2lkIHNhdmUoKTsKICAgICB2b2lkIHJlc3RvcmUoKTsKQEAg
LTk1LDkgKzkzLDcgQEAgcHVibGljOgogICAgIC8vIHxyZWN0fC4gVGhpcyBsYXllciBpcyBpbXBs
aWNpdGx5IHJlc3RvcmVkIHdoZW4gdGhlIG5leHQgcmVzdG9yZSBpcwogICAgIC8vIGludm9rZWQu
CiAgICAgLy8gTk9URTogfGltYWdlQnVmZmVyfCBtYXkgYmUgZGVsZXRlZCBiZWZvcmUgdGhlIHxy
ZXN0b3JlfCBpcyBpbnZva2VkLgotI2lmIE9TKExJTlVYKSB8fCBPUyhXSU5ET1dTKQogICAgIHZv
aWQgYmVnaW5MYXllckNsaXBwZWRUb0ltYWdlKGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEltYWdl
QnVmZmVyKik7Ci0jZW5kaWYKICAgICB2b2lkIGNsaXBQYXRoQW50aUFsaWFzZWQoY29uc3QgU2tQ
YXRoJik7CiAKICAgICAvLyBTZXRzIHVwIHRoZSBjb21tb24gZmxhZ3Mgb24gYSBwYWludCBmb3Ig
YW50aWFsaWFzaW5nLCBlZmZlY3RzLCBldGMuCkBAIC0xOTIsMTEgKzE4OCw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHN5bmNTb2Z0d2FyZUNhbnZhcygpIGNvbnN0OwogCiBwcml2YXRlOgotI2lmIE9T
KExJTlVYKSB8fCBPUyhXSU5ET1dTKQogICAgIC8vIFVzZWQgd2hlbiByZXN0b3JpbmcgYW5kIHRo
ZSBzdGF0ZSBoYXMgYW4gaW1hZ2UgY2xpcC4gT25seSBzaG93cyB0aGUgcGl4ZWxzIGluCiAgICAg
Ly8gbV9jYW52YXMgdGhhdCBhcmUgYWxzbyBpbiBpbWFnZUJ1ZmZlci4KICAgICB2b2lkIGFwcGx5
Q2xpcEZyb21JbWFnZShjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBTa0JpdG1hcCYpOwotI2VuZGlm
CiAgICAgdm9pZCBhcHBseUFudGlBbGlhc2VkQ2xpcFBhdGhzKFdURjo6VmVjdG9yPFNrUGF0aD4m
IHBhdGhzKTsKIAogICAgIHZvaWQgdXBsb2FkU29mdHdhcmVUb0hhcmR3YXJlKENvbXBvc2l0ZU9w
ZXJhdG9yKSBjb25zdDsKQEAgLTIyMiw5ICsyMTYsNyBAQCBwcml2YXRlOgogICAgIC8vIFZhbHVl
cyBhcmUgdXNlZCBpbiBJbWFnZVNraWEuY3BwCiAgICAgSW50U2l6ZSBtX2ltYWdlUmVzYW1wbGlu
Z0hpbnRTcmNTaXplOwogICAgIEZsb2F0U2l6ZSBtX2ltYWdlUmVzYW1wbGluZ0hpbnREc3RTaXpl
OwotI2lmIE9TKFdJTkRPV1MpCiAgICAgYm9vbCBtX2RyYXdpbmdUb0ltYWdlQnVmZmVyOwotI2Vu
ZGlmCiAgICAgYm9vbCBtX3VzZUdQVTsKICAgICBPd25QdHI8R0xFUzJDYW52YXM+IG1fZ3B1Q2Fu
dmFzOwogICAgIG11dGFibGUgZW51bSB7IE5vbmUsIFNvZnR3YXJlLCBNaXhlZCwgSGFyZHdhcmUg
fSBtX2JhY2tpbmdTdG9yZVN0YXRlOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>