<?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>89993</bug_id>
          
          <creation_ts>2012-06-26 10:55:32 -0700</creation_ts>
          <short_desc>[CSS Exclusions] Enable css exclusions for multiple blocks per element</short_desc>
          <delta_ts>2012-09-25 11:22:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89256</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>657721</commentid>
    <comment_count>0</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-06-26 10:55:32 -0700</bug_when>
    <thetext>Exclusions will initially only support a single render block per element, sharing the same coordinates
Multiple render blocks per element potentially require looking up the parent chain to find the shape inside, and adjusting from the parent to local coordinates when calculating line segments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707977</commentid>
    <comment_count>1</comment_count>
      <attachid>161344</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-08-29 15:55:38 -0700</bug_when>
    <thetext>Created attachment 161344
Child blocks respect parent&apos;s shape-inside</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711476</commentid>
    <comment_count>2</comment_count>
      <attachid>162105</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-04 15:05:33 -0700</bug_when>
    <thetext>Created attachment 162105
LayoutState Approach

New code approach adding WrapShapeInfo to LayoutState, rather than always using the parent chain to look up WrapShapeInfo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711510</commentid>
    <comment_count>3</comment_count>
      <attachid>162105</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-04 15:30:10 -0700</bug_when>
    <thetext>Comment on attachment 162105
LayoutState Approach

Attachment 162105 did not pass win-ews (win):
Output: http://queues.webkit.org/results/13734951</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711560</commentid>
    <comment_count>4</comment_count>
      <attachid>162130</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-04 16:35:44 -0700</bug_when>
    <thetext>Created attachment 162130
Fixing windows build error

Surrounding a exclusions-specific test with compile flags</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712236</commentid>
    <comment_count>5</comment_count>
      <attachid>162279</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-05 10:40:35 -0700</bug_when>
    <thetext>Created attachment 162279
Removing duplicate changelog entry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714667</commentid>
    <comment_count>6</comment_count>
      <attachid>162279</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-07 10:14:08 -0700</bug_when>
    <thetext>Comment on attachment 162279
Removing duplicate changelog entry

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

AFAICT it&apos;s OK to hop onto LayoutState in this case (exclusions behaves like multi-column from that perspective). Dave or Simon may have more perspective about that though.

Note that it&apos;s not strictly required but it avoids having to walk up the tree to find your enclosing wrapShapeInfo.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1301
&gt; +        logicalTopOffset = logicalTop() + view()-&gt;layoutState()-&gt;layoutOffset().height();

If layout state is disabled, I don&apos;t think this is correct. We may be fine with that for now, but it&apos;s definitely worth a FIXME.

&gt; Source/WebCore/rendering/RenderView.h:229
&gt; +            || (renderer-&gt;isRenderBlock() &amp;&amp; toRenderBlock(renderer)-&gt;wrapShapeInfo())

We may want to add a RenderObject::hasWrapShapeInfo()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714800</commentid>
    <comment_count>7</comment_count>
      <attachid>162833</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-07 11:33:57 -0700</bug_when>
    <thetext>Created attachment 162833
Incorporating feedback

Incorporating Julien&apos;s feedback.
Mentioning multi-column layout in changelog
Adding FIXME to the layout offset
Not yet adding hasWrapShape to RenderObject, but if we have more similar tests, I will.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714980</commentid>
    <comment_count>8</comment_count>
      <attachid>162833</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-09-07 14:21:02 -0700</bug_when>
    <thetext>Comment on attachment 162833
Incorporating feedback

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

In general I have concerns here about propagating everything through LayoutState. I&apos;m not sure of this approach. It could be I have a misunderstanding of WrapShapeInfo though. Is this struct used both for being inside and outside, i.e., is it used both to fit lines inside a shape as well as to help lines avoid intruding into a shape from the outside? If it&apos;s the latter, I am concerned about mindlessly propagating every last bit of information from ancestors down to children. It seems like you&apos;d run into performance problems if you haven&apos;t limited the scope somehow.

Mostly though I&apos;m concerned about writing modes, since connecting to LayoutState is going to get you into trouble.

Another question I have is it looks like an inner WrapShapeInfo will override an outer WrapShapeInfo? Does only one truly apply? Can multiple ones not apply? Do you not have to go up the LayoutState stack to examine all of them?

&gt; Source/WebCore/rendering/LayoutState.cpp:46
&gt; +    , m_wrapShapeInfo(0)

I&apos;d still like to see a rename at some point from wrapShape -&gt; exclusionShape. Especially once the ifdefs eventually fall away, people aren&apos;t going to link &quot;wrap&apos; with the exclusions feature.

&gt; Source/WebCore/rendering/LayoutState.h:98
&gt; +    WrapShapeInfo* wrapShapeInfo() { return m_wrapShapeInfo; }

This method should be const.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:83
&gt; +        WrapShapeInfo* wrapShapeInfo = m_block-&gt;view()-&gt;layoutState()-&gt;wrapShapeInfo();

Rather than removing the RenderBlock method, I think you&apos;d be better off having it still exist and return view()-&gt;layoutState()-&gt;wrapShapeInfo().

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:807
&gt; +    WrapShapeInfo* wrapShapeInfo = view()-&gt;layoutState()-&gt;wrapShapeInfo();

Ditto here.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1298
&gt; +    LayoutUnit logicalTopOffset;

This is not a good name, since it sounds like you&apos;re in local coordinates. With the layout offset applied, though, this is really absolute coordinates.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1302
&gt; +        logicalTopOffset = logicalTop() + view()-&gt;layoutState()-&gt;layoutOffset().height();

You&apos;ve got a big writing modes problem here. We don&apos;t use LayoutState for flipped blocks writing modes (the LayoutState gets disabled), since right now m_layoutOffset isn&apos;t accounting for flipping.

Connecting propagation to m_layoutOffset creates a big problem, since LayoutState basically doesn&apos;t work with flipped blocks writing modes.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1305
&gt; +    if (wrapShapeInfo &amp;&amp; logicalHeight() + logicalTopOffset &lt; wrapShapeInfo-&gt;shapeTop())
&gt; +        setLogicalHeight(wrapShapeInfo-&gt;shapeTop() - logicalTopOffset);

Everything seems completely muddled here with writing modes. You can&apos;t just add the layout offset&apos;s height to a logical top. The layout offset is physical and logicalTop is not.

I still don&apos;t know what shapeTop means. Is it logical? Is it physical? I don&apos;t know.

&gt; Source/WebCore/rendering/RenderView.h:227
&gt; +            || (renderer-&gt;isRenderBlock() &amp;&amp; toRenderBlock(renderer)-&gt;wrapShapeInfo())

It&apos;s a little weird to me that once a parent has wrap shape info, that you then will push that along down to every descendant. It seems like your filtering needs to be smarter than that. Aren&apos;t you going to want to limit this scope?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715170</commentid>
    <comment_count>9</comment_count>
      <attachid>162919</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-07 17:40:47 -0700</bug_when>
    <thetext>Created attachment 162919
Incorporating feedback

Fixing up patch
WrapShapeInfo only deals with shape-inside, which is why one RenderBlock&apos;s shape-inside affects all descendants, and a new shape-inside overrides the previous one.
I have added bug 96160 to rename WrapShapeInfo to something more useful, ExclusionShapeInfo or ShapeInsideInfo.
I have also logged bug 96161 to refactor WrapShapeInfo to be more straightforward when dealing with logical vs physical coordinates. WrapShapes should be sized physically (based on the width/height of their block), but passed logical coordinates when computing line segments. Other fixes:
LayoutState::wrapShapeInfo was made const
Factored out block-&gt;view()-&gt;layoutState()-&gt;wrapShapeInfo() to a layoutWrapShapeInfo() function. RenderBlock::wrapShapeInfo() is still necessary to tell whether or not a given block has a shape-inside from CSS
Renamed logicalTopOffset to absoluteLogicalTop
absoluteLogicalTop will now use layoutOffset width or height depending on writing mode
shapeTop will be renamed to logicalTop as part of bug 96161</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716644</commentid>
    <comment_count>10</comment_count>
      <attachid>163241</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-10 16:17:44 -0700</bug_when>
    <thetext>Created attachment 163241
Updating patch

Merging with recent changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719903</commentid>
    <comment_count>11</comment_count>
      <attachid>163241</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2012-09-13 14:04:13 -0700</bug_when>
    <thetext>Comment on attachment 163241
Updating patch

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

Just some minor suggestions at this point. Make sure to follow up on the rename of wrapShapeInfo, if it really is only about &quot;inside&quot;.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1313
&gt; +        absoluteLogicalTop = logicalTop();
&gt; +        // FIXME: If layout state is disabled, the offset will be incorrect
&gt; +        if (isHorizontalWritingMode())
&gt; +            absoluteLogicalTop += view()-&gt;layoutState()-&gt;layoutOffset().height();
&gt; +        else
&gt; +            absoluteLogicalTop += view()-&gt;layoutState()-&gt;layoutOffset().width();

Minor nitpick, but I think this would read better if you cache in a local. Consider changing this block of code to:

LayoutSize layoutOffset = view()-&gt;layoutState()-&gt;layoutOffset();
absoluteLogicalTop = logicalTop() + (isHorizontalWritingMode() ? layoutOffset.height() : layoutOffset.width());

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1317
&gt; +    if (wrapShapeInfo &amp;&amp; logicalHeight() + absoluteLogicalTop &lt; wrapShapeInfo-&gt;shapeLogicalTop())
&gt; +        setLogicalHeight(wrapShapeInfo-&gt;shapeLogicalTop() - absoluteLogicalTop);

Can&apos;t this go inside the previous if statement that assigned to wrapShapeInfo? Then it would be inside that if and just turn into:

if (logicalHeight() + absoluteLogicalTop &lt; wrapShapeInfo-&gt;shapeLogicalTop())

since you already know wrapShapeInfo isn&apos;t null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720038</commentid>
    <comment_count>12</comment_count>
      <attachid>163984</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-13 15:40:49 -0700</bug_when>
    <thetext>Created attachment 163984
Incorporating feedback

Fixing up based on Dave Hyatt&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727015</commentid>
    <comment_count>13</comment_count>
      <attachid>163984</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-24 14:40:14 -0700</bug_when>
    <thetext>Comment on attachment 163984
Incorporating feedback

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

Could you add some testing with vertical writing modes? The previous patch was wrong because it confused physical coordinates and logical ones which would have been caught by such a test.

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1307
&gt; +    WrapShapeInfo* wrapShapeInfo = layoutWrapShapeInfo(this);
&gt; +    if (wrapShapeInfo) {

Nit: maybe it would be better just: if (WrapShapeInfo* wrapShapeInfo = layoutWrapShapeInfo(this)) {

&gt; Source/WebCore/rendering/RenderBlockLineLayout.cpp:1313
&gt; +        // Move to the top of the shape inside to begin layout

This comment is not super clear IMO. How about:

// Layout start at the logical top of our shape inside.

(feel free to adapt the prose)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727068</commentid>
    <comment_count>14</comment_count>
      <attachid>165463</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-24 16:32:01 -0700</bug_when>
    <thetext>Created attachment 165463
Incorporating feedback

Addressing Julien&apos;s feedback.
Leaving wrapShapeInfo in place, as it is subsequently used in the while loop.
Modifying comment in RenderBlockLineLayout to be more clear.
Adding a vertical writing mode test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727167</commentid>
    <comment_count>15</comment_count>
      <attachid>165463</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-24 18:37:22 -0700</bug_when>
    <thetext>Comment on attachment 165463
Incorporating feedback

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

&gt; Source/WebCore/rendering/LayoutState.cpp:116
&gt; +        RenderBlock* renderBlock = toRenderBlock(renderer);
&gt; +        m_wrapShapeInfo = renderBlock-&gt;wrapShapeInfo();

Unless you are sure you need |renderBlock| in a follow-up patch, I would write it on one line (as it is not used outside this scope):

m_wrapShapeInfo = toRenderBlock(renderer)-&gt;wrapShapeInfo();

&gt; LayoutTests/fast/exclusions/shape-inside/shape-inside-multiple-blocks.html:12
&gt; +        -webkit-shape-inside: rectangle(10px, 10px, 180px, 280px);

It&apos;s usually better to select different values for each direction (as you did for the vertical writing mode test). That makes it easier to spot the wrong size being used.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727241</commentid>
    <comment_count>16</comment_count>
      <attachid>165507</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-24 20:58:40 -0700</bug_when>
    <thetext>Created attachment 165507
Updated patch

Incorporating Julien&apos;s feedback.
Removed the RenderBlock variable.
Changed the shape-inside to be asymmetrical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727813</commentid>
    <comment_count>17</comment_count>
      <attachid>165507</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 11:22:22 -0700</bug_when>
    <thetext>Comment on attachment 165507
Updated patch

Clearing flags on attachment: 165507

Committed r129530: &lt;http://trac.webkit.org/changeset/129530&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727814</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 11:22:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161344</attachid>
            <date>2012-08-29 15:55:38 -0700</date>
            <delta_ts>2012-09-04 15:05:31 -0700</delta_ts>
            <desc>Child blocks respect parent&apos;s shape-inside</desc>
            <filename>bug-89993-20120829155528.patch</filename>
            <type>text/plain</type>
            <size>8880</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3MDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGZjNWQxNGIyYzc1YWRl
NWZkNWZiZDU4ZTBhY2EwMzEyZWY5NDM1NC4uM2JhYTliYWRhYWFhOThhODgwMWU3YTVmMWNjNGEz
MjU0MjRmNzdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTI5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJsb2Nr
cyBtYXkgaW5oZXJpdCBzaGFwZS1pbnNpZGUgZnJvbSB0aGVpciBwYXJlbnQuIFRoaXMgcGF0Y2gg
bG9va3MgdXAKKyAgICAgICAgdGhlIHBhcmVudCBjaGFpbiBmb3IgYSBzaGFwZS1pbnNpZGUsIGFu
ZCBhcHBsaWVzIHRoZSBjaGlsZCBibG9jaydzIHZlcnRpY2FsCisgICAgICAgIG9mZnNldCB3aGVu
IGNhbGN1bGF0aW5nIGxpbmUgc2VnbWVudHMuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpsb2dpY2FsV3JhcFNoYXBlSW5mbyk6IE5ldyBtZXRo
b2QgdG8gbG9vayB1cCBzaGFwZS1pbnNpZGUgaW4gYW4gYW5jZXN0b3IKKyAgICAgICAgaWYgdGhl
IGN1cnJlbnQgUmVuZGVyQmxvY2sgZG9lcyBub3Qgc3BlY2lmeSBvbmUuCisgICAgICAgIChXZWJD
b3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6IExvb2sgdXAgV3JhcFNoYXBlSW5mbyB1c2luZyBs
b2dpY2FsV3JhcFNoYXBlSW5mby4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21w
dXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogRGl0dG8uCisK
IDIwMTItMDgtMjkgIERhdmlkIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAgIFtO
ZXcgTXVsdGljb2x1bW5dIEltcGxlbWVudCBoaXQgdGVzdGluZyBmb3IgY29sdW1ucy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5k
ZXggOGI5NjBmMDU5MWIwNTFmNzQyOGJjMzdlMjAyN2NmNjllMmIxOTE4ZC4uZmMwOGNlNmE1Y2M0
MGM0ODRjNzJjZjk0M2U2YTY3MDY1YThmOTFmOCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTYzLDYgKzYzLDM0IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIC8vIFdlIGRvbid0IGxldCBvdXIgbGluZSBib3ggdHJlZSBmb3Ig
YSBzaW5nbGUgbGluZSBnZXQgYW55IGRlZXBlciB0aGFuIHRoaXMuCiBjb25zdCB1bnNpZ25lZCBj
TWF4TGluZURlcHRoID0gMjAwOwogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorc3RhdGlj
IFdyYXBTaGFwZUluZm8qIGxvZ2ljYWxXcmFwU2hhcGVJbmZvKFJlbmRlckJsb2NrKiBjaGlsZCwg
TGF5b3V0VW5pdCYgbG9naWNhbE9mZnNldCkKK3sKKyAgICBsb2dpY2FsT2Zmc2V0ID0gWkVST19M
QVlPVVRfVU5JVDsKKyAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gY2hpbGQtPndy
YXBTaGFwZUluZm8oKTsKKyAgICB3aGlsZSAoIXdyYXBTaGFwZUluZm8pIHsKKyAgICAgICAgbG9n
aWNhbE9mZnNldCArPSBjaGlsZC0+bG9naWNhbFRvcCgpOworICAgICAgICBpZiAoIShjaGlsZC0+
cGFyZW50KCkgJiYgY2hpbGQtPnBhcmVudCgpLT5pc1JlbmRlckJsb2NrKCkpKQorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIGNoaWxkID0gc3RhdGljX2Nhc3Q8UmVuZGVyQmxvY2sqPihjaGls
ZC0+cGFyZW50KCkpOworICAgICAgICB3cmFwU2hhcGVJbmZvID0gY2hpbGQtPndyYXBTaGFwZUlu
Zm8oKTsKKyAgICB9CisgICAgcmV0dXJuIHdyYXBTaGFwZUluZm87Cit9CisKK3N0YXRpYyBXcmFw
U2hhcGVJbmZvKiBsb2dpY2FsV3JhcFNoYXBlSW5mbyhSZW5kZXJCbG9jayogY2hpbGQpCit7Cisg
ICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGNoaWxkLT53cmFwU2hhcGVJbmZvKCk7
CisgICAgd2hpbGUgKCF3cmFwU2hhcGVJbmZvKSB7CisgICAgICAgIGlmICghKGNoaWxkLT5wYXJl
bnQoKSAmJiBjaGlsZC0+cGFyZW50KCktPmlzUmVuZGVyQmxvY2soKSkpCisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2hpbGQgPSBzdGF0aWNfY2FzdDxSZW5kZXJCbG9jayo+KGNoaWxkLT5w
YXJlbnQoKSk7CisgICAgICAgIHdyYXBTaGFwZUluZm8gPSBjaGlsZC0+d3JhcFNoYXBlSW5mbygp
OworICAgIH0KKyAgICByZXR1cm4gd3JhcFNoYXBlSW5mbzsKK30KKyNlbmRpZgorCiBjbGFzcyBM
aW5lV2lkdGggewogcHVibGljOgogICAgIExpbmVXaWR0aChSZW5kZXJCbG9jayogYmxvY2ssIGJv
b2wgaXNGaXJzdExpbmUpCkBAIC04MCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgewogICAgICAg
ICBBU1NFUlQoYmxvY2spOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICAgICAgV3Jh
cFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IG1fYmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAg
ICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGxvZ2ljYWxXcmFwU2hhcGVJbmZv
KG1fYmxvY2spOwogICAgICAgICAvLyBGSVhNRTogQnVnIDkxODc4OiBBZGQgc3VwcG9ydCBmb3Ig
bXVsdGlwbGUgc2VnbWVudHMsIGN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb25lCiAgICAgICAg
IGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBT
aGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFKSB7CiAgICAgICAgICAgICAvLyBBbGwgaW50ZXJp
b3Igc2hhcGUgcG9zaXRpb25zIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBzZWdtZW50CkBAIC04
MDQsNyArODMyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBv
c2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGluZUJveCwKICAgICBmbG9hdCBsb2dpY2Fs
TGVmdCA9IHBpeGVsU25hcHBlZExvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsSGVpZ2h0
KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwogICAgIGZsb2F0IGxvZ2ljYWxSaWdo
dCA9IHBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgp
LCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCi0gICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHRoaXMtPndyYXBTaGFwZUlu
Zm8oKTsKKyAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbG9naWNhbFdyYXBTaGFw
ZUluZm8odGhpcyk7CiAgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGlu
ZVN0YXRlKCkgPT0gV3JhcFNoYXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAg
bG9naWNhbExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVu
dHMoKVswXS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0
ID0gbWluPGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0KTsKQEAgLTEyOTUsMTAgKzEzMjMsMTEgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJ
bmZvID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOworICAgIExheW91dFVuaXQgbG9naWNhbFRvcE9m
ZnNldDsKKyAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbG9naWNhbFdyYXBTaGFw
ZUluZm8odGhpcywgbG9naWNhbFRvcE9mZnNldCk7CiAgICAgLy8gTW92ZSB0byB0aGUgdG9wIG9m
IHRoZSBzaGFwZSBpbnNpZGUgdG8gYmVnaW4gbGF5b3V0Ci0gICAgaWYgKHdyYXBTaGFwZUluZm8g
JiYgbG9naWNhbEhlaWdodCgpIDwgd3JhcFNoYXBlSW5mby0+c2hhcGVUb3AoKSkKLSAgICAgICAg
c2V0TG9naWNhbEhlaWdodCh3cmFwU2hhcGVJbmZvLT5zaGFwZVRvcCgpKTsKKyAgICBpZiAod3Jh
cFNoYXBlSW5mbyAmJiBsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsVG9wT2Zmc2V0IDwgd3JhcFNo
YXBlSW5mby0+c2hhcGVUb3AoKSkKKyAgICAgICAgc2V0TG9naWNhbEhlaWdodCh3cmFwU2hhcGVJ
bmZvLT5zaGFwZVRvcCgpIC0gbG9naWNhbFRvcE9mZnNldCk7CiAjZW5kaWYKIAogICAgIHdoaWxl
ICghZW5kLmF0RW5kKCkpIHsKQEAgLTEzMjMsNyArMTM1Miw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IElubGluCiAgICAgICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNv
bWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0byBhZGp1c3QKICAgICAgICAgLy8gdGhl
IGhlaWdodCBjb29yZGluYXRlCiAgICAgICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAgICAgICAg
ICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkp
OworICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dp
Y2FsSGVpZ2h0KCkgKyBsb2dpY2FsVG9wT2Zmc2V0KTsKICNlbmRpZgogICAgICAgICBlbmQgPSBs
aW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygp
LCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVI
eXBoZW5hdGVkTGluZXMpOwogICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgp
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMTAwY2VlZjUwNjkxY2Y2MDA5ZTA0ODc3NTkyOWY2ZDM1NDZiOWZiOC4uNjQ4
NTQ5Mzc2YTA4OTBlYzNhNGU4Mjg3YTY3OGIwMTNkNTYyMDAyNyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDEyLTA4LTI5ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUg
YmxvY2tzIHBlciBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3QgdGhhdCBjaGlsZCByZW5kZXIgYmxvY2tzIHJlc3BlY3QgYSBwYXJlbnQn
cyBzaGFwZS1pbnNpZGUuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUt
YmxvY2tzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA4LTI5ICBBbm5hIENhdmVuZGVyICA8YW5uYWNj
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDcmVhdGUgYSB0b2dnbGUgYnV0dG9uIGZvciBjbG9z
ZWQgY2FwdGlvbnMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRp
cGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxYzdiOWVlMDJhZjJkZTZjMmEz
ZDM4MWJmM2ExYzFhOGJkYTQwYzIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhw
ZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHBhZGRpbmc6IDEwcHg7
CisgICAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAg
cG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjYm9yZGVyIHsKKyAgICAgICAgcG9zaXRp
b246IGFic29sdXRlOworICAgICAgICB0b3A6IDhweDsKKyAgICAgICAgbGVmdDogOHB4OworICAg
ICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIGJvcmRl
cjogMnB4IHNvbGlkIGJsdWU7CisgICAgfQorICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAw
OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1p
bnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8cD5QYXJh
Z3JhcGggMS4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgdGhlIHRvcCBlZGdl
IG9mIHRoZSBibHVlCisgICAgICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0IGFuZCByaWdodCBlZGdl
cyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAgPHA+UGFyYWdy
YXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHBhcmFncmFwaCAxLiBJ
dCdzIGxlZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBhbHNvIGJlIHdpdGhpbiB0
aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1tdWx0aXBsZS1ibG9ja3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
ZTIxMDkwNjZmZTEzZmZhNDhiOGU3ZTEwOWYzYzg5ODgwMDgzOGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1t
dWx0aXBsZS1ibG9ja3MuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUp
OworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHdpZHRo
OiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1p
bnNpZGU6IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAxODBweCwgMjgwcHgpOworICAgICAgICBwb3Np
dGlvbjogcmVsYXRpdmU7CisgICAgfQorICAgICNib3JkZXIgeworICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICAgIHRvcDogOHB4OworICAgICAgICBsZWZ0OiA4cHg7CisgICAgICAg
IHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVyOiAy
cHggc29saWQgYmx1ZTsKKyAgICB9CisgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6IDA7Cisg
ICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lk
ZSI+CisgICAgICAgIDxkaXYgaWQ9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFw
aCAxLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyB0aGUgdG9wIGVkZ2Ugb2Yg
dGhlIGJsdWUKKyAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0IGVkZ2VzIHNo
b3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8cD5QYXJhZ3JhcGgg
Mi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgcGFyYWdyYXBoIDEuIEl0J3Mg
bGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMgc2hvdWxkIGFsc28gYmUgd2l0aGluIHRoZSBi
bHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162105</attachid>
            <date>2012-09-04 15:05:33 -0700</date>
            <delta_ts>2012-09-04 16:35:43 -0700</delta_ts>
            <desc>LayoutState Approach</desc>
            <filename>bug-89993-20120904150516.patch</filename>
            <type>text/plain</type>
            <size>12769</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyZDU4YTgwZTAzNjNm
ZjBmYjEzZGU2YTQ1ODQ0YTJiYmU0NzY5MS4uYmZjNDZkZWRhZjk0MjZjYzQ4NjhkOTJkODY1ZmMw
YzQyNGIzYjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA5LTA0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJsb2Nr
cyBtYXkgaW5oZXJpdCBzaGFwZS1pbnNpZGUgZnJvbSB0aGVpciBwYXJlbnQuIFRoaXMgcGF0Y2gg
YWRkcworICAgICAgICBXcmFwU2hhcGVJbmZvIHRvIExheW91dFN0YXRlLCB3aGljaCB0cmFja3Mg
dGhlIGN1cnJlbnQgc2hhcGUtaW5zaWRlIHRoYXQKKyAgICAgICAgaW5saW5lIGNvbnRlbnQgc2hv
dWxkIHJlc3BlY3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUpOiBJbml0aWFsaXplIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0U3RhdGU6OkxheW91dFN0YXRlKTogSW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAg
ICAgIChMYXlvdXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6d3JhcFNo
YXBlSW5mbyk6IEdldHRlciBmb3IgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRo
OjpMaW5lV2lkdGgpOiBVc2UgTGF5b3V0U3RhdGUgdG8gbG9va3VwIFdyYXBTaGFwZUluZm8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0
aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlv
dXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwdXNoTGF5b3V0U3RhdGUp
OiBQdXNoIExheW91dFN0YXRlIGlmIGEgV3JhcFNoYXBlSW5mbworICAgICAgICBpcyBwcmVzZW50
LgorCiAyMDEyLTA5LTA0ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBDcmFzaCBpbiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmNwcAppbmRleCAxZTQ0NDJmMmZlOTU1ZDZhYjZmMmZiYWIxYTQyNmM4ZWM0MzJlYThjLi5i
Y2U4YjJjZTU2ZGI4ZmQ1YjlmZGM2ZmNmMTg3OTJmN2M5YzkyMWIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQyLDYgKzQyLDkgQEAgTGF5b3V0U3RhdGU6
OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25z
dCBMYXlvdXRTaXoKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQog
I2VuZGlmCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICwgbV93cmFwU2hhcGVJbmZv
KDApCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9uZXh0KTsKIApAQCAtMTA3LDYgKzExMCwxNSBA
QCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJveCog
cmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogICAgIGlmICghbV9jb2x1bW5JbmZvKQogICAgICAg
ICBtX2NvbHVtbkluZm8gPSBtX25leHQtPm1fY29sdW1uSW5mbzsKIAorI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKyAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSkgeworICAgICAg
ICBSZW5kZXJCbG9jayogcmVuZGVyQmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKTsKKyAg
ICAgICAgbV93cmFwU2hhcGVJbmZvID0gcmVuZGVyQmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAg
ICAgICAgaWYgKCFtX3dyYXBTaGFwZUluZm8pCisgICAgICAgICAgICBtX3dyYXBTaGFwZUluZm8g
PSBtX25leHQtPm1fd3JhcFNoYXBlSW5mbzsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fbGF5b3V0
RGVsdGEgPSBtX25leHQtPm1fbGF5b3V0RGVsdGE7CiAgICAgCiAgICAgbV9pc1BhZ2luYXRlZCA9
IG1fcGFnZUxvZ2ljYWxIZWlnaHQgfHwgbV9jb2x1bW5JbmZvIHx8IHJlbmRlcmVyLT5pc1JlbmRl
ckZsb3dUaHJlYWQoKTsKQEAgLTEzMiw2ICsxNDQsOSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUoUmVuZGVyT2JqZWN0KiByb290KQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIo
cm9vdCkKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fd3JhcFNo
YXBlSW5mbygwKQorI2VuZGlmCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290
LT5jb250YWluZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5l
ci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAppbmRleCAxNTJjODA0NjU0NThmZDE1YjI5NzljN2Fj
YzNhZTdkZjJiMDllMDllLi43MzYyZjZiZTliMGMyYTI1YWM0MjVlMmEzOWYwMTJmNGIwOTI4ODE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaApAQCAtMzgsNiArMzgsOSBA
QCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlck9iamVj
dDsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQor
Y2xhc3MgV3JhcFNoYXBlSW5mbzsKKyNlbmRpZgogCiBjbGFzcyBMYXlvdXRTdGF0ZSB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5b3V0U3RhdGUpOwpAQCAtNTMsNiArNTYsOSBAQCBwdWJs
aWM6CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAsIG1fcmVuZGVyZXIoMCkKICNlbmRpZgorI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNl
bmRpZgogICAgIHsKICAgICB9CiAKQEAgLTg4LDYgKzk0LDkgQEAgcHVibGljOgogCiAgICAgYm9v
bCBuZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVMYXlvdXQoKSBjb25zdCB7IHJl
dHVybiBtX2xpbmVHcmlkIHx8IChtX2lzUGFnaW5hdGVkICYmIG1fcGFnZUxvZ2ljYWxIZWlnaHQp
OyB9CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgV3JhcFNoYXBlSW5mbyogd3Jh
cFNoYXBlSW5mbygpIHsgcmV0dXJuIG1fd3JhcFNoYXBlSW5mbzsgfQorI2VuZGlmCiBwcml2YXRl
OgogICAgIC8vIFRoZSBub3JtYWwgb3BlcmF0b3IgbmV3IGlzIGRpc2FsbG93ZWQuCiAgICAgdm9p
ZCogb3BlcmF0b3IgbmV3KHNpemVfdCkgdGhyb3coKTsKQEAgLTEyOSw2ICsxMzgsOSBAQCBwdWJs
aWM6CiAjaWZuZGVmIE5ERUJVRwogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKICNlbmRp
ZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBXcmFwU2hhcGVJbmZvKiBtX3dyYXBT
aGFwZUluZm87CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXgg
YzBjMzQwNGFkZDI4MTQ5YzZlODA0YzM0ZmJjZTIyNjViMjdjMDY2My4uOWQwYjE4NjcxYjIzNmZj
NDRiZGUyZDY5OTdhNzRiNWE1Yjc3ZWUwMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgQVNTRVJUKGJsb2NrKTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCi0gICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBtX2Jsb2NrLT53cmFw
U2hhcGVJbmZvKCk7CisgICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBtX2Js
b2NrLT52aWV3KCktPmxheW91dFN0YXRlKCktPndyYXBTaGFwZUluZm8oKTsKICAgICAgICAgLy8g
RklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJy
ZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQogICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3
cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9T
SEFQRSkgewogICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91
bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxp
bmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbExlZnQgPSBwaXhlbFNuYXBwZWRMb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dp
Y2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRMb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNh
bEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUluZm8q
IHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAgV3JhcFNoYXBlSW5m
byogd3JhcFNoYXBlSW5mbyA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+d3JhcFNoYXBlSW5mbygp
OwogICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09
IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFKSB7CiAgICAgICAgIGxvZ2ljYWxMZWZ0
ID0gbWF4PGZsb2F0Pihyb3VuZFRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7CiAgICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9h
dD4oZmxvb3JUb0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCks
IGxvZ2ljYWxSaWdodCk7CkBAIC0xMjk1LDEwICsxMjk1LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IElubGluCiAgICAgTGluZUJyZWFrZXIgbGluZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wT2Zmc2V0OwogICAgIFdy
YXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAg
aWYgKCF3cmFwU2hhcGVJbmZvICYmICh3cmFwU2hhcGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0
ZSgpLT53cmFwU2hhcGVJbmZvKCkpKQorICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0ID0gbG9naWNh
bFRvcCgpICsgdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5sYXlvdXRPZmZzZXQoKS5oZWlnaHQoKTsK
ICAgICAvLyBNb3ZlIHRvIHRoZSB0b3Agb2YgdGhlIHNoYXBlIGluc2lkZSB0byBiZWdpbiBsYXlv
dXQKLSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiBsb2dpY2FsSGVpZ2h0KCkgPCB3cmFwU2hhcGVJ
bmZvLT5zaGFwZVRvcCgpKQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8t
PnNoYXBlVG9wKCkpOworICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSAr
IGxvZ2ljYWxUb3BPZmZzZXQgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZVRvcCgpKQorICAgICAgICBz
ZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlVG9wKCkgLSBsb2dpY2FsVG9wT2Zm
c2V0KTsKICNlbmRpZgogCiAgICAgd2hpbGUgKCFlbmQuYXRFbmQoKSkgewpAQCAtMTMyMCwxMCAr
MTMyMyw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExp
bmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAgIGJvb2wgaXNOZXdVQkFQ
YXJhZ3JhcGggPSBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLnByZXZpb3VzTGluZUJyb2tlQ2xlYW5s
eSgpOwogICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9
IChtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmlzRW1wdHko
KSkgPyBtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkubGFzdCgpIDogMDsKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0gICAgICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNo
YXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0byBhZGp1c3QKLSAgICAgICAg
Ly8gdGhlIGhlaWdodCBjb29yZGluYXRlCiAgICAgICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAg
ICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVp
Z2h0KCkpOworICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsVG9wT2Zmc2V0KTsKICNlbmRpZgogICAgICAgICBl
bmQgPSBsaW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5l
SW5mbygpLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2Vj
dXRpdmVIeXBoZW5hdGVkTGluZXMpOwogICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5h
dEVuZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBmODRmMGRh
YWZkYzQzYTJhZTIzYTY5YmNiMWY5MGFiMGFiODI4OWJhLi5lNmFhYjBiMWUxMjI3NzU4MzlkYzlk
MDUxMTdlZTcxNjdiYjBhZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
QEAgLTIyNCw3ICsyMjQsOCBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgLy8gV2UgcHVzaCBM
YXlvdXRTdGF0ZSBldmVuIGlmIGxheW91dFN0YXRlIGlzIGRpc2FibGVkIGJlY2F1c2UgaXQgc3Rv
cmVzIGxheW91dERlbHRhIHRvby4KICAgICAgICAgaWYgKCFkb2luZ0Z1bGxSZXBhaW50KCkgfHwg
bV9sYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKSB8fCByZW5kZXJlci0+aGFzQ29sdW1ucygpIHx8
IHJlbmRlcmVyLT5pblJlbmRlckZsb3dUaHJlYWQoKQotICAgICAgICAgICAgfHwgbV9sYXlvdXRT
dGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVu
ZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKSkg
eworICAgICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXIt
PnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYm
IHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1Jl
bmRlckJsb2NrKCkgJiYgdG9SZW5kZXJCbG9jayhyZW5kZXJlciktPndyYXBTaGFwZUluZm8oKSkp
IHsKICAgICAgICAgICAgIG1fbGF5b3V0U3RhdGUgPSBuZXcgKHJlbmRlckFyZW5hKCkpIExheW91
dFN0YXRlKG1fbGF5b3V0U3RhdGUsIHJlbmRlcmVyLCBvZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VI
ZWlnaHRDaGFuZ2VkLCBjb2xJbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggY2JlNzcyODNhNDYyYjliYTU4ZTFhODYyMzZhNGIxOTQyNTM4YTUzZS4uZjcy
ZDk0NTlhYTI3MjZkOWM1ZGY3MjQxM2RjNmIwMjQ4ZTc0YjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDEyLTA5LTA0ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUg
YmxvY2tzIHBlciBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZGluZyB0ZXN0cyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhIHNoYXBlLWlu
c2lkZSBhZmZlY3RzIGJsb2NrIGNoaWxkcmVuJ3MKKyAgICAgICAgaW5saW5lIGNvbnRlbnQuCisK
KyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0
aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWw6IEFkZGVk
LgorCisyMDEyLTA4LTI5ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAg
ICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUg
YmxvY2tzIHBlciBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3QgdGhhdCBjaGlsZCByZW5kZXIgYmxvY2tzIHJlc3BlY3QgYSBwYXJlbnQn
cyBzaGFwZS1pbnNpZGUuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUt
YmxvY2tzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hy
aXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgQXV0b21hdGljIGZlYXR1cmVzIHNo
b3VsZCB3b3JrIGluIHNhbmRib3hlZCBpZnJhbWVzIGlmICJhbGxvdy1zY3JpcHRzIiBmbGFnIGlz
IHNldApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9j
a3MtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTBlNTI2ODI0NDIwYzk0NWJmMDVlOWZjMDc5
NzJmYjQ4MDk0ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAg
ICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIHBvc2l0aW9u
OiByZWxhdGl2ZTsKKyAgICB9CisgICAgI2JvcmRlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgdG9wOiA4cHg7CisgICAgICAgIGxlZnQ6IDhweDsKKyAgICAgICAgd2lk
dGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBib3JkZXI6IDJweCBz
b2xpZCBibHVlOworICAgIH0KKyAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICB9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4K
KyAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAg
ICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyB0
aGUgdG9wIGVkZ2Ugb2YgdGhlIGJsdWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0
IGFuZCByaWdodCBlZGdlcyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAg
ICAgICAgPC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBhcmFncmFwaCBzaG91
bGQgYmUganVzdCBiZWxvdyBwYXJhZ3JhcGggMS4gSXQncyBsZWZ0CisgICAgICAgIGFuZCByaWdo
dCBlZGdlcyBzaG91bGQgYWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0
aXBsZS1ibG9ja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY1YmUyOTgzZDdjMDBmOTNkOTY3OWQ4YTUx
OGE5NjdkMjI0NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKQEAgLTAs
MCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAg
ICNzaGFwZS1pbnNpZGUgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDog
MzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMTBweCwgMTBw
eCwgMTgwcHgsIDI4MHB4KTsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAg
ICAjYm9yZGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDhw
eDsKKyAgICAgICAgbGVmdDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhl
aWdodDogMjgwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgfQorICAg
IHAgeworICAgICAgICBtYXJnaW4tdG9wOiAwOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8
Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJib3Jk
ZXIiPjwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRo
aXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3AgZWRnZSBvZiB0aGUgYmx1
ZQorICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0IGVkZ2VzIHNob3Vs
ZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHBhcmFn
cmFwaCAxLiBJdCdzIGxlZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBhbHNvIGJl
IHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162130</attachid>
            <date>2012-09-04 16:35:44 -0700</date>
            <delta_ts>2012-09-05 10:40:33 -0700</delta_ts>
            <desc>Fixing windows build error</desc>
            <filename>bug-89993-20120904163527.patch</filename>
            <type>text/plain</type>
            <size>12820</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjcyZDU4YTgwZTAzNjNm
ZjBmYjEzZGU2YTQ1ODQ0YTJiYmU0NzY5MS4uYmZjNDZkZWRhZjk0MjZjYzQ4NjhkOTJkODY1ZmMw
YzQyNGIzYjgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA5LTA0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJsb2Nr
cyBtYXkgaW5oZXJpdCBzaGFwZS1pbnNpZGUgZnJvbSB0aGVpciBwYXJlbnQuIFRoaXMgcGF0Y2gg
YWRkcworICAgICAgICBXcmFwU2hhcGVJbmZvIHRvIExheW91dFN0YXRlLCB3aGljaCB0cmFja3Mg
dGhlIGN1cnJlbnQgc2hhcGUtaW5zaWRlIHRoYXQKKyAgICAgICAgaW5saW5lIGNvbnRlbnQgc2hv
dWxkIHJlc3BlY3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUpOiBJbml0aWFsaXplIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0U3RhdGU6OkxheW91dFN0YXRlKTogSW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAg
ICAgIChMYXlvdXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6d3JhcFNo
YXBlSW5mbyk6IEdldHRlciBmb3IgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRo
OjpMaW5lV2lkdGgpOiBVc2UgTGF5b3V0U3RhdGUgdG8gbG9va3VwIFdyYXBTaGFwZUluZm8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0
aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlv
dXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwdXNoTGF5b3V0U3RhdGUp
OiBQdXNoIExheW91dFN0YXRlIGlmIGEgV3JhcFNoYXBlSW5mbworICAgICAgICBpcyBwcmVzZW50
LgorCiAyMDEyLTA5LTA0ICBKb2FubWFyaWUgRGlnZ3MgIDxqZGlnZ3NAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBDcmFzaCBpbiBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5
UGxhdGZvcm1JbmNsdWRlc09iamVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvTGF5b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmNwcAppbmRleCAxZTQ0NDJmMmZlOTU1ZDZhYjZmMmZiYWIxYTQyNmM4ZWM0MzJlYThjLi5i
Y2U4YjJjZTU2ZGI4ZmQ1YjlmZGM2ZmNmMTg3OTJmN2M5YzkyMWIwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQyLDYgKzQyLDkgQEAgTGF5b3V0U3RhdGU6
OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25z
dCBMYXlvdXRTaXoKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQog
I2VuZGlmCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICwgbV93cmFwU2hhcGVJbmZv
KDApCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9uZXh0KTsKIApAQCAtMTA3LDYgKzExMCwxNSBA
QCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJveCog
cmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogICAgIGlmICghbV9jb2x1bW5JbmZvKQogICAgICAg
ICBtX2NvbHVtbkluZm8gPSBtX25leHQtPm1fY29sdW1uSW5mbzsKIAorI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKyAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSkgeworICAgICAg
ICBSZW5kZXJCbG9jayogcmVuZGVyQmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKTsKKyAg
ICAgICAgbV93cmFwU2hhcGVJbmZvID0gcmVuZGVyQmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAg
ICAgICAgaWYgKCFtX3dyYXBTaGFwZUluZm8pCisgICAgICAgICAgICBtX3dyYXBTaGFwZUluZm8g
PSBtX25leHQtPm1fd3JhcFNoYXBlSW5mbzsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fbGF5b3V0
RGVsdGEgPSBtX25leHQtPm1fbGF5b3V0RGVsdGE7CiAgICAgCiAgICAgbV9pc1BhZ2luYXRlZCA9
IG1fcGFnZUxvZ2ljYWxIZWlnaHQgfHwgbV9jb2x1bW5JbmZvIHx8IHJlbmRlcmVyLT5pc1JlbmRl
ckZsb3dUaHJlYWQoKTsKQEAgLTEzMiw2ICsxNDQsOSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUoUmVuZGVyT2JqZWN0KiByb290KQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIo
cm9vdCkKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fd3JhcFNo
YXBlSW5mbygwKQorI2VuZGlmCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290
LT5jb250YWluZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5l
ci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAppbmRleCAxNTJjODA0NjU0NThmZDE1YjI5NzljN2Fj
YzNhZTdkZjJiMDllMDllLi43MzYyZjZiZTliMGMyYTI1YWM0MjVlMmEzOWYwMTJmNGIwOTI4ODE4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaApAQCAtMzgsNiArMzgsOSBA
QCBjbGFzcyBSZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlck9iamVj
dDsKIGNsYXNzIFJlbmRlckZsb3dUaHJlYWQ7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQor
Y2xhc3MgV3JhcFNoYXBlSW5mbzsKKyNlbmRpZgogCiBjbGFzcyBMYXlvdXRTdGF0ZSB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5b3V0U3RhdGUpOwpAQCAtNTMsNiArNTYsOSBAQCBwdWJs
aWM6CiAjaWZuZGVmIE5ERUJVRwogICAgICAgICAsIG1fcmVuZGVyZXIoMCkKICNlbmRpZgorI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNl
bmRpZgogICAgIHsKICAgICB9CiAKQEAgLTg4LDYgKzk0LDkgQEAgcHVibGljOgogCiAgICAgYm9v
bCBuZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVMYXlvdXQoKSBjb25zdCB7IHJl
dHVybiBtX2xpbmVHcmlkIHx8IChtX2lzUGFnaW5hdGVkICYmIG1fcGFnZUxvZ2ljYWxIZWlnaHQp
OyB9CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgV3JhcFNoYXBlSW5mbyogd3Jh
cFNoYXBlSW5mbygpIHsgcmV0dXJuIG1fd3JhcFNoYXBlSW5mbzsgfQorI2VuZGlmCiBwcml2YXRl
OgogICAgIC8vIFRoZSBub3JtYWwgb3BlcmF0b3IgbmV3IGlzIGRpc2FsbG93ZWQuCiAgICAgdm9p
ZCogb3BlcmF0b3IgbmV3KHNpemVfdCkgdGhyb3coKTsKQEAgLTEyOSw2ICsxMzgsOSBAQCBwdWJs
aWM6CiAjaWZuZGVmIE5ERUJVRwogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKICNlbmRp
ZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBXcmFwU2hhcGVJbmZvKiBtX3dyYXBT
aGFwZUluZm87CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXgg
YzBjMzQwNGFkZDI4MTQ5YzZlODA0YzM0ZmJjZTIyNjViMjdjMDY2My4uOWQwYjE4NjcxYjIzNmZj
NDRiZGUyZDY5OTdhNzRiNWE1Yjc3ZWUwMiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGlj
OgogICAgIHsKICAgICAgICAgQVNTRVJUKGJsb2NrKTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCi0gICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBtX2Jsb2NrLT53cmFw
U2hhcGVJbmZvKCk7CisgICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBtX2Js
b2NrLT52aWV3KCktPmxheW91dFN0YXRlKCktPndyYXBTaGFwZUluZm8oKTsKICAgICAgICAgLy8g
RklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJy
ZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQogICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3
cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9T
SEFQRSkgewogICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91
bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVu
ZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxp
bmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbExlZnQgPSBwaXhlbFNuYXBwZWRMb2dp
Y2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dp
Y2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRMb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNh
bEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUluZm8q
IHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAgV3JhcFNoYXBlSW5m
byogd3JhcFNoYXBlSW5mbyA9IHZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+d3JhcFNoYXBlSW5mbygp
OwogICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09
IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFKSB7CiAgICAgICAgIGxvZ2ljYWxMZWZ0
ID0gbWF4PGZsb2F0Pihyb3VuZFRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7CiAgICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9h
dD4oZmxvb3JUb0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCks
IGxvZ2ljYWxSaWdodCk7CkBAIC0xMjk1LDEwICsxMjk1LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUs
IElubGluCiAgICAgTGluZUJyZWFrZXIgbGluZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgTGF5b3V0VW5pdCBsb2dpY2FsVG9wT2Zmc2V0OwogICAgIFdy
YXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAg
aWYgKCF3cmFwU2hhcGVJbmZvICYmICh3cmFwU2hhcGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0
ZSgpLT53cmFwU2hhcGVJbmZvKCkpKQorICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0ID0gbG9naWNh
bFRvcCgpICsgdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5sYXlvdXRPZmZzZXQoKS5oZWlnaHQoKTsK
ICAgICAvLyBNb3ZlIHRvIHRoZSB0b3Agb2YgdGhlIHNoYXBlIGluc2lkZSB0byBiZWdpbiBsYXlv
dXQKLSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiBsb2dpY2FsSGVpZ2h0KCkgPCB3cmFwU2hhcGVJ
bmZvLT5zaGFwZVRvcCgpKQotICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8t
PnNoYXBlVG9wKCkpOworICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSAr
IGxvZ2ljYWxUb3BPZmZzZXQgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZVRvcCgpKQorICAgICAgICBz
ZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlVG9wKCkgLSBsb2dpY2FsVG9wT2Zm
c2V0KTsKICNlbmRpZgogCiAgICAgd2hpbGUgKCFlbmQuYXRFbmQoKSkgewpAQCAtMTMyMCwxMCAr
MTMyMyw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExp
bmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAgIGJvb2wgaXNOZXdVQkFQ
YXJhZ3JhcGggPSBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLnByZXZpb3VzTGluZUJyb2tlQ2xlYW5s
eSgpOwogICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9
IChtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmlzRW1wdHko
KSkgPyBtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkubGFzdCgpIDogMDsKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCi0gICAgICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNo
YXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0byBhZGp1c3QKLSAgICAgICAg
Ly8gdGhlIGhlaWdodCBjb29yZGluYXRlCiAgICAgICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAg
ICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVp
Z2h0KCkpOworICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsVG9wT2Zmc2V0KTsKICNlbmRpZgogICAgICAgICBl
bmQgPSBsaW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5l
SW5mbygpLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2Vj
dXRpdmVIeXBoZW5hdGVkTGluZXMpOwogICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5h
dEVuZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBmODRmMGRh
YWZkYzQzYTJhZTIzYTY5YmNiMWY5MGFiMGFiODI4OWJhLi40YjQyNTM2ZWJjYjBlNDA0YjU2YTJi
YTdlMjQ4ZmRlMDg1MzI5ZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
QEAgLTIyNCw3ICsyMjQsMTEgQEAgcHJpdmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2gg
TGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlvdXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0
b3JlcyBsYXlvdXREZWx0YSB0b28uCiAgICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8
IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8
fCByZW5kZXJlci0+aW5SZW5kZXJGbG93VGhyZWFkKCkKLSAgICAgICAgICAgIHx8IG1fbGF5b3V0
U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkp
IHsKKyAgICAgICAgICAgIHx8IG1fbGF5b3V0U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJlbmRlcmVy
LT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAm
JiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisg
ICAgICAgICAgICB8fCAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2Nr
KHJlbmRlcmVyKS0+d3JhcFNoYXBlSW5mbygpKQorI2VuZGlmCisgICAgICAgICAgICApIHsKICAg
ICAgICAgICAgIG1fbGF5b3V0U3RhdGUgPSBuZXcgKHJlbmRlckFyZW5hKCkpIExheW91dFN0YXRl
KG1fbGF5b3V0U3RhdGUsIHJlbmRlcmVyLCBvZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VIZWlnaHRD
aGFuZ2VkLCBjb2xJbmZvKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggY2JlNzcyODNhNDYyYjliYTU4ZTFhODYyMzZhNGIxOTQyNTM4YTUzZS4uZjcyZDk0NTlh
YTI3MjZkOWM1ZGY3MjQxM2RjNmIwMjQ4ZTc0YjkzNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDEyLTA5LTA0ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBb
Q1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tz
IHBlciBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGluZyB0ZXN0cyB0byBjb3ZlciB0aGUgY2FzZSB3aGVyZSBhIHNoYXBlLWluc2lkZSBh
ZmZlY3RzIGJsb2NrIGNoaWxkcmVuJ3MKKyAgICAgICAgaW5saW5lIGNvbnRlbnQuCisKKyAgICAg
ICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1i
bG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWw6IEFkZGVkLgorCisy
MDEyLTA4LTI5ICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBb
Q1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tz
IHBlciBlbGVtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04OTk5MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3QgdGhhdCBjaGlsZCByZW5kZXIgYmxvY2tzIHJlc3BlY3QgYSBwYXJlbnQncyBzaGFw
ZS1pbnNpZGUuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tz
Lmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3Bo
ZS5kdW1lekBpbnRlbC5jb20+CiAKICAgICAgICAgQXV0b21hdGljIGZlYXR1cmVzIHNob3VsZCB3
b3JrIGluIHNhbmRib3hlZCBpZnJhbWVzIGlmICJhbGxvdy1zY3JpcHRzIiBmbGFnIGlzIHNldApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhw
ZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTBlNTI2ODI0NDIwYzk0NWJmMDVlOWZjMDc5NzJmYjQ4
MDk0ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwKQEAg
LTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgor
ICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICB3aWR0
aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIHBvc2l0aW9uOiByZWxh
dGl2ZTsKKyAgICB9CisgICAgI2JvcmRlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsK
KyAgICAgICAgdG9wOiA4cHg7CisgICAgICAgIGxlZnQ6IDhweDsKKyAgICAgICAgd2lkdGg6IDE4
MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBi
bHVlOworICAgIH0KKyAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICB9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAg
ICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxw
PlBhcmFncmFwaCAxLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyB0aGUgdG9w
IGVkZ2Ugb2YgdGhlIGJsdWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0IGFuZCBy
aWdodCBlZGdlcyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAg
PC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUg
anVzdCBiZWxvdyBwYXJhZ3JhcGggMS4gSXQncyBsZWZ0CisgICAgICAgIGFuZCByaWdodCBlZGdl
cyBzaG91bGQgYWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2Pgor
PC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1i
bG9ja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY1YmUyOTgzZDdjMDBmOTNkOTY3OWQ4YTUxOGE5Njdk
MjI0NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKQEAgLTAsMCArMSwz
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAo
d2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRD
U1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFw
ZS1pbnNpZGUgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7
CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMTBweCwgMTBweCwgMTgw
cHgsIDI4MHB4KTsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjYm9y
ZGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDhweDsKKyAg
ICAgICAgbGVmdDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDog
MjgwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgfQorICAgIHAgewor
ICAgICAgICBtYXJnaW4tdG9wOiAwOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJib3JkZXIiPjwv
ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFy
YWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3AgZWRnZSBvZiB0aGUgYmx1ZQorICAg
ICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBiZSB3
aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHA+UGFy
YWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHBhcmFncmFwaCAx
LiBJdCdzIGxlZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBhbHNvIGJlIHdpdGhp
biB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162279</attachid>
            <date>2012-09-05 10:40:35 -0700</date>
            <delta_ts>2012-09-07 11:33:55 -0700</delta_ts>
            <desc>Removing duplicate changelog entry</desc>
            <filename>bug-89993-20120905104017.patch</filename>
            <type>text/plain</type>
            <size>12306</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NjA3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI2ZDAyNzllMTE3MWFl
ZGM3MDViZmMyNDY3NjBlNzc3N2I4YTcxYS4uNGI5NmNlZjUxZTQzYTk3NjViZTk3MDk4ODMzZDIw
MTEwMzQyMjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA5LTA1ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckJsb2Nr
cyBtYXkgaW5oZXJpdCBzaGFwZS1pbnNpZGUgZnJvbSB0aGVpciBwYXJlbnQuIFRoaXMgcGF0Y2gg
YWRkcworICAgICAgICBXcmFwU2hhcGVJbmZvIHRvIExheW91dFN0YXRlLCB3aGljaCB0cmFja3Mg
dGhlIGN1cnJlbnQgc2hhcGUtaW5zaWRlIHRoYXQKKyAgICAgICAgaW5saW5lIGNvbnRlbnQgc2hv
dWxkIHJlc3BlY3QuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKKworICAgICAgICAqIHJlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0
U3RhdGUpOiBJbml0aWFsaXplIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcv
TGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0U3RhdGU6OkxheW91dFN0YXRlKTogSW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAg
ICAgIChMYXlvdXRTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXRTdGF0ZTo6d3JhcFNo
YXBlSW5mbyk6IEdldHRlciBmb3IgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRo
OjpMaW5lV2lkdGgpOiBVc2UgTGF5b3V0U3RhdGUgdG8gbG9va3VwIFdyYXBTaGFwZUluZm8uCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0
aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlv
dXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpwdXNoTGF5b3V0U3RhdGUp
OiBQdXNoIExheW91dFN0YXRlIGlmIGEgV3JhcFNoYXBlSW5mbworICAgICAgICBpcyBwcmVzZW50
LgorCiAyMDEyLTA5LTA1ICBLYW5naWwgSGFuICA8a2FuZ2lsLmhhbkBzYW1zdW5nLmNvbT4KIAog
ICAgICAgICBbRUZMXSBVc2UgZXhwbGljaXQgY29uc3RydWN0b3IgaW4gUmVuZGVyVGhlbWVFZmwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAppbmRleCAxZTQ0NDJmMmZl
OTU1ZDZhYjZmMmZiYWIxYTQyNmM4ZWM0MzJlYThjLi5iY2U4YjJjZTU2ZGI4ZmQ1YjlmZGM2ZmNm
MTg3OTJmN2M5YzkyMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5
b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAKQEAgLTQyLDYgKzQyLDkgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRl
KiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKICNpZm5kZWYgTkRF
QlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19F
WENMVVNJT05TKQorICAgICwgbV93cmFwU2hhcGVJbmZvKDApCisjZW5kaWYKIHsKICAgICBBU1NF
UlQobV9uZXh0KTsKIApAQCAtMTA3LDYgKzExMCwxNSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3Rh
dGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJveCogcmVuZGVyZXIsIGNvbnN0IExheW91dFNp
egogICAgIGlmICghbV9jb2x1bW5JbmZvKQogICAgICAgICBtX2NvbHVtbkluZm8gPSBtX25leHQt
Pm1fY29sdW1uSW5mbzsKIAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBpZiAocmVu
ZGVyZXItPmlzUmVuZGVyQmxvY2soKSkgeworICAgICAgICBSZW5kZXJCbG9jayogcmVuZGVyQmxv
Y2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKTsKKyAgICAgICAgbV93cmFwU2hhcGVJbmZvID0g
cmVuZGVyQmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAgICAgICAgaWYgKCFtX3dyYXBTaGFwZUlu
Zm8pCisgICAgICAgICAgICBtX3dyYXBTaGFwZUluZm8gPSBtX25leHQtPm1fd3JhcFNoYXBlSW5m
bzsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fbGF5b3V0RGVsdGEgPSBtX25leHQtPm1fbGF5b3V0
RGVsdGE7CiAgICAgCiAgICAgbV9pc1BhZ2luYXRlZCA9IG1fcGFnZUxvZ2ljYWxIZWlnaHQgfHwg
bV9jb2x1bW5JbmZvIHx8IHJlbmRlcmVyLT5pc1JlbmRlckZsb3dUaHJlYWQoKTsKQEAgLTEzMiw2
ICsxNDQsOSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVyT2JqZWN0KiByb290KQog
I2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocm9vdCkKICNlbmRpZgorI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fd3JhcFNoYXBlSW5mbygwKQorI2VuZGlmCiB7CiAg
ICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290LT5jb250YWluZXIoKTsKICAgICBGbG9h
dFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxUb0Fic29sdXRlKEZsb2F0
UG9pbnQoKSwgZmFsc2UsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUu
aAppbmRleCAxNTJjODA0NjU0NThmZDE1YjI5NzljN2FjYzNhZTdkZjJiMDllMDllLi43MzYyZjZi
ZTliMGMyYTI1YWM0MjVlMmEzOWYwMTJmNGIwOTI4ODE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0U3RhdGUuaApAQCAtMzgsNiArMzgsOSBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNs
YXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNzIFJlbmRlckZsb3dUaHJl
YWQ7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorY2xhc3MgV3JhcFNoYXBlSW5mbzsKKyNl
bmRpZgogCiBjbGFzcyBMYXlvdXRTdGF0ZSB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTGF5
b3V0U3RhdGUpOwpAQCAtNTMsNiArNTYsOSBAQCBwdWJsaWM6CiAjaWZuZGVmIE5ERUJVRwogICAg
ICAgICAsIG1fcmVuZGVyZXIoMCkKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
KyAgICAgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogICAgIHsKICAgICB9CiAKQEAg
LTg4LDYgKzk0LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBuZWVkc0Jsb2NrRGlyZWN0aW9uTG9j
YXRpb25TZXRCZWZvcmVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xpbmVHcmlkIHx8IChtX2lz
UGFnaW5hdGVkICYmIG1fcGFnZUxvZ2ljYWxIZWlnaHQpOyB9CiAKKyNpZiBFTkFCTEUoQ1NTX0VY
Q0xVU0lPTlMpCisgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbygpIHsgcmV0dXJuIG1f
d3JhcFNoYXBlSW5mbzsgfQorI2VuZGlmCiBwcml2YXRlOgogICAgIC8vIFRoZSBub3JtYWwgb3Bl
cmF0b3IgbmV3IGlzIGRpc2FsbG93ZWQuCiAgICAgdm9pZCogb3BlcmF0b3IgbmV3KHNpemVfdCkg
dGhyb3coKTsKQEAgLTEyOSw2ICsxMzgsOSBAQCBwdWJsaWM6CiAjaWZuZGVmIE5ERUJVRwogICAg
IFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVT
SU9OUykKKyAgICBXcmFwU2hhcGVJbmZvKiBtX3dyYXBTaGFwZUluZm87CisjZW5kaWYKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggYzBjMzQwNGFkZDI4MTQ5YzZlODA0YzM0
ZmJjZTIyNjViMjdjMDY2My4uOWQwYjE4NjcxYjIzNmZjNDRiZGUyZDY5OTdhNzRiNWE1Yjc3ZWUw
MiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxh
eW91dC5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJU
KGJsb2NrKTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIFdyYXBTaGFwZUlu
Zm8qIHdyYXBTaGFwZUluZm8gPSBtX2Jsb2NrLT53cmFwU2hhcGVJbmZvKCk7CisgICAgICAgIFdy
YXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBtX2Jsb2NrLT52aWV3KCktPmxheW91dFN0YXRl
KCktPndyYXBTaGFwZUluZm8oKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1
cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9u
ZQogICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUo
KSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgewogICAgICAgICAgICAgLy8g
QWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2Vn
bWVudApAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVE
aXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxv
YXQgbG9naWNhbExlZnQgPSBwaXhlbFNuYXBwZWRMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9n
aWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICAgICBmbG9hdCBs
b2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2lj
YWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENT
U19FWENMVVNJT05TKQotICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53
cmFwU2hhcGVJbmZvKCk7CisgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHZpZXco
KS0+bGF5b3V0U3RhdGUoKS0+d3JhcFNoYXBlSW5mbygpOwogICAgIGlmICh3cmFwU2hhcGVJbmZv
ICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBTaGFwZUluZm86OkxJTkVfSU5T
SURFX1NIQVBFKSB7CiAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gbWF4PGZsb2F0Pihyb3VuZFRvSW50
KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7
CiAgICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9hdD4oZmxvb3JUb0ludCh3cmFwU2hhcGVJ
bmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCksIGxvZ2ljYWxSaWdodCk7CkBAIC0xMjk1
LDEwICsxMjk1LDEzIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJh
bmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgTGluZUJyZWFrZXIg
bGluZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgTGF5
b3V0VW5pdCBsb2dpY2FsVG9wT2Zmc2V0OwogICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUlu
Zm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAgaWYgKCF3cmFwU2hhcGVJbmZvICYmICh3
cmFwU2hhcGVJbmZvID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT53cmFwU2hhcGVJbmZvKCkpKQor
ICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0ID0gbG9naWNhbFRvcCgpICsgdmlldygpLT5sYXlvdXRT
dGF0ZSgpLT5sYXlvdXRPZmZzZXQoKS5oZWlnaHQoKTsKICAgICAvLyBNb3ZlIHRvIHRoZSB0b3Ag
b2YgdGhlIHNoYXBlIGluc2lkZSB0byBiZWdpbiBsYXlvdXQKLSAgICBpZiAod3JhcFNoYXBlSW5m
byAmJiBsb2dpY2FsSGVpZ2h0KCkgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZVRvcCgpKQotICAgICAg
ICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlVG9wKCkpOworICAgIGlmICh3
cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSArIGxvZ2ljYWxUb3BPZmZzZXQgPCB3cmFw
U2hhcGVJbmZvLT5zaGFwZVRvcCgpKQorICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFw
ZUluZm8tPnNoYXBlVG9wKCkgLSBsb2dpY2FsVG9wT2Zmc2V0KTsKICNlbmRpZgogCiAgICAgd2hp
bGUgKCFlbmQuYXRFbmQoKSkgewpAQCAtMTMyMCwxMCArMTMyMyw4IEBAIHZvaWQgUmVuZGVyQmxv
Y2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUsIElubGluCiAgICAgICAgIGJvb2wgaXNOZXdVQkFQYXJhZ3JhcGggPSBsYXlvdXRTdGF0ZS5s
aW5lSW5mbygpLnByZXZpb3VzTGluZUJyb2tlQ2xlYW5seSgpOwogICAgICAgICBGbG9hdGluZ09i
amVjdCogbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSA9IChtX2Zsb2F0aW5nT2JqZWN0cyAmJiAh
bV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmlzRW1wdHkoKSkgPyBtX2Zsb2F0aW5nT2JqZWN0cy0+
c2V0KCkubGFzdCgpIDogMDsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIC8v
IEZJWE1FOiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20gYSBwYXJlbnQs
IHdlIHdpbGwgbmVlZCB0byBhZGp1c3QKLSAgICAgICAgLy8gdGhlIGhlaWdodCBjb29yZGluYXRl
CiAgICAgICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+
Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAgICAgd3Jh
cFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkgKyBsb2dp
Y2FsVG9wT2Zmc2V0KTsKICNlbmRpZgogICAgICAgICBlbmQgPSBsaW5lQnJlYWtlci5uZXh0TGlu
ZUJyZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLCByZW5kZXJUZXh0SW5mbywg
bGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpOwog
ICAgICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCBmODRmMGRhYWZkYzQzYTJhZTIzYTY5YmNiMWY5MGFi
MGFiODI4OWJhLi40YjQyNTM2ZWJjYjBlNDA0YjU2YTJiYTdlMjQ4ZmRlMDg1MzI5ZTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIyNCw3ICsyMjQsMTEgQEAgcHJp
dmF0ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlv
dXRTdGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAg
ICAgICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5h
dGVkKCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+aW5SZW5kZXJGbG93
VGhyZWFkKCkKLSAgICAgICAgICAgIHx8IG1fbGF5b3V0U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJl
bmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdy
aWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkpIHsKKyAgICAgICAgICAgIHx8IG1fbGF5
b3V0U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9
IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3co
KSkKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICAgICB8fCAocmVuZGVyZXIt
PmlzUmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+d3JhcFNoYXBlSW5m
bygpKQorI2VuZGlmCisgICAgICAgICAgICApIHsKICAgICAgICAgICAgIG1fbGF5b3V0U3RhdGUg
PSBuZXcgKHJlbmRlckFyZW5hKCkpIExheW91dFN0YXRlKG1fbGF5b3V0U3RhdGUsIHJlbmRlcmVy
LCBvZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VIZWlnaHRDaGFuZ2VkLCBjb2xJbmZvKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNThlMmQyOTgzNjIwOWY5ODcx
MmFhODMzMzgwZjY5NTNlMGZhYTQ5My4uZGQxOGYzMDNlNmNmMGY4M2FmZTczNjRjMzk0MTA2Yzlk
MDk0NjllNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTA1ICBCZWFyIFRyYXZpcyAg
PGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBj
c3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0ZXN0cyB0byBjb3Zl
ciB0aGUgY2FzZSB3aGVyZSBhIHNoYXBlLWluc2lkZSBhZmZlY3RzIGJsb2NrIGNoaWxkcmVuJ3MK
KyAgICAgICAgaW5saW5lIGNvbnRlbnQuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
bXVsdGlwbGUtYmxvY2tzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTA1ICBWaW5jZW50IFNjaGVp
YiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgd2Via2l0UG9pbnRlckxvY2tFbGVt
ZW50IHJldHVybnMgbnVsbCB3aGVuIHBvaW50ZXIgbG9jayByZXF1ZXN0IGlzIHBlbmRpbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1leHBl
Y3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5MGU1MjY4MjQ0MjBjOTQ1YmYwNWU5ZmMwNzk3MmZiNDgw
OTRkMGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbApAQCAt
MCwwICsxLDM1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+Cisg
ICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHBhZGRpbmc6IDEwcHg7CisgICAgICAgIHdpZHRo
OiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIH0KKyAgICAjYm9yZGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICB0b3A6IDhweDsKKyAgICAgICAgbGVmdDogOHB4OworICAgICAgICB3aWR0aDogMTgw
cHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJs
dWU7CisgICAgfQorICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAwOworICAgIH0KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAg
ICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+
UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3Ag
ZWRnZSBvZiB0aGUgYmx1ZQorICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJp
Z2h0IGVkZ2VzIHNob3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBq
dXN0IGJlbG93IHBhcmFncmFwaCAxLiBJdCdzIGxlZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2Vz
IHNob3VsZCBhbHNvIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMv
c2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJs
b2Nrcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjNiZjViZTI5ODNkN2MwMGY5M2Q5Njc5ZDhhNTE4YTk2N2Qy
MjQ0MDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbApAQCAtMCwwICsxLDM5
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENT
U0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI3NoYXBl
LWluc2lkZSB7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsK
KyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAxODBw
eCwgMjgwcHgpOworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorICAgICNib3Jk
ZXIgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogOHB4OworICAg
ICAgICBsZWZ0OiA4cHg7CisgICAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAy
ODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICB9CisgICAgcCB7Cisg
ICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxkaXYgaWQ9ImJvcmRlciI+PC9k
aXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD5QYXJhZ3JhcGggMS4gVGhpcyBwYXJh
Z3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgdGhlIHRvcCBlZGdlIG9mIHRoZSBibHVlCisgICAg
ICAgICAgICByZWN0YW5nbGUuIEl0J3MgbGVmdCBhbmQgcmlnaHQgZWRnZXMgc2hvdWxkIGJlIHdp
dGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwvZGl2PgorICAgICAgICA8cD5QYXJh
Z3JhcGggMi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgcGFyYWdyYXBoIDEu
IEl0J3MgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMgc2hvdWxkIGFsc28gYmUgd2l0aGlu
IHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162833</attachid>
            <date>2012-09-07 11:33:57 -0700</date>
            <delta_ts>2012-09-07 17:40:45 -0700</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-89993-20120907113337.patch</filename>
            <type>text/plain</type>
            <size>12526</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGJlMzFmNTZjNTE5MDE3
YzAxNDg1NmZhZWEyZmQ1N2Y1OTI2YjY1OC4uY2UwYjI0YTVjZWUwMmZlN2EyNjU5ZmIxZDkxMjFk
ODAzYTQ4NDg5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTA1ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbWlsYXIgdG8g
bXVsdGktY29sdW1uIGxheW91dCwgYSBwYXJlbnQgUmVuZGVyQmxvY2sncyBXcmFwU2hhcGVJbmZv
IG1heSBhZmZlY3QKKyAgICAgICAgdGhlIGlubGluZSBjb250ZW50IG9mIGl0cyBjaGlsZHJlbi4g
VGhpcyBwYXRjaCBmb2xsb3dzIHRoZSBleGFtcGxlIG9mIENvbHVtbkluZm8KKyAgICAgICAgYW5k
IGFkZHMgV3JhcFNoYXBlSW5mbyB0byBMYXlvdXRTdGF0ZSwgd2hpY2ggdHJhY2tzIHRoZSBjdXJy
ZW50IHNoYXBlLWluc2lkZSB0aGF0CisgICAgICAgIGlubGluZSBjb250ZW50IHNob3VsZCByZXNw
ZWN0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTog
SW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0
YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRl
OjpMYXlvdXRTdGF0ZSk6IEluaXRpYWxpemUgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAoTGF5
b3V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OndyYXBTaGFwZUluZm8p
OiBHZXR0ZXIgZm9yIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdp
ZHRoKTogVXNlIExheW91dFN0YXRlIHRvIGxvb2t1cCBXcmFwU2hhcGVJbmZvLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JM
aW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0Fu
ZEZsb2F0c0luUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91dFN0YXRlKTogUHVzaCBM
YXlvdXRTdGF0ZSBpZiBhIFdyYXBTaGFwZUluZm8KKyAgICAgICAgaXMgcHJlc2VudC4KKwogMjAx
Mi0wOS0wNyAgTGlhbmdodWkgQ2hlbiAgPGxpYWNoZW5AcmltLmNvbT4KIAogICAgICAgICBbQmxh
Y2tCZXJyeV0gd2hlbiBvbmUgb2YgbXVsdGlwbGUgdGFicyB1c2VzIGF1dGhlbnRpY2F0aW9uLCB1
c2VyIGNhbiBnZXQgdGhlIGF1dGggZGlhbG9nIHdoaWxlIHRoZSBvdGhlciB0YWIgaGFzIGZvY3Vz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMWU0NDQyZjJm
ZTk1NWQ2YWI2ZjJmYmFiMWE0MjZjOGVjNDMyZWE4Yy4uYmNlOGIyY2U1NmRiOGZkNWI5ZmRjNmZj
ZjE4NzkyZjdjOWM5MjFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xh
eW91dFN0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUu
Y3BwCkBAIC00Miw2ICs0Miw5IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0
ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWZuZGVmIE5E
RUJVRwogICAgICwgbV9yZW5kZXJlcihyZW5kZXJlcikKICNlbmRpZgorI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKKyAgICAsIG1fd3JhcFNoYXBlSW5mbygwKQorI2VuZGlmCiB7CiAgICAgQVNT
RVJUKG1fbmV4dCk7CiAKQEAgLTEwNyw2ICsxMTAsMTUgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0
YXRlKExheW91dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRT
aXoKICAgICBpZiAoIW1fY29sdW1uSW5mbykKICAgICAgICAgbV9jb2x1bW5JbmZvID0gbV9uZXh0
LT5tX2NvbHVtbkluZm87CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgaWYgKHJl
bmRlcmVyLT5pc1JlbmRlckJsb2NrKCkpIHsKKyAgICAgICAgUmVuZGVyQmxvY2sqIHJlbmRlckJs
b2NrID0gdG9SZW5kZXJCbG9jayhyZW5kZXJlcik7CisgICAgICAgIG1fd3JhcFNoYXBlSW5mbyA9
IHJlbmRlckJsb2NrLT53cmFwU2hhcGVJbmZvKCk7CisgICAgICAgIGlmICghbV93cmFwU2hhcGVJ
bmZvKQorICAgICAgICAgICAgbV93cmFwU2hhcGVJbmZvID0gbV9uZXh0LT5tX3dyYXBTaGFwZUlu
Zm87CisgICAgfQorI2VuZGlmCisKICAgICBtX2xheW91dERlbHRhID0gbV9uZXh0LT5tX2xheW91
dERlbHRhOwogICAgIAogICAgIG1faXNQYWdpbmF0ZWQgPSBtX3BhZ2VMb2dpY2FsSGVpZ2h0IHx8
IG1fY29sdW1uSW5mbyB8fCByZW5kZXJlci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7CkBAIC0xMzIs
NiArMTQ0LDkgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkK
ICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJvb3QpCiAjZW5kaWYKKyNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewog
ICAgIFJlbmRlck9iamVjdCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CiAgICAgRmxv
YXRQb2ludCBhYnNDb250ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9h
dFBvaW50KCksIGZhbHNlLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmgKaW5kZXggMTUyYzgwNDY1NDU4ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4uNzM2MmY2
YmU5YjBjMmEyNWFjNDI1ZTJhMzlmMDEyZjRiMDkyODgxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0xheW91dFN0YXRlLmgKQEAgLTM4LDYgKzM4LDkgQEAgY2xhc3MgUmVuZGVyQmxvY2s7CiBj
bGFzcyBSZW5kZXJCb3g7CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhy
ZWFkOworI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKK2NsYXNzIFdyYXBTaGFwZUluZm87Cisj
ZW5kaWYKIAogY2xhc3MgTGF5b3V0U3RhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExh
eW91dFN0YXRlKTsKQEAgLTUzLDYgKzU2LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAg
ICAgICAgLCBtX3JlbmRlcmVyKDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMp
CisgICAgICAgICwgbV93cmFwU2hhcGVJbmZvKDApCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBA
IC04OCw2ICs5NCw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxv
Y2F0aW9uU2V0QmVmb3JlTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9saW5lR3JpZCB8fCAobV9p
c1BhZ2luYXRlZCAmJiBtX3BhZ2VMb2dpY2FsSGVpZ2h0KTsgfQogCisjaWYgRU5BQkxFKENTU19F
WENMVVNJT05TKQorICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8oKSB7IHJldHVybiBt
X3dyYXBTaGFwZUluZm87IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICAvLyBUaGUgbm9ybWFsIG9w
ZXJhdG9yIG5ldyBpcyBkaXNhbGxvd2VkLgogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3Qp
IHRocm93KCk7CkBAIC0xMjksNiArMTM4LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAg
ICBSZW5kZXJPYmplY3QqIG1fcmVuZGVyZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCisgICAgV3JhcFNoYXBlSW5mbyogbV93cmFwU2hhcGVJbmZvOworI2VuZGlmCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IGMwYzM0MDRhZGQyODE0OWM2ZTgwNGMz
NGZiY2UyMjY1YjI3YzA2NjMuLmNkNzY3NDlhYzU5N2E0MDllYzk1ODhmNWU2N2ZiN2Q3YmYwMWE5
NTkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VS
VChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBXcmFwU2hhcGVJ
bmZvKiB3cmFwU2hhcGVJbmZvID0gbV9ibG9jay0+d3JhcFNoYXBlSW5mbygpOworICAgICAgICBX
cmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbV9ibG9jay0+dmlldygpLT5sYXlvdXRTdGF0
ZSgpLT53cmFwU2hhcGVJbmZvKCk7CiAgICAgICAgIC8vIEZJWE1FOiBCdWcgOTE4Nzg6IEFkZCBz
dXBwb3J0IGZvciBtdWx0aXBsZSBzZWdtZW50cywgY3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBv
bmUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGluZVN0YXRl
KCkgPT0gV3JhcFNoYXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAgICAgIC8v
IEFsbCBpbnRlcmlvciBzaGFwZSBwb3NpdGlvbnMgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIHNl
Z21lbnQKQEAgLTgwNCw3ICs4MDQsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5l
RGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiBsaW5lQm94LAogICAgIGZs
b2F0IGxvZ2ljYWxMZWZ0ID0gcGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxv
Z2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAgICAgZmxvYXQg
bG9naWNhbFJpZ2h0ID0gcGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dp
Y2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwogI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gdGhpcy0+
d3JhcFNoYXBlSW5mbygpOworICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB2aWV3
KCktPmxheW91dFN0YXRlKCktPndyYXBTaGFwZUluZm8oKTsKICAgICBpZiAod3JhcFNoYXBlSW5m
byAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lO
U0lERV9TSEFQRSkgewogICAgICAgICBsb2dpY2FsTGVmdCA9IG1heDxmbG9hdD4ocm91bmRUb0lu
dCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxMZWZ0KSwgbG9naWNhbExlZnQp
OwogICAgICAgICBsb2dpY2FsUmlnaHQgPSBtaW48ZmxvYXQ+KGZsb29yVG9JbnQod3JhcFNoYXBl
SW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmlnaHQpLCBsb2dpY2FsUmlnaHQpOwpAQCAtMTI5
NSwxMCArMTI5NSwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5S
YW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgIExpbmVCcmVha2Vy
IGxpbmVCcmVha2VyKHRoaXMpOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIExh
eW91dFVuaXQgbG9naWNhbFRvcE9mZnNldDsKICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJ
bmZvID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOworICAgIC8vIEZJWE1FOiBJZiBsYXlvdXQgc3Rh
dGUgaXMgZGlzYWJsZWQsIHRoZSBvZmZzZXQgd2lsbCBiZSBpbmNvcnJlY3QKKyAgICBpZiAoIXdy
YXBTaGFwZUluZm8gJiYgKHdyYXBTaGFwZUluZm8gPSB2aWV3KCktPmxheW91dFN0YXRlKCktPndy
YXBTaGFwZUluZm8oKSkpCisgICAgICAgIGxvZ2ljYWxUb3BPZmZzZXQgPSBsb2dpY2FsVG9wKCkg
KyB2aWV3KCktPmxheW91dFN0YXRlKCktPmxheW91dE9mZnNldCgpLmhlaWdodCgpOwogICAgIC8v
IE1vdmUgdG8gdGhlIHRvcCBvZiB0aGUgc2hhcGUgaW5zaWRlIHRvIGJlZ2luIGxheW91dAotICAg
IGlmICh3cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSA8IHdyYXBTaGFwZUluZm8tPnNo
YXBlVG9wKCkpCi0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQod3JhcFNoYXBlSW5mby0+c2hhcGVU
b3AoKSk7CisgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgbG9naWNhbEhlaWdodCgpICsgbG9naWNh
bFRvcE9mZnNldCA8IHdyYXBTaGFwZUluZm8tPnNoYXBlVG9wKCkpCisgICAgICAgIHNldExvZ2lj
YWxIZWlnaHQod3JhcFNoYXBlSW5mby0+c2hhcGVUb3AoKSAtIGxvZ2ljYWxUb3BPZmZzZXQpOwog
I2VuZGlmCiAKICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC0xMzIwLDEwICsxMzI0LDgg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgYm9vbCBpc05ld1VCQVBhcmFncmFw
aCA9IGxheW91dFN0YXRlLmxpbmVJbmZvKCkucHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KCk7CiAg
ICAgICAgIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gKG1fZmxv
YXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgpKSA/IG1f
ZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogI2lmIEVOQUJMRShDU1NfRVhDTFVT
SU9OUykKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogSWYgdGhlIHdyYXAgc2hhcGUgY29t
ZXMgZnJvbSBhIHBhcmVudCwgd2Ugd2lsbCBuZWVkIHRvIGFkanVzdAotICAgICAgICAvLyB0aGUg
aGVpZ2h0IGNvb3JkaW5hdGUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pCi0gICAgICAgICAg
ICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSk7
CisgICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2lj
YWxIZWlnaHQoKSArIGxvZ2ljYWxUb3BPZmZzZXQpOwogI2VuZGlmCiAgICAgICAgIGVuZCA9IGxp
bmVCcmVha2VyLm5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCks
IHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5
cGhlbmF0ZWRMaW5lcyk7CiAgICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDQ4NDhjYTliYjFiMWIx
YTZkOGVhYmYwMzA2OGYxZDU5NmVjY2U4YzkuLjVhMTJkYTUzZDAwYWJjM2Y5MWI5YjhjOTJiYmZk
ZGUxN2I0ZWE3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtMjIy
LDcgKzIyMiwxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgLy8gV2UgcHVzaCBMYXlvdXRT
dGF0ZSBldmVuIGlmIGxheW91dFN0YXRlIGlzIGRpc2FibGVkIGJlY2F1c2UgaXQgc3RvcmVzIGxh
eW91dERlbHRhIHRvby4KICAgICAgICAgaWYgKCFkb2luZ0Z1bGxSZXBhaW50KCkgfHwgbV9sYXlv
dXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKSB8fCByZW5kZXJlci0+aGFzQ29sdW1ucygpIHx8IHJlbmRl
cmVyLT5pblJlbmRlckZsb3dUaHJlYWQoKQotICAgICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+
bGluZUdyaWQoKSB8fCAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5
bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKSkgeworICAg
ICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXItPnN0eWxl
KCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJlbmRl
cmVyLT5pc0Jsb2NrRmxvdygpKQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAgICAg
ICAgIHx8IChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpICYmIHRvUmVuZGVyQmxvY2socmVuZGVy
ZXIpLT53cmFwU2hhcGVJbmZvKCkpCisjZW5kaWYKKyAgICAgICAgICAgICkgewogICAgICAgICAg
ICAgbV9sYXlvdXRTdGF0ZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgTGF5b3V0U3RhdGUobV9sYXlv
dXRTdGF0ZSwgcmVuZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhlaWdodENoYW5nZWQs
IGNvbEluZm8pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
ODA2MGI0YzAwOGI2YmFlNjUwZjI1OTI2ZWFkMzE4N2I5MzFmN2ExLi5iZGJhYjNhNTA0OWZjYjNh
OWY4NWIzMGZkMmI5MWYxM2YxODQyOTUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDkt
MDUgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhj
bHVzaW9uc10gRW5hYmxlIGNzcyBleGNsdXNpb25zIGZvciBtdWx0aXBsZSBibG9ja3MgcGVyIGVs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
OTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
aW5nIHRlc3RzIHRvIGNvdmVyIHRoZSBjYXNlIHdoZXJlIGEgc2hhcGUtaW5zaWRlIGFmZmVjdHMg
YmxvY2sgY2hpbGRyZW4ncworICAgICAgICBpbmxpbmUgY29udGVudC4KKworICAgICAgICAqIGZh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1l
eHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbDogQWRkZWQuCisKIDIwMTItMDkt
MDcgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1d
IFVucmV2aWV3ZWQsIGZpeCBvdmVybGFwcGluZyB0ZXN0IGV4cGVjdGF0aW9uLgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
bXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi45OTBlNTI2ODI0NDIwYzk0NWJmMDVlOWZjMDc5NzJmYjQ4MDk0ZDBlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwz
NSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFw
ZS1pbnNpZGUgeworICAgICAgICBwYWRkaW5nOiAxMHB4OworICAgICAgICB3aWR0aDogMTgwcHg7
CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICB9CisgICAgI2JvcmRlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
dG9wOiA4cHg7CisgICAgICAgIGxlZnQ6IDhweDsKKyAgICAgICAgd2lkdGg6IDE4MHB4OworICAg
ICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAg
IH0KKyAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICB9Cis8L3N0eWxlPgorPC9o
ZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBp
ZD0iYm9yZGVyIj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFw
aCAxLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyB0aGUgdG9wIGVkZ2Ugb2Yg
dGhlIGJsdWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0IGFuZCByaWdodCBlZGdl
cyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxv
dyBwYXJhZ3JhcGggMS4gSXQncyBsZWZ0CisgICAgICAgIGFuZCByaWdodCBlZGdlcyBzaG91bGQg
YWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWlu
c2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYmY1YmUyOTgzZDdjMDBmOTNkOTY3OWQ4YTUxOGE5NjdkMjI0NDA3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNp
b25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUg
eworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAg
IC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMTBweCwgMTBweCwgMTgwcHgsIDI4MHB4
KTsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjYm9yZGVyIHsKKyAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDhweDsKKyAgICAgICAgbGVm
dDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7Cisg
ICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgfQorICAgIHAgeworICAgICAgICBt
YXJnaW4tdG9wOiAwOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2
IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAg
ICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNo
b3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3AgZWRnZSBvZiB0aGUgYmx1ZQorICAgICAgICAgICAg
cmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBiZSB3aXRoaW4gdGhl
IGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHA+UGFyYWdyYXBoIDIu
IFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHBhcmFncmFwaCAxLiBJdCdzIGxl
ZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBhbHNvIGJlIHdpdGhpbiB0aGUgYmx1
ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162919</attachid>
            <date>2012-09-07 17:40:47 -0700</date>
            <delta_ts>2012-09-10 16:17:41 -0700</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-89993-20120907174027.patch</filename>
            <type>text/plain</type>
            <size>13046</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3OTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTA4ZmU4NDM3YTUzZmIw
MzY5NWQyMTUzZGViMmI1ZTJhYTRmMjY2OC4uNTAzYzhlNTYxM2U5MmEyZTQxZGRmZDJlMzhhMTEz
MjQyNmRjNGMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTA1ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbWlsYXIgdG8g
bXVsdGktY29sdW1uIGxheW91dCwgYSBwYXJlbnQgUmVuZGVyQmxvY2sncyBXcmFwU2hhcGVJbmZv
IG1heSBhZmZlY3QKKyAgICAgICAgdGhlIGlubGluZSBjb250ZW50IG9mIGl0cyBjaGlsZHJlbi4g
VGhpcyBwYXRjaCBmb2xsb3dzIHRoZSBleGFtcGxlIG9mIENvbHVtbkluZm8KKyAgICAgICAgYW5k
IGFkZHMgV3JhcFNoYXBlSW5mbyB0byBMYXlvdXRTdGF0ZSwgd2hpY2ggdHJhY2tzIHRoZSBjdXJy
ZW50IHNoYXBlLWluc2lkZSB0aGF0CisgICAgICAgIGlubGluZSBjb250ZW50IHNob3VsZCByZXNw
ZWN0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTog
SW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0
YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRl
OjpMYXlvdXRTdGF0ZSk6IEluaXRpYWxpemUgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAoTGF5
b3V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OndyYXBTaGFwZUluZm8p
OiBHZXR0ZXIgZm9yIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdp
ZHRoKTogVXNlIExheW91dFN0YXRlIHRvIGxvb2t1cCBXcmFwU2hhcGVJbmZvLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JM
aW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0Fu
ZEZsb2F0c0luUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91dFN0YXRlKTogUHVzaCBM
YXlvdXRTdGF0ZSBpZiBhIFdyYXBTaGFwZUluZm8KKyAgICAgICAgaXMgcHJlc2VudC4KKwogMjAx
Mi0wOS0wNyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CiAKICAg
ICAgICAgRml4IGJ1aWxkIG9mIEdyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcCB3aXRo
IE1TVkMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDFlNDQ0
MmYyZmU5NTVkNmFiNmYyZmJhYjFhNDI2YzhlYzQzMmVhOGMuLmJjZThiMmNlNTZkYjhmZDViOWZk
YzZmY2YxODc5MmY3YzljOTIxYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmNwcApAQCAtNDIsNiArNDIsOSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0
U3RhdGUqIHByZXYsIFJlbmRlckJveCogcmVuZGVyZXIsIGNvbnN0IExheW91dFNpegogI2lmbmRl
ZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocmVuZGVyZXIpCiAjZW5kaWYKKyNpZiBFTkFCTEUo
Q1NTX0VYQ0xVU0lPTlMpCisgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewogICAg
IEFTU0VSVChtX25leHQpOwogCkBAIC0xMDcsNiArMTEwLDE1IEBAIExheW91dFN0YXRlOjpMYXlv
dXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5
b3V0U2l6CiAgICAgaWYgKCFtX2NvbHVtbkluZm8pCiAgICAgICAgIG1fY29sdW1uSW5mbyA9IG1f
bmV4dC0+bV9jb2x1bW5JbmZvOwogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIGlm
IChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpKSB7CisgICAgICAgIFJlbmRlckJsb2NrKiByZW5k
ZXJCbG9jayA9IHRvUmVuZGVyQmxvY2socmVuZGVyZXIpOworICAgICAgICBtX3dyYXBTaGFwZUlu
Zm8gPSByZW5kZXJCbG9jay0+d3JhcFNoYXBlSW5mbygpOworICAgICAgICBpZiAoIW1fd3JhcFNo
YXBlSW5mbykKKyAgICAgICAgICAgIG1fd3JhcFNoYXBlSW5mbyA9IG1fbmV4dC0+bV93cmFwU2hh
cGVJbmZvOworICAgIH0KKyNlbmRpZgorCiAgICAgbV9sYXlvdXREZWx0YSA9IG1fbmV4dC0+bV9s
YXlvdXREZWx0YTsKICAgICAKICAgICBtX2lzUGFnaW5hdGVkID0gbV9wYWdlTG9naWNhbEhlaWdo
dCB8fCBtX2NvbHVtbkluZm8gfHwgcmVuZGVyZXItPmlzUmVuZGVyRmxvd1RocmVhZCgpOwpAQCAt
MTMyLDYgKzE0NCw5IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShSZW5kZXJPYmplY3QqIHJv
b3QpCiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9yZW5kZXJlcihyb290KQogI2VuZGlmCisjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICwgbV93cmFwU2hhcGVJbmZvKDApCisjZW5kaWYK
IHsKICAgICBSZW5kZXJPYmplY3QqIGNvbnRhaW5lciA9IHJvb3QtPmNvbnRhaW5lcigpOwogICAg
IEZsb2F0UG9pbnQgYWJzQ29udGVudFBvaW50ID0gY29udGFpbmVyLT5sb2NhbFRvQWJzb2x1dGUo
RmxvYXRQb2ludCgpLCBmYWxzZSwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGF5b3V0U3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRT
dGF0ZS5oCmluZGV4IDE1MmM4MDQ2NTQ1OGZkMTViMjk3OWM3YWNjM2FlN2RmMmIwOWUwOWUuLmE0
MWEyMjY3Nzk1NTY5ZGRjN2FkNDViNDBmZGI2NDMyMDg4NGNiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9MYXlvdXRTdGF0ZS5oCkBAIC0zOCw2ICszOCw5IEBAIGNsYXNzIFJlbmRlckJsb2Nr
OwogY2xhc3MgUmVuZGVyQm94OwogY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyRmxv
d1RocmVhZDsKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCitjbGFzcyBXcmFwU2hhcGVJbmZv
OworI2VuZGlmCiAKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShMYXlvdXRTdGF0ZSk7CkBAIC01Myw2ICs1Niw5IEBAIHB1YmxpYzoKICNpZm5kZWYgTkRFQlVH
CiAgICAgICAgICwgbV9yZW5kZXJlcigwKQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQorICAgICAgICAsIG1fd3JhcFNoYXBlSW5mbygwKQorI2VuZGlmCiAgICAgewogICAgIH0K
IApAQCAtODgsNiArOTQsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIG5lZWRzQmxvY2tEaXJlY3Rp
b25Mb2NhdGlvblNldEJlZm9yZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1fbGluZUdyaWQgfHwg
KG1faXNQYWdpbmF0ZWQgJiYgbV9wYWdlTG9naWNhbEhlaWdodCk7IH0KIAorI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKKyAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvKCkgY29uc3Qg
eyByZXR1cm4gbV93cmFwU2hhcGVJbmZvOyB9CisjZW5kaWYKIHByaXZhdGU6CiAgICAgLy8gVGhl
IG5vcm1hbCBvcGVyYXRvciBuZXcgaXMgZGlzYWxsb3dlZC4KICAgICB2b2lkKiBvcGVyYXRvciBu
ZXcoc2l6ZV90KSB0aHJvdygpOwpAQCAtMTI5LDYgKzEzOCw5IEBAIHB1YmxpYzoKICNpZm5kZWYg
TkRFQlVHCiAgICAgUmVuZGVyT2JqZWN0KiBtX3JlbmRlcmVyOwogI2VuZGlmCisjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQorICAgIFdyYXBTaGFwZUluZm8qIG1fd3JhcFNoYXBlSW5mbzsKKyNl
bmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBjMGMzNDA0YWRkMjgx
NDljNmU4MDRjMzRmYmNlMjI2NWIyN2MwNjYzLi5mOWIyNjBhYjY1ZTQ3MTRiY2IwZjhjNzliMTQ3
Y2E3MTViNDUxNDgxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcApAQCAtNjMsNiArNjMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogLy8gV2UgZG9uJ3QgbGV0IG91ciBsaW5lIGJveCB0cmVlIGZvciBhIHNpbmdsZSBsaW5lIGdl
dCBhbnkgZGVlcGVyIHRoYW4gdGhpcy4KIGNvbnN0IHVuc2lnbmVkIGNNYXhMaW5lRGVwdGggPSAy
MDA7CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCitzdGF0aWMgaW5saW5lIFdyYXBTaGFw
ZUluZm8qIGxheW91dFdyYXBTaGFwZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQorewor
ICAgIHJldHVybiBibG9jay0+dmlldygpLT5sYXlvdXRTdGF0ZSgpLT53cmFwU2hhcGVJbmZvKCk7
Cit9CisjZW5kaWYKKwogY2xhc3MgTGluZVdpZHRoIHsKIHB1YmxpYzoKICAgICBMaW5lV2lkdGgo
UmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW5lKQpAQCAtODAsNyArODcsNyBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoYmxvY2spOwogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLSAgICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IG1fYmxvY2st
PndyYXBTaGFwZUluZm8oKTsKKyAgICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9
IGxheW91dFdyYXBTaGFwZUluZm8obV9ibG9jayk7CiAgICAgICAgIC8vIEZJWE1FOiBCdWcgOTE4
Nzg6IEFkZCBzdXBwb3J0IGZvciBtdWx0aXBsZSBzZWdtZW50cywgY3VycmVudGx5IHdlIG9ubHkg
c3VwcG9ydCBvbmUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+
bGluZVN0YXRlKCkgPT0gV3JhcFNoYXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAg
ICAgICAgIC8vIEFsbCBpbnRlcmlvciBzaGFwZSBwb3NpdGlvbnMgc2hvdWxkIGhhdmUgYXQgbGVh
c3Qgb25lIHNlZ21lbnQKQEAgLTgwNCw3ICs4MTEsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21w
dXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiBsaW5lQm94
LAogICAgIGZsb2F0IGxvZ2ljYWxMZWZ0ID0gcGl4ZWxTbmFwcGVkTG9naWNhbExlZnRPZmZzZXRG
b3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAg
ICAgZmxvYXQgbG9naWNhbFJpZ2h0ID0gcGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9y
TGluZShsb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwogI2lm
IEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZv
ID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOworICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUlu
Zm8gPSBsYXlvdXRXcmFwU2hhcGVJbmZvKHRoaXMpOwogICAgIGlmICh3cmFwU2hhcGVJbmZvICYm
IHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURF
X1NIQVBFKSB7CiAgICAgICAgIGxvZ2ljYWxMZWZ0ID0gbWF4PGZsb2F0Pihyb3VuZFRvSW50KHdy
YXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbExlZnQpLCBsb2dpY2FsTGVmdCk7CiAg
ICAgICAgIGxvZ2ljYWxSaWdodCA9IG1pbjxmbG9hdD4oZmxvb3JUb0ludCh3cmFwU2hhcGVJbmZv
LT5zZWdtZW50cygpWzBdLmxvZ2ljYWxSaWdodCksIGxvZ2ljYWxSaWdodCk7CkBAIC0xMjk1LDEw
ICsxMzAyLDE5IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdl
KExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgTGluZUJyZWFrZXIgbGlu
ZUJyZWFrZXIodGhpcyk7CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgTGF5b3V0
VW5pdCBhYnNvbHV0ZUxvZ2ljYWxUb3A7CiAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5m
byA9IHRoaXMtPndyYXBTaGFwZUluZm8oKTsKKyAgICBpZiAoIXdyYXBTaGFwZUluZm8gJiYgKHdy
YXBTaGFwZUluZm8gPSBsYXlvdXRXcmFwU2hhcGVJbmZvKHRoaXMpKSkgeworICAgICAgICBhYnNv
bHV0ZUxvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wKCk7CisgICAgICAgIC8vIEZJWE1FOiBJZiBsYXlv
dXQgc3RhdGUgaXMgZGlzYWJsZWQsIHRoZSBvZmZzZXQgd2lsbCBiZSBpbmNvcnJlY3QKKyAgICAg
ICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCisgICAgICAgICAgICBhYnNvbHV0ZUxv
Z2ljYWxUb3AgKz0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5sYXlvdXRPZmZzZXQoKS5oZWlnaHQo
KTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYWJzb2x1dGVMb2dpY2FsVG9wICs9IHZpZXco
KS0+bGF5b3V0U3RhdGUoKS0+bGF5b3V0T2Zmc2V0KCkud2lkdGgoKTsKKyAgICB9CiAgICAgLy8g
TW92ZSB0byB0aGUgdG9wIG9mIHRoZSBzaGFwZSBpbnNpZGUgdG8gYmVnaW4gbGF5b3V0Ci0gICAg
aWYgKHdyYXBTaGFwZUluZm8gJiYgbG9naWNhbEhlaWdodCgpIDwgd3JhcFNoYXBlSW5mby0+c2hh
cGVUb3AoKSkKLSAgICAgICAgc2V0TG9naWNhbEhlaWdodCh3cmFwU2hhcGVJbmZvLT5zaGFwZVRv
cCgpKTsKKyAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiBsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0
ZUxvZ2ljYWxUb3AgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZVRvcCgpKQorICAgICAgICBzZXRMb2dp
Y2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlVG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxUb3Ap
OwogI2VuZGlmCiAKICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC0xMzIwLDEwICsxMzM2
LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxh
eW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgYm9vbCBpc05ld1VCQVBhcmFn
cmFwaCA9IGxheW91dFN0YXRlLmxpbmVJbmZvKCkucHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KCk7
CiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gKG1f
ZmxvYXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgpKSA/
IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogSWYgdGhlIHdyYXAgc2hhcGUg
Y29tZXMgZnJvbSBhIHBhcmVudCwgd2Ugd2lsbCBuZWVkIHRvIGFkanVzdAotICAgICAgICAvLyB0
aGUgaGVpZ2h0IGNvb3JkaW5hdGUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pCi0gICAgICAg
ICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxIZWlnaHQo
KSk7CisgICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxv
Z2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcCk7CiAjZW5kaWYKICAgICAgICAgZW5k
ID0gbGluZUJyZWFrZXIubmV4dExpbmVCcmVhayhyZXNvbHZlciwgbGF5b3V0U3RhdGUubGluZUlu
Zm8oKSwgcmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0
aXZlSHlwaGVuYXRlZExpbmVzKTsKICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCkuYXRF
bmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggNDg0OGNhOWJi
MWIxYjFhNmQ4ZWFiZjAzMDY4ZjFkNTk2ZWNjZThjOS4uNWExMmRhNTNkMDBhYmMzZjkxYjliOGM5
MmJiZmRkZTE3YjRlYTczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBA
IC0yMjIsNyArMjIyLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICAvLyBXZSBwdXNoIExh
eW91dFN0YXRlIGV2ZW4gaWYgbGF5b3V0U3RhdGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBpdCBzdG9y
ZXMgbGF5b3V0RGVsdGEgdG9vLgogICAgICAgICBpZiAoIWRvaW5nRnVsbFJlcGFpbnQoKSB8fCBt
X2xheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpIHx8IHJlbmRlcmVyLT5oYXNDb2x1bW5zKCkgfHwg
cmVuZGVyZXItPmluUmVuZGVyRmxvd1RocmVhZCgpCi0gICAgICAgICAgICB8fCBtX2xheW91dFN0
YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5k
ZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpKSB7
CisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+
c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYg
cmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAg
ICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgdG9SZW5kZXJCbG9jayhy
ZW5kZXJlciktPndyYXBTaGFwZUluZm8oKSkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CiAgICAg
ICAgICAgICBtX2xheW91dFN0YXRlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBMYXlvdXRTdGF0ZSht
X2xheW91dFN0YXRlLCByZW5kZXJlciwgb2Zmc2V0LCBwYWdlSGVpZ2h0LCBwYWdlSGVpZ2h0Q2hh
bmdlZCwgY29sSW5mbyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDEwNDZlZmJiNzk4NzEyNWI3YjMyNDlmYmY5MTI0MGRhNTg5ZWMyNTQuLjU5YjdlZTZkZTgz
ZDlhMDc3OTY4Yjc0ODI0NzY5YzQ5MjU5YTdhMmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAx
Mi0wOS0wNyAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NT
UyBFeGNsdXNpb25zXSBFbmFibGUgY3NzIGV4Y2x1c2lvbnMgZm9yIG11bHRpcGxlIGJsb2NrcyBw
ZXIgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODk5OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRpbmcgdGVzdHMgdG8gY292ZXIgdGhlIGNhc2Ugd2hlcmUgYSBzaGFwZS1pbnNpZGUgYWZm
ZWN0cyBibG9jayBjaGlsZHJlbidzCisgICAgICAgIGlubGluZSBjb250ZW50LgorCisgICAgICAg
ICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxv
Y2tzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wOS0wNyAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlYmFz
ZWxpbmVzIGFmdGVyIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyNzkxNS4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOTkwZTUyNjgyNDQyMGM5NDViZjA1ZTlmYzA3OTcyZmI0ODA5
NGQwZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAg
ICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcGFkZGluZzogMTBweDsKKyAgICAgICAgd2lkdGg6
IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBwb3NpdGlvbjogcmVsYXRp
dmU7CisgICAgfQorICAgICNib3JkZXIgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Cisg
ICAgICAgIHRvcDogOHB4OworICAgICAgICBsZWZ0OiA4cHg7CisgICAgICAgIHdpZHRoOiAxODBw
eDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1
ZTsKKyAgICB9CisgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAg
IDxkaXYgaWQ9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD5Q
YXJhZ3JhcGggMS4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgdGhlIHRvcCBl
ZGdlIG9mIHRoZSBibHVlCisgICAgICAgICAgICByZWN0YW5nbGUuIEl0J3MgbGVmdCBhbmQgcmln
aHQgZWRnZXMgc2hvdWxkIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8cD5QYXJhZ3JhcGggMi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1
c3QgYmVsb3cgcGFyYWdyYXBoIDEuIEl0J3MgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMg
c2hvdWxkIGFsc28gYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxv
Y2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2JmNWJlMjk4M2Q3YzAwZjkzZDk2NzlkOGE1MThhOTY3ZDIy
NDQwNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCkBAIC0wLDAgKzEsMzkg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NT
RXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUt
aW5zaWRlIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4Owor
ICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDEwcHgsIDEwcHgsIDE4MHB4
LCAyODBweCk7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisgICAgI2JvcmRl
ciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA4cHg7CisgICAg
ICAgIGxlZnQ6IDhweDsKKyAgICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4
MHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBwIHsKKyAg
ICAgICAgbWFyZ2luLXRvcDogMDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rp
dj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBhcmFn
cmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGJsdWUKKyAgICAg
ICAgICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0IGFuZCByaWdodCBlZGdlcyBzaG91bGQgYmUgd2l0
aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwPlBhcmFn
cmFwaCAyLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyBwYXJhZ3JhcGggMS4g
SXQncyBsZWZ0CisgICAgICAgIGFuZCByaWdodCBlZGdlcyBzaG91bGQgYWxzbyBiZSB3aXRoaW4g
dGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163241</attachid>
            <date>2012-09-10 16:17:44 -0700</date>
            <delta_ts>2012-09-13 15:40:47 -0700</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-89993-20120910161720.patch</filename>
            <type>text/plain</type>
            <size>13043</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2RjNTUzYjA1MmU0OTVm
YThlOWEyMGEwMDA2MjU0M2M4NTI4ODBhOC4uZmNjOTBhNzVlZTE5MjQ2ODExNTE2YzBiZGNhNjY3
ZTAwYjI2NjI5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEwICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbWlsYXIgdG8g
bXVsdGktY29sdW1uIGxheW91dCwgYSBwYXJlbnQgUmVuZGVyQmxvY2sncyBXcmFwU2hhcGVJbmZv
IG1heSBhZmZlY3QKKyAgICAgICAgdGhlIGlubGluZSBjb250ZW50IG9mIGl0cyBjaGlsZHJlbi4g
VGhpcyBwYXRjaCBmb2xsb3dzIHRoZSBleGFtcGxlIG9mIENvbHVtbkluZm8KKyAgICAgICAgYW5k
IGFkZHMgV3JhcFNoYXBlSW5mbyB0byBMYXlvdXRTdGF0ZSwgd2hpY2ggdHJhY2tzIHRoZSBjdXJy
ZW50IHNoYXBlLWluc2lkZSB0aGF0CisgICAgICAgIGlubGluZSBjb250ZW50IHNob3VsZCByZXNw
ZWN0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTog
SW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0
YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRl
OjpMYXlvdXRTdGF0ZSk6IEluaXRpYWxpemUgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAoTGF5
b3V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OndyYXBTaGFwZUluZm8p
OiBHZXR0ZXIgZm9yIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdp
ZHRoKTogVXNlIExheW91dFN0YXRlIHRvIGxvb2t1cCBXcmFwU2hhcGVJbmZvLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JM
aW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0Fu
ZEZsb2F0c0luUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91dFN0YXRlKTogUHVzaCBM
YXlvdXRTdGF0ZSBpZiBhIFdyYXBTaGFwZUluZm8KKyAgICAgICAgaXMgcHJlc2VudC4KKwogMjAx
Mi0wOS0xMCAgSnVzdGluIE5vdm9zYWQgIDxqdW5vdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
SW1wbGVtZW50IGNhbnZhcyB2NSBsaW5lIGRhc2ggZmVhdHVyZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMWU0NDQyZjJmZTk1NWQ2YWI2ZjJmYmFiMWE0MjZj
OGVjNDMyZWE4Yy4uYmNlOGIyY2U1NmRiOGZkNWI5ZmRjNmZjZjE4NzkyZjdjOWM5MjFiMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC00Miw2ICs0Miw5IEBA
IExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVuZGVyQm94KiBy
ZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9yZW5kZXJl
cihyZW5kZXJlcikKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1f
d3JhcFNoYXBlSW5mbygwKQorI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1fbmV4dCk7CiAKQEAgLTEw
Nyw2ICsxMTAsMTUgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRlKiBwcmV2
LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKICAgICBpZiAoIW1fY29sdW1u
SW5mbykKICAgICAgICAgbV9jb2x1bW5JbmZvID0gbV9uZXh0LT5tX2NvbHVtbkluZm87CiAKKyNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgaWYgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2Nr
KCkpIHsKKyAgICAgICAgUmVuZGVyQmxvY2sqIHJlbmRlckJsb2NrID0gdG9SZW5kZXJCbG9jayhy
ZW5kZXJlcik7CisgICAgICAgIG1fd3JhcFNoYXBlSW5mbyA9IHJlbmRlckJsb2NrLT53cmFwU2hh
cGVJbmZvKCk7CisgICAgICAgIGlmICghbV93cmFwU2hhcGVJbmZvKQorICAgICAgICAgICAgbV93
cmFwU2hhcGVJbmZvID0gbV9uZXh0LT5tX3dyYXBTaGFwZUluZm87CisgICAgfQorI2VuZGlmCisK
ICAgICBtX2xheW91dERlbHRhID0gbV9uZXh0LT5tX2xheW91dERlbHRhOwogICAgIAogICAgIG1f
aXNQYWdpbmF0ZWQgPSBtX3BhZ2VMb2dpY2FsSGVpZ2h0IHx8IG1fY29sdW1uSW5mbyB8fCByZW5k
ZXJlci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7CkBAIC0xMzIsNiArMTQ0LDkgQEAgTGF5b3V0U3Rh
dGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkKICNpZm5kZWYgTkRFQlVHCiAgICAg
LCBtX3JlbmRlcmVyKHJvb3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisg
ICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewogICAgIFJlbmRlck9iamVjdCogY29u
dGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CiAgICAgRmxvYXRQb2ludCBhYnNDb250ZW50UG9p
bnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNlLCB0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMTUyYzgwNDY1NDU4
ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4uYTQxYTIyNjc3OTU1NjlkZGM3YWQ0NWI0MGZk
YjY0MzIwODg0Y2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91
dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAg
LTM4LDYgKzM4LDkgQEAgY2xhc3MgUmVuZGVyQmxvY2s7CiBjbGFzcyBSZW5kZXJCb3g7CiBjbGFz
cyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOworI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKK2NsYXNzIFdyYXBTaGFwZUluZm87CisjZW5kaWYKIAogY2xhc3MgTGF5b3V0
U3RhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExheW91dFN0YXRlKTsKQEAgLTUzLDYg
KzU2LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICAgICAgLCBtX3JlbmRlcmVyKDAp
CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICwgbV93cmFwU2hh
cGVJbmZvKDApCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC04OCw2ICs5NCw5IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0QmVmb3JlTGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbV9saW5lR3JpZCB8fCAobV9pc1BhZ2luYXRlZCAmJiBtX3BhZ2VM
b2dpY2FsSGVpZ2h0KTsgfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIFdyYXBT
aGFwZUluZm8qIHdyYXBTaGFwZUluZm8oKSBjb25zdCB7IHJldHVybiBtX3dyYXBTaGFwZUluZm87
IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICAvLyBUaGUgbm9ybWFsIG9wZXJhdG9yIG5ldyBpcyBk
aXNhbGxvd2VkLgogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QpIHRocm93KCk7CkBAIC0x
MjksNiArMTM4LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICBSZW5kZXJPYmplY3Qq
IG1fcmVuZGVyZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgV3Jh
cFNoYXBlSW5mbyogbV93cmFwU2hhcGVJbmZvOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xp
bmVMYXlvdXQuY3BwCmluZGV4IGZlNjY5NDQzNzRhZGUxZGM5MDc0NjI0ZDRmMzQ5MjkyNzlmM2Yz
NGQuLjlkOTM1NjY4MmI4NGI1NTA1YTlmMDIyZTgxZTUwZGJkYWIzOGFkZTMgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC02
Myw2ICs2MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBXZSBkb24ndCBsZXQgb3VyIGxp
bmUgYm94IHRyZWUgZm9yIGEgc2luZ2xlIGxpbmUgZ2V0IGFueSBkZWVwZXIgdGhhbiB0aGlzLgog
Y29uc3QgdW5zaWduZWQgY01heExpbmVEZXB0aCA9IDIwMDsKIAorI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKK3N0YXRpYyBpbmxpbmUgV3JhcFNoYXBlSW5mbyogbGF5b3V0V3JhcFNoYXBlSW5m
byhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgcmV0dXJuIGJsb2NrLT52aWV3KCkt
PmxheW91dFN0YXRlKCktPndyYXBTaGFwZUluZm8oKTsKK30KKyNlbmRpZgorCiBjbGFzcyBMaW5l
V2lkdGggewogcHVibGljOgogICAgIExpbmVXaWR0aChSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wg
aXNGaXJzdExpbmUpCkBAIC04MCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFT
U0VSVChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBXcmFwU2hh
cGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbV9ibG9jay0+d3JhcFNoYXBlSW5mbygpOworICAgICAg
ICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyhtX2Js
b2NrKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRp
cGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQogICAgICAgICBpZiAo
d3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJ
bmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgewogICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNo
YXBlIHBvc2l0aW9ucyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudApAQCAtODA0LDcg
KzgxMSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlv
bnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbExlZnQg
PSBwaXhlbFNuYXBwZWRMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBm
aXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBw
aXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmly
c3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQot
ICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7
CisgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGxheW91dFdyYXBTaGFwZUluZm8o
dGhpcyk7CiAgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGluZVN0YXRl
KCkgPT0gV3JhcFNoYXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAgbG9naWNh
bExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVsw
XS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0ID0gbWlu
PGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJp
Z2h0KSwgbG9naWNhbFJpZ2h0KTsKQEAgLTEyOTUsMTAgKzEzMDIsMTkgQEAgdm9pZCBSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRT
dGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAogI2lmIEVO
QUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBMYXlvdXRVbml0IGFic29sdXRlTG9naWNhbFRvcDsK
ICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gdGhpcy0+d3JhcFNoYXBlSW5mbygp
OworICAgIGlmICghd3JhcFNoYXBlSW5mbyAmJiAod3JhcFNoYXBlSW5mbyA9IGxheW91dFdyYXBT
aGFwZUluZm8odGhpcykpKSB7CisgICAgICAgIGFic29sdXRlTG9naWNhbFRvcCA9IGxvZ2ljYWxU
b3AoKTsKKyAgICAgICAgLy8gRklYTUU6IElmIGxheW91dCBzdGF0ZSBpcyBkaXNhYmxlZCwgdGhl
IG9mZnNldCB3aWxsIGJlIGluY29ycmVjdAorICAgICAgICBpZiAoaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgICAgIGFic29sdXRlTG9naWNhbFRvcCArPSB2aWV3KCktPmxheW91
dFN0YXRlKCktPmxheW91dE9mZnNldCgpLmhlaWdodCgpOworICAgICAgICBlbHNlCisgICAgICAg
ICAgICBhYnNvbHV0ZUxvZ2ljYWxUb3AgKz0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5sYXlvdXRP
ZmZzZXQoKS53aWR0aCgpOworICAgIH0KICAgICAvLyBNb3ZlIHRvIHRoZSB0b3Agb2YgdGhlIHNo
YXBlIGluc2lkZSB0byBiZWdpbiBsYXlvdXQKLSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiBsb2dp
Y2FsSGVpZ2h0KCkgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSkKLSAgICAgICAg
c2V0TG9naWNhbEhlaWdodCh3cmFwU2hhcGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSk7CisgICAg
aWYgKHdyYXBTaGFwZUluZm8gJiYgbG9naWNhbEhlaWdodCgpICsgYWJzb2x1dGVMb2dpY2FsVG9w
IDwgd3JhcFNoYXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpCisgICAgICAgIHNldExvZ2ljYWxI
ZWlnaHQod3JhcFNoYXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkgLSBhYnNvbHV0ZUxvZ2ljYWxU
b3ApOwogI2VuZGlmCiAKICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC0xMzIwLDEwICsx
MzM2LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGlu
ZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgYm9vbCBpc05ld1VCQVBh
cmFncmFwaCA9IGxheW91dFN0YXRlLmxpbmVJbmZvKCkucHJldmlvdXNMaW5lQnJva2VDbGVhbmx5
KCk7CiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0g
KG1fZmxvYXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgp
KSA/IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogI2lmIEVOQUJMRShDU1Nf
RVhDTFVTSU9OUykKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogSWYgdGhlIHdyYXAgc2hh
cGUgY29tZXMgZnJvbSBhIHBhcmVudCwgd2Ugd2lsbCBuZWVkIHRvIGFkanVzdAotICAgICAgICAv
LyB0aGUgaGVpZ2h0IGNvb3JkaW5hdGUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pCi0gICAg
ICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxIZWln
aHQoKSk7CisgICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5l
KGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcCk7CiAjZW5kaWYKICAgICAgICAg
ZW5kID0gbGluZUJyZWFrZXIubmV4dExpbmVCcmVhayhyZXNvbHZlciwgbGF5b3V0U3RhdGUubGlu
ZUluZm8oKSwgcmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNl
Y3V0aXZlSHlwaGVuYXRlZExpbmVzKTsKICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9uKCku
YXRFbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggN2RlNTRh
NjViMGI4MzRkYTdmODhjMjJjMTA1ZjA0OWZjYWM2OGZhZS4uMDU5MjI1MGNmNjc4MzQyMGIyMzk0
NGI1YTc5MTI2OTBmN2M5YTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
CkBAIC0yMjIsNyArMjIyLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICAvLyBXZSBwdXNo
IExheW91dFN0YXRlIGV2ZW4gaWYgbGF5b3V0U3RhdGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBpdCBz
dG9yZXMgbGF5b3V0RGVsdGEgdG9vLgogICAgICAgICBpZiAoIWRvaW5nRnVsbFJlcGFpbnQoKSB8
fCBtX2xheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpIHx8IHJlbmRlcmVyLT5oYXNDb2x1bW5zKCkg
fHwgcmVuZGVyZXItPmluUmVuZGVyRmxvd1RocmVhZCgpCi0gICAgICAgICAgICB8fCBtX2xheW91
dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBS
ZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkp
KSB7CisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJl
ci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkg
JiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQor
ICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgdG9SZW5kZXJCbG9j
ayhyZW5kZXJlciktPndyYXBTaGFwZUluZm8oKSkKKyNlbmRpZgorICAgICAgICAgICAgKSB7CiAg
ICAgICAgICAgICBtX2xheW91dFN0YXRlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBMYXlvdXRTdGF0
ZShtX2xheW91dFN0YXRlLCByZW5kZXJlciwgb2Zmc2V0LCBwYWdlSGVpZ2h0LCBwYWdlSGVpZ2h0
Q2hhbmdlZCwgY29sSW5mbyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGFiYjk1YTBmN2U5YzE2MzlmNGMwOWI1YzJkOGZhZTE0YzE5ODIxNmUuLmJiYTlkMTE5
NmE1Mjc3ZmQ0MmI2NTM4MTJlOWM1YjI0ZTNiZGE3YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAor
MjAxMi0wOS0xMCAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAg
W0NTUyBFeGNsdXNpb25zXSBFbmFibGUgY3NzIGV4Y2x1c2lvbnMgZm9yIG11bHRpcGxlIGJsb2Nr
cyBwZXIgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODk5OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGRpbmcgdGVzdHMgdG8gY292ZXIgdGhlIGNhc2Ugd2hlcmUgYSBzaGFwZS1pbnNpZGUg
YWZmZWN0cyBibG9jayBjaGlsZHJlbidzCisgICAgICAgIGlubGluZSBjb250ZW50LgorCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUt
YmxvY2tzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sOiBBZGRlZC4KKwog
MjAxMi0wOS0xMCAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBNYXJrIGdyYWRpZW50LXdpdGgtc2NhbGVkLWFuY2VzdG9yLmh0bWwgYXMgZmxha3kKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLW11bHRpcGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVk
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uOTkwZTUyNjgyNDQyMGM5NDViZjA1ZTlmYzA3OTcyZmI0ODA5NGQw
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sCkBAIC0wLDAg
KzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAj
c2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcGFkZGluZzogMTBweDsKKyAgICAgICAgd2lkdGg6IDE4
MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7
CisgICAgfQorICAgICNib3JkZXIgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgIHRvcDogOHB4OworICAgICAgICBsZWZ0OiA4cHg7CisgICAgICAgIHdpZHRoOiAxODBweDsK
KyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsK
KyAgICB9CisgICAgcCB7CisgICAgICAgIG1hcmdpbi10b3A6IDA7CisgICAgfQorPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+CisgICAgICAgIDxk
aXYgaWQ9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD5QYXJh
Z3JhcGggMS4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cgdGhlIHRvcCBlZGdl
IG9mIHRoZSBibHVlCisgICAgICAgICAgICByZWN0YW5nbGUuIEl0J3MgbGVmdCBhbmQgcmlnaHQg
ZWRnZXMgc2hvdWxkIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwvZGl2
PgorICAgICAgICA8cD5QYXJhZ3JhcGggMi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3Qg
YmVsb3cgcGFyYWdyYXBoIDEuIEl0J3MgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMgc2hv
dWxkIGFsc28gYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFw
ZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tz
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uM2JmNWJlMjk4M2Q3YzAwZjkzZDk2NzlkOGE1MThhOTY3ZDIyNDQw
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCkBAIC0wLDAgKzEsMzkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhj
bHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5z
aWRlIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDMwMHB4OworICAg
ICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDEwcHgsIDEwcHgsIDE4MHB4LCAy
ODBweCk7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisgICAgI2JvcmRlciB7
CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA4cHg7CisgICAgICAg
IGxlZnQ6IDhweDsKKyAgICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4
OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBwIHsKKyAgICAg
ICAgbWFyZ2luLXRvcDogMDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBpZD0ic2hhcGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rpdj4K
KyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBhcmFncmFw
aCBzaG91bGQgYmUganVzdCBiZWxvdyB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGJsdWUKKyAgICAgICAg
ICAgIHJlY3RhbmdsZS4gSXQncyBsZWZ0IGFuZCByaWdodCBlZGdlcyBzaG91bGQgYmUgd2l0aGlu
IHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFw
aCAyLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyBwYXJhZ3JhcGggMS4gSXQn
cyBsZWZ0CisgICAgICAgIGFuZCByaWdodCBlZGdlcyBzaG91bGQgYWxzbyBiZSB3aXRoaW4gdGhl
IGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163984</attachid>
            <date>2012-09-13 15:40:49 -0700</date>
            <delta_ts>2012-09-24 16:31:59 -0700</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-89993-20120913154022.patch</filename>
            <type>text/plain</type>
            <size>13123</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDI0ZDI4YTZlMTNkNzlh
YzgwYjU1ZmJkODY1NjVkNWYxZGMxNzMyZS4uMTk2YzI1NmRjMGYxMzA1M2U2MjU3MzA2NWNkMzU0
ZjI2MjlmOTlmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA5LTEzICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbWlsYXIgdG8g
bXVsdGktY29sdW1uIGxheW91dCwgYSBwYXJlbnQgUmVuZGVyQmxvY2sncyBXcmFwU2hhcGVJbmZv
IG1heSBhZmZlY3QKKyAgICAgICAgdGhlIGlubGluZSBjb250ZW50IG9mIGl0cyBjaGlsZHJlbi4g
VGhpcyBwYXRjaCBmb2xsb3dzIHRoZSBleGFtcGxlIG9mIENvbHVtbkluZm8KKyAgICAgICAgYW5k
IGFkZHMgV3JhcFNoYXBlSW5mbyB0byBMYXlvdXRTdGF0ZSwgd2hpY2ggdHJhY2tzIHRoZSBjdXJy
ZW50IHNoYXBlLWluc2lkZSB0aGF0CisgICAgICAgIGlubGluZSBjb250ZW50IHNob3VsZCByZXNw
ZWN0LgorCisgICAgICAgIFRlc3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUt
aW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0
U3RhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTog
SW5pdGlhbGl6ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0
YXRlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRl
OjpMYXlvdXRTdGF0ZSk6IEluaXRpYWxpemUgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAoTGF5
b3V0U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OndyYXBTaGFwZUluZm8p
OiBHZXR0ZXIgZm9yIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdp
ZHRoKTogVXNlIExheW91dFN0YXRlIHRvIGxvb2t1cCBXcmFwU2hhcGVJbmZvLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JM
aW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0Fu
ZEZsb2F0c0luUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91dFN0YXRlKTogUHVzaCBM
YXlvdXRTdGF0ZSBpZiBhIFdyYXBTaGFwZUluZm8KKyAgICAgICAgaXMgcHJlc2VudC4KKwogMjAx
Mi0wOS0xMyAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGRlZCA4IGJpdCBwYXRoIHRvIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2UoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKaW5kZXggMWU0NDQyZjJmZTk1NWQ2YWI2ZjJmYmFi
MWE0MjZjOGVjNDMyZWE4Yy4uYmNlOGIyY2U1NmRiOGZkNWI5ZmRjNmZjZjE4NzkyZjdjOWM5MjFi
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCkBAIC00Miw2ICs0
Miw5IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwgUmVuZGVy
Qm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAjaWZuZGVmIE5ERUJVRwogICAgICwgbV9y
ZW5kZXJlcihyZW5kZXJlcikKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAg
ICAsIG1fd3JhcFNoYXBlSW5mbygwKQorI2VuZGlmCiB7CiAgICAgQVNTRVJUKG1fbmV4dCk7CiAK
QEAgLTEwNyw2ICsxMTAsMTUgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKExheW91dFN0YXRl
KiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRTaXoKICAgICBpZiAoIW1f
Y29sdW1uSW5mbykKICAgICAgICAgbV9jb2x1bW5JbmZvID0gbV9uZXh0LT5tX2NvbHVtbkluZm87
CiAKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgaWYgKHJlbmRlcmVyLT5pc1JlbmRl
ckJsb2NrKCkpIHsKKyAgICAgICAgUmVuZGVyQmxvY2sqIHJlbmRlckJsb2NrID0gdG9SZW5kZXJC
bG9jayhyZW5kZXJlcik7CisgICAgICAgIG1fd3JhcFNoYXBlSW5mbyA9IHJlbmRlckJsb2NrLT53
cmFwU2hhcGVJbmZvKCk7CisgICAgICAgIGlmICghbV93cmFwU2hhcGVJbmZvKQorICAgICAgICAg
ICAgbV93cmFwU2hhcGVJbmZvID0gbV9uZXh0LT5tX3dyYXBTaGFwZUluZm87CisgICAgfQorI2Vu
ZGlmCisKICAgICBtX2xheW91dERlbHRhID0gbV9uZXh0LT5tX2xheW91dERlbHRhOwogICAgIAog
ICAgIG1faXNQYWdpbmF0ZWQgPSBtX3BhZ2VMb2dpY2FsSGVpZ2h0IHx8IG1fY29sdW1uSW5mbyB8
fCByZW5kZXJlci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7CkBAIC0xMzIsNiArMTQ0LDkgQEAgTGF5
b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkKICNpZm5kZWYgTkRFQlVH
CiAgICAgLCBtX3JlbmRlcmVyKHJvb3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCisgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewogICAgIFJlbmRlck9iamVj
dCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CiAgICAgRmxvYXRQb2ludCBhYnNDb250
ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNl
LCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMTUyYzgw
NDY1NDU4ZmQxNWIyOTc5YzdhY2MzYWU3ZGYyYjA5ZTA5ZS4uYTQxYTIyNjc3OTU1NjlkZGM3YWQ0
NWI0MGZkYjY0MzIwODg0Y2JjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0xheW91dFN0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRl
LmgKQEAgLTM4LDYgKzM4LDkgQEAgY2xhc3MgUmVuZGVyQmxvY2s7CiBjbGFzcyBSZW5kZXJCb3g7
CiBjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOworI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKK2NsYXNzIFdyYXBTaGFwZUluZm87CisjZW5kaWYKIAogY2xhc3Mg
TGF5b3V0U3RhdGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExheW91dFN0YXRlKTsKQEAg
LTUzLDYgKzU2LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICAgICAgLCBtX3JlbmRl
cmVyKDApCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICwgbV93
cmFwU2hhcGVJbmZvKDApCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC04OCw2ICs5NCw5IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0QmVmb3Jl
TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbV9saW5lR3JpZCB8fCAobV9pc1BhZ2luYXRlZCAmJiBt
X3BhZ2VMb2dpY2FsSGVpZ2h0KTsgfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAg
IFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8oKSBjb25zdCB7IHJldHVybiBtX3dyYXBTaGFw
ZUluZm87IH0KKyNlbmRpZgogcHJpdmF0ZToKICAgICAvLyBUaGUgbm9ybWFsIG9wZXJhdG9yIG5l
dyBpcyBkaXNhbGxvd2VkLgogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QpIHRocm93KCk7
CkBAIC0xMjksNiArMTM4LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICBSZW5kZXJP
YmplY3QqIG1fcmVuZGVyZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisg
ICAgV3JhcFNoYXBlSW5mbyogbV93cmFwU2hhcGVJbmZvOworI2VuZGlmCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDYzOTRhNmRiNDFkMjUxNzk2NDRiMmExNzI0OTZmY2Jk
YTk5OGU2NTMuLjY4NmRlOWVmM2YzMjYwMjU2ZDBhMDZlZTRiOTU1YTBjM2ViZmU3NWUgMTAwNzU1
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
CkBAIC02Myw2ICs2MywxMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBXZSBkb24ndCBsZXQg
b3VyIGxpbmUgYm94IHRyZWUgZm9yIGEgc2luZ2xlIGxpbmUgZ2V0IGFueSBkZWVwZXIgdGhhbiB0
aGlzLgogY29uc3QgdW5zaWduZWQgY01heExpbmVEZXB0aCA9IDIwMDsKIAorI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKK3N0YXRpYyBpbmxpbmUgV3JhcFNoYXBlSW5mbyogbGF5b3V0V3JhcFNo
YXBlSW5mbyhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCit7CisgICAgcmV0dXJuIGJsb2NrLT52
aWV3KCktPmxheW91dFN0YXRlKCktPndyYXBTaGFwZUluZm8oKTsKK30KKyNlbmRpZgorCiBjbGFz
cyBMaW5lV2lkdGggewogcHVibGljOgogICAgIExpbmVXaWR0aChSZW5kZXJCbG9jayogYmxvY2ss
IGJvb2wgaXNGaXJzdExpbmUpCkBAIC04MCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAg
ICAgIEFTU0VSVChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBX
cmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbV9ibG9jay0+d3JhcFNoYXBlSW5mbygpOwor
ICAgICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5m
byhtX2Jsb2NrKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9y
IG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQogICAgICAg
ICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFw
U2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgewogICAgICAgICAgICAgLy8gQWxsIGludGVy
aW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudApAQCAt
ODA0LDcgKzgxMSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Q
b3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNh
bExlZnQgPSBwaXhlbFNuYXBwZWRMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdo
dCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmln
aHQgPSBwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQo
KSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJ
bmZvKCk7CisgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGxheW91dFdyYXBTaGFw
ZUluZm8odGhpcyk7CiAgICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGlu
ZVN0YXRlKCkgPT0gV3JhcFNoYXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAg
bG9naWNhbExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVu
dHMoKVswXS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0
ID0gbWluPGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9n
aWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0KTsKQEAgLTEyOTUsMTAgKzEzMDIsMTggQEAgdm9pZCBS
ZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSwgSW5saW4KICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAog
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJ
bmZvID0gdGhpcy0+d3JhcFNoYXBlSW5mbygpOwotICAgIC8vIE1vdmUgdG8gdGhlIHRvcCBvZiB0
aGUgc2hhcGUgaW5zaWRlIHRvIGJlZ2luIGxheW91dAotICAgIGlmICh3cmFwU2hhcGVJbmZvICYm
IGxvZ2ljYWxIZWlnaHQoKSA8IHdyYXBTaGFwZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKQotICAg
ICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKTsK
KyAgICBMYXlvdXRVbml0IGFic29sdXRlTG9naWNhbFRvcDsKKyAgICBXcmFwU2hhcGVJbmZvKiB3
cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyh0aGlzKTsKKyAgICBpZiAod3JhcFNo
YXBlSW5mbykgeworICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAhPSB0aGlzLT53cmFwU2hhcGVJ
bmZvKCkpIHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBJZiBsYXlvdXQgc3RhdGUgaXMgZGlzYWJs
ZWQsIHRoZSBvZmZzZXQgd2lsbCBiZSBpbmNvcnJlY3QKKyAgICAgICAgICAgIExheW91dFNpemUg
bGF5b3V0T2Zmc2V0ID0gdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5sYXlvdXRPZmZzZXQoKTsKKyAg
ICAgICAgICAgIGFic29sdXRlTG9naWNhbFRvcCA9IGxvZ2ljYWxUb3AoKSArIChpc0hvcml6b250
YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0T2Zmc2V0LmhlaWdodCgpIDogbGF5b3V0T2Zmc2V0Lndp
ZHRoKCkpOworICAgICAgICB9CisgICAgICAgIC8vIE1vdmUgdG8gdGhlIHRvcCBvZiB0aGUgc2hh
cGUgaW5zaWRlIHRvIGJlZ2luIGxheW91dAorICAgICAgICBpZiAobG9naWNhbEhlaWdodCgpICsg
YWJzb2x1dGVMb2dpY2FsVG9wIDwgd3JhcFNoYXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpCisg
ICAgICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlTG9naWNhbFRv
cCgpIC0gYWJzb2x1dGVMb2dpY2FsVG9wKTsKKyAgICB9CiAjZW5kaWYKIAogICAgIHdoaWxlICgh
ZW5kLmF0RW5kKCkpIHsKQEAgLTEzMjAsMTAgKzEzMzUsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjps
YXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJ
bmxpbgogICAgICAgICBib29sIGlzTmV3VUJBUGFyYWdyYXBoID0gbGF5b3V0U3RhdGUubGluZUlu
Zm8oKS5wcmV2aW91c0xpbmVCcm9rZUNsZWFubHkoKTsKICAgICAgICAgRmxvYXRpbmdPYmplY3Qq
IGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUgPSAobV9mbG9hdGluZ09iamVjdHMgJiYgIW1fZmxv
YXRpbmdPYmplY3RzLT5zZXQoKS5pc0VtcHR5KCkpID8gbV9mbG9hdGluZ09iamVjdHMtPnNldCgp
Lmxhc3QoKSA6IDA7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICAvLyBGSVhN
RTogQnVnIDg5OTkzOiBJZiB0aGUgd3JhcCBzaGFwZSBjb21lcyBmcm9tIGEgcGFyZW50LCB3ZSB3
aWxsIG5lZWQgdG8gYWRqdXN0Ci0gICAgICAgIC8vIHRoZSBoZWlnaHQgY29vcmRpbmF0ZQogICAg
ICAgICBpZiAod3JhcFNoYXBlSW5mbykKLSAgICAgICAgICAgIHdyYXBTaGFwZUluZm8tPmNvbXB1
dGVTZWdtZW50c0ZvckxpbmUobG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgICAgIHdyYXBTaGFw
ZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobG9naWNhbEhlaWdodCgpICsgYWJzb2x1dGVM
b2dpY2FsVG9wKTsKICNlbmRpZgogICAgICAgICBlbmQgPSBsaW5lQnJlYWtlci5uZXh0TGluZUJy
ZWFrKHJlc29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLCByZW5kZXJUZXh0SW5mbywgbGFz
dEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpOwogICAg
ICAgICBpZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuaAppbmRleCA2MjBmMjU2OTM3ZTY2Y2E0NGVhZDkxOGZjYWJmNDA4Y2Yw
NmM1YzBkLi45OTZjOTI1MjA1MTA0MzYzOWMyYzU5OWNlMDRlY2EwNDcyYzU1N2NkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTIyMyw3ICsyMjMsMTEgQEAgcHJpdmF0
ZToKICAgICB7CiAgICAgICAgIC8vIFdlIHB1c2ggTGF5b3V0U3RhdGUgZXZlbiBpZiBsYXlvdXRT
dGF0ZSBpcyBkaXNhYmxlZCBiZWNhdXNlIGl0IHN0b3JlcyBsYXlvdXREZWx0YSB0b28uCiAgICAg
ICAgIGlmICghZG9pbmdGdWxsUmVwYWludCgpIHx8IG1fbGF5b3V0U3RhdGUtPmlzUGFnaW5hdGVk
KCkgfHwgcmVuZGVyZXItPmhhc0NvbHVtbnMoKSB8fCByZW5kZXJlci0+aW5SZW5kZXJGbG93VGhy
ZWFkKCkKLSAgICAgICAgICAgIHx8IG1fbGF5b3V0U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJlbmRl
cmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJlbmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQo
KSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkpIHsKKyAgICAgICAgICAgIHx8IG1fbGF5b3V0
U3RhdGUtPmxpbmVHcmlkKCkgfHwgKHJlbmRlcmVyLT5zdHlsZSgpLT5saW5lR3JpZCgpICE9IFJl
bmRlclN0eWxlOjppbml0aWFsTGluZUdyaWQoKSAmJiByZW5kZXJlci0+aXNCbG9ja0Zsb3coKSkK
KyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICAgICB8fCAocmVuZGVyZXItPmlz
UmVuZGVyQmxvY2soKSAmJiB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKS0+d3JhcFNoYXBlSW5mbygp
KQorI2VuZGlmCisgICAgICAgICAgICApIHsKICAgICAgICAgICAgIG1fbGF5b3V0U3RhdGUgPSBu
ZXcgKHJlbmRlckFyZW5hKCkpIExheW91dFN0YXRlKG1fbGF5b3V0U3RhdGUsIHJlbmRlcmVyLCBv
ZmZzZXQsIHBhZ2VIZWlnaHQsIHBhZ2VIZWlnaHRDaGFuZ2VkLCBjb2xJbmZvKTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTEzZGFiZjU3MmUzMDQ1YWZiNjQz
ZDM1MWUwNjE2NmRhNGU2YmU2Yi4uNzc2ZDVkMzAyNTI5ZjI5ZjU2MzY2Y2YwYjBkYzdjYjk3YTE0
NjdkZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTEzICBCZWFyIFRyYXZpcyAgPGJl
dHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBjc3Mg
ZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50CisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGluZyB0ZXN0cyB0byBjb3ZlciB0
aGUgY2FzZSB3aGVyZSBhIHNoYXBlLWluc2lkZSBhZmZlY3RzIGJsb2NrIGNoaWxkcmVuJ3MKKyAg
ICAgICAgaW5saW5lIGNvbnRlbnQuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUt
aW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVs
dGlwbGUtYmxvY2tzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTEzICBKb2huIE1lbGxvciAgPGpv
aG5tZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVGV4dCBBdXRvc2l6aW5nOiBBZGQgZXhwbGFu
YXRpb25zIHRvIHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1t
dWx0aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTBlNTI2ODI0NDIwYzk0
NWJmMDVlOWZjMDc5NzJmYjQ4MDk0ZDBlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tz
LWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBwYWRkaW5nOiAx
MHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAg
ICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICB9CisgICAgI2JvcmRlciB7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA4cHg7CisgICAgICAgIGxlZnQ6IDhweDsK
KyAgICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAgICBi
b3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBwIHsKKyAgICAgICAgbWFyZ2luLXRv
cDogMDsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic2hh
cGUtaW5zaWRlIj4KKyAgICAgICAgPGRpdiBpZD0iYm9yZGVyIj48L2Rpdj4KKyAgICAgICAgPGRp
dj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUg
anVzdCBiZWxvdyB0aGUgdG9wIGVkZ2Ugb2YgdGhlIGJsdWUKKyAgICAgICAgICAgIHJlY3Rhbmds
ZS4gSXQncyBsZWZ0IGFuZCByaWdodCBlZGdlcyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJl
Y3RhbmdsZS4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBh
cmFncmFwaCBzaG91bGQgYmUganVzdCBiZWxvdyBwYXJhZ3JhcGggMS4gSXQncyBsZWZ0CisgICAg
ICAgIGFuZCByaWdodCBlZGdlcyBzaG91bGQgYWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFu
Z2xlLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxv
Y2tzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYmY1YmUyOTgzZDdjMDBm
OTNkOTY3OWQ4YTUxOGE5NjdkMjI0NDA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tz
Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0Pgor
PHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAg
ICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5n
bGUoMTBweCwgMTBweCwgMTgwcHgsIDI4MHB4KTsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZl
OworICAgIH0KKyAgICAjYm9yZGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICB0b3A6IDhweDsKKyAgICAgICAgbGVmdDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7
CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7
CisgICAgfQorICAgIHAgeworICAgICAgICBtYXJnaW4tdG9wOiAwOworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8
ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFy
YWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3AgZWRn
ZSBvZiB0aGUgYmx1ZQorICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0
IGVkZ2VzIHNob3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rp
dj4KKyAgICAgICAgPHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0
IGJlbG93IHBhcmFncmFwaCAxLiBJdCdzIGxlZnQKKyAgICAgICAgYW5kIHJpZ2h0IGVkZ2VzIHNo
b3VsZCBhbHNvIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165463</attachid>
            <date>2012-09-24 16:32:01 -0700</date>
            <delta_ts>2012-09-24 20:58:40 -0700</delta_ts>
            <desc>Incorporating feedback</desc>
            <filename>bug-89993-20120924163122.patch</filename>
            <type>text/plain</type>
            <size>17343</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBiODBkNDBiMDJjNjFj
ZGFlYTFhZDNjYjdiN2JiNzhmYTVmMzJkMy4uMThiZjBmMDQ5MWFmNWFhMWQ1MDJkYzI4YjI1Y2Y0
MjIzY2NmMjM2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTA5LTI0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IEVuYWJsZSBjc3MgZXhjbHVzaW9ucyBmb3IgbXVsdGlwbGUgYmxvY2tzIHBlciBlbGVtZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTk5MworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNpbWlsYXIgdG8g
bXVsdGktY29sdW1uIGxheW91dCwgYSBwYXJlbnQgUmVuZGVyQmxvY2sncyBXcmFwU2hhcGVJbmZv
IG1heSBhZmZlY3QKKyAgICAgICAgdGhlIGlubGluZSBjb250ZW50IG9mIGl0cyBjaGlsZHJlbi4g
VGhpcyBwYXRjaCBmb2xsb3dzIHRoZSBleGFtcGxlIG9mIENvbHVtbkluZm8KKyAgICAgICAgYW5k
IGFkZHMgV3JhcFNoYXBlSW5mbyB0byBMYXlvdXRTdGF0ZSwgd2hpY2ggdHJhY2tzIHRoZSBjdXJy
ZW50IHNoYXBlLWluc2lkZSB0aGF0CisgICAgICAgIGlubGluZSBjb250ZW50IHNob3VsZCByZXNw
ZWN0LgorCisgICAgICAgIFRlc3RzOiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBl
LWluc2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLXZlcnRpY2FsLmh0
bWwKKworICAgICAgICAqIHJlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUpOiBJbml0aWFsaXplIG1fd3JhcFNoYXBlSW5m
by4KKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuaDoKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogSW5pdGlhbGl6
ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgIChMYXlvdXRTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXRTdGF0ZTo6d3JhcFNoYXBlSW5mbyk6IEdldHRlciBmb3IgbV93cmFwU2hhcGVJ
bmZvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TGluZVdpZHRoOjpMaW5lV2lkdGgpOiBVc2UgTGF5b3V0U3RhdGUgdG8g
bG9va3VwIFdyYXBTaGFwZUluZm8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IERpdHRvLgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJWaWV3OjpwdXNoTGF5b3V0U3RhdGUpOiBQdXNoIExheW91dFN0YXRlIGlmIGEgV3JhcFNoYXBl
SW5mbworICAgICAgICBpcyBwcmVzZW50LgorCiAyMDEyLTA5LTIxICBLZW5uZXRoIFJ1c3NlbGwg
IDxrYnJAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbVjhdIEFycmF5QnVmZmVyIGNvZGUgc2hvdWxk
IG5vdCBwYXNzIGEgbmVnYXRpdmUgbGVuZ3RoIHRvIFNldEluZGV4ZWRQcm9wZXJ0aWVzVG9FeHRl
cm5hbEFycmF5RGF0YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5
b3V0U3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApp
bmRleCAxZTQ0NDJmMmZlOTU1ZDZhYjZmMmZiYWIxYTQyNmM4ZWM0MzJlYThjLi5iY2U4YjJjZTU2
ZGI4ZmQ1YjlmZGM2ZmNmMTg3OTJmN2M5YzkyMWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9MYXlvdXRTdGF0ZS5jcHAKQEAgLTQyLDYgKzQyLDkgQEAgTGF5b3V0U3RhdGU6OkxheW91dFN0
YXRlKExheW91dFN0YXRlKiBwcmV2LCBSZW5kZXJCb3gqIHJlbmRlcmVyLCBjb25zdCBMYXlvdXRT
aXoKICNpZm5kZWYgTkRFQlVHCiAgICAgLCBtX3JlbmRlcmVyKHJlbmRlcmVyKQogI2VuZGlmCisj
aWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgICwgbV93cmFwU2hhcGVJbmZvKDApCisjZW5k
aWYKIHsKICAgICBBU1NFUlQobV9uZXh0KTsKIApAQCAtMTA3LDYgKzExMCwxNSBAQCBMYXlvdXRT
dGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJveCogcmVuZGVyZXIs
IGNvbnN0IExheW91dFNpegogICAgIGlmICghbV9jb2x1bW5JbmZvKQogICAgICAgICBtX2NvbHVt
bkluZm8gPSBtX25leHQtPm1fY29sdW1uSW5mbzsKIAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKyAgICBpZiAocmVuZGVyZXItPmlzUmVuZGVyQmxvY2soKSkgeworICAgICAgICBSZW5kZXJC
bG9jayogcmVuZGVyQmxvY2sgPSB0b1JlbmRlckJsb2NrKHJlbmRlcmVyKTsKKyAgICAgICAgbV93
cmFwU2hhcGVJbmZvID0gcmVuZGVyQmxvY2stPndyYXBTaGFwZUluZm8oKTsKKyAgICAgICAgaWYg
KCFtX3dyYXBTaGFwZUluZm8pCisgICAgICAgICAgICBtX3dyYXBTaGFwZUluZm8gPSBtX25leHQt
Pm1fd3JhcFNoYXBlSW5mbzsKKyAgICB9CisjZW5kaWYKKwogICAgIG1fbGF5b3V0RGVsdGEgPSBt
X25leHQtPm1fbGF5b3V0RGVsdGE7CiAgICAgCiAgICAgbV9pc1BhZ2luYXRlZCA9IG1fcGFnZUxv
Z2ljYWxIZWlnaHQgfHwgbV9jb2x1bW5JbmZvIHx8IHJlbmRlcmVyLT5pc1JlbmRlckZsb3dUaHJl
YWQoKTsKQEAgLTEzMiw2ICsxNDQsOSBAQCBMYXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoUmVuZGVy
T2JqZWN0KiByb290KQogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIocm9vdCkKICNl
bmRpZgorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICAsIG1fd3JhcFNoYXBlSW5mbygw
KQorI2VuZGlmCiB7CiAgICAgUmVuZGVyT2JqZWN0KiBjb250YWluZXIgPSByb290LT5jb250YWlu
ZXIoKTsKICAgICBGbG9hdFBvaW50IGFic0NvbnRlbnRQb2ludCA9IGNvbnRhaW5lci0+bG9jYWxU
b0Fic29sdXRlKEZsb2F0UG9pbnQoKSwgZmFsc2UsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGF5b3V0U3RhdGUuaAppbmRleCAxNTJjODA0NjU0NThmZDE1YjI5NzljN2FjYzNhZTdkZjJi
MDllMDllLi5hNDFhMjI2Nzc5NTU2OWRkYzdhZDQ1YjQwZmRiNjQzMjA4ODRjYmM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuaApAQCAtMzgsNiArMzgsOSBAQCBjbGFzcyBS
ZW5kZXJCbG9jazsKIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlck9iamVjdDsKIGNsYXNz
IFJlbmRlckZsb3dUaHJlYWQ7CisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorY2xhc3MgV3Jh
cFNoYXBlSW5mbzsKKyNlbmRpZgogCiBjbGFzcyBMYXlvdXRTdGF0ZSB7CiAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoTGF5b3V0U3RhdGUpOwpAQCAtNTMsNiArNTYsOSBAQCBwdWJsaWM6CiAjaWZu
ZGVmIE5ERUJVRwogICAgICAgICAsIG1fcmVuZGVyZXIoMCkKICNlbmRpZgorI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKKyAgICAgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogICAg
IHsKICAgICB9CiAKQEAgLTg4LDYgKzk0LDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBuZWVkc0Js
b2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX2xp
bmVHcmlkIHx8IChtX2lzUGFnaW5hdGVkICYmIG1fcGFnZUxvZ2ljYWxIZWlnaHQpOyB9CiAKKyNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5m
bygpIGNvbnN0IHsgcmV0dXJuIG1fd3JhcFNoYXBlSW5mbzsgfQorI2VuZGlmCiBwcml2YXRlOgog
ICAgIC8vIFRoZSBub3JtYWwgb3BlcmF0b3IgbmV3IGlzIGRpc2FsbG93ZWQuCiAgICAgdm9pZCog
b3BlcmF0b3IgbmV3KHNpemVfdCkgdGhyb3coKTsKQEAgLTEyOSw2ICsxMzgsOSBAQCBwdWJsaWM6
CiAjaWZuZGVmIE5ERUJVRwogICAgIFJlbmRlck9iamVjdCogbV9yZW5kZXJlcjsKICNlbmRpZgor
I2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBXcmFwU2hhcGVJbmZvKiBtX3dyYXBTaGFw
ZUluZm87CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5kZXggYmZl
MDNiODA0ZWM3Njk3NDhmMDhhOTkwMTJjODgzNTk4ODkzYzA2ZC4uYjA3MmE1NTkwOTAwNGIyYTk0
Y2M4MjliYzQyMzgyOTQ2NmVkZTk1MSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTYzLDYgKzYzLDEzIEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIC8vIFdlIGRvbid0IGxldCBvdXIgbGluZSBib3ggdHJlZSBmb3IgYSBzaW5n
bGUgbGluZSBnZXQgYW55IGRlZXBlciB0aGFuIHRoaXMuCiBjb25zdCB1bnNpZ25lZCBjTWF4TGlu
ZURlcHRoID0gMjAwOwogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorc3RhdGljIGlubGlu
ZSBXcmFwU2hhcGVJbmZvKiBsYXlvdXRXcmFwU2hhcGVJbmZvKGNvbnN0IFJlbmRlckJsb2NrKiBi
bG9jaykKK3sKKyAgICByZXR1cm4gYmxvY2stPnZpZXcoKS0+bGF5b3V0U3RhdGUoKS0+d3JhcFNo
YXBlSW5mbygpOworfQorI2VuZGlmCisKIGNsYXNzIExpbmVXaWR0aCB7CiBwdWJsaWM6CiAgICAg
TGluZVdpZHRoKFJlbmRlckJsb2NrKiBibG9jaywgYm9vbCBpc0ZpcnN0TGluZSkKQEAgLTgwLDcg
Kzg3LDcgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKGJsb2NrKTsKICNpZiBFTkFC
TEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8g
PSBtX2Jsb2NrLT53cmFwU2hhcGVJbmZvKCk7CisgICAgICAgIFdyYXBTaGFwZUluZm8qIHdyYXBT
aGFwZUluZm8gPSBsYXlvdXRXcmFwU2hhcGVJbmZvKG1fYmxvY2spOwogICAgICAgICAvLyBGSVhN
RTogQnVnIDkxODc4OiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlwbGUgc2VnbWVudHMsIGN1cnJlbnRs
eSB3ZSBvbmx5IHN1cHBvcnQgb25lCiAgICAgICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBT
aGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBF
KSB7CiAgICAgICAgICAgICAvLyBBbGwgaW50ZXJpb3Igc2hhcGUgcG9zaXRpb25zIHNob3VsZCBo
YXZlIGF0IGxlYXN0IG9uZSBzZWdtZW50CkBAIC04MDQsNyArODExLDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJv
eCogbGluZUJveCwKICAgICBmbG9hdCBsb2dpY2FsTGVmdCA9IHBpeGVsU25hcHBlZExvZ2ljYWxM
ZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCksIGZpcnN0TGluZSwgbGluZUxvZ2ljYWxI
ZWlnaHQpOwogICAgIGZsb2F0IGxvZ2ljYWxSaWdodCA9IHBpeGVsU25hcHBlZExvZ2ljYWxSaWdo
dE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVp
Z2h0KTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgV3JhcFNoYXBlSW5mbyogd3Jh
cFNoYXBlSW5mbyA9IHRoaXMtPndyYXBTaGFwZUluZm8oKTsKKyAgICBXcmFwU2hhcGVJbmZvKiB3
cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyh0aGlzKTsKICAgICBpZiAod3JhcFNo
YXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpM
SU5FX0lOU0lERV9TSEFQRSkgewogICAgICAgICBsb2dpY2FsTGVmdCA9IG1heDxmbG9hdD4ocm91
bmRUb0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdLmxvZ2ljYWxMZWZ0KSwgbG9naWNh
bExlZnQpOwogICAgICAgICBsb2dpY2FsUmlnaHQgPSBtaW48ZmxvYXQ+KGZsb29yVG9JbnQod3Jh
cFNoYXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsUmlnaHQpLCBsb2dpY2FsUmlnaHQpOwpA
QCAtMTI5NiwxMCArMTMwMywxOCBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxv
YXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgIExpbmVC
cmVha2VyIGxpbmVCcmVha2VyKHRoaXMpOwogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQot
ICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7
Ci0gICAgLy8gTW92ZSB0byB0aGUgdG9wIG9mIHRoZSBzaGFwZSBpbnNpZGUgdG8gYmVnaW4gbGF5
b3V0Ci0gICAgaWYgKHdyYXBTaGFwZUluZm8gJiYgbG9naWNhbEhlaWdodCgpIDwgd3JhcFNoYXBl
SW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpCi0gICAgICAgIHNldExvZ2ljYWxIZWlnaHQod3JhcFNo
YXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkpOworICAgIExheW91dFVuaXQgYWJzb2x1dGVMb2dp
Y2FsVG9wOworICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBsYXlvdXRXcmFwU2hh
cGVJbmZvKHRoaXMpOworICAgIGlmICh3cmFwU2hhcGVJbmZvKSB7CisgICAgICAgIGlmICh3cmFw
U2hhcGVJbmZvICE9IHRoaXMtPndyYXBTaGFwZUluZm8oKSkgeworICAgICAgICAgICAgLy8gRklY
TUU6IElmIGxheW91dCBzdGF0ZSBpcyBkaXNhYmxlZCwgdGhlIG9mZnNldCB3aWxsIGJlIGluY29y
cmVjdC4KKyAgICAgICAgICAgIExheW91dFNpemUgbGF5b3V0T2Zmc2V0ID0gdmlldygpLT5sYXlv
dXRTdGF0ZSgpLT5sYXlvdXRPZmZzZXQoKTsKKyAgICAgICAgICAgIGFic29sdXRlTG9naWNhbFRv
cCA9IGxvZ2ljYWxUb3AoKSArIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gbGF5b3V0T2Zm
c2V0LmhlaWdodCgpIDogbGF5b3V0T2Zmc2V0LndpZHRoKCkpOworICAgICAgICB9CisgICAgICAg
IC8vIEJlZ2luIGxheW91dCBhdCB0aGUgbG9naWNhbCB0b3Agb2Ygb3VyIHNoYXBlIGluc2lkZS4K
KyAgICAgICAgaWYgKGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcCA8IHdyYXBT
aGFwZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKQorICAgICAgICAgICAgc2V0TG9naWNhbEhlaWdo
dCh3cmFwU2hhcGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSAtIGFic29sdXRlTG9naWNhbFRvcCk7
CisgICAgfQogI2VuZGlmCiAKICAgICB3aGlsZSAoIWVuZC5hdEVuZCgpKSB7CkBAIC0xMzIxLDEw
ICsxMzM2LDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2Uo
TGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgYm9vbCBpc05ld1VC
QVBhcmFncmFwaCA9IGxheW91dFN0YXRlLmxpbmVJbmZvKCkucHJldmlvdXNMaW5lQnJva2VDbGVh
bmx5KCk7CiAgICAgICAgIEZsb2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5l
ID0gKG1fZmxvYXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0
eSgpKSA/IG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogI2lmIEVOQUJMRShD
U1NfRVhDTFVTSU9OUykKLSAgICAgICAgLy8gRklYTUU6IEJ1ZyA4OTk5MzogSWYgdGhlIHdyYXAg
c2hhcGUgY29tZXMgZnJvbSBhIHBhcmVudCwgd2Ugd2lsbCBuZWVkIHRvIGFkanVzdAotICAgICAg
ICAvLyB0aGUgaGVpZ2h0IGNvb3JkaW5hdGUKICAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pCi0g
ICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxI
ZWlnaHQoKSk7CisgICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21wdXRlU2VnbWVudHNGb3JM
aW5lKGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcCk7CiAjZW5kaWYKICAgICAg
ICAgZW5kID0gbGluZUJyZWFrZXIubmV4dExpbmVCcmVhayhyZXNvbHZlciwgbGF5b3V0U3RhdGUu
bGluZUluZm8oKSwgcmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNv
bnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzKTsKICAgICAgICAgaWYgKHJlc29sdmVyLnBvc2l0aW9u
KCkuYXRFbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggNjIw
ZjI1NjkzN2U2NmNhNDRlYWQ5MThmY2FiZjQwOGNmMDZjNWMwZC4uOTk2YzkyNTIwNTEwNDM2Mzlj
MmM1OTljZTA0ZWNhMDQ3MmM1NTdjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5oCkBAIC0yMjMsNyArMjIzLDExIEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICAvLyBXZSBw
dXNoIExheW91dFN0YXRlIGV2ZW4gaWYgbGF5b3V0U3RhdGUgaXMgZGlzYWJsZWQgYmVjYXVzZSBp
dCBzdG9yZXMgbGF5b3V0RGVsdGEgdG9vLgogICAgICAgICBpZiAoIWRvaW5nRnVsbFJlcGFpbnQo
KSB8fCBtX2xheW91dFN0YXRlLT5pc1BhZ2luYXRlZCgpIHx8IHJlbmRlcmVyLT5oYXNDb2x1bW5z
KCkgfHwgcmVuZGVyZXItPmluUmVuZGVyRmxvd1RocmVhZCgpCi0gICAgICAgICAgICB8fCBtX2xh
eW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5kZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAh
PSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlkKCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93
KCkpKSB7CisgICAgICAgICAgICB8fCBtX2xheW91dFN0YXRlLT5saW5lR3JpZCgpIHx8IChyZW5k
ZXJlci0+c3R5bGUoKS0+bGluZUdyaWQoKSAhPSBSZW5kZXJTdHlsZTo6aW5pdGlhbExpbmVHcmlk
KCkgJiYgcmVuZGVyZXItPmlzQmxvY2tGbG93KCkpCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQorICAgICAgICAgICAgfHwgKHJlbmRlcmVyLT5pc1JlbmRlckJsb2NrKCkgJiYgdG9SZW5kZXJC
bG9jayhyZW5kZXJlciktPndyYXBTaGFwZUluZm8oKSkKKyNlbmRpZgorICAgICAgICAgICAgKSB7
CiAgICAgICAgICAgICBtX2xheW91dFN0YXRlID0gbmV3IChyZW5kZXJBcmVuYSgpKSBMYXlvdXRT
dGF0ZShtX2xheW91dFN0YXRlLCByZW5kZXJlciwgb2Zmc2V0LCBwYWdlSGVpZ2h0LCBwYWdlSGVp
Z2h0Q2hhbmdlZCwgY29sSW5mbyk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDMxMTYwZTRlZWQ5NjFjODYzOTU3MjgzZmNhNDkwZWJmOTRmN2I0MTQuLmMwNWY1
OTcxYTAwZDEwNDEwZDVlNTU0ZDNjZmVmZTJkODkyNDAyOWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBA
QAorMjAxMi0wOS0yNCAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAg
ICAgW0NTUyBFeGNsdXNpb25zXSBFbmFibGUgY3NzIGV4Y2x1c2lvbnMgZm9yIG11bHRpcGxlIGJs
b2NrcyBwZXIgZWxlbWVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODk5OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBBZGRpbmcgdGVzdHMgdG8gY292ZXIgdGhlIGNhc2Ugd2hlcmUgYSBzaGFwZS1pbnNp
ZGUgYWZmZWN0cyBibG9jayBjaGlsZHJlbidzCisgICAgICAgIGlubGluZSBjb250ZW50LgorCisg
ICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlw
bGUtYmxvY2tzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy12ZXJ0aWNhbC1leHBl
Y3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtdmVydGljYWwuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUt
YmxvY2tzLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTI0ICBSb2dlciBGb25nICA8cm9nZXJfZm9u
Z0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gTWFyayBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2luYWN0aXZlLWRvY3VtZW50LXdpdGgtZW1wdHktc2VjdXJpdHktb3JpZ2luLmh0bWwgd2hp
bGUgR2VvZmYgR2FyZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1leHBlY3RlZC5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVs
dGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzgyMDQ5NmIwZTRjOTEwNGE1
MzAzNzE3MTQ3NzFjYzdiNTY1MDBhNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgcGFkZGluZzogMTBw
eDsKKyAgICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorICAgICNib3JkZXIgeworICAgICAgICBwb3Np
dGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogOHB4OworICAgICAgICBsZWZ0OiA4cHg7Cisg
ICAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9y
ZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICB9CisgICAgcCB7IG1hcmdpbi10b3A6IDA7IH0KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAg
ICAgICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAg
PHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0
b3AgZWRnZSBvZiB0aGUgYmx1ZQorICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5k
IHJpZ2h0IGVkZ2VzIHNob3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAg
ICA8L2Rpdj4KKyAgICAgICAgPHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBi
ZSBqdXN0IGJlbG93IHBhcmFncmFwaCAxLiBJdHMgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRn
ZXMgc2hvdWxkIGFsc28gYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy12ZXJ0aWNhbC1leHBl
Y3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLXZlcnRpY2FsLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzFlNWFmZTUwOGYwMjZiYjAyMGUzMmMyNzgyZmI3MmNmNzFjM2IxMAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLW11bHRpcGxlLWJsb2Nrcy12ZXJ0aWNhbC1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNDQg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKyAgICAuc2hhcGUt
aW5zaWRlIHsKKyAgICAgICAgd2lkdGg6IDE3MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4Owor
ICAgICAgICBwYWRkaW5nOiAxNXB4IDIwcHggNXB4IDEwcHg7CisgICAgICAgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgICB9CisgICAgLnJsIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2Fs
LXJsOyB9CisgICAgLmxyIHsgLXdlYmtpdC13cml0aW5nLW1vZGU6IHZlcnRpY2FsLWxyOyB9Cisg
ICAgLmJvcmRlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgdG9wOiA4
cHg7CisgICAgICAgIGxlZnQ6IDEzcHg7CisgICAgICAgIHdpZHRoOiAxNzBweDsKKyAgICAgICAg
aGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICB9Cisg
ICAgcCB7IC13ZWJraXQtbWFyZ2luLWJlZm9yZTogMDsgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgY2xhc3M9InNoYXBlLWluc2lkZSBybCI+CisgICAgICAgIDxkaXYgY2xh
c3M9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD5QYXJhZ3Jh
cGggMS4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIHN0YXJ0IGF0IHRoZSB0b3AgcmlnaHQgY29ybmVy
IG9mIHRoZSBibHVlCisgICAgICAgICAgICByZWN0YW5nbGUuIEl0cyB0b3AgYW5kIGJvdHRvbSBl
ZGdlcyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICAgICAgPC9kaXY+
CisgICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBhcmFncmFwaCBzaG91bGQgYmUgdG8gdGhl
IGxlZnQgb2YgcGFyYWdyYXBoIDEuIEl0cyB0b3AKKyAgICAgICAgYW5kIGJvdHRvbSBlZGdlcyBz
aG91bGQgYWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2PgorICAg
IDxkaXYgY2xhc3M9InNoYXBlLWluc2lkZSBsciI+CisgICAgICAgIDxkaXYgY2xhc3M9ImJvcmRl
ciI+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAgICAgICA8cD5QYXJhZ3JhcGggMS4gVGhp
cyBwYXJhZ3JhcGggc2hvdWxkIHN0YXJ0IGF0IHRoZSB0b3AgbGVmdCBjb3JuZXIgb2YgdGhlIGJs
dWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXRzIHRvcCBhbmQgYm90dG9tIGVkZ2VzIHNob3Vs
ZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSB0byB0aGUgcmlnaHQgb2Yg
cGFyYWdyYXBoIDEuIEl0cyB0b3AKKyAgICAgICAgYW5kIGJvdHRvbSBlZGdlcyBzaG91bGQgYWxz
byBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lk
ZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLXZlcnRpY2FsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9j
a3MtdmVydGljYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMDc3NzMwZGE4NDEzZjY4MWIyNTE1ZDhjODFm
NzhkNmFkNzk3ZjA3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLXZlcnRpY2FsLmh0
bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0
eWxlPgorICAgIC5zaGFwZS1pbnNpZGUgeworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAg
IGhlaWdodDogMzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUo
MTBweCwgMTVweCwgMTcwcHgsIDI4MHB4KTsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwor
ICAgIH0KKyAgICAucmwgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7IH0KKyAg
ICAubHIgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0KKyAgICAuYm9yZGVy
IHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDhweDsKKyAgICAg
ICAgbGVmdDogMTNweDsKKyAgICAgICAgd2lkdGg6IDE3MHB4OworICAgICAgICBoZWlnaHQ6IDI4
MHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBwIHsgLXdl
YmtpdC1tYXJnaW4tYmVmb3JlOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAg
PGRpdiBjbGFzcz0ic2hhcGUtaW5zaWRlIHJsIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iYm9yZGVy
Ij48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlz
IHBhcmFncmFwaCBzaG91bGQgc3RhcnQgYXQgdGhlIHRvcCByaWdodCBjb3JuZXIgb2YgdGhlIGJs
dWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXRzIHRvcCBhbmQgYm90dG9tIGVkZ2VzIHNob3Vs
ZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSB0byB0aGUgbGVmdCBvZiBw
YXJhZ3JhcGggMS4gSXRzIHRvcAorICAgICAgICBhbmQgYm90dG9tIGVkZ2VzIHNob3VsZCBhbHNv
IGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFz
cz0ic2hhcGUtaW5zaWRlIGxyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iYm9yZGVyIj48L2Rpdj4K
KyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBhcmFncmFw
aCBzaG91bGQgc3RhcnQgYXQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgYmx1ZQorICAgICAg
ICAgICAgcmVjdGFuZ2xlLiBJdHMgdG9wIGFuZCBib3R0b20gZWRnZXMgc2hvdWxkIGJlIHdpdGhp
biB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwvZGl2PgorICAgICAgICA8cD5QYXJhZ3Jh
cGggMi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIHRvIHRoZSByaWdodCBvZiBwYXJhZ3JhcGgg
MS4gSXRzIHRvcAorICAgICAgICBhbmQgYm90dG9tIGVkZ2VzIHNob3VsZCBhbHNvIGJlIHdpdGhp
biB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1tdWx0aXBsZS1ibG9ja3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjdiYzVlOGVkNzdkYWRlMGYwMTNmZTgzZTUyNDliZmY0NWQzMjVkNjMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1tdWx0aXBsZS1ibG9ja3MuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRy
dWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFw
ZS1pbnNpZGU6IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAxODBweCwgMjgwcHgpOworICAgICAgICBw
b3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorICAgICNib3JkZXIgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogOHB4OworICAgICAgICBsZWZ0OiA4cHg7CisgICAg
ICAgIHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVy
OiAycHggc29saWQgYmx1ZTsKKyAgICB9CisgICAgcCB7IG1hcmdpbi10b3A6IDA7IH0KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAg
ICA8ZGl2IGlkPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+
UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3Ag
ZWRnZSBvZiB0aGUgYmx1ZQorICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJp
Z2h0IGVkZ2VzIHNob3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8
L2Rpdj4KKyAgICAgICAgPHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBq
dXN0IGJlbG93IHBhcmFncmFwaCAxLiBJdHMgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMg
c2hvdWxkIGFsc28gYmUgd2l0aGluIHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="177527"
          type_id="1"
          status="+"
          setter="jchaffraix"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165507</attachid>
            <date>2012-09-24 20:58:40 -0700</date>
            <delta_ts>2012-09-25 11:22:22 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>89993.patch</filename>
            <type>text/plain</type>
            <size>16533</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkMjBlMzg0Li4xMWI1Mjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTItMDkt
MjQgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhj
bHVzaW9uc10gRW5hYmxlIGNzcyBleGNsdXNpb25zIGZvciBtdWx0aXBsZSBibG9ja3MgcGVyIGVs
ZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
OTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAgICAgICBB
ZGRpbmcgdGVzdHMgdG8gY292ZXIgdGhlIGNhc2Ugd2hlcmUgYSBzaGFwZS1pbnNpZGUgYWZmZWN0
cyBibG9jayBjaGlsZHJlbidzCisgICAgICAgIGlubGluZSBjb250ZW50LgorCisgICAgICAgICog
ZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tz
LWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy12ZXJ0aWNhbC1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1tdWx0aXBsZS1ibG9ja3MtdmVydGljYWwuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0
bWw6IEFkZGVkLgorCiAyMDEyLTA5LTI0ICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCBHZW9sb2NhdGlvbiBlcnJvciByZXBvcnRpbmcgaW4gdGhl
IHRlc3Qgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1tdWx0
aXBsZS1ibG9ja3MtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi40NzBhNGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNp
b25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwzMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0
eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICB3aWR0aDogMTcwcHg7CisgICAgICAg
IGhlaWdodDogMjgwcHg7CisgICAgICAgIHBhZGRpbmc6IDE1cHggMjBweCA1cHggMTBweDsKKyAg
ICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIH0KKyAgICAjYm9yZGVyIHsKKyAgICAgICAg
cG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDEzcHg7CisgICAgICAgIGxlZnQ6IDhw
eDsKKyAgICAgICAgd2lkdGg6IDE3MHB4OworICAgICAgICBoZWlnaHQ6IDI4MHB4OworICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBwIHsgbWFyZ2luLXRvcDogMDsg
fQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+
CisgICAgICAgIDxkaXYgaWQ9ImJvcmRlciI+PC9kaXY+CisgICAgICAgIDxkaXY+CisgICAgICAg
ICAgICA8cD5QYXJhZ3JhcGggMS4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIGp1c3QgYmVsb3cg
dGhlIHRvcCBlZGdlIG9mIHRoZSBibHVlCisgICAgICAgICAgICByZWN0YW5nbGUuIEl0J3MgbGVm
dCBhbmQgcmlnaHQgZWRnZXMgc2hvdWxkIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8cD5QYXJhZ3JhcGggMi4gVGhpcyBwYXJhZ3JhcGggc2hv
dWxkIGJlIGp1c3QgYmVsb3cgcGFyYWdyYXBoIDEuIEl0cyBsZWZ0CisgICAgICAgIGFuZCByaWdo
dCBlZGdlcyBzaG91bGQgYWxzbyBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgIDwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNs
dXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLXZlcnRpY2Fs
LWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtdmVydGljYWwtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41YjNjMzdhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
bXVsdGlwbGUtYmxvY2tzLXZlcnRpY2FsLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0NCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgIC5zaGFwZS1pbnNp
ZGUgeworICAgICAgICB3aWR0aDogMTcwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAg
ICAgIHBhZGRpbmc6IDE1cHggMjBweCA1cHggMTBweDsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgIH0KKyAgICAucmwgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtcmw7
IH0KKyAgICAubHIgeyAtd2Via2l0LXdyaXRpbmctbW9kZTogdmVydGljYWwtbHI7IH0KKyAgICAu
Ym9yZGVyIHsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB0b3A6IDEzcHg7
CisgICAgICAgIGxlZnQ6IDhweDsKKyAgICAgICAgd2lkdGg6IDE3MHB4OworICAgICAgICBoZWln
aHQ6IDI4MHB4OworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgIH0KKyAgICBw
IHsgLXdlYmtpdC1tYXJnaW4tYmVmb3JlOiAwOyB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+
CisgICAgPGRpdiBjbGFzcz0ic2hhcGUtaW5zaWRlIHJsIj4KKyAgICAgICAgPGRpdiBjbGFzcz0i
Ym9yZGVyIj48L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAx
LiBUaGlzIHBhcmFncmFwaCBzaG91bGQgc3RhcnQgYXQgdGhlIHRvcCByaWdodCBjb3JuZXIgb2Yg
dGhlIGJsdWUKKyAgICAgICAgICAgIHJlY3RhbmdsZS4gSXRzIHRvcCBhbmQgYm90dG9tIGVkZ2Vz
IHNob3VsZCBiZSB3aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAg
ICAgICAgPHA+UGFyYWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSB0byB0aGUgbGVm
dCBvZiBwYXJhZ3JhcGggMS4gSXRzIHRvcAorICAgICAgICBhbmQgYm90dG9tIGVkZ2VzIHNob3Vs
ZCBhbHNvIGJlIHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0ic2hhcGUtaW5zaWRlIGxyIj4KKyAgICAgICAgPGRpdiBjbGFzcz0iYm9yZGVyIj48
L2Rpdj4KKyAgICAgICAgPGRpdj4KKyAgICAgICAgICAgIDxwPlBhcmFncmFwaCAxLiBUaGlzIHBh
cmFncmFwaCBzaG91bGQgc3RhcnQgYXQgdGhlIHRvcCBsZWZ0IGNvcm5lciBvZiB0aGUgYmx1ZQor
ICAgICAgICAgICAgcmVjdGFuZ2xlLiBJdHMgdG9wIGFuZCBib3R0b20gZWRnZXMgc2hvdWxkIGJl
IHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwvZGl2PgorICAgICAgICA8cD5Q
YXJhZ3JhcGggMi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIHRvIHRoZSByaWdodCBvZiBwYXJh
Z3JhcGggMS4gSXRzIHRvcAorICAgICAgICBhbmQgYm90dG9tIGVkZ2VzIHNob3VsZCBhbHNvIGJl
IHdpdGhpbiB0aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3No
YXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtdmVydGljYWwuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy12
ZXJ0aWNhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk1Mzg2OTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5z
aWRlL3NoYXBlLWluc2lkZS1tdWx0aXBsZS1ibG9ja3MtdmVydGljYWwuaHRtbApAQCAtMCwwICsx
LDQ4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgLnNo
YXBlLWluc2lkZSB7CisgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBw
eDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJlY3RhbmdsZSgxMHB4LCAxNXB4LCAx
NzBweCwgMjgwcHgpOworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgfQorICAgIC5y
bCB7IC13ZWJraXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1ybDsgfQorICAgIC5sciB7IC13ZWJr
aXQtd3JpdGluZy1tb2RlOiB2ZXJ0aWNhbC1scjsgfQorICAgIC5ib3JkZXIgeworICAgICAgICBw
b3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMTNweDsKKyAgICAgICAgbGVmdDogOHB4
OworICAgICAgICB3aWR0aDogMTcwcHg7CisgICAgICAgIGhlaWdodDogMjgwcHg7CisgICAgICAg
IGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgfQorICAgIHAgeyAtd2Via2l0LW1hcmdpbi1i
ZWZvcmU6IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGNsYXNzPSJz
aGFwZS1pbnNpZGUgcmwiPgorICAgICAgICA8ZGl2IGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAg
ICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNo
b3VsZCBzdGFydCBhdCB0aGUgdG9wIHJpZ2h0IGNvcm5lciBvZiB0aGUgYmx1ZQorICAgICAgICAg
ICAgcmVjdGFuZ2xlLiBJdHMgdG9wIGFuZCBib3R0b20gZWRnZXMgc2hvdWxkIGJlIHdpdGhpbiB0
aGUgYmx1ZSByZWN0YW5nbGUuCisgICAgICAgIDwvZGl2PgorICAgICAgICA8cD5QYXJhZ3JhcGgg
Mi4gVGhpcyBwYXJhZ3JhcGggc2hvdWxkIGJlIHRvIHRoZSBsZWZ0IG9mIHBhcmFncmFwaCAxLiBJ
dHMgdG9wCisgICAgICAgIGFuZCBib3R0b20gZWRnZXMgc2hvdWxkIGFsc28gYmUgd2l0aGluIHRo
ZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJzaGFwZS1pbnNp
ZGUgbHIiPgorICAgICAgICA8ZGl2IGNsYXNzPSJib3JkZXIiPjwvZGl2PgorICAgICAgICA8ZGl2
PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBzdGFy
dCBhdCB0aGUgdG9wIGxlZnQgY29ybmVyIG9mIHRoZSBibHVlCisgICAgICAgICAgICByZWN0YW5n
bGUuIEl0cyB0b3AgYW5kIGJvdHRvbSBlZGdlcyBzaG91bGQgYmUgd2l0aGluIHRoZSBibHVlIHJl
Y3RhbmdsZS4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwPlBhcmFncmFwaCAyLiBUaGlzIHBh
cmFncmFwaCBzaG91bGQgYmUgdG8gdGhlIHJpZ2h0IG9mIHBhcmFncmFwaCAxLiBJdHMgdG9wCisg
ICAgICAgIGFuZCBib3R0b20gZWRnZXMgc2hvdWxkIGFsc28gYmUgd2l0aGluIHRoZSBibHVlIHJl
Y3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxl
LWJsb2Nrcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uZDgwZmVkMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJsb2Nrcy5odG1s
CkBAIC0wLDAgKzEsMzcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3NjcmlwdD4KKzxzdHls
ZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBo
ZWlnaHQ6IDMwMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDEw
cHgsIDE1cHgsIDE3MHB4LCAyODBweCk7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICB9CisgICAgI2JvcmRlciB7CisgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAg
dG9wOiAxM3B4OworICAgICAgICBsZWZ0OiA4cHg7CisgICAgICAgIHdpZHRoOiAxNzBweDsKKyAg
ICAgICAgaGVpZ2h0OiAyODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAg
ICB9CisgICAgcCB7IG1hcmdpbi10b3A6IDA7IH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPgorICAgICAgICA8ZGl2IGlkPSJib3JkZXIiPjwv
ZGl2PgorICAgICAgICA8ZGl2PgorICAgICAgICAgICAgPHA+UGFyYWdyYXBoIDEuIFRoaXMgcGFy
YWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHRoZSB0b3AgZWRnZSBvZiB0aGUgYmx1ZQorICAg
ICAgICAgICAgcmVjdGFuZ2xlLiBJdCdzIGxlZnQgYW5kIHJpZ2h0IGVkZ2VzIHNob3VsZCBiZSB3
aXRoaW4gdGhlIGJsdWUgcmVjdGFuZ2xlLgorICAgICAgICA8L2Rpdj4KKyAgICAgICAgPHA+UGFy
YWdyYXBoIDIuIFRoaXMgcGFyYWdyYXBoIHNob3VsZCBiZSBqdXN0IGJlbG93IHBhcmFncmFwaCAx
LiBJdHMgbGVmdAorICAgICAgICBhbmQgcmlnaHQgZWRnZXMgc2hvdWxkIGFsc28gYmUgd2l0aGlu
IHRoZSBibHVlIHJlY3RhbmdsZS4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBiOTgxYWZlLi42NmQwMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIw
MTItMDktMjQgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtD
U1MgRXhjbHVzaW9uc10gRW5hYmxlIGNzcyBleGNsdXNpb25zIGZvciBtdWx0aXBsZSBibG9ja3Mg
cGVyIGVsZW1lbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg5OTkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSnVsaWVuIENoYWZmcmFpeC4KKworICAg
ICAgICBTaW1pbGFyIHRvIG11bHRpLWNvbHVtbiBsYXlvdXQsIGEgcGFyZW50IFJlbmRlckJsb2Nr
J3MgV3JhcFNoYXBlSW5mbyBtYXkgYWZmZWN0CisgICAgICAgIHRoZSBpbmxpbmUgY29udGVudCBv
ZiBpdHMgY2hpbGRyZW4uIFRoaXMgcGF0Y2ggZm9sbG93cyB0aGUgZXhhbXBsZSBvZiBDb2x1bW5J
bmZvCisgICAgICAgIGFuZCBhZGRzIFdyYXBTaGFwZUluZm8gdG8gTGF5b3V0U3RhdGUsIHdoaWNo
IHRyYWNrcyB0aGUgY3VycmVudCBzaGFwZS1pbnNpZGUgdGhhdAorICAgICAgICBpbmxpbmUgY29u
dGVudCBzaG91bGQgcmVzcGVjdC4KKworICAgICAgICBUZXN0czogZmFzdC9leGNsdXNpb25zL3No
YXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtbXVsdGlwbGUtYmxvY2tzLmh0bWwKKyAgICAgICAgICAg
ICAgIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLW11bHRpcGxlLWJs
b2Nrcy12ZXJ0aWNhbC5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OkxheW91dFN0YXRlKTogSW5pdGlhbGl6
ZSBtX3dyYXBTaGFwZUluZm8uCisgICAgICAgICogcmVuZGVyaW5nL0xheW91dFN0YXRlLmg6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dFN0YXRlOjpMYXlvdXRT
dGF0ZSk6IEluaXRpYWxpemUgbV93cmFwU2hhcGVJbmZvLgorICAgICAgICAoTGF5b3V0U3RhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0U3RhdGU6OndyYXBTaGFwZUluZm8pOiBHZXR0ZXIg
Zm9yIG1fd3JhcFNoYXBlSW5mby4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdpZHRoKTogVXNl
IExheW91dFN0YXRlIHRvIGxvb2t1cCBXcmFwU2hhcGVJbmZvLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0lu
UmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cHVzaExheW91dFN0YXRlKTogUHVzaCBMYXlvdXRTdGF0
ZSBpZiBhIFdyYXBTaGFwZUluZm8KKyAgICAgICAgaXMgcHJlc2VudC4KKwogMjAxMi0wOS0yNCAg
QmVuamFtaW4gUG91bGFpbiAgPGJwb3VsYWluQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggR2Vv
bG9jYXRpb24gZXJyb3IgcmVwb3J0aW5nIGluIHRoZSB0ZXN0IHN1cHBvcnQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGF5b3V0U3RhdGUuY3BwCmluZGV4IDFlNDQ0MmYuLmI0MjliZDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmNwcApAQCAtNDIsNiArNDIsOSBAQCBM
YXlvdXRTdGF0ZTo6TGF5b3V0U3RhdGUoTGF5b3V0U3RhdGUqIHByZXYsIFJlbmRlckJveCogcmVu
ZGVyZXIsIGNvbnN0IExheW91dFNpegogI2lmbmRlZiBOREVCVUcKICAgICAsIG1fcmVuZGVyZXIo
cmVuZGVyZXIpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgLCBtX3dy
YXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewogICAgIEFTU0VSVChtX25leHQpOwogCkBAIC0xMDcs
NiArMTEwLDE0IEBAIExheW91dFN0YXRlOjpMYXlvdXRTdGF0ZShMYXlvdXRTdGF0ZSogcHJldiwg
UmVuZGVyQm94KiByZW5kZXJlciwgY29uc3QgTGF5b3V0U2l6CiAgICAgaWYgKCFtX2NvbHVtbklu
Zm8pCiAgICAgICAgIG1fY29sdW1uSW5mbyA9IG1fbmV4dC0+bV9jb2x1bW5JbmZvOwogCisjaWYg
RU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIGlmIChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygp
KSB7CisgICAgICAgIG1fd3JhcFNoYXBlSW5mbyA9IHRvUmVuZGVyQmxvY2socmVuZGVyZXIpLT53
cmFwU2hhcGVJbmZvKCk7CisgICAgICAgIGlmICghbV93cmFwU2hhcGVJbmZvKQorICAgICAgICAg
ICAgbV93cmFwU2hhcGVJbmZvID0gbV9uZXh0LT5tX3dyYXBTaGFwZUluZm87CisgICAgfQorI2Vu
ZGlmCisKICAgICBtX2xheW91dERlbHRhID0gbV9uZXh0LT5tX2xheW91dERlbHRhOwogICAgIAog
ICAgIG1faXNQYWdpbmF0ZWQgPSBtX3BhZ2VMb2dpY2FsSGVpZ2h0IHx8IG1fY29sdW1uSW5mbyB8
fCByZW5kZXJlci0+aXNSZW5kZXJGbG93VGhyZWFkKCk7CkBAIC0xMzIsNiArMTQzLDkgQEAgTGF5
b3V0U3RhdGU6OkxheW91dFN0YXRlKFJlbmRlck9iamVjdCogcm9vdCkKICNpZm5kZWYgTkRFQlVH
CiAgICAgLCBtX3JlbmRlcmVyKHJvb3QpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lP
TlMpCisgICAgLCBtX3dyYXBTaGFwZUluZm8oMCkKKyNlbmRpZgogewogICAgIFJlbmRlck9iamVj
dCogY29udGFpbmVyID0gcm9vdC0+Y29udGFpbmVyKCk7CiAgICAgRmxvYXRQb2ludCBhYnNDb250
ZW50UG9pbnQgPSBjb250YWluZXItPmxvY2FsVG9BYnNvbHV0ZShGbG9hdFBvaW50KCksIGZhbHNl
LCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MYXlvdXRTdGF0
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKaW5kZXggMTUyYzgw
NC4uYTQxYTIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0
YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0xheW91dFN0YXRlLmgKQEAgLTM4
LDYgKzM4LDkgQEAgY2xhc3MgUmVuZGVyQmxvY2s7CiBjbGFzcyBSZW5kZXJCb3g7CiBjbGFzcyBS
ZW5kZXJPYmplY3Q7CiBjbGFzcyBSZW5kZXJGbG93VGhyZWFkOworI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKK2NsYXNzIFdyYXBTaGFwZUluZm87CisjZW5kaWYKIAogY2xhc3MgTGF5b3V0U3Rh
dGUgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKExheW91dFN0YXRlKTsKQEAgLTUzLDYgKzU2
LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICAgICAgLCBtX3JlbmRlcmVyKDApCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgICAgICwgbV93cmFwU2hhcGVJ
bmZvKDApCisjZW5kaWYKICAgICB7CiAgICAgfQogCkBAIC04OCw2ICs5NCw5IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlvbkxvY2F0aW9uU2V0QmVmb3JlTGF5b3V0KCkg
Y29uc3QgeyByZXR1cm4gbV9saW5lR3JpZCB8fCAobV9pc1BhZ2luYXRlZCAmJiBtX3BhZ2VMb2dp
Y2FsSGVpZ2h0KTsgfQogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAgIFdyYXBTaGFw
ZUluZm8qIHdyYXBTaGFwZUluZm8oKSBjb25zdCB7IHJldHVybiBtX3dyYXBTaGFwZUluZm87IH0K
KyNlbmRpZgogcHJpdmF0ZToKICAgICAvLyBUaGUgbm9ybWFsIG9wZXJhdG9yIG5ldyBpcyBkaXNh
bGxvd2VkLgogICAgIHZvaWQqIG9wZXJhdG9yIG5ldyhzaXplX3QpIHRocm93KCk7CkBAIC0xMjks
NiArMTM4LDkgQEAgcHVibGljOgogI2lmbmRlZiBOREVCVUcKICAgICBSZW5kZXJPYmplY3QqIG1f
cmVuZGVyZXI7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCisgICAgV3JhcFNo
YXBlSW5mbyogbV93cmFwU2hhcGVJbmZvOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVM
YXlvdXQuY3BwCmluZGV4IGJmZTAzYjguLmIwNzJhNTUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC02Myw2ICs2MywxMyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBXZSBkb24ndCBsZXQgb3VyIGxpbmUgYm94IHRyZWUg
Zm9yIGEgc2luZ2xlIGxpbmUgZ2V0IGFueSBkZWVwZXIgdGhhbiB0aGlzLgogY29uc3QgdW5zaWdu
ZWQgY01heExpbmVEZXB0aCA9IDIwMDsKIAorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKK3N0
YXRpYyBpbmxpbmUgV3JhcFNoYXBlSW5mbyogbGF5b3V0V3JhcFNoYXBlSW5mbyhjb25zdCBSZW5k
ZXJCbG9jayogYmxvY2spCit7CisgICAgcmV0dXJuIGJsb2NrLT52aWV3KCktPmxheW91dFN0YXRl
KCktPndyYXBTaGFwZUluZm8oKTsKK30KKyNlbmRpZgorCiBjbGFzcyBMaW5lV2lkdGggewogcHVi
bGljOgogICAgIExpbmVXaWR0aChSZW5kZXJCbG9jayogYmxvY2ssIGJvb2wgaXNGaXJzdExpbmUp
CkBAIC04MCw3ICs4Nyw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVChibG9jayk7
CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBXcmFwU2hhcGVJbmZvKiB3cmFw
U2hhcGVJbmZvID0gbV9ibG9jay0+d3JhcFNoYXBlSW5mbygpOworICAgICAgICBXcmFwU2hhcGVJ
bmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyhtX2Jsb2NrKTsKICAgICAg
ICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRz
LCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQogICAgICAgICBpZiAod3JhcFNoYXBlSW5m
byAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lO
U0lERV9TSEFQRSkgewogICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9u
cyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudApAQCAtODA0LDcgKzgxMSw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJv
b3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbExlZnQgPSBwaXhlbFNuYXBw
ZWRMb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJzdExpbmUsIGxp
bmVMb2dpY2FsSGVpZ2h0KTsKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRM
b2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5l
TG9naWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIFdyYXBTaGFw
ZUluZm8qIHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7CisgICAgV3JhcFNo
YXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGxheW91dFdyYXBTaGFwZUluZm8odGhpcyk7CiAgICAg
aWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGluZVN0YXRlKCkgPT0gV3JhcFNo
YXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAgbG9naWNhbExlZnQgPSBtYXg8
ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsTGVm
dCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0ID0gbWluPGZsb2F0PihmbG9v
clRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJpZ2h0KSwgbG9naWNh
bFJpZ2h0KTsKQEAgLTEyOTYsMTAgKzEzMDMsMTggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0
UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4K
ICAgICBMaW5lQnJlYWtlciBsaW5lQnJlYWtlcih0aGlzKTsKIAogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKLSAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gdGhpcy0+d3JhcFNo
YXBlSW5mbygpOwotICAgIC8vIE1vdmUgdG8gdGhlIHRvcCBvZiB0aGUgc2hhcGUgaW5zaWRlIHRv
IGJlZ2luIGxheW91dAotICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIGxvZ2ljYWxIZWlnaHQoKSA8
IHdyYXBTaGFwZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKQotICAgICAgICBzZXRMb2dpY2FsSGVp
Z2h0KHdyYXBTaGFwZUluZm8tPnNoYXBlTG9naWNhbFRvcCgpKTsKKyAgICBMYXlvdXRVbml0IGFi
c29sdXRlTG9naWNhbFRvcDsKKyAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5
b3V0V3JhcFNoYXBlSW5mbyh0aGlzKTsKKyAgICBpZiAod3JhcFNoYXBlSW5mbykgeworICAgICAg
ICBpZiAod3JhcFNoYXBlSW5mbyAhPSB0aGlzLT53cmFwU2hhcGVJbmZvKCkpIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBJZiBsYXlvdXQgc3RhdGUgaXMgZGlzYWJsZWQsIHRoZSBvZmZzZXQgd2ls
bCBiZSBpbmNvcnJlY3QuCisgICAgICAgICAgICBMYXlvdXRTaXplIGxheW91dE9mZnNldCA9IHZp
ZXcoKS0+bGF5b3V0U3RhdGUoKS0+bGF5b3V0T2Zmc2V0KCk7CisgICAgICAgICAgICBhYnNvbHV0
ZUxvZ2ljYWxUb3AgPSBsb2dpY2FsVG9wKCkgKyAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/
IGxheW91dE9mZnNldC5oZWlnaHQoKSA6IGxheW91dE9mZnNldC53aWR0aCgpKTsKKyAgICAgICAg
fQorICAgICAgICAvLyBCZWdpbiBsYXlvdXQgYXQgdGhlIGxvZ2ljYWwgdG9wIG9mIG91ciBzaGFw
ZSBpbnNpZGUuCisgICAgICAgIGlmIChsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0ZUxvZ2ljYWxU
b3AgPCB3cmFwU2hhcGVJbmZvLT5zaGFwZUxvZ2ljYWxUb3AoKSkKKyAgICAgICAgICAgIHNldExv
Z2ljYWxIZWlnaHQod3JhcFNoYXBlSW5mby0+c2hhcGVMb2dpY2FsVG9wKCkgLSBhYnNvbHV0ZUxv
Z2ljYWxUb3ApOworICAgIH0KICNlbmRpZgogCiAgICAgd2hpbGUgKCFlbmQuYXRFbmQoKSkgewpA
QCAtMTMyMSwxMCArMTMzNiw4IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9h
dHNJblJhbmdlKExpbmVMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIElubGluCiAgICAgICAgIGJv
b2wgaXNOZXdVQkFQYXJhZ3JhcGggPSBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLnByZXZpb3VzTGlu
ZUJyb2tlQ2xlYW5seSgpOwogICAgICAgICBGbG9hdGluZ09iamVjdCogbGFzdEZsb2F0RnJvbVBy
ZXZpb3VzTGluZSA9IChtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGluZ09iamVjdHMtPnNl
dCgpLmlzRW1wdHkoKSkgPyBtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkubGFzdCgpIDogMDsKICNp
ZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCi0gICAgICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IElm
IHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0byBhZGp1
c3QKLSAgICAgICAgLy8gdGhlIGhlaWdodCBjb29yZGluYXRlCiAgICAgICAgIGlmICh3cmFwU2hh
cGVJbmZvKQotICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNl
Z21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0ZUxvZ2ljYWxUb3ApOwogI2Vu
ZGlmCiAgICAgICAgIGVuZCA9IGxpbmVCcmVha2VyLm5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGxh
eW91dFN0YXRlLmxpbmVJbmZvKCksIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlv
dXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcyk7CiAgICAgICAgIGlmIChyZXNvbHZl
ci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5o
CmluZGV4IDYyMGYyNTYuLjk5NmM5MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaApAQCAtMjIzLDcgKzIyMywxMSBAQCBwcml2YXRlOgogICAgIHsKICAgICAgICAgLy8gV2Ug
cHVzaCBMYXlvdXRTdGF0ZSBldmVuIGlmIGxheW91dFN0YXRlIGlzIGRpc2FibGVkIGJlY2F1c2Ug
aXQgc3RvcmVzIGxheW91dERlbHRhIHRvby4KICAgICAgICAgaWYgKCFkb2luZ0Z1bGxSZXBhaW50
KCkgfHwgbV9sYXlvdXRTdGF0ZS0+aXNQYWdpbmF0ZWQoKSB8fCByZW5kZXJlci0+aGFzQ29sdW1u
cygpIHx8IHJlbmRlcmVyLT5pblJlbmRlckZsb3dUaHJlYWQoKQotICAgICAgICAgICAgfHwgbV9s
YXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVuZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkg
IT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3JpZCgpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxv
dygpKSkgeworICAgICAgICAgICAgfHwgbV9sYXlvdXRTdGF0ZS0+bGluZUdyaWQoKSB8fCAocmVu
ZGVyZXItPnN0eWxlKCktPmxpbmVHcmlkKCkgIT0gUmVuZGVyU3R5bGU6OmluaXRpYWxMaW5lR3Jp
ZCgpICYmIHJlbmRlcmVyLT5pc0Jsb2NrRmxvdygpKQorI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9O
UykKKyAgICAgICAgICAgIHx8IChyZW5kZXJlci0+aXNSZW5kZXJCbG9jaygpICYmIHRvUmVuZGVy
QmxvY2socmVuZGVyZXIpLT53cmFwU2hhcGVJbmZvKCkpCisjZW5kaWYKKyAgICAgICAgICAgICkg
ewogICAgICAgICAgICAgbV9sYXlvdXRTdGF0ZSA9IG5ldyAocmVuZGVyQXJlbmEoKSkgTGF5b3V0
U3RhdGUobV9sYXlvdXRTdGF0ZSwgcmVuZGVyZXIsIG9mZnNldCwgcGFnZUhlaWdodCwgcGFnZUhl
aWdodENoYW5nZWQsIGNvbEluZm8pOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>