<?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>110883</bug_id>
          
          <creation_ts>2013-02-26 08:16:23 -0800</creation_ts>
          <short_desc>[OpenGL] Add state cache variables to avoid redundant changes on GraphicsContext3D</short_desc>
          <delta_ts>2014-02-05 11:18:11 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>ASSIGNED</bug_status>
          <resolution></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>110817</dependson>
          <blocked>112360</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bruno Abinader (history only)">bruno.abinader</reporter>
          <assigned_to name="Bruno Abinader (history only)">bruno.abinader</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>igor.oliveira</cc>
    
    <cc>jesus</cc>
    
    <cc>kalyan.kondapally</cc>
    
    <cc>kbr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>noam</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>842021</commentid>
    <comment_count>0</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-26 08:16:23 -0800</bug_when>
    <thetext>While profiling EFL&apos;s MiniBrowser under gDEBugger, I&apos;ve noticed quite some state change function calls were redundant. This bug intends to add more state variables inside GraphicsContext3DState to avoid redundant state changes and thus reduce amount of OpenGL calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>842034</commentid>
    <comment_count>1</comment_count>
      <attachid>190292</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-26 08:30:12 -0800</bug_when>
    <thetext>Created attachment 190292
Patch

Proposed patch (depends on bug 110817)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844070</commentid>
    <comment_count>2</comment_count>
      <attachid>190726</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-28 07:44:33 -0800</bug_when>
    <thetext>Created attachment 190726
Patch

Added state variables for gl{Enable,Disable}, simplified state variables for glPixelStorei</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844152</commentid>
    <comment_count>3</comment_count>
      <attachid>190741</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-28 09:35:41 -0800</bug_when>
    <thetext>Created attachment 190741
Patch

Fixed a minor typo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844466</commentid>
    <comment_count>4</comment_count>
      <attachid>190741</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-28 14:13:51 -0800</bug_when>
    <thetext>Comment on attachment 190741
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1114
&gt; +        GC3Denum sourceFactor;

The addition of these state variables seems fine, but please provide some indication that some of these fields are not set or used by all ports. People coming in later may find it confusing that they aren&apos;t maintained everywhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844498</commentid>
    <comment_count>5</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-28 14:46:40 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 190741 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190741&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1114
&gt; &gt; +        GC3Denum sourceFactor;
&gt; 
&gt; The addition of these state variables seems fine, but please provide some indication that some of these fields are not set or used by all ports. People coming in later may find it confusing that they aren&apos;t maintained everywhere.

Thanks for the feedback. I&apos;ll update the patch with this info as well as last minute additions I have here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844605</commentid>
    <comment_count>6</comment_count>
      <attachid>190836</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-28 16:24:44 -0800</bug_when>
    <thetext>Created attachment 190836
Patch

Updated patch w/ comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844634</commentid>
    <comment_count>7</comment_count>
      <attachid>190836</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-28 17:05:01 -0800</bug_when>
    <thetext>Comment on attachment 190836
Patch

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

Looks generally OK, but there&apos;s one bug, and one comment update needed.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1115
&gt; +        // might not be handled correctly on non-optimized GL drivers.

This still isn&apos;t clear. Could you please say something like:

The cached values below are used by some, but not all, ports to reduce redundant state transitions. Do not rely on their being up-to-date in common code.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:939
&gt; +    if (m_state.stencilFail == fail &amp;&amp; m_state.stencilZFail &amp;&amp; zfail &amp;&amp; m_state.stencilZPass == zpass)

m_state.stencilZFail == zfail</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844648</commentid>
    <comment_count>8</comment_count>
      <attachid>190855</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-02-28 17:25:05 -0800</bug_when>
    <thetext>Created attachment 190855
Patch

Updated patch w/ comment clarification and fix reviewed by Kenneth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844721</commentid>
    <comment_count>9</comment_count>
      <attachid>190855</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-02-28 19:15:26 -0800</bug_when>
    <thetext>Comment on attachment 190855
Patch

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

Sorry I didn&apos;t notice these before, but code inspection revealed a couple more bugs. I hope you&apos;ve tested this change thoroughly and that the performance gains from these changes warrant the risk of caching these values.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1091
&gt; +            , sourceFactor(GraphicsContext3D::ZERO)

This value is wrong. The initial value is GraphicsContext3D::ONE.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1097
&gt; +            , scissorHeight(0)

The scissor width and height default to the initial width and height of the drawable. I hope this cache will be correct enough.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1107
&gt; +            , viewportHeight(0)

Similar issue with the viewport width and height.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:204
&gt; +        pixelStorei(GL_PACK_ALIGNMENT, 4);

Sorry for not noticing this before -- but isn&apos;t this incorrect? You haven&apos;t changed the call to ::glPixelStorei below in the same method, so after calling this, the cached value in the pixelStoreIntMap will be incorrect. Since you&apos;re querying the GL for the value here anyway, I think you should just leave this alone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845066</commentid>
    <comment_count>10</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-01 04:45:04 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 190855 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190855&amp;action=review
&gt; 
&gt; Sorry I didn&apos;t notice these before, but code inspection revealed a couple more bugs. I hope you&apos;ve tested this change thoroughly and that the performance gains from these changes warrant the risk of caching these values.

Yes, using a CSS 3D Transform continuous animation profiled using gDEBugger I could reduce redundant state changes from ~16% of the overall GL calls to virtually 0%.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1091
&gt; &gt; +            , sourceFactor(GraphicsContext3D::ZERO)
&gt; 
&gt; This value is wrong. The initial value is GraphicsContext3D::ONE.

You&apos;re right :) Fixing on the next patch update.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1097
&gt; &gt; +            , scissorHeight(0)
&gt; 
&gt; The scissor width and height default to the initial width and height of the drawable. I hope this cache will be correct enough.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1107
&gt; &gt; +            , viewportHeight(0)
&gt; 
&gt; Similar issue with the viewport width and height.

For scissor and viewport values, as well as the *Map ones, do you agree on having some sort of init() function that could fill the initial values when the GC3DState object is created? Otherwise I may not have access to the drawable on initialization list.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:204
&gt; &gt; +        pixelStorei(GL_PACK_ALIGNMENT, 4);
&gt; 
&gt; Sorry for not noticing this before -- but isn&apos;t this incorrect? You haven&apos;t changed the call to ::glPixelStorei below in the same method, so after calling this, the cached value in the pixelStoreIntMap will be incorrect. Since you&apos;re querying the GL for the value here anyway, I think you should just leave this alone.

Yes, like you said, calling ::glPixelStorei() directly w/o the state check might lead to state variable inconsistency. I shall change the other ::glPixelStorei() call to also use the internal function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845088</commentid>
    <comment_count>11</comment_count>
      <attachid>190855</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-03-01 05:19:44 -0800</bug_when>
    <thetext>Comment on attachment 190855
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1098
&gt; +            , stencilFunc(GraphicsContext3D::ALWAYS)

Seems like an overkill to query all the *Map ones, viewport, scissor etc. Why not accept the first cache miss and save subsequent calls ??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845091</commentid>
    <comment_count>12</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-01 05:23:23 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 190855 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=190855&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1098
&gt; &gt; +            , stencilFunc(GraphicsContext3D::ALWAYS)
&gt; 
&gt; Seems like an overkill to query all the *Map ones, viewport, scissor etc. Why not accept the first cache miss and save subsequent calls ??

Agreed, I shall stick with 0 values for viewport/scissor and empty *Maps (filled in runtime) then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845106</commentid>
    <comment_count>13</comment_count>
      <attachid>190946</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-01 05:47:27 -0800</bug_when>
    <thetext>Created attachment 190946
Patch

Updated patch w/ second round of fixes reviewed by Kenneth</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845269</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-01 10:08:16 -0800</bug_when>
    <thetext>(In reply to comment #10)

&gt; Yes, using a CSS 3D Transform continuous animation profiled using gDEBugger I could reduce redundant state changes from ~16% of the overall GL calls to virtually 0%.

James Robinson has convinced me that this can be a useful optimization on bad drivers. Since each cached variable adds code complexity though, wouldn&apos;t it be better to first discover which variables actually affect performance?

On many drivers (like the fairly high quality and open Intel ones), redundant state changes have very minor affects on performance. I think doing this blindly means that we will never be able to understand or remove this code, assuming we head toward a bright future of high quality drivers.

I don&apos;t want to block this patch, but I think it should be done with an eye toward measurable performance improvements and not superstition. In the case of Chromium, caching state variables is cheap because it is done via code generation and intermediate layers. In this case we have to thread the cache through WebCore code which imposes an engineering overhead on everyone. I believe those kind of costs should not have zero weight when considering a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846347</commentid>
    <comment_count>15</comment_count>
      <attachid>191205</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-04 05:15:05 -0800</bug_when>
    <thetext>Created attachment 191205
gDEBugger profile data (.csv) before patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846349</commentid>
    <comment_count>16</comment_count>
      <attachid>191207</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-04 05:15:35 -0800</bug_when>
    <thetext>Created attachment 191207
gDEBugger profile data (.csv) after patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846355</commentid>
    <comment_count>17</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-04 05:30:09 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #10)
&gt; 
&gt; &gt; Yes, using a CSS 3D Transform continuous animation profiled using gDEBugger I could reduce redundant state changes from ~16% of the overall GL calls to virtually 0%.
&gt; 
&gt; James Robinson has convinced me that this can be a useful optimization on bad drivers. Since each cached variable adds code complexity though, wouldn&apos;t it be better to first discover which variables actually affect performance?
&gt; 
&gt; On many drivers (like the fairly high quality and open Intel ones), redundant state changes have very minor affects on performance. I think doing this blindly means that we will never be able to understand or remove this code, assuming we head toward a bright future of high quality drivers.
&gt; 
&gt; I don&apos;t want to block this patch, but I think it should be done with an eye toward measurable performance improvements and not superstition. In the case of Chromium, caching state variables is cheap because it is done via code generation and intermediate layers. In this case we have to thread the cache through WebCore code which imposes an engineering overhead on everyone. I believe those kind of costs should not have zero weight when considering a change.

I&apos;ve added two .zip files, each containing gDEBugger profiles before (attachment 191205) and after (attachment 191207) patch applied. These results were obtained from a running instance of WebKit EFL port (MiniBrowser) on Kaizoumark [1].

From the zipped files, you can notice the overall redundant state change-related calls drop from 21.85% to 0.01%. As for the Kaizoumark results below, we can also notice a difference (transforms tests raised from complexity 10 to 11):

*before*:
Transforms scale: 9 [got 26fps instead of 30fps at complexity 10]
Transforms scale (with opacity): 9 [got 26fps instead of 30fps at complexity 10]

*after*:
Transforms: scale: 10 [got 21fps instead of 30fps at complexity 11]
Transforms: scale (with opacity): 10 [got 20fps instead of 30fps at complexity 11]

I&apos;ve run these using a standard Desktop environment (Ubuntu Linux 12.10, x86-64, Intel HD 2000 integrated graphics card w/ Mesa OpenGL drivers). Unfortunately I do not have resources to benchmark this data on other platforms (specially on those with non-optimized drivers). If we are worried about adding code complexity, we could think about having this code safeguarded by a feature flag (i.e. USE(CACHED_OPENGL_CALLS)). What do you think? Please let me know if you need more data.

Links:
[1] http://www.kaizou.org/code/kaizoumark</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846469</commentid>
    <comment_count>18</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-03-04 07:28:22 -0800</bug_when>
    <thetext>(In reply to comment #17)
 
&gt; *before*:
&gt; Transforms scale: 9 [got 26fps instead of 30fps at complexity 10]
&gt; Transforms scale (with opacity): 9 [got 26fps instead of 30fps at complexity 10]
&gt; 
&gt; *after*:
&gt; Transforms: scale: 10 [got 21fps instead of 30fps at complexity 11]
&gt; Transforms: scale (with opacity): 10 [got 20fps instead of 30fps at complexity 11]

At least for me, gDebugger output is not convincing, because it doesn&apos;t necessarily indicate a performance improvement. The benchmark results look really promising though! Do you know if there is one particular piece of state which dominates the others for these performance improvements? My comment was simply about caching only those values that actually make a difference in performance.

&gt; I&apos;ve run these using a standard Desktop environment (Ubuntu Linux 12.10, x86-64, Intel HD 2000 integrated graphics card w/ Mesa OpenGL drivers). Unfortunately I do not have resources to benchmark this data on other platforms (specially on those with non-optimized drivers). If we are worried about adding code complexity, we could think about having this code safeguarded by a feature flag (i.e. USE(CACHED_OPENGL_CALLS)). What do you think? Please let me know if you need more data.

No, I&apos;m not sure that&apos;s a good idea. The problem with code complexity is not what code you are running, but what code you are maintaining. One way you might make this code simpler to maintain, is to move the code that sets the state of the GraphicsContext3DState into methods on the state itself.

I also hav a concern with the mode of GraphicsContext3D that works with the &quot;current context.&quot; In that mode your cache may be invalid, so perhaps you shouldn&apos;t keep it for that mode or keep it only during certain periods of execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>846627</commentid>
    <comment_count>19</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-04 10:47:39 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; 
&gt; &gt; *before*:
&gt; &gt; Transforms scale: 9 [got 26fps instead of 30fps at complexity 10]
&gt; &gt; Transforms scale (with opacity): 9 [got 26fps instead of 30fps at complexity 10]
&gt; &gt; 
&gt; &gt; *after*:
&gt; &gt; Transforms: scale: 10 [got 21fps instead of 30fps at complexity 11]
&gt; &gt; Transforms: scale (with opacity): 10 [got 20fps instead of 30fps at complexity 11]
&gt; 
&gt; At least for me, gDebugger output is not convincing, because it doesn&apos;t necessarily indicate a performance improvement. The benchmark results look really promising though! Do you know if there is one particular piece of state which dominates the others for these performance improvements? My comment was simply about caching only those values that actually make a difference in performance.

So far I&apos;ve focused implementing the cached values for those state functions which indicated high percentage of redundant state changes, but w/o per-call analyzis (however I&apos;ve seen most impact in redundant state changes comes from caching glBlender* calls). We can do this, though it requires some time for profiling each function individually.

&gt; 
&gt; &gt; I&apos;ve run these using a standard Desktop environment (Ubuntu Linux 12.10, x86-64, Intel HD 2000 integrated graphics card w/ Mesa OpenGL drivers). Unfortunately I do not have resources to benchmark this data on other platforms (specially on those with non-optimized drivers). If we are worried about adding code complexity, we could think about having this code safeguarded by a feature flag (i.e. USE(CACHED_OPENGL_CALLS)). What do you think? Please let me know if you need more data.
&gt; 
&gt; No, I&apos;m not sure that&apos;s a good idea. The problem with code complexity is not what code you are running, but what code you are maintaining. One way you might make this code simpler to maintain, is to move the code that sets the state of the GraphicsContext3DState into methods on the state itself.

Yes, that&apos;s doable, though it would make the GraphicsContext3D header file even bigger, so I&apos;d say we move this out to a separate header?

&gt; 
&gt; I also hav a concern with the mode of GraphicsContext3D that works with the &quot;current context.&quot; In that mode your cache may be invalid, so perhaps you shouldn&apos;t keep it for that mode or keep it only during certain periods of execution.

I guess you mean the cache may be invalid as the context state can be changed elsewhere, indeed, so maybe we may have a property on the GraphicsContext3D stating we&apos;re certain the GL states from the corresponding context are solely handled there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849604</commentid>
    <comment_count>20</comment_count>
      <attachid>191887</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-06 18:57:28 -0800</bug_when>
    <thetext>Created attachment 191887
Benchmark test

Benchmark test used to profile GL calls (FPS data from WEBKIT_SHOW_FPS).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849622</commentid>
    <comment_count>21</comment_count>
      <attachid>191894</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-06 19:16:58 -0800</bug_when>
    <thetext>Created attachment 191894
Patch

Disabled caching by default on all ports (except on EFL, which reportely decreases no. of GL calls on offscreen context), moved code complexity to is*Redundant() functions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849626</commentid>
    <comment_count>22</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-06 19:22:25 -0800</bug_when>
    <thetext>@Martin: I&apos;ve profiled per-function caching using the benchmark test (attachment 191887), however I couldn&apos;t notice considerable performance impact using my Desktop as target device. Unfortunately I do not have resources to profile/test on less empowered devices (i.e. embedded/mobile devices), so if anyone is interested in doing so, please feel free (if using EFL, you can run the benchmark test with WEBKIT_SHOW_FPS=1 and --full-screen=true on MiniBrowser).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850373</commentid>
    <comment_count>23</comment_count>
      <attachid>191894</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2013-03-07 12:20:50 -0800</bug_when>
    <thetext>Comment on attachment 191894
Patch

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

I&apos;d like to defer to mrobinson for the r+. A couple of concerns about the current patch.

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1095
&gt; +        GraphicsContext3DState(bool isCacheable = false)

isCacheable sounds ambiguous. Please use a name like &quot;isCached&quot; or &quot;usesCache&quot;.

Also, for the constructor, to make call sites easier to read, please define an enum like CacheState with values like UseCache and DoNotUseCache.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:303
&gt; +    if (m_state.activeTexture == texture)

Please guard this check like the others.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850917</commentid>
    <comment_count>24</comment_count>
      <attachid>191894</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-03-07 23:27:42 -0800</bug_when>
    <thetext>Comment on attachment 191894
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1128
&gt; +        bool isBlendFuncRedundant(GC3Denum sourceFactor, GC3Denum destinationFactor)

Having isFoobar functions with a side effect is strange :)
How about updateBlendFunc etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851093</commentid>
    <comment_count>25</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-08 05:21:58 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 191894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191894&amp;action=review
&gt; 
&gt; I&apos;d like to defer to mrobinson for the r+. A couple of concerns about the current patch.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1095
&gt; &gt; +        GraphicsContext3DState(bool isCacheable = false)
&gt; 
&gt; isCacheable sounds ambiguous. Please use a name like &quot;isCached&quot; or &quot;usesCache&quot;.
&gt; 
&gt; Also, for the constructor, to make call sites easier to read, please define an enum like CacheState with values like UseCache and DoNotUseCache.

Good idea, I&apos;ll add this new enum:

enum CacheType {
    DoNotUseCache = 0,
    UseCache
};

I&apos;m going to move the cached/non-cached check internally. There&apos;s also the fact that if we won&apos;t use cache, the cache variables would never be used. I&apos;m thinking about putting them inside a struct, and have this initialized only if we have &apos;cacheType == UseCache&apos;.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:303
&gt; &gt; +    if (m_state.activeTexture == texture)
&gt; 
&gt; Please guard this check like the others.

Ack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851096</commentid>
    <comment_count>26</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-08 05:24:54 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 191894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191894&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1128
&gt; &gt; +        bool isBlendFuncRedundant(GC3Denum sourceFactor, GC3Denum destinationFactor)
&gt; 
&gt; Having isFoobar functions with a side effect is strange :)
&gt; How about updateBlendFunc etc.

Good idea as well, I thought about update&lt;name&gt;Cache (i.e. updateBlendFuncCache), though I&apos;m thinking about the return value, would it be confusing on the GC3D side to return early if return is &apos;true&apos;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851104</commentid>
    <comment_count>27</comment_count>
      <attachid>191894</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2013-03-08 05:39:27 -0800</bug_when>
    <thetext>Comment on attachment 191894
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1128
&gt;&gt;&gt; +        bool isBlendFuncRedundant(GC3Denum sourceFactor, GC3Denum destinationFactor)
&gt;&gt; 
&gt;&gt; Having isFoobar functions with a side effect is strange :)
&gt;&gt; How about updateBlendFunc etc.
&gt; 
&gt; Good idea as well, I thought about update&lt;name&gt;Cache (i.e. updateBlendFuncCache), though I&apos;m thinking about the return value, would it be confusing on the GC3D side to return early if return is &apos;true&apos;?

It should return early if return value is false. I think 
if (!m_state.updateScissor(..)
    return;
is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851185</commentid>
    <comment_count>28</comment_count>
      <attachid>191894</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-03-08 07:29:09 -0800</bug_when>
    <thetext>Comment on attachment 191894
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1129
&gt; +        {

Agree with Noam.

Should we move GraphicsContext3DState into it&apos;s own header ??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851204</commentid>
    <comment_count>29</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-08 08:00:52 -0800</bug_when>
    <thetext>(In reply to comment #28)
&gt; (From update of attachment 191894 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191894&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/GraphicsContext3D.h:1129
&gt; &gt; +        {
&gt; 
&gt; Agree with Noam.
&gt; 
&gt; Should we move GraphicsContext3DState into it&apos;s own header ??

I&apos;d say so, yes, it&apos;s getting bigger as I add the extra functionalities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851447</commentid>
    <comment_count>30</comment_count>
      <attachid>192276</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-08 12:49:26 -0800</bug_when>
    <thetext>Created attachment 192276
Patch

Various fixed reviewed by Kenneth and Noam, moved GC3DState to a separate header, avoid allocation of state cache variables if not going to cache, disable cache by default on all ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851449</commentid>
    <comment_count>31</comment_count>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-08 13:01:50 -0800</bug_when>
    <thetext>Note: I had to use raw values for GL enums on GraphicsContext3DState.h to avoid any dependency on GraphicsContext3D.h, however that would be solved if we move the GL enums from GraphicsContext3D.h to GraphicsTypes3D.h.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851483</commentid>
    <comment_count>32</comment_count>
      <attachid>192276</attachid>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-03-08 13:49:26 -0800</bug_when>
    <thetext>Comment on attachment 192276
Patch

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

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:169
&gt; +    activeTexture(GL_TEXTURE0);

This looks wrong. Assume we have a current bound location other than GL_TEXTURE0 i.e GL_TEXTURE1, m_state.activeTexture is GL_TEXTURE1. After this call it is set to GL_TEXTURE0. We try to reset the original bound location below (line 173). With this change we would be trying to reset to GL_TEXTURE0 rather than GL_TEXTURE1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852220</commentid>
    <comment_count>33</comment_count>
      <attachid>192276</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-11 05:45:13 -0700</bug_when>
    <thetext>Comment on attachment 192276
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:169
&gt;&gt; +    activeTexture(GL_TEXTURE0);
&gt; 
&gt; This looks wrong. Assume we have a current bound location other than GL_TEXTURE0 i.e GL_TEXTURE1, m_state.activeTexture is GL_TEXTURE1. After this call it is set to GL_TEXTURE0. We try to reset the original bound location below (line 173). With this change we would be trying to reset to GL_TEXTURE0 rather than GL_TEXTURE1.

You are right, I hoped I handled the issue with activeTexture set as both &apos;current bound location&apos; and cached value by storing it in two different locations (m_state.activeTexture for current implementation, and m_state.cacheData.activeTexture for cached value), though I might not have considered the corner case you mentioned. I&apos;ll remove the cached activeTexture implementation and revert it as defined on the first patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852226</commentid>
    <comment_count>34</comment_count>
      <attachid>192452</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-11 05:54:04 -0700</bug_when>
    <thetext>Created attachment 192452
Patch

Fixed corner-case mentioned by Kalyan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854985</commentid>
    <comment_count>35</comment_count>
      <attachid>193070</attachid>
    <who name="Bruno Abinader (history only)">bruno.abinader</who>
    <bug_when>2013-03-13 23:19:06 -0700</bug_when>
    <thetext>Created attachment 193070
Patch

Moved implementation to new file GraphicsContext3DState.cpp, so we can include GC3D header and thus avoid using raw OpenGL enum values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861911</commentid>
    <comment_count>36</comment_count>
    <who name="Igor Trindade Oliveira">igor.oliveira</who>
    <bug_when>2013-03-22 15:28:25 -0700</bug_when>
    <thetext>Since your message to webkit-efl mentioned GPU-Proxy. We are investigating a gpu-proxy for WebKit-EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>861972</commentid>
    <comment_count>37</comment_count>
    <who name="Kalyan">kalyan.kondapally</who>
    <bug_when>2013-03-22 16:49:46 -0700</bug_when>
    <thetext>(In reply to comment #36)
&gt; Since your message to webkit-efl mentioned GPU-Proxy. We are investigating a gpu-proxy for WebKit-EFL.

If possible, could you reply to the mail with some details on this??</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>976987</commentid>
    <comment_count>38</comment_count>
      <attachid>193070</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-02-05 11:18:11 -0800</bug_when>
    <thetext>Comment on attachment 193070
Patch

Clearing review flag on patches from before 2014. If this patch is still relevant, please reset the r? flag.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190292</attachid>
            <date>2013-02-26 08:30:12 -0800</date>
            <delta_ts>2013-02-28 07:44:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130226122625.patch</filename>
            <type>text/plain</type>
            <size>7850</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWY1YTljMzZjNWM1Yjli
OWIzODA2OWNhZjc4NmNjZTdmMzFjOTcxNi4uNzg5MDczZmNjODFmNmFkZTUzN2Y0MzQ0ZWY2Y2Y5
MDM1MmZiNjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAyLTI2ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcyBhbmQgdGh1cyByZWR1Y2Ug
YW1vdW50IG9mIE9wZW5HTCBjYWxscy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0
aHVzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGUpOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjphY3RpdmVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpi
bGVuZEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cGl4ZWxTdG9yZWkpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IpOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxGdW5jKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsT3ApOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KToKKwogMjAxMy0wMi0yNSAgQnJ1bm8gZGUgT2xpdmVp
cmEgQWJpbmFkZXIgIDxicnVuby5hYmluYWRlckBiYXN5c2tvbS5jb20+CiAKICAgICAgICAgQ3Jl
YXRlIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgdG8gYWdncmVnYXRlIHN0YXRlIG9iamVjdHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5oCmluZGV4IDY0OWQ1MDQxODM5MzdkNGQzYzg4YWViZTI2OWRjMDk0MWQ2MGU4NWUuLjFlMmM0
OGEyNGYzMzdjYTVmMmIzYjEyMDI3YTNjZDk4OGExMDRkNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtMTA4MSwx
NiArMTA4MSw2NCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9sYXllckNvbXBvc2l0ZWQ7CiAgICAg
R0MzRHVpbnQgbV9pbnRlcm5hbENvbG9yRm9ybWF0OwogCisgICAgdHlwZWRlZiBIYXNoTWFwPEdD
M0RlbnVtLCBHQzNEaW50PiBQaXhlbFN0b3JlaU1hcDsKICAgICBzdHJ1Y3QgR3JhcGhpY3NDb250
ZXh0M0RTdGF0ZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUoKQogICAgICAgICAg
ICAgOiBib3VuZEZCTygwKQogICAgICAgICAgICAgLCBhY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29u
dGV4dDNEOjpURVhUVVJFMCkKICAgICAgICAgICAgICwgYm91bmRUZXh0dXJlMCgwKQorICAgICAg
ICAgICAgLCBzb3VyY2VGYWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6OlpFUk8pCisgICAgICAgICAg
ICAsIGRlc3RpbmF0aW9uRmFjdG9yKEdyYXBoaWNzQ29udGV4dDNEOjpaRVJPKQorICAgICAgICAg
ICAgLCBkZXB0aE1hc2sodHJ1ZSkKKyAgICAgICAgICAgICwgc2Npc3NvclgoMCkKKyAgICAgICAg
ICAgICwgc2Npc3NvclkoMCkKKyAgICAgICAgICAgICwgc2Npc3NvcldpZHRoKDApCisgICAgICAg
ICAgICAsIHNjaXNzb3JIZWlnaHQoMCkKKyAgICAgICAgICAgICwgc3RlbmNpbEZ1bmMoR3JhcGhp
Y3NDb250ZXh0M0Q6OkFMV0FZUykKKyAgICAgICAgICAgICwgc3RlbmNpbFJlZigwKQorICAgICAg
ICAgICAgLCBzdGVuY2lsTWFzayhVSU5UX01BWCkKKyAgICAgICAgICAgICwgc3RlbmNpbEZhaWwo
R3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisgICAgICAgICAgICAsIHN0ZW5jaWxaRmFpbChHcmFw
aGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAgICAgICAgICwgc3RlbmNpbFpQYXNzKEdyYXBoaWNz
Q29udGV4dDNEOjpLRUVQKQorICAgICAgICAgICAgLCB2aWV3cG9ydFgoMCkKKyAgICAgICAgICAg
ICwgdmlld3BvcnRZKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0V2lkdGgoMCkKKyAgICAgICAg
ICAgICwgdmlld3BvcnRIZWlnaHQoMCkKICAgICAgICAgeyB9CiAKICAgICAgICAgR0MzRHVpbnQg
Ym91bmRGQk87CiAgICAgICAgIEdDM0RlbnVtIGFjdGl2ZVRleHR1cmU7CiAgICAgICAgIEdDM0R1
aW50IGJvdW5kVGV4dHVyZTA7CisKKyAgICAgICAgLy8gR0wgQmxlbmQgZmFjdG9ycy4KKyAgICAg
ICAgR0MzRGVudW0gc291cmNlRmFjdG9yOworICAgICAgICBHQzNEZW51bSBkZXN0aW5hdGlvbkZh
Y3RvcjsKKworICAgICAgICAvLyBHTCBEZXB0aCBtYXNrLgorICAgICAgICBHQzNEYm9vbGVhbiBk
ZXB0aE1hc2s7CisKKyAgICAgICAgLy8gR0wgU2Npc3NvciB2YWx1ZXMuCisgICAgICAgIEdDM0Rp
bnQgc2Npc3Nvclg7CisgICAgICAgIEdDM0RpbnQgc2Npc3Nvclk7CisgICAgICAgIEdDM0RzaXpl
aSBzY2lzc29yV2lkdGg7CisgICAgICAgIEdDM0RzaXplaSBzY2lzc29ySGVpZ2h0OworCisgICAg
ICAgIC8vIEdMIFN0ZW5jaWwgdmFsdWVzLgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsK
KyAgICAgICAgR0MzRGludCBzdGVuY2lsUmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFz
azsKKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbEZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0ZW5j
aWxaRmFpbDsKKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbFpQYXNzOworCisgICAgICAgIC8vIEdM
IFZpZXdwb3J0IHZhbHVlcy4KKyAgICAgICAgR0MzRGludCB2aWV3cG9ydFg7CisgICAgICAgIEdD
M0RpbnQgdmlld3BvcnRZOworICAgICAgICBHQzNEc2l6ZWkgdmlld3BvcnRXaWR0aDsKKyAgICAg
ICAgR0MzRHNpemVpIHZpZXdwb3J0SGVpZ2h0OworCisgICAgICAgIC8vIEdMIHBpeGVsIHN0b3Jl
IGludGVnZXIgaGFzaCBtYXAuCisgICAgICAgIFBpeGVsU3RvcmVpTWFwIHBpeGVsU3RvcmVpOwog
ICAgIH07CiAKICAgICBHcmFwaGljc0NvbnRleHQzRFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0
M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJl
NDQ0MWYxMTE1YTZlMjY5YzgwODRhZmNhMTRhLi5mYmIyZjkzZDZmNDg0NjRiOTU5NTE0NGM5MDJl
ZjI1OWZkYmMxOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENv
bW1vbi5jcHAKQEAgLTMwMCw2ICszMDAsOSBAQCBJbnRTaXplIEdyYXBoaWNzQ29udGV4dDNEOjpn
ZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVyZSkKIHsKKyAgICBpZiAobV9zdGF0ZS5h
Y3RpdmVUZXh0dXJlID09IHRleHR1cmUpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250
ZXh0Q3VycmVudCgpOwogICAgIG1fc3RhdGUuYWN0aXZlVGV4dHVyZSA9IHRleHR1cmU7CiAgICAg
OjpnbEFjdGl2ZVRleHR1cmUodGV4dHVyZSk7CkBAIC0zODAsNiArMzgzLDExIEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0M0Q6OmJsZW5kRXF1YXRpb25TZXBhcmF0ZShHQzNEZW51bSBtb2RlUkdCLCBH
QzNEZW51bSBtb2RlQWxwCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNE
ZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKQogeworICAgIGlmIChtX3N0YXRlLnNvdXJj
ZUZhY3RvciA9PSBzZmFjdG9yICYmIG1fc3RhdGUuZGVzdGluYXRpb25GYWN0b3IgPT0gZGZhY3Rv
cikKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUuc291cmNlRmFjdG9yID0gc2ZhY3RvcjsK
KyAgICBtX3N0YXRlLmRlc3RpbmF0aW9uRmFjdG9yID0gZGZhY3RvcjsKKwogICAgIG1ha2VDb250
ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xCbGVuZEZ1bmMoc2ZhY3RvciwgZGZhY3Rvcik7CiB9ICAg
ICAgIApAQCAtNTI5LDYgKzUzNywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1
bmMoR0MzRGVudW0gZnVuYykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdD
M0Rib29sZWFuIGZsYWcpCiB7CisgICAgaWYgKG1fc3RhdGUuZGVwdGhNYXNrID09IGZsYWcpCisg
ICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLmRlcHRoTWFzayA9IGZsYWc7CisKICAgICBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRGVwdGhNYXNrKGZsYWcpOwogfQpAQCAtODM1LDYg
Kzg0NywxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5rUHJvZ3JhbShQbGF0Zm9ybTNE
T2JqZWN0IHByb2dyYW0pCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBpeGVsU3RvcmVpKEdD
M0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKQogeworICAgIFBpeGVsU3RvcmVpTWFwOjppdGVy
YXRvciBpdCA9IG1fc3RhdGUucGl4ZWxTdG9yZWkuZmluZChwbmFtZSk7CisgICAgaWYgKGl0ICE9
IG1fc3RhdGUucGl4ZWxTdG9yZWkuZW5kKCkgJiYgaXQtPnZhbHVlID09IHBhcmFtKQorICAgICAg
ICByZXR1cm47CisgICAgbV9zdGF0ZS5waXhlbFN0b3JlaS5zZXQocG5hbWUsIHBhcmFtKTsKKwog
ICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xQaXhlbFN0b3JlaShwbmFtZSwgcGFy
YW0pOwogfQpAQCAtODUzLDYgKzg3MCwxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzYW1w
bGVDb3ZlcmFnZShHQzNEY2xhbXBmIHZhbHVlLCBHQzNEYm9vbGVhbiBpbnZlcnQpCiAKIHZvaWQg
R3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXpl
aSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKKyAgICBpZiAobV9zdGF0ZS5zY2lzc29yWCA9
PSB4ICYmIG1fc3RhdGUuc2Npc3NvclkgPT0geSAmJiBtX3N0YXRlLnNjaXNzb3JXaWR0aCA9PSB3
aWR0aCAmJiBtX3N0YXRlLnNjaXNzb3JIZWlnaHQgPT0gaGVpZ2h0KQorICAgICAgICByZXR1cm47
CisgICAgbV9zdGF0ZS5zY2lzc29yWCA9IHg7CisgICAgbV9zdGF0ZS5zY2lzc29yWSA9IHk7Cisg
ICAgbV9zdGF0ZS5zY2lzc29yV2lkdGggPSB3aWR0aDsKKyAgICBtX3N0YXRlLnNjaXNzb3JIZWln
aHQgPSBoZWlnaHQ7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU2Npc3Nv
cih4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0KQEAgLTg3Miw2ICs4OTYsMTIgQEAgdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6c2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBjb25z
dCBTdHJpbmcmIHN0cmkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbEZ1bmMoR0Mz
RGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2spCiB7CisgICAgaWYgKG1fc3Rh
dGUuc3RlbmNpbEZ1bmMgPT0gZnVuYyAmJiBtX3N0YXRlLnN0ZW5jaWxSZWYgPT0gcmVmICYmIG1f
c3RhdGUuc3RlbmNpbE1hc2sgPT0gbWFzaykKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUu
c3RlbmNpbEZ1bmMgPSBmdW5jOworICAgIG1fc3RhdGUuc3RlbmNpbFJlZiA9IHJlZjsKKyAgICBt
X3N0YXRlLnN0ZW5jaWxNYXNrID0gbWFzazsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIDo6Z2xTdGVuY2lsRnVuYyhmdW5jLCByZWYsIG1hc2spOwogfQpAQCAtODk2LDYgKzkyNiwx
MiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsTWFza1NlcGFyYXRlKEdDM0RlbnVt
IGZhY2UsIEdDM0R1aW50IG1hc2spCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxP
cChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpCiB7CisgICAg
aWYgKG1fc3RhdGUuc3RlbmNpbEZhaWwgPT0gZmFpbCAmJiBtX3N0YXRlLnN0ZW5jaWxaRmFpbCAm
JiB6ZmFpbCAmJiBtX3N0YXRlLnN0ZW5jaWxaUGFzcyA9PSB6cGFzcykKKyAgICAgICAgcmV0dXJu
OworICAgIG1fc3RhdGUuc3RlbmNpbEZhaWwgPSBmYWlsOworICAgIG1fc3RhdGUuc3RlbmNpbFpG
YWlsID0gemZhaWw7CisgICAgbV9zdGF0ZS5zdGVuY2lsWlBhc3MgPSB6cGFzczsKKwogICAgIG1h
a2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xTdGVuY2lsT3AoZmFpbCwgemZhaWwsIHpwYXNz
KTsKIH0KQEAgLTExMTEsNiArMTE0NywxMyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0
ZXhBdHRyaWJQb2ludGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbgogCiB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2aWV3cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAgIGlmIChtX3N0YXRlLnZpZXdw
b3J0WCA9PSB4ICYmIG1fc3RhdGUudmlld3BvcnRZID09IHkgJiYgbV9zdGF0ZS52aWV3cG9ydFdp
ZHRoID09IHdpZHRoICYmIG1fc3RhdGUudmlld3BvcnRIZWlnaHQgPT0gaGVpZ2h0KQorICAgICAg
ICByZXR1cm47CisgICAgbV9zdGF0ZS52aWV3cG9ydFggPSB4OworICAgIG1fc3RhdGUudmlld3Bv
cnRZID0geTsKKyAgICBtX3N0YXRlLnZpZXdwb3J0V2lkdGggPSB3aWR0aDsKKyAgICBtX3N0YXRl
LnZpZXdwb3J0SGVpZ2h0ID0gaGVpZ2h0OworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgOjpnbFZpZXdwb3J0KHgsIHksIHdpZHRoLCBoZWlnaHQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190726</attachid>
            <date>2013-02-28 07:44:33 -0800</date>
            <delta_ts>2013-02-28 09:35:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130228114044.patch</filename>
            <type>text/plain</type>
            <size>8787</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg1NjRjNzU1ZDk1MTE2
ZTJlNjg0ZTBhN2M3YWFjNDUyNjlmZTQ0NC4uOWJjODBkMDMwZDUyMDZmOGU1OTY3OThmMzkxMmNk
NmEwOTI4ZWZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAyLTI4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcyBhbmQgdGh1cyByZWR1Y2Ug
YW1vdW50IG9mIE9wZW5HTCBjYWxscy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0
aHVzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGUpOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjphY3RpdmVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpi
bGVuZEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwaXhlbFN0b3JlaSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6c2Npc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6c3RlbmNpbEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnN0ZW5jaWxPcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmll
d3BvcnQpOgorCiAyMDEzLTAyLTI1ICBCcnVubyBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5v
LmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAogICAgICAgICBDcmVhdGUgR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZSB0byBhZ2dyZWdhdGUgc3RhdGUgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggNjQ5ZDUwNDE4
MzkzN2Q0ZDNjODhhZWJlMjY5ZGMwOTQxZDYwZTg1ZS4uOGViNWY2YzdhZGU1ZmQzN2Y2NjZhNTkz
MWMzZmRkZmJhYzgyMzk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMDgxLDE2ICsxMDgxLDYyIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsKICAgICBHQzNEdWludCBtX2ludGVybmFs
Q29sb3JGb3JtYXQ7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8R0MzRGVudW0sIGJvb2w+IENhcGFi
aWxpdHlNYXA7CiAgICAgc3RydWN0IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgewogICAgICAgICBH
cmFwaGljc0NvbnRleHQzRFN0YXRlKCkKICAgICAgICAgICAgIDogYm91bmRGQk8oMCkKICAgICAg
ICAgICAgICwgYWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApCiAgICAg
ICAgICAgICAsIGJvdW5kVGV4dHVyZTAoMCkKKyAgICAgICAgICAgICwgc291cmNlRmFjdG9yKEdy
YXBoaWNzQ29udGV4dDNEOjpaRVJPKQorICAgICAgICAgICAgLCBkZXN0aW5hdGlvbkZhY3RvcihH
cmFwaGljc0NvbnRleHQzRDo6WkVSTykKKyAgICAgICAgICAgICwgZGVwdGhNYXNrKHRydWUpCisg
ICAgICAgICAgICAsIHNjaXNzb3JYKDApCisgICAgICAgICAgICAsIHNjaXNzb3JZKDApCisgICAg
ICAgICAgICAsIHNjaXNzb3JXaWR0aCgwKQorICAgICAgICAgICAgLCBzY2lzc29ySGVpZ2h0KDAp
CisgICAgICAgICAgICAsIHN0ZW5jaWxGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpBTFdBWVMpCisg
ICAgICAgICAgICAsIHN0ZW5jaWxSZWYoMCkKKyAgICAgICAgICAgICwgc3RlbmNpbE1hc2soVUlO
VF9NQVgpCisgICAgICAgICAgICAsIHN0ZW5jaWxGYWlsKEdyYXBoaWNzQ29udGV4dDNEOjpLRUVQ
KQorICAgICAgICAgICAgLCBzdGVuY2lsWkZhaWwoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisg
ICAgICAgICAgICAsIHN0ZW5jaWxaUGFzcyhHcmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAg
ICAgICAgICwgdmlld3BvcnRYKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0WSgwKQorICAgICAg
ICAgICAgLCB2aWV3cG9ydFdpZHRoKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0SGVpZ2h0KDAp
CisgICAgICAgICAgICAsIHBhY2tBbGlnbm1lbnQoNCkKKyAgICAgICAgICAgICwgdW5wYWNrQWxp
Z25tZW50KDQpCiAgICAgICAgIHsgfQogCiAgICAgICAgIEdDM0R1aW50IGJvdW5kRkJPOwogICAg
ICAgICBHQzNEZW51bSBhY3RpdmVUZXh0dXJlOwogICAgICAgICBHQzNEdWludCBib3VuZFRleHR1
cmUwOworICAgICAgICBHQzNEZW51bSBzb3VyY2VGYWN0b3I7CisgICAgICAgIEdDM0RlbnVtIGRl
c3RpbmF0aW9uRmFjdG9yOworCisgICAgICAgIEdDM0Rib29sZWFuIGRlcHRoTWFzazsKKworICAg
ICAgICBHQzNEaW50IHNjaXNzb3JYOworICAgICAgICBHQzNEaW50IHNjaXNzb3JZOworICAgICAg
ICBHQzNEc2l6ZWkgc2Npc3NvcldpZHRoOworICAgICAgICBHQzNEc2l6ZWkgc2Npc3NvckhlaWdo
dDsKKworICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsKKyAgICAgICAgR0MzRGludCBzdGVu
Y2lsUmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFzazsKKyAgICAgICAgR0MzRGVudW0g
c3RlbmNpbEZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxaRmFpbDsKKyAgICAgICAgR0Mz
RGVudW0gc3RlbmNpbFpQYXNzOworCisgICAgICAgIEdDM0RpbnQgdmlld3BvcnRYOworICAgICAg
ICBHQzNEaW50IHZpZXdwb3J0WTsKKyAgICAgICAgR0MzRHNpemVpIHZpZXdwb3J0V2lkdGg7Cisg
ICAgICAgIEdDM0RzaXplaSB2aWV3cG9ydEhlaWdodDsKKworICAgICAgICBHQzNEaW50IHBhY2tB
bGlnbm1lbnQ7CisgICAgICAgIEdDM0RpbnQgdW5wYWNrQWxpZ25tZW50OworCisgICAgICAgIENh
cGFiaWxpdHlNYXAgY2FwYWJpbGl0aWVzOwogICAgIH07CiAKICAgICBHcmFwaGljc0NvbnRleHQz
RFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJlNDQ0MWYxMTE1YTZlMjY5YzgwODRhZmNhMTRhLi4z
M2QyM2RlNzc0ZGFjOTQ2YTA2ODhiNGYwMTg0MDYwN2E1Yzg5YzdmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTMwMCw2ICszMDAsOSBAQCBJ
bnRTaXplIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpIGNv
bnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4
dHVyZSkKIHsKKyAgICBpZiAobV9zdGF0ZS5hY3RpdmVUZXh0dXJlID09IHRleHR1cmUpCisgICAg
ICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIG1fc3RhdGUuYWN0
aXZlVGV4dHVyZSA9IHRleHR1cmU7CiAgICAgOjpnbEFjdGl2ZVRleHR1cmUodGV4dHVyZSk7CkBA
IC0zODAsNiArMzgzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRXF1YXRpb25T
ZXBhcmF0ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9y
KQogeworICAgIGlmIChtX3N0YXRlLnNvdXJjZUZhY3RvciA9PSBzZmFjdG9yICYmIG1fc3RhdGUu
ZGVzdGluYXRpb25GYWN0b3IgPT0gZGZhY3RvcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3Rh
dGUuc291cmNlRmFjdG9yID0gc2ZhY3RvcjsKKyAgICBtX3N0YXRlLmRlc3RpbmF0aW9uRmFjdG9y
ID0gZGZhY3RvcjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xCbGVuZEZ1
bmMoc2ZhY3RvciwgZGZhY3Rvcik7CiB9ICAgICAgIApAQCAtNTI5LDYgKzUzNywxMCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29sZWFuIGZsYWcpCiB7CisgICAgaWYgKG1f
c3RhdGUuZGVwdGhNYXNrID09IGZsYWcpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLmRl
cHRoTWFzayA9IGZsYWc7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRGVw
dGhNYXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU1NSwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUoR0MzRGVudW0gY2FwKQogewor
ICAgIENhcGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZmlu
ZChjYXApOworICAgIGlmIChpdCAhPSBtX3N0YXRlLmNhcGFiaWxpdGllcy5lbmQoKSAmJiAhaXQt
PnZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5waXhlbFN0b3JlSW50VmFsdWVz
LnNldChjYXAsIGZhbHNlKTsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xE
aXNhYmxlKGNhcCk7CiB9CkBAIC01NjcsNiArNTg0LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmRyYXdFbGVtZW50cyhHQzNEZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVt
IHR5CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmVuYWJsZShHQzNEZW51bSBjYXApCiB7Cisg
ICAgQ2FwYWJpbGl0eU1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0YXRlLmNhcGFiaWxpdGllcy5maW5k
KGNhcCk7CisgICAgaWYgKGl0ICE9IG1fc3RhdGUuY2FwYWJpbGl0aWVzLmVuZCgpICYmIGl0LT52
YWx1ZSkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUucGl4ZWxTdG9yZUludFZhbHVlcy5z
ZXQoY2FwLCB0cnVlKTsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xFbmFi
bGUoY2FwKTsKIH0KQEAgLTgzNSw2ICs4NTcsMTYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
bGlua1Byb2dyYW0oUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQogCiB2b2lkIEdyYXBoaWNzQ29u
dGV4dDNEOjpwaXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkKIHsKKyAg
ICBpZiAocG5hbWUgPT0gR0xfUEFDS19BTElHTk1FTlQpIHsKKyAgICAgICAgaWYgKG1fc3RhdGUu
cGFja0FsaWdubWVudCA9PSBwYXJhbSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9z
dGF0ZS5wYWNrQWxpZ25tZW50ID0gcGFyYW07CisgICAgfSBlbHNlIGlmIChwbmFtZSA9PSBHTF9V
TlBBQ0tfQUxJR05NRU5UKSB7CisgICAgICAgIGlmIChtX3N0YXRlLnVucGFja0FsaWdubWVudCA9
PSBwYXJhbSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9zdGF0ZS51bnBhY2tBbGln
bm1lbnQgPSBwYXJhbTsKKyAgICB9CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6
OmdsUGl4ZWxTdG9yZWkocG5hbWUsIHBhcmFtKTsKIH0KQEAgLTg1Myw2ICs4ODUsMTMgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0Mz
RGJvb2xlYW4gaW52ZXJ0KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKEdDM0Rp
bnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7Cisg
ICAgaWYgKG1fc3RhdGUuc2Npc3NvclggPT0geCAmJiBtX3N0YXRlLnNjaXNzb3JZID09IHkgJiYg
bV9zdGF0ZS5zY2lzc29yV2lkdGggPT0gd2lkdGggJiYgbV9zdGF0ZS5zY2lzc29ySGVpZ2h0ID09
IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUuc2Npc3NvclggPSB4OworICAg
IG1fc3RhdGUuc2Npc3NvclkgPSB5OworICAgIG1fc3RhdGUuc2Npc3NvcldpZHRoID0gd2lkdGg7
CisgICAgbV9zdGF0ZS5zY2lzc29ySGVpZ2h0ID0gaGVpZ2h0OworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAgICAgOjpnbFNjaXNzb3IoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CkBAIC04
NzIsNiArOTExLDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNoYWRlclNvdXJjZShQbGF0
Zm9ybTNET2JqZWN0IHNoYWRlciwgY29uc3QgU3RyaW5nJiBzdHJpCiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWlu
dCBtYXNrKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5jaWxGdW5jID09IGZ1bmMgJiYgbV9zdGF0
ZS5zdGVuY2lsUmVmID09IHJlZiAmJiBtX3N0YXRlLnN0ZW5jaWxNYXNrID09IG1hc2spCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnN0ZW5jaWxGdW5jID0gZnVuYzsKKyAgICBtX3N0YXRl
LnN0ZW5jaWxSZWYgPSByZWY7CisgICAgbV9zdGF0ZS5zdGVuY2lsTWFzayA9IG1hc2s7CisKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbEZ1bmMoZnVuYywgcmVmLCBt
YXNrKTsKIH0KQEAgLTg5Niw2ICs5NDEsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3Rl
bmNpbE1hc2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKQogCiB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsT3AoR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWws
IEdDM0RlbnVtIHpwYXNzKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5jaWxGYWlsID09IGZhaWwg
JiYgbV9zdGF0ZS5zdGVuY2lsWkZhaWwgJiYgemZhaWwgJiYgbV9zdGF0ZS5zdGVuY2lsWlBhc3Mg
PT0genBhc3MpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnN0ZW5jaWxGYWlsID0gZmFp
bDsKKyAgICBtX3N0YXRlLnN0ZW5jaWxaRmFpbCA9IHpmYWlsOworICAgIG1fc3RhdGUuc3RlbmNp
bFpQYXNzID0genBhc3M7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3Rl
bmNpbE9wKGZhaWwsIHpmYWlsLCB6cGFzcyk7CiB9CkBAIC0xMTExLDYgKzExNjIsMTMgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRleCwg
R0MzRGludCBzaXplLCBHQzNEZW4KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmlld3BvcnQo
R0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkK
IHsKKyAgICBpZiAobV9zdGF0ZS52aWV3cG9ydFggPT0geCAmJiBtX3N0YXRlLnZpZXdwb3J0WSA9
PSB5ICYmIG1fc3RhdGUudmlld3BvcnRXaWR0aCA9PSB3aWR0aCAmJiBtX3N0YXRlLnZpZXdwb3J0
SGVpZ2h0ID09IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUudmlld3BvcnRY
ID0geDsKKyAgICBtX3N0YXRlLnZpZXdwb3J0WSA9IHk7CisgICAgbV9zdGF0ZS52aWV3cG9ydFdp
ZHRoID0gd2lkdGg7CisgICAgbV9zdGF0ZS52aWV3cG9ydEhlaWdodCA9IGhlaWdodDsKKwogICAg
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4LCB5LCB3aWR0aCwgaGVp
Z2h0KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190741</attachid>
            <date>2013-02-28 09:35:41 -0800</date>
            <delta_ts>2013-02-28 16:24:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130228133152.patch</filename>
            <type>text/plain</type>
            <size>8773</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzg1NjRjNzU1ZDk1MTE2
ZTJlNjg0ZTBhN2M3YWFjNDUyNjlmZTQ0NC4uOWJjODBkMDMwZDUyMDZmOGU1OTY3OThmMzkxMmNk
NmEwOTI4ZWZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEzLTAyLTI4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcyBhbmQgdGh1cyByZWR1Y2Ug
YW1vdW50IG9mIE9wZW5HTCBjYWxscy4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0
aHVzIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGUpOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNE
OjphY3RpdmVUZXh0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpi
bGVuZEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFz
ayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwaXhlbFN0b3JlaSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6c2Npc3Nvcik6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQzRDo6c3RlbmNpbEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnN0ZW5jaWxPcCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6dmll
d3BvcnQpOgorCiAyMDEzLTAyLTI1ICBCcnVubyBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5v
LmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAogICAgICAgICBDcmVhdGUgR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZSB0byBhZ2dyZWdhdGUgc3RhdGUgb2JqZWN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggNjQ5ZDUwNDE4
MzkzN2Q0ZDNjODhhZWJlMjY5ZGMwOTQxZDYwZTg1ZS4uOGViNWY2YzdhZGU1ZmQzN2Y2NjZhNTkz
MWMzZmRkZmJhYzgyMzk3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMDgxLDE2ICsxMDgxLDYyIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsKICAgICBHQzNEdWludCBtX2ludGVybmFs
Q29sb3JGb3JtYXQ7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8R0MzRGVudW0sIGJvb2w+IENhcGFi
aWxpdHlNYXA7CiAgICAgc3RydWN0IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgewogICAgICAgICBH
cmFwaGljc0NvbnRleHQzRFN0YXRlKCkKICAgICAgICAgICAgIDogYm91bmRGQk8oMCkKICAgICAg
ICAgICAgICwgYWN0aXZlVGV4dHVyZShHcmFwaGljc0NvbnRleHQzRDo6VEVYVFVSRTApCiAgICAg
ICAgICAgICAsIGJvdW5kVGV4dHVyZTAoMCkKKyAgICAgICAgICAgICwgc291cmNlRmFjdG9yKEdy
YXBoaWNzQ29udGV4dDNEOjpaRVJPKQorICAgICAgICAgICAgLCBkZXN0aW5hdGlvbkZhY3RvcihH
cmFwaGljc0NvbnRleHQzRDo6WkVSTykKKyAgICAgICAgICAgICwgZGVwdGhNYXNrKHRydWUpCisg
ICAgICAgICAgICAsIHNjaXNzb3JYKDApCisgICAgICAgICAgICAsIHNjaXNzb3JZKDApCisgICAg
ICAgICAgICAsIHNjaXNzb3JXaWR0aCgwKQorICAgICAgICAgICAgLCBzY2lzc29ySGVpZ2h0KDAp
CisgICAgICAgICAgICAsIHN0ZW5jaWxGdW5jKEdyYXBoaWNzQ29udGV4dDNEOjpBTFdBWVMpCisg
ICAgICAgICAgICAsIHN0ZW5jaWxSZWYoMCkKKyAgICAgICAgICAgICwgc3RlbmNpbE1hc2soVUlO
VF9NQVgpCisgICAgICAgICAgICAsIHN0ZW5jaWxGYWlsKEdyYXBoaWNzQ29udGV4dDNEOjpLRUVQ
KQorICAgICAgICAgICAgLCBzdGVuY2lsWkZhaWwoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisg
ICAgICAgICAgICAsIHN0ZW5jaWxaUGFzcyhHcmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAg
ICAgICAgICwgdmlld3BvcnRYKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0WSgwKQorICAgICAg
ICAgICAgLCB2aWV3cG9ydFdpZHRoKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0SGVpZ2h0KDAp
CisgICAgICAgICAgICAsIHBhY2tBbGlnbm1lbnQoNCkKKyAgICAgICAgICAgICwgdW5wYWNrQWxp
Z25tZW50KDQpCiAgICAgICAgIHsgfQogCiAgICAgICAgIEdDM0R1aW50IGJvdW5kRkJPOwogICAg
ICAgICBHQzNEZW51bSBhY3RpdmVUZXh0dXJlOwogICAgICAgICBHQzNEdWludCBib3VuZFRleHR1
cmUwOworICAgICAgICBHQzNEZW51bSBzb3VyY2VGYWN0b3I7CisgICAgICAgIEdDM0RlbnVtIGRl
c3RpbmF0aW9uRmFjdG9yOworCisgICAgICAgIEdDM0Rib29sZWFuIGRlcHRoTWFzazsKKworICAg
ICAgICBHQzNEaW50IHNjaXNzb3JYOworICAgICAgICBHQzNEaW50IHNjaXNzb3JZOworICAgICAg
ICBHQzNEc2l6ZWkgc2Npc3NvcldpZHRoOworICAgICAgICBHQzNEc2l6ZWkgc2Npc3NvckhlaWdo
dDsKKworICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsKKyAgICAgICAgR0MzRGludCBzdGVu
Y2lsUmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFzazsKKyAgICAgICAgR0MzRGVudW0g
c3RlbmNpbEZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxaRmFpbDsKKyAgICAgICAgR0Mz
RGVudW0gc3RlbmNpbFpQYXNzOworCisgICAgICAgIEdDM0RpbnQgdmlld3BvcnRYOworICAgICAg
ICBHQzNEaW50IHZpZXdwb3J0WTsKKyAgICAgICAgR0MzRHNpemVpIHZpZXdwb3J0V2lkdGg7Cisg
ICAgICAgIEdDM0RzaXplaSB2aWV3cG9ydEhlaWdodDsKKworICAgICAgICBHQzNEaW50IHBhY2tB
bGlnbm1lbnQ7CisgICAgICAgIEdDM0RpbnQgdW5wYWNrQWxpZ25tZW50OworCisgICAgICAgIENh
cGFiaWxpdHlNYXAgY2FwYWJpbGl0aWVzOwogICAgIH07CiAKICAgICBHcmFwaGljc0NvbnRleHQz
RFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJlNDQ0MWYxMTE1YTZlMjY5YzgwODRhZmNhMTRhLi4w
ZWM1Mzc5OWFlMDE4OTkyZDNlZTJiYmVhZTRjMzhkMDkyNWM4MzJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVu
R0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5n
bC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAgLTMwMCw2ICszMDAsOSBAQCBJ
bnRTaXplIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpIGNv
bnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4
dHVyZSkKIHsKKyAgICBpZiAobV9zdGF0ZS5hY3RpdmVUZXh0dXJlID09IHRleHR1cmUpCisgICAg
ICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIG1fc3RhdGUuYWN0
aXZlVGV4dHVyZSA9IHRleHR1cmU7CiAgICAgOjpnbEFjdGl2ZVRleHR1cmUodGV4dHVyZSk7CkBA
IC0zODAsNiArMzgzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRXF1YXRpb25T
ZXBhcmF0ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwCiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9y
KQogeworICAgIGlmIChtX3N0YXRlLnNvdXJjZUZhY3RvciA9PSBzZmFjdG9yICYmIG1fc3RhdGUu
ZGVzdGluYXRpb25GYWN0b3IgPT0gZGZhY3RvcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3Rh
dGUuc291cmNlRmFjdG9yID0gc2ZhY3RvcjsKKyAgICBtX3N0YXRlLmRlc3RpbmF0aW9uRmFjdG9y
ID0gZGZhY3RvcjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xCbGVuZEZ1
bmMoc2ZhY3RvciwgZGZhY3Rvcik7CiB9ICAgICAgIApAQCAtNTI5LDYgKzUzNywxMCBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykKIAogdm9pZCBHcmFw
aGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29sZWFuIGZsYWcpCiB7CisgICAgaWYgKG1f
c3RhdGUuZGVwdGhNYXNrID09IGZsYWcpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLmRl
cHRoTWFzayA9IGZsYWc7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRGVw
dGhNYXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU1NSwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dDNEOjpkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2Jq
ZWN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUoR0MzRGVudW0gY2FwKQogewor
ICAgIENhcGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZmlu
ZChjYXApOworICAgIGlmIChpdCAhPSBtX3N0YXRlLmNhcGFiaWxpdGllcy5lbmQoKSAmJiAhaXQt
PnZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBhYmlsaXRpZXMuc2V0KGNh
cCwgZmFsc2UpOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbERpc2FibGUo
Y2FwKTsKIH0KQEAgLTU2Nyw2ICs1ODQsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJh
d0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHkKIAog
dm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBDYXBh
YmlsaXR5TWFwOjppdGVyYXRvciBpdCA9IG1fc3RhdGUuY2FwYWJpbGl0aWVzLmZpbmQoY2FwKTsK
KyAgICBpZiAoaXQgIT0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZW5kKCkgJiYgaXQtPnZhbHVlKQor
ICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBhYmlsaXRpZXMuc2V0KGNhcCwgdHJ1ZSk7
CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRW5hYmxlKGNhcCk7CiB9CkBA
IC04MzUsNiArODU3LDE2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKFBs
YXRmb3JtM0RPYmplY3QgcHJvZ3JhbSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGl4ZWxT
dG9yZWkoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pCiB7CisgICAgaWYgKHBuYW1lID09
IEdMX1BBQ0tfQUxJR05NRU5UKSB7CisgICAgICAgIGlmIChtX3N0YXRlLnBhY2tBbGlnbm1lbnQg
PT0gcGFyYW0pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3RhdGUucGFja0FsaWdu
bWVudCA9IHBhcmFtOworICAgIH0gZWxzZSBpZiAocG5hbWUgPT0gR0xfVU5QQUNLX0FMSUdOTUVO
VCkgeworICAgICAgICBpZiAobV9zdGF0ZS51bnBhY2tBbGlnbm1lbnQgPT0gcGFyYW0pCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIG1fc3RhdGUudW5wYWNrQWxpZ25tZW50ID0gcGFyYW07
CisgICAgfQorCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFBpeGVsU3RvcmVp
KHBuYW1lLCBwYXJhbSk7CiB9CkBAIC04NTMsNiArODg1LDEzIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVy
dCkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2Npc3NvcihHQzNEaW50IHgsIEdDM0RpbnQg
eSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAgIGlmIChtX3N0YXRl
LnNjaXNzb3JYID09IHggJiYgbV9zdGF0ZS5zY2lzc29yWSA9PSB5ICYmIG1fc3RhdGUuc2Npc3Nv
cldpZHRoID09IHdpZHRoICYmIG1fc3RhdGUuc2Npc3NvckhlaWdodCA9PSBoZWlnaHQpCisgICAg
ICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnNjaXNzb3JYID0geDsKKyAgICBtX3N0YXRlLnNjaXNz
b3JZID0geTsKKyAgICBtX3N0YXRlLnNjaXNzb3JXaWR0aCA9IHdpZHRoOworICAgIG1fc3RhdGUu
c2Npc3NvckhlaWdodCA9IGhlaWdodDsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAg
IDo6Z2xTY2lzc29yKHgsIHksIHdpZHRoLCBoZWlnaHQpOwogfQpAQCAtODcyLDYgKzkxMSwxMiBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCBz
aGFkZXIsIGNvbnN0IFN0cmluZyYgc3RyaQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVu
Y2lsRnVuYyhHQzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykKIHsKKyAg
ICBpZiAobV9zdGF0ZS5zdGVuY2lsRnVuYyA9PSBmdW5jICYmIG1fc3RhdGUuc3RlbmNpbFJlZiA9
PSByZWYgJiYgbV9zdGF0ZS5zdGVuY2lsTWFzayA9PSBtYXNrKQorICAgICAgICByZXR1cm47Cisg
ICAgbV9zdGF0ZS5zdGVuY2lsRnVuYyA9IGZ1bmM7CisgICAgbV9zdGF0ZS5zdGVuY2lsUmVmID0g
cmVmOworICAgIG1fc3RhdGUuc3RlbmNpbE1hc2sgPSBtYXNrOworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxGdW5jKGZ1bmMsIHJlZiwgbWFzayk7CiB9CkBAIC04
OTYsNiArOTQxLDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxNYXNrU2VwYXJh
dGUoR0MzRGVudW0gZmFjZSwgR0MzRHVpbnQgbWFzaykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6c3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFz
cykKIHsKKyAgICBpZiAobV9zdGF0ZS5zdGVuY2lsRmFpbCA9PSBmYWlsICYmIG1fc3RhdGUuc3Rl
bmNpbFpGYWlsICYmIHpmYWlsICYmIG1fc3RhdGUuc3RlbmNpbFpQYXNzID09IHpwYXNzKQorICAg
ICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5zdGVuY2lsRmFpbCA9IGZhaWw7CisgICAgbV9zdGF0
ZS5zdGVuY2lsWkZhaWwgPSB6ZmFpbDsKKyAgICBtX3N0YXRlLnN0ZW5jaWxaUGFzcyA9IHpwYXNz
OworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxPcChmYWlsLCB6
ZmFpbCwgenBhc3MpOwogfQpAQCAtMTExMSw2ICsxMTYyLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwg
R0MzRGVuCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KEdDM0RpbnQgeCwgR0Mz
RGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CisgICAgaWYgKG1f
c3RhdGUudmlld3BvcnRYID09IHggJiYgbV9zdGF0ZS52aWV3cG9ydFkgPT0geSAmJiBtX3N0YXRl
LnZpZXdwb3J0V2lkdGggPT0gd2lkdGggJiYgbV9zdGF0ZS52aWV3cG9ydEhlaWdodCA9PSBoZWln
aHQpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnZpZXdwb3J0WCA9IHg7CisgICAgbV9z
dGF0ZS52aWV3cG9ydFkgPSB5OworICAgIG1fc3RhdGUudmlld3BvcnRXaWR0aCA9IHdpZHRoOwor
ICAgIG1fc3RhdGUudmlld3BvcnRIZWlnaHQgPSBoZWlnaHQ7CisKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKICAgICA6OmdsVmlld3BvcnQoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190836</attachid>
            <date>2013-02-28 16:24:44 -0800</date>
            <delta_ts>2013-02-28 17:24:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130228202053.patch</filename>
            <type>text/plain</type>
            <size>9867</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FkN2Q0ZDMxNzNhMzAw
ZTNhZjYwNjRhY2NiODNkN2Y0ODgxMmUxMy4uMmUwYzM1MWI5MDhiZmU1ZTlhODBhZWFmNzJjZDkz
NmRkNDE2OTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTI4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcyBhbmQgdGh1cyByZWR1Y2Ug
YW1vdW50IG9mIE9wZW5HTCBjYWxscyBvbiBub24tb3B0aW1pemVkIEdMCisgICAgICAgIGRyaXZl
cnMuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlcywgdGh1cyBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQz
RFN0YXRlKToKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEU3RhdGUpOgorICAgICAgICBBZGRl
ZCBzdGF0ZSB2YXJpYWJsZXMgdG8gR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jl
c3VsdHMpOgorICAgICAgICBVc2luZyBHcmFwaGljc0NvbnRleHQzRCdzIHBpeGVsU3RvcmVpIHRv
IGNoZWNrIGZvciBzdGF0ZSB2YXJpYWJsZS4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
ZGVwdGhNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkaXNhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjplbmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBpeGVsU3RvcmVpKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6c3RlbmNpbE9wKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjp2aWV3cG9ydCk6CisgICAgICAgIEltcGxlbWVudGVkIGEgc3RhdGUgY2hlY2sgb24gZWFj
aCBvZiB0aGVzZSBmdW5jdGlvbnMgdG8gcmV0dXJuIGVhcmx5IGlmCisgICAgICAgIHRoZSB2YWx1
ZSBtYXRjaGVzIHRoZSBwcmV2aW91cyBzZXQuCisKKzIwMTMtMDItMjggIEJydW5vIGRlIE9saXZl
aXJhIEFiaW5hZGVyICA8YnJ1bm8uYWJpbmFkZXJAYmFzeXNrb20uY29tPgorCiAgICAgICAgIENy
ZWF0ZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGFnZ3JlZ2F0ZSBzdGF0ZSBvYmplY3RzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4MTcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmgKaW5kZXggNjQ5ZDUwNDE4MzkzN2Q0ZDNjODhhZWJlMjY5ZGMwOTQxZDYwZTg1ZS4uMDVh
NzgxOWI3NWRjZGRlMTg5N2I3ZWZiZTg1ZTQ0ODYxYzNjNThkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMDgx
LDE2ICsxMDgxLDczIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsKICAg
ICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JGb3JtYXQ7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8
R0MzRGVudW0sIEdDM0RpbnQ+IFBpeGVsU3RvcmVJbnRNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PEdDM0RlbnVtLCBib29sPiBDYXBhYmlsaXR5TWFwOwogICAgIHN0cnVjdCBHcmFwaGljc0NvbnRl
eHQzRFN0YXRlIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSgpCiAgICAgICAgICAg
ICA6IGJvdW5kRkJPKDApCiAgICAgICAgICAgICAsIGFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUwKQogICAgICAgICAgICAgLCBib3VuZFRleHR1cmUwKDApCisgICAgICAg
ICAgICAsIHNvdXJjZUZhY3RvcihHcmFwaGljc0NvbnRleHQzRDo6WkVSTykKKyAgICAgICAgICAg
ICwgZGVzdGluYXRpb25GYWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6OlpFUk8pCisgICAgICAgICAg
ICAsIGRlcHRoTWFzayh0cnVlKQorICAgICAgICAgICAgLCBzY2lzc29yWCgwKQorICAgICAgICAg
ICAgLCBzY2lzc29yWSgwKQorICAgICAgICAgICAgLCBzY2lzc29yV2lkdGgoMCkKKyAgICAgICAg
ICAgICwgc2Npc3NvckhlaWdodCgwKQorICAgICAgICAgICAgLCBzdGVuY2lsRnVuYyhHcmFwaGlj
c0NvbnRleHQzRDo6QUxXQVlTKQorICAgICAgICAgICAgLCBzdGVuY2lsUmVmKDApCisgICAgICAg
ICAgICAsIHN0ZW5jaWxNYXNrKFVJTlRfTUFYKQorICAgICAgICAgICAgLCBzdGVuY2lsRmFpbChH
cmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAgICAgICAgICwgc3RlbmNpbFpGYWlsKEdyYXBo
aWNzQ29udGV4dDNEOjpLRUVQKQorICAgICAgICAgICAgLCBzdGVuY2lsWlBhc3MoR3JhcGhpY3ND
b250ZXh0M0Q6OktFRVApCisgICAgICAgICAgICAsIHZpZXdwb3J0WCgwKQorICAgICAgICAgICAg
LCB2aWV3cG9ydFkoMCkKKyAgICAgICAgICAgICwgdmlld3BvcnRXaWR0aCgwKQorICAgICAgICAg
ICAgLCB2aWV3cG9ydEhlaWdodCgwKQogICAgICAgICB7IH0KIAogICAgICAgICBHQzNEdWludCBi
b3VuZEZCTzsKICAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVyZTsKICAgICAgICAgR0MzRHVp
bnQgYm91bmRUZXh0dXJlMDsKKworICAgICAgICAvLyBUaGUgc3RhdGUgdmFyaWFibGVzIGJlbG93
IHJlZHVjZXMgcmVkdW5kYW50IHN0YXRlIGNoYW5nZXMgdGhhdAorICAgICAgICAvLyBtaWdodCBu
b3QgYmUgaGFuZGxlZCBjb3JyZWN0bHkgb24gbm9uLW9wdGltaXplZCBHTCBkcml2ZXJzLgorCisg
ICAgICAgIC8vIFVzZWQgYnkgZ2xCbGVuZEZ1bmMuCisgICAgICAgIEdDM0RlbnVtIHNvdXJjZUZh
Y3RvcjsKKyAgICAgICAgR0MzRGVudW0gZGVzdGluYXRpb25GYWN0b3I7CisKKyAgICAgICAgLy8g
VXNlZCBieSBnbERlcHRoTWFzay4KKyAgICAgICAgR0MzRGJvb2xlYW4gZGVwdGhNYXNrOworCisg
ICAgICAgIC8vIFVzZWQgYnkgZ2xTY2lzc29yLgorICAgICAgICBHQzNEaW50IHNjaXNzb3JYOwor
ICAgICAgICBHQzNEaW50IHNjaXNzb3JZOworICAgICAgICBHQzNEc2l6ZWkgc2Npc3NvcldpZHRo
OworICAgICAgICBHQzNEc2l6ZWkgc2Npc3NvckhlaWdodDsKKworICAgICAgICAvLyBVc2VkIGJ5
IGdsU3RlbmNpbEZ1bmMuCisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxGdW5jOworICAgICAgICBH
QzNEaW50IHN0ZW5jaWxSZWY7CisgICAgICAgIEdDM0R1aW50IHN0ZW5jaWxNYXNrOworCisgICAg
ICAgIC8vIFVzZWQgYnkgZ2xTdGVuY2lsT3AuCisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxGYWls
OworICAgICAgICBHQzNEZW51bSBzdGVuY2lsWkZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0ZW5j
aWxaUGFzczsKKworICAgICAgICAvLyBVc2VkIGJ5IGdsVmlld3BvcnQuCisgICAgICAgIEdDM0Rp
bnQgdmlld3BvcnRYOworICAgICAgICBHQzNEaW50IHZpZXdwb3J0WTsKKyAgICAgICAgR0MzRHNp
emVpIHZpZXdwb3J0V2lkdGg7CisgICAgICAgIEdDM0RzaXplaSB2aWV3cG9ydEhlaWdodDsKKwor
ICAgICAgICAvLyBVc2VkIGJ5IGdsUGl4ZWxTdG9yZWkuCisgICAgICAgIFBpeGVsU3RvcmVJbnRN
YXAgcGl4ZWxTdG9yZUludE1hcDsKKworICAgICAgICAvLyBVc2VkIGJ5IGdsRW5hYmxlIGFuZCBn
bERpc2FibGUuCisgICAgICAgIENhcGFiaWxpdHlNYXAgY2FwYWJpbGl0aWVzOwogICAgIH07CiAK
ICAgICBHcmFwaGljc0NvbnRleHQzRFN0YXRlIG1fc3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBo
aWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJlNDQ0MWYxMTE1
YTZlMjY5YzgwODRhZmNhMTRhLi4yNmJlMDllNDNjNjZmNmRhMzM5ZWQyYjYxZDY0NWUyN2Q4YmFh
MGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
QEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUmVuZGVyaW5n
UmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGludCBwaXhlbHNTaQogICAgIGJvb2wgbXVz
dFJlc3RvcmVQYWNrQWxpZ25tZW50ID0gZmFsc2U7CiAgICAgOjpnbEdldEludGVnZXJ2KEdMX1BB
Q0tfQUxJR05NRU5ULCAmcGFja0FsaWdubWVudCk7CiAgICAgaWYgKHBhY2tBbGlnbm1lbnQgPiA0
KSB7Ci0gICAgICAgIDo6Z2xQaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgNCk7CisgICAg
ICAgIHBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCA0KTsKICAgICAgICAgbXVzdFJlc3Rv
cmVQYWNrQWxpZ25tZW50ID0gdHJ1ZTsKICAgICB9CiAKQEAgLTMwMCw2ICszMDAsOSBAQCBJbnRT
aXplIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbEZyYW1lYnVmZmVyU2l6ZSgpIGNvbnN0
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUoR0MzRGVudW0gdGV4dHVy
ZSkKIHsKKyAgICBpZiAobV9zdGF0ZS5hY3RpdmVUZXh0dXJlID09IHRleHR1cmUpCisgICAgICAg
IHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIG1fc3RhdGUuYWN0aXZl
VGV4dHVyZSA9IHRleHR1cmU7CiAgICAgOjpnbEFjdGl2ZVRleHR1cmUodGV4dHVyZSk7CkBAIC0z
ODAsNiArMzgzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRXF1YXRpb25TZXBh
cmF0ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxwCiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNEZW51bSBzZmFjdG9yLCBHQzNEZW51bSBkZmFjdG9yKQog
eworICAgIGlmIChtX3N0YXRlLnNvdXJjZUZhY3RvciA9PSBzZmFjdG9yICYmIG1fc3RhdGUuZGVz
dGluYXRpb25GYWN0b3IgPT0gZGZhY3RvcikKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUu
c291cmNlRmFjdG9yID0gc2ZhY3RvcjsKKyAgICBtX3N0YXRlLmRlc3RpbmF0aW9uRmFjdG9yID0g
ZGZhY3RvcjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xCbGVuZEZ1bmMo
c2ZhY3RvciwgZGZhY3Rvcik7CiB9ICAgICAgIApAQCAtNTI5LDYgKzUzNywxMCBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykKIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29sZWFuIGZsYWcpCiB7CisgICAgaWYgKG1fc3Rh
dGUuZGVwdGhNYXNrID09IGZsYWcpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLmRlcHRo
TWFzayA9IGZsYWc7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRGVwdGhN
YXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU1NSwxMSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2JqZWN0
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUoR0MzRGVudW0gY2FwKQogeworICAg
IENhcGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZmluZChj
YXApOworICAgIGlmIChpdCAhPSBtX3N0YXRlLmNhcGFiaWxpdGllcy5lbmQoKSAmJiAhaXQtPnZh
bHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBhYmlsaXRpZXMuc2V0KGNhcCwg
ZmFsc2UpOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbERpc2FibGUoY2Fw
KTsKIH0KQEAgLTU2Nyw2ICs1ODQsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0Vs
ZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHkKIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBDYXBhYmls
aXR5TWFwOjppdGVyYXRvciBpdCA9IG1fc3RhdGUuY2FwYWJpbGl0aWVzLmZpbmQoY2FwKTsKKyAg
ICBpZiAoaXQgIT0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZW5kKCkgJiYgaXQtPnZhbHVlKQorICAg
ICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBhYmlsaXRpZXMuc2V0KGNhcCwgdHJ1ZSk7CisK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRW5hYmxlKGNhcCk7CiB9CkBAIC04
MzUsNiArODU3LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKFBsYXRm
b3JtM0RPYmplY3QgcHJvZ3JhbSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGl4ZWxTdG9y
ZWkoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pCiB7CisgICAgUGl4ZWxTdG9yZUludE1h
cDo6aXRlcmF0b3IgaXQgPSBtX3N0YXRlLnBpeGVsU3RvcmVJbnRNYXAuZmluZChwbmFtZSk7Cisg
ICAgaWYgKGl0ICE9IG1fc3RhdGUucGl4ZWxTdG9yZUludE1hcC5lbmQoKSAmJiBpdC0+dmFsdWUg
PT0gcGFyYW0pCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnBpeGVsU3RvcmVJbnRNYXAu
c2V0KHBuYW1lLCBwYXJhbSk7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6Omds
UGl4ZWxTdG9yZWkocG5hbWUsIHBhcmFtKTsKIH0KQEAgLTg1Myw2ICs4ODAsMTMgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJv
b2xlYW4gaW52ZXJ0KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKEdDM0RpbnQg
eCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CisgICAg
aWYgKG1fc3RhdGUuc2Npc3NvclggPT0geCAmJiBtX3N0YXRlLnNjaXNzb3JZID09IHkgJiYgbV9z
dGF0ZS5zY2lzc29yV2lkdGggPT0gd2lkdGggJiYgbV9zdGF0ZS5zY2lzc29ySGVpZ2h0ID09IGhl
aWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUuc2Npc3NvclggPSB4OworICAgIG1f
c3RhdGUuc2Npc3NvclkgPSB5OworICAgIG1fc3RhdGUuc2Npc3NvcldpZHRoID0gd2lkdGg7Cisg
ICAgbV9zdGF0ZS5zY2lzc29ySGVpZ2h0ID0gaGVpZ2h0OworCiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgOjpnbFNjaXNzb3IoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9CkBAIC04NzIs
NiArOTA2LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNoYWRlclNvdXJjZShQbGF0Zm9y
bTNET2JqZWN0IHNoYWRlciwgY29uc3QgU3RyaW5nJiBzdHJpCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBt
YXNrKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5jaWxGdW5jID09IGZ1bmMgJiYgbV9zdGF0ZS5z
dGVuY2lsUmVmID09IHJlZiAmJiBtX3N0YXRlLnN0ZW5jaWxNYXNrID09IG1hc2spCisgICAgICAg
IHJldHVybjsKKyAgICBtX3N0YXRlLnN0ZW5jaWxGdW5jID0gZnVuYzsKKyAgICBtX3N0YXRlLnN0
ZW5jaWxSZWYgPSByZWY7CisgICAgbV9zdGF0ZS5zdGVuY2lsTWFzayA9IG1hc2s7CisKICAgICBt
YWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbEZ1bmMoZnVuYywgcmVmLCBtYXNr
KTsKIH0KQEAgLTg5Niw2ICs5MzYsMTIgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNp
bE1hc2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzdGVuY2lsT3AoR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdD
M0RlbnVtIHpwYXNzKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5jaWxGYWlsID09IGZhaWwgJiYg
bV9zdGF0ZS5zdGVuY2lsWkZhaWwgJiYgemZhaWwgJiYgbV9zdGF0ZS5zdGVuY2lsWlBhc3MgPT0g
enBhc3MpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnN0ZW5jaWxGYWlsID0gZmFpbDsK
KyAgICBtX3N0YXRlLnN0ZW5jaWxaRmFpbCA9IHpmYWlsOworICAgIG1fc3RhdGUuc3RlbmNpbFpQ
YXNzID0genBhc3M7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNp
bE9wKGZhaWwsIHpmYWlsLCB6cGFzcyk7CiB9CkBAIC0xMTExLDYgKzExNTcsMTMgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliUG9pbnRlcihHQzNEdWludCBpbmRleCwgR0Mz
RGludCBzaXplLCBHQzNEZW4KIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmlld3BvcnQoR0Mz
RGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsK
KyAgICBpZiAobV9zdGF0ZS52aWV3cG9ydFggPT0geCAmJiBtX3N0YXRlLnZpZXdwb3J0WSA9PSB5
ICYmIG1fc3RhdGUudmlld3BvcnRXaWR0aCA9PSB3aWR0aCAmJiBtX3N0YXRlLnZpZXdwb3J0SGVp
Z2h0ID09IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUudmlld3BvcnRYID0g
eDsKKyAgICBtX3N0YXRlLnZpZXdwb3J0WSA9IHk7CisgICAgbV9zdGF0ZS52aWV3cG9ydFdpZHRo
ID0gd2lkdGg7CisgICAgbV9zdGF0ZS52aWV3cG9ydEhlaWdodCA9IGhlaWdodDsKKwogICAgIG1h
a2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4LCB5LCB3aWR0aCwgaGVpZ2h0
KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190855</attachid>
            <date>2013-02-28 17:25:05 -0800</date>
            <delta_ts>2013-03-01 05:47:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130228212114.patch</filename>
            <type>text/plain</type>
            <size>9910</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0Mzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FkN2Q0ZDMxNzNhMzAw
ZTNhZjYwNjRhY2NiODNkN2Y0ODgxMmUxMy4uMmUwYzM1MWI5MDhiZmU1ZTlhODBhZWFmNzJjZDkz
NmRkNDE2OTc1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDEzLTAyLTI4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcyBhbmQgdGh1cyByZWR1Y2Ug
YW1vdW50IG9mIE9wZW5HTCBjYWxscyBvbiBub24tb3B0aW1pemVkIEdMCisgICAgICAgIGRyaXZl
cnMuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlcywgdGh1cyBjb3ZlcmVkIGJ5IGV4aXN0
aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQz
RFN0YXRlKToKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNEU3RhdGUpOgorICAgICAgICBBZGRl
ZCBzdGF0ZSB2YXJpYWJsZXMgdG8gR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jl
c3VsdHMpOgorICAgICAgICBVc2luZyBHcmFwaGljc0NvbnRleHQzRCdzIHBpeGVsU3RvcmVpIHRv
IGNoZWNrIGZvciBzdGF0ZSB2YXJpYWJsZS4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3ND
b250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0Q6OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6
ZGVwdGhNYXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkaXNhYmxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjplbmFibGUpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBpeGVsU3RvcmVpKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6c3RlbmNpbE9wKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjp2aWV3cG9ydCk6CisgICAgICAgIEltcGxlbWVudGVkIGEgc3RhdGUgY2hlY2sgb24gZWFj
aCBvZiB0aGVzZSBmdW5jdGlvbnMgdG8gcmV0dXJuIGVhcmx5IGlmCisgICAgICAgIHRoZSB2YWx1
ZSBtYXRjaGVzIHRoZSBwcmV2aW91cyBzZXQuCisKKzIwMTMtMDItMjggIEJydW5vIGRlIE9saXZl
aXJhIEFiaW5hZGVyICA8YnJ1bm8uYWJpbmFkZXJAYmFzeXNrb20uY29tPgorCiAgICAgICAgIENy
ZWF0ZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGFnZ3JlZ2F0ZSBzdGF0ZSBvYmplY3RzCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA4MTcKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4
dDNELmgKaW5kZXggNjQ5ZDUwNDE4MzkzN2Q0ZDNjODhhZWJlMjY5ZGMwOTQxZDYwZTg1ZS4uMmVj
ZDhlYWQ0ODA1OGQzZjRjZTlmNWYwOGMxZThkYWIxNWJmMzNjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0xMDgx
LDE2ICsxMDgxLDc0IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsKICAg
ICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JGb3JtYXQ7CiAKKyAgICB0eXBlZGVmIEhhc2hNYXA8
R0MzRGVudW0sIEdDM0RpbnQ+IFBpeGVsU3RvcmVJbnRNYXA7CisgICAgdHlwZWRlZiBIYXNoTWFw
PEdDM0RlbnVtLCBib29sPiBDYXBhYmlsaXR5TWFwOwogICAgIHN0cnVjdCBHcmFwaGljc0NvbnRl
eHQzRFN0YXRlIHsKICAgICAgICAgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSgpCiAgICAgICAgICAg
ICA6IGJvdW5kRkJPKDApCiAgICAgICAgICAgICAsIGFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250
ZXh0M0Q6OlRFWFRVUkUwKQogICAgICAgICAgICAgLCBib3VuZFRleHR1cmUwKDApCisgICAgICAg
ICAgICAsIHNvdXJjZUZhY3RvcihHcmFwaGljc0NvbnRleHQzRDo6WkVSTykKKyAgICAgICAgICAg
ICwgZGVzdGluYXRpb25GYWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6OlpFUk8pCisgICAgICAgICAg
ICAsIGRlcHRoTWFzayh0cnVlKQorICAgICAgICAgICAgLCBzY2lzc29yWCgwKQorICAgICAgICAg
ICAgLCBzY2lzc29yWSgwKQorICAgICAgICAgICAgLCBzY2lzc29yV2lkdGgoMCkKKyAgICAgICAg
ICAgICwgc2Npc3NvckhlaWdodCgwKQorICAgICAgICAgICAgLCBzdGVuY2lsRnVuYyhHcmFwaGlj
c0NvbnRleHQzRDo6QUxXQVlTKQorICAgICAgICAgICAgLCBzdGVuY2lsUmVmKDApCisgICAgICAg
ICAgICAsIHN0ZW5jaWxNYXNrKFVJTlRfTUFYKQorICAgICAgICAgICAgLCBzdGVuY2lsRmFpbChH
cmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAgICAgICAgICwgc3RlbmNpbFpGYWlsKEdyYXBo
aWNzQ29udGV4dDNEOjpLRUVQKQorICAgICAgICAgICAgLCBzdGVuY2lsWlBhc3MoR3JhcGhpY3ND
b250ZXh0M0Q6OktFRVApCisgICAgICAgICAgICAsIHZpZXdwb3J0WCgwKQorICAgICAgICAgICAg
LCB2aWV3cG9ydFkoMCkKKyAgICAgICAgICAgICwgdmlld3BvcnRXaWR0aCgwKQorICAgICAgICAg
ICAgLCB2aWV3cG9ydEhlaWdodCgwKQogICAgICAgICB7IH0KIAogICAgICAgICBHQzNEdWludCBi
b3VuZEZCTzsKICAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVyZTsKICAgICAgICAgR0MzRHVp
bnQgYm91bmRUZXh0dXJlMDsKKworICAgICAgICAvLyBUaGUgY2FjaGVkIHZhbHVlcyBiZWxvdyBh
cmUgdXNlZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgLy8gcmVkdWNl
IHJlZHVuZGFudCBzdGF0ZSB0cmFuc2l0aW9ucy4gRG8gbm90IHJlbHkgb24gdGhlaXIgYmVpbmcK
KyAgICAgICAgLy8gdXAtdG8tZGF0ZSBpbiBjb21tb24gY29kZS4KKworICAgICAgICAvLyBVc2Vk
IGJ5IGdsQmxlbmRGdW5jLgorICAgICAgICBHQzNEZW51bSBzb3VyY2VGYWN0b3I7CisgICAgICAg
IEdDM0RlbnVtIGRlc3RpbmF0aW9uRmFjdG9yOworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xEZXB0
aE1hc2suCisgICAgICAgIEdDM0Rib29sZWFuIGRlcHRoTWFzazsKKworICAgICAgICAvLyBVc2Vk
IGJ5IGdsU2Npc3Nvci4KKyAgICAgICAgR0MzRGludCBzY2lzc29yWDsKKyAgICAgICAgR0MzRGlu
dCBzY2lzc29yWTsKKyAgICAgICAgR0MzRHNpemVpIHNjaXNzb3JXaWR0aDsKKyAgICAgICAgR0Mz
RHNpemVpIHNjaXNzb3JIZWlnaHQ7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFN0ZW5jaWxGdW5j
LgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsKKyAgICAgICAgR0MzRGludCBzdGVuY2ls
UmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFzazsKKworICAgICAgICAvLyBVc2VkIGJ5
IGdsU3RlbmNpbE9wLgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRmFpbDsKKyAgICAgICAgR0Mz
RGVudW0gc3RlbmNpbFpGYWlsOworICAgICAgICBHQzNEZW51bSBzdGVuY2lsWlBhc3M7CisKKyAg
ICAgICAgLy8gVXNlZCBieSBnbFZpZXdwb3J0LgorICAgICAgICBHQzNEaW50IHZpZXdwb3J0WDsK
KyAgICAgICAgR0MzRGludCB2aWV3cG9ydFk7CisgICAgICAgIEdDM0RzaXplaSB2aWV3cG9ydFdp
ZHRoOworICAgICAgICBHQzNEc2l6ZWkgdmlld3BvcnRIZWlnaHQ7CisKKyAgICAgICAgLy8gVXNl
ZCBieSBnbFBpeGVsU3RvcmVpLgorICAgICAgICBQaXhlbFN0b3JlSW50TWFwIHBpeGVsU3RvcmVJ
bnRNYXA7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbEVuYWJsZSBhbmQgZ2xEaXNhYmxlLgorICAg
ICAgICBDYXBhYmlsaXR5TWFwIGNhcGFiaWxpdGllczsKICAgICB9OwogCiAgICAgR3JhcGhpY3ND
b250ZXh0M0RTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAKaW5kZXggMzk2MWE1ZjdlZGFiZTQ0NDFmMTExNWE2ZTI2OWM4MDg0YWZj
YTE0YS4uZTkxYWFmM2EzYWM5YWMyMTdlYmQ5N2ZmMTk1NTNjMjc3YThkYTIwZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4
dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCkBAIC0yMDEsNyArMjAx
LDcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5zaWdu
ZWQgY2hhciAqcGl4ZWxzLCBpbnQgcGl4ZWxzU2kKICAgICBib29sIG11c3RSZXN0b3JlUGFja0Fs
aWdubWVudCA9IGZhbHNlOwogICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9QQUNLX0FMSUdOTUVOVCwg
JnBhY2tBbGlnbm1lbnQpOwogICAgIGlmIChwYWNrQWxpZ25tZW50ID4gNCkgewotICAgICAgICA6
OmdsUGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQsIDQpOworICAgICAgICBwaXhlbFN0b3Jl
aShHTF9QQUNLX0FMSUdOTUVOVCwgNCk7CiAgICAgICAgIG11c3RSZXN0b3JlUGFja0FsaWdubWVu
dCA9IHRydWU7CiAgICAgfQogCkBAIC0zMDAsNiArMzAwLDkgQEAgSW50U2l6ZSBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0SW50ZXJuYWxGcmFtZWJ1ZmZlclNpemUoKSBjb25zdAogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKEdDM0RlbnVtIHRleHR1cmUpCiB7CisgICAgaWYg
KG1fc3RhdGUuYWN0aXZlVGV4dHVyZSA9PSB0ZXh0dXJlKQorICAgICAgICByZXR1cm47CisKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICBtX3N0YXRlLmFjdGl2ZVRleHR1cmUgPSB0ZXh0
dXJlOwogICAgIDo6Z2xBY3RpdmVUZXh0dXJlKHRleHR1cmUpOwpAQCAtMzgwLDYgKzM4MywxMSBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVxdWF0aW9uU2VwYXJhdGUoR0MzRGVudW0g
bW9kZVJHQiwgR0MzRGVudW0gbW9kZUFscAogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpibGVu
ZEZ1bmMoR0MzRGVudW0gc2ZhY3RvciwgR0MzRGVudW0gZGZhY3RvcikKIHsKKyAgICBpZiAobV9z
dGF0ZS5zb3VyY2VGYWN0b3IgPT0gc2ZhY3RvciAmJiBtX3N0YXRlLmRlc3RpbmF0aW9uRmFjdG9y
ID09IGRmYWN0b3IpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnNvdXJjZUZhY3RvciA9
IHNmYWN0b3I7CisgICAgbV9zdGF0ZS5kZXN0aW5hdGlvbkZhY3RvciA9IGRmYWN0b3I7CisKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsQmxlbmRGdW5jKHNmYWN0b3IsIGRmYWN0
b3IpOwogfSAgICAgICAKQEAgLTUyOSw2ICs1MzcsMTAgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6ZGVwdGhGdW5jKEdDM0RlbnVtIGZ1bmMpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRl
cHRoTWFzayhHQzNEYm9vbGVhbiBmbGFnKQogeworICAgIGlmIChtX3N0YXRlLmRlcHRoTWFzayA9
PSBmbGFnKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5kZXB0aE1hc2sgPSBmbGFnOwor
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbERlcHRoTWFzayhmbGFnKTsKIH0K
QEAgLTU0Myw2ICs1NTUsMTEgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGV0YWNoU2hhZGVy
KFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSwgUGxhdGZvcm0zRE9iamVjdAogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpkaXNhYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBDYXBhYmlsaXR5TWFw
OjppdGVyYXRvciBpdCA9IG1fc3RhdGUuY2FwYWJpbGl0aWVzLmZpbmQoY2FwKTsKKyAgICBpZiAo
aXQgIT0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZW5kKCkgJiYgIWl0LT52YWx1ZSkKKyAgICAgICAg
cmV0dXJuOworICAgIG1fc3RhdGUuY2FwYWJpbGl0aWVzLnNldChjYXAsIGZhbHNlKTsKKwogICAg
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xEaXNhYmxlKGNhcCk7CiB9CkBAIC01Njcs
NiArNTg0LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRyYXdFbGVtZW50cyhHQzNEZW51
bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5CiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmVuYWJsZShHQzNEZW51bSBjYXApCiB7CisgICAgQ2FwYWJpbGl0eU1hcDo6aXRlcmF0
b3IgaXQgPSBtX3N0YXRlLmNhcGFiaWxpdGllcy5maW5kKGNhcCk7CisgICAgaWYgKGl0ICE9IG1f
c3RhdGUuY2FwYWJpbGl0aWVzLmVuZCgpICYmIGl0LT52YWx1ZSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIG1fc3RhdGUuY2FwYWJpbGl0aWVzLnNldChjYXAsIHRydWUpOworCiAgICAgbWFrZUNvbnRl
eHRDdXJyZW50KCk7CiAgICAgOjpnbEVuYWJsZShjYXApOwogfQpAQCAtODM1LDYgKzg1NywxMSBA
QCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpsaW5rUHJvZ3JhbShQbGF0Zm9ybTNET2JqZWN0IHBy
b2dyYW0pCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnBpeGVsU3RvcmVpKEdDM0RlbnVtIHBu
YW1lLCBHQzNEaW50IHBhcmFtKQogeworICAgIFBpeGVsU3RvcmVJbnRNYXA6Oml0ZXJhdG9yIGl0
ID0gbV9zdGF0ZS5waXhlbFN0b3JlSW50TWFwLmZpbmQocG5hbWUpOworICAgIGlmIChpdCAhPSBt
X3N0YXRlLnBpeGVsU3RvcmVJbnRNYXAuZW5kKCkgJiYgaXQtPnZhbHVlID09IHBhcmFtKQorICAg
ICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5waXhlbFN0b3JlSW50TWFwLnNldChwbmFtZSwgcGFy
YW0pOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFBpeGVsU3RvcmVpKHBu
YW1lLCBwYXJhbSk7CiB9CkBAIC04NTMsNiArODgwLDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnNhbXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVydCkK
IAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2Npc3NvcihHQzNEaW50IHgsIEdDM0RpbnQgeSwg
R0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAgIGlmIChtX3N0YXRlLnNj
aXNzb3JYID09IHggJiYgbV9zdGF0ZS5zY2lzc29yWSA9PSB5ICYmIG1fc3RhdGUuc2Npc3Nvcldp
ZHRoID09IHdpZHRoICYmIG1fc3RhdGUuc2Npc3NvckhlaWdodCA9PSBoZWlnaHQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX3N0YXRlLnNjaXNzb3JYID0geDsKKyAgICBtX3N0YXRlLnNjaXNzb3JZ
ID0geTsKKyAgICBtX3N0YXRlLnNjaXNzb3JXaWR0aCA9IHdpZHRoOworICAgIG1fc3RhdGUuc2Np
c3NvckhlaWdodCA9IGhlaWdodDsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6
Z2xTY2lzc29yKHgsIHksIHdpZHRoLCBoZWlnaHQpOwogfQpAQCAtODcyLDYgKzkwNiwxMiBAQCB2
b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCBzaGFk
ZXIsIGNvbnN0IFN0cmluZyYgc3RyaQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2ls
RnVuYyhHQzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykKIHsKKyAgICBp
ZiAobV9zdGF0ZS5zdGVuY2lsRnVuYyA9PSBmdW5jICYmIG1fc3RhdGUuc3RlbmNpbFJlZiA9PSBy
ZWYgJiYgbV9zdGF0ZS5zdGVuY2lsTWFzayA9PSBtYXNrKQorICAgICAgICByZXR1cm47CisgICAg
bV9zdGF0ZS5zdGVuY2lsRnVuYyA9IGZ1bmM7CisgICAgbV9zdGF0ZS5zdGVuY2lsUmVmID0gcmVm
OworICAgIG1fc3RhdGUuc3RlbmNpbE1hc2sgPSBtYXNrOworCiAgICAgbWFrZUNvbnRleHRDdXJy
ZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxGdW5jKGZ1bmMsIHJlZiwgbWFzayk7CiB9CkBAIC04OTYs
NiArOTM2LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxNYXNrU2VwYXJhdGUo
R0MzRGVudW0gZmFjZSwgR0MzRHVpbnQgbWFzaykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
c3RlbmNpbE9wKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcykK
IHsKKyAgICBpZiAobV9zdGF0ZS5zdGVuY2lsRmFpbCA9PSBmYWlsICYmIG1fc3RhdGUuc3RlbmNp
bFpGYWlsID09IHpmYWlsICYmIG1fc3RhdGUuc3RlbmNpbFpQYXNzID09IHpwYXNzKQorICAgICAg
ICByZXR1cm47CisgICAgbV9zdGF0ZS5zdGVuY2lsRmFpbCA9IGZhaWw7CisgICAgbV9zdGF0ZS5z
dGVuY2lsWkZhaWwgPSB6ZmFpbDsKKyAgICBtX3N0YXRlLnN0ZW5jaWxaUGFzcyA9IHpwYXNzOwor
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxPcChmYWlsLCB6ZmFp
bCwgenBhc3MpOwogfQpAQCAtMTExMSw2ICsxMTU3LDEzIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OnZlcnRleEF0dHJpYlBvaW50ZXIoR0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0Mz
RGVuCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGlu
dCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CisgICAgaWYgKG1fc3Rh
dGUudmlld3BvcnRYID09IHggJiYgbV9zdGF0ZS52aWV3cG9ydFkgPT0geSAmJiBtX3N0YXRlLnZp
ZXdwb3J0V2lkdGggPT0gd2lkdGggJiYgbV9zdGF0ZS52aWV3cG9ydEhlaWdodCA9PSBoZWlnaHQp
CisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnZpZXdwb3J0WCA9IHg7CisgICAgbV9zdGF0
ZS52aWV3cG9ydFkgPSB5OworICAgIG1fc3RhdGUudmlld3BvcnRXaWR0aCA9IHdpZHRoOworICAg
IG1fc3RhdGUudmlld3BvcnRIZWlnaHQgPSBoZWlnaHQ7CisKICAgICBtYWtlQ29udGV4dEN1cnJl
bnQoKTsKICAgICA6OmdsVmlld3BvcnQoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190946</attachid>
            <date>2013-03-01 05:47:27 -0800</date>
            <delta_ts>2013-03-06 19:16:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130301094337.patch</filename>
            <type>text/plain</type>
            <size>10227</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVmNWU1ZjU4M2Q5Nzdm
OTlhMTcyYzJhZGU3NDNjYTUyNDc1NWQ0MC4uYjIxYTA5YjkxYzU3YmYzN2Y2OTcyNjE2NDBjY2Jj
NjlhOWVkMzdlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEzLTAzLTAxICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIE9wZW5HTCByZWR1bmRhbnQgc3Rh
dGUgY2hhbmdlcyBvbiBHcmFwaGljc0NvbnRleHQzRAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEwODgzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvZmlsaW5nIEVGTCdzIE1pbmlCcm93c2VyIHVuZGVy
IGdERUJ1Z2dlciBkZXRlY3RlZCBxdWl0ZSBzb21lIHN0YXRlCisgICAgICAgIGNoYW5nZSBmdW5j
dGlvbiBjYWxscyB3ZXJlIHJlZHVuZGFudC4gVGhpcyBwYXRjaCBpbnRlbmRzIHRvIGFkZCBtb3Jl
CisgICAgICAgIHN0YXRlIHZhcmlhYmxlcyBpbnNpZGUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB0
byBhdm9pZCByZWR1bmRhbnQgc3RhdGUKKyAgICAgICAgY2hhbmdlcy4gVGhlIGNhY2hlZCB2YWx1
ZXMgYXJlIHVzZWQgYnkgc29tZSwgYnV0IG5vdCBhbGwsIHBvcnRzIHRvCisgICAgICAgIHJlZHVj
ZSByZWR1bmRhbnQgc3RhdGUgdHJhbnNpdGlvbnMuCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hh
bmdlcywgdGh1cyBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKEdyYXBoaWNzQ29udGV4
dDNEKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlKToKKyAgICAgICAgKEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUpOgorICAgICAgICBBZGRlZCBzdGF0ZSB2YXJpYWJsZXMgdG8gR3JhcGhpY3ND
b250ZXh0M0RTdGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFw
aGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAgICAgICBVc2UgR3JhcGhpY3ND
b250ZXh0M0QncyBwaXhlbFN0b3JlaSB0byBrZWVwIHN0YXRlIHZhcmlhYmxlcyBjb25zaXN0ZW50
LgorCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YWN0aXZlVGV4dHVyZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jKToKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aE1hc2spOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmVuYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRDo6cGl4ZWxTdG9yZWkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OnNjaXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxG
dW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsT3ApOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0KToKKyAgICAgICAg
SW1wbGVtZW50ZWQgYSBzdGF0ZSBjaGVjayBvbiBlYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucyB0byBy
ZXR1cm4gZWFybHkgaWYKKyAgICAgICAgdGhlIHZhbHVlIG1hdGNoZXMgdGhlIHByZXZpb3VzIHNl
dC4KKwogMjAxMy0wMy0wMSAgVmljdG9yIENhcmJ1bmUgIDx2Y2FyYnVuZUBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgU3VwcG9ydCBwYWRkaW5nLCBtYXJnaW4gYW5kIGJvcmRlciBmb3IgaW50ZXJu
YWwgVUEgY3VlIHN0eWxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDY0OWQ1MDQxODM5MzdkNGQzYzg4YWViZTI2
OWRjMDk0MWQ2MGU4NWUuLmI3YWM2MmIzNDM2MjE2NmNmNDM4NDQ4ZDU2YTM3MjJiY2NjNWIwMDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0QuaApAQCAtMTA4MSwxNiArMTA4MSw3NCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9s
YXllckNvbXBvc2l0ZWQ7CiAgICAgR0MzRHVpbnQgbV9pbnRlcm5hbENvbG9yRm9ybWF0OwogCisg
ICAgdHlwZWRlZiBIYXNoTWFwPEdDM0RlbnVtLCBHQzNEaW50PiBQaXhlbFN0b3JlSW50TWFwOwor
ICAgIHR5cGVkZWYgSGFzaE1hcDxHQzNEZW51bSwgYm9vbD4gQ2FwYWJpbGl0eU1hcDsKICAgICBz
dHJ1Y3QgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNE
U3RhdGUoKQogICAgICAgICAgICAgOiBib3VuZEZCTygwKQogICAgICAgICAgICAgLCBhY3RpdmVU
ZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCkKICAgICAgICAgICAgICwgYm91bmRU
ZXh0dXJlMCgwKQorICAgICAgICAgICAgLCBzb3VyY2VGYWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6
Ok9ORSkKKyAgICAgICAgICAgICwgZGVzdGluYXRpb25GYWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6
OlpFUk8pCisgICAgICAgICAgICAsIGRlcHRoTWFzayh0cnVlKQorICAgICAgICAgICAgLCBzY2lz
c29yWCgwKQorICAgICAgICAgICAgLCBzY2lzc29yWSgwKQorICAgICAgICAgICAgLCBzY2lzc29y
V2lkdGgoMCkKKyAgICAgICAgICAgICwgc2Npc3NvckhlaWdodCgwKQorICAgICAgICAgICAgLCBz
dGVuY2lsRnVuYyhHcmFwaGljc0NvbnRleHQzRDo6QUxXQVlTKQorICAgICAgICAgICAgLCBzdGVu
Y2lsUmVmKDApCisgICAgICAgICAgICAsIHN0ZW5jaWxNYXNrKFVJTlRfTUFYKQorICAgICAgICAg
ICAgLCBzdGVuY2lsRmFpbChHcmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAgICAgICAgICwg
c3RlbmNpbFpGYWlsKEdyYXBoaWNzQ29udGV4dDNEOjpLRUVQKQorICAgICAgICAgICAgLCBzdGVu
Y2lsWlBhc3MoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisgICAgICAgICAgICAsIHZpZXdwb3J0
WCgwKQorICAgICAgICAgICAgLCB2aWV3cG9ydFkoMCkKKyAgICAgICAgICAgICwgdmlld3BvcnRX
aWR0aCgwKQorICAgICAgICAgICAgLCB2aWV3cG9ydEhlaWdodCgwKQogICAgICAgICB7IH0KIAog
ICAgICAgICBHQzNEdWludCBib3VuZEZCTzsKICAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVy
ZTsKICAgICAgICAgR0MzRHVpbnQgYm91bmRUZXh0dXJlMDsKKworICAgICAgICAvLyBUaGUgY2Fj
aGVkIHZhbHVlcyBiZWxvdyBhcmUgdXNlZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8K
KyAgICAgICAgLy8gcmVkdWNlIHJlZHVuZGFudCBzdGF0ZSB0cmFuc2l0aW9ucy4gRG8gbm90IHJl
bHkgb24gdGhlaXIgYmVpbmcKKyAgICAgICAgLy8gdXAtdG8tZGF0ZSBpbiBjb21tb24gY29kZS4K
KworICAgICAgICAvLyBVc2VkIGJ5IGdsQmxlbmRGdW5jLgorICAgICAgICBHQzNEZW51bSBzb3Vy
Y2VGYWN0b3I7CisgICAgICAgIEdDM0RlbnVtIGRlc3RpbmF0aW9uRmFjdG9yOworCisgICAgICAg
IC8vIFVzZWQgYnkgZ2xEZXB0aE1hc2suCisgICAgICAgIEdDM0Rib29sZWFuIGRlcHRoTWFzazsK
KworICAgICAgICAvLyBVc2VkIGJ5IGdsU2Npc3Nvci4KKyAgICAgICAgR0MzRGludCBzY2lzc29y
WDsKKyAgICAgICAgR0MzRGludCBzY2lzc29yWTsKKyAgICAgICAgR0MzRHNpemVpIHNjaXNzb3JX
aWR0aDsKKyAgICAgICAgR0MzRHNpemVpIHNjaXNzb3JIZWlnaHQ7CisKKyAgICAgICAgLy8gVXNl
ZCBieSBnbFN0ZW5jaWxGdW5jLgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsKKyAgICAg
ICAgR0MzRGludCBzdGVuY2lsUmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFzazsKKwor
ICAgICAgICAvLyBVc2VkIGJ5IGdsU3RlbmNpbE9wLgorICAgICAgICBHQzNEZW51bSBzdGVuY2ls
RmFpbDsKKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbFpGYWlsOworICAgICAgICBHQzNEZW51bSBz
dGVuY2lsWlBhc3M7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFZpZXdwb3J0LgorICAgICAgICBH
QzNEaW50IHZpZXdwb3J0WDsKKyAgICAgICAgR0MzRGludCB2aWV3cG9ydFk7CisgICAgICAgIEdD
M0RzaXplaSB2aWV3cG9ydFdpZHRoOworICAgICAgICBHQzNEc2l6ZWkgdmlld3BvcnRIZWlnaHQ7
CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFBpeGVsU3RvcmVpLgorICAgICAgICBQaXhlbFN0b3Jl
SW50TWFwIHBpeGVsU3RvcmVJbnRNYXA7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbEVuYWJsZSBh
bmQgZ2xEaXNhYmxlLgorICAgICAgICBDYXBhYmlsaXR5TWFwIGNhcGFiaWxpdGllczsKICAgICB9
OwogCiAgICAgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSBtX3N0YXRlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3Bl
bkdMQ29tbW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggMzk2MWE1ZjdlZGFiZTQ0NDFm
MTExNWE2ZTI2OWM4MDg0YWZjYTE0YS4uZDEyNjVlZjFlYjNlMzc0YjE2YzBjZjk2MTJhZGVmYzQw
YmNiNTQxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMDEsMTQgKzIwMSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUmVu
ZGVyaW5nUmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGludCBwaXhlbHNTaQogICAgIGJv
b2wgbXVzdFJlc3RvcmVQYWNrQWxpZ25tZW50ID0gZmFsc2U7CiAgICAgOjpnbEdldEludGVnZXJ2
KEdMX1BBQ0tfQUxJR05NRU5ULCAmcGFja0FsaWdubWVudCk7CiAgICAgaWYgKHBhY2tBbGlnbm1l
bnQgPiA0KSB7Ci0gICAgICAgIDo6Z2xQaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgNCk7
CisgICAgICAgIHBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCA0KTsKICAgICAgICAgbXVz
dFJlc3RvcmVQYWNrQWxpZ25tZW50ID0gdHJ1ZTsKICAgICB9CiAKICAgICByZWFkUGl4ZWxzQW5k
Q29udmVydFRvQkdSQUlmTmVjZXNzYXJ5KDAsIDAsIG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRI
ZWlnaHQsIHBpeGVscyk7CiAKICAgICBpZiAobXVzdFJlc3RvcmVQYWNrQWxpZ25tZW50KQotICAg
ICAgICA6OmdsUGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQsIHBhY2tBbGlnbm1lbnQpOwor
ICAgICAgICBwaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgcGFja0FsaWdubWVudCk7CiAK
ICAgICBpZiAobXVzdFJlc3RvcmVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQo
R3JhcGhpY3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX3N0YXRlLmJvdW5kRkJPKTsKQEAgLTMw
MCw2ICszMDAsOSBAQCBJbnRTaXplIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbEZyYW1l
YnVmZmVyU2l6ZSgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1
cmUoR0MzRGVudW0gdGV4dHVyZSkKIHsKKyAgICBpZiAobV9zdGF0ZS5hY3RpdmVUZXh0dXJlID09
IHRleHR1cmUpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIG1fc3RhdGUuYWN0aXZlVGV4dHVyZSA9IHRleHR1cmU7CiAgICAgOjpnbEFjdGl2ZVRleHR1
cmUodGV4dHVyZSk7CkBAIC0zODAsNiArMzgzLDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmJsZW5kRXF1YXRpb25TZXBhcmF0ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2RlQWxw
CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNEZW51bSBzZmFjdG9yLCBH
QzNEZW51bSBkZmFjdG9yKQogeworICAgIGlmIChtX3N0YXRlLnNvdXJjZUZhY3RvciA9PSBzZmFj
dG9yICYmIG1fc3RhdGUuZGVzdGluYXRpb25GYWN0b3IgPT0gZGZhY3RvcikKKyAgICAgICAgcmV0
dXJuOworICAgIG1fc3RhdGUuc291cmNlRmFjdG9yID0gc2ZhY3RvcjsKKyAgICBtX3N0YXRlLmRl
c3RpbmF0aW9uRmFjdG9yID0gZGZhY3RvcjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwog
ICAgIDo6Z2xCbGVuZEZ1bmMoc2ZhY3RvciwgZGZhY3Rvcik7CiB9ICAgICAgIApAQCAtNTI5LDYg
KzUzNywxMCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0MzRGVudW0gZnVu
YykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29sZWFuIGZsYWcp
CiB7CisgICAgaWYgKG1fc3RhdGUuZGVwdGhNYXNrID09IGZsYWcpCisgICAgICAgIHJldHVybjsK
KyAgICBtX3N0YXRlLmRlcHRoTWFzayA9IGZsYWc7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICA6OmdsRGVwdGhNYXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU1NSwxMSBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFt
LCBQbGF0Zm9ybTNET2JqZWN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUoR0Mz
RGVudW0gY2FwKQogeworICAgIENhcGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gbV9zdGF0ZS5j
YXBhYmlsaXRpZXMuZmluZChjYXApOworICAgIGlmIChpdCAhPSBtX3N0YXRlLmNhcGFiaWxpdGll
cy5lbmQoKSAmJiAhaXQtPnZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBh
YmlsaXRpZXMuc2V0KGNhcCwgZmFsc2UpOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgOjpnbERpc2FibGUoY2FwKTsKIH0KQEAgLTU2Nyw2ICs1ODQsMTEgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1vZGUsIEdDM0RzaXplaSBjb3VudCwg
R0MzRGVudW0gdHkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZW5hYmxlKEdDM0RlbnVtIGNh
cCkKIHsKKyAgICBDYXBhYmlsaXR5TWFwOjppdGVyYXRvciBpdCA9IG1fc3RhdGUuY2FwYWJpbGl0
aWVzLmZpbmQoY2FwKTsKKyAgICBpZiAoaXQgIT0gbV9zdGF0ZS5jYXBhYmlsaXRpZXMuZW5kKCkg
JiYgaXQtPnZhbHVlKQorICAgICAgICByZXR1cm47CisgICAgbV9zdGF0ZS5jYXBhYmlsaXRpZXMu
c2V0KGNhcCwgdHJ1ZSk7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRW5h
YmxlKGNhcCk7CiB9CkBAIC04MzUsNiArODU3LDExIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6
OmxpbmtQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSkKIAogdm9pZCBHcmFwaGljc0Nv
bnRleHQzRDo6cGl4ZWxTdG9yZWkoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pCiB7Cisg
ICAgUGl4ZWxTdG9yZUludE1hcDo6aXRlcmF0b3IgaXQgPSBtX3N0YXRlLnBpeGVsU3RvcmVJbnRN
YXAuZmluZChwbmFtZSk7CisgICAgaWYgKGl0ICE9IG1fc3RhdGUucGl4ZWxTdG9yZUludE1hcC5l
bmQoKSAmJiBpdC0+dmFsdWUgPT0gcGFyYW0pCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRl
LnBpeGVsU3RvcmVJbnRNYXAuc2V0KHBuYW1lLCBwYXJhbSk7CisKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKICAgICA6OmdsUGl4ZWxTdG9yZWkocG5hbWUsIHBhcmFtKTsKIH0KQEAgLTg1Myw2
ICs4ODAsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c2FtcGxlQ292ZXJhZ2UoR0MzRGNs
YW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXpl
aSBoZWlnaHQpCiB7CisgICAgaWYgKG1fc3RhdGUuc2Npc3NvclggPT0geCAmJiBtX3N0YXRlLnNj
aXNzb3JZID09IHkgJiYgbV9zdGF0ZS5zY2lzc29yV2lkdGggPT0gd2lkdGggJiYgbV9zdGF0ZS5z
Y2lzc29ySGVpZ2h0ID09IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1fc3RhdGUuc2Np
c3NvclggPSB4OworICAgIG1fc3RhdGUuc2Npc3NvclkgPSB5OworICAgIG1fc3RhdGUuc2Npc3Nv
cldpZHRoID0gd2lkdGg7CisgICAgbV9zdGF0ZS5zY2lzc29ySGVpZ2h0ID0gaGVpZ2h0OworCiAg
ICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFNjaXNzb3IoeCwgeSwgd2lkdGgsIGhl
aWdodCk7CiB9CkBAIC04NzIsNiArOTA2LDEyIEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNo
YWRlclNvdXJjZShQbGF0Zm9ybTNET2JqZWN0IHNoYWRlciwgY29uc3QgU3RyaW5nJiBzdHJpCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnN0ZW5jaWxGdW5jKEdDM0RlbnVtIGZ1bmMsIEdDM0Rp
bnQgcmVmLCBHQzNEdWludCBtYXNrKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5jaWxGdW5jID09
IGZ1bmMgJiYgbV9zdGF0ZS5zdGVuY2lsUmVmID09IHJlZiAmJiBtX3N0YXRlLnN0ZW5jaWxNYXNr
ID09IG1hc2spCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnN0ZW5jaWxGdW5jID0gZnVu
YzsKKyAgICBtX3N0YXRlLnN0ZW5jaWxSZWYgPSByZWY7CisgICAgbV9zdGF0ZS5zdGVuY2lsTWFz
ayA9IG1hc2s7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbEZ1
bmMoZnVuYywgcmVmLCBtYXNrKTsKIH0KQEAgLTg5Niw2ICs5MzYsMTIgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6c3RlbmNpbE1hc2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBt
YXNrKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsT3AoR0MzRGVudW0gZmFpbCwg
R0MzRGVudW0gemZhaWwsIEdDM0RlbnVtIHpwYXNzKQogeworICAgIGlmIChtX3N0YXRlLnN0ZW5j
aWxGYWlsID09IGZhaWwgJiYgbV9zdGF0ZS5zdGVuY2lsWkZhaWwgPT0gemZhaWwgJiYgbV9zdGF0
ZS5zdGVuY2lsWlBhc3MgPT0genBhc3MpCisgICAgICAgIHJldHVybjsKKyAgICBtX3N0YXRlLnN0
ZW5jaWxGYWlsID0gZmFpbDsKKyAgICBtX3N0YXRlLnN0ZW5jaWxaRmFpbCA9IHpmYWlsOworICAg
IG1fc3RhdGUuc3RlbmNpbFpQYXNzID0genBhc3M7CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICA6OmdsU3RlbmNpbE9wKGZhaWwsIHpmYWlsLCB6cGFzcyk7CiB9CkBAIC0xMTExLDYg
KzExNTcsMTMgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliUG9pbnRlcihH
QzNEdWludCBpbmRleCwgR0MzRGludCBzaXplLCBHQzNEZW4KIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6dmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkKIHsKKyAgICBpZiAobV9zdGF0ZS52aWV3cG9ydFggPT0geCAmJiBtX3N0
YXRlLnZpZXdwb3J0WSA9PSB5ICYmIG1fc3RhdGUudmlld3BvcnRXaWR0aCA9PSB3aWR0aCAmJiBt
X3N0YXRlLnZpZXdwb3J0SGVpZ2h0ID09IGhlaWdodCkKKyAgICAgICAgcmV0dXJuOworICAgIG1f
c3RhdGUudmlld3BvcnRYID0geDsKKyAgICBtX3N0YXRlLnZpZXdwb3J0WSA9IHk7CisgICAgbV9z
dGF0ZS52aWV3cG9ydFdpZHRoID0gd2lkdGg7CisgICAgbV9zdGF0ZS52aWV3cG9ydEhlaWdodCA9
IGhlaWdodDsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4
LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>191205</attachid>
            <date>2013-03-04 05:15:05 -0800</date>
            <delta_ts>2013-03-06 18:57:28 -0800</delta_ts>
            <desc>gDEBugger profile data (.csv) before patch</desc>
            <filename>profile_data_before.zip</filename>
            <type>application/zip</type>
            <size>1413</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">UEsDBBQDAAAIAGRHZELaGass1QEAAGUEAAA0AAAATWluaUJyb3dzZXItZ0RFQnVnZ2VyRnVuY3Rp
b25UeXBlc1N0YXRpc3RpY3NEYXRhLmNzdq1Sy27iMBTd+yuuNBqplRiwnTgPdkNp2Qzzgj1yk5vg
ETjIcUozXz/XTFtBpUZd1IvEx+fc95189GGTCay3poXK7BCKxnptbAtw19nCm8au+wO2sPLam9ab
ogVjq8btdeCC7U/X/MHCg9V7nMLSWDNzzbFFF8gFWnQnKZTaB76xpe43PN4stSu2G8lF9EroTXDE
s6mKp1KekVjCfQ/1/HbW1TU6+ALawo8D2sU3mOP96ZGeypBSKOaUwfF4HNcO91j246LZs8lHH8ae
OwWhVSP4DE0FN3q3a0fw6eV+/g5XXx/qMRzQwZ2jtl2T8G2SLdC/TIP8RDwfQSoSLp/uQrDfWHbU
WOtPg0K42Wpb47mVFJkageJJHImAeEpOFLutKiTJA77DUKaEpAjRc/aWPI5STilxITOVBSgTgipm
czw4LMIUz+Wcc/o8/9nc6eM5rfKYrKNUJWkApJFUrG49ugEvNP+aWnfahdVWl5fiSMahBCXzPCMk
0hCCtnCNj75zl7Un0QgSnidZqJzakLGl9s48DgT/TjMboH916PoBftZV1WW+MgoZKsVlJgJKSJfF
bNXbYusaa/7qIBxwuW683gVLkSZcUMmKRnKVxLn6v2Ht9SvI/gFQSwMEFAMAAAgA0EZkQjnNc1Q2
AgAAEAUAADIAAABNaW5pQnJvd3Nlci1nREVCdWdnZXJTdGF0ZUNoYW5nZVN0YXRpc3RpY3NEYXRh
LmNzdq1S227bMAx9z1cIGAZsgLf4brlvceJmAXKD7RXbXgzVZhJtjhTIytL+/SjXnXfLy1DB8KHI
cyiS4Pilz2g8JsWBt2THGyCVFJpx0RKSa6ZhemBiD53NW82rlnCxk+qIVymMcqvkV6g0EewIN2TF
BU+UvLSgTHAOAlRHJTXTJi5FzR5L2y9XTFWH0rUd7w+i5iaRTW8C/8b7NQg1uX8k+1manPd7UOQd
YYJsTiDmSzKD+86JrtqUZFrpKrhcLu/3Co5QP76v5HE0fukzGt2eRdVVvsYRWOQVkTsyZU3T9na6
2wESvsNv3gzqM85C6Gfv6394R/smaUDU5gmLOJQGTozYmxTRxoOsXIOoeLM5WcRzfWpbxO6tvzgm
1xDrrCgeWFv+AEiVCrhFQpdGvqHYtotg0wjBjx1DnHQ9FfCgzwrbdmMMm2d7a3i24m0rFcppHIXo
9+zIsILYxlsY+hGS7jhcTlJpDLtx7GGe3hryzOCkDyvWfkORH5tEnRFYJI5jioRpA0xNZSPV04i6
JL2Wt+y+AVyZ+bKcpdviQ1mkeTG8YeAaPy/S9XSx7BVmcE4P1xTJMl3PLELD0PF7uJp8usjzTdYn
x36i/j/wUzHQt5vFuijzbbYoUpwhfleId2lWpJ/KbbaZZ5PVs27x5YrqP6oZ+jTL6No/ceAmXNTJ
GddfPfEnWTb5XCYfb2/TDIuIAsfzB+xlhdSsIW8cSriGY/vWbIDj0tCUEnjUCXH4uDuBY9APRj8A
UEsBAj8DFAMAAAgAZEdkQtoZqyzVAQAAZQQAADQAAAAAAAAAAAAggLSBAAAAAE1pbmlCcm93c2Vy
LWdERUJ1Z2dlckZ1bmN0aW9uVHlwZXNTdGF0aXN0aWNzRGF0YS5jc3ZQSwECPwMUAwAACADQRmRC
Oc1zVDYCAAAQBQAAMgAAAAAAAAAAACCAtIEnAgAATWluaUJyb3dzZXItZ0RFQnVnZ2VyU3RhdGVD
aGFuZ2VTdGF0aXN0aWNzRGF0YS5jc3ZQSwUGAAAAAAIAAgDCAAAArQQAAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>191207</attachid>
            <date>2013-03-04 05:15:35 -0800</date>
            <delta_ts>2013-03-06 18:57:28 -0800</delta_ts>
            <desc>gDEBugger profile data (.csv) after patch</desc>
            <filename>profile_data_after.zip</filename>
            <type>application/zip</type>
            <size>1309</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">UEsDBBQDAAAIAAJJZEIYY8KIywEAAF8EAAA0AAAATWluaUJyb3dzZXItZ0RFQnVnZ2VyRnVuY3Rp
b25UeXBlc1N0YXRpc3RpY3NEYXRhLmNzdq1Sy27bMBC88ysWKAokgGqTFCVZvtVx4kvdR+y7wUgr
iYVNGRQVRf36knZryCmiXsILuZzZ3eEOp++9yHQK20o1UKg9QlZrK5VuAB5anVlV621/xAY2VlrV
WJU1oHRRm4P0mM/9buqfmFnQ8oBzWCutFqbuGjQeXKFGc6JCLq3Ha53LfkfFbi1NVu04ZeErolW+
EE3nNJpHfABiDk89lMv7RVuWaOATSA3fjqhXX2CJT+dLqXMvyT3mrKDruklp8IB5P8nqA5m+9yLk
76TAjyqAj1AXcCf3+yaAD5fz8B5uPj+XEzg6uQ/Gje3WEd8GyQrtxQ1Xh8dpAAlPaerPswAYI4+Y
t26w2p6MQrirpC5xmEUpDSD9s1NyXxTooGd8M4EnYeL6CJ7G50ah70TJ//nJbMhf4tFg5t37Rw69
yFka2Q3hGXPZnNOYcRfQKIAwJI+ysWhGqjjfSzey0x/YVDK/JouQcS8poSKauZAL4cJEkC2+2NZc
P4a7glGaxP4RaeQ0kLW0Rr2MdP/qzBqBf7Ro+hF80RbFteCQR8x1nnERMx95TSzkZNPrrDK1Vr+k
Z47U3NZW7r01TETeHcHc9U0cM3H+W83tq5D8BlBLAwQUAwAACADDSGRC1P9c+NgBAACABAAAMgAA
AE1pbmlCcm93c2VyLWdERUJ1Z2dlclN0YXRlQ2hhbmdlU3RhdGlzdGljc0RhdGEuY3N2rVFdj9ow
EHznV6xUVWoleiSBcse9kWAoEh9Rkp7avkQm2QS3jo1sU8q/r5OAaHugVtVZkceZnVnPyr2XXp1e
D5It01AwjpBJYSgTGiA21GCwpaLE5sy0YZkGJgqpKvsrRe0MlfyKmQFBK3yEJRPMV/KgUdXFGQpU
jRRyauq6FDk9ps4gXVKVbVPPcft/CA2rGzmjR2dov1+KmMPmCOWE+PuyRAXvgApY71DMFjDBTUtS
kdeR7ChtgsPhcFcqrDA/3mWy6vReenU6073ImuQrWmEXXoEsIKCc69OZFAVawXf8jY0w34ucCnNm
X19hOyUP2Q/ksZEKWRe8keM6DTgPFrrgOK7VPDE87KQyLdXsrmOXLcUZ01oqS/S9vtuCY+Fs9TmK
vJ6g4dzG3joDjlQFkkv1rDTBndkuqf72vMI03XC0bzNbpBMSJh/ShMRJE8m7pYsTsgrmi39Q+guy
mtgb7Sj9hzPebBvM43gdndoOh+7wtF/0RFzk4Xq+StI4jOYJaVPcED6RKCGf0jBaz6Lx8uybf7nm
+s80f580Nigyxq++nM9E7u+LAlXbaxxF48+p/3E6JVEXBgPX8wYXPNkSaSiHN+4QmMFKv+3C/cAb
Pdyf0I71vhX+BFBLAQI/AxQDAAAIAAJJZEIYY8KIywEAAF8EAAA0AAAAAAAAAAAAIIC0gQAAAABN
aW5pQnJvd3Nlci1nREVCdWdnZXJGdW5jdGlvblR5cGVzU3RhdGlzdGljc0RhdGEuY3N2UEsBAj8D
FAMAAAgAw0hkQtT/XPjYAQAAgAQAADIAAAAAAAAAAAAggLSBHQIAAE1pbmlCcm93c2VyLWdERUJ1
Z2dlclN0YXRlQ2hhbmdlU3RhdGlzdGljc0RhdGEuY3N2UEsFBgAAAAACAAIAwgAAAEUEAAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>191887</attachid>
            <date>2013-03-06 18:57:28 -0800</date>
            <delta_ts>2013-03-06 18:57:28 -0800</delta_ts>
            <desc>Benchmark test</desc>
            <filename>random-squares.html</filename>
            <type>text/html</type>
            <size>2184</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogICAgPGhlYWQ+CiAgICAgICAgPHRpdGxlPlJhbmRvbSBz
cXVhcmVzPC90aXRsZT4KICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgogICAgICAgICAg
ICAuc3F1YXJlIHsKICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgICAgICAg
ICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLW5hbWU6IHNxdWFyZUFuaW1hdGlvbjsKICAgICAgICAg
ICAgICAgIC13ZWJraXQtYW5pbWF0aW9uLWR1cmF0aW9uOiAzczsKICAgICAgICAgICAgICAgIC13
ZWJraXQtYW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjogbGluZWFyOwogICAgICAgICAgICAgICAg
LXdlYmtpdC1hbmltYXRpb24taXRlcmF0aW9uLWNvdW50OiBpbmZpbml0ZTsKICAgICAgICAgICAg
fQogICAgICAgICAgICBALXdlYmtpdC1rZXlmcmFtZXMgc3F1YXJlQW5pbWF0aW9uIHsKICAgICAg
ICAgICAgICAgIGZyb20geyBvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkg
cm90YXRlWCgwZGVnKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVooMGRlZyk7IH0KICAgICAgICAgICAg
ICAgIDI1JSB7IG9wYWNpdHk6IDAuNTsgLXdlYmtpdC10cmFuc2Zvcm06IHNjYWxlKDEuNSkgcm90
YXRlWCgzMGRlZykgcm90YXRlWSgzMGRlZykgcm90YXRlWigzMGRlZyk7IH0KICAgICAgICAgICAg
ICAgIDUwJSB7IG9wYWNpdHk6IDAuMjU7IC13ZWJraXQtdHJhbnNmb3JtOiBzY2FsZSgyKSByb3Rh
dGVYKDYwZGVnKSByb3RhdGVZKDYwZGVnKSByb3RhdGVaKDYwZGVnKTsgfQogICAgICAgICAgICAg
ICAgNzUlIHsgb3BhY2l0eTogMC41OyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS41KSByb3Rh
dGVYKDMwZGVnKSByb3RhdGVZKDMwZGVnKSByb3RhdGVaKDMwZGVnKTsgfQogICAgICAgICAgICAg
ICAgdG8geyBvcGFjaXR5OiAxOyAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMSkgcm90YXRlWCgw
ZGVnKSByb3RhdGVZKDBkZWcpIHJvdGF0ZVooMGRlZyk7IH0KICAgICAgICAgICAgfQogICAgICAg
IDwvc3R5bGU+CiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgdmFyIGNvbnRhaW5lckVsZW07
CiAgICAgICAgICAgIGZ1bmN0aW9uIGNyZWF0ZVNxdWFyZSgpIHsKICAgICAgICAgICAgICAgIHNx
dWFyZUVsZW0gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgICAgICAgICAgICAg
IHNxdWFyZUVsZW0uY2xhc3NOYW1lID0gJ3NxdWFyZSc7CiAgICAgICAgICAgICAgICBzcXVhcmVF
bGVtLnN0eWxlLndpZHRoID0gMjAwICsgInB4IjsKICAgICAgICAgICAgICAgIHNxdWFyZUVsZW0u
c3R5bGUuaGVpZ2h0ID0gMjAwICsgInB4IjsKICAgICAgICAgICAgICAgIHNxdWFyZUVsZW0uc3R5
bGUubGVmdCA9IE1hdGguZmxvb3IoKE1hdGgucmFuZG9tKCkqd2luZG93LmlubmVyV2lkdGgpKzEp
ICsgInB4IjsKICAgICAgICAgICAgICAgIHNxdWFyZUVsZW0uc3R5bGUudG9wID0gTWF0aC5mbG9v
cigoTWF0aC5yYW5kb20oKSp3aW5kb3cuaW5uZXJIZWlnaHQpKzEpICsgInB4IjsKICAgICAgICAg
ICAgICAgIHNxdWFyZUVsZW0uc3R5bGUuYmFja2dyb3VuZENvbG9yID0gIiMiICsgTWF0aC5mbG9v
cihNYXRoLnJhbmRvbSgpKjE2Nzc3MjE1KS50b1N0cmluZygxNik7CiAgICAgICAgICAgICAgICBj
b250YWluZXJFbGVtLmFwcGVuZENoaWxkKHNxdWFyZUVsZW0pOwogICAgICAgICAgICB9CiAgICAg
ICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7CiAgICAgICAgICAgICAgICBjb250YWluZXJFbGVtID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpOwogICAgICAgICAgICAgICAgY29u
dGFpbmVyRWxlbS5zdHlsZS53aWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOwogICAgICAgICAgICAg
ICAgY29udGFpbmVyRWxlbS5zdHlsZS5oZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CiAgICAg
ICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IDMwMDA7IGkrKykKICAgICAgICAgICAgICAg
ICAgICBjcmVhdGVTcXVhcmUoKTsKICAgICAgICAgICAgfQogICAgICAgICAgICB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibG9hZCIsIGluaXQsIGZhbHNlKTsKICAgICAgICA8L3NjcmlwdD4KICAg
IDwvaGVhZD4KICAgIDxib2R5PgogICAgICAgIDxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+CiAg
ICA8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191894</attachid>
            <date>2013-03-06 19:16:58 -0800</date>
            <delta_ts>2013-03-08 12:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130306231302.patch</filename>
            <type>text/plain</type>
            <size>16098</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0ODU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzYxZDQyZDc0NDY1YTM2
OWM0MjZhODU5MThjZjRlOGIwMDYwYTg0YS4uMjBjNmM1ZTU2MWRjNWMyY2ExODVlM2Y4ODNmNDBl
MmY2NDEyMWZkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDEzLTAzLTA2ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAor
ICAgICAgICBBZGQgc3RhdGUgdmFyaWFibGVzIHRvIGF2b2lkIHJlZHVuZGFudCBjaGFuZ2VzIG9u
IEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTA4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBQcm9maWxpbmcgRUZMJ3MgTWluaUJyb3dzZXIgdW5kZXIgZ0RFQnVnZ2VyIGRl
dGVjdGVkIHF1aXRlIHNvbWUgc3RhdGUKKyAgICAgICAgY2hhbmdlIGZ1bmN0aW9uIGNhbGxzIHdl
cmUgcmVkdW5kYW50LiBUaGlzIHBhdGNoIGludGVuZHMgdG8gYWRkIG1vcmUKKyAgICAgICAgc3Rh
dGUgdmFyaWFibGVzIGluc2lkZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGF2b2lkIHJlZHVu
ZGFudCBzdGF0ZQorICAgICAgICBjaGFuZ2VzLiBUaGUgY2FjaGVkIHZhbHVlcyBhcmUgdXNlZCBi
eSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgcmVkdWNlIHJlZHVuZGFudCBz
dGF0ZSB0cmFuc2l0aW9ucyAoY2FjaGluZyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0IG9uCisgICAg
ICAgIGFsbCBwb3J0IGV4Y2VwdCBFRkwpLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZXMs
IHRodXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmg6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRFN0
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRl
eHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjppc0JsZW5kRnVuY1JlZHVu
ZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250
ZXh0M0RTdGF0ZTo6aXNEZXB0aE1hc2tSZWR1bmRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OmlzU2Npc3NvclJlZHVuZGFu
dCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0
M0RTdGF0ZTo6aXNTdGVuY2lsRnVuY1JlZHVuZGFudCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6aXNTdGVuY2lsT3BSZWR1bmRh
bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEU3RhdGU6OmlzVmlld3BvcnRSZWR1bmRhbnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OmlzUGl4ZWxTdG9yZWlSZWR1bmRh
bnQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OkdyYXBoaWNzQ29udGV4
dDNEU3RhdGU6OmdldENhcGFiaWxpdHlTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6aXNDYXBhYmlsaXR5UmVkdW5kYW50
KToKKyAgICAgICAgQWRkZWQgc3RhdGUgdmFyaWFibGVzIGFuZCByZWR1bmRhbmN5IGNoZWNrIGZ1
bmN0aW9ucy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRl
eHQzREVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhp
Y3NDb250ZXh0M0QpOgorICAgICAgICBFbmFibGUgY2FjaGUgb24gRUZMIHBvcnQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cHJlcGFyZUJ1ZmZl
cik6CisgICAgICAgIFJlbW92ZWQgRklYTUUgb24gY2FjaGluZyBzY2lzc29yIHRlc3Qgc3RhdGVz
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNE
T3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpy
ZWFkUmVuZGVyaW5nUmVzdWx0cyk6CisgICAgICAgIFVzZSBHcmFwaGljc0NvbnRleHQzRCdzIHBp
eGVsU3RvcmVpIHRvIGtlZXAgc3RhdGUgdmFyaWFibGVzIGNvbnNpc3RlbnQuCisKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKToKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEZ1bmMpOgorICAgICAgICAoV2ViQ29yZTo6
R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFzayk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQzRDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQz
RDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjppc0VuYWJs
ZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBpeGVsU3RvcmVpKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE9wKToKKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dDNEOjp2aWV3cG9ydCk6CisgICAgICAgIEFkZGVkIHJlZHVuZGFuY3kgY2hl
Y2sgb24gZWFjaCBvZiB0aGVzZSB0byByZXR1cm4gZWFybHkgaWYgdGhlIHZhbHVlCisgICAgICAg
IG1hdGNoZXMgdGhlIHByZXZpb3VzIHNldC4KKworMjAxMy0wMy0wNiAgQnJ1bm8gZGUgT2xpdmVp
cmEgQWJpbmFkZXIgIDxicnVuby5hYmluYWRlckBiYXN5c2tvbS5jb20+CisKICAgICAgICAgW3Rl
eG1hcF0gUmVtb3ZlIGRpcmVjdCBhY2Nlc3MgdG8gY2xpcCBzdGF0ZSBmcm9tIGNsaXAgc3RhY2sK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTYzMAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQzRC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0QuaAppbmRleCBlMTIyOGVmYTlmODljZDEzZDI5NTA1ODZkOWQxMTJhY2YwYmU0ZWM5Li44
OTFjMWZkMTYxZGY4YmQ4NThlODZlZjk1YWUzMmNjNmY5ZjQ3NGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTEw
ODIsMTYgKzEwODIsMTc3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsK
ICAgICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JGb3JtYXQ7CiAKLSAgICBzdHJ1Y3QgR3JhcGhp
Y3NDb250ZXh0M0RTdGF0ZSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUoKQotICAg
ICAgICAgICAgOiBib3VuZEZCTygwKQorICAgIGVudW0gQ2FwYWJpbGl0eVN0YXRlIHsKKyAgICAg
ICAgQ2FwYWJpbGl0eUVuYWJsZWQsCisgICAgICAgIENhcGFiaWxpdHlEaXNhYmxlZCwKKyAgICAg
ICAgQ2FwYWJpbGl0eVVua25vd24KKyAgICB9OworCisgICAgdHlwZWRlZiBIYXNoTWFwPEdDM0Rl
bnVtLCBHQzNEaW50PiBQaXhlbFN0b3JlSW50TWFwOworICAgIHR5cGVkZWYgSGFzaE1hcDxHQzNE
ZW51bSwgQ2FwYWJpbGl0eVN0YXRlPiBDYXBhYmlsaXR5TWFwOworICAgIGNsYXNzIEdyYXBoaWNz
Q29udGV4dDNEU3RhdGUgeworICAgIHB1YmxpYzoKKyAgICAgICAgR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZShib29sIGlzQ2FjaGVhYmxlID0gZmFsc2UpCisgICAgICAgICAgICA6IGlzQ2FjaGVhYmxl
KGlzQ2FjaGVhYmxlKQorICAgICAgICAgICAgLCBib3VuZEZCTygwKQogICAgICAgICAgICAgLCBh
Y3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCkKICAgICAgICAgICAgICwg
Ym91bmRUZXh0dXJlMCgwKQorICAgICAgICAgICAgLCBzb3VyY2VGYWN0b3IoR3JhcGhpY3NDb250
ZXh0M0Q6Ok9ORSkKKyAgICAgICAgICAgICwgZGVzdGluYXRpb25GYWN0b3IoR3JhcGhpY3NDb250
ZXh0M0Q6OlpFUk8pCisgICAgICAgICAgICAsIGRlcHRoTWFzayh0cnVlKQorICAgICAgICAgICAg
LCBzY2lzc29yWCgwKQorICAgICAgICAgICAgLCBzY2lzc29yWSgwKQorICAgICAgICAgICAgLCBz
Y2lzc29yV2lkdGgoMCkKKyAgICAgICAgICAgICwgc2Npc3NvckhlaWdodCgwKQorICAgICAgICAg
ICAgLCBzdGVuY2lsRnVuYyhHcmFwaGljc0NvbnRleHQzRDo6QUxXQVlTKQorICAgICAgICAgICAg
LCBzdGVuY2lsUmVmKDApCisgICAgICAgICAgICAsIHN0ZW5jaWxNYXNrKFVJTlRfTUFYKQorICAg
ICAgICAgICAgLCBzdGVuY2lsRmFpbChHcmFwaGljc0NvbnRleHQzRDo6S0VFUCkKKyAgICAgICAg
ICAgICwgc3RlbmNpbFpGYWlsKEdyYXBoaWNzQ29udGV4dDNEOjpLRUVQKQorICAgICAgICAgICAg
LCBzdGVuY2lsWlBhc3MoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisgICAgICAgICAgICAsIHZp
ZXdwb3J0WCgwKQorICAgICAgICAgICAgLCB2aWV3cG9ydFkoMCkKKyAgICAgICAgICAgICwgdmll
d3BvcnRXaWR0aCgwKQorICAgICAgICAgICAgLCB2aWV3cG9ydEhlaWdodCgwKQogICAgICAgICB7
IH0KIAorICAgICAgICBib29sIGlzQ2FjaGVhYmxlOwogICAgICAgICBHQzNEdWludCBib3VuZEZC
TzsKICAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVyZTsKICAgICAgICAgR0MzRHVpbnQgYm91
bmRUZXh0dXJlMDsKKworICAgICAgICAvLyBUaGUgY2FjaGVkIHZhbHVlcyBiZWxvdyBhcmUgdXNl
ZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgLy8gcmVkdWNlIHJlZHVu
ZGFudCBzdGF0ZSB0cmFuc2l0aW9ucy4gRG8gbm90IHJlbHkgb24gdGhlaXIgYmVpbmcKKyAgICAg
ICAgLy8gdXAtdG8tZGF0ZSBpbiBjb21tb24gY29kZS4KKworICAgICAgICBib29sIGlzQmxlbmRG
dW5jUmVkdW5kYW50KEdDM0RlbnVtIHNvdXJjZUZhY3RvciwgR0MzRGVudW0gZGVzdGluYXRpb25G
YWN0b3IpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5zb3VyY2VGYWN0b3IgPT0g
c291cmNlRmFjdG9yICYmIHRoaXMtPmRlc3RpbmF0aW9uRmFjdG9yID09IGRlc3RpbmF0aW9uRmFj
dG9yKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICB0aGlzLT5z
b3VyY2VGYWN0b3IgPSBzb3VyY2VGYWN0b3I7CisgICAgICAgICAgICB0aGlzLT5kZXN0aW5hdGlv
bkZhY3RvciA9IGRlc3RpbmF0aW9uRmFjdG9yOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc0RlcHRoTWFza1JlZHVuZGFudChHQzNEYm9vbGVh
biBkZXB0aE1hc2spCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICh0aGlzLT5kZXB0aE1hc2sg
PT0gZGVwdGhNYXNrKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAg
ICB0aGlzLT5kZXB0aE1hc2sgPSBkZXB0aE1hc2s7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzU2Npc3NvclJlZHVuZGFudChHQzNEaW50IHgs
IEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAoc2Npc3NvclggPT0geCAmJiBzY2lzc29yWSA9PSB5ICYmIHNjaXNz
b3JXaWR0aCA9PSB3aWR0aCAmJiBzY2lzc29ySGVpZ2h0ID09IGhlaWdodCkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgICAgc2Npc3NvclggPSB4OworICAgICAgICAg
ICAgc2Npc3NvclkgPSB5OworICAgICAgICAgICAgc2Npc3NvcldpZHRoID0gd2lkdGg7CisgICAg
ICAgICAgICBzY2lzc29ySGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1N0ZW5jaWxGdW5jUmVkdW5kYW50KEdDM0Rl
bnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKQorICAgICAgICB7CisgICAgICAg
ICAgICBpZiAoc3RlbmNpbEZ1bmMgPT0gZnVuYyAmJiBzdGVuY2lsUmVmID09IHJlZiAmJiBzdGVu
Y2lsTWFzayA9PSBtYXNrKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAg
ICAgICBzdGVuY2lsRnVuYyA9IGZ1bmM7CisgICAgICAgICAgICBzdGVuY2lsUmVmID0gcmVmOwor
ICAgICAgICAgICAgc3RlbmNpbE1hc2sgPSBtYXNrOworICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1N0ZW5jaWxPcFJlZHVuZGFudChHQzNEZW51
bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmIChzdGVuY2lsRmFpbCA9PSBmYWlsICYmIHN0ZW5jaWxaRmFpbCA9PSB6ZmFpbCAm
JiBzdGVuY2lsWlBhc3MgPT0genBhc3MpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAgICAgICAgIHN0ZW5jaWxGYWlsID0gZmFpbDsKKyAgICAgICAgICAgIHN0ZW5jaWxaRmFp
bCA9IHpmYWlsOworICAgICAgICAgICAgc3RlbmNpbFpQYXNzID0genBhc3M7CisgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBib29sIGlzVmlld3BvcnRSZWR1
bmRhbnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhl
aWdodCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHZpZXdwb3J0WCA9PSB4ICYmIHZpZXdw
b3J0WSA9PSB5ICYmIHZpZXdwb3J0V2lkdGggPT0gd2lkdGggJiYgdmlld3BvcnRIZWlnaHQgPT0g
aGVpZ2h0KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgICAgICB2aWV3
cG9ydFggPSB4OworICAgICAgICAgICAgdmlld3BvcnRZID0geTsKKyAgICAgICAgICAgIHZpZXdw
b3J0V2lkdGggPSB3aWR0aDsKKyAgICAgICAgICAgIHZpZXdwb3J0SGVpZ2h0ID0gaGVpZ2h0Owor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgYm9vbCBpc1Bp
eGVsU3RvcmVpUmVkdW5kYW50KEdDM0RlbnVtIHBuYW1lLCBHQzNEaW50IHBhcmFtKQorICAgICAg
ICB7CisgICAgICAgICAgICBQaXhlbFN0b3JlSW50TWFwOjppdGVyYXRvciBpdCA9IHBpeGVsU3Rv
cmVJbnRNYXAuZmluZChwbmFtZSk7CisgICAgICAgICAgICBpZiAoaXQgIT0gcGl4ZWxTdG9yZUlu
dE1hcC5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gcGFyYW0pCisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICAgICAgICAgIHBpeGVsU3RvcmVJbnRNYXAuc2V0KHBuYW1lLCBwYXJhbSk7
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKworICAgICAgICBDYXBhYmls
aXR5U3RhdGUgZ2V0Q2FwYWJpbGl0eVN0YXRlKEdDM0RlbnVtIGNhcCkKKyAgICAgICAgeworICAg
ICAgICAgICAgQ2FwYWJpbGl0eU1hcDo6aXRlcmF0b3IgaXQgPSBjYXBhYmlsaXRpZXMuZmluZChj
YXApOworICAgICAgICAgICAgaWYgKGl0ID09IGNhcGFiaWxpdGllcy5lbmQoKSkKKyAgICAgICAg
ICAgICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0Q6OkNhcGFiaWxpdHlVbmtub3duOworICAg
ICAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgaXND
YXBhYmlsaXR5UmVkdW5kYW50KEdDM0RlbnVtIGNhcCwgQ2FwYWJpbGl0eVN0YXRlIGlzRW5hYmxl
ZCkKKyAgICAgICAgeworICAgICAgICAgICAgQ2FwYWJpbGl0eU1hcDo6aXRlcmF0b3IgaXQgPSBj
YXBhYmlsaXRpZXMuZmluZChjYXApOworICAgICAgICAgICAgaWYgKGl0ICE9IGNhcGFiaWxpdGll
cy5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gaXNFbmFibGVkKQorICAgICAgICAgICAgICAgIHJldHVy
biB0cnVlOworCisgICAgICAgICAgICBjYXBhYmlsaXRpZXMuc2V0KGNhcCwgaXNFbmFibGVkKTsK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAg
ICAgICAgLy8gVXNlZCBieSBnbEJsZW5kRnVuYy4KKyAgICAgICAgR0MzRGVudW0gc291cmNlRmFj
dG9yOworICAgICAgICBHQzNEZW51bSBkZXN0aW5hdGlvbkZhY3RvcjsKKworICAgICAgICAvLyBV
c2VkIGJ5IGdsRGVwdGhNYXNrLgorICAgICAgICBHQzNEYm9vbGVhbiBkZXB0aE1hc2s7CisKKyAg
ICAgICAgLy8gVXNlZCBieSBnbFNjaXNzb3IuCisgICAgICAgIEdDM0RpbnQgc2Npc3Nvclg7Cisg
ICAgICAgIEdDM0RpbnQgc2Npc3Nvclk7CisgICAgICAgIEdDM0RzaXplaSBzY2lzc29yV2lkdGg7
CisgICAgICAgIEdDM0RzaXplaSBzY2lzc29ySGVpZ2h0OworCisgICAgICAgIC8vIFVzZWQgYnkg
Z2xTdGVuY2lsRnVuYy4KKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbEZ1bmM7CisgICAgICAgIEdD
M0RpbnQgc3RlbmNpbFJlZjsKKyAgICAgICAgR0MzRHVpbnQgc3RlbmNpbE1hc2s7CisKKyAgICAg
ICAgLy8gVXNlZCBieSBnbFN0ZW5jaWxPcC4KKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbEZhaWw7
CisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxaRmFpbDsKKyAgICAgICAgR0MzRGVudW0gc3RlbmNp
bFpQYXNzOworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xWaWV3cG9ydC4KKyAgICAgICAgR0MzRGlu
dCB2aWV3cG9ydFg7CisgICAgICAgIEdDM0RpbnQgdmlld3BvcnRZOworICAgICAgICBHQzNEc2l6
ZWkgdmlld3BvcnRXaWR0aDsKKyAgICAgICAgR0MzRHNpemVpIHZpZXdwb3J0SGVpZ2h0OworCisg
ICAgICAgIC8vIFVzZWQgYnkgZ2xQaXhlbFN0b3JlaS4KKyAgICAgICAgUGl4ZWxTdG9yZUludE1h
cCBwaXhlbFN0b3JlSW50TWFwOworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xFbmFibGUgYW5kIGds
RGlzYWJsZS4KKyAgICAgICAgQ2FwYWJpbGl0eU1hcCBjYXBhYmlsaXRpZXM7CiAgICAgfTsKIAog
ICAgIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgbV9zdGF0ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RFZmwu
Y3BwCmluZGV4IDRjM2JhZGJlODM1M2VmMWI0YjM5YWU1ZmIzOWYyM2U5NWNmZjY3ODYuLjA5ODRk
ODEwODU5MTVkMjZkNjgzMjExNWUyMjdiOTE4OWNjODFiOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzREVmbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
RWZsLmNwcApAQCAtNTQsNiArNTQsNyBAQCBHcmFwaGljc0NvbnRleHQzRDo6R3JhcGhpY3NDb250
ZXh0M0QoR3JhcGhpY3NDb250ZXh0M0Q6OkF0dHJpYnV0ZXMgYXR0cnMsIEhvc3RXaQogICAgICwg
bV9kZXB0aFN0ZW5jaWxCdWZmZXIoMCkKICAgICAsIG1fbGF5ZXJDb21wb3NpdGVkKGZhbHNlKQog
ICAgICwgbV9pbnRlcm5hbENvbG9yRm9ybWF0KDApCisgICAgLCBtX3N0YXRlKHJlbmRlclN0eWxl
ICE9IEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJUb0N1cnJlbnRHTENvbnRleHQpCiAgICAgLCBt
X211bHRpc2FtcGxlRkJPKDApCiAgICAgLCBtX211bHRpc2FtcGxlRGVwdGhTdGVuY2lsQnVmZmVy
KDApCiAgICAgLCBtX211bHRpc2FtcGxlQ29sb3JCdWZmZXIoMCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VmbC9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4
dDNEUHJpdmF0ZS5jcHAKaW5kZXggZWE3MjY5YjNmOTY1MjdhNjQ3ZjZjYzEzYTM3YjUyY2I5N2Fk
ZjM3ZC4uZTdjNjhiMGQ1MTY4NmM2OTYxMmZkMzFkMDVlMWM2ZGIyODQxNzE5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZsL0dy
YXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKQEAgLTE3Nyw3ICsxNzcsNiBAQCBib29sIEdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6cHJlcGFyZUJ1ZmZlcigpIGNvbnN0CiAgICAgICAgIGludCB3
aWR0aCA9IG1fY29udGV4dC0+bV9jdXJyZW50V2lkdGg7CiAgICAgICAgIGludCBoZWlnaHQgPSBt
X2NvbnRleHQtPm1fY3VycmVudEhlaWdodDsKICAgICAgICAgLy8gV2Ugc2hvdWxkIGNvcHkgdGhl
IGZ1bGwgYnVmZmVyLCBhbmQgbm90IHJlc3BlY3QgdGhlIGN1cnJlbnQgc2Npc3NvciBib3VuZHMu
Ci0gICAgICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBtb3JlIGVmZmljaWVudCB0byB0cmFjayB0
aGUgc3RhdGUgb2YgdGhlIHNjaXNzb3IgdGVzdC4KICAgICAgICAgaWYgKG1fY29udGV4dC0+aXNF
bmFibGVkKEdyYXBoaWNzQ29udGV4dDNEOjpTQ0lTU09SX1RFU1QpKSB7CiAgICAgICAgICAgICBl
bmFibGVTY2lzc29yVGVzdCA9IHRydWU7CiAgICAgICAgICAgICBtX2NvbnRleHQtPmRpc2FibGUo
R3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21t
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAppbmRleCAzOTYxYTVmN2VkYWJlNDQ0MWYxMTE1YTZl
MjY5YzgwODRhZmNhMTRhLi5hYmZlYmNmYTViOWEwMjNjOGMwNGIzMjIxMGVmNTRiYzVjOWRkODEy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAg
LTIwMSwxNCArMjAxLDE0IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnJlYWRSZW5kZXJpbmdS
ZXN1bHRzKHVuc2lnbmVkIGNoYXIgKnBpeGVscywgaW50IHBpeGVsc1NpCiAgICAgYm9vbCBtdXN0
UmVzdG9yZVBhY2tBbGlnbm1lbnQgPSBmYWxzZTsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfUEFD
S19BTElHTk1FTlQsICZwYWNrQWxpZ25tZW50KTsKICAgICBpZiAocGFja0FsaWdubWVudCA+IDQp
IHsKLSAgICAgICAgOjpnbFBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCA0KTsKKyAgICAg
ICAgcGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQsIDQpOwogICAgICAgICBtdXN0UmVzdG9y
ZVBhY2tBbGlnbm1lbnQgPSB0cnVlOwogICAgIH0KIAogICAgIHJlYWRQaXhlbHNBbmRDb252ZXJ0
VG9CR1JBSWZOZWNlc3NhcnkoMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwg
cGl4ZWxzKTsKIAogICAgIGlmIChtdXN0UmVzdG9yZVBhY2tBbGlnbm1lbnQpCi0gICAgICAgIDo6
Z2xQaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgcGFja0FsaWdubWVudCk7CisgICAgICAg
IHBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCBwYWNrQWxpZ25tZW50KTsKIAogICAgIGlm
IChtdXN0UmVzdG9yZUZCTykKICAgICAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZlckVYVChHcmFwaGlj
c0NvbnRleHQzRDo6RlJBTUVCVUZGRVIsIG1fc3RhdGUuYm91bmRGQk8pOwpAQCAtMzAwLDYgKzMw
MCw5IEBAIEludFNpemUgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEludGVybmFsRnJhbWVidWZmZXJT
aXplKCkgY29uc3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YWN0aXZlVGV4dHVyZShHQzNE
ZW51bSB0ZXh0dXJlKQogeworICAgIGlmIChtX3N0YXRlLmFjdGl2ZVRleHR1cmUgPT0gdGV4dHVy
ZSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgbV9z
dGF0ZS5hY3RpdmVUZXh0dXJlID0gdGV4dHVyZTsKICAgICA6OmdsQWN0aXZlVGV4dHVyZSh0ZXh0
dXJlKTsKQEAgLTM4MCw2ICszODMsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEVx
dWF0aW9uU2VwYXJhdGUoR0MzRGVudW0gbW9kZVJHQiwgR0MzRGVudW0gbW9kZUFscAogCiB2b2lk
IEdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEZ1bmMoR0MzRGVudW0gc2ZhY3RvciwgR0MzRGVudW0g
ZGZhY3RvcikKIHsKKyAgICBpZiAobV9zdGF0ZS5pc0NhY2hlYWJsZSAmJiBtX3N0YXRlLmlzQmxl
bmRGdW5jUmVkdW5kYW50KHNmYWN0b3IsIGRmYWN0b3IpKQorICAgICAgICByZXR1cm47CisKICAg
ICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsQmxlbmRGdW5jKHNmYWN0b3IsIGRmYWN0
b3IpOwogfSAgICAgICAKQEAgLTUyOSw2ICs1MzUsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpkZXB0aEZ1bmMoR0MzRGVudW0gZnVuYykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVw
dGhNYXNrKEdDM0Rib29sZWFuIGZsYWcpCiB7CisgICAgaWYgKG1fc3RhdGUuaXNDYWNoZWFibGUg
JiYgbV9zdGF0ZS5pc0RlcHRoTWFza1JlZHVuZGFudChmbGFnKSkKKyAgICAgICAgcmV0dXJuOwor
CiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbERlcHRoTWFzayhmbGFnKTsKIH0K
QEAgLTU0Myw2ICs1NTIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXRhY2hTaGFkZXIo
UGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9ybTNET2JqZWN0CiAKIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OmRpc2FibGUoR0MzRGVudW0gY2FwKQogeworICAgIGlmIChtX3N0YXRlLmlz
Q2FjaGVhYmxlICYmIG1fc3RhdGUuaXNDYXBhYmlsaXR5UmVkdW5kYW50KGNhcCwgR3JhcGhpY3ND
b250ZXh0M0Q6OkNhcGFiaWxpdHlEaXNhYmxlZCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1h
a2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xEaXNhYmxlKGNhcCk7CiB9CkBAIC01NjcsNiAr
NTc5LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVtIG1v
ZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6ZW5hYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBpZiAobV9zdGF0ZS5pc0NhY2hlYWJsZSAm
JiBtX3N0YXRlLmlzQ2FwYWJpbGl0eVJlZHVuZGFudChjYXAsIEdyYXBoaWNzQ29udGV4dDNEOjpD
YXBhYmlsaXR5RW5hYmxlZCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3Vy
cmVudCgpOwogICAgIDo6Z2xFbmFibGUoY2FwKTsKIH0KQEAgLTc3MSw2ICs3ODYsMTIgQEAgR0Mz
RGJvb2xlYW4gR3JhcGhpY3NDb250ZXh0M0Q6OmlzQnVmZmVyKFBsYXRmb3JtM0RPYmplY3QgYnVm
ZmVyKQogCiBHQzNEYm9vbGVhbiBHcmFwaGljc0NvbnRleHQzRDo6aXNFbmFibGVkKEdDM0RlbnVt
IGNhcCkKIHsKKyAgICBpZiAobV9zdGF0ZS5pc0NhY2hlYWJsZSkgeworICAgICAgICBDYXBhYmls
aXR5U3RhdGUgc3RhdGUgPSBtX3N0YXRlLmdldENhcGFiaWxpdHlTdGF0ZShjYXApOworICAgICAg
ICBpZiAoc3RhdGUgIT0gR3JhcGhpY3NDb250ZXh0M0Q6OkNhcGFiaWxpdHlVbmtub3duKQorICAg
ICAgICAgICAgcmV0dXJuIHN0YXRlID09IEdyYXBoaWNzQ29udGV4dDNEOjpDYXBhYmlsaXR5RW5h
YmxlZCA/IHRydWUgOiBmYWxzZTsKKyAgICB9CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsK
ICAgICByZXR1cm4gOjpnbElzRW5hYmxlZChjYXApOwogfQpAQCAtODM1LDYgKzg1Niw5IEBAIHZv
aWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQcm9ncmFtKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3Jh
bSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cGl4ZWxTdG9yZWkoR0MzRGVudW0gcG5hbWUs
IEdDM0RpbnQgcGFyYW0pCiB7CisgICAgaWYgKG1fc3RhdGUuaXNDYWNoZWFibGUgJiYgbV9zdGF0
ZS5pc1BpeGVsU3RvcmVpUmVkdW5kYW50KHBuYW1lLCBwYXJhbSkpCisgICAgICAgIHJldHVybjsK
KwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xQaXhlbFN0b3JlaShwbmFtZSwg
cGFyYW0pOwogfQpAQCAtODUzLDYgKzg3Nyw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNh
bXBsZUNvdmVyYWdlKEdDM0RjbGFtcGYgdmFsdWUsIEdDM0Rib29sZWFuIGludmVydCkKIAogdm9p
ZCBHcmFwaGljc0NvbnRleHQzRDo6c2Npc3NvcihHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNp
emVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAgIGlmIChtX3N0YXRlLmlzQ2FjaGVh
YmxlICYmIG1fc3RhdGUuaXNTY2lzc29yUmVkdW5kYW50KHgsIHksIHdpZHRoLCBoZWlnaHQpKQor
ICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU2Np
c3Nvcih4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0KQEAgLTg3Miw2ICs4OTksOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDNEOjpzaGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIGNv
bnN0IFN0cmluZyYgc3RyaQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyhH
QzNEZW51bSBmdW5jLCBHQzNEaW50IHJlZiwgR0MzRHVpbnQgbWFzaykKIHsKKyAgICBpZiAobV9z
dGF0ZS5pc0NhY2hlYWJsZSAmJiBtX3N0YXRlLmlzU3RlbmNpbEZ1bmNSZWR1bmRhbnQoZnVuYywg
cmVmLCBtYXNrKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7
CiAgICAgOjpnbFN0ZW5jaWxGdW5jKGZ1bmMsIHJlZiwgbWFzayk7CiB9CkBAIC04OTYsNiArOTI2
LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE1hc2tTZXBhcmF0ZShHQzNEZW51
bSBmYWNlLCBHQzNEdWludCBtYXNrKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2ls
T3AoR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdDM0RlbnVtIHpwYXNzKQogeworICAg
IGlmIChtX3N0YXRlLmlzQ2FjaGVhYmxlICYmIG1fc3RhdGUuaXNTdGVuY2lsT3BSZWR1bmRhbnQo
ZmFpbCwgemZhaWwsIHpwYXNzKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRD
dXJyZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxPcChmYWlsLCB6ZmFpbCwgenBhc3MpOwogfQpAQCAt
MTExMSw2ICsxMTQ0LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6dmVydGV4QXR0cmliUG9p
bnRlcihHQzNEdWludCBpbmRleCwgR0MzRGludCBzaXplLCBHQzNEZW4KIAogdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6dmlld3BvcnQoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0
aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKKyAgICBpZiAobV9zdGF0ZS5pc0NhY2hlYWJsZSAmJiBt
X3N0YXRlLmlzVmlld3BvcnRSZWR1bmRhbnQoeCwgeSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4
LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192276</attachid>
            <date>2013-03-08 12:49:26 -0800</date>
            <delta_ts>2013-03-11 05:53:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130308164527.patch</filename>
            <type>text/plain</type>
            <size>28683</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MjA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkwNDYzZjMwOTNkZjQ3
OWI2ZTQ4OTNmNDQwNTVmM2U3MTRmNGE4MC4uZDdlNzNmOTI2OGIxYzgyMTRlY2E3ZGI2NDA5NmIw
YzhiM2Y5N2FiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTA4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgY2FjaGUgdmFyaWFibGVzIHRvIGF2b2lkIHJlZHVuZGFudCBjaGFu
Z2VzIG9uIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm9maWxpbmcgRUZMJ3MgTWluaUJyb3dzZXIgdW5kZXIgZ0RFQnVn
Z2VyIGRldGVjdGVkIHF1aXRlIHNvbWUgc3RhdGUKKyAgICAgICAgY2hhbmdlIGZ1bmN0aW9uIGNh
bGxzIHdlcmUgcmVkdW5kYW50LiBUaGlzIHBhdGNoIGludGVuZHMgdG8gYWRkIG1vcmUKKyAgICAg
ICAgc3RhdGUgdmFyaWFibGVzIGluc2lkZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGF2b2lk
IHJlZHVuZGFudCBzdGF0ZQorICAgICAgICBjaGFuZ2VzLiBUaGUgY2FjaGVkIHZhbHVlcyBhcmUg
dXNlZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgcmVkdWNlIHJlZHVu
ZGFudCBzdGF0ZSB0cmFuc2l0aW9ucyAoc3RhdGUgY2FjaGluZyBpcyBkaXNhYmxlZCBieSBkZWZh
dWx0KS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0aHVzIGNvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICBBZGRlZCBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggdG8gYnVpbGQgc3lzdGVt
IGZpbGVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRJc1BhaW50aW5nKTog
QWRkZWQuCisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRCk6IE1vdmVkIEdyYXBoaWNzQ29udGV4
dDNEU3RhdGUgdG8gc3BlY2lmaWMgaGVhZGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRFN0YXRlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OnJlc2V0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RTdGF0ZTo6dXBkYXRlQWN0aXZlVGV4dHVyZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZUJsZW5kRnVuY0NhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZURlcHRoTWFza0NhY2hlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZVNjaXNzb3JD
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVT
dGVuY2lsRnVuY0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OnVwZGF0ZVN0ZW5jaWxPcENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OnVwZGF0ZVZpZXdwb3J0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlUGl4ZWxTdG9yZWlDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpnZXRDYXBhYmlsaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlQ2FwYWJpbGl0eUNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVzZXNDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpDYWNoZURhdGE6
OkNhY2hlRGF0YSk6CisgICAgICAgIEFkZGVkIHN0YXRlIGNhY2hlIHZhcmlhYmxlcyBhbmQgcmVk
dW5kYW5jeSBjaGVjayBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6cHJlcGFyZUJ1ZmZlcik6CisgICAgICAgIFJlbW92ZWQgRklY
TUUgb24gY2FjaGluZyBzY2lzc29yIHRlc3Qgc3RhdGVzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAg
ICAgICBVc2UgR3JhcGhpY3NDb250ZXh0M0QgZnVuY3Rpb25zIGluc3RlYWQgb2YgZGlyZWN0IEdM
IGNhbGxzIHRvIGtlZXAgc3RhdGUKKyAgICAgICAgY2FjaGUgdmFyaWFibGVzIGNvbnNpc3RlbnQu
CisKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEZ1bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFzayk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjppc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBp
eGVsU3RvcmVpKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2aWV3cG9ydCk6CisgICAgICAgIEFkZGVkIHJl
ZHVuZGFuY3kgY2hlY2sgb24gZWFjaCBvZiB0aGVzZSB0byByZXR1cm4gZWFybHkgaWYgdGhlIHZh
bHVlCisgICAgICAgIG1hdGNoZXMgdGhlIHByZXZpb3VzIHNldC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHTDo6ZW5kUGFpbnRpbmcpOgorICAgICAgICBVcGRhdGUgdGhlIGdyYXBoaWNz
IGNvbnRleHQgd2hlbiBiZWdpbm5pbmcgYW5kIGVuZGluZyBwYWludGluZyB1c2luZworICAgICAg
ICBzZXRJc1BhaW50aW5nKCksIHNvIHdlIGNhbiBrZWVwIHRyYWNrIHdoZW4gdG8gY2FjaGUgc3Rh
dGUgdmFyaWFibGVzLgorCiAyMDEzLTAzLTA4ICBIdWFuZyBEb25nc3VuZyAgPGx1eHRlbGxhQGNv
bXBhbnkxMDAubmV0PgogCiAgICAgICAgIFtFRkxdW1F0XSBSRUdSRVNTSU9OKHIxNDQ3ODcpOiBB
IGZpeGVkIGVsZW1lbnQgbGFncyB3aGVuIHNjcm9sbGluZyBhbmQgd2hlZWxpbmcuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUv
R05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA5ZjQ1NmZkZGRkNjY4N2YxZGMyNjg3ZmNlMTk4ZDVm
ODExN2ExNDI2Li4xZjg5ZDg5ZDY5YzEzMmY0NzU3MzMyNDk5ODA4Zjc0ZmI5ZjlkM2Q3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU2NTAsNiArNTY1MCw3IEBAIHdlYmNvcmVf
cGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dy
YXBoaWNzQ29udGV4dDNELmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0QuaCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0xheWVyLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzTGF5ZXIuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
cmFwaGljc0xheWVyQ2xpZW50LmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0
LnByaSBiL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKaW5kZXggMWI2NTVmYmUwNTQwZGI0M2Zh
MWJhODVlMjVlZWVkYjU3YzYwNzY3OC4uMjY3ZTBjN2I0OWVlNTQyYjJkZTBiNGE3YmEzOWU1MmE3
OTljYTAzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9UYXJnZXQucHJpCkBAIC00MTA2LDYgKzQxMDYsNyBAQCB1c2U/KDNEX0dSQVBI
SUNTKSB7CiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NwdS9hcm0vR3JhcGhpY3NDb250ZXh0
M0RORU9OLmggXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5o
IFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvRXh0ZW5zaW9uczNELmggXAorICAgICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFN0YXRlLmggXAogICAgICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3B1L0RyYXdpbmdCdWZmZXIuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dw
dS9UZXh0dXJlLmggXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDk2NzlmNjIyOTcyNDQ1ZDY0MTMwYjUwMWVmMGI2ZGM1MDQwYzQw
ZmIuLjNjOGUyM2UxY2ZmM2Y5MjIwYzJjYWViZGNiN2YyZWQzZWNiYjVhZDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNzcs
NiArMTM3Nyw3IEBACiAJCTQ5QzdCOUU1MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5
QzUxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMVGV4dHVyZS5jcHAgKi87IH07CiAJCTQ5QzdCOUU2
MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUM2MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJH
TFRleHR1cmUuaCAqLzsgfTsKIAkJNDlDN0I5RkMxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNz
Q29udGV4dDNELmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OUM3QjlGQjEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0M0QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0OUM3QjlGQzEwNDJE
MzY1MDAwOUQ0NDggLyogR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0I5RkIxMDQyRDM2NTAwMDlENDQ4IC8q
IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0OUM3QkE3OTEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZy
YW1ld29yayBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5QzdCQTc4MTA0MkVGQUUwMDA5RDQ0NyAvKiBPcGVuR0wuZnJhbWV3b3JrICovOyB9OwogCQk0
OUM3QkE4RDEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QkE4QzEwNDJGNUIxMDAw
OUQ0NDcgLyogSlNEb2N1bWVudEN1c3RvbS5jcHAgKi87IH07CiAJCTQ5RDVEQzJCMEY0MjNBNzMw
MDhGMjBGRCAvKiBNYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUQ1REMyNzBGNDIzQTczMDA4RjIwRkQg
LyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwICovOyB9OwpAQCAtODgyNSw2ICs4ODI2
LDcgQEAKIAkJNDlDN0I5QzYxMDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMVGV4dHVyZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJHTFRleHR1cmUuaDsgcGF0aCA9IGNhbnZh
cy9XZWJHTFRleHR1cmUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5Qzcx
MDQyRDMyRjAwMDlENDQ3IC8qIFdlYkdMVGV4dHVyZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1l
ID0gV2ViR0xUZXh0dXJlLmlkbDsgcGF0aCA9IGNhbnZhcy9XZWJHTFRleHR1cmUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUM3QjlGQjEwNDJEMzY1MDAwOUQ0NDcgLyogR3Jh
cGhpY3NDb250ZXh0M0QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhp
Y3NDb250ZXh0M0QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDlDN0I5RkIxMDQy
RDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0OUM3QkE3ODEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZyYW1l
d29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdy
YXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gT3BlbkdMLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0v
TGlicmFyeS9GcmFtZXdvcmtzL09wZW5HTC5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29s
dXRlPiI7IH07CiAJCTQ5QzdCQThDMTA0MkY1QjEwMDA5RDQ0NyAvKiBKU0RvY3VtZW50Q3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRG9jdW1lbnRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OUQ1REMyNzBGNDIzQTczMDA4
RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOyBwYXRo
ID0gdHJhbnNmb3Jtcy9NYXRyaXgzRFRyYW5zZm9ybU9wZXJhdGlvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0yMDc0MSw2ICsyMDc0Myw3IEBACiAJCQkJQjJBMDE1OTMwQUY2
Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5oICovLAogCQkJCTZFMjFDNkJGMTEyNjMz
ODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAgKi8sCiAJCQkJNDlDN0I5RkIxMDQy
RDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8sCisJCQkJNDlDN0I5RkIxMDQy
RDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCAqLywKIAkJCQkwRjU4MEIw
OTBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5jcHAgKi8sCiAJCQkJMEY1ODBCMEEw
RjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCAqLywKIAkJCQkwRjU4MEIwQjBGMTJB
MjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllckNsaWVudC5oICovLApAQCAtMjQ1NzgsNiArMjQ1
ODEsNyBAQAogCQkJCUIyMjI3OTY0MEQwMEJGMjIwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0
ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFw
aGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0
NyAvKiBHcmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDlDN0I5RkMxMDQy
RDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTgwRDY3MDgwRTlFOURFQjAwRTQyMEYwIC8qIEdyYXBoaWNzQ29udGV4
dFBsYXRmb3JtUHJpdmF0ZUNHLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjU4MEIwRDBGMTJBMjY5
MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRleCBl
MTIyOGVmYTlmODljZDEzZDI5NTA1ODZkOWQxMTJhY2YwYmU0ZWM5Li4yOTNhZTQzNDA1NzNhMjk4
Mzk1Y2Y3NzBkNjY1ZjA1NWZiN2QwYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKQEAgLTI2LDYgKzI2LDcgQEAKICNp
Zm5kZWYgR3JhcGhpY3NDb250ZXh0M0RfaAogI2RlZmluZSBHcmFwaGljc0NvbnRleHQzRF9oCiAK
KyNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQzRFN0YXRlLmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NU
eXBlczNELmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCkBAIC04
NjMsNiArODY0LDExIEBAIHB1YmxpYzoKIAogICAgIEludFNpemUgZ2V0SW50ZXJuYWxGcmFtZWJ1
ZmZlclNpemUoKSBjb25zdDsKIAorICAgIGlubGluZSB2b2lkIHNldElzUGFpbnRpbmcoYm9vbCBp
c1BhaW50aW5nKQorICAgIHsKKyAgICAgICAgbV9zdGF0ZS5zZXRJc1BhaW50aW5nKGlzUGFpbnRp
bmcpOworICAgIH0KKwogICAgIHN0YXRpYyB1bnNpZ25lZCBnZXRDbGVhckJpdHNCeUF0dGFjaG1l
bnRUeXBlKEdDM0RlbnVtKTsKICAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlGb3Jt
YXQoR0MzRGVudW0pOwogCkBAIC0xMDgyLDE4ICsxMDg4LDYgQEAgcHJpdmF0ZToKICAgICBib29s
IG1fbGF5ZXJDb21wb3NpdGVkOwogICAgIEdDM0R1aW50IG1faW50ZXJuYWxDb2xvckZvcm1hdDsK
IAotICAgIHN0cnVjdCBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHsKLSAgICAgICAgR3JhcGhpY3ND
b250ZXh0M0RTdGF0ZSgpCi0gICAgICAgICAgICA6IGJvdW5kRkJPKDApCi0gICAgICAgICAgICAs
IGFjdGl2ZVRleHR1cmUoR3JhcGhpY3NDb250ZXh0M0Q6OlRFWFRVUkUwKQotICAgICAgICAgICAg
LCBib3VuZFRleHR1cmUwKDApCi0gICAgICAgIHsgfQotCi0gICAgICAgIEdDM0R1aW50IGJvdW5k
RkJPOwotICAgICAgICBHQzNEZW51bSBhY3RpdmVUZXh0dXJlOwotICAgICAgICBHQzNEdWludCBi
b3VuZFRleHR1cmUwOwotICAgIH07Ci0KICAgICBHcmFwaGljc0NvbnRleHQzRFN0YXRlIG1fc3Rh
dGU7CiAKICAgICAvLyBGb3IgbXVsdGlzYW1wbGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjhhOGVkMGMzNTQ4ODQ3OTA0NTk4Nzk3MjU5NTNmMmEwMWJhMzY4NmYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RFN0YXRlLmgKQEAgLTAsMCArMSwzMjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGVfaAorI2RlZmluZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlX2gKKworI2luY2x1
ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgeworcHVibGljOgorICAgIGVudW0g
Q2FjaGVUeXBlIHsKKyAgICAgICAgRG9Ob3RVc2VDYWNoZSA9IDAsCisgICAgICAgIFVzZUNhY2hl
SWZQYWludGluZywKKyAgICAgICAgVXNlQ2FjaGVBbHdheXMKKyAgICB9OworCisgICAgZW51bSBD
YXBhYmlsaXR5U3RhdGUgeworICAgICAgICBDYXBhYmlsaXR5VW5rbm93biA9IDAsCisgICAgICAg
IENhcGFiaWxpdHlFbmFibGVkLAorICAgICAgICBDYXBhYmlsaXR5RGlzYWJsZWQKKyAgICB9Owor
CisgICAgdHlwZWRlZiBIYXNoTWFwPEdDM0RlbnVtLCBHQzNEaW50PiBQaXhlbFN0b3JlSW50TWFw
OworICAgIHR5cGVkZWYgSGFzaE1hcDxHQzNEZW51bSwgQ2FwYWJpbGl0eVN0YXRlPiBDYXBhYmls
aXR5TWFwOworCisgICAgLy8gQ2FjaGUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICBHcmFw
aGljc0NvbnRleHQzRFN0YXRlKENhY2hlVHlwZSBjYWNoZVR5cGUgPSBEb05vdFVzZUNhY2hlKQor
ICAgICAgICA6IGFjdGl2ZVRleHR1cmUoMHg4NEMwKSAvLyBURVhUVVJFMAorICAgICAgICAsIGJv
dW5kRkJPKDApCisgICAgICAgICwgYm91bmRUZXh0dXJlMCgwKQorICAgICAgICAsIGlzUGFpbnRp
bmcoZmFsc2UpCisgICAgICAgICwgY2FjaGVUeXBlKGNhY2hlVHlwZSkKKyAgICAgICAgLCBjYWNo
ZURhdGEoYWRvcHRQdHIoY2FjaGVUeXBlID09IERvTm90VXNlQ2FjaGUgPyAwIDogbmV3IENhY2hl
RGF0YSgpKSkKKyAgICB7IH0KKworICAgIEdDM0RlbnVtIGFjdGl2ZVRleHR1cmU7CisgICAgR0Mz
RHVpbnQgYm91bmRGQk87CisgICAgR0MzRHVpbnQgYm91bmRUZXh0dXJlMDsKKworICAgIHZvaWQg
c2V0SXNQYWludGluZyhib29sIGlzUGFpbnRpbmcpCisgICAgeworICAgICAgICBpZiAodGhpcy0+
aXNQYWludGluZyA9PSBpc1BhaW50aW5nKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHRoaXMtPmlzUGFpbnRpbmcgPSBpc1BhaW50aW5nOworICAgICAgICAvLyBXZSBuZWVkIHRvIG9i
dGFpbiB0aGUgc3RhdGUgdmFsdWVzIGZyb20gR0wgYXMgdGhleSBtaWdodCBoYXZlIGNoYW5nZWQg
ZWxzZXdoZXJlLgorICAgICAgICBpZiAoaXNQYWludGluZyAmJiBjYWNoZVR5cGUgPT0gVXNlQ2Fj
aGVJZlBhaW50aW5nKQorICAgICAgICAgICAgcmVzZXRDYWNoZSgpOworICAgIH0KKworICAgIC8v
IFRoZSBjYWNoZWQgdmFsdWVzIGJlbG93IGFyZSB1c2VkIGJ5IHNvbWUsIGJ1dCBub3QgYWxsLCBw
b3J0cyB0bworICAgIC8vIHJlZHVjZSByZWR1bmRhbnQgc3RhdGUgdHJhbnNpdGlvbnMuIERvIG5v
dCByZWx5IG9uIHRoZWlyIGJlaW5nCisgICAgLy8gdXAtdG8tZGF0ZSBpbiBjb21tb24gY29kZS4K
KworICAgIHZvaWQgcmVzZXRDYWNoZSgpCisgICAgeworICAgICAgICBjYWNoZURhdGEtPmlzQWN0
aXZlVGV4dHVyZUNhY2hlRGlydHkgPSB0cnVlOworICAgICAgICBjYWNoZURhdGEtPmlzQmxlbmRG
dW5jQ2FjaGVEaXJ0eSA9IHRydWU7CisgICAgICAgIGNhY2hlRGF0YS0+aXNEZXB0aE1hc2tDYWNo
ZURpcnR5ID0gdHJ1ZTsKKyAgICAgICAgY2FjaGVEYXRhLT5pc1NjaXNzb3JDYWNoZURpcnR5ID0g
dHJ1ZTsKKyAgICAgICAgY2FjaGVEYXRhLT5pc1N0ZW5jaWxGdW5jQ2FjaGVEaXJ0eSA9IHRydWU7
CisgICAgICAgIGNhY2hlRGF0YS0+aXNTdGVuY2lsT3BDYWNoZURpcnR5ID0gdHJ1ZTsKKyAgICAg
ICAgY2FjaGVEYXRhLT5pc1ZpZXdwb3J0Q2FjaGVEaXJ0eSA9IHRydWU7CisgICAgICAgIGNhY2hl
RGF0YS0+cGl4ZWxTdG9yZUludE1hcC5jbGVhcigpOworICAgICAgICBjYWNoZURhdGEtPmNhcGFi
aWxpdGllc01hcC5jbGVhcigpOworICAgIH0KKworICAgIGJvb2wgdXBkYXRlQWN0aXZlVGV4dHVy
ZUNhY2hlKEdDM0RlbnVtIHRleHR1cmUpCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNB
Y3RpdmVUZXh0dXJlQ2FjaGVEaXJ0eSkKKyAgICAgICAgICAgIGNhY2hlRGF0YS0+aXNBY3RpdmVU
ZXh0dXJlQ2FjaGVEaXJ0eSA9IGZhbHNlOworICAgICAgICBlbHNlIGlmIChjYWNoZURhdGEtPmFj
dGl2ZVRleHR1cmUgPT0gdGV4dHVyZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
ICAgICBjYWNoZURhdGEtPmFjdGl2ZVRleHR1cmUgPSB0ZXh0dXJlOworICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0ZUJsZW5kRnVuY0NhY2hlKEdDM0RlbnVtIHNv
dXJjZUZhY3RvciwgR0MzRGVudW0gZGVzdGluYXRpb25GYWN0b3IpCisgICAgeworICAgICAgICBp
ZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYg
KGNhY2hlRGF0YS0+aXNCbGVuZEZ1bmNDYWNoZURpcnR5KQorICAgICAgICAgICAgY2FjaGVEYXRh
LT5pc0JsZW5kRnVuY0NhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVE
YXRhLT5zb3VyY2VGYWN0b3IgPT0gc291cmNlRmFjdG9yICYmIGNhY2hlRGF0YS0+ZGVzdGluYXRp
b25GYWN0b3IgPT0gZGVzdGluYXRpb25GYWN0b3IpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICAgICAgY2FjaGVEYXRhLT5zb3VyY2VGYWN0b3IgPSBzb3VyY2VGYWN0b3I7CisgICAg
ICAgIGNhY2hlRGF0YS0+ZGVzdGluYXRpb25GYWN0b3IgPSBkZXN0aW5hdGlvbkZhY3RvcjsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCB1cGRhdGVEZXB0aE1hc2tDYWNo
ZShHQzNEYm9vbGVhbiBkZXB0aE1hc2spCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgp
KQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNE
ZXB0aE1hc2tDYWNoZURpcnR5KQorICAgICAgICAgICAgY2FjaGVEYXRhLT5pc0RlcHRoTWFza0Nh
Y2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5kZXB0aE1hc2sg
PT0gZGVwdGhNYXNrKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNhY2hl
RGF0YS0+ZGVwdGhNYXNrID0gZGVwdGhNYXNrOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisKKyAgICBib29sIHVwZGF0ZVNjaXNzb3JDYWNoZShHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0Mz
RHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0KQorICAgIHsKKyAgICAgICAgaWYgKCF1c2Vz
Q2FjaGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworCisgICAgICAgIGlmIChjYWNoZURh
dGEtPmlzU2Npc3NvckNhY2hlRGlydHkpCisgICAgICAgICAgICBjYWNoZURhdGEtPmlzU2Npc3Nv
ckNhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5zY2lzc29y
WCA9PSB4ICYmIGNhY2hlRGF0YS0+c2Npc3NvclkgPT0geSAmJiBjYWNoZURhdGEtPnNjaXNzb3JX
aWR0aCA9PSB3aWR0aCAmJiBjYWNoZURhdGEtPnNjaXNzb3JIZWlnaHQgPT0gaGVpZ2h0KQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNhY2hlRGF0YS0+c2Npc3NvclggPSB4
OworICAgICAgICBjYWNoZURhdGEtPnNjaXNzb3JZID0geTsKKyAgICAgICAgY2FjaGVEYXRhLT5z
Y2lzc29yV2lkdGggPSB3aWR0aDsKKyAgICAgICAgY2FjaGVEYXRhLT5zY2lzc29ySGVpZ2h0ID0g
aGVpZ2h0OworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0ZVN0
ZW5jaWxGdW5jQ2FjaGUoR0MzRGVudW0gZnVuYywgR0MzRGludCByZWYsIEdDM0R1aW50IG1hc2sp
CisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNTdGVuY2lsRnVuY0NhY2hlRGlydHkpCisg
ICAgICAgICAgICBjYWNoZURhdGEtPmlzU3RlbmNpbEZ1bmNDYWNoZURpcnR5ID0gZmFsc2U7Cisg
ICAgICAgIGVsc2UgaWYgKGNhY2hlRGF0YS0+c3RlbmNpbEZ1bmMgPT0gZnVuYyAmJiBjYWNoZURh
dGEtPnN0ZW5jaWxSZWYgPT0gcmVmICYmIGNhY2hlRGF0YS0+c3RlbmNpbE1hc2sgPT0gbWFzaykK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBjYWNoZURhdGEtPnN0ZW5jaWxG
dW5jID0gZnVuYzsKKyAgICAgICAgY2FjaGVEYXRhLT5zdGVuY2lsUmVmID0gcmVmOworICAgICAg
ICBjYWNoZURhdGEtPnN0ZW5jaWxNYXNrID0gbWFzazsKKyAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQorCisgICAgYm9vbCB1cGRhdGVTdGVuY2lsT3BDYWNoZShHQzNEZW51bSBmYWlsLCBHQzNE
ZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNo
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+
aXNTdGVuY2lsT3BDYWNoZURpcnR5KQorICAgICAgICAgICAgY2FjaGVEYXRhLT5pc1N0ZW5jaWxP
cENhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5zdGVuY2ls
RmFpbCA9PSBmYWlsICYmIGNhY2hlRGF0YS0+c3RlbmNpbFpGYWlsID09IHpmYWlsICYmIGNhY2hl
RGF0YS0+c3RlbmNpbFpQYXNzID09IHpwYXNzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGNhY2hlRGF0YS0+c3RlbmNpbEZhaWwgPSBmYWlsOworICAgICAgICBjYWNoZURh
dGEtPnN0ZW5jaWxaRmFpbCA9IHpmYWlsOworICAgICAgICBjYWNoZURhdGEtPnN0ZW5jaWxaUGFz
cyA9IHpwYXNzOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0
ZVZpZXdwb3J0Q2FjaGUoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCkKKyAgICB7CisgICAgICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoY2FjaGVEYXRhLT5pc1ZpZXdwb3J0Q2Fj
aGVEaXJ0eSkKKyAgICAgICAgICAgIGNhY2hlRGF0YS0+aXNWaWV3cG9ydENhY2hlRGlydHkgPSBm
YWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT52aWV3cG9ydFggPT0geCAmJiBjYWNo
ZURhdGEtPnZpZXdwb3J0WSA9PSB5ICYmIGNhY2hlRGF0YS0+dmlld3BvcnRXaWR0aCA9PSB3aWR0
aCAmJiBjYWNoZURhdGEtPnZpZXdwb3J0SGVpZ2h0ID09IGhlaWdodCkKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBjYWNoZURhdGEtPnZpZXdwb3J0WCA9IHg7CisgICAgICAg
IGNhY2hlRGF0YS0+dmlld3BvcnRZID0geTsKKyAgICAgICAgY2FjaGVEYXRhLT52aWV3cG9ydFdp
ZHRoID0gd2lkdGg7CisgICAgICAgIGNhY2hlRGF0YS0+dmlld3BvcnRIZWlnaHQgPSBoZWlnaHQ7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIGJvb2wgdXBkYXRlUGl4ZWxTdG9y
ZWlDYWNoZShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkKKyAgICB7CisgICAgICAgIGlm
ICghdXNlc0NhY2hlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBQaXhl
bFN0b3JlSW50TWFwOjppdGVyYXRvciBpdCA9IGNhY2hlRGF0YS0+cGl4ZWxTdG9yZUludE1hcC5m
aW5kKHBuYW1lKTsKKyAgICAgICAgaWYgKGl0ICE9IGNhY2hlRGF0YS0+cGl4ZWxTdG9yZUludE1h
cC5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gcGFyYW0pCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgIGNhY2hlRGF0YS0+cGl4ZWxTdG9yZUludE1hcC5zZXQocG5hbWUsIHBhcmFtKTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgQ2FwYWJpbGl0eVN0YXRlIGdldENh
cGFiaWxpdHlTdGF0ZShHQzNEZW51bSBjYXApCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNo
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIENhcGFiaWxpdHlVbmtub3duOworCisgICAgICAgIENh
cGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gY2FjaGVEYXRhLT5jYXBhYmlsaXRpZXNNYXAuZmlu
ZChjYXApOworICAgICAgICBpZiAoaXQgPT0gY2FjaGVEYXRhLT5jYXBhYmlsaXRpZXNNYXAuZW5k
KCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwYWJpbGl0eVVua25vd247CisKKyAgICAgICAgcmV0
dXJuIGl0LT52YWx1ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0ZUNhcGFiaWxpdHlDYWNoZShH
QzNEZW51bSBjYXAsIENhcGFiaWxpdHlTdGF0ZSBpc0VuYWJsZWQpCisgICAgeworICAgICAgICBp
ZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgQ2Fw
YWJpbGl0eU1hcDo6aXRlcmF0b3IgaXQgPSBjYWNoZURhdGEtPmNhcGFiaWxpdGllc01hcC5maW5k
KGNhcCk7CisgICAgICAgIGlmIChpdCAhPSBjYWNoZURhdGEtPmNhcGFiaWxpdGllc01hcC5lbmQo
KSAmJiBpdC0+dmFsdWUgPT0gaXNFbmFibGVkKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgICAgIGNhY2hlRGF0YS0+Y2FwYWJpbGl0aWVzTWFwLnNldChjYXAsIGlzRW5hYmxlZCk7
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworcHJpdmF0ZToKKyAgICBpbmxpbmUgYm9v
bCB1c2VzQ2FjaGUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGNhY2hlVHlwZSA9PSBV
c2VDYWNoZUFsd2F5cyB8fCAoY2FjaGVUeXBlID09IFVzZUNhY2hlSWZQYWludGluZyAmJiBpc1Bh
aW50aW5nKTsKKyAgICB9CisKKyAgICBzdHJ1Y3QgQ2FjaGVEYXRhIHsKKyAgICAgICAgLy8gVXNl
ZCBieSBnbEFjdGl2ZVRleHR1cmUKKyAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVyZTsKKwor
ICAgICAgICAvLyBVc2VkIGJ5IGdsQmxlbmRGdW5jLgorICAgICAgICBHQzNEZW51bSBzb3VyY2VG
YWN0b3I7CisgICAgICAgIEdDM0RlbnVtIGRlc3RpbmF0aW9uRmFjdG9yOworCisgICAgICAgIC8v
IFVzZWQgYnkgZ2xEZXB0aE1hc2suCisgICAgICAgIEdDM0Rib29sZWFuIGRlcHRoTWFzazsKKwor
ICAgICAgICAvLyBVc2VkIGJ5IGdsU2Npc3Nvci4KKyAgICAgICAgR0MzRGludCBzY2lzc29yWDsK
KyAgICAgICAgR0MzRGludCBzY2lzc29yWTsKKyAgICAgICAgR0MzRHNpemVpIHNjaXNzb3JXaWR0
aDsKKyAgICAgICAgR0MzRHNpemVpIHNjaXNzb3JIZWlnaHQ7CisKKyAgICAgICAgLy8gVXNlZCBi
eSBnbFN0ZW5jaWxGdW5jLgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRnVuYzsKKyAgICAgICAg
R0MzRGludCBzdGVuY2lsUmVmOworICAgICAgICBHQzNEdWludCBzdGVuY2lsTWFzazsKKworICAg
ICAgICAvLyBVc2VkIGJ5IGdsU3RlbmNpbE9wLgorICAgICAgICBHQzNEZW51bSBzdGVuY2lsRmFp
bDsKKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbFpGYWlsOworICAgICAgICBHQzNEZW51bSBzdGVu
Y2lsWlBhc3M7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFZpZXdwb3J0LgorICAgICAgICBHQzNE
aW50IHZpZXdwb3J0WDsKKyAgICAgICAgR0MzRGludCB2aWV3cG9ydFk7CisgICAgICAgIEdDM0Rz
aXplaSB2aWV3cG9ydFdpZHRoOworICAgICAgICBHQzNEc2l6ZWkgdmlld3BvcnRIZWlnaHQ7CisK
KyAgICAgICAgLy8gVXNlZCBieSBnbFBpeGVsU3RvcmVpLgorICAgICAgICBQaXhlbFN0b3JlSW50
TWFwIHBpeGVsU3RvcmVJbnRNYXA7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbEVuYWJsZSBhbmQg
Z2xEaXNhYmxlLgorICAgICAgICBDYXBhYmlsaXR5TWFwIGNhcGFiaWxpdGllc01hcDsKKworICAg
ICAgICBib29sIGlzQWN0aXZlVGV4dHVyZUNhY2hlRGlydHkgOiAxOworICAgICAgICBib29sIGlz
QmxlbmRGdW5jQ2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNEZXB0aE1hc2tDYWNoZURp
cnR5IDogMTsKKyAgICAgICAgYm9vbCBpc1NjaXNzb3JDYWNoZURpcnR5IDogMTsKKyAgICAgICAg
Ym9vbCBpc1N0ZW5jaWxGdW5jQ2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNTdGVuY2ls
T3BDYWNoZURpcnR5IDogMTsKKyAgICAgICAgYm9vbCBpc1ZpZXdwb3J0Q2FjaGVEaXJ0eSA6IDE7
CisKKyAgICAgICAgQ2FjaGVEYXRhKCkKKyAgICAgICAgICAgIDogYWN0aXZlVGV4dHVyZSgweDg0
QzApIC8vIFRFWFRVUkUwCisgICAgICAgICAgICAsIHNvdXJjZUZhY3RvcigxKSAvLyBPTkUKKyAg
ICAgICAgICAgICwgZGVzdGluYXRpb25GYWN0b3IoMCkgLy8gWkVSTworICAgICAgICAgICAgLCBk
ZXB0aE1hc2sodHJ1ZSkKKyAgICAgICAgICAgICwgc2Npc3NvclgoMCkKKyAgICAgICAgICAgICwg
c2Npc3NvclkoMCkKKyAgICAgICAgICAgICwgc2Npc3NvcldpZHRoKDApCisgICAgICAgICAgICAs
IHNjaXNzb3JIZWlnaHQoMCkKKyAgICAgICAgICAgICwgc3RlbmNpbEZ1bmMoMHgwMjA3KSAvLyBB
TFdBWVMKKyAgICAgICAgICAgICwgc3RlbmNpbFJlZigwKQorICAgICAgICAgICAgLCBzdGVuY2ls
TWFzayhVSU5UX01BWCkKKyAgICAgICAgICAgICwgc3RlbmNpbEZhaWwoMHgxRTAwKSAvLyBLRUVQ
CisgICAgICAgICAgICAsIHN0ZW5jaWxaRmFpbCgweDFFMDApIC8vIEtFRVAKKyAgICAgICAgICAg
ICwgc3RlbmNpbFpQYXNzKDB4MUUwMCkgLy8gS0VFUAorICAgICAgICAgICAgLCB2aWV3cG9ydFgo
MCkKKyAgICAgICAgICAgICwgdmlld3BvcnRZKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0V2lk
dGgoMCkKKyAgICAgICAgICAgICwgdmlld3BvcnRIZWlnaHQoMCkKKyAgICAgICAgICAgICwgaXNB
Y3RpdmVUZXh0dXJlQ2FjaGVEaXJ0eShmYWxzZSkKKyAgICAgICAgICAgICwgaXNCbGVuZEZ1bmND
YWNoZURpcnR5KGZhbHNlKQorICAgICAgICAgICAgLCBpc0RlcHRoTWFza0NhY2hlRGlydHkoZmFs
c2UpCisgICAgICAgICAgICAsIGlzU2Npc3NvckNhY2hlRGlydHkoZmFsc2UpCisgICAgICAgICAg
ICAsIGlzU3RlbmNpbEZ1bmNDYWNoZURpcnR5KGZhbHNlKQorICAgICAgICAgICAgLCBpc1ZpZXdw
b3J0Q2FjaGVEaXJ0eShmYWxzZSkKKyAgICAgICAgeyB9CisgICAgfTsKKworICAgIGJvb2wgaXNQ
YWludGluZzsKKyAgICBDYWNoZVR5cGUgY2FjaGVUeXBlOworICAgIE93blB0cjxDYWNoZURhdGE+
IGNhY2hlRGF0YTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdy
YXBoaWNzQ29udGV4dDNEU3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZWZsL0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApp
bmRleCBlYTcyNjliM2Y5NjUyN2E2NDdmNmNjMTNhMzdiNTJjYjk3YWRmMzdkLi5lN2M2OGIwZDUx
Njg2YzY5NjEyZmQzMWQwNWUxYzZkYjI4NDE3MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQ
cml2YXRlLmNwcApAQCAtMTc3LDcgKzE3Nyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0RQcml2
YXRlOjpwcmVwYXJlQnVmZmVyKCkgY29uc3QKICAgICAgICAgaW50IHdpZHRoID0gbV9jb250ZXh0
LT5tX2N1cnJlbnRXaWR0aDsKICAgICAgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJy
ZW50SGVpZ2h0OwogICAgICAgICAvLyBXZSBzaG91bGQgY29weSB0aGUgZnVsbCBidWZmZXIsIGFu
ZCBub3QgcmVzcGVjdCB0aGUgY3VycmVudCBzY2lzc29yIGJvdW5kcy4KLSAgICAgICAgLy8gRklY
TUU6IEl0IHdvdWxkIGJlIG1vcmUgZWZmaWNpZW50IHRvIHRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUg
c2Npc3NvciB0ZXN0LgogICAgICAgICBpZiAobV9jb250ZXh0LT5pc0VuYWJsZWQoR3JhcGhpY3ND
b250ZXh0M0Q6OlNDSVNTT1JfVEVTVCkpIHsKICAgICAgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0
ID0gdHJ1ZTsKICAgICAgICAgICAgIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQz
RDo6U0NJU1NPUl9URVNUKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwCmluZGV4IDM5NjFhNWY3ZWRhYmU0NDQxZjExMTVhNmUyNjljODA4NGFmY2ExNGEu
LjE0MTlmNjYwYjgyODM5NGM2Yzc3OWY1NmJiYWUwNTQ2YmZiMWE1ZGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMTY2LDExICsxNjYsMTEg
QEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRleHR1cmUoKQogICAgICAgICByZXNv
bHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICAgICA6OmdsQmluZEZyYW1lYnVmZmVy
RVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9mYm8pOwotICAgIDo6Z2xBY3Rp
dmVUZXh0dXJlKEdMX1RFWFRVUkUwKTsKKyAgICBhY3RpdmVUZXh0dXJlKEdMX1RFWFRVUkUwKTsK
ICAgICA6OmdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgbV9jb21wb3NpdG9yVGV4dHVyZSk7
CiAgICAgOjpnbENvcHlUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQsIDAsIG1faW50ZXJuYWxDb2xv
ckZvcm1hdCwgMCwgMCwgbV9jdXJyZW50V2lkdGgsIG1fY3VycmVudEhlaWdodCwgMCk7CiAgICAg
OjpnbEJpbmRUZXh0dXJlKEdMX1RFWFRVUkVfMkQsIG1fc3RhdGUuYm91bmRUZXh0dXJlMCk7Ci0g
ICAgOjpnbEFjdGl2ZVRleHR1cmUobV9zdGF0ZS5hY3RpdmVUZXh0dXJlKTsKKyAgICBhY3RpdmVU
ZXh0dXJlKG1fc3RhdGUuYWN0aXZlVGV4dHVyZSk7CiAgICAgaWYgKG1fc3RhdGUuYm91bmRGQk8g
IT0gbV9mYm8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhpY3NDb250ZXh0
M0Q6OkZSQU1FQlVGRkVSLCBtX3N0YXRlLmJvdW5kRkJPKTsKICAgICA6OmdsRmluaXNoKCk7CkBA
IC0yMDEsMTQgKzIwMSwxNCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUmVuZGVyaW5n
UmVzdWx0cyh1bnNpZ25lZCBjaGFyICpwaXhlbHMsIGludCBwaXhlbHNTaQogICAgIGJvb2wgbXVz
dFJlc3RvcmVQYWNrQWxpZ25tZW50ID0gZmFsc2U7CiAgICAgOjpnbEdldEludGVnZXJ2KEdMX1BB
Q0tfQUxJR05NRU5ULCAmcGFja0FsaWdubWVudCk7CiAgICAgaWYgKHBhY2tBbGlnbm1lbnQgPiA0
KSB7Ci0gICAgICAgIDo6Z2xQaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgNCk7CisgICAg
ICAgIHBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5ULCA0KTsKICAgICAgICAgbXVzdFJlc3Rv
cmVQYWNrQWxpZ25tZW50ID0gdHJ1ZTsKICAgICB9CiAKICAgICByZWFkUGl4ZWxzQW5kQ29udmVy
dFRvQkdSQUlmTmVjZXNzYXJ5KDAsIDAsIG1fY3VycmVudFdpZHRoLCBtX2N1cnJlbnRIZWlnaHQs
IHBpeGVscyk7CiAKICAgICBpZiAobXVzdFJlc3RvcmVQYWNrQWxpZ25tZW50KQotICAgICAgICA6
OmdsUGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQsIHBhY2tBbGlnbm1lbnQpOworICAgICAg
ICBwaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVOVCwgcGFja0FsaWdubWVudCk7CiAKICAgICBp
ZiAobXVzdFJlc3RvcmVGQk8pCiAgICAgICAgIDo6Z2xCaW5kRnJhbWVidWZmZXJFWFQoR3JhcGhp
Y3NDb250ZXh0M0Q6OkZSQU1FQlVGRkVSLCBtX3N0YXRlLmJvdW5kRkJPKTsKQEAgLTMwMCw2ICsz
MDAsOSBAQCBJbnRTaXplIEdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbnRlcm5hbEZyYW1lYnVmZmVy
U2l6ZSgpIGNvbnN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmFjdGl2ZVRleHR1cmUoR0Mz
RGVudW0gdGV4dHVyZSkKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBkYXRlQWN0aXZlVGV4dHVyZUNh
Y2hlKHRleHR1cmUpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICBtX3N0YXRlLmFjdGl2ZVRleHR1cmUgPSB0ZXh0dXJlOwogICAgIDo6Z2xBY3RpdmVU
ZXh0dXJlKHRleHR1cmUpOwpAQCAtMzgwLDYgKzM4Myw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
M0Q6OmJsZW5kRXF1YXRpb25TZXBhcmF0ZShHQzNEZW51bSBtb2RlUkdCLCBHQzNEZW51bSBtb2Rl
QWxwCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmJsZW5kRnVuYyhHQzNEZW51bSBzZmFjdG9y
LCBHQzNEZW51bSBkZmFjdG9yKQogeworICAgIGlmICghbV9zdGF0ZS51cGRhdGVCbGVuZEZ1bmND
YWNoZShzZmFjdG9yLCBkZmFjdG9yKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRl
eHRDdXJyZW50KCk7CiAgICAgOjpnbEJsZW5kRnVuYyhzZmFjdG9yLCBkZmFjdG9yKTsKIH0gICAg
ICAgCkBAIC01MjksNiArNTM1LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhGdW5j
KEdDM0RlbnVtIGZ1bmMpCiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFzayhHQzNE
Ym9vbGVhbiBmbGFnKQogeworICAgIGlmICghbV9zdGF0ZS51cGRhdGVEZXB0aE1hc2tDYWNoZShm
bGFnKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAg
OjpnbERlcHRoTWFzayhmbGFnKTsKIH0KQEAgLTU0Myw2ICs1NTIsOSBAQCB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjpkZXRhY2hTaGFkZXIoUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtLCBQbGF0Zm9y
bTNET2JqZWN0CiAKIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRpc2FibGUoR0MzRGVudW0gY2Fw
KQogeworICAgIGlmICghbV9zdGF0ZS51cGRhdGVDYXBhYmlsaXR5Q2FjaGUoY2FwLCBHcmFwaGlj
c0NvbnRleHQzRFN0YXRlOjpDYXBhYmlsaXR5RGlzYWJsZWQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsRGlzYWJsZShjYXApOwogfQpAQCAt
NTY3LDYgKzU3OSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmRyYXdFbGVtZW50cyhHQzNE
ZW51bSBtb2RlLCBHQzNEc2l6ZWkgY291bnQsIEdDM0RlbnVtIHR5CiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OmVuYWJsZShHQzNEZW51bSBjYXApCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0
ZUNhcGFiaWxpdHlDYWNoZShjYXAsIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OkNhcGFiaWxpdHlF
bmFibGVkKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAg
ICAgOjpnbEVuYWJsZShjYXApOwogfQpAQCAtNzcxLDYgKzc4NiwxMCBAQCBHQzNEYm9vbGVhbiBH
cmFwaGljc0NvbnRleHQzRDo6aXNCdWZmZXIoUGxhdGZvcm0zRE9iamVjdCBidWZmZXIpCiAKIEdD
M0Rib29sZWFuIEdyYXBoaWNzQ29udGV4dDNEOjppc0VuYWJsZWQoR0MzRGVudW0gY2FwKQogewor
ICAgIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OkNhcGFiaWxpdHlTdGF0ZSBzdGF0ZSA9IG1fc3Rh
dGUuZ2V0Q2FwYWJpbGl0eVN0YXRlKGNhcCk7CisgICAgaWYgKHN0YXRlICE9IEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OkNhcGFiaWxpdHlVbmtub3duKQorICAgICAgICByZXR1cm4gc3RhdGUgPT0g
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Q2FwYWJpbGl0eUVuYWJsZWQgPyB0cnVlIDogZmFsc2U7
CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICByZXR1cm4gOjpnbElzRW5hYmxlZChj
YXApOwogfQpAQCAtODM1LDYgKzg1NCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OmxpbmtQ
cm9ncmFtKFBsYXRmb3JtM0RPYmplY3QgcHJvZ3JhbSkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6cGl4ZWxTdG9yZWkoR0MzRGVudW0gcG5hbWUsIEdDM0RpbnQgcGFyYW0pCiB7CisgICAgaWYg
KCFtX3N0YXRlLnVwZGF0ZVBpeGVsU3RvcmVpQ2FjaGUocG5hbWUsIHBhcmFtKSkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFBpeGVsU3RvcmVp
KHBuYW1lLCBwYXJhbSk7CiB9CkBAIC04NTMsNiArODc1LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6c2FtcGxlQ292ZXJhZ2UoR0MzRGNsYW1wZiB2YWx1ZSwgR0MzRGJvb2xlYW4gaW52ZXJ0
KQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29yKEdDM0RpbnQgeCwgR0MzRGludCB5
LCBHQzNEc2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpCiB7CisgICAgaWYgKCFtX3N0YXRl
LnVwZGF0ZVNjaXNzb3JDYWNoZSh4LCB5LCB3aWR0aCwgaGVpZ2h0KSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgbWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFNjaXNzb3IoeCwgeSwgd2lk
dGgsIGhlaWdodCk7CiB9CkBAIC04NzIsNiArODk3LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQz
RDo6c2hhZGVyU291cmNlKFBsYXRmb3JtM0RPYmplY3Qgc2hhZGVyLCBjb25zdCBTdHJpbmcmIHN0
cmkKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbEZ1bmMoR0MzRGVudW0gZnVuYywg
R0MzRGludCByZWYsIEdDM0R1aW50IG1hc2spCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZVN0
ZW5jaWxGdW5jQ2FjaGUoZnVuYywgcmVmLCBtYXNrKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bWFrZUNvbnRleHRDdXJyZW50KCk7CiAgICAgOjpnbFN0ZW5jaWxGdW5jKGZ1bmMsIHJlZiwgbWFz
ayk7CiB9CkBAIC04OTYsNiArOTI0LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNp
bE1hc2tTZXBhcmF0ZShHQzNEZW51bSBmYWNlLCBHQzNEdWludCBtYXNrKQogCiB2b2lkIEdyYXBo
aWNzQ29udGV4dDNEOjpzdGVuY2lsT3AoR0MzRGVudW0gZmFpbCwgR0MzRGVudW0gemZhaWwsIEdD
M0RlbnVtIHpwYXNzKQogeworICAgIGlmICghbV9zdGF0ZS51cGRhdGVTdGVuY2lsT3BDYWNoZShm
YWlsLCB6ZmFpbCwgenBhc3MpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbE9wKGZhaWwsIHpmYWlsLCB6cGFzcyk7CiB9CkBAIC0x
MTExLDYgKzExNDIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjp2ZXJ0ZXhBdHRyaWJQb2lu
dGVyKEdDM0R1aW50IGluZGV4LCBHQzNEaW50IHNpemUsIEdDM0RlbgogCiB2b2lkIEdyYXBoaWNz
Q29udGV4dDNEOjp2aWV3cG9ydChHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRo
LCBHQzNEc2l6ZWkgaGVpZ2h0KQogeworICAgIGlmICghbV9zdGF0ZS51cGRhdGVWaWV3cG9ydENh
Y2hlKHgsIHksIHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29u
dGV4dEN1cnJlbnQoKTsKICAgICA6OmdsVmlld3BvcnQoeCwgeSwgd2lkdGgsIGhlaWdodCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4
dHVyZU1hcHBlckdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwCmluZGV4IDE1NTRmMDA4Mjk1NDI2OWRkYTFlMWJlNTNjOWU2
NzA4NDc0YTA4MGYuLjk1MzIwNzU3NjM0MzFhYmFhM2I3MGRjY2E1MzdmMzczMzRhYjg5ZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1h
cC9UZXh0dXJlTWFwcGVyR0wuY3BwCkBAIC0yNzgsNiArMjc4LDcgQEAgVGV4dHVyZU1hcHBlckdM
OjpDbGlwU3RhY2smIFRleHR1cmVNYXBwZXJHTDo6Y2xpcFN0YWNrKCkKIAogdm9pZCBUZXh0dXJl
TWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcoUGFpbnRGbGFncyBmbGFncykKIHsKKyAgICBtX2NvbnRl
eHQzRC0+c2V0SXNQYWludGluZyh0cnVlKTsKICAgICBtX2NvbnRleHQzRC0+Z2V0SW50ZWdlcnYo
R3JhcGhpY3NDb250ZXh0M0Q6OkNVUlJFTlRfUFJPR1JBTSwgJmRhdGEoKS5wcmV2aW91c1Byb2dy
YW0pOwogICAgIGRhdGEoKS5wcmV2aW91c1NjaXNzb3JTdGF0ZSA9IG1fY29udGV4dDNELT5pc0Vu
YWJsZWQoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNTT1JfVEVTVCk7CiAgICAgZGF0YSgpLnByZXZp
b3VzRGVwdGhTdGF0ZSA9IG1fY29udGV4dDNELT5pc0VuYWJsZWQoR3JhcGhpY3NDb250ZXh0M0Q6
OkRFUFRIX1RFU1QpOwpAQCAtMzIwLDYgKzMyMSw3IEBAIHZvaWQgVGV4dHVyZU1hcHBlckdMOjpl
bmRQYWludGluZygpCiAgICAgZWxzZQogICAgICAgICBtX2NvbnRleHQzRC0+ZGlzYWJsZShHcmFw
aGljc0NvbnRleHQzRDo6REVQVEhfVEVTVCk7CiAKKyAgICBtX2NvbnRleHQzRC0+c2V0SXNQYWlu
dGluZyhmYWxzZSk7CiAjaWYgUExBVEZPUk0oUVQpCiAgICAgaWYgKCFtX2NvbnRleHQpCiAgICAg
ICAgIHJldHVybjsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192452</attachid>
            <date>2013-03-11 05:54:04 -0700</date>
            <delta_ts>2013-03-13 23:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130311085002.patch</filename>
            <type>text/plain</type>
            <size>26969</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MzU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZjNzgzMjJlMDlmM2Yy
NzlmNDA0MDUwMWNkZmZmZDY4YWFlY2ViZC4uN2NiMjg3MTkxNTg3NjJkMzNkZTlhMGVlMWIzMDAx
Y2YxMmVmNjg5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEzLTAzLTA4ICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KKwor
ICAgICAgICBBZGQgc3RhdGUgY2FjaGUgdmFyaWFibGVzIHRvIGF2b2lkIHJlZHVuZGFudCBjaGFu
Z2VzIG9uIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm9maWxpbmcgRUZMJ3MgTWluaUJyb3dzZXIgdW5kZXIgZ0RFQnVn
Z2VyIGRldGVjdGVkIHF1aXRlIHNvbWUgc3RhdGUKKyAgICAgICAgY2hhbmdlIGZ1bmN0aW9uIGNh
bGxzIHdlcmUgcmVkdW5kYW50LiBUaGlzIHBhdGNoIGludGVuZHMgdG8gYWRkIG1vcmUKKyAgICAg
ICAgc3RhdGUgdmFyaWFibGVzIGluc2lkZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGF2b2lk
IHJlZHVuZGFudCBzdGF0ZQorICAgICAgICBjaGFuZ2VzLiBUaGUgY2FjaGVkIHZhbHVlcyBhcmUg
dXNlZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgcmVkdWNlIHJlZHVu
ZGFudCBzdGF0ZSB0cmFuc2l0aW9ucyAoc3RhdGUgY2FjaGluZyBpcyBkaXNhYmxlZCBieSBkZWZh
dWx0KS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0aHVzIGNvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAq
IFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICBBZGRlZCBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggdG8gYnVpbGQgc3lzdGVt
IGZpbGVzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0Qu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzZXRJc1BhaW50aW5nKTog
QWRkZWQuCisgICAgICAgIChHcmFwaGljc0NvbnRleHQzRCk6IE1vdmVkIEdyYXBoaWNzQ29udGV4
dDNEU3RhdGUgdG8gc3BlY2lmaWMgaGVhZGVyLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQzRFN0YXRlOjpzZXRJc1BhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OnJlc2V0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RTdGF0ZTo6dXBkYXRlQWN0aXZlVGV4dHVyZUNhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6
OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZUJsZW5kRnVuY0NhY2hlKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZURlcHRoTWFza0NhY2hlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZVNjaXNzb3JD
YWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVT
dGVuY2lsRnVuY0NhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OnVwZGF0ZVN0ZW5jaWxPcENhY2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OnVwZGF0ZVZpZXdwb3J0Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlUGl4ZWxTdG9yZWlDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpnZXRDYXBhYmlsaXR5U3RhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlQ2FwYWJpbGl0eUNh
Y2hlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVzZXNDYWNo
ZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpDYWNoZURhdGE6
OkNhY2hlRGF0YSk6CisgICAgICAgIEFkZGVkIHN0YXRlIGNhY2hlIHZhcmlhYmxlcyBhbmQgcmVk
dW5kYW5jeSBjaGVjayBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9l
ZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzQ29udGV4dDNEUHJpdmF0ZTo6cHJlcGFyZUJ1ZmZlcik6CisgICAgICAgIFJlbW92ZWQgRklY
TUUgb24gY2FjaGluZyBzY2lzc29yIHRlc3Qgc3RhdGVzLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSk6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHMpOgorICAg
ICAgICBVc2UgR3JhcGhpY3NDb250ZXh0M0QgZnVuY3Rpb25zIGluc3RlYWQgb2YgZGlyZWN0IEdM
IGNhbGxzIHRvIGtlZXAgc3RhdGUKKyAgICAgICAgY2FjaGUgdmFyaWFibGVzIGNvbnNpc3RlbnQu
CisKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjphY3RpdmVUZXh0dXJlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpibGVuZEZ1bmMpOgorICAgICAg
ICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmRlcHRoTWFzayk6CisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFw
aGljc0NvbnRleHQzRDo6ZW5hYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dDNEOjppc0VuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnBp
eGVsU3RvcmVpKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzY2lzc29y
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c3RlbmNpbE9wKToKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjp2aWV3cG9ydCk6CisgICAgICAgIEFkZGVkIHJl
ZHVuZGFuY3kgY2hlY2sgb24gZWFjaCBvZiB0aGVzZSB0byByZXR1cm4gZWFybHkgaWYgdGhlIHZh
bHVlCisgICAgICAgIG1hdGNoZXMgdGhlIHByZXZpb3VzIHNldC4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJlTWFwcGVyR0wuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6VGV4dHVyZU1hcHBlckdMOjpiZWdpblBhaW50aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXJHTDo6ZW5kUGFpbnRpbmcpOgorICAgICAgICBVcGRhdGUgdGhlIGdyYXBoaWNz
IGNvbnRleHQgd2hlbiBiZWdpbm5pbmcgYW5kIGVuZGluZyBwYWludGluZyB1c2luZworICAgICAg
ICBzZXRJc1BhaW50aW5nKCksIHNvIHdlIGNhbiBrZWVwIHRyYWNrIHdoZW4gdG8gY2FjaGUgc3Rh
dGUgdmFyaWFibGVzLgorCiAyMDEzLTAzLTExICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTQ1MzQ5
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMzA4NzdkNjU4MmQyMGI4OTQ5YjAz
YTcyZGQxMmU5NjA1NjY4M2U1MC4uYzJkYTBhMjM4ZGM2MzkzZGFlNTA0NThiZGMzODAxMThkY2M3
NWE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NjQ3LDYgKzU2NDcsNyBA
QCB3ZWJjb3JlX3BsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IDI0NGJjYjFh
MzBjZjc3YTcwNmIyMTJmZmRmZjU2ZjM4OTA5MzMwOWYuLmJjZTQyYWUyNjViODI0MWZlMmQ4MWZj
MjhjNGNjNjhhMDNjNGUzN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkK
KysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDEwNyw2ICs0MTA3LDcgQEAgdXNl
PygzRF9HUkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9jcHUvYXJtL0dyYXBo
aWNzQ29udGV4dDNETkVPTi5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJL
aXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0V4dGVuc2lvbnMzRC5oIFwK
KyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIFwKICAg
ICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBcCiAgICAgICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggXAogICAgICAgICBwbGF0Zm9ybS9n
cmFwaGljcy9ncHUvVGV4dHVyZS5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNjUxZDI2Y2YyYjA1MzU5YzNiOTI3NTRkZmQ2
OTQzMDYxODUzMzRiLi5mMzFjNjYxMWUyZjliZGMyOGIxNDQ2N2I3NDQxNzNlOTI1Y2UxNjRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC0xMzc3LDYgKzEzNzcsNyBAQAogCQk0OUM3QjlFNTEwNDJEMzJGMDAwOUQ0NDcgLyogV2Vi
R0xUZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQ5QzdCOUM1MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUuY3BwICovOyB9Owog
CQk0OUM3QjlFNjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xUZXh0dXJlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlDNjEwNDJEMzJGMDAwOUQ0
NDcgLyogV2ViR0xUZXh0dXJlLmggKi87IH07CiAJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAv
KiBHcmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDlDN0I5RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNE
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDlD
N0I5RkMxMDQyRDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUZCMTA0MkQzNjUw
MDA5RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDlDN0JBNzkxMDQyRUZBRTAwMDlENDQ3IC8q
IE9wZW5HTC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA0OUM3QkE3ODEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZyYW1ld29yayAq
LzsgfTsKIAkJNDlDN0JBOEQxMDQyRjVCMTAwMDlENDQ3IC8qIEpTRG9jdW1lbnRDdXN0b20uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0JBOEMx
MDQyRjVCMTAwMDlENDQ3IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQk0OUQ1REMy
QjBGNDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlENURDMjcwRjQyM0E3
MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCAqLzsgfTsKQEAgLTg4
MjksNiArODgzMCw3IEBACiAJCTQ5QzdCOUM2MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1
cmUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xUZXh0dXJlLmg7IHBh
dGggPSBjYW52YXMvV2ViR0xUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTQ5QzdCOUM3MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgbmFtZSA9IFdlYkdMVGV4dHVyZS5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xUZXh0dXJl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5RkIxMDQyRDM2NTAwMDlE
NDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEdyYXBoaWNzQ29udGV4dDNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5
QzdCOUZCMTA0MkQzNjUwMDA5RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0JBNzgxMDQyRUZBRTAwMDlENDQ3IC8qIE9w
ZW5HTC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IE9wZW5HTC5mcmFtZXdvcms7IHBhdGgg
PSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrOyBzb3VyY2VUcmVl
ID0gIjxhYnNvbHV0ZT4iOyB9OwogCQk0OUM3QkE4QzEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1
bWVudEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0Rv
Y3VtZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlENURDMjcw
RjQyM0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9u
LmNwcDsgcGF0aCA9IHRyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjA3NDksNiArMjA3NTEsNyBAQAogCQkJCUIy
QTAxNTkzMEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCAqLywKIAkJCQk2RTIx
QzZCRjExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovLAogCQkJCTQ5
QzdCOUZCMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5oICovLAorCQkJCTQ5
QzdCOUZCMTA0MkQzNjUwMDA5RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggKi8sCiAJ
CQkJMEY1ODBCMDkwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuY3BwICovLAogCQkJ
CTBGNTgwQjBBMEYxMkEyNjkwMDUxRDY4OSAvKiBHcmFwaGljc0xheWVyLmggKi8sCiAJCQkJMEY1
ODBCMEIwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXJDbGllbnQuaCAqLywKQEAgLTI0
NTg4LDYgKzI0NTkxLDcgQEAKIAkJCQlCMjIyNzk2NDBEMDBCRjIyMDA3MUI3ODIgLyogR3JhZGll
bnRBdHRyaWJ1dGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkEwMTVBOTBBRjZDRDUzMDA2QkNF
MEUgLyogR3JhcGhpY3NDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUM3QjlGQzEwNDJE
MzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0M0QuaCBpbiBIZWFkZXJzICovLAorCQkJCTQ5
QzdCOUZDMTA0MkQzNjUwMDA5RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0
Q0cuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4MEQ2NzA4MEU5RTlERUIwMEU0MjBGMCAvKiBHcmFw
aGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEY1ODBC
MEQwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNzTGF5ZXIuaCBpbiBIZWFkZXJzICovLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
LmgKaW5kZXggZTEyMjhlZmE5Zjg5Y2QxM2QyOTUwNTg2ZDlkMTEyYWNmMGJlNGVjOS4uMjkzYWU0
MzQwNTczYTI5ODM5NWNmNzcwZDY2NWYwNTVmYjdkMGEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCkBAIC0yNiw2ICsy
Niw3IEBACiAjaWZuZGVmIEdyYXBoaWNzQ29udGV4dDNEX2gKICNkZWZpbmUgR3JhcGhpY3NDb250
ZXh0M0RfaAogCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIgogI2luY2x1ZGUg
IkdyYXBoaWNzVHlwZXMzRC5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgpAQCAtODYzLDYgKzg2NCwxMSBAQCBwdWJsaWM6CiAKICAgICBJbnRTaXplIGdldEludGVy
bmFsRnJhbWVidWZmZXJTaXplKCkgY29uc3Q7CiAKKyAgICBpbmxpbmUgdm9pZCBzZXRJc1BhaW50
aW5nKGJvb2wgaXNQYWludGluZykKKyAgICB7CisgICAgICAgIG1fc3RhdGUuc2V0SXNQYWludGlu
Zyhpc1BhaW50aW5nKTsKKyAgICB9CisKICAgICBzdGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRz
QnlBdHRhY2htZW50VHlwZShHQzNEZW51bSk7CiAgICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFy
Qml0c0J5Rm9ybWF0KEdDM0RlbnVtKTsKIApAQCAtMTA4MiwxOCArMTA4OCw2IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsKICAgICBHQzNEdWludCBtX2ludGVybmFsQ29s
b3JGb3JtYXQ7CiAKLSAgICBzdHJ1Y3QgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSB7Ci0gICAgICAg
IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUoKQotICAgICAgICAgICAgOiBib3VuZEZCTygwKQotICAg
ICAgICAgICAgLCBhY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4dDNEOjpURVhUVVJFMCkKLSAg
ICAgICAgICAgICwgYm91bmRUZXh0dXJlMCgwKQotICAgICAgICB7IH0KLQotICAgICAgICBHQzNE
dWludCBib3VuZEZCTzsKLSAgICAgICAgR0MzRGVudW0gYWN0aXZlVGV4dHVyZTsKLSAgICAgICAg
R0MzRHVpbnQgYm91bmRUZXh0dXJlMDsKLSAgICB9OwotCiAgICAgR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZSBtX3N0YXRlOwogCiAgICAgLy8gRm9yIG11bHRpc2FtcGxpbmcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yYmMzNDc3ZDlhNDUwMTk5YTRjMDBmYjVlOTA4ZmNiYzNlYjBkYzk0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0RTdGF0ZS5oCkBAIC0wLDAgKzEsMzAzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmljcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9n
cmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBH
cmFwaGljc0NvbnRleHQzRFN0YXRlX2gKKyNkZWZpbmUgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZV9o
CisKKyNpbmNsdWRlICJHcmFwaGljc1R5cGVzM0QuaCIKKyNpbmNsdWRlIDxsaW1pdHMuaD4KKyNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHsKK3B1YmxpYzoK
KyAgICBlbnVtIENhY2hlVHlwZSB7CisgICAgICAgIERvTm90VXNlQ2FjaGUgPSAwLAorICAgICAg
ICBVc2VDYWNoZUlmUGFpbnRpbmcsCisgICAgICAgIFVzZUNhY2hlQWx3YXlzCisgICAgfTsKKwor
ICAgIGVudW0gQ2FwYWJpbGl0eVN0YXRlIHsKKyAgICAgICAgQ2FwYWJpbGl0eVVua25vd24gPSAw
LAorICAgICAgICBDYXBhYmlsaXR5RW5hYmxlZCwKKyAgICAgICAgQ2FwYWJpbGl0eURpc2FibGVk
CisgICAgfTsKKworICAgIHR5cGVkZWYgSGFzaE1hcDxHQzNEZW51bSwgR0MzRGludD4gUGl4ZWxT
dG9yZUludE1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8R0MzRGVudW0sIENhcGFiaWxpdHlTdGF0
ZT4gQ2FwYWJpbGl0eU1hcDsKKworICAgIC8vIENhY2hlIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQu
CisgICAgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZShDYWNoZVR5cGUgY2FjaGVUeXBlID0gRG9Ob3RV
c2VDYWNoZSkKKyAgICAgICAgOiBhY3RpdmVUZXh0dXJlKDB4ODRDMCkgLy8gVEVYVFVSRTAKKyAg
ICAgICAgLCBib3VuZEZCTygwKQorICAgICAgICAsIGJvdW5kVGV4dHVyZTAoMCkKKyAgICAgICAg
LCBpc1BhaW50aW5nKGZhbHNlKQorICAgICAgICAsIGNhY2hlVHlwZShjYWNoZVR5cGUpCisgICAg
ICAgICwgY2FjaGVEYXRhKGFkb3B0UHRyKGNhY2hlVHlwZSA9PSBEb05vdFVzZUNhY2hlID8gMCA6
IG5ldyBDYWNoZURhdGEoKSkpCisgICAgeyB9CisKKyAgICBHQzNEZW51bSBhY3RpdmVUZXh0dXJl
OworICAgIEdDM0R1aW50IGJvdW5kRkJPOworICAgIEdDM0R1aW50IGJvdW5kVGV4dHVyZTA7CisK
KyAgICB2b2lkIHNldElzUGFpbnRpbmcoYm9vbCBpc1BhaW50aW5nKQorICAgIHsKKyAgICAgICAg
aWYgKHRoaXMtPmlzUGFpbnRpbmcgPT0gaXNQYWludGluZykKKyAgICAgICAgICAgIHJldHVybjsK
KworICAgICAgICB0aGlzLT5pc1BhaW50aW5nID0gaXNQYWludGluZzsKKyAgICAgICAgLy8gV2Ug
bmVlZCB0byBvYnRhaW4gdGhlIHN0YXRlIHZhbHVlcyBmcm9tIEdMIGFzIHRoZXkgbWlnaHQgaGF2
ZSBjaGFuZ2VkIGVsc2V3aGVyZS4KKyAgICAgICAgaWYgKGlzUGFpbnRpbmcgJiYgY2FjaGVUeXBl
ID09IFVzZUNhY2hlSWZQYWludGluZykKKyAgICAgICAgICAgIHJlc2V0Q2FjaGUoKTsKKyAgICB9
CisKKyAgICAvLyBUaGUgY2FjaGVkIHZhbHVlcyBiZWxvdyBhcmUgdXNlZCBieSBzb21lLCBidXQg
bm90IGFsbCwgcG9ydHMgdG8KKyAgICAvLyByZWR1Y2UgcmVkdW5kYW50IHN0YXRlIHRyYW5zaXRp
b25zLiBEbyBub3QgcmVseSBvbiB0aGVpciBiZWluZworICAgIC8vIHVwLXRvLWRhdGUgaW4gY29t
bW9uIGNvZGUuCisKKyAgICB2b2lkIHJlc2V0Q2FjaGUoKQorICAgIHsKKyAgICAgICAgY2FjaGVE
YXRhLT5pc0JsZW5kRnVuY0NhY2hlRGlydHkgPSB0cnVlOworICAgICAgICBjYWNoZURhdGEtPmlz
RGVwdGhNYXNrQ2FjaGVEaXJ0eSA9IHRydWU7CisgICAgICAgIGNhY2hlRGF0YS0+aXNTY2lzc29y
Q2FjaGVEaXJ0eSA9IHRydWU7CisgICAgICAgIGNhY2hlRGF0YS0+aXNTdGVuY2lsRnVuY0NhY2hl
RGlydHkgPSB0cnVlOworICAgICAgICBjYWNoZURhdGEtPmlzU3RlbmNpbE9wQ2FjaGVEaXJ0eSA9
IHRydWU7CisgICAgICAgIGNhY2hlRGF0YS0+aXNWaWV3cG9ydENhY2hlRGlydHkgPSB0cnVlOwor
ICAgICAgICBjYWNoZURhdGEtPnBpeGVsU3RvcmVJbnRNYXAuY2xlYXIoKTsKKyAgICAgICAgY2Fj
aGVEYXRhLT5jYXBhYmlsaXRpZXNNYXAuY2xlYXIoKTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0
ZUJsZW5kRnVuY0NhY2hlKEdDM0RlbnVtIHNvdXJjZUZhY3RvciwgR0MzRGVudW0gZGVzdGluYXRp
b25GYWN0b3IpCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNCbGVuZEZ1bmNDYWNoZURp
cnR5KQorICAgICAgICAgICAgY2FjaGVEYXRhLT5pc0JsZW5kRnVuY0NhY2hlRGlydHkgPSBmYWxz
ZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5zb3VyY2VGYWN0b3IgPT0gc291cmNlRmFj
dG9yICYmIGNhY2hlRGF0YS0+ZGVzdGluYXRpb25GYWN0b3IgPT0gZGVzdGluYXRpb25GYWN0b3Ip
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgY2FjaGVEYXRhLT5zb3VyY2VG
YWN0b3IgPSBzb3VyY2VGYWN0b3I7CisgICAgICAgIGNhY2hlRGF0YS0+ZGVzdGluYXRpb25GYWN0
b3IgPSBkZXN0aW5hdGlvbkZhY3RvcjsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisg
ICAgYm9vbCB1cGRhdGVEZXB0aE1hc2tDYWNoZShHQzNEYm9vbGVhbiBkZXB0aE1hc2spCisgICAg
eworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisK
KyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNEZXB0aE1hc2tDYWNoZURpcnR5KQorICAgICAgICAg
ICAgY2FjaGVEYXRhLT5pc0RlcHRoTWFza0NhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxz
ZSBpZiAoY2FjaGVEYXRhLT5kZXB0aE1hc2sgPT0gZGVwdGhNYXNrKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGNhY2hlRGF0YS0+ZGVwdGhNYXNrID0gZGVwdGhNYXNrOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0ZVNjaXNzb3JDYWNo
ZShHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVpZ2h0
KQorICAgIHsKKyAgICAgICAgaWYgKCF1c2VzQ2FjaGUoKSkKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgICAgIGlmIChjYWNoZURhdGEtPmlzU2Npc3NvckNhY2hlRGlydHkpCisgICAg
ICAgICAgICBjYWNoZURhdGEtPmlzU2Npc3NvckNhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAg
ZWxzZSBpZiAoY2FjaGVEYXRhLT5zY2lzc29yWCA9PSB4ICYmIGNhY2hlRGF0YS0+c2Npc3Nvclkg
PT0geSAmJiBjYWNoZURhdGEtPnNjaXNzb3JXaWR0aCA9PSB3aWR0aCAmJiBjYWNoZURhdGEtPnNj
aXNzb3JIZWlnaHQgPT0gaGVpZ2h0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
ICAgIGNhY2hlRGF0YS0+c2Npc3NvclggPSB4OworICAgICAgICBjYWNoZURhdGEtPnNjaXNzb3JZ
ID0geTsKKyAgICAgICAgY2FjaGVEYXRhLT5zY2lzc29yV2lkdGggPSB3aWR0aDsKKyAgICAgICAg
Y2FjaGVEYXRhLT5zY2lzc29ySGVpZ2h0ID0gaGVpZ2h0OworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBib29sIHVwZGF0ZVN0ZW5jaWxGdW5jQ2FjaGUoR0MzRGVudW0gZnVuYywg
R0MzRGludCByZWYsIEdDM0R1aW50IG1hc2spCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNo
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+
aXNTdGVuY2lsRnVuY0NhY2hlRGlydHkpCisgICAgICAgICAgICBjYWNoZURhdGEtPmlzU3RlbmNp
bEZ1bmNDYWNoZURpcnR5ID0gZmFsc2U7CisgICAgICAgIGVsc2UgaWYgKGNhY2hlRGF0YS0+c3Rl
bmNpbEZ1bmMgPT0gZnVuYyAmJiBjYWNoZURhdGEtPnN0ZW5jaWxSZWYgPT0gcmVmICYmIGNhY2hl
RGF0YS0+c3RlbmNpbE1hc2sgPT0gbWFzaykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBjYWNoZURhdGEtPnN0ZW5jaWxGdW5jID0gZnVuYzsKKyAgICAgICAgY2FjaGVEYXRh
LT5zdGVuY2lsUmVmID0gcmVmOworICAgICAgICBjYWNoZURhdGEtPnN0ZW5jaWxNYXNrID0gbWFz
azsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCB1cGRhdGVTdGVuY2ls
T3BDYWNoZShHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpCisg
ICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisKKyAgICAgICAgaWYgKGNhY2hlRGF0YS0+aXNTdGVuY2lsT3BDYWNoZURpcnR5KQorICAgICAg
ICAgICAgY2FjaGVEYXRhLT5pc1N0ZW5jaWxPcENhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAg
ZWxzZSBpZiAoY2FjaGVEYXRhLT5zdGVuY2lsRmFpbCA9PSBmYWlsICYmIGNhY2hlRGF0YS0+c3Rl
bmNpbFpGYWlsID09IHpmYWlsICYmIGNhY2hlRGF0YS0+c3RlbmNpbFpQYXNzID09IHpwYXNzKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNhY2hlRGF0YS0+c3RlbmNpbEZh
aWwgPSBmYWlsOworICAgICAgICBjYWNoZURhdGEtPnN0ZW5jaWxaRmFpbCA9IHpmYWlsOworICAg
ICAgICBjYWNoZURhdGEtPnN0ZW5jaWxaUGFzcyA9IHpwYXNzOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisKKyAgICBib29sIHVwZGF0ZVZpZXdwb3J0Q2FjaGUoR0MzRGludCB4LCBHQzNE
aW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKKyAgICB7CisgICAgICAg
IGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBp
ZiAoY2FjaGVEYXRhLT5pc1ZpZXdwb3J0Q2FjaGVEaXJ0eSkKKyAgICAgICAgICAgIGNhY2hlRGF0
YS0+aXNWaWV3cG9ydENhY2hlRGlydHkgPSBmYWxzZTsKKyAgICAgICAgZWxzZSBpZiAoY2FjaGVE
YXRhLT52aWV3cG9ydFggPT0geCAmJiBjYWNoZURhdGEtPnZpZXdwb3J0WSA9PSB5ICYmIGNhY2hl
RGF0YS0+dmlld3BvcnRXaWR0aCA9PSB3aWR0aCAmJiBjYWNoZURhdGEtPnZpZXdwb3J0SGVpZ2h0
ID09IGhlaWdodCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBjYWNoZURh
dGEtPnZpZXdwb3J0WCA9IHg7CisgICAgICAgIGNhY2hlRGF0YS0+dmlld3BvcnRZID0geTsKKyAg
ICAgICAgY2FjaGVEYXRhLT52aWV3cG9ydFdpZHRoID0gd2lkdGg7CisgICAgICAgIGNhY2hlRGF0
YS0+dmlld3BvcnRIZWlnaHQgPSBoZWlnaHQ7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGJvb2wgdXBkYXRlUGl4ZWxTdG9yZWlDYWNoZShHQzNEZW51bSBwbmFtZSwgR0MzRGlu
dCBwYXJhbSkKKyAgICB7CisgICAgICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKworICAgICAgICBQaXhlbFN0b3JlSW50TWFwOjppdGVyYXRvciBpdCA9IGNh
Y2hlRGF0YS0+cGl4ZWxTdG9yZUludE1hcC5maW5kKHBuYW1lKTsKKyAgICAgICAgaWYgKGl0ICE9
IGNhY2hlRGF0YS0+cGl4ZWxTdG9yZUludE1hcC5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gcGFyYW0p
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGNhY2hlRGF0YS0+cGl4ZWxTdG9y
ZUludE1hcC5zZXQocG5hbWUsIHBhcmFtKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
CisgICAgQ2FwYWJpbGl0eVN0YXRlIGdldENhcGFiaWxpdHlTdGF0ZShHQzNEZW51bSBjYXApCisg
ICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAgcmV0dXJuIENhcGFi
aWxpdHlVbmtub3duOworCisgICAgICAgIENhcGFiaWxpdHlNYXA6Oml0ZXJhdG9yIGl0ID0gY2Fj
aGVEYXRhLT5jYXBhYmlsaXRpZXNNYXAuZmluZChjYXApOworICAgICAgICBpZiAoaXQgPT0gY2Fj
aGVEYXRhLT5jYXBhYmlsaXRpZXNNYXAuZW5kKCkpCisgICAgICAgICAgICByZXR1cm4gQ2FwYWJp
bGl0eVVua25vd247CisKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKyAgICB9CisKKyAgICBi
b29sIHVwZGF0ZUNhcGFiaWxpdHlDYWNoZShHQzNEZW51bSBjYXAsIENhcGFiaWxpdHlTdGF0ZSBp
c0VuYWJsZWQpCisgICAgeworICAgICAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICAgICAgQ2FwYWJpbGl0eU1hcDo6aXRlcmF0b3IgaXQgPSBjYWNo
ZURhdGEtPmNhcGFiaWxpdGllc01hcC5maW5kKGNhcCk7CisgICAgICAgIGlmIChpdCAhPSBjYWNo
ZURhdGEtPmNhcGFiaWxpdGllc01hcC5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gaXNFbmFibGVkKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGNhY2hlRGF0YS0+Y2FwYWJpbGl0
aWVzTWFwLnNldChjYXAsIGlzRW5hYmxlZCk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworcHJpdmF0ZToKKyAgICBpbmxpbmUgYm9vbCB1c2VzQ2FjaGUoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGNhY2hlVHlwZSA9PSBVc2VDYWNoZUFsd2F5cyB8fCAoY2FjaGVUeXBlID09
IFVzZUNhY2hlSWZQYWludGluZyAmJiBpc1BhaW50aW5nKTsKKyAgICB9CisKKyAgICBzdHJ1Y3Qg
Q2FjaGVEYXRhIHsKKyAgICAgICAgLy8gVXNlZCBieSBnbEJsZW5kRnVuYy4KKyAgICAgICAgR0Mz
RGVudW0gc291cmNlRmFjdG9yOworICAgICAgICBHQzNEZW51bSBkZXN0aW5hdGlvbkZhY3RvcjsK
KworICAgICAgICAvLyBVc2VkIGJ5IGdsRGVwdGhNYXNrLgorICAgICAgICBHQzNEYm9vbGVhbiBk
ZXB0aE1hc2s7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFNjaXNzb3IuCisgICAgICAgIEdDM0Rp
bnQgc2Npc3Nvclg7CisgICAgICAgIEdDM0RpbnQgc2Npc3Nvclk7CisgICAgICAgIEdDM0RzaXpl
aSBzY2lzc29yV2lkdGg7CisgICAgICAgIEdDM0RzaXplaSBzY2lzc29ySGVpZ2h0OworCisgICAg
ICAgIC8vIFVzZWQgYnkgZ2xTdGVuY2lsRnVuYy4KKyAgICAgICAgR0MzRGVudW0gc3RlbmNpbEZ1
bmM7CisgICAgICAgIEdDM0RpbnQgc3RlbmNpbFJlZjsKKyAgICAgICAgR0MzRHVpbnQgc3RlbmNp
bE1hc2s7CisKKyAgICAgICAgLy8gVXNlZCBieSBnbFN0ZW5jaWxPcC4KKyAgICAgICAgR0MzRGVu
dW0gc3RlbmNpbEZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxaRmFpbDsKKyAgICAgICAg
R0MzRGVudW0gc3RlbmNpbFpQYXNzOworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xWaWV3cG9ydC4K
KyAgICAgICAgR0MzRGludCB2aWV3cG9ydFg7CisgICAgICAgIEdDM0RpbnQgdmlld3BvcnRZOwor
ICAgICAgICBHQzNEc2l6ZWkgdmlld3BvcnRXaWR0aDsKKyAgICAgICAgR0MzRHNpemVpIHZpZXdw
b3J0SGVpZ2h0OworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xQaXhlbFN0b3JlaS4KKyAgICAgICAg
UGl4ZWxTdG9yZUludE1hcCBwaXhlbFN0b3JlSW50TWFwOworCisgICAgICAgIC8vIFVzZWQgYnkg
Z2xFbmFibGUgYW5kIGdsRGlzYWJsZS4KKyAgICAgICAgQ2FwYWJpbGl0eU1hcCBjYXBhYmlsaXRp
ZXNNYXA7CisKKyAgICAgICAgYm9vbCBpc0JsZW5kRnVuY0NhY2hlRGlydHkgOiAxOworICAgICAg
ICBib29sIGlzRGVwdGhNYXNrQ2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNTY2lzc29y
Q2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNTdGVuY2lsRnVuY0NhY2hlRGlydHkgOiAx
OworICAgICAgICBib29sIGlzU3RlbmNpbE9wQ2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wg
aXNWaWV3cG9ydENhY2hlRGlydHkgOiAxOworCisgICAgICAgIENhY2hlRGF0YSgpCisgICAgICAg
ICAgICA6IHNvdXJjZUZhY3RvcigxKSAvLyBPTkUKKyAgICAgICAgICAgICwgZGVzdGluYXRpb25G
YWN0b3IoMCkgLy8gWkVSTworICAgICAgICAgICAgLCBkZXB0aE1hc2sodHJ1ZSkKKyAgICAgICAg
ICAgICwgc2Npc3NvclgoMCkKKyAgICAgICAgICAgICwgc2Npc3NvclkoMCkKKyAgICAgICAgICAg
ICwgc2Npc3NvcldpZHRoKDApCisgICAgICAgICAgICAsIHNjaXNzb3JIZWlnaHQoMCkKKyAgICAg
ICAgICAgICwgc3RlbmNpbEZ1bmMoMHgwMjA3KSAvLyBBTFdBWVMKKyAgICAgICAgICAgICwgc3Rl
bmNpbFJlZigwKQorICAgICAgICAgICAgLCBzdGVuY2lsTWFzayhVSU5UX01BWCkKKyAgICAgICAg
ICAgICwgc3RlbmNpbEZhaWwoMHgxRTAwKSAvLyBLRUVQCisgICAgICAgICAgICAsIHN0ZW5jaWxa
RmFpbCgweDFFMDApIC8vIEtFRVAKKyAgICAgICAgICAgICwgc3RlbmNpbFpQYXNzKDB4MUUwMCkg
Ly8gS0VFUAorICAgICAgICAgICAgLCB2aWV3cG9ydFgoMCkKKyAgICAgICAgICAgICwgdmlld3Bv
cnRZKDApCisgICAgICAgICAgICAsIHZpZXdwb3J0V2lkdGgoMCkKKyAgICAgICAgICAgICwgdmll
d3BvcnRIZWlnaHQoMCkKKyAgICAgICAgICAgICwgaXNCbGVuZEZ1bmNDYWNoZURpcnR5KGZhbHNl
KQorICAgICAgICAgICAgLCBpc0RlcHRoTWFza0NhY2hlRGlydHkoZmFsc2UpCisgICAgICAgICAg
ICAsIGlzU2Npc3NvckNhY2hlRGlydHkoZmFsc2UpCisgICAgICAgICAgICAsIGlzU3RlbmNpbEZ1
bmNDYWNoZURpcnR5KGZhbHNlKQorICAgICAgICAgICAgLCBpc1ZpZXdwb3J0Q2FjaGVEaXJ0eShm
YWxzZSkKKyAgICAgICAgeyB9CisgICAgfTsKKworICAgIGJvb2wgaXNQYWludGluZzsKKyAgICBD
YWNoZVR5cGUgY2FjaGVUeXBlOworICAgIE93blB0cjxDYWNoZURhdGE+IGNhY2hlRGF0YTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdyYXBoaWNzQ29udGV4dDNE
U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCBlYTcyNjliM2Y5
NjUyN2E2NDdmNmNjMTNhMzdiNTJjYjk3YWRmMzdkLi5lN2M2OGIwZDUxNjg2YzY5NjEyZmQzMWQw
NWUxYzZkYjI4NDE3MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAt
MTc3LDcgKzE3Nyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwcmVwYXJlQnVm
ZmVyKCkgY29uc3QKICAgICAgICAgaW50IHdpZHRoID0gbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0
aDsKICAgICAgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0OwogICAg
ICAgICAvLyBXZSBzaG91bGQgY29weSB0aGUgZnVsbCBidWZmZXIsIGFuZCBub3QgcmVzcGVjdCB0
aGUgY3VycmVudCBzY2lzc29yIGJvdW5kcy4KLSAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJl
IG1vcmUgZWZmaWNpZW50IHRvIHRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUgc2Npc3NvciB0ZXN0Lgog
ICAgICAgICBpZiAobV9jb250ZXh0LT5pc0VuYWJsZWQoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNT
T1JfVEVTVCkpIHsKICAgICAgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKICAgICAg
ICAgICAgIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNU
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4
IDM5NjFhNWY3ZWRhYmU0NDQxZjExMTVhNmUyNjljODA4NGFmY2ExNGEuLmMzODI5YTRhNjM2OTlh
NjE1MzM0MGZjZjI2YzBhMTFiZWFjMzhlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjAxLDE0ICsyMDEsMTQgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBp
bnQgcGl4ZWxzU2kKICAgICBib29sIG11c3RSZXN0b3JlUGFja0FsaWdubWVudCA9IGZhbHNlOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9QQUNLX0FMSUdOTUVOVCwgJnBhY2tBbGlnbm1lbnQpOwog
ICAgIGlmIChwYWNrQWxpZ25tZW50ID4gNCkgewotICAgICAgICA6OmdsUGl4ZWxTdG9yZWkoR0xf
UEFDS19BTElHTk1FTlQsIDQpOworICAgICAgICBwaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVO
VCwgNCk7CiAgICAgICAgIG11c3RSZXN0b3JlUGFja0FsaWdubWVudCA9IHRydWU7CiAgICAgfQog
CiAgICAgcmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSgwLCAwLCBtX2N1cnJl
bnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0LCBwaXhlbHMpOwogCiAgICAgaWYgKG11c3RSZXN0b3Jl
UGFja0FsaWdubWVudCkKLSAgICAgICAgOjpnbFBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5U
LCBwYWNrQWxpZ25tZW50KTsKKyAgICAgICAgcGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQs
IHBhY2tBbGlnbm1lbnQpOwogCiAgICAgaWYgKG11c3RSZXN0b3JlRkJPKQogICAgICAgICA6Omds
QmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9zdGF0
ZS5ib3VuZEZCTyk7CkBAIC0zODAsNiArMzgwLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
YmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1vZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHAK
IAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdD
M0RlbnVtIGRmYWN0b3IpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZUJsZW5kRnVuY0NhY2hl
KHNmYWN0b3IsIGRmYWN0b3IpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKICAgICA6OmdsQmxlbmRGdW5jKHNmYWN0b3IsIGRmYWN0b3IpOwogfSAgICAgICAK
QEAgLTUyOSw2ICs1MzIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0Mz
RGVudW0gZnVuYykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZURlcHRoTWFza0NhY2hlKGZsYWcp
KQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6Omds
RGVwdGhNYXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU0OSw5IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZShHQzNEZW51bSBjYXApCiB7
CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZUNhcGFiaWxpdHlDYWNoZShjYXAsIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OkNhcGFiaWxpdHlEaXNhYmxlZCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xEaXNhYmxlKGNhcCk7CiB9CkBAIC01Njcs
NiArNTc2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHkKIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6ZW5hYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBkYXRlQ2Fw
YWJpbGl0eUNhY2hlKGNhcCwgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Q2FwYWJpbGl0eUVuYWJs
ZWQpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6
OmdsRW5hYmxlKGNhcCk7CiB9CkBAIC03NzEsNiArNzgzLDEwIEBAIEdDM0Rib29sZWFuIEdyYXBo
aWNzQ29udGV4dDNEOjppc0J1ZmZlcihQbGF0Zm9ybTNET2JqZWN0IGJ1ZmZlcikKIAogR0MzRGJv
b2xlYW4gR3JhcGhpY3NDb250ZXh0M0Q6OmlzRW5hYmxlZChHQzNEZW51bSBjYXApCiB7CisgICAg
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Q2FwYWJpbGl0eVN0YXRlIHN0YXRlID0gbV9zdGF0ZS5n
ZXRDYXBhYmlsaXR5U3RhdGUoY2FwKTsKKyAgICBpZiAoc3RhdGUgIT0gR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZTo6Q2FwYWJpbGl0eVVua25vd24pCisgICAgICAgIHJldHVybiBzdGF0ZSA9PSBHcmFw
aGljc0NvbnRleHQzRFN0YXRlOjpDYXBhYmlsaXR5RW5hYmxlZCA/IHRydWUgOiBmYWxzZTsKKwog
ICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHJldHVybiA6OmdsSXNFbmFibGVkKGNhcCk7
CiB9CkBAIC04MzUsNiArODUxLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6bGlua1Byb2dy
YW0oUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpw
aXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkKIHsKKyAgICBpZiAoIW1f
c3RhdGUudXBkYXRlUGl4ZWxTdG9yZWlDYWNoZShwbmFtZSwgcGFyYW0pKQorICAgICAgICByZXR1
cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsUGl4ZWxTdG9yZWkocG5h
bWUsIHBhcmFtKTsKIH0KQEAgLTg1Myw2ICs4NzIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpzYW1wbGVDb3ZlcmFnZShHQzNEY2xhbXBmIHZhbHVlLCBHQzNEYm9vbGVhbiBpbnZlcnQpCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBk
YXRlU2Npc3NvckNhY2hlKHgsIHksIHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU2Npc3Nvcih4LCB5LCB3aWR0aCwg
aGVpZ2h0KTsKIH0KQEAgLTg3Miw2ICs4OTQsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpz
aGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIGNvbnN0IFN0cmluZyYgc3RyaQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyhHQzNEZW51bSBmdW5jLCBHQzNE
aW50IHJlZiwgR0MzRHVpbnQgbWFzaykKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBkYXRlU3RlbmNp
bEZ1bmNDYWNoZShmdW5jLCByZWYsIG1hc2spKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbEZ1bmMoZnVuYywgcmVmLCBtYXNrKTsK
IH0KQEAgLTg5Niw2ICs5MjEsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsTWFz
a1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spCiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnN0ZW5jaWxPcChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVu
dW0genBhc3MpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZVN0ZW5jaWxPcENhY2hlKGZhaWws
IHpmYWlsLCB6cGFzcykpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwogICAgIDo6Z2xTdGVuY2lsT3AoZmFpbCwgemZhaWwsIHpwYXNzKTsKIH0KQEAgLTExMTEs
NiArMTEzOSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYlBvaW50ZXIo
R0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVuCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZVZpZXdwb3J0Q2FjaGUo
eCwgeSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMTU1NGYwMDgyOTU0MjY5ZGRhMWUxYmU1M2M5ZTY3MDg0
NzRhMDgwZi4uOTUzMjA3NTc2MzQzMWFiYWEzYjcwZGNjYTUzN2YzNzMzNGFiODlmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKQEAgLTI3OCw2ICsyNzgsNyBAQCBUZXh0dXJlTWFwcGVyR0w6OkNs
aXBTdGFjayYgVGV4dHVyZU1hcHBlckdMOjpjbGlwU3RhY2soKQogCiB2b2lkIFRleHR1cmVNYXBw
ZXJHTDo6YmVnaW5QYWludGluZyhQYWludEZsYWdzIGZsYWdzKQogeworICAgIG1fY29udGV4dDNE
LT5zZXRJc1BhaW50aW5nKHRydWUpOwogICAgIG1fY29udGV4dDNELT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNLCAmZGF0YSgpLnByZXZpb3VzUHJvZ3JhbSk7
CiAgICAgZGF0YSgpLnByZXZpb3VzU2Npc3NvclN0YXRlID0gbV9jb250ZXh0M0QtPmlzRW5hYmxl
ZChHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUKTsKICAgICBkYXRhKCkucHJldmlvdXNE
ZXB0aFN0YXRlID0gbV9jb250ZXh0M0QtPmlzRW5hYmxlZChHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfVEVTVCk7CkBAIC0zMjAsNiArMzIxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmVuZFBh
aW50aW5nKCkKICAgICBlbHNlCiAgICAgICAgIG1fY29udGV4dDNELT5kaXNhYmxlKEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9URVNUKTsKIAorICAgIG1fY29udGV4dDNELT5zZXRJc1BhaW50aW5n
KGZhbHNlKTsKICNpZiBQTEFURk9STShRVCkKICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAg
cmV0dXJuOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193070</attachid>
            <date>2013-03-13 23:19:06 -0700</date>
            <delta_ts>2014-02-05 11:18:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110883-20130314021502.patch</filename>
            <type>text/plain</type>
            <size>34265</size>
            <attacher name="Bruno Abinader (history only)">bruno.abinader</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1Nzg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVjMGI4MjAzZDQyYWFi
Y2M1NDJmM2M1N2FmYjI2N2Y3NmM1ZTYxOS4uY2ZiNGVlNzQxNTE1MmIwMDJiZTU0MzVhNWM4ZTRh
YzM1MThhMTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgxIEBACiAyMDEzLTAzLTEzICBCcnVu
byBkZSBPbGl2ZWlyYSBBYmluYWRlciAgPGJydW5vLmFiaW5hZGVyQGJhc3lza29tLmNvbT4KIAor
ICAgICAgICBBZGQgc3RhdGUgY2FjaGUgdmFyaWFibGVzIHRvIGF2b2lkIHJlZHVuZGFudCBjaGFu
Z2VzIG9uIEdyYXBoaWNzQ29udGV4dDNECisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMTA4ODMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQcm9maWxpbmcgRUZMJ3MgTWluaUJyb3dzZXIgdW5kZXIgZ0RFQnVn
Z2VyIGRldGVjdGVkIHF1aXRlIHNvbWUgc3RhdGUKKyAgICAgICAgY2hhbmdlIGZ1bmN0aW9uIGNh
bGxzIHdlcmUgcmVkdW5kYW50LiBUaGlzIHBhdGNoIGludGVuZHMgdG8gYWRkIG1vcmUKKyAgICAg
ICAgc3RhdGUgdmFyaWFibGVzIGluc2lkZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlIHRvIGF2b2lk
IHJlZHVuZGFudCBzdGF0ZQorICAgICAgICBjaGFuZ2VzLiBUaGUgY2FjaGVkIHZhbHVlcyBhcmUg
dXNlZCBieSBzb21lLCBidXQgbm90IGFsbCwgcG9ydHMgdG8KKyAgICAgICAgcmVkdWNlIHJlZHVu
ZGFudCBzdGF0ZSB0cmFuc2l0aW9ucyAoc3RhdGUgY2FjaGluZyBpcyBkaXNhYmxlZCBieSBkZWZh
dWx0KS4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2VzLCB0aHVzIGNvdmVyZWQgYnkgZXhp
c3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFRhcmdldC5wcmk6CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgQWRkZWQgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS57aCxjcHB9IHRvIGJ1aWxkIHN5c3Rl
bSBmaWxlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNE
Lmg6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6c2V0SXNQYWludGluZyk6
IEFkZGVkLgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0M0QpOiBNb3ZlZCBHcmFwaGljc0NvbnRl
eHQzRFN0YXRlIHRvIHNlcGFyYXRlIGhlYWRlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9HcmFwaGljc0NvbnRleHQzRFN0YXRlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRFN0YXRlOjpDYWNoZURhdGE6OkNhY2hlRGF0YSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnNldElzUGFpbnRpbmcp
OgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6cmVzZXRDYWNoZSk6
CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVCbGVuZEZ1
bmNDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRh
dGVEZXB0aE1hc2tDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0
YXRlOjp1cGRhdGVTY2lzc29yQ2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250
ZXh0M0RTdGF0ZTo6dXBkYXRlU3RlbmNpbEZ1bmNDYWNoZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVTdGVuY2lsT3BDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVWaWV3cG9ydENhY2hlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZVBpeGVsU3RvcmVp
Q2FjaGUpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Z2V0Q2Fw
YWJpbGl0eVN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEU3RhdGU6
OnVwZGF0ZUNhcGFiaWxpdHlDYWNoZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3Jh
cGhpY3NDb250ZXh0M0RTdGF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKEdyYXBoaWNzQ29udGV4dDNE
U3RhdGUpOgorICAgICAgICAoQ2FjaGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEU3RhdGU6OnVzZXNDYWNoZSk6CisgICAgICAgIEFkZGVkIHN0YXRlIGNhY2hlIHZh
cmlhYmxlcyBhbmQgcmVkdW5kYW5jeSBjaGVjayBmdW5jdGlvbnMuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6cHJlcGFyZUJ1ZmZlcik6CisgICAg
ICAgIFJlbW92ZWQgRklYTUUgb24gY2FjaGluZyBzY2lzc29yIHRlc3Qgc3RhdGVzLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpyZWFkUmVuZGVy
aW5nUmVzdWx0cyk6CisgICAgICAgIFVzZSBHcmFwaGljc0NvbnRleHQzRCBmdW5jdGlvbnMgaW5z
dGVhZCBvZiBkaXJlY3QgR0wgY2FsbHMgdG8ga2VlcCBzdGF0ZQorICAgICAgICBjYWNoZSB2YXJp
YWJsZXMgY29uc2lzdGVudC4KKworICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6
OmJsZW5kRnVuYyk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhN
YXNrKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpkaXNhYmxlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjplbmFibGUpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OmlzRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQzRDo6cGl4ZWxTdG9yZWkpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0M0Q6OnNjaXNzb3IpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0
M0Q6OnN0ZW5jaWxGdW5jKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpz
dGVuY2lsT3ApOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0M0Q6OnZpZXdwb3J0
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90ZXhtYXAvVGV4dHVyZU1hcHBlckdMLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHR1cmVNYXBwZXJHTDo6YmVnaW5QYWludGluZyk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmVuZFBhaW50aW5nKToKKyAgICAgICAg
QWRkZWQgcmVkdW5kYW5jeSBjaGVjayBvbiBlYWNoIG9mIHRoZXNlIHRvIHJldHVybiBlYXJseSBp
ZiB0aGUgdmFsdWUKKyAgICAgICAgbWF0Y2hlcyB0aGUgcHJldmlvdXMgc2V0LgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBwZXJHTC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0dXJlTWFwcGVyR0w6OmJlZ2luUGFpbnRpbmcpOgorICAgICAgICAoV2Vi
Q29yZTo6VGV4dHVyZU1hcHBlckdMOjplbmRQYWludGluZyk6CisgICAgICAgIFVwZGF0ZSB0aGUg
Z3JhcGhpY3MgY29udGV4dCB3aGVuIGJlZ2lubmluZyBhbmQgZW5kaW5nIHBhaW50aW5nIHVzaW5n
CisgICAgICAgIHNldElzUGFpbnRpbmcoKSwgc28gd2UgY2FuIGtlZXAgdHJhY2sgd2hlbiB0byBj
YWNoZSBzdGF0ZSB2YXJpYWJsZXMuCisKKzIwMTMtMDMtMTMgIEJydW5vIGRlIE9saXZlaXJhIEFi
aW5hZGVyICA8YnJ1bm8uYWJpbmFkZXJAYmFzeXNrb20uY29tPgorCiAgICAgICAgIFtjc3MzLXRl
eHRdIEFkZCBzdXBwb3J0IGZvciB0ZXh0LWRlY29yYXRpb24tY29sb3IKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNjM4CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKaW5kZXggMDlmNzM2ZTVhNzQzYWQxMWU0ZWUzZjdlMTkyMzVhMTVkYWM0ZjRkNS4uNjU2NzA2
MjZlMGNiYjEyZDgzZjMyMjM5OWFiOTZjYWJmZmUyYTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTI4NTcsNiArMjg1Nyw3IEBAIGlmIChXVEZfVVNFXzNEX0dSQVBISUNTKQogICAgIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfU09VUkNFUwogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdl
YktpdEJyaWRnZS5jcHAKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuY3BwCisgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUu
Y3BwCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmNwcAogICAg
ICkKIGVuZGlmICgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBmZTcyYmMwYjUx
NDQzYWQ5Y2JkMDU2OTY1MDE4YjY4NGFjMzM1MTBhLi40YTY3MjNhMTJiOGQxMjIyY2MyMTkwMmU2
MjFiZTdiMzljMjQ1OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5s
aXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTU2NjYs
NiArNTY2Niw4IEBAIHdlYmNvcmVfcGxhdGZvcm1fc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5jcHAgXAorCVNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5oIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmNwcCBcCiAJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oIFwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQu
cHJpCmluZGV4IGQ1MTMyMDc5YmU4MjNkNThlNjBmZGM0MmY1M2U2MTljMDhmMzhjMTYuLmMwZmU5
NzVlMzIxYzlmMjAxYmNmOThkMzM4MDg1YTFhZDczMGU3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNlL1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNDEx
OSw2ICs0MTE5LDcgQEAgdXNlPygzRF9HUkFQSElDUykgewogICAgICAgICBwbGF0Zm9ybS9ncmFw
aGljcy9jcHUvYXJtL0dyYXBoaWNzQ29udGV4dDNETkVPTi5oIFwKICAgICAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0V4dGVuc2lvbnMzRC5oIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250
ZXh0M0RTdGF0ZS5oIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0QuaCBcCiAgICAgICAgIHBsYXRmb3JtL2dyYXBoaWNzL2dwdS9EcmF3aW5nQnVmZmVyLmggXAog
ICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvVGV4dHVyZS5oIFwKQEAgLTQxNDIsNiArNDE0
Myw3IEBAIHVzZT8oM0RfR1JBUEhJQ1MpIHsKICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgcGFn
ZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJL
aXRCcmlkZ2UuY3BwIFwKKyAgICAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RC5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvRHJhd2luZ0J1ZmZlci5jcHAg
XAogICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9ncHUvcXQvRHJhd2luZ0J1ZmZlclF0LmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmd5cGkKaW5kZXggN2JhNzdlMTI0NzZjZDIzZjI0MzE1MmY3YTJmMjYxMDA0MTY4
ZTk5My4uOTc1ZmNlZDE1ZDIzOWYzZTY5M2MwZTA0ZjRlYTZiY2NkMzkxZDVhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQpAQCAtMzkyMSw2ICszOTIxLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
Q29udGV4dDNELmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3ND
b250ZXh0M0RTdGF0ZS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXIuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xh
eWVyQW5pbWF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllckFuaW1hdGlvbi5oJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZjVlNjYxMjMyNzg2ZDUzZjJmMjIyYTRhYzZlNDAz
MzZjNzA3YTQzLi5iOTdlZGVkZmQzMTdlMGUzNTI5MGQ4ODUwMzYzNWE1OWExMzZlYjk5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMzc0LDYgKzEzNzQsNyBAQAogCQk0OUM3QjlFNTEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xU
ZXh0dXJlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5QzdCOUM1MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUuY3BwICovOyB9OwogCQk0
OUM3QjlFNjEwNDJEMzJGMDAwOUQ0NDcgLyogV2ViR0xUZXh0dXJlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OUM3QjlDNjEwNDJEMzJGMDAwOUQ0NDcg
LyogV2ViR0xUZXh0dXJlLmggKi87IH07CiAJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBH
cmFwaGljc0NvbnRleHQzRC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDlDN0I5RkIxMDQyRDM2NTAwMDlENDQ3IC8qIEdyYXBoaWNzQ29udGV4dDNELmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDlDN0I5
RkMxMDQyRDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5QzdCOUZCMTA0MkQzNjUwMDA5
RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDlDN0JBNzkxMDQyRUZBRTAwMDlENDQ3IC8qIE9w
ZW5HTC5mcmFtZXdvcmsgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0OUM3QkE3ODEwNDJFRkFFMDAwOUQ0NDcgLyogT3BlbkdMLmZyYW1ld29yayAqLzsg
fTsKIAkJNDlDN0JBOEQxMDQyRjVCMTAwMDlENDQ3IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlDN0JBOEMxMDQy
RjVCMTAwMDlENDQ3IC8qIEpTRG9jdW1lbnRDdXN0b20uY3BwICovOyB9OwogCQk0OUQ1REMyQjBG
NDIzQTczMDA4RjIwRkQgLyogTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDlENURDMjcwRjQyM0E3MzAw
OEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCAqLzsgfTsKQEAgLTE4ODEs
NiArMTg4Miw3IEBACiAJCTZDNjM4ODk1QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA2QzYzODg5M0E5NkNDRUU1MEM4Qzk0NkMgLyogQ2FjaGVkUmVzb3VyY2VSZXF1
ZXN0SW5pdGlhdG9ycy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTZDNjM4ODk2QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZDNjM4ODk0QTk2Q0NFRTUwQzhDOTQ2QyAvKiBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJ
bml0aWF0b3JzLmNwcCAqLzsgfTsKIAkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBo
aWNzQ29udGV4dDNELmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDZFMjFDNkJGMTEyNjMzODUwMEE3QkUwMiAvKiBHcmFwaGljc0NvbnRleHQzRC5jcHAg
Ki87IH07CisJCTZFMjFDNkMwMTEyNjMzODUwMEE3QkUwMyAvKiBHcmFwaGljc0NvbnRleHQzRFN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZF
MjFDNkJGMTEyNjMzODUwMEE3QkUwMyAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmNwcCAqLzsg
fTsKIAkJNkUyMUM2QzIxMTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkUyMUM2QzEx
MTI2MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovOyB9OwogCQk2RTNG
QUQzODE0NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RTNGQUQzNjE0
NzMzRjQwMDBFNDIzMDYgLyogSlNXZWJHTENvbXByZXNzZWRUZXh0dXJlUzNUQy5jcHAgKi87IH07
CiAJCTZFM0ZBRDM4MTQ3MzNGNDAwMEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZFM0ZBRDM2MTQ3
MzNGNDAwMEU0MjMwNyAvKiBKU1dlYkdMRGVwdGhUZXh0dXJlLmNwcCAqLzsgfTsKQEAgLTg4MjIs
NiArODgyNCw3IEBACiAJCTQ5QzdCOUM2MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViR0xUZXh0dXJlLmg7IHBhdGgg
PSBjYW52YXMvV2ViR0xUZXh0dXJlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5
QzdCOUM3MTA0MkQzMkYwMDA5RDQ0NyAvKiBXZWJHTFRleHR1cmUuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFdlYkdMVGV4dHVyZS5pZGw7IHBhdGggPSBjYW52YXMvV2ViR0xUZXh0dXJlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0I5RkIxMDQyRDM2NTAwMDlENDQ3
IC8qIEdyYXBoaWNzQ29udGV4dDNELmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEdyYXBoaWNzQ29udGV4dDNELmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ5QzdC
OUZCMTA0MkQzNjUwMDA5RDQ0OCAvKiBHcmFwaGljc0NvbnRleHQzRFN0YXRlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdyYXBoaWNzQ29udGV4dDNEU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlDN0JBNzgxMDQyRUZBRTAwMDlENDQ3IC8qIE9wZW5H
TC5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IE9wZW5HTC5mcmFtZXdvcms7IHBhdGggPSAv
U3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9PcGVuR0wuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0g
IjxhYnNvbHV0ZT4iOyB9OwogCQk0OUM3QkE4QzEwNDJGNUIxMDAwOUQ0NDcgLyogSlNEb2N1bWVu
dEN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RvY3Vt
ZW50Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDlENURDMjcwRjQy
M0E3MzAwOEYyMEZEIC8qIE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE1hdHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmNw
cDsgcGF0aCA9IHRyYW5zZm9ybXMvTWF0cml4M0RUcmFuc2Zvcm1PcGVyYXRpb24uY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTM2MSw2ICs5MzY0LDcgQEAKIAkJNkM2Mzg4OTNB
OTZDQ0VFNTBDOEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRp
YXRvcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkM2Mzg4OTRBOTZDQ0VFNTBD
OEM5NDZDIC8qIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRv
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTIxQzZCRjExMjYzMzg1MDBB
N0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDMgLyogR3JhcGhpY3NDb250ZXh0M0RTdGF0
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBHcmFwaGljc0NvbnRl
eHQzRFN0YXRlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkUyMUM2QzExMTI2
MzM5OTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0M0RDRy5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTZFM0ZBRDM2MTQ3MzNGNDAwMEU0MjMwNiAvKiBKU1dlYkdMQ29t
cHJlc3NlZFRleHR1cmVTM1RDLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTV2ViR0xDb21wcmVzc2VkVGV4dHVyZVMzVEMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk2RTNGQUQzNjE0NzMzRjQwMDBFNDIzMDcgLyogSlNXZWJHTERlcHRoVGV4dHVy
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1dlYkdMRGVwdGhU
ZXh0dXJlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNzc0LDYgKzIwNzc4
LDggQEAKIAkJCQlCMkEwMTU5MzBBRjZDRDUzMDA2QkNFMEUgLyogR3JhcGhpY3NDb250ZXh0Lmgg
Ki8sCiAJCQkJNkUyMUM2QkYxMTI2MzM4NTAwQTdCRTAyIC8qIEdyYXBoaWNzQ29udGV4dDNELmNw
cCAqLywKIAkJCQk0OUM3QjlGQjEwNDJEMzY1MDAwOUQ0NDcgLyogR3JhcGhpY3NDb250ZXh0M0Qu
aCAqLywKKwkJCQk2RTIxQzZCRjExMjYzMzg1MDBBN0JFMDMgLyogR3JhcGhpY3NDb250ZXh0M0RT
dGF0ZS5jcHAgKi8sCisJCQkJNDlDN0I5RkIxMDQyRDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUuaCAqLywKIAkJCQkwRjU4MEIwOTBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhp
Y3NMYXllci5jcHAgKi8sCiAJCQkJMEY1ODBCMEEwRjEyQTI2OTAwNTFENjg5IC8qIEdyYXBoaWNz
TGF5ZXIuaCAqLywKIAkJCQkwRjU4MEIwQjBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXll
ckNsaWVudC5oICovLApAQCAtMjQ2MTQsNiArMjQ2MjAsNyBAQAogCQkJCUIyMjI3OTY0MEQwMEJG
MjIwMDcxQjc4MiAvKiBHcmFkaWVudEF0dHJpYnV0ZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QTAxNUE5MEFGNkNENTMwMDZCQ0UwRSAvKiBHcmFwaGljc0NvbnRleHQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQ5QzdCOUZDMTA0MkQzNjUwMDA5RDQ0NyAvKiBHcmFwaGljc0NvbnRleHQzRC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNDlDN0I5RkMxMDQyRDM2NTAwMDlENDQ4IC8qIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDkwN0U0MTI1QkJCQzgwMDdGMjNB
MCAvKiBHcmFwaGljc0NvbnRleHRDRy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTgwRDY3MDgwRTlF
OURFQjAwRTQyMEYwIC8qIEdyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNHLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRjU4MEIwRDBGMTJBMjY5MDA1MUQ2ODkgLyogR3JhcGhpY3NMYXllci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0yNzk0NCw2ICsyNzk1MSw3IEBACiAJCQkJQkM1M0M2MEIwREE1
NkNGMTAwMjFFQjVEIC8qIEdyYWRpZW50Q0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQjJBMDE1
QTgwQUY2Q0Q1MzAwNkJDRTBFIC8qIEdyYXBoaWNzQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk2RTIxQzZDMDExMjYzMzg1MDBBN0JFMDIgLyogR3JhcGhpY3NDb250ZXh0M0QuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNkUyMUM2QzAxMTI2MzM4NTAwQTdCRTAzIC8qIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNkUyMUM2QzIxMTI2MzM5OTAwQTdC
RTAyIC8qIEdyYXBoaWNzQ29udGV4dDNEQ0cuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlGRkJG
MUQxMUM4NTUwRTAwNkE3MTE4IC8qIEdyYXBoaWNzQ29udGV4dDNETWFjLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkJDMjIwREYxMjM3RkJFQjAwQkNGNzg4IC8qIEdyYXBoaWNzQ29udGV4dDNET3Bl
bkdMLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggZTEyMjhlZmE5Zjg5Y2QxM2QyOTUw
NTg2ZDlkMTEyYWNmMGJlNGVjOS4uMjkzYWU0MzQwNTczYTI5ODM5NWNmNzcwZDY2NWYwNTVmYjdk
MGEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjaWZuZGVmIEdyYXBoaWNzQ29udGV4
dDNEX2gKICNkZWZpbmUgR3JhcGhpY3NDb250ZXh0M0RfaAogCisjaW5jbHVkZSAiR3JhcGhpY3ND
b250ZXh0M0RTdGF0ZS5oIgogI2luY2x1ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgogI2luY2x1ZGUg
IkltYWdlLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgpAQCAtODYzLDYgKzg2NCwxMSBAQCBwdWJs
aWM6CiAKICAgICBJbnRTaXplIGdldEludGVybmFsRnJhbWVidWZmZXJTaXplKCkgY29uc3Q7CiAK
KyAgICBpbmxpbmUgdm9pZCBzZXRJc1BhaW50aW5nKGJvb2wgaXNQYWludGluZykKKyAgICB7Cisg
ICAgICAgIG1fc3RhdGUuc2V0SXNQYWludGluZyhpc1BhaW50aW5nKTsKKyAgICB9CisKICAgICBz
dGF0aWMgdW5zaWduZWQgZ2V0Q2xlYXJCaXRzQnlBdHRhY2htZW50VHlwZShHQzNEZW51bSk7CiAg
ICAgc3RhdGljIHVuc2lnbmVkIGdldENsZWFyQml0c0J5Rm9ybWF0KEdDM0RlbnVtKTsKIApAQCAt
MTA4MiwxOCArMTA4OCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2xheWVyQ29tcG9zaXRlZDsK
ICAgICBHQzNEdWludCBtX2ludGVybmFsQ29sb3JGb3JtYXQ7CiAKLSAgICBzdHJ1Y3QgR3JhcGhp
Y3NDb250ZXh0M0RTdGF0ZSB7Ci0gICAgICAgIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUoKQotICAg
ICAgICAgICAgOiBib3VuZEZCTygwKQotICAgICAgICAgICAgLCBhY3RpdmVUZXh0dXJlKEdyYXBo
aWNzQ29udGV4dDNEOjpURVhUVVJFMCkKLSAgICAgICAgICAgICwgYm91bmRUZXh0dXJlMCgwKQot
ICAgICAgICB7IH0KLQotICAgICAgICBHQzNEdWludCBib3VuZEZCTzsKLSAgICAgICAgR0MzRGVu
dW0gYWN0aXZlVGV4dHVyZTsKLSAgICAgICAgR0MzRHVpbnQgYm91bmRUZXh0dXJlMDsKLSAgICB9
OwotCiAgICAgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZSBtX3N0YXRlOwogCiAgICAgLy8gRm9yIG11
bHRpc2FtcGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2M0YjRhMGM3ZWNj
MTgzYzE2ZDJkMDViOTNjNzkxNGQ1NmRhMTM4MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNEU3RhdGUuY3BwCkBAIC0w
LDAgKzEsMjI3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgU2Ftc3VuZyBFbGVjdHJvbmlj
cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgVVNFKDNE
X0dSQVBISUNTKQorCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIgorCisjaW5j
bHVkZSAiR3JhcGhpY3NDb250ZXh0M0QuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitHcmFw
aGljc0NvbnRleHQzRFN0YXRlOjpDYWNoZURhdGE6OkNhY2hlRGF0YSgpCisgICAgOiBzb3VyY2VG
YWN0b3IoR3JhcGhpY3NDb250ZXh0M0Q6Ok9ORSkKKyAgICAsIGRlc3RpbmF0aW9uRmFjdG9yKEdy
YXBoaWNzQ29udGV4dDNEOjpaRVJPKQorICAgICwgZGVwdGhNYXNrKHRydWUpCisgICAgLCBzY2lz
c29yWCgwKQorICAgICwgc2Npc3NvclkoMCkKKyAgICAsIHNjaXNzb3JXaWR0aCgwKQorICAgICwg
c2Npc3NvckhlaWdodCgwKQorICAgICwgc3RlbmNpbEZ1bmMoR3JhcGhpY3NDb250ZXh0M0Q6OkFM
V0FZUykKKyAgICAsIHN0ZW5jaWxSZWYoMCkKKyAgICAsIHN0ZW5jaWxNYXNrKFVJTlRfTUFYKQor
ICAgICwgc3RlbmNpbEZhaWwoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisgICAgLCBzdGVuY2ls
WkZhaWwoR3JhcGhpY3NDb250ZXh0M0Q6OktFRVApCisgICAgLCBzdGVuY2lsWlBhc3MoR3JhcGhp
Y3NDb250ZXh0M0Q6OktFRVApCisgICAgLCB2aWV3cG9ydFgoMCkKKyAgICAsIHZpZXdwb3J0WSgw
KQorICAgICwgdmlld3BvcnRXaWR0aCgwKQorICAgICwgdmlld3BvcnRIZWlnaHQoMCkKKyAgICAs
IGlzQmxlbmRGdW5jQ2FjaGVEaXJ0eShmYWxzZSkKKyAgICAsIGlzRGVwdGhNYXNrQ2FjaGVEaXJ0
eShmYWxzZSkKKyAgICAsIGlzU2Npc3NvckNhY2hlRGlydHkoZmFsc2UpCisgICAgLCBpc1N0ZW5j
aWxGdW5jQ2FjaGVEaXJ0eShmYWxzZSkKKyAgICAsIGlzVmlld3BvcnRDYWNoZURpcnR5KGZhbHNl
KQoreworfQorCitHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpHcmFwaGljc0NvbnRleHQzRFN0YXRl
KENhY2hlVHlwZSBjYWNoZVR5cGUpCisgICAgOiBhY3RpdmVUZXh0dXJlKEdyYXBoaWNzQ29udGV4
dDNEOjpURVhUVVJFMCkKKyAgICAsIGJvdW5kRkJPKDApCisgICAgLCBib3VuZFRleHR1cmUwKDAp
CisgICAgLCBpc1BhaW50aW5nKGZhbHNlKQorICAgICwgY2FjaGVUeXBlKGNhY2hlVHlwZSkKKyAg
ICAsIGNhY2hlRGF0YShhZG9wdFB0cihjYWNoZVR5cGUgPT0gRG9Ob3RVc2VDYWNoZSA/IDAgOiBu
ZXcgQ2FjaGVEYXRhKCkpKQoreworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnNl
dElzUGFpbnRpbmcoYm9vbCBpc1BhaW50aW5nKQoreworICAgIGlmICh0aGlzLT5pc1BhaW50aW5n
ID09IGlzUGFpbnRpbmcpCisgICAgICAgIHJldHVybjsKKworICAgIHRoaXMtPmlzUGFpbnRpbmcg
PSBpc1BhaW50aW5nOworICAgIC8vIFdlIG5lZWQgdG8gb2J0YWluIHRoZSBzdGF0ZSB2YWx1ZXMg
ZnJvbSBHTCBhcyB0aGV5IG1pZ2h0IGhhdmUgY2hhbmdlZCBlbHNld2hlcmUuCisgICAgaWYgKGlz
UGFpbnRpbmcgJiYgY2FjaGVUeXBlID09IFVzZUNhY2hlSWZQYWludGluZykKKyAgICAgICAgcmVz
ZXRDYWNoZSgpOworfQorCit2b2lkIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnJlc2V0Q2FjaGUo
KQoreworICAgIGlmICghY2FjaGVEYXRhKQorICAgICAgICByZXR1cm47CisKKyAgICBjYWNoZURh
dGEtPmlzQmxlbmRGdW5jQ2FjaGVEaXJ0eSA9IHRydWU7CisgICAgY2FjaGVEYXRhLT5pc0RlcHRo
TWFza0NhY2hlRGlydHkgPSB0cnVlOworICAgIGNhY2hlRGF0YS0+aXNTY2lzc29yQ2FjaGVEaXJ0
eSA9IHRydWU7CisgICAgY2FjaGVEYXRhLT5pc1N0ZW5jaWxGdW5jQ2FjaGVEaXJ0eSA9IHRydWU7
CisgICAgY2FjaGVEYXRhLT5pc1N0ZW5jaWxPcENhY2hlRGlydHkgPSB0cnVlOworICAgIGNhY2hl
RGF0YS0+aXNWaWV3cG9ydENhY2hlRGlydHkgPSB0cnVlOworICAgIGNhY2hlRGF0YS0+cGl4ZWxT
dG9yZUludE1hcC5jbGVhcigpOworICAgIGNhY2hlRGF0YS0+Y2FwYWJpbGl0eVN0YXRlTWFwLmNs
ZWFyKCk7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlQmxlbmRGdW5j
Q2FjaGUoR0MzRGVudW0gc291cmNlRmFjdG9yLCBHQzNEZW51bSBkZXN0aW5hdGlvbkZhY3RvcikK
K3sKKyAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlm
IChjYWNoZURhdGEtPmlzQmxlbmRGdW5jQ2FjaGVEaXJ0eSkKKyAgICAgICAgY2FjaGVEYXRhLT5p
c0JsZW5kRnVuY0NhY2hlRGlydHkgPSBmYWxzZTsKKyAgICBlbHNlIGlmIChjYWNoZURhdGEtPnNv
dXJjZUZhY3RvciA9PSBzb3VyY2VGYWN0b3IgJiYgY2FjaGVEYXRhLT5kZXN0aW5hdGlvbkZhY3Rv
ciA9PSBkZXN0aW5hdGlvbkZhY3RvcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgY2Fj
aGVEYXRhLT5zb3VyY2VGYWN0b3IgPSBzb3VyY2VGYWN0b3I7CisgICAgY2FjaGVEYXRhLT5kZXN0
aW5hdGlvbkZhY3RvciA9IGRlc3RpbmF0aW9uRmFjdG9yOworICAgIHJldHVybiB0cnVlOworfQor
Citib29sIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZURlcHRoTWFza0NhY2hlKEdDM0Ri
b29sZWFuIGRlcHRoTWFzaykKK3sKKyAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmIChjYWNoZURhdGEtPmlzRGVwdGhNYXNrQ2FjaGVEaXJ0eSkKKyAg
ICAgICAgY2FjaGVEYXRhLT5pc0RlcHRoTWFza0NhY2hlRGlydHkgPSBmYWxzZTsKKyAgICBlbHNl
IGlmIChjYWNoZURhdGEtPmRlcHRoTWFzayA9PSBkZXB0aE1hc2spCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIGNhY2hlRGF0YS0+ZGVwdGhNYXNrID0gZGVwdGhNYXNrOworICAgIHJldHVy
biB0cnVlOworfQorCitib29sIEdyYXBoaWNzQ29udGV4dDNEU3RhdGU6OnVwZGF0ZVNjaXNzb3JD
YWNoZShHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNEc2l6ZWkgaGVp
Z2h0KQoreworICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisg
ICAgaWYgKGNhY2hlRGF0YS0+aXNTY2lzc29yQ2FjaGVEaXJ0eSkKKyAgICAgICAgY2FjaGVEYXRh
LT5pc1NjaXNzb3JDYWNoZURpcnR5ID0gZmFsc2U7CisgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5z
Y2lzc29yWCA9PSB4ICYmIGNhY2hlRGF0YS0+c2Npc3NvclkgPT0geSAmJiBjYWNoZURhdGEtPnNj
aXNzb3JXaWR0aCA9PSB3aWR0aCAmJiBjYWNoZURhdGEtPnNjaXNzb3JIZWlnaHQgPT0gaGVpZ2h0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjYWNoZURhdGEtPnNjaXNzb3JYID0geDsK
KyAgICBjYWNoZURhdGEtPnNjaXNzb3JZID0geTsKKyAgICBjYWNoZURhdGEtPnNjaXNzb3JXaWR0
aCA9IHdpZHRoOworICAgIGNhY2hlRGF0YS0+c2Npc3NvckhlaWdodCA9IGhlaWdodDsKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVTdGVu
Y2lsRnVuY0NhY2hlKEdDM0RlbnVtIGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKQor
eworICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KGNhY2hlRGF0YS0+aXNTdGVuY2lsRnVuY0NhY2hlRGlydHkpCisgICAgICAgIGNhY2hlRGF0YS0+
aXNTdGVuY2lsRnVuY0NhY2hlRGlydHkgPSBmYWxzZTsKKyAgICBlbHNlIGlmIChjYWNoZURhdGEt
PnN0ZW5jaWxGdW5jID09IGZ1bmMgJiYgY2FjaGVEYXRhLT5zdGVuY2lsUmVmID09IHJlZiAmJiBj
YWNoZURhdGEtPnN0ZW5jaWxNYXNrID09IG1hc2spCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGNhY2hlRGF0YS0+c3RlbmNpbEZ1bmMgPSBmdW5jOworICAgIGNhY2hlRGF0YS0+c3RlbmNp
bFJlZiA9IHJlZjsKKyAgICBjYWNoZURhdGEtPnN0ZW5jaWxNYXNrID0gbWFzazsKKyAgICByZXR1
cm4gdHJ1ZTsKK30KKworYm9vbCBHcmFwaGljc0NvbnRleHQzRFN0YXRlOjp1cGRhdGVTdGVuY2ls
T3BDYWNoZShHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVudW0genBhc3MpCit7
CisgICAgaWYgKCF1c2VzQ2FjaGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAo
Y2FjaGVEYXRhLT5pc1N0ZW5jaWxPcENhY2hlRGlydHkpCisgICAgICAgIGNhY2hlRGF0YS0+aXNT
dGVuY2lsT3BDYWNoZURpcnR5ID0gZmFsc2U7CisgICAgZWxzZSBpZiAoY2FjaGVEYXRhLT5zdGVu
Y2lsRmFpbCA9PSBmYWlsICYmIGNhY2hlRGF0YS0+c3RlbmNpbFpGYWlsID09IHpmYWlsICYmIGNh
Y2hlRGF0YS0+c3RlbmNpbFpQYXNzID09IHpwYXNzKQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBjYWNoZURhdGEtPnN0ZW5jaWxGYWlsID0gZmFpbDsKKyAgICBjYWNoZURhdGEtPnN0ZW5j
aWxaRmFpbCA9IHpmYWlsOworICAgIGNhY2hlRGF0YS0+c3RlbmNpbFpQYXNzID0genBhc3M7Cisg
ICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRl
Vmlld3BvcnRDYWNoZShHQzNEaW50IHgsIEdDM0RpbnQgeSwgR0MzRHNpemVpIHdpZHRoLCBHQzNE
c2l6ZWkgaGVpZ2h0KQoreworICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKGNhY2hlRGF0YS0+aXNWaWV3cG9ydENhY2hlRGlydHkpCisgICAgICAg
IGNhY2hlRGF0YS0+aXNWaWV3cG9ydENhY2hlRGlydHkgPSBmYWxzZTsKKyAgICBlbHNlIGlmIChj
YWNoZURhdGEtPnZpZXdwb3J0WCA9PSB4ICYmIGNhY2hlRGF0YS0+dmlld3BvcnRZID09IHkgJiYg
Y2FjaGVEYXRhLT52aWV3cG9ydFdpZHRoID09IHdpZHRoICYmIGNhY2hlRGF0YS0+dmlld3BvcnRI
ZWlnaHQgPT0gaGVpZ2h0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBjYWNoZURhdGEt
PnZpZXdwb3J0WCA9IHg7CisgICAgY2FjaGVEYXRhLT52aWV3cG9ydFkgPSB5OworICAgIGNhY2hl
RGF0YS0+dmlld3BvcnRXaWR0aCA9IHdpZHRoOworICAgIGNhY2hlRGF0YS0+dmlld3BvcnRIZWln
aHQgPSBoZWlnaHQ7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZTo6dXBkYXRlUGl4ZWxTdG9yZWlDYWNoZShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBw
YXJhbSkKK3sKKyAgICBpZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgIENhY2hlRGF0YTo6UGl4ZWxTdG9yZUludE1hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBjYWNo
ZURhdGEtPnBpeGVsU3RvcmVJbnRNYXAuZmluZChwbmFtZSk7CisgICAgaWYgKGl0ICE9IGNhY2hl
RGF0YS0+cGl4ZWxTdG9yZUludE1hcC5lbmQoKSAmJiBpdC0+dmFsdWUgPT0gcGFyYW0pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICBjYWNoZURhdGEtPnBpeGVsU3RvcmVJbnRNYXAuc2V0KHBu
YW1lLCBwYXJhbSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0dyYXBoaWNzQ29udGV4dDNEU3Rh
dGU6OkNhcGFiaWxpdHlTdGF0ZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlOjpnZXRDYXBhYmlsaXR5
U3RhdGUoR0MzRGVudW0gY2FwKQoreworICAgIGlmICghdXNlc0NhY2hlKCkpCisgICAgICAgIHJl
dHVybiBDYXBhYmlsaXR5VW5rbm93bjsKKworICAgIENhY2hlRGF0YTo6Q2FwYWJpbGl0eVN0YXRl
TWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlRGF0YS0+Y2FwYWJpbGl0eVN0YXRlTWFwLmZp
bmQoY2FwKTsKKyAgICBpZiAoaXQgPT0gY2FjaGVEYXRhLT5jYXBhYmlsaXR5U3RhdGVNYXAuZW5k
KCkpCisgICAgICAgIHJldHVybiBDYXBhYmlsaXR5VW5rbm93bjsKKworICAgIHJldHVybiBpdC0+
dmFsdWU7Cit9CisKK2Jvb2wgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6dXBkYXRlQ2FwYWJpbGl0
eUNhY2hlKEdDM0RlbnVtIGNhcCwgQ2FwYWJpbGl0eVN0YXRlIGlzRW5hYmxlZCkKK3sKKyAgICBp
ZiAoIXVzZXNDYWNoZSgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIENhY2hlRGF0YTo6
Q2FwYWJpbGl0eVN0YXRlTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGNhY2hlRGF0YS0+Y2FwYWJp
bGl0eVN0YXRlTWFwLmZpbmQoY2FwKTsKKyAgICBpZiAoaXQgIT0gY2FjaGVEYXRhLT5jYXBhYmls
aXR5U3RhdGVNYXAuZW5kKCkgJiYgaXQtPnZhbHVlID09IGlzRW5hYmxlZCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgY2FjaGVEYXRhLT5jYXBhYmlsaXR5U3RhdGVNYXAuc2V0KGNhcCwg
aXNFbmFibGVkKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gVVNFKDNEX0dSQVBISUNTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0RTdGF0ZS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjFjMzE4YzRiMzIxMDQ2Yzg4ZDUxMzk5Yjg4MWY0ODcwZGMzODNiNTkKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQz
RFN0YXRlLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMyBTYW1z
dW5nIEVsZWN0cm9uaWNzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
OyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg
aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFO
VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO
VQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisg
KgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IHNlZSB0
aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGVfaAorI2RlZmluZSBHcmFwaGljc0NvbnRleHQzRFN0YXRlX2gKKworI2luY2x1
ZGUgIkdyYXBoaWNzVHlwZXMzRC5oIgorI2luY2x1ZGUgPGxpbWl0cy5oPgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIEdyYXBoaWNzQ29udGV4dDNEU3RhdGUgeworcHVibGljOgorICAgIGVudW0g
Q2FjaGVUeXBlIHsKKyAgICAgICAgRG9Ob3RVc2VDYWNoZSA9IDAsCisgICAgICAgIFVzZUNhY2hl
SWZQYWludGluZywKKyAgICAgICAgVXNlQ2FjaGVBbHdheXMKKyAgICB9OworCisgICAgZW51bSBD
YXBhYmlsaXR5U3RhdGUgeworICAgICAgICBDYXBhYmlsaXR5VW5rbm93biA9IDAsCisgICAgICAg
IENhcGFiaWxpdHlFbmFibGVkLAorICAgICAgICBDYXBhYmlsaXR5RGlzYWJsZWQKKyAgICB9Owor
CisgICAgLy8gQ2FjaGUgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KKyAgICBHcmFwaGljc0NvbnRl
eHQzRFN0YXRlKENhY2hlVHlwZSA9IERvTm90VXNlQ2FjaGUpOworCisgICAgR0MzRGVudW0gYWN0
aXZlVGV4dHVyZTsKKyAgICBHQzNEdWludCBib3VuZEZCTzsKKyAgICBHQzNEdWludCBib3VuZFRl
eHR1cmUwOworCisgICAgLy8gVGhlIGNhY2hlZCB2YWx1ZXMgYmVsb3cgYXJlIHVzZWQgYnkgc29t
ZSwgYnV0IG5vdCBhbGwsIHBvcnRzIHRvCisgICAgLy8gcmVkdWNlIHJlZHVuZGFudCBzdGF0ZSB0
cmFuc2l0aW9ucy4gRG8gbm90IHJlbHkgb24gdGhlaXIgYmVpbmcKKyAgICAvLyB1cC10by1kYXRl
IGluIGNvbW1vbiBjb2RlLgorCisgICAgdm9pZCBzZXRJc1BhaW50aW5nKGJvb2wpOworICAgIHZv
aWQgcmVzZXRDYWNoZSgpOworCisgICAgYm9vbCB1cGRhdGVCbGVuZEZ1bmNDYWNoZShHQzNEZW51
bSBzb3VyY2VGYWN0b3IsIEdDM0RlbnVtIGRlc3RpbmF0aW9uRmFjdG9yKTsKKyAgICBib29sIHVw
ZGF0ZURlcHRoTWFza0NhY2hlKEdDM0Rib29sZWFuIGRlcHRoTWFzayk7CisgICAgYm9vbCB1cGRh
dGVTY2lzc29yQ2FjaGUoR0MzRGludCB4LCBHQzNEaW50IHksIEdDM0RzaXplaSB3aWR0aCwgR0Mz
RHNpemVpIGhlaWdodCk7CisgICAgYm9vbCB1cGRhdGVTdGVuY2lsRnVuY0NhY2hlKEdDM0RlbnVt
IGZ1bmMsIEdDM0RpbnQgcmVmLCBHQzNEdWludCBtYXNrKTsKKyAgICBib29sIHVwZGF0ZVN0ZW5j
aWxPcENhY2hlKEdDM0RlbnVtIGZhaWwsIEdDM0RlbnVtIHpmYWlsLCBHQzNEZW51bSB6cGFzcyk7
CisgICAgYm9vbCB1cGRhdGVWaWV3cG9ydENhY2hlKEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNE
c2l6ZWkgd2lkdGgsIEdDM0RzaXplaSBoZWlnaHQpOworICAgIGJvb2wgdXBkYXRlUGl4ZWxTdG9y
ZWlDYWNoZShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSk7CisgICAgQ2FwYWJpbGl0eVN0
YXRlIGdldENhcGFiaWxpdHlTdGF0ZShHQzNEZW51bSBjYXApOworICAgIGJvb2wgdXBkYXRlQ2Fw
YWJpbGl0eUNhY2hlKEdDM0RlbnVtIGNhcCwgQ2FwYWJpbGl0eVN0YXRlIGlzRW5hYmxlZCk7CisK
K3ByaXZhdGU6CisgICAgc3RydWN0IENhY2hlRGF0YSB7CisgICAgICAgIENhY2hlRGF0YSgpOwor
CisgICAgICAgIC8vIFVzZWQgYnkgZ2xCbGVuZEZ1bmMuCisgICAgICAgIEdDM0RlbnVtIHNvdXJj
ZUZhY3RvcjsKKyAgICAgICAgR0MzRGVudW0gZGVzdGluYXRpb25GYWN0b3I7CisKKyAgICAgICAg
Ly8gVXNlZCBieSBnbERlcHRoTWFzay4KKyAgICAgICAgR0MzRGJvb2xlYW4gZGVwdGhNYXNrOwor
CisgICAgICAgIC8vIFVzZWQgYnkgZ2xTY2lzc29yLgorICAgICAgICBHQzNEaW50IHNjaXNzb3JY
OworICAgICAgICBHQzNEaW50IHNjaXNzb3JZOworICAgICAgICBHQzNEc2l6ZWkgc2Npc3Nvcldp
ZHRoOworICAgICAgICBHQzNEc2l6ZWkgc2Npc3NvckhlaWdodDsKKworICAgICAgICAvLyBVc2Vk
IGJ5IGdsU3RlbmNpbEZ1bmMuCisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxGdW5jOworICAgICAg
ICBHQzNEaW50IHN0ZW5jaWxSZWY7CisgICAgICAgIEdDM0R1aW50IHN0ZW5jaWxNYXNrOworCisg
ICAgICAgIC8vIFVzZWQgYnkgZ2xTdGVuY2lsT3AuCisgICAgICAgIEdDM0RlbnVtIHN0ZW5jaWxG
YWlsOworICAgICAgICBHQzNEZW51bSBzdGVuY2lsWkZhaWw7CisgICAgICAgIEdDM0RlbnVtIHN0
ZW5jaWxaUGFzczsKKworICAgICAgICAvLyBVc2VkIGJ5IGdsVmlld3BvcnQuCisgICAgICAgIEdD
M0RpbnQgdmlld3BvcnRYOworICAgICAgICBHQzNEaW50IHZpZXdwb3J0WTsKKyAgICAgICAgR0Mz
RHNpemVpIHZpZXdwb3J0V2lkdGg7CisgICAgICAgIEdDM0RzaXplaSB2aWV3cG9ydEhlaWdodDsK
KworICAgICAgICAvLyBVc2VkIGJ5IGdsUGl4ZWxTdG9yZWkuCisgICAgICAgIHR5cGVkZWYgSGFz
aE1hcDxHQzNEZW51bSwgR0MzRGludD4gUGl4ZWxTdG9yZUludE1hcDsKKyAgICAgICAgUGl4ZWxT
dG9yZUludE1hcCBwaXhlbFN0b3JlSW50TWFwOworCisgICAgICAgIC8vIFVzZWQgYnkgZ2xFbmFi
bGUgYW5kIGdsRGlzYWJsZS4KKyAgICAgICAgdHlwZWRlZiBIYXNoTWFwPEdDM0RlbnVtLCBDYXBh
YmlsaXR5U3RhdGU+IENhcGFiaWxpdHlTdGF0ZU1hcDsKKyAgICAgICAgQ2FwYWJpbGl0eVN0YXRl
TWFwIGNhcGFiaWxpdHlTdGF0ZU1hcDsKKworICAgICAgICBib29sIGlzQmxlbmRGdW5jQ2FjaGVE
aXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNEZXB0aE1hc2tDYWNoZURpcnR5IDogMTsKKyAgICAg
ICAgYm9vbCBpc1NjaXNzb3JDYWNoZURpcnR5IDogMTsKKyAgICAgICAgYm9vbCBpc1N0ZW5jaWxG
dW5jQ2FjaGVEaXJ0eSA6IDE7CisgICAgICAgIGJvb2wgaXNTdGVuY2lsT3BDYWNoZURpcnR5IDog
MTsKKyAgICAgICAgYm9vbCBpc1ZpZXdwb3J0Q2FjaGVEaXJ0eSA6IDE7CisgICAgfTsKKworICAg
IGlubGluZSBib29sIHVzZXNDYWNoZSgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gY2Fj
aGVUeXBlID09IFVzZUNhY2hlQWx3YXlzIHx8IChjYWNoZVR5cGUgPT0gVXNlQ2FjaGVJZlBhaW50
aW5nICYmIGlzUGFpbnRpbmcpOworICAgIH0KKworICAgIGJvb2wgaXNQYWludGluZzsKKyAgICBD
YWNoZVR5cGUgY2FjaGVUeXBlOworICAgIE93blB0cjxDYWNoZURhdGE+IGNhY2hlRGF0YTsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEdyYXBoaWNzQ29udGV4dDNE
U3RhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWZs
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAppbmRleCBlYTcyNjliM2Y5
NjUyN2E2NDdmNmNjMTNhMzdiNTJjYjk3YWRmMzdkLi5lN2M2OGIwZDUxNjg2YzY5NjEyZmQzMWQw
NWUxYzZkYjI4NDE3MTlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZmwvR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlLmNwcApAQCAt
MTc3LDcgKzE3Nyw2IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpwcmVwYXJlQnVm
ZmVyKCkgY29uc3QKICAgICAgICAgaW50IHdpZHRoID0gbV9jb250ZXh0LT5tX2N1cnJlbnRXaWR0
aDsKICAgICAgICAgaW50IGhlaWdodCA9IG1fY29udGV4dC0+bV9jdXJyZW50SGVpZ2h0OwogICAg
ICAgICAvLyBXZSBzaG91bGQgY29weSB0aGUgZnVsbCBidWZmZXIsIGFuZCBub3QgcmVzcGVjdCB0
aGUgY3VycmVudCBzY2lzc29yIGJvdW5kcy4KLSAgICAgICAgLy8gRklYTUU6IEl0IHdvdWxkIGJl
IG1vcmUgZWZmaWNpZW50IHRvIHRyYWNrIHRoZSBzdGF0ZSBvZiB0aGUgc2Npc3NvciB0ZXN0Lgog
ICAgICAgICBpZiAobV9jb250ZXh0LT5pc0VuYWJsZWQoR3JhcGhpY3NDb250ZXh0M0Q6OlNDSVNT
T1JfVEVTVCkpIHsKICAgICAgICAgICAgIGVuYWJsZVNjaXNzb3JUZXN0ID0gdHJ1ZTsKICAgICAg
ICAgICAgIG1fY29udGV4dC0+ZGlzYWJsZShHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNU
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9H
cmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4
IDM5NjFhNWY3ZWRhYmU0NDQxZjExMTVhNmUyNjljODA4NGFmY2ExNGEuLmMzODI5YTRhNjM2OTlh
NjE1MzM0MGZjZjI2YzBhMTFiZWFjMzhlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29u
dGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjAxLDE0ICsyMDEsMTQgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHQzRDo6cmVhZFJlbmRlcmluZ1Jlc3VsdHModW5zaWduZWQgY2hhciAqcGl4ZWxzLCBp
bnQgcGl4ZWxzU2kKICAgICBib29sIG11c3RSZXN0b3JlUGFja0FsaWdubWVudCA9IGZhbHNlOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9QQUNLX0FMSUdOTUVOVCwgJnBhY2tBbGlnbm1lbnQpOwog
ICAgIGlmIChwYWNrQWxpZ25tZW50ID4gNCkgewotICAgICAgICA6OmdsUGl4ZWxTdG9yZWkoR0xf
UEFDS19BTElHTk1FTlQsIDQpOworICAgICAgICBwaXhlbFN0b3JlaShHTF9QQUNLX0FMSUdOTUVO
VCwgNCk7CiAgICAgICAgIG11c3RSZXN0b3JlUGFja0FsaWdubWVudCA9IHRydWU7CiAgICAgfQog
CiAgICAgcmVhZFBpeGVsc0FuZENvbnZlcnRUb0JHUkFJZk5lY2Vzc2FyeSgwLCAwLCBtX2N1cnJl
bnRXaWR0aCwgbV9jdXJyZW50SGVpZ2h0LCBwaXhlbHMpOwogCiAgICAgaWYgKG11c3RSZXN0b3Jl
UGFja0FsaWdubWVudCkKLSAgICAgICAgOjpnbFBpeGVsU3RvcmVpKEdMX1BBQ0tfQUxJR05NRU5U
LCBwYWNrQWxpZ25tZW50KTsKKyAgICAgICAgcGl4ZWxTdG9yZWkoR0xfUEFDS19BTElHTk1FTlQs
IHBhY2tBbGlnbm1lbnQpOwogCiAgICAgaWYgKG11c3RSZXN0b3JlRkJPKQogICAgICAgICA6Omds
QmluZEZyYW1lYnVmZmVyRVhUKEdyYXBoaWNzQ29udGV4dDNEOjpGUkFNRUJVRkZFUiwgbV9zdGF0
ZS5ib3VuZEZCTyk7CkBAIC0zODAsNiArMzgwLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6
YmxlbmRFcXVhdGlvblNlcGFyYXRlKEdDM0RlbnVtIG1vZGVSR0IsIEdDM0RlbnVtIG1vZGVBbHAK
IAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6YmxlbmRGdW5jKEdDM0RlbnVtIHNmYWN0b3IsIEdD
M0RlbnVtIGRmYWN0b3IpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZUJsZW5kRnVuY0NhY2hl
KHNmYWN0b3IsIGRmYWN0b3IpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1
cnJlbnQoKTsKICAgICA6OmdsQmxlbmRGdW5jKHNmYWN0b3IsIGRmYWN0b3IpOwogfSAgICAgICAK
QEAgLTUyOSw2ICs1MzIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpkZXB0aEZ1bmMoR0Mz
RGVudW0gZnVuYykKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGVwdGhNYXNrKEdDM0Rib29s
ZWFuIGZsYWcpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZURlcHRoTWFza0NhY2hlKGZsYWcp
KQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6Omds
RGVwdGhNYXNrKGZsYWcpOwogfQpAQCAtNTQzLDYgKzU0OSw5IEBAIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OmRldGFjaFNoYWRlcihQbGF0Zm9ybTNET2JqZWN0IHByb2dyYW0sIFBsYXRmb3JtM0RP
YmplY3QKIAogdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZGlzYWJsZShHQzNEZW51bSBjYXApCiB7
CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZUNhcGFiaWxpdHlDYWNoZShjYXAsIEdyYXBoaWNzQ29u
dGV4dDNEU3RhdGU6OkNhcGFiaWxpdHlEaXNhYmxlZCkpCisgICAgICAgIHJldHVybjsKKwogICAg
IG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIDo6Z2xEaXNhYmxlKGNhcCk7CiB9CkBAIC01Njcs
NiArNTc2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6ZHJhd0VsZW1lbnRzKEdDM0RlbnVt
IG1vZGUsIEdDM0RzaXplaSBjb3VudCwgR0MzRGVudW0gdHkKIAogdm9pZCBHcmFwaGljc0NvbnRl
eHQzRDo6ZW5hYmxlKEdDM0RlbnVtIGNhcCkKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBkYXRlQ2Fw
YWJpbGl0eUNhY2hlKGNhcCwgR3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Q2FwYWJpbGl0eUVuYWJs
ZWQpKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6
OmdsRW5hYmxlKGNhcCk7CiB9CkBAIC03NzEsNiArNzgzLDEwIEBAIEdDM0Rib29sZWFuIEdyYXBo
aWNzQ29udGV4dDNEOjppc0J1ZmZlcihQbGF0Zm9ybTNET2JqZWN0IGJ1ZmZlcikKIAogR0MzRGJv
b2xlYW4gR3JhcGhpY3NDb250ZXh0M0Q6OmlzRW5hYmxlZChHQzNEZW51bSBjYXApCiB7CisgICAg
R3JhcGhpY3NDb250ZXh0M0RTdGF0ZTo6Q2FwYWJpbGl0eVN0YXRlIHN0YXRlID0gbV9zdGF0ZS5n
ZXRDYXBhYmlsaXR5U3RhdGUoY2FwKTsKKyAgICBpZiAoc3RhdGUgIT0gR3JhcGhpY3NDb250ZXh0
M0RTdGF0ZTo6Q2FwYWJpbGl0eVVua25vd24pCisgICAgICAgIHJldHVybiBzdGF0ZSA9PSBHcmFw
aGljc0NvbnRleHQzRFN0YXRlOjpDYXBhYmlsaXR5RW5hYmxlZCA/IHRydWUgOiBmYWxzZTsKKwog
ICAgIG1ha2VDb250ZXh0Q3VycmVudCgpOwogICAgIHJldHVybiA6OmdsSXNFbmFibGVkKGNhcCk7
CiB9CkBAIC04MzUsNiArODUxLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6bGlua1Byb2dy
YW0oUGxhdGZvcm0zRE9iamVjdCBwcm9ncmFtKQogCiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpw
aXhlbFN0b3JlaShHQzNEZW51bSBwbmFtZSwgR0MzRGludCBwYXJhbSkKIHsKKyAgICBpZiAoIW1f
c3RhdGUudXBkYXRlUGl4ZWxTdG9yZWlDYWNoZShwbmFtZSwgcGFyYW0pKQorICAgICAgICByZXR1
cm47CisKICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsUGl4ZWxTdG9yZWkocG5h
bWUsIHBhcmFtKTsKIH0KQEAgLTg1Myw2ICs4NzIsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNE
OjpzYW1wbGVDb3ZlcmFnZShHQzNEY2xhbXBmIHZhbHVlLCBHQzNEYm9vbGVhbiBpbnZlcnQpCiAK
IHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnNjaXNzb3IoR0MzRGludCB4LCBHQzNEaW50IHksIEdD
M0RzaXplaSB3aWR0aCwgR0MzRHNpemVpIGhlaWdodCkKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBk
YXRlU2Npc3NvckNhY2hlKHgsIHksIHdpZHRoLCBoZWlnaHQpKQorICAgICAgICByZXR1cm47CisK
ICAgICBtYWtlQ29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU2Npc3Nvcih4LCB5LCB3aWR0aCwg
aGVpZ2h0KTsKIH0KQEAgLTg3Miw2ICs4OTQsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpz
aGFkZXJTb3VyY2UoUGxhdGZvcm0zRE9iamVjdCBzaGFkZXIsIGNvbnN0IFN0cmluZyYgc3RyaQog
CiB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsRnVuYyhHQzNEZW51bSBmdW5jLCBHQzNE
aW50IHJlZiwgR0MzRHVpbnQgbWFzaykKIHsKKyAgICBpZiAoIW1fc3RhdGUudXBkYXRlU3RlbmNp
bEZ1bmNDYWNoZShmdW5jLCByZWYsIG1hc2spKQorICAgICAgICByZXR1cm47CisKICAgICBtYWtl
Q29udGV4dEN1cnJlbnQoKTsKICAgICA6OmdsU3RlbmNpbEZ1bmMoZnVuYywgcmVmLCBtYXNrKTsK
IH0KQEAgLTg5Niw2ICs5MjEsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpzdGVuY2lsTWFz
a1NlcGFyYXRlKEdDM0RlbnVtIGZhY2UsIEdDM0R1aW50IG1hc2spCiAKIHZvaWQgR3JhcGhpY3ND
b250ZXh0M0Q6OnN0ZW5jaWxPcChHQzNEZW51bSBmYWlsLCBHQzNEZW51bSB6ZmFpbCwgR0MzRGVu
dW0genBhc3MpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZVN0ZW5jaWxPcENhY2hlKGZhaWws
IHpmYWlsLCB6cGFzcykpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0Q3VycmVu
dCgpOwogICAgIDo6Z2xTdGVuY2lsT3AoZmFpbCwgemZhaWwsIHpwYXNzKTsKIH0KQEAgLTExMTEs
NiArMTEzOSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0M0Q6OnZlcnRleEF0dHJpYlBvaW50ZXIo
R0MzRHVpbnQgaW5kZXgsIEdDM0RpbnQgc2l6ZSwgR0MzRGVuCiAKIHZvaWQgR3JhcGhpY3NDb250
ZXh0M0Q6OnZpZXdwb3J0KEdDM0RpbnQgeCwgR0MzRGludCB5LCBHQzNEc2l6ZWkgd2lkdGgsIEdD
M0RzaXplaSBoZWlnaHQpCiB7CisgICAgaWYgKCFtX3N0YXRlLnVwZGF0ZVZpZXdwb3J0Q2FjaGUo
eCwgeSwgd2lkdGgsIGhlaWdodCkpCisgICAgICAgIHJldHVybjsKKwogICAgIG1ha2VDb250ZXh0
Q3VycmVudCgpOwogICAgIDo6Z2xWaWV3cG9ydCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9UZXh0dXJl
TWFwcGVyR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKaW5kZXggMTU1NGYwMDgyOTU0MjY5ZGRhMWUxYmU1M2M5ZTY3MDg0
NzRhMDgwZi4uOTUzMjA3NTc2MzQzMWFiYWEzYjcwZGNjYTUzN2YzNzMzNGFiODlmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1RleHR1cmVNYXBw
ZXJHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL1Rl
eHR1cmVNYXBwZXJHTC5jcHAKQEAgLTI3OCw2ICsyNzgsNyBAQCBUZXh0dXJlTWFwcGVyR0w6OkNs
aXBTdGFjayYgVGV4dHVyZU1hcHBlckdMOjpjbGlwU3RhY2soKQogCiB2b2lkIFRleHR1cmVNYXBw
ZXJHTDo6YmVnaW5QYWludGluZyhQYWludEZsYWdzIGZsYWdzKQogeworICAgIG1fY29udGV4dDNE
LT5zZXRJc1BhaW50aW5nKHRydWUpOwogICAgIG1fY29udGV4dDNELT5nZXRJbnRlZ2VydihHcmFw
aGljc0NvbnRleHQzRDo6Q1VSUkVOVF9QUk9HUkFNLCAmZGF0YSgpLnByZXZpb3VzUHJvZ3JhbSk7
CiAgICAgZGF0YSgpLnByZXZpb3VzU2Npc3NvclN0YXRlID0gbV9jb250ZXh0M0QtPmlzRW5hYmxl
ZChHcmFwaGljc0NvbnRleHQzRDo6U0NJU1NPUl9URVNUKTsKICAgICBkYXRhKCkucHJldmlvdXNE
ZXB0aFN0YXRlID0gbV9jb250ZXh0M0QtPmlzRW5hYmxlZChHcmFwaGljc0NvbnRleHQzRDo6REVQ
VEhfVEVTVCk7CkBAIC0zMjAsNiArMzIxLDcgQEAgdm9pZCBUZXh0dXJlTWFwcGVyR0w6OmVuZFBh
aW50aW5nKCkKICAgICBlbHNlCiAgICAgICAgIG1fY29udGV4dDNELT5kaXNhYmxlKEdyYXBoaWNz
Q29udGV4dDNEOjpERVBUSF9URVNUKTsKIAorICAgIG1fY29udGV4dDNELT5zZXRJc1BhaW50aW5n
KGZhbHNlKTsKICNpZiBQTEFURk9STShRVCkKICAgICBpZiAoIW1fY29udGV4dCkKICAgICAgICAg
cmV0dXJuOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>