<?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>89154</bug_id>
          
          <creation_ts>2012-06-14 18:49:01 -0700</creation_ts>
          <short_desc>Use IntSize in RenderLayer to represent scroll offsets</short_desc>
          <delta_ts>2012-06-20 10:24:46 -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>All</rep_platform>
          <op_sys>All</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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>andersca</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>649735</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-14 18:49:01 -0700</bug_when>
    <thetext>The code mixes IntPoint, IntSize and int, which makes it hard to read, let alone change.

The rest of WebCore assumes that an offset is an IntSize but ScrollableArea uses IntPoint / FloatPoint to represent offsets. I don&apos;t know if there is a consensus on offsets being points vs sizes but the usage seems to point at size.

This change aims at simplifying the logic by switching as much of RenderLayer to using IntSize for manipulating scroll offsets. This has the added benefit of simplifying some of the computations by doing both coordinates with one line of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649740</commentid>
    <comment_count>1</comment_count>
      <attachid>147706</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-14 18:57:13 -0700</bug_when>
    <thetext>Created attachment 147706
Proposed change. Use IntSize when applicable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649763</commentid>
    <comment_count>2</comment_count>
      <attachid>147706</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-06-14 19:22:41 -0700</bug_when>
    <thetext>Comment on attachment 147706
Proposed change. Use IntSize when applicable.

Attachment 147706 did not pass win-ews (win):
Output: http://queues.webkit.org/results/12956539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650287</commentid>
    <comment_count>3</comment_count>
      <attachid>147846</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-06-15 10:12:22 -0700</bug_when>
    <thetext>Created attachment 147846
Version 2. Forgot to update WebKit callers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653136</commentid>
    <comment_count>4</comment_count>
      <attachid>147846</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-06-19 20:28:22 -0700</bug_when>
    <thetext>Comment on attachment 147846
Version 2. Forgot to update WebKit callers.

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653609</commentid>
    <comment_count>5</comment_count>
      <attachid>147846</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 10:24:42 -0700</bug_when>
    <thetext>Comment on attachment 147846
Version 2. Forgot to update WebKit callers.

Clearing flags on attachment: 147846

Committed r120832: &lt;http://trac.webkit.org/changeset/120832&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653610</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-20 10:24:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147706</attachid>
            <date>2012-06-14 18:57:13 -0700</date>
            <delta_ts>2012-06-15 10:12:19 -0700</delta_ts>
            <desc>Proposed change. Use IntSize when applicable.</desc>
            <filename>bug-89154-20120614185712.patch</filename>
            <type>text/plain</type>
            <size>16760</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjI0OThkNTM3ZTA0YTQw
YjViNmIyYjE4NzRhZGY5YmE3OTU5NTg2YS4uYzM0YWJiMDNjZTRlZDk3YzRmNGY1N2U4MDQyYTQ2
NTQ1N2U1ODlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDEyLTA2LTE0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBJbnRT
aXplIGluIFJlbmRlckxheWVyIHRvIHJlcHJlc2VudCBzY3JvbGwgb2Zmc2V0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxNTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzY3JvbGxUbyk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnN0YXJ0KToKKyAgICAgICAg
VXBkYXRlZCB0aG9zZSBjYWxsLXNpdGVzIHRvIHVzZSB0aGUgSW50U2l6ZSB2YXJpYW50IG9mIHRo
ZSBzY3JvbGxpbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludCk6
CisgICAgICAgIFVwZGF0ZWQgdGhlIHNpZ25hdHVyZSB0byB1c2UgSW50UG9pbnQgdG8gYXZvaWQg
YW4gZXh0cmEgcm91bmQtdHJpcCB0byBMYXlvdXRQb2ludAorICAgICAgICAoZnVydGhlcm1vcmUg
dG91Y2ggcG9pbnRzIHNob3VsZCBiZSBpbiBkZXZpY2UgcGl4ZWxzKS4KKworICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgQWRkZWQgdGhp
cyBmdW5jdGlvbiB0aGF0IGNsYW1wcyBhIHNjcm9sbCBvZmZzZXQgdG8gdGhlIGJveCdzIHNpemUu
IFRoaXMgZW5hYmxlcyBtb3JlCisgICAgICAgIGNvZGUgc2hhcmluZyBiZXR3ZWVuIHRoZSBkaWZm
ZXJlbnQgZnVuY3Rpb25zLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRl
TGF5ZXJQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjphZGp1c3RlZFNjcm9sbERlbHRhKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxCeVJlY3Vyc2l2ZWx5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KToKKyAgICAgICAg
VXBkYXRlZCB0byBkbyBJbnRTaXplIGFyaXRobWV0aWMuIFJldXNlIGNsYW1wU2Nyb2xsT2Zmc2V0
IHdoZW4gYXBwbGljYWJsZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRvWE9mZnNldCk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Nyb2xsVG9ZT2Zmc2V0KToKKyAgICAgICAgVXBkYXRl
ZCB0aGUgZnVuY3Rpb25zIHRvIHRha2UgSW50U2l6ZSBhcyBtdWNoIGFzIHBvc3NpYmxlLgorCiAy
MDEyLTA2LTE0ICBSeXVhbiBDaG9pICA8cnl1YW4uY2hvaUBzYW1zdW5nLmNvbT4KIAogICAgICAg
ICBbRUZMXSBNb3ZlIGN1cnNvciByZWxhdGVkIGNvZGUgZnJvbSBXaWRnZXRFZmwgdG8gZXdrX3Zp
ZXcgYW5kIEVmbFNjcmVlblV0aWxpdGllcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IGZkOGE2
NDQ1NzFlZDY3OWZjMTdlODE3YmMyNWI5ZWVmZThhYThmZjYuLmJhNDFkMjFkNWY1Y2U0YWQ1MTE0
NmE5MjZkNTQ3ODI1M2MyMmViNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtNDAxMyw3ICs0
MDEzLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzY3JvbGxUbyhjb25zdCBJ
bnRQb2ludCYgcG9pbnQpIGNvbnN0CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlckxheWVy
KiBsYXllciA9IGJveC0+bGF5ZXIoKTsKLSAgICBsYXllci0+c2Nyb2xsVG9PZmZzZXQocG9pbnQu
eCgpLCBwb2ludC55KCksIFJlbmRlckxheWVyOjpTY3JvbGxPZmZzZXRDbGFtcGVkKTsKKyAgICBs
YXllci0+c2Nyb2xsVG9PZmZzZXQodG9TaXplKHBvaW50KSwgUmVuZGVyTGF5ZXI6OlNjcm9sbE9m
ZnNldENsYW1wZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKaW5kZXggODE4OTE0NGE5OTM4MGE1OGQwYzhh
NWE3N2FjZjBiNjhjMGUwZjQ4ZS4uNTNhZTJhYjg4ZWQ0N2ZiZTY4ZTU4ZGFkMDA0ZjIxMTQ4NmY4
MGU4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNwcApAQCAt
MTc0LDggKzE3NCwxMCBAQCB2b2lkIFRleHRGaWVsZElucHV0VHlwZTo6Zm9yd2FyZEV2ZW50KEV2
ZW50KiBldmVudCkKICAgICAgICAgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKiByZW5kZXJU
ZXh0Q29udHJvbCA9IHRvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lKGVsZW1lbnQoKS0+cmVu
ZGVyZXIoKSk7CiAgICAgICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5ibHVy
RXZlbnQpIHsKICAgICAgICAgICAgIGlmIChSZW5kZXJCb3gqIGlubmVyVGV4dFJlbmRlcmVyID0g
aW5uZXJUZXh0RWxlbWVudCgpLT5yZW5kZXJCb3goKSkgewotICAgICAgICAgICAgICAgIGlmIChS
ZW5kZXJMYXllciogaW5uZXJMYXllciA9IGlubmVyVGV4dFJlbmRlcmVyLT5sYXllcigpKQotICAg
ICAgICAgICAgICAgICAgICBpbm5lckxheWVyLT5zY3JvbGxUb09mZnNldCghcmVuZGVyVGV4dENv
bnRyb2wtPnN0eWxlKCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGlubmVyTGF5ZXItPnNj
cm9sbFdpZHRoKCkgOiAwLCAwLCBSZW5kZXJMYXllcjo6U2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7Cisg
ICAgICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBpbm5lckxheWVyID0gaW5uZXJUZXh0UmVu
ZGVyZXItPmxheWVyKCkpIHsKKyAgICAgICAgICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxPZmZz
ZXQoIXJlbmRlclRleHRDb250cm9sLT5zdHlsZSgpLT5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCkg
PyBpbm5lckxheWVyLT5zY3JvbGxXaWR0aCgpIDogMCwgMCk7CisgICAgICAgICAgICAgICAgICAg
IGlubmVyTGF5ZXItPnNjcm9sbFRvT2Zmc2V0KHNjcm9sbE9mZnNldCwgUmVuZGVyTGF5ZXI6OlNj
cm9sbE9mZnNldENsYW1wZWQpOworICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAog
ICAgICAgICAgICAgcmVuZGVyVGV4dENvbnRyb2wtPmNhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdl
ZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TcGF0aWFsTmF2aWdhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcAppbmRleCA2ZGNi
ODE0YTMzMWE3MTRlOTMwMGQ2MzMwNzE3MWYyYmNiNjMxZjk4Li40MTUwYjY0ZjM5NjVkNTYyMDRm
Zjc5NmIxZGMyOTJhM2M5MWVjOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Nw
YXRpYWxOYXZpZ2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NwYXRpYWxOYXZp
Z2F0aW9uLmNwcApAQCAtMzk5LDcgKzM5OSw3IEBAIGJvb2wgc2Nyb2xsSW5EaXJlY3Rpb24oTm9k
ZSogY29udGFpbmVyLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KIAotICAgICAgICBjb250YWluZXItPnJlbmRlckJveCgpLT5l
bmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KGR4LCBkeSk7CisgICAgICAgIGNv
bnRhaW5lci0+cmVuZGVyQm94KCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZl
bHkoSW50U2l6ZShkeCwgZHkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCAyN2M3ZDVjZjU1ZDllNzBm
NWVjNjdiZTcyMjA4ZmE1NWE4NTZmYjdlLi4yNDQzZDlhMDIwYWVlNDZhYjZjMDMyNTcyMTM0NzNm
NDdlYjgxY2ZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAg
LTgwNSw3ICs4MDUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uKCkK
ICAgICAgICAgICAgIGxvY2FsUG9pbnQgKz0gY29sdW1uT2Zmc2V0OwogICAgICAgICB9CiAKLSAg
ICAgICAgTGF5b3V0U2l6ZSBzY3JvbGxPZmZzZXQgPSBwYXJlbnQoKS0+c2Nyb2xsZWRDb250ZW50
T2Zmc2V0KCk7CisgICAgICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0ID0gcGFyZW50KCktPnNjcm9s
bGVkQ29udGVudE9mZnNldCgpOwogICAgICAgICBsb2NhbFBvaW50IC09IHNjcm9sbE9mZnNldDsK
ICAgICB9CiAgICAgICAgIApAQCAtMTQ3NCw3ICsxNDc0LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50
IGFkanVzdGVkU2Nyb2xsRGVsdGEoaW50IGJlZ2lubmluZ0RlbHRhKSB7CiAgICAgcmV0dXJuIGFk
anVzdGVkRGVsdGE7CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludChj
b25zdCBMYXlvdXRQb2ludCYgc291cmNlUG9pbnQpIAorc3RhdGljIGlubGluZSBJbnRTaXplIGFk
anVzdGVkU2Nyb2xsRGVsdGEoY29uc3QgSW50U2l6ZSYgZGVsdGEpCit7CisgICAgcmV0dXJuIElu
dFNpemUoYWRqdXN0ZWRTY3JvbGxEZWx0YShkZWx0YS53aWR0aCgpKSwgYWRqdXN0ZWRTY3JvbGxE
ZWx0YShkZWx0YS5oZWlnaHQoKSkpOworfQorCit2b2lkIFJlbmRlckxheWVyOjpwYW5TY3JvbGxG
cm9tUG9pbnQoY29uc3QgSW50UG9pbnQmIHNvdXJjZVBvaW50KQogewogICAgIEZyYW1lKiBmcmFt
ZSA9IHJlbmRlcmVyKCktPmZyYW1lKCk7CiAgICAgaWYgKCFmcmFtZSkKQEAgLTE0ODksMjAgKzE0
OTQsMTkgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFuU2Nyb2xsRnJvbVBvaW50KGNvbnN0IExheW91
dFBvaW50JiBzb3VyY2VQb2ludCkKICAgICBlbHNlCiAgICAgICAgIHByZXZpb3VzTW91c2VQb3Np
dGlvbiA9IGN1cnJlbnRNb3VzZVBvc2l0aW9uOwogCi0gICAgaW50IHhEZWx0YSA9IGN1cnJlbnRN
b3VzZVBvc2l0aW9uLngoKSAtIHNvdXJjZVBvaW50LngoKTsKLSAgICBpbnQgeURlbHRhID0gY3Vy
cmVudE1vdXNlUG9zaXRpb24ueSgpIC0gc291cmNlUG9pbnQueSgpOworICAgIEludFNpemUgZGVs
dGEgPSBjdXJyZW50TW91c2VQb3NpdGlvbiAtIHNvdXJjZVBvaW50OwogCi0gICAgaWYgKGFicyh4
RGVsdGEpIDw9IFNjcm9sbFZpZXc6Om5vUGFuU2Nyb2xsUmFkaXVzKSAvLyBhdCB0aGUgY2VudGVy
IHdlIGxldCB0aGUgc3BhY2UgZm9yIHRoZSBpY29uCi0gICAgICAgIHhEZWx0YSA9IDA7Ci0gICAg
aWYgKGFicyh5RGVsdGEpIDw9IFNjcm9sbFZpZXc6Om5vUGFuU2Nyb2xsUmFkaXVzKQotICAgICAg
ICB5RGVsdGEgPSAwOworICAgIGlmIChhYnMoZGVsdGEud2lkdGgoKSkgPD0gU2Nyb2xsVmlldzo6
bm9QYW5TY3JvbGxSYWRpdXMpIC8vIGF0IHRoZSBjZW50ZXIgd2UgbGV0IHRoZSBzcGFjZSBmb3Ig
dGhlIGljb24KKyAgICAgICAgZGVsdGEuc2V0V2lkdGgoMCk7CisgICAgaWYgKGFicyhkZWx0YS5o
ZWlnaHQoKSkgPD0gU2Nyb2xsVmlldzo6bm9QYW5TY3JvbGxSYWRpdXMpCisgICAgICAgIGRlbHRh
LnNldEhlaWdodCgwKTsKIAotICAgIHNjcm9sbEJ5UmVjdXJzaXZlbHkoYWRqdXN0ZWRTY3JvbGxE
ZWx0YSh4RGVsdGEpLCBhZGp1c3RlZFNjcm9sbERlbHRhKHlEZWx0YSksIFNjcm9sbE9mZnNldENs
YW1wZWQpOworICAgIHNjcm9sbEJ5UmVjdXJzaXZlbHkoYWRqdXN0ZWRTY3JvbGxEZWx0YShkZWx0
YSksIFNjcm9sbE9mZnNldENsYW1wZWQpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxC
eVJlY3Vyc2l2ZWx5KGludCB4RGVsdGEsIGludCB5RGVsdGEsIFNjcm9sbE9mZnNldENsYW1waW5n
IGNsYW1wKQordm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1cnNpdmVseShjb25zdCBJbnRT
aXplJiBkZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXApCiB7Ci0gICAgaWYgKCF4RGVs
dGEgJiYgIXlEZWx0YSkKKyAgICBpZiAoZGVsdGEuaXNaZXJvKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGJvb2wgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gZmFsc2U7CkBAIC0xNTEwLDE2ICsx
NTE0LDE0IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0
YSwgaW50IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpCiAgICAgICAgIHJlc3RyaWN0ZWRCeUxp
bmVDbGFtcCA9ICFyZW5kZXJlcigpLT5wYXJlbnQoKS0+c3R5bGUoKS0+bGluZUNsYW1wKCkuaXNO
b25lKCk7CiAKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkgJiYgIXJlc3Ry
aWN0ZWRCeUxpbmVDbGFtcCkgewotICAgICAgICBpbnQgbmV3T2Zmc2V0WCA9IHNjcm9sbFhPZmZz
ZXQoKSArIHhEZWx0YTsKLSAgICAgICAgaW50IG5ld09mZnNldFkgPSBzY3JvbGxZT2Zmc2V0KCkg
KyB5RGVsdGE7Ci0gICAgICAgIHNjcm9sbFRvT2Zmc2V0KG5ld09mZnNldFgsIG5ld09mZnNldFks
IGNsYW1wKTsKKyAgICAgICAgSW50U2l6ZSBuZXdTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQo
KSArIGRlbHRhOworICAgICAgICBzY3JvbGxUb09mZnNldChuZXdTY3JvbGxPZmZzZXQsIGNsYW1w
KTsKIAogICAgICAgICAvLyBJZiB0aGlzIGxheWVyIGNhbid0IGRvIHRoZSBzY3JvbGwgd2UgYXNr
IHRoZSBuZXh0IGxheWVyIHVwIHRoYXQgY2FuIHNjcm9sbCB0byB0cnkKLSAgICAgICAgaW50IGxl
ZnRUb1Njcm9sbFggPSBuZXdPZmZzZXRYIC0gc2Nyb2xsWE9mZnNldCgpOwotICAgICAgICBpbnQg
bGVmdFRvU2Nyb2xsWSA9IG5ld09mZnNldFkgLSBzY3JvbGxZT2Zmc2V0KCk7Ci0gICAgICAgIGlm
ICgobGVmdFRvU2Nyb2xsWCB8fCBsZWZ0VG9TY3JvbGxZKSAmJiByZW5kZXJlcigpLT5wYXJlbnQo
KSkgeworICAgICAgICBJbnRTaXplIHJlbWFpbmluZ1Njcm9sbE9mZnNldCA9IG5ld1Njcm9sbE9m
ZnNldCAtIHNjcm9sbE9mZnNldCgpOworICAgICAgICBpZiAoIXJlbWFpbmluZ1Njcm9sbE9mZnNl
dC5pc1plcm8oKSAmJiByZW5kZXJlcigpLT5wYXJlbnQoKSkgewogICAgICAgICAgICAgaWYgKFJl
bmRlckxheWVyKiBzY3JvbGxhYmxlTGF5ZXIgPSBlbmNsb3NpbmdTY3JvbGxhYmxlTGF5ZXIoKSkK
LSAgICAgICAgICAgICAgICBzY3JvbGxhYmxlTGF5ZXItPnNjcm9sbEJ5UmVjdXJzaXZlbHkobGVm
dFRvU2Nyb2xsWCwgbGVmdFRvU2Nyb2xsWSk7CisgICAgICAgICAgICAgICAgc2Nyb2xsYWJsZUxh
eWVyLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KHJlbWFpbmluZ1Njcm9sbE9mZnNldCk7CiAKICAgICAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IHJlbmRlcmVyKCktPmZyYW1lKCk7CiAgICAgICAgICAgICBp
ZiAoZnJhbWUpCkBAIC0xNTI4LDI5ICsxNTMwLDMwIEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9s
bEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBp
CiAgICAgfSBlbHNlIGlmIChyZW5kZXJlcigpLT52aWV3KCktPmZyYW1lVmlldygpKSB7CiAgICAg
ICAgIC8vIElmIHdlIGFyZSBoZXJlLCB3ZSB3ZXJlIGNhbGxlZCBvbiBhIHJlbmRlcmVyIHRoYXQg
Y2FuIGJlIHByb2dyYW1tYXRpY2FsbHkgc2Nyb2xsZWQsIGJ1dCBkb2Vzbid0CiAgICAgICAgIC8v
IGhhdmUgYW4gb3ZlcmZsb3cgY2xpcC4gV2hpY2ggbWVhbnMgdGhhdCBpdCBpcyBhIGRvY3VtZW50
IG5vZGUgdGhhdCBjYW4gYmUgc2Nyb2xsZWQuCi0gICAgICAgIHJlbmRlcmVyKCktPnZpZXcoKS0+
ZnJhbWVWaWV3KCktPnNjcm9sbEJ5KEludFNpemUoeERlbHRhLCB5RGVsdGEpKTsKKyAgICAgICAg
cmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoZGVsdGEpOwogICAgICAg
ICAvLyBGSVhNRTogSWYgd2UgZGlkbid0IHNjcm9sbCB0aGUgd2hvbGUgd2F5LCBkbyB3ZSB3YW50
IHRvIHRyeSBsb29raW5nIGF0IHRoZSBmcmFtZXMgb3duZXJFbGVtZW50PyAKICAgICAgICAgLy8g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4MjM3CiAgICAgfQogfQog
Ci12b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChpbnQgeCwgaW50IHksIFNjcm9sbE9m
ZnNldENsYW1waW5nIGNsYW1wKQorSW50U2l6ZSBSZW5kZXJMYXllcjo6Y2xhbXBTY3JvbGxPZmZz
ZXQoY29uc3QgSW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KSBjb25zdAogewotICAgIGlmIChjbGFtcCA9
PSBTY3JvbGxPZmZzZXRDbGFtcGVkKSB7Ci0gICAgICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVy
Qm94KCk7Ci0gICAgICAgIGlmICghYm94KQotICAgICAgICAgICAgcmV0dXJuOworICAgIFJlbmRl
ckJveCogYm94ID0gcmVuZGVyQm94KCk7CisgICAgQVNTRVJUKGJveCk7CiAKLSAgICAgICAgaW50
IG1heFggPSBzY3JvbGxXaWR0aCgpIC0gYm94LT5jbGllbnRXaWR0aCgpOwotICAgICAgICBpbnQg
bWF4WSA9IHNjcm9sbEhlaWdodCgpIC0gYm94LT5jbGllbnRIZWlnaHQoKTsKKyAgICBpbnQgbWF4
WCA9IHNjcm9sbFdpZHRoKCkgLSBib3gtPmNsaWVudFdpZHRoKCk7CisgICAgaW50IG1heFkgPSBz
Y3JvbGxIZWlnaHQoKSAtIGJveC0+Y2xpZW50SGVpZ2h0KCk7CiAKLSAgICAgICAgeCA9IG1pbiht
YXgoeCwgMCksIG1heFgpOwotICAgICAgICB5ID0gbWluKG1heCh5LCAwKSwgbWF4WSk7Ci0gICAg
fQorICAgIGludCB4ID0gbWluKG1heChzY3JvbGxPZmZzZXQud2lkdGgoKSwgMCksIG1heFgpOwor
ICAgIGludCB5ID0gbWluKG1heChzY3JvbGxPZmZzZXQuaGVpZ2h0KCksIDApLCBtYXhZKTsKKyAg
ICByZXR1cm4gSW50U2l6ZSh4LCB5KTsKK30KIAotICAgIEludFBvaW50IG5ld1Njcm9sbE9mZnNl
dCh4LCB5KTsKLSAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0ICE9IExheW91dFBvaW50KHNjcm9sbFhP
ZmZzZXQoKSwgc2Nyb2xsWU9mZnNldCgpKSkKLSAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0
QW5pbWF0aW9uKG5ld1Njcm9sbE9mZnNldCk7Cit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxUb09m
ZnNldChjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZzZXQsIFNjcm9sbE9mZnNldENsYW1waW5nIGNs
YW1wKQoreworICAgIEludFNpemUgbmV3U2Nyb2xsT2Zmc2V0ID0gY2xhbXAgPT0gU2Nyb2xsT2Zm
c2V0Q2xhbXBlZCA/IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNldCkgOiBzY3JvbGxPZmZz
ZXQ7CisgICAgaWYgKG5ld1Njcm9sbE9mZnNldCAhPSB0aGlzLT5zY3JvbGxPZmZzZXQoKSkKKyAg
ICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKHRvUG9pbnQobmV3U2Nyb2xsT2Zm
c2V0KSk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvKGludCB4LCBpbnQgeSkKQEAg
LTE2NDUsMjMgKzE2NDgsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJs
ZShjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBjb25zdCBTY3JvbGxBbGlnbm0KICAgICAgICAgTGF5
b3V0UmVjdCBleHBvc2VSZWN0ID0gTGF5b3V0UmVjdChyZWN0LngoKSArIHNjcm9sbFhPZmZzZXQo
KSwgcmVjdC55KCkgKyBzY3JvbGxZT2Zmc2V0KCksIHJlY3Qud2lkdGgoKSwgcmVjdC5oZWlnaHQo
KSk7CiAgICAgICAgIExheW91dFJlY3QgciA9IGdldFJlY3RUb0V4cG9zZShsYXllckJvdW5kcywg
ZXhwb3NlUmVjdCwgYWxpZ25YLCBhbGlnblkpOwogICAgICAgICAKLSAgICAgICAgTGF5b3V0VW5p
dCBhZGp1c3RlZFggPSByLngoKSAtIGFic1Bvcy54KCk7Ci0gICAgICAgIExheW91dFVuaXQgYWRq
dXN0ZWRZID0gci55KCkgLSBhYnNQb3MueSgpOwotICAgICAgICAvLyBBZGp1c3Qgb2Zmc2V0cyBp
ZiB0aGV5J3JlIG91dHNpZGUgb2YgdGhlIGFsbG93YWJsZSByYW5nZS4KLSAgICAgICAgYWRqdXN0
ZWRYID0gbWF4PExheW91dFVuaXQ+KDAsIG1pbihzY3JvbGxXaWR0aCgpIC0gbGF5ZXJCb3VuZHMu
d2lkdGgoKSwgYWRqdXN0ZWRYKSk7Ci0gICAgICAgIGFkanVzdGVkWSA9IG1heDxMYXlvdXRVbml0
PigwLCBtaW4oc2Nyb2xsSGVpZ2h0KCkgLSBsYXllckJvdW5kcy5oZWlnaHQoKSwgYWRqdXN0ZWRZ
KSk7Ci0KLSAgICAgICAgaW50IHhPZmZzZXQgPSByb3VuZFRvSW50KGFkanVzdGVkWCk7Ci0gICAg
ICAgIGludCB5T2Zmc2V0ID0gcm91bmRUb0ludChhZGp1c3RlZFkpOwotICAgICAgICAKLSAgICAg
ICAgaWYgKHhPZmZzZXQgIT0gc2Nyb2xsWE9mZnNldCgpIHx8IHlPZmZzZXQgIT0gc2Nyb2xsWU9m
ZnNldCgpKSB7Ci0gICAgICAgICAgICBpbnQgZGlmZlggPSBzY3JvbGxYT2Zmc2V0KCk7Ci0gICAg
ICAgICAgICBpbnQgZGlmZlkgPSBzY3JvbGxZT2Zmc2V0KCk7Ci0gICAgICAgICAgICBzY3JvbGxU
b09mZnNldCh4T2Zmc2V0LCB5T2Zmc2V0KTsKLSAgICAgICAgICAgIGRpZmZYID0gc2Nyb2xsWE9m
ZnNldCgpIC0gZGlmZlg7Ci0gICAgICAgICAgICBkaWZmWSA9IHNjcm9sbFlPZmZzZXQoKSAtIGRp
ZmZZOwotICAgICAgICAgICAgbmV3UmVjdC5zZXRYKHJlY3QueCgpIC0gZGlmZlgpOwotICAgICAg
ICAgICAgbmV3UmVjdC5zZXRZKHJlY3QueSgpIC0gZGlmZlkpOworICAgICAgICBpbnQgcm91bmRl
ZEFkanVzdGVkWCA9IHJvdW5kVG9JbnQoci54KCkgLSBhYnNQb3MueCgpKTsKKyAgICAgICAgaW50
IHJvdW5kZWRBZGp1c3RlZFkgPSByb3VuZFRvSW50KHIueSgpIC0gYWJzUG9zLnkoKSk7CisgICAg
ICAgIEludFNpemUgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zmc2V0KEludFNp
emUocm91bmRlZEFkanVzdGVkWCwgcm91bmRlZEFkanVzdGVkWSkpOworICAgICAgICBpZiAoY2xh
bXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgeworICAgICAgICAgICAgSW50U2l6
ZSBvbGRTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsKKyAgICAgICAgICAgIHNjcm9sbFRv
T2Zmc2V0KGNsYW1wZWRTY3JvbGxPZmZzZXQpOworICAgICAgICAgICAgSW50U2l6ZSBzY3JvbGxP
ZmZzZXREaWZmZXJlbmNlID0gc2Nyb2xsT2Zmc2V0KCkgLSBvbGRTY3JvbGxPZmZzZXQ7CisgICAg
ICAgICAgICBuZXdSZWN0Lm1vdmUoLXNjcm9sbE9mZnNldERpZmZlcmVuY2UpOwogICAgICAgICB9
CiAgICAgfSBlbHNlIGlmICghcGFyZW50TGF5ZXIgJiYgcmVuZGVyZXIoKS0+aXNCb3goKSAmJiBy
ZW5kZXJCb3goKS0+Y2FuQmVQcm9ncmFtYXRpY2FsbHlTY3JvbGxlZCgpKSB7CiAgICAgICAgIGlm
IChmcmFtZVZpZXcpIHsKQEAgLTI1MTQsMjMgKzI1MDgsMjIgQEAgdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlU2Nyb2xsSW5mb0FmdGVyTGF5b3V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9z
Y3JvbGxEaW1lbnNpb25zRGlydHkgPSB0cnVlOwotICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0T3Jp
Z2luYWwoc2Nyb2xsWE9mZnNldCgpLCBzY3JvbGxZT2Zmc2V0KCkpOworICAgIEludFNpemUgb3Jp
Z2luYWxTY3JvbGxPZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsKIAogICAgIGNvbXB1dGVTY3JvbGxE
aW1lbnNpb25zKCk7CiAKICAgICBpZiAoYm94LT5zdHlsZSgpLT5vdmVyZmxvd1goKSAhPSBPTUFS
UVVFRSkgewogICAgICAgICAvLyBMYXlvdXQgbWF5IGNhdXNlIHVzIHRvIGJlIGF0IGFuIGludmFs
aWQgc2Nyb2xsIHBvc2l0aW9uLiBJbiB0aGlzIGNhc2Ugd2UgbmVlZAogICAgICAgICAvLyB0byBw
dWxsIG91ciBzY3JvbGwgb2Zmc2V0cyBiYWNrIHRvIHRoZSBtYXggKG9yIHB1c2ggdGhlbSB1cCB0
byB0aGUgbWluKS4KLSAgICAgICAgaW50IG5ld1ggPSBtYXgoMCwgbWluPGludD4oc2Nyb2xsWE9m
ZnNldCgpLCBzY3JvbGxXaWR0aCgpIC0gYm94LT5jbGllbnRXaWR0aCgpKSk7Ci0gICAgICAgIGlu
dCBuZXdZID0gbWF4KDAsIG1pbjxpbnQ+KHNjcm9sbFlPZmZzZXQoKSwgc2Nyb2xsSGVpZ2h0KCkg
LSBib3gtPmNsaWVudEhlaWdodCgpKSk7Ci0gICAgICAgIGlmIChuZXdYICE9IHNjcm9sbFhPZmZz
ZXQoKSB8fCBuZXdZICE9IHNjcm9sbFlPZmZzZXQoKSkKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zm
c2V0KG5ld1gsIG5ld1kpOworICAgICAgICBJbnRTaXplIGNsYW1wZWRTY3JvbGxPZmZzZXQgPSBj
bGFtcFNjcm9sbE9mZnNldChzY3JvbGxPZmZzZXQoKSk7CisgICAgICAgIGlmIChjbGFtcGVkU2Ny
b2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKQorICAgICAgICAgICAgc2Nyb2xsVG9PZmZzZXQo
Y2xhbXBlZFNjcm9sbE9mZnNldCk7CiAgICAgfQogCiAgICAgdXBkYXRlU2Nyb2xsYmFyc0FmdGVy
TGF5b3V0KCk7CiAKLSAgICBpZiAoc2Nyb2xsT2Zmc2V0T3JpZ2luYWwgIT0gc2Nyb2xsT2Zmc2V0
KCkpCi0gICAgICAgIHNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihJbnRQb2ludChzY3Jv
bGxYT2Zmc2V0KCksIHNjcm9sbFlPZmZzZXQoKSkpOworICAgIGlmIChvcmlnaW5hbFNjcm9sbE9m
ZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkKKyAgICAgICAgc2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5p
bWF0aW9uKHRvUG9pbnQoc2Nyb2xsT2Zmc2V0KCkpKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
cGFpbnRPdmVyZmxvd0NvbnRyb2xzKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50
UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0LCBib29sIHBhaW50
aW5nT3ZlcmxheUNvbnRyb2xzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApp
bmRleCAwODc5MWI5YzQ1NWE2ZDI3ZWNiMDJiMDM5YTFkNGVjYzY5OTQ5ZTE2Li4zMGE3NzQ3MWFk
OWQ0YjBiNTQ4NmJkYmI0MzJjMzBhMGRmMThjN2ZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuaApAQCAtMzA4LDcgKzMwOCw3IEBAIHB1YmxpYzoKICAgICBpbnQgc2Nyb2xs
V2lkdGgoKSBjb25zdDsKICAgICBpbnQgc2Nyb2xsSGVpZ2h0KCkgY29uc3Q7CiAKLSAgICB2b2lk
IHBhblNjcm9sbEZyb21Qb2ludChjb25zdCBMYXlvdXRQb2ludCYpOworICAgIHZvaWQgcGFuU2Ny
b2xsRnJvbVBvaW50KGNvbnN0IEludFBvaW50Jik7CiAKICAgICBlbnVtIFNjcm9sbE9mZnNldENs
YW1waW5nIHsKICAgICAgICAgU2Nyb2xsT2Zmc2V0VW5jbGFtcGVkLApAQCAtMzE2LDE2ICszMTYs
MTUgQEAgcHVibGljOgogICAgIH07CiAKICAgICAvLyBTY3JvbGxpbmcgbWV0aG9kcyBmb3IgbGF5
ZXJzIHRoYXQgY2FuIHNjcm9sbCB0aGVpciBvdmVyZmxvdy4KLSAgICB2b2lkIHNjcm9sbEJ5UmVj
dXJzaXZlbHkoaW50IHhEZWx0YSwgaW50IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgPSBT
Y3JvbGxPZmZzZXRVbmNsYW1wZWQpOworICAgIHZvaWQgc2Nyb2xsQnlSZWN1cnNpdmVseShjb25z
dCBJbnRTaXplJiwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQp
OworICAgIHZvaWQgc2Nyb2xsVG9PZmZzZXQoY29uc3QgSW50U2l6ZSYsIFNjcm9sbE9mZnNldENs
YW1waW5nID0gU2Nyb2xsT2Zmc2V0VW5jbGFtcGVkKTsKKyAgICB2b2lkIHNjcm9sbFRvWE9mZnNl
dChpbnQgeCwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXAgPSBTY3JvbGxPZmZzZXRVbmNsYW1w
ZWQpIHsgc2Nyb2xsVG9PZmZzZXQoSW50U2l6ZSh4LCBzY3JvbGxZT2Zmc2V0KCkpLCBjbGFtcCk7
IH0KKyAgICB2b2lkIHNjcm9sbFRvWU9mZnNldChpbnQgeSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcg
Y2xhbXAgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQpIHsgc2Nyb2xsVG9PZmZzZXQoSW50U2l6ZShz
Y3JvbGxYT2Zmc2V0KCksIHkpLCBjbGFtcCk7IH0KIAogICAgIGludCBzY3JvbGxYT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9zY3JvbGxPZmZzZXQud2lkdGgoKSArIHNjcm9sbE9yaWdpbigpLngo
KTsgfQogICAgIGludCBzY3JvbGxZT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxPZmZz
ZXQuaGVpZ2h0KCkgKyBzY3JvbGxPcmlnaW4oKS55KCk7IH0KICAgICBJbnRTaXplIHNjcm9sbE9m
ZnNldCgpIGNvbnN0IHsgcmV0dXJuIEludFNpemUoc2Nyb2xsWE9mZnNldCgpLCBzY3JvbGxZT2Zm
c2V0KCkpOyB9CiAKLSAgICB2b2lkIHNjcm9sbFRvT2Zmc2V0KGludCwgaW50LCBTY3JvbGxPZmZz
ZXRDbGFtcGluZyA9IFNjcm9sbE9mZnNldFVuY2xhbXBlZCk7Ci0gICAgdm9pZCBzY3JvbGxUb1hP
ZmZzZXQoaW50IHgsIFNjcm9sbE9mZnNldENsYW1waW5nIGNsYW1wID0gU2Nyb2xsT2Zmc2V0VW5j
bGFtcGVkKSB7IHNjcm9sbFRvT2Zmc2V0KHgsIHNjcm9sbFlPZmZzZXQoKSwgY2xhbXApOyB9Ci0g
ICAgdm9pZCBzY3JvbGxUb1lPZmZzZXQoaW50IHksIFNjcm9sbE9mZnNldENsYW1waW5nIGNsYW1w
ID0gU2Nyb2xsT2Zmc2V0VW5jbGFtcGVkKSB7IHNjcm9sbFRvT2Zmc2V0KHNjcm9sbFhPZmZzZXQo
KSwgeSwgY2xhbXApOyB9Ci0KICAgICB2b2lkIHNjcm9sbFJlY3RUb1Zpc2libGUoY29uc3QgTGF5
b3V0UmVjdCYsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25YLCBjb25zdCBTY3JvbGxBbGln
bm1lbnQmIGFsaWduWSk7CiAKICAgICBMYXlvdXRSZWN0IGdldFJlY3RUb0V4cG9zZShjb25zdCBM
YXlvdXRSZWN0JiB2aXNpYmxlUmVjdCwgY29uc3QgTGF5b3V0UmVjdCYgZXhwb3NlUmVjdCwgY29u
c3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25Z
KTsKQEAgLTY2OCw2ICs2NjcsOCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBJbnRTaXplIFJlbmRl
ckJveDo6c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkgY29uc3Q7CiAgICAgSW50U2l6ZSBzY3JvbGxl
ZENvbnRlbnRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9mZnNldDsgfQogCisgICAg
SW50U2l6ZSBjbGFtcFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJikgY29uc3Q7CisKICAgICAv
LyBUaGUgbm9ybWFsIG9wZXJhdG9yIG5ldyBpcyBkaXNhbGxvd2VkIG9uIGFsbCByZW5kZXIgb2Jq
ZWN0cy4KICAgICB2b2lkKiBvcGVyYXRvciBuZXcoc2l6ZV90KSB0aHJvdygpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAKaW5kZXggN2NiNjllOTI4YjRmMmIw
ZjI4MjA3NGRiYzVjYjA4YjBhNGYxMjJjYy4uNTRkMzI3M2Q0NWRiZmJiZDdlNWU2MDVkMDQ4MWZm
YjRmODA5NTkxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1h
cnF1ZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJxdWVlLmNw
cApAQCAtMTY3LDkgKzE2Nyw5IEBAIHZvaWQgUmVuZGVyTWFycXVlZTo6c3RhcnQoKQogCiAgICAg
aWYgKCFtX3N1c3BlbmRlZCAmJiAhbV9zdG9wcGVkKSB7CiAgICAgICAgIGlmIChpc0hvcml6b250
YWwoKSkKLSAgICAgICAgICAgIG1fbGF5ZXItPnNjcm9sbFRvT2Zmc2V0KG1fc3RhcnQsIDApOwor
ICAgICAgICAgICAgbV9sYXllci0+c2Nyb2xsVG9PZmZzZXQoSW50U2l6ZShtX3N0YXJ0LCAwKSk7
CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fbGF5ZXItPnNjcm9sbFRvT2Zmc2V0KDAsIG1f
c3RhcnQpOworICAgICAgICAgICAgbV9sYXllci0+c2Nyb2xsVG9PZmZzZXQoSW50U2l6ZSgwLCBt
X3N0YXJ0KSk7CiAgICAgfQogICAgIGVsc2UgewogICAgICAgICBtX3N1c3BlbmRlZCA9IGZhbHNl
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147846</attachid>
            <date>2012-06-15 10:12:22 -0700</date>
            <delta_ts>2012-06-20 10:24:41 -0700</delta_ts>
            <desc>Version 2. Forgot to update WebKit callers.</desc>
            <filename>bug-89154-20120615101222.patch</filename>
            <type>text/plain</type>
            <size>21653</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTJmYTc3YTRiZGNmNzA0
ZDczN2QwOGUxNDI1NDIxZDMwMTc4MjA4MC4uNmEzNTU2MDQ2NGRmZmVjMmEwZDllZWQ5ZTk0MmY1
N2E0OTJmZmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA2LTE0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBJbnRT
aXplIGluIFJlbmRlckxheWVyIHRvIHJlcHJlc2VudCBzY3JvbGwgb2Zmc2V0cworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxNTQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJl
ZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpzY3JvbGxUbyk6CisgICAgICAgICogaHRtbC9UZXh0RmllbGRJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VGV4dEZpZWxkSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQp
OgorICAgICAgICAqIHBhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c2Nyb2xsSW5EaXJlY3Rpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNYXJxdWVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1hcnF1ZWU6OnN0YXJ0KToKKyAgICAgICAg
VXBkYXRlZCB0aG9zZSBjYWxsLXNpdGVzIHRvIHVzZSB0aGUgSW50U2l6ZSB2YXJpYW50IG9mIHRo
ZSBzY3JvbGxpbmcgZnVuY3Rpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludCk6
CisgICAgICAgIFVwZGF0ZWQgdGhlIHNpZ25hdHVyZSB0byB1c2UgSW50UG9pbnQgdG8gYXZvaWQg
YW4gZXh0cmEgcm91bmQtdHJpcCB0byBMYXlvdXRQb2ludAorICAgICAgICAoZnVydGhlcm1vcmUg
dG91Y2ggcG9pbnRzIHNob3VsZCBiZSBpbiBkZXZpY2UgcGl4ZWxzKS4KKworICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OmNsYW1wU2Nyb2xsT2Zmc2V0KToKKyAgICAgICAgQWRkZWQgdGhp
cyBmdW5jdGlvbiB0aGF0IGNsYW1wcyBhIHNjcm9sbCBvZmZzZXQgdG8gdGhlIGJveCdzIHNpemUu
IFRoaXMgZW5hYmxlcyBtb3JlCisgICAgICAgIGNvZGUgc2hhcmluZyBiZXR3ZWVuIHRoZSBkaWZm
ZXJlbnQgZnVuY3Rpb25zLiBBbHNvIHJlbW92ZWQgYSBOVUxMLWNoZWNrIHRoYXQgc2hvdWxkbid0
CisgICAgICAgIGJlIG5lZWRlZDogc2Nyb2xsaW5nIGlzIGEgUmVuZGVyQm94IGNvbmNlcHQgc28g
YW55IGNhbGxlcnMgc2hvdWxkIGVuc3VyZSB0aGF0IHdlIGhhdmUKKyAgICAgICAgYSBSZW5kZXJC
b3ggb3IgaXQgbWFrZXMgbm8gc2Vuc2UgdG8gdHJ5IHRvIHNjcm9sbC4KKworICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29y
ZTo6YWRqdXN0ZWRTY3JvbGxEZWx0YSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2Nyb2xsQnlSZWN1cnNpdmVseSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2Ny
b2xsVG9PZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RU
b1Zpc2libGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbElu
Zm9BZnRlckxheW91dCk6CisgICAgICAgIFVwZGF0ZWQgdG8gZG8gSW50U2l6ZSBhcml0aG1ldGlj
LiBSZXVzZSBjbGFtcFNjcm9sbE9mZnNldCB3aGVuIGFwcGxpY2FibGUuCisKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
Y3JvbGxUb1hPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNjcm9sbFRv
WU9mZnNldCk6CisgICAgICAgIFVwZGF0ZWQgdGhlIGZ1bmN0aW9ucyB0byB0YWtlIEludFNpemUg
YXMgbXVjaCBhcyBwb3NzaWJsZS4KKwogMjAxMi0wNi0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxk
bWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBMb25nIGZyYW1lIHVy
bHMgbWFrZSBhbGwvZXJyb3JzL3dhcm5pbmdzL2xvZ3MgYnV0dG9ucyBpbmFjY2Vzc2libGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAxMTY4MzhhZjhiNTVkNTVmMDY0NmFjMjYy
NjkzNTc5NGJlZGUxYzNkLi5jYTY0M2I4MzQzYzAxMDg1OTc4YjUxYTY5OTAwM2MyZTAzYTkwZjBk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0w
Ni0xNSAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAg
ICBVc2UgSW50U2l6ZSBpbiBSZW5kZXJMYXllciB0byByZXByZXNlbnQgc2Nyb2xsIG9mZnNldHMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5MTU0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBcGkvV2Vi
UGFnZS5jcHA6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OldlYlBhZ2VQcml2YXRlOjpz
Y3JvbGxSZW5kZXJlcik6CisgICAgICAgIFVwZGF0ZWQgdG8gcGFzcyBhbiBJbnRTaXplIHRvIHNj
cm9sbFRvT2Zmc2V0LgorCiAyMDEyLTA2LTE1ICBZb25nIExpICA8eW9saUByaW0uY29tPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBSZW1vdmUgQmFja2luZ1N0b3JlQ2xpZW50OjpzY3JvbGxzSG9y
aXpvbnRhbGx5L3Njcm9sbHNWZXJpdGljYWxseSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYmJiZGI3
NWI1YjQwNmJjOTFiZDM1OWE5YjhmNjBjMDNlMzQzZWEyMC4uN2RjMTUwZmNjNjBmZjRmNzMwM2Y5
Y2MwZDlkNzMyYjI2NzRjZGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEyLTA2LTE1ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisg
ICAgICAgIFVzZSBJbnRTaXplIGluIFJlbmRlckxheWVyIHRvIHJlcHJlc2VudCBzY3JvbGwgb2Zm
c2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkx
NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdl
YlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6Z2VzdHVyZSk6CisgICAgICAgIFVwZGF0ZWQg
dG8gcGFzcyBhbiBJbnRTaXplIHRvIHNjcm9sbEJ5UmVjdXJzaXZlbHkuCisKIDIwMTItMDYtMTEg
IEthdXN0dWJoIEF0cmF3YWxrYXIgIDxrYXVzdHViaEBtb3Rvcm9sYS5jb20+CiAKICAgICAgICAg
W0RSVF0gTFRDOjogY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQoKSBjb3VsZCBiZSBtb3ZlZCB0
byBJbnRlcm5hbHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTY1ZTA2ODUwNmRlYjA1MGE0Yjc4MGY5OTA5NmFl
ZDJhYmI1ZjliOS4uMDM2Zjk1NGVhMTkyNjE4MTY1ZTgxMDI0ZDk2MTEyNzljYmZkMmFhNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA2LTE1ICBKdWxpZW4gQ2hhZmZyYWl4ICA8
amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBJbnRTaXplIGluIFJlbmRlckxh
eWVyIHRvIHJlcHJlc2VudCBzY3JvbGwgb2Zmc2V0cworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODkxNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdp
bi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omdlc3R1cmVEaWRTY3JvbGwpOgorICAg
ICAgICBVcGRhdGVkIHRvIHBhc3MgYW4gSW50U2l6ZSB0byBzY3JvbGxCeVJlY3Vyc2l2ZWx5Lgor
CiAyMDEyLTA2LTE1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5j
b20+CiAKICAgICAgICAgW0VGTF1bV0syXSBBZGQgdGl0bGUgc3VwcG9ydCB0byBFd2tfVmlldwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAKaW5kZXggZmQ4YTY0NDU3MWVkNjc5ZmMxN2U4MTdiYzI1YjllZWZl
OGFhOGZmNi4uYmE0MWQyMWQ1ZjVjZTRhZDUxMTQ2YTkyNmQ1NDc4MjUzYzIyZWI0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3QuY3BwCkBAIC00MDEzLDcgKzQwMTMsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNjcm9sbFRvKGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gYm94LT5sYXllcigpOwotICAg
IGxheWVyLT5zY3JvbGxUb09mZnNldChwb2ludC54KCksIHBvaW50LnkoKSwgUmVuZGVyTGF5ZXI6
OlNjcm9sbE9mZnNldENsYW1wZWQpOworICAgIGxheWVyLT5zY3JvbGxUb09mZnNldCh0b1NpemUo
cG9pbnQpLCBSZW5kZXJMYXllcjo6U2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxk
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvVGV4dEZpZWxkSW5wdXRUeXBlLmNw
cAppbmRleCA4MTg5MTQ0YTk5MzgwYTU4ZDBjOGE1YTc3YWNmMGI2OGMwZTBmNDhlLi41M2FlMmFi
ODhlZDQ3ZmJlNjhlNThkYWQwMDRmMjExNDg2ZjgwZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9UZXh0RmllbGRJbnB1dFR5cGUuY3BwCkBAIC0xNzQsOCArMTc0LDEwIEBAIHZvaWQgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpmb3J3YXJkRXZlbnQoRXZlbnQqIGV2ZW50KQogICAgICAgICBSZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUqIHJlbmRlclRleHRDb250cm9sID0gdG9SZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmUoZWxlbWVudCgpLT5yZW5kZXJlcigpKTsKICAgICAgICAgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmJsdXJFdmVudCkgewogICAgICAgICAgICAgaWYgKFJl
bmRlckJveCogaW5uZXJUZXh0UmVuZGVyZXIgPSBpbm5lclRleHRFbGVtZW50KCktPnJlbmRlckJv
eCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBpbm5lckxheWVyID0gaW5u
ZXJUZXh0UmVuZGVyZXItPmxheWVyKCkpCi0gICAgICAgICAgICAgICAgICAgIGlubmVyTGF5ZXIt
PnNjcm9sbFRvT2Zmc2V0KCFyZW5kZXJUZXh0Q29udHJvbC0+c3R5bGUoKS0+aXNMZWZ0VG9SaWdo
dERpcmVjdGlvbigpID8gaW5uZXJMYXllci0+c2Nyb2xsV2lkdGgoKSA6IDAsIDAsIFJlbmRlckxh
eWVyOjpTY3JvbGxPZmZzZXRDbGFtcGVkKTsKKyAgICAgICAgICAgICAgICBpZiAoUmVuZGVyTGF5
ZXIqIGlubmVyTGF5ZXIgPSBpbm5lclRleHRSZW5kZXJlci0+bGF5ZXIoKSkgeworICAgICAgICAg
ICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldCghcmVuZGVyVGV4dENvbnRyb2wtPnN0eWxl
KCktPmlzTGVmdFRvUmlnaHREaXJlY3Rpb24oKSA/IGlubmVyTGF5ZXItPnNjcm9sbFdpZHRoKCkg
OiAwLCAwKTsKKyAgICAgICAgICAgICAgICAgICAgaW5uZXJMYXllci0+c2Nyb2xsVG9PZmZzZXQo
c2Nyb2xsT2Zmc2V0LCBSZW5kZXJMYXllcjo6U2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CisgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICByZW5kZXJUZXh0Q29udHJv
bC0+Y2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NwYXRpYWxOYXZpZ2F0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3Bh
dGlhbE5hdmlnYXRpb24uY3BwCmluZGV4IDZkY2I4MTRhMzMxYTcxNGU5MzAwZDYzMzA3MTcxZjJi
Y2I2MzFmOTguLjQxNTBiNjRmMzk2NWQ1NjIwNGZmNzk2YjFkYzI5MmEzYzkxZWM4ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU3BhdGlhbE5hdmlnYXRpb24uY3BwCkBAIC0zOTksNyArMzk5LDcg
QEAgYm9vbCBzY3JvbGxJbkRpcmVjdGlvbihOb2RlKiBjb250YWluZXIsIEZvY3VzRGlyZWN0aW9u
IGRpcmVjdGlvbikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogCi0gICAg
ICAgIGNvbnRhaW5lci0+cmVuZGVyQm94KCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVj
dXJzaXZlbHkoZHgsIGR5KTsKKyAgICAgICAgY29udGFpbmVyLT5yZW5kZXJCb3goKS0+ZW5jbG9z
aW5nTGF5ZXIoKS0+c2Nyb2xsQnlSZWN1cnNpdmVseShJbnRTaXplKGR4LCBkeSkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwCmluZGV4IGVjMzYzMmNiMjMzNjMxNTkwYzA1OWEyOTA5NzE5NGYzOGEwNDkxYTEuLjFk
MmZjYzI3M2Y1NGVjYzY3NWM1NWJkZWM1M2RmMGRmZmUwZTM5YWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtODM4LDcgKzgzOCw3IEBAIHZvaWQgUmVuZGVy
TGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb24oKQogICAgICAgICAgICAgbG9jYWxQb2ludCArPSBj
b2x1bW5PZmZzZXQ7CiAgICAgICAgIH0KIAotICAgICAgICBMYXlvdXRTaXplIHNjcm9sbE9mZnNl
dCA9IHBhcmVudCgpLT5zY3JvbGxlZENvbnRlbnRPZmZzZXQoKTsKKyAgICAgICAgSW50U2l6ZSBz
Y3JvbGxPZmZzZXQgPSBwYXJlbnQoKS0+c2Nyb2xsZWRDb250ZW50T2Zmc2V0KCk7CiAgICAgICAg
IGxvY2FsUG9pbnQgLT0gc2Nyb2xsT2Zmc2V0OwogICAgIH0KICAgICAgICAgCkBAIC0xNTEzLDcg
KzE1MTMsMTIgQEAgc3RhdGljIGlubGluZSBpbnQgYWRqdXN0ZWRTY3JvbGxEZWx0YShpbnQgYmVn
aW5uaW5nRGVsdGEpIHsKICAgICByZXR1cm4gYWRqdXN0ZWREZWx0YTsKIH0KIAotdm9pZCBSZW5k
ZXJMYXllcjo6cGFuU2Nyb2xsRnJvbVBvaW50KGNvbnN0IExheW91dFBvaW50JiBzb3VyY2VQb2lu
dCkgCitzdGF0aWMgaW5saW5lIEludFNpemUgYWRqdXN0ZWRTY3JvbGxEZWx0YShjb25zdCBJbnRT
aXplJiBkZWx0YSkKK3sKKyAgICByZXR1cm4gSW50U2l6ZShhZGp1c3RlZFNjcm9sbERlbHRhKGRl
bHRhLndpZHRoKCkpLCBhZGp1c3RlZFNjcm9sbERlbHRhKGRlbHRhLmhlaWdodCgpKSk7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnBhblNjcm9sbEZyb21Qb2ludChjb25zdCBJbnRQb2ludCYgc291
cmNlUG9pbnQpCiB7CiAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVyZXIoKS0+ZnJhbWUoKTsKICAg
ICBpZiAoIWZyYW1lKQpAQCAtMTUyOCwyMCArMTUzMywxOSBAQCB2b2lkIFJlbmRlckxheWVyOjpw
YW5TY3JvbGxGcm9tUG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHNvdXJjZVBvaW50KQogICAgIGVs
c2UKICAgICAgICAgcHJldmlvdXNNb3VzZVBvc2l0aW9uID0gY3VycmVudE1vdXNlUG9zaXRpb247
CiAKLSAgICBpbnQgeERlbHRhID0gY3VycmVudE1vdXNlUG9zaXRpb24ueCgpIC0gc291cmNlUG9p
bnQueCgpOwotICAgIGludCB5RGVsdGEgPSBjdXJyZW50TW91c2VQb3NpdGlvbi55KCkgLSBzb3Vy
Y2VQb2ludC55KCk7CisgICAgSW50U2l6ZSBkZWx0YSA9IGN1cnJlbnRNb3VzZVBvc2l0aW9uIC0g
c291cmNlUG9pbnQ7CiAKLSAgICBpZiAoYWJzKHhEZWx0YSkgPD0gU2Nyb2xsVmlldzo6bm9QYW5T
Y3JvbGxSYWRpdXMpIC8vIGF0IHRoZSBjZW50ZXIgd2UgbGV0IHRoZSBzcGFjZSBmb3IgdGhlIGlj
b24KLSAgICAgICAgeERlbHRhID0gMDsKLSAgICBpZiAoYWJzKHlEZWx0YSkgPD0gU2Nyb2xsVmll
dzo6bm9QYW5TY3JvbGxSYWRpdXMpCi0gICAgICAgIHlEZWx0YSA9IDA7CisgICAgaWYgKGFicyhk
ZWx0YS53aWR0aCgpKSA8PSBTY3JvbGxWaWV3Ojpub1BhblNjcm9sbFJhZGl1cykgLy8gYXQgdGhl
IGNlbnRlciB3ZSBsZXQgdGhlIHNwYWNlIGZvciB0aGUgaWNvbgorICAgICAgICBkZWx0YS5zZXRX
aWR0aCgwKTsKKyAgICBpZiAoYWJzKGRlbHRhLmhlaWdodCgpKSA8PSBTY3JvbGxWaWV3Ojpub1Bh
blNjcm9sbFJhZGl1cykKKyAgICAgICAgZGVsdGEuc2V0SGVpZ2h0KDApOwogCi0gICAgc2Nyb2xs
QnlSZWN1cnNpdmVseShhZGp1c3RlZFNjcm9sbERlbHRhKHhEZWx0YSksIGFkanVzdGVkU2Nyb2xs
RGVsdGEoeURlbHRhKSwgU2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CisgICAgc2Nyb2xsQnlSZWN1cnNp
dmVseShhZGp1c3RlZFNjcm9sbERlbHRhKGRlbHRhKSwgU2Nyb2xsT2Zmc2V0Q2xhbXBlZCk7CiB9
CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoaW50IHhEZWx0YSwgaW50
IHlEZWx0YSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXApCit2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxCeVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmIGRlbHRhLCBTY3JvbGxPZmZzZXRDbGFt
cGluZyBjbGFtcCkKIHsKLSAgICBpZiAoIXhEZWx0YSAmJiAheURlbHRhKQorICAgIGlmIChkZWx0
YS5pc1plcm8oKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCByZXN0cmljdGVkQnlMaW5l
Q2xhbXAgPSBmYWxzZTsKQEAgLTE1NDksMTYgKzE1NTMsMTQgQEAgdm9pZCBSZW5kZXJMYXllcjo6
c2Nyb2xsQnlSZWN1cnNpdmVseShpbnQgeERlbHRhLCBpbnQgeURlbHRhLCBTY3JvbGxPZmZzZXRD
bGFtcGkKICAgICAgICAgcmVzdHJpY3RlZEJ5TGluZUNsYW1wID0gIXJlbmRlcmVyKCktPnBhcmVu
dCgpLT5zdHlsZSgpLT5saW5lQ2xhbXAoKS5pc05vbmUoKTsKIAogICAgIGlmIChyZW5kZXJlcigp
LT5oYXNPdmVyZmxvd0NsaXAoKSAmJiAhcmVzdHJpY3RlZEJ5TGluZUNsYW1wKSB7Ci0gICAgICAg
IGludCBuZXdPZmZzZXRYID0gc2Nyb2xsWE9mZnNldCgpICsgeERlbHRhOwotICAgICAgICBpbnQg
bmV3T2Zmc2V0WSA9IHNjcm9sbFlPZmZzZXQoKSArIHlEZWx0YTsKLSAgICAgICAgc2Nyb2xsVG9P
ZmZzZXQobmV3T2Zmc2V0WCwgbmV3T2Zmc2V0WSwgY2xhbXApOworICAgICAgICBJbnRTaXplIG5l
d1Njcm9sbE9mZnNldCA9IHNjcm9sbE9mZnNldCgpICsgZGVsdGE7CisgICAgICAgIHNjcm9sbFRv
T2Zmc2V0KG5ld1Njcm9sbE9mZnNldCwgY2xhbXApOwogCiAgICAgICAgIC8vIElmIHRoaXMgbGF5
ZXIgY2FuJ3QgZG8gdGhlIHNjcm9sbCB3ZSBhc2sgdGhlIG5leHQgbGF5ZXIgdXAgdGhhdCBjYW4g
c2Nyb2xsIHRvIHRyeQotICAgICAgICBpbnQgbGVmdFRvU2Nyb2xsWCA9IG5ld09mZnNldFggLSBz
Y3JvbGxYT2Zmc2V0KCk7Ci0gICAgICAgIGludCBsZWZ0VG9TY3JvbGxZID0gbmV3T2Zmc2V0WSAt
IHNjcm9sbFlPZmZzZXQoKTsKLSAgICAgICAgaWYgKChsZWZ0VG9TY3JvbGxYIHx8IGxlZnRUb1Nj
cm9sbFkpICYmIHJlbmRlcmVyKCktPnBhcmVudCgpKSB7CisgICAgICAgIEludFNpemUgcmVtYWlu
aW5nU2Nyb2xsT2Zmc2V0ID0gbmV3U2Nyb2xsT2Zmc2V0IC0gc2Nyb2xsT2Zmc2V0KCk7CisgICAg
ICAgIGlmICghcmVtYWluaW5nU2Nyb2xsT2Zmc2V0LmlzWmVybygpICYmIHJlbmRlcmVyKCktPnBh
cmVudCgpKSB7CiAgICAgICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIHNjcm9sbGFibGVMYXllciA9
IGVuY2xvc2luZ1Njcm9sbGFibGVMYXllcigpKQotICAgICAgICAgICAgICAgIHNjcm9sbGFibGVM
YXllci0+c2Nyb2xsQnlSZWN1cnNpdmVseShsZWZ0VG9TY3JvbGxYLCBsZWZ0VG9TY3JvbGxZKTsK
KyAgICAgICAgICAgICAgICBzY3JvbGxhYmxlTGF5ZXItPnNjcm9sbEJ5UmVjdXJzaXZlbHkocmVt
YWluaW5nU2Nyb2xsT2Zmc2V0KTsKIAogICAgICAgICAgICAgRnJhbWUqIGZyYW1lID0gcmVuZGVy
ZXIoKS0+ZnJhbWUoKTsKICAgICAgICAgICAgIGlmIChmcmFtZSkKQEAgLTE1NjcsMjkgKzE1Njks
MzAgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsQnlSZWN1cnNpdmVseShpbnQgeERlbHRhLCBp
bnQgeURlbHRhLCBTY3JvbGxPZmZzZXRDbGFtcGkKICAgICB9IGVsc2UgaWYgKHJlbmRlcmVyKCkt
PnZpZXcoKS0+ZnJhbWVWaWV3KCkpIHsKICAgICAgICAgLy8gSWYgd2UgYXJlIGhlcmUsIHdlIHdl
cmUgY2FsbGVkIG9uIGEgcmVuZGVyZXIgdGhhdCBjYW4gYmUgcHJvZ3JhbW1hdGljYWxseSBzY3Jv
bGxlZCwgYnV0IGRvZXNuJ3QKICAgICAgICAgLy8gaGF2ZSBhbiBvdmVyZmxvdyBjbGlwLiBXaGlj
aCBtZWFucyB0aGF0IGl0IGlzIGEgZG9jdW1lbnQgbm9kZSB0aGF0IGNhbiBiZSBzY3JvbGxlZC4K
LSAgICAgICAgcmVuZGVyZXIoKS0+dmlldygpLT5mcmFtZVZpZXcoKS0+c2Nyb2xsQnkoSW50U2l6
ZSh4RGVsdGEsIHlEZWx0YSkpOworICAgICAgICByZW5kZXJlcigpLT52aWV3KCktPmZyYW1lVmll
dygpLT5zY3JvbGxCeShkZWx0YSk7CiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBkaWRuJ3Qgc2Ny
b2xsIHRoZSB3aG9sZSB3YXksIGRvIHdlIHdhbnQgdG8gdHJ5IGxvb2tpbmcgYXQgdGhlIGZyYW1l
cyBvd25lckVsZW1lbnQ/IAogICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjgyMzcKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRv
T2Zmc2V0KGludCB4LCBpbnQgeSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXApCitJbnRTaXpl
IFJlbmRlckxheWVyOjpjbGFtcFNjcm9sbE9mZnNldChjb25zdCBJbnRTaXplJiBzY3JvbGxPZmZz
ZXQpIGNvbnN0CiB7Ci0gICAgaWYgKGNsYW1wID09IFNjcm9sbE9mZnNldENsYW1wZWQpIHsKLSAg
ICAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKLSAgICAgICAgaWYgKCFib3gpCi0g
ICAgICAgICAgICByZXR1cm47CisgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKKyAg
ICBBU1NFUlQoYm94KTsKIAotICAgICAgICBpbnQgbWF4WCA9IHNjcm9sbFdpZHRoKCkgLSBib3gt
PmNsaWVudFdpZHRoKCk7Ci0gICAgICAgIGludCBtYXhZID0gc2Nyb2xsSGVpZ2h0KCkgLSBib3gt
PmNsaWVudEhlaWdodCgpOworICAgIGludCBtYXhYID0gc2Nyb2xsV2lkdGgoKSAtIGJveC0+Y2xp
ZW50V2lkdGgoKTsKKyAgICBpbnQgbWF4WSA9IHNjcm9sbEhlaWdodCgpIC0gYm94LT5jbGllbnRI
ZWlnaHQoKTsKIAotICAgICAgICB4ID0gbWluKG1heCh4LCAwKSwgbWF4WCk7Ci0gICAgICAgIHkg
PSBtaW4obWF4KHksIDApLCBtYXhZKTsKLSAgICB9CisgICAgaW50IHggPSBtaW4obWF4KHNjcm9s
bE9mZnNldC53aWR0aCgpLCAwKSwgbWF4WCk7CisgICAgaW50IHkgPSBtaW4obWF4KHNjcm9sbE9m
ZnNldC5oZWlnaHQoKSwgMCksIG1heFkpOworICAgIHJldHVybiBJbnRTaXplKHgsIHkpOworfQog
Ci0gICAgSW50UG9pbnQgbmV3U2Nyb2xsT2Zmc2V0KHgsIHkpOwotICAgIGlmIChuZXdTY3JvbGxP
ZmZzZXQgIT0gTGF5b3V0UG9pbnQoc2Nyb2xsWE9mZnNldCgpLCBzY3JvbGxZT2Zmc2V0KCkpKQot
ICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24obmV3U2Nyb2xsT2Zmc2V0KTsK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFRvT2Zmc2V0KGNvbnN0IEludFNpemUmIHNjcm9sbE9m
ZnNldCwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXApCit7CisgICAgSW50U2l6ZSBuZXdTY3Jv
bGxPZmZzZXQgPSBjbGFtcCA9PSBTY3JvbGxPZmZzZXRDbGFtcGVkID8gY2xhbXBTY3JvbGxPZmZz
ZXQoc2Nyb2xsT2Zmc2V0KSA6IHNjcm9sbE9mZnNldDsKKyAgICBpZiAobmV3U2Nyb2xsT2Zmc2V0
ICE9IHRoaXMtPnNjcm9sbE9mZnNldCgpKQorICAgICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRB
bmltYXRpb24odG9Qb2ludChuZXdTY3JvbGxPZmZzZXQpKTsKIH0KIAogdm9pZCBSZW5kZXJMYXll
cjo6c2Nyb2xsVG8oaW50IHgsIGludCB5KQpAQCAtMTY4NCwyMyArMTY4NywxNCBAQCB2b2lkIFJl
bmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGNv
bnN0IFNjcm9sbEFsaWdubQogICAgICAgICBMYXlvdXRSZWN0IGV4cG9zZVJlY3QgPSBMYXlvdXRS
ZWN0KHJlY3QueCgpICsgc2Nyb2xsWE9mZnNldCgpLCByZWN0LnkoKSArIHNjcm9sbFlPZmZzZXQo
KSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKTsKICAgICAgICAgTGF5b3V0UmVjdCByID0g
Z2V0UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBleHBvc2VSZWN0LCBhbGlnblgsIGFsaWduWSk7
CiAgICAgICAgIAotICAgICAgICBMYXlvdXRVbml0IGFkanVzdGVkWCA9IHIueCgpIC0gYWJzUG9z
LngoKTsKLSAgICAgICAgTGF5b3V0VW5pdCBhZGp1c3RlZFkgPSByLnkoKSAtIGFic1Bvcy55KCk7
Ci0gICAgICAgIC8vIEFkanVzdCBvZmZzZXRzIGlmIHRoZXkncmUgb3V0c2lkZSBvZiB0aGUgYWxs
b3dhYmxlIHJhbmdlLgotICAgICAgICBhZGp1c3RlZFggPSBtYXg8TGF5b3V0VW5pdD4oMCwgbWlu
KHNjcm9sbFdpZHRoKCkgLSBsYXllckJvdW5kcy53aWR0aCgpLCBhZGp1c3RlZFgpKTsKLSAgICAg
ICAgYWRqdXN0ZWRZID0gbWF4PExheW91dFVuaXQ+KDAsIG1pbihzY3JvbGxIZWlnaHQoKSAtIGxh
eWVyQm91bmRzLmhlaWdodCgpLCBhZGp1c3RlZFkpKTsKLQotICAgICAgICBpbnQgeE9mZnNldCA9
IHJvdW5kVG9JbnQoYWRqdXN0ZWRYKTsKLSAgICAgICAgaW50IHlPZmZzZXQgPSByb3VuZFRvSW50
KGFkanVzdGVkWSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoeE9mZnNldCAhPSBzY3JvbGxYT2Zm
c2V0KCkgfHwgeU9mZnNldCAhPSBzY3JvbGxZT2Zmc2V0KCkpIHsKLSAgICAgICAgICAgIGludCBk
aWZmWCA9IHNjcm9sbFhPZmZzZXQoKTsKLSAgICAgICAgICAgIGludCBkaWZmWSA9IHNjcm9sbFlP
ZmZzZXQoKTsKLSAgICAgICAgICAgIHNjcm9sbFRvT2Zmc2V0KHhPZmZzZXQsIHlPZmZzZXQpOwot
ICAgICAgICAgICAgZGlmZlggPSBzY3JvbGxYT2Zmc2V0KCkgLSBkaWZmWDsKLSAgICAgICAgICAg
IGRpZmZZID0gc2Nyb2xsWU9mZnNldCgpIC0gZGlmZlk7Ci0gICAgICAgICAgICBuZXdSZWN0LnNl
dFgocmVjdC54KCkgLSBkaWZmWCk7Ci0gICAgICAgICAgICBuZXdSZWN0LnNldFkocmVjdC55KCkg
LSBkaWZmWSk7CisgICAgICAgIGludCByb3VuZGVkQWRqdXN0ZWRYID0gcm91bmRUb0ludChyLngo
KSAtIGFic1Bvcy54KCkpOworICAgICAgICBpbnQgcm91bmRlZEFkanVzdGVkWSA9IHJvdW5kVG9J
bnQoci55KCkgLSBhYnNQb3MueSgpKTsKKyAgICAgICAgSW50U2l6ZSBjbGFtcGVkU2Nyb2xsT2Zm
c2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoSW50U2l6ZShyb3VuZGVkQWRqdXN0ZWRYLCByb3VuZGVk
QWRqdXN0ZWRZKSk7CisgICAgICAgIGlmIChjbGFtcGVkU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9m
ZnNldCgpKSB7CisgICAgICAgICAgICBJbnRTaXplIG9sZFNjcm9sbE9mZnNldCA9IHNjcm9sbE9m
ZnNldCgpOworICAgICAgICAgICAgc2Nyb2xsVG9PZmZzZXQoY2xhbXBlZFNjcm9sbE9mZnNldCk7
CisgICAgICAgICAgICBJbnRTaXplIHNjcm9sbE9mZnNldERpZmZlcmVuY2UgPSBzY3JvbGxPZmZz
ZXQoKSAtIG9sZFNjcm9sbE9mZnNldDsKKyAgICAgICAgICAgIG5ld1JlY3QubW92ZSgtc2Nyb2xs
T2Zmc2V0RGlmZmVyZW5jZSk7CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFwYXJlbnRMYXll
ciAmJiByZW5kZXJlcigpLT5pc0JveCgpICYmIHJlbmRlckJveCgpLT5jYW5CZVByb2dyYW1hdGlj
YWxseVNjcm9sbGVkKCkpIHsKICAgICAgICAgaWYgKGZyYW1lVmlldykgewpAQCAtMjU1MywyMyAr
MjU0NywyMiBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQo
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Njcm9sbERpbWVuc2lvbnNEaXJ0eSA9IHRydWU7
Ci0gICAgSW50U2l6ZSBzY3JvbGxPZmZzZXRPcmlnaW5hbChzY3JvbGxYT2Zmc2V0KCksIHNjcm9s
bFlPZmZzZXQoKSk7CisgICAgSW50U2l6ZSBvcmlnaW5hbFNjcm9sbE9mZnNldCA9IHNjcm9sbE9m
ZnNldCgpOwogCiAgICAgY29tcHV0ZVNjcm9sbERpbWVuc2lvbnMoKTsKIAogICAgIGlmIChib3gt
PnN0eWxlKCktPm92ZXJmbG93WCgpICE9IE9NQVJRVUVFKSB7CiAgICAgICAgIC8vIExheW91dCBt
YXkgY2F1c2UgdXMgdG8gYmUgYXQgYW4gaW52YWxpZCBzY3JvbGwgcG9zaXRpb24uIEluIHRoaXMg
Y2FzZSB3ZSBuZWVkCiAgICAgICAgIC8vIHRvIHB1bGwgb3VyIHNjcm9sbCBvZmZzZXRzIGJhY2sg
dG8gdGhlIG1heCAob3IgcHVzaCB0aGVtIHVwIHRvIHRoZSBtaW4pLgotICAgICAgICBpbnQgbmV3
WCA9IG1heCgwLCBtaW48aW50PihzY3JvbGxYT2Zmc2V0KCksIHNjcm9sbFdpZHRoKCkgLSBib3gt
PmNsaWVudFdpZHRoKCkpKTsKLSAgICAgICAgaW50IG5ld1kgPSBtYXgoMCwgbWluPGludD4oc2Ny
b2xsWU9mZnNldCgpLCBzY3JvbGxIZWlnaHQoKSAtIGJveC0+Y2xpZW50SGVpZ2h0KCkpKTsKLSAg
ICAgICAgaWYgKG5ld1ggIT0gc2Nyb2xsWE9mZnNldCgpIHx8IG5ld1kgIT0gc2Nyb2xsWU9mZnNl
dCgpKQotICAgICAgICAgICAgc2Nyb2xsVG9PZmZzZXQobmV3WCwgbmV3WSk7CisgICAgICAgIElu
dFNpemUgY2xhbXBlZFNjcm9sbE9mZnNldCA9IGNsYW1wU2Nyb2xsT2Zmc2V0KHNjcm9sbE9mZnNl
dCgpKTsKKyAgICAgICAgaWYgKGNsYW1wZWRTY3JvbGxPZmZzZXQgIT0gc2Nyb2xsT2Zmc2V0KCkp
CisgICAgICAgICAgICBzY3JvbGxUb09mZnNldChjbGFtcGVkU2Nyb2xsT2Zmc2V0KTsKICAgICB9
CiAKICAgICB1cGRhdGVTY3JvbGxiYXJzQWZ0ZXJMYXlvdXQoKTsKIAotICAgIGlmIChzY3JvbGxP
ZmZzZXRPcmlnaW5hbCAhPSBzY3JvbGxPZmZzZXQoKSkKLSAgICAgICAgc2Nyb2xsVG9PZmZzZXRX
aXRob3V0QW5pbWF0aW9uKEludFBvaW50KHNjcm9sbFhPZmZzZXQoKSwgc2Nyb2xsWU9mZnNldCgp
KSk7CisgICAgaWYgKG9yaWdpbmFsU2Nyb2xsT2Zmc2V0ICE9IHNjcm9sbE9mZnNldCgpKQorICAg
ICAgICBzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24odG9Qb2ludChzY3JvbGxPZmZzZXQo
KSkpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjpwYWludE92ZXJmbG93Q29udHJvbHMoR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IElu
dFJlY3QmIGRhbWFnZVJlY3QsIGJvb2wgcGFpbnRpbmdPdmVybGF5Q29udHJvbHMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCmluZGV4IDVhNWUyNDQ2ZDQ1MTI5ODk1ZGQwOGZk
MzQwMjE0NDJkNDhkM2RmYTkuLmE0N2E2MTc0NmIyODdmZmY3MThhYTlhMzk0NGQ0YTZjM2JmNWRm
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCkBAIC0zMDgsNyArMzA4
LDcgQEAgcHVibGljOgogICAgIGludCBzY3JvbGxXaWR0aCgpIGNvbnN0OwogICAgIGludCBzY3Jv
bGxIZWlnaHQoKSBjb25zdDsKIAotICAgIHZvaWQgcGFuU2Nyb2xsRnJvbVBvaW50KGNvbnN0IExh
eW91dFBvaW50Jik7CisgICAgdm9pZCBwYW5TY3JvbGxGcm9tUG9pbnQoY29uc3QgSW50UG9pbnQm
KTsKIAogICAgIGVudW0gU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgewogICAgICAgICBTY3JvbGxPZmZz
ZXRVbmNsYW1wZWQsCkBAIC0zMTYsMTYgKzMxNiwxNSBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAg
IC8vIFNjcm9sbGluZyBtZXRob2RzIGZvciBsYXllcnMgdGhhdCBjYW4gc2Nyb2xsIHRoZWlyIG92
ZXJmbG93LgotICAgIHZvaWQgc2Nyb2xsQnlSZWN1cnNpdmVseShpbnQgeERlbHRhLCBpbnQgeURl
bHRhLCBTY3JvbGxPZmZzZXRDbGFtcGluZyA9IFNjcm9sbE9mZnNldFVuY2xhbXBlZCk7CisgICAg
dm9pZCBzY3JvbGxCeVJlY3Vyc2l2ZWx5KGNvbnN0IEludFNpemUmLCBTY3JvbGxPZmZzZXRDbGFt
cGluZyA9IFNjcm9sbE9mZnNldFVuY2xhbXBlZCk7CisgICAgdm9pZCBzY3JvbGxUb09mZnNldChj
b25zdCBJbnRTaXplJiwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgPSBTY3JvbGxPZmZzZXRVbmNsYW1w
ZWQpOworICAgIHZvaWQgc2Nyb2xsVG9YT2Zmc2V0KGludCB4LCBTY3JvbGxPZmZzZXRDbGFtcGlu
ZyBjbGFtcCA9IFNjcm9sbE9mZnNldFVuY2xhbXBlZCkgeyBzY3JvbGxUb09mZnNldChJbnRTaXpl
KHgsIHNjcm9sbFlPZmZzZXQoKSksIGNsYW1wKTsgfQorICAgIHZvaWQgc2Nyb2xsVG9ZT2Zmc2V0
KGludCB5LCBTY3JvbGxPZmZzZXRDbGFtcGluZyBjbGFtcCA9IFNjcm9sbE9mZnNldFVuY2xhbXBl
ZCkgeyBzY3JvbGxUb09mZnNldChJbnRTaXplKHNjcm9sbFhPZmZzZXQoKSwgeSksIGNsYW1wKTsg
fQogCiAgICAgaW50IHNjcm9sbFhPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9mZnNl
dC53aWR0aCgpICsgc2Nyb2xsT3JpZ2luKCkueCgpOyB9CiAgICAgaW50IHNjcm9sbFlPZmZzZXQo
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9mZnNldC5oZWlnaHQoKSArIHNjcm9sbE9yaWdpbigp
LnkoKTsgfQogICAgIEludFNpemUgc2Nyb2xsT2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gSW50U2l6
ZShzY3JvbGxYT2Zmc2V0KCksIHNjcm9sbFlPZmZzZXQoKSk7IH0KIAotICAgIHZvaWQgc2Nyb2xs
VG9PZmZzZXQoaW50LCBpbnQsIFNjcm9sbE9mZnNldENsYW1waW5nID0gU2Nyb2xsT2Zmc2V0VW5j
bGFtcGVkKTsKLSAgICB2b2lkIHNjcm9sbFRvWE9mZnNldChpbnQgeCwgU2Nyb2xsT2Zmc2V0Q2xh
bXBpbmcgY2xhbXAgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQpIHsgc2Nyb2xsVG9PZmZzZXQoeCwg
c2Nyb2xsWU9mZnNldCgpLCBjbGFtcCk7IH0KLSAgICB2b2lkIHNjcm9sbFRvWU9mZnNldChpbnQg
eSwgU2Nyb2xsT2Zmc2V0Q2xhbXBpbmcgY2xhbXAgPSBTY3JvbGxPZmZzZXRVbmNsYW1wZWQpIHsg
c2Nyb2xsVG9PZmZzZXQoc2Nyb2xsWE9mZnNldCgpLCB5LCBjbGFtcCk7IH0KLQogICAgIHZvaWQg
c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0JiwgY29uc3QgU2Nyb2xsQWxpZ25t
ZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZKTsKIAogICAgIExheW91
dFJlY3QgZ2V0UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QmIHZpc2libGVSZWN0LCBjb25z
dCBMYXlvdXRSZWN0JiBleHBvc2VSZWN0LCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkpOwpAQCAtNjc2LDYgKzY3NSw4IEBAIHByaXZh
dGU6CiAgICAgZnJpZW5kIEludFNpemUgUmVuZGVyQm94OjpzY3JvbGxlZENvbnRlbnRPZmZzZXQo
KSBjb25zdDsKICAgICBJbnRTaXplIHNjcm9sbGVkQ29udGVudE9mZnNldCgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsT2Zmc2V0OyB9CiAKKyAgICBJbnRTaXplIGNsYW1wU2Nyb2xsT2Zmc2V0KGNv
bnN0IEludFNpemUmKSBjb25zdDsKKwogICAgIC8vIFRoZSBub3JtYWwgb3BlcmF0b3IgbmV3IGlz
IGRpc2FsbG93ZWQgb24gYWxsIHJlbmRlciBvYmplY3RzLgogICAgIHZvaWQqIG9wZXJhdG9yIG5l
dyhzaXplX3QpIHRocm93KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNYXJxdWVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNYXJx
dWVlLmNwcAppbmRleCA3Y2I2OWU5MjhiNGYyYjBmMjgyMDc0ZGJjNWNiMDhiMGE0ZjEyMmNjLi41
NGQzMjczZDQ1ZGJmYmJkN2U1ZTYwNWQwNDgxZmZiNGY4MDk1OTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWFycXVlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCkBAIC0xNjcsOSArMTY3LDkgQEAgdm9pZCBS
ZW5kZXJNYXJxdWVlOjpzdGFydCgpCiAKICAgICBpZiAoIW1fc3VzcGVuZGVkICYmICFtX3N0b3Bw
ZWQpIHsKICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbCgpKQotICAgICAgICAgICAgbV9sYXllci0+
c2Nyb2xsVG9PZmZzZXQobV9zdGFydCwgMCk7CisgICAgICAgICAgICBtX2xheWVyLT5zY3JvbGxU
b09mZnNldChJbnRTaXplKG1fc3RhcnQsIDApKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAg
bV9sYXllci0+c2Nyb2xsVG9PZmZzZXQoMCwgbV9zdGFydCk7CisgICAgICAgICAgICBtX2xheWVy
LT5zY3JvbGxUb09mZnNldChJbnRTaXplKDAsIG1fc3RhcnQpKTsKICAgICB9CiAgICAgZWxzZSB7
CiAgICAgICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0Fw
aS9XZWJQYWdlLmNwcAppbmRleCA5ZTc3Y2RhZTIzNjNhODdjN2YwMGI0Y2NiZjY0NzUyNDhmYTEz
NzNjLi5iMDQzY2NlYTY4YjJkOGM1ZDY4NWUzZDRkYjQ2MTU5OTJiODhhNzAxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKQEAgLTQzNTEsNyArNDM1MSw3IEBAIGJv
b2wgV2ViUGFnZVByaXZhdGU6OnNjcm9sbFJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIs
IGNvbnN0IEludFNpemUmIGRlbHRhCiAgICAgICAgIGlmICghbGF5ZXJEZWx0YS5pc1plcm8oKSkg
ewogICAgICAgICAgICAgbV9pblJlZ2lvblNjcm9sbFN0YXJ0aW5nTm9kZSA9IGVuY2xvc2luZ0xh
eWVyTm9kZShsYXllcik7CiAgICAgICAgICAgICBJbnRQb2ludCBuZXdPZmZzZXQgPSBjdXJyZW50
T2Zmc2V0ICsgbGF5ZXJEZWx0YTsKLSAgICAgICAgICAgIGxheWVyLT5zY3JvbGxUb09mZnNldChu
ZXdPZmZzZXQueCgpLCBuZXdPZmZzZXQueSgpKTsKKyAgICAgICAgICAgIGxheWVyLT5zY3JvbGxU
b09mZnNldCh0b1NpemUobmV3T2Zmc2V0KSk7CiAgICAgICAgICAgICByZW5kZXJlci0+cmVwYWlu
dCh0cnVlKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCmluZGV4IGNjMmRmMzI5YjdkM2E5NzRjODA4N2ZlYjAxZmViNzQyYjMzYzgyYjEuLjIx
NGUzNWZmMjMzNmUyODYwMmNlNzZiNDNjMGNhZTgwNjNhZjhhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCkBAIC0xNjUyLDcgKzE2NTIsNyBAQCBib29sIFdlYlZpZXc6Omdlc3R1cmUoV1BBUkFNIHdQ
YXJhbSwgTFBBUkFNIGxQYXJhbSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICAvLyBXZSBuZWdhdGUgaGVyZSBzaW5jZSBwYW5uaW5nIHVwIG1vdmVzIHRoZSBjb250ZW50IHVw
LCBidXQgbW92ZXMgdGhlIHNjcm9sbGJhciBkb3duLgotICAgICAgICBtX2dlc3R1cmVUYXJnZXRO
b2RlLT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KC1k
ZWx0YVgsIC1kZWx0YVkpOworICAgICAgICBtX2dlc3R1cmVUYXJnZXROb2RlLT5yZW5kZXJlcigp
LT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KEludFNpemUoLWRlbHRhWCwg
LWRlbHRhWSkpOwogICAgICAgICAgICAKICAgICAgICAgaWYgKCEoVXBkYXRlUGFubmluZ0ZlZWRi
YWNrUHRyKCkgJiYgQmVnaW5QYW5uaW5nRmVlZGJhY2tQdHIoKSAmJiBFbmRQYW5uaW5nRmVlZGJh
Y2tQdHIoKSkpIHsKICAgICAgICAgICAgIENsb3NlR2VzdHVyZUluZm9IYW5kbGVQdHIoKShnZXN0
dXJlSGFuZGxlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS93aW4vV2ViUGFnZVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwCmluZGV4IDE5Zjc2MGY2YTQzMTAwMWI2MmY5OTIwODE4YTZmMzU2
YmQzZjQzYzUuLjYyOTRmMDBkODhkZGEwNGJlNTI0MTA3YzZiZjY1OWJjOWU3MzBiYzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2lu
LmNwcApAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgV2ViUGFnZTo6Z2VzdHVyZURpZFNjcm9sbChj
b25zdCBJbnRTaXplJiBzaXplKQogICAgICAgICAgICAgdmVydGljYWxTY3JvbGxiYXIgPSB2aWV3
LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwogICAgIH0KIAotICAgIG1fZ2VzdHVyZVRhcmdldE5vZGUt
PnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCktPnNjcm9sbEJ5UmVjdXJzaXZlbHkoc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICBtX2dlc3R1cmVUYXJnZXROb2RlLT5yZW5kZXJl
cigpLT5lbmNsb3NpbmdMYXllcigpLT5zY3JvbGxCeVJlY3Vyc2l2ZWx5KHNpemUpOwogICAgIGJv
b2wgZ2VzdHVyZVJlYWNoZWRTY3JvbGxpbmdMaW1pdCA9IHZlcnRpY2FsU2Nyb2xsYmFyICYmIHNj
cm9sbGJhckF0VG9wT3JCb3R0b21PZkRvY3VtZW50KHZlcnRpY2FsU2Nyb2xsYmFyKTsKIAogICAg
IC8vIEZJWE1FOiBXZSByZWFsbHkgb25seSB3YW50IHRvIHVwZGF0ZSB0aGlzIHN0YXRlIGlmIHRo
ZSBzdGF0ZSB3YXMgdXBkYXRlZCB2aWEgc2Nyb2xsaW5nIHRoZSBtYWluIGZyYW1lLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>