<?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>189352</bug_id>
          
          <creation_ts>2018-09-06 08:05:45 -0700</creation_ts>
          <short_desc>Group options of scrollRectToVisible into a struct</short_desc>
          <delta_ts>2018-09-06 12:49:27 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>188043</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1457084</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-06 08:05:45 -0700</bug_when>
    <thetext>RenderLayer::scrollRectToVisible and RenderObject::scrollRectToVisible have several parameters to configure the type of scrolling. We could group them into a single struct to make easier to modify parameters in the future (e.g. add an ifdefed scroll behavior option in bug 188043). Maybe this could help too for bug 176454 and bug 161611.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457089</commentid>
    <comment_count>1</comment_count>
      <attachid>349027</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-06 08:29:04 -0700</bug_when>
    <thetext>Created attachment 349027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457100</commentid>
    <comment_count>2</comment_count>
      <attachid>349030</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2018-09-06 09:15:21 -0700</bug_when>
    <thetext>Created attachment 349030
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457189</commentid>
    <comment_count>3</comment_count>
      <attachid>349030</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 12:48:15 -0700</bug_when>
    <thetext>Comment on attachment 349030
Patch

Clearing flags on attachment: 349030

Committed r235749: &lt;https://trac.webkit.org/changeset/235749&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457190</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-06 12:48:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1457192</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-06 12:49:27 -0700</bug_when>
    <thetext>&lt;rdar://problem/44192485&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349027</attachid>
            <date>2018-09-06 08:29:04 -0700</date>
            <delta_ts>2018-09-06 09:15:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189352-20180906172902.patch</filename>
            <type>text/plain</type>
            <size>25224</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1Y2I2NzE3MmQ3MTUz
ZjI4ODgyYmNjNTViNjlhYjA5MTU1NmU5ZS4uYzNiYzgwMzkyZTgxOGYxMjI3OGYwMWNjMzczYjBh
NmU1NTcwNmViNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA5LTA2ICBGcmVk
ZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBHcm91cCBvcHRpb25zIG9m
IHNjcm9sbFJlY3RUb1Zpc2libGUgaW50byBhIHN0cnVjdAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg5MzUyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2li
bGUgYW5kIFJlbmRlck9iamVjdDo6c2Nyb2xsUmVjdFRvVmlzaWJsZSBoYXZlIHNldmVyYWwKKyAg
ICAgICAgcGFyYW1ldGVycyB0byBjb25maWd1cmUgdGhlIHR5cGUgb2Ygc2Nyb2xsaW5nLiBUaGlz
IHBhdGNoIGdyb3VwcyB0aGUgY29uc3Qgb3B0aW9ucyBpbnRvIGEKKyAgICAgICAgc2luZ2xlIHN0
cnVjdCB0byBtYWtlIGVhc2llciB0byBoYW5kbGUgdGhlbSBpbiB0aGUgZnV0dXJlLiBGb3IgZXhh
bXBsZSwgYW4gI2lmZGVmZWQgc2Nyb2xsCisgICAgICAgIGJlaGF2aW9yIG9wdGlvbiB3aWxsIGJl
IGFkZGVkIGluIGJ1ZyAxODgwNDMuIFRoaXMgcmVmYWN0b3JpbmcgY2FuIG1heWJlIGhlbHAgdG9v
IGZvciBvdGhlcgorICAgICAgICBzY3JvbGwgZXh0ZW5zaW9ucyAoZS5nLiBidWcgMTc2NDU0IGFu
ZCBidWcgMTYxNjExKS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGJlaGF2aW9yIHVuY2hhbmdl
ZC4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzY3JvbGxUb01ha2VWaXNpYmxl
IGNvbnN0KTogUGFzcyBvcHRpb25zIHZpYSBhIHN0cnVjdC4KKyAgICAgICAgKiBkb20vRWxlbWVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlldyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5vdFZpc2li
bGUpOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcDogSW5jbHVk
ZSBSZW5kZXJMYXllci5oIGluIGFsbCBXZWJLaXQgcG9ydHMgaW4gb3JkZXIgdG8gZGVmaW5lCisg
ICAgICAgIFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbik6IFBhc3Mgb3B0aW9ucyB2aWEgYSBzdHJ1Y3Qu
CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3OjpzY3JvbGxUb0ZvY3VzZWRFbGVtZW50SW50ZXJuYWwpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsVG9BbmNob3IpOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnNj
cm9sbFJlY3RUb1Zpc2libGUpOiBQYXNzIG9wdGlvbnMgdmlhIGEgc3RydWN0LiBOb3RlIHRoYXQK
KyAgICAgICAgYWJzb2x1dGVSZWN0IGFuZCBpbnNpZGVGaXhlZCBhcmUgbW9kaWZpZWQgaW4gdGhp
cyBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjphdXRvc2Nyb2xsKTog
UGFzcyBvcHRpb25zIHZpYSBhIHN0cnVjdC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaDogQWRkIFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zIGFuZCB1c2UgaXQgaW4gb3JkZXIg
dG8gcGFzcworICAgICAgICBzY3JvbGxSZWN0VG9WaXNpYmxlIG9wdGlvbnMuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmpl
Y3Q6OnNjcm9sbFJlY3RUb1Zpc2libGUpOiBQYXNzIG9wdGlvbnMgdmlhIGEgc3RydWN0CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOiBGb3J3YXJkLWRlY2xhcmUgU2Nyb2xsUmVj
dFRvVmlzaWJsZU9wdGlvbnMgYW5kIHVzZSBpbiBvcmRlciB0bworICAgICAgICBwYXNzIHNjcm9s
bFJlY3RUb1Zpc2libGUgb3B0aW9ucy4KKwogMjAxOC0wOS0wNCAgRnJlZGVyaWMgV2FuZyAgPGZ3
YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIGJhc2ljIHN1cHBvcnQgZm9yIFNjcm9sbElu
dG9WaWV3T3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDk4ODEzZTRlMzM3
Mzg3MTNkNmQ3MTJiN2IwYWY2ZjI1OWIxMjc1OWMuLmY5NTFiODdmMGVkMGFmNzY1OTM4ZWFlYjY2
ODkzNjM0MzUyMjNmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NCBAQAorMjAxOC0wOS0wNiAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgR3JvdXAgb3B0aW9ucyBvZiBzY3JvbGxSZWN0VG9WaXNpYmxlIGludG8gYSBzdHJ1Y3QK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM1Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmll
dy9XZWJGcmFtZS5tbToKKyAgICAgICAgKC1bV2ViRnJhbWUgX3Njcm9sbERPTVJhbmdlVG9WaXNp
YmxlOl0pOiBQYXNzIG9wdGlvbnMgdmlhIGEgc3RydWN0LgorICAgICAgICAoLVtXZWJGcmFtZSBf
c2Nyb2xsRE9NUmFuZ2VUb1Zpc2libGU6d2l0aEluc2V0Ol0pOiBEaXR0by4KKwogMjAxOC0wOS0w
NCAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIGJhc2lj
IHN1cHBvcnQgZm9yIFNjcm9sbEludG9WaWV3T3B0aW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggNjJmYjkyMDcx
YjI2MTRhYjQ0YTE5YjI3YmVjMjE1ODQ0MDU3ZDQ3MC4uNjFiZTVkNDFiMmMxNzgxZWVlMTkzZmVl
NzdkODgxOTM5NDk1N2VkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0yOTkyLDcgKzI5OTIsNyBAQCB2b2lkIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvTWFrZVZpc2libGUoKSBjb25zdAogICAgICAgICBw
YXJlbnRPYmplY3QoKS0+c2Nyb2xsVG9NYWtlVmlzaWJsZSgpOwogCiAgICAgaWYgKGF1dG8qIHJl
bmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKSkKLSAgICAgICAgcmVuZGVyZXItPnNjcm9sbFJlY3RU
b1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBib3VuZGluZ0JveFJlY3QoKSwg
ZmFsc2UsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgU2Nyb2xsQWxpZ25t
ZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
OjpZZXMpOworICAgICAgICByZW5kZXJlci0+c2Nyb2xsUmVjdFRvVmlzaWJsZShib3VuZGluZ0Jv
eFJlY3QoKSwgZmFsc2UsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJ
Zk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIH0pOwogfQogCiB2
b2lkIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvTWFrZVZpc2libGVXaXRoU3ViRm9jdXMo
Y29uc3QgSW50UmVjdCYgc3ViZm9jdXMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXgg
NmZhODZiMWE2M2M0NDJkMjY2ODYzMjViNzE2MWQ1NDJhMDA4N2E2My4uNDM5ZDkyZWYyNGQ1ZmIz
MTUzMzRmODhhOWUzNWJhZmFmNzRiYzY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjky
LDcgKzY5Miw3IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxW
YXJpYW50PGJvb2wsIFNjcm9sbEludG9WaWV3T3B0aW9ucz4+CiAKICAgICBTY3JvbGxBbGlnbm1l
bnQgYWxpZ25YID0gdG9TY3JvbGxBbGlnbm1lbnQob3B0aW9ucy5pbmxpbmVQb3NpdGlvbiwgZmFs
c2UpOwogICAgIFNjcm9sbEFsaWdubWVudCBhbGlnblkgPSB0b1Njcm9sbEFsaWdubWVudChvcHRp
b25zLmJsb2NrUG9zaXRpb24sIHRydWUpOwotICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zp
c2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRl
Rml4ZWQsIGFsaWduWCwgYWxpZ25ZLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpO
byk7CisgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywg
aW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhbGlnblgsIGFsaWdu
WSwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiB9CiAKIHZvaWQgRWxl
bWVudDo6c2Nyb2xsSW50b1ZpZXcoYm9vbCBhbGlnblRvVG9wKSAKQEAgLTcwNiw5ICs3MDYsOSBA
QCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCkKICAgICBMYXlv
dXRSZWN0IGFic29sdXRlQm91bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZp
bnNpZGVGaXhlZCk7CiAgICAgLy8gQWxpZ24gdG8gdGhlIHRvcCAvIGJvdHRvbSBhbmQgdG8gdGhl
IGNsb3Nlc3QgZWRnZS4KICAgICBpZiAoYWxpZ25Ub1RvcCkKLSAgICAgICAgcmVuZGVyZXIoKS0+
c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGFic29sdXRl
Qm91bmRzLCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVk
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9wQWx3YXlzLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2lu
U2Nyb2xsaW5nOjpObyk7CisgICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUo
YWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVh
bCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduVG9wQWx3YXlzLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsK
ICAgICBlbHNlCi0gICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0
aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIFNjcm9s
bEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkJv
dHRvbUFsd2F5cywgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAg
ICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGFic29sdXRlQm91bmRzLCBpbnNpZGVG
aXhlZCwgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxp
Z25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkJvdHRvbUFsd2F5cywgU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQpAQCAtNzIxLDkgKzcy
MSw5IEBAIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklm
TmVlZGVkKQogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJv
dW5kcyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogICAg
IGlmIChjZW50ZXJJZk5lZWRlZCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlz
aWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGFic29sdXRlQm91bmRzLCBpbnNpZGVG
aXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6
Ok5vKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJv
dW5kcywgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50
ZXJJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiAgICAg
ZWxzZQotICAgICAgICByZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJl
dmVhbE1vZGU6OlJldmVhbCwgYWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJ
Zk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAgICBy
ZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhl
ZCwgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25U
b0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91
bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsKIH0KIAogdm9pZCBFbGVtZW50Ojpz
Y3JvbGxJbnRvVmlld0lmTm90VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSkKQEAgLTcz
Niw5ICs3MzYsOSBAQCB2b2lkIEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJv
b2wgY2VudGVySWZOb3RWaXNpYmxlKQogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0
UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5z
aWRlRml4ZWQpOwogICAgIGlmIChjZW50ZXJJZk5vdFZpc2libGUpCi0gICAgICAgIHJlbmRlcmVy
KCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNv
bHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5v
dFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUsIFNob3Vs
ZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Ny
b2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNp
YmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlLCBTaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsKICAgICBlbHNlCi0gICAgICAgIHJlbmRlcmVy
KCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNv
bHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5v
dFZpc2libGUsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUsIFNob3Vs
ZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Ny
b2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNp
YmxlLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlLCBTaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxC
eShjb25zdCBTY3JvbGxUb09wdGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDc2OGM0NGJiNmJhNjEwOTZkZjQ4NmE4Y2E5MDY1N2Mx
OTk2MGYwYWMuLjFjNWJkMDZmZDg2YmUwYmI0ZTdjNGIyYjA1NmY2ZWZjMDk0ODFmNWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC01Myw2ICs1Myw3IEBA
CiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIklubGluZVRleHRCb3guaCIK
ICNpbmNsdWRlICJQYWdlLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJS
ZW5kZXJUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGV4dENvbnRyb2wuaCIKICNpbmNsdWRlICJS
ZW5kZXJUaGVtZS5oIgpAQCAtNzEsNyArNzIsNiBAQAogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCi0jaW5jbHVkZSAiUmVu
ZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJT
dHlsZS5oIgogI2VuZGlmCkBAIC0yMzc0LDcgKzIzNzQsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9u
OjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBT
Y3JvbAogICAgICAgICBpZiAoUmVuZGVyTGF5ZXIqIGxheWVyID0gc3RhcnQuZGVwcmVjYXRlZE5v
ZGUoKS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKSkgewogICAgICAgICAgICAgaWYgKCFt
X3Njcm9sbGluZ1N1cHByZXNzQ291bnQpIHsKICAgICAgICAgICAgICAgICBsYXllci0+c2V0QWRq
dXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRydWUpOwotICAgICAgICAgICAgICAgIGxheWVy
LT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJldmVhbE1vZGUsIHJlY3QsIGluc2lkZUZpeGVkLCBhbGln
bm1lbnQsIGFsaWdubWVudCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzKTsK
KyAgICAgICAgICAgICAgICBsYXllci0+c2Nyb2xsUmVjdFRvVmlzaWJsZShyZWN0LCBpbnNpZGVG
aXhlZCwgeyByZXZlYWxNb2RlLCBhbGlnbm1lbnQsIGFsaWdubWVudCwgU2hvdWxkQWxsb3dDcm9z
c09yaWdpblNjcm9sbGluZzo6WWVzIH0pOwogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRBZGp1
c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogICAgICAgICAgICAgICAgIHVwZGF0
ZUFwcGVhcmFuY2UoKTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+cGFnZSgpKQpAQCAt
MjM4NSw3ICsyMzg1LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKFNl
bGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgU2Nyb2wKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgY29kZSBvbmx5IGhhbmRsZXMgc2Nyb2xsaW5nIHRoZSBzdGFydENvbnRhaW5lcidz
IGxheWVyLCBidXQKICAgICAgICAgLy8gdGhlIHNlbGVjdGlvbiByZWN0IGNvdWxkIGludGVyc2Vj
dCBtb3JlIHRoYW4ganVzdCB0aGF0LgogICAgICAgICAvLyBTZWUgPHJkYXI6Ly9wcm9ibGVtLzQ3
OTk4OTk+LgotICAgICAgICBpZiAoc3RhcnQuZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKS0+
c2Nyb2xsUmVjdFRvVmlzaWJsZShyZXZlYWxNb2RlLCByZWN0LCBpbnNpZGVGaXhlZCwgYWxpZ25t
ZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcykpCisg
ICAgICAgIGlmIChzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0
VG9WaXNpYmxlKHJlY3QsIGluc2lkZUZpeGVkLCB7IHJldmVhbE1vZGUsIGFsaWdubWVudCwgYWxp
Z25tZW50LCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSkpCiAgICAgICAg
ICAgICB1cGRhdGVBcHBlYXJhbmNlKCk7CiAjZW5kaWYKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAKaW5kZXggMThjNTQ3NzQ0NDM4ZGIzMTgwMGRjMzVkOGY3ZmFjMmNkOGEzNmNiYi4u
OTk0ODllZjM3MWVhMDY2NDAzMDFiMWFlZTExYjU4MTJjODRlYmE4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcApAQCAtMjMzNiw3ICsyMzM2LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNjcm9s
bFRvRm9jdXNlZEVsZW1lbnRJbnRlcm5hbCgpCiAKICAgICBib29sIGluc2lkZUZpeGVkOwogICAg
IExheW91dFJlY3QgYWJzb2x1dGVCb3VuZHMgPSByZW5kZXJlci0+YWJzb2x1dGVBbmNob3JSZWN0
KCZpbnNpZGVGaXhlZCk7Ci0gICAgcmVuZGVyZXItPnNjcm9sbFJlY3RUb1Zpc2libGUobV9zZWxl
Y3Rpb25SZXZlYWxNb2RlRm9yRm9jdXNlZEVsZW1lbnQsIGFic29sdXRlQm91bmRzLCBpbnNpZGVG
aXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6
Ok5vKTsKKyAgICByZW5kZXJlci0+c2Nyb2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywg
aW5zaWRlRml4ZWQsIHsgbV9zZWxlY3Rpb25SZXZlYWxNb2RlRm9yRm9jdXNlZEVsZW1lbnQsIFNj
cm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGln
bkNlbnRlcklmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OmNvbnRlbnRzUmVzaXplZCgpCkBAIC0zMTEwLDExICszMTEw
LDExIEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb0FuY2hvcigpCiAgICAgLy8gU2Nyb2xsIG5l
c3RlZCBsYXllcnMgYW5kIGZyYW1lcyB0byByZXZlYWwgdGhlIGFuY2hvci4KICAgICAvLyBBbGln
biB0byB0aGUgdG9wIGFuZCB0byB0aGUgY2xvc2VzdCBzaWRlICh0aGlzIG1hdGNoZXMgb3RoZXIg
YnJvd3NlcnMpLgogICAgIGlmIChhbmNob3JOb2RlLT5yZW5kZXJlcigpLT5zdHlsZSgpLmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgIGFuY2hvck5vZGUtPnJlbmRlcmVyKCktPnNj
cm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCByZWN0LCBpbnNp
ZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9wQWx3YXlzLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpO
byk7CisgICAgICAgIGFuY2hvck5vZGUtPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUo
cmVjdCwgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxB
bGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub3BB
bHdheXMsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vIH0pOwogICAgIGVsc2Ug
aWYgKGFuY2hvck5vZGUtPnJlbmRlcmVyKCktPnN0eWxlKCkuaXNGbGlwcGVkQmxvY2tzV3JpdGlu
Z01vZGUoKSkKLSAgICAgICAgYW5jaG9yTm9kZS0+cmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlz
aWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIHJlY3QsIGluc2lkZUZpeGVkLCBTY3Jv
bGxBbGlnbm1lbnQ6OmFsaWduUmlnaHRBbHdheXMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0Vk
Z2VJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAg
ICBhbmNob3JOb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIGluc2lk
ZUZpeGVkLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50Ojph
bGlnblJpZ2h0QWx3YXlzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNo
b3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vIH0pOwogICAgIGVsc2UKLSAgICAgICAg
YW5jaG9yTm9kZS0+cmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZl
YWxNb2RlOjpSZXZlYWwsIHJlY3QsIGluc2lkZUZpeGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWdu
TGVmdEFsd2F5cywgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRB
bGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyk7CisgICAgICAgIGFuY2hvck5vZGUtPnJlbmRl
cmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9u
UmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduTGVmdEFsd2F5cywgU2Ny
b2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2lu
U2Nyb2xsaW5nOjpObyB9KTsKIAogICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGZyYW1l
KCkuZG9jdW1lbnQoKS0+ZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCiAgICAgICAgIGNhY2hlLT5o
YW5kbGVTY3JvbGxlZFRvQW5jaG9yKGFuY2hvck5vZGUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllci5jcHAKaW5kZXggZDM5MGMxMzliM2Q1OGM4YjRlYmQ4MDI2MjE1
OTYxYzc0NzFmZjVmOC4uNDZiM2E0NjIyYjU3OTQ4NTRlYTQzYmVkZjFkYjQ5MzRkMzM0MWNkMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNTAyLDcgKzI1
MDIsNyBAQCBib29sIFJlbmRlckxheWVyOjphbGxvd3NDdXJyZW50U2Nyb2xsKCkgY29uc3QKICAg
ICByZXR1cm4gYm94LT5oYXNIb3Jpem9udGFsT3ZlcmZsb3coKSB8fCBib3gtPmhhc1ZlcnRpY2Fs
T3ZlcmZsb3coKTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IExheW91dFJlY3QmIGFic29sdXRl
UmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNv
bnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xs
aW5nIHNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcpCit2b2lkIFJlbmRlckxheWVyOjpz
Y3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBp
bnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmIG9wdGlvbnMpCiB7
CiAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJMYXllciAiIDw8IHRo
aXMgPDwgIiBzY3JvbGxSZWN0VG9WaXNpYmxlICIgPDwgYWJzb2x1dGVSZWN0KTsKIApAQCAtMjUy
Myw3ICsyNTIzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxl
Y3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IExheW8KICAgICAgICAgQVNTRVJUKGJv
eCk7CiAgICAgICAgIExheW91dFJlY3QgbG9jYWxFeHBvc2VSZWN0KGJveC0+YWJzb2x1dGVUb0xv
Y2FsUXVhZChGbG9hdFF1YWQoRmxvYXRSZWN0KGFic29sdXRlUmVjdCkpKS5ib3VuZGluZ0JveCgp
KTsKICAgICAgICAgTGF5b3V0UmVjdCBsYXllckJvdW5kcygwLCAwLCBib3gtPmNsaWVudFdpZHRo
KCksIGJveC0+Y2xpZW50SGVpZ2h0KCkpOwotICAgICAgICBMYXlvdXRSZWN0IHJldmVhbFJlY3Qg
PSBnZXRSZWN0VG9FeHBvc2UobGF5ZXJCb3VuZHMsIGxvY2FsRXhwb3NlUmVjdCwgaW5zaWRlRml4
ZWQsIGFsaWduWCwgYWxpZ25ZKTsKKyAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0
UmVjdFRvRXhwb3NlKGxheWVyQm91bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBv
cHRpb25zLmFsaWduWCwgb3B0aW9ucy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBj
bGFtcGVkU2Nyb2xsT2Zmc2V0ID0gY2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0
b0ludFNpemUocm91bmRlZEludFJlY3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwogICAgICAg
ICBpZiAoY2xhbXBlZFNjcm9sbE9mZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgewpAQCAtMjU0Nywx
NCArMjU0NywxNCBAQCB2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVj
dGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgTGF5bwogICAgICAgICAgICAgICAgIFNj
cmlwdERpc2FsbG93ZWRTY29wZTo6SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsK
IAogICAgICAgICAgICAgICAgIExheW91dFJlY3Qgdmlld1JlY3QgPSBmcmFtZVZpZXcudmlzaWJs
ZUNvbnRlbnRSZWN0KExlZ2FjeUlPU0RvY3VtZW50VmlzaWJsZVJlY3QpOwotICAgICAgICAgICAg
ICAgIExheW91dFJlY3QgZXhwb3NlUmVjdCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgYWJz
b2x1dGVSZWN0LCBpbnNpZGVGaXhlZCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICAgICAgICAg
IExheW91dFJlY3QgZXhwb3NlUmVjdCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgYWJzb2x1
dGVSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKIAog
ICAgICAgICAgICAgICAgIEludFBvaW50IHNjcm9sbE9mZnNldChyb3VuZGVkSW50UG9pbnQoZXhw
b3NlUmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMg
aWYgdGhleSdyZSBvdXRzaWRlIG9mIHRoZSBhbGxvd2FibGUgcmFuZ2UuCiAgICAgICAgICAgICAg
ICAgc2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2lu
dCgpLCBJbnRQb2ludChmcmFtZVZpZXcuY29udGVudHNTaXplKCkpKTsKICAgICAgICAgICAgICAg
ICBmcmFtZVZpZXcuc2V0U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKIAotICAgICAgICAg
ICAgICAgIGlmIChzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93
Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Ny
b2xsVG9QYXJlbnQoKSkgeworICAgICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93
Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
WWVzIHx8IGZyYW1lVmlldy5zYWZlVG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIHBhcmVudExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdMYXllcigpOwogICAgICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSByZWN0
IGludG8gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHBhcmVudCBmcmFtZSdzIGRvY3VtZW50
LgogICAgICAgICAgICAgICAgICAgICBuZXdSZWN0ID0gZnJhbWVWaWV3LmNvbnRlbnRzVG9Db250
YWluaW5nVmlld0NvbnRlbnRzKGVuY2xvc2luZ0ludFJlY3QobmV3UmVjdCkpOwpAQCAtMjU2Myw3
ICsyNTYzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rp
b25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IExheW8KICAgICAgICAgICAgICAgICAgICAg
cGFyZW50TGF5ZXIgPSBudWxscHRyOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgaWYgKHJldmVhbE1vZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFs
VXBUb01haW5GcmFtZSAmJiBmcmFtZVZpZXcuZnJhbWUoKS5pc01haW5GcmFtZSgpKQorICAgICAg
ICAgICAgaWYgKG9wdGlvbnMucmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZl
YWxVcFRvTWFpbkZyYW1lICYmIGZyYW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogCiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTI1NzUsNyArMjU3
NSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2
ZWFsTW9kZSByZXZlYWxNb2RlLCBjb25zdCBMYXlvCiAgICAgICAgICAgICBMYXlvdXRSZWN0IHRh
cmdldFJlY3QgPSBhYnNvbHV0ZVJlY3Q7CiAgICAgICAgICAgICB0YXJnZXRSZWN0Lm1vdmUoMCwg
ZnJhbWVWaWV3LmhlYWRlckhlaWdodCgpKTsKIAotICAgICAgICAgICAgTGF5b3V0UmVjdCByZXZl
YWxSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCB0YXJnZXRSZWN0LCBpbnNpZGVGaXhl
ZCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0g
Z2V0UmVjdFRvRXhwb3NlKHZpZXdSZWN0LCB0YXJnZXRSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9u
cy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnJh
bWVWaWV3LnNldFNjcm9sbFBvc2l0aW9uKHJvdW5kZWRJbnRQb2ludChyZXZlYWxSZWN0LmxvY2F0
aW9uKCkpKTsKIApAQCAtMjU4OSw3ICsyNTg5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xs
UmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IExheW8K
ICAgICB9CiAgICAgCiAgICAgaWYgKHBhcmVudExheWVyKQotICAgICAgICBwYXJlbnRMYXllci0+
c2Nyb2xsUmVjdFRvVmlzaWJsZShyZXZlYWxNb2RlLCBuZXdSZWN0LCBpbnNpZGVGaXhlZCwgYWxp
Z25YLCBhbGlnblksIHNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcpOworICAgICAgICBw
YXJlbnRMYXllci0+c2Nyb2xsUmVjdFRvVmlzaWJsZShuZXdSZWN0LCBpbnNpZGVGaXhlZCwgb3B0
aW9ucyk7CiB9CiAKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0
ZXJTY3JvbGwoKQpAQCAtMjcxMiw3ICsyNzEyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6
Z2V0UmVjdFRvRXhwb3NlKGNvbnN0IExheW91dFJlY3QgJnZpc2libGVSZWN0LCBjb25zdCBMYXkK
IHZvaWQgUmVuZGVyTGF5ZXI6OmF1dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uSW5X
aW5kb3cpCiB7CiAgICAgSW50UG9pbnQgY3VycmVudERvY3VtZW50UG9zaXRpb24gPSByZW5kZXJl
cigpLnZpZXcoKS5mcmFtZVZpZXcoKS53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uSW5XaW5kb3cp
OwotICAgIHNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBM
YXlvdXRSZWN0KGN1cnJlbnREb2N1bWVudFBvc2l0aW9uLCBMYXlvdXRTaXplKDEsIDEpKSwgZmFs
c2UsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZ
ZXMpOworICAgIHNjcm9sbFJlY3RUb1Zpc2libGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQ
b3NpdGlvbiwgTGF5b3V0U2l6ZSgxLCAxKSksIGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6
OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxp
bmc6OlllcyB9KTsKIH0KIAogYm9vbCBSZW5kZXJMYXllcjo6Y2FuUmVzaXplKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggZWI2ODNjY2NlMmU4NWExY2Uz
YmQyNzZkZDNiYTE4ZWZkMjY5NjJiMS4uOTBlYjNhNmE1NzU4ZTc2MGQwN2I1MmI2MTVlN2ViYjQ2
ZDhkMzg1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTEyMCw2
ICsxMjAsMTMgQEAgZW51bSBjbGFzcyBSZXF1ZXN0U3RhdGUgewogICAgIFVuZGV0ZXJtaW5lZAog
fTsKIAorc3RydWN0IFNjcm9sbFJlY3RUb1Zpc2libGVPcHRpb25zIHsKKyAgICBTZWxlY3Rpb25S
ZXZlYWxNb2RlIHJldmVhbE1vZGUgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwgfTsKKyAg
ICBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCB7IFNjcm9sbEFsaWdubWVudDo6YWxpZ25D
ZW50ZXJJZk5lZWRlZCB9OworICAgIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZIHsgU2Ny
b2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CisgICAgU2hvdWxkQWxsb3dDcm9z
c09yaWdpblNjcm9sbGluZyBzaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHsgU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfTsKK307CisKIGNsYXNzIFJlbmRlckxheWVy
IGZpbmFsIDogcHVibGljIFNjcm9sbGFibGVBcmVhIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKIHB1YmxpYzoKQEAgLTIxOCw3ICsyMjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhdmFp
bGFibGVDb250ZW50U2l6ZUNoYW5nZWQoQXZhaWxhYmxlU2l6ZUNoYW5nZVJlYXNvbikgb3ZlcnJp
ZGU7CiAKICAgICAvLyAiYWJzb2x1dGVSZWN0IiBpcyBpbiBzY2FsZWQgZG9jdW1lbnQgY29vcmRp
bmF0ZXMuCi0gICAgdm9pZCBzY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJldmVhbE1vZGUs
IGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZLCBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nKTsKKyAgICB2b2lkIHNjcm9sbFJlY3RUb1Zp
c2libGUoY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBj
b25zdCBTY3JvbGxSZWN0VG9WaXNpYmxlT3B0aW9ucyYpOwogCiAgICAgYm9vbCBzY3JvbGxzT3Zl
cmZsb3coKSBjb25zdDsKICAgICBib29sIGhhc1Njcm9sbGJhcnMoKSBjb25zdCB7IHJldHVybiBt
X2hCYXIgfHwgbV92QmFyOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IGNkYjAyNjIwNTNiYjRiN2Y0MjcwZjdhYTJmY2E0MGFmMDQwNTI1MWQuLmZhN2Fi
NDRjZDMyZjk3OGNlOGIxYTZkYjM0OGQ1ZTM5Mzc0NWE5YjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC00MTQsMTYgKzQxNCwxNiBAQCBSZW5kZXJMYXll
ciogUmVuZGVyT2JqZWN0OjplbmNsb3NpbmdMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CiAKLWJvb2wgUmVuZGVyT2JqZWN0OjpzY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlv
blJldmVhbE1vZGUgcmV2ZWFsTW9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBi
b29sIGluc2lkZUZpeGVkLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCwgY29uc3QgU2Ny
b2xsQWxpZ25tZW50JiBhbGlnblksIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgc2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZykKK2Jvb2wgUmVuZGVyT2JqZWN0OjpzY3JvbGxS
ZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVG
aXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmIG9wdGlvbnMpCiB7Ci0gICAg
aWYgKHJldmVhbE1vZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCisgICAg
aWYgKG9wdGlvbnMucmV2ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpEb05vdFJldmVh
bCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0xh
eWVyID0gdGhpcy0+ZW5jbG9zaW5nTGF5ZXIoKTsKICAgICBpZiAoIWVuY2xvc2luZ0xheWVyKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBlbmNsb3NpbmdMYXllci0+c2Nyb2xsUmVjdFRv
VmlzaWJsZShyZXZlYWxNb2RlLCBhYnNvbHV0ZVJlY3QsIGluc2lkZUZpeGVkLCBhbGlnblgsIGFs
aWduWSwgc2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZyk7CisgICAgZW5jbG9zaW5nTGF5
ZXItPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9u
cyk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAppbmRleCAyNTE2MjU4M2Q1NmQxMWMyZWI4NmU2Y2YxYTQ2OWQ2ZTNiMmY2ZDVlLi43
NjQyZjU4NDZkN2I5YmVkZThiMzc5NGE3MTE3NjVmODQ0NWU2ZjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC04Myw2ICs4Myw4IEBAIGNvbnN0IGludCBjYXJl
dFdpZHRoID0gMTsKIAogZW51bSBjbGFzcyBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5n
IHsgTm8sIFllcyB9OwogCitzdHJ1Y3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnM7CisKICNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiBzdHJ1Y3QgQW5ub3RhdGVkUmVnaW9uVmFsdWUg
ewogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZSYgbykgY29u
c3QKQEAgLTE1OCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVy
TGF5ZXIqIGVuY2xvc2luZ0xheWVyKCkgY29uc3Q7CiAKICAgICAvLyBTY3JvbGxpbmcgaXMgYSBS
ZW5kZXJCb3ggY29uY2VwdCwgaG93ZXZlciBzb21lIGNvZGUganVzdCBjYXJlcyBhYm91dCByZWN1
cnNpdmVseSBzY3JvbGxpbmcgb3VyIGVuY2xvc2luZyBTY3JvbGxhYmxlQXJlYShzKS4KLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9k
ZSwgY29uc3QgTGF5b3V0UmVjdCYgYWJzb2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBjb25z
dCBTY3JvbGxBbGlnbm1lbnQmIGFsaWduWCA9IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJ
Zk5lZWRlZCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkgPSBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduQ2VudGVySWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPSBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyk7CisgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBzY3JvbGxSZWN0VG9WaXNpYmxlKGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwg
Ym9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmKTsKIAog
ICAgIC8vIENvbnZlbmllbmNlIGZ1bmN0aW9uIGZvciBnZXR0aW5nIHRvIHRoZSBuZWFyZXN0IGVu
Y2xvc2luZyBib3ggb2YgYSBSZW5kZXJPYmplY3QuCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVy
Qm94JiBlbmNsb3NpbmdCb3goKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCmluZGV4IDg2MGRiMjkwZTEwZmMyY2IyNWNkZjkxNjQwMmFkYjdjY2U5
Y2Y3OTQuLjJhMTMxMjM0ZjQ2YjBlNzkzYTExZWY3MGYwYjdiYjdhNDBlMDAwYmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtNzQxLDEyICs3NDEs
MTIgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIpCiAgICAgICAgIAogICAgIGlmIChzdGFydE5vZGUgJiYgc3RhcnROb2RlLT5y
ZW5kZXJlcigpKSB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgc3RhcnROb2RlLT5yZW5k
ZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwg
ZW5jbG9zaW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVk
ZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olllcyk7CisgICAgICAgIHN0YXJ0
Tm9kZS0+cmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShlbmNsb3NpbmdJbnRSZWN0KHJh
bmdlUmVjdCksIGluc2lkZUZpeGVkLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Ny
b2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWdu
VG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KTsK
ICNlbHNlCiAgICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9IHN0YXJ0Tm9kZS0+cmVuZGVyZXIo
KS0+ZW5jbG9zaW5nTGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVyKSB7CiAgICAgICAgICAgICBs
YXllci0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRydWUpOwotICAgICAgICAg
ICAgc3RhcnROb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJl
dmVhbE1vZGU6OlJldmVhbCwgZW5jbG9zaW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhl
ZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Olll
cyk7CisgICAgICAgICAgICBzdGFydE5vZGUtPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2li
bGUoZW5jbG9zaW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhlZCwgeyBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwg
U2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3Jp
Z2luU2Nyb2xsaW5nOjpZZXMgfSk7CiAgICAgICAgICAgICBsYXllci0+c2V0QWRqdXN0Rm9ySU9T
Q2FyZXRXaGVuU2Nyb2xsaW5nKGZhbHNlKTsKICAgICAgICAgICAgIF9wcml2YXRlLT5jb3JlRnJh
bWUtPnNlbGVjdGlvbigpLnNldENhcmV0UmVjdE5lZWRzVXBkYXRlKCk7CiAgICAgICAgICAgICBf
cHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS51cGRhdGVBcHBlYXJhbmNlKCk7CkBAIC03
NjYsNyArNzY2LDcgQEAgc3RhdGljIGlubGluZSBXZWJEYXRhU291cmNlICpkYXRhU291cmNlKERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIpCiAgICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9IHN0YXJ0
Tm9kZS0+cmVuZGVyZXIoKS0+ZW5jbG9zaW5nTGF5ZXIoKTsKICAgICAgICAgaWYgKGxheWVyKSB7
CiAgICAgICAgICAgICBsYXllci0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xsaW5nKHRy
dWUpOwotICAgICAgICAgICAgc3RhcnROb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNp
YmxlKFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgZW5jbG9zaW5nSW50UmVjdChyYW5nZVJl
Y3QpLCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBT
Y3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmln
aW5TY3JvbGxpbmc6Olllcyk7CisgICAgICAgICAgICBzdGFydE5vZGUtPnJlbmRlcmVyKCktPnNj
cm9sbFJlY3RUb1Zpc2libGUoZW5jbG9zaW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhl
ZCwgeyBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25U
b0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91
bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXN9KTsKICAgICAgICAgICAgIGxheWVyLT5z
ZXRBZGp1c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogCiAgICAgICAgICAgICBG
cmFtZSAqY29yZUZyYW1lID0gY29yZShzZWxmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>349030</attachid>
            <date>2018-09-06 09:15:21 -0700</date>
            <delta_ts>2018-09-06 12:48:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Bug-189352-Group-options-of-scrollRectToVisible-into.patch</filename>
            <type>text/plain</type>
            <size>25834</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">RnJvbSAzMDJmNzgwOGM0Mjk3ZjM0NGViNDU3MzdlZjY2NmY1YWI5YmZlNTliIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBGcmVkZXJpYyBXYW5nIDxmd2FuZ0BpZ2FsaWEuY29tPgpEYXRl
OiBUaHUsIDYgU2VwIDIwMTggMTc6Mjc6MTMgKzAyMDAKU3ViamVjdDogW1BBVENIIHhzZXJ2ZXIg
MS8yXSBCdWcgMTg5MzUyIC0gR3JvdXAgb3B0aW9ucyBvZiBzY3JvbGxSZWN0VG9WaXNpYmxlCiBp
bnRvIGEgc3RydWN0CgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICB8IDM4ICsrKysrKysrKysrKysrKysrKysKIC4uLi9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgICAgICAgICAgICAgICAgfCAxNCArKystLS0tCiBTb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCAgICAgfCAgNiArLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCAgICAgICAgICAgICB8ICA4ICsrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgICAgICB8IDE2ICsrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAgfCAgOSArKysrLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgIDYgKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgfCAgNCArLQogU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nICAgICAgICAgICAgIHwgMTEgKysrKysrCiBTb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tICAgfCAgNyArKy0tCiAxMSBmaWxlcyBjaGFuZ2VkLCA5
MCBpbnNlcnRpb25zKCspLCAzMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1Y2I2NzE3
MmQuLmMzYmM4MDM5MmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTgtMDktMDYg
IEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgorCisgICAgICAgIEdyb3VwIG9wdGlv
bnMgb2Ygc2Nyb2xsUmVjdFRvVmlzaWJsZSBpbnRvIGEgc3RydWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODkzNTIKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRv
VmlzaWJsZSBhbmQgUmVuZGVyT2JqZWN0OjpzY3JvbGxSZWN0VG9WaXNpYmxlIGhhdmUgc2V2ZXJh
bAorICAgICAgICBwYXJhbWV0ZXJzIHRvIGNvbmZpZ3VyZSB0aGUgdHlwZSBvZiBzY3JvbGxpbmcu
IFRoaXMgcGF0Y2ggZ3JvdXBzIHRoZSBjb25zdCBvcHRpb25zIGludG8gYQorICAgICAgICBzaW5n
bGUgc3RydWN0IHRvIG1ha2UgZWFzaWVyIHRvIGhhbmRsZSB0aGVtIGluIHRoZSBmdXR1cmUuIEZv
ciBleGFtcGxlLCBhbiAjaWZkZWZlZCBzY3JvbGwKKyAgICAgICAgYmVoYXZpb3Igb3B0aW9uIHdp
bGwgYmUgYWRkZWQgaW4gYnVnIDE4ODA0My4gVGhpcyByZWZhY3RvcmluZyBjYW4gbWF5YmUgaGVs
cCB0b28gZm9yIG90aGVyCisgICAgICAgIHNjcm9sbCBleHRlbnNpb25zIChlLmcuIGJ1ZyAxNzY0
NTQgYW5kIGJ1ZyAxNjE2MTEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYmVoYXZpb3IgdW5j
aGFuZ2VkLgorCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnNjcm9sbFRvTWFrZVZp
c2libGUgY29uc3QpOiBQYXNzIG9wdGlvbnMgdmlhIGEgc3RydWN0LgorICAgICAgICAqIGRvbS9F
bGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbEludG9WaWV3KTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTmVlZGVk
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90
VmlzaWJsZSk6IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOiBJ
bmNsdWRlIFJlbmRlckxheWVyLmggaW4gYWxsIFdlYktpdCBwb3J0cyBpbiBvcmRlciB0byBkZWZp
bmUKKyAgICAgICAgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMuCisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVNlbGVjdGlvbjo6cmV2ZWFsU2VsZWN0aW9uKTogUGFzcyBvcHRpb25zIHZpYSBhIHN0
cnVjdC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZVZpZXc6OnNjcm9sbFRvRm9jdXNlZEVsZW1lbnRJbnRlcm5hbCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxUb0FuY2hvcik6IERpdHRvLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IFBhc3Mgb3B0aW9ucyB2aWEgYSBzdHJ1Y3QuIE5vdGUg
dGhhdAorICAgICAgICBhYnNvbHV0ZVJlY3QgYW5kIGluc2lkZUZpeGVkIGFyZSBtb2RpZmllZCBp
biB0aGlzIGZ1bmN0aW9uLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmF1dG9zY3Jv
bGwpOiBQYXNzIG9wdGlvbnMgdmlhIGEgc3RydWN0LgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5oOiBBZGQgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMgYW5kIHVzZSBpdCBpbiBv
cmRlciB0byBwYXNzCisgICAgICAgIHNjcm9sbFJlY3RUb1Zpc2libGUgb3B0aW9ucy4KKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ck9iamVjdDo6c2Nyb2xsUmVjdFRvVmlzaWJsZSk6IFBhc3Mgb3B0aW9ucyB2aWEgYSBzdHJ1Y3QK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6IEZvcndhcmQtZGVjbGFyZSBTY3Jv
bGxSZWN0VG9WaXNpYmxlT3B0aW9ucyBhbmQgdXNlIGluIG9yZGVyIHRvCisgICAgICAgIHBhc3Mg
c2Nyb2xsUmVjdFRvVmlzaWJsZSBvcHRpb25zLgorCiAyMDE4LTA5LTA0ICBGcmVkZXJpYyBXYW5n
ICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgYmFzaWMgc3VwcG9ydCBmb3IgU2Ny
b2xsSW50b1ZpZXdPcHRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCA2MmZiOTIwNzFiMi4uNjFiZTVkNDFiMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcApAQCAtMjk5Miw3ICsyOTkyLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkgY29uc3QKICAgICAgICAgcGFyZW50T2JqZWN0KCktPnNj
cm9sbFRvTWFrZVZpc2libGUoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJl
bmRlcmVyKCkpCi0gICAgICAgIHJlbmRlcmVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlv
blJldmVhbE1vZGU6OlJldmVhbCwgYm91bmRpbmdCb3hSZWN0KCksIGZhbHNlLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJ
Zk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzKTsKKyAgICAgICAg
cmVuZGVyZXItPnNjcm9sbFJlY3RUb1Zpc2libGUoYm91bmRpbmdCb3hSZWN0KCksIGZhbHNlLCB7
IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRl
cklmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KTsKIH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGNvbnN0IEludFJlY3QmIHN1
YmZvY3VzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDZmYTg2YjFhNjNjLi40Mzlk
OTJlZjI0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNjkyLDcgKzY5Miw3IEBAIHZvaWQg
RWxlbWVudDo6c2Nyb2xsSW50b1ZpZXcoc3RkOjpvcHRpb25hbDxWYXJpYW50PGJvb2wsIFNjcm9s
bEludG9WaWV3T3B0aW9ucz4+CiAKICAgICBTY3JvbGxBbGlnbm1lbnQgYWxpZ25YID0gdG9TY3Jv
bGxBbGlnbm1lbnQob3B0aW9ucy5pbmxpbmVQb3NpdGlvbiwgZmFsc2UpOwogICAgIFNjcm9sbEFs
aWdubWVudCBhbGlnblkgPSB0b1Njcm9sbEFsaWdubWVudChvcHRpb25zLmJsb2NrUG9zaXRpb24s
IHRydWUpOwotICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2
ZWFsTW9kZTo6UmV2ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIGFsaWduWCwgYWxp
Z25ZLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyk7CisgICAgcmVuZGVyZXIo
KS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHsgU2Vs
ZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhbGlnblgsIGFsaWduWSwgU2hvdWxkQWxsb3dDcm9z
c09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1Zp
ZXcoYm9vbCBhbGlnblRvVG9wKSAKQEAgLTcwNiw5ICs3MDYsOSBAQCB2b2lkIEVsZW1lbnQ6OnNj
cm9sbEludG9WaWV3KGJvb2wgYWxpZ25Ub1RvcCkKICAgICBMYXlvdXRSZWN0IGFic29sdXRlQm91
bmRzID0gcmVuZGVyZXIoKS0+YWJzb2x1dGVBbmNob3JSZWN0KCZpbnNpZGVGaXhlZCk7CiAgICAg
Ly8gQWxpZ24gdG8gdGhlIHRvcCAvIGJvdHRvbSBhbmQgdG8gdGhlIGNsb3Nlc3QgZWRnZS4KICAg
ICBpZiAoYWxpZ25Ub1RvcCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJs
ZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhl
ZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6
OmFsaWduVG9wQWx3YXlzLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyk7Cisg
ICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGlu
c2lkZUZpeGVkLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50
OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9wQWx3YXlzLCBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsKICAgICBlbHNlCi0gICAgICAg
IHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2
ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25U
b0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkJvdHRvbUFsd2F5cywgU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAgICByZW5kZXJlcigpLT5zY3Jv
bGxSZWN0VG9WaXNpYmxlKGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhlZCwgeyBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwg
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkJvdHRvbUFsd2F5cywgU2hvdWxkQWxsb3dDcm9zc09yaWdp
blNjcm9sbGluZzo6Tm8gfSk7CiB9CiAKIHZvaWQgRWxlbWVudDo6c2Nyb2xsSW50b1ZpZXdJZk5l
ZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQpAQCAtNzIxLDkgKzcyMSw5IEBAIHZvaWQgRWxlbWVu
dDo6c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChib29sIGNlbnRlcklmTmVlZGVkKQogICAgIGJvb2wg
aW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5kcyA9IHJlbmRlcmVyKCkt
PmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogICAgIGlmIChjZW50ZXJJZk5lZWRl
ZCkKLSAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZl
YWxNb2RlOjpSZXZlYWwsIGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25t
ZW50OjphbGlnbkNlbnRlcklmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZO
ZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgcmVu
ZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQs
IHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2Vu
dGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgU2hvdWxk
QWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiAgICAgZWxzZQotICAgICAgICByZW5k
ZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwg
YWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdl
SWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2hvdWxkQWxs
b3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAgICByZW5kZXJlcigpLT5zY3JvbGxS
ZWN0VG9WaXNpYmxlKGFic29sdXRlQm91bmRzLCBpbnNpZGVGaXhlZCwgeyBTZWxlY3Rpb25SZXZl
YWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Ny
b2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2lu
U2Nyb2xsaW5nOjpObyB9KTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxJbnRvVmlld0lmTm90
VmlzaWJsZShib29sIGNlbnRlcklmTm90VmlzaWJsZSkKQEAgLTczNiw5ICs3MzYsOSBAQCB2b2lk
IEVsZW1lbnQ6OnNjcm9sbEludG9WaWV3SWZOb3RWaXNpYmxlKGJvb2wgY2VudGVySWZOb3RWaXNp
YmxlKQogICAgIGJvb2wgaW5zaWRlRml4ZWQ7CiAgICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvdW5k
cyA9IHJlbmRlcmVyKCktPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwogICAgIGlm
IChjZW50ZXJJZk5vdFZpc2libGUpCi0gICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zp
c2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRl
Rml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUsIFNjcm9sbEFs
aWdubWVudDo6YWxpZ25DZW50ZXJJZk5vdFZpc2libGUsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFs
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduQ2VudGVySWZOb3RWaXNpYmxlLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xs
aW5nOjpObyB9KTsKICAgICBlbHNlCi0gICAgICAgIHJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zp
c2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRl
Rml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUsIFNjcm9sbEFs
aWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5vdFZpc2libGUsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgcmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShh
YnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFs
LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlLCBTY3JvbGxBbGlnbm1l
bnQ6OmFsaWduVG9FZGdlSWZOb3RWaXNpYmxlLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xs
aW5nOjpObyB9KTsKIH0KIAogdm9pZCBFbGVtZW50OjpzY3JvbGxCeShjb25zdCBTY3JvbGxUb09w
dGlvbnMmIG9wdGlvbnMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1l
U2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CmluZGV4IDc2OGM0NGJiNmJhLi4xYzViZDA2ZmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJIaXRUZXN0
UmVzdWx0LmgiCiAjaW5jbHVkZSAiSW5saW5lVGV4dEJveC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIK
KyNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJUZXh0Q29udHJvbC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCkBAIC03
MSw3ICs3Miw2IEBACiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50
LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKLSNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1
ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjZW5kaWYKQEAg
LTIzNzQsNyArMjM3NCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihT
ZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgIGlmIChS
ZW5kZXJMYXllciogbGF5ZXIgPSBzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5l
bmNsb3NpbmdMYXllcigpKSB7CiAgICAgICAgICAgICBpZiAoIW1fc2Nyb2xsaW5nU3VwcHJlc3ND
b3VudCkgewogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRBZGp1c3RGb3JJT1NDYXJldFdoZW5T
Y3JvbGxpbmcodHJ1ZSk7Ci0gICAgICAgICAgICAgICAgbGF5ZXItPnNjcm9sbFJlY3RUb1Zpc2li
bGUocmV2ZWFsTW9kZSwgcmVjdCwgaW5zaWRlRml4ZWQsIGFsaWdubWVudCwgYWxpZ25tZW50LCBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMpOworICAgICAgICAgICAgICAgIGxh
eWVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIGluc2lkZUZpeGVkLCB7IHJldmVhbE1vZGUs
IGFsaWdubWVudCwgYWxpZ25tZW50LCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZ
ZXMgfSk7CiAgICAgICAgICAgICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNj
cm9sbGluZyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogICAg
ICAgICAgICAgICAgIGlmIChtX2ZyYW1lLT5wYWdlKCkpCkBAIC0yMzg1LDcgKzIzODUsNyBAQCB2
b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSBy
ZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgICAgICAvLyBGSVhNRTogVGhpcyBjb2RlIG9ubHkg
aGFuZGxlcyBzY3JvbGxpbmcgdGhlIHN0YXJ0Q29udGFpbmVyJ3MgbGF5ZXIsIGJ1dAogICAgICAg
ICAvLyB0aGUgc2VsZWN0aW9uIHJlY3QgY291bGQgaW50ZXJzZWN0IG1vcmUgdGhhbiBqdXN0IHRo
YXQuCiAgICAgICAgIC8vIFNlZSA8cmRhcjovL3Byb2JsZW0vNDc5OTg5OT4uCi0gICAgICAgIGlm
IChzdGFydC5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxl
KHJldmVhbE1vZGUsIHJlY3QsIGluc2lkZUZpeGVkLCBhbGlnbm1lbnQsIGFsaWdubWVudCwgU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzKSkKKyAgICAgICAgaWYgKHN0YXJ0LmRl
cHJlY2F0ZWROb2RlKCktPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUocmVjdCwgaW5z
aWRlRml4ZWQsIHsgcmV2ZWFsTW9kZSwgYWxpZ25tZW50LCBhbGlnbm1lbnQsIFNob3VsZEFsbG93
Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KSkKICAgICAgICAgICAgIHVwZGF0ZUFwcGVhcmFu
Y2UoKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAxOGM1
NDc3NDQ0My4uOTk0ODllZjM3MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTIz
MzYsNyArMjMzNiw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzY3JvbGxUb0ZvY3VzZWRFbGVtZW50SW50
ZXJuYWwoKQogCiAgICAgYm9vbCBpbnNpZGVGaXhlZDsKICAgICBMYXlvdXRSZWN0IGFic29sdXRl
Qm91bmRzID0gcmVuZGVyZXItPmFic29sdXRlQW5jaG9yUmVjdCgmaW5zaWRlRml4ZWQpOwotICAg
IHJlbmRlcmVyLT5zY3JvbGxSZWN0VG9WaXNpYmxlKG1fc2VsZWN0aW9uUmV2ZWFsTW9kZUZvckZv
Y3VzZWRFbGVtZW50LCBhYnNvbHV0ZUJvdW5kcywgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVl
ZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpObyk7CisgICAgcmVuZGVyZXIt
PnNjcm9sbFJlY3RUb1Zpc2libGUoYWJzb2x1dGVCb3VuZHMsIGluc2lkZUZpeGVkLCB7IG1fc2Vs
ZWN0aW9uUmV2ZWFsTW9kZUZvckZvY3VzZWRFbGVtZW50LCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWdu
Q2VudGVySWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgU2hv
dWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiB9CiAKIHZvaWQgRnJhbWVWaWV3
Ojpjb250ZW50c1Jlc2l6ZWQoKQpAQCAtMzExMCwxMSArMzExMCwxMSBAQCB2b2lkIEZyYW1lVmll
dzo6c2Nyb2xsVG9BbmNob3IoKQogICAgIC8vIFNjcm9sbCBuZXN0ZWQgbGF5ZXJzIGFuZCBmcmFt
ZXMgdG8gcmV2ZWFsIHRoZSBhbmNob3IuCiAgICAgLy8gQWxpZ24gdG8gdGhlIHRvcCBhbmQgdG8g
dGhlIGNsb3Nlc3Qgc2lkZSAodGhpcyBtYXRjaGVzIG90aGVyIGJyb3dzZXJzKS4KICAgICBpZiAo
YW5jaG9yTm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgp
KQotICAgICAgICBhbmNob3JOb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKFNl
bGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgcmVjdCwgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvcEFsd2F5
cywgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8pOworICAgICAgICBhbmNob3JO
b2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKHJlY3QsIGluc2lkZUZpeGVkLCB7
IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRn
ZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9wQWx3YXlzLCBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpObyB9KTsKICAgICBlbHNlIGlmIChhbmNob3JOb2RlLT5yZW5k
ZXJlcigpLT5zdHlsZSgpLmlzRmxpcHBlZEJsb2Nrc1dyaXRpbmdNb2RlKCkpCi0gICAgICAgIGFu
Y2hvck5vZGUtPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFs
TW9kZTo6UmV2ZWFsLCByZWN0LCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblJp
Z2h0QWx3YXlzLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6Ok5vKTsKKyAgICAgICAgYW5jaG9yTm9kZS0+cmVuZGVy
ZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShyZWN0LCBpbnNpZGVGaXhlZCwgeyBTZWxlY3Rpb25S
ZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25SaWdodEFsd2F5cywgU2Ny
b2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2lu
U2Nyb2xsaW5nOjpObyB9KTsKICAgICBlbHNlCi0gICAgICAgIGFuY2hvck5vZGUtPnJlbmRlcmVy
KCktPnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCByZWN0
LCBpbnNpZGVGaXhlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkxlZnRBbHdheXMsIFNjcm9sbEFs
aWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9s
bGluZzo6Tm8pOworICAgICAgICBhbmNob3JOb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9W
aXNpYmxlKHJlY3QsIGluc2lkZUZpeGVkLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwg
U2Nyb2xsQWxpZ25tZW50OjphbGlnbkxlZnRBbHdheXMsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25U
b0VkZ2VJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6Tm8gfSk7CiAK
ICAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBmcmFtZSgpLmRvY3VtZW50KCktPmV4aXN0
aW5nQVhPYmplY3RDYWNoZSgpKQogICAgICAgICBjYWNoZS0+aGFuZGxlU2Nyb2xsZWRUb0FuY2hv
cihhbmNob3JOb2RlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwCmluZGV4IGQzOTBjMTM5YjNkLi40NmIzYTQ2MjJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0yNTAyLDcgKzI1MDIsNyBAQCBib29sIFJlbmRlckxh
eWVyOjphbGxvd3NDdXJyZW50U2Nyb2xsKCkgY29uc3QKICAgICByZXR1cm4gYm94LT5oYXNIb3Jp
em9udGFsT3ZlcmZsb3coKSB8fCBib3gtPmhhc1ZlcnRpY2FsT3ZlcmZsb3coKTsKIH0KIAotdm9p
ZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlIHJl
dmVhbE1vZGUsIGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhl
ZCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYg
YWxpZ25ZLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmcpCit2b2lkIFJlbmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKGNv
bnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3QgU2Ny
b2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmIG9wdGlvbnMpCiB7CiAgICAgTE9HX1dJVEhfU1RSRUFN
KFNjcm9sbGluZywgc3RyZWFtIDw8ICJMYXllciAiIDw8IHRoaXMgPDwgIiBzY3JvbGxSZWN0VG9W
aXNpYmxlICIgPDwgYWJzb2x1dGVSZWN0KTsKIApAQCAtMjUyMyw3ICsyNTIzLDcgQEAgdm9pZCBS
ZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVh
bE1vZGUsIGNvbnN0IExheW8KICAgICAgICAgQVNTRVJUKGJveCk7CiAgICAgICAgIExheW91dFJl
Y3QgbG9jYWxFeHBvc2VSZWN0KGJveC0+YWJzb2x1dGVUb0xvY2FsUXVhZChGbG9hdFF1YWQoRmxv
YXRSZWN0KGFic29sdXRlUmVjdCkpKS5ib3VuZGluZ0JveCgpKTsKICAgICAgICAgTGF5b3V0UmVj
dCBsYXllckJvdW5kcygwLCAwLCBib3gtPmNsaWVudFdpZHRoKCksIGJveC0+Y2xpZW50SGVpZ2h0
KCkpOwotICAgICAgICBMYXlvdXRSZWN0IHJldmVhbFJlY3QgPSBnZXRSZWN0VG9FeHBvc2UobGF5
ZXJCb3VuZHMsIGxvY2FsRXhwb3NlUmVjdCwgaW5zaWRlRml4ZWQsIGFsaWduWCwgYWxpZ25ZKTsK
KyAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKGxheWVyQm91
bmRzLCBsb2NhbEV4cG9zZVJlY3QsIGluc2lkZUZpeGVkLCBvcHRpb25zLmFsaWduWCwgb3B0aW9u
cy5hbGlnblkpOwogCiAgICAgICAgIFNjcm9sbE9mZnNldCBjbGFtcGVkU2Nyb2xsT2Zmc2V0ID0g
Y2xhbXBTY3JvbGxPZmZzZXQoc2Nyb2xsT2Zmc2V0KCkgKyB0b0ludFNpemUocm91bmRlZEludFJl
Y3QocmV2ZWFsUmVjdCkubG9jYXRpb24oKSkpOwogICAgICAgICBpZiAoY2xhbXBlZFNjcm9sbE9m
ZnNldCAhPSBzY3JvbGxPZmZzZXQoKSkgewpAQCAtMjU0NywxNCArMjU0NywxNCBAQCB2b2lkIFJl
bmRlckxheWVyOjpzY3JvbGxSZWN0VG9WaXNpYmxlKFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFs
TW9kZSwgY29uc3QgTGF5bwogICAgICAgICAgICAgICAgIFNjcmlwdERpc2FsbG93ZWRTY29wZTo6
SW5NYWluVGhyZWFkIHNjcmlwdERpc2FsbG93ZWRTY29wZTsKIAogICAgICAgICAgICAgICAgIExh
eW91dFJlY3Qgdmlld1JlY3QgPSBmcmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KExlZ2FjeUlP
U0RvY3VtZW50VmlzaWJsZVJlY3QpOwotICAgICAgICAgICAgICAgIExheW91dFJlY3QgZXhwb3Nl
UmVjdCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgYWJzb2x1dGVSZWN0LCBpbnNpZGVGaXhl
ZCwgYWxpZ25YLCBhbGlnblkpOworICAgICAgICAgICAgICAgIExheW91dFJlY3QgZXhwb3NlUmVj
dCA9IGdldFJlY3RUb0V4cG9zZSh2aWV3UmVjdCwgYWJzb2x1dGVSZWN0LCBpbnNpZGVGaXhlZCwg
b3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxpZ25ZKTsKIAogICAgICAgICAgICAgICAgIEludFBv
aW50IHNjcm9sbE9mZnNldChyb3VuZGVkSW50UG9pbnQoZXhwb3NlUmVjdC5sb2NhdGlvbigpKSk7
CiAgICAgICAgICAgICAgICAgLy8gQWRqdXN0IG9mZnNldHMgaWYgdGhleSdyZSBvdXRzaWRlIG9m
IHRoZSBhbGxvd2FibGUgcmFuZ2UuCiAgICAgICAgICAgICAgICAgc2Nyb2xsT2Zmc2V0ID0gc2Ny
b2xsT2Zmc2V0LmNvbnN0cmFpbmVkQmV0d2VlbihJbnRQb2ludCgpLCBJbnRQb2ludChmcmFtZVZp
ZXcuY29udGVudHNTaXplKCkpKTsKICAgICAgICAgICAgICAgICBmcmFtZVZpZXcuc2V0U2Nyb2xs
UG9zaXRpb24oc2Nyb2xsT2Zmc2V0KTsKIAotICAgICAgICAgICAgICAgIGlmIChzaG91bGRBbGxv
d0Nyb3NzT3JpZ2luU2Nyb2xsaW5nID09IFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6
OlllcyB8fCBmcmFtZVZpZXcuc2FmZVRvUHJvcGFnYXRlU2Nyb2xsVG9QYXJlbnQoKSkgeworICAg
ICAgICAgICAgICAgIGlmIChvcHRpb25zLnNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcg
PT0gU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIHx8IGZyYW1lVmlldy5zYWZl
VG9Qcm9wYWdhdGVTY3JvbGxUb1BhcmVudCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHBhcmVu
dExheWVyID0gb3duZXJFbGVtZW50LT5yZW5kZXJlcigpLT5lbmNsb3NpbmdMYXllcigpOwogICAg
ICAgICAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSByZWN0IGludG8gdGhlIGNvb3JkaW5hdGUg
c3BhY2Ugb2YgdGhlIHBhcmVudCBmcmFtZSdzIGRvY3VtZW50LgogICAgICAgICAgICAgICAgICAg
ICBuZXdSZWN0ID0gZnJhbWVWaWV3LmNvbnRlbnRzVG9Db250YWluaW5nVmlld0NvbnRlbnRzKGVu
Y2xvc2luZ0ludFJlY3QobmV3UmVjdCkpOwpAQCAtMjU2Myw3ICsyNTYzLDcgQEAgdm9pZCBSZW5k
ZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1v
ZGUsIGNvbnN0IExheW8KICAgICAgICAgICAgICAgICAgICAgcGFyZW50TGF5ZXIgPSBudWxscHRy
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKHJldmVh
bE1vZGUgPT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsVXBUb01haW5GcmFtZSAmJiBmcmFt
ZVZpZXcuZnJhbWUoKS5pc01haW5GcmFtZSgpKQorICAgICAgICAgICAgaWYgKG9wdGlvbnMucmV2
ZWFsTW9kZSA9PSBTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWxVcFRvTWFpbkZyYW1lICYmIGZy
YW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
CiAjaWYgIVBMQVRGT1JNKElPUykKQEAgLTI1NzUsNyArMjU3NSw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnNjcm9sbFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxNb2RlLCBj
b25zdCBMYXlvCiAgICAgICAgICAgICBMYXlvdXRSZWN0IHRhcmdldFJlY3QgPSBhYnNvbHV0ZVJl
Y3Q7CiAgICAgICAgICAgICB0YXJnZXRSZWN0Lm1vdmUoMCwgZnJhbWVWaWV3LmhlYWRlckhlaWdo
dCgpKTsKIAotICAgICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVjdFRvRXhw
b3NlKHZpZXdSZWN0LCB0YXJnZXRSZWN0LCBpbnNpZGVGaXhlZCwgYWxpZ25YLCBhbGlnblkpOwor
ICAgICAgICAgICAgTGF5b3V0UmVjdCByZXZlYWxSZWN0ID0gZ2V0UmVjdFRvRXhwb3NlKHZpZXdS
ZWN0LCB0YXJnZXRSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucy5hbGlnblgsIG9wdGlvbnMuYWxp
Z25ZKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgZnJhbWVWaWV3LnNldFNjcm9sbFBvc2l0
aW9uKHJvdW5kZWRJbnRQb2ludChyZXZlYWxSZWN0LmxvY2F0aW9uKCkpKTsKIApAQCAtMjU4OSw3
ICsyNTg5LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rp
b25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IExheW8KICAgICB9CiAgICAgCiAgICAgaWYg
KHBhcmVudExheWVyKQotICAgICAgICBwYXJlbnRMYXllci0+c2Nyb2xsUmVjdFRvVmlzaWJsZShy
ZXZlYWxNb2RlLCBuZXdSZWN0LCBpbnNpZGVGaXhlZCwgYWxpZ25YLCBhbGlnblksIHNob3VsZEFs
bG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcpOworICAgICAgICBwYXJlbnRMYXllci0+c2Nyb2xsUmVj
dFRvVmlzaWJsZShuZXdSZWN0LCBpbnNpZGVGaXhlZCwgb3B0aW9ucyk7CiB9CiAKIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzQWZ0ZXJTY3JvbGwoKQpAQCAtMjcxMiw3
ICsyNzEyLDcgQEAgTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6Z2V0UmVjdFRvRXhwb3NlKGNvbnN0
IExheW91dFJlY3QgJnZpc2libGVSZWN0LCBjb25zdCBMYXkKIHZvaWQgUmVuZGVyTGF5ZXI6OmF1
dG9zY3JvbGwoY29uc3QgSW50UG9pbnQmIHBvc2l0aW9uSW5XaW5kb3cpCiB7CiAgICAgSW50UG9p
bnQgY3VycmVudERvY3VtZW50UG9zaXRpb24gPSByZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXco
KS53aW5kb3dUb0NvbnRlbnRzKHBvc2l0aW9uSW5XaW5kb3cpOwotICAgIHNjcm9sbFJlY3RUb1Zp
c2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBMYXlvdXRSZWN0KGN1cnJlbnREb2N1
bWVudFBvc2l0aW9uLCBMYXlvdXRTaXplKDEsIDEpKSwgZmFsc2UsIFNjcm9sbEFsaWdubWVudDo6
YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVk
LCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMpOworICAgIHNjcm9sbFJlY3RU
b1Zpc2libGUoTGF5b3V0UmVjdChjdXJyZW50RG9jdW1lbnRQb3NpdGlvbiwgTGF5b3V0U2l6ZSgx
LCAxKSksIGZhbHNlLCB7IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCwgU2Nyb2xsQWxpZ25t
ZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZO
ZWVkZWQsIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmc6OlllcyB9KTsKIH0KIAogYm9v
bCBSZW5kZXJMYXllcjo6Y2FuUmVzaXplKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggZWI2ODNjY2NlMmUuLjkwZWIzYTZhNTc1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtMTIwLDYgKzEyMCwxMyBAQCBlbnVtIGNsYXNz
IFJlcXVlc3RTdGF0ZSB7CiAgICAgVW5kZXRlcm1pbmVkCiB9OwogCitzdHJ1Y3QgU2Nyb2xsUmVj
dFRvVmlzaWJsZU9wdGlvbnMgeworICAgIFNlbGVjdGlvblJldmVhbE1vZGUgcmV2ZWFsTW9kZSB7
IFNlbGVjdGlvblJldmVhbE1vZGU6OlJldmVhbCB9OworICAgIGNvbnN0IFNjcm9sbEFsaWdubWVu
dCYgYWxpZ25YIHsgU2Nyb2xsQWxpZ25tZW50OjphbGlnbkNlbnRlcklmTmVlZGVkIH07CisgICAg
Y29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblkgeyBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2Vu
dGVySWZOZWVkZWQgfTsKKyAgICBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHNob3Vs
ZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgeyBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xs
aW5nOjpObyB9OworfTsKKwogY2xhc3MgUmVuZGVyTGF5ZXIgZmluYWwgOiBwdWJsaWMgU2Nyb2xs
YWJsZUFyZWEgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtMjE4
LDcgKzIyNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGF2YWlsYWJsZUNvbnRlbnRTaXplQ2hhbmdl
ZChBdmFpbGFibGVTaXplQ2hhbmdlUmVhc29uKSBvdmVycmlkZTsKIAogICAgIC8vICJhYnNvbHV0
ZVJlY3QiIGlzIGluIHNjYWxlZCBkb2N1bWVudCBjb29yZGluYXRlcy4KLSAgICB2b2lkIHNjcm9s
bFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYWJz
b2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWdu
WCwgY29uc3QgU2Nyb2xsQWxpZ25tZW50JiBhbGlnblksIFNob3VsZEFsbG93Q3Jvc3NPcmlnaW5T
Y3JvbGxpbmcpOworICAgIHZvaWQgc2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlvdXRSZWN0
JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RUb1Zpc2li
bGVPcHRpb25zJik7CiAKICAgICBib29sIHNjcm9sbHNPdmVyZmxvdygpIGNvbnN0OwogICAgIGJv
b2wgaGFzU2Nyb2xsYmFycygpIGNvbnN0IHsgcmV0dXJuIG1faEJhciB8fCBtX3ZCYXI7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggY2RiMDI2MjA1M2Iu
LmZhN2FiNDRjZDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtNDE0LDE2ICs0MTQsMTYgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlck9iamVjdDo6ZW5jbG9z
aW5nTGF5ZXIoKSBjb25zdAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1ib29sIFJlbmRlck9i
amVjdDo6c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUs
IGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3Qg
U2Nyb2xsQWxpZ25tZW50JiBhbGlnblgsIGNvbnN0IFNjcm9sbEFsaWdubWVudCYgYWxpZ25ZLCBT
aG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHNob3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3Jv
bGxpbmcpCitib29sIFJlbmRlck9iamVjdDo6c2Nyb2xsUmVjdFRvVmlzaWJsZShjb25zdCBMYXlv
dXRSZWN0JiBhYnNvbHV0ZVJlY3QsIGJvb2wgaW5zaWRlRml4ZWQsIGNvbnN0IFNjcm9sbFJlY3RU
b1Zpc2libGVPcHRpb25zJiBvcHRpb25zKQogewotICAgIGlmIChyZXZlYWxNb2RlID09IFNlbGVj
dGlvblJldmVhbE1vZGU6OkRvTm90UmV2ZWFsKQorICAgIGlmIChvcHRpb25zLnJldmVhbE1vZGUg
PT0gU2VsZWN0aW9uUmV2ZWFsTW9kZTo6RG9Ob3RSZXZlYWwpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdMYXllciA9IHRoaXMtPmVuY2xvc2luZ0xh
eWVyKCk7CiAgICAgaWYgKCFlbmNsb3NpbmdMYXllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgZW5jbG9zaW5nTGF5ZXItPnNjcm9sbFJlY3RUb1Zpc2libGUocmV2ZWFsTW9kZSwgYWJz
b2x1dGVSZWN0LCBpbnNpZGVGaXhlZCwgYWxpZ25YLCBhbGlnblksIHNob3VsZEFsbG93Q3Jvc3NP
cmlnaW5TY3JvbGxpbmcpOworICAgIGVuY2xvc2luZ0xheWVyLT5zY3JvbGxSZWN0VG9WaXNpYmxl
KGFic29sdXRlUmVjdCwgaW5zaWRlRml4ZWQsIG9wdGlvbnMpOwogICAgIHJldHVybiB0cnVlOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMjUxNjI1ODNk
NTYuLjc2NDJmNTg0NmQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5o
CkBAIC04Myw2ICs4Myw4IEBAIGNvbnN0IGludCBjYXJldFdpZHRoID0gMTsKIAogZW51bSBjbGFz
cyBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nIHsgTm8sIFllcyB9OwogCitzdHJ1Y3Qg
U2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnM7CisKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBP
UlQpCiBzdHJ1Y3QgQW5ub3RhdGVkUmVnaW9uVmFsdWUgewogICAgIGJvb2wgb3BlcmF0b3I9PShj
b25zdCBBbm5vdGF0ZWRSZWdpb25WYWx1ZSYgbykgY29uc3QKQEAgLTE1OCw3ICsxNjAsNyBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0xheWVyKCkg
Y29uc3Q7CiAKICAgICAvLyBTY3JvbGxpbmcgaXMgYSBSZW5kZXJCb3ggY29uY2VwdCwgaG93ZXZl
ciBzb21lIGNvZGUganVzdCBjYXJlcyBhYm91dCByZWN1cnNpdmVseSBzY3JvbGxpbmcgb3VyIGVu
Y2xvc2luZyBTY3JvbGxhYmxlQXJlYShzKS4KLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9s
bFJlY3RUb1Zpc2libGUoU2VsZWN0aW9uUmV2ZWFsTW9kZSwgY29uc3QgTGF5b3V0UmVjdCYgYWJz
b2x1dGVSZWN0LCBib29sIGluc2lkZUZpeGVkLCBjb25zdCBTY3JvbGxBbGlnbm1lbnQmIGFsaWdu
WCA9IFNjcm9sbEFsaWdubWVudDo6YWxpZ25DZW50ZXJJZk5lZWRlZCwgY29uc3QgU2Nyb2xsQWxp
Z25tZW50JiBhbGlnblkgPSBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduQ2VudGVySWZOZWVkZWQsIFNo
b3VsZEFsbG93Q3Jvc3NPcmlnaW5TY3JvbGxpbmcgPSBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpObyk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN0VG9WaXNpYmxl
KGNvbnN0IExheW91dFJlY3QmIGFic29sdXRlUmVjdCwgYm9vbCBpbnNpZGVGaXhlZCwgY29uc3Qg
U2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMmKTsKIAogICAgIC8vIENvbnZlbmllbmNlIGZ1bmN0
aW9uIGZvciBnZXR0aW5nIHRvIHRoZSBuZWFyZXN0IGVuY2xvc2luZyBib3ggb2YgYSBSZW5kZXJP
YmplY3QuCiAgICAgV0VCQ09SRV9FWFBPUlQgUmVuZGVyQm94JiBlbmNsb3NpbmdCb3goKSBjb25z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCA5ODgxM2U0ZTMzNy4uNjBiZjk3ZTlh
ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0w
OS0wNiAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGlnYWxpYS5jb20+CisKKyAgICAgICAgR3JvdXAg
b3B0aW9ucyBvZiBzY3JvbGxSZWN0VG9WaXNpYmxlIGludG8gYSBzdHJ1Y3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTM1MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5t
bTogQWRkIGhlYWRlciB0byB1c2UgU2Nyb2xsUmVjdFRvVmlzaWJsZU9wdGlvbnMuCisgICAgICAg
ICgtW1dlYkZyYW1lIF9zY3JvbGxET01SYW5nZVRvVmlzaWJsZTpdKTogUGFzcyBvcHRpb25zIHZp
YSBhIHN0cnVjdC4KKyAgICAgICAgKC1bV2ViRnJhbWUgX3Njcm9sbERPTVJhbmdlVG9WaXNpYmxl
OndpdGhJbnNldDpdKTogRGl0dG8uCisKIDIwMTgtMDktMDQgIEZyZWRlcmljIFdhbmcgIDxmd2Fu
Z0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBiYXNpYyBzdXBwb3J0IGZvciBTY3JvbGxJbnRv
Vmlld09wdGlvbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CmluZGV4IDg2MGRiMjkwZTEwLi5jNWMyNWRlNWY4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC04OSw2ICs4OSw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsdWdpbkRh
dGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvUHJpbnRDb250ZXh0Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1JlbmRlckxheWVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlclZpZXcuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVuZGVyV2lkZ2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1JlbmRlcmVkRG9jdW1l
bnRNYXJrZXIuaD4KQEAgLTc0MSwxMiArNzQyLDEyIEBAIHN0YXRpYyBpbmxpbmUgV2ViRGF0YVNv
dXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAgICAKICAgICBp
ZiAoc3RhcnROb2RlICYmIHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKSkgewogI2lmICFQTEFURk9STShJ
T1MpCi0gICAgICAgIHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShT
ZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGVuY2xvc2luZ0ludFJlY3QocmFuZ2VSZWN0KSwg
aW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xs
QWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Ny
b2xsaW5nOjpZZXMpOworICAgICAgICBzdGFydE5vZGUtPnJlbmRlcmVyKCktPnNjcm9sbFJlY3RU
b1Zpc2libGUoZW5jbG9zaW5nSW50UmVjdChyYW5nZVJlY3QpLCBpbnNpZGVGaXhlZCwgeyBTZWxl
Y3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJZk5l
ZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRBbGxvd0Ny
b3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMgfSk7CiAjZWxzZQogICAgICAgICBSZW5kZXJMYXllciog
bGF5ZXIgPSBzdGFydE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xheWVyKCk7CiAgICAgICAg
IGlmIChsYXllcikgewogICAgICAgICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hl
blNjcm9sbGluZyh0cnVlKTsKLSAgICAgICAgICAgIHN0YXJ0Tm9kZS0+cmVuZGVyZXIoKS0+c2Ny
b2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZlYWwsIGVuY2xvc2luZ0lu
dFJlY3QocmFuZ2VSZWN0KSwgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0Vk
Z2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlmTmVlZGVkLCBTaG91bGRB
bGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMpOworICAgICAgICAgICAgc3RhcnROb2RlLT5y
ZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGVuY2xvc2luZ0ludFJlY3QocmFuZ2VSZWN0
KSwgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2ZWFsLCBTY3JvbGxBbGln
bm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVudDo6YWxpZ25Ub0VkZ2VJ
Zk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6WWVzIH0pOwogICAgICAg
ICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiAg
ICAgICAgICAgICBfcHJpdmF0ZS0+Y29yZUZyYW1lLT5zZWxlY3Rpb24oKS5zZXRDYXJldFJlY3RO
ZWVkc1VwZGF0ZSgpOwogICAgICAgICAgICAgX3ByaXZhdGUtPmNvcmVGcmFtZS0+c2VsZWN0aW9u
KCkudXBkYXRlQXBwZWFyYW5jZSgpOwpAQCAtNzY2LDcgKzc2Nyw3IEBAIHN0YXRpYyBpbmxpbmUg
V2ViRGF0YVNvdXJjZSAqZGF0YVNvdXJjZShEb2N1bWVudExvYWRlciogbG9hZGVyKQogICAgICAg
ICBSZW5kZXJMYXllciogbGF5ZXIgPSBzdGFydE5vZGUtPnJlbmRlcmVyKCktPmVuY2xvc2luZ0xh
eWVyKCk7CiAgICAgICAgIGlmIChsYXllcikgewogICAgICAgICAgICAgbGF5ZXItPnNldEFkanVz
dEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyh0cnVlKTsKLSAgICAgICAgICAgIHN0YXJ0Tm9kZS0+
cmVuZGVyZXIoKS0+c2Nyb2xsUmVjdFRvVmlzaWJsZShTZWxlY3Rpb25SZXZlYWxNb2RlOjpSZXZl
YWwsIGVuY2xvc2luZ0ludFJlY3QocmFuZ2VSZWN0KSwgaW5zaWRlRml4ZWQsIFNjcm9sbEFsaWdu
bWVudDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2Nyb2xsQWxpZ25tZW50OjphbGlnblRvRWRnZUlm
TmVlZGVkLCBTaG91bGRBbGxvd0Nyb3NzT3JpZ2luU2Nyb2xsaW5nOjpZZXMpOworICAgICAgICAg
ICAgc3RhcnROb2RlLT5yZW5kZXJlcigpLT5zY3JvbGxSZWN0VG9WaXNpYmxlKGVuY2xvc2luZ0lu
dFJlY3QocmFuZ2VSZWN0KSwgaW5zaWRlRml4ZWQsIHsgU2VsZWN0aW9uUmV2ZWFsTW9kZTo6UmV2
ZWFsLCBTY3JvbGxBbGlnbm1lbnQ6OmFsaWduVG9FZGdlSWZOZWVkZWQsIFNjcm9sbEFsaWdubWVu
dDo6YWxpZ25Ub0VkZ2VJZk5lZWRlZCwgU2hvdWxkQWxsb3dDcm9zc09yaWdpblNjcm9sbGluZzo6
WWVzfSk7CiAgICAgICAgICAgICBsYXllci0+c2V0QWRqdXN0Rm9ySU9TQ2FyZXRXaGVuU2Nyb2xs
aW5nKGZhbHNlKTsKIAogICAgICAgICAgICAgRnJhbWUgKmNvcmVGcmFtZSA9IGNvcmUoc2VsZik7
Ci0tIAoyLjE4LjAKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>