<?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>156098</bug_id>
          
          <creation_ts>2016-03-31 23:42:08 -0700</creation_ts>
          <short_desc>Replace all RenderTheme::popupInternalPadding methods with a single one returning a LengthBox</short_desc>
          <delta_ts>2016-04-03 03:50:19 -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>WebKit Local 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="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1179769</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-31 23:42:08 -0700</bug_when>
    <thetext>The caller always wants all padding sides, so we can simplify both the caller and the implementations by using a single method. It&apos;s also more efficient for the GTK+ port that creates and destroys the same style contexts on every call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179770</commentid>
    <comment_count>1</comment_count>
      <attachid>275374</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-03-31 23:44:52 -0700</bug_when>
    <thetext>Created attachment 275374
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179773</commentid>
    <comment_count>2</comment_count>
      <attachid>275375</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-01 00:02:15 -0700</bug_when>
    <thetext>Created attachment 275375
Try to fix mac builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1179867</commentid>
    <comment_count>3</comment_count>
      <attachid>275375</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2016-04-01 09:34:39 -0700</bug_when>
    <thetext>Comment on attachment 275375
Try to fix mac builds

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

&gt; Source/WebCore/rendering/RenderTheme.h:187
&gt; +    virtual LengthBox popupInternalPaddingBox(const RenderStyle&amp;) const { return LengthBox(0); }

Not sure this function needs the word “Box” in its name. Also could write:

    return { 0 };

Instead of return LengthBox(0);

&gt; Source/WebCore/rendering/RenderThemeGtk.cpp:767
&gt; +        return LengthBox(0);

Again, I prefer:

    return { 0 };

&gt; Source/WebCore/rendering/RenderThemeGtk.cpp:782
&gt; +    return LengthBox(borderWidth.top + focusWidth, borderWidth.right + focusWidth + (style.direction() == LTR ? minArrowSize : 0),
&gt; +        borderWidth.bottom + focusWidth, borderWidth.left + focusWidth + (style.direction() == RTL ? minArrowSize : 0));

I like the syntax where we just write:

    return { a, b, c, d };

Rather than naming the type LengthBox.

&gt; Source/WebCore/rendering/RenderThemeIOS.mm:535
&gt; +        return LengthBox(0, MenuListButtonPaddingRight + style.borderTopWidth(), 0, 0);
&gt; +    return LengthBox(0);

Ditto.

&gt; Source/WebCore/rendering/RenderThemeMac.mm:1374
&gt; +        return LengthBox(popupButtonPadding(controlSizeForFont(style))[topPadding] * style.effectiveZoom(),
&gt; +            popupButtonPadding(controlSizeForFont(style))[rightPadding] * style.effectiveZoom(),
&gt; +            popupButtonPadding(controlSizeForFont(style))[bottomPadding] * style.effectiveZoom(),
&gt; +            popupButtonPadding(controlSizeForFont(style))[leftPadding] * style.effectiveZoom());

Ditto.

&gt; Source/WebCore/rendering/RenderThemeMac.mm:1381
&gt; +        return LengthBox(styledPopupPaddingTop * style.effectiveZoom(),
&gt; +            static_cast&lt;int&gt;(ceilf(arrowWidth + (arrowPaddingLeft + arrowPaddingRight + paddingBeforeSeparator) * style.effectiveZoom())),
&gt; +            styledPopupPaddingBottom * style.effectiveZoom(), styledPopupPaddingLeft * style.effectiveZoom());

Ditto.

&gt; Source/WebCore/rendering/RenderThemeMac.mm:1384
&gt; +    return LengthBox(0);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180156</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-03 02:40:59 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 275375 [details]
&gt; Try to fix mac builds
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=275375&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderTheme.h:187
&gt; &gt; +    virtual LengthBox popupInternalPaddingBox(const RenderStyle&amp;) const { return LengthBox(0); }
&gt; 
&gt; Not sure this function needs the word “Box” in its name. 

I thought about it and decided to leave the Box for consistency with RenderStyle::setPaddingBox and because it returns a LengthBox.

&gt; Also could write:
&gt; 
&gt;     return { 0 };
&gt; 
&gt; Instead of return LengthBox(0);

GCC doesn&apos;t like that:

error: converting to &apos;WebCore::LengthBox&apos; from initializer list would use explicit constructor &apos;WebCore::LengthBox::LengthBox(int)&apos;

I think it&apos;s because there are two explicit constructors receiving an integer, using { 0, 0, 0, 0 } works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180157</commentid>
    <comment_count>5</comment_count>
      <attachid>275491</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-03 02:42:18 -0700</bug_when>
    <thetext>Created attachment 275491
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180161</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-03 03:15:27 -0700</bug_when>
    <thetext>It seems brace initializer list requires explicit casts everywhere:

/Volumes/Data/EWS/WebKit/Source/WebCore/rendering/RenderThemeMac.mm:1371:18: error: type &apos;float&apos; cannot be narrowed to &apos;int&apos; in initializer list [-Wc++11-narrowing]
        return { popupButtonPadding(controlSizeForFont(style))[topPadding] * style.effectiveZoom(),
                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Volumes/Data/EWS/WebKit/Source/WebCore/rendering/RenderThemeMac.mm:1371:18: note: insert an explicit cast to silence this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180162</commentid>
    <comment_count>7</comment_count>
      <attachid>275493</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-03 03:17:00 -0700</bug_when>
    <thetext>Created attachment 275493
Try to fix mac builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1180163</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-04-03 03:50:19 -0700</bug_when>
    <thetext>Committed r198983: &lt;http://trac.webkit.org/changeset/198983&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275374</attachid>
            <date>2016-03-31 23:44:52 -0700</date>
            <delta_ts>2016-04-01 00:02:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-popup-padding.diff</filename>
            <type>text/plain</type>
            <size>12534</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNzM3Yzg0Li5hMGNkMjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDAg
QEAKIDIwMTYtMDMtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFJlcGxhY2UgYWxsIFJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGlu
ZyBtZXRob2RzIHdpdGggYSBzaW5nbGUgb25lIHJldHVybmluZyBhIExlbmd0aEJveAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNhbGxlciBhbHdh
eXMgd2FudHMgYWxsIHBhZGRpbmcgc2lkZXMsIHNvIHdlIGNhbiBzaW1wbGlmeSBib3RoIHRoZSBj
YWxsZXIgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbnMgYnkgdXNpbmcgYQorICAgICAgICBzaW5nbGUg
bWV0aG9kLiBJdCdzIGFsc28gbW9yZSBlZmZpY2llbnQgZm9yIHRoZSBHVEsrIHBvcnQgdGhhdCBj
cmVhdGVzIGFuZCBkZXN0cm95cyB0aGUgc2FtZSBzdHlsZSBjb250ZXh0cyBvbgorICAgICAgICBl
dmVyeSBjYWxsLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdCb3R0b20pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tYm9Cb3hNZXRyaWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0xl
ZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50
ZXJuYWxQYWRkaW5nUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbSk6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRk
aW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFs
UGFkZGluZ0xlZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6
OnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbSk6
IERlbGV0ZWQuCisKKzIwMTYtMDMtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgorCiAgICAgICAgIFJFR1JFU1NJT04ocjE5ODc5Mik6IFtHVEtdIEluc3BlY3Rv
ciBjcmFzaGVzIGluIEluc3BlY3Rvcjo6UHJvdG9jb2w6OmdldEVudW1Db25zdGFudFZhbHVlIHNp
bmNlIHIxOTg3OTIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1NTc0NQogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjUyODk0NTY+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCA0NzhmMzA0Li4zMjZlZmU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTEy
MywxMCArMTIzLDcgQEAgdm9pZCBSZW5kZXJNZW51TGlzdDo6YWRqdXN0SW5uZXJTdHlsZSgpCiAg
ICAgICAgIGlubmVyU3R5bGUuc2V0QWxpZ25TZWxmUG9zaXRpb24oSXRlbVBvc2l0aW9uRmxleFN0
YXJ0KTsKICAgICB9CiAKLSAgICBpbm5lclN0eWxlLnNldFBhZGRpbmdMZWZ0KExlbmd0aCh0aGVt
ZSgpLnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChzdHlsZSgpKSwgRml4ZWQpKTsKLSAgICBpbm5l
clN0eWxlLnNldFBhZGRpbmdSaWdodChMZW5ndGgodGhlbWUoKS5wb3B1cEludGVybmFsUGFkZGlu
Z1JpZ2h0KHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0UGFkZGluZ1RvcChM
ZW5ndGgodGhlbWUoKS5wb3B1cEludGVybmFsUGFkZGluZ1RvcChzdHlsZSgpKSwgRml4ZWQpKTsK
LSAgICBpbm5lclN0eWxlLnNldFBhZGRpbmdCb3R0b20oTGVuZ3RoKHRoZW1lKCkucG9wdXBJbnRl
cm5hbFBhZGRpbmdCb3R0b20oc3R5bGUoKSksIEZpeGVkKSk7CisgICAgaW5uZXJTdHlsZS5zZXRQ
YWRkaW5nQm94KHRoZW1lKCkucG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goc3R5bGUoKSkpOwogCiAg
ICAgaWYgKGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5zZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpKSB7CiAgICAgICAgIC8vIEl0ZW1zIGluIHRoZSBwb3B1cCB3aWxsIG5v
dCByZXNwZWN0IHRoZSBDU1MgdGV4dC1hbGlnbiBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMsCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDdiYTQxMTIuLmViMDQ4ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0xODQsMTAgKzE4NCw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTbGlkZXJUaHVtYlNpemUoUmVu
ZGVyU3R5bGUmLCBFbGVtZW50KikgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGludCBwb3B1cEludGVy
bmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCB7IHJldHVybiAwOyB9Ci0g
ICAgdmlydHVhbCBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHls
ZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBwb3B1cEludGVybmFsUGFk
ZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0
dWFsIGludCBwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShjb25zdCBSZW5kZXJTdHlsZSYpIGNv
bnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFk
ZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIExlbmd0aEJveCgwKTsg
fQogICAgIHZpcnR1YWwgYm9vbCBwb3B1cE9wdGlvblN1cHBvcnRzVGV4dEluZGVudCgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51
U2l6ZSBwb3B1cE1lbnVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiwgSW50UmVjdCYpIGNvbnN0IHsg
cmV0dXJuIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplTm9ybWFsOyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDk0OWQ5OTcuLjMyMmNh
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcApAQCAt
NzYxLDYxICs3NjEsMjUgQEAgdm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0TWVudUxpc3RCdXR0
b25TdHlsZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBSZW4KICAgICBhZGp1c3RNZW51
TGlzdFN0eWxlKHN0eWxlUmVzb2x2ZXIsIHN0eWxlLCBlKTsKIH0KIAotc3RhdGljIHZvaWQgZ2V0
Q29tYm9Cb3hNZXRyaWNzKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgR3RrQm9yZGVyJiBib3Jk
ZXIsIGludCYgZm9jdXMpCitMZW5ndGhCb3ggUmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQ
YWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKLSAgICAvLyBJZiB0
aGlzIG1lbnUgbGlzdCBidXR0b24gaXNuJ3QgZHJhd24gdXNpbmcgdGhlIG5hdGl2ZSB0aGVtZSwg
d2UKLSAgICAvLyBkb24ndCBhZGQgYW55IGV4dHJhIHBhZGRpbmcgYmV5b25kIHdoYXQgV2ViQ29y
ZSBhbHJlYWR5IHVzZXMuCiAgICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBOb0NvbnRyb2xQ
YXJ0KQotICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBMZW5ndGhCb3goMCk7CiAKICAg
ICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gcGFyZW50Q29udGV4dCA9IGNyZWF0ZVN0eWxlQ29u
dGV4dChDb21ib0JveCk7CiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBj
cmVhdGVTdHlsZUNvbnRleHQoQ29tYm9Cb3hCdXR0b24sIHBhcmVudENvbnRleHQuZ2V0KCkpOwog
ICAgIGd0a19zdHlsZV9jb250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgc3RhdGlj
X2Nhc3Q8R3RrVGV4dERpcmVjdGlvbj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24o
KSkpKTsKICAgICBndGtfc3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5nZXQoKSwgc3Rh
dGljX2Nhc3Q8R3RrU3RhdGVGbGFncz4oMCkpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9i
b3JkZXIoY29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQu
Z2V0KCkpLCAmYm9yZGVyKTsKKyAgICBHdGtCb3JkZXIgYm9yZGVyV2lkdGggPSB7IDAsIDAsIDAs
IDAgfTsKKyAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfYm9yZGVyKGNvbnRleHQuZ2V0KCksIGd0
a19zdHlsZV9jb250ZXh0X2dldF9zdGF0ZShjb250ZXh0LmdldCgpKSwgJmJvcmRlcldpZHRoKTsK
IAogICAgIGdib29sZWFuIGludGVyaW9yRm9jdXM7CiAgICAgZ2ludCBmb2N1c1dpZHRoLCBmb2N1
c1BhZDsKICAgICBndGtfc3R5bGVfY29udGV4dF9nZXRfc3R5bGUoY29udGV4dC5nZXQoKSwgImlu
dGVyaW9yLWZvY3VzIiwgJmludGVyaW9yRm9jdXMsICJmb2N1cy1saW5lLXdpZHRoIiwgJmZvY3Vz
V2lkdGgsICJmb2N1cy1wYWRkaW5nIiwgJmZvY3VzUGFkLCBudWxscHRyKTsKLSAgICBmb2N1cyA9
IGludGVyaW9yRm9jdXMgPyBmb2N1c1dpZHRoICsgZm9jdXNQYWQgOiAwOwotfQorICAgIGZvY3Vz
V2lkdGggPSBpbnRlcmlvckZvY3VzID8gZm9jdXNXaWR0aCArIGZvY3VzUGFkIDogMDsKIAotaW50
IFJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlKSBjb25zdAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwg
MCwgMCB9OwotICAgIGludCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJpY3Mo
c3R5bGUsIGJvcmRlcldpZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgbGVmdCA9IGJvcmRlcldp
ZHRoLmxlZnQgKyBmb2N1c1dpZHRoOwotICAgIGlmIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBSVEwp
Ci0gICAgICAgIGxlZnQgKz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiBsZWZ0OwotfQotCi1p
bnQgUmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoY29uc3QgUmVuZGVy
U3R5bGUmIHN0eWxlKSBjb25zdAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwg
MCwgMCwgMCB9OwotICAgIGludCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJp
Y3Moc3R5bGUsIGJvcmRlcldpZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgcmlnaHQgPSBib3Jk
ZXJXaWR0aC5yaWdodCArIGZvY3VzV2lkdGg7Ci0gICAgaWYgKHN0eWxlLmRpcmVjdGlvbigpID09
IExUUikKLSAgICAgICAgcmlnaHQgKz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiByaWdodDsK
LX0KLQotaW50IFJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0Ci17Ci0gICAgR3RrQm9yZGVyIGJvcmRlcldpZHRoID0g
eyAwLCAwLCAwLCAwIH07Ci0gICAgaW50IGZvY3VzV2lkdGggPSAwOwotICAgIGdldENvbWJvQm94
TWV0cmljcyhzdHlsZSwgYm9yZGVyV2lkdGgsIGZvY3VzV2lkdGgpOwotICAgIHJldHVybiBib3Jk
ZXJXaWR0aC50b3AgKyBmb2N1c1dpZHRoOwotfQotCi1pbnQgUmVuZGVyVGhlbWVHdGs6OnBvcHVw
SW50ZXJuYWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKLXsK
LSAgICBHdGtCb3JkZXIgYm9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsKLSAgICBpbnQgZm9j
dXNXaWR0aCA9IDA7Ci0gICAgZ2V0Q29tYm9Cb3hNZXRyaWNzKHN0eWxlLCBib3JkZXJXaWR0aCwg
Zm9jdXNXaWR0aCk7Ci0gICAgcmV0dXJuIGJvcmRlcldpZHRoLmJvdHRvbSArIGZvY3VzV2lkdGg7
CisgICAgcmV0dXJuIExlbmd0aEJveChib3JkZXJXaWR0aC50b3AgKyBmb2N1c1dpZHRoLCBib3Jk
ZXJXaWR0aC5yaWdodCArIGZvY3VzV2lkdGggKyAoc3R5bGUuZGlyZWN0aW9uKCkgPT0gTFRSID8g
bWluQXJyb3dTaXplIDogMCksCisgICAgICAgIGJvcmRlcldpZHRoLmJvdHRvbSArIGZvY3VzV2lk
dGgsIGJvcmRlcldpZHRoLmxlZnQgKyBmb2N1c1dpZHRoICsgKHN0eWxlLmRpcmVjdGlvbigpID09
IFJUTCA/IG1pbkFycm93U2l6ZSA6IDApKTsKIH0KIAogYm9vbCBSZW5kZXJUaGVtZUd0azo6cGFp
bnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJ
bmZvJiBwYWludEluZm8sIGNvbnN0IEZsb2F0UmVjdCYgcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lR3RrLmgKaW5kZXggMzQ3MTViZi4uNDE5N2M3NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmgKQEAgLTExOSwxMCArMTE5LDcgQEAgcHJp
dmF0ZToKICAgICBib29sIHBhaW50VGV4dEZpZWxkKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRU
ZXh0QXJlYShjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKIAotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29u
c3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBh
ZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGludCBw
b3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRl
OwotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IG92ZXJyaWRlOworICAgIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFkZGluZ0JveChj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gVGhlIE1hYyBwb3J0
IGRpZmZlcmVudGlhdGVzIGJldHdlZW4gdGhlICJtZW51IGxpc3QiIGFuZCB0aGUgIm1lbnUgbGlz
dCBidXR0b24uIgogICAgIC8vIFRoZSBmb3JtZXIgaXMgdXNlZCB3aGVuIGEgbWVudSBsaXN0IGJ1
dHRvbiBoYXMgYmVlbiBzdHlsZWQuIFRoaXMgaXMgdXNlZCB0byBlbnN1cmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggNzA0MzMwZC4uMGY0MTMzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTc1LDEwICs3NSw3
IEBAIHB1YmxpYzoKICAgICBpbnQgc2xpZGVyVGlja09mZnNldEZyb21UcmFja0NlbnRlcigpIGNv
bnN0IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nUmlnaHQoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBp
bnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdUb3AoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBvdmVycmlkZTsKKyAgICBMZW5ndGhCb3ggcG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKICAgICBQb3B1cE1lbnVTdHls
ZTo6UG9wdXBNZW51U2l6ZSBwb3B1cE1lbnVTaXplKGNvbnN0IFJlbmRlclN0eWxlJiwgSW50UmVj
dCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgYm9vbCBwb3BzTWVudUJ5QXJyb3dLZXlzKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lTWFjLm1tCmluZGV4IDY3YzNhMGYuLjY1NjEwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTEzNjUsNDMgKzEzNjUsMjMgQEAgdm9p
ZCBSZW5kZXJUaGVtZU1hYzo6YWRqdXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyJiBzdHls
ZVJlc29sdmVyLCBSZW5kZXJTdHkKICAgICBzdHlsZS5zZXRCb3hTaGFkb3cobnVsbHB0cik7CiB9
CiAKLWludCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSkgY29uc3QKK0xlbmd0aEJveCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJ
bnRlcm5hbFBhZGRpbmdCb3goY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdAogewotICAgIGlmIChz
dHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KQotICAgICAgICByZXR1cm4gcG9wdXBC
dXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9udChzdHlsZSkpW2xlZnRQYWRkaW5nXSAqIHN0
eWxlLmVmZmVjdGl2ZVpvb20oKTsKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVs
aXN0QnV0dG9uUGFydCkKLSAgICAgICAgcmV0dXJuIHN0eWxlZFBvcHVwUGFkZGluZ0xlZnQgKiBz
dHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgcmV0dXJuIDA7Ci19CisgICAgaWYgKHN0eWxlLmFw
cGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpIHsKKyAgICAgICAgcmV0dXJuIExlbmd0aEJveChw
b3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbdG9wUGFkZGluZ10g
KiBzdHlsZS5lZmZlY3RpdmVab29tKCksCisgICAgICAgICAgICBwb3B1cEJ1dHRvblBhZGRpbmco
Y29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbcmlnaHRQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2
ZVpvb20oKSwKKyAgICAgICAgICAgIHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZv
bnQoc3R5bGUpKVtib3R0b21QYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSwKKyAgICAg
ICAgICAgIHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5bGUpKVtsZWZ0
UGFkZGluZ10gKiBzdHlsZS5lZmZlY3RpdmVab29tKCkpOworICAgIH0KIAotaW50IFJlbmRlclRo
ZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkgY29uc3QKLXsKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0UGFydCkK
LSAgICAgICAgcmV0dXJuIHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5
bGUpKVtyaWdodFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwogICAgIGlmIChzdHls
ZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KSB7Ci0gICAgICAgIGZsb2F0IGZv
bnRTY2FsZSA9IHN0eWxlLmZvbnRTaXplKCkgLyBiYXNlRm9udFNpemU7Ci0gICAgICAgIGZsb2F0
IGFycm93V2lkdGggPSBiYXNlQXJyb3dXaWR0aCAqIGZvbnRTY2FsZTsKLSAgICAgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGludD4oY2VpbGYoYXJyb3dXaWR0aCArIChhcnJvd1BhZGRpbmdMZWZ0ICsg
YXJyb3dQYWRkaW5nUmlnaHQgKyBwYWRkaW5nQmVmb3JlU2VwYXJhdG9yKSAqIHN0eWxlLmVmZmVj
dGl2ZVpvb20oKSkpOworICAgICAgICBmbG9hdCBhcnJvd1dpZHRoID0gYmFzZUFycm93V2lkdGgg
KiAoc3R5bGUuZm9udFNpemUoKSAvIGJhc2VGb250U2l6ZSk7CisgICAgICAgIHJldHVybiBMZW5n
dGhCb3goc3R5bGVkUG9wdXBQYWRkaW5nVG9wICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpLAorICAg
ICAgICAgICAgc3RhdGljX2Nhc3Q8aW50PihjZWlsZihhcnJvd1dpZHRoICsgKGFycm93UGFkZGlu
Z0xlZnQgKyBhcnJvd1BhZGRpbmdSaWdodCArIHBhZGRpbmdCZWZvcmVTZXBhcmF0b3IpICogc3R5
bGUuZWZmZWN0aXZlWm9vbSgpKSksCisgICAgICAgICAgICBzdHlsZWRQb3B1cFBhZGRpbmdCb3R0
b20gKiBzdHlsZS5lZmZlY3RpdmVab29tKCksIHN0eWxlZFBvcHVwUGFkZGluZ0xlZnQgKiBzdHls
ZS5lZmZlY3RpdmVab29tKCkpOwogICAgIH0KLSAgICByZXR1cm4gMDsKLX0KIAotaW50IFJlbmRl
clRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0Ci17Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQp
Ci0gICAgICAgIHJldHVybiBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0
eWxlKSlbdG9wUGFkZGluZ10gKiBzdHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgaWYgKHN0eWxl
LmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpCi0gICAgICAgIHJldHVybiBzdHls
ZWRQb3B1cFBhZGRpbmdUb3AgKiBzdHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgcmV0dXJuIDA7
Ci19Ci0KLWludCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oY29u
c3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAotewotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNl
KCkgPT0gTWVudWxpc3RQYXJ0KQotICAgICAgICByZXR1cm4gcG9wdXBCdXR0b25QYWRkaW5nKGNv
bnRyb2xTaXplRm9yRm9udChzdHlsZSkpW2JvdHRvbVBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZl
Wm9vbSgpOwotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0
KQotICAgICAgICByZXR1cm4gc3R5bGVkUG9wdXBQYWRkaW5nQm90dG9tICogc3R5bGUuZWZmZWN0
aXZlWm9vbSgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiBMZW5ndGhCb3goMCk7CiB9CiAK
IFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIFJlbmRlclRoZW1lTWFjOjpwb3B1cE1lbnVT
aXplKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgSW50UmVjdCYgcmVjdCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275375</attachid>
            <date>2016-04-01 00:02:15 -0700</date>
            <delta_ts>2016-04-03 02:42:18 -0700</delta_ts>
            <desc>Try to fix mac builds</desc>
            <filename>wcore-popup-padding.diff</filename>
            <type>text/plain</type>
            <size>14188</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBjNzM3Yzg0Li42MzEyZThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDQg
QEAKIDIwMTYtMDMtMzEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgogCisgICAgICAgIFJlcGxhY2UgYWxsIFJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGlu
ZyBtZXRob2RzIHdpdGggYSBzaW5nbGUgb25lIHJldHVybmluZyBhIExlbmd0aEJveAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIGNhbGxlciBhbHdh
eXMgd2FudHMgYWxsIHBhZGRpbmcgc2lkZXMsIHNvIHdlIGNhbiBzaW1wbGlmeSBib3RoIHRoZSBj
YWxsZXIgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbnMgYnkgdXNpbmcgYQorICAgICAgICBzaW5nbGUg
bWV0aG9kLiBJdCdzIGFsc28gbW9yZSBlZmZpY2llbnQgZm9yIHRoZSBHVEsrIHBvcnQgdGhhdCBj
cmVhdGVzIGFuZCBkZXN0cm95cyB0aGUgc2FtZSBzdHlsZSBjb250ZXh0cyBvbgorICAgICAgICBl
dmVyeSBjYWxsLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRo
ZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
aGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdCb3R0b20pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdCb3gpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tYm9Cb3hNZXRyaWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0xl
ZnQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50
ZXJuYWxQYWRkaW5nUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhl
bWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbSk6IERlbGV0ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9T
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQYWRk
aW5nQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cEludGVybmFs
UGFkZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBh
ZGRpbmdSaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
cG9wdXBJbnRlcm5hbFBhZGRpbmdUb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKTogRGVsZXRlZC4KKworMjAx
Ni0wMy0zMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAg
ICAgICAgUkVHUkVTU0lPTihyMTk4NzkyKTogW0dUS10gSW5zcGVjdG9yIGNyYXNoZXMgaW4gSW5z
cGVjdG9yOjpQcm90b2NvbDo6Z2V0RW51bUNvbnN0YW50VmFsdWUgc2luY2UgcjE5ODc5MgogICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NzQ1CiAgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8yNTI4OTQ1Nj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IDQ3OGYzMDQuLjMyNmVmZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTIzLDEwICsxMjMsNyBAQCB2
b2lkIFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICAgICAgaW5uZXJTdHls
ZS5zZXRBbGlnblNlbGZQb3NpdGlvbihJdGVtUG9zaXRpb25GbGV4U3RhcnQpOwogICAgIH0KIAot
ICAgIGlubmVyU3R5bGUuc2V0UGFkZGluZ0xlZnQoTGVuZ3RoKHRoZW1lKCkucG9wdXBJbnRlcm5h
bFBhZGRpbmdMZWZ0KHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0UGFkZGlu
Z1JpZ2h0KExlbmd0aCh0aGVtZSgpLnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSks
IEZpeGVkKSk7Ci0gICAgaW5uZXJTdHlsZS5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLnBv
cHVwSW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUu
c2V0UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS5wb3B1cEludGVybmFsUGFkZGluZ0JvdHRv
bShzdHlsZSgpKSwgRml4ZWQpKTsKKyAgICBpbm5lclN0eWxlLnNldFBhZGRpbmdCb3godGhlbWUo
KS5wb3B1cEludGVybmFsUGFkZGluZ0JveChzdHlsZSgpKSk7CiAKICAgICBpZiAoZG9jdW1lbnQo
KS5wYWdlKCktPmNocm9tZSgpLnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkp
IHsKICAgICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENT
UyB0ZXh0LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmgKaW5kZXggN2JhNDExMi4uZWIwNDhmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE4NCwxMCArMTg0LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYsIEVsZW1l
bnQqKSBjb25zdDsKIAotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBw
b3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1
cm4gMDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50
ZXJuYWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsg
fQorICAgIHZpcnR1YWwgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJl
bmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gTGVuZ3RoQm94KDApOyB9CiAgICAgdmlydHVhbCBi
b29sIHBvcHVwT3B0aW9uU3VwcG9ydHNUZXh0SW5kZW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXplIHBvcHVwTWVudVNp
emUoY29uc3QgUmVuZGVyU3R5bGUmLCBJbnRSZWN0JikgY29uc3QgeyByZXR1cm4gUG9wdXBNZW51
U3R5bGU6OlBvcHVwTWVudVNpemVOb3JtYWw7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUd0ay5jcHAKaW5kZXggOTQ5ZDk5Ny4uMzIyY2FiOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCkBAIC03NjEsNjEgKzc2MSwyNSBA
QCB2b2lkIFJlbmRlclRoZW1lR3RrOjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFN0eWxlUmVz
b2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbgogICAgIGFkanVzdE1lbnVMaXN0U3R5bGUoc3R5bGVS
ZXNvbHZlciwgc3R5bGUsIGUpOwogfQogCi1zdGF0aWMgdm9pZCBnZXRDb21ib0JveE1ldHJpY3Mo
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBHdGtCb3JkZXImIGJvcmRlciwgaW50JiBmb2N1cykK
K0xlbmd0aEJveCBSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3goY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAogewotICAgIC8vIElmIHRoaXMgbWVudSBsaXN0IGJ1
dHRvbiBpc24ndCBkcmF3biB1c2luZyB0aGUgbmF0aXZlIHRoZW1lLCB3ZQotICAgIC8vIGRvbid0
IGFkZCBhbnkgZXh0cmEgcGFkZGluZyBiZXlvbmQgd2hhdCBXZWJDb3JlIGFscmVhZHkgdXNlcy4K
ICAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IE5vQ29udHJvbFBhcnQpCi0gICAgICAgIHJl
dHVybjsKKyAgICAgICAgcmV0dXJuIExlbmd0aEJveCgwKTsKIAogICAgIEdSZWZQdHI8R3RrU3R5
bGVDb250ZXh0PiBwYXJlbnRDb250ZXh0ID0gY3JlYXRlU3R5bGVDb250ZXh0KENvbWJvQm94KTsK
ICAgICBHUmVmUHRyPEd0a1N0eWxlQ29udGV4dD4gY29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4
dChDb21ib0JveEJ1dHRvbiwgcGFyZW50Q29udGV4dC5nZXQoKSk7CiAgICAgZ3RrX3N0eWxlX2Nv
bnRleHRfc2V0X2RpcmVjdGlvbihjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtUZXh0RGly
ZWN0aW9uPihndGtUZXh0RGlyZWN0aW9uKHN0eWxlLmRpcmVjdGlvbigpKSkpOwogICAgIGd0a19z
dHlsZV9jb250ZXh0X3NldF9zdGF0ZShjb250ZXh0LmdldCgpLCBzdGF0aWNfY2FzdDxHdGtTdGF0
ZUZsYWdzPigwKSk7Ci0gICAgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X2JvcmRlcihjb250ZXh0Lmdl
dCgpLCBndGtfc3R5bGVfY29udGV4dF9nZXRfc3RhdGUoY29udGV4dC5nZXQoKSksICZib3JkZXIp
OworICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OworICAgIGd0a19z
dHlsZV9jb250ZXh0X2dldF9ib3JkZXIoY29udGV4dC5nZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRf
Z2V0X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmYm9yZGVyV2lkdGgpOwogCiAgICAgZ2Jvb2xlYW4g
aW50ZXJpb3JGb2N1czsKICAgICBnaW50IGZvY3VzV2lkdGgsIGZvY3VzUGFkOwogICAgIGd0a19z
dHlsZV9jb250ZXh0X2dldF9zdHlsZShjb250ZXh0LmdldCgpLCAiaW50ZXJpb3ItZm9jdXMiLCAm
aW50ZXJpb3JGb2N1cywgImZvY3VzLWxpbmUtd2lkdGgiLCAmZm9jdXNXaWR0aCwgImZvY3VzLXBh
ZGRpbmciLCAmZm9jdXNQYWQsIG51bGxwdHIpOwotICAgIGZvY3VzID0gaW50ZXJpb3JGb2N1cyA/
IGZvY3VzV2lkdGggKyBmb2N1c1BhZCA6IDA7Ci19CisgICAgZm9jdXNXaWR0aCA9IGludGVyaW9y
Rm9jdXMgPyBmb2N1c1dpZHRoICsgZm9jdXNQYWQgOiAwOwogCi1pbnQgUmVuZGVyVGhlbWVHdGs6
OnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0
Ci17Ci0gICAgR3RrQm9yZGVyIGJvcmRlcldpZHRoID0geyAwLCAwLCAwLCAwIH07Ci0gICAgaW50
IGZvY3VzV2lkdGggPSAwOwotICAgIGdldENvbWJvQm94TWV0cmljcyhzdHlsZSwgYm9yZGVyV2lk
dGgsIGZvY3VzV2lkdGgpOwotICAgIGludCBsZWZ0ID0gYm9yZGVyV2lkdGgubGVmdCArIGZvY3Vz
V2lkdGg7Ci0gICAgaWYgKHN0eWxlLmRpcmVjdGlvbigpID09IFJUTCkKLSAgICAgICAgbGVmdCAr
PSBtaW5BcnJvd1NpemU7Ci0gICAgcmV0dXJuIGxlZnQ7Ci19Ci0KLWludCBSZW5kZXJUaGVtZUd0
azo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNv
bnN0Ci17Ci0gICAgR3RrQm9yZGVyIGJvcmRlcldpZHRoID0geyAwLCAwLCAwLCAwIH07Ci0gICAg
aW50IGZvY3VzV2lkdGggPSAwOwotICAgIGdldENvbWJvQm94TWV0cmljcyhzdHlsZSwgYm9yZGVy
V2lkdGgsIGZvY3VzV2lkdGgpOwotICAgIGludCByaWdodCA9IGJvcmRlcldpZHRoLnJpZ2h0ICsg
Zm9jdXNXaWR0aDsKLSAgICBpZiAoc3R5bGUuZGlyZWN0aW9uKCkgPT0gTFRSKQotICAgICAgICBy
aWdodCArPSBtaW5BcnJvd1NpemU7Ci0gICAgcmV0dXJuIHJpZ2h0OwotfQotCi1pbnQgUmVuZGVy
VGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKGNvbnN0IFJlbmRlclN0eWxlJiBzdHls
ZSkgY29uc3QKLXsKLSAgICBHdGtCb3JkZXIgYm9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsK
LSAgICBpbnQgZm9jdXNXaWR0aCA9IDA7Ci0gICAgZ2V0Q29tYm9Cb3hNZXRyaWNzKHN0eWxlLCBi
b3JkZXJXaWR0aCwgZm9jdXNXaWR0aCk7Ci0gICAgcmV0dXJuIGJvcmRlcldpZHRoLnRvcCArIGZv
Y3VzV2lkdGg7Ci19Ci0KLWludCBSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3R0b20oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAotewotICAgIEd0a0JvcmRlciBi
b3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OwotICAgIGludCBmb2N1c1dpZHRoID0gMDsKLSAg
ICBnZXRDb21ib0JveE1ldHJpY3Moc3R5bGUsIGJvcmRlcldpZHRoLCBmb2N1c1dpZHRoKTsKLSAg
ICByZXR1cm4gYm9yZGVyV2lkdGguYm90dG9tICsgZm9jdXNXaWR0aDsKKyAgICByZXR1cm4gTGVu
Z3RoQm94KGJvcmRlcldpZHRoLnRvcCArIGZvY3VzV2lkdGgsIGJvcmRlcldpZHRoLnJpZ2h0ICsg
Zm9jdXNXaWR0aCArIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBMVFIgPyBtaW5BcnJvd1NpemUgOiAw
KSwKKyAgICAgICAgYm9yZGVyV2lkdGguYm90dG9tICsgZm9jdXNXaWR0aCwgYm9yZGVyV2lkdGgu
bGVmdCArIGZvY3VzV2lkdGggKyAoc3R5bGUuZGlyZWN0aW9uKCkgPT0gUlRMID8gbWluQXJyb3dT
aXplIDogMCkpOwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0
IFJlbmRlck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgRmxvYXRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVH
dGsuaAppbmRleCAzNDcxNWJmLi40MTk3Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVHdGsuaApAQCAtMTE5LDEwICsxMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
cGFpbnRUZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgRmxvYXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFRleHRBcmVhKGNvbnN0IFJl
bmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRl
OwogCi0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25zdCBSZW5kZXJTdHlsZSYp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0
IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRk
aW5nVG9wKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVw
SW50ZXJuYWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7
CisgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxl
JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGUgTWFjIHBvcnQgZGlmZmVyZW50aWF0ZXMg
YmV0d2VlbiB0aGUgIm1lbnUgbGlzdCIgYW5kIHRoZSAibWVudSBsaXN0IGJ1dHRvbi4iCiAgICAg
Ly8gVGhlIGZvcm1lciBpcyB1c2VkIHdoZW4gYSBtZW51IGxpc3QgYnV0dG9uIGhhcyBiZWVuIHN0
eWxlZC4gVGhpcyBpcyB1c2VkIHRvIGVuc3VyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MuaAppbmRleCAwNjJiYzJiLi5kNmM4NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSZW5kZXJU
aGVtZUlPUyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwdWJsaWM6CiAgICAgc3RhdGlj
IFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRp
bmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIExlbmd0aEJv
eCBwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJy
aWRlOwogCiAgICAgc3RhdGljIHZvaWQgYWRqdXN0Um91bmRCb3JkZXJSYWRpdXMoUmVuZGVyU3R5
bGUmLCBSZW5kZXJCb3gmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
SU9TLm1tCmluZGV4IGZhNjc3YzAuLjAwNzk5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTUyOCwxMSArNTI4LDExIEBAIGNvbnN0IGZsb2F0IE1l
bnVMaXN0QXJyb3dXaWR0aCA9IDc7CiBjb25zdCBmbG9hdCBNZW51TGlzdEFycm93SGVpZ2h0ID0g
NjsKIGNvbnN0IGZsb2F0IE1lbnVMaXN0QnV0dG9uUGFkZGluZ1JpZ2h0ID0gMTk7CiAKLWludCBS
ZW5kZXJUaGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0CitMZW5ndGhCb3ggUmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQ
YWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAoc3R5
bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkKLSAgICAgICAgcmV0dXJuIE1l
bnVMaXN0QnV0dG9uUGFkZGluZ1JpZ2h0ICsgc3R5bGUuYm9yZGVyVG9wV2lkdGgoKTsKLSAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIExlbmd0aEJveCgwLCBNZW51TGlzdEJ1dHRvblBhZGRp
bmdSaWdodCArIHN0eWxlLmJvcmRlclRvcFdpZHRoKCksIDAsIDApOworICAgIHJldHVybiBMZW5n
dGhCb3goMCk7CiB9CiAKIHZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdFJvdW5kQm9yZGVyUmFk
aXVzKFJlbmRlclN0eWxlJiBzdHlsZSwgUmVuZGVyQm94JiBib3gpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCmluZGV4IDcwNDMzMGQuLjBmNDEzMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oCkBAIC03NSwxMCArNzUsNyBAQCBw
dWJsaWM6CiAgICAgaW50IHNsaWRlclRpY2tPZmZzZXRGcm9tVHJhY2tDZW50ZXIoKSBjb25zdCBv
dmVycmlkZTsKICNlbmRpZgogCi0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFsUGFk
ZGluZ1JpZ2h0KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBv
cHVwSW50ZXJuYWxQYWRkaW5nVG9wKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikg
Y29uc3Qgb3ZlcnJpZGU7CisgICAgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNv
bnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgUG9wdXBNZW51U3R5bGU6OlBv
cHVwTWVudVNpemUgcG9wdXBNZW51U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYsIEludFJlY3QmKSBj
b25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgcG9wc01lbnVCeUFycm93S2V5cygpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQppbmRleCA2N2MzYTBmLi45M2ZkOTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0xMzY1LDQzICsxMzY1LDIzIEBAIHZvaWQgUmVu
ZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0U3R5bGUoU3R5bGVSZXNvbHZlciYgc3R5bGVSZXNv
bHZlciwgUmVuZGVyU3R5CiAgICAgc3R5bGUuc2V0Qm94U2hhZG93KG51bGxwdHIpOwogfQogCi1p
bnQgUmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25zdCBSZW5kZXJT
dHlsZSYgc3R5bGUpIGNvbnN0CitMZW5ndGhCb3ggUmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJu
YWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKLSAgICBpZiAo
c3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0UGFydCkKLSAgICAgICAgcmV0dXJuIHBvcHVw
QnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5bGUpKVtsZWZ0UGFkZGluZ10gKiBz
dHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51
bGlzdEJ1dHRvblBhcnQpCi0gICAgICAgIHJldHVybiBzdHlsZWRQb3B1cFBhZGRpbmdMZWZ0ICog
c3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIHJldHVybiAwOwotfQorICAgIGlmIChzdHlsZS5h
cHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KSB7CisgICAgICAgIHJldHVybiBMZW5ndGhCb3go
cG9wdXBCdXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9udChzdHlsZSkpW3RvcFBhZGRpbmdd
ICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpLAorICAgICAgICAgICAgcG9wdXBCdXR0b25QYWRkaW5n
KGNvbnRyb2xTaXplRm9yRm9udChzdHlsZSkpW3JpZ2h0UGFkZGluZ10gKiBzdHlsZS5lZmZlY3Rp
dmVab29tKCksCisgICAgICAgICAgICBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JG
b250KHN0eWxlKSlbYm90dG9tUGFkZGluZ10gKiBzdHlsZS5lZmZlY3RpdmVab29tKCksCisgICAg
ICAgICAgICBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbbGVm
dFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKTsKKyAgICB9CiAKLWludCBSZW5kZXJU
aGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0Ci17Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQp
Ci0gICAgICAgIHJldHVybiBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0
eWxlKSlbcmlnaHRQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAoc3R5
bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkgewotICAgICAgICBmbG9hdCBm
b250U2NhbGUgPSBzdHlsZS5mb250U2l6ZSgpIC8gYmFzZUZvbnRTaXplOwotICAgICAgICBmbG9h
dCBhcnJvd1dpZHRoID0gYmFzZUFycm93V2lkdGggKiBmb250U2NhbGU7Ci0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKGFycm93V2lkdGggKyAoYXJyb3dQYWRkaW5nTGVmdCAr
IGFycm93UGFkZGluZ1JpZ2h0ICsgcGFkZGluZ0JlZm9yZVNlcGFyYXRvcikgKiBzdHlsZS5lZmZl
Y3RpdmVab29tKCkpKTsKKyAgICAgICAgZmxvYXQgYXJyb3dXaWR0aCA9IGJhc2VBcnJvd1dpZHRo
ICogKHN0eWxlLmZvbnRTaXplKCkgLyBiYXNlRm9udFNpemUpOworICAgICAgICByZXR1cm4gTGVu
Z3RoQm94KHN0eWxlZFBvcHVwUGFkZGluZ1RvcCAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSwKKyAg
ICAgICAgICAgIHN0YXRpY19jYXN0PGludD4oY2VpbGYoYXJyb3dXaWR0aCArIChhcnJvd1BhZGRp
bmdMZWZ0ICsgYXJyb3dQYWRkaW5nUmlnaHQgKyBwYWRkaW5nQmVmb3JlU2VwYXJhdG9yKSAqIHN0
eWxlLmVmZmVjdGl2ZVpvb20oKSkpLAorICAgICAgICAgICAgc3R5bGVkUG9wdXBQYWRkaW5nQm90
dG9tICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpLCBzdHlsZWRQb3B1cFBhZGRpbmdMZWZ0ICogc3R5
bGUuZWZmZWN0aXZlWm9vbSgpKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7Ci19CiAKLWludCBSZW5k
ZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdUb3AoY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlKSBjb25zdAotewotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0
KQotICAgICAgICByZXR1cm4gcG9wdXBCdXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9udChz
dHlsZSkpW3RvcFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIGlmIChzdHls
ZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KQotICAgICAgICByZXR1cm4gc3R5
bGVkUG9wdXBQYWRkaW5nVG9wICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIHJldHVybiAw
OwotfQotCi1pbnQgUmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKGNv
bnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKLXsKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5j
ZSgpID09IE1lbnVsaXN0UGFydCkKLSAgICAgICAgcmV0dXJuIHBvcHVwQnV0dG9uUGFkZGluZyhj
b250cm9sU2l6ZUZvckZvbnQoc3R5bGUpKVtib3R0b21QYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2
ZVpvb20oKTsKLSAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFy
dCkKLSAgICAgICAgcmV0dXJuIHN0eWxlZFBvcHVwUGFkZGluZ0JvdHRvbSAqIHN0eWxlLmVmZmVj
dGl2ZVpvb20oKTsKLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gTGVuZ3RoQm94KDApOwogfQog
CiBQb3B1cE1lbnVTdHlsZTo6UG9wdXBNZW51U2l6ZSBSZW5kZXJUaGVtZU1hYzo6cG9wdXBNZW51
U2l6ZShjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEludFJlY3QmIHJlY3QpIGNvbnN0Cg==
</data>
<flag name="review"
          id="299734"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275491</attachid>
            <date>2016-04-03 02:42:18 -0700</date>
            <delta_ts>2016-04-03 03:17:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-popup-padding.diff</filename>
            <type>text/plain</type>
            <size>13994</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NGVhYTQ1Li44MWI3MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTYtMDQtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJlcGxhY2UgYWxsIFJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGlu
ZyBtZXRob2RzIHdpdGggYSBzaW5nbGUgb25lIHJldHVybmluZyBhIExlbmd0aEJveAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhlIGNhbGxlciBhbHdheXMg
d2FudHMgYWxsIHBhZGRpbmcgc2lkZXMsIHNvIHdlIGNhbiBzaW1wbGlmeSBib3RoIHRoZSBjYWxs
ZXIgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbnMgYnkgdXNpbmcgYQorICAgICAgICBzaW5nbGUgbWV0
aG9kLiBJdCdzIGFsc28gbW9yZSBlZmZpY2llbnQgZm9yIHRoZSBHVEsrIHBvcnQgdGhhdCBjcmVh
dGVzIGFuZCBkZXN0cm95cyB0aGUgc2FtZSBzdHlsZSBjb250ZXh0cyBvbgorICAgICAgICBldmVy
eSBjYWxsLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
Ojpwb3B1cEludGVybmFsUGFkZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3R0b20pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3gpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tYm9Cb3hNZXRyaWNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJu
YWxQYWRkaW5nUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
dGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbSk6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cEludGVybmFsUGFk
ZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdSaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9w
dXBJbnRlcm5hbFBhZGRpbmdUb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKTogRGVsZXRlZC4KKwogMjAxNi0w
NC0wMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFudXAgRGF0
YURldGVjdGlvbi5tbSBhIGxpdHRsZSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCmluZGV4IDQ3OGYzMDQuLjMyNmVmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTIzLDEwICsxMjMsNyBAQCB2b2lk
IFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICAgICAgaW5uZXJTdHlsZS5z
ZXRBbGlnblNlbGZQb3NpdGlvbihJdGVtUG9zaXRpb25GbGV4U3RhcnQpOwogICAgIH0KIAotICAg
IGlubmVyU3R5bGUuc2V0UGFkZGluZ0xlZnQoTGVuZ3RoKHRoZW1lKCkucG9wdXBJbnRlcm5hbFBh
ZGRpbmdMZWZ0KHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0UGFkZGluZ1Jp
Z2h0KExlbmd0aCh0aGVtZSgpLnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZp
eGVkKSk7Ci0gICAgaW5uZXJTdHlsZS5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLnBvcHVw
SW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0
UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS5wb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShz
dHlsZSgpKSwgRml4ZWQpKTsKKyAgICBpbm5lclN0eWxlLnNldFBhZGRpbmdCb3godGhlbWUoKS5w
b3B1cEludGVybmFsUGFkZGluZ0JveChzdHlsZSgpKSk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsK
ICAgICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0
ZXh0LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKaW5kZXggN2JhNDExMi4uNWQzYWNjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE4NCwxMCArMTg0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYsIEVsZW1lbnQq
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBwb3B1
cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4g
MDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3QgeyByZXR1cm4geyAwLCAwLCAwLCAwIH07IH0KICAgICB2aXJ0dWFsIGJv
b2wgcG9wdXBPcHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgcG9wdXBNZW51U2l6
ZShjb25zdCBSZW5kZXJTdHlsZSYsIEludFJlY3QmKSBjb25zdCB7IHJldHVybiBQb3B1cE1lbnVT
dHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA5NDlkOTk3Li43ZDE5ZmY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTc2MSw2MSArNzYxLDI1IEBA
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNv
bHZlciYgc3R5bGVSZXNvbHZlciwgUmVuCiAgICAgYWRqdXN0TWVudUxpc3RTdHlsZShzdHlsZVJl
c29sdmVyLCBzdHlsZSwgZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGdldENvbWJvQm94TWV0cmljcyhj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEd0a0JvcmRlciYgYm9yZGVyLCBpbnQmIGZvY3VzKQor
TGVuZ3RoQm94IFJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhpcyBtZW51IGxpc3QgYnV0
dG9uIGlzbid0IGRyYXduIHVzaW5nIHRoZSBuYXRpdmUgdGhlbWUsIHdlCi0gICAgLy8gZG9uJ3Qg
YWRkIGFueSBleHRyYSBwYWRkaW5nIGJleW9uZCB3aGF0IFdlYkNvcmUgYWxyZWFkeSB1c2VzLgog
ICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTm9Db250cm9sUGFydCkKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4geyAwLCAwLCAwLCAwIH07CiAKICAgICBHUmVmUHRyPEd0a1N0
eWxlQ29udGV4dD4gcGFyZW50Q29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChDb21ib0JveCk7
CiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRl
eHQoQ29tYm9Cb3hCdXR0b24sIHBhcmVudENvbnRleHQuZ2V0KCkpOwogICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrVGV4dERp
cmVjdGlvbj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24oKSkpKTsKICAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrU3Rh
dGVGbGFncz4oMCkpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9ib3JkZXIoY29udGV4dC5n
ZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmYm9yZGVy
KTsKKyAgICBHdGtCb3JkZXIgYm9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsKKyAgICBndGtf
c3R5bGVfY29udGV4dF9nZXRfYm9yZGVyKGNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0
X2dldF9zdGF0ZShjb250ZXh0LmdldCgpKSwgJmJvcmRlcldpZHRoKTsKIAogICAgIGdib29sZWFu
IGludGVyaW9yRm9jdXM7CiAgICAgZ2ludCBmb2N1c1dpZHRoLCBmb2N1c1BhZDsKICAgICBndGtf
c3R5bGVfY29udGV4dF9nZXRfc3R5bGUoY29udGV4dC5nZXQoKSwgImludGVyaW9yLWZvY3VzIiwg
JmludGVyaW9yRm9jdXMsICJmb2N1cy1saW5lLXdpZHRoIiwgJmZvY3VzV2lkdGgsICJmb2N1cy1w
YWRkaW5nIiwgJmZvY3VzUGFkLCBudWxscHRyKTsKLSAgICBmb2N1cyA9IGludGVyaW9yRm9jdXMg
PyBmb2N1c1dpZHRoICsgZm9jdXNQYWQgOiAwOwotfQorICAgIGZvY3VzV2lkdGggPSBpbnRlcmlv
ckZvY3VzID8gZm9jdXNXaWR0aCArIGZvY3VzUGFkIDogMDsKIAotaW50IFJlbmRlclRoZW1lR3Rr
Ojpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25z
dAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OwotICAgIGlu
dCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJpY3Moc3R5bGUsIGJvcmRlcldp
ZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgbGVmdCA9IGJvcmRlcldpZHRoLmxlZnQgKyBmb2N1
c1dpZHRoOwotICAgIGlmIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBSVEwpCi0gICAgICAgIGxlZnQg
Kz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiBsZWZ0OwotfQotCi1pbnQgUmVuZGVyVGhlbWVH
dGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBj
b25zdAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OwotICAg
IGludCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJpY3Moc3R5bGUsIGJvcmRl
cldpZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgcmlnaHQgPSBib3JkZXJXaWR0aC5yaWdodCAr
IGZvY3VzV2lkdGg7Ci0gICAgaWYgKHN0eWxlLmRpcmVjdGlvbigpID09IExUUikKLSAgICAgICAg
cmlnaHQgKz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiByaWdodDsKLX0KLQotaW50IFJlbmRl
clRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0Ci17Ci0gICAgR3RrQm9yZGVyIGJvcmRlcldpZHRoID0geyAwLCAwLCAwLCAwIH07
Ci0gICAgaW50IGZvY3VzV2lkdGggPSAwOwotICAgIGdldENvbWJvQm94TWV0cmljcyhzdHlsZSwg
Ym9yZGVyV2lkdGgsIGZvY3VzV2lkdGgpOwotICAgIHJldHVybiBib3JkZXJXaWR0aC50b3AgKyBm
b2N1c1dpZHRoOwotfQotCi1pbnQgUmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKLXsKLSAgICBHdGtCb3JkZXIg
Ym9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsKLSAgICBpbnQgZm9jdXNXaWR0aCA9IDA7Ci0g
ICAgZ2V0Q29tYm9Cb3hNZXRyaWNzKHN0eWxlLCBib3JkZXJXaWR0aCwgZm9jdXNXaWR0aCk7Ci0g
ICAgcmV0dXJuIGJvcmRlcldpZHRoLmJvdHRvbSArIGZvY3VzV2lkdGg7CisgICAgcmV0dXJuIHsg
Ym9yZGVyV2lkdGgudG9wICsgZm9jdXNXaWR0aCwgYm9yZGVyV2lkdGgucmlnaHQgKyBmb2N1c1dp
ZHRoICsgKHN0eWxlLmRpcmVjdGlvbigpID09IExUUiA/IG1pbkFycm93U2l6ZSA6IDApLAorICAg
ICAgICBib3JkZXJXaWR0aC5ib3R0b20gKyBmb2N1c1dpZHRoLCBib3JkZXJXaWR0aC5sZWZ0ICsg
Zm9jdXNXaWR0aCArIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBSVEwgPyBtaW5BcnJvd1NpemUgOiAw
KSB9OwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
RmxvYXRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaApp
bmRleCAzNDcxNWJmLi40MTk3Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVHdGsuaApAQCAtMTE5LDEwICsxMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFpbnRU
ZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxv
YXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFRleHRBcmVhKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCi0g
ICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nVG9w
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGUgTWFjIHBvcnQgZGlmZmVyZW50aWF0ZXMgYmV0d2Vl
biB0aGUgIm1lbnUgbGlzdCIgYW5kIHRoZSAibWVudSBsaXN0IGJ1dHRvbi4iCiAgICAgLy8gVGhl
IGZvcm1lciBpcyB1c2VkIHdoZW4gYSBtZW51IGxpc3QgYnV0dG9uIGhhcyBiZWVuIHN0eWxlZC4g
VGhpcyBpcyB1c2VkIHRvIGVuc3VyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MuaAppbmRleCAwNjJiYzJiLi5kNmM4NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSZW5kZXJUaGVtZUlP
UyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxS
ZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdo
dChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIExlbmd0aEJveCBwb3B1
cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0Um91bmRCb3JkZXJSYWRpdXMoUmVuZGVyU3R5bGUmLCBS
ZW5kZXJCb3gmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
CmluZGV4IGZhNjc3YzAuLjQxYjAyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0KQEAgLTUyOCwxMSArNTI4LDExIEBAIGNvbnN0IGZsb2F0IE1lbnVMaXN0
QXJyb3dXaWR0aCA9IDc7CiBjb25zdCBmbG9hdCBNZW51TGlzdEFycm93SGVpZ2h0ID0gNjsKIGNv
bnN0IGZsb2F0IE1lbnVMaXN0QnV0dG9uUGFkZGluZ1JpZ2h0ID0gMTk7CiAKLWludCBSZW5kZXJU
aGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0CitMZW5ndGhCb3ggUmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAoc3R5bGUuYXBw
ZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkKLSAgICAgICAgcmV0dXJuIE1lbnVMaXN0
QnV0dG9uUGFkZGluZ1JpZ2h0ICsgc3R5bGUuYm9yZGVyVG9wV2lkdGgoKTsKLSAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIHsgMCwgTWVudUxpc3RCdXR0b25QYWRkaW5nUmlnaHQgKyBzdHls
ZS5ib3JkZXJUb3BXaWR0aCgpLCAwLCAwIH07CisgICAgcmV0dXJuIHsgMCwgMCwgMCwgMCB9Owog
fQogCiB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSb3VuZEJvcmRlclJhZGl1cyhSZW5kZXJT
dHlsZSYgc3R5bGUsIFJlbmRlckJveCYgYm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMuaAppbmRleCA3MDQzMzBkLi4wZjQxMzMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNzUsMTAgKzc1LDcgQEAgcHVibGljOgogICAg
IGludCBzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAj
ZW5kaWYKIAotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5
bGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChj
b25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFs
UGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGludCBw
b3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJy
aWRlOworICAgIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJT
dHlsZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBvcHVwTWVudVN0eWxlOjpQb3B1cE1lbnVTaXpl
IHBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmLCBJbnRSZWN0JikgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBib29sIHBvcHNNZW51QnlBcnJvd0tleXMoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
aW5kZXggNjdjM2EwZi4uYjYyYTBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQpAQCAtMTM2NSw0MyArMTM2NSwyMyBAQCB2b2lkIFJlbmRlclRoZW1lTWFj
OjphZGp1c3RNZW51TGlzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRl
clN0eQogICAgIHN0eWxlLnNldEJveFNoYWRvdyhudWxscHRyKTsKIH0KIAotaW50IFJlbmRlclRo
ZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
KSBjb25zdAorTGVuZ3RoQm94IFJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0Jv
eChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAgaWYgKHN0eWxlLmFwcGVh
cmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCi0gICAgICAgIHJldHVybiBwb3B1cEJ1dHRvblBhZGRp
bmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbbGVmdFBhZGRpbmddICogc3R5bGUuZWZmZWN0
aXZlWm9vbSgpOwotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25Q
YXJ0KQotICAgICAgICByZXR1cm4gc3R5bGVkUG9wdXBQYWRkaW5nTGVmdCAqIHN0eWxlLmVmZmVj
dGl2ZVpvb20oKTsKLSAgICByZXR1cm4gMDsKLX0KKyAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgp
ID09IE1lbnVsaXN0UGFydCkgeworICAgICAgICByZXR1cm4geyBwb3B1cEJ1dHRvblBhZGRpbmco
Y29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbdG9wUGFkZGluZ10gKiBzdHlsZS5lZmZlY3RpdmVa
b29tKCksCisgICAgICAgICAgICBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250
KHN0eWxlKSlbcmlnaHRQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSwKKyAgICAgICAg
ICAgIHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5bGUpKVtib3R0b21Q
YWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSwKKyAgICAgICAgICAgIHBvcHVwQnV0dG9u
UGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5bGUpKVtsZWZ0UGFkZGluZ10gKiBzdHlsZS5l
ZmZlY3RpdmVab29tKCkgfTsKKyAgICB9CiAKLWludCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRl
cm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0Ci17Ci0gICAg
aWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCi0gICAgICAgIHJldHVybiBw
b3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbcmlnaHRQYWRkaW5n
XSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKTsKICAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09
IE1lbnVsaXN0QnV0dG9uUGFydCkgewotICAgICAgICBmbG9hdCBmb250U2NhbGUgPSBzdHlsZS5m
b250U2l6ZSgpIC8gYmFzZUZvbnRTaXplOwotICAgICAgICBmbG9hdCBhcnJvd1dpZHRoID0gYmFz
ZUFycm93V2lkdGggKiBmb250U2NhbGU7Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+
KGNlaWxmKGFycm93V2lkdGggKyAoYXJyb3dQYWRkaW5nTGVmdCArIGFycm93UGFkZGluZ1JpZ2h0
ICsgcGFkZGluZ0JlZm9yZVNlcGFyYXRvcikgKiBzdHlsZS5lZmZlY3RpdmVab29tKCkpKTsKKyAg
ICAgICAgZmxvYXQgYXJyb3dXaWR0aCA9IGJhc2VBcnJvd1dpZHRoICogKHN0eWxlLmZvbnRTaXpl
KCkgLyBiYXNlRm9udFNpemUpOworICAgICAgICByZXR1cm4geyBzdHlsZWRQb3B1cFBhZGRpbmdU
b3AgKiBzdHlsZS5lZmZlY3RpdmVab29tKCksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+
KGNlaWxmKGFycm93V2lkdGggKyAoYXJyb3dQYWRkaW5nTGVmdCArIGFycm93UGFkZGluZ1JpZ2h0
ICsgcGFkZGluZ0JlZm9yZVNlcGFyYXRvcikgKiBzdHlsZS5lZmZlY3RpdmVab29tKCkpKSwKKyAg
ICAgICAgICAgIHN0eWxlZFBvcHVwUGFkZGluZ0JvdHRvbSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20o
KSwgc3R5bGVkUG9wdXBQYWRkaW5nTGVmdCAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSB9OwogICAg
IH0KLSAgICByZXR1cm4gMDsKLX0KIAotaW50IFJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFs
UGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0Ci17Ci0gICAgaWYgKHN0
eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCi0gICAgICAgIHJldHVybiBwb3B1cEJ1
dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbdG9wUGFkZGluZ10gKiBzdHls
ZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlz
dEJ1dHRvblBhcnQpCi0gICAgICAgIHJldHVybiBzdHlsZWRQb3B1cFBhZGRpbmdUb3AgKiBzdHls
ZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBSZW5kZXJUaGVtZU1h
Yzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0b20oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBj
b25zdAotewotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KQotICAg
ICAgICByZXR1cm4gcG9wdXBCdXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9udChzdHlsZSkp
W2JvdHRvbVBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIGlmIChzdHlsZS5h
cHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0b25QYXJ0KQotICAgICAgICByZXR1cm4gc3R5bGVk
UG9wdXBQYWRkaW5nQm90dG9tICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIHJldHVybiAw
OworICAgIHJldHVybiB7IDAsIDAsIDAsIDAgfTsKIH0KIAogUG9wdXBNZW51U3R5bGU6OlBvcHVw
TWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUm
IHN0eWxlLCBJbnRSZWN0JiByZWN0KSBjb25zdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>275493</attachid>
            <date>2016-04-03 03:17:00 -0700</date>
            <delta_ts>2016-04-03 03:17:00 -0700</delta_ts>
            <desc>Try to fix mac builds</desc>
            <filename>wcore-popup-padding.diff</filename>
            <type>text/plain</type>
            <size>14138</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4NGVhYTQ1Li44MWI3MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIg
QEAKKzIwMTYtMDQtMDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJlcGxhY2UgYWxsIFJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGlu
ZyBtZXRob2RzIHdpdGggYSBzaW5nbGUgb25lIHJldHVybmluZyBhIExlbmd0aEJveAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2MDk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhlIGNhbGxlciBhbHdheXMg
d2FudHMgYWxsIHBhZGRpbmcgc2lkZXMsIHNvIHdlIGNhbiBzaW1wbGlmeSBib3RoIHRoZSBjYWxs
ZXIgYW5kIHRoZSBpbXBsZW1lbnRhdGlvbnMgYnkgdXNpbmcgYQorICAgICAgICBzaW5nbGUgbWV0
aG9kLiBJdCdzIGFsc28gbW9yZSBlZmZpY2llbnQgZm9yIHRoZSBHVEsrIHBvcnQgdGhhdCBjcmVh
dGVzIGFuZCBkZXN0cm95cyB0aGUgc2FtZSBzdHlsZSBjb250ZXh0cyBvbgorICAgICAgICBldmVy
eSBjYWxsLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1l
Ojpwb3B1cEludGVybmFsUGFkZGluZ0JveCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVt
ZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdMZWZ0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZTo6cG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3R0b20pOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUd0azo6cG9wdXBJbnRlcm5hbFBhZGRpbmdC
b3gpOgorICAgICAgICAoV2ViQ29yZTo6Z2V0Q29tYm9Cb3hNZXRyaWNzKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJu
YWxQYWRkaW5nUmlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVH
dGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbSk6IERlbGV0ZWQuCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lR3RrLmg6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lSU9TOjpwb3B1cEludGVybmFsUGFk
ZGluZ1JpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3gpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdCk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRp
bmdSaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cG9w
dXBJbnRlcm5hbFBhZGRpbmdUb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVNYWM6OnBvcHVwSW50ZXJuYWxQYWRkaW5nQm90dG9tKTogRGVsZXRlZC4KKwogMjAxNi0w
NC0wMiAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFudXAgRGF0
YURldGVjdGlvbi5tbSBhIGxpdHRsZSBiaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCmluZGV4IDQ3OGYzMDQuLjMyNmVmZTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMTIzLDEwICsxMjMsNyBAQCB2b2lk
IFJlbmRlck1lbnVMaXN0OjphZGp1c3RJbm5lclN0eWxlKCkKICAgICAgICAgaW5uZXJTdHlsZS5z
ZXRBbGlnblNlbGZQb3NpdGlvbihJdGVtUG9zaXRpb25GbGV4U3RhcnQpOwogICAgIH0KIAotICAg
IGlubmVyU3R5bGUuc2V0UGFkZGluZ0xlZnQoTGVuZ3RoKHRoZW1lKCkucG9wdXBJbnRlcm5hbFBh
ZGRpbmdMZWZ0KHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0UGFkZGluZ1Jp
Z2h0KExlbmd0aCh0aGVtZSgpLnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoc3R5bGUoKSksIEZp
eGVkKSk7Ci0gICAgaW5uZXJTdHlsZS5zZXRQYWRkaW5nVG9wKExlbmd0aCh0aGVtZSgpLnBvcHVw
SW50ZXJuYWxQYWRkaW5nVG9wKHN0eWxlKCkpLCBGaXhlZCkpOwotICAgIGlubmVyU3R5bGUuc2V0
UGFkZGluZ0JvdHRvbShMZW5ndGgodGhlbWUoKS5wb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShz
dHlsZSgpKSwgRml4ZWQpKTsKKyAgICBpbm5lclN0eWxlLnNldFBhZGRpbmdCb3godGhlbWUoKS5w
b3B1cEludGVybmFsUGFkZGluZ0JveChzdHlsZSgpKSk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkpIHsK
ICAgICAgICAgLy8gSXRlbXMgaW4gdGhlIHBvcHVwIHdpbGwgbm90IHJlc3BlY3QgdGhlIENTUyB0
ZXh0LWFsaWduIGFuZCBkaXJlY3Rpb24gcHJvcGVydGllcywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lLmgKaW5kZXggN2JhNDExMi4uNWQzYWNjMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTE4NCwxMCArMTg0LDcgQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCB2b2lkIGFkanVzdFNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYsIEVsZW1lbnQq
KSBjb25zdDsKIAotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25z
dCBSZW5kZXJTdHlsZSYpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCBwb3B1
cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4g
MDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nVG9wKGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQotICAgIHZpcnR1YWwgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3QgeyByZXR1cm4gMDsgfQor
ICAgIHZpcnR1YWwgTGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3QgeyByZXR1cm4geyAwLCAwLCAwLCAwIH07IH0KICAgICB2aXJ0dWFsIGJv
b2wgcG9wdXBPcHRpb25TdXBwb3J0c1RleHRJbmRlbnQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgcG9wdXBNZW51U2l6
ZShjb25zdCBSZW5kZXJTdHlsZSYsIEludFJlY3QmKSBjb25zdCB7IHJldHVybiBQb3B1cE1lbnVT
dHlsZTo6UG9wdXBNZW51U2l6ZU5vcm1hbDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lR3RrLmNwcAppbmRleCA5NDlkOTk3Li43ZDE5ZmY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUd0ay5jcHAKQEAgLTc2MSw2MSArNzYxLDI1IEBA
IHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNv
bHZlciYgc3R5bGVSZXNvbHZlciwgUmVuCiAgICAgYWRqdXN0TWVudUxpc3RTdHlsZShzdHlsZVJl
c29sdmVyLCBzdHlsZSwgZSk7CiB9CiAKLXN0YXRpYyB2b2lkIGdldENvbWJvQm94TWV0cmljcyhj
b25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIEd0a0JvcmRlciYgYm9yZGVyLCBpbnQmIGZvY3VzKQor
TGVuZ3RoQm94IFJlbmRlclRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ0JveChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0gICAgLy8gSWYgdGhpcyBtZW51IGxpc3QgYnV0
dG9uIGlzbid0IGRyYXduIHVzaW5nIHRoZSBuYXRpdmUgdGhlbWUsIHdlCi0gICAgLy8gZG9uJ3Qg
YWRkIGFueSBleHRyYSBwYWRkaW5nIGJleW9uZCB3aGF0IFdlYkNvcmUgYWxyZWFkeSB1c2VzLgog
ICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTm9Db250cm9sUGFydCkKLSAgICAgICAgcmV0
dXJuOworICAgICAgICByZXR1cm4geyAwLCAwLCAwLCAwIH07CiAKICAgICBHUmVmUHRyPEd0a1N0
eWxlQ29udGV4dD4gcGFyZW50Q29udGV4dCA9IGNyZWF0ZVN0eWxlQ29udGV4dChDb21ib0JveCk7
CiAgICAgR1JlZlB0cjxHdGtTdHlsZUNvbnRleHQ+IGNvbnRleHQgPSBjcmVhdGVTdHlsZUNvbnRl
eHQoQ29tYm9Cb3hCdXR0b24sIHBhcmVudENvbnRleHQuZ2V0KCkpOwogICAgIGd0a19zdHlsZV9j
b250ZXh0X3NldF9kaXJlY3Rpb24oY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrVGV4dERp
cmVjdGlvbj4oZ3RrVGV4dERpcmVjdGlvbihzdHlsZS5kaXJlY3Rpb24oKSkpKTsKICAgICBndGtf
c3R5bGVfY29udGV4dF9zZXRfc3RhdGUoY29udGV4dC5nZXQoKSwgc3RhdGljX2Nhc3Q8R3RrU3Rh
dGVGbGFncz4oMCkpOwotICAgIGd0a19zdHlsZV9jb250ZXh0X2dldF9ib3JkZXIoY29udGV4dC5n
ZXQoKSwgZ3RrX3N0eWxlX2NvbnRleHRfZ2V0X3N0YXRlKGNvbnRleHQuZ2V0KCkpLCAmYm9yZGVy
KTsKKyAgICBHdGtCb3JkZXIgYm9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsKKyAgICBndGtf
c3R5bGVfY29udGV4dF9nZXRfYm9yZGVyKGNvbnRleHQuZ2V0KCksIGd0a19zdHlsZV9jb250ZXh0
X2dldF9zdGF0ZShjb250ZXh0LmdldCgpKSwgJmJvcmRlcldpZHRoKTsKIAogICAgIGdib29sZWFu
IGludGVyaW9yRm9jdXM7CiAgICAgZ2ludCBmb2N1c1dpZHRoLCBmb2N1c1BhZDsKICAgICBndGtf
c3R5bGVfY29udGV4dF9nZXRfc3R5bGUoY29udGV4dC5nZXQoKSwgImludGVyaW9yLWZvY3VzIiwg
JmludGVyaW9yRm9jdXMsICJmb2N1cy1saW5lLXdpZHRoIiwgJmZvY3VzV2lkdGgsICJmb2N1cy1w
YWRkaW5nIiwgJmZvY3VzUGFkLCBudWxscHRyKTsKLSAgICBmb2N1cyA9IGludGVyaW9yRm9jdXMg
PyBmb2N1c1dpZHRoICsgZm9jdXNQYWQgOiAwOwotfQorICAgIGZvY3VzV2lkdGggPSBpbnRlcmlv
ckZvY3VzID8gZm9jdXNXaWR0aCArIGZvY3VzUGFkIDogMDsKIAotaW50IFJlbmRlclRoZW1lR3Rr
Ojpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25z
dAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OwotICAgIGlu
dCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJpY3Moc3R5bGUsIGJvcmRlcldp
ZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgbGVmdCA9IGJvcmRlcldpZHRoLmxlZnQgKyBmb2N1
c1dpZHRoOwotICAgIGlmIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBSVEwpCi0gICAgICAgIGxlZnQg
Kz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiBsZWZ0OwotfQotCi1pbnQgUmVuZGVyVGhlbWVH
dGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5nUmlnaHQoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBj
b25zdAotewotICAgIEd0a0JvcmRlciBib3JkZXJXaWR0aCA9IHsgMCwgMCwgMCwgMCB9OwotICAg
IGludCBmb2N1c1dpZHRoID0gMDsKLSAgICBnZXRDb21ib0JveE1ldHJpY3Moc3R5bGUsIGJvcmRl
cldpZHRoLCBmb2N1c1dpZHRoKTsKLSAgICBpbnQgcmlnaHQgPSBib3JkZXJXaWR0aC5yaWdodCAr
IGZvY3VzV2lkdGg7Ci0gICAgaWYgKHN0eWxlLmRpcmVjdGlvbigpID09IExUUikKLSAgICAgICAg
cmlnaHQgKz0gbWluQXJyb3dTaXplOwotICAgIHJldHVybiByaWdodDsKLX0KLQotaW50IFJlbmRl
clRoZW1lR3RrOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0Ci17Ci0gICAgR3RrQm9yZGVyIGJvcmRlcldpZHRoID0geyAwLCAwLCAwLCAwIH07
Ci0gICAgaW50IGZvY3VzV2lkdGggPSAwOwotICAgIGdldENvbWJvQm94TWV0cmljcyhzdHlsZSwg
Ym9yZGVyV2lkdGgsIGZvY3VzV2lkdGgpOwotICAgIHJldHVybiBib3JkZXJXaWR0aC50b3AgKyBm
b2N1c1dpZHRoOwotfQotCi1pbnQgUmVuZGVyVGhlbWVHdGs6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKLXsKLSAgICBHdGtCb3JkZXIg
Ym9yZGVyV2lkdGggPSB7IDAsIDAsIDAsIDAgfTsKLSAgICBpbnQgZm9jdXNXaWR0aCA9IDA7Ci0g
ICAgZ2V0Q29tYm9Cb3hNZXRyaWNzKHN0eWxlLCBib3JkZXJXaWR0aCwgZm9jdXNXaWR0aCk7Ci0g
ICAgcmV0dXJuIGJvcmRlcldpZHRoLmJvdHRvbSArIGZvY3VzV2lkdGg7CisgICAgcmV0dXJuIHsg
Ym9yZGVyV2lkdGgudG9wICsgZm9jdXNXaWR0aCwgYm9yZGVyV2lkdGgucmlnaHQgKyBmb2N1c1dp
ZHRoICsgKHN0eWxlLmRpcmVjdGlvbigpID09IExUUiA/IG1pbkFycm93U2l6ZSA6IDApLAorICAg
ICAgICBib3JkZXJXaWR0aC5ib3R0b20gKyBmb2N1c1dpZHRoLCBib3JkZXJXaWR0aC5sZWZ0ICsg
Zm9jdXNXaWR0aCArIChzdHlsZS5kaXJlY3Rpb24oKSA9PSBSVEwgPyBtaW5BcnJvd1NpemUgOiAw
KSB9OwogfQogCiBib29sIFJlbmRlclRoZW1lR3RrOjpwYWludE1lbnVMaXN0KGNvbnN0IFJlbmRl
ck9iamVjdCYgcmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3Qg
RmxvYXRSZWN0JiByKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lR3RrLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVHdGsuaApp
bmRleCAzNDcxNWJmLi40MTk3Yzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVHdGsuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVHdGsuaApAQCAtMTE5LDEwICsxMTksNyBAQCBwcml2YXRlOgogICAgIGJvb2wgcGFpbnRU
ZXh0RmllbGQoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgRmxv
YXRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgYm9vbCBwYWludFRleHRBcmVhKGNvbnN0IFJlbmRlck9i
amVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCi0g
ICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nTGVmdChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0
IG92ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ1JpZ2h0KGNvbnN0IFJlbmRl
clN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJuYWxQYWRkaW5nVG9w
KGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgaW50IHBvcHVwSW50ZXJu
YWxQYWRkaW5nQm90dG9tKGNvbnN0IFJlbmRlclN0eWxlJikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
TGVuZ3RoQm94IHBvcHVwSW50ZXJuYWxQYWRkaW5nQm94KGNvbnN0IFJlbmRlclN0eWxlJikgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICAvLyBUaGUgTWFjIHBvcnQgZGlmZmVyZW50aWF0ZXMgYmV0d2Vl
biB0aGUgIm1lbnUgbGlzdCIgYW5kIHRoZSAibWVudSBsaXN0IGJ1dHRvbi4iCiAgICAgLy8gVGhl
IGZvcm1lciBpcyB1c2VkIHdoZW4gYSBtZW51IGxpc3QgYnV0dG9uIGhhcyBiZWVuIHN0eWxlZC4g
VGhpcyBpcyB1c2VkIHRvIGVuc3VyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MuaAppbmRleCAwNjJiYzJiLi5kNmM4NjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBSZW5kZXJUaGVtZUlP
UyBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVtZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxS
ZW5kZXJUaGVtZT4gY3JlYXRlKCk7CiAKLSAgICBpbnQgcG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdo
dChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIExlbmd0aEJveCBwb3B1
cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0Um91bmRCb3JkZXJSYWRpdXMoUmVuZGVyU3R5bGUmLCBS
ZW5kZXJCb3gmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1t
CmluZGV4IGZhNjc3YzAuLjM0ODQ5OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVJT1MubW0KQEAgLTUyOCwxMSArNTI4LDExIEBAIGNvbnN0IGZsb2F0IE1lbnVMaXN0
QXJyb3dXaWR0aCA9IDc7CiBjb25zdCBmbG9hdCBNZW51TGlzdEFycm93SGVpZ2h0ID0gNjsKIGNv
bnN0IGZsb2F0IE1lbnVMaXN0QnV0dG9uUGFkZGluZ1JpZ2h0ID0gMTk7CiAKLWludCBSZW5kZXJU
aGVtZUlPUzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYgc3R5
bGUpIGNvbnN0CitMZW5ndGhCb3ggUmVuZGVyVGhlbWVJT1M6OnBvcHVwSW50ZXJuYWxQYWRkaW5n
Qm94KGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkgY29uc3QKIHsKICAgICBpZiAoc3R5bGUuYXBw
ZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkKLSAgICAgICAgcmV0dXJuIE1lbnVMaXN0
QnV0dG9uUGFkZGluZ1JpZ2h0ICsgc3R5bGUuYm9yZGVyVG9wV2lkdGgoKTsKLSAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIHsgMCwgc3RhdGljX2Nhc3Q8aW50PihNZW51TGlzdEJ1dHRvblBh
ZGRpbmdSaWdodCArIHN0eWxlLmJvcmRlclRvcFdpZHRoKCkpLCAwLCAwIH07CisgICAgcmV0dXJu
IHsgMCwgMCwgMCwgMCB9OwogfQogCiB2b2lkIFJlbmRlclRoZW1lSU9TOjphZGp1c3RSb3VuZEJv
cmRlclJhZGl1cyhSZW5kZXJTdHlsZSYgc3R5bGUsIFJlbmRlckJveCYgYm94KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAppbmRleCA3MDQzMzBkLi4wZjQxMzMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMuaApAQCAtNzUsMTAgKzc1
LDcgQEAgcHVibGljOgogICAgIGludCBzbGlkZXJUaWNrT2Zmc2V0RnJvbVRyYWNrQ2VudGVyKCkg
Y29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ0xl
ZnQoY29uc3QgUmVuZGVyU3R5bGUmKSBjb25zdCBvdmVycmlkZTsKLSAgICBpbnQgcG9wdXBJbnRl
cm5hbFBhZGRpbmdSaWdodChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwotICAg
IGludCBwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGludCBwb3B1cEludGVybmFsUGFkZGluZ0JvdHRvbShjb25zdCBSZW5kZXJT
dHlsZSYpIGNvbnN0IG92ZXJyaWRlOworICAgIExlbmd0aEJveCBwb3B1cEludGVybmFsUGFkZGlu
Z0JveChjb25zdCBSZW5kZXJTdHlsZSYpIGNvbnN0IG92ZXJyaWRlOwogICAgIFBvcHVwTWVudVN0
eWxlOjpQb3B1cE1lbnVTaXplIHBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmLCBJbnRS
ZWN0JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIHBvcHNNZW51QnlBcnJvd0tleXMoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KaW5kZXggNjdjM2EwZi4uMTQ1MWVhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMTM2NSw0MyArMTM2NSwyMyBAQCB2
b2lkIFJlbmRlclRoZW1lTWFjOjphZGp1c3RNZW51TGlzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0
eWxlUmVzb2x2ZXIsIFJlbmRlclN0eQogICAgIHN0eWxlLnNldEJveFNoYWRvdyhudWxscHRyKTsK
IH0KIAotaW50IFJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ0xlZnQoY29uc3Qg
UmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAorTGVuZ3RoQm94IFJlbmRlclRoZW1lTWFjOjpwb3B1
cEludGVybmFsUGFkZGluZ0JveChjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0CiB7Ci0g
ICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdFBhcnQpCi0gICAgICAgIHJldHVy
biBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JGb250KHN0eWxlKSlbbGVmdFBhZGRp
bmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpOwotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkg
PT0gTWVudWxpc3RCdXR0b25QYXJ0KQotICAgICAgICByZXR1cm4gc3R5bGVkUG9wdXBQYWRkaW5n
TGVmdCAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKTsKLSAgICByZXR1cm4gMDsKLX0KKyAgICBpZiAo
c3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0UGFydCkgeworICAgICAgICByZXR1cm4geyBz
dGF0aWNfY2FzdDxpbnQ+KHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5
bGUpKVt0b3BQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgICAgICBz
dGF0aWNfY2FzdDxpbnQ+KHBvcHVwQnV0dG9uUGFkZGluZyhjb250cm9sU2l6ZUZvckZvbnQoc3R5
bGUpKVtyaWdodFBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKSwKKyAgICAgICAgICAg
IHN0YXRpY19jYXN0PGludD4ocG9wdXBCdXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9udChz
dHlsZSkpW2JvdHRvbVBhZGRpbmddICogc3R5bGUuZWZmZWN0aXZlWm9vbSgpKSwKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGludD4ocG9wdXBCdXR0b25QYWRkaW5nKGNvbnRyb2xTaXplRm9yRm9u
dChzdHlsZSkpW2xlZnRQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20oKSkgfTsKKyAgICB9
CiAKLWludCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdSaWdodChjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUpIGNvbnN0Ci17Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9
PSBNZW51bGlzdFBhcnQpCi0gICAgICAgIHJldHVybiBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJv
bFNpemVGb3JGb250KHN0eWxlKSlbcmlnaHRQYWRkaW5nXSAqIHN0eWxlLmVmZmVjdGl2ZVpvb20o
KTsKICAgICBpZiAoc3R5bGUuYXBwZWFyYW5jZSgpID09IE1lbnVsaXN0QnV0dG9uUGFydCkgewot
ICAgICAgICBmbG9hdCBmb250U2NhbGUgPSBzdHlsZS5mb250U2l6ZSgpIC8gYmFzZUZvbnRTaXpl
OwotICAgICAgICBmbG9hdCBhcnJvd1dpZHRoID0gYmFzZUFycm93V2lkdGggKiBmb250U2NhbGU7
Ci0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxmKGFycm93V2lkdGggKyAoYXJy
b3dQYWRkaW5nTGVmdCArIGFycm93UGFkZGluZ1JpZ2h0ICsgcGFkZGluZ0JlZm9yZVNlcGFyYXRv
cikgKiBzdHlsZS5lZmZlY3RpdmVab29tKCkpKTsKKyAgICAgICAgZmxvYXQgYXJyb3dXaWR0aCA9
IGJhc2VBcnJvd1dpZHRoICogKHN0eWxlLmZvbnRTaXplKCkgLyBiYXNlRm9udFNpemUpOworICAg
ICAgICByZXR1cm4geyBzdGF0aWNfY2FzdDxpbnQ+KHN0eWxlZFBvcHVwUGFkZGluZ1RvcCAqIHN0
eWxlLmVmZmVjdGl2ZVpvb20oKSksCisgICAgICAgICAgICBzdGF0aWNfY2FzdDxpbnQ+KGNlaWxm
KGFycm93V2lkdGggKyAoYXJyb3dQYWRkaW5nTGVmdCArIGFycm93UGFkZGluZ1JpZ2h0ICsgcGFk
ZGluZ0JlZm9yZVNlcGFyYXRvcikgKiBzdHlsZS5lZmZlY3RpdmVab29tKCkpKSwKKyAgICAgICAg
ICAgIHN0YXRpY19jYXN0PGludD4oc3R5bGVkUG9wdXBQYWRkaW5nQm90dG9tICogc3R5bGUuZWZm
ZWN0aXZlWm9vbSgpKSwgc3RhdGljX2Nhc3Q8aW50PihzdHlsZWRQb3B1cFBhZGRpbmdMZWZ0ICog
c3R5bGUuZWZmZWN0aXZlWm9vbSgpKSB9OwogICAgIH0KLSAgICByZXR1cm4gMDsKLX0KIAotaW50
IFJlbmRlclRoZW1lTWFjOjpwb3B1cEludGVybmFsUGFkZGluZ1RvcChjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGUpIGNvbnN0Ci17Ci0gICAgaWYgKHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlz
dFBhcnQpCi0gICAgICAgIHJldHVybiBwb3B1cEJ1dHRvblBhZGRpbmcoY29udHJvbFNpemVGb3JG
b250KHN0eWxlKSlbdG9wUGFkZGluZ10gKiBzdHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgaWYg
KHN0eWxlLmFwcGVhcmFuY2UoKSA9PSBNZW51bGlzdEJ1dHRvblBhcnQpCi0gICAgICAgIHJldHVy
biBzdHlsZWRQb3B1cFBhZGRpbmdUb3AgKiBzdHlsZS5lZmZlY3RpdmVab29tKCk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KLWludCBSZW5kZXJUaGVtZU1hYzo6cG9wdXBJbnRlcm5hbFBhZGRpbmdCb3R0
b20oY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKSBjb25zdAotewotICAgIGlmIChzdHlsZS5hcHBl
YXJhbmNlKCkgPT0gTWVudWxpc3RQYXJ0KQotICAgICAgICByZXR1cm4gcG9wdXBCdXR0b25QYWRk
aW5nKGNvbnRyb2xTaXplRm9yRm9udChzdHlsZSkpW2JvdHRvbVBhZGRpbmddICogc3R5bGUuZWZm
ZWN0aXZlWm9vbSgpOwotICAgIGlmIChzdHlsZS5hcHBlYXJhbmNlKCkgPT0gTWVudWxpc3RCdXR0
b25QYXJ0KQotICAgICAgICByZXR1cm4gc3R5bGVkUG9wdXBQYWRkaW5nQm90dG9tICogc3R5bGUu
ZWZmZWN0aXZlWm9vbSgpOwotICAgIHJldHVybiAwOworICAgIHJldHVybiB7IDAsIDAsIDAsIDAg
fTsKIH0KIAogUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVuZGVyVGhlbWVNYWM6OnBv
cHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBJbnRSZWN0JiByZWN0KSBjb25z
dAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>