<?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>100011</bug_id>
          
          <creation_ts>2012-10-22 09:51:00 -0700</creation_ts>
          <short_desc>REGRESSION(r132072): Made most of the tests crash on the WK2 bot. (Requested by rakuco on #webkit).</short_desc>
          <delta_ts>2012-10-22 09:53:40 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99594</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>kenneth</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747636</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 09:51:00 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/132072 broke the build:
Made most of the tests crash on the WK2 bot. (Requested by rakuco on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747639</commentid>
    <comment_count>1</comment_count>
      <attachid>169931</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-22 09:51:43 -0700</bug_when>
    <thetext>Created attachment 169931
ROLLOUT of r132072

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747641</commentid>
    <comment_count>2</comment_count>
      <attachid>169931</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-22 09:53:33 -0700</bug_when>
    <thetext>Comment on attachment 169931
ROLLOUT of r132072

Clearing flags on attachment: 169931

Committed r132084: &lt;http://trac.webkit.org/changeset/132084&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747642</commentid>
    <comment_count>3</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-10-22 09:53:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169931</attachid>
            <date>2012-10-22 09:51:43 -0700</date>
            <delta_ts>2012-10-22 09:53:33 -0700</delta_ts>
            <desc>ROLLOUT of r132072</desc>
            <filename>bug-100011-20121022165809.patch</filename>
            <type>text/plain</type>
            <size>40190</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDRhZmYxM2VkZmFkMzhl
NWU3NDVkNjE0ODlmZjMwY2ZlOTMwZWQ0ZS4uYWU4YTJkNTdlY2UyZTc5MzllOGNlNWIwZTc3NWZh
N2I0MzM0Nzg2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDEyLTEwLTIyICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMyMDcyLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzIwNzIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMDAxMQorCisgICAgICAgIE1hZGUgbW9zdCBvZiB0aGUgdGVzdHMgY3Jhc2gg
b24gdGhlIFdLMiBib3QuIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgcmFrdWNvIG9uICN3ZWJraXQp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5jcHA6CisgICAgICAgIChFd2tf
Q29udGV4dCk6CisgICAgICAgIChFd2tfQ29udGV4dDo6RXdrX0NvbnRleHQpOgorICAgICAgICAo
ZXdrX2NvbnRleHRfcmVmKToKKyAgICAgICAgKGV3a19jb250ZXh0X3VucmVmKToKKyAgICAgICAg
KGV3a19jb250ZXh0X2Nvb2tpZV9tYW5hZ2VyX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9m
YXZpY29uX2RhdGFiYXNlX2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0
KToKKyAgICAgICAgKGV3a19jb250ZXh0X25ld19mcm9tX1dLQ29udGV4dCk6CisgICAgICAgIChl
d2tfY29udGV4dF9kb3dubG9hZF9qb2JfYWRkKToKKyAgICAgICAgKGV3a19jb250ZXh0X2Rvd25s
b2FkX2pvYl9nZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92ZSk6
CisgICAgICAgIChld2tfY29udGV4dF9yZXF1ZXN0X21hbmFnZXJfZ2V0KToKKyAgICAgICAgKGV3
a19jb250ZXh0X3VybF9zY2hlbWVfcmVxdWVzdF9yZWNlaXZlZCk6CisgICAgICAgIChld2tfY29u
dGV4dF9kZWZhdWx0X2dldCk6CisgICAgICAgIChld2tfY29udGV4dF9uZXcpOgorICAgICAgICAo
ZXdrX2NvbnRleHRfbmV3X3dpdGhfaW5qZWN0ZWRfYnVuZGxlX3BhdGgpOgorICAgICAgICAoZXdr
X2NvbnRleHRfdXJsX3NjaGVtZV9yZWdpc3Rlcik6CisgICAgICAgIChld2tfY29udGV4dF92aWJy
YXRpb25fY2xpZW50X2NhbGxiYWNrc19zZXQpOgorICAgICAgICAoZXdrX2NvbnRleHRfaGlzdG9y
eV9jYWxsYmFja3Nfc2V0KToKKyAgICAgICAgKGV3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X2dl
dCk6CisgICAgICAgIChld2tfY29udGV4dF92aXNpdGVkX2xpbmtfYWRkKToKKyAgICAgICAgKGV3
a19jb250ZXh0X2NhY2hlX21vZGVsX3NldCk6CisgICAgICAgIChld2tfY29udGV4dF9jYWNoZV9t
b2RlbF9nZXQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25s
b2FkX2NsaWVudC5jcHA6CisgICAgICAgIChkZWNpZGVEZXN0aW5hdGlvbldpdGhTdWdnZXN0ZWRG
aWxlbmFtZSk6CisgICAgICAgIChkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoZGlkQ3Jl
YXRlRGVzdGluYXRpb24pOgorICAgICAgICAoZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoZGlk
RmFpbCk6CisgICAgICAgIChkaWRDYW5jZWwpOgorICAgICAgICAoZGlkRmluaXNoKToKKyAgICAg
ICAgKGV3a19jb250ZXh0X2Rvd25sb2FkX2NsaWVudF9hdHRhY2gpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcDoKKyAgICAgICAgKGdl
dEV3a0hpc3RvcnlEZWxlZ2F0ZSk6CisgICAgICAgIChkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9u
RGF0YSk6CisgICAgICAgIChkaWRQZXJmb3JtQ2xpZW50UmVkaXJlY3QpOgorICAgICAgICAoZGlk
UGVyZm9ybVNlcnZlclJlZGlyZWN0KToKKyAgICAgICAgKGRpZFVwZGF0ZUhpc3RvcnlUaXRsZSk6
CisgICAgICAgIChwb3B1bGF0ZVZpc2l0ZWRMaW5rcyk6CisgICAgICAgIChld2tfY29udGV4dF9o
aXN0b3J5X2NsaWVudF9hdHRhY2gpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0X3ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dF9yZXF1ZXN0X21hbmFnZXJfY2xpZW50LmNwcDoKKyAgICAgICAgKGRpZFJlY2VpdmVVUklSZXF1
ZXN0KToKKyAgICAgICAgKGV3a19jb250ZXh0X3JlcXVlc3RfbWFuYWdlcl9jbGllbnRfYXR0YWNo
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChF
d2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOjpF
d2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhOjp+
RXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKF9ld2tfdmlld19wcml2X2RlbCk6Cisg
ICAgICAgIChfZXdrX3ZpZXdfaW5pdGlhbGl6ZSk6CisgICAgICAgIChld2tfdmlld19iYXNlX2Fk
ZCk6CisgICAgICAgIChld2tfdmlld19hZGRfd2l0aF9jb250ZXh0KToKKyAgICAgICAgKGV3a192
aWV3X2NvbnRleHRfZ2V0KToKKyAgICAgICAgKGV3a192aWV3X3VwZGF0ZV9pY29uKToKKwogMjAx
Mi0xMC0yMiAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggMDU0YmZjYmY3NGU3NTllZjZkOTcy
NzU0OTZmMTBkNWYzMjVjODE5Yi4uMGNhNzU2OWI5YTc2MDczYjA3MGY1MGNkNWM2NGNkNDM3MjY5
ZjdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNs
aWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VD
bGllbnRJbXBsLmNwcApAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmNv
dW50U3RyaW5nTWF0Y2hlc0luQ3VzdG9tUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiwgRmlu
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94
eSogZG93bmxvYWQpCiB7CiAgICAgUmVmUHRyPEV3a19Eb3dubG9hZF9Kb2I+IGV3a0Rvd25sb2Fk
ID0gRXdrX0Rvd25sb2FkX0pvYjo6Y3JlYXRlKGRvd25sb2FkLCBtX3ZpZXdXaWRnZXQpOwotICAg
IGV3a192aWV3X2NvbnRleHRfZ2V0KG1fdmlld1dpZGdldCktPmFkZERvd25sb2FkSm9iKGV3a0Rv
d25sb2FkLmdldCgpKTsKKyAgICBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfYWRkKGV3a192aWV3
X2NvbnRleHRfZ2V0KG1fdmlld1dpZGdldCksIGV3a0Rvd25sb2FkLmdldCgpKTsKIH0KIAogI2lm
IFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCmluZGV4IDM1ZmMxNTczZDA2MGExYTkwYmI2Y2NiMmQw
MWM4ZDhhZDcwYzYyMTUuLjlmYjg4OTIxM2FlYzk2YzVmMTJiMmVlNmNjNTgyYWQ4YjViM2RhNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dC5j
cHAKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldl
YkNvbnRleHQuaCIKICNpbmNsdWRlICJXZWJJY29uRGF0YWJhc2UuaCIKLSNpbmNsdWRlICJXZWJT
b3VwUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X2Rvd25sb2Fk
X2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRf
cHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a19jb250ZXh0X3ByaXZhdGUuaCIKQEAgLTcwLDEzMCAr
NjksNzUgQEAgc3RydWN0IEV3a19VcmxfU2NoZW1lX0hhbmRsZXIgewogICAgIHsgfQogfTsKIAot
RXdrX0NvbnRleHQ6OkV3a19Db250ZXh0KFdLQ29udGV4dFJlZiBjb250ZXh0KQotICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCi0gICAgLCBtX3JlcXVlc3RNYW5hZ2VyKFdLQ29udGV4dEdldFNvdXBS
ZXF1ZXN0TWFuYWdlcihjb250ZXh0KSkKLSAgICAsIG1faGlzdG9yeUNsaWVudCgpCi17Cit0eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyPiBVUkxTY2hlbWVIYW5k
bGVyTWFwOworCitzdHJ1Y3QgRXdrX0NvbnRleHQgeworICAgIHVuc2lnbmVkIF9fcmVmOyAvKio8
IHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIG9iamVjdCAqLworICAgIFdLUmV0YWluUHRyPFdL
Q29udGV4dFJlZj4gY29udGV4dDsKKworICAgIE93blB0cjxFd2tfQ29va2llX01hbmFnZXI+IGNv
b2tpZU1hbmFnZXI7CisgICAgT3duUHRyPEV3a19GYXZpY29uX0RhdGFiYXNlPiBmYXZpY29uRGF0
YWJhc2U7CiAjaWYgRU5BQkxFKEJBVFRFUllfU1RBVFVTKQotICAgIG1fYmF0dGVyeVByb3ZpZGVy
ID0gQmF0dGVyeVByb3ZpZGVyOjpjcmVhdGUoY29udGV4dCk7CisgICAgUmVmUHRyPEJhdHRlcnlQ
cm92aWRlcj4gYmF0dGVyeVByb3ZpZGVyOwogI2VuZGlmCi0KICNpZiBFTkFCTEUoTkVUV09SS19J
TkZPKQotICAgIG1fbmV0d29ya0luZm9Qcm92aWRlciA9IE5ldHdvcmtJbmZvUHJvdmlkZXI6OmNy
ZWF0ZShjb250ZXh0KTsKKyAgICBSZWZQdHI8TmV0d29ya0luZm9Qcm92aWRlcj4gbmV0d29ya0lu
Zm9Qcm92aWRlcjsKICNlbmRpZgotCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKLSAgICBtX3ZpYnJh
dGlvblByb3ZpZGVyID0gVmlicmF0aW9uUHJvdmlkZXI6OmNyZWF0ZShjb250ZXh0KTsKKyAgICBS
ZWZQdHI8VmlicmF0aW9uUHJvdmlkZXI+IHZpYnJhdGlvblByb3ZpZGVyOwogI2VuZGlmCisgICAg
SGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPEV3a19Eb3dubG9hZF9Kb2I+ID4gZG93bmxvYWRKb2Jz
OwogCi0jaWYgRU5BQkxFKE1FTU9SWV9TQU1QTEVSKQotICAgIHN0YXRpYyBib29sIGluaXRpYWxp
emVNZW1vcnlTYW1wbGVyID0gZmFsc2U7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIgZW52aXJvbm1l
bnRWYXJpYWJsZVtdID0gIlNBTVBMRV9NRU1PUlkiOworICAgIFdLUmV0YWluUHRyPFdLU291cFJl
cXVlc3RNYW5hZ2VyUmVmPiByZXF1ZXN0TWFuYWdlcjsKKyAgICBVUkxTY2hlbWVIYW5kbGVyTWFw
IHVybFNjaGVtZUhhbmRsZXJzOwogCi0gICAgaWYgKCFpbml0aWFsaXplTWVtb3J5U2FtcGxlciAm
JiBnZXRlbnYoZW52aXJvbm1lbnRWYXJpYWJsZSkpIHsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tE
b3VibGVSZWY+IGludGVydmFsKEFkb3B0V0ssIFdLRG91YmxlQ3JlYXRlKDAuMCkpOwotICAgICAg
ICBXS0NvbnRleHRTdGFydE1lbW9yeVNhbXBsZXIoY29udGV4dCwgaW50ZXJ2YWwuZ2V0KCkpOwot
ICAgICAgICBpbml0aWFsaXplTWVtb3J5U2FtcGxlciA9IHRydWU7Ci0gICAgfQotI2VuZGlmCisg
ICAgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQgaGlzdG9yeUNsaWVudDsKIAotI2lmIEVOQUJM
RShTUEVMTENIRUNLKQotICAgIGV3a190ZXh0X2NoZWNrZXJfY2xpZW50X2F0dGFjaCgpOwotICAg
IGlmIChld2tfc2V0dGluZ3NfY29udGludW91c19zcGVsbF9jaGVja2luZ19lbmFibGVkX2dldCgp
KSB7Ci0gICAgICAgIC8vIExvYWQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuCi0gICAgICAgIGV3a19z
ZXR0aW5nc19zcGVsbF9jaGVja2luZ19sYW5ndWFnZXNfc2V0KDApOwotICAgIH0KKyAgICBFd2tf
Q29udGV4dChXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHRSZWYpCisgICAgICAgIDog
X19yZWYoMSkKKyAgICAgICAgLCBjb250ZXh0KGNvbnRleHRSZWYpCisgICAgICAgICwgcmVxdWVz
dE1hbmFnZXIoV0tDb250ZXh0R2V0U291cFJlcXVlc3RNYW5hZ2VyKGNvbnRleHRSZWYuZ2V0KCkp
KQorICAgICAgICAsIGhpc3RvcnlDbGllbnQoKQorICAgIHsKKyNpZiBFTkFCTEUoQkFUVEVSWV9T
VEFUVVMpCisgICAgICAgIGJhdHRlcnlQcm92aWRlciA9IEJhdHRlcnlQcm92aWRlcjo6Y3JlYXRl
KGNvbnRleHQuZ2V0KCkpOwogI2VuZGlmCiAKLSAgICBld2tfY29udGV4dF9yZXF1ZXN0X21hbmFn
ZXJfY2xpZW50X2F0dGFjaCh0aGlzKTsKLSAgICBld2tfY29udGV4dF9kb3dubG9hZF9jbGllbnRf
YXR0YWNoKHRoaXMpOwotICAgIGV3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X2F0dGFjaCh0aGlz
KTsKLX0KLQotRXdrX0NvbnRleHQ6On5Fd2tfQ29udGV4dCgpCi17Ci19Ci0KLVBhc3NSZWZQdHI8
RXdrX0NvbnRleHQ+IEV3a19Db250ZXh0OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBpbmplY3RlZEJ1
bmRsZVBhdGgpCi17ICAgCi0gICAgaWYgKCFmaWxlRXhpc3RzKGluamVjdGVkQnVuZGxlUGF0aCkp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGluamVj
dGVkQnVuZGxlUGF0aFdLID0gYWRvcHRXSyh0b0NvcGllZEFQSShpbmplY3RlZEJ1bmRsZVBhdGgp
KTsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IGNvbnRleHRXSyA9IGFkb3B0V0soV0tD
b250ZXh0Q3JlYXRlV2l0aEluamVjdGVkQnVuZGxlUGF0aChpbmplY3RlZEJ1bmRsZVBhdGhXSy5n
ZXQoKSkpOwotCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfQ29udGV4dChjb250ZXh0V0su
Z2V0KCkpKTsKLX0KLQotUGFzc1JlZlB0cjxFd2tfQ29udGV4dD4gRXdrX0NvbnRleHQ6OmRlZmF1
bHRDb250ZXh0KCkKLXsKLSAgICBzdGF0aWMgUmVmUHRyPEV3a19Db250ZXh0PiBkZWZhdWx0SW5z
dGFuY2UgPSBjcmVhdGUoYWRvcHRXSyhXS0NvbnRleHRDcmVhdGUoKSkuZ2V0KCkpOwotCi0gICAg
cmV0dXJuIGRlZmF1bHRJbnN0YW5jZTsKLX0KLQotRXdrX0Nvb2tpZV9NYW5hZ2VyKiBFd2tfQ29u
dGV4dDo6Y29va2llTWFuYWdlcigpCi17Ci0gICAgaWYgKCFtX2Nvb2tpZU1hbmFnZXIpCi0gICAg
ICAgIG1fY29va2llTWFuYWdlciA9IEV3a19Db29raWVfTWFuYWdlcjo6Y3JlYXRlKFdLQ29udGV4
dEdldENvb2tpZU1hbmFnZXIobV9jb250ZXh0LmdldCgpKSk7Ci0KLSAgICByZXR1cm4gbV9jb29r
aWVNYW5hZ2VyLmdldCgpOwotfQotCi1Fd2tfRmF2aWNvbl9EYXRhYmFzZSogRXdrX0NvbnRleHQ6
OmZhdmljb25EYXRhYmFzZSgpCi17Ci0gICAgaWYgKCFtX2Zhdmljb25EYXRhYmFzZSkgewotICAg
ICAgICBXS1JldGFpblB0cjxXS0ljb25EYXRhYmFzZVJlZj4gaWNvbkRhdGFiYXNlID0gV0tDb250
ZXh0R2V0SWNvbkRhdGFiYXNlKG1fY29udGV4dC5nZXQoKSk7Ci0gICAgICAgIC8vIFNldCB0aGUg
ZGF0YWJhc2UgcGF0aCBpZiBpdCBpcyBub3Qgb3BlbiB5ZXQuCi0gICAgICAgIGlmICghdG9JbXBs
KGljb25EYXRhYmFzZS5nZXQoKSktPmlzT3BlbigpKSB7Ci0gICAgICAgICAgICBXZWJDb250ZXh0
KiB3ZWJDb250ZXh0ID0gdG9JbXBsKG1fY29udGV4dC5nZXQoKSk7Ci0gICAgICAgICAgICBTdHJp
bmcgZGF0YWJhc2VQYXRoID0gd2ViQ29udGV4dC0+aWNvbkRhdGFiYXNlUGF0aCgpICsgIi8iICsg
V2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJhc2VGaWxlbmFtZSgpOwotICAgICAg
ICAgICAgd2ViQ29udGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0aChkYXRhYmFzZVBhdGgpOwotICAg
ICAgICB9Ci0gICAgICAgIG1fZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6
OmNyZWF0ZShpY29uRGF0YWJhc2UuZ2V0KCkpOwotICAgIH0KLQotICAgIHJldHVybiBtX2Zhdmlj
b25EYXRhYmFzZS5nZXQoKTsKLX0KLQotYm9vbCBFd2tfQ29udGV4dDo6cmVnaXN0ZXJVUkxTY2hl
bWUoY29uc3QgU3RyaW5nJiBzY2hlbWUsIEV3a19VcmxfU2NoZW1lX1JlcXVlc3RfQ2IgY2FsbGJh
Y2ssIHZvaWQqIHVzZXJEYXRhKQotewotICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChjYWxsYmFjaywgZmFsc2UpOwotCi0gICAgbV91cmxTY2hlbWVIYW5kbGVycy5zZXQoc2NoZW1l
LCBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyKGNhbGxiYWNrLCB1c2VyRGF0YSkpOwotICAgIHRvSW1w
bChtX3JlcXVlc3RNYW5hZ2VyLmdldCgpKS0+cmVnaXN0ZXJVUklTY2hlbWUoc2NoZW1lKTsKLQot
ICAgIHJldHVybiB0cnVlOwotfQorI2lmIEVOQUJMRShORVRXT1JLX0lORk8pCisgICAgICAgIG5l
dHdvcmtJbmZvUHJvdmlkZXIgPSBOZXR3b3JrSW5mb1Byb3ZpZGVyOjpjcmVhdGUoY29udGV4dC5n
ZXQoKSk7CisjZW5kaWYKIAogI2lmIEVOQUJMRShWSUJSQVRJT04pCi1QYXNzUmVmUHRyPFZpYnJh
dGlvblByb3ZpZGVyPiBFd2tfQ29udGV4dDo6dmlicmF0aW9uUHJvdmlkZXIoKQotewotICAgIHJl
dHVybiBtX3ZpYnJhdGlvblByb3ZpZGVyOwotfQorICAgICAgICB2aWJyYXRpb25Qcm92aWRlciA9
IFZpYnJhdGlvblByb3ZpZGVyOjpjcmVhdGUoY29udGV4dC5nZXQoKSk7CiAjZW5kaWYKIAotdm9p
ZCBFd2tfQ29udGV4dDo6YWRkVmlzaXRlZExpbmsoY29uc3QgU3RyaW5nJiB2aXNpdGVkVVJMKQot
ewotICAgIHRvSW1wbChtX2NvbnRleHQuZ2V0KCkpLT5hZGRWaXNpdGVkTGluayh2aXNpdGVkVVJM
KTsKLX0KLQotdm9pZCBFd2tfQ29udGV4dDo6c2V0Q2FjaGVNb2RlbChFd2tfQ2FjaGVfTW9kZWwg
Y2FjaGVNb2RlbCkKLXsKLSAgICBXS0NvbnRleHRTZXRDYWNoZU1vZGVsKG1fY29udGV4dC5nZXQo
KSwgc3RhdGljX2Nhc3Q8RXdrX0NhY2hlX01vZGVsPihjYWNoZU1vZGVsKSk7Ci19CisjaWYgRU5B
QkxFKE1FTU9SWV9TQU1QTEVSKQorICAgICAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplTWVtb3J5
U2FtcGxlciA9IGZhbHNlOworICAgICAgICBzdGF0aWMgY29uc3QgY2hhciBlbnZpcm9ubWVudFZh
cmlhYmxlW10gPSAiU0FNUExFX01FTU9SWSI7CiAKLUV3a19DYWNoZV9Nb2RlbCBFd2tfQ29udGV4
dDo6Y2FjaGVNb2RlbCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PEV3a19DYWNo
ZV9Nb2RlbD4oV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChtX2NvbnRleHQuZ2V0KCkpKTsKLX0KKyAg
ICAgICAgaWYgKCFpbml0aWFsaXplTWVtb3J5U2FtcGxlciAmJiBnZXRlbnYoZW52aXJvbm1lbnRW
YXJpYWJsZSkpIHsKKyAgICAgICAgICAgIFdLUmV0YWluUHRyPFdLRG91YmxlUmVmPiBpbnRlcnZh
bChBZG9wdFdLLCBXS0RvdWJsZUNyZWF0ZSgwLjApKTsKKyAgICAgICAgICAgIFdLQ29udGV4dFN0
YXJ0TWVtb3J5U2FtcGxlcihjb250ZXh0LmdldCgpLCBpbnRlcnZhbC5nZXQoKSk7CisgICAgICAg
ICAgICBpbml0aWFsaXplTWVtb3J5U2FtcGxlciA9IHRydWU7CisgICAgICAgIH0KKyNlbmRpZgor
ICAgICAgICBld2tfY29udGV4dF9yZXF1ZXN0X21hbmFnZXJfY2xpZW50X2F0dGFjaCh0aGlzKTsK
KyAgICAgICAgZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50X2F0dGFjaCh0aGlzKTsKKyAgICAg
ICAgZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRfYXR0YWNoKHRoaXMpOworI2lmIEVOQUJMRShT
UEVMTENIRUNLKQorICAgICAgICBld2tfdGV4dF9jaGVja2VyX2NsaWVudF9hdHRhY2goKTsKKyAg
ICAgICAgaWYgKGV3a19zZXR0aW5nc19jb250aW51b3VzX3NwZWxsX2NoZWNraW5nX2VuYWJsZWRf
Z2V0KCkpIHsKKyAgICAgICAgICAgIC8vIExvYWQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2UuCisgICAg
ICAgICAgICBld2tfc2V0dGluZ3Nfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzX3NldCgwKTsKKyAg
ICAgICAgfQorI2VuZGlmCisgICAgfQorfTsKIAogRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X3Jl
ZihFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7Ci0KLSAgICBld2tDb250ZXh0LT5yZWYoKTsKKyAgICAr
K2V3a0NvbnRleHQtPl9fcmVmOwogCiAgICAgcmV0dXJuIGV3a0NvbnRleHQ7CiB9CkBAIC0yMDEs
NDIgKzE0NSw3MiBAQCBFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfcmVmKEV3a19Db250ZXh0KiBl
d2tDb250ZXh0KQogdm9pZCBld2tfY29udGV4dF91bnJlZihFd2tfQ29udGV4dCogZXdrQ29udGV4
dCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tDb250ZXh0KTsKKyAgICBF
SU5BX1NBRkVUWV9PTl9GQUxTRV9SRVRVUk4oZXdrQ29udGV4dC0+X19yZWYgPiAwKTsKKworICAg
IGlmICgtLWV3a0NvbnRleHQtPl9fcmVmKQorICAgICAgICByZXR1cm47CiAKLSAgICBld2tDb250
ZXh0LT5kZXJlZigpOworICAgIGRlbGV0ZSBld2tDb250ZXh0OwogfQogCiBFd2tfQ29va2llX01h
bmFnZXIqIGV3a19jb250ZXh0X2Nvb2tpZV9tYW5hZ2VyX2dldChjb25zdCBFd2tfQ29udGV4dCog
ZXdrQ29udGV4dCkKIHsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29u
dGV4dCwgMCk7CiAKLSAgICByZXR1cm4gY29uc3RfY2FzdDxFd2tfQ29udGV4dCo+KGV3a0NvbnRl
eHQpLT5jb29raWVNYW5hZ2VyKCk7CisgICAgaWYgKCFld2tDb250ZXh0LT5jb29raWVNYW5hZ2Vy
KQorICAgICAgICBjb25zdF9jYXN0PEV3a19Db250ZXh0Kj4oZXdrQ29udGV4dCktPmNvb2tpZU1h
bmFnZXIgPSBFd2tfQ29va2llX01hbmFnZXI6OmNyZWF0ZShXS0NvbnRleHRHZXRDb29raWVNYW5h
Z2VyKGV3a0NvbnRleHQtPmNvbnRleHQuZ2V0KCkpKTsKKworICAgIHJldHVybiBld2tDb250ZXh0
LT5jb29raWVNYW5hZ2VyLmdldCgpOwogfQogCiBFd2tfRmF2aWNvbl9EYXRhYmFzZSogZXdrX2Nv
bnRleHRfZmF2aWNvbl9kYXRhYmFzZV9nZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRleHQp
CiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGV3a0NvbnRleHQsIDApOwog
Ci0gICAgcmV0dXJuIGNvbnN0X2Nhc3Q8RXdrX0NvbnRleHQqPihld2tDb250ZXh0KS0+ZmF2aWNv
bkRhdGFiYXNlKCk7CisgICAgaWYgKCFld2tDb250ZXh0LT5mYXZpY29uRGF0YWJhc2UpIHsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tJY29uRGF0YWJhc2VSZWY+IGljb25EYXRhYmFzZSA9IFdLQ29u
dGV4dEdldEljb25EYXRhYmFzZShld2tDb250ZXh0LT5jb250ZXh0LmdldCgpKTsKKyAgICAgICAg
Ly8gU2V0IHRoZSBkYXRhYmFzZSBwYXRoIGlmIGl0IGlzIG5vdCBvcGVuIHlldC4KKyAgICAgICAg
aWYgKCF0b0ltcGwoaWNvbkRhdGFiYXNlLmdldCgpKS0+aXNPcGVuKCkpIHsKKyAgICAgICAgICAg
IFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSB0b0ltcGwoZXdrQ29udGV4dC0+Y29udGV4dC5nZXQo
KSk7CisgICAgICAgICAgICBTdHJpbmcgZGF0YWJhc2VQYXRoID0gd2ViQ29udGV4dC0+aWNvbkRh
dGFiYXNlUGF0aCgpICsgIi8iICsgV2ViQ29yZTo6SWNvbkRhdGFiYXNlOjpkZWZhdWx0RGF0YWJh
c2VGaWxlbmFtZSgpOworICAgICAgICAgICAgd2ViQ29udGV4dC0+c2V0SWNvbkRhdGFiYXNlUGF0
aChkYXRhYmFzZVBhdGgpOworICAgICAgICB9CisgICAgICAgIGNvbnN0X2Nhc3Q8RXdrX0NvbnRl
eHQqPihld2tDb250ZXh0KS0+ZmF2aWNvbkRhdGFiYXNlID0gRXdrX0Zhdmljb25fRGF0YWJhc2U6
OmNyZWF0ZShpY29uRGF0YWJhc2UuZ2V0KCkpOworICAgIH0KKworICAgIHJldHVybiBld2tDb250
ZXh0LT5mYXZpY29uRGF0YWJhc2UuZ2V0KCk7CiB9CiAKLVdLQ29udGV4dFJlZiBFd2tfQ29udGV4
dDo6d2tDb250ZXh0KCkKK1dLQ29udGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNv
bnN0IEV3a19Db250ZXh0KiBld2tDb250ZXh0KQogewotICAgIHJldHVybiBtX2NvbnRleHQuZ2V0
KCk7CisgICAgcmV0dXJuIGV3a0NvbnRleHQtPmNvbnRleHQuZ2V0KCk7Cit9CisKKy8qKgorICog
QGludGVybmFsCisgKiBDcmVhdGUgRXdrX0NvbnRleHQgZnJvbSBXS0NvbnRleHQuCisgKi8KK0V3
a19Db250ZXh0KiBld2tfY29udGV4dF9uZXdfZnJvbV9XS0NvbnRleHQoV0tDb250ZXh0UmVmIGNv
bnRleHRSZWYpCit7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvbnRleHRS
ZWYsIDApOworCisgICAgcmV0dXJuIG5ldyBFd2tfQ29udGV4dChjb250ZXh0UmVmKTsKIH0KIAog
LyoqCiAgKiBAaW50ZXJuYWwKICAqIFJlZ2lzdGVycyB0aGF0IGEgbmV3IGRvd25sb2FkIGhhcyBi
ZWVuIHJlcXVlc3RlZC4KICAqLwotdm9pZCBFd2tfQ29udGV4dDo6YWRkRG93bmxvYWRKb2IoRXdr
X0Rvd25sb2FkX0pvYiogZXdrRG93bmxvYWQpCit2b2lkIGV3a19jb250ZXh0X2Rvd25sb2FkX2pv
Yl9hZGQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19Eb3dubG9hZF9Kb2IqIGV3a0Rvd25s
b2FkKQogeworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGV3a0NvbnRleHQpOwogICAg
IEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGV3a0Rvd25sb2FkKTsKIAogICAgIHVpbnQ2NF90
IGRvd25sb2FkSWQgPSBld2tEb3dubG9hZC0+aWQoKTsKLSAgICBpZiAobV9kb3dubG9hZEpvYnMu
Y29udGFpbnMoZG93bmxvYWRJZCkpCisgICAgaWYgKGV3a0NvbnRleHQtPmRvd25sb2FkSm9icy5j
b250YWlucyhkb3dubG9hZElkKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kb3dubG9hZEpv
YnMuYWRkKGRvd25sb2FkSWQsIGV3a0Rvd25sb2FkKTsKKyAgICBld2tDb250ZXh0LT5kb3dubG9h
ZEpvYnMuYWRkKGRvd25sb2FkSWQsIGV3a0Rvd25sb2FkKTsKIH0KIAogLyoqCkBAIC0yNDQsOSAr
MjE4LDExIEBAIHZvaWQgRXdrX0NvbnRleHQ6OmFkZERvd25sb2FkSm9iKEV3a19Eb3dubG9hZF9K
b2IqIGV3a0Rvd25sb2FkKQogICogUmV0dXJucyB0aGUgI0V3a19Eb3dubG9hZF9Kb2Igd2l0aCB0
aGUgZ2l2ZW4gQGEgZG93bmxvYWRJZCwgb3IKICAqIEBjIDAgaW4gY2FzZSBvZiBmYWlsdXJlLgog
ICovCi1Fd2tfRG93bmxvYWRfSm9iKiBFd2tfQ29udGV4dDo6ZG93bmxvYWRKb2IodWludDY0X3Qg
ZG93bmxvYWRJZCkKK0V3a19Eb3dubG9hZF9Kb2IqIGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9n
ZXQoY29uc3QgRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIHVpbnQ2NF90IGRvd25sb2FkSWQpCiB7
Ci0gICAgcmV0dXJuIG1fZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElkKS5nZXQoKTsKKyAgICBF
SU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgMCk7CisKKyAgICByZXR1
cm4gZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLmdldChkb3dubG9hZElkKS5nZXQoKTsKIH0KIAog
LyoqCkBAIC0yNTQsOSArMjMwLDEwIEBAIEV3a19Eb3dubG9hZF9Kb2IqIEV3a19Db250ZXh0Ojpk
b3dubG9hZEpvYih1aW50NjRfdCBkb3dubG9hZElkKQogICogUmVtb3ZlcyB0aGUgI0V3a19Eb3du
bG9hZF9Kb2Igd2l0aCB0aGUgZ2l2ZW4gQGEgZG93bmxvYWRJZCBmcm9tIHRoZSBpbnRlcm5hbAog
ICogSGFzaE1hcC4KICAqLwotdm9pZCBFd2tfQ29udGV4dDo6cmVtb3ZlRG93bmxvYWRKb2IodWlu
dDY0X3QgZG93bmxvYWRJZCkKK3ZvaWQgZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92ZShF
d2tfQ29udGV4dCogZXdrQ29udGV4dCwgdWludDY0X3QgZG93bmxvYWRJZCkKIHsKLSAgICBtX2Rv
d25sb2FkSm9icy5yZW1vdmUoZG93bmxvYWRJZCk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oZXdrQ29udGV4dCk7CisgICAgZXdrQ29udGV4dC0+ZG93bmxvYWRKb2JzLnJlbW92ZShk
b3dubG9hZElkKTsKIH0KIAogLyoqCkBAIC0yNjQsOSArMjQxLDkgQEAgdm9pZCBFd2tfQ29udGV4
dDo6cmVtb3ZlRG93bmxvYWRKb2IodWludDY0X3QgZG93bmxvYWRJZCkKICAqCiAgKiBAcGFyYW0g
ZXdrQ29udGV4dCBhICNFd2tfQ29udGV4dCBvYmplY3QuCiAgKi8KLVdLU291cFJlcXVlc3RNYW5h
Z2VyUmVmIEV3a19Db250ZXh0OjpyZXF1ZXN0TWFuYWdlcigpCitXS1NvdXBSZXF1ZXN0TWFuYWdl
clJlZiBld2tfY29udGV4dF9yZXF1ZXN0X21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0KiBl
d2tDb250ZXh0KQogewotICAgIHJldHVybiBtX3JlcXVlc3RNYW5hZ2VyLmdldCgpOworICAgIHJl
dHVybiBld2tDb250ZXh0LT5yZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAogLyoqCkBAIC0yNzYs
MTEgKzI1MywxMiBAQCBXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBFd2tfQ29udGV4dDo6cmVxdWVz
dE1hbmFnZXIoKQogICogQHBhcmFtIGV3a0NvbnRleHQgYSAjRXdrX0NvbnRleHQgb2JqZWN0Lgog
ICogQHBhcmFtIHNjaGVtZVJlcXVlc3QgYSAjRXdrX1VybF9TY2hlbWVfUmVxdWVzdCBvYmplY3Qu
CiAgKi8KLXZvaWQgRXdrX0NvbnRleHQ6OnVybFNjaGVtZVJlcXVlc3RSZWNlaXZlZChFd2tfVXJs
X1NjaGVtZV9SZXF1ZXN0KiBzY2hlbWVSZXF1ZXN0KQordm9pZCBld2tfY29udGV4dF91cmxfc2No
ZW1lX3JlcXVlc3RfcmVjZWl2ZWQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19VcmxfU2No
ZW1lX1JlcXVlc3QqIHNjaGVtZVJlcXVlc3QpCiB7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk4oZXdrQ29udGV4dCk7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2NoZW1l
UmVxdWVzdCk7CiAKLSAgICBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyIGhhbmRsZXIgPSBtX3VybFNj
aGVtZUhhbmRsZXJzLmdldChzY2hlbWVSZXF1ZXN0LT5zY2hlbWUoKSk7CisgICAgRXdrX1VybF9T
Y2hlbWVfSGFuZGxlciBoYW5kbGVyID0gZXdrQ29udGV4dC0+dXJsU2NoZW1lSGFuZGxlcnMuZ2V0
KHNjaGVtZVJlcXVlc3QtPnNjaGVtZSgpKTsKICAgICBpZiAoIWhhbmRsZXIuY2FsbGJhY2spCiAg
ICAgICAgIHJldHVybjsKIApAQCAtMjg5LDI3ICsyNjcsMzggQEAgdm9pZCBFd2tfQ29udGV4dDo6
dXJsU2NoZW1lUmVxdWVzdFJlY2VpdmVkKEV3a19VcmxfU2NoZW1lX1JlcXVlc3QqIHNjaGVtZVJl
cXVlc3QKIAogRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X2RlZmF1bHRfZ2V0KCkKIHsKLSAgICBy
ZXR1cm4gRXdrX0NvbnRleHQ6OmRlZmF1bHRDb250ZXh0KCkubGVha1JlZigpOworICAgIHN0YXRp
YyBFd2tfQ29udGV4dCBkZWZhdWx0Q29udGV4dChhZG9wdFdLKFdLQ29udGV4dENyZWF0ZSgpKSk7
CisKKyAgICByZXR1cm4gJmRlZmF1bHRDb250ZXh0OwogfQogCiBFd2tfQ29udGV4dCogZXdrX2Nv
bnRleHRfbmV3KCkKIHsKLSAgICByZXR1cm4gRXdrX0NvbnRleHQ6OmNyZWF0ZSgpLmxlYWtSZWYo
KTsKKyAgICByZXR1cm4gbmV3IEV3a19Db250ZXh0KGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlKCkp
KTsKIH0KIAogRXdrX0NvbnRleHQqIGV3a19jb250ZXh0X25ld193aXRoX2luamVjdGVkX2J1bmRs
ZV9wYXRoKGNvbnN0IGNoYXIqIHBhdGgpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRV
Uk5fVkFMKHBhdGgsIDApOwogCi0gICAgcmV0dXJuIEV3a19Db250ZXh0OjpjcmVhdGUoU3RyaW5n
Ojpmcm9tVVRGOChwYXRoKSkubGVha1JlZigpOworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVm
PiBwYXRoUmVmKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKHBhdGgpKTsK
KyAgICBpZiAoIWZpbGVFeGlzdHModG9JbXBsKHBhdGhSZWYuZ2V0KCkpLT5zdHJpbmcoKSkpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgcmV0dXJuIG5ldyBFd2tfQ29udGV4dChhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhJbmplY3RlZEJ1bmRsZVBhdGgocGF0aFJlZi5nZXQoKSkpKTsKIH0K
IAogRWluYV9Cb29sIGV3a19jb250ZXh0X3VybF9zY2hlbWVfcmVnaXN0ZXIoRXdrX0NvbnRleHQq
IGV3a0NvbnRleHQsIGNvbnN0IGNoYXIqIHNjaGVtZSwgRXdrX1VybF9TY2hlbWVfUmVxdWVzdF9D
YiBjYWxsYmFjaywgdm9pZCogdXNlckRhdGEpCiB7CiAgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9S
RVRVUk5fVkFMKGV3a0NvbnRleHQsIGZhbHNlKTsKICAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JF
VFVSTl9WQUwoc2NoZW1lLCBmYWxzZSk7CisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5f
VkFMKGNhbGxiYWNrLCBmYWxzZSk7CiAKLSAgICByZXR1cm4gZXdrQ29udGV4dC0+cmVnaXN0ZXJV
UkxTY2hlbWUoU3RyaW5nOjpmcm9tVVRGOChzY2hlbWUpLCBjYWxsYmFjaywgdXNlckRhdGEpOwor
ICAgIGV3a0NvbnRleHQtPnVybFNjaGVtZUhhbmRsZXJzLnNldChTdHJpbmc6OmZyb21VVEY4KHNj
aGVtZSksIEV3a19VcmxfU2NoZW1lX0hhbmRsZXIoY2FsbGJhY2ssIHVzZXJEYXRhKSk7CisgICAg
V0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrU2NoZW1lKEFkb3B0V0ssIFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKHNjaGVtZSkpOworICAgIFdLU291cFJlcXVlc3RNYW5hZ2VyUmVnaXN0
ZXJVUklTY2hlbWUoZXdrQ29udGV4dC0+cmVxdWVzdE1hbmFnZXIuZ2V0KCksIHdrU2NoZW1lLmdl
dCgpKTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlv
bl9jbGllbnRfY2FsbGJhY2tzX3NldChFd2tfQ29udGV4dCogZXdrQ29udGV4dCwgRXdrX1ZpYnJh
dGlvbl9DbGllbnRfVmlicmF0ZV9DYiB2aWJyYXRlLCBFd2tfVmlicmF0aW9uX0NsaWVudF9WaWJy
YXRpb25fQ2FuY2VsX0NiIGNhbmNlbCwgdm9pZCogZGF0YSkKQEAgLTMxNyw3ICszMDYsNyBAQCB2
b2lkIGV3a19jb250ZXh0X3ZpYnJhdGlvbl9jbGllbnRfY2FsbGJhY2tzX3NldChFd2tfQ29udGV4
dCogZXdrQ29udGV4dCwgRXdrX1ZpYgogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOKGV3
a0NvbnRleHQpOwogCiAjaWYgRU5BQkxFKFZJQlJBVElPTikKLSAgICBld2tDb250ZXh0LT52aWJy
YXRpb25Qcm92aWRlcigpLT5zZXRWaWJyYXRpb25DbGllbnRDYWxsYmFja3ModmlicmF0ZSwgY2Fu
Y2VsLCBkYXRhKTsKKyAgICBld2tDb250ZXh0LT52aWJyYXRpb25Qcm92aWRlci0+c2V0VmlicmF0
aW9uQ2xpZW50Q2FsbGJhY2tzKHZpYnJhdGUsIGNhbmNlbCwgZGF0YSk7CiAjZW5kaWYKIH0KIApA
QCAtMzI1LDIyICszMTQsMjggQEAgdm9pZCBld2tfY29udGV4dF9oaXN0b3J5X2NhbGxiYWNrc19z
ZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19IaXN0b3J5X05hdmkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTihld2tDb250ZXh0KTsKIAotICAgIEV3a19Db250ZXh0X0hp
c3RvcnlfQ2xpZW50JiBoaXN0b3J5Q2xpZW50ID0gZXdrQ29udGV4dC0+aGlzdG9yeUNsaWVudCgp
OwotICAgIGhpc3RvcnlDbGllbnQubmF2aWdhdGVfZnVuYyA9IG5hdmlnYXRlOwotICAgIGhpc3Rv
cnlDbGllbnQuY2xpZW50X3JlZGlyZWN0X2Z1bmMgPSBjbGllbnRSZWRpcmVjdDsKLSAgICBoaXN0
b3J5Q2xpZW50LnNlcnZlcl9yZWRpcmVjdF9mdW5jID0gc2VydmVyUmVkaXJlY3Q7Ci0gICAgaGlz
dG9yeUNsaWVudC50aXRsZV91cGRhdGVfZnVuYyA9IHRpdGxlVXBkYXRlOwotICAgIGhpc3RvcnlD
bGllbnQucG9wdWxhdGVfdmlzaXRlZF9saW5rc19mdW5jID0gcG9wdWxhdGVWaXNpdGVkTGlua3M7
Ci0gICAgaGlzdG9yeUNsaWVudC51c2VyX2RhdGEgPSBkYXRhOworICAgIGV3a0NvbnRleHQtPmhp
c3RvcnlDbGllbnQubmF2aWdhdGVfZnVuYyA9IG5hdmlnYXRlOworICAgIGV3a0NvbnRleHQtPmhp
c3RvcnlDbGllbnQuY2xpZW50X3JlZGlyZWN0X2Z1bmMgPSBjbGllbnRSZWRpcmVjdDsKKyAgICBl
d2tDb250ZXh0LT5oaXN0b3J5Q2xpZW50LnNlcnZlcl9yZWRpcmVjdF9mdW5jID0gc2VydmVyUmVk
aXJlY3Q7CisgICAgZXdrQ29udGV4dC0+aGlzdG9yeUNsaWVudC50aXRsZV91cGRhdGVfZnVuYyA9
IHRpdGxlVXBkYXRlOworICAgIGV3a0NvbnRleHQtPmhpc3RvcnlDbGllbnQucG9wdWxhdGVfdmlz
aXRlZF9saW5rc19mdW5jID0gcG9wdWxhdGVWaXNpdGVkTGlua3M7CisgICAgZXdrQ29udGV4dC0+
aGlzdG9yeUNsaWVudC51c2VyX2RhdGEgPSBkYXRhOwogfQogCitjb25zdCBFd2tfQ29udGV4dF9I
aXN0b3J5X0NsaWVudCogZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRfZ2V0KGNvbnN0IEV3a19D
b250ZXh0KiBld2tDb250ZXh0KQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZB
TChld2tDb250ZXh0LCAwKTsKKworICAgIHJldHVybiAmZXdrQ29udGV4dC0+aGlzdG9yeUNsaWVu
dDsKK30KIAogdm9pZCBld2tfY29udGV4dF92aXNpdGVkX2xpbmtfYWRkKEV3a19Db250ZXh0KiBl
d2tDb250ZXh0LCBjb25zdCBjaGFyKiB2aXNpdGVkVVJMKQogewogICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOKGV3a0NvbnRleHQpOwogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJO
KHZpc2l0ZWRVUkwpOwogCi0gICAgZXdrQ29udGV4dC0+YWRkVmlzaXRlZExpbmsodmlzaXRlZFVS
TCk7CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrVmlzaXRlZFVSTChBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyh2aXNpdGVkVVJMKSk7CisgICAgV0tDb250ZXh0
QWRkVmlzaXRlZExpbmsoZXdrQ29udGV4dC0+Y29udGV4dC5nZXQoKSwgd2tWaXNpdGVkVVJMLmdl
dCgpKTsKIH0KIAogLy8gRXdrX0NhY2hlX01vZGVsIGVudW0gdmFsaWRhdGlvbgpAQCAtMzUxLDE2
ICszNDYsMTQgQEAgQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShFV0tfQ0FDSEVfTU9ERUxf
UFJJTUFSWV9XRUJCUk9XU0VSLCBrV0tDYWNoZU1vZGVsUHIKIEVpbmFfQm9vbCBld2tfY29udGV4
dF9jYWNoZV9tb2RlbF9zZXQoRXdrX0NvbnRleHQqIGV3a0NvbnRleHQsIEV3a19DYWNoZV9Nb2Rl
bCBjYWNoZU1vZGVsKQogewogICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTChld2tD
b250ZXh0LCBmYWxzZSk7Ci0KLSAgICBld2tDb250ZXh0LT5zZXRDYWNoZU1vZGVsKGNhY2hlTW9k
ZWwpOwotCisgICAgV0tDb250ZXh0U2V0Q2FjaGVNb2RlbChld2tfY29udGV4dF9XS0NvbnRleHRf
Z2V0KGV3a0NvbnRleHQpLCBzdGF0aWNfY2FzdDxFd2tfQ2FjaGVfTW9kZWw+KGNhY2hlTW9kZWwp
KTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogRXdrX0NhY2hlX01vZGVsIGV3a19jb250ZXh0X2Nh
Y2hlX21vZGVsX2dldChjb25zdCBFd2tfQ29udGV4dCogZXdrQ29udGV4dCkKIHsKICAgICBFSU5B
X1NBRkVUWV9PTl9OVUxMX1JFVFVSTl9WQUwoZXdrQ29udGV4dCwgRVdLX0NBQ0hFX01PREVMX0RP
Q1VNRU5UX1ZJRVdFUik7Ci0KLSAgICByZXR1cm4gZXdrQ29udGV4dC0+Y2FjaGVNb2RlbCgpOwor
ICAgIFdLQ2FjaGVNb2RlbCBjYWNoZU1vZGVsID0gV0tDb250ZXh0R2V0Q2FjaGVNb2RlbChld2tf
Y29udGV4dF9XS0NvbnRleHRfZ2V0KGV3a0NvbnRleHQpKTsKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8RXdrX0NhY2hlX01vZGVsPihjYWNoZU1vZGVsKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X2Rvd25sb2Fk
X2NsaWVudC5jcHAKaW5kZXggMmZhODZlOWE3MzI1ZmI3YmEwNWFkODQ1NTYyZjRiMDM4MmRhOGI0
ZS4uMTE2NDdiNDFlNGUwM2U3ZDM1ODUyMzhhMTMyYTkxYTIwNjcwYzhlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfZG93bmxvYWRfY2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4
dF9kb3dubG9hZF9jbGllbnQuY3BwCkBAIC01MCw3ICs1MCw3IEBAIHN0YXRpYyBpbmxpbmUgRXdr
X0NvbnRleHQqIHRvRXdrQ29udGV4dChjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogCiBzdGF0aWMg
V0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVkRmlsZW5hbWUoV0tDb250
ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW5nUmVmIGZpbGVuYW1lLCBi
b29sKiAvKmFsbG93T3ZlcndyaXRlKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAg
RXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSB0b0V3a0NvbnRleHQoY2xpZW50SW5mbyktPmRv
d25sb2FkSm9iKHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKKyAgICBFd2tfRG93
bmxvYWRfSm9iKiBkb3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tD
b250ZXh0KGNsaWVudEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAg
ICAgQVNTRVJUKGRvd25sb2FkKTsKIAogICAgIGRvd25sb2FkLT5zZXRTdWdnZXN0ZWRGaWxlTmFt
ZSh0b0ltcGwoZmlsZW5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKQEAgLTY3LDE0ICs2
NywxNCBAQCBzdGF0aWMgV0tTdHJpbmdSZWYgZGVjaWRlRGVzdGluYXRpb25XaXRoU3VnZ2VzdGVk
RmlsZW5hbWUoV0tDb250ZXh0UmVmLCBXS0Rvd25sbwogCiBzdGF0aWMgdm9pZCBkaWRSZWNlaXZl
UmVzcG9uc2UoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLVVJMUmVz
cG9uc2VSZWYgd2tSZXNwb25zZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBFd2tf
RG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IHRvRXdrQ29udGV4dChjbGllbnRJbmZvKS0+ZG93bmxv
YWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCkpOworICAgIEV3a19Eb3dubG9h
ZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0b0V3a0NvbnRl
eHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKICAgICBB
U1NFUlQoZG93bmxvYWQpOwogICAgIGRvd25sb2FkLT5zZXRSZXNwb25zZShFd2tfVXJsX1Jlc3Bv
bnNlOjpjcmVhdGUod2tSZXNwb25zZSkpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRDcmVhdGVEZXN0
aW5hdGlvbihXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgV0tTdHJpbmdS
ZWYgLypwYXRoKi8sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7Ci0gICAgRXdrX0Rvd25sb2Fk
X0pvYiogZG93bmxvYWQgPSB0b0V3a0NvbnRleHQoY2xpZW50SW5mbyktPmRvd25sb2FkSm9iKHRv
SW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgpKTsKKyAgICBFd2tfRG93bmxvYWRfSm9iKiBk
b3dubG9hZCA9IGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQodG9Fd2tDb250ZXh0KGNsaWVu
dEluZm8pLCB0b0ltcGwod2tEb3dubG9hZCktPmRvd25sb2FkSUQoKSk7CiAgICAgQVNTRVJUKGRv
d25sb2FkKTsKIAogICAgIGRvd25sb2FkLT5zZXRTdGF0ZShFV0tfRE9XTkxPQURfSk9CX1NUQVRF
X0RPV05MT0FESU5HKTsKQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlRGVz
dGluYXRpb24oV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmIHdrRG93bmxvYWQsIFdLU3RyaW4K
IAogc3RhdGljIHZvaWQgZGlkUmVjZWl2ZURhdGEoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
IHdrRG93bmxvYWQsIHVpbnQ2NF90IGxlbmd0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsK
LSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IHRvRXdrQ29udGV4dChjbGllbnRJbmZv
KS0+ZG93bmxvYWRKb2IodG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCkpOworICAgIEV3
a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0
b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIHRvSW1wbCh3a0Rvd25sb2FkKS0+ZG93bmxvYWRJRCgp
KTsKICAgICBBU1NFUlQoZG93bmxvYWQpOwogICAgIGRvd25sb2FkLT5pbmNyZW1lbnRSZWNlaXZl
ZERhdGEobGVuZ3RoKTsKIH0KQEAgLTkwLDM1ICs5MCwzNSBAQCBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlRGF0YShXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgdWludDY0X3Qg
bGVuZwogc3RhdGljIHZvaWQgZGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tE
b3dubG9hZCwgV0tFcnJvclJlZiBlcnJvciwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAg
ICB1aW50NjRfdCBkb3dubG9hZElkID0gdG9JbXBsKHdrRG93bmxvYWQpLT5kb3dubG9hZElEKCk7
Ci0gICAgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSB0b0V3a0NvbnRleHQoY2xpZW50SW5m
byktPmRvd25sb2FkSm9iKGRvd25sb2FkSWQpOworICAgIEV3a19Eb3dubG9hZF9Kb2IqIGRvd25s
b2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0b0V3a0NvbnRleHQoY2xpZW50SW5m
byksIGRvd25sb2FkSWQpOwogICAgIEFTU0VSVChkb3dubG9hZCk7CiAKICAgICBPd25QdHI8RXdr
X0Vycm9yPiBld2tFcnJvciA9IEV3a19FcnJvcjo6Y3JlYXRlKGVycm9yKTsKICAgICBkb3dubG9h
ZC0+c2V0U3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9GQUlMRUQpOwogICAgIGV3a192aWV3
X2Rvd25sb2FkX2pvYl9mYWlsZWQoZG93bmxvYWQtPnZpZXcoKSwgZG93bmxvYWQsIGV3a0Vycm9y
LmdldCgpKTsKLSAgICB0b0V3a0NvbnRleHQoY2xpZW50SW5mbyktPnJlbW92ZURvd25sb2FkSm9i
KGRvd25sb2FkSWQpOworICAgIGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9yZW1vdmUodG9Fd2tD
b250ZXh0KGNsaWVudEluZm8pLCBkb3dubG9hZElkKTsKIH0KIAogc3RhdGljIHZvaWQgZGlkQ2Fu
Y2VsKFdLQ29udGV4dFJlZiwgV0tEb3dubG9hZFJlZiB3a0Rvd25sb2FkLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQogewogICAgIHVpbnQ2NF90IGRvd25sb2FkSWQgPSB0b0ltcGwod2tEb3dubG9h
ZCktPmRvd25sb2FkSUQoKTsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZCA9IHRvRXdr
Q29udGV4dChjbGllbnRJbmZvKS0+ZG93bmxvYWRKb2IoZG93bmxvYWRJZCk7CisgICAgRXdrX0Rv
d25sb2FkX0pvYiogZG93bmxvYWQgPSBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfZ2V0KHRvRXdr
Q29udGV4dChjbGllbnRJbmZvKSwgZG93bmxvYWRJZCk7CiAgICAgQVNTRVJUKGRvd25sb2FkKTsK
IAogICAgIGRvd25sb2FkLT5zZXRTdGF0ZShFV0tfRE9XTkxPQURfSk9CX1NUQVRFX0NBTkNFTExF
RCk7CiAgICAgZXdrX3ZpZXdfZG93bmxvYWRfam9iX2NhbmNlbGxlZChkb3dubG9hZC0+dmlldygp
LCBkb3dubG9hZCk7Ci0gICAgdG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLT5yZW1vdmVEb3dubG9h
ZEpvYihkb3dubG9hZElkKTsKKyAgICBld2tfY29udGV4dF9kb3dubG9hZF9qb2JfcmVtb3ZlKHRv
RXdrQ29udGV4dChjbGllbnRJbmZvKSwgZG93bmxvYWRJZCk7CiB9CiAKIHN0YXRpYyB2b2lkIGRp
ZEZpbmlzaChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRSZWYgd2tEb3dubG9hZCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKIHsKICAgICB1aW50NjRfdCBkb3dubG9hZElkID0gdG9JbXBsKHdrRG93
bmxvYWQpLT5kb3dubG9hZElEKCk7Ci0gICAgRXdrX0Rvd25sb2FkX0pvYiogZG93bmxvYWQgPSB0
b0V3a0NvbnRleHQoY2xpZW50SW5mbyktPmRvd25sb2FkSm9iKGRvd25sb2FkSWQpOworICAgIEV3
a19Eb3dubG9hZF9Kb2IqIGRvd25sb2FkID0gZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX2dldCh0
b0V3a0NvbnRleHQoY2xpZW50SW5mbyksIGRvd25sb2FkSWQpOwogICAgIEFTU0VSVChkb3dubG9h
ZCk7CiAKICAgICBkb3dubG9hZC0+c2V0U3RhdGUoRVdLX0RPV05MT0FEX0pPQl9TVEFURV9GSU5J
U0hFRCk7CiAgICAgZXdrX3ZpZXdfZG93bmxvYWRfam9iX2ZpbmlzaGVkKGRvd25sb2FkLT52aWV3
KCksIGRvd25sb2FkKTsKLSAgICB0b0V3a0NvbnRleHQoY2xpZW50SW5mbyktPnJlbW92ZURvd25s
b2FkSm9iKGRvd25sb2FkSWQpOworICAgIGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9yZW1vdmUo
dG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLCBkb3dubG9hZElkKTsKIH0KIAogdm9pZCBld2tfY29u
dGV4dF9kb3dubG9hZF9jbGllbnRfYXR0YWNoKEV3a19Db250ZXh0KiBld2tDb250ZXh0KQpAQCAt
MTM2LDcgKzEzNiw3IEBAIHZvaWQgZXdrX2NvbnRleHRfZG93bmxvYWRfY2xpZW50X2F0dGFjaChF
d2tfQ29udGV4dCogZXdrQ29udGV4dCkKICAgICB3a0Rvd25sb2FkQ2xpZW50LmRpZEZhaWwgPSBk
aWRGYWlsOwogICAgIHdrRG93bmxvYWRDbGllbnQuZGlkRmluaXNoID0gZGlkRmluaXNoOwogCi0g
ICAgV0tDb250ZXh0U2V0RG93bmxvYWRDbGllbnQoZXdrQ29udGV4dC0+d2tDb250ZXh0KCksICZ3
a0Rvd25sb2FkQ2xpZW50KTsKKyAgICBXS0NvbnRleHRTZXREb3dubG9hZENsaWVudChld2tfY29u
dGV4dF9XS0NvbnRleHRfZ2V0KGV3a0NvbnRleHQpLCAmd2tEb3dubG9hZENsaWVudCk7CiB9CiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnQuY3BwCmluZGV4IDRmNzkzYjlkMGFiZDQzYmUwN2Q5
MjhmMzNiNTNlMTZiZWQ0ZmNlYjguLjEwMzhiNGRmNTE0MTZhNWI1MGM0YWNjZjRlMjVlYTk2Zjdl
N2U4MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0X2hpc3RvcnlfY2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfY29udGV4dF9oaXN0b3J5X2NsaWVudC5jcHAKQEAgLTQxLDcwICs0MSw3NSBA
QAogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1zdGF0aWMgaW5saW5lIGNvbnN0IEV3a19D
b250ZXh0X0hpc3RvcnlfQ2xpZW50JiBnZXRFd2tIaXN0b3J5Q2xpZW50KGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCitzdGF0aWMgaW5saW5lIGNvbnN0IEV3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50
KiBnZXRFd2tIaXN0b3J5RGVsZWdhdGUoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKICAgICBB
U1NFUlQoY2xpZW50SW5mbyk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNvbnN0IEV3a19Db250
ZXh0Kj4oY2xpZW50SW5mbyktPmhpc3RvcnlDbGllbnQoKTsKKyAgICByZXR1cm4gZXdrX2NvbnRl
eHRfaGlzdG9yeV9jbGllbnRfZ2V0KHN0YXRpY19jYXN0PGNvbnN0IEV3a19Db250ZXh0Kj4oY2xp
ZW50SW5mbykpOwogfQogCiBzdGF0aWMgdm9pZCBkaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0
YShXS0NvbnRleHRSZWYsIFdLUGFnZVJlZiBwYWdlLCBXS05hdmlnYXRpb25EYXRhUmVmIG5hdmln
YXRpb25EYXRhLCBXS0ZyYW1lUmVmLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewotICAgIGNv
bnN0IEV3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50JiBoaXN0b3J5Q2xpZW50ID0gZ2V0RXdrSGlz
dG9yeUNsaWVudChjbGllbnRJbmZvKTsKKyAgICBjb25zdCBFd2tfQ29udGV4dF9IaXN0b3J5X0Ns
aWVudCogaGlzdG9yeURlbGVnYXRlID0gZ2V0RXdrSGlzdG9yeURlbGVnYXRlKGNsaWVudEluZm8p
OworICAgIEFTU0VSVChoaXN0b3J5RGVsZWdhdGUpOwogCi0gICAgaWYgKCFoaXN0b3J5Q2xpZW50
Lm5hdmlnYXRlX2Z1bmMpCisgICAgaWYgKCFoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9EYXRhPiBuYXZp
Z2F0aW9uRGF0YUV3ayA9IEV3a19OYXZpZ2F0aW9uX0RhdGE6OmNyZWF0ZShuYXZpZ2F0aW9uRGF0
YSk7Ci0gICAgaGlzdG9yeUNsaWVudC5uYXZpZ2F0ZV9mdW5jKGV3a192aWV3X2Zyb21fcGFnZV9n
ZXQodG9JbXBsKHBhZ2UpKSwgbmF2aWdhdGlvbkRhdGFFd2suZ2V0KCksIGhpc3RvcnlDbGllbnQu
dXNlcl9kYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPm5hdmlnYXRlX2Z1bmMoZXdrX3ZpZXdf
ZnJvbV9wYWdlX2dldCh0b0ltcGwocGFnZSkpLCBuYXZpZ2F0aW9uRGF0YUV3ay5nZXQoKSwgaGlz
dG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRQZXJmb3JtQ2xp
ZW50UmVkaXJlY3QoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgc291cmNl
VVJMLCBXS1VSTFJlZiBkZXN0aW5hdGlvblVSTCwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKLSAgICBjb25zdCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudCYgaGlzdG9y
eUNsaWVudCA9IGdldEV3a0hpc3RvcnlDbGllbnQoY2xpZW50SW5mbyk7CisgICAgY29uc3QgRXdr
X0NvbnRleHRfSGlzdG9yeV9DbGllbnQqIGhpc3RvcnlEZWxlZ2F0ZSA9IGdldEV3a0hpc3RvcnlE
ZWxlZ2F0ZShjbGllbnRJbmZvKTsKKyAgICBBU1NFUlQoaGlzdG9yeURlbGVnYXRlKTsKIAotICAg
IGlmICghaGlzdG9yeUNsaWVudC5jbGllbnRfcmVkaXJlY3RfZnVuYykKKyAgICBpZiAoIWhpc3Rv
cnlEZWxlZ2F0ZS0+Y2xpZW50X3JlZGlyZWN0X2Z1bmMpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFdLRWluYVNoYXJlZFN0cmluZyBzb3VyY2VVUkxTdHJpbmcoc291cmNlVVJMKTsKICAgICBXS0Vp
bmFTaGFyZWRTdHJpbmcgZGVzdGluYXRpb25VUkxTdHJpbmcoZGVzdGluYXRpb25VUkwpOwogCi0g
ICAgaGlzdG9yeUNsaWVudC5jbGllbnRfcmVkaXJlY3RfZnVuYyhld2tfdmlld19mcm9tX3BhZ2Vf
Z2V0KHRvSW1wbChwYWdlKSksIHNvdXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcs
IGhpc3RvcnlDbGllbnQudXNlcl9kYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPmNsaWVudF9y
ZWRpcmVjdF9mdW5jKGV3a192aWV3X2Zyb21fcGFnZV9nZXQodG9JbXBsKHBhZ2UpKSwgc291cmNl
VVJMU3RyaW5nLCBkZXN0aW5hdGlvblVSTFN0cmluZywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2Rh
dGEpOwogfQogCiBzdGF0aWMgdm9pZCBkaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoV0tDb250ZXh0
UmVmLCBXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZWYgc291cmNlVVJMLCBXS1VSTFJlZiBkZXN0aW5h
dGlvblVSTCwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKIHsKLSAgICBjb25z
dCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudCYgaGlzdG9yeUNsaWVudCA9IGdldEV3a0hpc3Rv
cnlDbGllbnQoY2xpZW50SW5mbyk7CisgICAgY29uc3QgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGll
bnQqIGhpc3RvcnlEZWxlZ2F0ZSA9IGdldEV3a0hpc3RvcnlEZWxlZ2F0ZShjbGllbnRJbmZvKTsK
KyAgICBBU1NFUlQoaGlzdG9yeURlbGVnYXRlKTsKIAotICAgIGlmICghaGlzdG9yeUNsaWVudC5z
ZXJ2ZXJfcmVkaXJlY3RfZnVuYykKKyAgICBpZiAoIWhpc3RvcnlEZWxlZ2F0ZS0+c2VydmVyX3Jl
ZGlyZWN0X2Z1bmMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLRWluYVNoYXJlZFN0cmluZyBz
b3VyY2VVUkxTdHJpbmcoc291cmNlVVJMKTsKICAgICBXS0VpbmFTaGFyZWRTdHJpbmcgZGVzdGlu
YXRpb25VUkxTdHJpbmcoZGVzdGluYXRpb25VUkwpOwogCi0gICAgaGlzdG9yeUNsaWVudC5zZXJ2
ZXJfcmVkaXJlY3RfZnVuYyhld2tfdmlld19mcm9tX3BhZ2VfZ2V0KHRvSW1wbChwYWdlKSksIHNv
dXJjZVVSTFN0cmluZywgZGVzdGluYXRpb25VUkxTdHJpbmcsIGhpc3RvcnlDbGllbnQudXNlcl9k
YXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPnNlcnZlcl9yZWRpcmVjdF9mdW5jKGV3a192aWV3
X2Zyb21fcGFnZV9nZXQodG9JbXBsKHBhZ2UpKSwgc291cmNlVVJMU3RyaW5nLCBkZXN0aW5hdGlv
blVSTFN0cmluZywgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBzdGF0aWMgdm9p
ZCBkaWRVcGRhdGVIaXN0b3J5VGl0bGUoV0tDb250ZXh0UmVmLCBXS1BhZ2VSZWYgcGFnZSwgV0tT
dHJpbmdSZWYgdGl0bGUsIFdLVVJMUmVmIFVSTCwgV0tGcmFtZVJlZiwgY29uc3Qgdm9pZCogY2xp
ZW50SW5mbykKIHsKLSAgICBjb25zdCBFd2tfQ29udGV4dF9IaXN0b3J5X0NsaWVudCYgaGlzdG9y
eUNsaWVudCA9IGdldEV3a0hpc3RvcnlDbGllbnQoY2xpZW50SW5mbyk7CisgICAgY29uc3QgRXdr
X0NvbnRleHRfSGlzdG9yeV9DbGllbnQqIGhpc3RvcnlEZWxlZ2F0ZSA9IGdldEV3a0hpc3RvcnlE
ZWxlZ2F0ZShjbGllbnRJbmZvKTsKKyAgICBBU1NFUlQoaGlzdG9yeURlbGVnYXRlKTsKIAotICAg
IGlmICghaGlzdG9yeUNsaWVudC50aXRsZV91cGRhdGVfZnVuYykKKyAgICBpZiAoIWhpc3RvcnlE
ZWxlZ2F0ZS0+dGl0bGVfdXBkYXRlX2Z1bmMpCiAgICAgICAgIHJldHVybjsKIAogICAgIFdLRWlu
YVNoYXJlZFN0cmluZyB0aXRsZVN0cmluZyh0aXRsZSk7CiAgICAgV0tFaW5hU2hhcmVkU3RyaW5n
IHN0cmluZ1VSTChVUkwpOwogCi0gICAgaGlzdG9yeUNsaWVudC50aXRsZV91cGRhdGVfZnVuYyhl
d2tfdmlld19mcm9tX3BhZ2VfZ2V0KHRvSW1wbChwYWdlKSksIHRpdGxlU3RyaW5nLCBzdHJpbmdV
UkwsIGhpc3RvcnlDbGllbnQudXNlcl9kYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPnRpdGxl
X3VwZGF0ZV9mdW5jKGV3a192aWV3X2Zyb21fcGFnZV9nZXQodG9JbXBsKHBhZ2UpKSwgdGl0bGVT
dHJpbmcsIHN0cmluZ1VSTCwgaGlzdG9yeURlbGVnYXRlLT51c2VyX2RhdGEpOwogfQogCiBzdGF0
aWMgdm9pZCBwb3B1bGF0ZVZpc2l0ZWRMaW5rcyhXS0NvbnRleHRSZWYsIGNvbnN0IHZvaWQqIGNs
aWVudEluZm8pCiB7Ci0gICAgY29uc3QgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQmIGhpc3Rv
cnlDbGllbnQgPSBnZXRFd2tIaXN0b3J5Q2xpZW50KGNsaWVudEluZm8pOworICAgIGNvbnN0IEV3
a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50KiBoaXN0b3J5RGVsZWdhdGUgPSBnZXRFd2tIaXN0b3J5
RGVsZWdhdGUoY2xpZW50SW5mbyk7CisgICAgQVNTRVJUKGhpc3RvcnlEZWxlZ2F0ZSk7CiAKLSAg
ICBpZiAoIWhpc3RvcnlDbGllbnQucG9wdWxhdGVfdmlzaXRlZF9saW5rc19mdW5jKQorICAgIGlm
ICghaGlzdG9yeURlbGVnYXRlLT5wb3B1bGF0ZV92aXNpdGVkX2xpbmtzX2Z1bmMpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGhpc3RvcnlDbGllbnQucG9wdWxhdGVfdmlzaXRlZF9saW5rc19mdW5j
KGhpc3RvcnlDbGllbnQudXNlcl9kYXRhKTsKKyAgICBoaXN0b3J5RGVsZWdhdGUtPnBvcHVsYXRl
X3Zpc2l0ZWRfbGlua3NfZnVuYyhoaXN0b3J5RGVsZWdhdGUtPnVzZXJfZGF0YSk7CiB9CiAKIHZv
aWQgZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRfYXR0YWNoKEV3a19Db250ZXh0KiBld2tDb250
ZXh0KQpAQCAtMTIxLDUgKzEyNiw1IEBAIHZvaWQgZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRf
YXR0YWNoKEV3a19Db250ZXh0KiBld2tDb250ZXh0KQogICAgIHdrSGlzdG9yeUNsaWVudC5kaWRV
cGRhdGVIaXN0b3J5VGl0bGUgPSBkaWRVcGRhdGVIaXN0b3J5VGl0bGU7CiAgICAgd2tIaXN0b3J5
Q2xpZW50LnBvcHVsYXRlVmlzaXRlZExpbmtzID0gcG9wdWxhdGVWaXNpdGVkTGlua3M7CiAKLSAg
ICBXS0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KGV3a0NvbnRleHQtPndrQ29udGV4dCgpLCAmd2tI
aXN0b3J5Q2xpZW50KTsKKyAgICBXS0NvbnRleHRTZXRIaXN0b3J5Q2xpZW50KGV3a19jb250ZXh0
X1dLQ29udGV4dF9nZXQoZXdrQ29udGV4dCksICZ3a0hpc3RvcnlDbGllbnQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcHJpdmF0
ZS5oCmluZGV4IGU3ZGVmZDM1MmU5NWYyYzM3YmJkZDAyYjUwNzFjYzg1NTU1YjVmNDguLjcwNTcz
OWExNjllOGNjY2ZlZWVmNTAxODRhMjE4NjdiYjgxZDU2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3ByaXZhdGUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfY29udGV4dF9wcml2YXRlLmgKQEAgLTIw
LDk1ICsyMCwyMiBAQAogI2lmbmRlZiBld2tfY29udGV4dF9wcml2YXRlX2gKICNkZWZpbmUgZXdr
X2NvbnRleHRfcHJpdmF0ZV9oCiAKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlICJX
S1JldGFpblB0ci5oIgotI2luY2x1ZGUgImV3a19jb250ZXh0X2hpc3RvcnlfY2xpZW50X3ByaXZh
dGUuaCIKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgogCi1jbGFzcyBFd2tfRG93bmxvYWRf
Sm9iOwotY2xhc3MgRXdrX1VybF9TY2hlbWVfUmVxdWVzdDsKLWNsYXNzIEV3a19Db29raWVfTWFu
YWdlcjsKLWNsYXNzIEV3a19GYXZpY29uX0RhdGFiYXNlOwotI2lmIEVOQUJMRShCQVRURVJZX1NU
QVRVUykKLWNsYXNzIEJhdHRlcnlQcm92aWRlcjsKLSNlbmRpZgotI2lmIEVOQUJMRShORVRXT1JL
X0lORk8pCi1jbGFzcyBOZXR3b3JrSW5mb1Byb3ZpZGVyOwotI2VuZGlmCi0jaWYgRU5BQkxFKFZJ
QlJBVElPTikKLWNsYXNzIFZpYnJhdGlvblByb3ZpZGVyOwotI2VuZGlmCit0eXBlZGVmIHN0cnVj
dCBFd2tfQ29udGV4dCBFd2tfQ29udGV4dDsKK3R5cGVkZWYgc3RydWN0IEV3a19Eb3dubG9hZF9K
b2IgRXdrX0Rvd25sb2FkX0pvYjsKK3R5cGVkZWYgc3RydWN0IEV3a19VcmxfU2NoZW1lX1JlcXVl
c3QgRXdrX1VybF9TY2hlbWVfUmVxdWVzdDsKK3R5cGVkZWYgc3RydWN0IEV3a19Db250ZXh0X0hp
c3RvcnlfQ2xpZW50IEV3a19Db250ZXh0X0hpc3RvcnlfQ2xpZW50OwogCi1jbGFzcyBFd2tfQ29u
dGV4dCA6IHB1YmxpYyBSZWZDb3VudGVkPEV3a19Db250ZXh0PiB7Ci1wdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8RXdrX0NvbnRleHQ+IGNyZWF0ZShXS0NvbnRleHRSZWYgY29udGV4dCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgRXdrX0NvbnRleHQoY29udGV4dCkp
OwotICAgIH0KK1dLQ29udGV4dFJlZiBld2tfY29udGV4dF9XS0NvbnRleHRfZ2V0KGNvbnN0IEV3
a19Db250ZXh0Kik7CitFd2tfQ29udGV4dCogZXdrX2NvbnRleHRfbmV3X2Zyb21fV0tDb250ZXh0
KFdLQ29udGV4dFJlZik7CitXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBld2tfY29udGV4dF9yZXF1
ZXN0X21hbmFnZXJfZ2V0KGNvbnN0IEV3a19Db250ZXh0Kik7Cit2b2lkIGV3a19jb250ZXh0X3Vy
bF9zY2hlbWVfcmVxdWVzdF9yZWNlaXZlZChFd2tfQ29udGV4dCosIEV3a19VcmxfU2NoZW1lX1Jl
cXVlc3QqKTsKIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjcmVhdGUoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBFd2tfQ29udGV4dChhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZSgpKS5nZXQoKSkpOwotICAgIH0KK3ZvaWQgZXdrX2NvbnRleHRfZG93bmxv
YWRfam9iX2FkZChFd2tfQ29udGV4dCosIEV3a19Eb3dubG9hZF9Kb2IqKTsKK0V3a19Eb3dubG9h
ZF9Kb2IqIGV3a19jb250ZXh0X2Rvd25sb2FkX2pvYl9nZXQoY29uc3QgRXdrX0NvbnRleHQqLCB1
aW50NjRfdCBkb3dubG9hZElkKTsKK3ZvaWQgZXdrX2NvbnRleHRfZG93bmxvYWRfam9iX3JlbW92
ZShFd2tfQ29udGV4dCosIHVpbnQ2NF90IGRvd25sb2FkSWQpOwogCi0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8RXdrX0NvbnRleHQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0
aCk7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxFd2tfQ29udGV4dD4gZGVmYXVsdENvbnRleHQo
KTsKLQotICAgIH5Fd2tfQ29udGV4dCgpOwotCi0gICAgRXdrX0Nvb2tpZV9NYW5hZ2VyKiBjb29r
aWVNYW5hZ2VyKCk7Ci0KLSAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZSogZmF2aWNvbkRhdGFiYXNl
KCk7Ci0KLSAgICBib29sIHJlZ2lzdGVyVVJMU2NoZW1lKGNvbnN0IFN0cmluZyYgc2NoZW1lLCBF
d2tfVXJsX1NjaGVtZV9SZXF1ZXN0X0NiIGNhbGxiYWNrLCB2b2lkKiB1c2VyRGF0YSk7Ci0KLSNp
ZiBFTkFCTEUoVklCUkFUSU9OKQotICAgIFBhc3NSZWZQdHI8VmlicmF0aW9uUHJvdmlkZXI+IHZp
YnJhdGlvblByb3ZpZGVyKCk7Ci0jZW5kaWYKLQotICAgIHZvaWQgYWRkVmlzaXRlZExpbmsoY29u
c3QgU3RyaW5nJiB2aXNpdGVkVVJMKTsKLQotICAgIHZvaWQgc2V0Q2FjaGVNb2RlbChFd2tfQ2Fj
aGVfTW9kZWwpOwotCi0gICAgRXdrX0NhY2hlX01vZGVsIGNhY2hlTW9kZWwoKSBjb25zdDsKLQot
ICAgIFdLQ29udGV4dFJlZiB3a0NvbnRleHQoKTsKLQotICAgIFdLU291cFJlcXVlc3RNYW5hZ2Vy
UmVmIHJlcXVlc3RNYW5hZ2VyKCk7Ci0KLSAgICB2b2lkIHVybFNjaGVtZVJlcXVlc3RSZWNlaXZl
ZChFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0Kik7Ci0KLSAgICB2b2lkIGFkZERvd25sb2FkSm9iKEV3
a19Eb3dubG9hZF9Kb2IqKTsKLSAgICBFd2tfRG93bmxvYWRfSm9iKiBkb3dubG9hZEpvYih1aW50
NjRfdCBkb3dubG9hZElkKTsKLSAgICB2b2lkIHJlbW92ZURvd25sb2FkSm9iKHVpbnQ2NF90IGRv
d25sb2FkSWQpOwotCi0gICAgY29uc3QgRXdrX0NvbnRleHRfSGlzdG9yeV9DbGllbnQmIGhpc3Rv
cnlDbGllbnQoKSBjb25zdCAgeyByZXR1cm4gbV9oaXN0b3J5Q2xpZW50OyB9Ci0gICAgRXdrX0Nv
bnRleHRfSGlzdG9yeV9DbGllbnQmIGhpc3RvcnlDbGllbnQoKSB7IHJldHVybiBtX2hpc3RvcnlD
bGllbnQ7IH0KLQotcHJpdmF0ZToKLSAgICBleHBsaWNpdCBFd2tfQ29udGV4dChXS0NvbnRleHRS
ZWYpOwotCi0gICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7Ci0KLSAgICBP
d25QdHI8RXdrX0Nvb2tpZV9NYW5hZ2VyPiBtX2Nvb2tpZU1hbmFnZXI7Ci0gICAgT3duUHRyPEV3
a19GYXZpY29uX0RhdGFiYXNlPiBtX2Zhdmljb25EYXRhYmFzZTsKLSNpZiBFTkFCTEUoQkFUVEVS
WV9TVEFUVVMpCi0gICAgUmVmUHRyPEJhdHRlcnlQcm92aWRlcj4gbV9iYXR0ZXJ5UHJvdmlkZXI7
Ci0jZW5kaWYKLSNpZiBFTkFCTEUoTkVUV09SS19JTkZPKQotICAgIFJlZlB0cjxOZXR3b3JrSW5m
b1Byb3ZpZGVyPiBtX25ldHdvcmtJbmZvUHJvdmlkZXI7Ci0jZW5kaWYKLSNpZiBFTkFCTEUoVklC
UkFUSU9OKQotICAgIFJlZlB0cjxWaWJyYXRpb25Qcm92aWRlcj4gbV92aWJyYXRpb25Qcm92aWRl
cjsKLSNlbmRpZgotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxFd2tfRG93bmxvYWRfSm9i
PiA+IG1fZG93bmxvYWRKb2JzOwotCi0gICAgV0tSZXRhaW5QdHI8V0tTb3VwUmVxdWVzdE1hbmFn
ZXJSZWY+IG1fcmVxdWVzdE1hbmFnZXI7Ci0KLSAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBj
bGFzcyBFd2tfVXJsX1NjaGVtZV9IYW5kbGVyPiBVUkxTY2hlbWVIYW5kbGVyTWFwOwotICAgIFVS
TFNjaGVtZUhhbmRsZXJNYXAgbV91cmxTY2hlbWVIYW5kbGVyczsKLQotICAgIEV3a19Db250ZXh0
X0hpc3RvcnlfQ2xpZW50IG1faGlzdG9yeUNsaWVudDsKLX07Citjb25zdCBFd2tfQ29udGV4dF9I
aXN0b3J5X0NsaWVudCogZXdrX2NvbnRleHRfaGlzdG9yeV9jbGllbnRfZ2V0KGNvbnN0IEV3a19D
b250ZXh0Kik7CiAKICNlbmRpZiAvLyBld2tfY29udGV4dF9wcml2YXRlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19jb250ZXh0X3JlcXVlc3RfbWFu
YWdlcl9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2Nv
bnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudC5jcHAKaW5kZXggZmU4MDFjZTZiMDg1MmFhYjQ4
NDQxMzZhNmQxZmZjNzk2MWI3ODE2OC4uYjI1NzNjYThlZmViOTU2Mjk2MmU5NmEzODgyYjAyZGVj
NDI2MTM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdr
X2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudC5jcHAK
QEAgLTQxLDcgKzQxLDcgQEAgc3RhdGljIGlubGluZSBFd2tfQ29udGV4dCogdG9Fd2tDb250ZXh0
KGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVVJJUmVxdWVz
dChXS1NvdXBSZXF1ZXN0TWFuYWdlclJlZiBzb3VwUmVxdWVzdE1hbmFnZXJSZWYsIFdLVVJMUmVm
IHVybFJlZiwgV0tQYWdlUmVmLCB1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCiB7CiAgICAgUmVmUHRyPEV3a19VcmxfU2NoZW1lX1JlcXVlc3Q+IHNjaGVtZVJlcXVl
c3QgPSBFd2tfVXJsX1NjaGVtZV9SZXF1ZXN0OjpjcmVhdGUoc291cFJlcXVlc3RNYW5hZ2VyUmVm
LCB1cmxSZWYsIHJlcXVlc3RJRCk7Ci0gICAgdG9Fd2tDb250ZXh0KGNsaWVudEluZm8pLT51cmxT
Y2hlbWVSZXF1ZXN0UmVjZWl2ZWQoc2NoZW1lUmVxdWVzdC5nZXQoKSk7CisgICAgZXdrX2NvbnRl
eHRfdXJsX3NjaGVtZV9yZXF1ZXN0X3JlY2VpdmVkKHRvRXdrQ29udGV4dChjbGllbnRJbmZvKSwg
c2NoZW1lUmVxdWVzdC5nZXQoKSk7CiB9CiAKIHZvaWQgZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5h
Z2VyX2NsaWVudF9hdHRhY2goRXdrX0NvbnRleHQqIGNvbnRleHQpCkBAIC01Myw1ICs1Myw1IEBA
IHZvaWQgZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5hZ2VyX2NsaWVudF9hdHRhY2goRXdrX0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgd2tSZXF1ZXN0TWFuYWdlckNsaWVudC5jbGllbnRJbmZvID0gY29u
dGV4dDsKICAgICB3a1JlcXVlc3RNYW5hZ2VyQ2xpZW50LmRpZFJlY2VpdmVVUklSZXF1ZXN0ID0g
ZGlkUmVjZWl2ZVVSSVJlcXVlc3Q7CiAKLSAgICBXS1NvdXBSZXF1ZXN0TWFuYWdlclNldENsaWVu
dChjb250ZXh0LT5yZXF1ZXN0TWFuYWdlcigpLCAmd2tSZXF1ZXN0TWFuYWdlckNsaWVudCk7Cisg
ICAgV0tTb3VwUmVxdWVzdE1hbmFnZXJTZXRDbGllbnQoZXdrX2NvbnRleHRfcmVxdWVzdF9tYW5h
Z2VyX2dldChjb250ZXh0KSwgJndrUmVxdWVzdE1hbmFnZXJDbGllbnQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IDI0NmEyNGQyMjAx
ODE2NDEwMTc1YjAxMWUwYWIzODY1YWU2MWJiN2QuLmQ4NjA4YWE0ODZlNzlmZWEyMDBmNzIyMzQ3
NDVjN2Q3ZGI0YzYwODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfdmlldy5jcHAKQEAgLTEzMiw3ICsxMzIsNyBAQCBzdHJ1Y3QgRXdrX1ZpZXdfUHJpdmF0ZV9E
YXRhIHsKICAgICBPd25QdHI8RXdrX1NldHRpbmdzPiBzZXR0aW5nczsKICAgICBib29sIGFyZU1v
dXNlRXZlbnRzRW5hYmxlZDsKICAgICBXS1JldGFpblB0cjxXS0NvbG9yUGlja2VyUmVzdWx0TGlz
dGVuZXJSZWY+IGNvbG9yUGlja2VyUmVzdWx0TGlzdGVuZXI7Ci0gICAgUmVmUHRyPEV3a19Db250
ZXh0PiBjb250ZXh0OworICAgIEV3a19Db250ZXh0KiBjb250ZXh0OwogI2lmIEVOQUJMRShUT1VD
SF9FVkVOVFMpCiAgICAgYm9vbCBhcmVUb3VjaEV2ZW50c0VuYWJsZWQ7CiAjZW5kaWYKQEAgLTE1
Miw2ICsxNTIsNyBAQCBzdHJ1Y3QgRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhIHsKIAogICAgIEV3a19W
aWV3X1ByaXZhdGVfRGF0YSgpCiAgICAgICAgIDogYXJlTW91c2VFdmVudHNFbmFibGVkKGZhbHNl
KQorICAgICAgICAsIGNvbnRleHQoMCkKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogICAgICAg
ICAsIGFyZVRvdWNoRXZlbnRzRW5hYmxlZChmYWxzZSkKICNlbmRpZgpAQCAtMTcwLDcgKzE3MSw3
IEBAIHN0cnVjdCBFd2tfVmlld19Qcml2YXRlX0RhdGEgewogICAgIH5Fd2tfVmlld19Qcml2YXRl
X0RhdGEoKQogICAgIHsKICAgICAgICAgLyogVW5yZWdpc3RlciBpY29uIGNoYW5nZSBjYWxsYmFj
ayAqLwotICAgICAgICBFd2tfRmF2aWNvbl9EYXRhYmFzZSogaWNvbkRhdGFiYXNlID0gY29udGV4
dC0+ZmF2aWNvbkRhdGFiYXNlKCk7CisgICAgICAgIEV3a19GYXZpY29uX0RhdGFiYXNlKiBpY29u
RGF0YWJhc2UgPSBld2tfY29udGV4dF9mYXZpY29uX2RhdGFiYXNlX2dldChjb250ZXh0KTsKICAg
ICAgICAgaWNvbkRhdGFiYXNlLT51bndhdGNoQ2hhbmdlcyhfZXdrX3ZpZXdfb25fZmF2aWNvbl9j
aGFuZ2VkKTsKIAogICAgICAgICB2b2lkKiBpdGVtOwpAQCAtNDc2LDYgKzQ3Nyw3IEBAIHN0YXRp
YyBFd2tfVmlld19Qcml2YXRlX0RhdGEqIF9ld2tfdmlld19wcml2X25ldyhFd2tfVmlld19TbWFy
dF9EYXRhKiBzbWFydERhdGEpCiAKIHN0YXRpYyB2b2lkIF9ld2tfdmlld19wcml2X2RlbChFd2tf
Vmlld19Qcml2YXRlX0RhdGEqIHByaXYpCiB7CisgICAgZXdrX2NvbnRleHRfdW5yZWYocHJpdi0+
Y29udGV4dCk7CiAgICAgZGVsZXRlIHByaXY7CiB9CiAKQEAgLTc5Myw3ICs3OTUsNyBAQCBzdGF0
aWMgaW5saW5lIEV2YXNfU21hcnQqIF9ld2tfdmlld19zbWFydF9jbGFzc19uZXcodm9pZCkKICAg
ICByZXR1cm4gc21hcnQ7CiB9CiAKLXN0YXRpYyB2b2lkIF9ld2tfdmlld19pbml0aWFsaXplKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBjb250ZXh0LCBXS1Bh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYpCitzdGF0aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6
ZShFdmFzX09iamVjdCogZXdrVmlldywgRXdrX0NvbnRleHQqIGNvbnRleHQsIFdLUGFnZUdyb3Vw
UmVmIHBhZ2VHcm91cFJlZikKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1Zp
ZXcsIHNtYXJ0RGF0YSk7CiAgICAgRVdLX1ZJRVdfUFJJVl9HRVRfT1JfUkVUVVJOKHNtYXJ0RGF0
YSwgcHJpdik7CkBAIC04MDUsOSArODA3LDkgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRp
YWxpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFBhc3NSZWZQdHI8RXdrX0NvbnRleHQ+IGMKICAg
ICBwcml2LT5wYWdlQ2xpZW50ID0gUGFnZUNsaWVudEltcGw6OmNyZWF0ZShld2tWaWV3KTsKIAog
ICAgIGlmIChwYWdlR3JvdXBSZWYpCi0gICAgICAgIHByaXYtPnBhZ2VQcm94eSA9IHRvSW1wbChj
b250ZXh0LT53a0NvbnRleHQoKSktPmNyZWF0ZVdlYlBhZ2UocHJpdi0+cGFnZUNsaWVudC5nZXQo
KSwgdG9JbXBsKHBhZ2VHcm91cFJlZikpOworICAgICAgICBwcml2LT5wYWdlUHJveHkgPSB0b0lt
cGwoZXdrX2NvbnRleHRfV0tDb250ZXh0X2dldChjb250ZXh0KSktPmNyZWF0ZVdlYlBhZ2UocHJp
di0+cGFnZUNsaWVudC5nZXQoKSwgdG9JbXBsKHBhZ2VHcm91cFJlZikpOwogICAgIGVsc2UKLSAg
ICAgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGNvbnRleHQtPndrQ29udGV4dCgpKS0+Y3Jl
YXRlV2ViUGFnZShwcml2LT5wYWdlQ2xpZW50LmdldCgpLCBXZWJQYWdlR3JvdXA6OmNyZWF0ZSgp
LmdldCgpKTsKKyAgICAgICAgcHJpdi0+cGFnZVByb3h5ID0gdG9JbXBsKGV3a19jb250ZXh0X1dL
Q29udGV4dF9nZXQoY29udGV4dCkpLT5jcmVhdGVXZWJQYWdlKHByaXYtPnBhZ2VDbGllbnQuZ2V0
KCksIFdlYlBhZ2VHcm91cDo6Y3JlYXRlKCkuZ2V0KCkpOwogCiAgICAgYWRkVG9QYWdlVmlld01h
cChld2tWaWV3KTsKIApAQCAtODIwLDcgKzgyMiw3IEBAIHN0YXRpYyB2b2lkIF9ld2tfdmlld19p
bml0aWFsaXplKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBQYXNzUmVmUHRyPEV3a19Db250ZXh0PiBj
CiAKICAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBFd2tfQmFja19Gb3J3YXJkX0xpc3Q6OmNy
ZWF0ZSh0b0FQSShwcml2LT5wYWdlUHJveHktPmJhY2tGb3J3YXJkTGlzdCgpKSk7CiAgICAgcHJp
di0+c2V0dGluZ3MgPSBhZG9wdFB0cihuZXcgRXdrX1NldHRpbmdzKFdLUGFnZUdyb3VwR2V0UHJl
ZmVyZW5jZXMoV0tQYWdlR2V0UGFnZUdyb3VwKHRvQVBJKHByaXYtPnBhZ2VQcm94eS5nZXQoKSkp
KSkpOwotICAgIHByaXYtPmNvbnRleHQgPSBjb250ZXh0OworICAgIHByaXYtPmNvbnRleHQgPSBl
d2tfY29udGV4dF9yZWYoY29udGV4dCk7CiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Mp
CiAgICAgcHJpdi0+cGFnZVZpZXdwb3J0Q29udHJvbGxlckNsaWVudCA9IFBhZ2VWaWV3cG9ydENv
bnRyb2xsZXJDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKQEAgLTgzOSw3ICs4NDEsNyBAQCBz
dGF0aWMgdm9pZCBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShFdmFzX09iamVjdCogZXdrVmlldywgUGFz
c1JlZlB0cjxFd2tfQ29udGV4dD4gYwogI2VuZGlmCiAKICAgICAvKiBMaXN0ZW4gZm9yIGZhdmlj
b24gY2hhbmdlcyAqLwotICAgIEV3a19GYXZpY29uX0RhdGFiYXNlKiBpY29uRGF0YWJhc2UgPSBw
cml2LT5jb250ZXh0LT5mYXZpY29uRGF0YWJhc2UoKTsKKyAgICBFd2tfRmF2aWNvbl9EYXRhYmFz
ZSogaWNvbkRhdGFiYXNlID0gZXdrX2NvbnRleHRfZmF2aWNvbl9kYXRhYmFzZV9nZXQocHJpdi0+
Y29udGV4dCk7CiAgICAgaWNvbkRhdGFiYXNlLT53YXRjaENoYW5nZXMoSWNvbkNoYW5nZUNhbGxi
YWNrRGF0YShfZXdrX3ZpZXdfb25fZmF2aWNvbl9jaGFuZ2VkLCBld2tWaWV3KSk7CiB9CiAKQEAg
LTg3OSw3ICs4ODEsNyBAQCBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQoRXZhcyogY2Fu
dmFzLCBXS0NvbnRleHRSZWYgY29udGV4dFJlZiwgV0tQYWdlR3JvdQogICAgIGlmICghZXdrVmll
dykKICAgICAgICAgcmV0dXJuIDA7CiAKLSAgICBfZXdrX3ZpZXdfaW5pdGlhbGl6ZShld2tWaWV3
LCBFd2tfQ29udGV4dDo6Y3JlYXRlKGNvbnRleHRSZWYpLCBwYWdlR3JvdXBSZWYpOworICAgIF9l
d2tfdmlld19pbml0aWFsaXplKGV3a1ZpZXcsIGV3a19jb250ZXh0X25ld19mcm9tX1dLQ29udGV4
dChjb250ZXh0UmVmKSwgcGFnZUdyb3VwUmVmKTsKIAogICAgIHJldHVybiBld2tWaWV3OwogfQpA
QCAtOTAxLDcgKzkwMyw2IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19zbWFydF9hZGQoRXZhcyog
Y2FudmFzLCBFdmFzX1NtYXJ0KiBzbWFydCwgRXdrX0NvbnRleHQqIGNvCiAKIEV2YXNfT2JqZWN0
KiBld2tfdmlld19hZGRfd2l0aF9jb250ZXh0KEV2YXMqIGNhbnZhcywgRXdrX0NvbnRleHQqIGNv
bnRleHQpCiB7Ci0gICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk5fVkFMKGNvbnRleHQsIDAp
OwogICAgIHJldHVybiBld2tfdmlld19zbWFydF9hZGQoY2FudmFzLCBfZXdrX3ZpZXdfc21hcnRf
Y2xhc3NfbmV3KCksIGNvbnRleHQpOwogfQogCkBAIC05MTUsNyArOTE2LDcgQEAgRXdrX0NvbnRl
eHQqIGV3a192aWV3X2NvbnRleHRfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAg
IEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgc21hcnREYXRhLCAwKTsKICAgICBF
V0tfVklFV19QUklWX0dFVF9PUl9SRVRVUk4oc21hcnREYXRhLCBwcml2LCAwKTsKIAotICAgIHJl
dHVybiBwcml2LT5jb250ZXh0LmdldCgpOworICAgIHJldHVybiBwcml2LT5jb250ZXh0OwogfQog
CiAvKioKQEAgLTE1NzIsNyArMTU3Myw3IEBAIHZvaWQgZXdrX3ZpZXdfdXBkYXRlX2ljb24oRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgRVdLX1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3
LCBzbWFydERhdGEpOwogICAgIEVXS19WSUVXX1BSSVZfR0VUX09SX1JFVFVSTihzbWFydERhdGEs
IHByaXYpOwogCi0gICAgRXdrX0Zhdmljb25fRGF0YWJhc2UqIGljb25EYXRhYmFzZSA9IHByaXYt
PmNvbnRleHQtPmZhdmljb25EYXRhYmFzZSgpOworICAgIEV3a19GYXZpY29uX0RhdGFiYXNlKiBp
Y29uRGF0YWJhc2UgPSBld2tfY29udGV4dF9mYXZpY29uX2RhdGFiYXNlX2dldChwcml2LT5jb250
ZXh0KTsKICAgICBBU1NFUlQoaWNvbkRhdGFiYXNlKTsKIAogICAgIHByaXYtPmZhdmljb25VUkwg
PSBld2tfZmF2aWNvbl9kYXRhYmFzZV9pY29uX3VybF9nZXQoaWNvbkRhdGFiYXNlLCBwcml2LT51
cmwpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>