<?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>92656</bug_id>
          
          <creation_ts>2012-07-30 10:14:32 -0700</creation_ts>
          <short_desc>REGRESSION(r123966): This patch is causing assertion failures on the debug bot (also rolling out a dependent patch) (Requested by mrobinson on #webkit).</short_desc>
          <delta_ts>2012-07-30 13:30:38 -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>90269</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>mario</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>682124</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:14:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/123966 broke the build:
This patch is causing assertion failures on the debug bot (also rolling out a dependent patch) (Requested by mrobinson 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>682125</commentid>
    <comment_count>1</comment_count>
      <attachid>155313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:15:05 -0700</bug_when>
    <thetext>Created attachment 155313
ROLLOUT of r123966

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>682141</commentid>
    <comment_count>2</comment_count>
      <attachid>155313</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:27:21 -0700</bug_when>
    <thetext>Comment on attachment 155313
ROLLOUT of r123966

Clearing flags on attachment: 155313

Committed r124045: &lt;http://trac.webkit.org/changeset/124045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682142</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-30 10:27:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>682336</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-07-30 13:30:38 -0700</bug_when>
    <thetext>*** Bug 92655 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155313</attachid>
            <date>2012-07-30 10:15:05 -0700</date>
            <delta_ts>2012-07-30 10:27:21 -0700</delta_ts>
            <desc>ROLLOUT of r123966</desc>
            <filename>bug-92656-20120730172039.patch</filename>
            <type>text/plain</type>
            <size>46948</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmY5MTc5Njc5NjNiMzAz
ZDNhOWMxYWM4ZTNmNWVjODljMDJkZWUxZi4uYzViMDNjZGQ3MDAxODljZjVlYmU1NWNiNTBlZDc0
YzVhZDM0NzJiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA3LTMwICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTIzOTY2IGFuZCByMTIzOTY3LgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjM5NjYKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTIzOTY3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MjY1NgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgY2F1c2luZyBhc3Nl
cnRpb24gZmFpbHVyZXMgb24gdGhlIGRlYnVnIGJvdAorICAgICAgICAoYWxzbyByb2xsaW5nIG91
dCBhIGRlcGVuZGVudCBwYXRjaCkgKFJlcXVlc3RlZCBieSBtcm9iaW5zb24KKyAgICAgICAgb24g
I3dlYmtpdCkuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtl
ZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5j
aGFudC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNr
ZXJFbmNoYW50Lmg6IFJlbW92ZWQuCisKIDIwMTItMDctMzAgIFZpbmVldCBDaGF1ZGhhcnkgIDxy
Z2Y3NDhAbW90b3JvbGEuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MjY0MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGYwYjRiYmQ0M2JjM2Q4OTc4
MzBiMzNjNmQwNWVhMzExYjNjZDBmMzAuLjRjYmU0OTljMGIzOWQxYWI0ZTllYmE5ZDA0M2M5NTYz
MDdhOWE3ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0wNy0zMCAg
U2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyMzk2NiBhbmQgcjEyMzk2Ny4KKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTIzOTY2CisgICAgICAgIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0LzEyMzk2NworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTI2NTYKKworICAgICAgICBUaGlzIHBhdGNoIGlzIGNhdXNpbmcg
YXNzZXJ0aW9uIGZhaWx1cmVzIG9uIHRoZSBkZWJ1ZyBib3QKKyAgICAgICAgKGFsc28gcm9sbGlu
ZyBvdXQgYSBkZXBlbmRlbnQgcGF0Y2gpIChSZXF1ZXN0ZWQgYnkgbXJvYmluc29uCisgICAgICAg
IG9uICN3ZWJraXQpLgorCisgICAgICAgICogd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hh
bnQuY3BwOgorICAgICAgICAoX1dlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKToKKyAg
ICAgICAgKGNyZWF0ZUVuY2hhbnRCcm9rZXJJZk5lZWRlZCk6CisgICAgICAgIChmcmVlU3BlbGxD
aGVja2luZ0xhbmd1YWdlKToKKyAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRf
ZmluYWxpemUpOgorICAgICAgICAod2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9jbGFzc19p
bml0KToKKyAgICAgICAgKHdlYmtpdF9zcGVsbF9jaGVja2VyX2VuY2hhbnRfaW5pdCk6CisgICAg
ICAgICh3b3JkRW5kSXNBQ29udHJhY3Rpb25BcG9zdHJvcGhlKToKKyAgICAgICAgKGNoZWNrU3Bl
bGxpbmdPZlN0cmluZyk6CisgICAgICAgIChnZXRHdWVzc2VzRm9yV29yZCk6CisgICAgICAgIChn
ZXRBdmFpbGFibGVEaWN0aW9uYXJpZXNDYWxsYmFjayk6CisgICAgICAgICh1cGRhdGVTcGVsbENo
ZWNraW5nTGFuZ3VhZ2VzKToKKyAgICAgICAgKGxlYXJuV29yZCk6CisgICAgICAgIChpZ25vcmVX
b3JkKToKKwogMjAxMi0wNy0zMCAgQ2xhdWRpbyBTYWF2ZWRyYSAgPGNzYWF2ZWRyYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHdGtdIEFkZCBXSzEgQVBJIGZvciBzbmFwc2hvdCByZXRyaWV2YWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAxN2M3NmRmZTg2OThhM2RiNjcwNmVjODk0MmUzN2FhNWVkZGQyYmFhLi4w
ZmU3ZjdmZDYyN2E3YjgwNWI0Mjk5ZDQ0NTBjZmVhNjU0YzAzMWJlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjcgQEAKKzIwMTItMDctMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RA
Z21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjM5NjYgYW5k
IHIxMjM5NjcuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyMzk2
NgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjM5NjcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjU2CisKKyAgICAg
ICAgVGhpcyBwYXRjaCBpcyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlcyBvbiB0aGUgZGVidWcg
Ym90CisgICAgICAgIChhbHNvIHJvbGxpbmcgb3V0IGEgZGVwZW5kZW50IHBhdGNoKSAoUmVxdWVz
dGVkIGJ5IG1yb2JpbnNvbgorICAgICAgICBvbiAjd2Via2l0KS4KKworICAgICAgICAqIEdOVW1h
a2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFRleHRDaGVja2VyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5oOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwOgorICAgICAgICAoX1dlYktpdFdlYkNvbnRl
eHRQcml2YXRlKToKKyAgICAgICAgKGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KToKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChi
ZWZvcmVBbGwpOgorCiAyMDEyLTA3LTI5ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFJlc291cmNlIGFnZW50J3MgcmVmZXJl
bmNlIHRvIGNhY2hlZCByZXNvdXJjZXMgc2hvdWxkIGJlIHdlYWsuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
CmluZGV4IDMyYWY1YzM3Y2Y3ZjA4MDY3OTZkYjk1YmJlZjRhMTIxMzY2MzBkZTAuLjI5NTg5YWJm
NTIzM2ZjNDUxNTZjOGM1ZGQ5MGQ1OTE1MmQzZTJkNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBA
IC0xMTcsOCArMTE3LDcgQEAgd2ViY29yZWd0a19jcHBmbGFncyArPSBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyIFwKIAktSSQoc3JjZGly
KS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsgXAogCS1JJChzcmNkaXIpL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ayBcCi0JLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwIFwKLQktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L2d0aworCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cAogCiAjIC0tLQogIyBGZWF0dXJlcyBlbmFibGVkIGJ5IGRlZmF1bHQgYXQgY29tcGls
YXRpb24gdGltZQpAQCAtNzQ5LDE0ICs3NDgsNiBAQCBGRUFUVVJFX0RFRklORVMgKz0gRU5BQkxF
X0xJTktfUFJFRkVUQ0g9MQogd2ViY29yZV9jcHBmbGFncyArPSAtREVOQUJMRV9MSU5LX1BSRUZF
VENIPTEKIGVuZGlmICAjIEVORCBFTkFCTEVfTElOS19QUkVGRVRDSAogCi0jIC0tLQotIyBTcGVs
bCBjaGVjayBzdXBwb3J0Ci0jIC0tLQotaWYgRU5BQkxFX1NQRUxMQ0hFQ0sKLUZFQVRVUkVfREVG
SU5FUyArPSBFTkFCTEVfU1BFTExDSEVDSz0xCi13ZWJjb3JlX2NwcGZsYWdzICs9IC1ERU5BQkxF
X1NQRUxMQ0hFQ0s9MQotZW5kaWYgICMgRU5EIEVOQUJMRV9TUEVMTENIRUNLCi0KIERlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvQ1NTUHJvcGVydHlOYW1lcy5jcHA6IERlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvQ1NTUHJvcGVydHlOYW1lcy5oCiBEZXJpdmVkU291cmNlcy9XZWJDb3JlL0NTU1Byb3BlcnR5
TmFtZXMuaDogJChXRUJDT1JFX0NTU19QUk9QRVJUWV9OQU1FUykgJChXZWJDb3JlKS9jc3MvbWFr
ZXByb3AucGwKIAkkKEFNX1ZfR0VOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXgg
NWVhNDcyOTc1N2I1NmU5NDdjNDJmM2IxMWFlNzEyMTYxNWFkNDA1MS4uMGExN2M4YjZhNmU2ZDU2
YWEwOGRhOWUyNTc4MTQ2NGViZGI1YTQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
CkBAIC02MjkwLDEzICs2MjkwLDMgQEAgZG9tX2JpbmRpbmdfaWRscyArPSBcCiAJJChXZWJDb3Jl
KS9Nb2R1bGVzL3F1b3RhL1N0b3JhZ2VJbmZvVXNhZ2VDYWxsYmFjay5pZGwKIAogZW5kaWYgICMg
RU5EIEVOQUJMRV9RVU9UQQotCi0jIC0tLS0KLSMgU3BlbGwgY2hlY2sgc3VwcG9ydAotIyAtLS0t
Ci1pZiBFTkFCTEVfU1BFTExDSEVDSwotd2ViY29yZV9zb3VyY2VzICs9IFwKLQlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L2d0ay9UZXh0Q2hlY2tlckVuY2hhbnQuaCBcCi0JU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcAotZW5kaWYgIyBF
TkQgRU5BQkxFX1NQRUxMQ0hFQ0sKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvZ3RrL1RleHRDaGVja2VyRW5jaGFudC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGQwZDk5YzBmYzM0ODg5NGYzNTYxYWI3Mzg0MjlhYjgyOTE0ZjhmOTcuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNrZXJFbmNoYW50LmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDE5NiArMCwwIEBACi0vKgotICogIENvcHlyaWdodCAoQykgMjAxMiBJZ2FsaWEgUy5MLgot
ICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCi0gKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYwotICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
Ci0gKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKLSAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0g
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIlRleHRDaGVja2VyRW5jaGFudC5oIgotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0K
LSNpbmNsdWRlIDxwYW5nby9wYW5nby5oPgotI2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwotCi1zdGF0aWMgY29uc3Qgc2l6ZV90IG1heGltdW1OdW1iZXJPZlN1Z2dlc3Rpb25zID0g
MTA7Ci0KLXN0YXRpYyB2b2lkIGdldEF2YWlsYWJsZURpY3Rpb25hcmllc0NhbGxiYWNrKGNvbnN0
IGNoYXIqIGNvbnN0IGxhbmd1YWdlVGFnLCBjb25zdCBjaGFyKiBjb25zdCwgY29uc3QgY2hhciog
Y29uc3QsIGNvbnN0IGNoYXIqIGNvbnN0LCB2b2lkKiBkYXRhKQotewotICAgIFZlY3RvcjxDU3Ry
aW5nPiogZGljdGlvbmFyaWVzID0gc3RhdGljX2Nhc3Q8VmVjdG9yPENTdHJpbmc+Kj4oZGF0YSk7
Ci0gICAgZGljdGlvbmFyaWVzLT5hcHBlbmQobGFuZ3VhZ2VUYWcpOwotfQotCi1zdGF0aWMgYm9v
bCB3b3JkRW5kSXNBQ29udHJhY3Rpb25BcG9zdHJvcGhlKGNvbnN0IGNoYXIqIHN0cmluZywgbG9u
ZyBvZmZzZXQpCi17Ci0gICAgaWYgKGdfdXRmOF9nZXRfY2hhcihnX3V0Zjhfb2Zmc2V0X3RvX3Bv
aW50ZXIoc3RyaW5nLCBvZmZzZXQpKSAhPSBnX3V0ZjhfZ2V0X2NoYXIoIiciKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgLy8gSWYgdGhpcyBpcyB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4g
dGhlIHN0cmluZywgaXQgY2Fubm90IGJlIHRoZSBhcG9zdHJvcGhlIHBhcnQgb2YgYSBjb250cmFj
dGlvbi4KLSAgICBpZiAob2Zmc2V0ID09IGdfdXRmOF9zdHJsZW4oc3RyaW5nLCAtMSkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLQotICAgIHJldHVybiBnX3VuaWNoYXJfaXNhbHBoYShnX3V0Zjhf
Z2V0X2NoYXIoZ191dGY4X29mZnNldF90b19wb2ludGVyKHN0cmluZywgb2Zmc2V0ICsgMSkpKTsK
LX0KLQotVGV4dENoZWNrZXJFbmNoYW50OjpUZXh0Q2hlY2tlckVuY2hhbnQoKQotICAgIDogbV9i
cm9rZXIoZW5jaGFudF9icm9rZXJfaW5pdCgpKQotICAgICwgbV9lbmNoYW50RGljdGlvbmFyaWVz
KDApCi17Ci19Ci0KLVRleHRDaGVja2VyRW5jaGFudDo6flRleHRDaGVja2VyRW5jaGFudCgpCi17
Ci0gICAgaWYgKCFtX2Jyb2tlcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZnJlZUVuY2hhbnRC
cm9rZXJEaWN0aW9uYXJpZXMoKTsKLSAgICBlbmNoYW50X2Jyb2tlcl9mcmVlKG1fYnJva2VyKTsK
LX0KLQotdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6Omlnbm9yZVdvcmQoY29uc3QgU3RyaW5nJiB3
b3JkKQotewotICAgIGZvciAoVmVjdG9yPEVuY2hhbnREaWN0Kj46OmNvbnN0X2l0ZXJhdG9yIGl0
ZXIgPSBtX2VuY2hhbnREaWN0aW9uYXJpZXMuYmVnaW4oKTsgaXRlciAhPSBtX2VuY2hhbnREaWN0
aW9uYXJpZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgZW5jaGFudF9kaWN0X2FkZF90b19zZXNz
aW9uKCppdGVyLCB3b3JkLnV0ZjgoKS5kYXRhKCksIC0xKTsKLX0KLQotdm9pZCBUZXh0Q2hlY2tl
ckVuY2hhbnQ6OmxlYXJuV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCi17Ci0gICAgZm9yIChWZWN0
b3I8RW5jaGFudERpY3QqPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1fZW5jaGFudERpY3Rpb25h
cmllcy5iZWdpbigpOyBpdGVyICE9IG1fZW5jaGFudERpY3Rpb25hcmllcy5lbmQoKTsgKytpdGVy
KQotICAgICAgICBlbmNoYW50X2RpY3RfYWRkX3RvX3BlcnNvbmFsKCppdGVyLCB3b3JkLnV0Zjgo
KS5kYXRhKCksIC0xKTsKLX0KLQotdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OmNoZWNrU3BlbGxp
bmdPZlN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZywgaW50JiBtaXNzcGVsbGluZ0xvY2F0aW9u
LCBpbnQmIG1pc3NwZWxsaW5nTGVuZ3RoKQotewotICAgIGlmIChtX2VuY2hhbnREaWN0aW9uYXJp
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0gICAgVmVjdG9yPEVuY2hhbnREaWN0Kj46
OmNvbnN0X2l0ZXJhdG9yIGRpY3RJdGVyID0gbV9lbmNoYW50RGljdGlvbmFyaWVzLmJlZ2luKCk7
Ci0KLSAgICBHT3duUHRyPGdjaGFyPiBjU3RyaW5nKGdfc3RyZHVwKHN0cmluZy51dGY4KCkuZGF0
YSgpKSk7Ci0gICAgc2l6ZV90IGxlbmd0aCA9IHN0cmluZy51dGY4KCkubGVuZ3RoKCk7Ci0KLSAg
ICBQYW5nb0xhbmd1YWdlKiBsYW5ndWFnZShwYW5nb19sYW5ndWFnZV9nZXRfZGVmYXVsdCgpKTsK
LSAgICBHT3duUHRyPFBhbmdvTG9nQXR0cj4gYXR0cnMoZ19uZXcoUGFuZ29Mb2dBdHRyLCBsZW5n
dGggKyAxKSk7Ci0KLSAgICAvLyBwYW5nb19nZXRfbG9nX2F0dHJzIHVzZXMgYW4gYWRpdGlvbmFs
IHBvc2l0aW9uIGF0IHRoZSBlbmQgb2YgdGhlIHRleHQuCi0gICAgcGFuZ29fZ2V0X2xvZ19hdHRy
cyhjU3RyaW5nLmdldCgpLCAtMSwgLTEsIGxhbmd1YWdlLCBhdHRycy5nZXQoKSwgbGVuZ3RoICsg
MSk7Ci0KLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxlbmd0aCArIDE7IGkrKykgewotICAg
ICAgICAvLyBXZSBnbyB0aHJvdWdoIGVhY2ggY2hhcmFjdGVyIHVudGlsIHdlIGZpbmQgYW4gaXNf
d29yZF9zdGFydCwKLSAgICAgICAgLy8gdGhlbiB3ZSBnZXQgaW50byBhbiBpbm5lciBsb29wIHRv
IGZpbmQgdGhlIGlzX3dvcmRfZW5kIGNvcnJlc3BvbmRpbmcKLSAgICAgICAgLy8gdG8gaXQuCi0g
ICAgICAgIGlmIChhdHRycy5nZXQoKVtpXS5pc193b3JkX3N0YXJ0KSB7Ci0gICAgICAgICAgICBp
bnQgc3RhcnQgPSBpOwotICAgICAgICAgICAgaW50IGVuZCA9IGk7Ci0gICAgICAgICAgICBpbnQg
d29yZExlbmd0aDsKLQotICAgICAgICAgICAgd2hpbGUgKGF0dHJzLmdldCgpW2VuZF0uaXNfd29y
ZF9lbmQgPCAxICB8fCB3b3JkRW5kSXNBQ29udHJhY3Rpb25BcG9zdHJvcGhlKGNTdHJpbmcuZ2V0
KCksIGVuZCkpCi0gICAgICAgICAgICAgICAgZW5kKys7Ci0KLSAgICAgICAgICAgIHdvcmRMZW5n
dGggPSBlbmQgLSBzdGFydDsKLSAgICAgICAgICAgIC8vIFNldCB0aGUgaXRlcmF0b3IgdG8gYmUg
YXQgdGhlIGN1cnJlbnQgd29yZCBlbmQsIHNvIHdlIGRvbid0Ci0gICAgICAgICAgICAvLyBjaGVj
ayBjaGFyYWN0ZXJzIHR3aWNlLgotICAgICAgICAgICAgaSA9IGVuZDsKLQotICAgICAgICAgICAg
Z2NoYXIqIGNzdGFydCA9IGdfdXRmOF9vZmZzZXRfdG9fcG9pbnRlcihjU3RyaW5nLmdldCgpLCBz
dGFydCk7Ci0gICAgICAgICAgICBnaW50IGJ5dGVzID0gc3RhdGljX2Nhc3Q8Z2ludD4oZ191dGY4
X29mZnNldF90b19wb2ludGVyKGNTdHJpbmcuZ2V0KCksIGVuZCkgLSBjc3RhcnQpOwotICAgICAg
ICAgICAgR093blB0cjxnY2hhcj4gd29yZChnX25ldzAoZ2NoYXIsIGJ5dGVzICsgMSkpOwotCi0g
ICAgICAgICAgICBnX3V0Zjhfc3RybmNweSh3b3JkLmdldCgpLCBjc3RhcnQsIHdvcmRMZW5ndGgp
OwotCi0gICAgICAgICAgICBmb3IgKDsgZGljdEl0ZXIgIT0gbV9lbmNoYW50RGljdGlvbmFyaWVz
LmVuZCgpOyArK2RpY3RJdGVyKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGVuY2hhbnRfZGljdF9j
aGVjaygqZGljdEl0ZXIsIHdvcmQuZ2V0KCksIHdvcmRMZW5ndGgpKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIG1pc3NwZWxsaW5nTG9jYXRpb24gPSBzdGFydDsKLSAgICAgICAgICAgICAgICAgICAg
bWlzc3BlbGxpbmdMZW5ndGggPSB3b3JkTGVuZ3RoOwotICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgIC8vIFN0b3AgY2hlY2tpbmcsIHRoaXMgd29yZCBpcyBvayBp
biBhdCBsZWFzdCBvbmUgZGljdC4KLSAgICAgICAgICAgICAgICAgICAgbWlzc3BlbGxpbmdMb2Nh
dGlvbiA9IC0xOwotICAgICAgICAgICAgICAgICAgICBtaXNzcGVsbGluZ0xlbmd0aCA9IDA7Ci0g
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KLX0KLQotVmVjdG9yPFN0cmluZz4gVGV4dENoZWNrZXJFbmNo
YW50OjpnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCi17Ci0gICAgVmVjdG9y
PFN0cmluZz4gZ3Vlc3NlczsKLSAgICBpZiAobV9lbmNoYW50RGljdGlvbmFyaWVzLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIGd1ZXNzZXM7Ci0KLSAgICBmb3IgKFZlY3RvcjxFbmNoYW50RGlj
dCo+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9lbmNoYW50RGljdGlvbmFyaWVzLmJlZ2luKCk7
IGl0ZXIgIT0gbV9lbmNoYW50RGljdGlvbmFyaWVzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAg
c2l6ZV90IG51bWJlck9mU3VnZ2VzdGlvbnM7Ci0gICAgICAgIHNpemVfdCBpOwotCi0gICAgICAg
IGdjaGFyKiogc3VnZ2VzdGlvbnMgPSBlbmNoYW50X2RpY3Rfc3VnZ2VzdCgqaXRlciwgd29yZC51
dGY4KCkuZGF0YSgpLCAtMSwgJm51bWJlck9mU3VnZ2VzdGlvbnMpOwotICAgICAgICBpZiAobnVt
YmVyT2ZTdWdnZXN0aW9ucyA8PSAwKQotICAgICAgICAgICAgY29udGludWU7Ci0KLSAgICAgICAg
aWYgKG51bWJlck9mU3VnZ2VzdGlvbnMgPiBtYXhpbXVtTnVtYmVyT2ZTdWdnZXN0aW9ucykKLSAg
ICAgICAgICAgIG51bWJlck9mU3VnZ2VzdGlvbnMgPSBtYXhpbXVtTnVtYmVyT2ZTdWdnZXN0aW9u
czsKLQotICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbnVtYmVyT2ZTdWdnZXN0aW9uczsgaSsrKQot
ICAgICAgICAgICAgZ3Vlc3Nlcy5hcHBlbmQoU3RyaW5nKHN1Z2dlc3Rpb25zW2ldKSk7Ci0KLSAg
ICAgICAgZW5jaGFudF9kaWN0X2ZyZWVfc3VnZ2VzdGlvbnMoKml0ZXIsIHN1Z2dlc3Rpb25zKTsK
LSAgICB9Ci0KLSAgICByZXR1cm4gZ3Vlc3NlczsKLX0KLQotdm9pZCBUZXh0Q2hlY2tlckVuY2hh
bnQ6OnVwZGF0ZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoY29uc3QgU3RyaW5nJiBsYW5ndWFnZXMp
Ci17Ci0gICAgVmVjdG9yPEVuY2hhbnREaWN0Kj4gc3BlbGxEaWN0aW9uYXJpZXM7Ci0KLSAgICBp
ZiAoIWxhbmd1YWdlcy5pc0VtcHR5KCkpIHsKLSAgICAgICAgVmVjdG9yPFN0cmluZz4gbGFuZ3Vh
Z2VzVmVjdG9yOwotICAgICAgICBsYW5ndWFnZXMuc3BsaXQoc3RhdGljX2Nhc3Q8VUNoYXI+KCcs
JyksIGxhbmd1YWdlc1ZlY3Rvcik7Ci0gICAgICAgIGZvciAoVmVjdG9yPFN0cmluZz46OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBsYW5ndWFnZXNWZWN0b3IuYmVnaW4oKTsgaXRlciAhPSBsYW5ndWFn
ZXNWZWN0b3IuZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgR093blB0cjxnY2hhcj4gY3Vy
cmVudExhbmd1YWdlKGdfc3RyZHVwKGl0ZXItPnV0ZjgoKS5kYXRhKCkpKTsKLSAgICAgICAgICAg
IGlmIChlbmNoYW50X2Jyb2tlcl9kaWN0X2V4aXN0cyhtX2Jyb2tlciwgY3VycmVudExhbmd1YWdl
LmdldCgpKSkgewotICAgICAgICAgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gZW5jaGFudF9i
cm9rZXJfcmVxdWVzdF9kaWN0KG1fYnJva2VyLCBjdXJyZW50TGFuZ3VhZ2UuZ2V0KCkpOwotICAg
ICAgICAgICAgICAgIHNwZWxsRGljdGlvbmFyaWVzLmFwcGVuZChkaWN0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGxhbmd1YWdl
ID0gcGFuZ29fbGFuZ3VhZ2VfdG9fc3RyaW5nKHBhbmdvX2xhbmd1YWdlX2dldF9kZWZhdWx0KCkp
OwotICAgICAgICBpZiAoZW5jaGFudF9icm9rZXJfZGljdF9leGlzdHMobV9icm9rZXIsIGxhbmd1
YWdlKSkgewotICAgICAgICAgICAgRW5jaGFudERpY3QqIGRpY3QgPSBlbmNoYW50X2Jyb2tlcl9y
ZXF1ZXN0X2RpY3QobV9icm9rZXIsIGxhbmd1YWdlKTsKLSAgICAgICAgICAgIHNwZWxsRGljdGlv
bmFyaWVzLmFwcGVuZChkaWN0KTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIE5v
IGRpY3Rpb25hcmllcyBzZWxlY3RlZCwgd2UgZ2V0IG9uZSBmcm9tIHRoZSBsaXN0LgotICAgICAg
ICAgICAgVmVjdG9yPENTdHJpbmc+IGFsbERpY3Rpb25hcmllczsKLSAgICAgICAgICAgIGVuY2hh
bnRfYnJva2VyX2xpc3RfZGljdHMobV9icm9rZXIsIGdldEF2YWlsYWJsZURpY3Rpb25hcmllc0Nh
bGxiYWNrLCAmYWxsRGljdGlvbmFyaWVzKTsKLSAgICAgICAgICAgIGlmICghYWxsRGljdGlvbmFy
aWVzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gZW5j
aGFudF9icm9rZXJfcmVxdWVzdF9kaWN0KG1fYnJva2VyLCBhbGxEaWN0aW9uYXJpZXNbMF0uZGF0
YSgpKTsKLSAgICAgICAgICAgICAgICBzcGVsbERpY3Rpb25hcmllcy5hcHBlbmQoZGljdCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgZnJlZUVuY2hhbnRCcm9rZXJEaWN0
aW9uYXJpZXMoKTsKLSAgICBtX2VuY2hhbnREaWN0aW9uYXJpZXMgPSBzcGVsbERpY3Rpb25hcmll
czsKLX0KLQotdm9pZCBUZXh0Q2hlY2tlckVuY2hhbnQ6OmZyZWVFbmNoYW50QnJva2VyRGljdGlv
bmFyaWVzKCkKLXsKLSAgICBmb3IgKFZlY3RvcjxFbmNoYW50RGljdCo+Ojpjb25zdF9pdGVyYXRv
ciBpdGVyID0gbV9lbmNoYW50RGljdGlvbmFyaWVzLmJlZ2luKCk7IGl0ZXIgIT0gbV9lbmNoYW50
RGljdGlvbmFyaWVzLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgIGVuY2hhbnRfYnJva2VyX2ZyZWVf
ZGljdChtX2Jyb2tlciwgKml0ZXIpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFNQRUxMQ0hFQ0sp
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvZ3RrL1RleHRDaGVj
a2VyRW5jaGFudC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENoZWNr
ZXJFbmNoYW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDczOTc1NWU0MjRhYjlk
YzlmM2QxOTYyYmUzMWFlMDE0OTAzNmQ5YmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9ndGsvVGV4dENo
ZWNrZXJFbmNoYW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1OCArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgot
ICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w
ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3
aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENP
UFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpZm5kZWYgVGV4dENoZWNrZXJFbmNoYW50X2gK
LSNkZWZpbmUgVGV4dENoZWNrZXJFbmNoYW50X2gKLQotI2lmIEVOQUJMRShTUEVMTENIRUNLKQot
Ci0jaW5jbHVkZSA8ZW5jaGFudC5oPgotI2luY2x1ZGUgPHd0Zi9GYXN0QWxsb2NCYXNlLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xh
c3MgVGV4dENoZWNrZXJFbmNoYW50IHsKLSAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKLQot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFRleHRDaGVja2VyRW5jaGFudD4gY3JlYXRl
KCkgeyByZXR1cm4gYWRvcHRQdHIobmV3IFRleHRDaGVja2VyRW5jaGFudCk7IH0KLSAgICB2aXJ0
dWFsIH5UZXh0Q2hlY2tlckVuY2hhbnQoKTsKLQotICAgIHZvaWQgaWdub3JlV29yZChjb25zdCBT
dHJpbmcmKTsKLSAgICB2b2lkIGxlYXJuV29yZChjb25zdCBTdHJpbmcmKTsKLSAgICB2b2lkIGNo
ZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBTdHJpbmcmLCBpbnQmIG1pc3NwZWxsaW5nTG9jYXRp
b24sIGludCYgbWlzc3BlbGxpbmdMZW5ndGgpOwotICAgIFZlY3RvcjxTdHJpbmc+IGdldEd1ZXNz
ZXNGb3JXb3JkKGNvbnN0IFN0cmluZyYpOwotICAgIHZvaWQgdXBkYXRlU3BlbGxDaGVja2luZ0xh
bmd1YWdlcyhjb25zdCBTdHJpbmcmIGxhbmd1YWdlcyk7Ci0KLXByaXZhdGU6Ci0gICAgVGV4dENo
ZWNrZXJFbmNoYW50KCk7Ci0gICAgdm9pZCBmcmVlRW5jaGFudEJyb2tlckRpY3Rpb25hcmllcygp
OwotCi0gICAgRW5jaGFudEJyb2tlciogbV9icm9rZXI7Ci0gICAgVmVjdG9yPEVuY2hhbnREaWN0
Kj4gbV9lbmNoYW50RGljdGlvbmFyaWVzOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci0jZW5kaWYgLy8gRU5BQkxFKFNQRUxMQ0hFQ0spCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHNwZWxsY2hlY2tlcmVuY2hhbnQuY3BwCmluZGV4
IDBhMjI2OTI4YjJkYjlhNjAzZDhkNmVlMjFhNmU2MzQyNmQwOWMxMjYuLjBlYjQ5ODZkMWQ5YmMw
OTZkNDM5YmE1ZTlkYTFiYTY0ZDQ4YTgwYmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXRzcGVsbGNoZWNrZXJlbmNoYW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0c3BlbGxjaGVja2VyZW5jaGFudC5jcHAKQEAgLTIxLDE1ICsyMSwx
MiBAQAogCiAjaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCiAKLSNpbmNsdWRlICJUZXh0Q2hlY2tlckVu
Y2hhbnQuaCIKICNpbmNsdWRlICJ3ZWJraXRzcGVsbGNoZWNrZXIuaCIKKyNpbmNsdWRlIDxlbmNo
YW50Lmg+CiAjaW5jbHVkZSA8Z3RrL2d0ay5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNp
bmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgogCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQogLyoqCiAgKiBTRUNUSU9OOndlYmtp
dHNwZWxsY2hlY2tlcmVuY2hhbnQKICAqIEBzaG9ydF9kZXNjcmlwdGlvbjogdGhlIGRlZmF1bHQg
c3BlbGwgY2hlY2tpbmcgaW1wbGVtZW50YXRpb24gZm9yIFdlYktpdEdUSysuCkBAIC0zOCw5ICsz
NSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKICAqIFdlYktpdEdUSysuIEl0IHVzZXMg
dGhlIEVuY2hhbnQgZGljdGlvbmFyaWVzIGluc3RhbGxlZCBvbiB0aGUgc3lzdGVtIHRvCiAgKiBj
b3JyZWN0IHNwZWxsaW5nLgogICovCitzdGF0aWMgRW5jaGFudEJyb2tlciogYnJva2VyID0gMDsK
IAogc3RydWN0IF9XZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSB7Ci0gICAgT3duUHRy
PFRleHRDaGVja2VyRW5jaGFudD4gdGV4dENoZWNrZXJFbmNoYW50OworICAgIEdTTGlzdCogZW5j
aGFudERpY3RzOwogfTsKIAogc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFu
dF9zcGVsbF9jaGVja2VyX2ludGVyZmFjZV9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckludGVyZmFj
ZSogaW50ZXJmYWNlKTsKQEAgLTQ5LDE2ICs0NywzNSBAQCBHX0RFRklORV9UWVBFX1dJVEhfQ09E
RShXZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50LCB3ZWJraXRfc3BlbGxfY2hlY2tlcl9lbmNoYW50
LAogICAgICAgICAgICAgICAgICAgICAgICAgR19JTVBMRU1FTlRfSU5URVJGQUNFKFdFQktJVF9U
WVBFX1NQRUxMX0NIRUNLRVIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgd2Via2l0X3NwZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVsbF9jaGVja2VyX2ludGVy
ZmFjZV9pbml0KSkKIAorc3RhdGljIHZvaWQgY3JlYXRlRW5jaGFudEJyb2tlcklmTmVlZGVkKCkK
K3sKKyAgICBpZiAoIWJyb2tlcikKKyAgICAgICAgYnJva2VyID0gZW5jaGFudF9icm9rZXJfaW5p
dCgpOworfQorCitzdGF0aWMgdm9pZCBmcmVlU3BlbGxDaGVja2luZ0xhbmd1YWdlKGdwb2ludGVy
IGRhdGEsIGdwb2ludGVyKQoreworICAgIGNyZWF0ZUVuY2hhbnRCcm9rZXJJZk5lZWRlZCgpOwor
CisgICAgZW5jaGFudF9icm9rZXJfZnJlZV9kaWN0KGJyb2tlciwgc3RhdGljX2Nhc3Q8RW5jaGFu
dERpY3QqPihkYXRhKSk7Cit9CisKIHN0YXRpYyB2b2lkIHdlYmtpdF9zcGVsbF9jaGVja2VyX2Vu
Y2hhbnRfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewogICAgIFdlYktpdFNwZWxsQ2hlY2tl
ckVuY2hhbnRQcml2YXRlKiBwcml2ID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFOVChvYmpl
Y3QpLT5wcml2OwotICAgIHByaXYtPn5XZWJLaXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSgp
OworCisgICAgZ19zbGlzdF9mb3JlYWNoKHByaXYtPmVuY2hhbnREaWN0cywgZnJlZVNwZWxsQ2hl
Y2tpbmdMYW5ndWFnZSwgMCk7CisgICAgZ19zbGlzdF9mcmVlKHByaXYtPmVuY2hhbnREaWN0cyk7
CisKKyAgICBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5UKG9iamVjdCktPnByaXYtPn5XZWJL
aXRTcGVsbENoZWNrZXJFbmNoYW50UHJpdmF0ZSgpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRf
c3BlbGxfY2hlY2tlcl9lbmNoYW50X2NsYXNzX2luaXQoV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFu
dENsYXNzKiBrbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIG9iamVjdENsYXNzID0gR19PQkpF
Q1RfQ0xBU1Moa2xhc3MpOworCiAgICAgb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X3Nw
ZWxsX2NoZWNrZXJfZW5jaGFudF9maW5hbGl6ZTsKKwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShrbGFzcywgc2l6ZW9mKFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnRQcml2YXRlKSk7CiB9
CiAKQEAgLTY4LDM4ICs4NSwxNDkgQEAgc3RhdGljIHZvaWQgd2Via2l0X3NwZWxsX2NoZWNrZXJf
ZW5jaGFudF9pbml0KFdlYktpdFNwZWxsQ2hlY2tlckVuY2hhbnQqIGNoZWNrZXIKICAgICBjaGVj
a2VyLT5wcml2ID0gcHJpdjsKICAgICBuZXcgKHByaXYpIFdlYktpdFNwZWxsQ2hlY2tlckVuY2hh
bnRQcml2YXRlKCk7CiAKLSAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQgPSBUZXh0Q2hlY2tl
ckVuY2hhbnQ6OmNyZWF0ZSgpOworICAgIHByaXYtPmVuY2hhbnREaWN0cyA9IDA7Cit9CisKK3N0
YXRpYyBib29sIHdvcmRFbmRJc0FDb250cmFjdGlvbkFwb3N0cm9waGUoY29uc3QgY2hhciogc3Ry
aW5nLCBsb25nIG9mZnNldCkKK3sKKyAgICBpZiAoZ191dGY4X2dldF9jaGFyKGdfdXRmOF9vZmZz
ZXRfdG9fcG9pbnRlcihzdHJpbmcsIG9mZnNldCkpICE9IGdfdXRmOF9nZXRfY2hhcigiJyIpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiB0aGlzIGlzIHRoZSBsYXN0IGNoYXJh
Y3RlciBpbiB0aGUgc3RyaW5nLCBpdCBjYW5ub3QgYmUgdGhlIGFwb3N0cm9waGUgcGFydCBvZiBh
IGNvbnRyYWN0aW9uLgorICAgIGlmIChvZmZzZXQgPT0gZ191dGY4X3N0cmxlbihzdHJpbmcsIC0x
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIGdfdW5pY2hhcl9pc2FscGhh
KGdfdXRmOF9nZXRfY2hhcihnX3V0Zjhfb2Zmc2V0X3RvX3BvaW50ZXIoc3RyaW5nLCBvZmZzZXQg
KyAxKSkpOwogfQogCiBzdGF0aWMgdm9pZCBjaGVja1NwZWxsaW5nT2ZTdHJpbmcoV2ViS2l0U3Bl
bGxDaGVja2VyKiBjaGVja2VyLCBjb25zdCBjaGFyKiBzdHJpbmcsIGludCogbWlzc3BlbGxpbmdM
b2NhdGlvbiwgaW50KiBtaXNzcGVsbGluZ0xlbmd0aCkKIHsKICAgICBXZWJLaXRTcGVsbENoZWNr
ZXJFbmNoYW50UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9TUEVMTF9DSEVDS0VSX0VOQ0hBTlQoY2hl
Y2tlciktPnByaXY7Ci0gICAgcHJpdi0+dGV4dENoZWNrZXJFbmNoYW50LT5jaGVja1NwZWxsaW5n
T2ZTdHJpbmcoU3RyaW5nKHN0cmluZyksICptaXNzcGVsbGluZ0xvY2F0aW9uLCAqbWlzc3BlbGxp
bmdMZW5ndGgpOworCisgICAgR1NMaXN0KiBkaWN0cyA9IHByaXYtPmVuY2hhbnREaWN0czsKKyAg
ICBpZiAoIWRpY3RzKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnQgbGVuZ3RoID0gZ191dGY4
X3N0cmxlbihzdHJpbmcsIC0xKTsKKworICAgIFBhbmdvTGFuZ3VhZ2UqIGxhbmd1YWdlKHBhbmdv
X2xhbmd1YWdlX2dldF9kZWZhdWx0KCkpOworICAgIEdPd25QdHI8UGFuZ29Mb2dBdHRyPiBhdHRy
cyhnX25ldyhQYW5nb0xvZ0F0dHIsIGxlbmd0aCArIDEpKTsKKworICAgIC8vIHBhbmdvX2dldF9s
b2dfYXR0cnMgdXNlcyBhbiBhZGl0aW9uYWwgcG9zaXRpb24gYXQgdGhlIGVuZCBvZiB0aGUgdGV4
dC4KKyAgICBwYW5nb19nZXRfbG9nX2F0dHJzKHN0cmluZywgLTEsIC0xLCBsYW5ndWFnZSwgYXR0
cnMuZ2V0KCksIGxlbmd0aCArIDEpOworCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW5ndGgg
KyAxOyBpKyspIHsKKyAgICAgICAgLy8gV2UgZ28gdGhyb3VnaCBlYWNoIGNoYXJhY3RlciB1bnRp
bCB3ZSBmaW5kIGFuIGlzX3dvcmRfc3RhcnQsCisgICAgICAgIC8vIHRoZW4gd2UgZ2V0IGludG8g
YW4gaW5uZXIgbG9vcCB0byBmaW5kIHRoZSBpc193b3JkX2VuZCBjb3JyZXNwb25kaW5nCisgICAg
ICAgIC8vIHRvIGl0LgorICAgICAgICBpZiAoYXR0cnMuZ2V0KClbaV0uaXNfd29yZF9zdGFydCkg
eworICAgICAgICAgICAgaW50IHN0YXJ0ID0gaTsKKyAgICAgICAgICAgIGludCBlbmQgPSBpOwor
ICAgICAgICAgICAgaW50IHdvcmRMZW5ndGg7CisKKyAgICAgICAgICAgIHdoaWxlIChhdHRycy5n
ZXQoKVtlbmRdLmlzX3dvcmRfZW5kIDwgMSB8fCB3b3JkRW5kSXNBQ29udHJhY3Rpb25BcG9zdHJv
cGhlKHN0cmluZywgZW5kKSkKKyAgICAgICAgICAgICAgICBlbmQrKzsKKworICAgICAgICAgICAg
d29yZExlbmd0aCA9IGVuZCAtIHN0YXJ0OworICAgICAgICAgICAgLy8gU2V0IHRoZSBpdGVyYXRv
ciB0byBiZSBhdCB0aGUgY3VycmVudCB3b3JkIGVuZCwgc28gd2UgZG9uJ3QKKyAgICAgICAgICAg
IC8vIGNoZWNrIGNoYXJhY3RlcnMgdHdpY2UuCisgICAgICAgICAgICBpID0gZW5kOworCisgICAg
ICAgICAgICBnY2hhciogY3N0YXJ0ID0gZ191dGY4X29mZnNldF90b19wb2ludGVyKHN0cmluZywg
c3RhcnQpOworICAgICAgICAgICAgZ2ludCBieXRlcyA9IHN0YXRpY19jYXN0PGdpbnQ+KGdfdXRm
OF9vZmZzZXRfdG9fcG9pbnRlcihzdHJpbmcsIGVuZCkgLSBjc3RhcnQpOworICAgICAgICAgICAg
R093blB0cjxnY2hhcj4gd29yZChnX25ldzAoZ2NoYXIsIGJ5dGVzICsgMSkpOworCisgICAgICAg
ICAgICBnX3V0Zjhfc3RybmNweSh3b3JkLmdldCgpLCBjc3RhcnQsIHdvcmRMZW5ndGgpOworCisg
ICAgICAgICAgICBmb3IgKDsgZGljdHM7IGRpY3RzID0gZGljdHMtPm5leHQpIHsKKyAgICAgICAg
ICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IHN0YXRpY19jYXN0PEVuY2hhbnREaWN0Kj4oZGlj
dHMtPmRhdGEpOworICAgICAgICAgICAgICAgIGlmIChlbmNoYW50X2RpY3RfY2hlY2soZGljdCwg
d29yZC5nZXQoKSwgd29yZExlbmd0aCkpIHsKKyAgICAgICAgICAgICAgICAgICAgKm1pc3NwZWxs
aW5nTG9jYXRpb24gPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgKm1pc3NwZWxsaW5nTGVu
Z3RoID0gd29yZExlbmd0aDsKKyAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgICAgICAvLyBTdG9wIGNoZWNraW5nLCB0aGlzIHdvcmQgaXMgb2sgaW4gYXQgbGVhc3Qgb25l
IGRpY3QuCisgICAgICAgICAgICAgICAgICAgICptaXNzcGVsbGluZ0xvY2F0aW9uID0gLTE7Cisg
ICAgICAgICAgICAgICAgICAgICptaXNzcGVsbGluZ0xlbmd0aCA9IDA7CisgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgIH0KIH0KIAogc3RhdGljIGNoYXIqKiBnZXRHdWVzc2VzRm9yV29yZChXZWJLaXRTcGVs
bENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHdvcmQsIGNvbnN0IGNoYXIqIGNvbnRleHQp
CiB7CiAgICAgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJLSVRf
U1BFTExfQ0hFQ0tFUl9FTkNIQU5UKGNoZWNrZXIpLT5wcml2OwogCi0gICAgVmVjdG9yPFN0cmlu
Zz4gZ3Vlc3NlcyA9IHByaXYtPnRleHRDaGVja2VyRW5jaGFudC0+Z2V0R3Vlc3Nlc0ZvcldvcmQo
U3RyaW5nKHdvcmQpKTsKKyAgICBHU0xpc3QqIGRpY3RzID0gcHJpdi0+ZW5jaGFudERpY3RzOwor
ICAgIGNoYXIqKiBndWVzc2VzID0gMDsKIAotICAgIGlmIChndWVzc2VzLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgZm9yICg7IGRpY3RzOyBkaWN0cyA9IGRpY3RzLT5uZXh0KSB7
CisgICAgICAgIHNpemVfdCBudW1iZXJPZlN1Z2dlc3Rpb25zOworICAgICAgICBzaXplX3QgaTsK
IAotICAgIGludCBpID0gMDsKLSAgICBpbnQgbnVtYmVyT2ZHdWVzc2VzID0gZ3Vlc3Nlcy5zaXpl
KCk7Ci0gICAgY2hhcioqIGd1ZXNzZXNBcnJheSA9IHN0YXRpY19jYXN0PGNoYXIqKj4oZ19tYWxs
b2MwKChudW1iZXJPZkd1ZXNzZXMgKyAxKSAqIHNpemVvZihjaGFyKikpKTsKLSAgICBmb3IgKFZl
Y3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gZ3Vlc3Nlcy5iZWdpbigpOyBpdGVy
ICE9IGd1ZXNzZXMuZW5kKCk7ICsraXRlcikKLSAgICAgICAgZ3Vlc3Nlc0FycmF5W2krK10gPSBn
X3N0cmR1cChpdGVyLT51dGY4KCkuZGF0YSgpKTsKLSAgICBndWVzc2VzQXJyYXlbaV0gPSAwOwor
ICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IHN0YXRpY19jYXN0PEVuY2hhbnREaWN0Kj4oZGlj
dHMtPmRhdGEpOworICAgICAgICBnY2hhcioqIHN1Z2dlc3Rpb25zID0gZW5jaGFudF9kaWN0X3N1
Z2dlc3QoZGljdCwgd29yZCwgLTEsICZudW1iZXJPZlN1Z2dlc3Rpb25zKTsKIAotICAgIHJldHVy
biBndWVzc2VzQXJyYXk7CisgICAgICAgIGlmIChudW1iZXJPZlN1Z2dlc3Rpb25zID4gMCkgewor
ICAgICAgICAgICAgaWYgKG51bWJlck9mU3VnZ2VzdGlvbnMgPiAxMCkKKyAgICAgICAgICAgICAg
ICBudW1iZXJPZlN1Z2dlc3Rpb25zID0gMTA7CisKKyAgICAgICAgICAgIGd1ZXNzZXMgPSBzdGF0
aWNfY2FzdDxjaGFyKio+KGdfbWFsbG9jMCgobnVtYmVyT2ZTdWdnZXN0aW9ucyArIDEpICogc2l6
ZW9mKGNoYXIqKSkpOworICAgICAgICAgICAgZm9yIChpID0gMDsgaSA8IG51bWJlck9mU3VnZ2Vz
dGlvbnMgJiYgaSA8IDEwOyBpKyspCisgICAgICAgICAgICAgICAgZ3Vlc3Nlc1tpXSA9IGdfc3Ry
ZHVwKHN1Z2dlc3Rpb25zW2ldKTsKKworICAgICAgICAgICAgZ3Vlc3Nlc1tpXSA9IDA7CisKKyAg
ICAgICAgICAgIGVuY2hhbnRfZGljdF9mcmVlX3N1Z2dlc3Rpb25zKGRpY3QsIHN1Z2dlc3Rpb25z
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBndWVzc2VzOworfQorCitzdGF0aWMg
dm9pZCBnZXRBdmFpbGFibGVEaWN0aW9uYXJpZXNDYWxsYmFjayhjb25zdCBjaGFyKiBjb25zdCBs
YW5ndWFnZVRhZywgY29uc3QgY2hhciogY29uc3QsIGNvbnN0IGNoYXIqIGNvbnN0LCBjb25zdCBj
aGFyKiBjb25zdCwgdm9pZCogZGF0YSkKK3sKKyAgICBWZWN0b3I8Q1N0cmluZz4qIGRpY3RzID0g
c3RhdGljX2Nhc3Q8VmVjdG9yPENTdHJpbmc+Kj4oZGF0YSk7CisKKyAgICBkaWN0cy0+YXBwZW5k
KGxhbmd1YWdlVGFnKTsKIH0KIAogc3RhdGljIHZvaWQgdXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1
YWdlcyhXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIGxhbmd1YWdlcykK
IHsKKyAgICBHU0xpc3QqIHNwZWxsRGljdGlvbmFyaWVzID0gMDsKKwogICAgIFdlYktpdFNwZWxs
Q2hlY2tlckVuY2hhbnRQcml2YXRlKiBwcml2ID0gV0VCS0lUX1NQRUxMX0NIRUNLRVJfRU5DSEFO
VChjaGVja2VyKS0+cHJpdjsKLSAgICBwcml2LT50ZXh0Q2hlY2tlckVuY2hhbnQtPnVwZGF0ZVNw
ZWxsQ2hlY2tpbmdMYW5ndWFnZXMoU3RyaW5nKGxhbmd1YWdlcykpOworCisgICAgY3JlYXRlRW5j
aGFudEJyb2tlcklmTmVlZGVkKCk7CisKKyAgICBpZiAobGFuZ3VhZ2VzKSB7CisgICAgICAgIGNo
YXIqKiBsYW5ncyA9IGdfc3Ryc3BsaXQobGFuZ3VhZ2VzLCAiLCIsIC0xKTsKKyAgICAgICAgZm9y
IChpbnQgaSA9IDA7IGxhbmdzW2ldOyBpKyspIHsKKyAgICAgICAgICAgIGlmIChlbmNoYW50X2Jy
b2tlcl9kaWN0X2V4aXN0cyhicm9rZXIsIGxhbmdzW2ldKSkgeworICAgICAgICAgICAgICAgIEVu
Y2hhbnREaWN0KiBkaWN0ID0gZW5jaGFudF9icm9rZXJfcmVxdWVzdF9kaWN0KGJyb2tlciwgbGFu
Z3NbaV0pOworICAgICAgICAgICAgICAgIHNwZWxsRGljdGlvbmFyaWVzID0gZ19zbGlzdF9hcHBl
bmQoc3BlbGxEaWN0aW9uYXJpZXMsIGRpY3QpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIGdfc3RyZnJlZXYobGFuZ3MpOworICAgIH0gZWxzZSB7CisgICAgICAgIGNvbnN0IGNo
YXIqIGxhbmd1YWdlID0gcGFuZ29fbGFuZ3VhZ2VfdG9fc3RyaW5nKGd0a19nZXRfZGVmYXVsdF9s
YW5ndWFnZSgpKTsKKyAgICAgICAgaWYgKGVuY2hhbnRfYnJva2VyX2RpY3RfZXhpc3RzKGJyb2tl
ciwgbGFuZ3VhZ2UpKSB7CisgICAgICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IGVuY2hhbnRf
YnJva2VyX3JlcXVlc3RfZGljdChicm9rZXIsIGxhbmd1YWdlKTsKKyAgICAgICAgICAgIHNwZWxs
RGljdGlvbmFyaWVzID0gZ19zbGlzdF9hcHBlbmQoc3BlbGxEaWN0aW9uYXJpZXMsIGRpY3QpOwor
ICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgLy8gTm8gZGljdGlvbmFyaWVzIHNlbGVjdGVk
LCB3ZSBnZXQgb25lIGZyb20gdGhlIGxpc3QuCisgICAgICAgICAgICBWZWN0b3I8Q1N0cmluZz4g
YWxsRGljdGlvbmFyaWVzOworICAgICAgICAgICAgZW5jaGFudF9icm9rZXJfbGlzdF9kaWN0cyhi
cm9rZXIsIGdldEF2YWlsYWJsZURpY3Rpb25hcmllc0NhbGxiYWNrLCAmYWxsRGljdGlvbmFyaWVz
KTsKKyAgICAgICAgICAgIGlmICghYWxsRGljdGlvbmFyaWVzLmlzRW1wdHkoKSkgeworICAgICAg
ICAgICAgICAgIEVuY2hhbnREaWN0KiBkaWN0ID0gZW5jaGFudF9icm9rZXJfcmVxdWVzdF9kaWN0
KGJyb2tlciwgYWxsRGljdGlvbmFyaWVzWzBdLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgc3Bl
bGxEaWN0aW9uYXJpZXMgPSBnX3NsaXN0X2FwcGVuZChzcGVsbERpY3Rpb25hcmllcywgZGljdCk7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9CisgICAgZ19zbGlzdF9mb3JlYWNoKHBy
aXYtPmVuY2hhbnREaWN0cywgZnJlZVNwZWxsQ2hlY2tpbmdMYW5ndWFnZSwgMCk7CisgICAgZ19z
bGlzdF9mcmVlKHByaXYtPmVuY2hhbnREaWN0cyk7CisgICAgcHJpdi0+ZW5jaGFudERpY3RzID0g
c3BlbGxEaWN0aW9uYXJpZXM7CiB9CiAKIHN0YXRpYyBjaGFyKiBnZXRBdXRvY29ycmVjdFN1Z2dl
c3Rpb25zRm9yTWlzc3BlbGxlZFdvcmQoV2ViS2l0U3BlbGxDaGVja2VyKiBjaGVja2VyLCBjb25z
dCBjaGFyKiB3b3JkKQpAQCAtMTEwLDEzICsyMzgsMjUgQEAgc3RhdGljIGNoYXIqIGdldEF1dG9j
b3JyZWN0U3VnZ2VzdGlvbnNGb3JNaXNzcGVsbGVkV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNo
ZWMKIHN0YXRpYyB2b2lkIGxlYXJuV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNv
bnN0IGNoYXIqIHdvcmQpCiB7CiAgICAgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUq
IHByaXYgPSBXRUJLSVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5UKGNoZWNrZXIpLT5wcml2OwotICAg
IHByaXYtPnRleHRDaGVja2VyRW5jaGFudC0+bGVhcm5Xb3JkKFN0cmluZyh3b3JkKSk7CisgICAg
R1NMaXN0KiBkaWN0cyA9IHByaXYtPmVuY2hhbnREaWN0czsKKworICAgIGZvciAoOyBkaWN0czsg
ZGljdHMgPSBkaWN0cy0+bmV4dCkgeworICAgICAgICBFbmNoYW50RGljdCogZGljdCA9IHN0YXRp
Y19jYXN0PEVuY2hhbnREaWN0Kj4oZGljdHMtPmRhdGEpOworCisgICAgICAgIGVuY2hhbnRfZGlj
dF9hZGRfdG9fcGVyc29uYWwoZGljdCwgd29yZCwgLTEpOworICAgIH0KIH0KIAogc3RhdGljIHZv
aWQgaWdub3JlV29yZChXZWJLaXRTcGVsbENoZWNrZXIqIGNoZWNrZXIsIGNvbnN0IGNoYXIqIHdv
cmQpCiB7CiAgICAgV2ViS2l0U3BlbGxDaGVja2VyRW5jaGFudFByaXZhdGUqIHByaXYgPSBXRUJL
SVRfU1BFTExfQ0hFQ0tFUl9FTkNIQU5UKGNoZWNrZXIpLT5wcml2OwotICAgIHByaXYtPnRleHRD
aGVja2VyRW5jaGFudC0+aWdub3JlV29yZChTdHJpbmcod29yZCkpOworICAgIEdTTGlzdCogZGlj
dHMgPSBwcml2LT5lbmNoYW50RGljdHM7CisKKyAgICBmb3IgKDsgZGljdHM7IGRpY3RzID0gZGlj
dHMtPm5leHQpIHsKKyAgICAgICAgRW5jaGFudERpY3QqIGRpY3QgPSBzdGF0aWNfY2FzdDxFbmNo
YW50RGljdCo+KGRpY3RzLT5kYXRhKTsKKworICAgICAgICBlbmNoYW50X2RpY3RfYWRkX3RvX3Nl
c3Npb24oZGljdCwgd29yZCwgLTEpOworICAgIH0KIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X3Nw
ZWxsX2NoZWNrZXJfZW5jaGFudF9zcGVsbF9jaGVja2VyX2ludGVyZmFjZV9pbml0KFdlYktpdFNw
ZWxsQ2hlY2tlckludGVyZmFjZSogaW50ZXJmYWNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvR05VbWFrZWZpbGUuYW0gYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQppbmRleCBl
ZWQwMjk2NzJjZDY1NGU0ZWVhMzZiM2FiNDkwODBlZTQ0ZmMyOWNjLi45MTA4YmI0YzkwMmVkYzVi
Y2UzMjJlOWQwYjhkMmUyZmUyOWFiNWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9HTlVt
YWtlZmlsZS5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbQpAQCAtMTYyLDYg
KzE2Miw3IEBAIGxpYndlYmtpdDJndGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdF
QktJVEdUS19BUElfTUlOT1JfVkVSU0lPTkBfbGFfTElCCiAJbGliV2ViQ29yZUd0ay5sYSBcCiAJ
JChDQUlST19MSUJTKSBcCiAJJChDT1ZFUkFHRV9MREZMQUdTKSBcCisJJChFTkNIQU5UX0xJQlMp
IFwKIAkkKEdBSUxfTElCUykgXAogCSQoR0FNRVBBRF9MSUJTKSBcCiAJJChHRU9DTFVFX0xJQlMp
IFwKQEAgLTE4MiwxNiArMTgzLDYgQEAgbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpP
Ul9WRVJTSU9OQF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9MSUIKIAkkKFhUX0xJ
QlMpIFwKIAkkKFpMSUJfTElCUykKIAotaWYgRU5BQkxFX1NQRUxMQ0hFQ0sKLWxpYndlYmtpdDJn
dGtfQFdFQktJVEdUS19BUElfTUFKT1JfVkVSU0lPTkBfQFdFQktJVEdUS19BUElfTUlOT1JfVkVS
U0lPTkBfbGFfQ1BQRkxBR1MgKz0gXAotCS1ERU5BQkxFX1NQRUxMQ0hFQ0s9MSBcCi0JJChFTkNI
QU5UX0NGTEFHUykKLQotbGlid2Via2l0Mmd0a19AV0VCS0lUR1RLX0FQSV9NQUpPUl9WRVJTSU9O
QF9AV0VCS0lUR1RLX0FQSV9NSU5PUl9WRVJTSU9OQF9sYV9MSUJBREQgKz0gXAotCSQoRU5DSEFO
VF9MSUJTKQotZW5kaWYKLQotCiBpZiBFTkFCTEVfV0VCS0lUMgogcGtnY29uZmlnX0RBVEEgKz0g
U291cmNlL1dlYktpdDIvd2Via2l0Mmd0ay1AV0VCS0lUR1RLX0FQSV9WRVJTSU9OQC5wYwogZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGViNjkyNzA0NjM3OGQzMDBhODA2
ZmE0NTg1NmZlMjhhMzA5OGVhZGYuLmNiYWVjOTE5MDFmMDMwOTdjZDMwMjk5YWRhZjFmZTQwODY0
MmE5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysr
IGIvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtNzAxLDggKzcwMSw2IEBA
IHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0U2V0dGluZ3MuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRTZXR0aW5ncy5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRTZXR0aW5nc1ByaXZhdGUuaCBcCi0JU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0VGV4dENoZWNrZXIuY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRUZXh0Q2hlY2tlci5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRVSUNsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFVJQ2xpZW50LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVSSVJlcXVlc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFByaXZhdGUuaAppbmRleCBhYThhNzFiZjljZTc2OGM0ZWFlM2NiY2QwNjNhZmMw
YWVkNTA2MjUxLi43ZmQ1ZDc4NjFlYzgwMGI3YWI1NjZjNWY3ZDY5YzhmMjgyNjZmNzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpdmF0ZS5oCkBA
IC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSA8V2ViS2l0Mi9XS1NlcmlhbGl6ZWRTY3JpcHRWYWx1
ZS5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tTb3VwUmVxdWVzdE1hbmFnZXIuaD4KICNpbmNsdWRl
IDxXZWJLaXQyL1dLU3RyaW5nLmg+Ci0jaW5jbHVkZSA8V2ViS2l0Mi9XS1RleHRDaGVja2VyLmg+
CiAjaW5jbHVkZSA8V2ViS2l0Mi9XZWJLaXQyLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogI2luY2x1
ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRUZXh0Q2hlY2tlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDU2NzZiYjZkNzNlMmJmYWQ5YWQyNWFkMjU2ZmQ4M2M4NTNjNWY4NGUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEs
MTUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdhbGlhIFMuTC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIldlYktpdFRleHRDaGVja2VyLmgi
Ci0KLSNpZiBFTkFCTEUoU1BFTExDSEVDSykKLQotI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIK
LSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViS2l0OwotCi1zdGF0aWMgaW5saW5lIFdlYktpdFRleHRDaGVj
a2VyKiB0b1RleHRDaGVja2VyKGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCi17Ci0gICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdlYktpdFRleHRDaGVja2VyKj4oY29uc3RfY2FzdDx2b2lkKj4oY2xpZW50
SW5mbykpOwotfQotCi1zdGF0aWMgYm9vbCBjb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRD
YWxsYmFjayhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJldHVybiB0b1RleHRDaGVj
a2VyKGNsaWVudEluZm8pLT5pc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7Ci19Ci0KLXN0YXRpYyB2
b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNrKGJvb2wgZW5hYmxl
ZCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICB0b1RleHRDaGVja2VyKGNsaWVudElu
Zm8pLT5zZXRTcGVsbENoZWNraW5nRW5hYmxlZChlbmFibGVkKTsKLX0KLQotc3RhdGljIHZvaWQg
Y2hlY2tTcGVsbGluZ09mU3RyaW5nQ2FsbGJhY2sodWludDY0X3QgdGFnLCBXS1N0cmluZ1JlZiB0
ZXh0LCBpbnQzMl90KiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQzMl90KiBtaXNzcGVsbGluZ0xl
bmd0aCwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICB0b1RleHRDaGVja2VyKGNsaWVu
dEluZm8pLT5jaGVja1NwZWxsaW5nT2ZTdHJpbmcodG9JbXBsKHRleHQpLT5zdHJpbmcoKSwgKm1p
c3NwZWxsaW5nTG9jYXRpb24sICptaXNzcGVsbGluZ0xlbmd0aCk7Ci19Ci0KLXN0YXRpYyBXS0Fy
cmF5UmVmIGd1ZXNzZXNGb3JXb3JkQ2FsbGJhY2sodWludDY0X3QgdGFnLCBXS1N0cmluZ1JlZiB3
b3JkLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFZlY3RvcjxTdHJpbmc+IGd1ZXNz
ZXMgPSB0b1RleHRDaGVja2VyKGNsaWVudEluZm8pLT5nZXRHdWVzc2VzRm9yV29yZCh0b0ltcGwo
d29yZCktPnN0cmluZygpKTsKLSAgICBpZiAoZ3Vlc3Nlcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgV0tNdXRhYmxlQXJyYXlSZWYgd2tTdWdnZXN0aW9ucyA9IFdLTXV0YWJs
ZUFycmF5Q3JlYXRlKCk7Ci0gICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3Ig
aXRlciA9IGd1ZXNzZXMuYmVnaW4oKTsgaXRlciAhPSBndWVzc2VzLmVuZCgpOyArK2l0ZXIpIHsK
LSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrU3VnZ2VzdGlvbihBZG9wdFdLLCBX
S1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpdGVyLT51dGY4KCkuZGF0YSgpKSk7Ci0gICAg
ICAgIFdLQXJyYXlBcHBlbmRJdGVtKHdrU3VnZ2VzdGlvbnMsIHdrU3VnZ2VzdGlvbi5nZXQoKSk7
Ci0gICAgfQotCi0gICAgcmV0dXJuIHdrU3VnZ2VzdGlvbnM7Ci19Ci0KLXN0YXRpYyB2b2lkIGxl
YXJuV29yZENhbGxiYWNrKHVpbnQ2NF90IHRhZywgV0tTdHJpbmdSZWYgd29yZCwgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbykKLXsKLSAgICB0b1RleHRDaGVja2VyKGNsaWVudEluZm8pLT5sZWFybldv
cmQodG9JbXBsKHdvcmQpLT5zdHJpbmcoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGlnbm9yZVdvcmRD
YWxsYmFjayh1aW50NjRfdCB0YWcsIFdLU3RyaW5nUmVmIHdvcmQsIGNvbnN0IHZvaWQqIGNsaWVu
dEluZm8pCi17Ci0gICAgdG9UZXh0Q2hlY2tlcihjbGllbnRJbmZvKS0+aWdub3JlV29yZCh0b0lt
cGwod29yZCktPnN0cmluZygpKTsKLX0KLQotV2ViS2l0VGV4dENoZWNrZXI6On5XZWJLaXRUZXh0
Q2hlY2tlcigpCi17Ci19Ci0KLVdlYktpdFRleHRDaGVja2VyOjpXZWJLaXRUZXh0Q2hlY2tlcigp
Ci0gICAgOiBtX3RleHRDaGVja2VyKFdlYkNvcmU6OlRleHRDaGVja2VyRW5jaGFudDo6Y3JlYXRl
KCkpCi0gICAgLCBtX3NwZWxsQ2hlY2tpbmdFbmFibGVkKGZhbHNlKQotewotICAgIFdLVGV4dENo
ZWNrZXJDbGllbnQgd2tUZXh0Q2hlY2tlckNsaWVudCA9IHsKLSAgICAgICAga1dLVGV4dENoZWNr
ZXJDbGllbnRDdXJyZW50VmVyc2lvbiwKLSAgICAgICAgdGhpcywgLy8gY2xpZW50SW5mbwotICAg
ICAgICAwLCAvLyBjb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQKLSAgICAgICAgY29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkQ2FsbGJhY2ssCi0gICAgICAgIHNldENvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZENhbGxiYWNrLAotICAgICAgICAwLCAvLyBncmFtbWFyQ2hlY2tp
bmdFbmFibGVkCi0gICAgICAgIDAsIC8vIHNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQKLSAgICAg
ICAgMCwgLy8gdW5pcXVlU3BlbGxEb2N1bWVudFRhZwotICAgICAgICAwLCAvLyBjbG9zZVNwZWxs
RG9jdW1lbnRXaXRoVGFnCi0gICAgICAgIGNoZWNrU3BlbGxpbmdPZlN0cmluZ0NhbGxiYWNrLAot
ICAgICAgICAwLCAvLyBjaGVja0dyYW1tYXJPZlN0cmluZwotICAgICAgICAwLCAvLyBzcGVsbGlu
Z1VJSXNTaG93aW5nCi0gICAgICAgIDAsIC8vIHRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dpbmcKLSAg
ICAgICAgMCwgLy8gdXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZAotICAgICAgICAw
LCAvLyB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcKLSAgICAgICAgZ3Vlc3Nlc0Zv
cldvcmRDYWxsYmFjaywKLSAgICAgICAgbGVhcm5Xb3JkQ2FsbGJhY2ssCi0gICAgICAgIGlnbm9y
ZVdvcmRDYWxsYmFjaywKLSAgICB9OwotICAgIFdLVGV4dENoZWNrZXJTZXRDbGllbnQoJndrVGV4
dENoZWNrZXJDbGllbnQpOwotfQotCi12b2lkIFdlYktpdFRleHRDaGVja2VyOjpjaGVja1NwZWxs
aW5nT2ZTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGludCYgbWlzc3BlbGxpbmdMb2NhdGlv
biwgaW50JiBtaXNzcGVsbGluZ0xlbmd0aCkKLXsKLSAgICBtX3RleHRDaGVja2VyLT5jaGVja1Nw
ZWxsaW5nT2ZTdHJpbmcoc3RyaW5nLCBtaXNzcGVsbGluZ0xvY2F0aW9uLCBtaXNzcGVsbGluZ0xl
bmd0aCk7Ci19Ci0KLVZlY3RvcjxTdHJpbmc+IFdlYktpdFRleHRDaGVja2VyOjpnZXRHdWVzc2Vz
Rm9yV29yZChjb25zdCBTdHJpbmcmIHdvcmQpCi17Ci0gICAgcmV0dXJuIG1fdGV4dENoZWNrZXIt
PmdldEd1ZXNzZXNGb3JXb3JkKHdvcmQpOwotfQotCi12b2lkIFdlYktpdFRleHRDaGVja2VyOjps
ZWFybldvcmQoY29uc3QgU3RyaW5nJiB3b3JkKQotewotICAgIG1fdGV4dENoZWNrZXItPmxlYXJu
V29yZCh3b3JkKTsKLX0KLQotdm9pZCBXZWJLaXRUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChjb25z
dCBTdHJpbmcmIHdvcmQpCi17Ci0gICAgbV90ZXh0Q2hlY2tlci0+aWdub3JlV29yZCh3b3JkKTsK
LX0KLQotdm9pZCBXZWJLaXRUZXh0Q2hlY2tlcjo6c2V0U3BlbGxDaGVja2luZ0VuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIGlmIChtX3NwZWxsQ2hlY2tpbmdFbmFibGVkID09IGVuYWJsZWQp
Ci0gICAgICAgIHJldHVybjsKLSAgICBtX3NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZW5hYmxlZDsK
LQotICAgIC8vIFdlIG5lZWQgdG8gbm90aWZ5IHRoZSBXZWIgcHJvY2VzcyB0aGF0IHRoaXMgaGFz
IGNoYW5nZWQuCi0gICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxl
ZFN0YXRlQ2hhbmdlZChlbmFibGVkKTsKLX0KLQotdm9pZCBXZWJLaXRUZXh0Q2hlY2tlcjo6c2V0
U3BlbGxDaGVja2luZ0xhbmd1YWdlcyhjb25zdCBTdHJpbmcmIGxhbmd1YWdlcykKLXsKLSAgICBp
ZiAobV9zcGVsbENoZWNraW5nTGFuZ3VhZ2VzID09IGxhbmd1YWdlcykKLSAgICAgICAgcmV0dXJu
OwotICAgIG1fc3BlbGxDaGVja2luZ0xhbmd1YWdlcyA9IGxhbmd1YWdlczsKLQotICAgIC8vIFdl
IG5lZWQgdG8gdXBkYXRlIHRoZSBsYW5ndWFnZXMgaW4gdGhlIGVuY2hhbnQtYmFzZWQgY2hlY2tl
ciB0b28uCi0gICAgbV90ZXh0Q2hlY2tlci0+dXBkYXRlU3BlbGxDaGVja2luZ0xhbmd1YWdlcyhs
YW5ndWFnZXMpOwotfQotI2VuZGlmIC8vIEVOQUJMRShTUEVMTENIRUNLKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFRleHRDaGVja2VyLmgKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRkNzU4M2EzYTYxMjc2ZmZiZWUwMjA3MmY4NjBkMjg2
MjIyNjNiYmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0VGV4dENoZWNrZXIuaAorKysg
L2Rldi9udWxsCkBAIC0xLDU5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSWdh
bGlhIFMuTC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhl
IExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1w
bGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZl
ZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0Eu
Ci0gKi8KLQotI2lmbmRlZiBXZWJLaXRUZXh0Q2hlY2tlcl9oCi0jZGVmaW5lIFdlYktpdFRleHRD
aGVja2VyX2gKLQotI2lmIEVOQUJMRShTUEVMTENIRUNLKQotCi0jaW5jbHVkZSA8V2ViQ29yZS9U
ZXh0Q2hlY2tlckVuY2hhbnQuaD4KLSNpbmNsdWRlIDx3dGYvRmFzdEFsbG9jQmFzZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi1jbGFz
cyBXZWJLaXRUZXh0Q2hlY2tlciB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0KLXB1
YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxXZWJLaXRUZXh0Q2hlY2tlcj4gY3JlYXRlKCkg
eyByZXR1cm4gYWRvcHRQdHIobmV3IFdlYktpdFRleHRDaGVja2VyKCkpOyB9Ci0gICAgdmlydHVh
bCB+V2ViS2l0VGV4dENoZWNrZXIoKTsKLQotICAgIC8vIEZvciBpbXBsZW1lbnRpbmcgVGV4dENo
ZWNrZXJDbGllbnQuCi0gICAgYm9vbCBpc1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkgeyByZXR1cm4g
bV9zcGVsbENoZWNraW5nRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0U3BlbGxDaGVja2luZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkKTsKLSAgICB2b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZywgaW50JiBtaXNzcGVsbGluZ0xvY2F0aW9uLCBpbnQmIG1pc3NwZWxsaW5n
TGVuZ3RoKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBnZXRHdWVzc2VzRm9yV29yZChjb25zdCBTdHJp
bmcmIHdvcmQpOwotICAgIHZvaWQgbGVhcm5Xb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7Ci0gICAg
dm9pZCBpZ25vcmVXb3JkKGNvbnN0IFN0cmluZyYgd29yZCk7Ci0KLSAgICAvLyBUbyBiZSBjYWxs
ZWQgZnJvbSBXZWJLaXRXZWJDb250ZXh0IG9ubHkuCi0gICAgY29uc3QgU3RyaW5nIGdldFNwZWxs
Q2hlY2tpbmdMYW5ndWFnZXMoKSB7IHJldHVybiBtX3NwZWxsQ2hlY2tpbmdMYW5ndWFnZXM7IH0K
LSAgICB2b2lkIHNldFNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoY29uc3QgU3RyaW5nJiBzcGVsbENo
ZWNraW5nTGFuZ3VhZ2VzKTsKLQotcHJpdmF0ZToKLSAgICBXZWJLaXRUZXh0Q2hlY2tlcigpOwot
Ci0gICAgT3duUHRyPFdlYkNvcmU6OlRleHRDaGVja2VyRW5jaGFudD4gbV90ZXh0Q2hlY2tlcjsK
LSAgICBTdHJpbmcgbV9zcGVsbENoZWNraW5nTGFuZ3VhZ2VzOwotICAgIGJvb2wgbV9zcGVsbENo
ZWNraW5nRW5hYmxlZDsKLX07Ci0KLSNlbmRpZiAvLyBFTkFCTEUoU1BFTExDSEVDSykKLQotI2Vu
ZGlmIC8vIFdlYktpdFRleHRDaGVja2VyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKaW5kZXggNDAwOGU4NjVmZTliYTIy
MjUwY2U3YmY3NzE2NDk2OTI3OTgyNWRkZS4uOGEwNjI1YzA3NWI3OTIyMTgyMGE3Y2QzOWVjNmM3
MzI4NjdkZjU5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViQ29udGV4dC5jcHAKQEAgLTI4LDEzICsyOCwxMCBAQAogI2luY2x1ZGUgIldl
YktpdFBsdWdpblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCiAjaW5jbHVk
ZSAiV2ViS2l0UmVxdWVzdE1hbmFnZXJDbGllbnQuaCIKLSNpbmNsdWRlICJXZWJLaXRUZXh0Q2hl
Y2tlci5oIgogI2luY2x1ZGUgIldlYktpdFVSSVNjaGVtZVJlcXVlc3RQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVT
eXN0ZW0uaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvZ29iamVjdC9HT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dvYmpl
Y3QvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KIApAQCAtNzUsMTAg
KzcyLDYgQEAgc3RydWN0IF9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZSB7CiAjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQogICAgIFJlZlB0cjxXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyPiBnZW9sb2Nh
dGlvblByb3ZpZGVyOwogI2VuZGlmCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0gICAgT3duUHRy
PFdlYktpdFRleHRDaGVja2VyPiB0ZXh0Q2hlY2tlcjsKLSAgICBHT3duUHRyPGdjaGFyPiBzcGVs
bENoZWNraW5nTGFuZ3VhZ2VzOwotI2VuZGlmCiB9OwogCiBzdGF0aWMgZ3VpbnQgc2lnbmFsc1tM
QVNUX1NJR05BTF0gPSB7IDAsIH07CkBAIC0xMzQsOSArMTI3LDYgQEAgc3RhdGljIGdwb2ludGVy
IGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KGdwb2ludGVyKQogICAgIFdLR2VvbG9jYXRpb25NYW5h
Z2VyUmVmIHdrR2VvbG9jYXRpb25NYW5hZ2VyID0gV0tDb250ZXh0R2V0R2VvbG9jYXRpb25NYW5h
Z2VyKHdlYkNvbnRleHQtPnByaXYtPmNvbnRleHQuZ2V0KCkpOwogICAgIHdlYkNvbnRleHQtPnBy
aXYtPmdlb2xvY2F0aW9uUHJvdmlkZXIgPSBXZWJLaXRHZW9sb2NhdGlvblByb3ZpZGVyOjpjcmVh
dGUod2tHZW9sb2NhdGlvbk1hbmFnZXIpOwogI2VuZGlmCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0sp
Ci0gICAgd2ViQ29udGV4dC0+cHJpdi0+dGV4dENoZWNrZXIgPSBXZWJLaXRUZXh0Q2hlY2tlcjo6
Y3JlYXRlKCk7Ci0jZW5kaWYKICAgICByZXR1cm4gd2ViQ29udGV4dC5nZXQoKTsKIH0KIApAQCAt
NDI4LDg4ICs0MTgsNiBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4dF9yZWdpc3Rlcl91cmlfc2No
ZW1lKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYQogICAgIFdLU291cFJlcXVl
c3RNYW5hZ2VyUmVnaXN0ZXJVUklTY2hlbWUoY29udGV4dC0+cHJpdi0+cmVxdWVzdE1hbmFnZXIu
Z2V0KCksIHdrU2NoZW1lLmdldCgpKTsKIH0KIAotLyoqCi0gKiB3ZWJraXRfd2ViX2NvbnRleHRf
Z2V0X3NwZWxsX2NoZWNraW5nX2VuYWJsZWQ6Ci0gKiBAY29udGV4dDogYSAjV2ViS2l0V2ViQ29u
dGV4dAotICoKLSAqIEdldCB0aGUgY3VycmVudCBzdGF0dXMgb2YgdGhlIHNwZWxsIGNoZWNraW5n
IGZlYXR1cmUuCi0gKgotICogUmV0dXJuczogJVRSVUUgSWYgc3BlbGwgY2hlY2tpbmcgaXMgZW5h
YmxlZCwgb3IgJUZBTFNFIG90aGVyd2lzZS4KLSAqLwotZ2Jvb2xlYW4gd2Via2l0X3dlYl9jb250
ZXh0X2dldF9zcGVsbF9jaGVja2luZ19lbmFibGVkKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQp
Ci17Ci0gICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9DT05URVhUKGNvbnRl
eHQpLCBGQUxTRSk7Ci0KLSNpZiBFTkFCTEUoU1BFTExDSEVDSykKLSAgICByZXR1cm4gY29udGV4
dC0+cHJpdi0+dGV4dENoZWNrZXItPmlzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKLSNlbHNlCi0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KLS8qKgotICogd2Via2l0X3dlYl9jb250ZXh0
X3NldF9zcGVsbF9jaGVja2luZ19lbmFibGVkOgotICogQGNvbnRleHQ6IGEgI1dlYktpdFdlYkNv
bnRleHQKLSAqIEBlbmFibGVkOiBWYWx1ZSB0byBiZSBzZXQKLSAqCi0gKiBFbmFibGUgb3IgZGlz
YWJsZSB0aGUgc3BlbGwgY2hlY2tpbmcgZmVhdHVyZS4KLSAqLwotdm9pZCB3ZWJraXRfd2ViX2Nv
bnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2VuYWJsZWQoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dCwgZ2Jvb2xlYW4gZW5hYmxlZCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19X
RUJfQ09OVEVYVChjb250ZXh0KSk7Ci0KLSNpZiBFTkFCTEUoU1BFTExDSEVDSykKLSAgICBjb250
ZXh0LT5wcml2LT50ZXh0Q2hlY2tlci0+c2V0U3BlbGxDaGVja2luZ0VuYWJsZWQoZW5hYmxlZCk7
Ci0jZW5kaWYKLX0KLQotLyoqCi0gKiB3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxsX2NoZWNr
aW5nX2xhbmd1YWdlczoKLSAqIEBjb250ZXh0OiBhICNXZWJLaXRXZWJDb250ZXh0Ci0gKgotICog
R2V0IHRoZSB0aGUgbGlzdCBvZiBzcGVsbCBjaGVja2luZyBsYW5ndWFnZXMgYXNzb2NpYXRlZCB3
aXRoCi0gKiBAY29udGV4dCwgc2VwYXJhdGVkIGJ5IGNvbW1hcy4gU2VlCi0gKiB3ZWJraXRfd2Vi
X2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcygpIGZvciBtb3JlIGRldGFpbHMK
LSAqIG9uIHRoZSBmb3JtYXQgb2YgdGhlIGxhbmd1YWdlcyBpbiB0aGUgbGlzdC4KLSAqCi0gKiBS
ZXR1cm5zOiAodHJhbnNmZXIgbm9uZSk6IEEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgbGFuZ3Vh
Z2VzLgotICovCi1jb25zdCBnY2hhciogd2Via2l0X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVj
a2luZ19sYW5ndWFnZXMoV2ViS2l0V2ViQ29udGV4dCogY29udGV4dCkKLXsKLSAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0NPTlRFWFQoY29udGV4dCksIDApOwotCi0jaWYg
RU5BQkxFKFNQRUxMQ0hFQ0spCi0gICAgcmV0dXJuIGNvbnRleHQtPnByaXYtPnNwZWxsQ2hlY2tp
bmdMYW5ndWFnZXMuZ2V0KCk7Ci0jZWxzZQotICAgIHJldHVybiAwOwotI2VuZGlmCi19Ci0KLS8q
KgotICogd2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXM6Ci0g
KiBAY29udGV4dDogYSAjV2ViS2l0V2ViQ29udGV4dAotICogQGxhbmd1YWdlczogKGFsbG93LW5v
bmUpOiBuZXcgbGlzdCBvZiBzcGVsbCBjaGVja2luZwotICogbGFuZ3VhZ2VzIHNlcGFyYXRlZCBi
eSBjb21tYXMsIG9yICVOVUxMCi0gKgotICogU2V0IHRoZSBsaXN0IG9mIHNwZWxsIGNoZWNraW5n
IGxhbmd1YWdlcyB0byBiZSB1c2VkIGZvciBzcGVsbAotICogY2hlY2tpbmcsIHNlcGFyYXRlZCBi
eSBjb21tYXMuIEluIGNhc2UgJU5VTEwgaXMgcGFzc2VkLCB0aGUgZGVmYXVsdAotICogdmFsdWUg
YXMgcmV0dXJuZWQgYnkgZ3RrX2dldF9kZWZhdWx0X2xhbmd1YWdlKCkgd2lsbCBiZSB1c2VkLgot
ICoKLSAqIFRoZSBsb2NhbGUgc3RyaW5nIHR5cGljYWxseSBpcyBpbiB0aGUgZm9ybSBsYW5nX0NP
VU5UUlksIHdoZXJlIGxhbmcKLSAqIGlzIGFuIElTTy02MzkgbGFuZ3VhZ2UgY29kZSwgYW5kIENP
VU5UUlkgaXMgYW4gSVNPLTMxNjYgY291bnRyeSBjb2RlLgotICogRm9yIGluc3RhbmNlLCBzdl9G
SSBmb3IgU3dlZGlzaCBhcyB3cml0dGVuIGluIEZpbmxhbmQgb3IgcHRfQlIKLSAqIGZvciBQb3J0
dWd1ZXNlIGFzIHdyaXR0ZW4gaW4gQnJhemlsLgotICovCi12b2lkIHdlYmtpdF93ZWJfY29udGV4
dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKFdlYktpdFdlYkNvbnRleHQqIGNvbnRleHQs
IGNvbnN0IGdjaGFyKiBsYW5ndWFnZXMpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRf
SVNfV0VCX0NPTlRFWFQoY29udGV4dCkpOwotCi0jaWYgRU5BQkxFKFNQRUxMQ0hFQ0spCi0gICAg
Y29udGV4dC0+cHJpdi0+dGV4dENoZWNrZXItPnNldFNwZWxsQ2hlY2tpbmdMYW5ndWFnZXMoU3Ry
aW5nKGxhbmd1YWdlcykpOwotICAgIGNvbnRleHQtPnByaXYtPnNwZWxsQ2hlY2tpbmdMYW5ndWFn
ZXMuc2V0KGdfc3RyZHVwKGxhbmd1YWdlcykpOwotI2VuZGlmCi19Ci0KIFdlYktpdERvd25sb2Fk
KiB3ZWJraXRXZWJDb250ZXh0R2V0T3JDcmVhdGVEb3dubG9hZChXS0Rvd25sb2FkUmVmIHdrRG93
bmxvYWQpCiB7CiAgICAgR1JlZlB0cjxXZWJLaXREb3dubG9hZD4gZG93bmxvYWQgPSBkb3dubG9h
ZHNNYXAoKS5nZXQod2tEb3dubG9hZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmgKaW5kZXggMGQzMmJhNWJiZTI3ZjAyYzQ0ZDhk
NGQzZDI2ZWY0ODJkNDVlMmRkMi4uODNiNjAxYTM4ZWRiNDZmMWIxZjc2N2RlZTQzMWY5ZTVkODFm
YzBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuaApAQCAtMTMyLDIwICsxMzIsNiBAQCB3ZWJraXRfd2ViX2NvbnRleHRfcmVn
aXN0ZXJfdXJpX3NjaGVtZSAgICAgICAgICAgICAgKFdlYktpdFdlYkNvbnRleHQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
ICAgICAgICAgICAgICAgICAgKnNjaGVtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VVJJU2NoZW1lUmVxdWVzdENhbGxiYWNrIGNh
bGxiYWNrLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBncG9pbnRlciAgICAgICAgICAgICAgICAgICAgICAgdXNlcl9kYXRhKTsKLQotV0VCS0lU
X0FQSSBnYm9vbGVhbgotd2Via2l0X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVja2luZ19lbmFi
bGVkICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCk7Ci0KLVdF
QktJVF9BUEkgdm9pZAotd2Via2l0X3dlYl9jb250ZXh0X3NldF9zcGVsbF9jaGVja2luZ19lbmFi
bGVkICAgICAgIChXZWJLaXRXZWJDb250ZXh0ICAgICAgICAgICAgICAqY29udGV4dCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4g
ICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZWQpOwotV0VCS0lUX0FQSSBjb25zdCBnY2hhciAq
Ci13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAgKFdl
YktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0KTsKLQotV0VCS0lUX0FQSSB2b2lk
Ci13ZWJraXRfd2ViX2NvbnRleHRfc2V0X3NwZWxsX2NoZWNraW5nX2xhbmd1YWdlcyAgICAgKFdl
YktpdFdlYkNvbnRleHQgICAgICAgICAgICAgICpjb250ZXh0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAg
ICAgICAgICAqbGFuZ3VhZ2VzKTsKLQogR19FTkRfREVDTFMKIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlv
bnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LXNlY3Rpb25zLnR4dAppbmRleCA3M2YwOWQ1ZDM3N2IwYjQxMTUxN2IwMzgzNjc2MDZlNmZjNDVj
NWEyLi4zMTY0MTc3Y2NkYWVmMGJlOTYyNDc0ZmYwNzkwZTgwNjA1YTVkNDA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlv
bnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTMzLDEwICszMyw2IEBAIHdlYmtpdF93ZWJfY29udGV4dF9n
ZXRfY29va2llX21hbmFnZXIKIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfYWRkaXRpb25hbF9wbHVn
aW5zX2RpcmVjdG9yeQogd2Via2l0X3dlYl9jb250ZXh0X2dldF9wbHVnaW5zCiB3ZWJraXRfd2Vi
X2NvbnRleHRfZ2V0X3BsdWdpbnNfZmluaXNoCi13ZWJraXRfd2ViX2NvbnRleHRfZ2V0X3NwZWxs
X2NoZWNraW5nX2VuYWJsZWQKLXdlYmtpdF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdf
ZW5hYmxlZAotd2Via2l0X3dlYl9jb250ZXh0X2dldF9zcGVsbF9jaGVja2luZ19sYW5ndWFnZXMK
LXdlYmtpdF93ZWJfY29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzCiAKIDxTVUJT
RUNUSU9OIFVSSSBTY2hlbWU+CiBXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Q2FsbGJhY2sKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJLaXRX
ZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rl
c3RXZWJLaXRXZWJDb250ZXh0LmNwcAppbmRleCBmNDJmZWFmYjdkMDM0ODAxYjgzODFkYWVjMjE4
NzViZjcwNDQ1MmNiLi5lN2Q0M2ExM2RhOGQxOTYwMjcyNzk4YWY5ODg5NTAzY2JlMjhiOGI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2Vi
S2l0V2ViQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
dGVzdHMvVGVzdFdlYktpdFdlYkNvbnRleHQuY3BwCkBAIC0yMzEsMzggKzIzMSwxMSBAQCBzdGF0
aWMgdm9pZCB0ZXN0V2ViQ29udGV4dFVSSVNjaGVtZShVUklTY2hlbWVUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQogICAgIGdfYXNzZXJ0KCF0ZXN0LT5tX2xvYWRFdmVudHMuY29udGFpbnMoTG9h
ZFRyYWNraW5nVGVzdDo6TG9hZEZhaWxlZCkpOwogfQogCi1zdGF0aWMgdm9pZCB0ZXN0V2ViQ29u
dGV4dFNwZWxsQ2hlY2tlcihUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQotewotICAgIEdSZWZQ
dHI8V2ViS2l0V2ViQ29udGV4dD4gd2ViQ29udGV4dCh3ZWJraXRfd2ViX2NvbnRleHRfZ2V0X2Rl
ZmF1bHQoKSk7Ci0KLSAgICAvLyBTZXQgdGhlIGxhbmd1YWdlIHRvIGEgc3BlY2lmaWMgb25lLCBh
biBlbXB0eSBvbmUgYW5kIGEgbGlzdCBvZiB0aGVtLgotICAgIHdlYmtpdF93ZWJfY29udGV4dF9z
ZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQuZ2V0KCksICJlbl9VUyIpOwot
ICAgIGNvbnN0IGdjaGFyKiBjdXJyZW50TGFuZ3VhZ2Uod2Via2l0X3dlYl9jb250ZXh0X2dldF9z
cGVsbF9jaGVja2luZ19sYW5ndWFnZXMod2ViQ29udGV4dC5nZXQoKSkpOwotICAgIGdfYXNzZXJ0
X2NtcHN0cihjdXJyZW50TGFuZ3VhZ2UsID09LCAiZW5fVVMiKTsKLQotICAgIHdlYmtpdF93ZWJf
Y29udGV4dF9zZXRfc3BlbGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQuZ2V0KCksIDAp
OwotICAgIGN1cnJlbnRMYW5ndWFnZSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hl
Y2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQuZ2V0KCkpOwotICAgIGdfYXNzZXJ0X2NtcHN0cihj
dXJyZW50TGFuZ3VhZ2UsID09LCAwKTsKLQotICAgIHdlYmtpdF93ZWJfY29udGV4dF9zZXRfc3Bl
bGxfY2hlY2tpbmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQuZ2V0KCksICJlc19FUyxlbl9VUyIpOwot
ICAgIGN1cnJlbnRMYW5ndWFnZSA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tp
bmdfbGFuZ3VhZ2VzKHdlYkNvbnRleHQuZ2V0KCkpOwotICAgIGdfYXNzZXJ0X2NtcHN0cihjdXJy
ZW50TGFuZ3VhZ2UsID09LCAiZXNfRVMsZW5fVVMiKTsKLQotICAgIC8vIENoZWNrIGRpc2FibGlu
ZyBhbmQgcmUtZW5hYmxpbmcgc3BlbGwgY2hlY2tpbmcuCi0gICAgd2Via2l0X3dlYl9jb250ZXh0
X3NldF9zcGVsbF9jaGVja2luZ19lbmFibGVkKHdlYkNvbnRleHQuZ2V0KCksIEZBTFNFKTsKLSAg
ICBnYm9vbGVhbiBpc1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gd2Via2l0X3dlYl9jb250ZXh0X2dl
dF9zcGVsbF9jaGVja2luZ19lbmFibGVkKHdlYkNvbnRleHQuZ2V0KCkpOwotICAgIGdfYXNzZXJ0
KCFpc1NwZWxsQ2hlY2tpbmdFbmFibGVkKTsKLSAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X3Nw
ZWxsX2NoZWNraW5nX2VuYWJsZWQod2ViQ29udGV4dC5nZXQoKSwgVFJVRSk7Ci0gICAgaXNTcGVs
bENoZWNraW5nRW5hYmxlZCA9IHdlYmtpdF93ZWJfY29udGV4dF9nZXRfc3BlbGxfY2hlY2tpbmdf
ZW5hYmxlZCh3ZWJDb250ZXh0LmdldCgpKTsKLSAgICBnX2Fzc2VydChpc1NwZWxsQ2hlY2tpbmdF
bmFibGVkKTsKLX0KLQogdm9pZCBiZWZvcmVBbGwoKQogewogICAgIFRlc3Q6OmFkZCgiV2ViS2l0
V2ViQ29udGV4dCIsICJkZWZhdWx0LWNvbnRleHQiLCB0ZXN0V2ViQ29udGV4dERlZmF1bHQpOwog
ICAgIFBsdWdpbnNUZXN0OjphZGQoIldlYktpdFdlYkNvbnRleHQiLCAiZ2V0LXBsdWdpbnMiLCB0
ZXN0V2ViQ29udGV4dEdldFBsdWdpbnMpOwogICAgIFVSSVNjaGVtZVRlc3Q6OmFkZCgiV2ViS2l0
V2ViQ29udGV4dCIsICJ1cmktc2NoZW1lIiwgdGVzdFdlYkNvbnRleHRVUklTY2hlbWUpOwotICAg
IFRlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJzcGVsbC1jaGVja2VyIiwgdGVzdFdlYkNv
bnRleHRTcGVsbENoZWNrZXIpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiMzM4OGZiNDcyMzhhYTQxNTEx
MzY0YWUxMTk0MjgxZmQ3MDAwZTU1Li42YTQ5MTRmNWIxMDYyNjEyZTA3MWZlZWNjZjdhNTFmNGZi
ZDQzN2I3IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMDctMzAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmll
dy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjM5
NjYgYW5kIHIxMjM5NjcuCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzEyMzk2NgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMjM5NjcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNjU2CisK
KyAgICAgICAgVGhpcyBwYXRjaCBpcyBjYXVzaW5nIGFzc2VydGlvbiBmYWlsdXJlcyBvbiB0aGUg
ZGVidWcgYm90CisgICAgICAgIChhbHNvIHJvbGxpbmcgb3V0IGEgZGVwZW5kZW50IHBhdGNoKSAo
UmVxdWVzdGVkIGJ5IG1yb2JpbnNvbgorICAgICAgICBvbiAjd2Via2l0KS4KKworICAgICAgICAq
IGd0ay9nZW5lcmF0ZS1ndGtkb2M6CisgICAgICAgIChnZXRfd2Via2l0Ml9vcHRpb25zKToKKwog
MjAxMi0wNy0zMCAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHVwZ3JhZGUgYXBhdmxvdiB0byByZXZpZXdlci4KZGlmZiAtLWdp
dCBhL1Rvb2xzL2d0ay9nZW5lcmF0ZS1ndGtkb2MgYi9Ub29scy9ndGsvZ2VuZXJhdGUtZ3RrZG9j
CmluZGV4IGIwMDIyMjQxNzZhY2ZhOTY5ZmZlNTU5YjVhZThmM2U0NDM2NzZjY2MuLjg4ZTYyZTc1
MDUxNzVlZDJiMDgzNTk0MDRiZWU4OGFmMjVjZDFkM2YgMTAwNzU1Ci0tLSBhL1Rvb2xzL2d0ay9n
ZW5lcmF0ZS1ndGtkb2MKKysrIGIvVG9vbHMvZ3RrL2dlbmVyYXRlLWd0a2RvYwpAQCAtOTksNyAr
OTksNiBAQCBkZWYgZ2V0X3dlYmtpdDJfb3B0aW9ucygpOgogICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsb2IuZ2xvYihzcmNfcGF0aCgnKkNsaWVudConKSkgKyBcCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2xvYi5nbG9iKHNyY19wYXRoKCdXZWJLaXRXZWJWaWV3QmFzZUFjY2Vzc2libGUu
KicpKSArIFwKICAgICAgICAgICAgICAgICAgICAgICAgICBnbG9iLmdsb2Ioc3JjX3BhdGgoJ1dl
YktpdEdlb2xvY2F0aW9uUHJvdmlkZXIuKicpKSArIFwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBnbG9iLmdsb2Ioc3JjX3BhdGgoJ1dlYktpdFRleHRDaGVja2VyLionKSkgKyBcCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2xvYi5nbG9iKGRlcml2ZWRfc291cmNlc19wYXRoKCd3ZWJraXQy
Z3RrJywgJ3dlYmtpdDInLCAnV2ViS2l0TWFyc2hhbC4qJykpICsgXAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGdsb2IuZ2xvYihkZXJpdmVkX3NvdXJjZXNfcGF0aCgnd2Via2l0Mmd0aycsICd3
ZWJraXQyJywgJ1dlYktpdEVudW1UeXBlcy4qJykpICsgXAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGdsb2IuZ2xvYihzcmNfcGF0aCgndGVzdHMvKi5oJykpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>