<?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>53627</bug_id>
          
          <creation_ts>2011-02-02 13:59:21 -0800</creation_ts>
          <short_desc>Web Inspector: highlight rect is wrong for contents of transformed iframes</short_desc>
          <delta_ts>2016-12-13 15:35:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://2011.beercamp.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>eric</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>344224</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-02 13:59:21 -0800</bug_when>
    <thetext>The inspector highlight rectangles are wrong for the contents of transformed iframes.

They are probably doing a convertRect:toView:, rather than using the correct Widget methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417767</commentid>
    <comment_count>1</comment_count>
      <attachid>96532</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-08 20:17:02 -0700</bug_when>
    <thetext>Created attachment 96532
[TEST] Test with Different Transforms (rotate and perspective)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417768</commentid>
    <comment_count>2</comment_count>
      <attachid>96533</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-08 20:17:23 -0700</bug_when>
    <thetext>Created attachment 96533
[TEST] Test with Nested iframes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417771</commentid>
    <comment_count>3</comment_count>
      <attachid>96535</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-08 20:20:54 -0700</bug_when>
    <thetext>Created attachment 96535
[PATCH] First Attempt

I did not add a layout test. I don&apos;t think there are tests for node highlighting.
I did a quick search in LayoutTests/inspector and saw tests for syntax
highlighting related things.

This worked as expected on my tests cases and the original test page
&lt;http://2011.beercamp.com/&gt;. But this is by no means an area where
I am an expert, and I&apos;m guessing that there is already a way to do what
it is I want to do but I could not find. So I&apos;m going to put up a patch
that people can actually see what I intend.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417772</commentid>
    <comment_count>4</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-08 20:23:16 -0700</bug_when>
    <thetext>Wow, I used &quot;accurate&quot; way too much in my ChangeLog, I could probably
remove that altogether. I expect to rewrite the ChangeLog anyways.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417780</commentid>
    <comment_count>5</comment_count>
      <attachid>96537</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-08 20:31:20 -0700</bug_when>
    <thetext>Created attachment 96537
[PATCH] First Attempt</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>417845</commentid>
    <comment_count>6</comment_count>
      <attachid>96537</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-08 23:10:37 -0700</bug_when>
    <thetext>Comment on attachment 96537
[PATCH] First Attempt

Does this patch have anything to do with the bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418520</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-09 23:05:41 -0700</bug_when>
    <thetext>Sorry, I attached the wrong patch the second time around and did not notice. That was one that already landed. You can view the first (obsoleted patch) but tomorrow I will attach the correct patch which has a more readable ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418761</commentid>
    <comment_count>8</comment_count>
      <attachid>96755</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-10 10:19:11 -0700</bug_when>
    <thetext>Created attachment 96755
[PATCH] First Attempt (Better ChangeLog)

Attaching the correct patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418775</commentid>
    <comment_count>9</comment_count>
      <attachid>96755</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 10:39:33 -0700</bug_when>
    <thetext>Comment on attachment 96755
[PATCH] First Attempt (Better ChangeLog)

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

&gt; Source/WebCore/rendering/RenderObject.cpp:1868
&gt; +void RenderObject::mapContainerToWindow(bool fixed, bool useTransforms, TransformState&amp; transformState) const

I&apos;m not sure that I like having RenderObject having any knowledge of window-level things.

&gt; Source/WebCore/rendering/RenderObject.cpp:1876
&gt; +    // Account for the border of the frame renderer if we are mapping content inside the container.
&gt; +    transformState.move(o-&gt;borderLeft(), o-&gt;borderTop());
&gt; +    static_cast&lt;RenderObject*&gt;(o)-&gt;mapLocalToContainer(0, fixed, useTransforms, transformState);

I think this should be done with some combination of FrameView::convertFromRenderer(), convertToContainingView(), and convertToWindow(). I think you code here is ignoring padding, and might not work with scrolled content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418798</commentid>
    <comment_count>10</comment_count>
      <attachid>96755</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-06-10 11:16:49 -0700</bug_when>
    <thetext>Comment on attachment 96755
[PATCH] First Attempt (Better ChangeLog)

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

&gt;&gt; Source/WebCore/rendering/RenderObject.cpp:1876
&gt;&gt; +    static_cast&lt;RenderObject*&gt;(o)-&gt;mapLocalToContainer(0, fixed, useTransforms, transformState);
&gt; 
&gt; I think this should be done with some combination of FrameView::convertFromRenderer(), convertToContainingView(), and convertToWindow(). I think you code here is ignoring padding, and might not work with scrolled content.

I think you’re right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418808</commentid>
    <comment_count>11</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-10 11:30:45 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; Source/WebCore/rendering/RenderObject.cpp:1876
&gt; &gt; +    // Account for the border of the frame renderer if we are mapping content inside the container.
&gt; &gt; +    transformState.move(o-&gt;borderLeft(), o-&gt;borderTop());
&gt; &gt; +    static_cast&lt;RenderObject*&gt;(o)-&gt;mapLocalToContainer(0, fixed, useTransforms, transformState);
&gt; 
&gt; I think this should be done with some combination of FrameView::convertFromRenderer(),
&gt; convertToContainingView(), and convertToWindow(). I think you code here is ignoring
&gt; padding, and might not work with scrolled content.

The problem I was having with those was that many of those use IntRects. The desired result
for the Inspector code was a FloatQuad. IntRects for instance cannot be used for rotated content.
I think I can switch to the functions you mention above, if there a way that I can then apply all
the transforms that would affect that resulting IntRect. Do you know offhand if there is an
existing way to do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418809</commentid>
    <comment_count>12</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-10 11:32:22 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #9)
&gt; &gt; &gt; Source/WebCore/rendering/RenderObject.cpp:1876
&gt; &gt; &gt; +    // Account for the border of the frame renderer if we are mapping content inside the container.
&gt; &gt; &gt; +    transformState.move(o-&gt;borderLeft(), o-&gt;borderTop());
&gt; &gt; &gt; +    static_cast&lt;RenderObject*&gt;(o)-&gt;mapLocalToContainer(0, fixed, useTransforms, transformState);
&gt; &gt; 
&gt; &gt; I think this should be done with some combination of FrameView::convertFromRenderer(),
&gt; &gt; convertToContainingView(), and convertToWindow(). I think you code here is ignoring
&gt; &gt; padding, and might not work with scrolled content.
&gt; 
&gt; The problem I was having with those was that many of those use IntRects. The desired result
&gt; for the Inspector code was a FloatQuad. IntRects for instance cannot be used for rotated content.
&gt; I think I can switch to the functions you mention above, if there a way that I can then apply all
&gt; the transforms that would affect that resulting IntRect. Do you know offhand if there is an
&gt; existing way to do that?

 I think the best way to fix this would be add FloatQuad variants of all the Widget rect mapping functions, or simply replace the IntRect ones. We could probably convert the IntPoint ones to FloatPoints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>418812</commentid>
    <comment_count>13</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-10 11:38:18 -0700</bug_when>
    <thetext>&gt; I think the best way to fix this would be add FloatQuad variants of all the
&gt; Widget rect mapping functions, or simply replace the IntRect ones. We
&gt; could probably convert the IntPoint ones to FloatPoints.

Okay, thats what I was considering doing, but I wanted to make sure that
I wasn&apos;t duplicating existing functionality that I just wasn&apos;t seeing. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>421442</commentid>
    <comment_count>14</comment_count>
      <attachid>96755</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2011-06-15 10:50:34 -0700</bug_when>
    <thetext>Comment on attachment 96755
[PATCH] First Attempt (Better ChangeLog)

Clearing review flag based on Comment #12 and Comment #13.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427307</commentid>
    <comment_count>15</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-24 21:56:12 -0700</bug_when>
    <thetext>Trying again. This looks a little cleaner this time.

  1. The URL the bug was reported against. http://2011.beercamp.com/
     A lot of the content on this page is transformed and position:fixed.

  2. The test cases attached. (Nested iframes).
     The 2nd nested iframe is slightly scrollable. So I can scroll that (causing
     a repaint bug) and test the highlight rect is correct for scrolled and
     transformed content in an iframe.


&gt; I think this should be done with some combination of FrameView::convertFromRenderer(),
&gt; convertToContainingView(), and convertToWindow(). I think you code here is ignoring
&gt; padding, and might not work with scrolled content.

This is the approach I&apos;m taking. I was ignoring padding, and scroll content was broken.
These patches address that, but I encountered an issue with scroll content and fixed
position content. This may be an existing bug in the IntRect version of
convertToContainingView? I&apos;m still getting familiar with the code, and I don&apos;t have a
way to test this right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427308</commentid>
    <comment_count>16</comment_count>
      <attachid>98576</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-24 21:57:50 -0700</bug_when>
    <thetext>Created attachment 98576
[PATCH] Part 1: Fix Transforms in Nested iframes test

This worked for all the elements in the iframes test. Including correctly
offset for the inner iframe&apos;s scroll position. (Despite a painting issue).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427309</commentid>
    <comment_count>17</comment_count>
      <attachid>98577</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-24 21:59:46 -0700</bug_when>
    <thetext>Created attachment 98577
[PATCH] Part 2: Fix Fixed Position Content

Without regressing the nested iframes case, this makes highlight
rects work correctly on the beercamp page, where the majority of
content is transformed iframes containing fixed position content.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427310</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-24 22:00:19 -0700</bug_when>
    <thetext>Attachment 98576 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/platform/ScrollView.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/Widget.h:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 2 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427311</commentid>
    <comment_count>19</comment_count>
      <attachid>98576</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-24 22:01:32 -0700</bug_when>
    <thetext>Comment on attachment 98576
[PATCH] Part 1: Fix Transforms in Nested iframes test

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

&gt;&gt; Source/WebCore/platform/Widget.h:31
&gt;&gt; +#include &quot;FloatQuad.h&quot;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

Whoops, I&apos;ll fix that with any other review comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427370</commentid>
    <comment_count>20</comment_count>
      <attachid>98577</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-06-25 09:20:39 -0700</bug_when>
    <thetext>Comment on attachment 98577
[PATCH] Part 2: Fix Fixed Position Content

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:2747
&gt; +    mapLocalToContainer(repaintContainer, false, false, transformState, 0);

You should give wasFixed a default value of 0 to avoid having to do this.

&gt; Source/WebCore/rendering/RenderBox.h:433
&gt; +    virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState&amp;, bool* wasFixed) const;

use wasFixed = 0 here.

&gt; Source/WebCore/rendering/RenderInline.h:133
&gt; +    virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool fixed, bool useTransforms, TransformState&amp;, bool* wasFixed) const;

And here.

&gt; Source/WebCore/rendering/RenderObject.h:774
&gt; +    virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&amp;, bool* wasFixed) const;

And here.

&gt; Source/WebCore/rendering/RenderView.h:167
&gt; +    virtual void mapLocalToContainer(RenderBoxModelObject* repaintContainer, bool useTransforms, bool fixed, TransformState&amp;, bool* wasFixed) const;

You get the drill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427447</commentid>
    <comment_count>21</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-25 15:23:29 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 98577 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=98577&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:2747
&gt; &gt; +    mapLocalToContainer(repaintContainer, false, false, transformState, 0);
&gt; 
&gt; You should give wasFixed a default value of 0 to avoid having to do this.

Sounds good. I made the appropriate changes.

Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427456</commentid>
    <comment_count>22</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-25 16:02:31 -0700</bug_when>
    <thetext>Landed in r89753 + r89754:
&lt;http://trac.webkit.org/changeset/89753&gt;
&lt;http://trac.webkit.org/changeset/89754&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>427459</commentid>
    <comment_count>23</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-06-25 16:33:18 -0700</bug_when>
    <thetext>Fix warning. Use UNUSED_PARAM on the correct param ;)
&lt;http://trac.webkit.org/changeset/89756&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435355</commentid>
    <comment_count>24</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-07-11 18:03:30 -0700</bug_when>
    <thetext>Reopening. These were rolled out in: &lt;http://trac.webkit.org/changeset/90734&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525611</commentid>
    <comment_count>25</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 14:34:09 -0800</bug_when>
    <thetext>Attachment 98577 was posted by a committer and has review+, assigning to Joseph Pecoraro for commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525668</commentid>
    <comment_count>26</comment_count>
      <attachid>98577</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-12-21 15:01:03 -0800</bug_when>
    <thetext>Comment on attachment 98577
[PATCH] Part 2: Fix Fixed Position Content

Removed the r=simon from patches that landed long ago, were then rolled out, and then the bug was reopened. This bug require re-investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981575</commentid>
    <comment_count>27</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-17 11:35:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/16087048&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>96532</attachid>
            <date>2011-06-08 20:17:02 -0700</date>
            <delta_ts>2011-06-08 20:17:02 -0700</delta_ts>
            <desc>[TEST] Test with Different Transforms (rotate and perspective)</desc>
            <filename>transformed-iframes.html</filename>
            <type>text/html</type>
            <size>1137</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHN0eWxlPgpib2R5IHsgLXdlYmtpdC1wZXJzcGVjdGl2ZTogMTAwMDsgfQppZnJhbWUgewogICAg
Ym9yZGVyOiAycHggc29saWQgYmxhY2s7CiAgICBkaXNwbGF5OiBibG9jazsKICAgIHdpZHRoOiAx
MDBweDsKICAgIGhlaWdodDogMTAwcHg7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBsZWZ0
OiAwOwogICAgdG9wOiAwOwogICAgbWFyZ2luOiAwOwogICAgcGFkZGluZzogMDsKICAgIGJveC1z
aXppbmc6IGJvcmRlci1ib3g7Cn0KLnRyYW5zZm9ybTEgeyAtd2Via2l0LXRyYW5zZm9ybTogdHJh
bnNsYXRlM2QoMTAwcHgsMTAwcHgsMCk7IH0KLnRyYW5zZm9ybTIgeyAtd2Via2l0LXRyYW5zZm9y
bTogdHJhbnNsYXRlM2QoMjAwcHgsMjAwcHgsMCkgcm90YXRlKDQ1ZGVnKTsgfQoudHJhbnNmb3Jt
MyB7IC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUzZCgzMDBweCwzMDBweCwwKSBzY2FsZSgw
LjUpOyB9Ci50cmFuc2Zvcm00IHsgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDQwMHB4
LDQwMHB4LC0zMDBweCk7IC13ZWJraXQtdHJhbnNmb3JtLXN0eWxlOiBwcmVzZXJ2ZS0zZDsgfQo8
L3N0eWxlPgo8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPHA+VGVzdDwvcD4iPjwvaWZyYW1l
Pgo8aWZyYW1lIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPHA+VGVzdDwvcD4iIGNsYXNzPSJ0cmFuc2Zv
cm0xIj48L2lmcmFtZT4KPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLDxwPlRlc3Q8L3A+IiBj
bGFzcz0idHJhbnNmb3JtMiI+PC9pZnJhbWU+CjxpZnJhbWUgc3JjPSJkYXRhOnRleHQvaHRtbCw8
cD5UZXN0PC9wPiIgY2xhc3M9InRyYW5zZm9ybTMiPjwvaWZyYW1lPgo8aWZyYW1lIHNyYz0iZGF0
YTp0ZXh0L2h0bWwsPHA+VGVzdDwvcD4iIGNsYXNzPSJ0cmFuc2Zvcm00Ij48L2lmcmFtZT4KPGlm
cmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLDxwPlRlc3Q8L3A+IiBzdHlsZT0iLXdlYmtpdC10cmFu
c2Zvcm06dHJhbnNsYXRlM2QoMCwwLC0xMDBweCk7IjwvaWZyYW1lPgoKPCEtLQoKICAtIHRyYW5z
bGF0ZSAyZCBzZWVtcyB0byB3b3JrCiAgLSByb3RhdGUgZmFpbHMgZm9yIGNvbnRlbnRzCiAgLSBz
Y2FsZSBmYWlscyBmb3IgY29udGVudHMKICAtIDNkIGZhaWxzIGZvciBjb250ZW50cwoKLS0+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>96533</attachid>
            <date>2011-06-08 20:17:23 -0700</date>
            <delta_ts>2011-06-08 20:17:23 -0700</delta_ts>
            <desc>[TEST] Test with Nested iframes</desc>
            <filename>transformed-nested.html</filename>
            <type>text/html</type>
            <size>658</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">PHN0eWxlPgppZnJhbWUgewogICAgYm9yZGVyOiAycHggc29saWQgYmxhY2s7CiAgICBkaXNwbGF5
OiBibG9jazsKICAgIHdpZHRoOiA0MDBweDsKICAgIGhlaWdodDogMzAwcHg7CiAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CiAgICBsZWZ0OiAwOwogICAgdG9wOiAwOwogICAgbWFyZ2luOiAwOwogICAg
cGFkZGluZzogMDsKICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBib3JkZXItd2lkdGg6
IDIwcHg7CiAgICBib3JkZXItbGVmdC13aWR0aDogNTBweDsKICAgIAp9Ci50cmFuc2Zvcm0yIHsg
LXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZTNkKDIwMHB4LDIwMHB4LDApIHJvdGF0ZSg0NWRl
Zyk7IH0KPC9zdHlsZT4KPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sLDxwPlRlc3Q8L3A+Ij48
L2lmcmFtZT4KPGlmcmFtZSBzcmM9ImRhdGE6dGV4dC9odG1sO2Jhc2U2NCxQSEErVDI1bFBDOXdQ
anhwWm5KaGJXVWdjM1I1YkdVOUp5MTNaV0pyYVhRdGRISmhibk5tYjNKdE9pQnliM1JoZEdVb05E
VmtaV2NwT3ljZ2MzSmpQU0prWVhSaE9uUmxlSFF2YUhSdGJDdzhjQ0J6ZEhsc1pUMG5MWGRsWW10
cGRDMTBjbUZ1YzJadmNtMDZJSEp2ZEdGMFpTZ3RNakJrWldjcE95YytTVzV1WlhJOEwzQStJajQ9
IiBjbGFzcz0idHJhbnNmb3JtMiI+PC9pZnJhbWU+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96535</attachid>
            <date>2011-06-08 20:20:54 -0700</date>
            <delta_ts>2011-06-08 20:31:20 -0700</delta_ts>
            <desc>[PATCH] First Attempt</desc>
            <filename>highlight.patch</filename>
            <type>text/plain</type>
            <size>8585</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ODU0MGQ5Li40MTBlNTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTEtMDYtMDggIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Ig
aGlnaGxpZ2h0IHJlY3QgaXMgd3JvbmcgZm9yIGNvbnRlbnRzIG9mIHRyYW5zZm9ybWVkIGlmcmFt
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjI3
CisKKyAgICAgICAgVGhlIGluc3BlY3RvciBub2RlIGhpZ2hsaWdodGluZyB3YW50cyB0byBwYWlu
dCBhcm91bmQgYSBOb2RlIGluIGl0cyBvd24gY29udGV4dAorICAgICAgICB3aXRoIHdpbmRvdyBj
b29yZGluYXRlcy4gSXQgd2FzIHVzaW5nIGxvY2FsVG9BYnNvbHV0ZSBjb252ZXJzaW9uIHdoaWNo
IHdvcmtzCisgICAgICAgIGFjY3VyYXRlbHkgZm9yIGdldHRpbmcgdGhlIHRyYW5zZm9ybWVkIEZs
b2F0UXVhZCBwb3NpdGlvbiBvZiB0aGUgZWxlbWVudCB3aXRoaW4KKyAgICAgICAgaXRzIGNvbnRh
aW5lciwgYnV0IGFueSBvZiBpdHMgcGFyZW50IGNvbnRhaW5lcnMgY291bGQgaW5jbHVkZSB0cmFu
c2Zvcm1zIHRoYXQKKyAgICAgICAgZnVydGhlciBhZmZlY3QgdGhlIHBvc2l0aW9uIG9mIHRoZSBl
bGVtZW50IGluIGNvbXBsZXRlIHdpbmRvdyBjb29yZGluYXRlcy4KKyAgICAgICAgT3RoZXIgZnVu
Y3Rpb25zLCBsaWtlIFdpZGdldCBjb252ZXJ0VG9XaW5kb3cgdXNlIEludFJlY3RzLCBhbmQgdGh1
cyBnZXQgYQorICAgICAgICBib3VuZGluZyBib3gsIG5vdCBhY2N1cmF0ZWx5IHRyYW5zZm9ybWVk
IHF1YWRzLiBUaGlzIHdhbGtzIHVwIHRoZSAiY29udGFpbmVyIgorICAgICAgICBoZWlyYXJjaHkg
b2YgZnJhbWVzLCBhcHBseWluZyB0aGVpciB0cmFuc2Zvcm1zIGFuZCBib3JkZXJzIHRvIGFjY3Vy
YXRlbHkgZ2V0CisgICAgICAgIGEgRmxvYXRRdWFkIG9mIGFueSBSZW5kZXJlciBpbiB3aW5kb3cg
Y29vcmRpbmF0ZXMuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5vZGVIaWdobGlnaHRlcjo6RHJhd05vZGVIaWdobGln
aHQpOgorICAgICAgICBHZXQgd2luZG93IGNvb3JkaW5hdGVzLCBpbnN0ZWFkIG9mIGFjY3VyYXRl
IGFic29sdXRlIGNvb3JkaW5hdGVzIGluCisgICAgICAgIHRoZSBpZnJhbWUgd2l0aCBhbiBhcHBy
b3hpbWF0ZSBvZmZzZXQgZnJvbSB0aGUgbWFpbiBmcmFtZS4KKworICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bWFwQ29udGFpbmVyVG9XaW5kb3cpOgor
ICAgICAgICBUYWtlIGEgVHJhbnNmb3JtZWRTdGF0ZSBpbiBhYnNvbHV0ZSBjb250YWluZXIgY29v
cmRpbmF0ZXMgYW5kIHJlY3Vyc2l2ZWx5CisgICAgICAgIGFkanVzdCBmb3IgaXRzIGNvbnRhaW5l
cidzIHRyYW5zZm9ybWVkIHBvc2l0aW9uIHVudGlsIHdlIHJlYWNoIHRoZSB0b3AKKyAgICAgICAg
Y29udGFpbmVyLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9XaW5k
b3dRdWFkKToKKyAgICAgICAgVGFrZSBhIGxvY2FsIHBvaW50IHdpdGhpbiBhIHJlbmRlcmVyIGNv
b3JkaW5hdGUgc3BhY2UsIGFuZCBnZXQgaXRzIGFic29sdXRlCisgICAgICAgIHBvaW50IHdpdGhp
biB0aGUgd2luZG93IGNvb3JkaW5hdGUgc3BhY2UuCisKIDIwMTEtMDYtMDEgIEpvc2VwaCBQZWNv
cmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9ET01Ob2RlSGln
aGxpZ2h0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5jcHAKaW5kZXggOWM3YTBiOC4uOThiYWIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAKQEAgLTEzMSw3ICsxMzEsNyBAQCBpbmxpbmUg
SW50U2l6ZSBmcmFtZVRvTWFpbkZyYW1lT2Zmc2V0KEZyYW1lKiBmcmFtZSkKICAgICByZXR1cm4g
bWFpbkZyYW1lUG9pbnQgLSBJbnRQb2ludCgpOwogfQogCi12b2lkIGRyYXdFbGVtZW50VGl0bGUo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBJbnRSZWN0JiBib3Vu
ZGluZ0JveCwgY29uc3QgSW50UmVjdCYgYW5jaG9yQm94LCBjb25zdCBGbG9hdFJlY3QmIG92ZXJs
YXlSZWN0LCBXZWJDb3JlOjpTZXR0aW5ncyogc2V0dGluZ3MpCit2b2lkIGRyYXdFbGVtZW50VGl0
bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlKiBub2RlLCBjb25zdCBJbnRSZWN0JiBi
b3VuZGluZ0JveCwgY29uc3QgSW50UmVjdCYgYW5jaG9yQm94LCBjb25zdCBGbG9hdFJlY3QmIG92
ZXJsYXlSZWN0LCBTZXR0aW5ncyogc2V0dGluZ3MpCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCBy
ZWN0SW5mbGF0ZVB4ID0gNDsKICAgICBzdGF0aWMgY29uc3QgaW50IGZvbnRIZWlnaHRQeCA9IDEy
OwpAQCAtMjY0LDE3ICsyNjQsMTEgQEAgdm9pZCBEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIEhpZ2hsaWdodE1vZGUgbW9kZSkKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcGFkZGluZ0JveC53aWR0aCgpICsgcmVuZGVyQm94LT5ib3JkZXJM
ZWZ0KCkgKyByZW5kZXJCb3gtPmJvcmRlclJpZ2h0KCksIHBhZGRpbmdCb3guaGVpZ2h0KCkgKyBy
ZW5kZXJCb3gtPmJvcmRlclRvcCgpICsgcmVuZGVyQm94LT5ib3JkZXJCb3R0b20oKSk7CiAgICAg
ICAgIEludFJlY3QgbWFyZ2luQm94KGJvcmRlckJveC54KCkgLSByZW5kZXJCb3gtPm1hcmdpbkxl
ZnQoKSwgYm9yZGVyQm94LnkoKSAtIHJlbmRlckJveC0+bWFyZ2luVG9wKCksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGJvcmRlckJveC53aWR0aCgpICsgcmVuZGVyQm94LT5tYXJnaW5MZWZ0
KCkgKyByZW5kZXJCb3gtPm1hcmdpblJpZ2h0KCksIGJvcmRlckJveC5oZWlnaHQoKSArIHJlbmRl
ckJveC0+bWFyZ2luVG9wKCkgKyByZW5kZXJCb3gtPm1hcmdpbkJvdHRvbSgpKTsKLQotCi0gICAg
ICAgIEZsb2F0UXVhZCBhYnNDb250ZW50UXVhZCA9IHJlbmRlckJveC0+bG9jYWxUb0Fic29sdXRl
UXVhZChGbG9hdFJlY3QoY29udGVudEJveCkpOwotICAgICAgICBGbG9hdFF1YWQgYWJzUGFkZGlu
Z1F1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KHBhZGRpbmdC
b3gpKTsKLSAgICAgICAgRmxvYXRRdWFkIGFic0JvcmRlclF1YWQgPSByZW5kZXJCb3gtPmxvY2Fs
VG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGJvcmRlckJveCkpOwotICAgICAgICBGbG9hdFF1YWQg
YWJzTWFyZ2luUXVhZCA9IHJlbmRlckJveC0+bG9jYWxUb0Fic29sdXRlUXVhZChGbG9hdFJlY3Qo
bWFyZ2luQm94KSk7Ci0KLSAgICAgICAgYWJzQ29udGVudFF1YWQubW92ZShtYWluRnJhbWVPZmZz
ZXQpOwotICAgICAgICBhYnNQYWRkaW5nUXVhZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7Ci0gICAg
ICAgIGFic0JvcmRlclF1YWQubW92ZShtYWluRnJhbWVPZmZzZXQpOwotICAgICAgICBhYnNNYXJn
aW5RdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsKKyAgICAgICAgCisgICAgICAgIEZsb2F0UXVh
ZCBhYnNDb250ZW50UXVhZCA9IHJlbmRlckJveC0+bG9jYWxUb1dpbmRvd1F1YWQoRmxvYXRSZWN0
KGNvbnRlbnRCb3gpKTsKKyAgICAgICAgRmxvYXRRdWFkIGFic1BhZGRpbmdRdWFkID0gcmVuZGVy
Qm94LT5sb2NhbFRvV2luZG93UXVhZChGbG9hdFJlY3QocGFkZGluZ0JveCkpOworICAgICAgICBG
bG9hdFF1YWQgYWJzQm9yZGVyUXVhZCA9IHJlbmRlckJveC0+bG9jYWxUb1dpbmRvd1F1YWQoRmxv
YXRSZWN0KGJvcmRlckJveCkpOworICAgICAgICBGbG9hdFF1YWQgYWJzTWFyZ2luUXVhZCA9IHJl
bmRlckJveC0+bG9jYWxUb1dpbmRvd1F1YWQoRmxvYXRSZWN0KG1hcmdpbkJveCkpOwogCiAgICAg
ICAgIHRpdGxlQW5jaG9yQm94ID0gYWJzTWFyZ2luUXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgp
OwogCkBAIC0yOTQsNyArMjg4LDcgQEAgdm9pZCBEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIEhpZ2hsaWdodE1vZGUgbW9kZSkKICAgICBpZiAo
IW5vZGUtPmlzRWxlbWVudE5vZGUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6
U2V0dGluZ3MqIHNldHRpbmdzID0gY29udGFpbmluZ0ZyYW1lLT5zZXR0aW5ncygpOworICAgIFNl
dHRpbmdzKiBzZXR0aW5ncyA9IGNvbnRhaW5pbmdGcmFtZS0+c2V0dGluZ3MoKTsKICAgICBpZiAo
bW9kZSA9PSBET01Ob2RlSGlnaGxpZ2h0ZXI6OkhpZ2hsaWdodEFsbCkKICAgICAgICAgZHJhd0Vs
ZW1lbnRUaXRsZShjb250ZXh0LCBub2RlLCBib3VuZGluZ0JveCwgdGl0bGVBbmNob3JCb3gsIG92
ZXJsYXlSZWN0LCBzZXR0aW5ncyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCmluZGV4IGI5MzU1MWIuLjhiYjlmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVy
SW5saW5lLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0
SXRlbS5oIgorI2luY2x1ZGUgIlJlbmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5Lmgi
CiAjaW5jbHVkZSAiUmVuZGVyUnVieVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwu
aCIKQEAgLTE4NjQsNiArMTg2NSwxOCBAQCB2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYgogICAgIG8t
Pm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9y
bXMsIHRyYW5zZm9ybVN0YXRlKTsKIH0KIAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcENvbnRhaW5l
clRvV2luZG93KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUm
IHRyYW5zZm9ybVN0YXRlKSBjb25zdAoreworICAgIFJlbmRlckJveCogbyA9IHN0YXRpY19jYXN0
PFJlbmRlckJveCo+KGZyYW1lKCktPm93bmVyUmVuZGVyZXIoKSk7CisgICAgaWYgKCFvKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBBY2NvdW50IGZvciB0aGUgYm9yZGVyIG9mIHRoZSBmcmFt
ZSByZW5kZXJlciBpZiB3ZSBhcmUgbWFwcGluZyBjb250ZW50IGluc2lkZSB0aGUgY29udGFpbmVy
LgorICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoby0+Ym9yZGVyTGVmdCgpLCBvLT5ib3JkZXJUb3Ao
KSk7CisgICAgc3RhdGljX2Nhc3Q8UmVuZGVyT2JqZWN0Kj4obyktPm1hcExvY2FsVG9Db250YWlu
ZXIoMCwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBvLT5tYXBD
b250YWluZXJUb1dpbmRvdyhmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOwor
fQorCiB2b2lkIFJlbmRlck9iamVjdDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhl
ZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNv
bnN0CiB7CiAgICAgUmVuZGVyT2JqZWN0KiBvID0gcGFyZW50KCk7CkBAIC0xOTIzLDYgKzE5MzYs
MTggQEAgRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3Qg
RmxvYXRRdWFkJiBsb2NhbFF1YWQsIFJlbmRlckIKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUu
bGFzdFBsYW5hclF1YWQoKTsKIH0KIAorRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb1dp
bmRvd1F1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQsIGJvb2wgZml4ZWQpIGNvbnN0Cit7
CisgICAgLy8gVHJhY2sgdGhlIHBvaW50IGF0IHRoZSBjZW50ZXIgb2YgdGhlIHF1YWQncyBib3Vu
ZGluZyBib3guIEFzIG1hcExvY2FsVG9Db250YWluZXIoKSBjYWxscyBvZmZzZXRGcm9tQ29udGFp
bmVyKCksCisgICAgLy8gaXQgd2lsbCB1c2UgdGhhdCBwb2ludCBhcyB0aGUgcmVmZXJlbmNlIHBv
aW50IHRvIGRlY2lkZSB3aGljaCBjb2x1bW4ncyB0cmFuc2Zvcm0gdG8gYXBwbHkgaW4gbXVsdGlw
bGUtY29sdW1uIGJsb2Nrcy4KKyAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFu
c2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxvY2FsUXVhZC5ib3VuZGluZ0Jv
eCgpLmNlbnRlcigpLCAmbG9jYWxRdWFkKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKDAsIGZp
eGVkLCB0cnVlLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgbWFwQ29udGFpbmVyVG9XaW5kb3coZml4
ZWQsIHRydWUsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7
CisKKyAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclF1YWQoKTsKK30KKwogSW50
U2l6ZSBSZW5kZXJPYmplY3Q6Om9mZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBj
b25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG8gPT0gY29udGFpbmVy
KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDIxMjBjY2Eu
LjQ0NTZkYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTU4
NCw2ICs1ODQsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgaW50byB0
aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2YgY29udGFpbmVyLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQuCiAgICAgRmxvYXRRdWFkIGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0
UXVhZCYsIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVk
ID0gZmFsc2UpIGNvbnN0OwogCisgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgaW50byB0aGUg
Y29vcmRpbmF0ZSBzeXN0ZW0gb2YgdGhlIHdpbmRvdywgdGFraW5nIHRyYW5zZm9ybXMgaW50byBh
Y2NvdW50LgorICAgIEZsb2F0UXVhZCBsb2NhbFRvV2luZG93UXVhZChjb25zdCBGbG9hdFF1YWQm
LCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0OworCiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQg
ZnJvbSB0aGUgY29udGFpbmVyKCkgcmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4g
bXVsdGktY29sdW1uIGxheW91dCwKICAgICAvLyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBk
aWZmZXJlbnQgcG9pbnRzLCBzbyByZXR1cm4gdGhlIG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhl
IGdpdmVuIHBvaW50LgogICAgIHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJl
bmRlck9iamVjdCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CkBAIC03NzEsNiArNzc0LDcgQEAg
cHVibGljOgogICAgIC8vIGxvY2FsVG9BYnNvbHV0ZS9hYnNvbHV0ZVRvTG9jYWwgbWV0aG9kcyBp
bnN0ZWFkLgogICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4
ZWQsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRl
VG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3Rh
dGUmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwQ29udGFpbmVyVG9XaW5kb3coYm9vbCBm
aXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiAgICAg
Ym9vbCBzaG91bGRVc2VUcmFuc2Zvcm1Gcm9tQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCog
Y29udGFpbmVyKSBjb25zdDsKICAgICB2b2lkIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29u
c3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGNvbnN0IEludFNpemUmIG9mZnNldEluQ29udGFp
bmVyLCBUcmFuc2Zvcm1hdGlvbk1hdHJpeCYpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96537</attachid>
            <date>2011-06-08 20:31:20 -0700</date>
            <delta_ts>2011-06-09 23:06:01 -0700</delta_ts>
            <desc>[PATCH] First Attempt</desc>
            <filename>patch-asdf</filename>
            <type>text/plain</type>
            <size>2478</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ODU0MGQ5Li5jMWYzYWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTEtMDYtMDMgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjbGFuZyBidWls
ZCBlcnJvcjogaGlkZGVuIG92ZXJsb2FkZWQgdmlydHVhbCBmdW5jdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjIwODQKKworICAgICAgICBGb2xs
b3ctdXAgdG8gcjg4MDg3IGFuZCBjb252ZXJ0IGFub3RoZXIgcGFpbnRNYXNrIGZ1bmN0aW9uCisg
ICAgICAgIGZyb20gSW50U2l6ZSB0byBJbnRQb2ludC4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpw
YWludE1hc2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaDoKKwogMjAx
MS0wNi0wMSAgSm9zZXBoIFBlY29yYXJvICA8am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCA5MzI0NzExLi5iNWYwNmFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtMTAyMCw3ICsxMDIwLDcg
QEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OnBhaW50Qm94RGVjb3JhdGlvbnMoUGFpbnRJbmZvJiBw
YWludEluZm8sIGNvbnN0IEludFBvaW50JgogICAgIHBhaW50Qm9yZGVyKHBhaW50SW5mby5jb250
ZXh0LCBwYWludFJlY3QsIHN0eWxlKCkpOwogfQogCi12b2lkIFJlbmRlclRhYmxlQ2VsbDo6cGFp
bnRNYXNrKFBhaW50SW5mbyYgcGFpbnRJbmZvLCBJbnRTaXplIHBhaW50T2Zmc2V0KQordm9pZCBS
ZW5kZXJUYWJsZUNlbGw6OnBhaW50TWFzayhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50
UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmIChzdHlsZSgpLT52aXNpYmlsaXR5KCkgIT0g
VklTSUJMRSB8fCBwYWludEluZm8ucGhhc2UgIT0gUGFpbnRQaGFzZU1hc2spCiAgICAgICAgIHJl
dHVybjsKQEAgLTEwMjksNyArMTAyOSw3IEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpwYWludE1h
c2soUGFpbnRJbmZvJiBwYWludEluZm8sIEludFNpemUgcGFpbnRPZmZzZXQpCiAgICAgaWYgKCF0
YWJsZUVsdC0+Y29sbGFwc2VCb3JkZXJzKCkgJiYgc3R5bGUoKS0+ZW1wdHlDZWxscygpID09IEhJ
REUgJiYgIWZpcnN0Q2hpbGQoKSkKICAgICAgICAgcmV0dXJuOwogICAgCi0gICAgcGFpbnRNYXNr
SW1hZ2VzKHBhaW50SW5mbywgSW50UmVjdCh0b1BvaW50KHBhaW50T2Zmc2V0KSwgc2l6ZSgpKSk7
CisgICAgcGFpbnRNYXNrSW1hZ2VzKHBhaW50SW5mbywgSW50UmVjdChwYWludE9mZnNldCwgc2l6
ZSgpKSk7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpzY3JvbGxiYXJzQ2hhbmdlZChib29s
IGhvcml6b250YWxTY3JvbGxiYXJDaGFuZ2VkLCBib29sIHZlcnRpY2FsU2Nyb2xsYmFyQ2hhbmdl
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCBlNTc4
NDZmLi5jZTNhY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5oCkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0
ZUxvZ2ljYWxXaWR0aCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50Qm94RGVjb3JhdGlvbnMo
UGFpbnRJbmZvJiwgY29uc3QgSW50UG9pbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcGFpbnRNYXNr
KFBhaW50SW5mbyYsIEludFNpemUpOworICAgIHZpcnR1YWwgdm9pZCBwYWludE1hc2soUGFpbnRJ
bmZvJiwgY29uc3QgSW50UG9pbnQmKTsKIAogICAgIHZpcnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9t
Q29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAgICAgdmly
dHVhbCBJbnRSZWN0IGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>96755</attachid>
            <date>2011-06-10 10:19:11 -0700</date>
            <delta_ts>2011-06-24 21:57:50 -0700</delta_ts>
            <desc>[PATCH] First Attempt (Better ChangeLog)</desc>
            <filename>highlight.patch</filename>
            <type>text/plain</type>
            <size>8393</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3ODU0MGQ5Li4yZmU5MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcg
QEAKKzIwMTEtMDYtMDggIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Ig
aGlnaGxpZ2h0IHJlY3QgaXMgd3JvbmcgZm9yIGNvbnRlbnRzIG9mIHRyYW5zZm9ybWVkIGlmcmFt
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjI3
CisKKyAgICAgICAgVGhlIGluc3BlY3RvciBub2RlIGhpZ2hsaWdodGluZyB3YW50cyB0byBwYWlu
dCBib3hlcyBmb3IgYSBOb2RlIGluIGl0cyBvd24gY29udGV4dAorICAgICAgICB3aXRoIHdpbmRv
dyBjb29yZGluYXRlcy4gSXQgd2FzIHVzaW5nIGxvY2FsVG9BYnNvbHV0ZSBjb252ZXJzaW9uIHdo
aWNoIG9ubHkgZ2V0cworICAgICAgICB0aGUgdHJhbnNmb3JtZWQgRmxvYXRRdWFkIHBvc2l0aW9u
IG9mIHRoZSBlbGVtZW50IHdpdGhpbiBpdHMgY29udGFpbmVyLiBIb3dldmVyLAorICAgICAgICBh
bnkgb2YgdGhlIGNvbnRhaW5lcidzIHBhcmVudCBjb250YWluZXJzIGNvdWxkIGFsc28gaW5jbHVk
ZSB0cmFuc2Zvcm1zIHRoYXQKKyAgICAgICAgZnVydGhlciBhZmZlY3QgdGhlIHBvc2l0aW9uIG9m
IHRoZSBOb2RlIGluIGNvbXBsZXRlIHdpbmRvdyBjb29yZGluYXRlcy4gVGhpcworICAgICAgICB3
YWxrcyB1cCB0aGUgImNvbnRhaW5lciIgaGVpcmFyY2h5IG9mIGZyYW1lcywgYXBwbHlpbmcgdGhl
aXIgdHJhbnNmb3JtcyBhbmQKKyAgICAgICAgYm9yZGVycyB0byBnZXQgYSBGbG9hdFF1YWQgb2Yg
YW55IFJlbmRlcmVyIGluIHdpbmRvdyBjb29yZGluYXRlcy4KKworICAgICAgICBPdGhlciBmdW5j
dGlvbnMsIGxpa2UgV2lkZ2V0IGNvbnZlcnRUb1dpbmRvdyB1c2VkIEludFJlY3RzLCBzbyBpdCBh
cHBlYXJlZCB0bworICAgICAgICByZXR1cm4gYSBib3VuZGluZyBib3ggYW5kIG5vdCBhIHRyYW5z
Zm9ybWVkIHJlY3QuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTU5vZGVIaWdobGlnaHRlcjo6RHJhd05vZGVIaWdobGln
aHQpOgorICAgICAgICBHZXQgd2luZG93IGNvb3JkaW5hdGVzLCBpbnN0ZWFkIG9mIGFic29sdXRl
IGNvb3JkaW5hdGVzIGluCisgICAgICAgIHRoZSBpZnJhbWUgd2l0aCBhbiB1bnRyYW5zZm9ybWVk
IG9mZnNldCBmcm9tIHRoZSBtYWluIGZyYW1lLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjptYXBDb250YWluZXJUb1dpbmRvdyk6CisgICAgICAg
IFRha2UgYSBUcmFuc2Zvcm1lZFN0YXRlIGluIGFic29sdXRlIGNvbnRhaW5lciBjb29yZGluYXRl
cyBhbmQgcmVjdXJzaXZlbHkKKyAgICAgICAgYWRqdXN0IGZvciBpdHMgY29udGFpbmVyJ3MgdHJh
bnNmb3JtZWQgcG9zaXRpb24gdW50aWwgd2UgcmVhY2ggdGhlIHRvcAorICAgICAgICBjb250YWlu
ZXIuCisKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6bG9jYWxUb1dpbmRvd1F1YWQp
OgorICAgICAgICBUYWtlIGEgbG9jYWwgcG9pbnQgd2l0aGluIGEgcmVuZGVyZXIgY29vcmRpbmF0
ZSBzcGFjZSwgYW5kIGdldCBpdHMgYWJzb2x1dGUKKyAgICAgICAgcG9pbnQgd2l0aGluIHRoZSB3
aW5kb3cgY29vcmRpbmF0ZSBzcGFjZS4KKwogMjAxMS0wNi0wMSAgSm9zZXBoIFBlY29yYXJvICA8
am9lcGVja0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcApp
bmRleCA5YzdhMGI4Li43YTdhOGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
RE9NTm9kZUhpZ2hsaWdodGVyLmNwcApAQCAtMTMxLDcgKzEzMSw3IEBAIGlubGluZSBJbnRTaXpl
IGZyYW1lVG9NYWluRnJhbWVPZmZzZXQoRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBtYWluRnJh
bWVQb2ludCAtIEludFBvaW50KCk7CiB9CiAKLXZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IEludFJlY3QmIGJvdW5kaW5nQm94
LCBjb25zdCBJbnRSZWN0JiBhbmNob3JCb3gsIGNvbnN0IEZsb2F0UmVjdCYgb3ZlcmxheVJlY3Qs
IFdlYkNvcmU6OlNldHRpbmdzKiBzZXR0aW5ncykKK3ZvaWQgZHJhd0VsZW1lbnRUaXRsZShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUqIG5vZGUsIGNvbnN0IEludFJlY3QmIGJvdW5kaW5n
Qm94LCBjb25zdCBJbnRSZWN0JiBhbmNob3JCb3gsIGNvbnN0IEZsb2F0UmVjdCYgb3ZlcmxheVJl
Y3QsIFNldHRpbmdzKiBzZXR0aW5ncykKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHJlY3RJbmZs
YXRlUHggPSA0OwogICAgIHN0YXRpYyBjb25zdCBpbnQgZm9udEhlaWdodFB4ID0gMTI7CkBAIC0y
NjUsMTYgKzI2NSwxMCBAQCB2b2lkIERyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYg
Y29udGV4dCwgTm9kZSogbm9kZSwgSGlnaGxpZ2h0TW9kZSBtb2RlKQogICAgICAgICBJbnRSZWN0
IG1hcmdpbkJveChib3JkZXJCb3gueCgpIC0gcmVuZGVyQm94LT5tYXJnaW5MZWZ0KCksIGJvcmRl
ckJveC55KCkgLSByZW5kZXJCb3gtPm1hcmdpblRvcCgpLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICBib3JkZXJCb3gud2lkdGgoKSArIHJlbmRlckJveC0+bWFyZ2luTGVmdCgpICsgcmVuZGVy
Qm94LT5tYXJnaW5SaWdodCgpLCBib3JkZXJCb3guaGVpZ2h0KCkgKyByZW5kZXJCb3gtPm1hcmdp
blRvcCgpICsgcmVuZGVyQm94LT5tYXJnaW5Cb3R0b20oKSk7CiAKLQotICAgICAgICBGbG9hdFF1
YWQgYWJzQ29udGVudFF1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRS
ZWN0KGNvbnRlbnRCb3gpKTsKLSAgICAgICAgRmxvYXRRdWFkIGFic1BhZGRpbmdRdWFkID0gcmVu
ZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChwYWRkaW5nQm94KSk7Ci0gICAg
ICAgIEZsb2F0UXVhZCBhYnNCb3JkZXJRdWFkID0gcmVuZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVR
dWFkKEZsb2F0UmVjdChib3JkZXJCb3gpKTsKLSAgICAgICAgRmxvYXRRdWFkIGFic01hcmdpblF1
YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KG1hcmdpbkJveCkp
OwotCi0gICAgICAgIGFic0NvbnRlbnRRdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsKLSAgICAg
ICAgYWJzUGFkZGluZ1F1YWQubW92ZShtYWluRnJhbWVPZmZzZXQpOwotICAgICAgICBhYnNCb3Jk
ZXJRdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsKLSAgICAgICAgYWJzTWFyZ2luUXVhZC5tb3Zl
KG1haW5GcmFtZU9mZnNldCk7CisgICAgICAgIEZsb2F0UXVhZCBhYnNDb250ZW50UXVhZCA9IHJl
bmRlckJveC0+bG9jYWxUb1dpbmRvd1F1YWQoRmxvYXRSZWN0KGNvbnRlbnRCb3gpKTsKKyAgICAg
ICAgRmxvYXRRdWFkIGFic1BhZGRpbmdRdWFkID0gcmVuZGVyQm94LT5sb2NhbFRvV2luZG93UXVh
ZChGbG9hdFJlY3QocGFkZGluZ0JveCkpOworICAgICAgICBGbG9hdFF1YWQgYWJzQm9yZGVyUXVh
ZCA9IHJlbmRlckJveC0+bG9jYWxUb1dpbmRvd1F1YWQoRmxvYXRSZWN0KGJvcmRlckJveCkpOwor
ICAgICAgICBGbG9hdFF1YWQgYWJzTWFyZ2luUXVhZCA9IHJlbmRlckJveC0+bG9jYWxUb1dpbmRv
d1F1YWQoRmxvYXRSZWN0KG1hcmdpbkJveCkpOwogCiAgICAgICAgIHRpdGxlQW5jaG9yQm94ID0g
YWJzTWFyZ2luUXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOwogCkBAIC0yOTQsNyArMjg4LDcg
QEAgdm9pZCBEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUq
IG5vZGUsIEhpZ2hsaWdodE1vZGUgbW9kZSkKICAgICBpZiAoIW5vZGUtPmlzRWxlbWVudE5vZGUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRpbmdzID0g
Y29udGFpbmluZ0ZyYW1lLT5zZXR0aW5ncygpOworICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGNv
bnRhaW5pbmdGcmFtZS0+c2V0dGluZ3MoKTsKICAgICBpZiAobW9kZSA9PSBET01Ob2RlSGlnaGxp
Z2h0ZXI6OkhpZ2hsaWdodEFsbCkKICAgICAgICAgZHJhd0VsZW1lbnRUaXRsZShjb250ZXh0LCBu
b2RlLCBib3VuZGluZ0JveCwgdGl0bGVBbmNob3JCb3gsIG92ZXJsYXlSZWN0LCBzZXR0aW5ncyk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IGI5MzU1
MWIuLjhiYjlmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVySW5saW5lLmgiCiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJMaXN0SXRlbS5oIgorI2luY2x1ZGUgIlJl
bmRlclBhcnQuaCIKICNpbmNsdWRlICJSZW5kZXJSdWJ5LmgiCiAjaW5jbHVkZSAiUmVuZGVyUnVi
eVRleHQuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNlbGwuaCIKQEAgLTE4NjQsNiArMTg2NSwx
OCBAQCB2b2lkIFJlbmRlck9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYgogICAgIG8tPm1hcExvY2FsVG9Db250YWluZXIo
cmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsK
IH0KIAordm9pZCBSZW5kZXJPYmplY3Q6Om1hcENvbnRhaW5lclRvV2luZG93KGJvb2wgZml4ZWQs
IGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25z
dAoreworICAgIFJlbmRlckJveCogbyA9IHN0YXRpY19jYXN0PFJlbmRlckJveCo+KGZyYW1lKCkt
Pm93bmVyUmVuZGVyZXIoKSk7CisgICAgaWYgKCFvKQorICAgICAgICByZXR1cm47CisKKyAgICAv
LyBBY2NvdW50IGZvciB0aGUgYm9yZGVyIG9mIHRoZSBmcmFtZSByZW5kZXJlciBpZiB3ZSBhcmUg
bWFwcGluZyBjb250ZW50IGluc2lkZSB0aGUgY29udGFpbmVyLgorICAgIHRyYW5zZm9ybVN0YXRl
Lm1vdmUoby0+Ym9yZGVyTGVmdCgpLCBvLT5ib3JkZXJUb3AoKSk7CisgICAgc3RhdGljX2Nhc3Q8
UmVuZGVyT2JqZWN0Kj4obyktPm1hcExvY2FsVG9Db250YWluZXIoMCwgZml4ZWQsIHVzZVRyYW5z
Zm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBvLT5tYXBDb250YWluZXJUb1dpbmRvdyhmaXhl
ZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworfQorCiB2b2lkIFJlbmRlck9iamVj
dDo6bWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1z
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0CiB7CiAgICAgUmVuZGVyT2Jq
ZWN0KiBvID0gcGFyZW50KCk7CkBAIC0xOTIzLDYgKzE5MzYsMTggQEAgRmxvYXRRdWFkIFJlbmRl
ck9iamVjdDo6bG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1YWQs
IFJlbmRlckIKICAgICByZXR1cm4gdHJhbnNmb3JtU3RhdGUubGFzdFBsYW5hclF1YWQoKTsKIH0K
IAorRmxvYXRRdWFkIFJlbmRlck9iamVjdDo6bG9jYWxUb1dpbmRvd1F1YWQoY29uc3QgRmxvYXRR
dWFkJiBsb2NhbFF1YWQsIGJvb2wgZml4ZWQpIGNvbnN0Cit7CisgICAgLy8gVHJhY2sgdGhlIHBv
aW50IGF0IHRoZSBjZW50ZXIgb2YgdGhlIHF1YWQncyBib3VuZGluZyBib3guIEFzIG1hcExvY2Fs
VG9Db250YWluZXIoKSBjYWxscyBvZmZzZXRGcm9tQ29udGFpbmVyKCksCisgICAgLy8gaXQgd2ls
bCB1c2UgdGhhdCBwb2ludCBhcyB0aGUgcmVmZXJlbmNlIHBvaW50IHRvIGRlY2lkZSB3aGljaCBj
b2x1bW4ncyB0cmFuc2Zvcm0gdG8gYXBwbHkgaW4gbXVsdGlwbGUtY29sdW1uIGJsb2Nrcy4KKyAg
ICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFu
c2Zvcm1EaXJlY3Rpb24sIGxvY2FsUXVhZC5ib3VuZGluZ0JveCgpLmNlbnRlcigpLCAmbG9jYWxR
dWFkKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKDAsIGZpeGVkLCB0cnVlLCB0cmFuc2Zvcm1T
dGF0ZSk7CisgICAgbWFwQ29udGFpbmVyVG9XaW5kb3coZml4ZWQsIHRydWUsIHRyYW5zZm9ybVN0
YXRlKTsKKyAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CisKKyAgICByZXR1cm4gdHJhbnNm
b3JtU3RhdGUubGFzdFBsYW5hclF1YWQoKTsKK30KKwogSW50U2l6ZSBSZW5kZXJPYmplY3Q6Om9m
ZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBJbnRQb2ludCYgcG9pbnQp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKG8gPT0gY29udGFpbmVyKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDIxMjBjY2EuLjQ0NTZkYWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTU4NCw2ICs1ODQsOSBAQCBwdWJsaWM6
CiAgICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgaW50byB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0g
b2YgY29udGFpbmVyLCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCiAgICAgRmxvYXRR
dWFkIGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYsIFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0OwogCisg
ICAgLy8gQ29udmVydCBhIGxvY2FsIHF1YWQgaW50byB0aGUgY29vcmRpbmF0ZSBzeXN0ZW0gb2Yg
dGhlIHdpbmRvdywgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LgorICAgIEZsb2F0UXVh
ZCBsb2NhbFRvV2luZG93UXVhZChjb25zdCBGbG9hdFF1YWQmLCBib29sIGZpeGVkID0gZmFsc2Up
IGNvbnN0OworCiAgICAgLy8gUmV0dXJuIHRoZSBvZmZzZXQgZnJvbSB0aGUgY29udGFpbmVyKCkg
cmVuZGVyZXIgKGV4Y2x1ZGluZyB0cmFuc2Zvcm1zKS4gSW4gbXVsdGktY29sdW1uIGxheW91dCwK
ICAgICAvLyBkaWZmZXJlbnQgb2Zmc2V0cyBhcHBseSBhdCBkaWZmZXJlbnQgcG9pbnRzLCBzbyBy
ZXR1cm4gdGhlIG9mZnNldCB0aGF0IGFwcGxpZXMgdG8gdGhlIGdpdmVuIHBvaW50LgogICAgIHZp
cnR1YWwgSW50U2l6ZSBvZmZzZXRGcm9tQ29udGFpbmVyKFJlbmRlck9iamVjdCosIGNvbnN0IElu
dFBvaW50JikgY29uc3Q7CkBAIC03NzEsNiArNzc0LDcgQEAgcHVibGljOgogICAgIC8vIGxvY2Fs
VG9BYnNvbHV0ZS9hYnNvbHV0ZVRvTG9jYWwgbWV0aG9kcyBpbnN0ZWFkLgogICAgIHZpcnR1YWwg
dm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29u
dGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJikg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgbWFwQ29udGFpbmVyVG9XaW5kb3coYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zv
cm1zLCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRVc2VUcmFuc2Zv
cm1Gcm9tQ29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogY29udGFpbmVyKSBjb25zdDsKICAg
ICB2b2lkIGdldFRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250
YWluZXIsIGNvbnN0IEludFNpemUmIG9mZnNldEluQ29udGFpbmVyLCBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCYpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98576</attachid>
            <date>2011-06-24 21:57:50 -0700</date>
            <delta_ts>2011-12-21 15:00:14 -0800</delta_ts>
            <desc>[PATCH] Part 1: Fix Transforms in Nested iframes test</desc>
            <filename>part1.patch</filename>
            <type>text/plain</type>
            <size>10413</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiYjg4MDEyLi4yZTlhMzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkg
QEAKKzIwMTEtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3Ig
aGlnaGxpZ2h0IHJlY3QgaXMgd3JvbmcgZm9yIGNvbnRlbnRzIG9mIHRyYW5zZm9ybWVkIGlmcmFt
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjI3
CisKKyAgICAgICAgUGFydCAxOiBQcm92aWRlIEZsb2F0UXVhZCB2ZXJzaW9ucyBvZiBjb252ZXJ0
RnJvbVJlbmRlcmVyLAorICAgICAgICBjb252ZXJ0VG9Db250YWluaW5nVmlldywgYW5kIGNvbnZl
cnRDaGlsZFRvU2VsZiwgc28gdGhhdCB3ZQorICAgICAgICBjYW4gZ2V0IHRoZSBmdWxseSB0cmFu
c2Zvcm1lZCBxdWFkIG9mIGEgcmVuZGVyZXIgYWxsIHRoZQorICAgICAgICB3YXkgdXAgdG8gdGhl
IHJvb3Qgd2lkZ2V0LgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVWaWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6Y29udmVydENoaWxkVG9TZWxmKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9XaWRnZXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9XaWRnZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6V2lkZ2V0Ojpjb252ZXJ0VG9Db250YWluaW5nVmlldyk6CisgICAgICAgIFByb3Zp
ZGUgRmxvYXRRdWFkIHZlcnNpb25zIG9mIHRoZXNlIGFscmVhZHkgZXhpc3RpbmcgZnVuY3Rpb25z
LgorCisgICAgICAgIChXZWJDb3JlOjpXaWRnZXQ6OmNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmll
dyk6CisgICAgICAgIFByb3ZpZGUgYSBoZWxwZXIgY29udmVyc2lvbiBmdW5jdGlvbiB0byByZWN1
cnNpdmVseQorICAgICAgICBjb252ZXJ0IGEgZ2l2ZW4gRmxvYXRRdWFkIHVwIHRvIHRoZSByb290
IHdpZGdldC4KKworICAgICAgICAqIGluc3BlY3Rvci9ET01Ob2RlSGlnaGxpZ2h0ZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RE9NTm9kZUhpZ2hsaWdodGVyOjpEcmF3Tm9kZUhpZ2hsaWdodCk6
CisgICAgICAgIFVzZSB0aGUgbmV3IG1ldGhvZHMgdG8gY29udmVydCB0aGUgRmxvYXRRdWFkIGZv
ciB0aGUgaGlnaGxpZ2h0ZWQKKyAgICAgICAgbm9kZSB0byB0aGUgcm9vdCBjb250YWluZXIsIHdp
dGhvdXQgbG9zaW5nIHRyYW5zZm9ybWF0aW9uCisgICAgICAgIGluZm9ybWF0aW9uLiBBZGQgYSBG
SVhNRSBmb3IgU1ZHLCB3aGljaCBpcyBzdGlsbCBicm9rZW4uCisKKyAgICAgICAgKiBXZWJDb3Jl
LmV4cC5pbjoKKyAgICAgICAgRXhwb3J0IHRoZSBuZXcgV2lkZ2V0IGZ1bmN0aW9ucyBzbyBXZWJL
aXQgY2FuIGxpbmsgcHJvcGVybHkuCisKIDIwMTEtMDYtMjAgIEpvc2VwaCBQZWNvcmFybyAgPGpv
ZXBlY2tAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmYzVjZjI2Li4wMDliOTVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4
cC5pbgpAQCAtMTI3MiwxMCArMTI3MiwxMiBAQCBfX1pOSzdXZWJDb3JlNkpTTm9kZTIxcHVzaEV2
ZW50SGFuZGxlclNjb3BlRVBOM0pTQzlFeGVjU3RhdGVFUE5TMV8xNFNjb3BlQ2hhaW5ObwogX19a
Tks3V2ViQ29yZTZXaWRnZXQxNHBsYXRmb3JtV2lkZ2V0RXYKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0
MjNjb252ZXJ0VG9Db250YWluaW5nVmlld0VSS05TXzdJbnRSZWN0RQogX19aTks3V2ViQ29yZTZX
aWRnZXQyM2NvbnZlcnRUb0NvbnRhaW5pbmdWaWV3RVJLTlNfOEludFBvaW50RQorX19aTks3V2Vi
Q29yZTZXaWRnZXQyM2NvbnZlcnRUb0NvbnRhaW5pbmdWaWV3RVJLTlNfOUZsb2F0UXVhZEUKIF9f
Wk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0RnJvbUNvbnRhaW5pbmdWaWV3RVJLTlNfN0ludFJl
Y3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydEZyb21Db250YWluaW5nVmlld0VSS05T
XzhJbnRQb2ludEUKIF9fWk5LN1dlYkNvcmU2V2lkZ2V0MjVjb252ZXJ0VG9Db250YWluaW5nV2lu
ZG93RVJLTlNfN0ludFJlY3RFCiBfX1pOSzdXZWJDb3JlNldpZGdldDI1Y29udmVydFRvQ29udGFp
bmluZ1dpbmRvd0VSS05TXzhJbnRQb2ludEUKK19fWk5LN1dlYkNvcmU2V2lkZ2V0Mjdjb252ZXJ0
VG9Sb290Q29udGFpbmluZ1ZpZXdFUktOU185RmxvYXRRdWFkRQogX19aTks3V2ViQ29yZTZXaWRn
ZXQ5ZnJhbWVSZWN0RXYKIF9fWk5LN1dlYkNvcmU3RWxlbWVudDEwc2NyZWVuUmVjdEV2CiBfX1pO
SzdXZWJDb3JlN0VsZW1lbnQxMHNoYWRvd1Jvb3RFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0RPTU5vZGVIaWdobGlnaHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAppbmRleCA5YWE2OWVmLi4zZDRkNGQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvRE9NTm9kZUhpZ2hsaWdodGVyLmNwcApAQCAt
MjY3LDIxICsyNjcsMjIgQEAgdm9pZCBEcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIE5vZGUqIG5vZGUsIEhpZ2hsaWdodE1vZGUgbW9kZSkKICAgICAgICAgSW50UmVj
dCBtYXJnaW5Cb3goYm9yZGVyQm94LngoKSAtIHJlbmRlckJveC0+bWFyZ2luTGVmdCgpLCBib3Jk
ZXJCb3gueSgpIC0gcmVuZGVyQm94LT5tYXJnaW5Ub3AoKSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYm9yZGVyQm94LndpZHRoKCkgKyByZW5kZXJCb3gtPm1hcmdpbkxlZnQoKSArIHJlbmRl
ckJveC0+bWFyZ2luUmlnaHQoKSwgYm9yZGVyQm94LmhlaWdodCgpICsgcmVuZGVyQm94LT5tYXJn
aW5Ub3AoKSArIHJlbmRlckJveC0+bWFyZ2luQm90dG9tKCkpOwogCisgICAgICAgIEZyYW1lVmll
dyogY29udGFpbmluZ1ZpZXcgPSBjb250YWluaW5nRnJhbWUtPnZpZXcoKTsKKyAgICAgICAgRmxv
YXRRdWFkIGFic0NvbnRlbnRRdWFkID0gY29udGFpbmluZ1ZpZXctPmNvbnZlcnRGcm9tUmVuZGVy
ZXIocmVuZGVyZXIsIEZsb2F0UmVjdChjb250ZW50Qm94KSk7CisgICAgICAgIEZsb2F0UXVhZCBh
YnNQYWRkaW5nUXVhZCA9IGNvbnRhaW5pbmdWaWV3LT5jb252ZXJ0RnJvbVJlbmRlcmVyKHJlbmRl
cmVyLCBGbG9hdFJlY3QocGFkZGluZ0JveCkpOworICAgICAgICBGbG9hdFF1YWQgYWJzQm9yZGVy
UXVhZCA9IGNvbnRhaW5pbmdWaWV3LT5jb252ZXJ0RnJvbVJlbmRlcmVyKHJlbmRlcmVyLCBGbG9h
dFJlY3QoYm9yZGVyQm94KSk7CisgICAgICAgIEZsb2F0UXVhZCBhYnNNYXJnaW5RdWFkID0gY29u
dGFpbmluZ1ZpZXctPmNvbnZlcnRGcm9tUmVuZGVyZXIocmVuZGVyZXIsIEZsb2F0UmVjdChtYXJn
aW5Cb3gpKTsKIAotICAgICAgICBGbG9hdFF1YWQgYWJzQ29udGVudFF1YWQgPSByZW5kZXJCb3gt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQoRmxvYXRSZWN0KGNvbnRlbnRCb3gpKTsKLSAgICAgICAgRmxv
YXRRdWFkIGFic1BhZGRpbmdRdWFkID0gcmVuZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZs
b2F0UmVjdChwYWRkaW5nQm94KSk7Ci0gICAgICAgIEZsb2F0UXVhZCBhYnNCb3JkZXJRdWFkID0g
cmVuZGVyQm94LT5sb2NhbFRvQWJzb2x1dGVRdWFkKEZsb2F0UmVjdChib3JkZXJCb3gpKTsKLSAg
ICAgICAgRmxvYXRRdWFkIGFic01hcmdpblF1YWQgPSByZW5kZXJCb3gtPmxvY2FsVG9BYnNvbHV0
ZVF1YWQoRmxvYXRSZWN0KG1hcmdpbkJveCkpOwotCi0gICAgICAgIGFic0NvbnRlbnRRdWFkLm1v
dmUobWFpbkZyYW1lT2Zmc2V0KTsKLSAgICAgICAgYWJzUGFkZGluZ1F1YWQubW92ZShtYWluRnJh
bWVPZmZzZXQpOwotICAgICAgICBhYnNCb3JkZXJRdWFkLm1vdmUobWFpbkZyYW1lT2Zmc2V0KTsK
LSAgICAgICAgYWJzTWFyZ2luUXVhZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7CisgICAgICAgIGFi
c0NvbnRlbnRRdWFkID0gY29udGFpbmluZ1ZpZXctPmNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmll
dyhhYnNDb250ZW50UXVhZCk7CisgICAgICAgIGFic1BhZGRpbmdRdWFkID0gY29udGFpbmluZ1Zp
ZXctPmNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmlldyhhYnNQYWRkaW5nUXVhZCk7CisgICAgICAg
IGFic0JvcmRlclF1YWQgPSBjb250YWluaW5nVmlldy0+Y29udmVydFRvUm9vdENvbnRhaW5pbmdW
aWV3KGFic0JvcmRlclF1YWQpOworICAgICAgICBhYnNNYXJnaW5RdWFkID0gY29udGFpbmluZ1Zp
ZXctPmNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmlldyhhYnNNYXJnaW5RdWFkKTsKIAogICAgICAg
ICB0aXRsZUFuY2hvckJveCA9IGFic01hcmdpblF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsK
IAogICAgICAgICBkcmF3SGlnaGxpZ2h0Rm9yQm94KGNvbnRleHQsIGFic0NvbnRlbnRRdWFkLCBh
YnNQYWRkaW5nUXVhZCwgYWJzQm9yZGVyUXVhZCwgYWJzTWFyZ2luUXVhZCwgbW9kZSk7CiAgICAg
fSBlbHNlIGlmIChyZW5kZXJlci0+aXNSZW5kZXJJbmxpbmUoKSB8fCBpc1NWR1JlbmRlcmVyKSB7
CisgICAgICAgIC8vIEZJWE1FOiBEb2VzIG5vdCBoYW5kbGUgdHJhbnNmb3JtZWQgY29udGVudCBj
b3JyZWN0bHkuCiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc2hvdyBtYXJnaW5zL3BhZGRp
bmcvYm9yZGVyIGZvciBpbmxpbmVzLgogICAgICAgICBWZWN0b3I8RmxvYXRRdWFkPiBsaW5lQm94
UXVhZHM7CiAgICAgICAgIHJlbmRlcmVyLT5hYnNvbHV0ZVF1YWRzKGxpbmVCb3hRdWFkcyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMmIzNGZjYi4uOTY0MzE3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjgyNiw2ICsyODI2LDQyIEBAIEludFBvaW50IEZyYW1l
Vmlldzo6Y29udmVydEZyb21Db250YWluaW5nVmlldyhjb25zdCBJbnRQb2ludCYgcGFyZW50UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIHBhcmVudFBvaW50OwogfQogCitGbG9hdFF1YWQgRnJhbWVW
aWV3Ojpjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCogcmVuZGVyZXIsIGNv
bnN0IEZsb2F0UXVhZCYgcmVuZGVyZXJRdWFkKSBjb25zdAoreworICAgIEZsb2F0UXVhZCBxdWFk
ID0gcmVuZGVyZXItPmxvY2FsVG9BYnNvbHV0ZVF1YWQocmVuZGVyZXJRdWFkKTsKKworICAgIElu
dFBvaW50IHNjcm9sbCA9IHNjcm9sbFBvc2l0aW9uKCk7CisgICAgcXVhZC5tb3ZlKC1zY3JvbGwu
eCgpLCAtc2Nyb2xsLnkoKSk7CisKKyAgICByZXR1cm4gcXVhZDsKK30KKworRmxvYXRRdWFkIEZy
YW1lVmlldzo6Y29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgRmxvYXRRdWFkJiBsb2NhbFF1
YWQpIGNvbnN0Cit7CisgICAgaWYgKGNvbnN0IFNjcm9sbFZpZXcqIHBhcmVudFNjcm9sbFZpZXcg
PSBwYXJlbnQoKSkgeworICAgICAgICBpZiAocGFyZW50U2Nyb2xsVmlldy0+aXNGcmFtZVZpZXco
KSkgeworICAgICAgICAgICAgY29uc3QgRnJhbWVWaWV3KiBwYXJlbnRWaWV3ID0gc3RhdGljX2Nh
c3Q8Y29uc3QgRnJhbWVWaWV3Kj4ocGFyZW50U2Nyb2xsVmlldyk7CisKKyAgICAgICAgICAgIC8v
IEdldCBvdXIgcmVuZGVyZXIgaW4gdGhlIHBhcmVudCB2aWV3LgorICAgICAgICAgICAgUmVuZGVy
UGFydCogcmVuZGVyZXIgPSBtX2ZyYW1lLT5vd25lclJlbmRlcmVyKCk7CisgICAgICAgICAgICBp
ZiAoIXJlbmRlcmVyKQorICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbFF1YWQ7CisKKyAgICAg
ICAgICAgIC8vIEFkZCBib3JkZXJzIGFuZCBwYWRkaW5nLgorICAgICAgICAgICAgRmxvYXRRdWFk
IHF1YWQobG9jYWxRdWFkKTsKKyAgICAgICAgICAgIHF1YWQubW92ZShyZW5kZXJlci0+Ym9yZGVy
TGVmdCgpICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksCisgICAgICAgICAgICAgICAgICAgICAg
cmVuZGVyZXItPmJvcmRlclRvcCgpICsgcmVuZGVyZXItPnBhZGRpbmdUb3AoKSk7CisKKyAgICAg
ICAgICAgIC8vIEFwcGx5IHRoZSBwYXJlbnQncyB0cmFuc2Zvcm1zIGFuZCBzY3JvbGwgb2Zmc2V0
LgorICAgICAgICAgICAgcmV0dXJuIHBhcmVudFZpZXctPmNvbnZlcnRGcm9tUmVuZGVyZXIocmVu
ZGVyZXIsIHF1YWQpOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIFdpZGdldDo6Y29udmVy
dFRvQ29udGFpbmluZ1ZpZXcobG9jYWxRdWFkKTsKKyAgICB9CisKKyAgICByZXR1cm4gbG9jYWxR
dWFkOworfQorCiAvLyBOb3JtYWwgZGVsYXkKIHZvaWQgRnJhbWVWaWV3OjpzZXRSZXBhaW50VGhy
b3R0bGluZ0RlZmVycmVkUmVwYWludERlbGF5KGRvdWJsZSBwKQogewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKaW5kZXggNDBkOWU0Mi4uMmViYjljYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCkBA
IC0yNjAsNiArMjYwLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRG
cm9tUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0KiwgY29uc3QgSW50UG9pbnQmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIEludFBvaW50IGNvbnZlcnRUb1JlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVj
dCosIGNvbnN0IEludFBvaW50JikgY29uc3Q7CiAKKyAgICAvLyBDb252ZXJzaW9uIHdpdGggRmxv
YXRRdWFkcywgdG8ga2VlcCB0cmFuc2Zvcm1lZCBjb29yZGluYXRlcy4KKyAgICB2aXJ0dWFsIEZs
b2F0UXVhZCBjb252ZXJ0RnJvbVJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IEZs
b2F0UXVhZCYpIGNvbnN0OworICAgIHZpcnR1YWwgRmxvYXRRdWFkIGNvbnZlcnRUb0NvbnRhaW5p
bmdWaWV3KGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OworCiAgICAgYm9vbCBpc0ZyYW1lVmlld1Nj
cm9sbENvcm5lcihSZW5kZXJTY3JvbGxiYXJQYXJ0KiBzY3JvbGxDb3JuZXIpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsQ29ybmVyID09IHNjcm9sbENvcm5lcjsgfQogCiAgICAgdm9pZCBjYWxjdWxh
dGVTY3JvbGxiYXJNb2Rlc0ZvckxheW91dChTY3JvbGxiYXJNb2RlJiBoTW9kZSwgU2Nyb2xsYmFy
TW9kZSYgdk1vZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCmluZGV4IDFkOTA4
MzYuLjIzMjkzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKQEAgLTI4LDYg
KzI4LDcgQEAKICNkZWZpbmUgU2Nyb2xsVmlld19oCiAKICNpbmNsdWRlICJJbnRSZWN0LmgiCisj
aW5jbHVkZSAiRmxvYXRRdWFkLmgiCiAjaW5jbHVkZSAiU2Nyb2xsYmFyLmgiCiAjaW5jbHVkZSAi
U2Nyb2xsYWJsZUFyZWEuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgpAQCAtMjU2LDYgKzI1
NywxNiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBuZXdQb2ludDsKICAgICB9CiAKKyAgICBG
bG9hdFF1YWQgY29udmVydENoaWxkVG9TZWxmKGNvbnN0IFdpZGdldCogY2hpbGQsIGNvbnN0IEZs
b2F0UXVhZCYgcXVhZCkgY29uc3QKKyAgICB7CisgICAgICAgIEludFBvaW50IHBvaW50ID0gcXVh
ZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpLmxvY2F0aW9uKCk7CisgICAgICAgIEludFBvaW50IG5l
d1BvaW50ID0gY29udmVydENoaWxkVG9TZWxmKGNoaWxkLCBwb2ludCk7CisKKyAgICAgICAgRmxv
YXRRdWFkIG5ld1F1YWQgPSBxdWFkOworICAgICAgICBuZXdRdWFkLm1vdmUobmV3UG9pbnQueCgp
LCBuZXdQb2ludC55KCkpOworICAgICAgICByZXR1cm4gbmV3UXVhZDsKKyAgICB9CisKICAgICAv
LyBXaWRnZXQgb3ZlcnJpZGUuIEhhbmRsZXMgcGFpbnRpbmcgb2YgdGhlIGNvbnRlbnRzIG9mIHRo
ZSB2aWV3IGFzIHdlbGwgYXMgdGhlIHNjcm9sbGJhcnMuCiAgICAgdmlydHVhbCB2b2lkIHBhaW50
KEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHBhaW50U2Nyb2xs
YmFycyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
V2lkZ2V0LmNwcAppbmRleCA5YTk4MGMwLi41YWM2NDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dp
ZGdldC5jcHAKQEAgLTE2OCw2ICsxNjgsMjMgQEAgSW50UG9pbnQgV2lkZ2V0Ojpjb252ZXJ0RnJv
bUNvbnRhaW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKICAgICBy
ZXR1cm4gcGFyZW50UG9pbnQ7CiB9CiAKK0Zsb2F0UXVhZCBXaWRnZXQ6OmNvbnZlcnRUb0NvbnRh
aW5pbmdWaWV3KGNvbnN0IEZsb2F0UXVhZCYgbG9jYWxRdWFkKSBjb25zdAoreworICAgIGlmIChj
b25zdCBTY3JvbGxWaWV3KiBwYXJlbnRTY3JvbGxWaWV3ID0gcGFyZW50KCkpCisgICAgICAgIHJl
dHVybiBwYXJlbnRTY3JvbGxWaWV3LT5jb252ZXJ0Q2hpbGRUb1NlbGYodGhpcywgbG9jYWxRdWFk
KTsKKworICAgIHJldHVybiBsb2NhbFF1YWQ7Cit9CisKK0Zsb2F0UXVhZCBXaWRnZXQ6OmNvbnZl
cnRUb1Jvb3RDb250YWluaW5nVmlldyhjb25zdCBGbG9hdFF1YWQmIGxvY2FsUXVhZCkgY29uc3QK
K3sKKyAgICBpZiAoIXBhcmVudCgpKQorICAgICAgICByZXR1cm4gbG9jYWxRdWFkOworCisgICAg
RmxvYXRRdWFkIGNvbnRhaW5pbmdRdWFkID0gY29udmVydFRvQ29udGFpbmluZ1ZpZXcobG9jYWxR
dWFkKTsKKyAgICByZXR1cm4gcGFyZW50KCktPmNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmlldyhj
b250YWluaW5nUXVhZCk7Cit9CisKICNpZiAhUExBVEZPUk0oRUZMKQogdm9pZCBXaWRnZXQ6OmZy
YW1lUmVjdHNDaGFuZ2VkKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKaW5kZXggM2FmNTBl
NC4uNTdjNmM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTI4LDYgKzI4LDcgQEAK
ICNkZWZpbmUgV2lkZ2V0X2gKIAogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlICJGbG9h
dFF1YWQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAKQEAgLTI1Myw2ICsyNTQsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSW50UG9p
bnQgY29udmVydFRvQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKICAgICB2
aXJ0dWFsIEludFBvaW50IGNvbnZlcnRGcm9tQ29udGFpbmluZ1ZpZXcoY29uc3QgSW50UG9pbnQm
KSBjb25zdDsKIAorICAgIC8vIENvbnZlcnNpb24gd2l0aCBGbG9hdFF1YWRzLCB0byBrZWVwIHRy
YW5zZm9ybWVkIGNvb3JkaW5hdGVzLgorICAgIHZpcnR1YWwgRmxvYXRRdWFkIGNvbnZlcnRUb0Nv
bnRhaW5pbmdWaWV3KGNvbnN0IEZsb2F0UXVhZCYpIGNvbnN0OworICAgIHZpcnR1YWwgRmxvYXRR
dWFkIGNvbnZlcnRUb1Jvb3RDb250YWluaW5nVmlldyhjb25zdCBGbG9hdFF1YWQmKSBjb25zdDsK
KwogICAgIC8vIEEgbWVhbnMgdG8gYWNjZXNzIHRoZSBBWCBjYWNoZSB3aGVuIHRoaXMgb2JqZWN0
IGNhbiBnZXQgYSBwb2ludGVyIHRvIGl0LgogICAgIHZpcnR1YWwgQVhPYmplY3RDYWNoZSogYXhP
YmplY3RDYWNoZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98577</attachid>
            <date>2011-06-24 21:59:46 -0700</date>
            <delta_ts>2011-12-21 15:01:03 -0800</delta_ts>
            <desc>[PATCH] Part 2: Fix Fixed Position Content</desc>
            <filename>part2.patch</filename>
            <type>text/plain</type>
            <size>28250</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyZTlhMzQ3Li4wZThhNjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC01LDYgKzUsNzIg
QEAKICAgICAgICAgSW5zcGVjdG9yIGhpZ2hsaWdodCByZWN0IGlzIHdyb25nIGZvciBjb250ZW50
cyBvZiB0cmFuc2Zvcm1lZCBpZnJhbWVzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MzYyNwogCisgICAgICAgIFBhcnQgMjogT25seSBhZGp1c3QgZm9y
IHRoZSBGcmFtZVZpZXcncyBzY3JvbGwgcG9zaXRpb24gd2hlbgorICAgICAgICB0aGUgbG9jYWxU
b0Fic29sdXRlIG1hcHBpbmcgZGlkIG5vdCBlbmQgd2l0aCBmaXhlZCBjb250ZW50LgorICAgICAg
ICBDb250ZW50IHRoYXQgaXMgaW5zaWRlIG9mIGEgZml4ZWQgcG9zaXRpb24gY29udGFpbmVyIGlz
IGFscmVhZHkKKyAgICAgICAgYWRqdXN0ZWQgZm9yIHRoZSBGcmFtZVZpZXcncyBzY3JvbGxQb3Np
dGlvbiB3aGVuIFJlbmRlclZpZXcKKyAgICAgICAgbWFwcyBsb2NhbCB0byBjb250YWluZXIuCisK
KyAgICAgICAgVGhpcyBwYXRjaCB1c2VzIGEgIndhc0ZpeGVkIiBvdXQgcGFyYW1ldGVyIHRvIGRl
dGVybWluZSBpZgorICAgICAgICB0aGUgbG9jYWxUb0Fic29sdXRlIHRyYW5zZm9ybWF0aW9uIGVu
ZGVkIGluc2lkZSBhIGZpeGVkIGJsb2NrLAorICAgICAgICBhbmQgaWYgc28gZG9lcyBub3QgYXBw
bHkgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcik6CisgICAg
ICAgIFJlc3BlY3Qgd2FzRml4ZWQgYXMgZGVzY3JpYmVkIGFib3ZlLgorCisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckJveC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAg
ICAgVGhpcyBpcyB0aGUgb25seSB0aW1lIHRoYXQgImZpeGVkIiBldmVyIGNoYW5nZWQuIFNvIHdo
ZW4KKyAgICAgICAgZml4ZWQgY2hhbmdlcywgdXBkYXRlIHRoZSBvcHRpb25hbCB3YXNGaXhlZCBv
dXQgcGFyYW1ldGVyLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmxvY2FsVG9BYnNvbHV0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbFRvQ29udGFpbmVyUXVhZCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
Ojpsb2NhbFRvQWJzb2x1dGVRdWFkKToKKyAgICAgICAgSWdub3JlIHdhc0ZpeGVkIGJ5IGRlZmF1
bHQsIGJ1dCBwaXBlIGl0IHRob3VnaCB3aGVyZSBuZWVkZWQuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyVmlldy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIpOgorICAgICAg
ICBUaGlzIGlzIHRoZSBmaW5hbCByZWN1cnNpdmUgY2FsbCwgc28gd2FzRml4ZWQgZ29lcyBubwor
ICAgICAgICBmdXRoZXIuIFdlIHNhbml0eSBjaGVjayBpdHMgdmFsdWUgaW4gZGVidWcgYnVpbGRz
LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpzZWxlY3Rpb25HYXBSZWN0c0ZvclJlcGFpbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJJbmxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVySW5s
aW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW5s
aW5lLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9D
b250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR0lubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAg
ICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaDoKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNWR01vZGVsT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJTVkdUZXh0OjptYXBMb2NhbFRvQ29udGFpbmVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVuZGVyU3VwcG9ydDo6
bWFwTG9jYWxUb0NvbnRhaW5lcik6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJT
dXBwb3J0Lmg6CisgICAgICAgIFBpcGUgd2FzRml4ZWQgdGhyb3VnaCB3aGVyZSBuZWVkZWQuCisK
KzIwMTEtMDYtMjQgIEpvc2VwaCBQZWNvcmFybyAgPGpvZXBlY2tAd2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnNwZWN0b3IgaGln
aGxpZ2h0IHJlY3QgaXMgd3JvbmcgZm9yIGNvbnRlbnRzIG9mIHRyYW5zZm9ybWVkIGlmcmFtZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNjI3CisK
ICAgICAgICAgUGFydCAxOiBQcm92aWRlIEZsb2F0UXVhZCB2ZXJzaW9ucyBvZiBjb252ZXJ0RnJv
bVJlbmRlcmVyLAogICAgICAgICBjb252ZXJ0VG9Db250YWluaW5nVmlldywgYW5kIGNvbnZlcnRD
aGlsZFRvU2VsZiwgc28gdGhhdCB3ZQogICAgICAgICBjYW4gZ2V0IHRoZSBmdWxseSB0cmFuc2Zv
cm1lZCBxdWFkIG9mIGEgcmVuZGVyZXIgYWxsIHRoZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CmluZGV4IDk2NDMxN2MuLjYxZGJiOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTI4MjgsMTAgKzI4MjgsMTMgQEAgSW50UG9pbnQgRnJhbWVWaWV3Ojpjb252ZXJ0RnJvbUNvbnRh
aW5pbmdWaWV3KGNvbnN0IEludFBvaW50JiBwYXJlbnRQb2ludCkgY29uc3QKIAogRmxvYXRRdWFk
IEZyYW1lVmlldzo6Y29udmVydEZyb21SZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QqIHJlbmRl
cmVyLCBjb25zdCBGbG9hdFF1YWQmIHJlbmRlcmVyUXVhZCkgY29uc3QKIHsKLSAgICBGbG9hdFF1
YWQgcXVhZCA9IHJlbmRlcmVyLT5sb2NhbFRvQWJzb2x1dGVRdWFkKHJlbmRlcmVyUXVhZCk7Cisg
ICAgYm9vbCB3YXNGaXhlZCA9IGZhbHNlOworICAgIEZsb2F0UXVhZCBxdWFkID0gcmVuZGVyZXIt
PmxvY2FsVG9BYnNvbHV0ZVF1YWQocmVuZGVyZXJRdWFkLCBmYWxzZSwgJndhc0ZpeGVkKTsKIAot
ICAgIEludFBvaW50IHNjcm9sbCA9IHNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgcXVhZC5tb3ZlKC1z
Y3JvbGwueCgpLCAtc2Nyb2xsLnkoKSk7CisgICAgaWYgKCF3YXNGaXhlZCkgeworICAgICAgICBJ
bnRQb2ludCBzY3JvbGwgPSBzY3JvbGxQb3NpdGlvbigpOworICAgICAgICBxdWFkLm1vdmUoLXNj
cm9sbC54KCksIC1zY3JvbGwueSgpKTsKKyAgICB9CiAKICAgICByZXR1cm4gcXVhZDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDFkZTlmOTMuLjBlZTRh
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtMjc0NCw3
ICsyNzQ0LDcgQEAgR2FwUmVjdHMgUmVuZGVyQmxvY2s6OnNlbGVjdGlvbkdhcFJlY3RzRm9yUmVw
YWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludEMKIAogICAgIC8vIEZJWE1FOiB0aGlz
IGlzIGJyb2tlbiB3aXRoIHRyYW5zZm9ybXMKICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1T
dGF0ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIEZsb2F0UG9pbnQo
KSk7Ci0gICAgbWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmYWxzZSwgZmFs
c2UsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGZhbHNlLCBmYWxzZSwgdHJhbnNmb3JtU3RhdGUsIDApOwogICAgIEludFBvaW50IG9m
ZnNldEZyb21SZXBhaW50Q29udGFpbmVyID0gcm91bmRlZEludFBvaW50KHRyYW5zZm9ybVN0YXRl
Lm1hcHBlZFBvaW50KCkpOwogCiAgICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA4M2EyOTc2Li5iMGVlNWNhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTIwMSw3ICsxMjAxLDcgQEAgaW50
IFJlbmRlckJveDo6cGVycGVuZGljdWxhckNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSBj
b25zdAogICAgIHJldHVybiBjYi0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGxvZ2lj
YWxIZWlnaHRMZW5ndGgudmFsdWUoKSk7CiB9CiAKLXZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZp
eGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkg
Y29uc3QKK3ZvaWQgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMs
IFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7
CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJuOwpAQCAt
MTIzMSw2ICsxMjMxLDggQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVu
ZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wKICAgICAgICAgZml4ZWQg
Jj0gaXNGaXhlZFBvczsKICAgICB9IGVsc2UKICAgICAgICAgZml4ZWQgfD0gaXNGaXhlZFBvczsK
KyAgICBpZiAod2FzRml4ZWQpCisgICAgICAgICp3YXNGaXhlZCA9IGZpeGVkOwogICAgIAogICAg
IEludFNpemUgY29udGFpbmVyT2Zmc2V0ID0gb2Zmc2V0RnJvbUNvbnRhaW5lcihvLCByb3VuZGVk
SW50UG9pbnQodHJhbnNmb3JtU3RhdGUubWFwcGVkUG9pbnQoKSkpOwogICAgIApAQCAtMTI1MCw3
ICsxMjUyLDcgQEAgdm9pZCBSZW5kZXJCb3g6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZp
eGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgby0+bWFwTG9jYWxUb0Nv
bnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3Jt
U3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAogdm9pZCBSZW5kZXJCb3g6Om1hcEFic29sdXRlVG9Mb2Nh
bFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmluZGV4
IGZjOTJjYjMuLmVmZGU4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKQEAg
LTQzMCw3ICs0MzAsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZENvbXB1dGVTaXplQXNSZXBsYWNlZCgpIGNvbnN0IHsgcmV0dXJuIGlzUmVwbGFjZWQoKSAmJiAh
aXNJbmxpbmVCbG9ja09ySW5saW5lVGFibGUoKTsgfQogCi0gICAgdmlydHVhbCB2b2lkIG1hcExv
Y2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJv
b2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKKyAg
ICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgbWFwQWJz
b2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYpIGNvbnN0OwogCiAgICAgdm9pZCBwYWludFJvb3RCb3hGaWxsTGF5ZXJzKGNvbnN0
IFBhaW50SW5mbyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
cklubGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW5saW5lLmNwcApp
bmRleCA3Njc5MjY5Li5kOGQwZmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVySW5saW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
SW5saW5lLmNwcApAQCAtMTExMCw3ICsxMTEwLDcgQEAgSW50U2l6ZSBSZW5kZXJJbmxpbmU6Om9m
ZnNldEZyb21Db250YWluZXIoUmVuZGVyT2JqZWN0KiBjb250YWluZXIsIGNvbnN0IEludFBvaW4K
ICAgICByZXR1cm4gb2Zmc2V0OwogfQogCi12b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0Nv
bnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhl
ZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNv
bnN0Cit2b2lkIFJlbmRlcklubGluZTo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1z
LCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAog
ewogICAgIGlmIChyZXBhaW50Q29udGFpbmVyID09IHRoaXMpCiAgICAgICAgIHJldHVybjsKQEAg
LTExNTMsNyArMTE1Myw3IEBAIHZvaWQgUmVuZGVySW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBiCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBvLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIs
IGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgby0+bWFwTG9jYWxU
b0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNm
b3JtU3RhdGUsIHdhc0ZpeGVkKTsKIH0KIAogdm9pZCBSZW5kZXJJbmxpbmU6Om1hcEFic29sdXRl
VG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3Rh
dGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlcklubGluZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklu
bGluZS5oCmluZGV4IGRhNjE3MTAuLmYyMjFlODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJbmxpbmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySW5saW5lLmgKQEAgLTEzMCw3ICsxMzAsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
SW50UmVjdCByZWN0V2l0aE91dGxpbmVGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBpbnQgb3V0bGluZVdpZHRoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29t
cHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBJbnRSZWN0JiByZWN0LCBib29sIGZpeGVkKTsKIAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3Jt
U3RhdGUmLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29s
dXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3Jt
U3RhdGUmKSBjb25zdDsKIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0aW9uRm9y
UG9pbnQoY29uc3QgSW50UG9pbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5jcHAKaW5kZXggNzMxZmU2Yi4uMDcxNWExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTE4MjUsNyArMTgyNSw3IEBAIEludFJlY3QgUmVuZGVy
T2JqZWN0Ojp2aWV3UmVjdCgpIGNvbnN0CiBGbG9hdFBvaW50IFJlbmRlck9iamVjdDo6bG9jYWxU
b0Fic29sdXRlKGNvbnN0IEZsb2F0UG9pbnQmIGxvY2FsUG9pbnQsIGJvb2wgZml4ZWQsIGJvb2wg
dXNlVHJhbnNmb3JtcykgY29uc3QKIHsKICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0
ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxvY2FsUG9pbnQpOwot
ICAgIG1hcExvY2FsVG9Db250YWluZXIoMCwgZml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9y
bVN0YXRlKTsKKyAgICBtYXBMb2NhbFRvQ29udGFpbmVyKDAsIGZpeGVkLCB1c2VUcmFuc2Zvcm1z
LCB0cmFuc2Zvcm1TdGF0ZSwgMCk7CiAgICAgdHJhbnNmb3JtU3RhdGUuZmxhdHRlbigpOwogICAg
IAogICAgIHJldHVybiB0cmFuc2Zvcm1TdGF0ZS5sYXN0UGxhbmFyUG9pbnQoKTsKQEAgLTE4NDAs
NyArMTg0MCw3IEBAIEZsb2F0UG9pbnQgUmVuZGVyT2JqZWN0OjphYnNvbHV0ZVRvTG9jYWwoY29u
c3QgRmxvYXRQb2ludCYgY29udGFpbmVyUG9pbnQsIGJvb2wKICAgICByZXR1cm4gdHJhbnNmb3Jt
U3RhdGUubGFzdFBsYW5hclBvaW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2Nh
bFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29s
IGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0
ZSkgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJv
eE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5z
Zm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CiB7CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXIgPT0gdGhpcykKICAgICAgICAgcmV0dXJu
OwpAQCAtMTg2MSw3ICsxODYxLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6Om1hcExvY2FsVG9Db250
YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGIKICAgICBpZiAo
by0+aGFzT3ZlcmZsb3dDbGlwKCkpCiAgICAgICAgIHRyYW5zZm9ybVN0YXRlLm1vdmUoLXRvUmVu
ZGVyQm94KG8pLT5sYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAKLSAgICBvLT5t
YXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1z
LCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgby0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29u
dGFpbmVyLCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUsIHdhc0ZpeGVkKTsK
IH0KIAogdm9pZCBSZW5kZXJPYmplY3Q6Om1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBj
b25zdApAQCAtMTkxMiwxMiArMTkxMiwxMiBAQCB2b2lkIFJlbmRlck9iamVjdDo6Z2V0VHJhbnNm
b3JtRnJvbUNvbnRhaW5lcihjb25zdCBSZW5kZXJPYmplY3QqIGNvbnRhaW5lck9iamVjdAogI2Vu
ZGlmCiB9CiAKLUZsb2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2FsVG9Db250YWluZXJRdWFkKGNv
bnN0IEZsb2F0UXVhZCYgbG9jYWxRdWFkLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCBmaXhlZCkgY29uc3QKK0Zsb2F0UXVhZCBSZW5kZXJPYmplY3Q6OmxvY2Fs
VG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYgbG9jYWxRdWFkLCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCogd2FzRml4ZWQpIGNv
bnN0CiB7CiAgICAgLy8gVHJhY2sgdGhlIHBvaW50IGF0IHRoZSBjZW50ZXIgb2YgdGhlIHF1YWQn
cyBib3VuZGluZyBib3guIEFzIG1hcExvY2FsVG9Db250YWluZXIoKSBjYWxscyBvZmZzZXRGcm9t
Q29udGFpbmVyKCksCiAgICAgLy8gaXQgd2lsbCB1c2UgdGhhdCBwb2ludCBhcyB0aGUgcmVmZXJl
bmNlIHBvaW50IHRvIGRlY2lkZSB3aGljaCBjb2x1bW4ncyB0cmFuc2Zvcm0gdG8gYXBwbHkgaW4g
bXVsdGlwbGUtY29sdW1uIGJsb2Nrcy4KICAgICBUcmFuc2Zvcm1TdGF0ZSB0cmFuc2Zvcm1TdGF0
ZShUcmFuc2Zvcm1TdGF0ZTo6QXBwbHlUcmFuc2Zvcm1EaXJlY3Rpb24sIGxvY2FsUXVhZC5ib3Vu
ZGluZ0JveCgpLmNlbnRlcigpLCAmbG9jYWxRdWFkKTsKLSAgICBtYXBMb2NhbFRvQ29udGFpbmVy
KHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB0cnVlLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgbWFw
TG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdHJ1ZSwgdHJhbnNmb3Jt
U3RhdGUsIHdhc0ZpeGVkKTsKICAgICB0cmFuc2Zvcm1TdGF0ZS5mbGF0dGVuKCk7CiAgICAgCiAg
ICAgcmV0dXJuIHRyYW5zZm9ybVN0YXRlLmxhc3RQbGFuYXJRdWFkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggM2RlZjEzMi4uYTM1M2UwZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNTc5LDEyICs1NzksMTIgQEAgcHVi
bGljOgogICAgIEZsb2F0UG9pbnQgYWJzb2x1dGVUb0xvY2FsKGNvbnN0IEZsb2F0UG9pbnQmLCBi
b29sIGZpeGVkID0gZmFsc2UsIGJvb2wgdXNlVHJhbnNmb3JtcyA9IGZhbHNlKSBjb25zdDsKIAog
ICAgIC8vIENvbnZlcnQgYSBsb2NhbCBxdWFkIHRvIGFic29sdXRlIGNvb3JkaW5hdGVzLCB0YWtp
bmcgdHJhbnNmb3JtcyBpbnRvIGFjY291bnQuCi0gICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0
ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0Cisg
ICAgRmxvYXRRdWFkIGxvY2FsVG9BYnNvbHV0ZVF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBi
b29sIGZpeGVkID0gZmFsc2UsIGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3QKICAgICB7Ci0gICAg
ICAgIHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBmaXhlZCk7CisgICAgICAg
IHJldHVybiBsb2NhbFRvQ29udGFpbmVyUXVhZChxdWFkLCAwLCBmaXhlZCwgd2FzRml4ZWQpOwog
ICAgIH0KICAgICAvLyBDb252ZXJ0IGEgbG9jYWwgcXVhZCBpbnRvIHRoZSBjb29yZGluYXRlIHN5
c3RlbSBvZiBjb250YWluZXIsIHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudC4KLSAgICBG
bG9hdFF1YWQgbG9jYWxUb0NvbnRhaW5lclF1YWQoY29uc3QgRmxvYXRRdWFkJiwgUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgPSBmYWxzZSkgY29uc3Q7
CisgICAgRmxvYXRRdWFkIGxvY2FsVG9Db250YWluZXJRdWFkKGNvbnN0IEZsb2F0UXVhZCYsIFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkID0gZmFsc2Us
IGJvb2wqIHdhc0ZpeGVkID0gMCkgY29uc3Q7CiAKICAgICAvLyBSZXR1cm4gdGhlIG9mZnNldCBm
cm9tIHRoZSBjb250YWluZXIoKSByZW5kZXJlciAoZXhjbHVkaW5nIHRyYW5zZm9ybXMpLiBJbiBt
dWx0aS1jb2x1bW4gbGF5b3V0LAogICAgIC8vIGRpZmZlcmVudCBvZmZzZXRzIGFwcGx5IGF0IGRp
ZmZlcmVudCBwb2ludHMsIHNvIHJldHVybiB0aGUgb2Zmc2V0IHRoYXQgYXBwbGllcyB0byB0aGUg
Z2l2ZW4gcG9pbnQuCkBAIC03NzEsNyArNzcxLDcgQEAgcHVibGljOgogCiAgICAgLy8gTWFwIHBv
aW50cyBhbmQgcXVhZHMgdGhyb3VnaCBlbGVtZW50cywgcG90ZW50aWFsbHkgdmlhIDNkIHRyYW5z
Zm9ybXMuIFlvdSBzaG91bGQgbmV2ZXIgbmVlZCB0byBjYWxsIHRoZXNlIGRpcmVjdGx5OyB1c2UK
ICAgICAvLyBsb2NhbFRvQWJzb2x1dGUvYWJzb2x1dGVUb0xvY2FsIG1ldGhvZHMgaW5zdGVhZC4K
LSAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFu
c2Zvcm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVy
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9y
bXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0Owog
ICAgIHZpcnR1YWwgdm9pZCBtYXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29s
IHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CiAKICAgICBib29sIHNob3Vs
ZFVzZVRyYW5zZm9ybUZyb21Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0KiBjb250YWluZXIp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDdmODE2
MjQuLjFmYjkxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAg
LTEzNiwxMSArMTM2LDEzIEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICBzZXROZWVk
c0xheW91dChmYWxzZSk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6bWFwTG9jYWxUb0NvbnRhaW5l
cihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwgYm9v
bCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUpIGNvbnN0Cit2
b2lkIFJlbmRlclZpZXc6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNm
b3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkgY29uc3QKIHsKICAgICAv
LyBJZiBhIGNvbnRhaW5lciB3YXMgc3BlY2lmaWVkLCBhbmQgd2FzIG5vdCAwIG9yIHRoZSBSZW5k
ZXJWaWV3LAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIGhhdmUgZm91bmQgaXQgYnkgbm93LgogICAg
IEFTU0VSVF9BUkcocmVwYWludENvbnRhaW5lciwgIXJlcGFpbnRDb250YWluZXIgfHwgcmVwYWlu
dENvbnRhaW5lciA9PSB0aGlzKTsKKyAgICBBU1NFUlQoIXdhc0ZpeGVkIHx8ICp3YXNGaXhlZCA9
PSBmaXhlZCk7CisgICAgVU5VU0VEX1BBUkFNKGZpeGVkKTsKIAogICAgIGlmICghcmVwYWludENv
bnRhaW5lciAmJiB1c2VUcmFuc2Zvcm1zICYmIHNob3VsZFVzZVRyYW5zZm9ybUZyb21Db250YWlu
ZXIoMCkpIHsKICAgICAgICAgVHJhbnNmb3JtYXRpb25NYXRyaXggdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDRjNTM3MzEuLmY4MDI2M2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMTY0LDcgKzE2NCw3IEBAIHB1YmxpYzoKICAgICBJ
bnRSZWN0IGRvY3VtZW50UmVjdCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2
b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmKSBj
b25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2Rl
bE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVk
LCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgbWFwQWJzb2x1dGVUb0xvY2FsUG9pbnQoYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1z
LCBUcmFuc2Zvcm1TdGF0ZSYpIGNvbnN0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKaW5kZXgg
YzdlNWYyMy4uNjMxYzUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCkBAIC0xNTgsMTIgKzE1OCwxMiBAQCBi
b29sIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgSGl0VGVzdFJlc3VsdCYsCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFJlbmRl
clNWR0ZvcmVpZ25PYmplY3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJTVkdGb3JlaWdu
T2JqZWN0OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRl
JiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7CiAgICAgLy8gV2hlbiBj
cmF3bGluZyB1cCB0aGUgaGllcmFjaHkgc3RhcnRpbmcgZnJvbSBmb3JlaWduT2JqZWN0IGNoaWxk
IGNvbnRlbnQsIHVzZVRyYW5zZm9ybXMgbWF5IG5vdCBiZSBzZXQgdG8gdHJ1ZS4KICAgICBpZiAo
IXVzZVRyYW5zZm9ybXMpCiAgICAgICAgIHVzZVRyYW5zZm9ybXMgPSB0cnVlOwotICAgIFNWR1Jl
bmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwg
Zml4ZWQsIHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBTVkdSZW5kZXJTdXBw
b3J0OjptYXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1
c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5o
CmluZGV4IGI5ODExM2MuLjg3OWQyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCkBAIC01Myw3ICs1Myw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3Qm
LCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSW50UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0
IEludFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCwgSGl0VGVzdEFjdGlvbik7CiAgICAgdmlydHVh
bCBib29sIGlzU1ZHRm9yZWlnbk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkICwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zv
cm1TdGF0ZSYpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIGZpeGVkLCBib29sIHVz
ZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiwgYm9vbCogd2FzRml4ZWQpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc1RyYW5zZm9ybVVwZGF0ZSgpIHsgbV9uZWVkc1RyYW5zZm9y
bVVwZGF0ZSA9IHRydWU7IH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmNwcAppbmRleCAwMmE4NWNlLi4yNDIzMTg3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuY3BwCkBA
IC03Nyw5ICs3Nyw5IEBAIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjpjb21wdXRlUmVjdEZvclJlcGFp
bnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluCiAgICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KHRoaXMsIHJlcGFpbnRDb250YWluZXIsIHJlcGFp
bnRSZWN0LCBmaXhlZCk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29u
dGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRy
YW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29u
c3QKK3ZvaWQgUmVuZGVyU1ZHSW5saW5lOjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4
ZWQsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0
CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBh
aW50Q29udGFpbmVyLCB1c2VUcmFuc2Zvcm1zLCBmaXhlZCwgdHJhbnNmb3JtU3RhdGUpOworICAg
IFNWR1JlbmRlclN1cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRh
aW5lciwgdXNlVHJhbnNmb3JtcywgZml4ZWQsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9
CiAKIHZvaWQgUmVuZGVyU1ZHSW5saW5lOjphYnNvbHV0ZVF1YWRzKFZlY3RvcjxGbG9hdFF1YWQ+
JiBxdWFkcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHSW5saW5lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGlu
ZS5oCmluZGV4IDMzZDdkMTMuLjFkMWFmZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdJbmxpbmUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIEludFJlY3QgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIpOwogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
UmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIElu
dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpOwotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRv
Q29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVz
ZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmly
dHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFp
bnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3Rh
dGUmLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGFic29sdXRlUXVh
ZHMoVmVjdG9yPEZsb2F0UXVhZD4mKTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKaW5kZXggMmQwYWI2
My4uODZlMDljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdNb2RlbE9iamVjdC5jcHAKQEAgLTUzLDkgKzUzLDkgQEAgdm9pZCBSZW5kZXJTVkdN
b2RlbE9iamVjdDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiBy
ZXBhaW50Q28KICAgICBTVkdSZW5kZXJTdXBwb3J0Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQodGhp
cywgcmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZpeGVkKTsKIH0KIAotdm9pZCBSZW5k
ZXJTVkdNb2RlbE9iamVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJTVkdNb2RlbE9i
amVjdDo6bWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgYm9vbCBmaXhlZCwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYg
dHJhbnNmb3JtU3RhdGUsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdAogewotICAgIFNWR1JlbmRlclN1
cHBvcnQ6Om1hcExvY2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgZml4ZWQs
IHVzZVRyYW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlKTsKKyAgICBTVkdSZW5kZXJTdXBwb3J0Ojpt
YXBMb2NhbFRvQ29udGFpbmVyKHRoaXMsIHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFu
c2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiAvLyBDb3BpZWQgZnJvbSBS
ZW5kZXJCb3gsIHRoaXMgbWV0aG9kIGxpa2VseSByZXF1aXJlcyBmdXJ0aGVyIHJlZmFjdG9yaW5n
IHRvIHdvcmsgZWFzaWx5IGZvciBib3RoIFNWRyBhbmQgQ1NTIEJveCBNb2RlbCBjb250ZW50Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdNb2RlbE9iamVj
dC5oCmluZGV4IGJiNmVmYzEuLjg2Mjc2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHTW9kZWxPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR01vZGVsT2JqZWN0LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3koKTsKIAotICAgIHZpcnR1YWwgdm9pZCBt
YXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
LCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRyYW5zZm9ybVN0YXRlJikgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmpl
Y3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJh
bnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHN0
eWxlV2lsbENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxlKiBuZXdTdHls
ZSk7CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29u
c3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVs
ZW1lbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3Qu
Y3BwCmluZGV4IGUxMWQ2N2IuLmMxMTIzMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApAQCAtNDEzLDE0ICs0MTMsMTQgQEAgdm9pZCBSZW5k
ZXJTVkdSb290Ojpjb21wdXRlUmVjdEZvclJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJl
cGFpbnRDb250YWluZXIKICAgICBSZW5kZXJCb3g6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBh
aW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQogCi12b2lkIFJlbmRlclNWR1Jv
b3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0
cmFuc2Zvcm1TdGF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyU1ZHUm9vdDo6bWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCwg
Ym9vbCB1c2VUcmFuc2Zvcm1zLCBUcmFuc2Zvcm1TdGF0ZSYgdHJhbnNmb3JtU3RhdGUsIGJvb2wq
IHdhc0ZpeGVkKSBjb25zdAogewogICAgIEFTU0VSVCghZml4ZWQpOyAvLyBXZSBzaG91bGQgaGF2
ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUuCiAgICAgQVNTRVJU
KHVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3Bl
Y3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgogCiAgICAgLy8gVHJhbnNmb3JtIHRvIG91ciBi
b3JkZXIgYm94IGFuZCBsZXQgUmVuZGVyQm94IHRyYW5zZm9ybSB0aGUgcmVzdCBvZiB0aGUgd2F5
LgogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNmb3JtKGxvY2FsVG9Cb3JkZXJCb3hUcmFu
c2Zvcm0oKSk7Ci0gICAgUmVuZGVyQm94OjptYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250
YWluZXIsIGZpeGVkLCB1c2VUcmFuc2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CisgICAgUmVuZGVy
Qm94OjptYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFu
c2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSwgd2FzRml4ZWQpOwogfQogCiB2b2lkIFJlbmRlclNWR1Jv
b3Q6OnVwZGF0ZUNhY2hlZEJvdW5kYXJpZXMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuaAppbmRleCA0ZmUyZTM4Li4yYmFjNWExIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuaApAQCAtODMsNyArODMsNyBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgSW50UmVjdCBjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWlu
dChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lcik7CiAgICAgdmlydHVhbCB2
b2lkIGNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENv
bnRhaW5lciwgSW50UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgZml4ZWQpOwogCi0gICAgdmlydHVh
bCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRD
b250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUm
KSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5lcihSZW5kZXJCb3hN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZp
eGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkKSBjb25zdDsKIAogICAgIHZvaWQg
Y2FsY1ZpZXdwb3J0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1RleHQuY3BwCmluZGV4IGFjOGM4ZTguLmExYjJhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUZXh0LmNwcApAQCAtOTIsOSArOTIsOSBAQCB2b2lk
IFJlbmRlclNWR1RleHQ6OmNvbXB1dGVSZWN0Rm9yUmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lcgogICAgIFNWR1JlbmRlclN1cHBvcnQ6OmNvbXB1dGVSZWN0Rm9y
UmVwYWludCh0aGlzLCByZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgZml4ZWQpOwogfQog
Ci12b2lkIFJlbmRlclNWR1RleHQ6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3Jtcywg
VHJhbnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKSBjb25zdAordm9pZCBSZW5kZXJTVkdUZXh0
OjptYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFp
bmVyLCBib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFu
c2Zvcm1TdGF0ZSwgYm9vbCogd2FzRml4ZWQpIGNvbnN0CiB7Ci0gICAgU1ZHUmVuZGVyU3VwcG9y
dDo6bWFwTG9jYWxUb0NvbnRhaW5lcih0aGlzLCByZXBhaW50Q29udGFpbmVyLCBmaXhlZCwgdXNl
VHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIFNWR1JlbmRlclN1cHBvcnQ6Om1hcExv
Y2FsVG9Db250YWluZXIodGhpcywgcmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRyYW5zZm9y
bXMsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBy
ZWN1cnNpdmVVcGRhdGVTY2FsZWRGb250KFJlbmRlck9iamVjdCogc3RhcnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RleHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCmluZGV4IDExZDc0MzQuLjQ5OWEw
OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVGV4dC5oCkBA
IC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBJbnRSZWN0IGNsaXBwZWRPdmVy
Zmxvd1JlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVy
KTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJbnRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBtYXBMb2NhbFRvQ29udGFpbmVyKFJlbmRlckJveE1vZGVsT2Jq
ZWN0KiByZXBhaW50Q29udGFpbmVyLCBib29sIHVzZVRyYW5zZm9ybXMsIGJvb2wgZml4ZWQsIFRy
YW5zZm9ybVN0YXRlJikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWlu
ZXIoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNm
b3JtcywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIEZsb2F0UmVjdCBvYmplY3RCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0
dXJuIGZyYW1lUmVjdCgpOyB9CiAgICAgdmlydHVhbCBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdC
b3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZH
UmVuZGVyU3VwcG9ydC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwCmluZGV4IGRkNmEyOWQuLjQ5MzM2MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcApAQCAtNzAsMTIgKzcwLDEy
IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6Y29tcHV0ZVJlY3RGb3JSZXBhaW50KFJlbmRlck9i
amVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlCiAgICAgb2JqZWN0LT5wYXJlbnQoKS0+Y29tcHV0
ZVJlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBmaXhlZCk7CiB9
CiAKLXZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25zdCBSZW5k
ZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9ybXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zv
cm1TdGF0ZSkKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6bWFwTG9jYWxUb0NvbnRhaW5lcihjb25z
dCBSZW5kZXJPYmplY3QqIG9iamVjdCwgUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250
YWluZXIsIGJvb2wgZml4ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmIHRy
YW5zZm9ybVN0YXRlLCBib29sKiB3YXNGaXhlZCkKIHsKICAgICBBU1NFUlQoIWZpeGVkKTsgLy8g
V2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJlbmRlcmluZyB0cmVl
LgogICAgIEFTU0VSVCh1c2VUcmFuc2Zvcm1zKTsgLy8gTWFwcGluZyBhIHBvaW50IHRocm91Z2gg
U1ZHIHcvbyByZXNwZWN0aW5nIHRyYW5zZm9ybXMgaXMgdXNlbGVzcy4KICAgICB0cmFuc2Zvcm1T
dGF0ZS5hcHBseVRyYW5zZm9ybShvYmplY3QtPmxvY2FsVG9QYXJlbnRUcmFuc2Zvcm0oKSk7Ci0g
ICAgb2JqZWN0LT5wYXJlbnQoKS0+bWFwTG9jYWxUb0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVy
LCBmaXhlZCwgdXNlVHJhbnNmb3JtcywgdHJhbnNmb3JtU3RhdGUpOworICAgIG9iamVjdC0+cGFy
ZW50KCktPm1hcExvY2FsVG9Db250YWluZXIocmVwYWludENvbnRhaW5lciwgZml4ZWQsIHVzZVRy
YW5zZm9ybXMsIHRyYW5zZm9ybVN0YXRlLCB3YXNGaXhlZCk7CiB9CiAKIGJvb2wgU1ZHUmVuZGVy
U3VwcG9ydDo6cHJlcGFyZVRvUmVuZGVyU1ZHQ29udGVudChSZW5kZXJPYmplY3QqIG9iamVjdCwg
UGFpbnRJbmZvJiBwYWludEluZm8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
U1ZHUmVuZGVyU3VwcG9ydC5oCmluZGV4IDllNmFhNWMuLjMwOGM1ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oCkBAIC02Myw3ICs2Myw3
IEBAIHB1YmxpYzoKICAgICAvLyBJbXBvcnRhbnQgZnVuY3Rpb25zIHVzZWQgYnkgbmVhcmx5IGFs
bCBTVkcgcmVuZGVyZXJzIGNlbnRyYWxpemluZyBjb29yZGluYXRlIHRyYW5zZm9ybWF0aW9ucyAv
IHJlcGFpbnQgcmVjdCBjYWxjdWxhdGlvbnMKICAgICBzdGF0aWMgSW50UmVjdCBjbGlwcGVkT3Zl
cmZsb3dSZWN0Rm9yUmVwYWludChSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVwYWludENvbnRhaW5lcik7CiAgICAgc3RhdGljIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50
KFJlbmRlck9iamVjdCosIFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBJ
bnRSZWN0JiwgYm9vbCBmaXhlZCk7Ci0gICAgc3RhdGljIHZvaWQgbWFwTG9jYWxUb0NvbnRhaW5l
cihjb25zdCBSZW5kZXJPYmplY3QqLCBSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgYm9vbCB1c2VUcmFuc2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYpOwor
ICAgIHN0YXRpYyB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoY29uc3QgUmVuZGVyT2JqZWN0Kiwg
UmVuZGVyQm94TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3Jt
cywgYm9vbCBmaXhlZCwgVHJhbnNmb3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCk7CiAKICAgICAv
LyBTaGFyZWQgYmV0d2VlbiBTVkcgcmVuZGVyZXJzIGFuZCByZXNvdXJjZXMuCiAgICAgc3RhdGlj
IHZvaWQgYXBwbHlTdHJva2VTdHlsZVRvQ29udGV4dChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBS
ZW5kZXJTdHlsZSosIGNvbnN0IFJlbmRlck9iamVjdCopOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>