<?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>108128</bug_id>
          
          <creation_ts>2013-01-28 16:02:52 -0800</creation_ts>
          <short_desc>[css exclusions] setting shape-inside on a parent does not relayout child blocks&apos; inline content</short_desc>
          <delta_ts>2013-03-01 13:04:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>110995</dependson>
          <blocked>89256</blocked>
    
    <blocked>111029</blocked>
    
    <blocked>111189</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Bear Travis">betravis</reporter>
          <assigned_to name="Bear Travis">betravis</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>818222</commentid>
    <comment_count>0</comment_count>
      <attachid>185092</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-01-28 16:02:52 -0800</bug_when>
    <thetext>Created attachment 185092
Dynamically sets shape-inside after 5 seconds

See test file. After 5 seconds, a shape-inside is applied, but inline content is not laid out. Will relayout correctly if you zoom in/out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843760</commentid>
    <comment_count>1</comment_count>
      <attachid>190659</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-02-27 22:49:18 -0800</bug_when>
    <thetext>Created attachment 190659
Initial Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845221</commentid>
    <comment_count>2</comment_count>
      <attachid>190659</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 09:07:46 -0800</bug_when>
    <thetext>Comment on attachment 190659
Initial Patch

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

r-

&gt; Source/WebCore/rendering/RenderBlock.cpp:1548
&gt; +#if ENABLE(CSS_EXCLUSIONS)
&gt; +    ExclusionShapeInsideInfo * info = exclusionShapeInsideInfo();
&gt; +    if (info)
&gt; +        info-&gt;setNeedsLayout(info-&gt;shapeSizeDirty());
&gt; +    if (!relayoutChildren &amp;&amp; (info || (info = layoutExclusionShapeInsideInfo())))
&gt; +        relayoutChildren = info-&gt;needsLayout();
&gt; +#endif

Could this possibly be folded into updateRegionsAndExclusionsLogicalSize, with that method returning a bool indicating whether or not relayoutChildren is required? Just trying to reduce the footprint of this code in layoutBlock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845305</commentid>
    <comment_count>3</comment_count>
      <attachid>190988</attachid>
    <who name="Bear Travis">betravis</who>
    <bug_when>2013-03-01 10:54:12 -0800</bug_when>
    <thetext>Created attachment 190988
Factoring code out of layoutBlock()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845406</commentid>
    <comment_count>4</comment_count>
      <attachid>190988</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-03-01 12:31:36 -0800</bug_when>
    <thetext>Comment on attachment 190988
Factoring code out of layoutBlock()

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845440</commentid>
    <comment_count>5</comment_count>
      <attachid>190988</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 13:04:17 -0800</bug_when>
    <thetext>Comment on attachment 190988
Factoring code out of layoutBlock()

Clearing flags on attachment: 190988

Committed r144487: &lt;http://trac.webkit.org/changeset/144487&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845441</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-01 13:04:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>185092</attachid>
            <date>2013-01-28 16:02:52 -0800</date>
            <delta_ts>2013-01-28 16:02:52 -0800</delta_ts>
            <desc>Dynamically sets shape-inside after 5 seconds</desc>
            <filename>dynamic-shape-inside-nested.html</filename>
            <type>text/html</type>
            <size>941</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlPgouc2hhcGUtaW5zaWRlIHsKICAg
IC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5nbGUoMjBweCwgMjBweCwgMTYwcHgsIDE2MHB4
KTsKfQoKI3NoYXBlIHsKICAgIHdpZHRoOiAyMDBweDsKICAgIGhlaWdodDogMjAwcHg7CiAgICBi
b3JkZXI6IDFweCBzb2xpZCBibHVlOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9Cgojc2hhcGU6
OmJlZm9yZSB7CiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICB0b3A6IDIwcHg7IGxlZnQ6IDIw
cHg7CiAgICB3aWR0aDogMTYwcHg7IGhlaWdodDogMTYwcHg7CiAgICBkaXNwbGF5OiBibG9jazsK
ICAgIGNvbnRlbnQ6ICcgJzsKICAgIGJvcmRlcjogMXB4IHNvbGlkIGdyZWVuOwp9Cjwvc3R5bGU+
CjxzY3JpcHQ+Cgl3aW5kb3cuc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CgkJZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3NoYXBlJykuc2V0QXR0cmlidXRlKCdjbGFzcycsICdzaGFwZS1pbnNpZGUn
KTsKCX0sIDUwMDApOwoJPC9zY3JpcHQ+Cgk8Ym9keT4KPGRpdiBpZD0nc2hhcGUnPgogICAgPGRp
diBpZD0nY29udGVudCc+ClNxdWlyZSBUcmVsYXduZXksIERyLiBMaXZlc2V5LCBhbmQgdGhlIHJl
c3Qgb2YgdGhlc2UgZ2VudGxlbWVuIGhhdmluZyBhc2tlZCBtZSB0byB3cml0ZSBkb3duIHRoZSB3
aG9sZSBwYXJ0aWN1bGFycyBhYm91dCBUcmVhc3VyZSBJc2xhbmQsIGZyb20gdGhlIGJlZ2lubmlu
ZyB0byB0aGUgZW5kLCBrZWVwaW5nIG5vdGhpbmcgYmFjayBidXQgdGhlIGJlYXJpbmdzIG9mIHRo
ZSBpc2xhbmQsIGFuZCB0aGF0IG9ubHkgYmVjYXVzZSB0aGVyZSBpcyBzdGlsbCB0cmVhc3VyZSBu
b3QgeWV0IGxpZnRlZCwgSSB0YWtlIHVwIG15IHBlbiBpbiB0aGUgeWVhciBvZiBncmFjZQogICAg
PC9kaXY+CjwvZGl2Pgo8L2JvZHk+CjwvaHRtbD4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190659</attachid>
            <date>2013-02-27 22:49:18 -0800</date>
            <delta_ts>2013-03-01 10:54:11 -0800</delta_ts>
            <desc>Initial Patch</desc>
            <filename>bug-108128-20130227224531.patch</filename>
            <type>text/plain</type>
            <size>17200</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGI4ZjBiOTgyMTJiOTJl
NjE0MjNjMjVjMzQzZDZiZjcwNGFkYTc4Ny4uNjFmNDA2MDI1NDc3YWI0ZGVlNjU3ZGQ1YzBiOTg0
MWUxNzZiMjEwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEzLTAyLTI3ICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IHNldHRpbmcgc2hhcGUtaW5zaWRlIG9uIGEgcGFyZW50IGRvZXMgbm90IHJlbGF5b3V0IGNoaWxk
IGJsb2NrcycgaW5saW5lIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IGJsb2NrcyBsYXkgb3V0IHdoZW4gdGhlaXIgcGFy
ZW50J3Mgc2hhcGUtaW5zaWRlIGNoYW5nZXMuCisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyBub3cgc3RvcmVzIGFuIGFkZGl0aW9uYWwgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIKKyAg
ICAgICAgdGhlIHNoYXBlIGhhcyBjaGFuZ2VkIGFuZCBpdHMgYmxvY2sncyBjaGlsZHJlbiByZXF1
aXJlIGxheW91dC4gRWFjaCBibG9jaworICAgICAgICBjYW4gbG9vayB1cCB0aGUgZmxhZyB2aWEg
TGF5b3V0U3RhdGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgbmVlZHMgdG8gbGF5CisgICAgICAg
IG91dCBpdHMgY2hpbGRyZW4uCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
U2hhcGVJbmZvOjpzaGFwZVNpemVEaXJ0eSk6IEFkZCBhIG1ldGhvZCB0byBkZXRlcm1pbmUKKyAg
ICAgICAgaWYgdGhlIHNoYXBlIGhhcyBjaGFuZ2VkLgorICAgICAgICAoRXhjbHVzaW9uU2hhcGVJ
bmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnNldE5lZWRzTGF5b3V0
KTogU2V0IHRoZSBmbGFnIGluZGljYXRpbmcKKyAgICAgICAgbGF5b3V0IGlzIG5lY2Vzc2FyeS4K
KyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6bmVlZHNMYXlvdXQp
OiBSZXRyaWV2ZSB0aGUgbGF5b3V0IGZsYWcuCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8pOiBJbml0aWFsaXplCisgICAgICAgIHRoZSBsYXlvdXQgZmxh
Zy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKTogU2V0IHRoZSBsYXlvdXQgZmxhZyBpZiB0aGUg
c2hhcGUgaXMKKyAgICAgICAgc3RhbGUuIFJlbGF5b3V0IGNoaWxkcmVuIGlmIHRoZSBmbGFnIGlz
IHNldCBvbiB0aGUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvCisgICAgICAgIGJlaW5nIHVzZWQg
Zm9yIGxheW91dC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suaDoKKyAgICAgICAg
KFJlbmRlckJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRFeGNsdXNpb25TaGFw
ZUluc2lkZUluZm8pOiBDaGFuZ2luZyB0byBiZSBhCisgICAgICAgIGNsYXNzIG1ldGhvZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxpbmVXaWR0aDo6TGluZVdpZHRoKTogQ2hhbmdpbmcgdG8gdXNlIGNs
YXNzIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5l
RGlyZWN0aW9uUG9zaXRpb25zRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Y29u
c3RydWN0QmlkaVJ1bnNGb3JMaW5lKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrOjpMaW5lQnJlYWtlcjo6bmV4dExpbmVCcmVhayk6IERpdHRvLgorCiAy
MDEzLTAyLTI3ICBIYW5zIE11bGxlciAgPGhtdWxsZXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtD
U1MgRXhjbHVzaW9uc10gRW5hYmxlIHNoYXBlLWluc2lkZSByZWN0YW5nbGUgc3VwcG9ydCBmb3Ig
c2hhcGUtcGFkZGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1
c2lvblNoYXBlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5mby5oCmluZGV4IGIxNDA0MjA1NTQ5NmYzMmVlMmZiNzBkYWY2M2FkMGQxMjliMjkzZjMuLmYx
M2VlODU1NTljZTIzYjc4ODBmZDljOGJhM2U4NDk3NGNhOTQzMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmgKQEAgLTkyLDYgKzkyLDcgQEAgcHVi
bGljOgogICAgIExheW91dFVuaXQgc2hhcGVMb2dpY2FsSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
Y29tcHV0ZWRTaGFwZSgpLT5zaGFwZUxvZ2ljYWxCb3VuZGluZ0JveCgpLmhlaWdodCgpOyB9CiAK
ICAgICB2b2lkIGRpcnR5U2hhcGVTaXplKCkgeyBtX3NoYXBlLmNsZWFyKCk7IH0KKyAgICBib29s
IHNoYXBlU2l6ZURpcnR5KCkgeyByZXR1cm4gIW1fc2hhcGUuZ2V0KCk7IH0KICAgICBjb25zdCBS
ZW5kZXJUeXBlKiBvd25lcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyZXI7IH0KIAogcHJvdGVj
dGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mby5oCmluZGV4IDMwYmQ5NDc1NjdhZWY0NTNkODg1NGQ3YTNmZGZiOWJmNTdmNTc5NjQu
LmFkODY4ZTUzNDdiNDM1ZjZlZjhjYzQ4OTc0MDQ4OWIwOWY5MGI2OGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lkZUluZm8uaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKQEAgLTg2
LDE0ICs4NiwyMSBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsTGluZVRvcCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhcGVMaW5lVG9wICsgbG9naWNhbFRvcE9mZnNldCgpOyB9CiAgICAg
TGF5b3V0VW5pdCBsb2dpY2FsTGluZUJvdHRvbSgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhcGVMaW5l
VG9wICsgbV9saW5lSGVpZ2h0ICsgbG9naWNhbFRvcE9mZnNldCgpOyB9CiAKKyAgICB2b2lkIHNl
dE5lZWRzTGF5b3V0KGJvb2wgdmFsdWUpIHsgbV9uZWVkc0xheW91dCA9IHZhbHVlOyB9CisgICAg
Ym9vbCBuZWVkc0xheW91dCgpIHsgcmV0dXJuIG1fbmVlZHNMYXlvdXQ7IH0KKwogcHJpdmF0ZToK
LSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVy
KSA6IEV4Y2x1c2lvblNoYXBlSW5mbzxSZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZl
ZFNoYXBlSW5zaWRlPihyZW5kZXJlcikgeyB9CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KGNvbnN0IFJlbmRlckJsb2NrKiByZW5kZXJlcikKKyAgICA6IEV4Y2x1c2lvblNoYXBlSW5mbzxS
ZW5kZXJCbG9jaywgJlJlbmRlclN0eWxlOjpyZXNvbHZlZFNoYXBlSW5zaWRlPiAocmVuZGVyZXIp
CisgICAgLCBtX25lZWRzTGF5b3V0KGZhbHNlKQorICAgIHsgfQogCiAgICAgTGF5b3V0VW5pdCBt
X3NoYXBlTGluZVRvcDsKICAgICBMYXlvdXRVbml0IG1fbGluZUhlaWdodDsKIAogICAgIFNlZ21l
bnRMaXN0IG1fc2VnbWVudHM7CiAgICAgU2VnbWVudFJhbmdlTGlzdCBtX3NlZ21lbnRSYW5nZXM7
CisgICAgYm9vbCBtX25lZWRzTGF5b3V0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDdhMjM0YWFiZGM0ZWRlM2ZiOGJmY2VkYmY3Zjg4MjMw
YmFhYjczZi4uMzkwOGEyMzg3ODZiNjAzOWQ1YzRkNDk0ODA1NmFhYzFiNjMwNDJiZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNTM5LDYgKzE1MzksMTMg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBM
YXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICB9CiAgICAgdXBkYXRlUmVnaW9uc0FuZEV4
Y2x1c2lvbnNMb2dpY2FsU2l6ZSgpOwogCisjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQorICAg
IEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAqIGluZm8gPSBleGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8oKTsKKyAgICBpZiAoaW5mbykKKyAgICAgICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+
c2hhcGVTaXplRGlydHkoKSk7CisgICAgaWYgKCFyZWxheW91dENoaWxkcmVuICYmIChpbmZvIHx8
IChpbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkpKSkKKyAgICAgICAgcmVs
YXlvdXRDaGlsZHJlbiA9IGluZm8tPm5lZWRzTGF5b3V0KCk7CisjZW5kaWYKICAgICAvLyBXZSB1
c2UgZm91ciB2YWx1ZXMsIG1heFRvcFBvcywgbWF4VG9wTmVnLCBtYXhCb3R0b21Qb3MsIGFuZCBt
YXhCb3R0b21OZWcsIHRvIHRyYWNrCiAgICAgLy8gb3VyIGN1cnJlbnQgbWF4aW1hbCBwb3NpdGl2
ZSBhbmQgbmVnYXRpdmUgbWFyZ2lucy4gIFRoZXNlIHZhbHVlcyBhcmUgdXNlZCB3aGVuIHdlCiAg
ICAgLy8gYXJlIGNvbGxhcHNlZCB3aXRoIGFkamFjZW50IGJsb2Nrcywgc28gZm9yIGV4YW1wbGUs
IGlmIHlvdSBoYXZlIGJsb2NrIEEgYW5kIEIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKaW5kZXggYmIyOTAxZTZjNjgzNjE4M2ZlNGFjMDI1MGY2YTBiMDM1M2RlZDE4OS4uMTYx
MjM0ZjhjNjM2ZjY1NGM2NmVjYzE5NjEzZjljNWEwN2NiYmQzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmgKQEAgLTQzOCw2ICs0MzgsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNs
dXNpb25TaGFwZUluc2lkZUluZm8oKSBjb25zdDsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0OwogICAgIGJvb2wgYWxs
b3dzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvU2hhcmluZygpIGNvbnN0IHsgcmV0dXJuICFpc0lu
bGluZSgpICYmICFpc0Zsb2F0aW5nKCk7IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCmluZGV4IDllMTlhNjliNTY0
N2VhMTc2YzUwM2RkZWFkZmU5N2Y4OGM1NjkyZDkuLjI0MjllYjNjNjBmMjEzMjhhYjFjNWQ2MWQ3
YTc3YzdjYzQyM2ZjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBAIC03NywxMiArNzcsMTIgQEAgc3RhdGljIExheW91dFVu
aXQgbG9naWNhbEhlaWdodEZvckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlz
Rmlyc3RMaW4KIH0KIAogI2lmIEVOQUJMRShDU1NfRVhDTFVTSU9OUykKLXN0YXRpYyBpbmxpbmUg
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8o
Y29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrKQorRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBSZW5k
ZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgY29uc3QKIHsKLSAgICBF
eGNsdXNpb25TaGFwZUluc2lkZUluZm8qIHNoYXBlSW5zaWRlSW5mbyA9IGJsb2NrLT52aWV3KCkt
PmxheW91dFN0YXRlKCktPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwotICAgIGlmICghc2hh
cGVJbnNpZGVJbmZvICYmIGJsb2NrLT5pblJlbmRlckZsb3dUaHJlYWQoKSkgewotICAgICAgICBM
YXlvdXRVbml0IG9mZnNldCA9IGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0
Rm9yTGluZShibG9jaywgZmFsc2UpOwotICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IGJs
b2NrLT5yZWdpb25BdEJsb2NrT2Zmc2V0KG9mZnNldCk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKiBzaGFwZUluc2lkZUluZm8gPSB2aWV3KCktPmxheW91dFN0YXRlKCktPmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygpOworICAgIGlmICghc2hhcGVJbnNpZGVJbmZvICYmIGluUmVuZGVy
Rmxvd1RocmVhZCgpKSB7CisgICAgICAgIExheW91dFVuaXQgb2Zmc2V0ID0gbG9naWNhbEhlaWdo
dCgpICsgbG9naWNhbEhlaWdodEZvckxpbmUodGhpcywgZmFsc2UpOworICAgICAgICBSZW5kZXJS
ZWdpb24qIHJlZ2lvbiA9IHJlZ2lvbkF0QmxvY2tPZmZzZXQob2Zmc2V0KTsKICAgICAgICAgcmV0
dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+ZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgOiAwOwogICAg
IH0KICAgICByZXR1cm4gc2hhcGVJbnNpZGVJbmZvOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1Ymxp
YzoKICAgICB7CiAgICAgICAgIEFTU0VSVChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotICAgICAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5z
aWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhtX2Jsb2NrKTsKKyAgICAg
ICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBt
X2Jsb2NrLT5sYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKICAgICAgICAgaWYgKGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykKICAgICAgICAgICAgIG1fc2VnbWVudCA9IGV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mby0+Y3VycmVudFNlZ21lbnQoKTsKICNlbmRpZgpAQCAtOTUxLDcgKzk1
MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNG
b3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxpbmVCb3gsCiAgICAgdXBkYXRlTG9naWNhbElubGluZVBv
c2l0aW9ucyh0aGlzLCBsaW5lTG9naWNhbExlZnQsIGxpbmVMb2dpY2FsUmlnaHQsIGF2YWlsYWJs
ZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5lLCAwKTsKICAgICBib29sIG5lZWRzV29yZFNwYWNpbmc7
CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
byogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKHRoaXMpOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYgKGV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAmJiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmhhc1Nl
Z21lbnRzKCkpIHsKICAgICAgICAgQmlkaVJ1biogc2VnbWVudFN0YXJ0ID0gZmlyc3RSdW47CiAg
ICAgICAgIGNvbnN0IFNlZ21lbnRMaXN0JiBzZWdtZW50cyA9IGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby0+c2VnbWVudHMoKTsKQEAgLTEyNzQsNyArMTI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9p
ZCBjb25zdHJ1Y3RCaWRpUnVuc0ZvckxpbmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBJbmxp
bmVCaWRpCiAgICAgVU5VU0VEX1BBUkFNKGJsb2NrKTsKICAgICBjb25zdHJ1Y3RCaWRpUnVuc0Zv
clNlZ21lbnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5zLCBlbmRPZkxpbmUsIG92ZXJyaWRlLCBwcmV2
aW91c0xpbmVCcm9rZUNsZWFubHkpOwogI2Vsc2UKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyhibG9jayk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFw
ZUluc2lkZUluZm8gPSBibG9jay0+bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAg
ICAgaWYgKCFleGNsdXNpb25TaGFwZUluc2lkZUluZm8gfHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby0+aGFzU2VnbWVudHMoKSkgewogICAgICAgICBjb25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21l
bnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5zLCBlbmRPZkxpbmUsIG92ZXJyaWRlLCBwcmV2aW91c0xp
bmVCcm9rZUNsZWFubHkpOwogICAgICAgICByZXR1cm47CkBAIC0xNTQwLDcgKzE1NDAsNyBAQCB2
b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRSdW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3Rh
dGUmIGxheW91dFN0YXRlLCBJbmxpbgogCiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAg
IExheW91dFVuaXQgYWJzb2x1dGVMb2dpY2FsVG9wOwotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKHRoaXMpOworICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYg
KGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykgewogICAgICAgICBBU1NFUlQoZXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvLT5vd25lcigpID09IHRoaXMgfHwgYWxsb3dzRXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvU2hhcmluZygpKTsKICAgICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAh
PSB0aGlzLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKSkgewpAQCAtMTU3Niw3ICsxNTc2LDcg
QEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5saW4KICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTog
SXQgaXMgcG9zc2libGUgZm9yIGEgbGluZSB0byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3
aGljaAogICAgICAgICAvLyBjYXNlIHRoZXNlIHNlZ21lbnRzIG1heSBiZSBpbmNvcnJlY3QuCiAg
ICAgICAgIGlmIChpblJlbmRlckZsb3dUaHJlYWQoKSkKLSAgICAgICAgICAgIGV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0aGlzKTsKKyAg
ICAgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbygpOwogICAgICAgICBpZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKSB7CiAg
ICAgICAgICAgICBMYXlvdXRVbml0IGxpbmVUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0
ZUxvZ2ljYWxUb3A7CiAgICAgICAgICAgICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmNvbXB1
dGVTZWdtZW50c0ZvckxpbmUobGluZVRvcCwgbGluZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5m
bygpLmlzRmlyc3RMaW5lKCksIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFs
TGluZSA6IFZlcnRpY2FsTGluZSwgUG9zaXRpb25PZkludGVyaW9yTGluZUJveGVzKSk7CkBAIC0y
NTQxLDcgKzI1NDEsNyBAQCBJbmxpbmVJdGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6
Om5leHRMaW5lQnJlYWsoSW5saW5lQmlkaVJlc29sdmVyJiByZXNvbAogI2lmICFFTkFCTEUoQ1NT
X0VYQ0xVU0lPTlMpCiAgICAgcmV0dXJuIG5leHRTZWdtZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJ
bmZvLCByZW5kZXJUZXh0SW5mbywgbGFzdEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRp
dmVIeXBoZW5hdGVkTGluZXMsIHdvcmRNZWFzdXJlbWVudHMpOwogI2Vsc2UKLSAgICBFeGNsdXNp
b25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyhtX2Jsb2NrKTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUlu
Zm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IG1fYmxvY2stPmxheW91dEV4Y2x1c2lvblNo
YXBlSW5zaWRlSW5mbygpOwogICAgIGlmICghZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHx8ICFl
eGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkpCiAgICAgICAgIHJldHVybiBu
ZXh0U2VnbWVudEJyZWFrKHJlc29sdmVyLCBsaW5lSW5mbywgcmVuZGVyVGV4dEluZm8sIGxhc3RG
bG9hdEZyb21QcmV2aW91c0xpbmUsIGNvbnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzLCB3b3JkTWVh
c3VyZW1lbnRzKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFkNjRjYTg2YTcyMTZiZDJiODU5Y2E3YWE0NTY0YTdhOWFi
Yjc0OGYuLmY4OGU1NGMwNGQwNTRiNGQ1ZTgzMjE3ZjkxNjY4NTc4NGNmNGVkMTYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNiBAQAorMjAxMy0wMi0yNyAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5j
b20+CisKKyAgICAgICAgW2NzcyBleGNsdXNpb25zXSBzZXR0aW5nIHNoYXBlLWluc2lkZSBvbiBh
IHBhcmVudCBkb2VzIG5vdCByZWxheW91dCBjaGlsZCBibG9ja3MnIGlubGluZSBjb250ZW50Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxMjgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQg
c2V0dGluZyBhbmQgcmVzZXR0aW5nIHNoYXBlLWluc2lkZSBhbmQgc2hhcGUtb3V0c2lkZSBjb3Jy
ZWN0bHkgbGF5IG91dAorICAgICAgICBjb250ZW50IGluc2lkZSBvZiBjaGlsZCBibG9ja3MuCisK
KyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5h
bWljLW5lc3RlZC1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sOiBBZGRlZC4K
KwogMjAxMy0wMi0yNyAgSGFucyBNdWxsZXIgIDxobXVsbGVyQGFkb2JlLmNvbT4KIAogICAgICAg
ICBbQ1NTIEV4Y2x1c2lvbnNdIEVuYWJsZSBzaGFwZS1pbnNpZGUgcmVjdGFuZ2xlIHN1cHBvcnQg
Zm9yIHNoYXBlLXBhZGRpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXhjbHVzaW9u
cy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLWV4cGVjdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1k
eW5hbWljLW5lc3RlZC1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEwZTU2Y2VkZTFkYjk0MDM5
MDNjZjY4MDk0ZjNmMjZmZWY2ZDM5NGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1l
eHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7Cis8L3Nj
cmlwdD4KKzxzdHlsZT4KKyAgICAuY29udGFpbmVyIHsKKyAgICAgICAgcG9zaXRpb246IHJlbGF0
aXZlOworICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAg
ICAgIG92ZXJmbG93LXdyYXA6IGJyZWFrLXdvcmQ7CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlk
IGJsdWU7CisgICAgICAgIGZvbnQ6IDQwcHgvMSBBaGVtLCBzYW5zLXNlcmlmOworICAgICAgICBj
b2xvcjogZ3JlZW47CisgICAgfQorICAgIC5jb250YWluZXIuc2hhcGUgeworICAgICAgICBib3Jk
ZXItY29sb3I6IHdoaXRlOworICAgIH0KKyAgICAuc2hhcGU6OmJlZm9yZSB7CisgICAgICAgIHBv
c2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgZGlzcGxheTogYmxvY2s7CisgICAgICAgIHRvcDog
OHB4OyBsZWZ0OiA4cHg7CisgICAgICAgIHdpZHRoOiAxODBweDsKKyAgICAgICAgaGVpZ2h0OiAx
ODBweDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICAgICAgY29udGVudDog
JyAnOworICAgIH0KKyAgICAuaW5zaWRlIHsKKyAgICAgICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6
IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAxODBweCwgMTgwcHgpOworICAgIH0KKyAgICAub3V0c2lk
ZSB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcmVjdGFuZ2xlKDEwcHgsIDEwcHgs
IDE4MHB4LCAxODBweCk7CisgICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxw
PlRoaXMgdGVzdCBlbnN1cmVzIGxheW91dCBwcm9wZXJseSByZXNwZWN0cyBzaGFwZS1pbnNpZGUg
d2hlbiBpdCBpcyBzZXQvdW5zZXQsIG9yIHdoZW4gc2hhcGUtb3V0c2lkZSBpcyBzZXQvdW5zZXQg
Zm9yIGEgdmFsdWUgb2YgIm91dHNpZGUtc2hhcGUiLiBUaGUgdGVzdCByZXF1aXJlcyB0aGUgQWhl
bSBmb250LCBhbmQgaW4gZWFjaCBjYXNlIHRoZSBncmVlbiBzcXVhcmVzIHNob3VsZCBiZSBjb250
YWluZWQgYnkgYSBibHVlIG91dGxpbmUuPC9wPgorCisgICAgPHA+U2V0dGluZyBzaGFwZS1pbnNp
ZGUgd2l0aCBubyBwcmlvciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdzZXQtaW5zaWRlLXNoYXBl
JyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rp
dj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdpdGggYSBwcmlv
ciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZXNldC1pbnNpZGUtc2hhcGUnIGNsYXNzPSdjb250
YWluZXIgc2hhcGUgaW5zaWRlJz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2
PgorCisgICAgPHA+U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggbm8gcHJpb3IgZW50cnk8L3A+
CisgICAgPGRpdiBpZD0nc2V0LW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUg
b3V0c2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxw
PlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBp
ZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJz48
ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXhjbHVzaW9ucy9zaGFwZS1pbnNpZGUvc2hhcGUtaW5zaWRlLWR5bmFtaWMtbmVzdGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1k
eW5hbWljLW5lc3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2MWU3OTdlNTZiZGQ1ZWY4MzdiYTAzNzRj
MmYzNGQ1NjMwMDRiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sCkBAIC0w
LDAgKzEsNzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+Cisg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQodHJ1ZSk7CisgICAgd2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkgeworICAgICAgICBpZiAoZG9jdW1lbnQuYm9keSkKKyAgICAgICAgICAgIGRvY3Vt
ZW50LmJvZHkub2Zmc2V0VG9wOworICAgICAgICBlbHNlIGlmIChkb2N1bWVudC5kb2N1bWVudEVs
ZW1lbnQpCisgICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQub2Zmc2V0VG9wOwor
ICAgICAgICBsYXlvdXRUZXN0KCk7CisgICAgfQorICAgIGZ1bmN0aW9uIGxheW91dFRlc3QoKSB7
CisgICAgICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZXQtaW5zaWRlLXNo
YXBlJyk7CisgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNoYXBl
IGluc2lkZScpOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXNldC1p
bnNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFzcycsICdjb250YWlu
ZXIgc2hhcGUgaW5zaWRlJyk7CisgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3NldC1vdXRzaWRlLXNoYXBlJyk7CisgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAn
Y29udGFpbmVyIHNoYXBlIG91dHNpZGUnKTsKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgncmVzZXQtb3V0c2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUo
J2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBvdXRzaWRlJyk7CisgICAgfQorPC9zY3JpcHQ+Cis8
c3R5bGU+CisgICAgLmNvbnRhaW5lciB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBvdmVy
Zmxvdy13cmFwOiBicmVhay13b3JkOworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVlOwor
ICAgICAgICBmb250OiA0MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6IGdy
ZWVuOworICAgIH0KKyAgICAuY29udGFpbmVyLnNoYXBlIHsKKyAgICAgICAgYm9yZGVyLWNvbG9y
OiB3aGl0ZTsKKyAgICB9CisgICAgLnNoYXBlOjpiZWZvcmUgeworICAgICAgICBwb3NpdGlvbjog
YWJzb2x1dGU7CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICB0b3A6IDhweDsgbGVm
dDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMTgwcHg7Cisg
ICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgICAgIGNvbnRlbnQ6ICcgJzsKKyAg
ICB9CisgICAgLmluc2lkZSB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0YW5n
bGUoMTBweCwgMTBweCwgMTgwcHgsIDE4MHB4KTsKKyAgICB9CisgICAgLmluc2lkZS1hbHQgewor
ICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogY2lyY2xlKDUwJSwgNTAlLCA1MCUpOworICAg
IH0KKyAgICAub3V0c2lkZSB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtb3V0c2lkZTogcmVjdGFu
Z2xlKDEwcHgsIDEwcHgsIDE4MHB4LCAxODBweCk7CisgICAgfQorICAgIC5vdXRzaWRlLWFsdCB7
CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiBjaXJjbGUoNTAlLCA1MCUsIDUwJSk7Cisg
ICAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxwPlRoaXMgdGVzdCBlbnN1cmVz
IGxheW91dCBwcm9wZXJseSByZXNwZWN0cyBzaGFwZS1pbnNpZGUgd2hlbiBpdCBpcyBzZXQvdW5z
ZXQsIG9yIHdoZW4gc2hhcGUtb3V0c2lkZSBpcyBzZXQvdW5zZXQgZm9yIGEgdmFsdWUgb2YgIm91
dHNpZGUtc2hhcGUiLiBUaGUgdGVzdCByZXF1aXJlcyB0aGUgQWhlbSBmb250LCBhbmQgaW4gZWFj
aCBjYXNlIHRoZSBncmVlbiBzcXVhcmVzIHNob3VsZCBiZSBjb250YWluZWQgYnkgYSBibHVlIG91
dGxpbmUuPC9wPgorCisgICAgPHA+U2V0dGluZyBzaGFwZS1pbnNpZGUgd2l0aCBubyBwcmlvciBl
bnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdzZXQtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVy
Jz48ZGl2PjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgorCisgICAgPHA+U2V0dGlu
ZyBzaGFwZS1pbnNpZGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3Jlc2V0
LWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUtYWx0Jz48ZGl2Pjxk
aXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PjwvZGl2PgorCisgICAgPHA+U2V0dGluZyBvdXRzaWRl
LXNoYXBlIHdpdGggbm8gcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0nc2V0LW91dHNpZGUt
c2hhcGUnIGNsYXNzPSdjb250YWluZXInPjxkaXY+eHh4eHh4eHh4eDwvZGl2PjwvZGl2PgorCisg
ICAgPHA+U2V0dGluZyBvdXRzaWRlLXNoYXBlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8
ZGl2IGlkPSdyZXNldC1vdXRzaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyJyBjbGFzcz0nY29u
dGFpbmVyIHNoYXBlIG91dHNpZGUtYWx0Jz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190988</attachid>
            <date>2013-03-01 10:54:12 -0800</date>
            <delta_ts>2013-03-01 13:04:16 -0800</delta_ts>
            <desc>Factoring code out of layoutBlock()</desc>
            <filename>bug-108128-20130301105024.patch</filename>
            <type>text/plain</type>
            <size>18734</size>
            <attacher name="Bear Travis">betravis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NDY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyODhlOWVjYThhMWM5
NGI0YWY5ZjlmMjQ2ZmE5ZWE0MTdkNjkxYi4uNDY1NWEzZGY4ODU1OGFlMzE4YmNiMTM4YTU0MjFh
NDU3MTg5N2FjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEzLTAzLTAxICBCZWFy
IFRyYXZpcyAgPGJldHJhdmlzQGFkb2JlLmNvbT4KKworICAgICAgICBbY3NzIGV4Y2x1c2lvbnNd
IHNldHRpbmcgc2hhcGUtaW5zaWRlIG9uIGEgcGFyZW50IGRvZXMgbm90IHJlbGF5b3V0IGNoaWxk
IGJsb2NrcycgaW5saW5lIGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwODEyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEVuc3VyZSB0aGF0IGJsb2NrcyBsYXkgb3V0IHdoZW4gdGhlaXIgcGFy
ZW50J3Mgc2hhcGUtaW5zaWRlIGNoYW5nZXMuCisgICAgICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyBub3cgc3RvcmVzIGFuIGFkZGl0aW9uYWwgZmxhZyBpbmRpY2F0aW5nIHdoZXRoZXIKKyAg
ICAgICAgdGhlIHNoYXBlIGhhcyBjaGFuZ2VkIGFuZCBpdHMgYmxvY2sncyBjaGlsZHJlbiByZXF1
aXJlIGxheW91dC4gRWFjaCBibG9jaworICAgICAgICBjYW4gbG9vayB1cCB0aGUgZmxhZyB2aWEg
TGF5b3V0U3RhdGUgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgaXQgbmVlZHMgdG8gbGF5CisgICAgICAg
IG91dCBpdHMgY2hpbGRyZW4uCisKKyAgICAgICAgVGVzdDogZmFzdC9leGNsdXNpb25zL3NoYXBl
LWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbAorCisgICAgICAgICogcmVu
ZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9u
U2hhcGVJbmZvOjpzaGFwZVNpemVEaXJ0eSk6IEFkZCBhIG1ldGhvZCB0byBkZXRlcm1pbmUKKyAg
ICAgICAgaWYgdGhlIHNoYXBlIGhhcyBjaGFuZ2VkLgorICAgICAgICAoRXhjbHVzaW9uU2hhcGVJ
bmZvKToKKyAgICAgICAgKiByZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFeGNsdXNpb25TaGFwZUluc2lkZUluZm86OnNldE5lZWRzTGF5b3V0
KTogU2V0IHRoZSBmbGFnIGluZGljYXRpbmcKKyAgICAgICAgbGF5b3V0IGlzIG5lY2Vzc2FyeS4K
KyAgICAgICAgKFdlYkNvcmU6OkV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbzo6bmVlZHNMYXlvdXQp
OiBSZXRyaWV2ZSB0aGUgbGF5b3V0IGZsYWcuCisgICAgICAgIChFeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvOjpFeGNs
dXNpb25TaGFwZUluc2lkZUluZm8pOiBJbml0aWFsaXplCisgICAgICAgIHRoZSBsYXlvdXQgZmxh
Zy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZXhjbHVzaW9uSW5mb1JlcXVpcmVzUmVsYXlvdXQpOiBSZXR1cm4gdHJ1ZSBpZiB0aGUgc2hh
cGUgaW5mbyBzaG91bGQKKyAgICAgICAgY2F1c2UgYSByZWxheW91dC4gQWxzbyB1cGRhdGUgdGhl
IG5lZWRzTGF5b3V0IGZsYWcgb24gdGhlIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby4KKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OnVwZGF0ZVJlZ2lv
bnNBbmRFeGNsdXNpb25zTG9naWNhbFNpemUpOiBSZXR1cm4gYSBib29sZWFuCisgICAgICAgIGlu
ZGljYXRpbmcgd2hldGhlciByZWdpb25zIG9yIGV4Y2x1c2lvbnMgdXBkYXRlcyBzaG91bGQgY2F1
c2UgYSByZWxheW91dC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9j
ayk6IFJlbGF5b3V0IGNoaWxkcmVuIGlmIHRoZSBzaGFwZSBpbnNpZGUgaGFzCisgICAgICAgIGNo
YW5nZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmg6CisgICAgICAgIChSZW5k
ZXJCbG9jayk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrTGluZUxheW91dC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvKTogQ2hhbmdpbmcgdG8gYmUgYQorICAgICAgICBjbGFzcyBtZXRob2QuCisgICAgICAg
IChXZWJDb3JlOjpMaW5lV2lkdGg6OkxpbmVXaWR0aCk6IENoYW5naW5nIHRvIHVzZSBjbGFzcyBt
ZXRob2QuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZURpcmVj
dGlvblBvc2l0aW9uc0ZvckxpbmUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNvbnN0cnVj
dEJpZGlSdW5zRm9yTGluZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6
OmxheW91dFJ1bnNBbmRGbG9hdHNJblJhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRMaW5lQnJlYWspOiBEaXR0by4KKwogMjAxMy0w
My0wMSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBX
ZWIgSW5zcGVjdG9yOiBOYXZpZ2F0b3Igc2hvdWxkIHNob3cgdHJlZSBlbGVtZW50IGZvciBlYWNo
IGZvbGRlciBpbiB0aGUgc291cmNlIHBhdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRXhjbHVzaW9uU2hhcGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbmZvLmgKaW5kZXggYjE0MDQyMDU1NDk2ZjMyZWUyZmI3MGRhZjYzYWQw
ZDEyOWIyOTNmMy4uZjEzZWU4NTU1OWNlMjNiNzg4MGZkOWM4YmEzZTg0OTc0Y2E5NDMwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5mby5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluZm8uaApAQCAtOTIs
NiArOTIsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBzaGFwZUxvZ2ljYWxIZWlnaHQoKSBj
b25zdCB7IHJldHVybiBjb21wdXRlZFNoYXBlKCktPnNoYXBlTG9naWNhbEJvdW5kaW5nQm94KCku
aGVpZ2h0KCk7IH0KIAogICAgIHZvaWQgZGlydHlTaGFwZVNpemUoKSB7IG1fc2hhcGUuY2xlYXIo
KTsgfQorICAgIGJvb2wgc2hhcGVTaXplRGlydHkoKSB7IHJldHVybiAhbV9zaGFwZS5nZXQoKTsg
fQogICAgIGNvbnN0IFJlbmRlclR5cGUqIG93bmVyKCkgY29uc3QgeyByZXR1cm4gbV9yZW5kZXJl
cjsgfQogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvLmgKaW5kZXggMzBiZDk0NzU2N2FlZjQ1M2Q4ODU0ZDdhM2Zk
ZmI5YmY1N2Y1Nzk2NC4uYWQ4NjhlNTM0N2I0MzVmNmVmOGNjNDg5NzQwNDg5YjA5ZjkwYjY4ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0V4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FeGNsdXNpb25TaGFwZUluc2lk
ZUluZm8uaApAQCAtODYsMTQgKzg2LDIxIEBAIHB1YmxpYzoKICAgICBMYXlvdXRVbml0IGxvZ2lj
YWxMaW5lVG9wKCkgY29uc3QgeyByZXR1cm4gbV9zaGFwZUxpbmVUb3AgKyBsb2dpY2FsVG9wT2Zm
c2V0KCk7IH0KICAgICBMYXlvdXRVbml0IGxvZ2ljYWxMaW5lQm90dG9tKCkgY29uc3QgeyByZXR1
cm4gbV9zaGFwZUxpbmVUb3AgKyBtX2xpbmVIZWlnaHQgKyBsb2dpY2FsVG9wT2Zmc2V0KCk7IH0K
IAorICAgIHZvaWQgc2V0TmVlZHNMYXlvdXQoYm9vbCB2YWx1ZSkgeyBtX25lZWRzTGF5b3V0ID0g
dmFsdWU7IH0KKyAgICBib29sIG5lZWRzTGF5b3V0KCkgeyByZXR1cm4gbV9uZWVkc0xheW91dDsg
fQorCiBwcml2YXRlOgotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhjb25zdCBSZW5kZXJC
bG9jayogcmVuZGVyZXIpIDogRXhjbHVzaW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVy
U3R5bGU6OnJlc29sdmVkU2hhcGVJbnNpZGU+KHJlbmRlcmVyKSB7IH0KKyAgICBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIHJlbmRlcmVyKQorICAgIDogRXhjbHVz
aW9uU2hhcGVJbmZvPFJlbmRlckJsb2NrLCAmUmVuZGVyU3R5bGU6OnJlc29sdmVkU2hhcGVJbnNp
ZGU+IChyZW5kZXJlcikKKyAgICAsIG1fbmVlZHNMYXlvdXQoZmFsc2UpCisgICAgeyB9CiAKICAg
ICBMYXlvdXRVbml0IG1fc2hhcGVMaW5lVG9wOwogICAgIExheW91dFVuaXQgbV9saW5lSGVpZ2h0
OwogCiAgICAgU2VnbWVudExpc3QgbV9zZWdtZW50czsKICAgICBTZWdtZW50UmFuZ2VMaXN0IG1f
c2VnbWVudFJhbmdlczsKKyAgICBib29sIG1fbmVlZHNMYXlvdXQ7CiB9OwogCiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBmYzY0MDM5MzVjOGYwMzRjZTc4
Y2QwNDQ0ZDgwY2QwYjcwZTkzMzNiLi5jYzkzNmMyODY2NjM0M2FhYzc5ODlhY2I3MDU5Njg4Zjhk
Y2U2OTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE0
MTQsMTQgKzE0MTQsMjggQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlRXhjbHVzaW9uU2hhcGVJ
bnNpZGVJbmZvQWZ0ZXJTdHlsZUNoYW5nZShjb25zdCBFeGNsdXNpb24KIH0KICNlbmRpZgogCi12
b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKCkK
K3N0YXRpYyBpbmxpbmUgYm9vbCBleGNsdXNpb25JbmZvUmVxdWlyZXNSZWxheW91dChjb25zdCBS
ZW5kZXJCbG9jayogYmxvY2spCit7CisjaWYgIUVOQUJMRShDU1NfRVhDTFVTSU9OUykKKyAgICBy
ZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogaW5mbyA9
IGJsb2NrLT5leGNsdXNpb25TaGFwZUluc2lkZUluZm8oKTsKKyAgICBpZiAoaW5mbykKKyAgICAg
ICAgaW5mby0+c2V0TmVlZHNMYXlvdXQoaW5mby0+c2hhcGVTaXplRGlydHkoKSk7CisgICAgZWxz
ZQorICAgICAgICBpbmZvID0gYmxvY2stPmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygp
OworICAgIHJldHVybiBpbmZvICYmIGluZm8tPm5lZWRzTGF5b3V0KCk7CisjZW5kaWYKK30KKwor
Ym9vbCBSZW5kZXJCbG9jazo6dXBkYXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSgp
CiB7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIGlmICghaW5SZW5kZXJGbG93VGhy
ZWFkKCkgJiYgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpKQogI2Vsc2UKICAgICBpZiAoIWlu
UmVuZGVyRmxvd1RocmVhZCgpKQogI2VuZGlmCi0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0
dXJuIGV4Y2x1c2lvbkluZm9SZXF1aXJlc1JlbGF5b3V0KHRoaXMpOwogCiAgICAgTGF5b3V0VW5p
dCBvbGRIZWlnaHQgPSBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBvbGRUb3AgPSBs
b2dpY2FsVG9wKCk7CkBAIC0xNDQxLDYgKzE0NTUsOCBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRh
dGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKCkKIAogICAgIHNldExvZ2ljYWxIZWln
aHQob2xkSGVpZ2h0KTsKICAgICBzZXRMb2dpY2FsVG9wKG9sZFRvcCk7CisgICAgCisgICAgcmV0
dXJuIGV4Y2x1c2lvbkluZm9SZXF1aXJlc1JlbGF5b3V0KHRoaXMpOwogfQogCiAjaWYgRU5BQkxF
KENTU19FWENMVVNJT05TKQpAQCAtMTUzOSw3ICsxNTU1LDkgQEAgdm9pZCBSZW5kZXJCbG9jazo6
bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2Fs
SGVpZ2gKICAgICAgICAgaWYgKGxvZ2ljYWxXaWR0aENoYW5nZWRJblJlZ2lvbnMoKSkKICAgICAg
ICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwogICAgIH0KLSAgICB1cGRhdGVSZWdpb25z
QW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKCk7CisKKyAgICBpZiAodXBkYXRlUmVnaW9uc0FuZEV4
Y2x1c2lvbnNMb2dpY2FsU2l6ZSgpKQorICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsK
IAogICAgIC8vIFdlIHVzZSBmb3VyIHZhbHVlcywgbWF4VG9wUG9zLCBtYXhUb3BOZWcsIG1heEJv
dHRvbVBvcywgYW5kIG1heEJvdHRvbU5lZywgdG8gdHJhY2sKICAgICAvLyBvdXIgY3VycmVudCBt
YXhpbWFsIHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBtYXJnaW5zLiAgVGhlc2UgdmFsdWVzIGFyZSB1
c2VkIHdoZW4gd2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmgKaW5kZXggZWYw
MzM0YzJjNzQwMTAwNmMwMGYxY2YyMWI3NWQ4OTQxMzAzYTQ3Zi4uODQ0NzliOWUyMTdiNDE3N2M4
MDQ5OWY1NWMyZTFiZjY2NjljOTI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmgKQEAgLTQ0Nyw2ICs0NDcsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoQ1NTX0VYQ0xV
U0lPTlMpCiAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lk
ZUluZm8oKSBjb25zdDsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGxheW91dEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbygpIGNvbnN0OwogICAgIGJvb2wgYWxsb3dzRXhjbHVzaW9uU2hh
cGVJbnNpZGVJbmZvU2hhcmluZygpIGNvbnN0IHsgcmV0dXJuICFpc0lubGluZSgpICYmICFpc0Zs
b2F0aW5nKCk7IH0KICNlbmRpZgogCkBAIC01NTcsNyArNTU4LDcgQEAgcHJvdGVjdGVkOgogICAg
IH0KICNlbmRpZgogCi0gICAgdm9pZCB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxT
aXplKCk7CisgICAgYm9vbCB1cGRhdGVSZWdpb25zQW5kRXhjbHVzaW9uc0xvZ2ljYWxTaXplKCk7
CiAgICAgdm9pZCBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jaygpOwogCiAgICAgdm9pZCB1cGRh
dGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwg
UmVuZGVyQm94Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tMaW5lTGF5b3V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0xpbmVMYXlvdXQuY3BwCmluZGV4IDllMTlhNjliNTY0N2VhMTc2YzUwM2RkZWFkZmU5N2Y4OGM1
NjkyZDkuLjI0MjllYjNjNjBmMjEzMjhhYjFjNWQ2MWQ3YTc3YzdjYzQyM2ZjODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0xpbmVMYXlvdXQuY3BwCkBA
IC03NywxMiArNzcsMTIgQEAgc3RhdGljIExheW91dFVuaXQgbG9naWNhbEhlaWdodEZvckxpbmUo
Y29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBib29sIGlzRmlyc3RMaW4KIH0KIAogI2lmIEVOQUJM
RShDU1NfRVhDTFVTSU9OUykKLXN0YXRpYyBpbmxpbmUgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZv
KiBsYXlvdXRFeGNsdXNpb25TaGFwZUluc2lkZUluZm8oY29uc3QgUmVuZGVyQmxvY2sqIGJsb2Nr
KQorRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBSZW5kZXJCbG9jazo6bGF5b3V0RXhjbHVzaW9u
U2hhcGVJbnNpZGVJbmZvKCkgY29uc3QKIHsKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8q
IHNoYXBlSW5zaWRlSW5mbyA9IGJsb2NrLT52aWV3KCktPmxheW91dFN0YXRlKCktPmV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbygpOwotICAgIGlmICghc2hhcGVJbnNpZGVJbmZvICYmIGJsb2NrLT5p
blJlbmRlckZsb3dUaHJlYWQoKSkgewotICAgICAgICBMYXlvdXRVbml0IG9mZnNldCA9IGJsb2Nr
LT5sb2dpY2FsSGVpZ2h0KCkgKyBsb2dpY2FsSGVpZ2h0Rm9yTGluZShibG9jaywgZmFsc2UpOwot
ICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IGJsb2NrLT5yZWdpb25BdEJsb2NrT2Zmc2V0
KG9mZnNldCk7CisgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKiBzaGFwZUluc2lkZUluZm8g
PSB2aWV3KCktPmxheW91dFN0YXRlKCktPmV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOworICAg
IGlmICghc2hhcGVJbnNpZGVJbmZvICYmIGluUmVuZGVyRmxvd1RocmVhZCgpKSB7CisgICAgICAg
IExheW91dFVuaXQgb2Zmc2V0ID0gbG9naWNhbEhlaWdodCgpICsgbG9naWNhbEhlaWdodEZvckxp
bmUodGhpcywgZmFsc2UpOworICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9IHJlZ2lvbkF0
QmxvY2tPZmZzZXQob2Zmc2V0KTsKICAgICAgICAgcmV0dXJuIHJlZ2lvbiA/IHJlZ2lvbi0+ZXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKCkgOiAwOwogICAgIH0KICAgICByZXR1cm4gc2hhcGVJbnNp
ZGVJbmZvOwpAQCAtMTA2LDcgKzEwNiw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VS
VChibG9jayk7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQotICAgICAgICBFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyhtX2Jsb2NrKTsKKyAgICAgICAgRXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBtX2Jsb2NrLT5sYXlvdXRFeGNsdXNpb25T
aGFwZUluc2lkZUluZm8oKTsKICAgICAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbykK
ICAgICAgICAgICAgIG1fc2VnbWVudCA9IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+Y3VycmVu
dFNlZ21lbnQoKTsKICNlbmRpZgpAQCAtOTUxLDcgKzk1MSw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6
OmNvbXB1dGVJbmxpbmVEaXJlY3Rpb25Qb3NpdGlvbnNGb3JMaW5lKFJvb3RJbmxpbmVCb3gqIGxp
bmVCb3gsCiAgICAgdXBkYXRlTG9naWNhbElubGluZVBvc2l0aW9ucyh0aGlzLCBsaW5lTG9naWNh
bExlZnQsIGxpbmVMb2dpY2FsUmlnaHQsIGF2YWlsYWJsZUxvZ2ljYWxXaWR0aCwgZmlyc3RMaW5l
LCAwKTsKICAgICBib29sIG5lZWRzV29yZFNwYWNpbmc7CiAjaWYgRU5BQkxFKENTU19FWENMVVNJ
T05TKQotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJ
bmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRoaXMpOworICAgIEV4Y2x1c2lv
blNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5b3V0RXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAm
JiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmhhc1NlZ21lbnRzKCkpIHsKICAgICAgICAgQmlk
aVJ1biogc2VnbWVudFN0YXJ0ID0gZmlyc3RSdW47CiAgICAgICAgIGNvbnN0IFNlZ21lbnRMaXN0
JiBzZWdtZW50cyA9IGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+c2VnbWVudHMoKTsKQEAgLTEy
NzQsNyArMTI3NCw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBjb25zdHJ1Y3RCaWRpUnVuc0Zvckxp
bmUoY29uc3QgUmVuZGVyQmxvY2sqIGJsb2NrLCBJbmxpbmVCaWRpCiAgICAgVU5VU0VEX1BBUkFN
KGJsb2NrKTsKICAgICBjb25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQodG9wUmVzb2x2ZXIsIGJp
ZGlSdW5zLCBlbmRPZkxpbmUsIG92ZXJyaWRlLCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpOwog
I2Vsc2UKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhibG9jayk7CisgICAgRXhjbHVz
aW9uU2hhcGVJbnNpZGVJbmZvKiBleGNsdXNpb25TaGFwZUluc2lkZUluZm8gPSBibG9jay0+bGF5
b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYgKCFleGNsdXNpb25TaGFwZUlu
c2lkZUluZm8gfHwgIWV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mby0+aGFzU2VnbWVudHMoKSkgewog
ICAgICAgICBjb25zdHJ1Y3RCaWRpUnVuc0ZvclNlZ21lbnQodG9wUmVzb2x2ZXIsIGJpZGlSdW5z
LCBlbmRPZkxpbmUsIG92ZXJyaWRlLCBwcmV2aW91c0xpbmVCcm9rZUNsZWFubHkpOwogICAgICAg
ICByZXR1cm47CkBAIC0xNTQwLDcgKzE1NDAsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRS
dW5zQW5kRmxvYXRzSW5SYW5nZShMaW5lTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBJbmxpbgog
CiAjaWYgRU5BQkxFKENTU19FWENMVVNJT05TKQogICAgIExheW91dFVuaXQgYWJzb2x1dGVMb2dp
Y2FsVG9wOwotICAgIEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNp
ZGVJbmZvID0gbGF5b3V0RXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKHRoaXMpOworICAgIEV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyogZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvID0gbGF5b3V0RXhj
bHVzaW9uU2hhcGVJbnNpZGVJbmZvKCk7CiAgICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5m
bykgewogICAgICAgICBBU1NFUlQoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvLT5vd25lcigpID09
IHRoaXMgfHwgYWxsb3dzRXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvU2hhcmluZygpKTsKICAgICAg
ICAgaWYgKGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyAhPSB0aGlzLT5leGNsdXNpb25TaGFwZUlu
c2lkZUluZm8oKSkgewpAQCAtMTU3Niw3ICsxNTc2LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5
b3V0UnVuc0FuZEZsb2F0c0luUmFuZ2UoTGluZUxheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSwgSW5s
aW4KICAgICAgICAgLy8gRklYTUU6IEJ1ZyA5NTM2MTogSXQgaXMgcG9zc2libGUgZm9yIGEgbGlu
ZSB0byBncm93IGJleW9uZCBsaW5lSGVpZ2h0LCBpbiB3aGljaAogICAgICAgICAvLyBjYXNlIHRo
ZXNlIHNlZ21lbnRzIG1heSBiZSBpbmNvcnJlY3QuCiAgICAgICAgIGlmIChpblJlbmRlckZsb3dU
aHJlYWQoKSkKLSAgICAgICAgICAgIGV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4
Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyh0aGlzKTsKKyAgICAgICAgICAgIGV4Y2x1c2lvblNoYXBl
SW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgICAgICBp
ZiAoZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvKSB7CiAgICAgICAgICAgICBMYXlvdXRVbml0IGxp
bmVUb3AgPSBsb2dpY2FsSGVpZ2h0KCkgKyBhYnNvbHV0ZUxvZ2ljYWxUb3A7CiAgICAgICAgICAg
ICBleGNsdXNpb25TaGFwZUluc2lkZUluZm8tPmNvbXB1dGVTZWdtZW50c0ZvckxpbmUobGluZVRv
cCwgbGluZUhlaWdodChsYXlvdXRTdGF0ZS5saW5lSW5mbygpLmlzRmlyc3RMaW5lKCksIGlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkgPyBIb3Jpem9udGFsTGluZSA6IFZlcnRpY2FsTGluZSwgUG9z
aXRpb25PZkludGVyaW9yTGluZUJveGVzKSk7CkBAIC0yNTQxLDcgKzI1NDEsNyBAQCBJbmxpbmVJ
dGVyYXRvciBSZW5kZXJCbG9jazo6TGluZUJyZWFrZXI6Om5leHRMaW5lQnJlYWsoSW5saW5lQmlk
aVJlc29sdmVyJiByZXNvbAogI2lmICFFTkFCTEUoQ1NTX0VYQ0xVU0lPTlMpCiAgICAgcmV0dXJu
IG5leHRTZWdtZW50QnJlYWsocmVzb2x2ZXIsIGxpbmVJbmZvLCByZW5kZXJUZXh0SW5mbywgbGFz
dEZsb2F0RnJvbVByZXZpb3VzTGluZSwgY29uc2VjdXRpdmVIeXBoZW5hdGVkTGluZXMsIHdvcmRN
ZWFzdXJlbWVudHMpOwogI2Vsc2UKLSAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1
c2lvblNoYXBlSW5zaWRlSW5mbyA9IGxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbyhtX2Js
b2NrKTsKKyAgICBFeGNsdXNpb25TaGFwZUluc2lkZUluZm8qIGV4Y2x1c2lvblNoYXBlSW5zaWRl
SW5mbyA9IG1fYmxvY2stPmxheW91dEV4Y2x1c2lvblNoYXBlSW5zaWRlSW5mbygpOwogICAgIGlm
ICghZXhjbHVzaW9uU2hhcGVJbnNpZGVJbmZvIHx8ICFleGNsdXNpb25TaGFwZUluc2lkZUluZm8t
Pmhhc1NlZ21lbnRzKCkpCiAgICAgICAgIHJldHVybiBuZXh0U2VnbWVudEJyZWFrKHJlc29sdmVy
LCBsaW5lSW5mbywgcmVuZGVyVGV4dEluZm8sIGxhc3RGbG9hdEZyb21QcmV2aW91c0xpbmUsIGNv
bnNlY3V0aXZlSHlwaGVuYXRlZExpbmVzLCB3b3JkTWVhc3VyZW1lbnRzKTsKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ4
ZDIxOTUzZmEwY2I4ZWVkYzQwY2I1YzdlMDFjMjE4OTg4YTNmODguLjQ1ZjBmNDNiMGRkMWQ1NzJh
MWMwNzNiNzdiZjExNzYzOGIzMWVlMTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMy0wMy0w
MSAgQmVhciBUcmF2aXMgIDxiZXRyYXZpc0BhZG9iZS5jb20+CisKKyAgICAgICAgW2NzcyBleGNs
dXNpb25zXSBzZXR0aW5nIHNoYXBlLWluc2lkZSBvbiBhIHBhcmVudCBkb2VzIG5vdCByZWxheW91
dCBjaGlsZCBibG9ja3MnIGlubGluZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDgxMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IHRoYXQgc2V0dGluZyBhbmQgcmVzZXR0aW5nIHNo
YXBlLWluc2lkZSBhbmQgc2hhcGUtb3V0c2lkZSBjb3JyZWN0bHkgbGF5IG91dAorICAgICAgICBj
b250ZW50IGluc2lkZSBvZiBjaGlsZCBibG9ja3MuCisKKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lv
bnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1leHBlY3RlZC5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2V4Y2x1c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWlu
c2lkZS1keW5hbWljLW5lc3RlZC5odG1sOiBBZGRlZC4KKwogMjAxMy0wMy0wMSAgVnNldm9sb2Qg
Vmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBO
YXZpZ2F0b3Igc2hvdWxkIHNob3cgdHJlZSBlbGVtZW50IGZvciBlYWNoIGZvbGRlciBpbiB0aGUg
c291cmNlIHBhdGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1c2lvbnMvc2hh
cGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1p
Yy1uZXN0ZWQtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMGU1NmNlZGUxZGI5NDAzOTAzY2Y2
ODA5NGYzZjI2ZmVmNmQzOTRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
eGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQtZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDUzIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldHRpbmdzLnNldENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworPC9zY3JpcHQ+
Cis8c3R5bGU+CisgICAgLmNvbnRhaW5lciB7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsK
KyAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAgICAgICBv
dmVyZmxvdy13cmFwOiBicmVhay13b3JkOworICAgICAgICBib3JkZXI6IDJweCBzb2xpZCBibHVl
OworICAgICAgICBmb250OiA0MHB4LzEgQWhlbSwgc2Fucy1zZXJpZjsKKyAgICAgICAgY29sb3I6
IGdyZWVuOworICAgIH0KKyAgICAuY29udGFpbmVyLnNoYXBlIHsKKyAgICAgICAgYm9yZGVyLWNv
bG9yOiB3aGl0ZTsKKyAgICB9CisgICAgLnNoYXBlOjpiZWZvcmUgeworICAgICAgICBwb3NpdGlv
bjogYWJzb2x1dGU7CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICB0b3A6IDhweDsg
bGVmdDogOHB4OworICAgICAgICB3aWR0aDogMTgwcHg7CisgICAgICAgIGhlaWdodDogMTgwcHg7
CisgICAgICAgIGJvcmRlcjogMnB4IHNvbGlkIGJsdWU7CisgICAgICAgIGNvbnRlbnQ6ICcgJzsK
KyAgICB9CisgICAgLmluc2lkZSB7CisgICAgICAgIC13ZWJraXQtc2hhcGUtaW5zaWRlOiByZWN0
YW5nbGUoMTBweCwgMTBweCwgMTgwcHgsIDE4MHB4KTsKKyAgICB9CisgICAgLm91dHNpZGUgewor
ICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHJlY3RhbmdsZSgxMHB4LCAxMHB4LCAxODBw
eCwgMTgwcHgpOworICAgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UaGlz
IHRlc3QgZW5zdXJlcyBsYXlvdXQgcHJvcGVybHkgcmVzcGVjdHMgc2hhcGUtaW5zaWRlIHdoZW4g
aXQgaXMgc2V0L3Vuc2V0LCBvciB3aGVuIHNoYXBlLW91dHNpZGUgaXMgc2V0L3Vuc2V0IGZvciBh
IHZhbHVlIG9mICJvdXRzaWRlLXNoYXBlIi4gVGhlIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9u
dCwgYW5kIGluIGVhY2ggY2FzZSB0aGUgZ3JlZW4gc3F1YXJlcyBzaG91bGQgYmUgY29udGFpbmVk
IGJ5IGEgYmx1ZSBvdXRsaW5lLjwvcD4KKworICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdp
dGggbm8gcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBpZD0nc2V0LWluc2lkZS1zaGFwZScgY2xh
c3M9J2NvbnRhaW5lciBzaGFwZSBpbnNpZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9k
aXY+PC9kaXY+CisKKyAgICA8cD5TZXR0aW5nIHNoYXBlLWluc2lkZSB3aXRoIGEgcHJpb3IgZW50
cnk8L3A+CisgICAgPGRpdiBpZD0ncmVzZXQtaW5zaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVy
IHNoYXBlIGluc2lkZSc+PGRpdj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKwor
ICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAg
IDxkaXYgaWQ9J3NldC1vdXRzaWRlLXNoYXBlJyBjbGFzcz0nY29udGFpbmVyIHNoYXBlIG91dHNp
ZGUnPjxkaXY+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+PC9kaXY+CisKKyAgICA8cD5TZXR0
aW5nIG91dHNpZGUtc2hhcGUgd2l0aCBhIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3Jl
c2V0LW91dHNpZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgb3V0c2lkZSc+PGRpdj48
ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V4Y2x1
c2lvbnMvc2hhcGUtaW5zaWRlL3NoYXBlLWluc2lkZS1keW5hbWljLW5lc3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9leGNsdXNpb25zL3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1p
Yy1uZXN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNjFlNzk3ZTU2YmRkNWVmODM3YmEwMzc0YzJmMzRk
NTYzMDA0YjE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9leGNsdXNpb25z
L3NoYXBlLWluc2lkZS9zaGFwZS1pbnNpZGUtZHluYW1pYy1uZXN0ZWQuaHRtbApAQCAtMCwwICsx
LDc2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNl
dENTU0V4Y2x1c2lvbnNFbmFibGVkKHRydWUpOworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmJvZHkpCisgICAgICAgICAgICBkb2N1bWVudC5i
b2R5Lm9mZnNldFRvcDsKKyAgICAgICAgZWxzZSBpZiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50
KQorICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50Lm9mZnNldFRvcDsKKyAgICAg
ICAgbGF5b3V0VGVzdCgpOworICAgIH0KKyAgICBmdW5jdGlvbiBsYXlvdXRUZXN0KCkgeworICAg
ICAgICB2YXIgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnc2V0LWluc2lkZS1zaGFwZScp
OworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRhaW5lciBzaGFwZSBpbnNp
ZGUnKTsKKyAgICAgICAgZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzZXQtaW5zaWRl
LXNoYXBlJyk7CisgICAgICAgIGVsLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAnY29udGFpbmVyIHNo
YXBlIGluc2lkZScpOworICAgICAgICBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzZXQt
b3V0c2lkZS1zaGFwZScpOworICAgICAgICBlbC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ2NvbnRh
aW5lciBzaGFwZSBvdXRzaWRlJyk7CisgICAgICAgIGVsID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3Jlc2V0LW91dHNpZGUtc2hhcGUnKTsKKyAgICAgICAgZWwuc2V0QXR0cmlidXRlKCdjbGFz
cycsICdjb250YWluZXIgc2hhcGUgb3V0c2lkZScpOworICAgIH0KKzwvc2NyaXB0PgorPHN0eWxl
PgorICAgIC5jb250YWluZXIgeworICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgb3ZlcmZsb3ct
d3JhcDogYnJlYWstd29yZDsKKyAgICAgICAgYm9yZGVyOiAycHggc29saWQgYmx1ZTsKKyAgICAg
ICAgZm9udDogNDBweC8xIEFoZW0sIHNhbnMtc2VyaWY7CisgICAgICAgIGNvbG9yOiBncmVlbjsK
KyAgICB9CisgICAgLmNvbnRhaW5lci5zaGFwZSB7CisgICAgICAgIGJvcmRlci1jb2xvcjogd2hp
dGU7CisgICAgfQorICAgIC5zaGFwZTo6YmVmb3JlIHsKKyAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgdG9wOiA4cHg7IGxlZnQ6IDhw
eDsKKyAgICAgICAgd2lkdGg6IDE4MHB4OworICAgICAgICBoZWlnaHQ6IDE4MHB4OworICAgICAg
ICBib3JkZXI6IDJweCBzb2xpZCBibHVlOworICAgICAgICBjb250ZW50OiAnICc7CisgICAgfQor
ICAgIC5pbnNpZGUgeworICAgICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogcmVjdGFuZ2xlKDEw
cHgsIDEwcHgsIDE4MHB4LCAxODBweCk7CisgICAgfQorICAgIC5pbnNpZGUtYWx0IHsKKyAgICAg
ICAgLXdlYmtpdC1zaGFwZS1pbnNpZGU6IGNpcmNsZSg1MCUsIDUwJSwgNTAlKTsKKyAgICB9Cisg
ICAgLm91dHNpZGUgeworICAgICAgICAtd2Via2l0LXNoYXBlLW91dHNpZGU6IHJlY3RhbmdsZSgx
MHB4LCAxMHB4LCAxODBweCwgMTgwcHgpOworICAgIH0KKyAgICAub3V0c2lkZS1hbHQgeworICAg
ICAgICAtd2Via2l0LXNoYXBlLWluc2lkZTogY2lyY2xlKDUwJSwgNTAlLCA1MCUpOworICAgIH0K
Kzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8cD5UaGlzIHRlc3QgZW5zdXJlcyBsYXlv
dXQgcHJvcGVybHkgcmVzcGVjdHMgc2hhcGUtaW5zaWRlIHdoZW4gaXQgaXMgc2V0L3Vuc2V0LCBv
ciB3aGVuIHNoYXBlLW91dHNpZGUgaXMgc2V0L3Vuc2V0IGZvciBhIHZhbHVlIG9mICJvdXRzaWRl
LXNoYXBlIi4gVGhlIHRlc3QgcmVxdWlyZXMgdGhlIEFoZW0gZm9udCwgYW5kIGluIGVhY2ggY2Fz
ZSB0aGUgZ3JlZW4gc3F1YXJlcyBzaG91bGQgYmUgY29udGFpbmVkIGJ5IGEgYmx1ZSBvdXRsaW5l
LjwvcD4KKworICAgIDxwPlNldHRpbmcgc2hhcGUtaW5zaWRlIHdpdGggbm8gcHJpb3IgZW50cnk8
L3A+CisgICAgPGRpdiBpZD0nc2V0LWluc2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcic+PGRp
dj48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlNldHRpbmcgc2hh
cGUtaW5zaWRlIHdpdGggYSBwcmlvciBlbnRyeTwvcD4KKyAgICA8ZGl2IGlkPSdyZXNldC1pbnNp
ZGUtc2hhcGUnIGNsYXNzPSdjb250YWluZXIgc2hhcGUgaW5zaWRlLWFsdCc+PGRpdj48ZGl2Pnh4
eHh4eHh4eHg8L2Rpdj48L2Rpdj48L2Rpdj4KKworICAgIDxwPlNldHRpbmcgb3V0c2lkZS1zaGFw
ZSB3aXRoIG5vIHByaW9yIGVudHJ5PC9wPgorICAgIDxkaXYgaWQ9J3NldC1vdXRzaWRlLXNoYXBl
JyBjbGFzcz0nY29udGFpbmVyJz48ZGl2Pnh4eHh4eHh4eHg8L2Rpdj48L2Rpdj4KKworICAgIDxw
PlNldHRpbmcgb3V0c2lkZS1zaGFwZSB3aXRoIGEgcHJpb3IgZW50cnk8L3A+CisgICAgPGRpdiBp
ZD0ncmVzZXQtb3V0c2lkZS1zaGFwZScgY2xhc3M9J2NvbnRhaW5lcicgY2xhc3M9J2NvbnRhaW5l
ciBzaGFwZSBvdXRzaWRlLWFsdCc+PGRpdj54eHh4eHh4eHh4PC9kaXY+PC9kaXY+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>