<?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>60687</bug_id>
          
          <creation_ts>2011-05-11 21:38:27 -0700</creation_ts>
          <short_desc>[GTK] Replace GdkRectangle by cairo_rectangle_int_t</short_desc>
          <delta_ts>2011-06-17 04:50:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>45423</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Joone Hur">joone.hur</reporter>
          <assigned_to name="Joone Hur">joone.hur</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>402640</commentid>
    <comment_count>0</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-11 21:38:27 -0700</bug_when>
    <thetext>Starting with version 1.10, Cairo provides cairo_rectangle_t that is equivalent to GdkRectangle. Therefore, we can replace GdkRectangle by  cairo_rectangle_int_t if we use Cairo 1.10 or higher version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402735</commentid>
    <comment_count>1</comment_count>
      <attachid>93263</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-12 00:56:07 -0700</bug_when>
    <thetext>Created attachment 93263
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>402869</commentid>
    <comment_count>2</comment_count>
      <attachid>93263</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-12 08:59:02 -0700</bug_when>
    <thetext>Comment on attachment 93263
Proposed Patch

Won&apos;t this give us a hard dependency on newer versions of Cairo?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403338</commentid>
    <comment_count>3</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-12 20:08:52 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 93263 [details])
&gt; Won&apos;t this give us a hard dependency on newer versions of Cairo?

If we use more Cairo code, we can share more code between GTK+2 and GTK+3.
It allows us to write code a bit more simple and clean. 

Anyway, the tiled backing store patch needs this patch to work in GTK+2 and GTK+3, even other ports like WinCairo and EFL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403401</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2011-05-12 23:33:18 -0700</bug_when>
    <thetext>GdkRectangle is already a typedef cairo_rectangle_int_t in GTK3, so we can use it in both GTK 2 and 3 without #ifdefs. We can add IntRectCairo.cpp anyway for ports using cairo but not gtk. And for me depending on Cairo 1.10 is not a problem but a must :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403532</commentid>
    <comment_count>5</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-13 07:05:51 -0700</bug_when>
    <thetext>Considering what Carlos said, and I think it makes sense to depend on cairo 1.10, should we remove IntRectGtk and use cairo_rectangle_int_t everywhere? I believe we had this discussion in a different bug where we decided we did not want to bump the cairo dependency isn&apos;t that right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403571</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-13 08:44:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Considering what Carlos said, and I think it makes sense to depend on cairo 1.10, should we remove IntRectGtk and use cairo_rectangle_int_t everywhere? I believe we had this discussion in a different bug where we decided we did not want to bump the cairo dependency isn&apos;t that right?

When I woke up this morning I was against requiring 1.10, but now I think it&apos;s time. Let&apos;s do it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>403627</commentid>
    <comment_count>7</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-13 10:09:53 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Considering what Carlos said, and I think it makes sense to depend on cairo 1.10, should we remove IntRectGtk and use cairo_rectangle_int_t everywhere? I believe we had this discussion in a different bug where we decided we did not want to bump the cairo dependency isn&apos;t that right?
&gt; 
&gt; When I woke up this morning I was against requiring 1.10, but now I think it&apos;s time. Let&apos;s do it!

Okay, I will update this patch to remove IntRectGtk and use cairo_rectangle_int_t instead of GdkRectangle in other source code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404428</commentid>
    <comment_count>8</comment_count>
      <attachid>93263</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-16 05:39:32 -0700</bug_when>
    <thetext>Comment on attachment 93263
Proposed Patch

r-ing the patch because Joone will update it based on the comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405146</commentid>
    <comment_count>9</comment_count>
      <attachid>93793</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-17 10:37:55 -0700</bug_when>
    <thetext>Created attachment 93793
Proposed Patch2

Here is the updated patch.
Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405158</commentid>
    <comment_count>10</comment_count>
      <attachid>93793</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-17 10:50:54 -0700</bug_when>
    <thetext>Comment on attachment 93793
Proposed Patch2

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

I&apos;m not sure I understand this patch. While depending on a newer version of Cairo means that we can use cairo_rect_t and cairo_region_t, it doesn&apos;t mean we can use it with old versions of GTK+.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:639
&gt; +    gdk_cairo_region(cr, (GdkRegion*)reg);

Why are you casting here. Isn&apos;t this incorect on old versions of GTK+? I don&apos;t think it&apos;s right to cast between a cairo region and GdkRegion.

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:432
&gt; -    if (gdk_rectangle_intersect(&amp;area, &amp;sourceRect, &amp;moveRect)) {
&gt; -        GdkRegion* moveRegion = gdk_region_rectangle(&amp;moveRect);
&gt; +    if (gdk_rectangle_intersect((GdkRectangle*)&amp;area, (GdkRectangle*)&amp;sourceRect, (GdkRectangle*)&amp;moveRect)) {
&gt; +        GdkRegion* moveRegion = gdk_region_rectangle((GdkRectangle*)&amp;moveRect);
&gt;          gdk_window_move_region(window, moveRegion, delta.width(), delta.height());

I have the same feeling here!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405520</commentid>
    <comment_count>11</comment_count>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-17 22:33:14 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 93793 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=93793&amp;action=review
&gt; 
&gt; I&apos;m not sure I understand this patch. While depending on a newer version of Cairo means that we can use cairo_rect_t and cairo_region_t, it doesn&apos;t mean we can use it with old versions of GTK+.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:639
&gt; &gt; +    gdk_cairo_region(cr, (GdkRegion*)reg);
&gt; 
&gt; Why are you casting here. Isn&apos;t this incorect on old versions of GTK+? I don&apos;t think it&apos;s right to cast between a cairo region and GdkRegion.

Yes, this is incorrect on GTK+2. Instead, I think I can remove all GTK+ code in here.

&gt; 
&gt; &gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:432
&gt; &gt; -    if (gdk_rectangle_intersect(&amp;area, &amp;sourceRect, &amp;moveRect)) {
&gt; &gt; -        GdkRegion* moveRegion = gdk_region_rectangle(&amp;moveRect);
&gt; &gt; +    if (gdk_rectangle_intersect((GdkRectangle*)&amp;area, (GdkRectangle*)&amp;sourceRect, (GdkRectangle*)&amp;moveRect)) {
&gt; &gt; +        GdkRegion* moveRegion = gdk_region_rectangle((GdkRectangle*)&amp;moveRect);
&gt; &gt;          gdk_window_move_region(window, moveRegion, delta.width(), delta.height());
&gt; 
&gt; I have the same feeling here!

This is not the same case. I just did type cast cairo_rectangle_int_t to GdkRectangle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>406491</commentid>
    <comment_count>12</comment_count>
      <attachid>94085</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-19 10:22:08 -0700</bug_when>
    <thetext>Created attachment 94085
Proposed Patch3

Gtk+ code has been removed in the drawFocusRing method from GraphicsContextCairo.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409605</commentid>
    <comment_count>13</comment_count>
      <attachid>94085</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-25 06:19:10 -0700</bug_when>
    <thetext>Comment on attachment 94085
Proposed Patch3

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

I like removing IntRectGtk, and bringing the code closer to a future removal of gtk2 support, but there are some convoluted casts which are unnecessary and we should use c++-style casts everywhere, so r- on these grounds.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:-653
&gt; -#if PLATFORM(GTK)
&gt; -#ifdef GTK_API_VERSION_2
&gt; -    GdkRegion* reg = gdk_region_new();
&gt; -#else
&gt; -    cairo_region_t* reg = cairo_region_create();
&gt; -#endif
&gt; -
&gt; -    for (unsigned i = 0; i &lt; rectCount; i++) {
&gt; -#ifdef GTK_API_VERSION_2
&gt; -        GdkRectangle rect = rects[i];
&gt; -        gdk_region_union_with_rect(reg, &amp;rect);
&gt; -#else
&gt; -        cairo_rectangle_int_t rect = rects[i];
&gt; -        cairo_region_union_rectangle(reg, &amp;rect);
&gt; -#endif
&gt; -    }
&gt; -    gdk_cairo_region(cr, reg);
&gt; -#ifdef GTK_API_VERSION_2
&gt; -    gdk_region_destroy(reg);
&gt; -#else
&gt; -    cairo_region_destroy(reg);
&gt; -#endif
&gt; -#else

Removing this code seems unnecessary for our goals - just keeping it the way it is would work just fine. What do we gain by removing this (in addition to less #ifdef churn)?

&gt; Source/WebCore/platform/gtk/GtkPluginWidget.cpp:55
&gt; -    GdkRectangle rect = _rect;
&gt; -    gdk_window_invalidate_rect(window, &amp;rect, FALSE);
&gt; +    cairo_rectangle_int_t rect = _rect;
&gt; +    gdk_window_invalidate_rect(window, (GdkRectangle*)&amp;rect, FALSE);

This is fine. GdkRectangle used to be a public struct, as is cairo_rectangle_int_t, as opposed to their region counterparts that are opaque, and they have the exact same size and offsets. But, you should use C++ cast convention here, so static_cast&lt;GdkRectangle*&gt;(&amp;rect).

&gt; Source/WebCore/platform/gtk/GtkPluginWidget.cpp:84
&gt; -    event-&gt;expose.area = static_cast&lt;GdkRectangle&gt;(rect);
&gt; +    cairo_rectangle_int_t rectangle = rect;
&gt; +    event-&gt;expose.area = *(GdkRectangle*)&amp;rectangle;

This seems to be unnecessarily convoluted. Why cast the address of the variable to a pointer just to derreference it?

&gt; Source/WebCore/plugins/gtk/PluginViewGtk.cpp:565
&gt; +    GtkAllocation allocation(*(GdkRectangle*)&amp;delayedRect);

Same here.

&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:679
&gt; +        paintWebView(frame, priv-&gt;transparent, gc, static_cast&lt;IntRect&gt;(*(cairo_rectangle_int_t*)&amp;event-&gt;area), paintRects);

And here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409628</commentid>
    <comment_count>14</comment_count>
      <attachid>94085</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-25 07:42:18 -0700</bug_when>
    <thetext>Comment on attachment 94085
Proposed Patch3

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

&gt;&gt; Source/WebCore/platform/gtk/GtkPluginWidget.cpp:55
&gt;&gt; -    GdkRectangle rect = _rect;
&gt;&gt; -    gdk_window_invalidate_rect(window, &amp;rect, FALSE);
&gt;&gt; +    cairo_rectangle_int_t rect = _rect;
&gt;&gt; +    gdk_window_invalidate_rect(window, (GdkRectangle*)&amp;rect, FALSE);
&gt; 
&gt; This is fine. GdkRectangle used to be a public struct, as is cairo_rectangle_int_t, as opposed to their region counterparts that are opaque, and they have the exact same size and offsets. But, you should use C++ cast convention here, so static_cast&lt;GdkRectangle*&gt;(&amp;rect).

With this change, I recommend fixing the naming of _rect too. It should be called coreRect or something similar.

&gt; Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:431
&gt; -    GdkRegion* invalidRegion = gdk_region_rectangle(&amp;area);
&gt; +    GdkRegion* invalidRegion = gdk_region_rectangle((GdkRectangle*)&amp;area);
&gt;  
&gt; -    if (gdk_rectangle_intersect(&amp;area, &amp;sourceRect, &amp;moveRect)) {
&gt; -        GdkRegion* moveRegion = gdk_region_rectangle(&amp;moveRect);
&gt; +    if (gdk_rectangle_intersect((GdkRectangle*)&amp;area, (GdkRectangle*)&amp;sourceRect, (GdkRectangle*)&amp;moveRect)) {
&gt; +        GdkRegion* moveRegion = gdk_region_rectangle((GdkRectangle*)&amp;moveRect);

Instead of casting everywhere, if you must cast, you could do it once at the beginning of the #ifdef.

I&apos;m not sure I understand changes like this though. We still maintain GTK+ 2 support so using GdkRectangle makes sense, since it&apos;s defined to be cairo_rectangle_t by GDK itself. This change doesn&apos;t simplify the code or remove any lines...it actually makes it more complicated. I definitely support preparing for GTK+ 3, but what&apos;s the reasoning for this change? Couldn&apos;t it wait until we simply remove GTK+ 2 support?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>409638</commentid>
    <comment_count>15</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-25 07:56:31 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; I&apos;m not sure I understand changes like this though. We still maintain GTK+ 2 support so using GdkRectangle makes sense, since it&apos;s defined to be cairo_rectangle_t by GDK itself. This change doesn&apos;t simplify the code or remove any lines...it actually makes it more complicated. I definitely support preparing for GTK+ 3, but what&apos;s the reasoning for this change? Couldn&apos;t it wait until we simply remove GTK+ 2 support?

The idea was to remove IntRectGtk, but I don&apos;t really mind keeping it if you think makes sense. We can then just use cairo_rectangle_int_t unconditionally only on the parts where GdkRectangle is not necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411256</commentid>
    <comment_count>16</comment_count>
      <attachid>94085</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-27 01:15:32 -0700</bug_when>
    <thetext>Comment on attachment 94085
Proposed Patch3

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

&gt;&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:-653
&gt;&gt; -#else
&gt; 
&gt; Removing this code seems unnecessary for our goals - just keeping it the way it is would work just fine. What do we gain by removing this (in addition to less #ifdef churn)?

If we keep this part of code, we have to add casting code here. Instead, it seems possible to remove GTK+ code if we use Cairo 1.10.
Isn&apos;t it good to remove platform specific code here if possible?

&gt;&gt;&gt; Source/WebCore/platform/gtk/GtkPluginWidget.cpp:55
&gt;&gt;&gt; +    gdk_window_invalidate_rect(window, (GdkRectangle*)&amp;rect, FALSE);
&gt;&gt; 
&gt;&gt; This is fine. GdkRectangle used to be a public struct, as is cairo_rectangle_int_t, as opposed to their region counterparts that are opaque, and they have the exact same size and offsets. But, you should use C++ cast convention here, so static_cast&lt;GdkRectangle*&gt;(&amp;rect).
&gt; 
&gt; With this change, I recommend fixing the naming of _rect too. It should be called coreRect or something similar.

kov, we can use not static_cast but reinterpret_cast here, because static_cast just can convert between two related types like casting a base-class pointer to a derived-class pointer, and vice-versa. It seems not consider the size. So I will change this casting code as follows:
 gdk_window_invalidate_rect(window, reinterpret_cast&lt;GdkRectangle*&gt;(&amp;rect), FALSE);

Martin, it makes sense, so I will rename _rect to coreRect.

&gt;&gt; Source/WebCore/platform/gtk/GtkPluginWidget.cpp:84
&gt;&gt; +    event-&gt;expose.area = *(GdkRectangle*)&amp;rectangle;
&gt; 
&gt; This seems to be unnecessarily convoluted. Why cast the address of the variable to a pointer just to derreference it?

Pointer type of structure can be only casted, so it needs to dereference it. Anyway, I will change this code as follows:
 event-&gt;expose.area = *reinterpret_cast&lt;GdkRectangle*&gt;(&amp;rectangle);

&gt;&gt; Source/WebKit/gtk/webkit/webkitwebview.cpp:679
&gt;&gt; +        paintWebView(frame, priv-&gt;transparent, gc, static_cast&lt;IntRect&gt;(*(cairo_rectangle_int_t*)&amp;event-&gt;area), paintRects);
&gt; 
&gt; And here.

I will update this code as follows:

cairo_rectangle_int_t rect = *reinterpret_cast&lt;cairo_rectangle_int_t*&gt;(&amp;event-&gt;area);
paintWebView(frame, priv-&gt;transparent, gc, static_cast&lt;IntRect&gt;(rect), paintRects);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411955</commentid>
    <comment_count>17</comment_count>
      <attachid>95284</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-05-29 02:14:13 -0700</bug_when>
    <thetext>Created attachment 95284
Proposed Patch4

I applied my above comment to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412578</commentid>
    <comment_count>18</comment_count>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-05-31 06:19:04 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; &gt; Removing this code seems unnecessary for our goals - just keeping it the way it is would work just fine. What do we gain by removing this (in addition to less #ifdef churn)?
&gt; 
&gt; If we keep this part of code, we have to add casting code here. Instead, it seems possible to remove GTK+ code if we use Cairo 1.10.
&gt; Isn&apos;t it good to remove platform specific code here if possible?

No, there is no need to touch this code at all, not even to add casts. There was probably a reason for having this platform-specific branch here, so unless we understand why or what we would gain (other than less ifdef churn) I don&apos;t see a reason to mess with it.

&gt; kov, we can use not static_cast but reinterpret_cast here, because static_cast just can convert between two related types like casting a base-class pointer to a derived-class pointer, and vice-versa. It seems not consider the size. So I will change this casting code as follows:
&gt;  gdk_window_invalidate_rect(window, reinterpret_cast&lt;GdkRectangle*&gt;(&amp;rect), FALSE);

Sure, the important thing is to use the C++-style casts to be style-compliant =).

&gt; Martin, it makes sense, so I will rename _rect to coreRect.

I have a suggestion, though, which will be in line with what Martin Robinson is saying. Let&apos;s keep IntRectGtk, since this is complicating the code more than it should. Let&apos;s use cairo_rectangle_int_t where possible and where GdkRectangles are necessary you just use them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413900</commentid>
    <comment_count>19</comment_count>
      <attachid>95720</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-06-01 22:01:43 -0700</bug_when>
    <thetext>Created attachment 95720
Proposed Patch5

I updated the patch with the changes suggested by kov, Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421935</commentid>
    <comment_count>20</comment_count>
      <attachid>95720</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2011-06-16 07:09:34 -0700</bug_when>
    <thetext>Comment on attachment 95720
Proposed Patch5

Looks good to me, but I&apos;d prefer to have Martin give the last go here =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421953</commentid>
    <comment_count>21</comment_count>
      <attachid>95720</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-06-16 07:51:35 -0700</bug_when>
    <thetext>Comment on attachment 95720
Proposed Patch5

This looks fine except that I think you should remove the OwnPtr and IntRect changes until they are actually used. It&apos;s weird to check them in as dead code. I think this patch is fine just bumping the Cairo dependency and then depending on it in a few remaining places. Please make these changes before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422548</commentid>
    <comment_count>22</comment_count>
      <attachid>97576</attachid>
    <who name="Joone Hur">joone.hur</who>
    <bug_when>2011-06-17 04:09:02 -0700</bug_when>
    <thetext>Created attachment 97576
Proposed Patch6

I&apos;ve removed the OwnPtr change, but we still need the IntRect change(support for cairo_rectangle_int_t) to work with Gtk+3.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422559</commentid>
    <comment_count>23</comment_count>
      <attachid>97576</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 04:50:11 -0700</bug_when>
    <thetext>Comment on attachment 97576
Proposed Patch6

Clearing flags on attachment: 97576

Committed r89133: &lt;http://trac.webkit.org/changeset/89133&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>422560</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-17 04:50:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93263</attachid>
            <date>2011-05-12 00:56:07 -0700</date>
            <delta_ts>2011-05-17 10:37:55 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>14246</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3YWIzYjEyLi40NzY4YzQy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDUtMTIgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFj
ZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2Ug
R2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzogQ2hlY2sgd2hldGhlciBDYWlybyB2ZXJzaW9uIGlzIGhpZ2hlciB0aGFuIDEuMTAu
CisKIDIwMTEtMDUtMTEgIERtaXRyeSBMb21vdiAgPGRzbG9tb3ZAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBEYXZpZCBMZXZpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4
IDU0YTg5OWEuLmUzNTgxZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDExLTA1LTEyICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJl
cGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBs
YWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiB3
dGYvZ29iamVjdC9HVHlwZWRlZnMuaDogUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVj
dGFuZ2xlX2ludF90LgorCiAyMDExLTA1LTExICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZzLmgKaW5kZXggYzdmN2FjNC4uYzg3OGYzMyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlwZWRlZnMuaApAQCAt
NjMsNiArNjMsNyBAQCB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIAogI2lmIFVT
RShDQUlSTykKIHR5cGVkZWYgc3RydWN0IF9jYWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsK
K3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50IGNhaXJvX3JlY3RhbmdsZV9pbnRf
dDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAtODcsOCArODgsNiBAQCB0eXBlZGVm
IHN0cnVjdCBfR2RrUmVjdGFuZ2xlIEdka1JlY3RhbmdsZTsKIHR5cGVkZWYgc3RydWN0IF9HZGtE
cmF3YWJsZSBHZGtXaW5kb3c7CiAjZWxzZQogdHlwZWRlZiBzdHJ1Y3QgX0dka1dpbmRvdyBHZGtX
aW5kb3c7Ci10eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5n
bGVfaW50X3Q7Ci10eXBlZGVmIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBHZGtSZWN0YW5nbGU7CiB0
eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGVDb250ZXh0IEd0a1N0eWxlQ29udGV4dDsKICNlbmRpZgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzI3NDNmMC4uYzRjODM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTA1LTEyICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJl
cGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBs
YWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOiAgQWRkZWQgSW50UmVjdENhaXJvLmNwcAorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbnRSZWN0Q2Fpcm8uY3BwOiBDcmVhdGUgYW4gSW50UmVjdCBvYmplY3Qgd2l0aCB0aGUg
Z2l2ZW4gY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL093blB0ckNhaXJvLmNwcDogT3duUHRyIHN1cHBvcnQgZm9yIGNhaXJvX3JlZ2lvbl90
IGFuZCBjYWlyb19yZWN0YW5nbGVfdC4KKyAgICAgICAgKFdURjo6Y2Fpcm9fcmVnaW9uX3QpOgor
ICAgICAgICAoV1RGOjpjYWlyb19yZWN0YW5nbGVfdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9n
dGsvSW50UmVjdEd0ay5jcHA6IEluY2x1ZGUgdGhpcyBmaWxlIG9ubHkgZm9yIEdUSysyIGJ1aWxk
LgorCiAyMDExLTA1LTExICBOYXQgRHVjYSAgPG5kdWNhQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBKYW1lcyBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CmluZGV4IGEzMGRkNDAuLjM0Y2I5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMzY4NCw2ICszNjg0LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhLmggXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIFwK
KwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3Bw
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJv
LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5j
cHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmluZGV4IGQy
YjM0OGIuLmJlM2U4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRS
ZWN0LmgKQEAgLTUwLDkgKzUwLDYgQEAgUVRfRU5EX05BTUVTUEFDRQogI2VsaWYgUExBVEZPUk0o
R1RLKQogI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiB0eXBlZGVmIHN0cnVjdCBfR2RrUmVjdGFu
Z2xlIEdka1JlY3RhbmdsZTsKLSNlbHNlCi10eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xl
X2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7Ci10eXBlZGVmIGNhaXJvX3JlY3RhbmdsZV9pbnRf
dCBHZGtSZWN0YW5nbGU7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEhBSUtVKQogY2xhc3MgQlJl
Y3Q7CkBAIC02MCw2ICs1NywxMCBAQCBjbGFzcyBCUmVjdDsKIHR5cGVkZWYgc3RydWN0IF9FaW5h
X1JlY3RhbmdsZSBFaW5hX1JlY3RhbmdsZTsKICNlbmRpZgogCisjaWYgVVNFKENBSVJPKQordHlw
ZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90Owor
I2VuZGlmCisKICNpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4UmVjdDsKICNlbmRpZgpAQCAtMTc4
LDggKzE3OSwxMCBAQCBwdWJsaWM6CiAgICAgSW50UmVjdChjb25zdCBRUmVjdCYpOwogICAgIG9w
ZXJhdG9yIFFSZWN0KCkgY29uc3Q7CiAjZWxpZiBQTEFURk9STShHVEspCisjaWZkZWYgR1RLX0FQ
SV9WRVJTSU9OXzIKICAgICBJbnRSZWN0KGNvbnN0IEdka1JlY3RhbmdsZSYpOwogICAgIG9wZXJh
dG9yIEdka1JlY3RhbmdsZSgpIGNvbnN0OworI2VuZGlmCiAjZWxpZiBQTEFURk9STShIQUlLVSkK
ICAgICBleHBsaWNpdCBJbnRSZWN0KGNvbnN0IEJSZWN0Jik7CiAgICAgb3BlcmF0b3IgQlJlY3Qo
KSBjb25zdDsKQEAgLTE4OCw2ICsxOTEsMTEgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIEVpbmFf
UmVjdGFuZ2xlKCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIFVTRShDQUlSTykKKyAgICBJbnRSZWN0
KGNvbnN0IGNhaXJvX3JlY3RhbmdsZV9pbnRfdCYpOworICAgIG9wZXJhdG9yIGNhaXJvX3JlY3Rh
bmdsZV9pbnRfdCgpIGNvbnN0OworI2VuZGlmCisKICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09O
X01BQ19DSFJPTUUpCiAgICAgb3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWly
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fp
cm8uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZjNhZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRS
ZWN0Q2Fpcm8uY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcg
QWxwIFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBDb2xsYWJv
cmEgTHRkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUg
TGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz
ZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBs
aWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorCisjaW5j
bHVkZSA8Y2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRSZWN0OjpJbnRSZWN0
KGNvbnN0IGNhaXJvX3JlY3RhbmdsZV9pbnRfdCYgcikKKyAgICA6IG1fbG9jYXRpb24oSW50UG9p
bnQoci54LCByLnkpKQorICAgICwgbV9zaXplKHIud2lkdGgsIHIuaGVpZ2h0KQoreworfQorCitJ
bnRSZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfaW50X3QoKSBjb25zdAoreworICAgIGNh
aXJvX3JlY3RhbmdsZV9pbnRfdCByID0geyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsK
KyAgICByZXR1cm4gcjsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCmluZGV4IDE1OTRlN2IuLjRkYWRlZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0
ckNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9P
d25QdHJDYWlyby5jcHAKQEAgLTQ5LDQgKzQ5LDE2IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRl
T3duZWRQdHI8Y2Fpcm9fcGF0aF90PihjYWlyb19wYXRoX3QqIHB0cikKICAgICAgICAgY2Fpcm9f
cGF0aF9kZXN0cm95KHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8
Y2Fpcm9fcmVnaW9uX3Q+KGNhaXJvX3JlZ2lvbl90KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAg
ICAgICAgY2Fpcm9fcmVnaW9uX2Rlc3Ryb3kocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBk
ZWxldGVPd25lZFB0cjxjYWlyb19yZWN0YW5nbGVfdD4oY2Fpcm9fcmVjdGFuZ2xlX3QqIHB0cikK
K3sKKyAgICBpZiAocHRyKQorICAgICAgICBmcmVlKHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
T3duUHRyQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093
blB0ckNhaXJvLmgKaW5kZXggYmQ1MTdiMi4uOGNlNGE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oCkBAIC0yOSw2ICsy
OSw4IEBAIHR5cGVkZWYgc3RydWN0IF9GY0ZvbnRTZXQgRmNGb250U2V0OwogI2VuZGlmCiAKIHR5
cGVkZWYgc3RydWN0IGNhaXJvX3BhdGggY2Fpcm9fcGF0aF90OwordHlwZWRlZiBzdHJ1Y3QgX2Nh
aXJvX3JlZ2lvbiBjYWlyb19yZWdpb25fdDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5n
bGUgY2Fpcm9fcmVjdGFuZ2xlX3Q7CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0zOCw2ICs0MCw4
IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNGb250U2V0PihGY0ZvbnRTZXQq
KTsKICNlbmRpZgogCiB0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3BhdGhf
dD4oY2Fpcm9fcGF0aF90Kik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJv
X3JlZ2lvbl90PihjYWlyb19yZWdpb25fdCopOwordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25l
ZFB0cjxjYWlyb19yZWN0YW5nbGVfdD4oY2Fpcm9fcmVjdGFuZ2xlX3QqKTsKIAogfSAvLyBuYW1l
c3BhY2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9JbnRSZWN0R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9JbnRSZWN0R3RrLmNwcAppbmRleCBhYWExOTQ0Li4xZjMxMjgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW50UmVjdEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsuY3BwCkBAIC0yMiw2
ICsyMiw3IEBACiAKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJ
T05fMgogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJbnRSZWN0OjpJbnRSZWN0KGNvbnN0IEdka1Jl
Y3RhbmdsZSYgcikKQEAgLTM3LDUgKzM4LDQgQEAgSW50UmVjdDo6b3BlcmF0b3IgR2RrUmVjdGFu
Z2xlKCkgY29uc3QKIH0KIAogfQotCi0vLyB2aW06IHRzPTQgc3c9NCBldAorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKaW5kZXggNjZhMGE3MS4uYWQ4MjBlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDExLTA1LTEyICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNv
LnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtH
VEtdIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAg
ICBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOiBSZXBsYWNl
IEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKToKKyAgICAgICAg
KER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKToKKyAgICAg
ICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDogRGl0dG8uCisK
IDIwMTEtMDUtMDkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEZpeCBhIHRlc3QgYWZ0ZXIgcjg2MTAyLiBTY3JvbGxiYXJzIHVwZGF0ZSBhc3luY2hy
b25vdXNseSwgc28gd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDJiMTU0YTIuLjI4
NGM3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNTUzLDcgKzU1Myw3IEBAIHZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpjb25maXJtQ29tcG9zaXRpb24oV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgY29uc3QKICAgICAgICAgZWRpdG9yLT5pbnNlcnRUZXh0KFN0cmluZzo6
ZnJvbVVURjgodGV4dCksIDApOwogfQogCi1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaW50IGxv
Y2F0aW9uLCBpbnQgbGVuZ3RoLCBHZGtSZWN0YW5nbGUqIHJlY3QpCitib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoLCBjYWlyb19yZWN0YW5nbGVfaW50X3Qq
IHJlY3QpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpLCBmYWxzZSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocmVjdCwgZmFsc2UpOwpA
QCAtNzgyLDcgKzc4Miw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRWYWx1
ZUZvclVzZXIoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYKICAgICBpbnB1dEVsZW1l
bnQtPnNldFZhbHVlRm9yVXNlcihTdHJpbmc6OmZyb21VVEY4KHZhbHVlQnVmZmVyLmdldCgpKSk7
CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rp
b24oV2ViS2l0V2ViRnJhbWUqIGZyYW1lLCBHZGtSZWN0YW5nbGUqIHJlY3RhbmdsZSkKK3ZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2Vi
RnJhbWUqIGZyYW1lLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqIHJlY3RhbmdsZSkKIHsKICAgICBG
cmFtZSogY29yZUZyYW1lID0gY29yZShmcmFtZSk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5oCmluZGV4IDMzOGJiNDYuLjk5ZmM2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCkBAIC05OSwxMSArOTksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGZpbmRT
dHJpbmcoV2ViS2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiwgV2ViS2l0RmluZE9wdGlvbnMpOwog
ICAgIHN0YXRpYyB2b2lkIHNldENvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFy
KiB0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpOwogICAgIHN0YXRpYyB2b2lkIGNvbmZpcm1Db21w
b3NpdGlvbihXZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciogdGV4dCk7Ci0gICAgc3RhdGljIGJv
b2wgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCBsb2NhdGlv
biwgaW50IGxlbmd0aCwgR2RrUmVjdGFuZ2xlKik7CisgICAgc3RhdGljIGJvb2wgZmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCBsb2NhdGlvbiwgaW50IGxlbmd0
aCwgY2Fpcm9fcmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0ZWRSYW5n
ZShXZWJLaXRXZWJWaWV3KiwgaW50KiBzdGFydCwgaW50KiBlbmQpOwogICAgIHN0YXRpYyBkb3Vi
bGUgZGVmYXVsdE1pbmltdW1UaW1lckludGVydmFsKCk7IC8vIE5vdCByZWFsbHkgdGllZCB0byBX
ZWJWaWV3CiAgICAgc3RhdGljIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoV2ViS2l0V2Vi
VmlldyosIGRvdWJsZSk7Ci0gICAgc3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdl
YktpdFdlYkZyYW1lKiwgR2RrUmVjdGFuZ2xlKik7CisgICAgc3RhdGljIHZvaWQgcmVjdGFuZ2xl
Rm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9fcmVjdGFuZ2xlX2ludF90Kik7CiAg
ICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyosIGZsb2F0LCBmbG9hdCwg
ZmxvYXQpOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDVmNGM4OTUuLjNiZmJhYzMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAxMS0wNS0xMiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBSZXBsYWNl
IEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAgUmVwbGFjZSBH
ZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3Rhbmds
ZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0
RnJvbVdlYlZpZXcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250
cm9sbGVyLmNwcDogRGl0dG8uCisgICAgICAgIChmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNh
bGxiYWNrKToKKwogMjAxMS0wNS0xMSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHAKaW5kZXggMmJkOGZlMi4uM2VhYmZkOSAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3RrLmNw
cApAQCAtNjAsNyArNjAsNyBAQCBQYXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1h
cENvbnRleHRGcm9tV2ViVmlldyhib29sLCBib29sLCBib29sLCBib29sCiAjZW5kaWYKIAogICAg
IGlmIChkcmF3U2VsZWN0aW9uUmVjdCkgewotICAgICAgICBHZGtSZWN0YW5nbGUgcmVjdGFuZ2xl
OworICAgICAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgcmVjdGFuZ2xlOwogICAgICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbihtYWluRnJhbWUsICZy
ZWN0YW5nbGUpOwogCiAgICAgICAgIGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIDEuMCk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxl
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAK
aW5kZXggZDFhYTMzZC4uNDNkZDc0MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqCiAgICAgaW50IGxlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRv
TnVtYmVyKGNvbnRleHQsIGFyZ3VtZW50c1sxXSwgZXhjZXB0aW9uKSk7CiAgICAgZ19yZXR1cm5f
dmFsX2lmX2ZhaWwoKCFleGNlcHRpb24gfHwgISpleGNlcHRpb24pLCBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KSk7CiAKLSAgICBHZGtSZWN0YW5nbGUgcmVjdDsKKyAgICBjYWlyb19yZWN0
YW5nbGVfaW50X3QgcmVjdDsKICAgICBpZiAoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Zmly
c3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UodmlldywgbG9jYXRpb24sIGxlbmd0aCwgJnJlY3QpKQog
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKZGlmZiAtLWdp
dCBhL2NvbmZpZ3VyZS5hYyBiL2NvbmZpZ3VyZS5hYwppbmRleCA0NTRlOTZlLi41YzU4OTQ4IDEw
MDY0NAotLS0gYS9jb25maWd1cmUuYWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yNTUsNyArMjU1
LDcgQEAgZmkKIAogIyBtaW5pbXVtIGJhc2UgZGVwZW5kZW5jaWVzCiBMSUJTT1VQX1JFUVVJUkVE
X1ZFUlNJT049Mi4zMy42Ci1DQUlST19SRVFVSVJFRF9WRVJTSU9OPTEuNgorQ0FJUk9fUkVRVUlS
RURfVkVSU0lPTj0xLjEwCiBGT05UQ09ORklHX1JFUVVJUkVEX1ZFUlNJT049Mi40CiBGUkVFVFlQ
RTJfUkVRVUlSRURfVkVSU0lPTj05LjAKIExJQlhNTF9SRVFVSVJFRF9WRVJTSU9OPTIuNgo=
</data>
<flag name="review"
          id="86396"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93793</attachid>
            <date>2011-05-17 10:37:55 -0700</date>
            <delta_ts>2011-05-19 10:22:08 -0700</delta_ts>
            <desc>Proposed Patch2</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>24646</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA4NGUzZDdkLi5hODc3YmUz
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDUtMTcgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFj
ZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2Ug
R2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzogQ2hlY2sgd2hldGhlciBDYWlybyB2ZXJzaW9uIGlzIGhpZ2hlciB0aGFuIDEuMTAu
CisKIDIwMTEtMDUtMTYgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hcnRpbiBSb2JpbnNvbi4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCmluZGV4IGE2ZmY0OWYuLjRjMDA4NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE0IEBACisyMDExLTA1LTE3ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFi
b3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKwor
ICAgICAgICBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisK
KyAgICAgICAgKiB3dGYvZ29iamVjdC9HVHlwZWRlZnMuaDogUmVwbGFjZSBHZGtSZWN0YW5nbGUg
YnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCiAyMDExLTA1LTE2ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByODY2NTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmpl
Y3QvR1R5cGVkZWZzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVk
ZWZzLmgKaW5kZXggYzdmN2FjNC4uYzg3OGYzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS93dGYvZ29iamVjdC9HVHlwZWRlZnMuaApAQCAtNjMsNiArNjMsNyBAQCB0eXBlZGVmIHVuaW9u
IF9HZGtFdmVudCBHZGtFdmVudDsKIAogI2lmIFVTRShDQUlSTykKIHR5cGVkZWYgc3RydWN0IF9j
YWlyb19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0
YW5nbGVfaW50IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
R1RLKQpAQCAtODcsOCArODgsNiBAQCB0eXBlZGVmIHN0cnVjdCBfR2RrUmVjdGFuZ2xlIEdka1Jl
Y3RhbmdsZTsKIHR5cGVkZWYgc3RydWN0IF9HZGtEcmF3YWJsZSBHZGtXaW5kb3c7CiAjZWxzZQog
dHlwZWRlZiBzdHJ1Y3QgX0dka1dpbmRvdyBHZGtXaW5kb3c7Ci10eXBlZGVmIHN0cnVjdCBfY2Fp
cm9fcmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7Ci10eXBlZGVmIGNhaXJvX3Jl
Y3RhbmdsZV9pbnRfdCBHZGtSZWN0YW5nbGU7CiB0eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGVDb250
ZXh0IEd0a1N0eWxlQ29udGV4dDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjlmOGM4YS4uOWZh
NWJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1LTE3ICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJv
X3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19y
ZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGRlZCBJ
bnRSZWN0Q2Fpcm8uY3BwIGluc3RlYWQgb2YgSW50UmVjdEd0ay5jcHAKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6IEludFJlY3QgY2xhc3MgY2FuIGJlIGluc3RhbnRpYXRl
ZCB0aHJvdWdoIHRoZSBnaXZlbiBjYWlyb19yZWN0YW5nbGVfaW50X3QgCisgICAgICAgIGluc3Rl
YWQgb2YgR2RrUmVjdGFuZ2xlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dy
YXBoaWNzQ29udGV4dENhaXJvLmNwcDogUmVtb3ZlIHRoZSBjb2RlIG9mIHVzaW5nIEdka1JlY3Rh
bmdsZSBhbmQgR2RrUmVnaW9uLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0
Q2Fpcm8uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0ludFJlY3RHdGsuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW50UmVjdDo6SW50UmVjdCk6
IAorICAgICAgICAoV2ViQ29yZTo6SW50UmVjdDo6b3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX2lu
dF90KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHA6
IE93blB0ciBzdXBwb3J0IGZvciBjYWlyb19yZWdpb25fdCBhbmQgY2Fpcm9fcmVjdGFuZ2xlX3Qu
CisgICAgICAgIChXVEY6OmNhaXJvX3JlZ2lvbl90KToKKyAgICAgICAgKFdURjo6Y2Fpcm9fcmVj
dGFuZ2xlX3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJv
Lmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwOiBS
ZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisgICAgICAgIChX
ZWJDb3JlOjpHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6Okd0a1BsdWdpbldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsdWdpbnMvZ3RrL1BsdWdp
blZpZXdHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50
X3QuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVXaWRnZXRBbGxvY2F0aW9u
QW5kQ2xpcCk6CisKIDIwMTEtMDUtMTcgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9w
ZW5ib3NzYS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCB3YXJuaW5nIGZpeCBpbnRyb2R1Y2Vk
IGJ5IHI4NjM3Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3Qu
YW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGZiZTU3MDUuLjRk
MjQ1ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMzY4OCw2ICszNjg4LDcg
QEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VCdWZmZXJEYXRhLmggXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmggXAogCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAgXApAQCAtMzcyMyw3ICsz
NzI0LDYgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvSW1hZ2VCdWZmZXJHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvSW1hZ2VHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvSW50UG9pbnRHdGsuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvSW50UmVjdEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DbGlwYm9hcmRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xp
cGJvYXJkR3RrLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9hcmRVdGls
aXRpZXNHdGsuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
aAppbmRleCA1NTI3Mzg3Li4wYTUwYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW50UmVjdC5oCkBAIC01MCw5ICs1MCw2IEBAIFFUX0VORF9OQU1FU1BBQ0UKICNlbGlm
IFBMQVRGT1JNKEdUSykKICNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogdHlwZWRlZiBzdHJ1Y3Qg
X0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7Ci0jZWxzZQotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJv
X3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWlyb19yZWN0
YW5nbGVfaW50X3QgR2RrUmVjdGFuZ2xlOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShIQUlLVSkK
IGNsYXNzIEJSZWN0OwpAQCAtNjAsNiArNTcsMTAgQEAgY2xhc3MgQlJlY3Q7CiB0eXBlZGVmIHN0
cnVjdCBfRWluYV9SZWN0YW5nbGUgRWluYV9SZWN0YW5nbGU7CiAjZW5kaWYKIAorI2lmIFVTRShD
QUlSTykKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50IGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV1gpCiBjbGFzcyB3eFJlY3Q7CiAjZW5k
aWYKQEAgLTE4MCw5ICsxODEsNiBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShRVCkKICAgICBJ
bnRSZWN0KGNvbnN0IFFSZWN0Jik7CiAgICAgb3BlcmF0b3IgUVJlY3QoKSBjb25zdDsKLSNlbGlm
IFBMQVRGT1JNKEdUSykKLSAgICBJbnRSZWN0KGNvbnN0IEdka1JlY3RhbmdsZSYpOwotICAgIG9w
ZXJhdG9yIEdka1JlY3RhbmdsZSgpIGNvbnN0OwogI2VsaWYgUExBVEZPUk0oSEFJS1UpCiAgICAg
ZXhwbGljaXQgSW50UmVjdChjb25zdCBCUmVjdCYpOwogICAgIG9wZXJhdG9yIEJSZWN0KCkgY29u
c3Q7CkBAIC0xOTEsNiArMTg5LDExIEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciBFaW5hX1JlY3Rh
bmdsZSgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBVU0UoQ0FJUk8pCisgICAgSW50UmVjdChjb25z
dCBjYWlyb19yZWN0YW5nbGVfaW50X3QmKTsKKyAgICBvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVf
aW50X3QoKSBjb25zdDsKKyNlbmRpZgorCiAjaWYgVVNFKENHKSB8fCBVU0UoU0tJQV9PTl9NQUNf
Q0hST01FKQogICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGlj
c0NvbnRleHRDYWlyby5jcHAKaW5kZXggZWVmOTdlZC4uMDg5OTM4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNz
Q29udGV4dENhaXJvLmNwcApAQCAtNjI5LDI3ICs2MjksMTkgQEAgdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHdpZHRo
LCBpbnQKICAgICBjYWlyb19uZXdfcGF0aChjcik7CiAKICNpZiBQTEFURk9STShHVEspCi0jaWZk
ZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICBHZGtSZWdpb24qIHJlZyA9IGdka19yZWdpb25fbmV3
KCk7Ci0jZWxzZQogICAgIGNhaXJvX3JlZ2lvbl90KiByZWcgPSBjYWlyb19yZWdpb25fY3JlYXRl
KCk7Ci0jZW5kaWYKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWN0Q291bnQ7IGkr
KykgewotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgICAgIEdka1JlY3RhbmdsZSByZWN0
ID0gcmVjdHNbaV07Ci0gICAgICAgIGdka19yZWdpb25fdW5pb25fd2l0aF9yZWN0KHJlZywgJnJl
Y3QpOwotI2Vsc2UKICAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IHJlY3QgPSByZWN0c1tp
XTsKICAgICAgICAgY2Fpcm9fcmVnaW9uX3VuaW9uX3JlY3RhbmdsZShyZWcsICZyZWN0KTsKLSNl
bmRpZgogICAgIH0KLSAgICBnZGtfY2Fpcm9fcmVnaW9uKGNyLCByZWcpOwogI2lmZGVmIEdUS19B
UElfVkVSU0lPTl8yCi0gICAgZ2RrX3JlZ2lvbl9kZXN0cm95KHJlZyk7CisgICAgZ2RrX2NhaXJv
X3JlZ2lvbihjciwgKEdka1JlZ2lvbiopcmVnKTsKICNlbHNlCi0gICAgY2Fpcm9fcmVnaW9uX2Rl
c3Ryb3kocmVnKTsKKyAgICBnZGtfY2Fpcm9fcmVnaW9uKGNyLCByZWcpOwogI2VuZGlmCisKKyAg
ICBjYWlyb19yZWdpb25fZGVzdHJveShyZWcpOwogI2Vsc2UKICAgICBpbnQgcmFkaXVzID0gKHdp
ZHRoIC0gMSkgLyAyOwogICAgIFBhdGggcGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZjNhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwCkBAIC0wLDAg
KzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRva2VyIDxhbHBAYXRva2Vy
LmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBDb2xsYWJvcmEgTHRkLgorICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxv
b3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitJbnRSZWN0OjpJbnRSZWN0KGNvbnN0IGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdCYgcikKKyAgICA6IG1fbG9jYXRpb24oSW50UG9pbnQoci54LCByLnkpKQorICAgICwg
bV9zaXplKHIud2lkdGgsIHIuaGVpZ2h0KQoreworfQorCitJbnRSZWN0OjpvcGVyYXRvciBjYWly
b19yZWN0YW5nbGVfaW50X3QoKSBjb25zdAoreworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBy
ID0geyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsKKyAgICByZXR1cm4gcjsKK30KKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3du
UHRyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3du
UHRyQ2Fpcm8uY3BwCmluZGV4IDE1OTRlN2IuLjRkYWRlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKQEAgLTQ5
LDQgKzQ5LDE2IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcGF0aF90
PihjYWlyb19wYXRoX3QqIHB0cikKICAgICAgICAgY2Fpcm9fcGF0aF9kZXN0cm95KHB0cik7CiB9
CiAKK3RlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcmVnaW9uX3Q+KGNhaXJv
X3JlZ2lvbl90KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAgICAgY2Fpcm9fcmVnaW9uX2Rl
c3Ryb3kocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWlyb19y
ZWN0YW5nbGVfdD4oY2Fpcm9fcmVjdGFuZ2xlX3QqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAg
ICAgICBmcmVlKHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKaW5kZXggYmQ1
MTdiMi4uOGNlNGE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Pd25QdHJDYWlyby5oCkBAIC0yOSw2ICsyOSw4IEBAIHR5cGVkZWYgc3RydWN0
IF9GY0ZvbnRTZXQgRmNGb250U2V0OwogI2VuZGlmCiAKIHR5cGVkZWYgc3RydWN0IGNhaXJvX3Bh
dGggY2Fpcm9fcGF0aF90OwordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlZ2lvbiBjYWlyb19yZWdp
b25fdDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGUgY2Fpcm9fcmVjdGFuZ2xlX3Q7
CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0zOCw2ICs0MCw4IEBAIHRlbXBsYXRlIDw+IHZvaWQg
ZGVsZXRlT3duZWRQdHI8RmNGb250U2V0PihGY0ZvbnRTZXQqKTsKICNlbmRpZgogCiB0ZW1wbGF0
ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3BhdGhfdD4oY2Fpcm9fcGF0aF90Kik7Cit0
ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3JlZ2lvbl90PihjYWlyb19yZWdp
b25fdCopOwordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWlyb19yZWN0YW5nbGVf
dD4oY2Fpcm9fcmVjdGFuZ2xlX3QqKTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFhMTk0NC4uMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW50UmVjdEd0ay5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJJbnRSZWN0Lmgi
Ci0KLSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotSW50UmVj
dDo6SW50UmVjdChjb25zdCBHZGtSZWN0YW5nbGUmIHIpCi0gICAgOiBtX2xvY2F0aW9uKEludFBv
aW50KHIueCwgci55KSkKLSAgICAsIG1fc2l6ZShyLndpZHRoLCByLmhlaWdodCkKLXsKLX0KLQot
SW50UmVjdDo6b3BlcmF0b3IgR2RrUmVjdGFuZ2xlKCkgY29uc3QKLXsKLSAgICBHZGtSZWN0YW5n
bGUgciA9IHsgeCgpLCB5KCksIHdpZHRoKCksIGhlaWdodCgpIH07Ci0gICAgcmV0dXJuIHI7Ci19
Ci0KLX0KLQotLy8gdmltOiB0cz00IHN3PTQgZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKaW5kZXggMzMxZjYwZi4uZjA1OTgyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKQEAgLTUx
LDggKzUxLDggQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0KGNvbnN0IElu
dFJlY3QmIF9yZWN0KQogICAgIGlmICghd2luZG93KQogICAgICAgICByZXR1cm47CiAKLSAgICBH
ZGtSZWN0YW5nbGUgcmVjdCA9IF9yZWN0OwotICAgIGdka193aW5kb3dfaW52YWxpZGF0ZV9yZWN0
KHdpbmRvdywgJnJlY3QsIEZBTFNFKTsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgcmVjdCA9
IF9yZWN0OworICAgIGdka193aW5kb3dfaW52YWxpZGF0ZV9yZWN0KHdpbmRvdywgKEdka1JlY3Rh
bmdsZSopJnJlY3QsIEZBTFNFKTsKIH0KIAogdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmZyYW1lUmVj
dHNDaGFuZ2VkKCkKQEAgLTgwLDcgKzgwLDggQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OnBhaW50
KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50UmVjdCYgcmVjdCkKIAogICAgIEdk
a0V2ZW50KiBldmVudCA9IGdka19ldmVudF9uZXcoR0RLX0VYUE9TRSk7CiAgICAgZXZlbnQtPmV4
cG9zZSA9ICpjb250ZXh0LT5nZGtFeHBvc2VFdmVudCgpOwotICAgIGV2ZW50LT5leHBvc2UuYXJl
YSA9IHN0YXRpY19jYXN0PEdka1JlY3RhbmdsZT4ocmVjdCk7CisgICAgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90IHJlY3RhbmdsZSA9IHJlY3Q7CisgICAgZXZlbnQtPmV4cG9zZS5hcmVhID0gKihHZGtS
ZWN0YW5nbGUqKSZyZWN0YW5nbGU7CiAKICAgICBJbnRQb2ludCBsb2MgPSBwYXJlbnQoKS0+Y29u
dGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDIzNzhkMjQuLjA4NzdmYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCkBAIC01NTAsOSArNTUw
LDkgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVXaWRnZXRBbGxvY2F0aW9uQW5kQ2xpcCgpCiAK
ICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IHBsYXRmb3JtUGx1Z2luV2lkZ2V0KCk7CiAgICAgaWYg
KGd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHdpZGdldCkpIHsKLSAgICAgICAgR2RrUmVjdGFuZ2xl
IGNsaXBSZWN0ID0gbV9jbGlwUmVjdDsKKyAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGNs
aXBSZWN0ID0gbV9jbGlwUmVjdDsKICNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotICAgICAgICBH
ZGtSZWdpb24qIGNsaXBSZWdpb24gPSBnZGtfcmVnaW9uX3JlY3RhbmdsZSgmY2xpcFJlY3QpOwor
ICAgICAgICBHZGtSZWdpb24qIGNsaXBSZWdpb24gPSBnZGtfcmVnaW9uX3JlY3RhbmdsZSgoR2Rr
UmVjdGFuZ2xlKikmY2xpcFJlY3QpOwogICAgICAgICBnZGtfd2luZG93X3NoYXBlX2NvbWJpbmVf
cmVnaW9uKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh3aWRnZXQpLCBjbGlwUmVnaW9uLCAwLCAwKTsK
ICAgICAgICAgZ2RrX3JlZ2lvbl9kZXN0cm95KGNsaXBSZWdpb24pOwogI2Vsc2UKQEAgLTU2MSw4
ICs1NjEsOCBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVdpZGdldEFsbG9jYXRpb25BbmRDbGlw
KCkKICAgICAgICAgY2Fpcm9fcmVnaW9uX2Rlc3Ryb3koY2xpcFJlZ2lvbik7CiAjZW5kaWYKICAg
ICB9Ci0KLSAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb24obV9kZWxheWVkQWxsb2NhdGlvbik7
CisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGRlbGF5ZWRSZWN0ID0gbV9kZWxheWVkQWxsb2Nh
dGlvbjsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRpb24oKihHZGtSZWN0YW5nbGUqKSZkZWxh
eWVkUmVjdCk7CiAgICAgZ3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKHdpZGdldCwgJmFsbG9jYXRp
b24pOwogICAgIG1fZGVsYXllZEFsbG9jYXRpb24gPSBJbnRSZWN0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VM
b2cKaW5kZXggMDczMzEzZS4uOTFhZWE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDExLTA1LTE3ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJl
cGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBs
YWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBi
eSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50OjpzY3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5jcHA6IERpdHRvLgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6IERpdHRvLgorICAgICAgICAqIHdlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcDogRGl0dG8uCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2
ZW50KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKToKKwogMjAxMS0w
NS0xNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgWGFuIExvcGV6LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2Vi
Q29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggZjMxYTAyNy4uMjQ3ZWE1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRH
dGsuY3BwCkBAIC0zODksMTEgKzM4OSwxMSBAQCB2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0
ZVdpbmRvdyhjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpCiAKIHZvaWQgQ2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCwgYm9vbCBpbW1lZGlhdGUpCiB7Ci0gICAgR2RrUmVjdGFuZ2xlIHJlY3QgPSB1cGRhdGVSZWN0
OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCByZWN0ID0gdXBkYXRlUmVjdDsKICAgICBHZGtX
aW5kb3cqIHdpbmRvdyA9IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhHVEtfV0lER0VUKG1fd2ViVmll
dykpOwogCiAgICAgaWYgKHdpbmRvdyAmJiAhdXBkYXRlUmVjdC5pc0VtcHR5KCkpIHsKLSAgICAg
ICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwgRkFMU0UpOworICAg
ICAgICBnZGtfd2luZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csIChHZGtSZWN0YW5nbGUqKSZy
ZWN0LCBGQUxTRSk7CiAgICAgICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBkbyBpbW1lZGlhdGUg
dXBkYXRlcyBzaW5jZSB0aGV5IGRlbGF5IG90aGVyIFVJIGVsZW1lbnRzLgogICAgICAgICAvL2lm
IChpbW1lZGlhdGUpCiAgICAgICAgIC8vICAgIGdka193aW5kb3dfcHJvY2Vzc191cGRhdGVzKHdp
bmRvdywgRkFMU0UpOwpAQCAtNDE3LDE4ICs0MTcsMTggQEAgdm9pZCBDaHJvbWVDbGllbnQ6OnNj
cm9sbChjb25zdCBJbnRTaXplJiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBj
b24KICAgICAvLyBXZSBjYW5ub3QgdXNlIGdka193aW5kb3dfc2Nyb2xsIGhlcmUgYmVjYXVzZSBp
dCBpcyBvbmx5IGFibGUgdG8KICAgICAvLyBzY3JvbGwgdGhlIHdob2xlIHdpbmRvdyBhdCBvbmNl
LCBhbmQgd2Ugb2Z0ZW4gbmVlZCB0byBzY3JvbGwKICAgICAvLyBwb3J0aW9ucyBvZiB0aGUgd2lu
ZG93IG9ubHkgKHRoaW5rIGZyYW1lcykuCi0gICAgR2RrUmVjdGFuZ2xlIGFyZWEgPSBjbGlwUmVj
dDsKLSAgICBHZGtSZWN0YW5nbGUgbW92ZVJlY3Q7CisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90
IGFyZWEgPSBjbGlwUmVjdDsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgbW92ZVJlY3Q7CiAK
LSAgICBHZGtSZWN0YW5nbGUgc291cmNlUmVjdCA9IGFyZWE7CisgICAgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90IHNvdXJjZVJlY3QgPSBhcmVhOwogICAgIHNvdXJjZVJlY3QueCAtPSBkZWx0YS53aWR0
aCgpOwogICAgIHNvdXJjZVJlY3QueSAtPSBkZWx0YS5oZWlnaHQoKTsKIAogI2lmZGVmIEdUS19B
UElfVkVSU0lPTl8yCi0gICAgR2RrUmVnaW9uKiBpbnZhbGlkUmVnaW9uID0gZ2RrX3JlZ2lvbl9y
ZWN0YW5nbGUoJmFyZWEpOworICAgIEdka1JlZ2lvbiogaW52YWxpZFJlZ2lvbiA9IGdka19yZWdp
b25fcmVjdGFuZ2xlKChHZGtSZWN0YW5nbGUqKSZhcmVhKTsKIAotICAgIGlmIChnZGtfcmVjdGFu
Z2xlX2ludGVyc2VjdCgmYXJlYSwgJnNvdXJjZVJlY3QsICZtb3ZlUmVjdCkpIHsKLSAgICAgICAg
R2RrUmVnaW9uKiBtb3ZlUmVnaW9uID0gZ2RrX3JlZ2lvbl9yZWN0YW5nbGUoJm1vdmVSZWN0KTsK
KyAgICBpZiAoZ2RrX3JlY3RhbmdsZV9pbnRlcnNlY3QoKEdka1JlY3RhbmdsZSopJmFyZWEsIChH
ZGtSZWN0YW5nbGUqKSZzb3VyY2VSZWN0LCAoR2RrUmVjdGFuZ2xlKikmbW92ZVJlY3QpKSB7Cisg
ICAgICAgIEdka1JlZ2lvbiogbW92ZVJlZ2lvbiA9IGdka19yZWdpb25fcmVjdGFuZ2xlKChHZGtS
ZWN0YW5nbGUqKSZtb3ZlUmVjdCk7CiAgICAgICAgIGdka193aW5kb3dfbW92ZV9yZWdpb24od2lu
ZG93LCBtb3ZlUmVnaW9uLCBkZWx0YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSk7CiAgICAgICAg
IGdka19yZWdpb25fb2Zmc2V0KG1vdmVSZWdpb24sIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdo
dCgpKTsKICAgICAgICAgZ2RrX3JlZ2lvbl9zdWJ0cmFjdChpbnZhbGlkUmVnaW9uLCBtb3ZlUmVn
aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDJiMTU0YTIuLjI4NGM3MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtNTUzLDcgKzU1Myw3IEBAIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpjb25maXJtQ29tcG9zaXRpb24oV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgY29uc3QKICAgICAgICAgZWRpdG9yLT5pbnNlcnRUZXh0KFN0cmluZzo6ZnJvbVVURjgo
dGV4dCksIDApOwogfQogCi1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Zmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywgaW50IGxvY2F0aW9uLCBp
bnQgbGVuZ3RoLCBHZGtSZWN0YW5nbGUqIHJlY3QpCitib29sIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyogd2ViVmlldywg
aW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqIHJlY3QpCiB7
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBm
YWxzZSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocmVjdCwgZmFsc2UpOwpAQCAtNzgyLDcg
Kzc4Miw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRWYWx1ZUZvclVzZXIo
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYKICAgICBpbnB1dEVsZW1lbnQtPnNldFZh
bHVlRm9yVXNlcihTdHJpbmc6OmZyb21VVEY4KHZhbHVlQnVmZmVyLmdldCgpKSk7CiB9CiAKLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0
V2ViRnJhbWUqIGZyYW1lLCBHZGtSZWN0YW5nbGUqIHJlY3RhbmdsZSkKK3ZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqIGZy
YW1lLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqIHJlY3RhbmdsZSkKIHsKICAgICBGcmFtZSogY29y
ZUZyYW1lID0gY29yZShmcmFtZSk7CiAgICAgaWYgKCFjb3JlRnJhbWUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5oCmluZGV4IDMzOGJiNDYuLjk5ZmM2Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBA
IC05OSwxMSArOTksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGZpbmRTdHJpbmcoV2Vi
S2l0V2ViVmlldyosIGNvbnN0IGdjaGFyKiwgV2ViS2l0RmluZE9wdGlvbnMpOwogICAgIHN0YXRp
YyB2b2lkIHNldENvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKiB0ZXh0LCBp
bnQgc3RhcnQsIGludCBlbmQpOwogICAgIHN0YXRpYyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihX
ZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciogdGV4dCk7Ci0gICAgc3RhdGljIGJvb2wgZmlyc3RS
ZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCBsb2NhdGlvbiwgaW50IGxl
bmd0aCwgR2RrUmVjdGFuZ2xlKik7CisgICAgc3RhdGljIGJvb2wgZmlyc3RSZWN0Rm9yQ2hhcmFj
dGVyUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCwgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIGJvb2wgc2VsZWN0ZWRSYW5nZShXZWJLaXRX
ZWJWaWV3KiwgaW50KiBzdGFydCwgaW50KiBlbmQpOwogICAgIHN0YXRpYyBkb3VibGUgZGVmYXVs
dE1pbmltdW1UaW1lckludGVydmFsKCk7IC8vIE5vdCByZWFsbHkgdGllZCB0byBXZWJWaWV3CiAg
ICAgc3RhdGljIHZvaWQgc2V0TWluaW11bVRpbWVySW50ZXJ2YWwoV2ViS2l0V2ViVmlldyosIGRv
dWJsZSk7Ci0gICAgc3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZy
YW1lKiwgR2RrUmVjdGFuZ2xlKik7CisgICAgc3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0
aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9fcmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGlj
IHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmlldyosIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwog
CiAgICAgLy8gQWNjZXNzaWJpbGl0eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdl
YnZpZXcuY3BwCmluZGV4IDkyNTA0OTMuLjBiMzQzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay93
ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKQEAgLTY3MCwxMyArNjcwLDEzIEBAIHN0YXRpYyBnYm9v
bGVhbiB3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KEd0a1dpZGdldCogd2lkZ2V0LCBHZGtF
dmVudEV4cG9zZSoKICAgICAgICAgZ2Muc2V0R2RrRXhwb3NlRXZlbnQoZXZlbnQpOwogCiAgICAg
ICAgIGludCByZWN0Q291bnQ7Ci0gICAgICAgIEdPd25QdHI8R2RrUmVjdGFuZ2xlPiByZWN0czsK
LSAgICAgICAgZ2RrX3JlZ2lvbl9nZXRfcmVjdGFuZ2xlcyhldmVudC0+cmVnaW9uLCAmcmVjdHMu
b3V0UHRyKCksICZyZWN0Q291bnQpOworICAgICAgICBHT3duUHRyPGNhaXJvX3JlY3RhbmdsZV9p
bnRfdD4gcmVjdHM7CisgICAgICAgIGdka19yZWdpb25fZ2V0X3JlY3RhbmdsZXMoZXZlbnQtPnJl
Z2lvbiwgKEdka1JlY3RhbmdsZSoqKSZyZWN0cy5vdXRQdHIoKSwgJnJlY3RDb3VudCk7CiAgICAg
ICAgIFZlY3RvcjxJbnRSZWN0PiBwYWludFJlY3RzOwogICAgICAgICBmb3IgKGludCBpID0gMDsg
aSA8IHJlY3RDb3VudDsgaSsrKQogICAgICAgICAgICAgcGFpbnRSZWN0cy5hcHBlbmQoSW50UmVj
dChyZWN0cy5nZXQoKVtpXSkpOwogCi0gICAgICAgIHBhaW50V2ViVmlldyhmcmFtZSwgcHJpdi0+
dHJhbnNwYXJlbnQsIGdjLCBzdGF0aWNfY2FzdDxJbnRSZWN0PihldmVudC0+YXJlYSksIHBhaW50
UmVjdHMpOworICAgICAgICBwYWludFdlYlZpZXcoZnJhbWUsIHByaXYtPnRyYW5zcGFyZW50LCBn
Yywgc3RhdGljX2Nhc3Q8SW50UmVjdD4oKihjYWlyb19yZWN0YW5nbGVfaW50X3QqKSZldmVudC0+
YXJlYSksIHBhaW50UmVjdHMpOwogICAgIH0KIAogICAgIHJldHVybiBGQUxTRTsKQEAgLTE2NDcs
OCArMTY0Nyw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9vbHRp
cChHdGtXaWRnZXQgKndpZGdldCwgZ2ludCB4LCBnaW50IHksCiAgICAgICAgICAgICAgICAgU3Ry
aW5nIHRpdGxlID0gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KHRpdGxlTm9kZSktPnRpdGxlKCk7CiAg
ICAgICAgICAgICAgICAgaWYgKCF0aXRsZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKEZyYW1lVmlldyogdmlldyA9IGNvcmVGcmFtZS0+dmlldygpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUgYXJlYSA9IHZpZXctPmNvbnRlbnRzVG9XaW5kb3co
bm9kZS0+Z2V0UmVjdCgpKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIGd0a190b29sdGlwX3Nl
dF90aXBfYXJlYSh0b29sdGlwLCAmYXJlYSk7CisgICAgICAgICAgICAgICAgICAgICAgICBjYWly
b19yZWN0YW5nbGVfaW50X3QgYXJlYSA9IHZpZXctPmNvbnRlbnRzVG9XaW5kb3cobm9kZS0+Z2V0
UmVjdCgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGd0a190b29sdGlwX3NldF90aXBfYXJl
YSh0b29sdGlwLCAoR2RrUmVjdGFuZ2xlKikmYXJlYSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3RleHQodG9vbHRpcCwgdGl0bGUu
dXRmOCgpLmRhdGEoKSk7CiAKQEAgLTE2NjMsOCArMTY2Myw4IEBAIHN0YXRpYyBnYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfcXVlcnlfdG9vbHRpcChHdGtXaWRnZXQgKndpZGdldCwgZ2ludCB4LCBn
aW50IHksCiAgICAgaWYgKHByaXYtPnRvb2x0aXBUZXh0Lmxlbmd0aCgpID4gMCkgewogICAgICAg
ICBpZiAoIWtleWJvYXJkX21vZGUpIHsKICAgICAgICAgICAgIGlmICghcHJpdi0+dG9vbHRpcEFy
ZWEuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgR2RrUmVjdGFuZ2xlIGFyZWEgPSBwcml2
LT50b29sdGlwQXJlYTsKLSAgICAgICAgICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGlwX2FyZWEo
dG9vbHRpcCwgJmFyZWEpOworICAgICAgICAgICAgICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBh
cmVhID0gcHJpdi0+dG9vbHRpcEFyZWE7CisgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0
X3RpcF9hcmVhKHRvb2x0aXAsIChHZGtSZWN0YW5nbGUqKSZhcmVhKTsKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIGd0a190b29sdGlwX3NldF90aXBfYXJlYSh0b29sdGlwLCAw
KTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDVlMzFkNjUuLjhiODU0MDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMS0wNS0xNyAgSm9vbmUg
SHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBj
YWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fp
cm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1BpeGVs
RHVtcFN1cHBvcnRHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5n
bGVfaW50X3QuCisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcDogRGl0dG8u
CisgICAgICAgIChmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKToKKwogMjAxMS0w
NS0xNyAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBydW4t
YXBpLXRlc3RzIHdvcmsgb24gV2luZG93cyB3aGVuIHRoZXJlIGFyZSBzcGFjZXMgaW4gdGhlIHBh
dGgKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0
R3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3RrLmNw
cAppbmRleCAyYmQ4ZmUyLi4zZWFiZmQ5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NSZWZQdHI8
Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wsIGJvb2ws
IGJvb2wsIGJvb2wKICNlbmRpZgogCiAgICAgaWYgKGRyYXdTZWxlY3Rpb25SZWN0KSB7Ci0gICAg
ICAgIEdka1JlY3RhbmdsZSByZWN0YW5nbGU7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRf
dCByZWN0YW5nbGU7CiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xl
Rm9yU2VsZWN0aW9uKG1haW5GcmFtZSwgJnJlY3RhbmdsZSk7CiAKICAgICAgICAgY2Fpcm9fc2V0
X2xpbmVfd2lkdGgoY29udGV4dCwgMS4wKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAppbmRleCBkMWFhMzNkLi40M2RkNzQyIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCkBAIC0x
MTMsNyArMTEzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2VDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmoKICAgICBpbnQgbGVuZ3RoID0g
c3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFdLCBl
eGNlcHRpb24pKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAhKmV4
Y2VwdGlvbiksIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKIAotICAgIEdka1JlY3Rh
bmdsZSByZWN0OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCByZWN0OwogICAgIGlmICghRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh2aWV3LCBs
b2NhdGlvbiwgbGVuZ3RoLCAmcmVjdCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFj
CmluZGV4IDgxYzY2OWIuLmMxOWQwZTYgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9j
b25maWd1cmUuYWMKQEAgLTI1NSw3ICsyNTUsNyBAQCBmaQogCiAjIG1pbmltdW0gYmFzZSBkZXBl
bmRlbmNpZXMKIExJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0yLjMzLjYKLUNBSVJPX1JFUVVJUkVE
X1ZFUlNJT049MS42CitDQUlST19SRVFVSVJFRF9WRVJTSU9OPTEuMTAKIEZPTlRDT05GSUdfUkVR
VUlSRURfVkVSU0lPTj0yLjQKIEZSRUVUWVBFMl9SRVFVSVJFRF9WRVJTSU9OPTkuMAogTElCWE1M
X1JFUVVJUkVEX1ZFUlNJT049Mi42Cg==
</data>
<flag name="review"
          id="87016"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>94085</attachid>
            <date>2011-05-19 10:22:08 -0700</date>
            <delta_ts>2011-05-29 02:14:13 -0700</delta_ts>
            <desc>Proposed Patch3</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>24855</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA1YjdmYzM2Li4zZTc3M2Yw
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDUtMTkgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFj
ZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2Ug
R2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzogQ2hlY2sgd2hldGhlciBDYWlybyB2ZXJzaW9uIGlzIGhpZ2hlciB0aGFuIDEuMTAu
CisKIDIwMTEtMDUtMTggIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBGaXggYnVpbGQgYnJlYWsuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5n
ZUxvZwppbmRleCA2MzcyMDAxLi4xY2M5NTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAxMS0wNS0xOSAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9y
YS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAg
ICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisg
ICAgICAgICogd3RmL2dvYmplY3QvR1R5cGVkZWZzLmg6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5
IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKwogMjAxMS0wNS0xOCAgT2xpdmVyIEh1bnQgIDxvbGl2
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdhdmluIEJhcnJhY2xvdWdoLgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCmluZGV4IGM3
ZjdhYzQuLmM4NzhmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29i
amVjdC9HVHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3Qv
R1R5cGVkZWZzLmgKQEAgLTYzLDYgKzYzLDcgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2Rr
RXZlbnQ7CiAKICNpZiBVU0UoQ0FJUk8pCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBj
YWlyb19zdXJmYWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBjYWly
b19yZWN0YW5nbGVfaW50X3Q7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTg3LDgg
Kzg4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7CiB0eXBl
ZGVmIHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrV2luZG93OwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0
IF9HZGtXaW5kb3cgR2RrV2luZG93OwotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9p
bnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWlyb19yZWN0YW5nbGVfaW50X3Qg
R2RrUmVjdGFuZ2xlOwogdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlQ29udGV4dCBHdGtTdHlsZUNv
bnRleHQ7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGQxMzdhZTAuLmM5YTA5YzcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMS0wNS0xOSAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNv
bGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50
X3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3
CisKKyAgICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkZWQgSW50UmVjdENhaXJvLmNw
cCBpbnN0ZWFkIG9mIEludFJlY3RHdGsuY3BwCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50UmVjdC5oOiBJbnRSZWN0IGNsYXNzIGNhbiBiZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCB0aGUg
Z2l2ZW4gY2Fpcm9fcmVjdGFuZ2xlX2ludF90IAorICAgICAgICBpbnN0ZWFkIG9mIEdka1JlY3Rh
bmdsZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRD
YWlyby5jcHA6IFJlbW92ZSB0aGUgR1RLKyBjb2RlLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhp
Y3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbnRSZWN0Q2Fpcm8uY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsuY3BwLgorICAgICAgICAoV2ViQ29yZTo6SW50UmVj
dDo6SW50UmVjdCk6IAorICAgICAgICAoV2ViQ29yZTo6SW50UmVjdDo6b3BlcmF0b3IgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25Q
dHJDYWlyby5jcHA6IE93blB0ciBzdXBwb3J0IGZvciBjYWlyb19yZWdpb25fdCBhbmQgY2Fpcm9f
cmVjdGFuZ2xlX3QuCisgICAgICAgIChXVEY6OmNhaXJvX3JlZ2lvbl90KToKKyAgICAgICAgKFdU
Rjo6Y2Fpcm9fcmVjdGFuZ2xlX3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L093blB0ckNhaXJvLmg6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9HdGtQbHVnaW5X
aWRnZXQuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3Qu
CisgICAgICAgIChXZWJDb3JlOjpHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRhdGVSZWN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Okd0a1BsdWdpbldpZGdldDo6cGFpbnQpOgorICAgICAgICAqIHBsdWdp
bnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19y
ZWN0YW5nbGVfaW50X3QuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVXaWRn
ZXRBbGxvY2F0aW9uQW5kQ2xpcCk6CisKIDIwMTEtMDUtMTkgIEFuZHJleSBBZGFpa2luICA8YWFu
ZHJleUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA0NjJiOGM2Li4zNzQ0ODE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTM2OTUsNiArMzY5NSw3IEBAIHdlYmNvcmVndGtf
c291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1h
Z2VCdWZmZXJDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ltYWdlQnVmZmVyRGF0YS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9JbWFnZUNhaXJvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9QYXRoQ2Fpcm8uY3BwIFwKQEAgLTM3MzAsNyArMzczMSw2IEBAIHdlYmNv
cmVndGtfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ltYWdlQnVmZmVyR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0ltYWdlR3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ludFBvaW50R3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3Rr
L0ludFJlY3RHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJk
R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZEd0ay5oIFwK
IAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ2xpcGJvYXJkVXRpbGl0aWVzR3RrLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKaW5kZXggNTUyNzM4
Ny4uMGE1MGJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50UmVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3Qu
aApAQCAtNTAsOSArNTAsNiBAQCBRVF9FTkRfTkFNRVNQQUNFCiAjZWxpZiBQTEFURk9STShHVEsp
CiAjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKIHR5cGVkZWYgc3RydWN0IF9HZGtSZWN0YW5nbGUg
R2RrUmVjdGFuZ2xlOwotI2Vsc2UKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50
IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKLXR5cGVkZWYgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IEdk
a1JlY3RhbmdsZTsKICNlbmRpZgogI2VsaWYgUExBVEZPUk0oSEFJS1UpCiBjbGFzcyBCUmVjdDsK
QEAgLTYwLDYgKzU3LDEwIEBAIGNsYXNzIEJSZWN0OwogdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfUmVj
dGFuZ2xlIEVpbmFfUmVjdGFuZ2xlOwogI2VuZGlmCiAKKyNpZiBVU0UoQ0FJUk8pCit0eXBlZGVm
IHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7CisjZW5k
aWYKKwogI2lmIFBMQVRGT1JNKFdYKQogY2xhc3Mgd3hSZWN0OwogI2VuZGlmCkBAIC0xODAsOSAr
MTgxLDYgQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oUVQpCiAgICAgSW50UmVjdChjb25zdCBR
UmVjdCYpOwogICAgIG9wZXJhdG9yIFFSZWN0KCkgY29uc3Q7Ci0jZWxpZiBQTEFURk9STShHVEsp
Ci0gICAgSW50UmVjdChjb25zdCBHZGtSZWN0YW5nbGUmKTsKLSAgICBvcGVyYXRvciBHZGtSZWN0
YW5nbGUoKSBjb25zdDsKICNlbGlmIFBMQVRGT1JNKEhBSUtVKQogICAgIGV4cGxpY2l0IEludFJl
Y3QoY29uc3QgQlJlY3QmKTsKICAgICBvcGVyYXRvciBCUmVjdCgpIGNvbnN0OwpAQCAtMTkxLDYg
KzE4OSwxMSBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgRWluYV9SZWN0YW5nbGUoKSBjb25zdDsK
ICNlbmRpZgogCisjaWYgVVNFKENBSVJPKQorICAgIEludFJlY3QoY29uc3QgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90Jik7CisgICAgb3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX2ludF90KCkgY29uc3Q7
CisjZW5kaWYKKwogI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkKICAgICBv
cGVyYXRvciBDR1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8u
Y3BwCmluZGV4IGVlZjk3ZWQuLmFlODdkMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAKQEAgLTYyOCwyOSArNjI4LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1Jp
bmcoY29uc3QgVmVjdG9yPEludFJlY3Q+JiByZWN0cywgaW50IHdpZHRoLCBpbnQKICAgICBjYWly
b19wdXNoX2dyb3VwKGNyKTsKICAgICBjYWlyb19uZXdfcGF0aChjcik7CiAKLSNpZiBQTEFURk9S
TShHVEspCi0jaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICBHZGtSZWdpb24qIHJlZyA9IGdk
a19yZWdpb25fbmV3KCk7Ci0jZWxzZQotICAgIGNhaXJvX3JlZ2lvbl90KiByZWcgPSBjYWlyb19y
ZWdpb25fY3JlYXRlKCk7Ci0jZW5kaWYKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBy
ZWN0Q291bnQ7IGkrKykgewotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgICAgIEdka1Jl
Y3RhbmdsZSByZWN0ID0gcmVjdHNbaV07Ci0gICAgICAgIGdka19yZWdpb25fdW5pb25fd2l0aF9y
ZWN0KHJlZywgJnJlY3QpOwotI2Vsc2UKLSAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IHJl
Y3QgPSByZWN0c1tpXTsKLSAgICAgICAgY2Fpcm9fcmVnaW9uX3VuaW9uX3JlY3RhbmdsZShyZWcs
ICZyZWN0KTsKLSNlbmRpZgotICAgIH0KLSAgICBnZGtfY2Fpcm9fcmVnaW9uKGNyLCByZWcpOwot
I2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgZ2RrX3JlZ2lvbl9kZXN0cm95KHJlZyk7Ci0j
ZWxzZQotICAgIGNhaXJvX3JlZ2lvbl9kZXN0cm95KHJlZyk7Ci0jZW5kaWYKLSNlbHNlCiAgICAg
aW50IHJhZGl1cyA9ICh3aWR0aCAtIDEpIC8gMjsKICAgICBQYXRoIHBhdGg7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IHJlY3RDb3VudDsgKytpKSB7CkBAIC02NTksNyArNjM2LDcgQEAg
dm9pZCBHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcoY29uc3QgVmVjdG9yPEludFJlY3Q+
JiByZWN0cywgaW50IHdpZHRoLCBpbnQKICAgICAgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyZWN0
c1tpXSwgRmxvYXRTaXplKHJhZGl1cywgcmFkaXVzKSk7CiAgICAgICAgIGFwcGVuZFdlYkNvcmVQ
YXRoVG9DYWlyb0NvbnRleHQoY3IsIHBhdGgpOwogICAgIH0KLSNlbmRpZgorCiAgICAgQ29sb3Ig
cmluZ0NvbG9yID0gY29sb3I7CiAgICAgYWRqdXN0Rm9jdXNSaW5nQ29sb3IocmluZ0NvbG9yKTsK
ICAgICBhZGp1c3RGb2N1c1JpbmdMaW5lV2lkdGgod2lkdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VmM2FmOQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFs
cEBhdG9rZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDExIENvbGxhYm9yYSBMdGQuCisgKgor
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisKKyNpbmNsdWRlIDxjYWlyby5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFJlY3Q6OkludFJlY3QoY29uc3QgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90JiByKQorICAgIDogbV9sb2NhdGlvbihJbnRQb2ludChyLngsIHIueSkp
CisgICAgLCBtX3NpemUoci53aWR0aCwgci5oZWlnaHQpCit7Cit9CisKK0ludFJlY3Q6Om9wZXJh
dG9yIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCgpIGNvbnN0Cit7CisgICAgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90IHIgPSB7IHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSB9OworICAgIHJldHVybiBy
OworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Pd25QdHJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Pd25QdHJDYWlyby5jcHAKaW5kZXggMTU5NGU3Yi4uNGRhZGVkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNw
cApAQCAtNDksNCArNDksMTYgQEAgdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWly
b19wYXRoX3Q+KGNhaXJvX3BhdGhfdCogcHRyKQogICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3ko
cHRyKTsKIH0KIAordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWlyb19yZWdpb25f
dD4oY2Fpcm9fcmVnaW9uX3QqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBjYWlyb19y
ZWdpb25fZGVzdHJveShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRy
PGNhaXJvX3JlY3RhbmdsZV90PihjYWlyb19yZWN0YW5nbGVfdCogcHRyKQoreworICAgIGlmIChw
dHIpCisgICAgICAgIGZyZWUocHRyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaApp
bmRleCBiZDUxN2IyLi44Y2U0YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKQEAgLTI5LDYgKzI5LDggQEAgdHlwZWRl
ZiBzdHJ1Y3QgX0ZjRm9udFNldCBGY0ZvbnRTZXQ7CiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3Qg
Y2Fpcm9fcGF0aCBjYWlyb19wYXRoX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVnaW9uIGNh
aXJvX3JlZ2lvbl90OwordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZSBjYWlyb19yZWN0
YW5nbGVfdDsKIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTM4LDYgKzQwLDggQEAgdGVtcGxhdGUg
PD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+KEZjRm9udFNldCopOwogI2VuZGlmCiAK
IHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcGF0aF90PihjYWlyb19wYXRo
X3QqKTsKK3RlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcmVnaW9uX3Q+KGNh
aXJvX3JlZ2lvbl90Kik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3Jl
Y3RhbmdsZV90PihjYWlyb19yZWN0YW5nbGVfdCopOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsu
Y3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYWExOTQ0Li4wMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcAorKysg
L2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIklu
dFJlY3QuaCIKLQotI2luY2x1ZGUgPGdkay9nZGsuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewot
Ci1JbnRSZWN0OjpJbnRSZWN0KGNvbnN0IEdka1JlY3RhbmdsZSYgcikKLSAgICA6IG1fbG9jYXRp
b24oSW50UG9pbnQoci54LCByLnkpKQotICAgICwgbV9zaXplKHIud2lkdGgsIHIuaGVpZ2h0KQot
ewotfQotCi1JbnRSZWN0OjpvcGVyYXRvciBHZGtSZWN0YW5nbGUoKSBjb25zdAotewotICAgIEdk
a1JlY3RhbmdsZSByID0geyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsKLSAgICByZXR1
cm4gcjsKLX0KLQotfQotCi0vLyB2aW06IHRzPTQgc3c9NCBldApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcAppbmRleCAzMzFmNjBmLi5mMDU5ODIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNw
cApAQCAtNTEsOCArNTEsOCBAQCB2b2lkIEd0a1BsdWdpbldpZGdldDo6aW52YWxpZGF0ZVJlY3Qo
Y29uc3QgSW50UmVjdCYgX3JlY3QpCiAgICAgaWYgKCF3aW5kb3cpCiAgICAgICAgIHJldHVybjsK
IAotICAgIEdka1JlY3RhbmdsZSByZWN0ID0gX3JlY3Q7Ci0gICAgZ2RrX3dpbmRvd19pbnZhbGlk
YXRlX3JlY3Qod2luZG93LCAmcmVjdCwgRkFMU0UpOworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRf
dCByZWN0ID0gX3JlY3Q7CisgICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCAo
R2RrUmVjdGFuZ2xlKikmcmVjdCwgRkFMU0UpOwogfQogCiB2b2lkIEd0a1BsdWdpbldpZGdldDo6
ZnJhbWVSZWN0c0NoYW5nZWQoKQpAQCAtODAsNyArODAsOCBAQCB2b2lkIEd0a1BsdWdpbldpZGdl
dDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQog
CiAgICAgR2RrRXZlbnQqIGV2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfRVhQT1NFKTsKICAgICBl
dmVudC0+ZXhwb3NlID0gKmNvbnRleHQtPmdka0V4cG9zZUV2ZW50KCk7Ci0gICAgZXZlbnQtPmV4
cG9zZS5hcmVhID0gc3RhdGljX2Nhc3Q8R2RrUmVjdGFuZ2xlPihyZWN0KTsKKyAgICBjYWlyb19y
ZWN0YW5nbGVfaW50X3QgcmVjdGFuZ2xlID0gcmVjdDsKKyAgICBldmVudC0+ZXhwb3NlLmFyZWEg
PSAqKEdka1JlY3RhbmdsZSopJnJlY3RhbmdsZTsKIAogICAgIEludFBvaW50IGxvYyA9IHBhcmVu
dCgpLT5jb250ZW50c1RvV2luZG93KHJlY3QubG9jYXRpb24oKSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKaW5kZXggMjM3OGQyNC4uMDg3N2ZiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHAKQEAgLTU1
MCw5ICs1NTAsOSBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0ZVdpZGdldEFsbG9jYXRpb25BbmRD
bGlwKCkKIAogICAgIEd0a1dpZGdldCogd2lkZ2V0ID0gcGxhdGZvcm1QbHVnaW5XaWRnZXQoKTsK
ICAgICBpZiAoZ3RrX3dpZGdldF9nZXRfcmVhbGl6ZWQod2lkZ2V0KSkgewotICAgICAgICBHZGtS
ZWN0YW5nbGUgY2xpcFJlY3QgPSBtX2NsaXBSZWN0OworICAgICAgICBjYWlyb19yZWN0YW5nbGVf
aW50X3QgY2xpcFJlY3QgPSBtX2NsaXBSZWN0OwogI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0g
ICAgICAgIEdka1JlZ2lvbiogY2xpcFJlZ2lvbiA9IGdka19yZWdpb25fcmVjdGFuZ2xlKCZjbGlw
UmVjdCk7CisgICAgICAgIEdka1JlZ2lvbiogY2xpcFJlZ2lvbiA9IGdka19yZWdpb25fcmVjdGFu
Z2xlKChHZGtSZWN0YW5nbGUqKSZjbGlwUmVjdCk7CiAgICAgICAgIGdka193aW5kb3dfc2hhcGVf
Y29tYmluZV9yZWdpb24oZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdldCksIGNsaXBSZWdpb24s
IDAsIDApOwogICAgICAgICBnZGtfcmVnaW9uX2Rlc3Ryb3koY2xpcFJlZ2lvbik7CiAjZWxzZQpA
QCAtNTYxLDggKzU2MSw4IEBAIHZvaWQgUGx1Z2luVmlldzo6dXBkYXRlV2lkZ2V0QWxsb2NhdGlv
bkFuZENsaXAoKQogICAgICAgICBjYWlyb19yZWdpb25fZGVzdHJveShjbGlwUmVnaW9uKTsKICNl
bmRpZgogICAgIH0KLQotICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbihtX2RlbGF5ZWRBbGxv
Y2F0aW9uKTsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgZGVsYXllZFJlY3QgPSBtX2RlbGF5
ZWRBbGxvY2F0aW9uOworICAgIEd0a0FsbG9jYXRpb24gYWxsb2NhdGlvbigqKEdka1JlY3Rhbmds
ZSopJmRlbGF5ZWRSZWN0KTsKICAgICBndGtfd2lkZ2V0X3NpemVfYWxsb2NhdGUod2lkZ2V0LCAm
YWxsb2NhdGlvbik7CiAgICAgbV9kZWxheWVkQWxsb2NhdGlvbiA9IEludFJlY3QoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L0NoYW5nZUxvZwppbmRleCAwNzMzMTNlLi5jZjUzYmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjMgQEAKKzIwMTEtMDUtMTkgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEu
Y28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
W0dUS10gUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAg
ICAgIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6IFJlcGxhY2UgR2RrUmVj
dGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpD
aHJvbWVDbGllbnQ6OnNjcm9sbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDogRGl0dG8uCisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKToKKyAgICAgICAgKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDogRGl0dG8uCisgICAgICAgICogd2Vi
a2l0L3dlYmtpdHdlYnZpZXcuY3BwOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19l
eHBvc2VfZXZlbnQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3F1ZXJ5X3Rvb2x0aXApOgor
CiAyMDExLTA1LTE2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCBmMzFhMDI3Li4yNDdl
YTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5jcHAKQEAgLTM4OSwxMSArMzg5LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpp
bnZhbGlkYXRlV2luZG93KGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkKIAogdm9pZCBD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKIHsKLSAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IHVw
ZGF0ZVJlY3Q7CisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IHJlY3QgPSB1cGRhdGVSZWN0Owog
ICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQo
bV93ZWJWaWV3KSk7CiAKICAgICBpZiAod2luZG93ICYmICF1cGRhdGVSZWN0LmlzRW1wdHkoKSkg
ewotICAgICAgICBnZGtfd2luZG93X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxT
RSk7CisgICAgICAgIGdka193aW5kb3dfaW52YWxpZGF0ZV9yZWN0KHdpbmRvdywgKEdka1JlY3Rh
bmdsZSopJnJlY3QsIEZBTFNFKTsKICAgICAgICAgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGRvIGlt
bWVkaWF0ZSB1cGRhdGVzIHNpbmNlIHRoZXkgZGVsYXkgb3RoZXIgVUkgZWxlbWVudHMuCiAgICAg
ICAgIC8vaWYgKGltbWVkaWF0ZSkKICAgICAgICAgLy8gICAgZ2RrX3dpbmRvd19wcm9jZXNzX3Vw
ZGF0ZXMod2luZG93LCBGQUxTRSk7CkBAIC00MTcsMTggKzQxNywxOCBAQCB2b2lkIENocm9tZUNs
aWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9T
Y3JvbGwsIGNvbgogICAgIC8vIFdlIGNhbm5vdCB1c2UgZ2RrX3dpbmRvd19zY3JvbGwgaGVyZSBi
ZWNhdXNlIGl0IGlzIG9ubHkgYWJsZSB0bwogICAgIC8vIHNjcm9sbCB0aGUgd2hvbGUgd2luZG93
IGF0IG9uY2UsIGFuZCB3ZSBvZnRlbiBuZWVkIHRvIHNjcm9sbAogICAgIC8vIHBvcnRpb25zIG9m
IHRoZSB3aW5kb3cgb25seSAodGhpbmsgZnJhbWVzKS4KLSAgICBHZGtSZWN0YW5nbGUgYXJlYSA9
IGNsaXBSZWN0OwotICAgIEdka1JlY3RhbmdsZSBtb3ZlUmVjdDsKKyAgICBjYWlyb19yZWN0YW5n
bGVfaW50X3QgYXJlYSA9IGNsaXBSZWN0OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBtb3Zl
UmVjdDsKIAotICAgIEdka1JlY3RhbmdsZSBzb3VyY2VSZWN0ID0gYXJlYTsKKyAgICBjYWlyb19y
ZWN0YW5nbGVfaW50X3Qgc291cmNlUmVjdCA9IGFyZWE7CiAgICAgc291cmNlUmVjdC54IC09IGRl
bHRhLndpZHRoKCk7CiAgICAgc291cmNlUmVjdC55IC09IGRlbHRhLmhlaWdodCgpOwogCiAjaWZk
ZWYgR1RLX0FQSV9WRVJTSU9OXzIKLSAgICBHZGtSZWdpb24qIGludmFsaWRSZWdpb24gPSBnZGtf
cmVnaW9uX3JlY3RhbmdsZSgmYXJlYSk7CisgICAgR2RrUmVnaW9uKiBpbnZhbGlkUmVnaW9uID0g
Z2RrX3JlZ2lvbl9yZWN0YW5nbGUoKEdka1JlY3RhbmdsZSopJmFyZWEpOwogCi0gICAgaWYgKGdk
a19yZWN0YW5nbGVfaW50ZXJzZWN0KCZhcmVhLCAmc291cmNlUmVjdCwgJm1vdmVSZWN0KSkgewot
ICAgICAgICBHZGtSZWdpb24qIG1vdmVSZWdpb24gPSBnZGtfcmVnaW9uX3JlY3RhbmdsZSgmbW92
ZVJlY3QpOworICAgIGlmIChnZGtfcmVjdGFuZ2xlX2ludGVyc2VjdCgoR2RrUmVjdGFuZ2xlKikm
YXJlYSwgKEdka1JlY3RhbmdsZSopJnNvdXJjZVJlY3QsIChHZGtSZWN0YW5nbGUqKSZtb3ZlUmVj
dCkpIHsKKyAgICAgICAgR2RrUmVnaW9uKiBtb3ZlUmVnaW9uID0gZ2RrX3JlZ2lvbl9yZWN0YW5n
bGUoKEdka1JlY3RhbmdsZSopJm1vdmVSZWN0KTsKICAgICAgICAgZ2RrX3dpbmRvd19tb3ZlX3Jl
Z2lvbih3aW5kb3csIG1vdmVSZWdpb24sIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpKTsK
ICAgICAgICAgZ2RrX3JlZ2lvbl9vZmZzZXQobW92ZVJlZ2lvbiwgZGVsdGEud2lkdGgoKSwgZGVs
dGEuaGVpZ2h0KCkpOwogICAgICAgICBnZGtfcmVnaW9uX3N1YnRyYWN0KGludmFsaWRSZWdpb24s
IG1vdmVSZWdpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggMmIxNTRhMi4uMjg0
YzcxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmNvbmZpcm1Db21wb3NpdGlvbihXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBjb25zdAogICAgICAgICBlZGl0b3ItPmluc2VydFRleHQoU3RyaW5nOjpm
cm9tVVRGOCh0ZXh0KSwgMCk7CiB9CiAKLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpm
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgbG9j
YXRpb24sIGludCBsZW5ndGgsIEdka1JlY3RhbmdsZSogcmVjdCkKK2Jvb2wgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCog
cmVjdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldyksIGZhbHNlKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZWN0LCBmYWxzZSk7CkBA
IC03ODIsNyArNzgyLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVl
Rm9yVXNlcihKU0NvbnRleHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZgogICAgIGlucHV0RWxlbWVu
dC0+c2V0VmFsdWVGb3JVc2VyKFN0cmluZzo6ZnJvbVVURjgodmFsdWVCdWZmZXIuZ2V0KCkpKTsK
IH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlv
bihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIEdka1JlY3RhbmdsZSogcmVjdGFuZ2xlKQordm9pZCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJG
cmFtZSogZnJhbWUsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCogcmVjdGFuZ2xlKQogewogICAgIEZy
YW1lKiBjb3JlRnJhbWUgPSBjb3JlKGZyYW1lKTsKICAgICBpZiAoIWNvcmVGcmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrLmgKaW5kZXggMzM4YmI0Ni4uOTlmYzZjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmgKQEAgLTk5LDExICs5OSwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZmluZFN0
cmluZyhXZWJLaXRXZWJWaWV3KiwgY29uc3QgZ2NoYXIqLCBXZWJLaXRGaW5kT3B0aW9ucyk7CiAg
ICAgc3RhdGljIHZvaWQgc2V0Q29tcG9zaXRpb24oV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIq
IHRleHQsIGludCBzdGFydCwgaW50IGVuZCk7CiAgICAgc3RhdGljIHZvaWQgY29uZmlybUNvbXBv
c2l0aW9uKFdlYktpdFdlYlZpZXcqLCBjb25zdCBjaGFyKiB0ZXh0KTsKLSAgICBzdGF0aWMgYm9v
bCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiwgaW50IGxvY2F0aW9u
LCBpbnQgbGVuZ3RoLCBHZGtSZWN0YW5nbGUqKTsKKyAgICBzdGF0aWMgYm9vbCBmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3Ro
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgYm9vbCBzZWxlY3RlZFJhbmdl
KFdlYktpdFdlYlZpZXcqLCBpbnQqIHN0YXJ0LCBpbnQqIGVuZCk7CiAgICAgc3RhdGljIGRvdWJs
ZSBkZWZhdWx0TWluaW11bVRpbWVySW50ZXJ2YWwoKTsgLy8gTm90IHJlYWxseSB0aWVkIHRvIFdl
YlZpZXcKICAgICBzdGF0aWMgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJLaXRXZWJW
aWV3KiwgZG91YmxlKTsKLSAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2Vi
S2l0V2ViRnJhbWUqLCBHZGtSZWN0YW5nbGUqKTsKKyAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVG
b3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAg
ICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBm
bG9hdCk7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0d2Vidmlldy5jcHAKaW5kZXggOTI1MDQ5My4uMGIzNDM0ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZ3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcApAQCAtNjcwLDEzICs2NzAsMTMgQEAgc3Rh
dGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19leHBvc2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRn
ZXQsIEdka0V2ZW50RXhwb3NlKgogICAgICAgICBnYy5zZXRHZGtFeHBvc2VFdmVudChldmVudCk7
CiAKICAgICAgICAgaW50IHJlY3RDb3VudDsKLSAgICAgICAgR093blB0cjxHZGtSZWN0YW5nbGU+
IHJlY3RzOwotICAgICAgICBnZGtfcmVnaW9uX2dldF9yZWN0YW5nbGVzKGV2ZW50LT5yZWdpb24s
ICZyZWN0cy5vdXRQdHIoKSwgJnJlY3RDb3VudCk7CisgICAgICAgIEdPd25QdHI8Y2Fpcm9fcmVj
dGFuZ2xlX2ludF90PiByZWN0czsKKyAgICAgICAgZ2RrX3JlZ2lvbl9nZXRfcmVjdGFuZ2xlcyhl
dmVudC0+cmVnaW9uLCAoR2RrUmVjdGFuZ2xlKiopJnJlY3RzLm91dFB0cigpLCAmcmVjdENvdW50
KTsKICAgICAgICAgVmVjdG9yPEludFJlY3Q+IHBhaW50UmVjdHM7CiAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgcmVjdENvdW50OyBpKyspCiAgICAgICAgICAgICBwYWludFJlY3RzLmFwcGVu
ZChJbnRSZWN0KHJlY3RzLmdldCgpW2ldKSk7CiAKLSAgICAgICAgcGFpbnRXZWJWaWV3KGZyYW1l
LCBwcml2LT50cmFuc3BhcmVudCwgZ2MsIHN0YXRpY19jYXN0PEludFJlY3Q+KGV2ZW50LT5hcmVh
KSwgcGFpbnRSZWN0cyk7CisgICAgICAgIHBhaW50V2ViVmlldyhmcmFtZSwgcHJpdi0+dHJhbnNw
YXJlbnQsIGdjLCBzdGF0aWNfY2FzdDxJbnRSZWN0PigqKGNhaXJvX3JlY3RhbmdsZV9pbnRfdCop
JmV2ZW50LT5hcmVhKSwgcGFpbnRSZWN0cyk7CiAgICAgfQogCiAgICAgcmV0dXJuIEZBTFNFOwpA
QCAtMTY0Nyw4ICsxNjQ3LDggQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19xdWVy
eV90b29sdGlwKEd0a1dpZGdldCAqd2lkZ2V0LCBnaW50IHgsIGdpbnQgeSwKICAgICAgICAgICAg
ICAgICBTdHJpbmcgdGl0bGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4odGl0bGVOb2RlKS0+dGl0
bGUoKTsKICAgICAgICAgICAgICAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIEdka1JlY3RhbmdsZSBhcmVhID0gdmlldy0+Y29udGVudHNU
b1dpbmRvdyhub2RlLT5nZXRSZWN0KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ3RrX3Rv
b2x0aXBfc2V0X3RpcF9hcmVhKHRvb2x0aXAsICZhcmVhKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBhcmVhID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhu
b2RlLT5nZXRSZWN0KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0
X3RpcF9hcmVhKHRvb2x0aXAsIChHZGtSZWN0YW5nbGUqKSZhcmVhKTsKICAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGV4dCh0b29sdGlw
LCB0aXRsZS51dGY4KCkuZGF0YSgpKTsKIApAQCAtMTY2Myw4ICsxNjYzLDggQEAgc3RhdGljIGdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKEd0a1dpZGdldCAqd2lkZ2V0LCBn
aW50IHgsIGdpbnQgeSwKICAgICBpZiAocHJpdi0+dG9vbHRpcFRleHQubGVuZ3RoKCkgPiAwKSB7
CiAgICAgICAgIGlmICgha2V5Ym9hcmRfbW9kZSkgewogICAgICAgICAgICAgaWYgKCFwcml2LT50
b29sdGlwQXJlYS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUgYXJl
YSA9IHByaXYtPnRvb2x0aXBBcmVhOwotICAgICAgICAgICAgICAgIGd0a190b29sdGlwX3NldF90
aXBfYXJlYSh0b29sdGlwLCAmYXJlYSk7CisgICAgICAgICAgICAgICAgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90IGFyZWEgPSBwcml2LT50b29sdGlwQXJlYTsKKyAgICAgICAgICAgICAgICBndGtfdG9v
bHRpcF9zZXRfdGlwX2FyZWEodG9vbHRpcCwgKEdka1JlY3RhbmdsZSopJmFyZWEpOwogICAgICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3RpcF9hcmVhKHRv
b2x0aXAsIDApOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggZDc1ZTQyOC4uMmQzMTBlMSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA1LTE5
ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFu
Z2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNlIEdka1JlY3Rhbmds
ZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJv
X3JlY3RhbmdsZV9pbnRfdC4KKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmll
dyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3Bw
OiBEaXR0by4KKyAgICAgICAgKGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2spOgor
CiAyMDExLTA1LTE5ICBac29sdCBGZWjDqXIgIDxoNDkwMjY3QHN0dWQudS1zemVnZWQuaHU+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgQ3NhYmEgT3N6dHJvZ29uw6FjLgpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwCmluZGV4IDJiZDhmZTIuLjNl
YWJmZDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBw
b3J0R3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvUGl4ZWxEdW1wU3VwcG9y
dEd0ay5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVh
dGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbAogI2VuZGlm
CiAKICAgICBpZiAoZHJhd1NlbGVjdGlvblJlY3QpIHsKLSAgICAgICAgR2RrUmVjdGFuZ2xlIHJl
Y3RhbmdsZTsKKyAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IHJlY3RhbmdsZTsKICAgICAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24obWFpbkZy
YW1lLCAmcmVjdGFuZ2xlKTsKIAogICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0
LCAxLjApOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENv
bnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xs
ZXIuY3BwCmluZGV4IGQxYWEzM2QuLjQzZGQ3NDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAKQEAgLTExMyw3ICsxMTMsNyBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iagogICAgIGludCBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KEpT
VmFsdWVUb051bWJlcihjb250ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKCghZXhjZXB0aW9uIHx8ICEqZXhjZXB0aW9uKSwgSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCkpOwogCi0gICAgR2RrUmVjdGFuZ2xlIHJlY3Q7CisgICAgY2Fp
cm9fcmVjdGFuZ2xlX2ludF90IHJlY3Q7CiAgICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHZpZXcsIGxvY2F0aW9uLCBsZW5ndGgsICZy
ZWN0KSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogCmRp
ZmYgLS1naXQgYS9jb25maWd1cmUuYWMgYi9jb25maWd1cmUuYWMKaW5kZXggODFjNjY5Yi4uYzE5
ZDBlNiAxMDA2NDQKLS0tIGEvY29uZmlndXJlLmFjCisrKyBiL2NvbmZpZ3VyZS5hYwpAQCAtMjU1
LDcgKzI1NSw3IEBAIGZpCiAKICMgbWluaW11bSBiYXNlIGRlcGVuZGVuY2llcwogTElCU09VUF9S
RVFVSVJFRF9WRVJTSU9OPTIuMzMuNgotQ0FJUk9fUkVRVUlSRURfVkVSU0lPTj0xLjYKK0NBSVJP
X1JFUVVJUkVEX1ZFUlNJT049MS4xMAogRk9OVENPTkZJR19SRVFVSVJFRF9WRVJTSU9OPTIuNAog
RlJFRVRZUEUyX1JFUVVJUkVEX1ZFUlNJT049OS4wCiBMSUJYTUxfUkVRVUlSRURfVkVSU0lPTj0y
LjYK
</data>
<flag name="review"
          id="87342"
          type_id="1"
          status="-"
          setter="gustavo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95284</attachid>
            <date>2011-05-29 02:14:13 -0700</date>
            <delta_ts>2011-06-01 22:01:43 -0700</delta_ts>
            <desc>Proposed Patch4</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>25283</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxMzg1NmJiLi44MDY0YTJk
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDUtMjkgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFj
ZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2Ug
R2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzogQ2hlY2sgd2hldGhlciBDYWlybyB2ZXJzaW9uIGlzIGhpZ2hlciB0aGFuIDEuMTAu
CisKIDIwMTEtMDUtMjUgIEdyZWdnIFRhdmFyZXMgIDxnbWFuQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJ1c3NlbGwuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCA2MTU0NjdkLi44MjQxMGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMS0wNS0yOSAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51
az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAg
UmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAg
ICogd3RmL2dvYmplY3QvR1R5cGVkZWZzLmg6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJv
X3JlY3RhbmdsZV9pbnRfdC4KKwogMjAxMS0wNS0yOCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEJVSUxEIEZJWCB3aGVuIGJ1aWxkaW5nIG9ubHkgdGhlIGlu
dGVycHJldGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3Qv
R1R5cGVkZWZzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZz
LmgKaW5kZXggYzdmN2FjNC4uYzg3OGYzMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvZ29iamVjdC9HVHlwZWRlZnMuaApAQCAtNjMsNiArNjMsNyBAQCB0eXBlZGVmIHVuaW9uIF9H
ZGtFdmVudCBHZGtFdmVudDsKIAogI2lmIFVTRShDQUlSTykKIHR5cGVkZWYgc3RydWN0IF9jYWly
b19zdXJmYWNlIGNhaXJvX3N1cmZhY2VfdDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5n
bGVfaW50IGNhaXJvX3JlY3RhbmdsZV9pbnRfdDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RL
KQpAQCAtODcsOCArODgsNiBAQCB0eXBlZGVmIHN0cnVjdCBfR2RrUmVjdGFuZ2xlIEdka1JlY3Rh
bmdsZTsKIHR5cGVkZWYgc3RydWN0IF9HZGtEcmF3YWJsZSBHZGtXaW5kb3c7CiAjZWxzZQogdHlw
ZWRlZiBzdHJ1Y3QgX0dka1dpbmRvdyBHZGtXaW5kb3c7Ci10eXBlZGVmIHN0cnVjdCBfY2Fpcm9f
cmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7Ci10eXBlZGVmIGNhaXJvX3JlY3Rh
bmdsZV9pbnRfdCBHZGtSZWN0YW5nbGU7CiB0eXBlZGVmIHN0cnVjdCBfR3RrU3R5bGVDb250ZXh0
IEd0a1N0eWxlQ29udGV4dDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjZhZmE3NS4uMGI0N2Mz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDExLTA1LTI5ICBKb29uZSBIdXIgIDxq
b29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3Jl
Y3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0
YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBBZGRlZCBJbnRS
ZWN0Q2Fpcm8uY3BwIGluc3RlYWQgb2YgSW50UmVjdEd0ay5jcHAKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbnRSZWN0Lmg6IEludFJlY3QgY2xhc3MgY2FuIGJlIGluc3RhbnRpYXRlZCB0
aHJvdWdoIHRoZSBnaXZlbiBjYWlyb19yZWN0YW5nbGVfaW50X3QgCisgICAgICAgIGluc3RlYWQg
b2YgR2RrUmVjdGFuZ2xlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dENhaXJvLmNwcDogUmVtb3ZlIHRoZSBHVEsrIGNvZGUuCisgICAgICAgIChXZWJD
b3JlOjpHcmFwaGljc0NvbnRleHQ6OmRyYXdGb2N1c1JpbmcpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW50UmVjdEd0ay5jcHAuCisgICAgICAgIChXZWJD
b3JlOjpJbnRSZWN0OjpJbnRSZWN0KTogCisgICAgICAgIChXZWJDb3JlOjpJbnRSZWN0OjpvcGVy
YXRvciBjYWlyb19yZWN0YW5nbGVfaW50X3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL093blB0ckNhaXJvLmNwcDogT3duUHRyIHN1cHBvcnQgZm9yIGNhaXJvX3JlZ2lvbl90
IGFuZCBjYWlyb19yZWN0YW5nbGVfdC4KKyAgICAgICAgKFdURjo6Y2Fpcm9fcmVnaW9uX3QpOgor
ICAgICAgICAoV1RGOjpjYWlyb19yZWN0YW5nbGVfdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L0d0a1BsdWdpbldpZGdldC5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3Rh
bmdsZV9pbnRfdC4KKyAgICAgICAgKFdlYkNvcmU6Okd0a1BsdWdpbldpZGdldDo6aW52YWxpZGF0
ZVJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3RrUGx1Z2luV2lkZ2V0OjpwYWludCk6CisgICAg
ICAgICogcGx1Z2lucy9ndGsvUGx1Z2luVmlld0d0ay5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xl
IGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6
OnVwZGF0ZVdpZGdldEFsbG9jYXRpb25BbmRDbGlwKToKKwogMjAxMS0wNS0yOCAgQWxleGV5IFBy
b3NrdXJ5YWtvdiAgPGFwQGFwcGxlLmNvbT4KIAogICAgICAgICBTdWdnZXN0ZWQgYnkgU2ltb24g
RnJhc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOTlmOWYzZS4uYjU0Mjkz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNzMyLDYgKzM3MzIsNyBAQCB3
ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcCBcCkBAIC0zNzY3LDcgKzM3Njgs
NiBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9JbWFnZUJ1ZmZlckd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9JbWFnZUd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9JbnRQb2ludEd0ay5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0NsaXBib2FyZEd0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DbGlwYm9h
cmRHdGsuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0NsaXBib2FyZFV0aWxpdGll
c0d0ay5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW50UmVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCmlu
ZGV4IDM2MGI4NTYuLmZhMGNkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ludFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmgKQEAgLTUwLDkgKzUwLDYgQEAgUVRfRU5EX05BTUVTUEFDRQogI2VsaWYgUExB
VEZPUk0oR1RLKQogI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiB0eXBlZGVmIHN0cnVjdCBfR2Rr
UmVjdGFuZ2xlIEdka1JlY3RhbmdsZTsKLSNlbHNlCi10eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVj
dGFuZ2xlX2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7Ci10eXBlZGVmIGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdCBHZGtSZWN0YW5nbGU7CiAjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEhBSUtVKQogY2xh
c3MgQlJlY3Q7CkBAIC02MCw2ICs1NywxMCBAQCBjbGFzcyBCUmVjdDsKIHR5cGVkZWYgc3RydWN0
IF9FaW5hX1JlY3RhbmdsZSBFaW5hX1JlY3RhbmdsZTsKICNlbmRpZgogCisjaWYgVVNFKENBSVJP
KQordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2lu
dF90OworI2VuZGlmCisKICNpZiBQTEFURk9STShXWCkKIGNsYXNzIHd4UmVjdDsKICNlbmRpZgpA
QCAtMTgxLDkgKzE4Miw2IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKFFUKQogICAgIEludFJl
Y3QoY29uc3QgUVJlY3QmKTsKICAgICBvcGVyYXRvciBRUmVjdCgpIGNvbnN0OwotI2VsaWYgUExB
VEZPUk0oR1RLKQotICAgIEludFJlY3QoY29uc3QgR2RrUmVjdGFuZ2xlJik7Ci0gICAgb3BlcmF0
b3IgR2RrUmVjdGFuZ2xlKCkgY29uc3Q7CiAjZWxpZiBQTEFURk9STShIQUlLVSkKICAgICBleHBs
aWNpdCBJbnRSZWN0KGNvbnN0IEJSZWN0Jik7CiAgICAgb3BlcmF0b3IgQlJlY3QoKSBjb25zdDsK
QEAgLTE5Miw2ICsxOTAsMTEgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIEVpbmFfUmVjdGFuZ2xl
KCkgY29uc3Q7CiAjZW5kaWYKIAorI2lmIFVTRShDQUlSTykKKyAgICBJbnRSZWN0KGNvbnN0IGNh
aXJvX3JlY3RhbmdsZV9pbnRfdCYpOworICAgIG9wZXJhdG9yIGNhaXJvX3JlY3RhbmdsZV9pbnRf
dCgpIGNvbnN0OworI2VuZGlmCisKICNpZiBVU0UoQ0cpIHx8IFVTRShTS0lBX09OX01BQ19DSFJP
TUUpCiAgICAgb3BlcmF0b3IgQ0dSZWN0KCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJv
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29u
dGV4dENhaXJvLmNwcAppbmRleCA5YmVjZDYyLi4yOTQ4MzIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250
ZXh0Q2Fpcm8uY3BwCkBAIC02MjksMjkgKzYyOSw2IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0Ojpk
cmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcmVjdHMsIGludCB3aWR0aCwgaW50
CiAgICAgY2Fpcm9fcHVzaF9ncm91cChjcik7CiAgICAgY2Fpcm9fbmV3X3BhdGgoY3IpOwogCi0j
aWYgUExBVEZPUk0oR1RLKQotI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCi0gICAgR2RrUmVnaW9u
KiByZWcgPSBnZGtfcmVnaW9uX25ldygpOwotI2Vsc2UKLSAgICBjYWlyb19yZWdpb25fdCogcmVn
ID0gY2Fpcm9fcmVnaW9uX2NyZWF0ZSgpOwotI2VuZGlmCi0KLSAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgcmVjdENvdW50OyBpKyspIHsKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotICAg
ICAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IHJlY3RzW2ldOwotICAgICAgICBnZGtfcmVnaW9uX3Vu
aW9uX3dpdGhfcmVjdChyZWcsICZyZWN0KTsKLSNlbHNlCi0gICAgICAgIGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdCByZWN0ID0gcmVjdHNbaV07Ci0gICAgICAgIGNhaXJvX3JlZ2lvbl91bmlvbl9yZWN0
YW5nbGUocmVnLCAmcmVjdCk7Ci0jZW5kaWYKLSAgICB9Ci0gICAgZ2RrX2NhaXJvX3JlZ2lvbihj
ciwgcmVnKTsKLSNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgotICAgIGdka19yZWdpb25fZGVzdHJv
eShyZWcpOwotI2Vsc2UKLSAgICBjYWlyb19yZWdpb25fZGVzdHJveShyZWcpOwotI2VuZGlmCi0j
ZWxzZQogICAgIGludCByYWRpdXMgPSAod2lkdGggLSAxKSAvIDI7CiAgICAgUGF0aCBwYXRoOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCByZWN0Q291bnQ7ICsraSkgewpAQCAtNjYwLDcg
KzYzNyw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpkcmF3Rm9jdXNSaW5nKGNvbnN0IFZlY3Rv
cjxJbnRSZWN0PiYgcmVjdHMsIGludCB3aWR0aCwgaW50CiAgICAgICAgIHBhdGguYWRkUm91bmRl
ZFJlY3QocmVjdHNbaV0sIEZsb2F0U2l6ZShyYWRpdXMsIHJhZGl1cykpOwogICAgICAgICBhcHBl
bmRXZWJDb3JlUGF0aFRvQ2Fpcm9Db250ZXh0KGNyLCBwYXRoKTsKICAgICB9Ci0jZW5kaWYKKwog
ICAgIENvbG9yIHJpbmdDb2xvciA9IGNvbG9yOwogICAgIGFkanVzdEZvY3VzUmluZ0NvbG9yKHJp
bmdDb2xvcik7CiAgICAgYWRqdXN0Rm9jdXNSaW5nTGluZVdpZHRoKHdpZHRoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8u
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmNlZjNhZjkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0
Q2Fpcm8uY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxw
IFRva2VyIDxhbHBAYXRva2VyLmNvbT4KKyAqIENvcHlyaWdodCAoQykgMjAxMSBDb2xsYWJvcmEg
THRkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW50UmVjdC5oIgorCisjaW5jbHVk
ZSA8Y2Fpcm8uaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitJbnRSZWN0OjpJbnRSZWN0KGNv
bnN0IGNhaXJvX3JlY3RhbmdsZV9pbnRfdCYgcikKKyAgICA6IG1fbG9jYXRpb24oSW50UG9pbnQo
ci54LCByLnkpKQorICAgICwgbV9zaXplKHIud2lkdGgsIHIuaGVpZ2h0KQoreworfQorCitJbnRS
ZWN0OjpvcGVyYXRvciBjYWlyb19yZWN0YW5nbGVfaW50X3QoKSBjb25zdAoreworICAgIGNhaXJv
X3JlY3RhbmdsZV9pbnRfdCByID0geyB4KCksIHkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkgfTsKKyAg
ICByZXR1cm4gcjsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCmluZGV4IDE1OTRlN2IuLjRkYWRlZGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNh
aXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25Q
dHJDYWlyby5jcHAKQEAgLTQ5LDQgKzQ5LDE2IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3du
ZWRQdHI8Y2Fpcm9fcGF0aF90PihjYWlyb19wYXRoX3QqIHB0cikKICAgICAgICAgY2Fpcm9fcGF0
aF9kZXN0cm95KHB0cik7CiB9CiAKK3RlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fp
cm9fcmVnaW9uX3Q+KGNhaXJvX3JlZ2lvbl90KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAgICAg
ICAgY2Fpcm9fcmVnaW9uX2Rlc3Ryb3kocHRyKTsKK30KKwordGVtcGxhdGUgPD4gdm9pZCBkZWxl
dGVPd25lZFB0cjxjYWlyb19yZWN0YW5nbGVfdD4oY2Fpcm9fcmVjdGFuZ2xlX3QqIHB0cikKK3sK
KyAgICBpZiAocHRyKQorICAgICAgICBmcmVlKHB0cik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3du
UHRyQ2Fpcm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0
ckNhaXJvLmgKaW5kZXggYmQ1MTdiMi4uOGNlNGE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oCkBAIC0yOSw2ICsyOSw4
IEBAIHR5cGVkZWYgc3RydWN0IF9GY0ZvbnRTZXQgRmNGb250U2V0OwogI2VuZGlmCiAKIHR5cGVk
ZWYgc3RydWN0IGNhaXJvX3BhdGggY2Fpcm9fcGF0aF90OwordHlwZWRlZiBzdHJ1Y3QgX2NhaXJv
X3JlZ2lvbiBjYWlyb19yZWdpb25fdDsKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGUg
Y2Fpcm9fcmVjdGFuZ2xlX3Q7CiAKIG5hbWVzcGFjZSBXVEYgewogCkBAIC0zOCw2ICs0MCw4IEBA
IHRlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8RmNGb250U2V0PihGY0ZvbnRTZXQqKTsK
ICNlbmRpZgogCiB0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3BhdGhfdD4o
Y2Fpcm9fcGF0aF90Kik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3Jl
Z2lvbl90PihjYWlyb19yZWdpb25fdCopOwordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0
cjxjYWlyb19yZWN0YW5nbGVfdD4oY2Fpcm9fcmVjdGFuZ2xlX3QqKTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV1RGCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9JbnRSZWN0R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9J
bnRSZWN0R3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWFhMTk0NC4uMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvSW50UmVjdEd0
ay5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5
IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAq
IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVp
dGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJB
TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0g
KiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0g
KiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBm
aWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNp
bmNsdWRlICJJbnRSZWN0LmgiCi0KLSNpbmNsdWRlIDxnZGsvZ2RrLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotSW50UmVjdDo6SW50UmVjdChjb25zdCBHZGtSZWN0YW5nbGUmIHIpCi0gICAg
OiBtX2xvY2F0aW9uKEludFBvaW50KHIueCwgci55KSkKLSAgICAsIG1fc2l6ZShyLndpZHRoLCBy
LmhlaWdodCkKLXsKLX0KLQotSW50UmVjdDo6b3BlcmF0b3IgR2RrUmVjdGFuZ2xlKCkgY29uc3QK
LXsKLSAgICBHZGtSZWN0YW5nbGUgciA9IHsgeCgpLCB5KCksIHdpZHRoKCksIGhlaWdodCgpIH07
Ci0gICAgcmV0dXJuIHI7Ci19Ci0KLX0KLQotLy8gdmltOiB0cz00IHN3PTQgZXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKaW5kZXggMzMxZjYw
Zi4uOGVlNGI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1Bs
dWdpbldpZGdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdp
bldpZGdldC5jcHAKQEAgLTQxLDcgKzQxLDcgQEAgR3RrUGx1Z2luV2lkZ2V0OjpHdGtQbHVnaW5X
aWRnZXQoR3RrV2lkZ2V0KiB3aWRnZXQpCiAgICAgZ3RrX3dpZGdldF9oaWRlKHdpZGdldCk7CiB9
CiAKLXZvaWQgR3RrUGx1Z2luV2lkZ2V0OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBf
cmVjdCkKK3ZvaWQgR3RrUGx1Z2luV2lkZ2V0OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0
JiBjb3JlUmVjdCkKIHsKICAgICAvKiBubyBuZWVkIHRvICovCiAgICAgaWYgKCFndGtfd2lkZ2V0
X2dldF9oYXNfd2luZG93KHBsYXRmb3JtV2lkZ2V0KCkpKQpAQCAtNTEsOCArNTEsOCBAQCB2b2lk
IEd0a1BsdWdpbldpZGdldDo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgX3JlY3QpCiAg
ICAgaWYgKCF3aW5kb3cpCiAgICAgICAgIHJldHVybjsKIAotICAgIEdka1JlY3RhbmdsZSByZWN0
ID0gX3JlY3Q7Ci0gICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCAmcmVjdCwg
RkFMU0UpOworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCByZWN0ID0gY29yZVJlY3Q7CisgICAg
Z2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93LCByZWludGVycHJldF9jYXN0PEdka1Jl
Y3RhbmdsZSo+KCZyZWN0KSwgRkFMU0UpOwogfQogCiB2b2lkIEd0a1BsdWdpbldpZGdldDo6ZnJh
bWVSZWN0c0NoYW5nZWQoKQpAQCAtODAsNyArODAsOCBAQCB2b2lkIEd0a1BsdWdpbldpZGdldDo6
cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiAg
ICAgR2RrRXZlbnQqIGV2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfRVhQT1NFKTsKICAgICBldmVu
dC0+ZXhwb3NlID0gKmNvbnRleHQtPmdka0V4cG9zZUV2ZW50KCk7Ci0gICAgZXZlbnQtPmV4cG9z
ZS5hcmVhID0gc3RhdGljX2Nhc3Q8R2RrUmVjdGFuZ2xlPihyZWN0KTsKKyAgICBjYWlyb19yZWN0
YW5nbGVfaW50X3QgcmVjdGFuZ2xlID0gcmVjdDsKKyAgICBldmVudC0+ZXhwb3NlLmFyZWEgPSAq
cmVpbnRlcnByZXRfY2FzdDxHZGtSZWN0YW5nbGUqPigmcmVjdGFuZ2xlKTsgCiAKICAgICBJbnRQ
b2ludCBsb2MgPSBwYXJlbnQoKS0+Y29udGVudHNUb1dpbmRvdyhyZWN0LmxvY2F0aW9uKCkpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCmluZGV4IDIz
NzhkMjQuLjA0YTg5ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1Bs
dWdpblZpZXdHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZp
ZXdHdGsuY3BwCkBAIC01NTAsOSArNTUwLDkgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVXaWRn
ZXRBbGxvY2F0aW9uQW5kQ2xpcCgpCiAKICAgICBHdGtXaWRnZXQqIHdpZGdldCA9IHBsYXRmb3Jt
UGx1Z2luV2lkZ2V0KCk7CiAgICAgaWYgKGd0a193aWRnZXRfZ2V0X3JlYWxpemVkKHdpZGdldCkp
IHsKLSAgICAgICAgR2RrUmVjdGFuZ2xlIGNsaXBSZWN0ID0gbV9jbGlwUmVjdDsKKyAgICAgICAg
Y2Fpcm9fcmVjdGFuZ2xlX2ludF90IGNsaXBSZWN0ID0gbV9jbGlwUmVjdDsKICNpZmRlZiBHVEtf
QVBJX1ZFUlNJT05fMgotICAgICAgICBHZGtSZWdpb24qIGNsaXBSZWdpb24gPSBnZGtfcmVnaW9u
X3JlY3RhbmdsZSgmY2xpcFJlY3QpOworICAgICAgICBHZGtSZWdpb24qIGNsaXBSZWdpb24gPSBn
ZGtfcmVnaW9uX3JlY3RhbmdsZSgoR2RrUmVjdGFuZ2xlKikmY2xpcFJlY3QpOwogICAgICAgICBn
ZGtfd2luZG93X3NoYXBlX2NvbWJpbmVfcmVnaW9uKGd0a193aWRnZXRfZ2V0X3dpbmRvdyh3aWRn
ZXQpLCBjbGlwUmVnaW9uLCAwLCAwKTsKICAgICAgICAgZ2RrX3JlZ2lvbl9kZXN0cm95KGNsaXBS
ZWdpb24pOwogI2Vsc2UKQEAgLTU2MSw4ICs1NjEsOCBAQCB2b2lkIFBsdWdpblZpZXc6OnVwZGF0
ZVdpZGdldEFsbG9jYXRpb25BbmRDbGlwKCkKICAgICAgICAgY2Fpcm9fcmVnaW9uX2Rlc3Ryb3ko
Y2xpcFJlZ2lvbik7CiAjZW5kaWYKICAgICB9Ci0KLSAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRp
b24obV9kZWxheWVkQWxsb2NhdGlvbik7CisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGRlbGF5
ZWRSZWN0ID0gbV9kZWxheWVkQWxsb2NhdGlvbjsKKyAgICBHdGtBbGxvY2F0aW9uIGFsbG9jYXRp
b24oKnJlaW50ZXJwcmV0X2Nhc3Q8R2RrUmVjdGFuZ2xlKj4oJmRlbGF5ZWRSZWN0KSk7CiAgICAg
Z3RrX3dpZGdldF9zaXplX2FsbG9jYXRlKHdpZGdldCwgJmFsbG9jYXRpb24pOwogICAgIG1fZGVs
YXllZEFsbG9jYXRpb24gPSBJbnRSZWN0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggYjA1OGFi
YS4uN2FmNTUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDExLTA1LTI5
ICBKb29uZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFu
Z2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNlIEdka1JlY3Rhbmds
ZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5n
bGVfaW50X3QuCisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjpzY3JvbGwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IERp
dHRvLgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFy
YWN0ZXJSYW5nZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJlY3Rhbmds
ZUZvclNlbGVjdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrLmg6IERpdHRvLgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDog
RGl0dG8uCisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfZXhwb3NlX2V2ZW50KToKKyAgICAgICAg
KHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKToKKwogMjAxMS0wNS0yOCAgQWRhbSBCYXJ0
aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9z
a3VyeWFrb3YuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hy
b21lQ2xpZW50R3RrLmNwcAppbmRleCAyNGMyZDZhLi4xNGRlOGJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKQEAgLTM4
OSwxMSArMzg5LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlV2luZG93KGNvbnN0
IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkKIAogdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGVDb250ZW50c0FuZFdpbmRvdyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVk
aWF0ZSkKIHsKLSAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IHVwZGF0ZVJlY3Q7CisgICAgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90IHJlY3QgPSB1cGRhdGVSZWN0OwogICAgIEdka1dpbmRvdyogd2luZG93
ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KEdUS19XSURHRVQobV93ZWJWaWV3KSk7CiAKICAgICBp
ZiAod2luZG93ICYmICF1cGRhdGVSZWN0LmlzRW1wdHkoKSkgewotICAgICAgICBnZGtfd2luZG93
X2ludmFsaWRhdGVfcmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CisgICAgICAgIGdka193aW5k
b3dfaW52YWxpZGF0ZV9yZWN0KHdpbmRvdywgKEdka1JlY3RhbmdsZSopJnJlY3QsIEZBTFNFKTsK
ICAgICAgICAgLy8gV2UgZG9uJ3QgY3VycmVudGx5IGRvIGltbWVkaWF0ZSB1cGRhdGVzIHNpbmNl
IHRoZXkgZGVsYXkgb3RoZXIgVUkgZWxlbWVudHMuCiAgICAgICAgIC8vaWYgKGltbWVkaWF0ZSkK
ICAgICAgICAgLy8gICAgZ2RrX3dpbmRvd19wcm9jZXNzX3VwZGF0ZXMod2luZG93LCBGQUxTRSk7
CkBAIC00MTcsMTggKzQxNywxOCBAQCB2b2lkIENocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IElu
dFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbgogICAgIC8vIFdl
IGNhbm5vdCB1c2UgZ2RrX3dpbmRvd19zY3JvbGwgaGVyZSBiZWNhdXNlIGl0IGlzIG9ubHkgYWJs
ZSB0bwogICAgIC8vIHNjcm9sbCB0aGUgd2hvbGUgd2luZG93IGF0IG9uY2UsIGFuZCB3ZSBvZnRl
biBuZWVkIHRvIHNjcm9sbAogICAgIC8vIHBvcnRpb25zIG9mIHRoZSB3aW5kb3cgb25seSAodGhp
bmsgZnJhbWVzKS4KLSAgICBHZGtSZWN0YW5nbGUgYXJlYSA9IGNsaXBSZWN0OwotICAgIEdka1Jl
Y3RhbmdsZSBtb3ZlUmVjdDsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgYXJlYSA9IGNsaXBS
ZWN0OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBtb3ZlUmVjdDsKIAotICAgIEdka1JlY3Rh
bmdsZSBzb3VyY2VSZWN0ID0gYXJlYTsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3Qgc291cmNl
UmVjdCA9IGFyZWE7CiAgICAgc291cmNlUmVjdC54IC09IGRlbHRhLndpZHRoKCk7CiAgICAgc291
cmNlUmVjdC55IC09IGRlbHRhLmhlaWdodCgpOwogCiAjaWZkZWYgR1RLX0FQSV9WRVJTSU9OXzIK
LSAgICBHZGtSZWdpb24qIGludmFsaWRSZWdpb24gPSBnZGtfcmVnaW9uX3JlY3RhbmdsZSgmYXJl
YSk7CisgICAgR2RrUmVnaW9uKiBpbnZhbGlkUmVnaW9uID0gZ2RrX3JlZ2lvbl9yZWN0YW5nbGUo
KEdka1JlY3RhbmdsZSopJmFyZWEpOwogCi0gICAgaWYgKGdka19yZWN0YW5nbGVfaW50ZXJzZWN0
KCZhcmVhLCAmc291cmNlUmVjdCwgJm1vdmVSZWN0KSkgewotICAgICAgICBHZGtSZWdpb24qIG1v
dmVSZWdpb24gPSBnZGtfcmVnaW9uX3JlY3RhbmdsZSgmbW92ZVJlY3QpOworICAgIGlmIChnZGtf
cmVjdGFuZ2xlX2ludGVyc2VjdCgoR2RrUmVjdGFuZ2xlKikmYXJlYSwgKEdka1JlY3RhbmdsZSop
JnNvdXJjZVJlY3QsIChHZGtSZWN0YW5nbGUqKSZtb3ZlUmVjdCkpIHsKKyAgICAgICAgR2RrUmVn
aW9uKiBtb3ZlUmVnaW9uID0gZ2RrX3JlZ2lvbl9yZWN0YW5nbGUoKEdka1JlY3RhbmdsZSopJm1v
dmVSZWN0KTsKICAgICAgICAgZ2RrX3dpbmRvd19tb3ZlX3JlZ2lvbih3aW5kb3csIG1vdmVSZWdp
b24sIGRlbHRhLndpZHRoKCksIGRlbHRhLmhlaWdodCgpKTsKICAgICAgICAgZ2RrX3JlZ2lvbl9v
ZmZzZXQobW92ZVJlZ2lvbiwgZGVsdGEud2lkdGgoKSwgZGVsdGEuaGVpZ2h0KCkpOwogICAgICAg
ICBnZGtfcmVnaW9uX3N1YnRyYWN0KGludmFsaWRSZWdpb24sIG1vdmVSZWdpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggN2MzMDQzMy4uMTI2OThiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGsuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmNvbmZpcm1Db21wb3NpdGlvbihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBjb25zdAog
ICAgICAgICBlZGl0b3ItPmluc2VydFRleHQoU3RyaW5nOjpmcm9tVVRGOCh0ZXh0KSwgMCk7CiB9
CiAKLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJS
YW5nZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgsIEdk
a1JlY3RhbmdsZSogcmVjdCkKK2Jvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJl
Y3RGb3JDaGFyYWN0ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBpbnQgbG9jYXRpb24s
IGludCBsZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCogcmVjdCkKIHsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIGZhbHNlKTsKICAgICBn
X3JldHVybl92YWxfaWZfZmFpbChyZWN0LCBmYWxzZSk7CkBAIC03ODIsNyArNzgyLDcgQEAgdm9p
ZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFZhbHVlRm9yVXNlcihKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNWYWx1ZVJlZgogICAgIGlucHV0RWxlbWVudC0+c2V0VmFsdWVGb3JVc2VyKFN0
cmluZzo6ZnJvbVVURjgodmFsdWVCdWZmZXIuZ2V0KCkpKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSogZnJh
bWUsIEdka1JlY3RhbmdsZSogcmVjdGFuZ2xlKQordm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSogZnJhbWUsIGNhaXJvX3Jl
Y3RhbmdsZV9pbnRfdCogcmVjdGFuZ2xlKQogewogICAgIEZyYW1lKiBjb3JlRnJhbWUgPSBjb3Jl
KGZyYW1lKTsKICAgICBpZiAoIWNvcmVGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXgg
MzM4YmI0Ni4uOTlmYzZjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTk5LDExICs5OSwx
MSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3Kiwg
Y29uc3QgZ2NoYXIqLCBXZWJLaXRGaW5kT3B0aW9ucyk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q29t
cG9zaXRpb24oV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIqIHRleHQsIGludCBzdGFydCwgaW50
IGVuZCk7CiAgICAgc3RhdGljIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcq
LCBjb25zdCBjaGFyKiB0ZXh0KTsKLSAgICBzdGF0aWMgYm9vbCBmaXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZShXZWJLaXRXZWJWaWV3KiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoLCBHZGtSZWN0
YW5nbGUqKTsKKyAgICBzdGF0aWMgYm9vbCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShXZWJL
aXRXZWJWaWV3KiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoLCBjYWlyb19yZWN0YW5nbGVfaW50
X3QqKTsKICAgICBzdGF0aWMgYm9vbCBzZWxlY3RlZFJhbmdlKFdlYktpdFdlYlZpZXcqLCBpbnQq
IHN0YXJ0LCBpbnQqIGVuZCk7CiAgICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0TWluaW11bVRpbWVy
SW50ZXJ2YWwoKTsgLy8gTm90IHJlYWxseSB0aWVkIHRvIFdlYlZpZXcKICAgICBzdGF0aWMgdm9p
ZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJLaXRXZWJWaWV3KiwgZG91YmxlKTsKLSAgICBz
dGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBHZGtSZWN0
YW5nbGUqKTsKKyAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2Vi
RnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBh
Z2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAKICAgICAvLyBBY2Nl
c3NpYmlsaXR5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAKaW5k
ZXggNTFjMjgyNy4uMWFjZTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvd2Via2l0
L3dlYmtpdHdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXR3
ZWJ2aWV3LmNwcApAQCAtNjcwLDEzICs2NzAsMTQgQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93
ZWJfdmlld19leHBvc2VfZXZlbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIEdka0V2ZW50RXhwb3NlKgog
ICAgICAgICBnYy5zZXRHZGtFeHBvc2VFdmVudChldmVudCk7CiAKICAgICAgICAgaW50IHJlY3RD
b3VudDsKLSAgICAgICAgR093blB0cjxHZGtSZWN0YW5nbGU+IHJlY3RzOwotICAgICAgICBnZGtf
cmVnaW9uX2dldF9yZWN0YW5nbGVzKGV2ZW50LT5yZWdpb24sICZyZWN0cy5vdXRQdHIoKSwgJnJl
Y3RDb3VudCk7CisgICAgICAgIEdPd25QdHI8Y2Fpcm9fcmVjdGFuZ2xlX2ludF90PiByZWN0czsK
KyAgICAgICAgZ2RrX3JlZ2lvbl9nZXRfcmVjdGFuZ2xlcyhldmVudC0+cmVnaW9uLCAoR2RrUmVj
dGFuZ2xlKiopJnJlY3RzLm91dFB0cigpLCAmcmVjdENvdW50KTsKICAgICAgICAgVmVjdG9yPElu
dFJlY3Q+IHBhaW50UmVjdHM7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgcmVjdENvdW50
OyBpKyspCiAgICAgICAgICAgICBwYWludFJlY3RzLmFwcGVuZChJbnRSZWN0KHJlY3RzLmdldCgp
W2ldKSk7Ci0KLSAgICAgICAgcGFpbnRXZWJWaWV3KGZyYW1lLCBwcml2LT50cmFuc3BhcmVudCwg
Z2MsIHN0YXRpY19jYXN0PEludFJlY3Q+KGV2ZW50LT5hcmVhKSwgcGFpbnRSZWN0cyk7CisgIAor
ICAgICAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgcmVjdCA9ICpyZWludGVycHJldF9jYXN0PGNh
aXJvX3JlY3RhbmdsZV9pbnRfdCo+KCZldmVudC0+YXJlYSk7CisgICAgICAgIHBhaW50V2ViVmll
dyhmcmFtZSwgcHJpdi0+dHJhbnNwYXJlbnQsIGdjLCBzdGF0aWNfY2FzdDxJbnRSZWN0PihyZWN0
KSwgcGFpbnRSZWN0cyk7CiAgICAgfQogCiAgICAgcmV0dXJuIEZBTFNFOwpAQCAtMTY0Nyw4ICsx
NjQ4LDggQEAgc3RhdGljIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19xdWVyeV90b29sdGlwKEd0
a1dpZGdldCAqd2lkZ2V0LCBnaW50IHgsIGdpbnQgeSwKICAgICAgICAgICAgICAgICBTdHJpbmcg
dGl0bGUgPSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4odGl0bGVOb2RlKS0+dGl0bGUoKTsKICAgICAg
ICAgICAgICAgICBpZiAoIXRpdGxlLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgICAgICBp
ZiAoRnJhbWVWaWV3KiB2aWV3ID0gY29yZUZyYW1lLT52aWV3KCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIEdka1JlY3RhbmdsZSBhcmVhID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhub2Rl
LT5nZXRSZWN0KCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3Rp
cF9hcmVhKHRvb2x0aXAsICZhcmVhKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNhaXJvX3Jl
Y3RhbmdsZV9pbnRfdCBhcmVhID0gdmlldy0+Y29udGVudHNUb1dpbmRvdyhub2RlLT5nZXRSZWN0
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3RpcF9hcmVhKHRv
b2x0aXAsIChHZGtSZWN0YW5nbGUqKSZhcmVhKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGV4dCh0b29sdGlwLCB0aXRsZS51dGY4
KCkuZGF0YSgpKTsKIApAQCAtMTY2Myw4ICsxNjY0LDggQEAgc3RhdGljIGdib29sZWFuIHdlYmtp
dF93ZWJfdmlld19xdWVyeV90b29sdGlwKEd0a1dpZGdldCAqd2lkZ2V0LCBnaW50IHgsIGdpbnQg
eSwKICAgICBpZiAocHJpdi0+dG9vbHRpcFRleHQubGVuZ3RoKCkgPiAwKSB7CiAgICAgICAgIGlm
ICgha2V5Ym9hcmRfbW9kZSkgewogICAgICAgICAgICAgaWYgKCFwcml2LT50b29sdGlwQXJlYS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICBHZGtSZWN0YW5nbGUgYXJlYSA9IHByaXYtPnRv
b2x0aXBBcmVhOwotICAgICAgICAgICAgICAgIGd0a190b29sdGlwX3NldF90aXBfYXJlYSh0b29s
dGlwLCAmYXJlYSk7CisgICAgICAgICAgICAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGFyZWEg
PSBwcml2LT50b29sdGlwQXJlYTsKKyAgICAgICAgICAgICAgICBndGtfdG9vbHRpcF9zZXRfdGlw
X2FyZWEodG9vbHRpcCwgKEdka1JlY3RhbmdsZSopJmFyZWEpOwogICAgICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICAgICAgZ3RrX3Rvb2x0aXBfc2V0X3RpcF9hcmVhKHRvb2x0aXAsIDApOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggMDMwM2ZmMS4uZTgxNmJjMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA1LTI5ICBKb29uZSBIdXIg
IDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFtHVEtdIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJv
X3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19y
ZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvUGl4ZWxEdW1w
U3VwcG9ydEd0ay5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9p
bnRfdC4KKyAgICAgICAgKGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwOiBEaXR0by4KKyAg
ICAgICAgKGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQ2FsbGJhY2spOgorCiAyMDExLTA1LTI4
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvUGl4ZWxE
dW1wU3VwcG9ydEd0ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvUGl4ZWxEdW1wU3Vw
cG9ydEd0ay5jcHAKaW5kZXggMmJkOGZlMi4uM2VhYmZkOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3RrLmNwcApAQCAtNjAsNyArNjAsNyBAQCBQ
YXNzUmVmUHRyPEJpdG1hcENvbnRleHQ+IGNyZWF0ZUJpdG1hcENvbnRleHRGcm9tV2ViVmlldyhi
b29sLCBib29sLCBib29sLCBib29sCiAjZW5kaWYKIAogICAgIGlmIChkcmF3U2VsZWN0aW9uUmVj
dCkgewotICAgICAgICBHZGtSZWN0YW5nbGUgcmVjdGFuZ2xlOworICAgICAgICBjYWlyb19yZWN0
YW5nbGVfaW50X3QgcmVjdGFuZ2xlOwogICAgICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnJlY3RhbmdsZUZvclNlbGVjdGlvbihtYWluRnJhbWUsICZyZWN0YW5nbGUpOwogCiAgICAgICAg
IGNhaXJvX3NldF9saW5lX3dpZHRoKGNvbnRleHQsIDEuMCk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAKaW5kZXggZDFhYTMzZC4uNDNkZDc0
MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xs
ZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVy
LmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqCiAgICAgaW50
IGxlbmd0aCA9IHN0YXRpY19jYXN0PGludD4oSlNWYWx1ZVRvTnVtYmVyKGNvbnRleHQsIGFyZ3Vt
ZW50c1sxXSwgZXhjZXB0aW9uKSk7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoKCFleGNlcHRp
b24gfHwgISpleGNlcHRpb24pLCBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KSk7CiAKLSAg
ICBHZGtSZWN0YW5nbGUgcmVjdDsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgcmVjdDsKICAg
ICBpZiAoIUR1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2UodmlldywgbG9jYXRpb24sIGxlbmd0aCwgJnJlY3QpKQogICAgICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiAKZGlmZiAtLWdpdCBhL2NvbmZpZ3VyZS5hYyBiL2Nv
bmZpZ3VyZS5hYwppbmRleCBiZTQwNzRhLi4wOTg1ZDA1IDEwMDY0NAotLS0gYS9jb25maWd1cmUu
YWMKKysrIGIvY29uZmlndXJlLmFjCkBAIC0yNTUsNyArMjU1LDcgQEAgZmkKIAogIyBtaW5pbXVt
IGJhc2UgZGVwZW5kZW5jaWVzCiBMSUJTT1VQX1JFUVVJUkVEX1ZFUlNJT049Mi4zMy42Ci1DQUlS
T19SRVFVSVJFRF9WRVJTSU9OPTEuNgorQ0FJUk9fUkVRVUlSRURfVkVSU0lPTj0xLjEwCiBGT05U
Q09ORklHX1JFUVVJUkVEX1ZFUlNJT049Mi40CiBGUkVFVFlQRTJfUkVRVUlSRURfVkVSU0lPTj05
LjAKIExJQlhNTF9SRVFVSVJFRF9WRVJTSU9OPTIuNgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95720</attachid>
            <date>2011-06-01 22:01:43 -0700</date>
            <delta_ts>2011-06-17 04:09:02 -0700</delta_ts>
            <desc>Proposed Patch5</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>15529</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAwNTE0MDRhLi4yZGFlYzMy
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDYtMDIgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFj
ZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2Ug
R2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIGNvbmZp
Z3VyZS5hYzogQ2hlY2sgd2hldGhlciBDYWlybyB2ZXJzaW9uIGlzIGhpZ2hlciB0aGFuIDEuMTAu
CisKIDIwMTEtMDMtMzAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpp
bmRleCBjZmQwYTliLi45ODljYWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAxMS0wNi0wMiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5jby51
az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RL
XSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAg
UmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAg
ICogd3RmL2dvYmplY3QvR1R5cGVkZWZzLmg6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJv
X3JlY3RhbmdsZV9pbnRfdC4KKwogMjAxMS0wNi0wMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCmluZGV4IGM3ZjdhYzQuLmM4
NzhmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HVHlw
ZWRlZnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR1R5cGVkZWZz
LmgKQEAgLTYzLDYgKzYzLDcgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAK
ICNpZiBVU0UoQ0FJUk8pCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWlyb19zdXJm
YWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5n
bGVfaW50X3Q7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTg3LDggKzg4LDYgQEAg
dHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7CiB0eXBlZGVmIHN0cnVj
dCBfR2RrRHJhd2FibGUgR2RrV2luZG93OwogI2Vsc2UKIHR5cGVkZWYgc3RydWN0IF9HZGtXaW5k
b3cgR2RrV2luZG93OwotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWlyb19yZWN0YW5nbGVfaW50X3QgR2RrUmVjdGFu
Z2xlOwogdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlQ29udGV4dCBHdGtTdHlsZUNvbnRleHQ7CiAj
ZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDJjZmFlOGMuLjA4NmVlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMS0wNi0wMiAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5j
by51az4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBb
R1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAg
ICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAg
ICAgICogR05VbWFrZWZpbGUubGlzdC5hbTogQWRkZWQgSW50UmVjdENhaXJvLmNwcCBpbnN0ZWFk
IG9mIEludFJlY3RHdGsuY3BwCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5o
OiBJbnRSZWN0IGNsYXNzIGNhbiBiZSBpbnN0YW50aWF0ZWQgdGhyb3VnaCB0aGUgZ2l2ZW4gY2Fp
cm9fcmVjdGFuZ2xlX2ludF90IAorICAgICAgICBpbnN0ZWFkIG9mIEdka1JlY3RhbmdsZS4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbnRSZWN0Q2Fpcm8uY3BwOiBBZGQgdGhl
IGNvbnN0cnVjdG9yIGFuZCBvcGVyYXRvciBmb3IgaGFuZGxpbmcgY2Fpcm9fcmVjdGFuZ2xlX2lu
dF90LgorICAgICAgICAoV2ViQ29yZTo6SW50UmVjdDo6SW50UmVjdCk6IAorICAgICAgICAoV2Vi
Q29yZTo6SW50UmVjdDo6b3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX2ludF90KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHA6IE93blB0ciBzdXBwb3J0
IGZvciBjYWlyb19yZWdpb25fdCBhbmQgY2Fpcm9fcmVjdGFuZ2xlX3QuCisgICAgICAgIChXVEY6
OmNhaXJvX3JlZ2lvbl90KToKKyAgICAgICAgKFdURjo6Y2Fpcm9fcmVjdGFuZ2xlX3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmg6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcDogSW5jbHVkZSB0aGlz
IGZpbGUgb25seSBmb3IgR3RrKzIuCisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldp
ZGdldC5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4K
KyAgICAgICAgKFdlYkNvcmU6Okd0a1BsdWdpbldpZGdldDo6aW52YWxpZGF0ZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6R3RrUGx1Z2luV2lkZ2V0OjpwYWludCk6CisKIDIwMTEtMDYtMDEgIEVt
aWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMjI4ZTg5NC4uNmY1
N2Y4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNzMwLDYgKzM3MzAsNyBA
QCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckRhdGEuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VDYWlyby5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAgXAogCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaCBcCiAJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJvLmNwcCBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKaW5kZXggMzYwYjg1Ni4uMDYyNzg5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaApAQCAtNTAsOSArNTAs
NiBAQCBRVF9FTkRfTkFNRVNQQUNFCiAjZWxpZiBQTEFURk9STShHVEspCiAjaWZkZWYgR1RLX0FQ
SV9WRVJTSU9OXzIKIHR5cGVkZWYgc3RydWN0IF9HZGtSZWN0YW5nbGUgR2RrUmVjdGFuZ2xlOwot
I2Vsc2UKLXR5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50IGNhaXJvX3JlY3Rhbmds
ZV9pbnRfdDsKLXR5cGVkZWYgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IEdka1JlY3RhbmdsZTsKICNl
bmRpZgogI2VsaWYgUExBVEZPUk0oSEFJS1UpCiBjbGFzcyBCUmVjdDsKQEAgLTYwLDYgKzU3LDEw
IEBAIGNsYXNzIEJSZWN0OwogdHlwZWRlZiBzdHJ1Y3QgX0VpbmFfUmVjdGFuZ2xlIEVpbmFfUmVj
dGFuZ2xlOwogI2VuZGlmCiAKKyNpZiBVU0UoQ0FJUk8pCit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9f
cmVjdGFuZ2xlX2ludCBjYWlyb19yZWN0YW5nbGVfaW50X3Q7CisjZW5kaWYKKwogI2lmIFBMQVRG
T1JNKFdYKQogY2xhc3Mgd3hSZWN0OwogI2VuZGlmCkBAIC0xODIsOCArMTgzLDEwIEBAIHB1Ymxp
YzoKICAgICBJbnRSZWN0KGNvbnN0IFFSZWN0Jik7CiAgICAgb3BlcmF0b3IgUVJlY3QoKSBjb25z
dDsKICNlbGlmIFBMQVRGT1JNKEdUSykKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogICAgIElu
dFJlY3QoY29uc3QgR2RrUmVjdGFuZ2xlJik7CiAgICAgb3BlcmF0b3IgR2RrUmVjdGFuZ2xlKCkg
Y29uc3Q7CisjZW5kaWYKICNlbGlmIFBMQVRGT1JNKEhBSUtVKQogICAgIGV4cGxpY2l0IEludFJl
Y3QoY29uc3QgQlJlY3QmKTsKICAgICBvcGVyYXRvciBCUmVjdCgpIGNvbnN0OwpAQCAtMTkyLDYg
KzE5NSwxMSBAQCBwdWJsaWM6CiAgICAgb3BlcmF0b3IgRWluYV9SZWN0YW5nbGUoKSBjb25zdDsK
ICNlbmRpZgogCisjaWYgVVNFKENBSVJPKQorICAgIEludFJlY3QoY29uc3QgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90Jik7CisgICAgb3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX2ludF90KCkgY29uc3Q7
CisjZW5kaWYKKwogI2lmIFVTRShDRykgfHwgVVNFKFNLSUFfT05fTUFDX0NIUk9NRSkKICAgICBv
cGVyYXRvciBDR1JlY3QoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uY2VmM2FmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKQEAgLTAs
MCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNyBBbHAgVG9rZXIgPGFscEBhdG9r
ZXIuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDExIENvbGxhYm9yYSBMdGQuCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJh
bCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0
YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJJbnRSZWN0LmgiCisKKyNpbmNsdWRlIDxjYWlyby5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK0ludFJlY3Q6OkludFJlY3QoY29uc3QgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90JiByKQorICAgIDogbV9sb2NhdGlvbihJbnRQb2ludChyLngsIHIueSkpCisgICAg
LCBtX3NpemUoci53aWR0aCwgci5oZWlnaHQpCit7Cit9CisKK0ludFJlY3Q6Om9wZXJhdG9yIGNh
aXJvX3JlY3RhbmdsZV9pbnRfdCgpIGNvbnN0Cit7CisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90
IHIgPSB7IHgoKSwgeSgpLCB3aWR0aCgpLCBoZWlnaHQoKSB9OworICAgIHJldHVybiByOworfQor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9P
d25QdHJDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9P
d25QdHJDYWlyby5jcHAKaW5kZXggMTU5NGU3Yi4uNGRhZGVkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcApAQCAt
NDksNCArNDksMTYgQEAgdGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWlyb19wYXRo
X3Q+KGNhaXJvX3BhdGhfdCogcHRyKQogICAgICAgICBjYWlyb19wYXRoX2Rlc3Ryb3kocHRyKTsK
IH0KIAordGVtcGxhdGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxjYWlyb19yZWdpb25fdD4oY2Fp
cm9fcmVnaW9uX3QqIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBjYWlyb19yZWdpb25f
ZGVzdHJveShwdHIpOworfQorCit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJv
X3JlY3RhbmdsZV90PihjYWlyb19yZWN0YW5nbGVfdCogcHRyKQoreworICAgIGlmIChwdHIpCisg
ICAgICAgIGZyZWUocHRyKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAppbmRleCBi
ZDUxN2IyLi44Y2U0YTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Pd25QdHJDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKQEAgLTI5LDYgKzI5LDggQEAgdHlwZWRlZiBzdHJ1
Y3QgX0ZjRm9udFNldCBGY0ZvbnRTZXQ7CiAjZW5kaWYKIAogdHlwZWRlZiBzdHJ1Y3QgY2Fpcm9f
cGF0aCBjYWlyb19wYXRoX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVnaW9uIGNhaXJvX3Jl
Z2lvbl90OwordHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3RhbmdsZSBjYWlyb19yZWN0YW5nbGVf
dDsKIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTM4LDYgKzQwLDggQEAgdGVtcGxhdGUgPD4gdm9p
ZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+KEZjRm9udFNldCopOwogI2VuZGlmCiAKIHRlbXBs
YXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcGF0aF90PihjYWlyb19wYXRoX3QqKTsK
K3RlbXBsYXRlIDw+IHZvaWQgZGVsZXRlT3duZWRQdHI8Y2Fpcm9fcmVnaW9uX3Q+KGNhaXJvX3Jl
Z2lvbl90Kik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlbGV0ZU93bmVkUHRyPGNhaXJvX3JlY3Rhbmds
ZV90PihjYWlyb19yZWN0YW5nbGVfdCopOwogCiB9IC8vIG5hbWVzcGFjZSBXVEYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsuY3BwCmlu
ZGV4IGFhYTE5NDQuLjFmMzEyODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvSW50UmVjdEd0ay5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKIAogI2luY2x1
ZGUgPGdkay9nZGsuaD4KIAorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEludFJlY3Q6OkludFJlY3QoY29uc3QgR2RrUmVjdGFuZ2xlJiByKQpAQCAtMzcs
NSArMzgsNCBAQCBJbnRSZWN0OjpvcGVyYXRvciBHZGtSZWN0YW5nbGUoKSBjb25zdAogfQogCiB9
Ci0KLS8vIHZpbTogdHM9NCBzdz00IGV0CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKaW5kZXggMzMxZjYwZi4uODIwMjM1OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1BsdWdpbldpZGdldC5jcHAKQEAg
LTQxLDcgKzQxLDcgQEAgR3RrUGx1Z2luV2lkZ2V0OjpHdGtQbHVnaW5XaWRnZXQoR3RrV2lkZ2V0
KiB3aWRnZXQpCiAgICAgZ3RrX3dpZGdldF9oaWRlKHdpZGdldCk7CiB9CiAKLXZvaWQgR3RrUGx1
Z2luV2lkZ2V0OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBfcmVjdCkKK3ZvaWQgR3Rr
UGx1Z2luV2lkZ2V0OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiBjb3JlUmVjdCkKIHsK
ICAgICAvKiBubyBuZWVkIHRvICovCiAgICAgaWYgKCFndGtfd2lkZ2V0X2dldF9oYXNfd2luZG93
KHBsYXRmb3JtV2lkZ2V0KCkpKQpAQCAtNTEsNyArNTEsNyBAQCB2b2lkIEd0a1BsdWdpbldpZGdl
dDo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgX3JlY3QpCiAgICAgaWYgKCF3aW5kb3cp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEdka1JlY3RhbmdsZSByZWN0ID0gX3JlY3Q7CisgICAg
R2RrUmVjdGFuZ2xlIHJlY3QgPSBjb3JlUmVjdDsKICAgICBnZGtfd2luZG93X2ludmFsaWRhdGVf
cmVjdCh3aW5kb3csICZyZWN0LCBGQUxTRSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCA0YzQ2
MGE4Li5kOWM5ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDYt
MDIgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gUmVwbGFjZSBHZGtSZWN0
YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAgICAgIFJlcGxhY2UgR2RrUmVjdGFu
Z2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6IFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNh
aXJvX3JlY3RhbmdsZV9pbnRfdC4KKyAgICAgICAgKER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOiBEaXR0by4KKyAgICAgICAgKiB3ZWJraXQvd2Vi
a2l0d2Vidmlldy5jcHA6IERpdHRvLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X3F1ZXJ5X3Rv
b2x0aXApOgorCiAyMDExLTA2LTAxICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCA3YzMwNDMzLi4xMjY5OGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAK
QEAgLTU1Myw3ICs1NTMsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y29uZmly
bUNvbXBvc2l0aW9uKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGNvbnN0CiAgICAgICAgIGVkaXRv
ci0+aW5zZXJ0VGV4dChTdHJpbmc6OmZyb21VVEY4KHRleHQpLCAwKTsKIH0KIAotYm9vbCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCwgR2RrUmVjdGFuZ2xlKiBy
ZWN0KQorYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVjdEZvckNoYXJhY3Rl
clJhbmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCwg
Y2Fpcm9fcmVjdGFuZ2xlX2ludF90KiByZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgZmFsc2UpOwogICAgIGdfcmV0dXJuX3ZhbF9p
Zl9mYWlsKHJlY3QsIGZhbHNlKTsKQEAgLTc4Miw3ICs3ODIsNyBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU1Zh
bHVlUmVmCiAgICAgaW5wdXRFbGVtZW50LT5zZXRWYWx1ZUZvclVzZXIoU3RyaW5nOjpmcm9tVVRG
OCh2YWx1ZUJ1ZmZlci5nZXQoKSkpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgR2RrUmVjdGFu
Z2xlKiByZWN0YW5nbGUpCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xl
Rm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY2Fpcm9fcmVjdGFuZ2xlX2ludF90
KiByZWN0YW5nbGUpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUoZnJhbWUpOwogICAg
IGlmICghY29yZUZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCAzMzhiYjQ2Li45OWZj
NmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtOTksMTEgKzk5LDExIEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFdlYktpdFdlYlZpZXcqLCBjb25zdCBnY2hhcios
IFdlYktpdEZpbmRPcHRpb25zKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDb21wb3NpdGlvbihXZWJL
aXRXZWJWaWV3KiwgY29uc3QgY2hhciogdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKTsKICAgICBz
dGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oV2ViS2l0V2ViVmlldyosIGNvbnN0IGNoYXIq
IHRleHQpOwotICAgIHN0YXRpYyBib29sIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktp
dFdlYlZpZXcqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgsIEdka1JlY3RhbmdsZSopOworICAg
IHN0YXRpYyBib29sIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdlYlZpZXcqLCBp
bnQgbG9jYXRpb24sIGludCBsZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwogICAgIHN0
YXRpYyBib29sIHNlbGVjdGVkUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCogc3RhcnQsIGludCog
ZW5kKTsKICAgICBzdGF0aWMgZG91YmxlIGRlZmF1bHRNaW5pbXVtVGltZXJJbnRlcnZhbCgpOyAv
LyBOb3QgcmVhbGx5IHRpZWQgdG8gV2ViVmlldwogICAgIHN0YXRpYyB2b2lkIHNldE1pbmltdW1U
aW1lckludGVydmFsKFdlYktpdFdlYlZpZXcqLCBkb3VibGUpOwotICAgIHN0YXRpYyB2b2lkIHJl
Y3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIEdka1JlY3RhbmdsZSopOworICAg
IHN0YXRpYyB2b2lkIHJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIGNhaXJv
X3JlY3RhbmdsZV9pbnRfdCopOwogICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdlYktpdFdl
YlZpZXcqLCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYTZkNzg1
Li4yZjU0ZjkzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDYtMDIgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBj
b2xsYWJvcmEuY28udWs+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgW0dUS10gUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2lu
dF90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4
NworCisgICAgICAgIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRf
dC4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3RrLmNw
cDogUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorICAgICAg
ICAoY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHA6IERpdHRvLgorICAgICAgICAoZmlyc3RS
ZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VDYWxsYmFjayk6CisKIDIwMTEtMDYtMDEgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBC
YXJ0aC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBw
b3J0R3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3Rr
LmNwcAppbmRleCAyYmQ4ZmUyLi4zZWFiZmQ5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwCkBAIC02MCw3ICs2MCw3IEBAIFBhc3NSZWZQ
dHI8Qml0bWFwQ29udGV4dD4gY3JlYXRlQml0bWFwQ29udGV4dEZyb21XZWJWaWV3KGJvb2wsIGJv
b2wsIGJvb2wsIGJvb2wKICNlbmRpZgogCiAgICAgaWYgKGRyYXdTZWxlY3Rpb25SZWN0KSB7Ci0g
ICAgICAgIEdka1JlY3RhbmdsZSByZWN0YW5nbGU7CisgICAgICAgIGNhaXJvX3JlY3RhbmdsZV9p
bnRfdCByZWN0YW5nbGU7CiAgICAgICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6cmVjdGFu
Z2xlRm9yU2VsZWN0aW9uKG1haW5GcmFtZSwgJnJlY3RhbmdsZSk7CiAKICAgICAgICAgY2Fpcm9f
c2V0X2xpbmVfd2lkdGgoY29udGV4dCwgMS4wKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAppbmRleCBkMWFhMzNkLi40M2RkNzQyIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0Q29udHJvbGxlci5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCkBA
IC0xMTMsNyArMTEzLDcgQEAgc3RhdGljIEpTVmFsdWVSZWYgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVy
UmFuZ2VDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmoKICAgICBpbnQgbGVuZ3Ro
ID0gc3RhdGljX2Nhc3Q8aW50PihKU1ZhbHVlVG9OdW1iZXIoY29udGV4dCwgYXJndW1lbnRzWzFd
LCBleGNlcHRpb24pKTsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbCgoIWV4Y2VwdGlvbiB8fCAh
KmV4Y2VwdGlvbiksIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpKTsKIAotICAgIEdka1Jl
Y3RhbmdsZSByZWN0OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCByZWN0OwogICAgIGlmICgh
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh2aWV3
LCBsb2NhdGlvbiwgbGVuZ3RoLCAmcmVjdCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKIApkaWZmIC0tZ2l0IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJl
LmFjCmluZGV4IGE1Y2U4NjEuLmU5OTY3Y2EgMTAwNjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysg
Yi9jb25maWd1cmUuYWMKQEAgLTI1NSw3ICsyNTUsNyBAQCBmaQogCiAjIG1pbmltdW0gYmFzZSBk
ZXBlbmRlbmNpZXMKIExJQlNPVVBfUkVRVUlSRURfVkVSU0lPTj0yLjMzLjYKLUNBSVJPX1JFUVVJ
UkVEX1ZFUlNJT049MS42CitDQUlST19SRVFVSVJFRF9WRVJTSU9OPTEuMTAKIEZPTlRDT05GSUdf
UkVRVUlSRURfVkVSU0lPTj0yLjQKIEZSRUVUWVBFMl9SRVFVSVJFRF9WRVJTSU9OPTkuMAogTElC
WE1MX1JFUVVJUkVEX1ZFUlNJT049Mi42Cg==
</data>
<flag name="review"
          id="89275"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97576</attachid>
            <date>2011-06-17 04:09:02 -0700</date>
            <delta_ts>2011-06-17 04:50:11 -0700</delta_ts>
            <desc>Proposed Patch6</desc>
            <filename>cairo_rectangle_int_t.patch</filename>
            <type>text/plain</type>
            <size>13789</size>
            <attacher name="Joone Hur">joone.hur</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBiMDhmNWU1Li5kYWU2MWY5
IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTEtMDYtMTcgIEpvb25lIEh1ciAgPGpvb25lLmh1ckBjb2xsYWJvcmEuY28udWs+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgorCisgICAgICAgIFtHVEtdIFJlcGxh
Y2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjA2ODcKKworICAgICAgICBSZXBsYWNl
IEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0YW5nbGVfaW50X3QuCisKKyAgICAgICAgKiBjb25m
aWd1cmUuYWM6IENoZWNrIHdoZXRoZXIgQ2Fpcm8gdmVyc2lvbiBpcyBoaWdoZXIgdGhhbiAxLjEw
LgorCiAyMDExLTA2LTE2ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxv
ZwppbmRleCA5YzdmZThmLi5hMjFhN2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNCBAQAorMjAxMS0wNi0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVyQGNvbGxhYm9yYS5j
by51az4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24uCisKKyAgICAgICAg
W0dUS10gUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xlX2ludF90CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MDY4NworCisgICAg
ICAgIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9pbnRfdC4KKworICAg
ICAgICAqIHd0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBj
YWlyb19yZWN0YW5nbGVfaW50X3QuCisKIDIwMTEtMDYtMTYgIEdhdmluIEJhcnJhY2xvdWdoICA8
YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50
LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVm
cy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9nb2JqZWN0L0dUeXBlZGVmcy5oCmluZGV4
IGM3ZjdhYzQuLmM4NzhmMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYv
Z29iamVjdC9HVHlwZWRlZnMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmpl
Y3QvR1R5cGVkZWZzLmgKQEAgLTYzLDYgKzYzLDcgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQg
R2RrRXZlbnQ7CiAKICNpZiBVU0UoQ0FJUk8pCiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFj
ZSBjYWlyb19zdXJmYWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fcmVjdGFuZ2xlX2ludCBj
YWlyb19yZWN0YW5nbGVfaW50X3Q7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTg3
LDggKzg4LDYgQEAgdHlwZWRlZiBzdHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7CiB0
eXBlZGVmIHN0cnVjdCBfR2RrRHJhd2FibGUgR2RrV2luZG93OwogI2Vsc2UKIHR5cGVkZWYgc3Ry
dWN0IF9HZGtXaW5kb3cgR2RrV2luZG93OwotdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX3JlY3Rhbmds
ZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWlyb19yZWN0YW5nbGVfaW50
X3QgR2RrUmVjdGFuZ2xlOwogdHlwZWRlZiBzdHJ1Y3QgX0d0a1N0eWxlQ29udGV4dCBHdGtTdHls
ZUNvbnRleHQ7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDNiNGVkZDQuLjkxZjFiMjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMS0wNi0xNyAgSm9vbmUgSHVyICA8am9vbmUuaHVy
QGNvbGxhYm9yYS5jby51az4KKworICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4gUm9iaW5zb24u
CisKKyAgICAgICAgW0dUS10gUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MDY4NworCisgICAgICAgIFJlcGxhY2UgR2RrUmVjdGFuZ2xlIGJ5IGNhaXJvX3JlY3RhbmdsZV9p
bnRfdC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IEFkZGVkIEludFJlY3RDYWly
by5jcHAgaW5zdGVhZCBvZiBJbnRSZWN0R3RrLmNwcAorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ludFJlY3QuaDogSW50UmVjdCBjbGFzcyBjYW4gYmUgaW5zdGFudGlhdGVkIHRocm91Z2gg
dGhlIGdpdmVuIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCAKKyAgICAgICAgaW5zdGVhZCBvZiBHZGtS
ZWN0YW5nbGUuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW50UmVjdENhaXJv
LmNwcDogQWRkIHRoZSBjb25zdHJ1Y3RvciBhbmQgb3BlcmF0b3IgZm9yIGhhbmRsaW5nIGNhaXJv
X3JlY3RhbmdsZV9pbnRfdC4KKyAgICAgICAgKFdlYkNvcmU6OkludFJlY3Q6OkludFJlY3QpOiAK
KyAgICAgICAgKFdlYkNvcmU6OkludFJlY3Q6Om9wZXJhdG9yIGNhaXJvX3JlY3RhbmdsZV9pbnRf
dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ludFJlY3RHdGsuY3BwOiBJbmNs
dWRlIHRoaXMgZmlsZSBvbmx5IGZvciBHdGsrMi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3Rr
UGx1Z2luV2lkZ2V0LmNwcDogUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFuZ2xl
X2ludF90LgorICAgICAgICAoV2ViQ29yZTo6R3RrUGx1Z2luV2lkZ2V0OjppbnZhbGlkYXRlUmVj
dCk6CisKIDIwMTEtMDYtMTYgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjg5MDczLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0KaW5kZXggZTc3ZDgwNC4uOTE5MzY0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCkBAIC0zNzU1LDYgKzM3NTUsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQnVmZmVyQ2Fpcm8u
Y3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZl
ckRhdGFDYWlyby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9J
bWFnZUNhaXJvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
SW50UmVjdENhaXJvLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vT3duUHRyQ2Fpcm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Pd25QdHJDYWlyby5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9QYXRoQ2Fpcm8uY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ludFJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lu
dFJlY3QuaAppbmRleCBhNWU4Y2ExLi5iZDNlOTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW50UmVjdC5oCkBAIC01MCw5ICs1MCw2IEBAIFFUX0VORF9OQU1FU1BBQ0UK
ICNlbGlmIFBMQVRGT1JNKEdUSykKICNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogdHlwZWRlZiBz
dHJ1Y3QgX0dka1JlY3RhbmdsZSBHZGtSZWN0YW5nbGU7Ci0jZWxzZQotdHlwZWRlZiBzdHJ1Y3Qg
X2NhaXJvX3JlY3RhbmdsZV9pbnQgY2Fpcm9fcmVjdGFuZ2xlX2ludF90OwotdHlwZWRlZiBjYWly
b19yZWN0YW5nbGVfaW50X3QgR2RrUmVjdGFuZ2xlOwogI2VuZGlmCiAjZWxpZiBQTEFURk9STShI
QUlLVSkKIGNsYXNzIEJSZWN0OwpAQCAtNjAsNiArNTcsMTAgQEAgY2xhc3MgQlJlY3Q7CiB0eXBl
ZGVmIHN0cnVjdCBfRWluYV9SZWN0YW5nbGUgRWluYV9SZWN0YW5nbGU7CiAjZW5kaWYKIAorI2lm
IFVTRShDQUlSTykKK3R5cGVkZWYgc3RydWN0IF9jYWlyb19yZWN0YW5nbGVfaW50IGNhaXJvX3Jl
Y3RhbmdsZV9pbnRfdDsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oV1gpCiBjbGFzcyB3eFJlY3Q7
CiAjZW5kaWYKQEAgLTE4NCw4ICsxODUsMTAgQEAgcHVibGljOgogICAgIEludFJlY3QoY29uc3Qg
UVJlY3QmKTsKICAgICBvcGVyYXRvciBRUmVjdCgpIGNvbnN0OwogI2VsaWYgUExBVEZPUk0oR1RL
KQorI2lmZGVmIEdUS19BUElfVkVSU0lPTl8yCiAgICAgSW50UmVjdChjb25zdCBHZGtSZWN0YW5n
bGUmKTsKICAgICBvcGVyYXRvciBHZGtSZWN0YW5nbGUoKSBjb25zdDsKKyNlbmRpZgogI2VsaWYg
UExBVEZPUk0oSEFJS1UpCiAgICAgZXhwbGljaXQgSW50UmVjdChjb25zdCBCUmVjdCYpOwogICAg
IG9wZXJhdG9yIEJSZWN0KCkgY29uc3Q7CkBAIC0xOTQsNiArMTk3LDExIEBAIHB1YmxpYzoKICAg
ICBvcGVyYXRvciBFaW5hX1JlY3RhbmdsZSgpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBVU0UoQ0FJ
Uk8pCisgICAgSW50UmVjdChjb25zdCBjYWlyb19yZWN0YW5nbGVfaW50X3QmKTsKKyAgICBvcGVy
YXRvciBjYWlyb19yZWN0YW5nbGVfaW50X3QoKSBjb25zdDsKKyNlbmRpZgorCiAjaWYgVVNFKENH
KSB8fCBVU0UoU0tJQV9PTl9NQUNfQ0hST01FKQogICAgIG9wZXJhdG9yIENHUmVjdCgpIGNvbnN0
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9JbnRSZWN0Q2Fpcm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vSW50UmVjdENhaXJvLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5jZWYzYWY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgQ29sbGFib3JhIEx0ZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIklu
dFJlY3QuaCIKKworI2luY2x1ZGUgPGNhaXJvLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwor
SW50UmVjdDo6SW50UmVjdChjb25zdCBjYWlyb19yZWN0YW5nbGVfaW50X3QmIHIpCisgICAgOiBt
X2xvY2F0aW9uKEludFBvaW50KHIueCwgci55KSkKKyAgICAsIG1fc2l6ZShyLndpZHRoLCByLmhl
aWdodCkKK3sKK30KKworSW50UmVjdDo6b3BlcmF0b3IgY2Fpcm9fcmVjdGFuZ2xlX2ludF90KCkg
Y29uc3QKK3sKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgciA9IHsgeCgpLCB5KCksIHdpZHRo
KCksIGhlaWdodCgpIH07CisgICAgcmV0dXJuIHI7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9JbnRSZWN0R3RrLmNwcAppbmRleCBhYWExOTQ0
Li4xZjMxMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9n
dGsvSW50UmVjdEd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL0ludFJlY3RHdGsuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAKICNpbmNsdWRlIDxnZGsvZ2Rr
Lmg+CiAKKyNpZmRlZiBHVEtfQVBJX1ZFUlNJT05fMgogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJ
bnRSZWN0OjpJbnRSZWN0KGNvbnN0IEdka1JlY3RhbmdsZSYgcikKQEAgLTM3LDUgKzM4LDQgQEAg
SW50UmVjdDo6b3BlcmF0b3IgR2RrUmVjdGFuZ2xlKCkgY29uc3QKIH0KIAogfQotCi0vLyB2aW06
IHRzPTQgc3c9NCBldAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrUGx1Z2luV2lkZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9H
dGtQbHVnaW5XaWRnZXQuY3BwCmluZGV4IDMzMWY2MGYuLjgyMDIzNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtQbHVnaW5XaWRnZXQuY3BwCkBAIC00MSw3ICs0MSw3
IEBAIEd0a1BsdWdpbldpZGdldDo6R3RrUGx1Z2luV2lkZ2V0KEd0a1dpZGdldCogd2lkZ2V0KQog
ICAgIGd0a193aWRnZXRfaGlkZSh3aWRnZXQpOwogfQogCi12b2lkIEd0a1BsdWdpbldpZGdldDo6
aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgX3JlY3QpCit2b2lkIEd0a1BsdWdpbldpZGdl
dDo6aW52YWxpZGF0ZVJlY3QoY29uc3QgSW50UmVjdCYgY29yZVJlY3QpCiB7CiAgICAgLyogbm8g
bmVlZCB0byAqLwogICAgIGlmICghZ3RrX3dpZGdldF9nZXRfaGFzX3dpbmRvdyhwbGF0Zm9ybVdp
ZGdldCgpKSkKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBHdGtQbHVnaW5XaWRnZXQ6OmludmFsaWRh
dGVSZWN0KGNvbnN0IEludFJlY3QmIF9yZWN0KQogICAgIGlmICghd2luZG93KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBHZGtSZWN0YW5nbGUgcmVjdCA9IF9yZWN0OworICAgIEdka1JlY3Rhbmds
ZSByZWN0ID0gY29yZVJlY3Q7CiAgICAgZ2RrX3dpbmRvd19pbnZhbGlkYXRlX3JlY3Qod2luZG93
LCAmcmVjdCwgRkFMU0UpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXggOTQ1OWNmMC4uZmU1MmRh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA2LTE3ICBKb29uZSBI
dXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5IE1h
cnRpbiBSb2JpbnNvbi4KKworICAgICAgICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBj
YWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fp
cm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmNwcDogUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkgY2Fpcm9fcmVjdGFu
Z2xlX2ludF90LgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnJl
Y3RhbmdsZUZvclNlbGVjdGlvbik6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmg6IERpdHRvLgorCiAyMDExLTA2LTE2ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByODkwMjYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCBjMThlOWNmLi4xZWMw
M2M3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTU4Niw3ICs1ODYsNyBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6Y29uZmlybUNvbXBvc2l0aW9uKFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcsIGNvbnN0CiAgICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24oKTsKIH0K
IAotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJh
bmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCwgR2Rr
UmVjdGFuZ2xlKiByZWN0KQorYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZpcnN0UmVj
dEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGludCBsb2NhdGlvbiwg
aW50IGxlbmd0aCwgY2Fpcm9fcmVjdGFuZ2xlX2ludF90KiByZWN0KQogewogICAgIGdfcmV0dXJu
X3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgZmFsc2UpOwogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHJlY3QsIGZhbHNlKTsKQEAgLTgyNCw3ICs4MjQsNyBAQCB2b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0VmFsdWVGb3JVc2VyKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU1ZhbHVlUmVmCiAgICAgaW5wdXRFbGVtZW50LT5zZXRWYWx1ZUZvclVzZXIoU3Ry
aW5nOjpmcm9tVVRGOCh2YWx1ZUJ1ZmZlci5nZXQoKSkpOwogfQogCi12b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFt
ZSwgR2RrUmVjdGFuZ2xlKiByZWN0YW5nbGUpCit2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6cmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiBmcmFtZSwgY2Fpcm9fcmVj
dGFuZ2xlX2ludF90KiByZWN0YW5nbGUpCiB7CiAgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGNvcmUo
ZnJhbWUpOwogICAgIGlmICghY29yZUZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9n
dGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCBj
YWZmNTc4Li5hYzFjNTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtOTksNyArOTksNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhXZWJLaXRXZWJWaWV3KiwgY29u
c3QgZ2NoYXIqLCBXZWJLaXRGaW5kT3B0aW9ucyk7CiAgICAgc3RhdGljIGRvdWJsZSBkZWZhdWx0
TWluaW11bVRpbWVySW50ZXJ2YWwoKTsgLy8gTm90IHJlYWxseSB0aWVkIHRvIFdlYlZpZXcKICAg
ICBzdGF0aWMgdm9pZCBzZXRNaW5pbXVtVGltZXJJbnRlcnZhbChXZWJLaXRXZWJWaWV3KiwgZG91
YmxlKTsKLSAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJh
bWUqLCBHZGtSZWN0YW5nbGUqKTsKKyAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rp
b24oV2ViS2l0V2ViRnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMg
dm9pZCBzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAg
ICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcq
LCBib29sKTsKIApAQCAtMTEyLDcgKzExMiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBo
YXNDb21wb3NpdGlvbihXZWJLaXRXZWJWaWV3Kik7CiAgICAgc3RhdGljIGJvb2wgY29tcG9zaXRp
b25SYW5nZShXZWJLaXRXZWJWaWV3KiwgaW50KiBzdGFydCwgaW50KiBsZW5ndGgpOwogICAgIHN0
YXRpYyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihXZWJLaXRXZWJWaWV3KiwgY29uc3QgY2hhciop
OwotICAgIHN0YXRpYyBib29sIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdlYlZp
ZXcqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgsIEdka1JlY3RhbmdsZSopOworICAgIHN0YXRp
YyBib29sIGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFdlYktpdFdlYlZpZXcqLCBpbnQgbG9j
YXRpb24sIGludCBsZW5ndGgsIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwogICAgIHN0YXRpYyBi
b29sIHNlbGVjdGVkUmFuZ2UoV2ViS2l0V2ViVmlldyosIGludCogc3RhcnQsIGludCogbGVuZ3Ro
KTsKIAogICAgIC8vIEdDCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggOTdjNjE3Yy4uYzU5MTIxNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDExLTA2LTE3ICBKb29u
ZSBIdXIgIDxqb29uZS5odXJAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBbR1RLXSBSZXBsYWNlIEdka1JlY3RhbmdsZSBi
eSBjYWlyb19yZWN0YW5nbGVfaW50X3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYwNjg3CisKKyAgICAgICAgUmVwbGFjZSBHZGtSZWN0YW5nbGUgYnkg
Y2Fpcm9fcmVjdGFuZ2xlX2ludF90LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Bp
eGVsRHVtcFN1cHBvcnRHdGsuY3BwOiBSZXBsYWNlIEdka1JlY3RhbmdsZSBieSBjYWlyb19yZWN0
YW5nbGVfaW50X3QuCisgICAgICAgIChjcmVhdGVCaXRtYXBDb250ZXh0RnJvbVdlYlZpZXcpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXh0SW5wdXRDb250cm9sbGVyLmNwcDogRGl0
dG8uCisgICAgICAgIChmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKToKKwogMjAx
MS0wNi0xNiAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL1BpeGVsRHVtcFN1cHBvcnRHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Bp
eGVsRHVtcFN1cHBvcnRHdGsuY3BwCmluZGV4IDJiZDhmZTIuLjNlYWJmZDkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9QaXhlbER1bXBTdXBwb3J0R3RrLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvUGl4ZWxEdW1wU3VwcG9ydEd0ay5jcHAKQEAgLTYwLDcg
KzYwLDcgQEAgUGFzc1JlZlB0cjxCaXRtYXBDb250ZXh0PiBjcmVhdGVCaXRtYXBDb250ZXh0RnJv
bVdlYlZpZXcoYm9vbCwgYm9vbCwgYm9vbCwgYm9vbAogI2VuZGlmCiAKICAgICBpZiAoZHJhd1Nl
bGVjdGlvblJlY3QpIHsKLSAgICAgICAgR2RrUmVjdGFuZ2xlIHJlY3RhbmdsZTsKKyAgICAgICAg
Y2Fpcm9fcmVjdGFuZ2xlX2ludF90IHJlY3RhbmdsZTsKICAgICAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpyZWN0YW5nbGVGb3JTZWxlY3Rpb24obWFpbkZyYW1lLCAmcmVjdGFuZ2xlKTsK
IAogICAgICAgICBjYWlyb19zZXRfbGluZV93aWR0aChjb250ZXh0LCAxLjApOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCmluZGV4IDhjY2Mw
MzIuLmY5YjJhNmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXh0SW5w
dXRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGV4dElucHV0
Q29udHJvbGxlci5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
agogICAgIGludCBsZW5ndGggPSBzdGF0aWNfY2FzdDxpbnQ+KEpTVmFsdWVUb051bWJlcihjb250
ZXh0LCBhcmd1bWVudHNbMV0sIGV4Y2VwdGlvbikpOwogICAgIEFTU0VSVCghZXhjZXB0aW9uIHx8
ICEqZXhjZXB0aW9uKTsKIAotICAgIEdka1JlY3RhbmdsZSByZWN0OworICAgIGNhaXJvX3JlY3Rh
bmdsZV9pbnRfdCByZWN0OwogICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh2aWV3LCBsb2NhdGlvbiwgbGVuZ3RoLCAmcmVjdCkpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIApkaWZmIC0tZ2l0
IGEvY29uZmlndXJlLmFjIGIvY29uZmlndXJlLmFjCmluZGV4IGI1NWZiZWYuLmNhODM1YmUgMTAw
NjQ0Ci0tLSBhL2NvbmZpZ3VyZS5hYworKysgYi9jb25maWd1cmUuYWMKQEAgLTI1NSw3ICsyNTUs
NyBAQCBmaQogCiAjIG1pbmltdW0gYmFzZSBkZXBlbmRlbmNpZXMKIExJQlNPVVBfUkVRVUlSRURf
VkVSU0lPTj0yLjMzLjYKLUNBSVJPX1JFUVVJUkVEX1ZFUlNJT049MS42CitDQUlST19SRVFVSVJF
RF9WRVJTSU9OPTEuMTAKIEZPTlRDT05GSUdfUkVRVUlSRURfVkVSU0lPTj0yLjQKIEZSRUVUWVBF
Ml9SRVFVSVJFRF9WRVJTSU9OPTkuMAogTElCWE1MX1JFUVVJUkVEX1ZFUlNJT049Mi42Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>