<?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>142345</bug_id>
          
          <creation_ts>2015-03-05 08:36:21 -0800</creation_ts>
          <short_desc>REGRESSION(r180924): ASSERTION FAILED: !from.isEmpty() in WebCore::TransformationMatrix::rectToRect</short_desc>
          <delta_ts>2015-03-06 09:15:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mrobinson</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1074512</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 08:36:21 -0800</bug_when>
    <thetext>It&apos;s causing a lot of crashes running the layout tests in the debug bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074516</commentid>
    <comment_count>1</comment_count>
      <attachid>247954</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 08:41:14 -0800</bug_when>
    <thetext>Created attachment 247954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074532</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-03-05 09:07:11 -0800</bug_when>
    <thetext>Do you mind pasting the stack trace here, so that I can better understand the failure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074540</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 09:20:51 -0800</bug_when>
    <thetext>03:14:52.682 25393 worker/1 animations/matrix-anim.html crashed, (stderr lines):
03:14:52.682 25393   ASSERTION FAILED: !from.isEmpty()
03:14:52.682 25393   ../../Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp(1027) : static WebCore::TransformationMatrix WebCore::TransformationMatrix::rectToRect(const WebCore::FloatRect&amp;, const WebCore::FloatRect&amp;)
03:14:52.682 25393   1   0x2b772cbd3d93 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(WTFCrash+0x1e) [0x2b772cbd3d93]
03:14:52.682 25393   2   0x2b7726aff222 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore20TransformationMatrix10rectToRectERKNS_9FloatRectES3_+0x48) [0x2b7726aff222]
03:14:52.682 25393   3   0x2b7726aefc29 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore30TextureMapperTiledBackingStore24adjustedTransformForRectERKNS_9FloatRectE+0x51) [0x2b7726aefc29]
03:14:52.682 25393   4   0x2b7726aefca3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore30TextureMapperTiledBackingStore20paintToTextureMapperEPNS_13TextureMapperERKNS_9FloatRectERKNS_20TransformationMatrixEf+0x69) [0x2b7726aefca3]
03:14:52.682 25393   5   0x2b7726ae905f /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer9paintSelfERKNS_25TextureMapperPaintOptionsE+0x3c5) [0x2b7726ae905f]
03:14:52.682 25393   6   0x2b7726ae9407 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer20paintSelfAndChildrenERKNS_25TextureMapperPaintOptionsE+0x33) [0x2b7726ae9407]
03:14:52.682 25393   7   0x2b7726ae98d9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer31paintSelfAndChildrenWithReplicaERKNS_25TextureMapperPaintOptionsE+0xf5) [0x2b7726ae98d9]
03:14:52.682 25393   8   0x2b7726aeb4e8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer14paintRecursiveERKNS_25TextureMapperPaintOptionsE+0xa0) [0x2b7726aeb4e8]
03:14:52.682 25393   9   0x2b7726ae95d0 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer20paintSelfAndChildrenERKNS_25TextureMapperPaintOptionsE+0x1fc) [0x2b7726ae95d0]
03:14:52.682 25393   10  0x2b7726ae98d9 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer31paintSelfAndChildrenWithReplicaERKNS_25TextureMapperPaintOptionsE+0xf5) [0x2b7726ae98d9]
03:14:52.682 25393   11  0x2b7726aeb4e8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer14paintRecursiveERKNS_25TextureMapperPaintOptionsE+0xa0) [0x2b7726aeb4e8]
03:14:52.682 25393   12  0x2b7726ae89dc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN7WebCore18TextureMapperLayer5paintEv+0x78) [0x2b7726ae89dc]
03:14:52.682 25393   13  0x2b7725d9f7ae /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16LayerTreeHostGtk24compositeLayersToContextENS0_16CompositePurposeE+0x100) [0x2b7725d9f7ae]
03:14:52.682 25393   14  0x2b7725d9f89a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16LayerTreeHostGtk20flushAndRenderLayersEv+0x9c) [0x2b7725d9f89a]
03:14:52.682 25393   15  0x2b7725d9f2cc /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16LayerTreeHostGtk20layerFlushTimerFiredEv+0x3e) [0x2b7725d9f2cc]
03:14:52.682 25393   16  0x2b7725da0fbd /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZNKSt7_Mem_fnIMN6WebKit16LayerTreeHostGtkEFvvEEclIJEvEEvPS1_DpOT_+0x65) [0x2b7725da0fbd]
03:14:52.682 25393   17  0x2b7725da0f1c /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZNSt5_BindIFSt7_Mem_fnIMN6WebKit16LayerTreeHostGtkEFvvEEPS2_EE6__callIvJEJLm0EEEET_OSt5tupleIJDpT0_EESt12_Index_tupleIJXspT1_EEE+0x48) [0x2b7725da0f1c]
03:14:52.682 25393   18  0x2b7725da0dae /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZNSt5_BindIFSt7_Mem_fnIMN6WebKit16LayerTreeHostGtkEFvvEEPS2_EEclIJEvEET0_DpOT_+0x28) [0x2b7725da0dae]
03:14:52.682 25393   19  0x2b7725da0aa1 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZNSt17_Function_handlerIFvvESt5_BindIFSt7_Mem_fnIMN6WebKit16LayerTreeHostGtkEFvvEEPS4_EEE9_M_invokeERKSt9_Any_data+0x20) [0x2b7725da0aa1]
03:14:52.682 25393   20  0x2b7725922cde /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZNKSt8functionIFvvEEclEv+0x32) [0x2b7725922cde]
03:14:52.683 25393   21  0x2b772cc1c9fb /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF15GMainLoopSource12voidCallbackEv+0x6d) [0x2b772cc1c9fb]
03:14:52.683 25393   22  0x2b772cc1d0fd /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libjavascriptcoregtk-4.0.so.18(_ZN3WTF15GMainLoopSource18voidSourceCallbackEPS0_+0x23) [0x2b772cc1d0fd]
03:14:52.683 25393   23  0x2b772f8662c8 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib64/libglib-2.0.so.0(+0x562c8) [0x2b772f8662c8]
03:14:52.683 25393   24  0x2b772f8639ef /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib64/libglib-2.0.so.0(+0x539ef) [0x2b772f8639ef]
03:14:52.683 25393   25  0x2b772f864758 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib64/libglib-2.0.so.0(g_main_context_dispatch+0x33) [0x2b772f864758]
03:14:52.683 25393   26  0x2b772f86494a /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib64/libglib-2.0.so.0(+0x5494a) [0x2b772f86494a]
03:14:52.683 25393   27  0x2b772f864d73 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/DependenciesGTK/Root/lib64/libglib-2.0.so.0(g_main_loop_run+0x1d9) [0x2b772f864d73]
03:14:52.683 25393   28  0x2b77278b674e /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN3WTF7RunLoop3runEv+0x42) [0x2b77278b674e]
03:14:52.683 25393   29  0x2b7725d9c558 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(_ZN6WebKit16ChildProcessMainINS_10WebProcessENS_14WebProcessMainEEEiiPPc+0x82) [0x2b7725d9c558]
03:14:52.683 25393   30  0x2b7725d9c3c3 /home/slave/webkitgtk/gtk-linux-64-debug/build/WebKitBuild/Debug/lib/libwebkit2gtk-4.0.so.37(WebProcessMainUnix+0x20) [0x2b7725d9c3c3]
03:14:52.683 25393   31  0x400c51 /home/slave/webkitgtk/gtk-linux-64-debug-tests/build/WebKitBuild/Debug/bin/WebKitWebProcess(main+0x34) [0x400c51]
03:14:52.687 25270 [1955/33924] animations/matrix-anim.html failed unexpectedly (WebProcess crashed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074572</commentid>
    <comment_count>4</comment_count>
      <attachid>247954</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-03-05 10:29:56 -0800</bug_when>
    <thetext>Comment on attachment 247954
Patch

Okay. This is my suggestion for how to make this order independent:

1. In LayerTreeHostGtk::initialize, exit early if there is no contextID yet, but set a new boolean m_needsLazyInitialization to true.
2. In LayerTreeHostGtk::setNativeSurfaceHandleForCompositing, if m_needsLazyInitialization is true, call ::initialize.
3. Keep the rest of the code in the same position.

Hopefully, the issue with LayerTreeHostGtk::compositeLayersToContext will disappear because the first call to scheduleLayerFlush won&apos;t happen until ::initialize doesn&apos;t return early.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074575</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 10:42:32 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 247954 [details]
&gt; Patch
&gt; 
&gt; Okay. This is my suggestion for how to make this order independent:
&gt; 
&gt; 1. In LayerTreeHostGtk::initialize, exit early if there is no contextID yet,
&gt; but set a new boolean m_needsLazyInitialization to true.
&gt; 2. In LayerTreeHostGtk::setNativeSurfaceHandleForCompositing, if
&gt; m_needsLazyInitialization is true, call ::initialize.
&gt; 3. Keep the rest of the code in the same position.
&gt; 
&gt; Hopefully, the issue with LayerTreeHostGtk::compositeLayersToContext will
&gt; disappear because the first call to scheduleLayerFlush won&apos;t happen until
&gt; ::initialize doesn&apos;t return early.

This is not possible, when the drawing area creates the LayerTreeHost it expects it to be initialized, because the initialize method is called from the ::create(). What would be do in LayerTreeHostGtk::setRootCompositingLayer() for example if we are not initialized yet? Do we need to check it on every single method?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074589</commentid>
    <comment_count>6</comment_count>
      <attachid>247971</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 11:06:54 -0800</bug_when>
    <thetext>Created attachment 247971
Updated patch

Added an early return to not schedule layer flushes if the texture mapper hasn&apos;t been created yet, as suggested by Martin on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074590</commentid>
    <comment_count>7</comment_count>
      <attachid>247971</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-03-05 11:09:03 -0800</bug_when>
    <thetext>Comment on attachment 247971
Updated patch

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

Looks good! One minor suggestion...

&gt; Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:377
&gt; +    ASSERT(m_isValid);
&gt; +    m_textureMapper = TextureMapper::create(TextureMapper::OpenGLMode);

Might want to add ASSERT(!m_textureMapper); here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074591</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 11:09:36 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 247971 [details]
&gt; Updated patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=247971&amp;action=review
&gt; 
&gt; Looks good! One minor suggestion...
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/gtk/LayerTreeHostGtk.cpp:377
&gt; &gt; +    ASSERT(m_isValid);
&gt; &gt; +    m_textureMapper = TextureMapper::create(TextureMapper::OpenGLMode);
&gt; 
&gt; Might want to add ASSERT(!m_textureMapper); here as well.

good point!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074839</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-05 22:16:36 -0800</bug_when>
    <thetext>Committed r181138: &lt;http://trac.webkit.org/changeset/181138&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074876</commentid>
    <comment_count>10</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-06 01:11:51 -0800</bug_when>
    <thetext>Debug bot is still exiting early after 50 crashes, but I don&apos;t see more ASSERTION FAILED: !from.isEmpty() in WebCore::TransformationMatrix::rectToRect, so there must be something else. Maybe bug #142333</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074902</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-06 05:17:43 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Debug bot is still exiting early after 50 crashes, but I don&apos;t see more
&gt; ASSERTION FAILED: !from.isEmpty() in
&gt; WebCore::TransformationMatrix::rectToRect, so there must be something else.
&gt; Maybe bug #142333

Ok, current crashes are unrelated, but they were hidden by this ASSERT, I&apos;m bisecting now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1074954</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-06 09:15:07 -0800</bug_when>
    <thetext>So, new crashes were because of r181139, that has been recently rolled out.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247954</attachid>
            <date>2015-03-05 08:41:14 -0800</date>
            <delta_ts>2015-03-05 11:06:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-texture-mapper-asserts.diff</filename>
            <type>text/plain</type>
            <size>5138</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxZjI3ZTI0Li4xMTQyNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTUtMDMtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjE4MDkyNCk6IEFTU0VSVElPTiBGQUlMRUQ6ICFmcm9t
LmlzRW1wdHkoKSBpbiBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMzQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3YXMg
Y2F1c2VkIGJ5IHIxODA5MjQgdGhhdCBwb3N0cG9uZXMgdGhlIGNyZWF0aW9uIG9mIHRoZQorICAg
ICAgICBUZXh0dXJlTWFwcGVyLCB3aGljaCBjb3VsZCBjYXVzZSB0aGF0IGEgbGF5ZXIgaGFzIG5v
dCB5ZXQgYSBzaXplCisgICAgICAgIHdoZW4gVGV4dHVyZU1hcHBlcjo6cGFpbnQoKSBpcyBjYWxs
ZWQuIFRoaXMgcGF0Y2ggbW92ZXMgdGhlCisgICAgICAgIGNyZWF0aW9uIG9mIHRoZSBUZXh0dXJl
TWFwcGVyIHRvCisgICAgICAgIExheWVyVHJlZUhvc3RHdGs6OnNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZygpLCBzbyB0aGF0CisgICAgICAgIGl0J3MgY3JlYXRlZCBhcyBzb29u
IGFzIGl0J3MgcG9zc2libGUgdG8gY3JlYXRlLiBUaGlzIG1ldGhvZCBpcworICAgICAgICBjYWxs
ZWQgYnkgdGhlIGRyYXdpbmcgYXJlYSByaWdodCBhZnRlciBjcmVhdGluZyB0aGUKKyAgICAgICAg
TGF5ZXJUcmVlSG9zdEd0ayBpZiBpdCBhbHJlYWR5IGhhdmUgYSBoYW5kbGVyLCBvciB3aGVuIHRo
ZSBoYW5kbGUKKyAgICAgICAgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RHdGs6OmluaXRpYWxpemUpOiBSZW1vdmUgdGhlCisg
ICAgICAgIG5zdXJlVGV4dHVyZU1hcHBlciBjYWxsIGJlY2F1c2UgYXQgdGhpcyBwb2ludCB0aGUg
bGF5ZXIgY29udGV4dCBJRAorICAgICAgICBpcyBhbHdheXMgMCwgc28gaXQncyBpbXBvc3NpYmxl
IHRvIGNyZWF0ZSB0aGUgVGV4dHVyZU1hcHBlci4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
SG9zdEd0azo6Y29tcG9zaXRlTGF5ZXJzVG9Db250ZXh0KTogUmVtb3ZlIHRoZQorICAgICAgICBl
bnN1cmVUZXh0dXJlTWFwcGVyIGNhbGwgZnJvbSBoZXJlIHRvbywgc2luY2UgYXQgdGhpcyBwb2lu
dCwgaWYgd2UKKyAgICAgICAgaGF2ZSBhIGNvbnRleHQsIHdlIHNob3VsZCBhbHNvIGhhdmUgYSBU
ZXh0dXJlTWFwcGVyLiBBZGQgYW4gQVNTRVJUCisgICAgICAgIHJpZ2h0IGJlZm9yZSB1c2luZyB0
aGUgVGV4dHVyZU1hcHBlci4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0azo6c2V0
TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgQ3JlYXRlIHRoZSBU
ZXh0dXJlTWFwcGVyIGhlcmUuCisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RHdGs6OmVu
c3VyZVRleHR1cmVNYXBwZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorCiAyMDE1LTAzLTA1ICBNaWNoYWVsIENhdGFuemFy
byAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gRGlzYWJsZSBSQzQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJU
cmVlSG9zdEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwCmluZGV4IDk2MjQyOTYuLjkyZjc1OTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0
R3RrLmNwcApAQCAtOTIsMTcgKzkyLDYgQEAgYm9vbCBMYXllclRyZWVIb3N0R3RrOjptYWtlQ29u
dGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
OwogfQogCi12b2lkIExheWVyVHJlZUhvc3RHdGs6OmVuc3VyZVRleHR1cmVNYXBwZXIoKQotewot
ICAgIGlmIChtX3RleHR1cmVNYXBwZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCht
X2lzVmFsaWQpOwotICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShU
ZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKLSAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVy
R0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxp
YXNpbmcodHJ1ZSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI+KCpt
X3Jvb3RMYXllcikubGF5ZXIoKS5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQo
KSk7Ci19Ci0KIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV9y
b290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
KnRoaXMpOwpAQCAtMTI0LDEzICsxMTMsNiBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6OmluaXRp
YWxpemUoKQogCiAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkKG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci5nZXQoKSk7CiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVk
c0Rpc3BsYXkoKTsKLQotICAgIC8vIFRoZSBjcmVhdGlvbiBvZiB0aGUgVGV4dHVyZU1hcHBlciBu
ZWVkcyBhbiBhY3RpdmUgT3BlbkdMIGNvbnRleHQuCi0gICAgaWYgKCFtYWtlQ29udGV4dEN1cnJl
bnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZW5zdXJlVGV4dHVyZU1hcHBlcigpOwotICAg
IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCiBMYXllclRyZWVIb3N0R3RrOjp+TGF5ZXJUcmVl
SG9zdEd0aygpCkBAIC0yOTYsOCArMjc4LDYgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpjb21w
b3NpdGVMYXllcnNUb0NvbnRleHQoQ29tcG9zaXRlUHVycG9zZSBwdXJwb3NlKQogICAgIGlmICgh
bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVuc3VyZVRleHR1
cmVNYXBwZXIoKTsKLQogICAgIC8vIFRoZSB3aW5kb3cgc2l6ZSBtYXkgYmUgb3V0IG9mIHN5bmMg
d2l0aCB0aGUgcGFnZSBzaXplIGF0IHRoaXMgcG9pbnQsIGFuZCBnZXR0aW5nCiAgICAgLy8gdGhl
IHZpZXdwb3J0IHBhcmFtZXRlcnMgaW5jb3JyZWN0LCBtZWFucyB0aGF0IHRoZSBjb250ZW50IHdp
bGwgYmUgbWlzcGxhY2VkLiBUaHVzCiAgICAgLy8gd2Ugc2V0IHRoZSB2aWV3cG9ydCBwYXJhbWV0
ZXJzIGRpcmVjdGx5IGZyb20gdGhlIHdpbmRvdyBzaXplLgpAQCAtMzA5LDYgKzI4OSw3IEBAIHZv
aWQgTGF5ZXJUcmVlSG9zdEd0azo6Y29tcG9zaXRlTGF5ZXJzVG9Db250ZXh0KENvbXBvc2l0ZVB1
cnBvc2UgcHVycG9zZSkKICAgICAgICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKICAg
ICB9CiAKKyAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsKICAgICBtX3RleHR1cmVNYXBwZXIt
PmJlZ2luUGFpbnRpbmcoKTsKICAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cj4oKm1fcm9vdExheWVyKS5sYXllcigpLnBhaW50KCk7CiAgICAgbV90ZXh0dXJlTWFwcGVyLT5l
bmRQYWludGluZygpOwpAQCAtMzg3LDYgKzM2OCwxNyBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6
OnNldFZpZXdPdmVybGF5Um9vdExheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVy
bAogdm9pZCBMYXllclRyZWVIb3N0R3RrOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9z
aXRpbmcodWludDY0X3QgaGFuZGxlKQogewogICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0
SUQgPSBoYW5kbGU7CisKKyAgICAvLyBUaGUgY3JlYXRpb24gb2YgdGhlIFRleHR1cmVNYXBwZXIg
bmVlZHMgYW4gYWN0aXZlIE9wZW5HTCBjb250ZXh0LgorICAgIGlmICghbWFrZUNvbnRleHRDdXJy
ZW50KCkpCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VSVChtX2lzVmFsaWQpOworICAgIG1f
dGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVu
R0xNb2RlKTsKKyAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBw
ZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CisgICAg
ZG93bmNhc3Q8R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI+KCptX3Jvb3RMYXllcikubGF5ZXIo
KS5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQoKSk7CisKKyAgICBzY2hlZHVs
ZUxheWVyRmx1c2goKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5o
CmluZGV4IDEwZWFjOGMuLjY5NGMzNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC04Nyw3ICs4Nyw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZCgpOwogCiAgICAgYm9v
bCBtYWtlQ29udGV4dEN1cnJlbnQoKTsKLSAgICB2b2lkIGVuc3VyZVRleHR1cmVNYXBwZXIoKTsK
IAogICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OwogICAgIGJvb2wgbV9p
c1ZhbGlkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247971</attachid>
            <date>2015-03-05 11:06:54 -0800</date>
            <delta_ts>2015-03-05 11:09:03 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk2-texture-mapper-asserts.diff</filename>
            <type>text/plain</type>
            <size>5513</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxZjI3ZTI0Li4xMTQyNWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTUtMDMtMDUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJFR1JFU1NJT04ocjE4MDkyNCk6IEFTU0VSVElPTiBGQUlMRUQ6ICFmcm9t
LmlzRW1wdHkoKSBpbiBXZWJDb3JlOjpUcmFuc2Zvcm1hdGlvbk1hdHJpeDo6cmVjdFRvUmVjdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQyMzQ1CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyB3YXMg
Y2F1c2VkIGJ5IHIxODA5MjQgdGhhdCBwb3N0cG9uZXMgdGhlIGNyZWF0aW9uIG9mIHRoZQorICAg
ICAgICBUZXh0dXJlTWFwcGVyLCB3aGljaCBjb3VsZCBjYXVzZSB0aGF0IGEgbGF5ZXIgaGFzIG5v
dCB5ZXQgYSBzaXplCisgICAgICAgIHdoZW4gVGV4dHVyZU1hcHBlcjo6cGFpbnQoKSBpcyBjYWxs
ZWQuIFRoaXMgcGF0Y2ggbW92ZXMgdGhlCisgICAgICAgIGNyZWF0aW9uIG9mIHRoZSBUZXh0dXJl
TWFwcGVyIHRvCisgICAgICAgIExheWVyVHJlZUhvc3RHdGs6OnNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZygpLCBzbyB0aGF0CisgICAgICAgIGl0J3MgY3JlYXRlZCBhcyBzb29u
IGFzIGl0J3MgcG9zc2libGUgdG8gY3JlYXRlLiBUaGlzIG1ldGhvZCBpcworICAgICAgICBjYWxs
ZWQgYnkgdGhlIGRyYXdpbmcgYXJlYSByaWdodCBhZnRlciBjcmVhdGluZyB0aGUKKyAgICAgICAg
TGF5ZXJUcmVlSG9zdEd0ayBpZiBpdCBhbHJlYWR5IGhhdmUgYSBoYW5kbGVyLCBvciB3aGVuIHRo
ZSBoYW5kbGUKKyAgICAgICAgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgVUkgcHJvY2Vzcy4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RHdGs6OmluaXRpYWxpemUpOiBSZW1vdmUgdGhlCisg
ICAgICAgIG5zdXJlVGV4dHVyZU1hcHBlciBjYWxsIGJlY2F1c2UgYXQgdGhpcyBwb2ludCB0aGUg
bGF5ZXIgY29udGV4dCBJRAorICAgICAgICBpcyBhbHdheXMgMCwgc28gaXQncyBpbXBvc3NpYmxl
IHRvIGNyZWF0ZSB0aGUgVGV4dHVyZU1hcHBlci4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
SG9zdEd0azo6Y29tcG9zaXRlTGF5ZXJzVG9Db250ZXh0KTogUmVtb3ZlIHRoZQorICAgICAgICBl
bnN1cmVUZXh0dXJlTWFwcGVyIGNhbGwgZnJvbSBoZXJlIHRvbywgc2luY2UgYXQgdGhpcyBwb2lu
dCwgaWYgd2UKKyAgICAgICAgaGF2ZSBhIGNvbnRleHQsIHdlIHNob3VsZCBhbHNvIGhhdmUgYSBU
ZXh0dXJlTWFwcGVyLiBBZGQgYW4gQVNTRVJUCisgICAgICAgIHJpZ2h0IGJlZm9yZSB1c2luZyB0
aGUgVGV4dHVyZU1hcHBlci4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlSG9zdEd0azo6c2V0
TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKToKKyAgICAgICAgQ3JlYXRlIHRoZSBU
ZXh0dXJlTWFwcGVyIGhlcmUuCisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUhvc3RHdGs6OmVu
c3VyZVRleHR1cmVNYXBwZXIpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oOgorCiAyMDE1LTAzLTA1ICBNaWNoYWVsIENhdGFuemFy
byAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBbU09VUF0gRGlzYWJsZSBSQzQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJU
cmVlSG9zdEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvZ3RrL0xh
eWVyVHJlZUhvc3RHdGsuY3BwCmluZGV4IDk2MjQyOTYuLjUwMGZjZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2d0ay9MYXllclRyZWVIb3N0
R3RrLmNwcApAQCAtOTIsMTcgKzkyLDYgQEAgYm9vbCBMYXllclRyZWVIb3N0R3RrOjptYWtlQ29u
dGV4dEN1cnJlbnQoKQogICAgIHJldHVybiBtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgp
OwogfQogCi12b2lkIExheWVyVHJlZUhvc3RHdGs6OmVuc3VyZVRleHR1cmVNYXBwZXIoKQotewot
ICAgIGlmIChtX3RleHR1cmVNYXBwZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCht
X2lzVmFsaWQpOwotICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVNYXBwZXI6OmNyZWF0ZShU
ZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKLSAgICBzdGF0aWNfY2FzdDxUZXh0dXJlTWFwcGVy
R0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdlRGlzdGFuY2VBbnRpYWxp
YXNpbmcodHJ1ZSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllclRleHR1cmVNYXBwZXI+KCpt
X3Jvb3RMYXllcikubGF5ZXIoKS5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4dHVyZU1hcHBlci5nZXQo
KSk7Ci19Ci0KIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6aW5pdGlhbGl6ZSgpCiB7CiAgICAgbV9y
b290TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUoZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwg
KnRoaXMpOwpAQCAtMTI0LDEzICsxMTMsNiBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6OmluaXRp
YWxpemUoKQogCiAgICAgbV9yb290TGF5ZXItPmFkZENoaWxkKG1fbm9uQ29tcG9zaXRlZENvbnRl
bnRMYXllci5nZXQoKSk7CiAgICAgbV9ub25Db21wb3NpdGVkQ29udGVudExheWVyLT5zZXROZWVk
c0Rpc3BsYXkoKTsKLQotICAgIC8vIFRoZSBjcmVhdGlvbiBvZiB0aGUgVGV4dHVyZU1hcHBlciBu
ZWVkcyBhbiBhY3RpdmUgT3BlbkdMIGNvbnRleHQuCi0gICAgaWYgKCFtYWtlQ29udGV4dEN1cnJl
bnQoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZW5zdXJlVGV4dHVyZU1hcHBlcigpOwotICAg
IHNjaGVkdWxlTGF5ZXJGbHVzaCgpOwogfQogCiBMYXllclRyZWVIb3N0R3RrOjp+TGF5ZXJUcmVl
SG9zdEd0aygpCkBAIC0yOTYsOCArMjc4LDYgQEAgdm9pZCBMYXllclRyZWVIb3N0R3RrOjpjb21w
b3NpdGVMYXllcnNUb0NvbnRleHQoQ29tcG9zaXRlUHVycG9zZSBwdXJwb3NlKQogICAgIGlmICgh
bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVuc3VyZVRleHR1
cmVNYXBwZXIoKTsKLQogICAgIC8vIFRoZSB3aW5kb3cgc2l6ZSBtYXkgYmUgb3V0IG9mIHN5bmMg
d2l0aCB0aGUgcGFnZSBzaXplIGF0IHRoaXMgcG9pbnQsIGFuZCBnZXR0aW5nCiAgICAgLy8gdGhl
IHZpZXdwb3J0IHBhcmFtZXRlcnMgaW5jb3JyZWN0LCBtZWFucyB0aGF0IHRoZSBjb250ZW50IHdp
bGwgYmUgbWlzcGxhY2VkLiBUaHVzCiAgICAgLy8gd2Ugc2V0IHRoZSB2aWV3cG9ydCBwYXJhbWV0
ZXJzIGRpcmVjdGx5IGZyb20gdGhlIHdpbmRvdyBzaXplLgpAQCAtMzA5LDYgKzI4OSw3IEBAIHZv
aWQgTGF5ZXJUcmVlSG9zdEd0azo6Y29tcG9zaXRlTGF5ZXJzVG9Db250ZXh0KENvbXBvc2l0ZVB1
cnBvc2UgcHVycG9zZSkKICAgICAgICAgZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUKTsKICAg
ICB9CiAKKyAgICBBU1NFUlQobV90ZXh0dXJlTWFwcGVyKTsKICAgICBtX3RleHR1cmVNYXBwZXIt
PmJlZ2luUGFpbnRpbmcoKTsKICAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyVGV4dHVyZU1hcHBl
cj4oKm1fcm9vdExheWVyKS5sYXllcigpLnBhaW50KCk7CiAgICAgbV90ZXh0dXJlTWFwcGVyLT5l
bmRQYWludGluZygpOwpAQCAtMzQ0LDcgKzMyNSw3IEBAIHZvaWQgTGF5ZXJUcmVlSG9zdEd0azo6
Zmx1c2hBbmRSZW5kZXJMYXllcnMoKQogCiB2b2lkIExheWVyVHJlZUhvc3RHdGs6OnNjaGVkdWxl
TGF5ZXJGbHVzaCgpCiB7Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5hYmxlZCkK
KyAgICBpZiAoIW1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkIHx8ICFtX3RleHR1cmVNYXBw
ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdlIHVzZSBhIEdMaWIgdGltZXIgYmVjYXVz
ZSBvdGhlcndpc2UgR1RLKyBldmVudCBoYW5kbGluZyBkdXJpbmcgZHJhZ2dpbmcgY2FuIHN0YXJ2
ZSBXZWJDb3JlIHRpbWVycywgd2hpY2ggaGF2ZSBhIGxvd2VyIHByaW9yaXR5LgpAQCAtMzg3LDYg
KzM2OCwxNyBAQCB2b2lkIExheWVyVHJlZUhvc3RHdGs6OnNldFZpZXdPdmVybGF5Um9vdExheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybAogdm9pZCBMYXllclRyZWVIb3N0R3Rr
OjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQog
ewogICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBoYW5kbGU7CisKKyAgICAvLyBU
aGUgY3JlYXRpb24gb2YgdGhlIFRleHR1cmVNYXBwZXIgbmVlZHMgYW4gYWN0aXZlIE9wZW5HTCBj
b250ZXh0LgorICAgIGlmICghbWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIEFTU0VSVChtX2lzVmFsaWQpOworICAgIG1fdGV4dHVyZU1hcHBlciA9IFRleHR1cmVN
YXBwZXI6OmNyZWF0ZShUZXh0dXJlTWFwcGVyOjpPcGVuR0xNb2RlKTsKKyAgICBzdGF0aWNfY2Fz
dDxUZXh0dXJlTWFwcGVyR0wqPihtX3RleHR1cmVNYXBwZXIuZ2V0KCkpLT5zZXRFbmFibGVFZGdl
RGlzdGFuY2VBbnRpYWxpYXNpbmcodHJ1ZSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllclRl
eHR1cmVNYXBwZXI+KCptX3Jvb3RMYXllcikubGF5ZXIoKS5zZXRUZXh0dXJlTWFwcGVyKG1fdGV4
dHVyZU1hcHBlci5nZXQoKSk7CisKKyAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvZ3RrL0xheWVyVHJlZUhvc3RHdGsuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9ndGsvTGF5ZXJUcmVlSG9zdEd0ay5oCmluZGV4IDEwZWFjOGMuLjY5NGMzNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsvTGF5ZXJU
cmVlSG9zdEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9ndGsv
TGF5ZXJUcmVlSG9zdEd0ay5oCkBAIC04Nyw3ICs4Nyw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBs
YXllckZsdXNoVGltZXJGaXJlZCgpOwogCiAgICAgYm9vbCBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
LSAgICB2b2lkIGVuc3VyZVRleHR1cmVNYXBwZXIoKTsKIAogICAgIExheWVyVHJlZUNvbnRleHQg
bV9sYXllclRyZWVDb250ZXh0OwogICAgIGJvb2wgbV9pc1ZhbGlkOwo=
</data>
<flag name="review"
          id="272898"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>