<?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>165841</bug_id>
          
          <creation_ts>2016-12-13 23:17:53 -0800</creation_ts>
          <short_desc>REGRESSION(r209792): Cause build failures (Requested by yusukesuzuki on #webkit).</short_desc>
          <delta_ts>2016-12-13 23:21:12 -0800</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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>165795</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1259655</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-13 23:17:53 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/209792 broke the build:
Cause build failures (Requested by yusukesuzuki on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259657</commentid>
    <comment_count>1</comment_count>
      <attachid>297068</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-13 23:18:21 -0800</bug_when>
    <thetext>Created attachment 297068
ROLLOUT of r209792

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>1259658</commentid>
    <comment_count>2</comment_count>
      <attachid>297068</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-13 23:21:08 -0800</bug_when>
    <thetext>Comment on attachment 297068
ROLLOUT of r209792

Clearing flags on attachment: 297068

Committed r209793: &lt;http://trac.webkit.org/changeset/209793&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259659</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-13 23:21:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297068</attachid>
            <date>2016-12-13 23:18:21 -0800</date>
            <delta_ts>2016-12-13 23:21:08 -0800</delta_ts>
            <desc>ROLLOUT of r209792</desc>
            <filename>bug-165841-20161214021730.patch</filename>
            <type>text/plain</type>
            <size>61068</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
OTIyMzE0NjJkODU3OGUxZWY5MjQwZTA2OWM3ZmM5MWFiYjUwMDExLi41NmRkNmYwMWU5ZTM5MjZi
N2RmMjU1NjA4MmJmNTAzNDc3NDIwYTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNi0xMi0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIwOTc5Mi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTg0MQorCisgICAg
ICAgIENhdXNlIGJ1aWxkIGZhaWx1cmVzIChSZXF1ZXN0ZWQgYnkgeXVzdWtlc3V6dWtpIG9uICN3
ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiVXNlIEpT
VmFsdWU6OnRvV1RGU3RyaW5nIGluc3RlYWQgb2YgY2FsbGluZyB0b1N0cmluZyhleGVjKQorICAg
ICAgICBhbmQgdmFsdWUoZXhlYykiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjU3OTUKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMjA5NzkyCisKIDIwMTYtMTItMTMgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBn
bWFpbC5jb20+CiAKICAgICAgICAgVXNlIEpTVmFsdWU6OnRvV1RGU3RyaW5nIGluc3RlYWQgb2Yg
Y2FsbGluZyB0b1N0cmluZyhleGVjKSBhbmQgdmFsdWUoZXhlYykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiYmRl
MWIyNGY2ZDRkMmMxNTkzNWY0ZWFhOTlmNzc4NDZkZDk0Y2YzLi4yZGMyYmM4YjRlNjhlZjdmZjY2
ZTBmOGY5ZmVkMjEyZGNmZjdhZmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYt
MTItMTMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMDk3OTIuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjU4NDEKKworICAgICAgICBDYXVzZSBidWlsZCBm
YWlsdXJlcyAoUmVxdWVzdGVkIGJ5IHl1c3VrZXN1enVraSBvbiAjd2Via2l0KS4KKworICAgICAg
ICBSZXZlcnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIlVzZSBKU1ZhbHVlOjp0b1dURlN0cmlu
ZyBpbnN0ZWFkIG9mIGNhbGxpbmcgdG9TdHJpbmcoZXhlYykKKyAgICAgICAgYW5kIHZhbHVlKGV4
ZWMpIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1
Nzk1CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIwOTc5MgorCiAy
MDE2LTEyLTEzICBZdXN1a2UgU3V6dWtpICA8dXRhdGFuZS50ZWFAZ21haWwuY29tPgogCiAgICAg
ICAgIFVzZSBKU1ZhbHVlOjp0b1dURlN0cmluZyBpbnN0ZWFkIG9mIGNhbGxpbmcgdG9TdHJpbmco
ZXhlYykgYW5kIHZhbHVlKGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjZmMDBmMzUwMTczYWRlNjEzOTI3
ZWVkZGUyYzBkYjJlOGZiNmJjYi4uNDJkM2U1YWNiNTliZTgxZDhjZmRhMjRmMDQ4ODY5MDYyN2E2
MmY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTEyLTEzICBDb21taXQgUXVl
dWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2VkLCByb2xs
aW5nIG91dCByMjA5NzkyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTY1ODQxCisKKyAgICAgICAgQ2F1c2UgYnVpbGQgZmFpbHVyZXMgKFJlcXVlc3Rl
ZCBieSB5dXN1a2VzdXp1a2kgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdl
c2V0OgorCisgICAgICAgICJVc2UgSlNWYWx1ZTo6dG9XVEZTdHJpbmcgaW5zdGVhZCBvZiBjYWxs
aW5nIHRvU3RyaW5nKGV4ZWMpCisgICAgICAgIGFuZCB2YWx1ZShleGVjKSIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NTc5NQorICAgICAgICBodHRw
Oi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMDk3OTIKKwogMjAxNi0xMi0xMyAgWXVzdWtl
IFN1enVraSAgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBVc2UgSlNWYWx1ZTo6
dG9XVEZTdHJpbmcgaW5zdGVhZCBvZiBjYWxsaW5nIHRvU3RyaW5nKGV4ZWMpIGFuZCB2YWx1ZShl
eGVjKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlUmVmLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKaW5kZXggYzI3Yjdj
MzVjODk0YjRhNDk3YjM3MTU5NTk5ODgwZTk2OWQ5MmQyOC4uNDI4NDM1MGZhNzE1YzY1YzIyNzA3
MmNmYmU4NjljMzc3YjNjMzlhYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1ZhbHVlUmVmLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVS
ZWYuY3BwCkBAIC00MDEsNyArNDAxLDcgQEAgSlNTdHJpbmdSZWYgSlNWYWx1ZVRvU3RyaW5nQ29w
eShKU0NvbnRleHRSZWYgY3R4LCBKU1ZhbHVlUmVmIHZhbHVlLCBKU1ZhbHVlUmVmKgogCiAgICAg
SlNWYWx1ZSBqc1ZhbHVlID0gdG9KUyhleGVjLCB2YWx1ZSk7CiAgICAgCi0gICAgYXV0byBzdHJp
bmdSZWYoT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShqc1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpKSk7
CisgICAgYXV0byBzdHJpbmdSZWYoT3BhcXVlSlNTdHJpbmc6OmNyZWF0ZShqc1ZhbHVlLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKSkpOwogICAgIGlmIChoYW5kbGVFeGNlcHRpb25JZk5lZWRl
ZChleGVjLCBleGNlcHRpb24pID09IEV4Y2VwdGlvblN0YXR1czo6RGlkVGhyb3cpCiAgICAgICAg
IHN0cmluZ1JlZiA9IG51bGxwdHI7CiAgICAgcmV0dXJuIHN0cmluZ1JlZi5sZWFrUmVmKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2JpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcAppbmRleCAy
NTU2OGEzZjgxN2MzZTFmMTA3ZmE4ZTFkY2YwMDM5ZDkzMTQ5YTViLi45ZjdhMjE2YzVlZmNmZTMy
OThiYTkxNmJmYzA1OTllMzZmOTFhZTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
aW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBTdHJpbmcgU2NyaXB0
VmFsdWU6OnRvU3RyaW5nKEV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUpIGNvbnN0CiAgICAgVk0mIHZt
ID0gc2NyaXB0U3RhdGUtPnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NP
UEUodm0pOwogCi0gICAgU3RyaW5nIHJlc3VsdCA9IG1fdmFsdWUuZ2V0KCkudG9XVEZTdHJpbmco
c2NyaXB0U3RhdGUpOworICAgIFN0cmluZyByZXN1bHQgPSBtX3ZhbHVlLmdldCgpLnRvU3RyaW5n
KHNjcmlwdFN0YXRlKS0+dmFsdWUoc2NyaXB0U3RhdGUpOwogICAgIC8vIEhhbmRsZSB0aGUgY2Fz
ZSB3aGVyZSBhbiBleGNlcHRpb24gaXMgdGhyb3duIGFzIHBhcnQgb2YgaW52b2tpbmcgdG9TdHJp
bmcgb24gdGhlIG9iamVjdC4KICAgICBpZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKQog
ICAgICAgICBzY29wZS5jbGVhckV4Y2VwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3RvckNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0dsb2JhbE9iamVjdEluc3BlY3Rv
ckNvbnRyb2xsZXIuY3BwCmluZGV4IDRmYjdkNzkyYmE5YmFjNmViYWYyMTY2ZDYxZjFlYTllOWZj
YzY3Y2YuLmI1OGM4ODgwODNhNGNmYTEwNzU4OTAxNTcwZGE3NjM0MWJkNWRkZjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNHbG9iYWxPYmplY3RJbnNwZWN0
b3JDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pT
R2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2
b2lkIEpTR2xvYmFsT2JqZWN0SW5zcGVjdG9yQ29udHJvbGxlcjo6cmVwb3J0QVBJRXhjZXB0aW9u
KEV4ZWNTdGF0ZSogZXhlYywgRXhjZQogCiAgICAgLy8gRklYTUU6IDxodHRwOi8vd2Via2l0Lm9y
Zy9iLzExNTA4Nz4gV2ViIEluc3BlY3RvcjogU2hvdWxkIG5vdCBldmFsdWF0ZSBKYXZhU2NyaXB0
IGhhbmRsaW5nIGV4Y2VwdGlvbnMKICAgICAvLyBJZiB0aGlzIGlzIGEgY3VzdG9tIGV4Y2VwdGlv
biBvYmplY3QsIGNhbGwgdG9TdHJpbmcgb24gaXQgdG8gdHJ5IGFuZCBnZXQgYSBuaWNlIHN0cmlu
ZyByZXByZXNlbnRhdGlvbiBmb3IgdGhlIGV4Y2VwdGlvbi4KLSAgICBTdHJpbmcgZXJyb3JNZXNz
YWdlID0gZXhjZXB0aW9uLT52YWx1ZSgpLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBl
cnJvck1lc3NhZ2UgPSBleGNlcHRpb24tPnZhbHVlKCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4
ZWMpOwogICAgIHNjb3BlLmNsZWFyRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoSlNHbG9iYWxPYmpl
Y3RDb25zb2xlQ2xpZW50Ojpsb2dUb1N5c3RlbUNvbnNvbGUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0luamVjdGVkU2NyaXB0SG9zdC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApp
bmRleCAzZjI2ZmU2ZWQ2ZjhhOGRkYmM2MDRhZWJhZWY3ZTJlOTIxNTJiOGI2Li43NTg2ZDdmYTQ4
NmI4MDM2ZmIwODhjMjhmOTk2MGQzNzFjMjMwMTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcApAQCAtMTAy
LDcgKzEwMiw3IEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmV2YWx1YXRlV2l0aFNj
b3BlRXh0ZW5zaW9uKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIXNjcmlwdFZhbHVlLmlzU3Ry
aW5nKCkpCiAgICAgICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihleGVjLCBzY29wZSwgQVNDSUlM
aXRlcmFsKCJJbmplY3RlZFNjcmlwdEhvc3QuZXZhbHVhdGVXaXRoU2NvcGVFeHRlbnNpb24gZmly
c3QgYXJndW1lbnQgbXVzdCBiZSBhIHN0cmluZy4iKSk7CiAKLSAgICBTdHJpbmcgcHJvZ3JhbSA9
IHNjcmlwdFZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBwcm9ncmFtID0gc2Ny
aXB0VmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKICAgICBOYWtlZFB0cjxFeGNlcHRpb24+IGV4Y2Vw
dGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNKYXZh
U2NyaXB0Q2FsbEZyYW1lLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSlNK
YXZhU2NyaXB0Q2FsbEZyYW1lLmNwcAppbmRleCBjNmFhNGE3N2VkYzI1NGUwZWE4MTMyMDQ2NDQ2
M2Y5Yjg3ZGU2YWJlLi4zOGYwNzZmOTMzZTU4ZGMyNzU0ZGU2ZTgzMDRjOWU2NGFhZGNlM2ZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0pTSmF2YVNjcmlwdENh
bGxGcmFtZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9KU0phdmFT
Y3JpcHRDYWxsRnJhbWUuY3BwCkBAIC04Miw3ICs4Miw3IEBAIEpTVmFsdWUgSlNKYXZhU2NyaXB0
Q2FsbEZyYW1lOjpldmFsdWF0ZVdpdGhTY29wZUV4dGVuc2lvbihFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgaWYgKCFzY3JpcHRWYWx1ZS5pc1N0cmluZygpKQogICAgICAgICByZXR1cm4gdGhyb3dUeXBl
RXJyb3IoZXhlYywgc2NvcGUsIEFTQ0lJTGl0ZXJhbCgiSlNKYXZhU2NyaXB0Q2FsbEZyYW1lLmV2
YWx1YXRlV2l0aFNjb3BlRXh0ZW5zaW9uIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgYSBzdHJpbmcu
IikpOwogCi0gICAgU3RyaW5nIHNjcmlwdCA9IHNjcmlwdFZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMp
OworICAgIFN0cmluZyBzY3JpcHQgPSBzY3JpcHRWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgSlNWYWx1ZSgpKTsKIAogICAg
IE5ha2VkUHRyPEV4Y2VwdGlvbj4gZXhjZXB0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5jcHAKaW5kZXgg
YzQ3NzU4ZmI0NTU2YmQ2OThmMjQ5ODRhZGEyN2RlNzI5YzEwZTA0MS4uYzQ0OTZkM2Q3Mjg3M2M4
YjExMzBlZmNjMjNmZDliZDgwYTZkZmQwNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2luc3BlY3Rvci9TY3JpcHRDYWxsU3RhY2tGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL1NjcmlwdENhbGxTdGFja0ZhY3RvcnkuY3BwCkBAIC0xMjgs
NyArMTI4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFNvdXJjZUluZm9ybWF0aW9uRnJvbUV4Y2Vw
dGlvbihKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QKICAgICBKU1ZhbHVlIGNvbHVtblZh
bHVlID0gZXhjZXB0aW9uT2JqZWN0LT5nZXREaXJlY3QoZXhlYy0+dm0oKSwgSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyhleGVjLCAiY29sdW1uIikpOwogICAgICpjb2x1bW5OdW1iZXIgPSBjb2x1bW5W
YWx1ZSAmJiBjb2x1bW5WYWx1ZS5pc051bWJlcigpID8gaW50KGNvbHVtblZhbHVlLnRvTnVtYmVy
KGV4ZWMpKSA6IDA7CiAgICAgSlNWYWx1ZSBzb3VyY2VVUkxWYWx1ZSA9IGV4Y2VwdGlvbk9iamVj
dC0+Z2V0RGlyZWN0KGV4ZWMtPnZtKCksIElkZW50aWZpZXI6OmZyb21TdHJpbmcoZXhlYywgInNv
dXJjZVVSTCIpKTsKLSAgICAqc291cmNlVVJMID0gc291cmNlVVJMVmFsdWUgJiYgc291cmNlVVJM
VmFsdWUuaXNTdHJpbmcoKSA/IHNvdXJjZVVSTFZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpIDogQVND
SUlMaXRlcmFsKCJ1bmRlZmluZWQiKTsKKyAgICAqc291cmNlVVJMID0gc291cmNlVVJMVmFsdWUg
JiYgc291cmNlVVJMVmFsdWUuaXNTdHJpbmcoKSA/IHNvdXJjZVVSTFZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKSA6IEFTQ0lJTGl0ZXJhbCgidW5kZWZpbmVkIik7CiAgICAgc2NvcGUu
Y2xlYXJFeGNlcHRpb24oKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvQ29uc29sZU9iamVjdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9Db25zb2xlT2JqZWN0LmNwcAppbmRleCAxOWJkNWJkYTQ3MWNlMjMyZDc5NDQ4MzRjYjJmMTI1
ZTQ4NDMyYTEyLi4zMGE5YmJkZTllMGJiMDQ5YWVjMTZiODk0NWYxMjJhOGVkNjZhZjI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db25zb2xlT2JqZWN0LmNwcApAQCAt
MTAxLDcgKzEwMSw3IEBAIHN0YXRpYyBTdHJpbmcgdmFsdWVUb1N0cmluZ1dpdGhVbmRlZmluZWRP
ck51bGxDaGVjayhFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdmFsCiB7CiAgICAgaWYgKHZhbHVl
LmlzVW5kZWZpbmVkT3JOdWxsKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKLSAgICByZXR1
cm4gdmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgcmV0dXJuIHZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKIH0KIAogc3RhdGljIEVuY29kZWRKU1ZhbHVlIGNvbnNvbGVMb2dX
aXRoTGV2ZWwoRXhlY1N0YXRlKiBleGVjLCBNZXNzYWdlTGV2ZWwgbGV2ZWwpCkBAIC0yOTEsNyAr
MjkxLDcgQEAgc3RhdGljIFN0cmluZyB2YWx1ZU9yRGVmYXVsdExhYmVsU3RyaW5nKEV4ZWNTdGF0
ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUuaXNVbmRlZmluZWQoKSkK
ICAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCgiZGVmYXVsdCIpOwotICAgIHJldHVybiB2YWx1
ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICByZXR1cm4gdmFsdWUudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOwogfQogCiBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjb25z
b2xlUHJvdG9GdW5jVGltZShFeGVjU3RhdGUqIGV4ZWMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRGF0ZUNvbnN0cnVjdG9yLmNwcAppbmRleCBhODI1MDE3YjA2N2M0MjI2
MDY1N2I5YzkzMWI4ZTQxOGMzODFlZmJlLi4wZGZhZGFmODhhNGVjMTNkMjNmZmI0YTU4N2ZkNWE1
OWY5YjI1NzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9EYXRl
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVD
b25zdHJ1Y3Rvci5jcHAKQEAgLTIwNSw3ICsyMDUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIGRhdGVQYXJzZShFeGVjU3RhdGUqIGV4ZWMpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+
dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAgU3Ry
aW5nIGRhdGVTdHIgPSBleGVjLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhleGVjKTsKKyAgICBT
dHJpbmcgZGF0ZVN0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
ICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVyKHBhcnNlRGF0ZSh2bSwgZGF0ZVN0
cikpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVQ
cm90b3R5cGUuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlw
ZS5jcHAKaW5kZXggZTM0OWE3MTM1NDRlYjZjNjk0NzdkOWM5MWViMTdkNjUwZjJiMjBhOS4uNzg4
ODZkYjk3ZjJlNGQwOTBhNmVkODliNWJlYWNiMDIwOTBlNmVlNSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvRGF0ZVByb3RvdHlwZS5jcHAKQEAgLTE1MSwxMyArMTUxLDEz
IEBAIHN0YXRpYyBKU0NlbGwqIGZvcm1hdExvY2FsZURhdGUoRXhlY1N0YXRlKiBleGVjLCBEYXRl
SW5zdGFuY2UqLCBkb3VibGUgdGltZUluTWlsCiAgICAgYm9vbCB1c2VDdXN0b21Gb3JtYXQgPSBm
YWxzZTsKICAgICBTdHJpbmcgY3VzdG9tRm9ybWF0U3RyaW5nOwogCi0gICAgU3RyaW5nIGFyZzBT
dHJpbmcgPSBleGVjLT5hcmd1bWVudCgwKS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcg
YXJnMFN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVj
KTsKICAgICBpZiAoYXJnMFN0cmluZyA9PSAiY3VzdG9tIiAmJiAhZXhlYy0+YXJndW1lbnQoMSku
aXNVbmRlZmluZWQoKSkgewogICAgICAgICB1c2VDdXN0b21Gb3JtYXQgPSB0cnVlOwotICAgICAg
ICBjdXN0b21Gb3JtYXRTdHJpbmcgPSBleGVjLT5hcmd1bWVudCgxKS50b1dURlN0cmluZyhleGVj
KTsKKyAgICAgICAgY3VzdG9tRm9ybWF0U3RyaW5nID0gZXhlYy0+YXJndW1lbnQoMSkudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09IExvY2FsZURh
dGVBbmRUaW1lICYmICFleGVjLT5hcmd1bWVudCgxKS5pc1VuZGVmaW5lZCgpKSB7CiAgICAgICAg
IGRhdGVTdHlsZSA9IHN0eWxlRnJvbUFyZ1N0cmluZyhhcmcwU3RyaW5nLCBkYXRlU3R5bGUpOwot
ICAgICAgICB0aW1lU3R5bGUgPSBzdHlsZUZyb21BcmdTdHJpbmcoZXhlYy0+YXJndW1lbnQoMSku
dG9XVEZTdHJpbmcoZXhlYyksIHRpbWVTdHlsZSk7CisgICAgICAgIHRpbWVTdHlsZSA9IHN0eWxl
RnJvbUFyZ1N0cmluZyhleGVjLT5hcmd1bWVudCgxKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhl
YyksIHRpbWVTdHlsZSk7CiAgICAgfSBlbHNlIGlmIChmb3JtYXQgIT0gTG9jYWxlVGltZSAmJiAh
ZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRlZmluZWQoKSkKICAgICAgICAgZGF0ZVN0eWxlID0gc3R5
bGVGcm9tQXJnU3RyaW5nKGFyZzBTdHJpbmcsIGRhdGVTdHlsZSk7CiAgICAgZWxzZSBpZiAoZm9y
bWF0ICE9IExvY2FsZURhdGUgJiYgIWV4ZWMtPmFyZ3VtZW50KDApLmlzVW5kZWZpbmVkKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvckluc3RhbmNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCmluZGV4
IGVkOGYyZDdhNDUzZTJmZDVkNDIxMGFjNTdlMGNkNDZiMTg2ZjUwZmQuLjQ1YzFjMGU2ZDRiMWYw
ODBiMmI0ZWI0NzY3MGUzODRhNTFkYjNhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9ySW5zdGFuY2UuY3BwCkBAIC0xOTMsNyArMTkzLDcgQEAgU3RyaW5nIEVy
cm9ySW5zdGFuY2U6OnNhbml0aXplZFRvU3RyaW5nKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
IW5hbWVWYWx1ZSkKICAgICAgICAgbmFtZVN0cmluZyA9IEFTQ0lJTGl0ZXJhbCgiRXJyb3IiKTsK
ICAgICBlbHNlIHsKLSAgICAgICAgbmFtZVN0cmluZyA9IG5hbWVWYWx1ZS50b1dURlN0cmluZyhl
eGVjKTsKKyAgICAgICAgbmFtZVN0cmluZyA9IG5hbWVWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIFN0cmluZygpKTsK
ICAgICB9CiAKQEAgLTIwOCw3ICsyMDgsNyBAQCBTdHJpbmcgRXJyb3JJbnN0YW5jZTo6c2FuaXRp
emVkVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmICghbWVzc2FnZVZhbHVlKQogICAg
ICAgICBtZXNzYWdlU3RyaW5nID0gU3RyaW5nKCk7CiAgICAgZWxzZSB7Ci0gICAgICAgIG1lc3Nh
Z2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgICAgIG1lc3Nh
Z2VTdHJpbmcgPSBtZXNzYWdlVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAg
ICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBTdHJpbmcoKSk7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FcnJvclByb3RvdHlwZS5jcHAKaW5kZXgg
YjY2YTE0ZDU5YzQ1NzQ2OTcwZjFmODc3MWNlMDliZGU3M2I5M2Y2OC4uNTA2ODY0NGVmZjFkMjMy
NjU4ZTE2OGVhYjVhYzU4YjI5ZmFhYTJhMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvRXJyb3JQcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0Vycm9yUHJvdG90eXBlLmNwcApAQCAtOTMsNyArOTMsNyBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIGVycm9yUHJvdG9GdW5jVG9TdHJpbmcoRXhlY1N0YXRlKiBleGVj
KQogICAgIGlmIChuYW1lLmlzVW5kZWZpbmVkKCkpCiAgICAgICAgIG5hbWVTdHJpbmcgPSBBU0NJ
SUxpdGVyYWwoIkVycm9yIik7CiAgICAgZWxzZSB7Ci0gICAgICAgIG5hbWVTdHJpbmcgPSBuYW1l
LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgICAgICBuYW1lU3RyaW5nID0gbmFtZS50b1N0cmluZyhl
eGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogICAgIH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgZXJyb3JQcm90b0Z1bmNUb1N0cmluZyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgaWYgKG1lc3NhZ2UuaXNVbmRlZmluZWQoKSkKICAgICAgICAgbWVzc2FnZVN0cmluZyA9
IFN0cmluZygpOwogICAgIGVsc2UgewotICAgICAgICBtZXNzYWdlU3RyaW5nID0gbWVzc2FnZS50
b1dURlN0cmluZyhleGVjKTsKKyAgICAgICAgbWVzc2FnZVN0cmluZyA9IG1lc3NhZ2UudG9TdHJp
bmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb25PYmplY3Qu
Y3BwCmluZGV4IGY2OWY4MzFlZWMwNjYxNjkyMTIzNzk5YzM0Y2IwNjU5MGY3Y2MzODUuLmRjNzk3
Y2E4ZTYxMzk4NTM1MWI5ZGQ2NDIxZjY5M2EwY2FhODMzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdC5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uT2JqZWN0LmNwcApAQCAtODYsNyArODYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGluc3BlY3Rvckluc3RydW1lbnRhdGlvbk9iamVjdExvZyhFeGVjU3RhdGUqIGV4ZWMpCiAg
ICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CiAgICAgSlNWYWx1ZSB0YXJnZXQgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBT
dHJpbmcgdmFsdWUgPSB0YXJnZXQudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHZhbHVl
ID0gdGFyZ2V0LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhD
RVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICBkYXRhTG9nKHZhbHVlLCAiXG4i
KTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDSlNWYWx1ZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1ZhbHVlLmNwcAppbmRleCBlMzY5ZmFhM2Y2ZDcw
Njk2YWFlMDliNzZhNTYwYTAxYmUyZjY4YzNmLi4xZjhjNmQ1OTA2M2MwNTM1MWRiY2MwOGNhNDQy
YzBhYjdmZDZjYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U0NKU1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NKU1Zh
bHVlLmNwcApAQCAtMzkyLDcgKzM5Miw3IEBAIFN0cmluZyBKU1ZhbHVlOjp0b1dURlN0cmluZ1Ns
b3dDYXNlKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICAgICAgcmV0dXJuIHZtLnByb3BlcnR5
TmFtZXMtPm51bGxLZXl3b3JkLnN0cmluZygpOwogICAgIGlmIChpc1VuZGVmaW5lZCgpKQogICAg
ICAgICByZXR1cm4gdm0ucHJvcGVydHlOYW1lcy0+dW5kZWZpbmVkS2V5d29yZC5zdHJpbmcoKTsK
LSAgICByZXR1cm4gdG9XVEZTdHJpbmcoZXhlYyk7CisgICAgcmV0dXJuIHRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAK
aW5kZXggYzYyZTRmNzE4YTc4ZGJiZTM2NTFkZDdmYzY5YjYyYjU3Mzk1MTUwYi4uNDIyZDdlZjQ1
N2Q1OTNkMWRjMTk5NGYxMDAwOTk0NTVhN2NhNGU4MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAt
NjY2LDcgKzY2Niw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY0V2
YWwoRXhlY1N0YXRlKiBleGVjKQogICAgICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwogICAgIH0KIAotICAgIFN0cmluZyBzID0geC50b1dURlN0cmluZyhleGVjKTsK
KyAgICBTdHJpbmcgcyA9IHgudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgaWYgKHMuaXM4
Qml0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9k
dWxlTG9hZGVyLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTTW9kdWxlTG9h
ZGVyLmNwcAppbmRleCBiZmQ4ZjQ5NTFkMDA4NjU0ZWI1YWU5MDI1NTA5YWViOWIyNzQ4N2Q0Li5l
Zjg1YjM3YmVkNDg4MGRmMjRmMGY0ZDEzNTZmNTU2NTA4MTVhYmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU01vZHVsZUxvYWRlci5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNNb2R1bGVMb2FkZXIuY3BwCkBAIC0xNTgsNyArMTU4
LDcgQEAgSlNJbnRlcm5hbFByb21pc2UqIEpTTW9kdWxlTG9hZGVyOjpmZXRjaChFeGVjU3RhdGUq
IGV4ZWMsIEpTVmFsdWUga2V5LCBKU1ZhbHVlIGkKICAgICBpZiAoZ2xvYmFsT2JqZWN0LT5nbG9i
YWxPYmplY3RNZXRob2RUYWJsZSgpLT5tb2R1bGVMb2FkZXJGZXRjaCkKICAgICAgICAgcmV0dXJu
IGdsb2JhbE9iamVjdC0+Z2xvYmFsT2JqZWN0TWV0aG9kVGFibGUoKS0+bW9kdWxlTG9hZGVyRmV0
Y2goZ2xvYmFsT2JqZWN0LCBleGVjLCB0aGlzLCBrZXksIGluaXRpYXRvcik7CiAgICAgSlNJbnRl
cm5hbFByb21pc2VEZWZlcnJlZCogZGVmZXJyZWQgPSBKU0ludGVybmFsUHJvbWlzZURlZmVycmVk
OjpjcmVhdGUoZXhlYywgZ2xvYmFsT2JqZWN0KTsKLSAgICBTdHJpbmcgbW9kdWxlS2V5ID0ga2V5
LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBtb2R1bGVLZXkgPSBrZXkudG9TdHJpbmco
ZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkp
IHsKICAgICAgICAgSlNWYWx1ZSBleGNlcHRpb24gPSBzY29wZS5leGNlcHRpb24oKS0+dmFsdWUo
KTsKICAgICAgICAgc2NvcGUuY2xlYXJFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Nb2R1bGVMb2FkZXJQcm90b3R5cGUuY3BwCmluZGV4IDNm
Y2NkYTc2NmFmYjU2ZGJhMDZkOWEyYjM0OGUzN2U0YzVkYzAyN2MuLjdkY2Q3ZDVlNjVmZDM5ODhl
MGVhNjZhODQxZmFjZDg3NGU0ZjEyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL01vZHVsZUxvYWRlclByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvTW9kdWxlTG9hZGVyUHJvdG90eXBlLmNwcApAQCAtMTEwLDcgKzExMCw3
IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgbW9kdWxlTG9hZGVyUHJvdG90eXBlUGFy
c2VNb2R1bGUoRXhlY1N0YXRlKiBleGVjKQogICAgIGNvbnN0IElkZW50aWZpZXIgbW9kdWxlS2V5
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9Qcm9wZXJ0eUtleShleGVjKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAotICAgIFN0cmluZyBzb3VyY2Ug
PSBleGVjLT5hcmd1bWVudCgxKS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgc291cmNl
ID0gZXhlYy0+YXJndW1lbnQoMSkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgU291cmNl
Q29kZSBzb3VyY2VDb2RlID0gbWFrZVNvdXJjZShzb3VyY2UsIG1vZHVsZUtleS5pbXBsKCksIFRl
eHRQb3NpdGlvbigpLCBTb3VyY2VQcm92aWRlclNvdXJjZVR5cGU6Ok1vZHVsZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBDb25zdHJ1Y3Rvci5jcHAKaW5k
ZXggYjg4NmNmY2IzOWM0NjM0OWZkMmU4YTI3NGEzOWFhMTNhZjhjNDdjZS4uZmJhZDQ5YmMwNzQ4
N2I5YjNmZGU3NDdlZGJhZmNlOTE4NzdhOTI2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUmVnRXhwQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1JlZ0V4cENvbnN0cnVjdG9yLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBA
IHN0YXRpYyBKU09iamVjdCogcmVnRXhwQ3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgSlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNWCiAgICAgVk0mIHZtID0gZXhlYy0+dm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBTdHJpbmcgcGF0dGVy
biA9IHBhdHRlcm5BcmcuaXNVbmRlZmluZWQoKSA/IGVtcHR5U3RyaW5nKCkgOiBwYXR0ZXJuQXJn
LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBwYXR0ZXJuID0gcGF0dGVybkFyZy5pc1Vu
ZGVmaW5lZCgpID8gZW1wdHlTdHJpbmcoKSA6IHBhdHRlcm5BcmcudG9TdHJpbmcoZXhlYyktPnZh
bHVlKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogCiAg
ICAgUmVnRXhwRmxhZ3MgZmxhZ3MgPSB0b0ZsYWdzKGV4ZWMsIGZsYWdzQXJnKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9SZWdFeHBQcm90b3R5cGUuY3BwCmluZGV4IGYw
M2I5YjRmMzIxN2MxNTNhMmUwNzcyOWMyYTlhZmMzNjUzZTY2MTkuLjg4MjQwODJlNGZjMDc3MjZl
NTM5Y2I5MWU4Y2QzMTVlN2Y2ZWM2YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1JlZ0V4cFByb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvUmVnRXhwUHJvdG90eXBlLmNwcApAQCAtMTY2LDEyICsxNjYsMTIgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCByZWdFeHBQcm90b0Z1bmNDb21waWxlKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCBB
U0NJSUxpdGVyYWwoIkNhbm5vdCBzdXBwbHkgZmxhZ3Mgd2hlbiBjb25zdHJ1Y3Rpbmcgb25lIFJl
Z0V4cCBmcm9tIGFub3RoZXIuIikpOwogICAgICAgICByZWdFeHAgPSBhc1JlZ0V4cE9iamVjdChh
cmcwKS0+cmVnRXhwKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBh
cmcwLmlzVW5kZWZpbmVkKCkgPyBlbXB0eVN0cmluZygpIDogYXJnMC50b1dURlN0cmluZyhleGVj
KTsKKyAgICAgICAgU3RyaW5nIHBhdHRlcm4gPSBhcmcwLmlzVW5kZWZpbmVkKCkgPyBlbXB0eVN0
cmluZygpIDogYXJnMC50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIFJFVFVS
Tl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgICAgIFJlZ0V4
cEZsYWdzIGZsYWdzID0gTm9GbGFnczsKICAgICAgICAgaWYgKCFhcmcxLmlzVW5kZWZpbmVkKCkp
IHsKLSAgICAgICAgICAgIGZsYWdzID0gcmVnRXhwRmxhZ3MoYXJnMS50b1dURlN0cmluZyhleGVj
KSk7CisgICAgICAgICAgICBmbGFncyA9IHJlZ0V4cEZsYWdzKGFyZzEudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpKTsKICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogICAgICAgICAgICAgaWYgKGZsYWdzID09IEludmFsaWRGbGFncykK
ICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKGV4ZWMsIHNjb3BlLCBjcmVhdGVT
eW50YXhFcnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkludmFsaWQgZmxhZ3Mgc3VwcGxpZWQgdG8g
UmVnRXhwIGNvbnN0cnVjdG9yLiIpKSk7CkBAIC0yNDMsMTIgKzI0MywxMiBAQCBFbmNvZGVkSlNW
YWx1ZSBKU0NfSE9TVF9DQUxMIHJlZ0V4cFByb3RvRnVuY1RvU3RyaW5nKEV4ZWNTdGF0ZSogZXhl
YykKIAogICAgIEpTVmFsdWUgc291cmNlVmFsdWUgPSB0aGlzT2JqZWN0LT5nZXQoZXhlYywgdm0u
cHJvcGVydHlOYW1lcy0+c291cmNlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBl
bmNvZGVkSlNWYWx1ZSgpKTsKLSAgICBTdHJpbmcgc291cmNlID0gc291cmNlVmFsdWUudG9XVEZT
dHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHNvdXJjZSA9IHNvdXJjZVZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgZmxhZ3NWYWx1ZSA9IHRoaXNPYmplY3QtPmdldChl
eGVjLCB2bS5wcm9wZXJ0eU5hbWVzLT5mbGFncyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgU3RyaW5nIGZsYWdzID0gZmxhZ3NWYWx1ZS50
b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgZmxhZ3MgPSBmbGFnc1ZhbHVlLnRvU3RyaW5n
KGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNv
ZGVkSlNWYWx1ZSgpKTsKIAogICAgIHNjb3BlLnJlbGVhc2UoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ1Byb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdQcm90b3R5cGUuY3BwCmluZGV4IGFlZWU0YmNkZDhi
MzVlM2M4M2I1N2MxZmQwYjk3ZmM5ZTljYjdhZTEuLmUxNjBiMjNiZTc4MWZiNzgzYjY2YjE0OGM5
MDJiMzIzOTVlMGQzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ1Byb3RvdHlwZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
U3RyaW5nUHJvdG90eXBlLmNwcApAQCAtNTU0LDcgKzU1NCw3IEBAIHN0YXRpYyBBTFdBWVNfSU5M
SU5FIEVuY29kZWRKU1ZhbHVlIHJlcGxhY2VVc2luZ1JlZ0V4cFNlYXJjaCgKIAogICAgICAgICAg
ICAgICAgIGNhY2hlZENhbGwuc2V0VGhpcyhqc1VuZGVmaW5lZCgpKTsKICAgICAgICAgICAgICAg
ICBKU1ZhbHVlIGpzUmVzdWx0ID0gY2FjaGVkQ2FsbC5jYWxsKCk7Ci0gICAgICAgICAgICAgICAg
cmVwbGFjZW1lbnRzLmFwcGVuZChqc1Jlc3VsdC50b1dURlN0cmluZyhleGVjKSk7CisgICAgICAg
ICAgICAgICAgcmVwbGFjZW1lbnRzLmFwcGVuZChqc1Jlc3VsdC50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYykpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVu
Y29kZWRKU1ZhbHVlKCkpOwogCiAgICAgICAgICAgICAgICAgbGFzdEluZGV4ID0gcmVzdWx0LmVu
ZDsKQEAgLTU5Myw3ICs1OTMsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBFbmNvZGVkSlNWYWx1
ZSByZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2goCiAKICAgICAgICAgICAgICAgICBjYWNoZWRDYWxs
LnNldFRoaXMoanNVbmRlZmluZWQoKSk7CiAgICAgICAgICAgICAgICAgSlNWYWx1ZSBqc1Jlc3Vs
dCA9IGNhY2hlZENhbGwuY2FsbCgpOwotICAgICAgICAgICAgICAgIHJlcGxhY2VtZW50cy5hcHBl
bmQoanNSZXN1bHQudG9XVEZTdHJpbmcoZXhlYykpOworICAgICAgICAgICAgICAgIHJlcGxhY2Vt
ZW50cy5hcHBlbmQoanNSZXN1bHQudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICAg
ICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
IAogICAgICAgICAgICAgICAgIGxhc3RJbmRleCA9IHJlc3VsdC5lbmQ7CkBAIC02MzUsNyArNjM1
LDcgQEAgc3RhdGljIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgcmVwbGFjZVVzaW5nUmVn
RXhwU2VhcmNoKAogCiAgICAgICAgICAgICAgICAgSlNWYWx1ZSByZXBsYWNlbWVudCA9IGNhbGwo
ZXhlYywgcmVwbGFjZVZhbHVlLCBjYWxsVHlwZSwgY2FsbERhdGEsIGpzVW5kZWZpbmVkKCksIGFy
Z3MpOwogICAgICAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRK
U1ZhbHVlKCkpOwotICAgICAgICAgICAgICAgIFN0cmluZyByZXBsYWNlbWVudFN0cmluZyA9IHJl
cGxhY2VtZW50LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgICAgICAgICAgICAgIFN0cmluZyByZXBs
YWNlbWVudFN0cmluZyA9IHJlcGxhY2VtZW50LnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICAgICAgICAgICAgICByZXBsYWNlbWVudHMuYXBwZW5kKHJlcGxhY2VtZW50U3Ry
aW5nKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKQEAgLTcxOCw3ICs3MTgsNyBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBFbmNv
ZGVkSlNWYWx1ZSByZXBsYWNlVXNpbmdSZWdFeHBTZWFyY2goVk0mIHZtLCBFeGVjU3RhdGUqCiAg
ICAgQ2FsbERhdGEgY2FsbERhdGE7CiAgICAgQ2FsbFR5cGUgY2FsbFR5cGUgPSBnZXRDYWxsRGF0
YShyZXBsYWNlVmFsdWUsIGNhbGxEYXRhKTsKICAgICBpZiAoY2FsbFR5cGUgPT0gQ2FsbFR5cGU6
Ok5vbmUpIHsKLSAgICAgICAgcmVwbGFjZW1lbnRTdHJpbmcgPSByZXBsYWNlVmFsdWUudG9XVEZT
dHJpbmcoZXhlYyk7CisgICAgICAgIHJlcGxhY2VtZW50U3RyaW5nID0gcmVwbGFjZVZhbHVlLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQogCkBAIC03MzIsNyArNzMyLDcgQEAgc3Rh
dGljIEFMV0FZU19JTkxJTkUgRW5jb2RlZEpTVmFsdWUgcmVwbGFjZVVzaW5nU3RyaW5nU2VhcmNo
KFZNJiB2bSwgRXhlY1N0YXRlKgogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHZtKTsKIAogICAgIGNvbnN0IFN0cmluZyYgc3RyaW5nID0ganNTdHJpbmctPnZhbHVlKGV4ZWMp
OwotICAgIFN0cmluZyBzZWFyY2hTdHJpbmcgPSBzZWFyY2hWYWx1ZS50b1dURlN0cmluZyhleGVj
KTsKKyAgICBTdHJpbmcgc2VhcmNoU3RyaW5nID0gc2VhcmNoVmFsdWUudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOwogCiAgICAgc2l6ZV90IG1hdGNoU3RhcnQgPSBzdHJpbmcuZmluZChzZWFyY2hTdHJp
bmcpOwpAQCAtNzUxLDcgKzc1MSw3IEBAIHN0YXRpYyBBTFdBWVNfSU5MSU5FIEVuY29kZWRKU1Zh
bHVlIHJlcGxhY2VVc2luZ1N0cmluZ1NlYXJjaChWTSYgdm0sIEV4ZWNTdGF0ZSoKICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgfQogCi0g
ICAgU3RyaW5nIHJlcGxhY2VTdHJpbmcgPSByZXBsYWNlVmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7
CisgICAgU3RyaW5nIHJlcGxhY2VTdHJpbmcgPSByZXBsYWNlVmFsdWUudG9TdHJpbmcoZXhlYykt
PnZhbHVlKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1Zh
bHVlKCkpOwogCiAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0cmluZy5pbXBsKCk7CkBA
IC0xMTE1LDcgKzExMTUsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1By
b3RvRnVuY1NsaWNlKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4
ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVl
KSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIFN0
cmluZyBzID0gdGhpc1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzID0gdGhp
c1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIGludCBsZW4gPSBzLmxlbmd0aCgp
OwpAQCAtMTE4Myw3ICsxMTgzLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJp
bmdQcm90b0Z1bmNTcGxpdEZhc3QoRXhlY1N0YXRlKiBleGVjKQogCiAgICAgLy8gMy4gTGV0IFMg
YmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIFRvU3RyaW5nLCBnaXZpbmcgaXQgdGhlIHRoaXMgdmFs
dWUgYXMgaXRzIGFyZ3VtZW50LgogICAgIC8vIDcuIExldCBzIGJlIHRoZSBudW1iZXIgb2YgY2hh
cmFjdGVycyBpbiBTLgotICAgIFN0cmluZyBpbnB1dCA9IHRoaXNWYWx1ZS50b1dURlN0cmluZyhl
eGVjKTsKKyAgICBTdHJpbmcgaW5wdXQgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVl
KGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwogICAgIEFTU0VSVCghaW5wdXQuaXNOdWxsKCkpOwogCkBAIC0xMjA1LDcgKzEyMDUsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1NwbGl0RmFzdChFeGVj
U3RhdGUqIGV4ZWMpCiAgICAgLy8gOS4gSWYgc2VwYXJhdG9yIGlzIGEgUmVnRXhwIG9iamVjdCAo
aXRzIFtbQ2xhc3NdXSBpcyAiUmVnRXhwIiksIGxldCBSID0gc2VwYXJhdG9yOwogICAgIC8vICAg
IG90aGVyd2lzZSBsZXQgUiA9IFRvU3RyaW5nKHNlcGFyYXRvcikuCiAgICAgSlNWYWx1ZSBzZXBh
cmF0b3JWYWx1ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApOwotICAgIFN0cmluZyBzZXBh
cmF0b3IgPSBzZXBhcmF0b3JWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgc2Vw
YXJhdG9yID0gc2VwYXJhdG9yVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogCiAgICAgLy8g
MTAuIElmIGxpbSA9PSAwLCByZXR1cm4gQS4KQEAgLTEzMjQsNyArMTMyNCw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3Vic3RyKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAganNTdHJpbmcgPSBqc0Nhc3Q8SlNTdHJpbmcqPih0aGlzVmFsdWUuYXNDZWxs
KCkpOwogICAgICAgICBsZW4gPSBqc1N0cmluZy0+bGVuZ3RoKCk7CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgdVN0cmluZyA9IHRoaXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICAgICAgdVN0
cmluZyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICBsZW4g
PSB1U3RyaW5nLmxlbmd0aCgpOwogICAgIH0KQEAgLTE0NTUsMTEgKzE0NTUsMTEgQEAgRW5jb2Rl
ZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNMb2NhbGVDb21wYXJlKEV4ZWNT
dGF0ZSogZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwog
ICAgIGlmICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJu
IHRocm93Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIFN0cmluZyBzID0gdGhpc1ZhbHVl
LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4
ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVk
SlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKLSAgICBT
dHJpbmcgc3RyID0gYTAudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHN0ciA9IGEwLnRv
U3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTnVtYmVy
KENvbGxhdG9yKCkuY29sbGF0ZShzLCBzdHIpKSk7CiB9CkBAIC0xNTc0LDcgKzE1NzQsNyBAQCBF
bmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0JpZyhFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBp
ZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1dU
RlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFs
dWUoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
anNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiPGJpZz4iLCBzLCAiPC9iaWc+IikpOwpAQCAt
MTU4OCw3ICsxNTg4LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90
b0Z1bmNTbWFsbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVj
LT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkp
CiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBTdHJp
bmcgcyA9IHRoaXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRoaXNW
YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElP
TihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJl
dHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiPHNtYWxs
PiIsIHMsICI8L3NtYWxsPiIpKTsKQEAgLTE2MDIsNyArMTYwMiw3IEBAIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQmxpbmsoRXhlY1N0YXRlKiBleGVjKQogICAg
IEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09i
amVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSk7Ci0gICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9XVEZTdHJpbmcoZXhl
Yyk7CisgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAg
IHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRy
aXZpYWxTdHJpbmcoZXhlYywgIjxibGluaz4iLCBzLCAiPC9ibGluaz4iKSk7CkBAIC0xNjE2LDcg
KzE2MTYsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY0Jv
bGQoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUgdGhpc1ZhbHVlID0gZXhlYy0+dGhpc1Zh
bHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAg
ICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBzY29wZSk7Ci0gICAgU3RyaW5nIHMgPSB0
aGlzVmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9T
dHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUs
IGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJpbmcoZXhlYywgIjxiPiIsIHMsICI8L2I+
IikpOwpAQCAtMTYzMCw3ICsxNjMwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBz
dHJpbmdQcm90b0Z1bmNGaXhlZChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFs
dWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRo
aXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsK
LSAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcg
cyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgp
OwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVj
LCAiPHR0PiIsIHMsICI8L3R0PiIpKTsKQEAgLTE2NDQsNyArMTY0NCw3IEBAIEVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jSXRhbGljcyhFeGVjU3RhdGUqIGV4ZWMp
CiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNo
ZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlw
ZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1dURlN0cmlu
ZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CiAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNNYWtl
Tm9udHJpdmlhbFN0cmluZyhleGVjLCAiPGk+IiwgcywgIjwvaT4iKSk7CkBAIC0xNjU4LDcgKzE2
NTgsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVuY1N0cmlr
ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBTdHJpbmcgcyA9IHRo
aXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0
cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgc2NvcGUucmVsZWFzZSgpOwogICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNNYWtlTm9udHJpdmlhbFN0cmluZyhleGVjLCAiPHN0cmlrZT4iLCBzLCAi
PC9zdHJpa2U+IikpOwpAQCAtMTY3Miw3ICsxNjcyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdWIoRXhlY1N0YXRlKiBleGVjKQogICAgIEpTVmFsdWUg
dGhpc1ZhbHVlID0gZXhlYy0+dGhpc1ZhbHVlKCk7CiAgICAgaWYgKCFjaGVja09iamVjdENvZXJj
aWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBz
Y29wZSk7Ci0gICAgU3RyaW5nIHMgPSB0aGlzVmFsdWUudG9XVEZTdHJpbmcoZXhlYyk7CisgICAg
U3RyaW5nIHMgPSB0aGlzVmFsdWUudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIFJF
VFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgIHNjb3BlLnJl
bGVhc2UoKTsKICAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzTWFrZU5vbnRyaXZpYWxTdHJp
bmcoZXhlYywgIjxzdWI+IiwgcywgIjwvc3ViPiIpKTsKQEAgLTE2ODYsNyArMTY4Niw3IEBAIEVu
Y29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3VwKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvV1RG
U3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKICAgICBzY29wZS5yZWxlYXNlKCk7CiAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShq
c01ha2VOb250cml2aWFsU3RyaW5nKGV4ZWMsICI8c3VwPiIsIHMsICI8L3N1cD4iKSk7CkBAIC0x
NzAwLDcgKzE3MDAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3Rv
RnVuY0ZvbnRjb2xvcihFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBl
eGVjLT50aGlzVmFsdWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1
ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBT
dHJpbmcgcyA9IHRoaXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRo
aXNWYWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+
YXJndW1lbnQoMCk7CkBAIC0xNzE5LDcgKzE3MTksNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0ZvbnRzaXplKEV4ZWNTdGF0ZSogZXhlYykKICAgICBKU1Zh
bHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlmICghY2hlY2tPYmplY3RD
b2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3IoZXhl
Yywgc2NvcGUpOwotICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOwor
ICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpT
VmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE3NzQsNyArMTc3NCw3IEBAIEVuY29k
ZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jQW5jaG9yKEV4ZWNTdGF0ZSog
ZXhlYykKICAgICBKU1ZhbHVlIHRoaXNWYWx1ZSA9IGV4ZWMtPnRoaXNWYWx1ZSgpOwogICAgIGlm
ICghY2hlY2tPYmplY3RDb2VyY2libGUodGhpc1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIHRocm93
Vk1UeXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvV1RG
U3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52
YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1
ZSgpKTsKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE3OTMsNyAr
MTc5Myw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jTGlu
ayhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUgPSBleGVjLT50aGlzVmFs
dWUoKTsKICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAg
IHJldHVybiB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKLSAgICBTdHJpbmcgcyA9IHRo
aXNWYWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgcyA9IHRoaXNWYWx1ZS50b1N0
cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwg
ZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+YXJndW1lbnQoMCk7
CkBAIC0xODQwLDcgKzE4NDAsNyBAQCBzdGF0aWMgaW5saW5lIEpTVmFsdWUgdHJpbVN0cmluZyhF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUgdGhpc1ZhbHVlLCBpbnQgdHJpbUtpbgogCiAgICAgaWYg
KCFjaGVja09iamVjdENvZXJjaWJsZSh0aGlzVmFsdWUpKQogICAgICAgICByZXR1cm4gdGhyb3dU
eXBlRXJyb3IoZXhlYywgc2NvcGUpOwotICAgIFN0cmluZyBzdHIgPSB0aGlzVmFsdWUudG9XVEZT
dHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHN0ciA9IHRoaXNWYWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgeyB9KTsKIAogICAg
IHVuc2lnbmVkIGxlZnQgPSAwOwpAQCAtMTg5OCw3ICsxODk4LDcgQEAgRW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBzdHJpbmdQcm90b0Z1bmNTdGFydHNXaXRoKEV4ZWNTdGF0ZSogZXhlYykK
ICAgICBpZiAoIWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVy
biB0aHJvd1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIFN0cmluZyBzdHJpbmdUb1Nl
YXJjaEluID0gdGhpc1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzdHJpbmdU
b1NlYXJjaEluID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpTVmFs
dWUgYTAgPSBleGVjLT5hcmd1bWVudCgwKTsKQEAgLTE5MDcsNyArMTkwNyw3IEBAIEVuY29kZWRK
U1ZhbHVlIEpTQ19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jU3RhcnRzV2l0aChFeGVjU3RhdGUq
IGV4ZWMpCiAgICAgaWYgKGlzUmVndWxhckV4cHJlc3Npb24pCiAgICAgICAgIHJldHVybiB0aHJv
d1ZNVHlwZUVycm9yKGV4ZWMsIHNjb3BlLCAiQXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS5z
dGFydHNXaXRoIGNhbm5vdCBiZSBhIFJlZ0V4cCIpOwogCi0gICAgU3RyaW5nIHNlYXJjaFN0cmlu
ZyA9IGEwLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzZWFyY2hTdHJpbmcgPSBhMC50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIHBvc2l0aW9uQXJnID0gZXhlYy0+
YXJndW1lbnQoMSk7CkBAIC0xOTMyLDcgKzE5MzIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9T
VF9DQUxMIHN0cmluZ1Byb3RvRnVuY0VuZHNXaXRoKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAo
IWNoZWNrT2JqZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKGV4ZWMsIHNjb3BlKTsKIAotICAgIFN0cmluZyBzdHJpbmdUb1NlYXJjaEluID0g
dGhpc1ZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzdHJpbmdUb1NlYXJjaElu
ID0gdGhpc1ZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgYTAgPSBl
eGVjLT5hcmd1bWVudCgwKTsKQEAgLTE5NDEsNyArMTk0MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpT
Q19IT1NUX0NBTEwgc3RyaW5nUHJvdG9GdW5jRW5kc1dpdGgoRXhlY1N0YXRlKiBleGVjKQogICAg
IGlmIChpc1JlZ3VsYXJFeHByZXNzaW9uKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJv
cihleGVjLCBzY29wZSwgIkFyZ3VtZW50IHRvIFN0cmluZy5wcm90b3R5cGUuZW5kc1dpdGggY2Fu
bm90IGJlIGEgUmVnRXhwIik7CiAKLSAgICBTdHJpbmcgc2VhcmNoU3RyaW5nID0gYTAudG9XVEZT
dHJpbmcoZXhlYyk7CisgICAgU3RyaW5nIHNlYXJjaFN0cmluZyA9IGEwLnRvU3RyaW5nKGV4ZWMp
LT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNW
YWx1ZSgpKTsKIAogICAgIHVuc2lnbmVkIGxlbmd0aCA9IHN0cmluZ1RvU2VhcmNoSW4ubGVuZ3Ro
KCk7CkBAIC0xOTgyLDcgKzE5ODIsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0
cmluZ1Byb3RvRnVuY0luY2x1ZGVzKEV4ZWNTdGF0ZSogZXhlYykKICAgICBpZiAoIWNoZWNrT2Jq
ZWN0Q29lcmNpYmxlKHRoaXNWYWx1ZSkpCiAgICAgICAgIHJldHVybiB0aHJvd1ZNVHlwZUVycm9y
KGV4ZWMsIHNjb3BlKTsKIAotICAgIFN0cmluZyBzdHJpbmdUb1NlYXJjaEluID0gdGhpc1ZhbHVl
LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzdHJpbmdUb1NlYXJjaEluID0gdGhpc1Zh
bHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsKIAogICAgIEpTVmFsdWUgYTAgPSBleGVjLT5hcmd1
bWVudCgwKTsKQEAgLTE5OTEsNyArMTk5MSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NB
TEwgc3RyaW5nUHJvdG9GdW5jSW5jbHVkZXMoRXhlY1N0YXRlKiBleGVjKQogICAgIGlmIChpc1Jl
Z3VsYXJFeHByZXNzaW9uKQogICAgICAgICByZXR1cm4gdGhyb3dWTVR5cGVFcnJvcihleGVjLCBz
Y29wZSwgIkFyZ3VtZW50IHRvIFN0cmluZy5wcm90b3R5cGUuaW5jbHVkZXMgY2Fubm90IGJlIGEg
UmVnRXhwIik7CiAKLSAgICBTdHJpbmcgc2VhcmNoU3RyaW5nID0gYTAudG9XVEZTdHJpbmcoZXhl
Yyk7CisgICAgU3RyaW5nIHNlYXJjaFN0cmluZyA9IGEwLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
IAogICAgIEpTVmFsdWUgcG9zaXRpb25BcmcgPSBleGVjLT5hcmd1bWVudCgxKTsKQEAgLTIwMDgs
MTEgKzIwMDgsMTEgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBidWlsdGluU3RyaW5n
SW5jbHVkZXNJbnRlcm5hbChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgSlNWYWx1ZSB0aGlzVmFsdWUg
PSBleGVjLT50aGlzVmFsdWUoKTsKICAgICBBU1NFUlQoY2hlY2tPYmplY3RDb2VyY2libGUodGhp
c1ZhbHVlKSk7CiAKLSAgICBTdHJpbmcgc3RyaW5nVG9TZWFyY2hJbiA9IHRoaXNWYWx1ZS50b1dU
RlN0cmluZyhleGVjKTsKKyAgICBTdHJpbmcgc3RyaW5nVG9TZWFyY2hJbiA9IHRoaXNWYWx1ZS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAKICAgICBKU1ZhbHVlIGEwID0gZXhlYy0+dW5jaGVja2Vk
QXJndW1lbnQoMCk7Ci0gICAgU3RyaW5nIHNlYXJjaFN0cmluZyA9IGEwLnRvV1RGU3RyaW5nKGV4
ZWMpOworICAgIFN0cmluZyBzZWFyY2hTdHJpbmcgPSBhMC50b1N0cmluZyhleGVjKS0+dmFsdWUo
ZXhlYyk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7
CiAKICAgICBKU1ZhbHVlIHBvc2l0aW9uQXJnID0gZXhlYy0+YXJndW1lbnQoMSk7CkBAIC0yMDc3
LDcgKzIwNzcsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIHN0cmluZ1Byb3RvRnVu
Y05vcm1hbGl6ZShFeGVjU3RhdGUqIGV4ZWMpCiAgICAgVU5vcm1hbGl6YXRpb25Nb2RlIGZvcm0g
PSBVTk9STV9ORkM7CiAgICAgLy8gVmVyaWZ5IHRoYXQgdGhlIGFyZ3VtZW50IGlzIHByb3ZpZGVk
IGFuZCBpcyBub3QgdW5kZWZpbmVkLgogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNVbmRl
ZmluZWQoKSkgewotICAgICAgICBTdHJpbmcgZm9ybVN0cmluZyA9IGV4ZWMtPnVuY2hlY2tlZEFy
Z3VtZW50KDApLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgICAgICBTdHJpbmcgZm9ybVN0cmluZyA9
IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAK
ICAgICAgICAgaWYgKGZvcm1TdHJpbmcgPT0gIk5GQyIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvdG9vbHMvSlNEb2xsYXJWTVByb3RvdHlwZS5jcHAKaW5kZXggYjgzNjRiODM4ZDll
Y2IyNThhMjEyNTFmMjQwNGNlMTdhODNiYmFlNS4uMjVhNWJkMDUxYzg2YmIzMzhmM2E4OGI2NDRh
OTYzODE4YzY0YjQzOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3Rvb2xzL0pT
RG9sbGFyVk1Qcm90b3R5cGUuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS90b29scy9K
U0RvbGxhclZNUHJvdG90eXBlLmNwcApAQCAtMzM3LDcgKzMzNyw3IEBAIHN0YXRpYyBFbmNvZGVk
SlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uUHJpbnQoRXhlY1N0YXRlKiBleGVjKQogewog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGV4ZWMtPnZtKCkpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBleGVjLT5hcmd1bWVudENvdW50KCk7ICsraSkgewotICAg
ICAgICBTdHJpbmcgYXJnU3RyID0gZXhlYy0+dW5jaGVja2VkQXJndW1lbnQoaSkudG9XVEZTdHJp
bmcoZXhlYyk7CisgICAgICAgIFN0cmluZyBhcmdTdHIgPSBleGVjLT51bmNoZWNrZWRBcmd1bWVu
dChpKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENF
UFRJT04oc2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwogICAgICAgICBkYXRhTG9nKGFyZ1N0cik7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJB
c3NlbWJseUNvbXBpbGVFcnJvci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNX
ZWJBc3NlbWJseUNvbXBpbGVFcnJvci5oCmluZGV4IDZmMDVmM2ViNjMwNzgzNjQyZWYzYzM5NGY4
MWE3NjcwMmM4OWU0MDEuLmMxNGEzNzkwNTIwN2Q5MWNlMmEzNzA2MDMxYzA5YTdlNzk1NjMzZWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlD
b21waWxlRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFz
c2VtYmx5Q29tcGlsZUVycm9yLmgKQEAgLTM4LDcgKzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBKU1dlYkFzc2VtYmx5Q29tcGlsZUVycm9yKiBjcmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJl
KiwgY29uc3QgU3RyaW5nJiwgYm9vbCk7CiAgICAgc3RhdGljIEpTV2ViQXNzZW1ibHlDb21waWxl
RXJyb3IqIGNyZWF0ZShFeGVjU3RhdGUqIGV4ZWMsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBKU1Zh
bHVlIG1lc3NhZ2UsIGJvb2wgdXNlQ3VycmVudEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0cmluZygp
IDogbWVzc2FnZS50b1dURlN0cmluZyhleGVjKSwgdXNlQ3VycmVudEZyYW1lKTsKKyAgICAgICAg
cmV0dXJuIGNyZWF0ZShleGVjLCBzdHJ1Y3R1cmUsIG1lc3NhZ2UuaXNVbmRlZmluZWQoKSA/IFN0
cmluZygpIDogbWVzc2FnZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyksIHVzZUN1cnJlbnRG
cmFtZSk7CiAgICAgfQogCiAgICAgREVDTEFSRV9JTkZPOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3dhc20vanMvSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvci5oCmluZGV4
IDNjNzg3OWU3YTQ1Yjc2ZjE0ZWVlNmQ0OTIzNDExOWJjMGJkNGFkNzkuLjkzNTkzMGEyNjZjZWRl
MTliZjIxYTQ0MjU3ZGRmMjcyYzE0M2EwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL2pzL0pTV2ViQXNzZW1ibHlSdW50aW1lRXJyb3IuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd2FzbS9qcy9KU1dlYkFzc2VtYmx5UnVudGltZUVycm9yLmgKQEAgLTM4LDcg
KzM4LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBKU1dlYkFzc2VtYmx5UnVudGltZUVycm9yKiBj
cmVhdGUoRXhlY1N0YXRlKiwgU3RydWN0dXJlKiwgY29uc3QgU3RyaW5nJiwgYm9vbCB1c2VDdXJy
ZW50RnJhbWUgPSB0cnVlKTsKICAgICBzdGF0aWMgSlNXZWJBc3NlbWJseVJ1bnRpbWVFcnJvciog
Y3JlYXRlKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTVmFsdWUgbWVz
c2FnZSwgYm9vbCB1c2VDdXJyZW50RnJhbWUpCiAgICAgewotICAgICAgICByZXR1cm4gY3JlYXRl
KGV4ZWMsIHN0cnVjdHVyZSwgbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkgOiBtZXNz
YWdlLnRvV1RGU3RyaW5nKGV4ZWMpLCB1c2VDdXJyZW50RnJhbWUpOworICAgICAgICByZXR1cm4g
Y3JlYXRlKGV4ZWMsIHN0cnVjdHVyZSwgbWVzc2FnZS5pc1VuZGVmaW5lZCgpID8gU3RyaW5nKCkg
OiBtZXNzYWdlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSwgdXNlQ3VycmVudEZyYW1lKTsK
ICAgICB9CiAKICAgICBERUNMQVJFX0lORk87CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCmluZGV4IDBhMDYxYTI3ZWFlZjIzNzdiZjky
OTBiMmM1MGZlNjkzN2Y3MzhhNjQuLjEyZjU3YmFiN2Y2M2RlYzA0YzcyZjE1YmJjYzlkZTdmOGU3
Zjg3YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0lEQkJpbmRpbmdV
dGlsaXRpZXMuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIFJlZlB0cjxJREJLZXk+IGNy
ZWF0ZUlEQktleUZyb21WYWx1ZShFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIFZlY3QK
ICAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlTnVtYmVyKHZhbHVlLnRvTnVtYmVyKCZleGVj
KSk7CiAKICAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6
Y3JlYXRlU3RyaW5nKHZhbHVlLnRvV1RGU3RyaW5nKCZleGVjKSk7CisgICAgICAgIHJldHVybiBJ
REJLZXk6OmNyZWF0ZVN0cmluZyh2YWx1ZS50b1N0cmluZygmZXhlYyktPnZhbHVlKCZleGVjKSk7
CiAKICAgICBpZiAodmFsdWUuaW5oZXJpdHMoRGF0ZUluc3RhbmNlOjppbmZvKCkpICYmICFzdGQ6
OmlzbmFuKHZhbHVlVG9EYXRlKCZleGVjLCB2YWx1ZSkpKQogICAgICAgICByZXR1cm4gSURCS2V5
OjpjcmVhdGVEYXRlKHZhbHVlVG9EYXRlKCZleGVjLCB2YWx1ZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9UcmFja0N1c3RvbS5jcHAKaW5kZXggOGJlN2Q4MGVk
NWEzNGVhMWEzMGQ3N2M4YTFiYzg4YmJmNjg3ODEzMC4uYmYwMDRkMDAyYjM5Yjg1MjBiNmFlOTIx
NWNkYzcwYTQ2MjIzYzc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNBdWRpb1RyYWNrQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0F1ZGlvVHJhY2tDdXN0b20uY3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgSlNBdWRpb1RyYWNr
OjpzZXRLaW5kKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiAgICAgVk0mIHZtID0g
c3RhdGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
LSAgICBhdXRvJiBzdHJpbmcgPSB2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOworICAgIGF1dG8m
IHN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICB3cmFwcGVkKCkuc2V0S2luZChz
dHJpbmcpOwogI2Vsc2UKQEAgLTYxLDcgKzYxLDcgQEAgdm9pZCBKU0F1ZGlvVHJhY2s6OnNldExh
bmd1YWdlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiAgICAgVk0mIHZtID0gc3Rh
dGUudm0oKTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAg
ICBhdXRvJiBzdHJpbmcgPSB2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOworICAgIGF1dG8mIHN0
cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICB3cmFwcGVkKCkuc2V0TGFuZ3VhZ2Uo
c3RyaW5nKTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcAppbmRleCAyMzM4MGI2YjJlOWY1MGM2
YmY3ZDZmYTc0YjVmODk2Nzc1ODE5N2RkLi43ZjZmOTY4YmUyMzk3YjEyZTE1NTc4YzM4Njk4ZjNi
NWIyYThmMzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgYm9vbCBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmdldEFsZ29yaXRobUlkZW50aWZpZXIoRXhlY1N0
YXRlKiBleGVjLCBKU1ZhbHUKICAgICBTdHJpbmcgYWxnb3JpdGhtTmFtZTsKIAogICAgIGlmICh2
YWx1ZS5pc1N0cmluZygpKQotICAgICAgICBhbGdvcml0aG1OYW1lID0gdmFsdWUudG9XVEZTdHJp
bmcoZXhlYyk7CisgICAgICAgIGFsZ29yaXRobU5hbWUgPSB2YWx1ZS50b1N0cmluZyhleGVjKS0+
dmFsdWUoZXhlYyk7CiAgICAgZWxzZSBpZiAodmFsdWUuaXNPYmplY3QoKSkgewogICAgICAgICBp
ZiAodmFsdWUuZ2V0T2JqZWN0KCktPmluaGVyaXRzKFN0cmluZ09iamVjdDo6aW5mbygpKSkKICAg
ICAgICAgICAgIGFsZ29yaXRobU5hbWUgPSBhc1N0cmluZyhhc1N0cmluZ09iamVjdCh2YWx1ZSkt
PmludGVybmFsVmFsdWUoKSktPnZhbHVlKGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCmluZGV4IGM2Y2YwMzFj
ZDViMTA4MDc0ZmJhMDQ5OWM0ODZhODkzNjM5MTQzMmIuLjgwMzg5Nzc5ODkwZDMwNWMwZjY0ZGNh
YTUxYjE5MDAxNzU2OTkyNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbVhQYXRoTlNSZXNvbHZlci5jcHAKQEAgLTEwMCw3ICsxMDAsNyBAQCBTdHJp
bmcgSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXI6Omxvb2t1cE5hbWVzcGFjZVVSSShjb25zdCBTdHJp
bmcmIHByZWZpeCkKICAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGV4ZWMsIGV4Y2VwdGlvbik7CiAg
ICAgZWxzZSB7CiAgICAgICAgIGlmICghcmV0dmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkpCi0gICAg
ICAgICAgICByZXN1bHQgPSByZXR2YWwudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgICAgICAgICBy
ZXN1bHQgPSByZXR2YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOwogICAgIH0KIAogICAg
IHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAKaW5kZXggNTA4YjIzZWU1N2U4MzU4NjdhNGFlNTg4OWU4MWNiZjUyZTgy
NWRkZi4uOTVmYWI1YTZmMzNjNTBhNzQ4NjY2N2RmYWZiZjExOTcyMjZkN2VjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMzg5
LDcgKzM4OSw3IEBAIHZvaWQgSlNET01XaW5kb3c6OnNldExvY2F0aW9uKEV4ZWNTdGF0ZSYgc3Rh
dGUsIEpTVmFsdWUgdmFsdWUpCiAgICAgfQogI2VuZGlmCiAKLSAgICBTdHJpbmcgbG9jYXRpb25T
dHJpbmcgPSB2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOworICAgIFN0cmluZyBsb2NhdGlvblN0
cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKIAogICAgIGlmIChMb2NhdGlvbiogbG9jYXRp
b24gPSB3cmFwcGVkKCkubG9jYXRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRGV2aWNlTW90aW9uRXZlbnRDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAKaW5kZXggYmE4ZmFmMzBl
NDNhMzE3OTVlNDEyNDIwZDJjOTliODc1ODc1MDNhNS4uOGVlYTk1ZGRkNzFiOGZmMDdkNDk5NTg0
ZDNmZGUzOTMxMTJmNWE1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNEZXZpY2VNb3Rpb25FdmVudEN1c3RvbS5jcHAKQEAgLTE3MCw3ICsxNzAsNyBAQCBK
U1ZhbHVlIEpTRGV2aWNlTW90aW9uRXZlbnQ6OmluaXREZXZpY2VNb3Rpb25FdmVudChFeGVjU3Rh
dGUmIHN0YXRlKQogICAgIFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfVEhST1dfU0NPUEUodm0pOwogCi0gICAgY29uc3QgU3RyaW5nIHR5cGUgPSBzdGF0ZS5h
cmd1bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOworICAgIGNvbnN0IFN0cmluZyB0eXBlID0g
c3RhdGUuYXJndW1lbnQoMCkudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKICAgICBi
b29sIGJ1YmJsZXMgPSBzdGF0ZS5hcmd1bWVudCgxKS50b0Jvb2xlYW4oJnN0YXRlKTsKICAgICBi
b29sIGNhbmNlbGFibGUgPSBzdGF0ZS5hcmd1bWVudCgyKS50b0Jvb2xlYW4oJnN0YXRlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGV2aWNlT3Jp
ZW50YXRpb25FdmVudEN1c3RvbS5jcHAKaW5kZXggNzdlMzQxNTM3OGRiMTZiMGQ3OTljNzBkM2Fi
M2I1ZWM5NzIwOTMzZC4uOWQ5NTRmNTIwYTllY2I3YjY4OWI5NDI0NzBkYjNhMTUyZGFjZmZlOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXZpY2VPcmllbnRhdGlv
bkV2ZW50Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rldmlj
ZU9yaWVudGF0aW9uRXZlbnRDdXN0b20uY3BwCkBAIC05Myw3ICs5Myw3IEBAIEpTVmFsdWUgSlNE
ZXZpY2VPcmllbnRhdGlvbkV2ZW50OjphYnNvbHV0ZShFeGVjU3RhdGUmKSBjb25zdAogCiBKU1Zh
bHVlIEpTRGV2aWNlT3JpZW50YXRpb25FdmVudDo6aW5pdERldmljZU9yaWVudGF0aW9uRXZlbnQo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKLSAgICBjb25zdCBTdHJpbmcgdHlwZSA9IHN0YXRlLmFyZ3Vt
ZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgY29uc3QgU3RyaW5nIHR5cGUgPSBzdGF0
ZS5hcmd1bWVudCgwKS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOwogICAgIGJvb2wg
YnViYmxlcyA9IHN0YXRlLmFyZ3VtZW50KDEpLnRvQm9vbGVhbigmc3RhdGUpOwogICAgIGJvb2wg
Y2FuY2VsYWJsZSA9IHN0YXRlLmFyZ3VtZW50KDIpLnRvQm9vbGVhbigmc3RhdGUpOwogICAgIC8v
IElmIGFscGhhLCBiZXRhIG9yIGdhbW1hIGFyZSBudWxsIG9yIHVuZGVmaW5lZCwgbWFyayB0aGVt
IGFzIG5vdCBwcm92aWRlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRXZlbnRMaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50
TGlzdGVuZXIuY3BwCmluZGV4IDc5MTU2OTI3YWUzMTM1NDc4MDhjMmY5YTVmZTQ3NzAzM2ViYzQ1
YTUuLjZhMTQ5MTQ4Y2YyY2RkZTU1MmI3YjBkNGQ4OTgzZTE2YzQ1NDVlZTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudExpc3RlbmVyLmNwcApAQCAtMTYwLDcgKzE2
MCw3IEBAIHZvaWQgSlNFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0CiAgICAgICAgICAgICByZXBvcnRFeGNlcHRp
b24oZXhlYywgZXhjZXB0aW9uKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIGlmICgh
cmV0dmFsLmlzVW5kZWZpbmVkT3JOdWxsKCkgJiYgaXM8QmVmb3JlVW5sb2FkRXZlbnQ+KCpldmVu
dCkpCi0gICAgICAgICAgICAgICAgZG93bmNhc3Q8QmVmb3JlVW5sb2FkRXZlbnQ+KCpldmVudCku
c2V0UmV0dXJuVmFsdWUocmV0dmFsLnRvV1RGU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAgICAgICAg
ICBkb3duY2FzdDxCZWZvcmVVbmxvYWRFdmVudD4oKmV2ZW50KS5zZXRSZXR1cm5WYWx1ZShyZXR2
YWwudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpKTsKICAgICAgICAgICAgIGlmIChtX2lzQXR0
cmlidXRlKSB7CiAgICAgICAgICAgICAgICAgaWYgKHJldHZhbC5pc0ZhbHNlKCkpCiAgICAgICAg
ICAgICAgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbkN1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRl
eCBkODI4NmE1MmFkMTkxYmM2ZjFmMmZlMjUwNTc3YTEwYmNiNGI3Yjc1Li5lMzkzMmM5MWQ3Y2Yx
NjUxYmI1MmU1OWRiYzJiZGUyOGVjNDBhYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uQ3VzdG9tLmNwcApAQCAtNjcsNyAr
NjcsNyBAQCBzdGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTEFsbENv
bGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjKQogCiAgICAgaWYgKGV4ZWMtPmFyZ3VtZW50Q291bnQo
KSA9PSAxKSB7CiAgICAgICAgIC8vIFN1cHBvcnQgZm9yIGRvY3VtZW50LmFsbCg8aW5kZXg+KSBl
dGMuCi0gICAgICAgIFN0cmluZyBzdHJpbmcgPSBleGVjLT5hcmd1bWVudCgwKS50b1dURlN0cmlu
ZyhleGVjKTsKKyAgICAgICAgU3RyaW5nIHN0cmluZyA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3Ry
aW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgICAgIGlmIChzdGQ6Om9wdGlvbmFsPHVpbnQzMl90
PiBpbmRleCA9IHBhcnNlSW5kZXgoKnN0cmluZy5pbXBsKCkpKQogICAgICAgICAgICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZSh0b0pTKGV4ZWMsIGpzQ29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCks
IGNvbGxlY3Rpb24uaXRlbShpbmRleC52YWx1ZSgpKSkpOwpAQCAtNzcsNyArNzcsNyBAQCBzdGF0
aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsSFRNTEFsbENvbGxlY3Rpb24oRXhl
Y1N0YXRlKiBleGVjKQogICAgIH0KIAogICAgIC8vIFRoZSBzZWNvbmQgYXJnLCBpZiBzZXQsIGlz
IHRoZSBpbmRleCBvZiB0aGUgaXRlbSB3ZSB3YW50Ci0gICAgU3RyaW5nIHN0cmluZyA9IGV4ZWMt
PmFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKGV4ZWMpOworICAgIFN0cmluZyBzdHJpbmcgPSBleGVj
LT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTihzY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7CiAgICAgaWYgKHN0ZDo6b3B0aW9u
YWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleCgqZXhlYy0+YXJndW1lbnQoMSkudG9XVEZT
dHJpbmcoZXhlYykuaW1wbCgpKSkgewogICAgICAgICBpZiAoYXV0byogaXRlbSA9IGNvbGxlY3Rp
b24ubmFtZWRJdGVtV2l0aEluZGV4KHN0cmluZywgaW5kZXgudmFsdWUoKSkpCkBAIC0xMTksNyAr
MTE5LDcgQEAgSlNWYWx1ZSBKU0hUTUxBbGxDb2xsZWN0aW9uOjppdGVtKEV4ZWNTdGF0ZSYgc3Rh
dGUpCiAKIEpTVmFsdWUgSlNIVE1MQWxsQ29sbGVjdGlvbjo6bmFtZWRJdGVtKEV4ZWNTdGF0ZSYg
c3RhdGUpCiB7Ci0gICAgSlNWYWx1ZSB2YWx1ZSA9IG5hbWVkSXRlbXMoc3RhdGUsIHRoaXMsIElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKS50b1dURlN0cmlu
Zygmc3RhdGUpKSk7CisgICAgSlNWYWx1ZSB2YWx1ZSA9IG5hbWVkSXRlbXMoc3RhdGUsIHRoaXMs
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnN0YXRlLCBzdGF0ZS5hcmd1bWVudCgwKS50b1N0cmlu
Zygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpKSk7CiAgICAgcmV0dXJuIHZhbHVlLmlzVW5kZWZpbmVk
KCkgPyBqc051bGwoKSA6IHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxGb3JtQ29udHJvbHNDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20u
Y3BwCmluZGV4IDU4ZDliNjc2YjJjMWQ3NTYyMzdiZWU0ZjBmZGRkOWM3NzkxMmEzZmIuLjk0MWM2
OTI3MzlhZDY1MjMyNDYzNzhlYjA5ZThhYjg4OGY5MmM1OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1Db250cm9sc0NvbGxlY3Rpb25DdXN0b20uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1Db250cm9sc0NvbGxl
Y3Rpb25DdXN0b20uY3BwCkBAIC02Miw3ICs2Miw3IEBAIEpTVmFsdWUgSlNIVE1MRm9ybUNvbnRy
b2xzQ29sbGVjdGlvbjo6bmFtZWRJdGVtKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgaWYgKFVOTElL
RUxZKHN0YXRlLmFyZ3VtZW50Q291bnQoKSA8IDEpKQogICAgICAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24oJnN0YXRlLCBzY29wZSwgY3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3IoJnN0YXRl
KSk7CiAKLSAgICBKU1ZhbHVlIHZhbHVlID0gbmFtZWRJdGVtcyhzdGF0ZSwgdGhpcywgSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RG
U3RyaW5nKCZzdGF0ZSkpKTsKKyAgICBKU1ZhbHVlIHZhbHVlID0gbmFtZWRJdGVtcyhzdGF0ZSwg
dGhpcywgSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmc3RhdGUsIHN0YXRlLnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSkpKTsKICAgICByZXR1cm4gdmFs
dWUuaXNVbmRlZmluZWQoKSA/IGpzTnVsbCgpIDogdmFsdWU7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwCmlu
ZGV4IDFlMmYzM2ZmM2NmYjY1YzgzZjQ5MWMyNTVmMDlmNjEzOGI5ZTI0YTEuLmVlOTAzMGZhMDQ4
OGJlOWJmNDI3YzI5YTg0ZWIzZjM5YmZkNWRiYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcApAQCAtMTA0LDcg
KzEwNCw3IEBAIHZvaWQgSlNIVE1MSW5wdXRFbGVtZW50OjpzZXRTZWxlY3Rpb25EaXJlY3Rpb24o
RXhlY1N0YXRlJiBzdGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlucHV0LnNldFNlbGVjdGlvbkRpcmVjdGlvbih2YWx1ZS50b1dURlN0cmluZygmc3Rh
dGUpKTsKKyAgICBpbnB1dC5zZXRTZWxlY3Rpb25EaXJlY3Rpb24odmFsdWUudG9TdHJpbmcoJnN0
YXRlKS0+dmFsdWUoJnN0YXRlKSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MSW5wdXRFbGVtZW50Ojpz
ZXRTZWxlY3Rpb25SYW5nZShFeGVjU3RhdGUmIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3Bw
CmluZGV4IDQyYjQzMmZkNjM2NDRmMDRmZjYwMGYyZTJkNTRiYTE1ZjdmYmM4MGYuLmY0MDY0ZTY0
NzU1OGVmZWRjYjYzZDljMTBjMTk4MTQxMWRhZjZmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5j
cHAKQEAgLTYyLDcgKzYyLDcgQEAgc3RhdGljIHZvaWQgcG9wdWxhdGVDb250ZXh0TWVudUl0ZW1z
KEV4ZWNTdGF0ZSogZXhlYywgSlNBcnJheSogYXJyYXksIENvbnRleHRNZW4KICAgICAgICAgaWYg
KCF0eXBlLmlzU3RyaW5nKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBTdHJp
bmcgdHlwZVN0cmluZyA9IHR5cGUudG9XVEZTdHJpbmcoZXhlYyk7CisgICAgICAgIFN0cmluZyB0
eXBlU3RyaW5nID0gdHlwZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIGlm
ICh0eXBlU3RyaW5nID09ICJzZXBhcmF0b3IiKSB7CiAgICAgICAgICAgICBDb250ZXh0TWVudUl0
ZW0gaXRlbShTZXBhcmF0b3JUeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgU3RyaW5n
KCkpOwogICAgICAgICAgICAgbWVudS5hcHBlbmRJdGVtKGl0ZW0pOwpAQCAtNzAsMTEgKzcwLDEx
IEBAIHN0YXRpYyB2b2lkIHBvcHVsYXRlQ29udGV4dE1lbnVJdGVtcyhFeGVjU3RhdGUqIGV4ZWMs
IEpTQXJyYXkqIGFycmF5LCBDb250ZXh0TWVuCiAgICAgICAgICAgICBDb250ZXh0TWVudSBzdWJN
ZW51OwogICAgICAgICAgICAgSlNBcnJheSogc3ViSXRlbXNBcnJheSA9IGFzQXJyYXkoc3ViSXRl
bXMpOwogICAgICAgICAgICAgcG9wdWxhdGVDb250ZXh0TWVudUl0ZW1zKGV4ZWMsIHN1Ykl0ZW1z
QXJyYXksIHN1Yk1lbnUpOwotICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVtIGl0ZW0oU3VibWVu
dVR5cGUsIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uLCBsYWJlbC50b1dURlN0cmluZyhleGVj
KSwgJnN1Yk1lbnUpOworICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVtIGl0ZW0oU3VibWVudVR5
cGUsIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uLCBsYWJlbC50b1N0cmluZyhleGVjKS0+dmFs
dWUoZXhlYyksICZzdWJNZW51KTsKICAgICAgICAgICAgIG1lbnUuYXBwZW5kSXRlbShpdGVtKTsK
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIENvbnRleHRNZW51QWN0aW9uIHR5cGVkSWQg
PSBzdGF0aWNfY2FzdDxDb250ZXh0TWVudUFjdGlvbj4oQ29udGV4dE1lbnVJdGVtQmFzZUN1c3Rv
bVRhZyArIGlkLnRvSW50MzIoZXhlYykpOwotICAgICAgICAgICAgQ29udGV4dE1lbnVJdGVtIG1l
bnVJdGVtKCh0eXBlU3RyaW5nID09ICJjaGVja2JveCIgPyBDaGVja2FibGVBY3Rpb25UeXBlIDog
QWN0aW9uVHlwZSksIHR5cGVkSWQsIGxhYmVsLnRvV1RGU3RyaW5nKGV4ZWMpKTsKKyAgICAgICAg
ICAgIENvbnRleHRNZW51SXRlbSBtZW51SXRlbSgodHlwZVN0cmluZyA9PSAiY2hlY2tib3giID8g
Q2hlY2thYmxlQWN0aW9uVHlwZSA6IEFjdGlvblR5cGUpLCB0eXBlZElkLCBsYWJlbC50b1N0cmlu
ZyhleGVjKS0+dmFsdWUoZXhlYykpOwogICAgICAgICAgICAgaWYgKCFlbmFibGVkLmlzVW5kZWZp
bmVkKCkpCiAgICAgICAgICAgICAgICAgbWVudUl0ZW0uc2V0RW5hYmxlZChlbmFibGVkLnRvQm9v
bGVhbihleGVjKSk7CiAgICAgICAgICAgICBpZiAoIWNoZWNrZWQuaXNVbmRlZmluZWQoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUV2ZW50Q3VzdG9tLmNw
cAppbmRleCBmOGI3ZTAxNTMxZjYzZWU1YTA5MjdkNjBlNDk5ODc4MmY3YTdlYTg2Li4yNzE0Mjk3
M2YzNjViOWM4NWY2NDdhZjBmODg4YTcyOGFhODk2ZjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VFdmVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlRXZlbnRDdXN0b20uY3BwCkBAIC0xMDgsNyArMTA4
LDcgQEAgc3RhdGljIEpTQzo6SlNWYWx1ZSBoYW5kbGVJbml0TWVzc2FnZUV2ZW50KEpTTWVzc2Fn
ZUV2ZW50KiBqc0V2ZW50LCBKU0M6OkV4ZWNTdGEKICAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwog
ICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAotICAgIGNvbnN0IFN0
cmluZyYgdHlwZUFyZyA9IHN0YXRlLmFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7Cisg
ICAgY29uc3QgU3RyaW5nJiB0eXBlQXJnID0gc3RhdGUuYXJndW1lbnQoMCkudG9TdHJpbmcoJnN0
YXRlKS0+dmFsdWUoJnN0YXRlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBKU1Zh
bHVlKCkpOwogCiAgICAgYm9vbCBjYW5CdWJibGVBcmcgPSBzdGF0ZS5hcmd1bWVudCgxKS50b0Jv
b2xlYW4oJnN0YXRlKTsKQEAgLTEyMiw3ICsxMjIsNyBAQCBzdGF0aWMgSlNDOjpKU1ZhbHVlIGhh
bmRsZUluaXRNZXNzYWdlRXZlbnQoSlNNZXNzYWdlRXZlbnQqIGpzRXZlbnQsIEpTQzo6RXhlY1N0
YQogICAgIGNvbnN0IFN0cmluZyBvcmlnaW5BcmcgPSBjb252ZXJ0PElETFVTVlN0cmluZz4oc3Rh
dGUsIHN0YXRlLmFyZ3VtZW50KDQpKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCBK
U1ZhbHVlKCkpOwogCi0gICAgY29uc3QgU3RyaW5nIGxhc3RFdmVudElkQXJnID0gc3RhdGUuYXJn
dW1lbnQoNSkudG9XVEZTdHJpbmcoJnN0YXRlKTsKKyAgICBjb25zdCBTdHJpbmcgbGFzdEV2ZW50
SWRBcmcgPSBzdGF0ZS5hcmd1bWVudCg1KS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUp
OwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKICAgICBhdXRv
IHNvdXJjZUFyZyA9IGNvbnZlcnQ8SURMTnVsbGFibGU8SURMVW5pb248SURMSW50ZXJmYWNlPERP
TVdpbmRvdz4sIElETEludGVyZmFjZTxNZXNzYWdlUG9ydD4+Pj4oc3RhdGUsIHN0YXRlLmFyZ3Vt
ZW50KDYpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTU1FMVHJh
bnNhY3Rpb25DdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxUcmFu
c2FjdGlvbkN1c3RvbS5jcHAKaW5kZXggNWI3MTNhOTBjZjBkODYzYThhNTA2YmQyOTQ3YzZmNzc3
ZTA1NzcwYS4uOTE3ZDYzNzM4NzA2YzBiMjQyZjRkODFjYjcyY2NjMWY3ZjA3MTI5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3RvbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTUUxUcmFuc2FjdGlvbkN1c3Rv
bS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgSlNWYWx1ZSBKU1NRTFRyYW5zYWN0aW9uOjpleGVjdXRl
U3FsKEV4ZWNTdGF0ZSYgc3RhdGUpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAg
IH0KIAotICAgIFN0cmluZyBzcWxTdGF0ZW1lbnQgPSBzdGF0ZS5hcmd1bWVudCgwKS50b1dURlN0
cmluZygmc3RhdGUpOworICAgIFN0cmluZyBzcWxTdGF0ZW1lbnQgPSBzdGF0ZS5hcmd1bWVudCgw
KS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJ
T04oc2NvcGUsIEpTVmFsdWUoKSk7CiAKICAgICAvLyBOb3cgYXNzZW1ibGUgdGhlIGxpc3Qgb2Yg
U1FMIGFyZ3VtZW50cwpAQCAtNzksNyArNzksNyBAQCBKU1ZhbHVlIEpTU1FMVHJhbnNhY3Rpb246
OmV4ZWN1dGVTcWwoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICAgICAgICAgICAgICBzcWxWYWx1ZXMu
YXBwZW5kKHZhbHVlLmFzTnVtYmVyKCkpOwogICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAg
ICAgICAgLy8gQ29udmVydCB0aGUgYXJndW1lbnQgdG8gYSBzdHJpbmcgYW5kIGFwcGVuZCBpdAot
ICAgICAgICAgICAgICAgIHNxbFZhbHVlcy5hcHBlbmQodmFsdWUudG9XVEZTdHJpbmcoJnN0YXRl
KSk7CisgICAgICAgICAgICAgICAgc3FsVmFsdWVzLmFwcGVuZCh2YWx1ZS50b1N0cmluZygmc3Rh
dGUpLT52YWx1ZSgmc3RhdGUpKTsKICAgICAgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9O
KHNjb3BlLCBKU1ZhbHVlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAKaW5kZXggODI4Mzdj
ZDE3MmNkZTUxMTBkYzhiNzkzZTBjMmVjY2Q5MzkxM2U5ZC4uODE1OTRiMjM5NjgwZTUxZTc4ODBl
ZTIzYTRlODJhZWNlODU0MTFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNUZXh0VHJhY2tDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVGV4dFRyYWNrQ3VzdG9tLmNwcApAQCAtNDcsNyArNDcsNyBAQCB2b2lkIEpTVGV4dFRyYWNr
OjpzZXRMYW5ndWFnZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQogICAgIFZNJiB2
bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwogCi0gICAgYXV0byYgc3RyaW5nID0gdmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKTsKKyAgICBh
dXRvJiBzdHJpbmcgPSB2YWx1ZS50b1N0cmluZygmc3RhdGUpLT52YWx1ZSgmc3RhdGUpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgd3JhcHBlZCgpLnNldExh
bmd1YWdlKHN0cmluZyk7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTVmlkZW9UcmFja0N1c3RvbS5jcHAKaW5kZXggZDgyZWM1MGE2ZWUzODNmNDVjMzcwZTVkNGVl
M2EyMGVkZGZmYjM5MC4uN2VkMmFiNzljYzVkMGVlMzBiZWI5NWI5YWNlZmI5N2Q2MWNhNzZmYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9t
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20u
Y3BwCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgSlNWaWRlb1RyYWNrOjpzZXRLaW5kKEV4ZWNTdGF0
ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBhdXRvJiBzdHJpbmcg
PSB2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOworICAgIGF1dG8mIHN0cmluZyA9IHZhbHVlLnRv
U3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKICAgICB3cmFwcGVkKCkuc2V0S2luZChzdHJpbmcpOwogI2Vsc2UKQEAg
LTYxLDcgKzYxLDcgQEAgdm9pZCBKU1ZpZGVvVHJhY2s6OnNldExhbmd1YWdlKEV4ZWNTdGF0ZSYg
c3RhdGUsIEpTVmFsdWUgdmFsdWUpCiAgICAgVk0mIHZtID0gc3RhdGUudm0oKTsKICAgICBhdXRv
IHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKLSAgICBhdXRvJiBzdHJpbmcgPSB2
YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOworICAgIGF1dG8mIHN0cmluZyA9IHZhbHVlLnRvU3Ry
aW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29w
ZSwgdm9pZCgpKTsKICAgICB3cmFwcGVkKCkuc2V0TGFuZ3VhZ2Uoc3RyaW5nKTsKICNlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNyeXB0
b0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFN1YnRsZUNy
eXB0b0N1c3RvbS5jcHAKaW5kZXggMDc0MmMzOGJjM2NhNmUwODUyZjlkODNlYTM3YWMyMTI1N2Jk
MmI2NS4uNTQ0YTk4MjI1ODUxMmJjZGYzYTZjMjc3NmU5NjQ2Y2FhYTBiNzA1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRTdWJ0bGVDcnlwdG9DdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0U3VidGxlQ3J5cHRv
Q3VzdG9tLmNwcApAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgYm9vbCBjcnlwdG9LZXlGb3JtYXRG
cm9tSlNWYWx1ZShFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlLCBDcnlwdG9LZQogICAg
IFZNJiB2bSA9IHN0YXRlLnZtKCk7CiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwogCi0gICAgU3RyaW5nIGtleUZvcm1hdFN0cmluZyA9IHZhbHVlLnRvV1RGU3RyaW5n
KCZzdGF0ZSk7CisgICAgU3RyaW5nIGtleUZvcm1hdFN0cmluZyA9IHZhbHVlLnRvU3RyaW5nKCZz
dGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFs
c2UpOwogICAgIGlmIChrZXlGb3JtYXRTdHJpbmcgPT0gInJhdyIpCiAgICAgICAgIHJlc3VsdCA9
IENyeXB0b0tleUZvcm1hdDo6UmF3OwpAQCAtMTE2LDcgKzExNiw3IEBAIHN0YXRpYyBib29sIGNy
eXB0b0tleVVzYWdlc0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUs
IENyeXB0b0tlCiAgICAgSlNBcnJheSogYXJyYXkgPSBhc0FycmF5KHZhbHVlKTsKICAgICBmb3Ig
KHNpemVfdCBpID0gMDsgaSA8IGFycmF5LT5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgIEpTVmFs
dWUgZWxlbWVudCA9IGFycmF5LT5nZXRJbmRleCgmc3RhdGUsIGkpOwotICAgICAgICBTdHJpbmcg
dXNhZ2VTdHJpbmcgPSBlbGVtZW50LnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgICAgIFN0cmlu
ZyB1c2FnZVN0cmluZyA9IGVsZW1lbnQudG9TdHJpbmcoJnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsK
ICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgICBpZiAo
dXNhZ2VTdHJpbmcgPT0gImVuY3J5cHQiKQogICAgICAgICAgICAgcmVzdWx0IHw9IENyeXB0b0tl
eVVzYWdlRW5jcnlwdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXggMmZkNzJhZjA0ZTU2Y2QyZGUxZjgxYzFkNGI1
NGRjN2Q1ZWFkYTQ5OC4uMmJkMTE1M2M1NWVhYTI5MzI2YjVhZDU1YjY5MWM4MjdjYzQ1N2Q4NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVz
dEN1c3RvbS5jcHAKQEAgLTEyNCw3ICsxMjQsNyBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6
OnNlbmQoRXhlY1N0YXRlJiBzdGF0ZSkKICAgICBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IElm
IHRvU3RyaW5nIHJhaXNlcyBhbiBleGNlcHRpb24sIHNob3VsZCB3ZSBleGl0IGJlZm9yZSBjYWxs
aW5nIHdpbGxTZW5kWE1MSHR0cFJlcXVlc3Q/CiAgICAgICAgIC8vIEZJWE1FOiBJZiB0b1N0cmlu
ZyByYWlzZXMgYW4gZXhjZXB0aW9uLCBzaG91bGQgd2UgZXhpdCBiZWZvcmUgY2FsbGluZyBzZW5k
PwotICAgICAgICByZXN1bHQgPSB3cmFwcGVkKCkuc2VuZCh2YWx1ZS50b1dURlN0cmluZygmc3Rh
dGUpKTsKKyAgICAgICAgcmVzdWx0ID0gd3JhcHBlZCgpLnNlbmQodmFsdWUudG9TdHJpbmcoJnN0
YXRlKS0+dmFsdWUoJnN0YXRlKSk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IHByb2JhYmx5IHVzZSBTaGFkb3dDaGlja2VuIHNvIHRoYXQgd2UgZ2V0IHRoZSByaWdodCBmcmFt
ZSBldmVuIHdoZW4gaXQgZGlkIGEgdGFpbCBjYWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTWFNMVFByb2Nlc3NvckN1c3RvbS5jcHAKaW5kZXggMmE4YTlkZjdiMGM2
MGQzZGFmYjg5NTNkOTA3NjUwZjI3OGNhNGZhZC4uMTUyYjg3MzcwMGI5YTBkYzQ2OGNjMDNmYjA5
ZTFhNDMyNGRjNzY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
U0xUUHJvY2Vzc29yQ3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwCkBAIC01MCw5ICs1MCw5IEBAIEpTVmFsdWUgSlNYU0xU
UHJvY2Vzc29yOjpzZXRQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICBpZiAoc3Rh
dGUuYXJndW1lbnQoMSkuaXNVbmRlZmluZWRPck51bGwoKSB8fCBzdGF0ZS5hcmd1bWVudCgyKS5p
c1VuZGVmaW5lZE9yTnVsbCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsgLy8gVGhy
b3cgZXhjZXB0aW9uPwotICAgIFN0cmluZyBuYW1lc3BhY2VVUkkgPSBzdGF0ZS51bmNoZWNrZWRB
cmd1bWVudCgwKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFN0cmluZyBsb2NhbE5hbWUgPSBz
dGF0ZS51bmNoZWNrZWRBcmd1bWVudCgxKS50b1dURlN0cmluZygmc3RhdGUpOwotICAgIFN0cmlu
ZyB2YWx1ZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDIpLnRvV1RGU3RyaW5nKCZzdGF0ZSk7
CisgICAgU3RyaW5nIG5hbWVzcGFjZVVSSSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRv
U3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CisgICAgU3RyaW5nIGxvY2FsTmFtZSA9IHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7
CisgICAgU3RyaW5nIHZhbHVlID0gc3RhdGUudW5jaGVja2VkQXJndW1lbnQoMikudG9TdHJpbmco
JnN0YXRlKS0+dmFsdWUoJnN0YXRlKTsKICAgICB3cmFwcGVkKCkuc2V0UGFyYW1ldGVyKG5hbWVz
cGFjZVVSSSwgbG9jYWxOYW1lLCB2YWx1ZSk7CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9
CkBAIC02MSw4ICs2MSw4IEBAIEpTVmFsdWUgSlNYU0xUUHJvY2Vzc29yOjpnZXRQYXJhbWV0ZXIo
RXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICBpZiAoc3RhdGUuYXJndW1lbnQoMSkuaXNVbmRlZmlu
ZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgU3RyaW5nIG5h
bWVzcGFjZVVSSSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0
ZSk7Ci0gICAgU3RyaW5nIGxvY2FsTmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRv
V1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgU3RyaW5nIG5hbWVzcGFjZVVSSSA9IHN0YXRlLnVuY2hl
Y2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CisgICAgU3Ry
aW5nIGxvY2FsTmFtZSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvU3RyaW5nKCZzdGF0
ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgU3RyaW5nIHZhbHVlID0gd3JhcHBlZCgpLmdldFBhcmFt
ZXRlcihuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiAgICAgcmV0dXJuIGpzU3RyaW5nT3JVbmRl
ZmluZWQoJnN0YXRlLCB2YWx1ZSk7CiB9CkBAIC03MSw4ICs3MSw4IEBAIEpTVmFsdWUgSlNYU0xU
UHJvY2Vzc29yOjpyZW1vdmVQYXJhbWV0ZXIoRXhlY1N0YXRlJiBzdGF0ZSkKIHsKICAgICBpZiAo
c3RhdGUuYXJndW1lbnQoMSkuaXNVbmRlZmluZWRPck51bGwoKSkKICAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0gICAgU3RyaW5nIG5hbWVzcGFjZVVSSSA9IHN0YXRlLnVuY2hlY2tlZEFy
Z3VtZW50KDApLnRvV1RGU3RyaW5nKCZzdGF0ZSk7Ci0gICAgU3RyaW5nIGxvY2FsTmFtZSA9IHN0
YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDEpLnRvV1RGU3RyaW5nKCZzdGF0ZSk7CisgICAgU3RyaW5n
IG5hbWVzcGFjZVVSSSA9IHN0YXRlLnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKCZzdGF0
ZSktPnZhbHVlKCZzdGF0ZSk7CisgICAgU3RyaW5nIGxvY2FsTmFtZSA9IHN0YXRlLnVuY2hlY2tl
ZEFyZ3VtZW50KDEpLnRvU3RyaW5nKCZzdGF0ZSktPnZhbHVlKCZzdGF0ZSk7CiAgICAgd3JhcHBl
ZCgpLnJlbW92ZVBhcmFtZXRlcihuYW1lc3BhY2VVUkksIGxvY2FsTmFtZSk7CiAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY2hlZHVsZWRBY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NoZWR1
bGVkQWN0aW9uLmNwcAppbmRleCA5MDhmNGRjODhjNzk3NmVlMjBiODc5MjY4OTlhMjA5NjczNzIy
YTZiLi4wZDM2NDAzZTEyYWFhYzQyY2JlYjNlY2JhOWY0N2Y5ODIzZjRkZDU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY2hlZHVsZWRBY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjaGVkdWxlZEFjdGlvbi5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNjaGVkdWxlZEFjdGlvbj4gU2NoZWR1bGVkQWN0aW9uOjpj
cmVhdGUoRXhlY1N0YXRlKiBleGVjLCBET01XcmEKICAgICBpZiAoZ2V0Q2FsbERhdGEodiwgY2Fs
bERhdGEpID09IENhbGxUeXBlOjpOb25lKSB7CiAgICAgICAgIGlmIChwb2xpY3kgJiYgIXBvbGlj
eS0+YWxsb3dFdmFsKGV4ZWMpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAg
IFN0cmluZyBzdHJpbmcgPSB2LnRvV1RGU3RyaW5nKGV4ZWMpOworICAgICAgICBTdHJpbmcgc3Ry
aW5nID0gdi50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIG51bGxwdHIpOwogICAgICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PFNjaGVkdWxlZEFjdGlvbj4obmV3IFNjaGVkdWxlZEFjdGlvbihzdHJpbmcsIGlzb2xhdGVkV29y
bGQpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvYy9jX3V0aWxp
dHkuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2MvY191dGlsaXR5LmNwcAppbmRleCA3YmRh
MDI2YWViNzU4NmQ4MDQ1ZWY1N2FiM2I4OTI2NmJkYTcyMWIyLi5lNGVjM2M2N2M1MGM4YjA5MjNm
OTE1ZGI0MmQ3NGQyNTBhNmVjNTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uv
Yy9jX3V0aWxpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9jL2NfdXRpbGl0eS5j
cHAKQEAgLTc0LDcgKzc0LDcgQEAgdm9pZCBjb252ZXJ0VmFsdWVUb05QVmFyaWFudChFeGVjU3Rh
dGUqIGV4ZWMsIEpTVmFsdWUgdmFsdWUsIE5QVmFyaWFudCogcmVzdWx0KQogICAgIFZPSURfVE9f
TlBWQVJJQU5UKCpyZXN1bHQpOwogCiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKLSAgICAg
ICAgU3RyaW5nIHVzdHJpbmcgPSB2YWx1ZS50b1dURlN0cmluZyhleGVjKTsKKyAgICAgICAgU3Ry
aW5nIHVzdHJpbmcgPSB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CiAgICAgICAg
IENTdHJpbmcgY3N0cmluZyA9IHVzdHJpbmcudXRmOCgpOwogICAgICAgICBOUFN0cmluZyBzdHJp
bmcgPSB7IChjb25zdCBOUFVURjgqKWNzdHJpbmcuZGF0YSgpLCBzdGF0aWNfY2FzdDx1aW50MzJf
dD4oY3N0cmluZy5sZW5ndGgoKSkgfTsKICAgICAgICAgTlBOX0luaXRpYWxpemVWYXJpYW50V2l0
aFN0cmluZ0NvcHkocmVzdWx0LCAmc3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS90ZXN0YmluZGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5k
aW5ncy5jcHAKaW5kZXggMTViZjQ4Y2E2YWJkZWNhMGI0MTcyZWIwZGY4MDAyOGU4NzNiYWUyOC4u
YmFmMjQ3ZDJkYjZjZTdlN2VlMTEzYTIxMGI4N2NjMzNhNzI2YTA0MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3Rlc3RiaW5kaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3Rlc3RiaW5kaW5ncy5jcHAKQEAgLTM5MSw5ICszOTEsNyBAQCBpbnQgbWFpbihpbnQg
YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYg
KGNvbXAuY29tcGxUeXBlKCkgPT0gVGhyb3cpIHsKICAgICAgICAgICAgICAgICAgICAgVmFsdWUg
ZXhWYWwgPSBjb21wLnZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZyBtZXNzYWdl
ID0gZXhWYWwudG9XVEZTdHJpbmcoZXhlYyk7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gY3N0
cmluZyA9IG1zZy5hc2NpaSgpOwotICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBtc2cg
PSBjc3RyaW5nLmRhdGEoKTsKKyAgICAgICAgICAgICAgICAgICAgY2hhciogbXNnID0gZXhWYWwu
dG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpLmFzY2lpKCk7CiAgICAgICAgICAgICAgICAgICAg
IGludCBsaW5lbm8gPSAtMTsKICAgICAgICAgICAgICAgICAgICAgaWYgKGV4VmFsLnR5cGUoKSA9
PSBPYmplY3RUeXBlKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBWYWx1ZSBsaW5lVmFsID0g
T2JqZWN0OjpkeW5hbWljQ2FzdChleFZhbCkuZ2V0KGV4ZWMsIElkZW50aWZpZXI6OmZyb21TdHJp
bmcoZXhlYywgImxpbmUiKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTlBSdW50aW1lT2JqZWN0TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCmluZGV4
IDI1OTMyODljNDU1MjJiYjllMzg3ZjQ2YWQ0Mjk3NjcwYjQ5ZTkwNDYuLjQ5OTIwZjJjYWE4NGY3
NjliNjJkMjQ2MmE5Yzk4MDdmNTIwY2YzZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RNYXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OUFJ1bnRpbWVPYmplY3RN
YXAuY3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBOUFJ1bnRpbWVPYmplY3RNYXA6OmNvbnZl
cnRKU1ZhbHVlVG9OUFZhcmlhbnQoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHUKICAgICB9
CiAKICAgICBpZiAodmFsdWUuaXNTdHJpbmcoKSkgewotICAgICAgICBOUFN0cmluZyBucFN0cmlu
ZyA9IGNyZWF0ZU5QU3RyaW5nKHZhbHVlLnRvV1RGU3RyaW5nKGV4ZWMpLnV0ZjgoKSk7CisgICAg
ICAgIE5QU3RyaW5nIG5wU3RyaW5nID0gY3JlYXRlTlBTdHJpbmcodmFsdWUudG9TdHJpbmcoZXhl
YyktPnZhbHVlKGV4ZWMpLnV0ZjgoKSk7CiAgICAgICAgIFNUUklOR05fVE9fTlBWQVJJQU5UKG5w
U3RyaW5nLlVURjhDaGFyYWN0ZXJzLCBucFN0cmluZy5VVEY4TGVuZ3RoLCB2YXJpYW50KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>