<?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>71166</bug_id>
          
          <creation_ts>2011-10-28 17:50:27 -0700</creation_ts>
          <short_desc>Overridden LayoutRect method still uses IntRects</short_desc>
          <delta_ts>2011-10-31 14:33:58 -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>Layout and Rendering</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492836</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-10-28 17:50:27 -0700</bug_when>
    <thetext>Some of the virtual functions that return a LayoutRect still have overridden versions that return an IntRect. Specifically the following methods:

controlClipRect
windowResizerRect
windowClipRect
visibleContentRect
scrollCornerRect
outlineBoundsForRepaint
localCaretRect</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492846</commentid>
    <comment_count>1</comment_count>
      <attachid>112954</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-10-28 17:57:50 -0700</bug_when>
    <thetext>Created attachment 112954
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492891</commentid>
    <comment_count>2</comment_count>
      <attachid>112954</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-10-28 21:42:15 -0700</bug_when>
    <thetext>Comment on attachment 112954
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:2312
&gt; -LayoutRect FrameView::windowClipRect(bool clipToContents) const
&gt; +IntRect FrameView::windowClipRect(bool clipToContents) const

Why going back?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493392</commentid>
    <comment_count>3</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-10-31 10:13:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 112954 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112954&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:2312
&gt; &gt; -LayoutRect FrameView::windowClipRect(bool clipToContents) const
&gt; &gt; +IntRect FrameView::windowClipRect(bool clipToContents) const
&gt; 
&gt; Why going back?

We&apos;re keeping certain things as ints to ensure alignment, specifically window coordinates and sizes as well as scroll offsets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493502</commentid>
    <comment_count>4</comment_count>
      <attachid>112954</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 14:33:53 -0700</bug_when>
    <thetext>Comment on attachment 112954
Patch

Clearing flags on attachment: 112954

Committed r98883: &lt;http://trac.webkit.org/changeset/98883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493503</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-31 14:33:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112954</attachid>
            <date>2011-10-28 17:57:50 -0700</date>
            <delta_ts>2011-10-31 14:33:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71166-20111028175749.patch</filename>
            <type>text/plain</type>
            <size>17436</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4Nzg4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMTAtMjggIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE92ZXJyaWRkZW4gTGF5b3V0UmVj
dCBtZXRob2Qgc3RpbGwgdXNlcyBJbnRSZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzExNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgYWxsIHZpcnR1YWwgY29udHJvbENsaXBSZWN0LCB3
aW5kb3dSZXNpemVyUmVjdCwgd2luZG93Q2xpcFJlY3QsCisgICAgICAgIHZpc2libGVDb250ZW50
UmVjdCwgc2Nyb2xsQ29ybmVyUmVjdCwgb3V0bGluZUJvdW5kc0ZvclJlcGFpbnQgYW5kCisgICAg
ICAgIGxvY2FsQ2FyZXRSZWN0IGZ1bmN0aW9ucyB0byBoYXZlIHRoZSBzYW1lIHNpZ25hdHVyZS4K
KworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
Vmlldzo6d2luZG93Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp3aW5k
b3dDbGlwUmVjdEZvckxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6d2luZG93
UmVzaXplclJlY3QpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp3aGVl
bEV2ZW50KToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYWJsZUFyZWEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQnV0dG9u
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp2aXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllci5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpsb2NhbENhcmV0UmVjdCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2Jq
ZWN0OjpvdXRsaW5lQm91bmRzRm9yUmVwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6bG9jYWxDYXJldFJlY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dDo6bGluZXNCb3VuZGluZ0JveCk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlclRleHQuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR0lubGluZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHSW5saW5l
VGV4dDo6bG9jYWxDYXJldFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
SW5saW5lVGV4dC5oOgorCiAyMDExLTEwLTI4ICBKb2huIFN1bGxpdmFuICA8c3VsbGl2YW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEltcHJvdmVtZW50IHRvIHRoZSBmaXggZm9yOgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAkocmV2aXNpb24gOTg3NzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzMDksMTUgKzIzMDksMTUg
QEAgdm9pZCBGcmFtZVZpZXc6OnVwZGF0ZU92ZXJmbG93U3RhdHVzKGJvbwogICAgIAogfQogCi1M
YXlvdXRSZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cykg
Y29uc3QKK0ludFJlY3QgRnJhbWVWaWV3Ojp3aW5kb3dDbGlwUmVjdChib29sIGNsaXBUb0NvbnRl
bnRzKSBjb25zdAogewogICAgIEFTU0VSVChtX2ZyYW1lLT52aWV3KCkgPT0gdGhpcyk7CiAKICAg
ICBpZiAocGFpbnRzRW50aXJlQ29udGVudHMoKSkKLSAgICAgICAgcmV0dXJuIExheW91dFJlY3Qo
TGF5b3V0UG9pbnQoKSwgY29udGVudHNTaXplKCkpOworICAgICAgICByZXR1cm4gSW50UmVjdChJ
bnRQb2ludCgpLCBjb250ZW50c1NpemUoKSk7CiAKICAgICAvLyBTZXQgb3VyIGNsaXAgcmVjdCB0
byBiZSBvdXIgY29udGVudHMuCi0gICAgTGF5b3V0UmVjdCBjbGlwUmVjdCA9IGNvbnRlbnRzVG9X
aW5kb3codmlzaWJsZUNvbnRlbnRSZWN0KCFjbGlwVG9Db250ZW50cykpOworICAgIEludFJlY3Qg
Y2xpcFJlY3QgPSBjb250ZW50c1RvV2luZG93KHZpc2libGVDb250ZW50UmVjdCghY2xpcFRvQ29u
dGVudHMpKTsKICAgICBpZiAoIW1fZnJhbWUgfHwgIW1fZnJhbWUtPm93bmVyRWxlbWVudCgpKQog
ICAgICAgICByZXR1cm4gY2xpcFJlY3Q7CiAKQEAgLTIzMzMsMTQgKzIzMzMsMTQgQEAgTGF5b3V0
UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0KGJvbwogICAgIHJldHVybiBjbGlwUmVjdDsK
IH0KIAotTGF5b3V0UmVjdCBGcmFtZVZpZXc6OndpbmRvd0NsaXBSZWN0Rm9yTGF5ZXIoY29uc3Qg
UmVuZGVyTGF5ZXIqIGxheWVyLCBib29sIGNsaXBUb0xheWVyQ29udGVudHMpIGNvbnN0CitJbnRS
ZWN0IEZyYW1lVmlldzo6d2luZG93Q2xpcFJlY3RGb3JMYXllcihjb25zdCBSZW5kZXJMYXllciog
bGF5ZXIsIGJvb2wgY2xpcFRvTGF5ZXJDb250ZW50cykgY29uc3QKIHsKICAgICAvLyBJZiB3ZSBo
YXZlIG5vIGxheWVyLCBqdXN0IHJldHVybiBvdXIgd2luZG93IGNsaXAgcmVjdC4KICAgICBpZiAo
IWxheWVyKQogICAgICAgICByZXR1cm4gd2luZG93Q2xpcFJlY3QoKTsKIAogICAgIC8vIEFwcGx5
IHRoZSBjbGlwIGZyb20gdGhlIGxheWVyLgotICAgIExheW91dFJlY3QgY2xpcFJlY3Q7CisgICAg
SW50UmVjdCBjbGlwUmVjdDsKICAgICBpZiAoY2xpcFRvTGF5ZXJDb250ZW50cykKICAgICAgICAg
Y2xpcFJlY3QgPSBsYXllci0+Y2hpbGRyZW5DbGlwUmVjdCgpOwogICAgIGVsc2UKQEAgLTIzNzcs
NyArMjM3Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpnZXRUaWNrbWFya3MoVmVjdG9yPExheW8KICAg
ICB0aWNrbWFya3MgPSBmcmFtZSgpLT5kb2N1bWVudCgpLT5tYXJrZXJzKCktPnJlbmRlcmVkUmVj
dHNGb3JNYXJrZXJzKERvY3VtZW50TWFya2VyOjpUZXh0TWF0Y2gpOwogfQogCi1MYXlvdXRSZWN0
IEZyYW1lVmlldzo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAorSW50UmVjdCBGcmFtZVZpZXc6
OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gZnJhbWUoKSA/
IGZyYW1lKCktPnBhZ2UoKSA6IDA7CiAgICAgaWYgKCFwYWdlKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5oCShyZXZpc2lvbiA5ODc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MCwxMCArMTYwLDEwIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRqdXN0Vmlld1NpemUoKTsKICAgICAKLSAgICB2aXJ0dWFsIExheW91dFJlY3Qgd2lu
ZG93Q2xpcFJlY3QoYm9vbCBjbGlwVG9Db250ZW50cyA9IHRydWUpIGNvbnN0OwotICAgIExheW91
dFJlY3Qgd2luZG93Q2xpcFJlY3RGb3JMYXllcihjb25zdCBSZW5kZXJMYXllciosIGJvb2wgY2xp
cFRvTGF5ZXJDb250ZW50cykgY29uc3Q7CisgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd0NsaXBS
ZWN0KGJvb2wgY2xpcFRvQ29udGVudHMgPSB0cnVlKSBjb25zdDsKKyAgICBJbnRSZWN0IHdpbmRv
d0NsaXBSZWN0Rm9yTGF5ZXIoY29uc3QgUmVuZGVyTGF5ZXIqLCBib29sIGNsaXBUb0xheWVyQ29u
dGVudHMpIGNvbnN0OwogCi0gICAgdmlydHVhbCBMYXlvdXRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0
KCkgY29uc3Q7CisgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7
CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QoY29uc3QgSW50
UmVjdCYpIE9WRVJSSURFOwogICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3QgTGF5b3V0
UG9pbnQmKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZp
c2lvbiA5ODc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC05MjksMjUgKzkyOSwyNSBAQCB2b2lkIFNjcm9sbFZpZXc6OnJlcGFp
bnRDb250ZW50UmVjdGFuZ2xlCiAgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRl
bnRzQW5kV2luZG93KGNvbnRlbnRzVG9XaW5kb3cocGFpbnRSZWN0KSwgbm93IC8qaW1tZWRpYXRl
Ki8pOwogfQogCi1JbnRSZWN0IFNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25zdAor
TGF5b3V0UmVjdCBTY3JvbGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QKIHsKLSAgICBJ
bnRSZWN0IGNvcm5lclJlY3Q7CisgICAgTGF5b3V0UmVjdCBjb3JuZXJSZWN0OwogCiAgICAgaWYg
KGhhc092ZXJsYXlTY3JvbGxiYXJzKCkpCiAgICAgICAgIHJldHVybiBjb3JuZXJSZWN0OwogCiAg
ICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiB3aWR0aCgpIC0gbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT53aWR0aCgpID4gMCkgewotICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKEludFJlY3Qo
bV9ob3Jpem9udGFsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGgoKSAtIG1faG9yaXpvbnRhbFNjcm9s
bGJhci0+d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1faG9yaXpv
bnRhbFNjcm9sbGJhci0+aGVpZ2h0KCkpKTsKKyAgICAgICAgY29ybmVyUmVjdC51bml0ZShMYXlv
dXRSZWN0KG1faG9yaXpvbnRhbFNjcm9sbGJhci0+d2lkdGgoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5oZWln
aHQoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKCkgLSBtX2hv
cml6b250YWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdodCgpKSk7CiAgICAgfQogCiAgICAg
aWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgaGVpZ2h0KCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFy
LT5oZWlnaHQoKSA+IDApIHsKLSAgICAgICAgY29ybmVyUmVjdC51bml0ZShJbnRSZWN0KHdpZHRo
KCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+aGVpZ2h0KCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT53aWR0aCgpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX3ZlcnRpY2FsU2Nyb2xsYmFy
LT5oZWlnaHQoKSkpOworICAgICAgICBjb3JuZXJSZWN0LnVuaXRlKExheW91dFJlY3Qod2lkdGgo
KSAtIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPndpZHRoKCksCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQoKSAtIG1fdmVydGljYWxT
Y3JvbGxiYXItPmhlaWdodCgpKSk7CiAgICAgfQogICAgIAogICAgIHJldHVybiBjb3JuZXJSZWN0
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAkocmV2aXNpb24gOTg3NzAp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgJKHdvcmtpbmcgY29weSkK
QEAgLTI3OSw3ICsyNzksNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNQb2ludElu
U2Nyb2xsYmFyQ29ybmVyKGNvbnN0IEludFBvaW50Jik7CiAgICAgdmlydHVhbCBib29sIHNjcm9s
bGJhckNvcm5lclByZXNlbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsQ29y
bmVyUmVjdCgpIGNvbnN0OworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBzY3JvbGxDb3JuZXJSZWN0
KCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50U2Nyb2xsQ29ybmVyKEdyYXBoaWNzQ29u
dGV4dCosIGNvbnN0IEludFJlY3QmIGNvcm5lclJlY3QpOwogCiAgICAgdmlydHVhbCBJbnRSZWN0
IGNvbnZlcnRGcm9tU2Nyb2xsYmFyVG9Db250YWluaW5nVmlldyhjb25zdCBTY3JvbGxiYXIqLCBj
b25zdCBJbnRSZWN0JikgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmgJKHJldmlzaW9uIDk4NzcwKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBpbnQgc2Nyb2xsUG9zaXRpb24oU2Nyb2xsYmFyKikgY29uc3QgPSAwOwog
ICAgIHZvaWQgaW52YWxpZGF0ZVNjcm9sbGJhcihTY3JvbGxiYXIqLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsQ29ybmVyVmlzaWJsZSgpIGNvbnN0ID0gMDsKLSAg
ICB2aXJ0dWFsIEludFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIExheW91dFJlY3Qgc2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0ID0gMDsKICAgICB2b2lkIGlu
dmFsaWRhdGVTY3JvbGxDb3JuZXIoY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBn
ZXRUaWNrbWFya3MoVmVjdG9yPEludFJlY3Q+JikgY29uc3QgeyB9CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCdXR0b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQnV0dG9uLmgJKHJldmlzaW9uIDk4NzcwKQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJ1dHRvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3
ICs1MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQWZ0ZXJDb250
ZW50KFBzZXVkb0lkKTsKIAogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIEludFJlY3QgY29udHJvbENsaXBSZWN0KGNv
bnN0IEludFBvaW50JikgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0IGNvbnRyb2xDbGlw
UmVjdChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRUZXh0KGNvbnN0IFN0
cmluZyYpOwogICAgIFN0cmluZyB0ZXh0KCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDk4NzcwKQorKysgU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTcyMywxOCAr
MTcyMywxOCBAQCBMYXlvdXRQb2ludCBSZW5kZXJMYXllcjo6bWF4aW11bVNjcm9sbFBvCiAgICAg
cmV0dXJuIG1fc2Nyb2xsT3JpZ2luICsgbV9zY3JvbGxTaXplIC0gdmlzaWJsZUNvbnRlbnRSZWN0
KHRydWUpLnNpemUoKTsKIH0KIAotTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6dmlzaWJsZUNvbnRl
bnRSZWN0KGJvb2wgaW5jbHVkZVNjcm9sbGJhcnMpIGNvbnN0CitJbnRSZWN0IFJlbmRlckxheWVy
Ojp2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Nyb2xsYmFycykgY29uc3QKIHsKLSAg
ICBMYXlvdXRVbml0IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGggPSAwOwotICAgIExheW91dFVuaXQg
aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IDA7CisgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFy
V2lkdGggPSAwOworICAgIGludCBob3Jpem9udGFsU2Nyb2xsYmFySGVpZ2h0ID0gMDsKICAgICBp
ZiAoaW5jbHVkZVNjcm9sbGJhcnMpIHsKICAgICAgICAgdmVydGljYWxTY3JvbGxiYXJXaWR0aCA9
ICh2ZXJ0aWNhbFNjcm9sbGJhcigpICYmICF2ZXJ0aWNhbFNjcm9sbGJhcigpLT5pc092ZXJsYXlT
Y3JvbGxiYXIoKSkgPyB2ZXJ0aWNhbFNjcm9sbGJhcigpLT53aWR0aCgpIDogMDsKICAgICAgICAg
aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCA9IChob3Jpem9udGFsU2Nyb2xsYmFyKCkgJiYgIWhv
cml6b250YWxTY3JvbGxiYXIoKS0+aXNPdmVybGF5U2Nyb2xsYmFyKCkpID8gaG9yaXpvbnRhbFNj
cm9sbGJhcigpLT5oZWlnaHQoKSA6IDA7CiAgICAgfQogICAgIAotICAgIHJldHVybiBMYXlvdXRS
ZWN0KExheW91dFBvaW50KHNjcm9sbFhPZmZzZXQoKSwgc2Nyb2xsWU9mZnNldCgpKSwKLSAgICAg
ICAgICAgICAgICAgICAgICBMYXlvdXRTaXplKG1heDxMYXlvdXRVbml0PigwLCBtX2xheWVyU2l6
ZS53aWR0aCgpIC0gdmVydGljYWxTY3JvbGxiYXJXaWR0aCksIAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbWF4PExheW91dFVuaXQ+KDAsIG1fbGF5ZXJTaXplLmhlaWdodCgpIC0g
aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodCkpKTsKKyAgICByZXR1cm4gSW50UmVjdChJbnRQb2lu
dChzY3JvbGxYT2Zmc2V0KCksIHNjcm9sbFlPZmZzZXQoKSksCisgICAgICAgICAgICAgICAgICAg
SW50U2l6ZShtYXgoMCwgbV9sYXllclNpemUud2lkdGgoKSAtIHZlcnRpY2FsU2Nyb2xsYmFyV2lk
dGgpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heCgwLCBtX2xheWVyU2l6ZS5oZWln
aHQoKSAtIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQpKSk7CiB9CiAKIExheW91dFNpemUgUmVu
ZGVyTGF5ZXI6Om92ZXJoYW5nQW1vdW50KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiA5ODc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MDgsNyArNjA4LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIExheW91dFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7
CiAgICAgdmlydHVhbCBMYXlvdXRQb2ludCBtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsK
ICAgICB2aXJ0dWFsIExheW91dFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0Owot
ICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXNpYmxlQ29udGVudFJlY3QoYm9vbCBpbmNsdWRlU2Ny
b2xsYmFycykgY29uc3Q7CisgICAgdmlydHVhbCBJbnRSZWN0IHZpc2libGVDb250ZW50UmVjdChi
b29sIGluY2x1ZGVTY3JvbGxiYXJzKSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgdmlz
aWJsZUhlaWdodCgpIGNvbnN0OwogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCB2aXNpYmxlV2lkdGgo
KSBjb25zdDsKICAgICB2aXJ0dWFsIExheW91dFNpemUgY29udGVudHNTaXplKCkgY29uc3Q7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24g
OTg3NzApCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA4MSwxMiArMjA4MSwxMiBAQCBMYXlvdXRTaXplIFJlbmRlck9iamVj
dDo6b2Zmc2V0RnJvbUFuY2VzCiAgICAgcmV0dXJuIG9mZnNldDsKIH0KIAotSW50UmVjdCBSZW5k
ZXJPYmplY3Q6OmxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCwgaW50KiBleHRyYVdpZHRo
VG9FbmRPZkxpbmUpCitMYXlvdXRSZWN0IFJlbmRlck9iamVjdDo6bG9jYWxDYXJldFJlY3QoSW5s
aW5lQm94KiwgaW50LCBMYXlvdXRVbml0KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUpCiB7CiAgICAg
aWYgKGV4dHJhV2lkdGhUb0VuZE9mTGluZSkKICAgICAgICAgKmV4dHJhV2lkdGhUb0VuZE9mTGlu
ZSA9IDA7CiAKLSAgICByZXR1cm4gSW50UmVjdCgpOworICAgIHJldHVybiBMYXlvdXRSZWN0KCk7
CiB9CiAKIFJlbmRlclZpZXcqIFJlbmRlck9iamVjdDo6dmlldygpIGNvbnN0CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZpc2lvbiA5ODc3MCkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBjb3B5KQpAQCAt
NzgwLDcgKzc4MCw3IEBAIHB1YmxpYzoKICAgICAgKiBAcGFyYW0gZXh0cmFXaWR0aFRvRW5kT2ZM
aW5lIG9wdGlvbmFsIG91dCBhcmcgdG8gZ2l2ZSBleHRyYSB3aWR0aCB0byBlbmQgb2YgbGluZSAt
CiAgICAgICogdXNlZnVsIGZvciBjaGFyYWN0ZXIgcmFuZ2UgcmVjdCBjb21wdXRhdGlvbnMKICAg
ICAgKi8KLSAgICB2aXJ0dWFsIEludFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50
IGNhcmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApOworICAgIHZpcnR1
YWwgTGF5b3V0UmVjdCBsb2NhbENhcmV0UmVjdChJbmxpbmVCb3gqLCBpbnQgY2FyZXRPZmZzZXQs
IExheW91dFVuaXQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApOwogCiAgICAgYm9vbCBpc01h
cmdpbkJlZm9yZVF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5CZWZvcmVRdWlyazsgfQog
ICAgIGJvb2wgaXNNYXJnaW5BZnRlclF1aXJrKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5BZnRl
clF1aXJrOyB9CkBAIC04NjksNyArODY5LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9p
ZCB3aWxsQmVEZXN0cm95ZWQoKTsKICAgICB2b2lkIGFyZW5hRGVsZXRlKFJlbmRlckFyZW5hKiwg
dm9pZCogb2JqZWN0QmFzZSk7CiAKLSAgICB2aXJ0dWFsIEludFJlY3Qgb3V0bGluZUJvdW5kc0Zv
clJlcGFpbnQoUmVuZGVyQm94TW9kZWxPYmplY3QqIC8qcmVwYWludENvbnRhaW5lciovLCBJbnRQ
b2ludCogLypjYWNoZWRPZmZzZXRUb1JlcGFpbnRDb250YWluZXIqLyA9IDApIGNvbnN0IHsgcmV0
dXJuIEludFJlY3QoKTsgfQorICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBvdXRsaW5lQm91bmRzRm9y
UmVwYWludChSZW5kZXJCb3hNb2RlbE9iamVjdCogLypyZXBhaW50Q29udGFpbmVyKi8sIEludFBv
aW50KiAvKmNhY2hlZE9mZnNldFRvUmVwYWludENvbnRhaW5lciovID0gMCkgY29uc3QgeyByZXR1
cm4gTGF5b3V0UmVjdCgpOyB9CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyU3R5bGUqIGZpcnN0TGlu
ZVN0eWxlU2xvd0Nhc2UoKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGV4dC5jcHAJKHJldmlzaW9uIDk4NzcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MzcsMTQgKzYzNywxNCBAQCBWaXNp
YmxlUG9zaXRpb24gUmVuZGVyVGV4dDo6cG9zaXRpb25Gb3JQCiAgICAgcmV0dXJuIGNyZWF0ZVZp
c2libGVQb3NpdGlvbihsYXN0Qm94QWJvdmUgPyBsYXN0Qm94QWJvdmUtPnN0YXJ0KCkgKyBsYXN0
Qm94QWJvdmUtPmxlbigpIDogMCwgRE9XTlNUUkVBTSk7CiB9CiAKLUludFJlY3QgUmVuZGVyVGV4
dDo6bG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiBpbmxpbmVCb3gsIGludCBjYXJldE9mZnNldCwg
aW50KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUpCitMYXlvdXRSZWN0IFJlbmRlclRleHQ6OmxvY2Fs
Q2FyZXRSZWN0KElubGluZUJveCogaW5saW5lQm94LCBpbnQgY2FyZXRPZmZzZXQsIExheW91dFVu
aXQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSkKIHsKICAgICBpZiAoIWlubGluZUJveCkKLSAgICAg
ICAgcmV0dXJuIEludFJlY3QoKTsKKyAgICAgICAgcmV0dXJuIExheW91dFJlY3QoKTsKIAogICAg
IEFTU0VSVChpbmxpbmVCb3gtPmlzSW5saW5lVGV4dEJveCgpKTsKICAgICBpZiAoIWlubGluZUJv
eC0+aXNJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgICAg
IHJldHVybiBMYXlvdXRSZWN0KCk7CiAKICAgICBJbmxpbmVUZXh0Qm94KiBib3ggPSB0b0lubGlu
ZVRleHRCb3goaW5saW5lQm94KTsKIApAQCAtMTQ2OSw5ICsxNDY5LDkgQEAgZmxvYXQgUmVuZGVy
VGV4dDo6d2lkdGgodW5zaWduZWQgZnJvbSwgdQogICAgIHJldHVybiB3OwogfQogCi1JbnRSZWN0
IFJlbmRlclRleHQ6OmxpbmVzQm91bmRpbmdCb3goKSBjb25zdAorTGF5b3V0UmVjdCBSZW5kZXJU
ZXh0OjpsaW5lc0JvdW5kaW5nQm94KCkgY29uc3QKIHsKLSAgICBJbnRSZWN0IHJlc3VsdDsKKyAg
ICBMYXlvdXRSZWN0IHJlc3VsdDsKICAgICAKICAgICBBU1NFUlQoIWZpcnN0VGV4dEJveCgpID09
ICFsYXN0VGV4dEJveCgpKTsgIC8vIEVpdGhlciBib3RoIGFyZSBudWxsIG9yIGJvdGggZXhpc3Qu
CiAgICAgaWYgKGZpcnN0VGV4dEJveCgpICYmIGxhc3RUZXh0Qm94KCkpIHsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHQuaAkocmV2aXNpb24gOTg3NzApCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw3ICs4
Miw3IEBAIHB1YmxpYzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb2F0JiBiZWdpbk1h
eFcsIGZsb2F0JiBlbmRNYXhXLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxvYXQmIG1p
blcsIGZsb2F0JiBtYXhXLCBib29sJiBzdHJpcEZyb250U3BhY2VzKTsKIAotICAgIHZpcnR1YWwg
SW50UmVjdCBsaW5lc0JvdW5kaW5nQm94KCkgY29uc3Q7CisgICAgdmlydHVhbCBMYXlvdXRSZWN0
IGxpbmVzQm91bmRpbmdCb3goKSBjb25zdDsKICAgICBJbnRSZWN0IGxpbmVzVmlzdWFsT3ZlcmZs
b3dCb3VuZGluZ0JveCgpIGNvbnN0OwogCiAgICAgRmxvYXRQb2ludCBmaXJzdFJ1bk9yaWdpbigp
IGNvbnN0OwpAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGNhbkJl
U2VsZWN0aW9uTGVhZigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2VsZWN0aW9uU3RhdGUoU2VsZWN0aW9uU3RhdGUgcyk7CiAgICAgdmlydHVhbCBMYXlvdXRS
ZWN0IHNlbGVjdGlvblJlY3RGb3JSZXBhaW50KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBib29sIGNsaXBUb1Zpc2libGVDb250ZW50ID0gdHJ1ZSk7Ci0gICAgdmlydHVh
bCBJbnRSZWN0IGxvY2FsQ2FyZXRSZWN0KElubGluZUJveCosIGludCBjYXJldE9mZnNldCwgaW50
KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsKKyAgICB2aXJ0dWFsIExheW91dFJlY3QgbG9j
YWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBMYXlvdXRVbml0KiBleHRy
YVdpZHRoVG9FbmRPZkxpbmUgPSAwKTsKIAogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5M
ZWZ0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+bWFyZ2luTGVmdCgpLmNhbGNNaW5WYWx1ZSgw
KTsgfQogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IHsgcmV0dXJu
IHN0eWxlKCktPm1hcmdpblJpZ2h0KCkuY2FsY01pblZhbHVlKDApOyB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0lubGluZVRleHQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5jcHAJ
KHJldmlzaW9uIDk4NzcwKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJT
VkdJbmxpbmVUZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA0LDI1ICsxMDQsMjUgQEAgSW5s
aW5lVGV4dEJveCogUmVuZGVyU1ZHSW5saW5lVGV4dDo6Y3JlYQogICAgIHJldHVybiBib3g7CiB9
CiAKLUludFJlY3QgUmVuZGVyU1ZHSW5saW5lVGV4dDo6bG9jYWxDYXJldFJlY3QoSW5saW5lQm94
KiBib3gsIGludCBjYXJldE9mZnNldCwgaW50KikKK0xheW91dFJlY3QgUmVuZGVyU1ZHSW5saW5l
VGV4dDo6bG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiBib3gsIGludCBjYXJldE9mZnNldCwgaW50
KikKIHsKICAgICBpZiAoIWJveC0+aXNJbmxpbmVUZXh0Qm94KCkpCi0gICAgICAgIHJldHVybiBJ
bnRSZWN0KCk7CisgICAgICAgIHJldHVybiBMYXlvdXRSZWN0KCk7CiAKICAgICBJbmxpbmVUZXh0
Qm94KiB0ZXh0Qm94ID0gc3RhdGljX2Nhc3Q8SW5saW5lVGV4dEJveCo+KGJveCk7CiAgICAgaWYg
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPCB0ZXh0Qm94LT5zdGFydCgpIHx8
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjYXJldE9mZnNldCkgPiB0ZXh0Qm94LT5zdGFydCgpICsg
dGV4dEJveC0+bGVuKCkpCi0gICAgICAgIHJldHVybiBJbnRSZWN0KCk7CisgICAgICAgIHJldHVy
biBMYXlvdXRSZWN0KCk7CiAKICAgICAvLyBVc2UgdGhlIGVkZ2Ugb2YgdGhlIHNlbGVjdGlvbiBy
ZWN0IHRvIGRldGVybWluZSB0aGUgY2FyZXQgcmVjdC4KICAgICBpZiAoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGNhcmV0T2Zmc2V0KSA8IHRleHRCb3gtPnN0YXJ0KCkgKyB0ZXh0Qm94LT5sZW4oKSkg
ewogICAgICAgICBJbnRSZWN0IHJlY3QgPSB0ZXh0Qm94LT5sb2NhbFNlbGVjdGlvblJlY3QoY2Fy
ZXRPZmZzZXQsIGNhcmV0T2Zmc2V0ICsgMSk7CiAgICAgICAgIGludCB4ID0gYm94LT5pc0xlZnRU
b1JpZ2h0RGlyZWN0aW9uKCkgPyByZWN0LngoKSA6IHJlY3QubWF4WCgpOwotICAgICAgICByZXR1
cm4gSW50UmVjdCh4LCByZWN0LnkoKSwgY2FyZXRXaWR0aCwgcmVjdC5oZWlnaHQoKSk7CisgICAg
ICAgIHJldHVybiBMYXlvdXRSZWN0KHgsIHJlY3QueSgpLCBjYXJldFdpZHRoLCByZWN0LmhlaWdo
dCgpKTsKICAgICB9CiAKICAgICBJbnRSZWN0IHJlY3QgPSB0ZXh0Qm94LT5sb2NhbFNlbGVjdGlv
blJlY3QoY2FyZXRPZmZzZXQgLSAxLCBjYXJldE9mZnNldCk7CiAgICAgaW50IHggPSBib3gtPmlz
TGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IHJlY3QubWF4WCgpIDogcmVjdC54KCk7Ci0gICAgcmV0
dXJuIEludFJlY3QoeCwgcmVjdC55KCksIGNhcmV0V2lkdGgsIHJlY3QuaGVpZ2h0KCkpOworICAg
IHJldHVybiBMYXlvdXRSZWN0KHgsIHJlY3QueSgpLCBjYXJldFdpZHRoLCByZWN0LmhlaWdodCgp
KTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJTVkdJbmxpbmVUZXh0OjpsaW5lc0JvdW5kaW5nQm94
KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5s
aW5lVGV4dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVu
ZGVyU1ZHSW5saW5lVGV4dC5oCShyZXZpc2lvbiA5ODc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHSW5saW5lVGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3
ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU1ZHSW5saW5lVGV4dCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZpcnR1YWwgVmlzaWJsZVBvc2l0aW9uIHBvc2l0
aW9uRm9yUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAgICB2aXJ0dWFsIEludFJlY3QgbG9j
YWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lkdGhU
b0VuZE9mTGluZSA9IDApOworICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsb2NhbENhcmV0UmVjdChJ
bmxpbmVCb3gqLCBpbnQgY2FyZXRPZmZzZXQsIExheW91dFVuaXQqIGV4dHJhV2lkdGhUb0VuZE9m
TGluZSA9IDApOwogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCBsaW5lc0JvdW5kaW5nQm94KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBJbmxpbmVUZXh0Qm94KiBjcmVhdGVUZXh0Qm94KCk7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>