<?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>95479</bug_id>
          
          <creation_ts>2012-08-30 10:50:14 -0700</creation_ts>
          <short_desc>[CSS Exclusions] shape-inside line segment layout should be based on line position and height</short_desc>
          <delta_ts>2012-09-25 20:38:43 -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>89707</blocked>
    
    <blocked>92165</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hans Muller">giles_joplin</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>betravis</cc>
    
    <cc>dglazkov</cc>
    
    <cc>donggwan.kim</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>708828</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-08-30 10:50:14 -0700</bug_when>
    <thetext>Currently the CSS exclusions shape-inside support in WrapShapeInfo::computeSegmentsForLine(), WrapShapeInfo::lineState(), and the LineWidth constructor (RenderBlockLineLayout.cpp) only reflect a line&apos;s top edge.  A line only &quot;fits&quot; inside an exclusion shape if its entire bounding rectangle fits within the shape.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723831</commentid>
    <comment_count>1</comment_count>
      <attachid>164778</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-19 14:27:23 -0700</bug_when>
    <thetext>Created attachment 164778
Initial patch

Adding line bottom to segment and line state calculations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723851</commentid>
    <comment_count>2</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-19 14:46:07 -0700</bug_when>
    <thetext>*** Bug 97042 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>723997</commentid>
    <comment_count>3</comment_count>
      <attachid>164778</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-19 17:37:59 -0700</bug_when>
    <thetext>Comment on attachment 164778
Initial patch

Attachment 164778 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13903679

New failing tests:
fast/exclusions/shape-inside/shape-inside-rounded-rectangle.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724569</commentid>
    <comment_count>4</comment_count>
    <who name="Hans Muller">giles_joplin</who>
    <bug_when>2012-09-20 09:32:44 -0700</bug_when>
    <thetext>(In reply to comment #1)
&gt; Created an attachment (id=164778) [details]
&gt; Initial patch
&gt; 
&gt; Adding line bottom to segment and line state calculations.

Source/WebCore/rendering/ExclusionRectangle.cpp:76
The patch for https://bugs.webkit.org/show_bug.cgi?id=96156 also includes the ExclusionRectangle change.  


Source/WebCore/rendering/RenderBlockLineLayout.cpp:85
    (wrapShapeInfo &amp;&amp; wrapShapeInfo-&gt;lineState() &amp; WrapShapeInfo::LINE_INSIDE_SHAPE &amp;&amp; wrapShapeInfo-&gt;hasSegments())

An inline function like bool wrapShapeInfoHasSegments(WrapShapeInfo*) might be a useful simplification. Also: not clear why you&apos;re checking the lineState() is needed, isn&apos;t hasSegments() enough?


Source/WebCore/rendering/RenderBlockLineLayout.cpp:86,87
            // All interior shape positions should have at least one segment,
            // unless they extend beyond the edges of the shape.

Maybe &quot;shape positions&quot; isn&apos;t the right term here.  I think that what you mean is that if both the top and bottom edges of a line are within a shape, then there should be at least one segment.  However that&apos;s definitely not true for polygons, and it will not be true when ExclusionShape objects correspond to sets of primitive shapes.  I wouldn&apos;t characterize these exceptions as &quot;they extend beyond the edges of the shape&quot;.  Maybe just letting the code speak for itself here would be enough.

Source/WebCore/rendering/RenderBlockLineLayout.cpp:809,810

        logicalLeft = max&lt;float&gt;(roundToInt(wrapShapeInfo-&gt;segments()[0].logicalLeft), logicalLeft);
        logicalRight = min&lt;float&gt;(floorToInt(wrapShapeInfo-&gt;segments()[0].logicalRight), logicalRight);

A pair of inlines whose names clarified what the min/max round/floor int/float means in these expressions, might improve readability.


Source/WebCore/rendering/WrapShapeInfo.h

Maybe, instead of making the enums and lineState() public, it would be better to just provide a set of inline functions that cover the tests needed elsewhere?

bool lineOverlapsShapeBoundsTop()
bool lineOverlapsShapeBoundsBottom()
bool lineIsWithinShapeBounds()
etc..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>724640</commentid>
    <comment_count>5</comment_count>
      <attachid>164945</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-20 10:55:24 -0700</bug_when>
    <thetext>Created attachment 164945
Updated patch

Incorporating Hans&apos; feedback, and fixing the test failure.
Line positions within a shape are no longer guaranteed to have line segments. Removing the appropriate comments and tests.
Changing lineState tests to use boolean inlines, right now just lineOverlapsShapeBounds.
Removing lineState.
Going to leave the pixel snapping logicalLeft/Right code in place and file a bug for it (bug 97236).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727120</commentid>
    <comment_count>6</comment_count>
      <attachid>165476</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-24 17:33:54 -0700</bug_when>
    <thetext>Created attachment 165476
Updating patch

Merging with master branch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727796</commentid>
    <comment_count>7</comment_count>
      <attachid>165476</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-09-25 11:07:16 -0700</bug_when>
    <thetext>Comment on attachment 165476
Updating patch

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

&gt; Source/WebCore/rendering/WrapShapeInfo.cpp:112
&gt; +    if (lineOverlapsShapeBounds()) {
&gt;          ASSERT(m_shape);
&gt; -        m_shape-&gt;getIncludedIntervals(lineTop, lineTop, m_segments); // FIXME: Bug 95479, workaround for now
&gt; +        m_shape-&gt;getIncludedIntervals(lineTop, std::min(lineBottom, shapeLogicalBottom()), m_segments);

So this will call getIncludedIntervals when the line intersects but is outside of the shape. Help me understand why?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727881</commentid>
    <comment_count>8</comment_count>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-25 12:31:29 -0700</bug_when>
    <thetext>Linking to bug 96125, which is the bug for correctly laying out lines that overflow the shape-inside.
Overflow for shape-inside is under active specification. This patch allows the last line to overflow the shape-inside, but that behavior may need to change as the specification develops.

See
http://dev.w3.org/csswg/css3-exclusions/#shape-inside-property</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727906</commentid>
    <comment_count>9</comment_count>
      <attachid>165660</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-25 13:30:47 -0700</bug_when>
    <thetext>Created attachment 165660
Updating changelog

Making the changelog more descriptive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727937</commentid>
    <comment_count>10</comment_count>
      <attachid>165660</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-09-25 13:54:23 -0700</bug_when>
    <thetext>Comment on attachment 165660
Updating changelog

Apparently I&apos;m a ChangeLog reviewer :) Please add a link to that spec on overflow to the ChangeLog as well so someone glancing can find this without reading the bug. Then I think we&apos;re good to go.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727949</commentid>
    <comment_count>11</comment_count>
      <attachid>165667</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2012-09-25 14:12:40 -0700</bug_when>
    <thetext>Created attachment 165667
Adding links to changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728171</commentid>
    <comment_count>12</comment_count>
      <attachid>165667</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 20:38:38 -0700</bug_when>
    <thetext>Comment on attachment 165667
Adding links to changelog

Clearing flags on attachment: 165667

Committed r129590: &lt;http://trac.webkit.org/changeset/129590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728172</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 20:38:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164778</attachid>
            <date>2012-09-19 14:27:23 -0700</date>
            <delta_ts>2012-09-20 10:55:22 -0700</delta_ts>
            <desc>Initial patch</desc>
            <filename>bug-95479-20120919142648.patch</filename>
            <type>text/plain</type>
            <size>12330</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MDQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGI0MTM1ZWNkMTkzOTcw
MzU3ZTNmNzY2ZjU2NGFmNjZlYTI4MzQyMC4uN2EzYWNhNjVmOGZhYzI4ZThhNDNiNWU3YWZmM2Yz
MzZlY2NjYzk4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEyLTA5LTE5ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IHNoYXBlLWluc2lkZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBiYXNlZCBvbiBsaW5l
IHBvc2l0aW9uIGFuZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGxpbmUgaGVpZ2h0IHRvIGxpbmUgdG9wIHRvIGNh
bGN1bGF0ZSBsaW5lIHNlZ21lbnRzIHVzaW5nIHRoZSBsaW5lJ3MgdXBwZXIKKyAgICAgICAgYW5k
IGxvd2VyIGxvZ2ljYWwgZWRnZXMuIFRoZSBMaW5lU3RhdGUgZW51bSBub3cgY292ZXJzIGNhc2Vz
IHdoZXJlIGEgbGluZSBtYXkgb3ZlcmxhcAorICAgICAgICB0aGUgZWRnZXMgb2YgYSBzaGFwZS4K
KworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9u
UmVjdGFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblJlY3RhbmdsZTo6Z2V0
SW5zaWRlSW50ZXJ2YWxzKTogQWxsb3cgc2VnbWVudCBjYWxjdWxhdGlvbnMgdXAgdG8gYW5kCisg
ICAgICAgIGluY2x1ZGluZyB0aGUgc2hhcGUncyBsb3dlciBlZGdlLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdp
ZHRoOjpMaW5lV2lkdGgpOiBVcGRhdGVkIExpbmVTdGF0ZSByZXF1aXJlcyB1c2luZyBiaXR3aXNl
IHJhdGhlciB0aGFuCisgICAgICAgIGVxdWFsaXR5IHRlc3RpbmcuIE11c3QgYWxzbyB0ZXN0IGlm
IHRoZSBzaGFwZSBoYXMgc2VnbWVudHMsIGFzIHBvc2l0aW9ucyB3aXRoaW4gYSBzaGFwZQorICAg
ICAgICBhcmUgbm8gbG9uZ2VyIGd1YXJhbnRlZWQgdG8gaGF2ZSBzZWdtZW50cyAoZWcsIGEgbGlu
ZSBhdCB0aGUgYm90dG9tIGVkZ2Ugb2YgYSBjaXJjbGUpLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFu
Z2UpOiBQYXNzIGxpbmVCb3R0b20gYXMgd2VsbCBhcyBsaW5lVG9wCisgICAgICAgIHRvIGNvbXB1
dGVTZWdtZW50c0ZvckxpbmUuCisgICAgICAgICogcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGlu
ZSk6IFBhc3MgbGluZUJvdHRvbSBhcyB3ZWxsIGFzIGxpbmVUb3AKKyAgICAgICAgdG8gRXhjbHVz
aW9uU2hhcGU6OmdldEluc2lkZUludGVydmFscy4KKyAgICAgICAgKiByZW5kZXJpbmcvV3JhcFNo
YXBlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBlSW5mbzo6c2hhcGVMb2dpY2Fs
Qm90dG9tKTogQ2FsY3VsYXRlIHRoZSBsb2dpY2FsIGJvdHRvbSBvZiBhbgorICAgICAgICBFeGNs
dXNpb25TaGFwZS4KKyAgICAgICAgKFdyYXBTaGFwZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6
V3JhcFNoYXBlSW5mbzo6bGluZVN0YXRlKTogQWNjb3VudCBmb3IgYSBsaW5lIGNvdmVyaW5nIGEg
aGVpZ2h0IHJhbmdlLAorICAgICAgICB3aGljaCBtYXkgb3ZlcmxhcCB0aGUgYmVnaW5uaW5nLCBl
bmRpbmcsIG9yIGVudGlyZSBzaGFwZSByYXRoZXIgdGhhbiBqdXN0IGJlaW5nCisgICAgICAgIGJl
Zm9yZSwgaW5zaWRlLCBvciBhZnRlci4KKwogMjAxMi0wOS0xOSAgSm9zaHVhIEJlbGwgIDxqc2Jl
bGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogRnJlZSB1cCByZXNvdXJjZXMg
dXNlZCBieSBjb21wbGV0ZWQgY3Vyc29ycyBlYXJsaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uUmVjdGFuZ2xlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9FeGNsdXNpb25SZWN0YW5nbGUuY3BwCmluZGV4IDc4ZjgzYjA1NTEzZTFjZGI1OGY4
OGNiZmY4ZTA2ZDdiN2E3YWE2YTMuLjU4OWVjNmY3YmNlM2YyN2I2M2RiMDc1Y2YzYTI3Y2M4NTVm
YTQ0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0
YW5nbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25SZWN0YW5n
bGUuY3BwCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgRXhjbHVzaW9uUmVjdGFuZ2xlOjpnZXRJbnNp
ZGVJbnRlcnZhbHMoZmxvYXQgeTEsIGZsb2F0IHkyLCBWZWN0b3I8RXhjbHVzaW9uCiAgICAgaWYg
KHkxID4geTIpCiAgICAgICAgIHN0ZDo6c3dhcCh5MSwgeTIpOwogCi0gICAgaWYgKHkxIDwgbV95
IHx8IHkyID49IG1feSArIG1faGVpZ2h0KQorICAgIGlmICh5MSA8IG1feSB8fCB5MiA+IG1feSAr
IG1faGVpZ2h0KQogICAgICAgICByZXR1cm47CiAKICAgICBmbG9hdCB4MSA9IG1feDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKaW5k
ZXggY2JjYzk4OGFhMmFhZGIyNGQyOWZkYTNhODgxNDkzNTUwMjAxMzJlZC4uN2FkYTc2YWYyMTRl
NGYyZmM3N2ZhMmVkMWEzNzFjZGQ4MmU1ZTVmZiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTgyLDkgKzgyLDkgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAgICAgV3JhcFNoYXBlSW5mbyog
d3JhcFNoYXBlSW5mbyA9IG1fYmxvY2stPndyYXBTaGFwZUluZm8oKTsKICAgICAgICAgLy8gRklY
TUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50
bHkgd2Ugb25seSBzdXBwb3J0IG9uZQotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFw
U2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQ
RSkgewotICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91bGQg
aGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudAotICAgICAgICAgICAgQVNTRVJUKHdyYXBTaGFwZUlu
Zm8tPmhhc1NlZ21lbnRzKCkpOworICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hh
cGVJbmZvLT5saW5lU3RhdGUoKSAmIFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFICYm
IHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKKyAgICAgICAgICAgIC8vIEFsbCBpbnRl
cmlvciBzaGFwZSBwb3NpdGlvbnMgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIHNlZ21lbnQsCisg
ICAgICAgICAgICAvLyB1bmxlc3MgdGhleSBleHRlbmQgYmV5b25kIHRoZSBlZGdlcyBvZiB0aGUg
c2hhcGUuCiAgICAgICAgICAgICBtX3NlZ21lbnQgPSAmd3JhcFNoYXBlSW5mby0+c2VnbWVudHMo
KVswXTsKICAgICAgICAgfQogI2VuZGlmCkBAIC04MDUsNyArODA1LDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUoUm9vdElubGluZUJv
eCogbGluZUJveCwKICAgICBmbG9hdCBsb2dpY2FsUmlnaHQgPSBwaXhlbFNuYXBwZWRMb2dpY2Fs
UmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSwgZmlyc3RMaW5lLCBsaW5lTG9naWNh
bEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIFdyYXBTaGFwZUluZm8q
IHdyYXBTaGFwZUluZm8gPSB0aGlzLT53cmFwU2hhcGVJbmZvKCk7Ci0gICAgaWYgKHdyYXBTaGFw
ZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGluZVN0YXRlKCkgPT0gV3JhcFNoYXBlSW5mbzo6TElO
RV9JTlNJREVfU0hBUEUpIHsKKyAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZv
LT5saW5lU3RhdGUoKSAmIFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFICYmIHdyYXBT
aGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKICAgICAgICAgbG9naWNhbExlZnQgPSBtYXg8Zmxv
YXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dpY2FsTGVmdCks
IGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0ID0gbWluPGZsb2F0PihmbG9vclRv
SW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJpZ2h0KSwgbG9naWNhbFJp
Z2h0KTsKICAgICB9CkBAIC0xMzIzLDggKzEzMjMsMTMgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5s
aW4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIC8vIEZJWE1FOiBCdWcgODk5
OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0
byBhZGp1c3QKICAgICAgICAgLy8gdGhlIGhlaWdodCBjb29yZGluYXRlCi0gICAgICAgIGlmICh3
cmFwU2hhcGVJbmZvKQotICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRz
Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAvLyBGSVhNRTogQnVnIDk1MzYxOiBJ
dCBpcyBwb3NzaWJsZSBmb3IgYSBsaW5lIHRvIGdyb3cgYmV5b25kIGxpbmVIZWlnaHQsIGluIHdo
aWNoCisgICAgICAgIC8vIGNhc2UgdGhlc2Ugc2VnbWVudHMgbWF5IGJlIGluY29ycmVjdC4KKyAg
ICAgICAgaWYgKHdyYXBTaGFwZUluZm8pIHsKKyAgICAgICAgICAgIExheW91dFVuaXQgbGluZVRv
cCA9IGxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgbGluZUJvdHRvbSA9
IGxpbmVUb3AgKyBsaW5lSGVpZ2h0KGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNGaXJzdExpbmUo
KSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDogVmVydGljYWxM
aW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOworICAgICAgICAgICAgd3JhcFNoYXBl
SW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lQm90dG9tKTsKKyAgICAg
ICAgfQogI2VuZGlmCiAgICAgICAgIGVuZCA9IGxpbmVCcmVha2VyLm5leHRMaW5lQnJlYWsocmVz
b2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJlbmRlclRleHRJbmZvLCBsYXN0RmxvYXRG
cm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcyk7CiAgICAgICAgIGlm
IChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9XcmFwU2hhcGVJbmZvLmNwcAppbmRleCAwYTE2Y2M1MWY0OWM3NDMyZTY4ZGM4OTIzNDJiOTFk
MTYxODVhOWRlLi4yOWFhNjI4MWZhNGNlMjIwNmMwM2Q1OGJiMDgyMTdhNTVmODg5MjM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCkBAIC0xMTEsMTYgKzEx
MSwxOCBAQCB2b2lkIFdyYXBTaGFwZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBs
b2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbAogICAgIEFTU0VSVChtX3NoYXBlKTsKIH0K
IAotYm9vbCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQg
bGluZVRvcCkKK2Jvb2wgV3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlv
dXRVbml0IGxpbmVUb3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkKIHsKKyAgICBBU1NFUlQobGlu
ZVRvcCA8PSBsaW5lQm90dG9tKTsKICAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOworICAgIG1fbGlu
ZUJvdHRvbSA9IGxpbmVCb3R0b207CiAgICAgbV9zZWdtZW50cy5jbGVhcigpOwogCi0gICAgaWYg
KGxpbmVTdGF0ZSgpID09IExJTkVfSU5TSURFX1NIQVBFKSB7CisgICAgaWYgKGxpbmVTdGF0ZSgp
ICYgTElORV9JTlNJREVfU0hBUEUpIHsKICAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwogCiAgICAg
ICAgIFZlY3RvcjxFeGNsdXNpb25JbnRlcnZhbD4gaW50ZXJ2YWxzOwotICAgICAgICBtX3NoYXBl
LT5nZXRJbnNpZGVJbnRlcnZhbHMobGluZVRvcCwgbGluZVRvcCwgaW50ZXJ2YWxzKTsgLy8gRklY
TUU6IEJ1ZyA5NTQ3OSwgd29ya2Fyb3VuZCBmb3Igbm93CisgICAgICAgIG1fc2hhcGUtPmdldElu
c2lkZUludGVydmFscyhsaW5lVG9wLCBzdGQ6Om1pbihsaW5lQm90dG9tLCBzaGFwZUxvZ2ljYWxC
b3R0b20oKSksIGludGVydmFscyk7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW50
ZXJ2YWxzLnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgICBMaW5lU2VnbWVudCBzZWdtZW50Owog
ICAgICAgICAgICAgc2VnbWVudC5sb2dpY2FsTGVmdCA9IGludGVydmFsc1tpXS54MTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5oCmluZGV4IDA4MGI4NDJhODllYmE5OWZi
MzU2MTA4ZWIxOTQ2OWUwNTQxZTExMzYuLjM4ODU5MTNmMzU0YjM3NzI0ZDJlZmNhMDdmNTBiZDNj
YTA4ODhmNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJ
bmZvLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaApAQCAt
NTUsOSArNTUsMTIgQEAgY2xhc3MgV3JhcFNoYXBlSW5mbyB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZW51bSBMaW5lU3RhdGUgewotICAgICAgICBMSU5FX0JF
Rk9SRV9TSEFQRSwKLSAgICAgICAgTElORV9JTlNJREVfU0hBUEUsCi0gICAgICAgIExJTkVfQUZU
RVJfU0hBUEUKKyAgICAgICAgTElORV9CRUZPUkVfU0hBUEUgICAgICAgPSAweDAxLAorICAgICAg
ICBMSU5FX09WRVJfU0hBUEVfU1RBUlQgICA9IDB4MDMsCisgICAgICAgIExJTkVfSU5TSURFX1NI
QVBFICAgICAgID0gMHgwMiwKKyAgICAgICAgTElORV9PVkVSX1NIQVBFX0VORCAgICAgPSAweDA2
LAorICAgICAgICBMSU5FX0FGVEVSX1NIQVBFICAgICAgICA9IDB4MDQsCisgICAgICAgIExJTkVf
T1ZFUl9TSEFQRSAgICAgICAgID0gMHgwNwogICAgIH07CiAKICAgICB+V3JhcFNoYXBlSW5mbygp
OwpAQCAtNzMsMTMgKzc2LDE4IEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwog
ICAgICAgICByZXR1cm4gbV9zaGFwZS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS55KCk7CiAg
ICAgfQorICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChtX3NoYXBlKTsKKyAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9n
aWNhbEJvdW5kaW5nQm94KCkubWF4WSgpOworICAgIH0KICAgICBib29sIGhhc1NlZ21lbnRzKCkg
Y29uc3Q7CiAgICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKICAgICB7CiAg
ICAgICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsKICAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7
CiAgICAgfQotICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVU
b3ApOworICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3As
IExheW91dFVuaXQgbGluZUJvdHRvbSk7CiAgICAgTGluZVN0YXRlIGxpbmVTdGF0ZSgpIGNvbnN0
OwogICAgIHZvaWQgY29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KTsKICAgICB2b2lkIGRpcnR5V3JhcFNoYXBlU2l6ZSgpIHsg
bV93cmFwU2hhcGVTaXplRGlydHkgPSB0cnVlOyB9CkBAIC05MSw2ICs5OSw3IEBAIHByaXZhdGU6
CiAgICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOwogCiAgICAgTGF5b3V0VW5pdCBt
X2xpbmVUb3A7CisgICAgTGF5b3V0VW5pdCBtX2xpbmVCb3R0b207CiAgICAgTGF5b3V0VW5pdCBt
X2xvZ2ljYWxXaWR0aDsKICAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKIApAQCAtMTAz
LDEzICsxMTIsMjIgQEAgaW5saW5lIFdyYXBTaGFwZUluZm86OkxpbmVTdGF0ZSBXcmFwU2hhcGVJ
bmZvOjpsaW5lU3RhdGUoKSBjb25zdAogICAgIEFTU0VSVChtX3NoYXBlKTsKICAgICBGbG9hdFJl
Y3Qgc2hhcGVCb3VuZHMgPSBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpOwogCi0g
ICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLnkoKSkKKyAgICAvLyBUZXN0IHdoZXRoZXIg
bGluZSBpcyBlbnRpcmVseSBhYm92ZSBvciBiZWxvdyB0aGUgc2hhcGUKKyAgICBpZiAobV9saW5l
Qm90dG9tIDwgc2hhcGVCb3VuZHMueSgpKQogICAgICAgICByZXR1cm4gTElORV9CRUZPUkVfU0hB
UEU7CisgICAgaWYgKG1fbGluZVRvcCA+IHNoYXBlQm91bmRzLm1heFkoKSkKKyAgICAgICAgcmV0
dXJuIExJTkVfQUZURVJfU0hBUEU7CisKKyAgICAvLyBMaW5lIGF0IGxlYXN0IHBhcnRpYWxseSBv
dmVybGFwcyBzaGFwZQorICAgIGlmIChtX2xpbmVUb3AgPCBzaGFwZUJvdW5kcy55KCkpIHsKKyAg
ICAgICAgaWYgKG1fbGluZUJvdHRvbSA8IHNoYXBlQm91bmRzLm1heFkoKSkKKyAgICAgICAgICAg
IHJldHVybiBMSU5FX09WRVJfU0hBUEVfU1RBUlQ7CisgICAgICAgIHJldHVybiBMSU5FX09WRVJf
U0hBUEU7CisgICAgfQogCi0gICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLm1heFkoKSkK
KyAgICBpZiAobV9saW5lQm90dG9tIDwgc2hhcGVCb3VuZHMubWF4WSgpKQogICAgICAgICByZXR1
cm4gTElORV9JTlNJREVfU0hBUEU7Ci0KLSAgICByZXR1cm4gTElORV9BRlRFUl9TSEFQRTsKKyAg
ICByZXR1cm4gTElORV9PVkVSX1NIQVBFX0VORDsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDU3MWQxNWE1Njk4
ZTQ4ZThjM2QyZDNkZmE3MzQ2ZjcyOGNjZDNmODIuLmE1MTc2NWJmMmZiMzk4MGNjNGM0NGMzMTYx
ZGY1NTI1MzViNTY2OWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0xOSAgQmVhciBU
cmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBz
aGFwZS1pbnNpZGUgbGluZSBzZWdtZW50IGxheW91dCBzaG91bGQgYmUgYmFzZWQgb24gbGluZSBw
b3NpdGlvbiBhbmQgaGVpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRlc3QgdGhhdCBsaW5lIGJvdHRvbSBhcyB3ZWxsIGFzIGxpbmUgdG9wIGlzIHVz
ZWQgd2hlbiBjYWxjdWxhdGluZyBsaW5lIHNlZ21lbnRzCisgICAgICAgIGZvciBhIHJvdW5kZWQg
cmVjdGFuZ2xlLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFw
ZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0
YW5nbGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMTkgIFJvYmVydCBGbGFjayAgPGZsYWNrckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBjb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24gdGVzdCBuZWVk
cyByZWJhc2VsaW5lIGZvciByMTI5MDIzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hh
cGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDM1
OTJmNzcwMTlkYTFhY2NkOTA3ODZkNGEwYWJkOGJjODBiOTMyMAotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJv
dW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5h
YmxlZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAg
ICAgICBmb250OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIHdoaXRlLXNwYWNl
OiBwcmU7CisgICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAg
ICAgICBoZWlnaHQ6IDMwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAg
ICBSZXF1aXJlcyBBaGVtIGZvbnQuIFRlc3RzIHRoYXQgaW5saW5lIGNvbnRlbnQgYXZvaWRzIHRo
ZSBib3JkZXIgcmFkaXVzIG9mIGEgcm91bmRlZCByZWN0YW5nbGUuCisgICAgU2hvdWxkIGRpc3Bs
YXkgZml2ZSBncmVlbiBib3hlcyBpbiB0aGUgc2hhcGUgb2YgYSBwbHVzLgorICAgIDxkaXYgaWQ9
InNoYXBlLWluc2lkZSI+IFggPGJyLz5YWFg8YnIvPiBYIDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhj
bHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uOWJiMzc4MGY1MzFhNGM3YjY4YTVkMzFmNTg5MTEyNGY1MGMzNzJkMQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUv
c2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUg
eworICAgICAgICBmb250OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9y
OiBncmVlbjsKKyAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOworICAgICAgICB3aWR0aDog
MzAwcHg7CisgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5z
aWRlOiByZWN0YW5nbGUoMCwgMCwgMzAwcHgsIDMwMHB4LCAxMDBweCwgMTAwcHgpOworICAgIH0K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBSZXF1aXJlcyBBaGVtIGZvbnQuIFRlc3Rz
IHRoYXQgaW5saW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIGEgcm91bmRl
ZCByZWN0YW5nbGUuCisgICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBncmVlbiBib3hlcyBpbiB0aGUg
c2hhcGUgb2YgYSBwbHVzLgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+WFhYWFg8L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164945</attachid>
            <date>2012-09-20 10:55:24 -0700</date>
            <delta_ts>2012-09-24 17:33:52 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>bug-95479-20120920105450.patch</filename>
            <type>text/plain</type>
            <size>12367</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGFlNGI2Y2QxYzllZWEw
OWY4MzE3ODJiZGIxNjhhNjFhODRkMmNkMC4uMjIyZTdhMWRkOTMyYWI2MGJmMDE5ZjFlYWI0OTk4
NWEzOGRjMjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTA5LTIwICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IHNoYXBlLWluc2lkZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBiYXNlZCBvbiBsaW5l
IHBvc2l0aW9uIGFuZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGxpbmUgaGVpZ2h0IHRvIGxpbmUgdG9wIHRvIGNh
bGN1bGF0ZSBsaW5lIHNlZ21lbnRzIHVzaW5nIHRoZSBsaW5lJ3MgdXBwZXIKKyAgICAgICAgYW5k
IGxvd2VyIGxvZ2ljYWwgZWRnZXMuIFRoZSBMaW5lU3RhdGUgZW51bSBub3cgY292ZXJzIGNhc2Vz
IHdoZXJlIGEgbGluZSBtYXkgb3ZlcmxhcAorICAgICAgICB0aGUgZWRnZXMgb2YgYSBzaGFwZS4K
KworICAgICAgICBUZXN0OiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9u
UmVjdGFuZ2xlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblJlY3RhbmdsZTo6Z2V0
SW5zaWRlSW50ZXJ2YWxzKTogQWxsb3cgc2VnbWVudCBjYWxjdWxhdGlvbnMgdXAgdG8KKyAgICAg
ICAgYW5kIGluY2x1ZGluZyB0aGUgc2hhcGUncyBsb3dlciBlZGdlLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdp
ZHRoOjpMaW5lV2lkdGgpOiBVc2UgV3JhcFNoYXBlSW5mbzo6aGFzU2VnbWVudHMgcmF0aGVyIHRo
YW4KKyAgICAgICAgV3JhcFNoYXBlSW5mbzo6bGluZVN0YXRlLCBhcyBsaW5lIHBvc2l0aW9ucyB3
aXRoaW4gYSBzaGFwZSBhcmUgbm8gbG9uZ2VyCisgICAgICAgIGd1YXJhbnRlZWQgdG8gYWx3YXlz
IGhhdmUgbGluZSBzZWdtZW50cy4gCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29t
cHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZSk6IFBhc3MgbGlu
ZUJvdHRvbSBhcyB3ZWxsIGFzIGxpbmVUb3AKKyAgICAgICAgdG8gY29tcHV0ZVNlZ21lbnRzRm9y
TGluZS4KKyAgICAgICAgKiByZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKTogUGFzcyBsaW5l
Qm90dG9tIGFzIHdlbGwgYXMgbGluZVRvcAorICAgICAgICB0byBFeGNsdXNpb25TaGFwZTo6Z2V0
SW5zaWRlSW50ZXJ2YWxzLgorICAgICAgICAqIHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmg6Cisg
ICAgICAgIChXcmFwU2hhcGVJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OldyYXBTaGFwZUluZm86
OnNoYXBlTG9naWNhbEJvdHRvbSk6IENhbGN1bGF0ZSB0aGUgbG9naWNhbCBib3R0b20gb2YgYW4K
KyAgICAgICAgRXhjbHVzaW9uIFNoYXBlLgorICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBlSW5m
bzo6aGFzU2VnbWVudHMpOiBBbGxvdyBoYXNTZWdtZW50cyB0byBiZSBjYWxsZWQgZXZlbiB3aGVu
CisgICAgICAgIGEgbGluZSBkb2VzIG5vdCBvdmVybGFwIGEgc2hhcGUuCisgICAgICAgIChXZWJD
b3JlOjpXcmFwU2hhcGVJbmZvOjpsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcyk6IFRlc3Qgd2hldGhl
ciBhIGxpbmUncyB0b3AvYm90dG9tCisgICAgICAgIG92ZXJsYXAgYSBzaGFwZSdzIHRvcC9ib3R0
b20uCisKIDIwMTItMDktMjAgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5v
cmc+CiAKICAgICAgICAgUmVtb3ZlIGlzU3RhcnRDb2x1bW4gaW4gdGhlIGJvcmRlciBjb2xsYXBz
aW5nIGNvZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25S
ZWN0YW5nbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3Rhbmds
ZS5jcHAKaW5kZXggNzhmODNiMDU1MTNlMWNkYjU4Zjg4Y2JmZjhlMDZkN2I3YTdhYTZhMy4uNTg5
ZWM2ZjdiY2UzZjI3YjYzZGIwNzVjZjNhMjdjYzg1NWZhNDRlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblJlY3RhbmdsZS5jcHAKQEAgLTczLDcgKzczLDcgQEAg
dm9pZCBFeGNsdXNpb25SZWN0YW5nbGU6OmdldEluc2lkZUludGVydmFscyhmbG9hdCB5MSwgZmxv
YXQgeTIsIFZlY3RvcjxFeGNsdXNpb24KICAgICBpZiAoeTEgPiB5MikKICAgICAgICAgc3RkOjpz
d2FwKHkxLCB5Mik7CiAKLSAgICBpZiAoeTEgPCBtX3kgfHwgeTIgPj0gbV95ICsgbV9oZWlnaHQp
CisgICAgaWYgKHkxIDwgbV95IHx8IHkyID4gbV95ICsgbV9oZWlnaHQpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGZsb2F0IHgxID0gbV94OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBjYmNjOTg4YWEyYWFkYjI0ZDI5ZmRh
M2E4ODE0OTM1NTAyMDEzMmVkLi40ODE0OGU4YzhjNTgzYzUxNjUyYzU5YzgwMDI1MTg1ZDM1NzQz
ZmQ0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5l
TGF5b3V0LmNwcApAQCAtODIsMTEgKzgyLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRVhD
TFVTSU9OUykKICAgICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IG1fYmxvY2st
PndyYXBTaGFwZUluZm8oKTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBv
cnQgZm9yIG11bHRpcGxlIHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQot
ICAgICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9
PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgewotICAgICAgICAgICAgLy8gQWxs
IGludGVyaW9yIHNoYXBlIHBvc2l0aW9ucyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVu
dAotICAgICAgICAgICAgQVNTRVJUKHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpOworICAg
ICAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5oYXNTZWdtZW50cygpKQog
ICAgICAgICAgICAgbV9zZWdtZW50ID0gJndyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF07Ci0g
ICAgICAgIH0KICNlbmRpZgogICAgICAgICB1cGRhdGVBdmFpbGFibGVXaWR0aCgpOwogICAgIH0K
QEAgLTgwNSw3ICs4MDIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0
aW9uUG9zaXRpb25zRm9yTGluZShSb290SW5saW5lQm94KiBsaW5lQm94LAogICAgIGZsb2F0IGxv
Z2ljYWxSaWdodCA9IHBpeGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUobG9naWNh
bEhlaWdodCgpLCBmaXJzdExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICNpZiBFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCiAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHRoaXMtPndy
YXBTaGFwZUluZm8oKTsKLSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5s
aW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgeworICAgIGlm
ICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKICAgICAg
ICAgbG9naWNhbExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2Vn
bWVudHMoKVswXS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJp
Z2h0ID0gbWluPGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0u
bG9naWNhbFJpZ2h0KSwgbG9naWNhbFJpZ2h0KTsKICAgICB9CkBAIC0xMzIzLDggKzEzMjAsMTMg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAg
ICAgICAgIC8vIEZJWE1FOiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20g
YSBwYXJlbnQsIHdlIHdpbGwgbmVlZCB0byBhZGp1c3QKICAgICAgICAgLy8gdGhlIGhlaWdodCBj
b29yZGluYXRlCi0gICAgICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAgICAgICAgICAgd3JhcFNo
YXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAg
ICAvLyBGSVhNRTogQnVnIDk1MzYxOiBJdCBpcyBwb3NzaWJsZSBmb3IgYSBsaW5lIHRvIGdyb3cg
YmV5b25kIGxpbmVIZWlnaHQsIGluIHdoaWNoCisgICAgICAgIC8vIGNhc2UgdGhlc2Ugc2VnbWVu
dHMgbWF5IGJlIGluY29ycmVjdC4KKyAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pIHsKKyAgICAg
ICAgICAgIExheW91dFVuaXQgbGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAg
IExheW91dFVuaXQgbGluZUJvdHRvbSA9IGxpbmVUb3AgKyBsaW5lSGVpZ2h0KGxheW91dFN0YXRl
LmxpbmVJbmZvKCkuaXNGaXJzdExpbmUoKSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhv
cml6b250YWxMaW5lIDogVmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMp
OworICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5l
VG9wLCBsaW5lQm90dG9tKTsKKyAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVuZCA9IGxpbmVC
cmVha2VyLm5leHRMaW5lQnJlYWsocmVzb2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJl
bmRlclRleHRJbmZvLCBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhl
bmF0ZWRMaW5lcyk7CiAgICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkpIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAppbmRleCAwYTE2Y2M1
MWY0OWM3NDMyZTY4ZGM4OTIzNDJiOTFkMTYxODVhOWRlLi45ZDRmMmE5YzU2NGUyMDc3YjgyNjli
ZjkyNzI1ZjRhZTE1ZGNjYzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
V3JhcFNoYXBlSW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFw
ZUluZm8uY3BwCkBAIC04NywxMyArODcsNiBAQCB2b2lkIFdyYXBTaGFwZUluZm86OnJlbW92ZVdy
YXBTaGFwZUluZm9Gb3JSZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCiAgICAg
d3JhcFNoYXBlSW5mb01hcCgpLnJlbW92ZShibG9jayk7CiB9CiAKLWJvb2wgV3JhcFNoYXBlSW5m
bzo6aGFzU2VnbWVudHMoKSBjb25zdAotewotICAgIC8vIEFsbCBsaW5lIHBvc2l0aW9ucyB3aXRo
aW4gYSBzaGFwZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudAotICAgIEFTU0VSVChs
aW5lU3RhdGUoKSAhPSBMSU5FX0lOU0lERV9TSEFQRSB8fCBtX3NlZ21lbnRzLnNpemUoKSk7Ci0g
ICAgcmV0dXJuIG1fc2VnbWVudHMuc2l6ZSgpOwotfQotCiB2b2lkIFdyYXBTaGFwZUluZm86OmNv
bXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNh
bEhlaWdodCkKIHsKICAgICBpZiAoIW1fd3JhcFNoYXBlU2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0
aCA9PSBtX2xvZ2ljYWxXaWR0aCAmJiBsb2dpY2FsSGVpZ2h0ID09IG1fbG9naWNhbEhlaWdodCkK
QEAgLTExMSwxNiArMTA0LDE4IEBAIHZvaWQgV3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6
ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsCiAgICAgQVNTRVJU
KG1fc2hhcGUpOwogfQogCi1ib29sIFdyYXBTaGFwZUluZm86OmNvbXB1dGVTZWdtZW50c0Zvckxp
bmUoTGF5b3V0VW5pdCBsaW5lVG9wKQorYm9vbCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2VnbWVu
dHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKQogewor
ICAgIEFTU0VSVChsaW5lVG9wIDw9IGxpbmVCb3R0b20pOwogICAgIG1fbGluZVRvcCA9IGxpbmVU
b3A7CisgICAgbV9saW5lQm90dG9tID0gbGluZUJvdHRvbTsKICAgICBtX3NlZ21lbnRzLmNsZWFy
KCk7CiAKLSAgICBpZiAobGluZVN0YXRlKCkgPT0gTElORV9JTlNJREVfU0hBUEUpIHsKKyAgICBp
ZiAobGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSkgewogICAgICAgICBBU1NFUlQobV9zaGFwZSk7
CiAKICAgICAgICAgVmVjdG9yPEV4Y2x1c2lvbkludGVydmFsPiBpbnRlcnZhbHM7Ci0gICAgICAg
IG1fc2hhcGUtPmdldEluc2lkZUludGVydmFscyhsaW5lVG9wLCBsaW5lVG9wLCBpbnRlcnZhbHMp
OyAvLyBGSVhNRTogQnVnIDk1NDc5LCB3b3JrYXJvdW5kIGZvciBub3cKKyAgICAgICAgbV9zaGFw
ZS0+Z2V0SW5zaWRlSW50ZXJ2YWxzKGxpbmVUb3AsIHN0ZDo6bWluKGxpbmVCb3R0b20sIHNoYXBl
TG9naWNhbEJvdHRvbSgpKSwgaW50ZXJ2YWxzKTsKICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBpbnRlcnZhbHMuc2l6ZSgpOyBpKyspIHsKICAgICAgICAgICAgIExpbmVTZWdtZW50IHNl
Z21lbnQ7CiAgICAgICAgICAgICBzZWdtZW50LmxvZ2ljYWxMZWZ0ID0gaW50ZXJ2YWxzW2ldLngx
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgKaW5kZXggMDgwYjg0MmE4
OWViYTk5ZmIzNTYxMDhlYjE5NDY5ZTA1NDFlMTEzNi4uNjJiNGYzNDAwZWRkZTdlN2E2YmRlMGIz
OWY4YmE5NjYwOTM2N2YxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dy
YXBTaGFwZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5m
by5oCkBAIC01NCwxMiArNTQsNiBAQCB0eXBlZGVmIFZlY3RvcjxMaW5lU2VnbWVudD4gU2VnbWVu
dExpc3Q7CiBjbGFzcyBXcmFwU2hhcGVJbmZvIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKLSAgICBlbnVtIExpbmVTdGF0ZSB7Ci0gICAgICAgIExJTkVfQkVGT1JFX1NI
QVBFLAotICAgICAgICBMSU5FX0lOU0lERV9TSEFQRSwKLSAgICAgICAgTElORV9BRlRFUl9TSEFQ
RQotICAgIH07Ci0KICAgICB+V3JhcFNoYXBlSW5mbygpOwogCiAgICAgc3RhdGljIFBhc3NPd25Q
dHI8V3JhcFNoYXBlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2NrKiBibG9jaykgeyByZXR1cm4gYWRv
cHRQdHIobmV3IFdyYXBTaGFwZUluZm8oYmxvY2spKTsgfQpAQCAtNzMsMTQgKzY3LDIyIEBAIHB1
YmxpYzoKICAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwogICAgICAgICByZXR1cm4gbV9zaGFwZS0+
c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS55KCk7CiAgICAgfQotICAgIGJvb2wgaGFzU2VnbWVu
dHMoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9naWNhbEJvdHRvbSgpIGNvbnN0Cisg
ICAgeworICAgICAgICBBU1NFUlQobV9zaGFwZSk7CisgICAgICAgIHJldHVybiBtX3NoYXBlLT5z
aGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKTsKKyAgICB9CisgICAgYm9vbCBoYXNTZWdt
ZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbGluZU92ZXJsYXBzU2hhcGVCb3Vu
ZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsKKyAgICB9CiAgICAgY29uc3QgU2VnbWVudExpc3Qm
IHNlZ21lbnRzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChoYXNTZWdtZW50cygpKTsK
ICAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7CiAgICAgfQotICAgIGJvb2wgY29tcHV0ZVNlZ21l
bnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3ApOwotICAgIExpbmVTdGF0ZSBsaW5lU3RhdGUo
KSBjb25zdDsKKyAgICBib29sIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5l
VG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pOworICAgIGJvb2wgbGluZU92ZXJsYXBzU2hhcGVC
b3VuZHMoKSBjb25zdDsKICAgICB2b2lkIGNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dp
Y2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCk7CiAgICAgdm9pZCBkaXJ0eVdyYXBT
aGFwZVNpemUoKSB7IG1fd3JhcFNoYXBlU2l6ZURpcnR5ID0gdHJ1ZTsgfQogCkBAIC05MSw2ICs5
Myw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV4Y2x1c2lvblNoYXBlPiBtX3NoYXBlOwogCiAg
ICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7CisgICAgTGF5b3V0VW5pdCBtX2xpbmVCb3R0b207CiAg
ICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKICAgICBMYXlvdXRVbml0IG1fbG9naWNhbEhl
aWdodDsKIApAQCAtOTgsMTggKzEwMSwxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93cmFwU2hh
cGVTaXplRGlydHk7CiB9OwogCi1pbmxpbmUgV3JhcFNoYXBlSW5mbzo6TGluZVN0YXRlIFdyYXBT
aGFwZUluZm86OmxpbmVTdGF0ZSgpIGNvbnN0CitpbmxpbmUgYm9vbCBXcmFwU2hhcGVJbmZvOjps
aW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc2hhcGUpOwog
ICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5kcyA9IG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5n
Qm94KCk7Ci0KLSAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3VuZHMueSgpKQotICAgICAgICBy
ZXR1cm4gTElORV9CRUZPUkVfU0hBUEU7Ci0KLSAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3Vu
ZHMubWF4WSgpKQotICAgICAgICByZXR1cm4gTElORV9JTlNJREVfU0hBUEU7Ci0KLSAgICByZXR1
cm4gTElORV9BRlRFUl9TSEFQRTsKKyAgICByZXR1cm4gbV9saW5lVG9wIDw9IHNoYXBlQm91bmRz
Lm1heFkoKSAmJiBtX2xpbmVCb3R0b20gPj0gc2hhcGVCb3VuZHMueSgpOwogfQogCiB9CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDFiODczMzRkZjgxMTQ1M2ZlZDQ0YmM4MTQ5MGJjNjcwNWQ0ZjIzYi4uYzg3ODM5NTMyNzM1
NGFlMWNkYmI2NWI5ZDE2ZDk4YTdhYTVlYWI0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEy
LTA5LTIwICBCZWFyIFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NT
IEV4Y2x1c2lvbnNdIHNoYXBlLWluc2lkZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBi
YXNlZCBvbiBsaW5lIHBvc2l0aW9uIGFuZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCB0aGF0IGxpbmUgYm90dG9tIGFzIHdlbGwgYXMg
bGluZSB0b3AgaXMgdXNlZCB3aGVuIGNhbGN1bGF0aW5nIGxpbmUgc2VnbWVudHMKKyAgICAgICAg
Zm9yIGEgcm91bmRlZCByZWN0YW5nbGUuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1leHBlY3RlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lk
ZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sOiBBZGRlZC4KKwogMjAxMi0wOS0yMCAgQ3NhYmEgT3N6
dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBn
YXJkZW5pbmcuIFVuc2tpcCBmYXN0L2V4Y2x1c2lvbnMgdGVzdHMsIGJlY2F1c2UgdGhleSBwYXNz
IG5vdy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNp
ZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJl
Y3RhbmdsZS1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwOTUxZTAwNGZiZjE0N2ViNTY0ZDFi
ZmRjYTcyMGZiMWQ1NDE3YTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS1leHBl
Y3RlZC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAwcHgvMSBB
aGVtLCBzYW5zLXNlcmlmOworICAgICAgICB3aGl0ZS1zcGFjZTogcHJlOworICAgICAgICBjb2xv
cjogZ3JlZW47CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsK
KyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgUmVxdWlyZXMgQWhlbSBmb250
LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBh
IHJvdW5kZWQgcmVjdGFuZ2xlLgorICAgIFNob3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMg
aW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KKyAgICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPiBYIDxi
ci8+WFhYPGJyLz4gWCA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQt
cmVjdGFuZ2xlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk5N2JkODcx
YTcxZGM3NThhYTc4YzI1NjQ5MjZjZGEwN2FhYjZjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVk
LXJlY3RhbmdsZS5odG1sCkBAIC0wLDAgKzEsMjQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8
L3NjcmlwdD4KKzxzdHlsZT4KKyAgICAjc2hhcGUtaW5zaWRlIHsKKyAgICAgICAgZm9udDogMTAw
cHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBjb2xvcjogZ3JlZW47CisgICAgICAgIHdv
cmQtd3JhcDogYnJlYWstd29yZDsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWln
aHQ6IDMwMHB4OworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDAsIDAs
IDMwMHB4LCAzMDBweCwgMTAwcHgsIDEwMHB4KTsKKyAgICB9Cis8L3N0eWxlPgorPC9oZWFkPgor
PGJvZHk+CisgICAgUmVxdWlyZXMgQWhlbSBmb250LiBUZXN0cyB0aGF0IGlubGluZSBjb250ZW50
IGF2b2lkcyB0aGUgYm9yZGVyIHJhZGl1cyBvZiBhIHJvdW5kZWQgcmVjdGFuZ2xlLgorICAgIFNo
b3VsZCBkaXNwbGF5IGZpdmUgZ3JlZW4gYm94ZXMgaW4gdGhlIHNoYXBlIG9mIGEgcGx1cy4KKyAg
ICA8ZGl2IGlkPSJzaGFwZS1pbnNpZGUiPlhYWFhYPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165476</attachid>
            <date>2012-09-24 17:33:54 -0700</date>
            <delta_ts>2012-09-25 13:30:45 -0700</delta_ts>
            <desc>Updating patch</desc>
            <filename>bug-95479-20120924173315.patch</filename>
            <type>text/plain</type>
            <size>11523</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTJlMGI2ODRjNjUwOWZm
YTIyYWQ0MDYyMzkwMTNhOGEwMjcwMGQ5Mi4uZmQwMzg3YWQ5NTcwZGZlZmY2MjcxY2I0MTY3OTdj
MWJlNDFkYzY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA5LTI0ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IHNoYXBlLWluc2lkZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBiYXNlZCBvbiBsaW5l
IHBvc2l0aW9uIGFuZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGxpbmUgaGVpZ2h0IHRvIGxpbmUgdG9wIHRvIGNh
bGN1bGF0ZSBsaW5lIHNlZ21lbnRzIHVzaW5nIHRoZSBsaW5lJ3MgdXBwZXIKKyAgICAgICAgYW5k
IGxvd2VyIGxvZ2ljYWwgZWRnZXMuIEFsc28gdXNpbmcgdGhlIHNpbXBsZXIgbGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMgcmF0aGVyIHRoYW4KKyAgICAgICAgbGluZSBzdGF0ZSwgYXMgbGluZSByYW5n
ZXMgbWF5IG5vdyBvdmVybGFwIGEgc2hhcGUgd2l0aG91dCBiZWluZyBlbnRpcmVseSBjb250YWlu
ZWQKKyAgICAgICAgYnkgaXQuCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbAorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
aW5lV2lkdGg6OkxpbmVXaWR0aCk6IFVzZSBXcmFwU2hhcGVJbmZvOjpoYXNTZWdtZW50cyByYXRo
ZXIgdGhhbgorICAgICAgICBXcmFwU2hhcGVJbmZvOjpsaW5lU3RhdGUsIGFzIGxpbmUgcG9zaXRp
b25zIHdpdGhpbiBhIHNoYXBlIGFyZSBubyBsb25nZXIKKyAgICAgICAgZ3VhcmFudGVlZCB0byBh
bHdheXMgaGF2ZSBsaW5lIHNlZ21lbnRzLiAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Ojpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogUGFz
cyBsaW5lQm90dG9tIGFzIHdlbGwgYXMgbGluZVRvcAorICAgICAgICB0byBjb21wdXRlU2VnbWVu
dHNGb3JMaW5lLgorICAgICAgICAqIHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OldyYXBTaGFwZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUpOiBQYXNz
IGxpbmVCb3R0b20gYXMgd2VsbCBhcyBsaW5lVG9wCisgICAgICAgIHRvIEV4Y2x1c2lvblNoYXBl
OjpnZXRJbnNpZGVJbnRlcnZhbHMuCisgICAgICAgICogcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8u
aDoKKyAgICAgICAgKFdyYXBTaGFwZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBl
SW5mbzo6c2hhcGVMb2dpY2FsQm90dG9tKTogQ2FsY3VsYXRlIHRoZSBsb2dpY2FsIGJvdHRvbSBv
ZiBhbgorICAgICAgICBFeGNsdXNpb24gU2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpXcmFwU2hh
cGVJbmZvOjpoYXNTZWdtZW50cyk6IEFsbG93IGhhc1NlZ21lbnRzIHRvIGJlIGNhbGxlZCBldmVu
IHdoZW4KKyAgICAgICAgYSBsaW5lIGRvZXMgbm90IG92ZXJsYXAgYSBzaGFwZS4KKyAgICAgICAg
KFdlYkNvcmU6OldyYXBTaGFwZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRzKTogVGVzdCB3
aGV0aGVyIGEgbGluZSdzIHRvcC9ib3R0b20KKyAgICAgICAgb3ZlcmxhcCBhIHNoYXBlJ3MgdG9w
L2JvdHRvbS4KKwogMjAxMi0wOS0yNCAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW0Nocm9taXVtXVtNYWNdIFJlbW92ZSBsb2FkRm9udCBmcm9tIFBsYXRm
b3JtU3VwcG9ydApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tM
aW5lTGF5b3V0LmNwcAppbmRleCBiZmUwM2I4MDRlYzc2OTc0OGYwOGE5OTAxMmM4ODM1OTg4OTNj
MDZkLi5mOGEwNmMwNDE5MmNjNGJlMzM2MzVmZTkyMTllMDlkNTJhN2Y0YWQwIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApAQCAt
ODIsMTEgKzgyLDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAgICAg
ICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IG1fYmxvY2stPndyYXBTaGFwZUluZm8o
KTsKICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5MTg3ODogQWRkIHN1cHBvcnQgZm9yIG11bHRpcGxl
IHNlZ21lbnRzLCBjdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IG9uZQotICAgICAgICBpZiAod3Jh
cFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBXcmFwU2hhcGVJbmZv
OjpMSU5FX0lOU0lERV9TSEFQRSkgewotICAgICAgICAgICAgLy8gQWxsIGludGVyaW9yIHNoYXBl
IHBvc2l0aW9ucyBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudAotICAgICAgICAgICAg
QVNTRVJUKHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpOworICAgICAgICBpZiAod3JhcFNo
YXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5oYXNTZWdtZW50cygpKQogICAgICAgICAgICAgbV9z
ZWdtZW50ID0gJndyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF07Ci0gICAgICAgIH0KICNlbmRp
ZgogICAgICAgICB1cGRhdGVBdmFpbGFibGVXaWR0aCgpOwogICAgIH0KQEAgLTgwNSw3ICs4MDIs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGlyZWN0aW9uUG9zaXRpb25zRm9y
TGluZShSb290SW5saW5lQm94KiBsaW5lQm94LAogICAgIGZsb2F0IGxvZ2ljYWxSaWdodCA9IHBp
eGVsU25hcHBlZExvZ2ljYWxSaWdodE9mZnNldEZvckxpbmUobG9naWNhbEhlaWdodCgpLCBmaXJz
dExpbmUsIGxpbmVMb2dpY2FsSGVpZ2h0KTsKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAg
ICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IHRoaXMtPndyYXBTaGFwZUluZm8oKTsK
LSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUoKSA9PSBX
cmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgeworICAgIGlmICh3cmFwU2hhcGVJbmZv
ICYmIHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKICAgICAgICAgbG9naWNhbExlZnQg
PSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dp
Y2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0ID0gbWluPGZsb2F0
PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJpZ2h0KSwg
bG9naWNhbFJpZ2h0KTsKICAgICB9CkBAIC0xMzIzLDggKzEzMjAsMTMgQEAgdm9pZCBSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRT
dGF0ZSwgSW5saW4KICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAgIC8vIEZJWE1F
OiBCdWcgODk5OTM6IElmIHRoZSB3cmFwIHNoYXBlIGNvbWVzIGZyb20gYSBwYXJlbnQsIHdlIHdp
bGwgbmVlZCB0byBhZGp1c3QKICAgICAgICAgLy8gdGhlIGhlaWdodCBjb29yZGluYXRlCi0gICAg
ICAgIGlmICh3cmFwU2hhcGVJbmZvKQotICAgICAgICAgICAgd3JhcFNoYXBlSW5mby0+Y29tcHV0
ZVNlZ21lbnRzRm9yTGluZShsb2dpY2FsSGVpZ2h0KCkpOworICAgICAgICAvLyBGSVhNRTogQnVn
IDk1MzYxOiBJdCBpcyBwb3NzaWJsZSBmb3IgYSBsaW5lIHRvIGdyb3cgYmV5b25kIGxpbmVIZWln
aHQsIGluIHdoaWNoCisgICAgICAgIC8vIGNhc2UgdGhlc2Ugc2VnbWVudHMgbWF5IGJlIGluY29y
cmVjdC4KKyAgICAgICAgaWYgKHdyYXBTaGFwZUluZm8pIHsKKyAgICAgICAgICAgIExheW91dFVu
aXQgbGluZVRvcCA9IGxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIExheW91dFVuaXQgbGlu
ZUJvdHRvbSA9IGxpbmVUb3AgKyBsaW5lSGVpZ2h0KGxheW91dFN0YXRlLmxpbmVJbmZvKCkuaXNG
aXJzdExpbmUoKSwgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IEhvcml6b250YWxMaW5lIDog
VmVydGljYWxMaW5lLCBQb3NpdGlvbk9mSW50ZXJpb3JMaW5lQm94ZXMpOworICAgICAgICAgICAg
d3JhcFNoYXBlSW5mby0+Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShsaW5lVG9wLCBsaW5lQm90dG9t
KTsKKyAgICAgICAgfQogI2VuZGlmCiAgICAgICAgIGVuZCA9IGxpbmVCcmVha2VyLm5leHRMaW5l
QnJlYWsocmVzb2x2ZXIsIGxheW91dFN0YXRlLmxpbmVJbmZvKCksIHJlbmRlclRleHRJbmZvLCBs
YXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lLCBjb25zZWN1dGl2ZUh5cGhlbmF0ZWRMaW5lcyk7CiAg
ICAgICAgIGlmIChyZXNvbHZlci5wb3NpdGlvbigpLmF0RW5kKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAppbmRleCAwY2U0NmU2NjU2NzIxOGRjNmYwOWY2
MDMyNmM2MjY4ZmNmYWM5M2JkLi40MGMwN2MxNWZmOTllNzE4YzJkNjJiYWFiYWVlYWU5YzA4NzE3
ZTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCkBAIC04
MywxMyArODMsNiBAQCB2b2lkIFdyYXBTaGFwZUluZm86OnJlbW92ZVdyYXBTaGFwZUluZm9Gb3JS
ZW5kZXJCbG9jayhjb25zdCBSZW5kZXJCbG9jayogYmxvY2spCiAgICAgd3JhcFNoYXBlSW5mb01h
cCgpLnJlbW92ZShibG9jayk7CiB9CiAKLWJvb2wgV3JhcFNoYXBlSW5mbzo6aGFzU2VnbWVudHMo
KSBjb25zdAotewotICAgIC8vIEFsbCBsaW5lIHBvc2l0aW9ucyB3aXRoaW4gYSBzaGFwZSBzaG91
bGQgaGF2ZSBhdCBsZWFzdCBvbmUgc2VnbWVudAotICAgIEFTU0VSVChsaW5lU3RhdGUoKSAhPSBM
SU5FX0lOU0lERV9TSEFQRSB8fCBtX3NlZ21lbnRzLnNpemUoKSk7Ci0gICAgcmV0dXJuIG1fc2Vn
bWVudHMuc2l6ZSgpOwotfQotCiB2b2lkIFdyYXBTaGFwZUluZm86OmNvbXB1dGVTaGFwZVNpemUo
TGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCkKIHsKICAg
ICBpZiAoIW1fd3JhcFNoYXBlU2l6ZURpcnR5ICYmIGxvZ2ljYWxXaWR0aCA9PSBtX2xvZ2ljYWxX
aWR0aCAmJiBsb2dpY2FsSGVpZ2h0ID09IG1fbG9naWNhbEhlaWdodCkKQEAgLTEwNywxNCArMTAw
LDE2IEBAIHZvaWQgV3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsCiAgICAgQVNTRVJUKG1fc2hhcGUpOwogfQog
Ci1ib29sIFdyYXBTaGFwZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBs
aW5lVG9wKQorYm9vbCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91
dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90dG9tKQogeworICAgIEFTU0VSVChsaW5l
VG9wIDw9IGxpbmVCb3R0b20pOwogICAgIG1fbGluZVRvcCA9IGxpbmVUb3A7CisgICAgbV9saW5l
Qm90dG9tID0gbGluZUJvdHRvbTsKICAgICBtX3NlZ21lbnRzLmNsZWFyKCk7CiAKLSAgICBpZiAo
bGluZVN0YXRlKCkgPT0gTElORV9JTlNJREVfU0hBUEUpIHsKKyAgICBpZiAobGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMoKSkgewogICAgICAgICBBU1NFUlQobV9zaGFwZSk7Ci0gICAgICAgIG1fc2hh
cGUtPmdldEluY2x1ZGVkSW50ZXJ2YWxzKGxpbmVUb3AsIGxpbmVUb3AsIG1fc2VnbWVudHMpOyAv
LyBGSVhNRTogQnVnIDk1NDc5LCB3b3JrYXJvdW5kIGZvciBub3cKKyAgICAgICAgbV9zaGFwZS0+
Z2V0SW5jbHVkZWRJbnRlcnZhbHMobGluZVRvcCwgc3RkOjptaW4obGluZUJvdHRvbSwgc2hhcGVM
b2dpY2FsQm90dG9tKCkpLCBtX3NlZ21lbnRzKTsKICAgICB9CiAgICAgcmV0dXJuIG1fc2VnbWVu
dHMuc2l6ZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBT
aGFwZUluZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgKaW5k
ZXggM2EyNjczYjRmYTFlYjA3ZGQzMzE5MzIzOTZkNTBmOThhNGQ0MmM0Mi4uY2Q5NzE3YTcyYjBk
M2E2NWU5ZGM2MjQyYTA1YjljOTA0Y2ViMTMxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
V3JhcFNoYXBlSW5mby5oCkBAIC00NiwxMiArNDYsNiBAQCBjbGFzcyBSZW5kZXJCbG9jazsKIGNs
YXNzIFdyYXBTaGFwZUluZm8gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgotICAgIGVudW0gTGluZVN0YXRlIHsKLSAgICAgICAgTElORV9CRUZPUkVfU0hBUEUsCi0gICAg
ICAgIExJTkVfSU5TSURFX1NIQVBFLAotICAgICAgICBMSU5FX0FGVEVSX1NIQVBFCi0gICAgfTsK
LQogICAgIH5XcmFwU2hhcGVJbmZvKCk7CiAKICAgICBzdGF0aWMgUGFzc093blB0cjxXcmFwU2hh
cGVJbmZvPiBjcmVhdGUoUmVuZGVyQmxvY2sqIGJsb2NrKSB7IHJldHVybiBhZG9wdFB0cihuZXcg
V3JhcFNoYXBlSW5mbyhibG9jaykpOyB9CkBAIC02NSwxNCArNTksMjIgQEAgcHVibGljOgogICAg
ICAgICBBU1NFUlQobV9zaGFwZSk7CiAgICAgICAgIHJldHVybiBtX3NoYXBlLT5zaGFwZUxvZ2lj
YWxCb3VuZGluZ0JveCgpLnkoKTsKICAgICB9Ci0gICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0
OworICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsQm90dG9tKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIEFTU0VSVChtX3NoYXBlKTsKKyAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9naWNh
bEJvdW5kaW5nQm94KCkubWF4WSgpOworICAgIH0KKyAgICBib29sIGhhc1NlZ21lbnRzKCkgY29u
c3QKKyAgICB7CisgICAgICAgIHJldHVybiBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpICYmIG1f
c2VnbWVudHMuc2l6ZSgpOworICAgIH0KICAgICBjb25zdCBTZWdtZW50TGlzdCYgc2VnbWVudHMo
KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKGhhc1NlZ21lbnRzKCkpOwogICAgICAgICBy
ZXR1cm4gbV9zZWdtZW50czsKICAgICB9Ci0gICAgYm9vbCBjb21wdXRlU2VnbWVudHNGb3JMaW5l
KExheW91dFVuaXQgbGluZVRvcCk7Ci0gICAgTGluZVN0YXRlIGxpbmVTdGF0ZSgpIGNvbnN0Owor
ICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExheW91
dFVuaXQgbGluZUJvdHRvbSk7CisgICAgYm9vbCBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygpIGNv
bnN0OwogICAgIHZvaWQgY29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxvZ2ljYWxXaWR0aCwg
TGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KTsKICAgICB2b2lkIGRpcnR5V3JhcFNoYXBlU2l6ZSgp
IHsgbV93cmFwU2hhcGVTaXplRGlydHkgPSB0cnVlOyB9CiAKQEAgLTgzLDYgKzg1LDcgQEAgcHJp
dmF0ZToKICAgICBPd25QdHI8RXhjbHVzaW9uU2hhcGU+IG1fc2hhcGU7CiAKICAgICBMYXlvdXRV
bml0IG1fbGluZVRvcDsKKyAgICBMYXlvdXRVbml0IG1fbGluZUJvdHRvbTsKICAgICBMYXlvdXRV
bml0IG1fbG9naWNhbFdpZHRoOwogICAgIExheW91dFVuaXQgbV9sb2dpY2FsSGVpZ2h0OwogCkBA
IC05MCwxOCArOTMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIG1fd3JhcFNoYXBlU2l6ZURpcnR5
OwogfTsKIAotaW5saW5lIFdyYXBTaGFwZUluZm86OkxpbmVTdGF0ZSBXcmFwU2hhcGVJbmZvOjps
aW5lU3RhdGUoKSBjb25zdAoraW5saW5lIGJvb2wgV3JhcFNoYXBlSW5mbzo6bGluZU92ZXJsYXBz
U2hhcGVCb3VuZHMoKSBjb25zdAogewogICAgIEFTU0VSVChtX3NoYXBlKTsKICAgICBGbG9hdFJl
Y3Qgc2hhcGVCb3VuZHMgPSBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpOwotCi0g
ICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLnkoKSkKLSAgICAgICAgcmV0dXJuIExJTkVf
QkVGT1JFX1NIQVBFOwotCi0gICAgaWYgKG1fbGluZVRvcCA8IHNoYXBlQm91bmRzLm1heFkoKSkK
LSAgICAgICAgcmV0dXJuIExJTkVfSU5TSURFX1NIQVBFOwotCi0gICAgcmV0dXJuIExJTkVfQUZU
RVJfU0hBUEU7CisgICAgcmV0dXJuIG1fbGluZVRvcCA8PSBzaGFwZUJvdW5kcy5tYXhZKCkgJiYg
bV9saW5lQm90dG9tID49IHNoYXBlQm91bmRzLnkoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMxMTYwZTRl
ZWQ5NjFjODYzOTU3MjgzZmNhNDkwZWJmOTRmN2I0MTQuLmRkODZjODQ5OTkxZWU2MGI4YTkwMzkz
YzViNGM1ZTE4ZjE0ZDE4ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0yNCAgQmVh
ciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25z
XSBzaGFwZS1pbnNpZGUgbGluZSBzZWdtZW50IGxheW91dCBzaG91bGQgYmUgYmFzZWQgb24gbGlu
ZSBwb3NpdGlvbiBhbmQgaGVpZ2h0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05NTQ3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRlc3QgdGhhdCBsaW5lIGJvdHRvbSBhcyB3ZWxsIGFzIGxpbmUgdG9wIGlz
IHVzZWQgd2hlbiBjYWxjdWxhdGluZyBsaW5lIHNlZ21lbnRzCisgICAgICAgIGZvciBhIHJvdW5k
ZWQgcmVjdGFuZ2xlLgorCisgICAgICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9z
aGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1y
ZWN0YW5nbGUuaHRtbDogQWRkZWQuCisKIDIwMTItMDktMjQgIFJvZ2VyIEZvbmcgIDxyb2dlcl9m
b25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBNYXJrIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvaW5hY3RpdmUtZG9jdW1lbnQtd2l0aC1lbXB0eS1zZWN1cml0eS1vcmlnaW4uaHRtbCB3
aGlsZSBHZW9mZiBHYXJlbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA5NTFlMDA0ZmJm
MTQ3ZWI1NjRkMWJmZGNhNzIwZmIxZDU0MTdhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVj
dGFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBmb250
OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7Cisg
ICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWln
aHQ6IDMwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBSZXF1aXJl
cyBBaGVtIGZvbnQuIFRlc3RzIHRoYXQgaW5saW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIg
cmFkaXVzIG9mIGEgcm91bmRlZCByZWN0YW5nbGUuCisgICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBn
cmVlbiBib3hlcyBpbiB0aGUgc2hhcGUgb2YgYSBwbHVzLgorICAgIDxkaXYgaWQ9InNoYXBlLWlu
c2lkZSI+IFggPGJyLz5YWFg8YnIvPiBYIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTk3YmQ4NzFhNzFkYzc1OGFhNzhjMjU2NDkyNmNkYTA3YWFiNmM0NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxl
ZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAg
ICBmb250OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsK
KyAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOworICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0
YW5nbGUoMCwgMCwgMzAwcHgsIDMwMHB4LCAxMDBweCwgMTAwcHgpOworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBSZXF1aXJlcyBBaGVtIGZvbnQuIFRlc3RzIHRoYXQgaW5s
aW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIGEgcm91bmRlZCByZWN0YW5n
bGUuCisgICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBncmVlbiBib3hlcyBpbiB0aGUgc2hhcGUgb2Yg
YSBwbHVzLgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+WFhYWFg8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165660</attachid>
            <date>2012-09-25 13:30:47 -0700</date>
            <delta_ts>2012-09-25 14:12:40 -0700</delta_ts>
            <desc>Updating changelog</desc>
            <filename>bug-95479-20120925133007.patch</filename>
            <type>text/plain</type>
            <size>12378</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NTQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E5NGNjYjc0YzliNzhj
MWE5Yzc3NzBhODVmNDE1NDc1NTJhOTFjYS4uZDM3ZGFlYWExZDUwNTdkMDg4NWVjNGZjNDgxZDQw
ZWJiNjA5NGE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA5LTI1ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNd
IHNoYXBlLWluc2lkZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBiYXNlZCBvbiBsaW5l
IHBvc2l0aW9uIGFuZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGxpbmUgaGVpZ2h0IHRvIGxpbmUgdG9wIHRvIGNh
bGN1bGF0ZSBsaW5lIHNlZ21lbnRzIHVzaW5nIHRoZSBsaW5lJ3MgdXBwZXIKKyAgICAgICAgYW5k
IGxvd2VyIGxvZ2ljYWwgZWRnZXMuIFRoZSBsYXN0IGxpbmUgaW4gYSBzaGFwZSBpcyBhbGxvd2Vk
IHRvIG92ZXJmbG93IHRoZSBzaGFwZSwKKyAgICAgICAgdXNpbmcgbGluZSB0b3AgYW5kIHNoYXBl
IGJvdHRvbSB0byBjYWxjdWxhdGUgdGhlIGF2YWlsYWJsZSBsaW5lIHNlZ21lbnRzLiBPdmVyZmxv
dworICAgICAgICBiZWhhdmlvciB3aWxsIGRldmVsb3AgaW4gZ3JlYXRlciBkZXRhaWwgYXMgdGhl
IHNwZWNpZmljYXRpb24gYWR2YW5jZXMgKHNlZSBidWcgOTIxNjUpLgorICAgICAgICAKKyAgICAg
ICAgQXMgbW9yZSBzaGFwZXMgYXJlIGFkZGVkLCBsaW5lIHBvc2l0aW9ucyB3aXRoaW4gYSBzaGFw
ZSBhcmUgbm8gbG9uZ2VyIGd1YXJhbnRlZWQgdG8KKyAgICAgICAgaGF2ZSBzZWdtZW50cyAoZWcs
IHRoZSBmaXJzdCBsaW5lIGluIGEgY2lyY3VsYXIgc2hhcGUgaW5zaWRlKSwgYW5kIHNvIG1hbnkg
aW5zdGFuY2VzCisgICAgICAgIG9mIGxpbmVTdGF0ZSB3ZXJlIHJlcGxhY2VkIHdpdGggaGFzU2Vn
bWVudHMuIExheW91dCBjb2RlIGFsc28gdXNlcyBsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcworICAg
ICAgICByYXRoZXIgdGhhbiBsaW5lU3RhdGUsIG5vdyB0aGF0IGxpbmVzIG1heSBwYXJ0aWFsbHkg
b3ZlcmxhcCBhIHNoYXBlIHdpdGhvdXQgYmVpbmcKKyAgICAgICAgY29tcGxldGVseSBjb250YWlu
ZWQgYnkgaXQuIEJlY2F1c2UgbGF5b3V0IGJlZ2lucyBhdCB0aGUgc2hhcGUncyBsb2dpY2FsIHRv
cCwgaG93ZXZlciwKKyAgICAgICAgd2Ugb25seSBydW4gaW50byB0aGlzIGVkZ2UgY2FzZSBsYXlp
bmcgb3V0IHRoZSBsYXN0IGxpbmUgd2l0aGluIGEgc2hhcGUtaW5zaWRlLgorCisgICAgICAgIFRl
c3Q6IGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVj
dGFuZ2xlLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGluZVdpZHRoOjpMaW5lV2lkdGgpOiBVc2UgV3JhcFNo
YXBlSW5mbzo6aGFzU2VnbWVudHMgcmF0aGVyIHRoYW4KKyAgICAgICAgV3JhcFNoYXBlSW5mbzo6
bGluZVN0YXRlLCBhcyBsaW5lIHBvc2l0aW9ucyB3aXRoaW4gYSBzaGFwZSBhcmUgbm8gbG9uZ2Vy
CisgICAgICAgIGd1YXJhbnRlZWQgdG8gYWx3YXlzIGhhdmUgbGluZSBzZWdtZW50cy4gCisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0aW9u
c0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRS
dW5zQW5kRmxvYXRzSW5SYW5nZSk6IFBhc3MgbGluZUJvdHRvbSBhcyB3ZWxsIGFzIGxpbmVUb3AK
KyAgICAgICAgdG8gY29tcHV0ZVNlZ21lbnRzRm9yTGluZS4KKyAgICAgICAgKiByZW5kZXJpbmcv
V3JhcFNoYXBlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXcmFwU2hhcGVJbmZvOjpjb21w
dXRlU2VnbWVudHNGb3JMaW5lKTogUGFzcyBsaW5lQm90dG9tIGFzIHdlbGwgYXMgbGluZVRvcAor
ICAgICAgICB0byBFeGNsdXNpb25TaGFwZTo6Z2V0SW5zaWRlSW50ZXJ2YWxzLgorICAgICAgICAq
IHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmg6CisgICAgICAgIChXcmFwU2hhcGVJbmZvKToKKyAg
ICAgICAgKFdlYkNvcmU6OldyYXBTaGFwZUluZm86OnNoYXBlTG9naWNhbEJvdHRvbSk6IENhbGN1
bGF0ZSB0aGUgbG9naWNhbCBib3R0b20gb2YgYW4KKyAgICAgICAgRXhjbHVzaW9uIFNoYXBlLgor
ICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBlSW5mbzo6aGFzU2VnbWVudHMpOiBBbGxvdyBoYXNT
ZWdtZW50cyB0byBiZSBjYWxsZWQgZXZlbiB3aGVuCisgICAgICAgIGEgbGluZSBkb2VzIG5vdCBv
dmVybGFwIGEgc2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpXcmFwU2hhcGVJbmZvOjpsaW5lT3Zl
cmxhcHNTaGFwZUJvdW5kcyk6IFRlc3Qgd2hldGhlciBhIGxpbmUncyB0b3AvYm90dG9tCisgICAg
ICAgIG92ZXJsYXAgYSBzaGFwZSdzIHRvcC9ib3R0b20uIFRoaXMgaW5jbHVkZXMgbGluZXMgdGhh
dCBiZWdpbiBiZWZvcmUgb3IgZW5kIGFmdGVyCisgICAgICAgIGEgc2hhcGUgYnV0IHN0aWxsIG92
ZXJsYXAgaXQuCisKIDIwMTItMDktMjUgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBJbmRleGVkREI6IE9uZSB0cmFuc2FjdGlvbiBjb29yZGluYXRvciBwZXIg
ZGF0YWJhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGlu
ZUxheW91dC5jcHAKaW5kZXggYjA3MmE1NTkwOTAwNGIyYTk0Y2M4MjliYzQyMzgyOTQ2NmVkZTk1
MS4uNzc5OTQ4MDRiNGI5M2U5YzYyM2E1ZGZkZmJkYTZkMjNmMDAwZmVlMyAxMDA3NTUKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAKQEAgLTg5
LDExICs4OSw4IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgICAg
IFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBsYXlvdXRXcmFwU2hhcGVJbmZvKG1fYmxv
Y2spOwogICAgICAgICAvLyBGSVhNRTogQnVnIDkxODc4OiBBZGQgc3VwcG9ydCBmb3IgbXVsdGlw
bGUgc2VnbWVudHMsIGN1cnJlbnRseSB3ZSBvbmx5IHN1cHBvcnQgb25lCi0gICAgICAgIGlmICh3
cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVTdGF0ZSgpID09IFdyYXBTaGFwZUlu
Zm86OkxJTkVfSU5TSURFX1NIQVBFKSB7Ci0gICAgICAgICAgICAvLyBBbGwgaW50ZXJpb3Igc2hh
cGUgcG9zaXRpb25zIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uZSBzZWdtZW50Ci0gICAgICAgICAg
ICBBU1NFUlQod3JhcFNoYXBlSW5mby0+aGFzU2VnbWVudHMoKSk7CisgICAgICAgIGlmICh3cmFw
U2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpCiAgICAgICAgICAgICBt
X3NlZ21lbnQgPSAmd3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXTsKLSAgICAgICAgfQogI2Vu
ZGlmCiAgICAgICAgIHVwZGF0ZUF2YWlsYWJsZVdpZHRoKCk7CiAgICAgfQpAQCAtODEyLDcgKzgw
OSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNG
b3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgZmxvYXQgbG9naWNhbFJpZ2h0ID0g
cGl4ZWxTbmFwcGVkTG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dpY2FsSGVpZ2h0KCksIGZp
cnN0TGluZSwgbGluZUxvZ2ljYWxIZWlnaHQpOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykK
ICAgICBXcmFwU2hhcGVJbmZvKiB3cmFwU2hhcGVJbmZvID0gbGF5b3V0V3JhcFNoYXBlSW5mbyh0
aGlzKTsKLSAgICBpZiAod3JhcFNoYXBlSW5mbyAmJiB3cmFwU2hhcGVJbmZvLT5saW5lU3RhdGUo
KSA9PSBXcmFwU2hhcGVJbmZvOjpMSU5FX0lOU0lERV9TSEFQRSkgeworICAgIGlmICh3cmFwU2hh
cGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKICAgICAgICAgbG9naWNh
bExlZnQgPSBtYXg8ZmxvYXQ+KHJvdW5kVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVsw
XS5sb2dpY2FsTGVmdCksIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgbG9naWNhbFJpZ2h0ID0gbWlu
PGZsb2F0PihmbG9vclRvSW50KHdyYXBTaGFwZUluZm8tPnNlZ21lbnRzKClbMF0ubG9naWNhbFJp
Z2h0KSwgbG9naWNhbFJpZ2h0KTsKICAgICB9CkBAIC0xMzM2LDggKzEzMzMsMTMgQEAgdm9pZCBS
ZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBs
YXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgYm9vbCBpc05ld1VCQVBhcmFncmFwaCA9IGxheW91
dFN0YXRlLmxpbmVJbmZvKCkucHJldmlvdXNMaW5lQnJva2VDbGVhbmx5KCk7CiAgICAgICAgIEZs
b2F0aW5nT2JqZWN0KiBsYXN0RmxvYXRGcm9tUHJldmlvdXNMaW5lID0gKG1fZmxvYXRpbmdPYmpl
Y3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgpKSA/IG1fZmxvYXRpbmdP
YmplY3RzLT5zZXQoKS5sYXN0KCkgOiAwOwogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLSAg
ICAgICAgaWYgKHdyYXBTaGFwZUluZm8pCi0gICAgICAgICAgICB3cmFwU2hhcGVJbmZvLT5jb21w
dXRlU2VnbWVudHNGb3JMaW5lKGxvZ2ljYWxIZWlnaHQoKSArIGFic29sdXRlTG9naWNhbFRvcCk7
CisgICAgICAgIC8vIEZJWE1FOiBCdWcgOTUzNjE6IEl0IGlzIHBvc3NpYmxlIGZvciBhIGxpbmUg
dG8gZ3JvdyBiZXlvbmQgbGluZUhlaWdodCwgaW4gd2hpY2gKKyAgICAgICAgLy8gY2FzZSB0aGVz
ZSBzZWdtZW50cyBtYXkgYmUgaW5jb3JyZWN0LgorICAgICAgICBpZiAod3JhcFNoYXBlSW5mbykg
eworICAgICAgICAgICAgTGF5b3V0VW5pdCBsaW5lVG9wID0gbG9naWNhbEhlaWdodCgpICsgYWJz
b2x1dGVMb2dpY2FsVG9wOworICAgICAgICAgICAgTGF5b3V0VW5pdCBsaW5lQm90dG9tID0gbGlu
ZVRvcCArIGxpbmVIZWlnaHQobGF5b3V0U3RhdGUubGluZUluZm8oKS5pc0ZpcnN0TGluZSgpLCBp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gSG9yaXpvbnRhbExpbmUgOiBWZXJ0aWNhbExpbmUs
IFBvc2l0aW9uT2ZJbnRlcmlvckxpbmVCb3hlcyk7CisgICAgICAgICAgICB3cmFwU2hhcGVJbmZv
LT5jb21wdXRlU2VnbWVudHNGb3JMaW5lKGxpbmVUb3AsIGxpbmVCb3R0b20pOworICAgICAgICB9
CiAjZW5kaWYKICAgICAgICAgZW5kID0gbGluZUJyZWFrZXIubmV4dExpbmVCcmVhayhyZXNvbHZl
ciwgbGF5b3V0U3RhdGUubGluZUluZm8oKSwgcmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21Q
cmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzKTsKICAgICAgICAgaWYgKHJl
c29sdmVyLnBvc2l0aW9uKCkuYXRFbmQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dy
YXBTaGFwZUluZm8uY3BwCmluZGV4IDBjZTQ2ZTY2NTY3MjE4ZGM2ZjA5ZjYwMzI2YzYyNjhmY2Zh
YzkzYmQuLjQwYzA3YzE1ZmY5OWU3MThjMmQ2MmJhYWJhZWVhZTljMDg3MTdlNDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAKQEAgLTgzLDEzICs4Myw2IEBA
IHZvaWQgV3JhcFNoYXBlSW5mbzo6cmVtb3ZlV3JhcFNoYXBlSW5mb0ZvclJlbmRlckJsb2NrKGNv
bnN0IFJlbmRlckJsb2NrKiBibG9jaykKICAgICB3cmFwU2hhcGVJbmZvTWFwKCkucmVtb3ZlKGJs
b2NrKTsKIH0KIAotYm9vbCBXcmFwU2hhcGVJbmZvOjpoYXNTZWdtZW50cygpIGNvbnN0Ci17Ci0g
ICAgLy8gQWxsIGxpbmUgcG9zaXRpb25zIHdpdGhpbiBhIHNoYXBlIHNob3VsZCBoYXZlIGF0IGxl
YXN0IG9uZSBzZWdtZW50Ci0gICAgQVNTRVJUKGxpbmVTdGF0ZSgpICE9IExJTkVfSU5TSURFX1NI
QVBFIHx8IG1fc2VnbWVudHMuc2l6ZSgpKTsKLSAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7
Ci19Ci0KIHZvaWQgV3JhcFNoYXBlSW5mbzo6Y29tcHV0ZVNoYXBlU2l6ZShMYXlvdXRVbml0IGxv
Z2ljYWxXaWR0aCwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0KQogewogICAgIGlmICghbV93cmFw
U2hhcGVTaXplRGlydHkgJiYgbG9naWNhbFdpZHRoID09IG1fbG9naWNhbFdpZHRoICYmIGxvZ2lj
YWxIZWlnaHQgPT0gbV9sb2dpY2FsSGVpZ2h0KQpAQCAtMTA3LDE0ICsxMDAsMTYgQEAgdm9pZCBX
cmFwU2hhcGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBM
YXlvdXRVbml0IGxvZ2ljYWwKICAgICBBU1NFUlQobV9zaGFwZSk7CiB9CiAKLWJvb2wgV3JhcFNo
YXBlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3ApCitib29s
IFdyYXBTaGFwZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9w
LCBMYXlvdXRVbml0IGxpbmVCb3R0b20pCiB7CisgICAgQVNTRVJUKGxpbmVUb3AgPD0gbGluZUJv
dHRvbSk7CiAgICAgbV9saW5lVG9wID0gbGluZVRvcDsKKyAgICBtX2xpbmVCb3R0b20gPSBsaW5l
Qm90dG9tOwogICAgIG1fc2VnbWVudHMuY2xlYXIoKTsKIAotICAgIGlmIChsaW5lU3RhdGUoKSA9
PSBMSU5FX0lOU0lERV9TSEFQRSkgeworICAgIGlmIChsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygp
KSB7CiAgICAgICAgIEFTU0VSVChtX3NoYXBlKTsKLSAgICAgICAgbV9zaGFwZS0+Z2V0SW5jbHVk
ZWRJbnRlcnZhbHMobGluZVRvcCwgbGluZVRvcCwgbV9zZWdtZW50cyk7IC8vIEZJWE1FOiBCdWcg
OTU0NzksIHdvcmthcm91bmQgZm9yIG5vdworICAgICAgICBtX3NoYXBlLT5nZXRJbmNsdWRlZElu
dGVydmFscyhsaW5lVG9wLCBzdGQ6Om1pbihsaW5lQm90dG9tLCBzaGFwZUxvZ2ljYWxCb3R0b20o
KSksIG1fc2VnbWVudHMpOwogICAgIH0KICAgICByZXR1cm4gbV9zZWdtZW50cy5zaXplKCk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaAppbmRleCAzYTI2NzNiNGZh
MWViMDdkZDMzMTkzMjM5NmQ1MGY5OGE0ZDQyYzQyLi5jZDk3MTdhNzJiMGQzYTY1ZTlkYzYyNDJh
MDViOWM5MDRjZWIxMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvV3Jh
cFNoYXBlSW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZv
LmgKQEAgLTQ2LDEyICs0Niw2IEBAIGNsYXNzIFJlbmRlckJsb2NrOwogY2xhc3MgV3JhcFNoYXBl
SW5mbyB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgZW51bSBM
aW5lU3RhdGUgewotICAgICAgICBMSU5FX0JFRk9SRV9TSEFQRSwKLSAgICAgICAgTElORV9JTlNJ
REVfU0hBUEUsCi0gICAgICAgIExJTkVfQUZURVJfU0hBUEUKLSAgICB9OwotCiAgICAgfldyYXBT
aGFwZUluZm8oKTsKIAogICAgIHN0YXRpYyBQYXNzT3duUHRyPFdyYXBTaGFwZUluZm8+IGNyZWF0
ZShSZW5kZXJCbG9jayogYmxvY2spIHsgcmV0dXJuIGFkb3B0UHRyKG5ldyBXcmFwU2hhcGVJbmZv
KGJsb2NrKSk7IH0KQEAgLTY1LDE0ICs1OSwyMiBAQCBwdWJsaWM6CiAgICAgICAgIEFTU0VSVCht
X3NoYXBlKTsKICAgICAgICAgcmV0dXJuIG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94
KCkueSgpOwogICAgIH0KLSAgICBib29sIGhhc1NlZ21lbnRzKCkgY29uc3Q7CisgICAgTGF5b3V0
VW5pdCBzaGFwZUxvZ2ljYWxCb3R0b20oKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
c2hhcGUpOworICAgICAgICByZXR1cm4gbV9zaGFwZS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3go
KS5tYXhZKCk7CisgICAgfQorICAgIGJvb2wgaGFzU2VnbWVudHMoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgJiYgbV9zZWdtZW50cy5zaXpl
KCk7CisgICAgfQogICAgIGNvbnN0IFNlZ21lbnRMaXN0JiBzZWdtZW50cygpIGNvbnN0CiAgICAg
ewogICAgICAgICBBU1NFUlQoaGFzU2VnbWVudHMoKSk7CiAgICAgICAgIHJldHVybiBtX3NlZ21l
bnRzOwogICAgIH0KLSAgICBib29sIGNvbXB1dGVTZWdtZW50c0ZvckxpbmUoTGF5b3V0VW5pdCBs
aW5lVG9wKTsKLSAgICBMaW5lU3RhdGUgbGluZVN0YXRlKCkgY29uc3Q7CisgICAgYm9vbCBjb21w
dXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5pdCBsaW5lQm90
dG9tKTsKKyAgICBib29sIGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3Q7CiAgICAgdm9p
ZCBjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNhbFdpZHRoLCBMYXlvdXRVbml0IGxv
Z2ljYWxIZWlnaHQpOwogICAgIHZvaWQgZGlydHlXcmFwU2hhcGVTaXplKCkgeyBtX3dyYXBTaGFw
ZVNpemVEaXJ0eSA9IHRydWU7IH0KIApAQCAtODMsNiArODUsNyBAQCBwcml2YXRlOgogICAgIE93
blB0cjxFeGNsdXNpb25TaGFwZT4gbV9zaGFwZTsKIAogICAgIExheW91dFVuaXQgbV9saW5lVG9w
OworICAgIExheW91dFVuaXQgbV9saW5lQm90dG9tOwogICAgIExheW91dFVuaXQgbV9sb2dpY2Fs
V2lkdGg7CiAgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxIZWlnaHQ7CiAKQEAgLTkwLDE4ICs5Mywx
MSBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93cmFwU2hhcGVTaXplRGlydHk7CiB9OwogCi1pbmxp
bmUgV3JhcFNoYXBlSW5mbzo6TGluZVN0YXRlIFdyYXBTaGFwZUluZm86OmxpbmVTdGF0ZSgpIGNv
bnN0CitpbmxpbmUgYm9vbCBXcmFwU2hhcGVJbmZvOjpsaW5lT3ZlcmxhcHNTaGFwZUJvdW5kcygp
IGNvbnN0CiB7CiAgICAgQVNTRVJUKG1fc2hhcGUpOwogICAgIEZsb2F0UmVjdCBzaGFwZUJvdW5k
cyA9IG1fc2hhcGUtPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCk7Ci0KLSAgICBpZiAobV9saW5l
VG9wIDwgc2hhcGVCb3VuZHMueSgpKQotICAgICAgICByZXR1cm4gTElORV9CRUZPUkVfU0hBUEU7
Ci0KLSAgICBpZiAobV9saW5lVG9wIDwgc2hhcGVCb3VuZHMubWF4WSgpKQotICAgICAgICByZXR1
cm4gTElORV9JTlNJREVfU0hBUEU7Ci0KLSAgICByZXR1cm4gTElORV9BRlRFUl9TSEFQRTsKKyAg
ICByZXR1cm4gbV9saW5lVG9wIDw9IHNoYXBlQm91bmRzLm1heFkoKSAmJiBtX2xpbmVCb3R0b20g
Pj0gc2hhcGVCb3VuZHMueSgpOwogfQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTdhZmVlMjI2NmI5NjhmMWFhOTgz
MjFjNWI3ZTYyMjk2MTE0NmVhMC4uMDM3ZDUyNmEwYjEyZDcwMGQ5ZjliNTg1M2IyOGQ5NThhYjll
NTFiZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTA5LTI1ICBCZWFyIFRyYXZpcyAgPGJl
dHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIEV4Y2x1c2lvbnNdIHNoYXBlLWluc2lk
ZSBsaW5lIHNlZ21lbnQgbGF5b3V0IHNob3VsZCBiZSBiYXNlZCBvbiBsaW5lIHBvc2l0aW9uIGFu
ZCBoZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk1NDc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCB0aGF0IGxpbmUgYm90dG9tIGFzIHdlbGwgYXMgbGluZSB0b3AgaXMgdXNlZCB3aGVuIGNh
bGN1bGF0aW5nIGxpbmUgc2VnbWVudHMKKyAgICAgICAgZm9yIGEgcm91bmRlZCByZWN0YW5nbGUu
CisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1y
b3VuZGVkLXJlY3RhbmdsZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4
Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1s
OiBBZGRlZC4KKwogMjAxMi0wOS0yNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5pbmcuIFVwZGF0aW5nIGV4cGVjdGF0aW9u
cyBhZnRlciByMTI5NTI5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRl
LXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTA5NTFlMDA0ZmJm
MTQ3ZWI1NjRkMWJmZGNhNzIwZmIxZDU0MTdhNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVj
dGFuZ2xlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAgICBmb250
OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIHdoaXRlLXNwYWNlOiBwcmU7Cisg
ICAgICAgIGNvbG9yOiBncmVlbjsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWln
aHQ6IDMwMHB4OworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBSZXF1aXJl
cyBBaGVtIGZvbnQuIFRlc3RzIHRoYXQgaW5saW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIg
cmFkaXVzIG9mIGEgcm91bmRlZCByZWN0YW5nbGUuCisgICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBn
cmVlbiBib3hlcyBpbiB0aGUgc2hhcGUgb2YgYSBwbHVzLgorICAgIDxkaXYgaWQ9InNoYXBlLWlu
c2lkZSI+IFggPGJyLz5YWFg8YnIvPiBYIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9z
aGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTk3YmQ4NzFhNzFkYzc1OGFhNzhjMjU2NDkyNmNkYTA3YWFiNmM0NwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5z
aWRlLXJvdW5kZWQtcmVjdGFuZ2xlLmh0bWwKQEAgLTAsMCArMSwyNCBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmludGVybmFscykK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRDU1NFeGNsdXNpb25zRW5hYmxl
ZCh0cnVlKTsKKzwvc2NyaXB0PgorPHN0eWxlPgorICAgICNzaGFwZS1pbnNpZGUgeworICAgICAg
ICBmb250OiAxMDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsK
KyAgICAgICAgd29yZC13cmFwOiBicmVhay13b3JkOworICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0
YW5nbGUoMCwgMCwgMzAwcHgsIDMwMHB4LCAxMDBweCwgMTAwcHgpOworICAgIH0KKzwvc3R5bGU+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICBSZXF1aXJlcyBBaGVtIGZvbnQuIFRlc3RzIHRoYXQgaW5s
aW5lIGNvbnRlbnQgYXZvaWRzIHRoZSBib3JkZXIgcmFkaXVzIG9mIGEgcm91bmRlZCByZWN0YW5n
bGUuCisgICAgU2hvdWxkIGRpc3BsYXkgZml2ZSBncmVlbiBib3hlcyBpbiB0aGUgc2hhcGUgb2Yg
YSBwbHVzLgorICAgIDxkaXYgaWQ9InNoYXBlLWluc2lkZSI+WFhYWFg8L2Rpdj4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>
<flag name="review"
          id="177787"
          type_id="1"
          status="+"
          setter="leviw"
    />
    <flag name="commit-queue"
          id="177790"
          type_id="3"
          status="-"
          setter="leviw"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165667</attachid>
            <date>2012-09-25 14:12:40 -0700</date>
            <delta_ts>2012-09-25 20:38:38 -0700</delta_ts>
            <desc>Adding links to changelog</desc>
            <filename>95479.patch</filename>
            <type>text/plain</type>
            <size>12042</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhN2FmZWUyLi45MTU0NTRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMDkt
MjUgIEJlYXIgVHJhdmlzICA8YmV0cmF2aXNAYWRvYmUuY29tPgorCisgICAgICAgIFtDU1MgRXhj
bHVzaW9uc10gc2hhcGUtaW5zaWRlIGxpbmUgc2VnbWVudCBsYXlvdXQgc2hvdWxkIGJlIGJhc2Vk
IG9uIGxpbmUgcG9zaXRpb24gYW5kIGhlaWdodAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU0NzkKKworICAgICAgICBSZXZpZXdlZCBieSBMZXZpIFdl
aW50cmF1Yi4KKworICAgICAgICBUZXN0IHRoYXQgbGluZSBib3R0b20gYXMgd2VsbCBhcyBsaW5l
IHRvcCBpcyB1c2VkIHdoZW4gY2FsY3VsYXRpbmcgbGluZSBzZWdtZW50cworICAgICAgICBmb3Ig
YSByb3VuZGVkIHJlY3RhbmdsZS4KKworICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1p
bnNpZGUvc2hhcGUtaW5zaWRlLXJvdW5kZWQtcmVjdGFuZ2xlLWV4cGVjdGVkLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGZhc3QvZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLXJv
dW5kZWQtcmVjdGFuZ2xlLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA5LTI1ICBMZXZpIFdlaW50cmF1
YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4g
VXBkYXRpbmcgZXhwZWN0YXRpb25zIGFmdGVyIHIxMjk1MjkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1yb3VuZGVkLXJl
Y3RhbmdsZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MDk1MWUwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUt
cm91bmRlZC1yZWN0YW5nbGUtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7Cisg
ICAgICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgd2hpdGUtc3Bh
Y2U6IHByZTsKKyAgICAgICAgY29sb3I6IGdyZWVuOworICAgICAgICB3aWR0aDogMzAwcHg7Cisg
ICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIFJlcXVpcmVzIEFoZW0gZm9udC4gVGVzdHMgdGhhdCBpbmxpbmUgY29udGVudCBhdm9pZHMg
dGhlIGJvcmRlciByYWRpdXMgb2YgYSByb3VuZGVkIHJlY3RhbmdsZS4KKyAgICBTaG91bGQgZGlz
cGxheSBmaXZlIGdyZWVuIGJveGVzIGluIHRoZSBzaGFwZSBvZiBhIHBsdXMuCisgICAgPGRpdiBp
ZD0ic2hhcGUtaW5zaWRlIj4gWCA8YnIvPlhYWDxici8+IFggPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRl
L3NoYXBlLWluc2lkZS1yb3VuZGVkLXJlY3RhbmdsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45OTdiZDg3Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1p
bnNpZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbApAQCAtMCwwICsxLDI0IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFi
bGVkKHRydWUpOworPC9zY3JpcHQ+Cis8c3R5bGU+CisgICAgI3NoYXBlLWluc2lkZSB7CisgICAg
ICAgIGZvbnQ6IDEwMHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdyZWVu
OworICAgICAgICB3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7CisgICAgICAgIHdpZHRoOiAzMDBweDsK
KyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IHJl
Y3RhbmdsZSgwLCAwLCAzMDBweCwgMzAwcHgsIDEwMHB4LCAxMDBweCk7CisgICAgfQorPC9zdHls
ZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIFJlcXVpcmVzIEFoZW0gZm9udC4gVGVzdHMgdGhhdCBp
bmxpbmUgY29udGVudCBhdm9pZHMgdGhlIGJvcmRlciByYWRpdXMgb2YgYSByb3VuZGVkIHJlY3Rh
bmdsZS4KKyAgICBTaG91bGQgZGlzcGxheSBmaXZlIGdyZWVuIGJveGVzIGluIHRoZSBzaGFwZSBv
ZiBhIHBsdXMuCisgICAgPGRpdiBpZD0ic2hhcGUtaW5zaWRlIj5YWFhYWDwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdhOTRjY2IuLmFiYTZjYjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NyBAQAorMjAxMi0wOS0yNSAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5j
b20+CisKKyAgICAgICAgW0NTUyBFeGNsdXNpb25zXSBzaGFwZS1pbnNpZGUgbGluZSBzZWdtZW50
IGxheW91dCBzaG91bGQgYmUgYmFzZWQgb24gbGluZSBwb3NpdGlvbiBhbmQgaGVpZ2h0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NTQ3OQorCisgICAg
ICAgIFJldmlld2VkIGJ5IExldmkgV2VpbnRyYXViLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRk
cyBsaW5lIGhlaWdodCB0byBsaW5lIHRvcCB0byBjYWxjdWxhdGUgbGluZSBzZWdtZW50cyB1c2lu
ZyB0aGUgbGluZSdzIHVwcGVyCisgICAgICAgIGFuZCBsb3dlciBsb2dpY2FsIGVkZ2VzLiBUaGUg
bGFzdCBsaW5lIGluIGEgc2hhcGUgaXMgYWxsb3dlZCB0byBvdmVyZmxvdyB0aGUgc2hhcGUsCisg
ICAgICAgIHVzaW5nIGxpbmUgdG9wIGFuZCBzaGFwZSBib3R0b20gdG8gY2FsY3VsYXRlIHRoZSBh
dmFpbGFibGUgbGluZSBzZWdtZW50cy4gT3ZlcmZsb3cKKyAgICAgICAgYmVoYXZpb3Igd2lsbCBk
ZXZlbG9wIGluIGdyZWF0ZXIgZGV0YWlsIGFzIHRoZSBzcGVjaWZpY2F0aW9uIGFkdmFuY2VzLiBG
b3IgbW9yZSBvbgorICAgICAgICBvdmVyZmxvdywgc2VlOgorICAgICAgICAtIGh0dHA6Ly9kZXYu
dzMub3JnL2Nzc3dnL2NzczMtZXhjbHVzaW9ucy8jc2hhcGUtaW5zaWRlLXByb3BlcnR5IGFuZAor
ICAgICAgICAtIGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5jZ2k/aWQ9
MTY0NjAKKworICAgICAgICBBcyBtb3JlIHNoYXBlcyBhcmUgYWRkZWQsIGxpbmUgcG9zaXRpb25z
IHdpdGhpbiBhIHNoYXBlIGFyZSBubyBsb25nZXIgZ3VhcmFudGVlZCB0bworICAgICAgICBoYXZl
IHNlZ21lbnRzIChlZywgdGhlIGZpcnN0IGxpbmUgaW4gYSBjaXJjdWxhciBzaGFwZSBpbnNpZGUp
LCBhbmQgc28gbWFueSBpbnN0YW5jZXMKKyAgICAgICAgb2YgbGluZVN0YXRlIHdlcmUgcmVwbGFj
ZWQgd2l0aCBoYXNTZWdtZW50cy4gTGF5b3V0IGNvZGUgYWxzbyB1c2VzIGxpbmVPdmVybGFwc1No
YXBlQm91bmRzCisgICAgICAgIHJhdGhlciB0aGFuIGxpbmVTdGF0ZSwgbm93IHRoYXQgbGluZXMg
bWF5IHBhcnRpYWxseSBvdmVybGFwIGEgc2hhcGUgd2l0aG91dCBiZWluZworICAgICAgICBjb21w
bGV0ZWx5IGNvbnRhaW5lZCBieSBpdC4gQmVjYXVzZSBsYXlvdXQgYmVnaW5zIGF0IHRoZSBzaGFw
ZSdzIGxvZ2ljYWwgdG9wLCBob3dldmVyLAorICAgICAgICB3ZSBvbmx5IHJ1biBpbnRvIHRoaXMg
ZWRnZSBjYXNlIGxheWluZyBvdXQgdGhlIGxhc3QgbGluZSB3aXRoaW4gYSBzaGFwZS1pbnNpZGUu
CisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNp
ZGUtcm91bmRlZC1yZWN0YW5nbGUuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrTGluZUxheW91dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0
aCk6IFVzZSBXcmFwU2hhcGVJbmZvOjpoYXNTZWdtZW50cyByYXRoZXIgdGhhbgorICAgICAgICBX
cmFwU2hhcGVJbmZvOjpsaW5lU3RhdGUsIGFzIGxpbmUgcG9zaXRpb25zIHdpdGhpbiBhIHNoYXBl
IGFyZSBubyBsb25nZXIKKyAgICAgICAgZ3VhcmFudGVlZCB0byBhbHdheXMgaGF2ZSBsaW5lIHNl
Z21lbnRzLiAKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lRGly
ZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogUGFzcyBsaW5lQm90dG9tIGFzIHdl
bGwgYXMgbGluZVRvcAorICAgICAgICB0byBjb21wdXRlU2VnbWVudHNGb3JMaW5lLgorICAgICAg
ICAqIHJlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldyYXBT
aGFwZUluZm86OmNvbXB1dGVTZWdtZW50c0ZvckxpbmUpOiBQYXNzIGxpbmVCb3R0b20gYXMgd2Vs
bCBhcyBsaW5lVG9wCisgICAgICAgIHRvIEV4Y2x1c2lvblNoYXBlOjpnZXRJbnNpZGVJbnRlcnZh
bHMuCisgICAgICAgICogcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaDoKKyAgICAgICAgKFdyYXBT
aGFwZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6V3JhcFNoYXBlSW5mbzo6c2hhcGVMb2dpY2Fs
Qm90dG9tKTogQ2FsY3VsYXRlIHRoZSBsb2dpY2FsIGJvdHRvbSBvZiBhbgorICAgICAgICBFeGNs
dXNpb24gU2hhcGUuCisgICAgICAgIChXZWJDb3JlOjpXcmFwU2hhcGVJbmZvOjpoYXNTZWdtZW50
cyk6IEFsbG93IGhhc1NlZ21lbnRzIHRvIGJlIGNhbGxlZCBldmVuIHdoZW4KKyAgICAgICAgYSBs
aW5lIGRvZXMgbm90IG92ZXJsYXAgYSBzaGFwZS4KKyAgICAgICAgKFdlYkNvcmU6OldyYXBTaGFw
ZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRzKTogVGVzdCB3aGV0aGVyIGEgbGluZSdzIHRv
cC9ib3R0b20KKyAgICAgICAgb3ZlcmxhcCBhIHNoYXBlJ3MgdG9wL2JvdHRvbS4gVGhpcyBpbmNs
dWRlcyBsaW5lcyB0aGF0IGJlZ2luIGJlZm9yZSBvciBlbmQgYWZ0ZXIKKyAgICAgICAgYSBzaGFw
ZSBidXQgc3RpbGwgb3ZlcmxhcCBpdC4KKwogMjAxMi0wOS0yNSAgSm9zaHVhIEJlbGwgIDxqc2Jl
bGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogT25lIHRyYW5zYWN0aW9uIGNv
b3JkaW5hdG9yIHBlciBkYXRhYmFzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAppbmRleCBiMDcyYTU1Li43Nzk5NDgwIDEwMDc1NQot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcApA
QCAtODksMTEgKzg5LDggQEAgcHVibGljOgogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKICAg
ICAgICAgV3JhcFNoYXBlSW5mbyogd3JhcFNoYXBlSW5mbyA9IGxheW91dFdyYXBTaGFwZUluZm8o
bV9ibG9jayk7CiAgICAgICAgIC8vIEZJWE1FOiBCdWcgOTE4Nzg6IEFkZCBzdXBwb3J0IGZvciBt
dWx0aXBsZSBzZWdtZW50cywgY3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBvbmUKLSAgICAgICAg
aWYgKHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+bGluZVN0YXRlKCkgPT0gV3JhcFNo
YXBlSW5mbzo6TElORV9JTlNJREVfU0hBUEUpIHsKLSAgICAgICAgICAgIC8vIEFsbCBpbnRlcmlv
ciBzaGFwZSBwb3NpdGlvbnMgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb25lIHNlZ21lbnQKLSAgICAg
ICAgICAgIEFTU0VSVCh3cmFwU2hhcGVJbmZvLT5oYXNTZWdtZW50cygpKTsKKyAgICAgICAgaWYg
KHdyYXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+aGFzU2VnbWVudHMoKSkKICAgICAgICAg
ICAgIG1fc2VnbWVudCA9ICZ3cmFwU2hhcGVJbmZvLT5zZWdtZW50cygpWzBdOwotICAgICAgICB9
CiAjZW5kaWYKICAgICAgICAgdXBkYXRlQXZhaWxhYmxlV2lkdGgoKTsKICAgICB9CkBAIC04MTIs
NyArODA5LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVjdGlvblBvc2l0
aW9uc0ZvckxpbmUoUm9vdElubGluZUJveCogbGluZUJveCwKICAgICBmbG9hdCBsb2dpY2FsUmln
aHQgPSBwaXhlbFNuYXBwZWRMb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxIZWlnaHQo
KSwgZmlyc3RMaW5lLCBsaW5lTG9naWNhbEhlaWdodCk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQogICAgIFdyYXBTaGFwZUluZm8qIHdyYXBTaGFwZUluZm8gPSBsYXlvdXRXcmFwU2hhcGVJ
bmZvKHRoaXMpOwotICAgIGlmICh3cmFwU2hhcGVJbmZvICYmIHdyYXBTaGFwZUluZm8tPmxpbmVT
dGF0ZSgpID09IFdyYXBTaGFwZUluZm86OkxJTkVfSU5TSURFX1NIQVBFKSB7CisgICAgaWYgKHdy
YXBTaGFwZUluZm8gJiYgd3JhcFNoYXBlSW5mby0+aGFzU2VnbWVudHMoKSkgewogICAgICAgICBs
b2dpY2FsTGVmdCA9IG1heDxmbG9hdD4ocm91bmRUb0ludCh3cmFwU2hhcGVJbmZvLT5zZWdtZW50
cygpWzBdLmxvZ2ljYWxMZWZ0KSwgbG9naWNhbExlZnQpOwogICAgICAgICBsb2dpY2FsUmlnaHQg
PSBtaW48ZmxvYXQ+KGZsb29yVG9JbnQod3JhcFNoYXBlSW5mby0+c2VnbWVudHMoKVswXS5sb2dp
Y2FsUmlnaHQpLCBsb2dpY2FsUmlnaHQpOwogICAgIH0KQEAgLTEzMzYsOCArMTMzMywxMyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLCBJbmxpbgogICAgICAgICBib29sIGlzTmV3VUJBUGFyYWdyYXBoID0g
bGF5b3V0U3RhdGUubGluZUluZm8oKS5wcmV2aW91c0xpbmVCcm9rZUNsZWFubHkoKTsKICAgICAg
ICAgRmxvYXRpbmdPYmplY3QqIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUgPSAobV9mbG9hdGlu
Z09iamVjdHMgJiYgIW1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5pc0VtcHR5KCkpID8gbV9mbG9h
dGluZ09iamVjdHMtPnNldCgpLmxhc3QoKSA6IDA7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05T
KQotICAgICAgICBpZiAod3JhcFNoYXBlSW5mbykKLSAgICAgICAgICAgIHdyYXBTaGFwZUluZm8t
PmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobG9naWNhbEhlaWdodCgpICsgYWJzb2x1dGVMb2dpY2Fs
VG9wKTsKKyAgICAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTogSXQgaXMgcG9zc2libGUgZm9yIGEg
bGluZSB0byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3aGljaAorICAgICAgICAvLyBjYXNl
IHRoZXNlIHNlZ21lbnRzIG1heSBiZSBpbmNvcnJlY3QuCisgICAgICAgIGlmICh3cmFwU2hhcGVJ
bmZvKSB7CisgICAgICAgICAgICBMYXlvdXRVbml0IGxpbmVUb3AgPSBsb2dpY2FsSGVpZ2h0KCkg
KyBhYnNvbHV0ZUxvZ2ljYWxUb3A7CisgICAgICAgICAgICBMYXlvdXRVbml0IGxpbmVCb3R0b20g
PSBsaW5lVG9wICsgbGluZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5mbygpLmlzRmlyc3RMaW5l
KCksIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2Fs
TGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKTsKKyAgICAgICAgICAgIHdyYXBTaGFw
ZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUJvdHRvbSk7CisgICAg
ICAgIH0KICNlbmRpZgogICAgICAgICBlbmQgPSBsaW5lQnJlYWtlci5uZXh0TGluZUJyZWFrKHJl
c29sdmVyLCBsYXlvdXRTdGF0ZS5saW5lSW5mbygpLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0
RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMpOwogICAgICAgICBp
ZiAocmVzb2x2ZXIucG9zaXRpb24oKS5hdEVuZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvV3JhcFNoYXBlSW5mby5jcHAKaW5kZXggMGNlNDZlNi4uNDBjMDdjMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmNwcApAQCAtODMsMTMgKzgzLDYgQEAgdm9p
ZCBXcmFwU2hhcGVJbmZvOjpyZW1vdmVXcmFwU2hhcGVJbmZvRm9yUmVuZGVyQmxvY2soY29uc3Qg
UmVuZGVyQmxvY2sqIGJsb2NrKQogICAgIHdyYXBTaGFwZUluZm9NYXAoKS5yZW1vdmUoYmxvY2sp
OwogfQogCi1ib29sIFdyYXBTaGFwZUluZm86Omhhc1NlZ21lbnRzKCkgY29uc3QKLXsKLSAgICAv
LyBBbGwgbGluZSBwb3NpdGlvbnMgd2l0aGluIGEgc2hhcGUgc2hvdWxkIGhhdmUgYXQgbGVhc3Qg
b25lIHNlZ21lbnQKLSAgICBBU1NFUlQobGluZVN0YXRlKCkgIT0gTElORV9JTlNJREVfU0hBUEUg
fHwgbV9zZWdtZW50cy5zaXplKCkpOwotICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKLX0K
LQogdm9pZCBXcmFwU2hhcGVJbmZvOjpjb21wdXRlU2hhcGVTaXplKExheW91dFVuaXQgbG9naWNh
bFdpZHRoLCBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQpCiB7CiAgICAgaWYgKCFtX3dyYXBTaGFw
ZVNpemVEaXJ0eSAmJiBsb2dpY2FsV2lkdGggPT0gbV9sb2dpY2FsV2lkdGggJiYgbG9naWNhbEhl
aWdodCA9PSBtX2xvZ2ljYWxIZWlnaHQpCkBAIC0xMDcsMTQgKzEwMCwxNiBAQCB2b2lkIFdyYXBT
aGFwZUluZm86OmNvbXB1dGVTaGFwZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91
dFVuaXQgbG9naWNhbAogICAgIEFTU0VSVChtX3NoYXBlKTsKIH0KIAotYm9vbCBXcmFwU2hhcGVJ
bmZvOjpjb21wdXRlU2VnbWVudHNGb3JMaW5lKExheW91dFVuaXQgbGluZVRvcCkKK2Jvb2wgV3Jh
cFNoYXBlSW5mbzo6Y29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3AsIExh
eW91dFVuaXQgbGluZUJvdHRvbSkKIHsKKyAgICBBU1NFUlQobGluZVRvcCA8PSBsaW5lQm90dG9t
KTsKICAgICBtX2xpbmVUb3AgPSBsaW5lVG9wOworICAgIG1fbGluZUJvdHRvbSA9IGxpbmVCb3R0
b207CiAgICAgbV9zZWdtZW50cy5jbGVhcigpOwogCi0gICAgaWYgKGxpbmVTdGF0ZSgpID09IExJ
TkVfSU5TSURFX1NIQVBFKSB7CisgICAgaWYgKGxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkpIHsK
ICAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwotICAgICAgICBtX3NoYXBlLT5nZXRJbmNsdWRlZElu
dGVydmFscyhsaW5lVG9wLCBsaW5lVG9wLCBtX3NlZ21lbnRzKTsgLy8gRklYTUU6IEJ1ZyA5NTQ3
OSwgd29ya2Fyb3VuZCBmb3Igbm93CisgICAgICAgIG1fc2hhcGUtPmdldEluY2x1ZGVkSW50ZXJ2
YWxzKGxpbmVUb3AsIHN0ZDo6bWluKGxpbmVCb3R0b20sIHNoYXBlTG9naWNhbEJvdHRvbSgpKSwg
bV9zZWdtZW50cyk7CiAgICAgfQogICAgIHJldHVybiBtX3NlZ21lbnRzLnNpemUoKTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvV3JhcFNoYXBlSW5mby5oCmluZGV4IDNhMjY3M2IuLmNkOTcx
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9XcmFwU2hhcGVJbmZvLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1dyYXBTaGFwZUluZm8uaApAQCAtNDYsMTIg
KzQ2LDYgQEAgY2xhc3MgUmVuZGVyQmxvY2s7CiBjbGFzcyBXcmFwU2hhcGVJbmZvIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBlbnVtIExpbmVTdGF0ZSB7Ci0g
ICAgICAgIExJTkVfQkVGT1JFX1NIQVBFLAotICAgICAgICBMSU5FX0lOU0lERV9TSEFQRSwKLSAg
ICAgICAgTElORV9BRlRFUl9TSEFQRQotICAgIH07Ci0KICAgICB+V3JhcFNoYXBlSW5mbygpOwog
CiAgICAgc3RhdGljIFBhc3NPd25QdHI8V3JhcFNoYXBlSW5mbz4gY3JlYXRlKFJlbmRlckJsb2Nr
KiBibG9jaykgeyByZXR1cm4gYWRvcHRQdHIobmV3IFdyYXBTaGFwZUluZm8oYmxvY2spKTsgfQpA
QCAtNjUsMTQgKzU5LDIyIEBAIHB1YmxpYzoKICAgICAgICAgQVNTRVJUKG1fc2hhcGUpOwogICAg
ICAgICByZXR1cm4gbV9zaGFwZS0+c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKS55KCk7CiAgICAg
fQotICAgIGJvb2wgaGFzU2VnbWVudHMoKSBjb25zdDsKKyAgICBMYXlvdXRVbml0IHNoYXBlTG9n
aWNhbEJvdHRvbSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV9zaGFwZSk7CisgICAg
ICAgIHJldHVybiBtX3NoYXBlLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLm1heFkoKTsKKyAg
ICB9CisgICAgYm9vbCBoYXNTZWdtZW50cygpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4g
bGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSAmJiBtX3NlZ21lbnRzLnNpemUoKTsKKyAgICB9CiAg
ICAgY29uc3QgU2VnbWVudExpc3QmIHNlZ21lbnRzKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChoYXNTZWdtZW50cygpKTsKICAgICAgICAgcmV0dXJuIG1fc2VnbWVudHM7CiAgICAgfQot
ICAgIGJvb2wgY29tcHV0ZVNlZ21lbnRzRm9yTGluZShMYXlvdXRVbml0IGxpbmVUb3ApOwotICAg
IExpbmVTdGF0ZSBsaW5lU3RhdGUoKSBjb25zdDsKKyAgICBib29sIGNvbXB1dGVTZWdtZW50c0Zv
ckxpbmUoTGF5b3V0VW5pdCBsaW5lVG9wLCBMYXlvdXRVbml0IGxpbmVCb3R0b20pOworICAgIGJv
b2wgbGluZU92ZXJsYXBzU2hhcGVCb3VuZHMoKSBjb25zdDsKICAgICB2b2lkIGNvbXB1dGVTaGFw
ZVNpemUoTGF5b3V0VW5pdCBsb2dpY2FsV2lkdGgsIExheW91dFVuaXQgbG9naWNhbEhlaWdodCk7
CiAgICAgdm9pZCBkaXJ0eVdyYXBTaGFwZVNpemUoKSB7IG1fd3JhcFNoYXBlU2l6ZURpcnR5ID0g
dHJ1ZTsgfQogCkBAIC04Myw2ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEV4Y2x1c2lv
blNoYXBlPiBtX3NoYXBlOwogCiAgICAgTGF5b3V0VW5pdCBtX2xpbmVUb3A7CisgICAgTGF5b3V0
VW5pdCBtX2xpbmVCb3R0b207CiAgICAgTGF5b3V0VW5pdCBtX2xvZ2ljYWxXaWR0aDsKICAgICBM
YXlvdXRVbml0IG1fbG9naWNhbEhlaWdodDsKIApAQCAtOTAsMTggKzkzLDExIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX3dyYXBTaGFwZVNpemVEaXJ0eTsKIH07CiAKLWlubGluZSBXcmFwU2hhcGVJ
bmZvOjpMaW5lU3RhdGUgV3JhcFNoYXBlSW5mbzo6bGluZVN0YXRlKCkgY29uc3QKK2lubGluZSBi
b29sIFdyYXBTaGFwZUluZm86OmxpbmVPdmVybGFwc1NoYXBlQm91bmRzKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQobV9zaGFwZSk7CiAgICAgRmxvYXRSZWN0IHNoYXBlQm91bmRzID0gbV9zaGFwZS0+
c2hhcGVMb2dpY2FsQm91bmRpbmdCb3goKTsKLQotICAgIGlmIChtX2xpbmVUb3AgPCBzaGFwZUJv
dW5kcy55KCkpCi0gICAgICAgIHJldHVybiBMSU5FX0JFRk9SRV9TSEFQRTsKLQotICAgIGlmICht
X2xpbmVUb3AgPCBzaGFwZUJvdW5kcy5tYXhZKCkpCi0gICAgICAgIHJldHVybiBMSU5FX0lOU0lE
RV9TSEFQRTsKLQotICAgIHJldHVybiBMSU5FX0FGVEVSX1NIQVBFOworICAgIHJldHVybiBtX2xp
bmVUb3AgPD0gc2hhcGVCb3VuZHMubWF4WSgpICYmIG1fbGluZUJvdHRvbSA+PSBzaGFwZUJvdW5k
cy55KCk7CiB9CiAKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>