<?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>185842</bug_id>
          
          <creation_ts>2018-05-21 14:49:08 -0700</creation_ts>
          <short_desc>REGRESSION(r231998): causes crashes on 32 JSC bot (Requested by realdawei on #webkit).</short_desc>
          <delta_ts>2018-05-22 19:05:17 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>185682</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>ap</cc>
    
    <cc>dominik.infuehr</cc>
    
    <cc>fpizlo</cc>
    
    <cc>realdawei</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1425851</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 14:49:08 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/231998 broke the build:
causes crashes on 32 JSC bot (Requested by realdawei 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>1425853</commentid>
    <comment_count>1</comment_count>
      <attachid>340898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 14:49:34 -0700</bug_when>
    <thetext>Created attachment 340898
ROLLOUT of r231998

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>1425855</commentid>
    <comment_count>2</comment_count>
      <attachid>340898</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 14:52:32 -0700</bug_when>
    <thetext>Comment on attachment 340898
ROLLOUT of r231998

Clearing flags on attachment: 340898

Committed r232029: &lt;https://trac.webkit.org/changeset/232029&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425856</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-21 14:52:32 -0700</bug_when>
    <thetext>What is this 32-bit bot?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425858</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-05-21 14:52:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425860</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-21 14:53:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/40430750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1425885</commentid>
    <comment_count>6</comment_count>
    <who name="Dominik Inführ">dominik.infuehr</who>
    <bug_when>2018-05-21 15:15:29 -0700</bug_when>
    <thetext>Here is the patch that make this change work on 32-bit architectures: https://bugs.webkit.org/show_bug.cgi?id=185845.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426447</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-05-22 19:05:17 -0700</bug_when>
    <thetext>&gt; What is this 32-bit bot?

I&apos;m guessing this one:

https://build.webkit.org/builders/Apple%20High%20Sierra%2032-bit%20JSC%20(BuildAndTest)?numbuilds=50</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>340898</attachid>
            <date>2018-05-21 14:49:34 -0700</date>
            <delta_ts>2018-05-21 14:52:32 -0700</delta_ts>
            <desc>ROLLOUT of r231998</desc>
            <filename>bug-185842-20180521174934.patch</filename>
            <type>text/plain</type>
            <size>87305</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
NzhhMzhkY2VjYjEwNTQxYjVkOTdiMjg2ZGU1ZWQyMWY1NTM1M2FmLi4zMzcyNjZhMTA0NDM2NTI1
MGY4MzMxMzRjMzMyMTVmMGZhNWIzYjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxOC0wNS0yMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzMTk5OCBhbmQgcjIz
MjAxNy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
NTg0MgorCisgICAgICAgIGNhdXNlcyBjcmFzaGVzIG9uIDMyIEpTQyBib3QgKFJlcXVlc3RlZCBi
eSByZWFsZGF3ZWkgb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hh
bmdlc2V0czoKKworICAgICAgICAiW0pTQ10gSlNDIHNob3VsZCBoYXZlIGNvbnNpc3RlbnQgSW5C
eUlkIElDIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTg1NjgyCisgICAgICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzE5OTgK
KworICAgICAgICAiVW5yZXZpZXdlZCwgZml4IDMyYml0IGFuZCBzY29wZSByZWxlYXNlIgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1NjgyCisgICAg
ICAgIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMzIwMTcKKwogMjAxOC0wNS0y
MSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBDb21wbGV0ZSBm
aXggZm9yIGVuYWJsaW5nIG1vZGVybiBFTUUgYnkgZGVmYXVsdApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCmluZGV4IDNlNzcyYmM5MDY5Y2E4ODM4NTA0
NjgwYzhjMDNmOTI2Y2Q1ODFjMzUuLmUzMjM5YTE1ZTQ1MzNjODdjMjIyOTFjMjYyNmExNjhhMTdi
MzczZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3ND
YXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5j
cHAKQEAgLTExOCw5ICsxMTgsNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8QWNjZXNzQ2FzZT4gQWNjZXNz
Q2FzZTo6ZnJvbVN0cnVjdHVyZVN0dWJJbmZvKAogICAgIGNhc2UgQ2FjaGVUeXBlOjpQdXRCeUlk
UmVwbGFjZToKICAgICAgICAgcmV0dXJuIEFjY2Vzc0Nhc2U6OmNyZWF0ZSh2bSwgb3duZXIsIFJl
cGxhY2UsIHN0dWJJbmZvLnUuYnlJZFNlbGYub2Zmc2V0LCBzdHViSW5mby51LmJ5SWRTZWxmLmJh
c2VPYmplY3RTdHJ1Y3R1cmUuZ2V0KCkpOwogCi0gICAgY2FzZSBDYWNoZVR5cGU6OkluQnlJZFNl
bGY6Ci0gICAgICAgIHJldHVybiBBY2Nlc3NDYXNlOjpjcmVhdGUodm0sIG93bmVyLCBJbkhpdCwg
c3R1YkluZm8udS5ieUlkU2VsZi5vZmZzZXQsIHN0dWJJbmZvLnUuYnlJZFNlbGYuYmFzZU9iamVj
dFN0cnVjdHVyZS5nZXQoKSk7Ci0KICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICB9CkBAIC01NTgsNyArNTU1LDEwIEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVX
aXRoR3VhcmQoCiAgICAgICAgIGppdC5tb3ZlKGJhc2VHUFIsIHZhbHVlR1BSKTsKICAgICAgICAg
CiAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgbG9vcCgmaml0KTsKLSAgICAgICAgZmFpbEFu
ZElnbm9yZSA9IGppdC5icmFuY2hJZlR5cGUodmFsdWVHUFIsIFByb3h5T2JqZWN0VHlwZSk7Cisg
ICAgICAgIGZhaWxBbmRJZ25vcmUgPSBqaXQuYnJhbmNoOCgKKyAgICAgICAgICAgIENDYWxsSGVs
cGVyczo6RXF1YWwsCisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkFkZHJlc3ModmFsdWVHUFIs
IEpTQ2VsbDo6dHlwZUluZm9UeXBlT2Zmc2V0KCkpLAorICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpUcnVzdGVkSW1tMzIoUHJveHlPYmplY3RUeXBlKSk7CiAgICAgICAgIAogICAgICAgICBqaXQu
ZW1pdExvYWRTdHJ1Y3R1cmUodm0sIHZhbHVlR1BSLCBzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUik7
CiAjaWYgVVNFKEpTVkFMVUU2NCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9CeXRlY29kZUR1bXBlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvQnl0ZWNvZGVEdW1wZXIuY3BwCmluZGV4IDNmOWM1OWU2YjZkYzgxNTljNDhkNTE1N2ExNDUx
NWFhODk3ZmI2NjcuLmFiZTlhOGEyODJlZGY0ZTc4YTQ2MzgzMGYzNTBiNzZmOThkMGY1MGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUR1bXBlci5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmNw
cApAQCAtNTUxLDU5ICs1NTEsNiBAQCB2b2lkIEJ5dGVjb2RlRHVtcGVyPEJsb2NrPjo6cHJpbnRQ
dXRCeUlkQ2FjaGVTdGF0dXMoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxvY2F0aQogI2VuZGlmCiB9
CiAKLXRlbXBsYXRlPGNsYXNzIEJsb2NrPgotdm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46OnBy
aW50SW5CeUlkQ2FjaGVTdGF0dXMoUHJpbnRTdHJlYW0mIG91dCwgaW50IGxvY2F0aW9uLCBjb25z
dCBTdHViSW5mb01hcCYgbWFwKQotewotICAgIGNvbnN0IGF1dG8qIGluc3RydWN0aW9uID0gaW5z
dHJ1Y3Rpb25zQmVnaW4oKSArIGxvY2F0aW9uOwotCi0gICAgY29uc3QgSWRlbnRpZmllciYgaWRl
bnQgPSBpZGVudGlmaWVyKGluc3RydWN0aW9uWzNdLnUub3BlcmFuZCk7Ci0KLSAgICBVTlVTRURf
UEFSQU0oaWRlbnQpOyAvLyB0ZWxsIHRoZSBjb21waWxlciB0byBzaHV0IHVwIGluIGNlcnRhaW4g
cGxhdGZvcm0gY29uZmlndXJhdGlvbnMuCi0KLSNpZiBFTkFCTEUoSklUKQotICAgIGlmIChTdHJ1
Y3R1cmVTdHViSW5mbyogc3R1YlB0ciA9IG1hcC5nZXQoQ29kZU9yaWdpbihsb2NhdGlvbikpKSB7
Ci0gICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbyA9ICpzdHViUHRyOwotICAgICAg
ICBpZiAoc3R1YkluZm8ucmVzZXRCeUdDKQotICAgICAgICAgICAgb3V0LnByaW50KCIgKFJlc2V0
IEJ5IEdDKSIpOwotCi0gICAgICAgIG91dC5wcmludGYoIiBqaXQoIik7Ci0KLSAgICAgICAgU3Ry
dWN0dXJlKiBiYXNlU3RydWN0dXJlID0gbnVsbHB0cjsKLSAgICAgICAgUG9seW1vcnBoaWNBY2Nl
c3MqIHN0dWIgPSBudWxscHRyOwotCi0gICAgICAgIHN3aXRjaCAoc3R1YkluZm8uY2FjaGVUeXBl
KSB7Ci0gICAgICAgIGNhc2UgQ2FjaGVUeXBlOjpJbkJ5SWRTZWxmOgotICAgICAgICAgICAgb3V0
LnByaW50Zigic2VsZiIpOwotICAgICAgICAgICAgYmFzZVN0cnVjdHVyZSA9IHN0dWJJbmZvLnUu
YnlJZFNlbGYuYmFzZU9iamVjdFN0cnVjdHVyZS5nZXQoKTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIENhY2hlVHlwZTo6U3R1YjoKLSAgICAgICAgICAgIG91dC5wcmludGYoInN0
dWIiKTsKLSAgICAgICAgICAgIHN0dWIgPSBzdHViSW5mby51LnN0dWI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgY2FzZSBDYWNoZVR5cGU6OlVuc2V0OgotICAgICAgICAgICAgb3V0LnBy
aW50ZigidW5zZXQiKTsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBkZWZhdWx0OgotICAg
ICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGJhc2VTdHJ1Y3R1cmUpIHsKLSAgICAgICAgICAg
IG91dC5wcmludGYoIiwgIik7Ci0gICAgICAgICAgICBkdW1wU3RydWN0dXJlKG91dCwgInN0cnVj
dCIsIGJhc2VTdHJ1Y3R1cmUsIGlkZW50KTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChzdHVi
KQotICAgICAgICAgICAgb3V0LnByaW50KCIsICIsICpzdHViKTsKLQotICAgICAgICBvdXQucHJp
bnRmKCIpIik7Ci0gICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0ob3V0KTsKLSAgICBVTlVT
RURfUEFSQU0obWFwKTsKLSNlbmRpZgotfQotCiAjaWYgRU5BQkxFKEpJVCkKIHRlbXBsYXRlPHR5
cGVuYW1lIEJsb2NrPgogdm9pZCBCeXRlY29kZUR1bXBlcjxCbG9jaz46OmR1bXBDYWxsTGlua1N0
YXR1cyhQcmludFN0cmVhbSYsIHVuc2lnbmVkLCBjb25zdCBDYWxsTGlua0luZm9NYXAmKQpAQCAt
MTA2NSwxNyArMTAxMiw4IEBAIHZvaWQgQnl0ZWNvZGVEdW1wZXI8QmxvY2s+OjpkdW1wQnl0ZWNv
ZGUoUHJpbnRTdHJlYW0mIG91dCwgY29uc3QgdHlwZW5hbWUgQmxvY2s6CiAgICAgICAgIHByaW50
VW5hcnlPcChvdXQsIGxvY2F0aW9uLCBpdCwgImlzX2Z1bmN0aW9uIik7CiAgICAgICAgIGJyZWFr
OwogICAgIH0KLSAgICBjYXNlIG9wX2luX2J5X2lkOiB7Ci0gICAgICAgIGludCByMCA9ICgrK2l0
KS0+dS5vcGVyYW5kOwotICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKLSAgICAg
ICAgaW50IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOwotICAgICAgICBwcmludExvY2F0aW9uQW5k
T3Aob3V0LCBsb2NhdGlvbiwgaXQsICJpbl9ieV9pZCIpOwotICAgICAgICBvdXQucHJpbnRmKCIl
cywgJXMsICVzIiwgcmVnaXN0ZXJOYW1lKHIwKS5kYXRhKCksIHJlZ2lzdGVyTmFtZShyMSkuZGF0
YSgpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyKGlkMCkpLmRhdGEoKSk7Ci0gICAgICAgIHByaW50
SW5CeUlkQ2FjaGVTdGF0dXMob3V0LCBsb2NhdGlvbiwgc3R1YkluZm9zKTsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotICAgIGNhc2Ugb3BfaW5fYnlfdmFsOiB7Ci0gICAgICAgIHByaW50QmluYXJ5
T3Aob3V0LCBsb2NhdGlvbiwgaXQsICJpbl9ieV92YWwiKTsKKyAgICBjYXNlIG9wX2luOiB7Cisg
ICAgICAgIHByaW50QmluYXJ5T3Aob3V0LCBsb2NhdGlvbiwgaXQsICJpbiIpOwogICAgICAgICBk
dW1wQXJyYXlQcm9maWxpbmcob3V0LCBpdCwgaGFzUHJpbnRlZFByb2ZpbGluZyk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9CeXRlY29kZUR1bXBlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVj
b2RlRHVtcGVyLmgKaW5kZXggNWU4OTQzZWYxM2UyNmEyZmRlYmVjZmU5YWFlNGFjZGQ1ODQxMzY0
ZC4uN2NkMDhjOTUyMTdkNGZjNWFiYjdjMzQ3ODY2MWY5NmY3ODY2Mzg4MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlRHVtcGVyLmgKQEAgLTcxLDcgKzcx
LDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHByaW50R2V0QnlJZE9wKFByaW50U3RyZWFtJiBvdXQs
IGludCBsb2NhdGlvbiwgY29uc3QgSW5zdHJ1Y3Rpb24qJiBpdCk7CiAgICAgdm9pZCBwcmludEdl
dEJ5SWRDYWNoZVN0YXR1cyhQcmludFN0cmVhbSYgb3V0LCBpbnQgbG9jYXRpb24sIGNvbnN0IFN0
dWJJbmZvTWFwJik7CiAgICAgdm9pZCBwcmludFB1dEJ5SWRDYWNoZVN0YXR1cyhQcmludFN0cmVh
bSYgb3V0LCBpbnQgbG9jYXRpb24sIGNvbnN0IFN0dWJJbmZvTWFwJik7Ci0gICAgdm9pZCBwcmlu
dEluQnlJZENhY2hlU3RhdHVzKFByaW50U3RyZWFtJiBvdXQsIGludCBsb2NhdGlvbiwgY29uc3Qg
U3R1YkluZm9NYXAmKTsKICAgICBlbnVtIENhY2hlRHVtcE1vZGUgeyBEdW1wQ2FjaGVzLCBEb250
RHVtcENhY2hlcyB9OwogICAgIHZvaWQgcHJpbnRDYWxsT3AoUHJpbnRTdHJlYW0mIG91dCwgaW50
IGxvY2F0aW9uLCBjb25zdCBJbnN0cnVjdGlvbiomIGl0LCBjb25zdCBjaGFyKiBvcCwgQ2FjaGVE
dW1wTW9kZSwgYm9vbCYgaGFzUHJpbnRlZFByb2ZpbGluZywgY29uc3QgQ2FsbExpbmtJbmZvTWFw
Jik7CiAgICAgdm9pZCBwcmludFB1dEJ5SWRPcChQcmludFN0cmVhbSYgb3V0LCBpbnQgbG9jYXRp
b24sIGNvbnN0IEluc3RydWN0aW9uKiYgaXQsIGNvbnN0IGNoYXIqIG9wKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbiBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZUxpc3QuanNvbgppbmRleCAxNmYxZmI2
MGMzZDY0MGJkYWM5YmZhMjdiNmM3NTNmNjdmZmJkYzE0Li41NjI4ZGY1YjQ2MjE2M2ViMjk2MzIx
ZmU4NThkMDNiNmQ5Zjc2ZTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQnl0ZWNvZGVMaXN0Lmpzb24KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVj
b2RlL0J5dGVjb2RlTGlzdC5qc29uCkBAIC04MCw4ICs4MCw3IEBACiAgICAgICAgICAgICB7ICJu
YW1lIiA6ICJvcF9pc19vYmplY3Rfb3JfbnVsbCIsICJsZW5ndGgiIDogMyB9LAogICAgICAgICAg
ICAgeyAibmFtZSIgOiAib3BfaXNfZnVuY3Rpb24iLCAibGVuZ3RoIiA6IDMgfSwKICAgICAgICAg
ICAgIHsgIm5hbWUiIDogIm9wX2lzX2NlbGxfd2l0aF90eXBlIiwgImxlbmd0aCIgOiA0IH0sCi0g
ICAgICAgICAgICB7ICJuYW1lIiA6ICJvcF9pbl9ieV92YWwiLCAibGVuZ3RoIiA6IDUgfSwKLSAg
ICAgICAgICAgIHsgIm5hbWUiIDogIm9wX2luX2J5X2lkIiwgImxlbmd0aCIgOiA0IH0sCisgICAg
ICAgICAgICB7ICJuYW1lIiA6ICJvcF9pbiIsICJsZW5ndGgiIDogNSB9LAogICAgICAgICAgICAg
eyAibmFtZSIgOiAib3BfZ2V0X2FycmF5X2xlbmd0aCIsICJsZW5ndGgiIDogOSB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkIiwgImxlbmd0aCIgOiA5ICB9LAogICAgICAg
ICAgICAgeyAibmFtZSIgOiAib3BfZ2V0X2J5X2lkX3Byb3RvX2xvYWQiLCAibGVuZ3RoIiA6IDkg
fSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9CeXRlY29kZVVz
ZURlZi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgK
aW5kZXggZGI1MjJhYzJlNzExYTQ5YjNmMmQ5MmRlOGNhMjhiY2ViNTMxZTMyZS4uNzAxZDM2Y2Zh
YzQ1MWIzYzg4MjM1NjYxYTEwNTcxNzIwMzU4MGRkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL0J5dGVjb2RlVXNlRGVmLmgKQEAgLTE4Niw3ICsxODYsNiBAQCB2b2lk
IGNvbXB1dGVVc2VzRm9yQnl0ZWNvZGVPZmZzZXQoQmxvY2sqIGNvZGVCbG9jaywgT3Bjb2RlSUQg
b3Bjb2RlSUQsIEluc3RydWN0aQogICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Vuc2V0OgogICAgIGNh
c2Ugb3BfZ2V0X2J5X2lkX2RpcmVjdDoKICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6Ci0g
ICAgY2FzZSBvcF9pbl9ieV9pZDoKICAgICBjYXNlIG9wX3R5cGVvZjoKICAgICBjYXNlIG9wX2lz
X2VtcHR5OgogICAgIGNhc2Ugb3BfaXNfdW5kZWZpbmVkOgpAQCAtMjI3LDcgKzIyNiw3IEBAIHZv
aWQgY29tcHV0ZVVzZXNGb3JCeXRlY29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJ
RCBvcGNvZGVJRCwgSW5zdHJ1Y3RpCiAgICAgY2FzZSBvcF9lbnVtZXJhdG9yX3N0cnVjdHVyZV9w
bmFtZToKICAgICBjYXNlIG9wX2VudW1lcmF0b3JfZ2VuZXJpY19wbmFtZToKICAgICBjYXNlIG9w
X2dldF9ieV92YWw6Ci0gICAgY2FzZSBvcF9pbl9ieV92YWw6CisgICAgY2FzZSBvcF9pbjoKICAg
ICBjYXNlIG9wX292ZXJyaWRlc19oYXNfaW5zdGFuY2U6CiAgICAgY2FzZSBvcF9pbnN0YW5jZW9m
OgogICAgIGNhc2Ugb3BfYWRkOgpAQCAtNDU1LDggKzQ1NCw3IEBAIHZvaWQgY29tcHV0ZURlZnNG
b3JCeXRlY29kZU9mZnNldChCbG9jayogY29kZUJsb2NrLCBPcGNvZGVJRCBvcGNvZGVJRCwgSW5z
dHJ1Y3RpCiAgICAgY2FzZSBvcF9pc19vYmplY3Rfb3JfbnVsbDoKICAgICBjYXNlIG9wX2lzX2Nl
bGxfd2l0aF90eXBlOgogICAgIGNhc2Ugb3BfaXNfZnVuY3Rpb246Ci0gICAgY2FzZSBvcF9pbl9i
eV9pZDoKLSAgICBjYXNlIG9wX2luX2J5X3ZhbDoKKyAgICBjYXNlIG9wX2luOgogICAgIGNhc2Ug
b3BfdG9fbnVtYmVyOgogICAgIGNhc2Ugb3BfdG9fc3RyaW5nOgogICAgIGNhc2Ugb3BfdG9fb2Jq
ZWN0OgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9j
ay5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAppbmRl
eCBjY2UwYjZhMDA2OWY0MmI1OGUxOWQ4ZTk5NTJmYjFjM2I0ODcwNTU1Li44ZjFhNGJkOTBlM2Nh
YjBiNWIwMmNmYmY4NjExYWRlMjU3OTMzNDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvQ29kZUJsb2NrLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvQ29kZUJsb2NrLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIGJvb2wgQ29kZUJsb2Nr
OjpmaW5pc2hDcmVhdGlvbihWTSYgdm0sIFNjcmlwdEV4ZWN1dGFibGUqIG93bmVyRXhlY3V0YWJs
ZSwgVW5saW5rCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNhc2Ug
b3BfaW5fYnlfdmFsOgorICAgICAgICBjYXNlIG9wX2luOgogICAgICAgICBjYXNlIG9wX3B1dF9i
eV92YWw6CiAgICAgICAgIGNhc2Ugb3BfcHV0X2J5X3ZhbF9kaXJlY3Q6IHsKICAgICAgICAgICAg
IGludCBhcnJheVByb2ZpbGVJbmRleCA9IHBjW29wTGVuZ3RoIC0gMV0udS5vcGVyYW5kOwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcAppbmRleCBm
MzUxZjgyYmVlMGE0ZDc5NGRhOTBjNWI4NmJjNmRiYTU5YzM3MTNjLi45MTMwYjFlMjVkNDRlNjYz
NTgxN2VhNzhhNDgzZWY4Y2FkNjc5NzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Ynl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcApAQCAtMjc2LDI1ICsyNzYsNiBAQCBib29sIElubGlu
ZUFjY2Vzczo6Z2VuZXJhdGVBcnJheUxlbmd0aChTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8s
IEpTQXJyYXkqIGFycgogICAgIHJldHVybiBsaW5rZWRDb2RlSW5saW5lOwogfQogCi1ib29sIElu
bGluZUFjY2Vzczo6Z2VuZXJhdGVTZWxmSW5BY2Nlc3MoU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJ
bmZvLCBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLXsKLSAgICBDQ2FsbEhlbHBlcnMgaml0OwotCi0g
ICAgR1BSUmVnIGJhc2UgPSBzdGF0aWNfY2FzdDxHUFJSZWc+KHN0dWJJbmZvLnBhdGNoLmJhc2VH
UFIpOwotICAgIEpTVmFsdWVSZWdzIHZhbHVlID0gc3R1YkluZm8udmFsdWVSZWdzKCk7Ci0KLSAg
ICBhdXRvIGJyYW5jaFRvU2xvd1BhdGggPSBqaXQucGF0Y2hhYmxlQnJhbmNoMzIoCi0gICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpOb3RFcXVhbCwKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OkFkZHJl
c3MoYmFzZSwgSlNDZWxsOjpzdHJ1Y3R1cmVJRE9mZnNldCgpKSwKLSAgICAgICAgTWFjcm9Bc3Nl
bWJsZXI6OlRydXN0ZWRJbW0zMihiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KHN0cnVjdHVyZS0+aWQo
KSkpKTsKLSAgICBqaXQuYm94Qm9vbGVhblBheWxvYWQodHJ1ZSwgdmFsdWUucGF5bG9hZEdQUigp
KTsKLQotICAgIGJvb2wgbGlua2VkQ29kZUlubGluZSA9IGxpbmtDb2RlSW5saW5lKCJpbiBhY2Nl
c3MiLCBqaXQsIHN0dWJJbmZvLCBbJl0gKExpbmtCdWZmZXImIGxpbmtCdWZmZXIpIHsKLSAgICAg
ICAgbGlua0J1ZmZlci5saW5rKGJyYW5jaFRvU2xvd1BhdGgsIHN0dWJJbmZvLnNsb3dQYXRoU3Rh
cnRMb2NhdGlvbigpKTsKLSAgICB9KTsKLSAgICByZXR1cm4gbGlua2VkQ29kZUlubGluZTsKLX0K
LQogdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoU3RydWN0dXJlU3R1YkluZm8m
IHN0dWJJbmZvLCBDb2RlTG9jYXRpb25MYWJlbDxKSVRTdHViUm91dGluZVB0clRhZz4gdGFyZ2V0
KQogewogICAgIENDYWxsSGVscGVycyBqaXQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmgKaW5kZXggYTRkMDMzNWY4YWIwNjYwN2RhYTExYmYxYmYxNmIw
ZTU5YjdmMjFmZi4uOTk0OGIzYjZmODVlOTM2MzE0Y2IxOTcwYzNhYzQ0MzdhYjhlNjhiYSAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9JbmxpbmVBY2Nlc3MuaApAQCAtMTE2
LDcgKzExNiw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0NhY2hlYWJsZUFycmF5TGVu
Z3RoKFN0cnVjdHVyZVN0dWJJbmZvJiwgSlNBcnJheSopOwogICAgIHN0YXRpYyBib29sIGdlbmVy
YXRlQXJyYXlMZW5ndGgoU3RydWN0dXJlU3R1YkluZm8mLCBKU0FycmF5Kik7CiAgICAgc3RhdGlj
IHZvaWQgcmV3aXJlU3R1YkFzSnVtcChTdHJ1Y3R1cmVTdHViSW5mbyYsIENvZGVMb2NhdGlvbkxh
YmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPik7Ci0gICAgc3RhdGljIGJvb2wgZ2VuZXJhdGVTZWxm
SW5BY2Nlc3MoU3RydWN0dXJlU3R1YkluZm8mLCBTdHJ1Y3R1cmUqKTsKIAogICAgIC8vIFRoaXMg
aXMgaGVscGZ1bCB3aGVuIGRldGVybWluaW5nIHRoZSBzaXplIG9mIGFuIElDIG9uCiAgICAgLy8g
dmFyaW91cyBwbGF0Zm9ybXMuIFdoZW4gYWRkaW5nIGEgbmV3IHR5cGUgb2YgSUMsIGltcGxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0
dWJJbmZvLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHVi
SW5mby5jcHAKaW5kZXggODM1MTUzOThkOTc2ZmUxMjY0NzJlZWU5NzlmZTBiNWZiZjNiZmFhNC4u
NDVlNTg3YmI3MjQ5NGMxMjFmNzVhZmVhMDY1OWRmZTgyYmUxMzFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uY3BwCkBAIC04
MiwxNSArODIsNiBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjppbml0UHV0QnlJZFJlcGxhY2Uo
Q29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZSogYmFzZQogICAgIHUuYnlJZFNlbGYub2Zm
c2V0ID0gb2Zmc2V0OwogfQogCi12b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjppbml0SW5CeUlkU2Vs
ZihDb2RlQmxvY2sqIGNvZGVCbG9jaywgU3RydWN0dXJlKiBiYXNlT2JqZWN0U3RydWN0dXJlLCBQ
cm9wZXJ0eU9mZnNldCBvZmZzZXQpCi17Ci0gICAgY2FjaGVUeXBlID0gQ2FjaGVUeXBlOjpJbkJ5
SWRTZWxmOwotCi0gICAgdS5ieUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0dXJlLnNldCgKLSAgICAg
ICAgKmNvZGVCbG9jay0+dm0oKSwgY29kZUJsb2NrLCBiYXNlT2JqZWN0U3RydWN0dXJlKTsKLSAg
ICB1LmJ5SWRTZWxmLm9mZnNldCA9IG9mZnNldDsKLX0KLQogdm9pZCBTdHJ1Y3R1cmVTdHViSW5m
bzo6ZGVyZWYoKQogewogICAgIHN3aXRjaCAoY2FjaGVUeXBlKSB7CkBAIC0xMDAsNyArOTEsNiBA
QCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZvOjpkZXJlZigpCiAgICAgY2FzZSBDYWNoZVR5cGU6OlVu
c2V0OgogICAgIGNhc2UgQ2FjaGVUeXBlOjpHZXRCeUlkU2VsZjoKICAgICBjYXNlIENhY2hlVHlw
ZTo6UHV0QnlJZFJlcGxhY2U6Ci0gICAgY2FzZSBDYWNoZVR5cGU6OkluQnlJZFNlbGY6CiAgICAg
Y2FzZSBDYWNoZVR5cGU6OkFycmF5TGVuZ3RoOgogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
MTE3LDcgKzEwNyw2IEBAIHZvaWQgU3RydWN0dXJlU3R1YkluZm86OmFib3V0VG9EaWUoKQogICAg
IGNhc2UgQ2FjaGVUeXBlOjpVbnNldDoKICAgICBjYXNlIENhY2hlVHlwZTo6R2V0QnlJZFNlbGY6
CiAgICAgY2FzZSBDYWNoZVR5cGU6OlB1dEJ5SWRSZXBsYWNlOgotICAgIGNhc2UgQ2FjaGVUeXBl
OjpJbkJ5SWRTZWxmOgogICAgIGNhc2UgQ2FjaGVUeXBlOjpBcnJheUxlbmd0aDoKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTI0OCw3ICsyMzcsNyBAQCB2b2lkIFN0cnVjdHVyZVN0dWJJbmZv
OjpyZXNldChDb2RlQmxvY2sqIGNvZGVCbG9jaykKICAgICAgICAgcmVzZXRQdXRCeUlEKGNvZGVC
bG9jaywgKnRoaXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIEFjY2Vzc1R5cGU6OkluOgot
ICAgICAgICByZXNldEluQnlJRChjb2RlQmxvY2ssICp0aGlzKTsKKyAgICAgICAgcmVzZXRJbigq
dGhpcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQWNjZXNzVHlwZTo6SW5zdGFuY2VPZjoK
ICAgICAgICAgcmVzZXRJbnN0YW5jZU9mKCp0aGlzKTsKQEAgLTI3MSw3ICsyNjAsNiBAQCB2b2lk
IFN0cnVjdHVyZVN0dWJJbmZvOjp2aXNpdFdlYWtSZWZlcmVuY2VzKENvZGVCbG9jayogY29kZUJs
b2NrKQogICAgIHN3aXRjaCAoY2FjaGVUeXBlKSB7CiAgICAgY2FzZSBDYWNoZVR5cGU6OkdldEJ5
SWRTZWxmOgogICAgIGNhc2UgQ2FjaGVUeXBlOjpQdXRCeUlkUmVwbGFjZToKLSAgICBjYXNlIENh
Y2hlVHlwZTo6SW5CeUlkU2VsZjoKICAgICAgICAgaWYgKEhlYXA6OmlzTWFya2VkKHUuYnlJZFNl
bGYuYmFzZU9iamVjdFN0cnVjdHVyZS5nZXQoKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIGJyZWFrOwpAQCAtMjk1LDcgKzI4Myw2IEBAIGJvb2wgU3RydWN0dXJlU3R1YkluZm86OnBy
b3BhZ2F0ZVRyYW5zaXRpb25zKFNsb3RWaXNpdG9yJiB2aXNpdG9yKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICBjYXNlIENhY2hlVHlwZTo6R2V0QnlJZFNlbGY6CiAgICAgY2FzZSBDYWNoZVR5
cGU6OlB1dEJ5SWRSZXBsYWNlOgotICAgIGNhc2UgQ2FjaGVUeXBlOjpJbkJ5SWRTZWxmOgogICAg
ICAgICByZXR1cm4gdS5ieUlkU2VsZi5iYXNlT2JqZWN0U3RydWN0dXJlLT5tYXJrSWZDaGVhcCh2
aXNpdG9yKTsKICAgICBjYXNlIENhY2hlVHlwZTo6U3R1YjoKICAgICAgICAgcmV0dXJuIHUuc3R1
Yi0+cHJvcGFnYXRlVHJhbnNpdGlvbnModmlzaXRvcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCmluZGV4IDEzM2I2MDQxZDkwNWMw
ZjE5ZmNjNjI3YmJmNzdlNWIwMjQxNmUzNjUuLjNhZmUzYmFmZTZlNjE5MDAwNjYyZjE3YmIzMThi
YWVjZjIyODY1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9T
dHJ1Y3R1cmVTdHViSW5mby5oCkBAIC01OCw3ICs1OCw2IEBAIGVudW0gY2xhc3MgQ2FjaGVUeXBl
IDogaW50OF90IHsKICAgICBVbnNldCwKICAgICBHZXRCeUlkU2VsZiwKICAgICBQdXRCeUlkUmVw
bGFjZSwKLSAgICBJbkJ5SWRTZWxmLAogICAgIFN0dWIsCiAgICAgQXJyYXlMZW5ndGgKIH07CkBA
IC03Myw3ICs3Miw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGluaXRHZXRCeUlkU2VsZihDb2RlQmxv
Y2sqLCBTdHJ1Y3R1cmUqIGJhc2VPYmplY3RTdHJ1Y3R1cmUsIFByb3BlcnR5T2Zmc2V0KTsKICAg
ICB2b2lkIGluaXRBcnJheUxlbmd0aCgpOwogICAgIHZvaWQgaW5pdFB1dEJ5SWRSZXBsYWNlKENv
ZGVCbG9jayosIFN0cnVjdHVyZSogYmFzZU9iamVjdFN0cnVjdHVyZSwgUHJvcGVydHlPZmZzZXQp
OwotICAgIHZvaWQgaW5pdEluQnlJZFNlbGYoQ29kZUJsb2NrKiwgU3RydWN0dXJlKiBiYXNlT2Jq
ZWN0U3RydWN0dXJlLCBQcm9wZXJ0eU9mZnNldCk7CiAKICAgICBBY2Nlc3NHZW5lcmF0aW9uUmVz
dWx0IGFkZEFjY2Vzc0Nhc2UoY29uc3QgR0NTYWZlQ29uY3VycmVudEpTTG9ja2VyJiwgQ29kZUJs
b2NrKiwgY29uc3QgSWRlbnRpZmllciYsIHN0ZDo6dW5pcXVlX3B0cjxBY2Nlc3NDYXNlPik7CiAK
QEAgLTE3OCw3ICsxNzYsNyBAQCBwdWJsaWM6CiAgICAgU3RydWN0dXJlU2V0IGJ1ZmZlcmVkU3Ry
dWN0dXJlczsKICAgICAKICAgICBzdHJ1Y3QgewotICAgICAgICBDb2RlTG9jYXRpb25MYWJlbDxK
SVRTdHViUm91dGluZVB0clRhZz4gc3RhcnQ7IC8vIFRoaXMgaXMgZWl0aGVyIHRoZSBzdGFydCBv
ZiB0aGUgaW5saW5lIElDIGZvciAqYnlJZCBjYWNoZXMuIG9yIHRoZSBsb2NhdGlvbiBvZiBwYXRj
aGFibGUganVtcCBmb3IgJ2luc3RhbmNlb2YnIGNhY2hlcy4KKyAgICAgICAgQ29kZUxvY2F0aW9u
TGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0OyAvLyBUaGlzIGlzIGVpdGhlciB0aGUg
c3RhcnQgb2YgdGhlIGlubGluZSBJQyBmb3IgKmJ5SWQgY2FjaGVzLCBvciB0aGUgbG9jYXRpb24g
b2YgcGF0Y2hhYmxlIGp1bXAgZm9yICdpbicgYW5kICdpbnN0YW5jZW9mJyBjYWNoZXMuCiAgICAg
ICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnM7CiAgICAgICAgIHVpbnQzMl90IGlubGluZVNp
emU7CiAgICAgICAgIGludDMyX3QgZGVsdGFGcm9tU3RhcnRUb1Nsb3dQYXRoQ2FsbExvY2F0aW9u
OwpAQCAtMTk5LDcgKzE5Nyw3IEBAIHB1YmxpYzoKICAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRT
dHViUm91dGluZVB0clRhZz4gc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyByZXR1cm4gcGF0Y2gu
c3RhcnQubGFiZWxBdE9mZnNldChwYXRjaC5kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCk7
IH0KICAgICBDb2RlTG9jYXRpb25KdW1wPEpTSW50ZXJuYWxQdHJUYWc+IHBhdGNoYWJsZUp1bXAo
KQogICAgIHsgCi0gICAgICAgIEFTU0VSVChhY2Nlc3NUeXBlID09IEFjY2Vzc1R5cGU6Okluc3Rh
bmNlT2YpOworICAgICAgICBBU1NFUlQoYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpJbiB8fCBh
Y2Nlc3NUeXBlID09IEFjY2Vzc1R5cGU6Okluc3RhbmNlT2YpOwogICAgICAgICByZXR1cm4gcGF0
Y2guc3RhcnQuanVtcEF0T2Zmc2V0PEpTSW50ZXJuYWxQdHJUYWc+KDApOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVy
YXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2Vu
ZXJhdG9yLmNwcAppbmRleCBlMTk5ZThmMWI0MWMxMzU1MzY2ZGM0ODg0ZDUzZDZlMzMzMzEwNTQ5
Li42ZDY0NDliMzBlMjc4YzNlZmFlNzA4MmVlOWU3MDA1ZWZkMGI1OWI2IDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9y
LmNwcApAQCAtMjY2NywxMCArMjY2NywxMCBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVyYXRv
cjo6ZW1pdEluc3RhbmNlT2ZDdXN0b20oUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKgogICAg
IHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0SW5C
eVZhbChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBi
YXNlKQorUmVnaXN0ZXJJRCogQnl0ZWNvZGVHZW5lcmF0b3I6OmVtaXRJbihSZWdpc3RlcklEKiBk
c3QsIFJlZ2lzdGVySUQqIHByb3BlcnR5LCBSZWdpc3RlcklEKiBiYXNlKQogewogICAgIFVubGlu
a2VkQXJyYXlQcm9maWxlIGFycmF5UHJvZmlsZSA9IG5ld0FycmF5UHJvZmlsZSgpOwotICAgIGVt
aXRPcGNvZGUob3BfaW5fYnlfdmFsKTsKKyAgICBlbWl0T3Bjb2RlKG9wX2luKTsKICAgICBpbnN0
cnVjdGlvbnMoKS5hcHBlbmQoZHN0LT5pbmRleCgpKTsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQoYmFzZS0+aW5kZXgoKSk7CiAgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHByb3BlcnR5LT5p
bmRleCgpKTsKQEAgLTI2NzgsMTUgKzI2NzgsNiBAQCBSZWdpc3RlcklEKiBCeXRlY29kZUdlbmVy
YXRvcjo6ZW1pdEluQnlWYWwoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBwcm9wZXJ0eQog
ICAgIHJldHVybiBkc3Q7CiB9CiAKLVJlZ2lzdGVySUQqIEJ5dGVjb2RlR2VuZXJhdG9yOjplbWl0
SW5CeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHkpCi17Ci0gICAgZW1pdE9wY29kZShvcF9pbl9ieV9pZCk7Ci0gICAgaW5zdHJ1
Y3Rpb25zKCkuYXBwZW5kKGRzdC0+aW5kZXgoKSk7Ci0gICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KGJhc2UtPmluZGV4KCkpOwotICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChw
cm9wZXJ0eSkpOwotICAgIHJldHVybiBkc3Q7Ci19Ci0KIFJlZ2lzdGVySUQqIEJ5dGVjb2RlR2Vu
ZXJhdG9yOjplbWl0VHJ5R2V0QnlJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2Us
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5KQogewogICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
IXBhcnNlSW5kZXgocHJvcGVydHkpLCAiSW5kZXhlZCBwcm9wZXJ0aWVzIGFyZSBub3Qgc3VwcG9y
dGVkIHdpdGggdHJ5R2V0QnlJZC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29tcGlsZXIvQnl0ZWNvZGVHZW5lcmF0b3IuaAppbmRleCA5NzgyOGNhNTBlZmE4YjY1
MmRkZmY2ZTQ4Mjk5MzA4MWRhNWViYzgwLi5iNzI1NWFjNjIxNmUwOWRjZTFhZDRkN2M2NjllYzU0
NmEyY2I0NjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVy
L0J5dGVjb2RlR2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21w
aWxlci9CeXRlY29kZUdlbmVyYXRvci5oCkBAIC02OTQsOCArNjk0LDcgQEAgbmFtZXNwYWNlIEpT
QyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbnN0YW5jZU9mKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogdmFsdWUsIFJlZ2lzdGVySUQqIGJhc2VQcm90b3R5cGUpOwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0SW5zdGFuY2VPZkN1c3RvbShSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVy
SUQqIHZhbHVlLCBSZWdpc3RlcklEKiBjb25zdHJ1Y3RvciwgUmVnaXN0ZXJJRCogaGFzSW5zdGFu
Y2VWYWx1ZSk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRUeXBlT2YoUmVnaXN0ZXJJRCogZHN0
LCBSZWdpc3RlcklEKiBzcmMpIHsgcmV0dXJuIGVtaXRVbmFyeU9wKG9wX3R5cGVvZiwgZHN0LCBz
cmMpOyB9Ci0gICAgICAgIFJlZ2lzdGVySUQqIGVtaXRJbkJ5VmFsKFJlZ2lzdGVySUQqIGRzdCwg
UmVnaXN0ZXJJRCogcHJvcGVydHksIFJlZ2lzdGVySUQqIGJhc2UpOwotICAgICAgICBSZWdpc3Rl
cklEKiBlbWl0SW5CeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHkpOworICAgICAgICBSZWdpc3RlcklEKiBlbWl0SW4oUmVnaXN0
ZXJJRCogZHN0LCBSZWdpc3RlcklEKiBwcm9wZXJ0eSwgUmVnaXN0ZXJJRCogYmFzZSk7CiAKICAg
ICAgICAgUmVnaXN0ZXJJRCogZW1pdFRyeUdldEJ5SWQoUmVnaXN0ZXJJRCogZHN0LCBSZWdpc3Rl
cklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eSk7CiAgICAgICAgIFJlZ2lzdGVy
SUQqIGVtaXRHZXRCeUlkKFJlZ2lzdGVySUQqIGRzdCwgUmVnaXN0ZXJJRCogYmFzZSwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2J5dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5
dGVjb21waWxlci9Ob2Rlc0NvZGVnZW4uY3BwCmluZGV4IGE1ZmE1MjVkMjE2MDIxYjAwZDk1NWFk
OWRlNjNjMTFmMzM2YTU4ZDEuLjA3YTljOTA3YTdlMjEzMGE0MjQ0ZGZhMDAxMWY3Y2E1MmIwNmU4
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvTm9kZXND
b2RlZ2VuLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvbXBpbGVyL05vZGVz
Q29kZWdlbi5jcHAKQEAgLTIyODAsMTYgKzIyODAsMTAgQEAgUmVnaXN0ZXJJRCogSW5zdGFuY2VP
Zk5vZGU6OmVtaXRCeXRlY29kZShCeXRlY29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3Rl
ckkKIAogUmVnaXN0ZXJJRCogSW5Ob2RlOjplbWl0Qnl0ZWNvZGUoQnl0ZWNvZGVHZW5lcmF0b3Im
IGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQogewotICAgIGlmIChpc05vbkluZGV4U3RyaW5n
RWxlbWVudCgqbV9leHByMSkpIHsKLSAgICAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGJhc2UgPSBn
ZW5lcmF0b3IuZW1pdE5vZGUobV9leHByMik7Ci0gICAgICAgIGdlbmVyYXRvci5lbWl0RXhwcmVz
c2lvbkluZm8oZGl2b3QoKSwgZGl2b3RTdGFydCgpLCBkaXZvdEVuZCgpKTsKLSAgICAgICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0SW5CeUlkKGdlbmVyYXRvci5maW5hbERlc3RpbmF0aW9uKGRzdCwg
YmFzZS5nZXQoKSksIGJhc2UuZ2V0KCksIHN0YXRpY19jYXN0PFN0cmluZ05vZGUqPihtX2V4cHIx
KS0+dmFsdWUoKSk7Ci0gICAgfQotCiAgICAgUmVmUHRyPFJlZ2lzdGVySUQ+IGtleSA9IGdlbmVy
YXRvci5lbWl0Tm9kZUZvckxlZnRIYW5kU2lkZShtX2V4cHIxLCBtX3JpZ2h0SGFzQXNzaWdubWVu
dHMsIG1fZXhwcjItPmlzUHVyZShnZW5lcmF0b3IpKTsKICAgICBSZWZQdHI8UmVnaXN0ZXJJRD4g
YmFzZSA9IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIyKTsKICAgICBnZW5lcmF0b3IuZW1pdEV4
cHJlc3Npb25JbmZvKGRpdm90KCksIGRpdm90U3RhcnQoKSwgZGl2b3RFbmQoKSk7Ci0gICAgcmV0
dXJuIGdlbmVyYXRvci5lbWl0SW5CeVZhbChnZW5lcmF0b3IuZmluYWxEZXN0aW5hdGlvbihkc3Qs
IGtleS5nZXQoKSksIGtleS5nZXQoKSwgYmFzZS5nZXQoKSk7CisgICAgcmV0dXJuIGdlbmVyYXRv
ci5lbWl0SW4oZ2VuZXJhdG9yLmZpbmFsRGVzdGluYXRpb24oZHN0LCBrZXkuZ2V0KCkpLCBrZXku
Z2V0KCksIGJhc2UuZ2V0KCkpOwogfQogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAppbmRleCBjNGM5MmRk
M2I0OGQ4NDc4Y2NhNzhhOTgyNzk0Zjg2NTM4ZmIwMDNjLi4xY2RiYjBiZGMyZjcxNjM2MThlMjAz
ZWFjYmRkNjQ0YzY5NmU2OGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0Fic3RyYWN0SW50ZXJwcmV0ZXJJbmxpbmVzLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCkBAIC0zMjU5LDMwICszMjU5
LDEwIEBAIGJvb2wgQWJzdHJhY3RJbnRlcnByZXRlcjxBYnN0cmFjdFN0YXRlVHlwZT46OmV4ZWN1
dGVFZmZlY3RzKHVuc2lnbmVkIGNsb2JiZXJMaW1pCiAgICAgICAgIGNsb2JiZXJXb3JsZCgpOwog
ICAgICAgICBicmVhazsKICAgICAgICAgCi0gICAgY2FzZSBJbkJ5SWQ6IHsKKyAgICBjYXNlIElu
OiB7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBjYW4gZGV0ZXJtaW5lIHdoZW4gdGhlIHByb3BlcnR5
IGRlZmluaXRlbHkgZXhpc3RzIGJhc2VkIG9uIGFic3RyYWN0CiAgICAgICAgIC8vIHZhbHVlIGlu
Zm9ybWF0aW9uLgogICAgICAgICBjbG9iYmVyV29ybGQoKTsKLSAgICAgICAgZmlsdGVyKG5vZGUt
PmNoaWxkMSgpLCBTcGVjT2JqZWN0KTsKLSAgICAgICAgc2V0Tm9uQ2VsbFR5cGVGb3JOb2RlKG5v
ZGUsIFNwZWNCb29sZWFuKTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgY2FzZSBJbkJ5
VmFsOiB7Ci0gICAgICAgIEFic3RyYWN0VmFsdWUmIHByb3BlcnR5ID0gZm9yTm9kZShub2RlLT5j
aGlsZDIoKSk7Ci0gICAgICAgIGlmIChKU1ZhbHVlIGNvbnN0YW50ID0gcHJvcGVydHkudmFsdWUo
KSkgewotICAgICAgICAgICAgaWYgKGNvbnN0YW50LmlzU3RyaW5nKCkpIHsKLSAgICAgICAgICAg
ICAgICBKU1N0cmluZyogc3RyaW5nID0gYXNTdHJpbmcoY29uc3RhbnQpOwotICAgICAgICAgICAg
ICAgIGNvbnN0IFN0cmluZ0ltcGwqIGltcGwgPSBzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpOwot
ICAgICAgICAgICAgICAgIGlmIChpbXBsICYmIGltcGwtPmlzQXRvbWljKCkpCi0gICAgICAgICAg
ICAgICAgICAgIG1fc3RhdGUuc2V0Rm91bmRDb25zdGFudHModHJ1ZSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLQotICAgICAgICAvLyBGSVhNRTogV2UgY2FuIGRldGVybWluZSB3aGVuIHRo
ZSBwcm9wZXJ0eSBkZWZpbml0ZWx5IGV4aXN0cyBiYXNlZCBvbiBhYnN0cmFjdAotICAgICAgICAv
LyB2YWx1ZSBpbmZvcm1hdGlvbi4KLSAgICAgICAgY2xvYmJlcldvcmxkKCk7Ci0gICAgICAgIGZp
bHRlcihub2RlLT5jaGlsZDEoKSwgU3BlY09iamVjdCk7CiAgICAgICAgIHNldE5vbkNlbGxUeXBl
Rm9yTm9kZShub2RlLCBTcGVjQm9vbGVhbik7CiAgICAgICAgIGJyZWFrOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKaW5kZXggZmEw
OTdmMzJjNjY2ZWQzZjMzZmRiYzRiYmUzOGMxNTQ0MmI0ZDZlMS4uNzdhM2M2MWQzZDBjYzk2ZWVi
MmNiYzRjNTMzYTQ5ZTk5OTliZjFkZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKQEAgLTYzOTIsMjAgKzYzOTIsMTEgQEAgdm9pZCBCeXRl
Q29kZVBhcnNlcjo6cGFyc2VCbG9jayh1bnNpZ25lZCBsaW1pdCkKICAgICAgICAgICAgIE5FWFRf
T1BDT0RFKG9wX3RvX29iamVjdCk7CiAgICAgICAgIH0KIAotICAgICAgICBjYXNlIG9wX2luX2J5
X3ZhbDogewotICAgICAgICAgICAgQXJyYXlNb2RlIGFycmF5TW9kZSA9IGdldEFycmF5TW9kZShj
dXJyZW50SW5zdHJ1Y3Rpb25bT1BDT0RFX0xFTkdUSChvcF9pbl9ieV92YWwpIC0gMV0udS5hcnJh
eVByb2ZpbGUpOworICAgICAgICBjYXNlIG9wX2luOiB7CisgICAgICAgICAgICBBcnJheU1vZGUg
YXJyYXlNb2RlID0gZ2V0QXJyYXlNb2RlKGN1cnJlbnRJbnN0cnVjdGlvbltPUENPREVfTEVOR1RI
KG9wX2luKSAtIDFdLnUuYXJyYXlQcm9maWxlKTsKICAgICAgICAgICAgIHNldChWaXJ0dWFsUmVn
aXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFuZCksCi0gICAgICAgICAgICAgICAg
YWRkVG9HcmFwaChJbkJ5VmFsLCBPcEluZm8oYXJyYXlNb2RlLmFzV29yZCgpKSwgZ2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kKSksIGdldChWaXJ0dWFs
UmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkpKSk7Ci0gICAgICAgICAg
ICBORVhUX09QQ09ERShvcF9pbl9ieV92YWwpOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBv
cF9pbl9ieV9pZDogewotICAgICAgICAgICAgTm9kZSogYmFzZSA9IGdldChWaXJ0dWFsUmVnaXN0
ZXIoY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZCkpOwotICAgICAgICAgICAgdW5zaWdu
ZWQgaWRlbnRpZmllck51bWJlciA9IG1faW5saW5lU3RhY2tUb3AtPm1faWRlbnRpZmllclJlbWFw
W2N1cnJlbnRJbnN0cnVjdGlvblszXS51Lm9wZXJhbmRdOwotICAgICAgICAgICAgc2V0KFZpcnR1
YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kKSwKLSAgICAgICAgICAg
ICAgICBhZGRUb0dyYXBoKEluQnlJZCwgT3BJbmZvKGlkZW50aWZpZXJOdW1iZXIpLCBiYXNlKSk7
Ci0gICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbl9ieV9pZCk7Ci0gICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICBhZGRUb0dyYXBoKEluLCBPcEluZm8oYXJyYXlNb2RlLmFzV29y
ZCgpKSwgZ2V0KFZpcnR1YWxSZWdpc3RlcihjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5k
KSksIGdldChWaXJ0dWFsUmVnaXN0ZXIoY3VycmVudEluc3RydWN0aW9uWzNdLnUub3BlcmFuZCkp
KSk7CisgICAgICAgICAgICBORVhUX09QQ09ERShvcF9pbik7CiAgICAgICAgIH0KIAogICAgICAg
ICBjYXNlIG9wX2dldF9lbnVtZXJhYmxlX2xlbmd0aDogewpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdDYXBhYmlsaXRpZXMuY3BwCmluZGV4IGRhZGM5MmQ4NjdlNGM0NGEzNDYyZDhk
NmRhYjY0NTgwNzVhY2RkNzUuLjVjZWU2NWI2ODQzZWNhNTA4OGVkMWE5YTkxMDk0ZjM0MDU3YWFh
NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2FwYWJpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NhcGFiaWxpdGllcy5jcHAK
QEAgLTIzNiw4ICsyMzYsNyBAQCBDYXBhYmlsaXR5TGV2ZWwgY2FwYWJpbGl0eUxldmVsKE9wY29k
ZUlEIG9wY29kZUlELCBDb2RlQmxvY2sqIGNvZGVCbG9jaywgSW5zdHJ1YwogICAgIGNhc2Ugb3Bf
dG9fb2JqZWN0OgogICAgIGNhc2Ugb3Bfc3dpdGNoX2ltbToKICAgICBjYXNlIG9wX3N3aXRjaF9j
aGFyOgotICAgIGNhc2Ugb3BfaW5fYnlfdmFsOgotICAgIGNhc2Ugb3BfaW5fYnlfaWQ6CisgICAg
Y2FzZSBvcF9pbjoKICAgICBjYXNlIG9wX2dldF9zY29wZToKICAgICBjYXNlIG9wX2dldF9mcm9t
X3Njb3BlOgogICAgIGNhc2Ugb3BfZ2V0X2VudW1lcmFibGVfbGVuZ3RoOgpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDbG9iYmVyaXplLmggYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAppbmRleCAzZWEwMmE4NTQ4ZWI2YWI5NTFjYWNm
MDgzNDFkOTlhZmYzZTllNjc1Li42MjhmOGE5MzkxMjJlNTM3ODI2MjNjMTczYjAyMmFkZjllZWY0
YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUu
aAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaApAQCAtNjIz
LDggKzYyMyw3IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUsIGNv
bnN0IFJlYWRGdW5jdG9yJiByZWFkLCBjb25zdCBXcml0ZUZ1CiAgICAgY2FzZSBDb25zdHJ1Y3RW
YXJhcmdzOgogICAgIGNhc2UgQ29uc3RydWN0Rm9yd2FyZFZhcmFyZ3M6CiAgICAgY2FzZSBUb1By
aW1pdGl2ZToKLSAgICBjYXNlIEluQnlWYWw6Ci0gICAgY2FzZSBJbkJ5SWQ6CisgICAgY2FzZSBJ
bjoKICAgICBjYXNlIEhhc093blByb3BlcnR5OgogICAgIGNhc2UgVmFsdWVBZGQ6CiAgICAgY2Fz
ZSBTZXRGdW5jdGlvbk5hbWU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0NvbnN0YW50Rm9sZGluZ1BoYXNlLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHQ29uc3RhbnRGb2xkaW5nUGhhc2UuY3BwCmluZGV4IDc1N2M5YjQ3NTA4NmMwNDYzNDc2ZjZi
NmVjMTk1ZmYyZWFlM2FkYzQuLjZkMjExYWUyOWM5YjgwOGI2YjMxYTE1NzQxZTU4MmE5MzdiYmUy
ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRGb2xk
aW5nUGhhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29uc3RhbnRG
b2xkaW5nUGhhc2UuY3BwCkBAIC02NTEsMjMgKzY1MSw2IEBAIHByaXZhdGU6CiAgICAgICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGNhc2UgSW5CeVZhbDog
ewotICAgICAgICAgICAgICAgIEFic3RyYWN0VmFsdWUmIHByb3BlcnR5ID0gbV9zdGF0ZS5mb3JO
b2RlKG5vZGUtPmNoaWxkMigpKTsKLSAgICAgICAgICAgICAgICBpZiAoSlNWYWx1ZSBjb25zdGFu
dCA9IHByb3BlcnR5LnZhbHVlKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGNvbnN0YW50
LmlzU3RyaW5nKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIEpTU3RyaW5nKiBzdHJpbmcg
PSBhc1N0cmluZyhjb25zdGFudCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBTdHJp
bmdJbXBsKiBpbXBsID0gc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwoKTsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChpbXBsICYmIGltcGwtPmlzQXRvbWljKCkpIHsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpZGVudGlmaWVyTnVtYmVyID0gbV9ncmFwaC5pZGVudGlm
aWVycygpLmVuc3VyZShjb25zdF9jYXN0PFVuaXF1ZWRTdHJpbmdJbXBsKj4oc3RhdGljX2Nhc3Q8
Y29uc3QgVW5pcXVlZFN0cmluZ0ltcGwqPihpbXBsKSkpOwotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG5vZGUtPmNvbnZlcnRUb0luQnlJZChpZGVudGlmaWVyTnVtYmVyKTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIH0KLQogICAgICAgICAgICAgY2FzZSBUb1ByaW1pdGl2ZTogewogICAgICAgICAgICAg
ICAgIGlmIChtX3N0YXRlLmZvck5vZGUobm9kZS0+Y2hpbGQxKCkpLm1fdHlwZSAmIH4oU3BlY0Z1
bGxOdW1iZXIgfCBTcGVjQm9vbGVhbiB8IFNwZWNTdHJpbmcgfCBTcGVjU3ltYm9sIHwgU3BlY0Jp
Z0ludCkpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdEb2VzR0MuY3BwCmluZGV4IGZkZjJlNzdmZTFmZTUxNjhjNWU3ZTJhODgwODEyNjgzZGY2
MzAxNDQuLmZjZDFiNzI4NTZlNTRiYjJjM2ZlYzVhYTg3ZDFmOWMwM2IwMDdiOTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRG9lc0dDLmNwcAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKQEAgLTE5Myw4ICsxOTMsNyBAQCBib29s
IGRvZXNHQyhHcmFwaCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDYWxsU3RyaW5nQ29u
c3RydWN0b3I6CiAgICAgY2FzZSBOdW1iZXJUb1N0cmluZ1dpdGhSYWRpeDoKICAgICBjYXNlIE51
bWJlclRvU3RyaW5nV2l0aFZhbGlkUmFkaXhDb25zdGFudDoKLSAgICBjYXNlIEluQnlWYWw6Ci0g
ICAgY2FzZSBJbkJ5SWQ6CisgICAgY2FzZSBJbjoKICAgICBjYXNlIEhhc093blByb3BlcnR5Ogog
ICAgIGNhc2UgSnVtcDoKICAgICBjYXNlIEJyYW5jaDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCmluZGV4IGVjYmIzZDNiMGYyMGQzZDgxMTgzMTY1ZjdmMTM3
NmVmOTJhYmI1OWUuLmY0ZTkxNjE3ZDE3ODIxNDQzYzQ0YWJhNWZiMzJkNmYwZDliMzUyNzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHRml4dXBQaGFzZS5jcHAKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcApAQCAtMTQ3Niwx
MiArMTQ3Niw3IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUt
PmNoaWxkMigpKTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgSW5CeUlkOiB7
Ci0gICAgICAgICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0KLSAgICAgICAgY2FzZSBJbkJ5VmFsOiB7CisgICAgICAg
IGNhc2UgSW46IHsKICAgICAgICAgICAgIGlmIChub2RlLT5jaGlsZDIoKS0+c2hvdWxkU3BlY3Vs
YXRlSW50MzIoKSkgewogICAgICAgICAgICAgICAgIGNvbnZlcnRUb0hhc0luZGV4ZWRQcm9wZXJ0
eShub2RlKTsKICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSklUQ29tcGlsZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKSVRDb21waWxlci5jcHAKaW5kZXggNWZkNTBiOGM3ZjAxZWUzNmUxYjI3M2FhYzIz
YTBjODYyMjc4M2FjNC4uNWU1YTdhODc1MjQ0MjQxYjUyNmE5ZjI0YjRmZjQwY2U5ODg1YmY2MSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5jcHAKQEAgLTI2
NSw5ICsyNjUsMjYgQEAgdm9pZCBKSVRDb21waWxlcjo6bGluayhMaW5rQnVmZmVyJiBsaW5rQnVm
ZmVyKQogICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1fZ2V0QnlJZHMsIGxpbmtCdWZmZXIpOwog
ICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1fZ2V0QnlJZHNXaXRoVGhpcywgbGlua0J1ZmZlcik7
CiAgICAgZmluYWxpemVJbmxpbmVDYWNoZXMobV9wdXRCeUlkcywgbGlua0J1ZmZlcik7Ci0gICAg
ZmluYWxpemVJbmxpbmVDYWNoZXMobV9pbkJ5SWRzLCBsaW5rQnVmZmVyKTsKICAgICBmaW5hbGl6
ZUlubGluZUNhY2hlcyhtX2luc3RhbmNlT2ZzLCBsaW5rQnVmZmVyKTsKIAorICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBtX2lucy5zaXplKCk7ICsraSkgeworICAgICAgICBTdHJ1Y3R1cmVT
dHViSW5mbyYgaW5mbyA9ICptX2luc1tpXS5tX3N0dWJJbmZvOworCisgICAgICAgIENvZGVMb2Nh
dGlvbkxhYmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydCA9IGxpbmtCdWZmZXIubG9jYXRp
b25PZjxKSVRTdHViUm91dGluZVB0clRhZz4obV9pbnNbaV0ubV9qdW1wKTsKKyAgICAgICAgaW5m
by5wYXRjaC5zdGFydCA9IHN0YXJ0OworCisgICAgICAgIHB0cmRpZmZfdCBpbmxpbmVTaXplID0g
TWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAgICAgICAgIHN0
YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4obV9pbnNbaV0ubV9k
b25lKSk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlubGluZVNpemUgPj0gMCk7CisgICAgICAg
IGluZm8ucGF0Y2guaW5saW5lU2l6ZSA9IGlubGluZVNpemU7CisKKyAgICAgICAgaW5mby5wYXRj
aC5kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24gPSBNYWNyb0Fzc2VtYmxlcjo6
ZGlmZmVyZW5jZUJldHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgc3RhcnQsIGxpbmtCdWZmZXIu
bG9jYXRpb25PZjxKU0ludGVybmFsUHRyVGFnPihtX2luc1tpXS5tX3Nsb3dQYXRoR2VuZXJhdG9y
LT5jYWxsKCkpKTsKKworICAgICAgICBpbmZvLnBhdGNoLmRlbHRhRnJvbVN0YXJ0VG9TbG93UGF0
aFN0YXJ0ID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VCZXR3ZWVuQ29kZVB0cigKKyAgICAg
ICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8SlNJbnRlcm5hbFB0clRhZz4obV9p
bnNbaV0ubV9zbG93UGF0aEdlbmVyYXRvci0+bGFiZWwoKSkpOworICAgIH0KKyAgICAKICAgICBh
dXRvIGxpbmtDYWxsVGh1bmsgPSBGdW5jdGlvblB0cjxOb1B0clRhZz4odm0oKS0+Z2V0Q1RJU3R1
YihsaW5rQ2FsbFRodW5rR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpOwogICAg
IGZvciAoYXV0byYgcmVjb3JkIDogbV9qc0NhbGxzKSB7CiAgICAgICAgIENhbGxMaW5rSW5mbyYg
aW5mbyA9ICpyZWNvcmQuaW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHSklUQ29tcGlsZXIuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHSklUQ29t
cGlsZXIuaAppbmRleCBjMTdiMDMyMTE0ODhiZjg1OWJlNTU1MDRlMmVhYjBhZGZhNDM0OTg4Li4w
NTBlYjdjMTZmNmRiOTA0NDg5YmQyYjc4NmNkM2ZkMWYwMjk0NTllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmgKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdKSVRDb21waWxlci5oCkBAIC03Niw2ICs3NiwyMyBAQCBzdHJ1Y3Qg
Q2FsbExpbmtSZWNvcmQgewogICAgIEZ1bmN0aW9uUHRyPE9wZXJhdGlvblB0clRhZz4gbV9mdW5j
dGlvbjsKIH07CiAKK3N0cnVjdCBJblJlY29yZCB7CisgICAgSW5SZWNvcmQoCisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyOjpQYXRjaGFibGVKdW1wIGp1bXAsIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBk
b25lLAorICAgICAgICBTbG93UGF0aEdlbmVyYXRvciogc2xvd1BhdGhHZW5lcmF0b3IsIFN0cnVj
dHVyZVN0dWJJbmZvKiBzdHViSW5mbykKKyAgICAgICAgOiBtX2p1bXAoanVtcCkKKyAgICAgICAg
LCBtX2RvbmUoZG9uZSkKKyAgICAgICAgLCBtX3Nsb3dQYXRoR2VuZXJhdG9yKHNsb3dQYXRoR2Vu
ZXJhdG9yKQorICAgICAgICAsIG1fc3R1YkluZm8oc3R1YkluZm8pCisgICAgeworICAgIH0KKyAg
ICAKKyAgICBNYWNyb0Fzc2VtYmxlcjo6UGF0Y2hhYmxlSnVtcCBtX2p1bXA7CisgICAgTWFjcm9B
c3NlbWJsZXI6OkxhYmVsIG1fZG9uZTsKKyAgICBTbG93UGF0aEdlbmVyYXRvciogbV9zbG93UGF0
aEdlbmVyYXRvcjsKKyAgICBTdHJ1Y3R1cmVTdHViSW5mbyogbV9zdHViSW5mbzsKK307CisKIC8v
ID09PSBKSVRDb21waWxlciA9PT0KIC8vCiAvLyBERkc6OkpJVENvbXBpbGVyIGlzIHJlc3BvbnNp
YmxlIGZvciBnZW5lcmF0aW5nIEpJVCBjb2RlIGZyb20gdGhlIGRhdGFmbG93IGdyYXBoLgpAQCAt
MTkyLDExICsyMDksMTEgQEAgcHVibGljOgogICAgICAgICBtX2luc3RhbmNlT2ZzLmFwcGVuZChJ
bmxpbmVDYWNoZVdyYXBwZXI8SklUSW5zdGFuY2VPZkdlbmVyYXRvcj4oZ2VuLCBzbG93UGF0aCkp
OwogICAgIH0KIAotICAgIHZvaWQgYWRkSW5CeUlkKGNvbnN0IEpJVEluQnlJZEdlbmVyYXRvciYg
Z2VuLCBTbG93UGF0aEdlbmVyYXRvciogc2xvd1BhdGgpCisgICAgdm9pZCBhZGRJbihjb25zdCBJ
blJlY29yZCYgcmVjb3JkKQogICAgIHsKLSAgICAgICAgbV9pbkJ5SWRzLmFwcGVuZChJbmxpbmVD
YWNoZVdyYXBwZXI8SklUSW5CeUlkR2VuZXJhdG9yPihnZW4sIHNsb3dQYXRoKSk7CisgICAgICAg
IG1faW5zLmFwcGVuZChyZWNvcmQpOwogICAgIH0KLQorICAgIAogICAgIHZvaWQgYWRkSlNDYWxs
KENhbGwgZmFzdENhbGwsIENhbGwgc2xvd0NhbGwsIERhdGFMYWJlbFB0ciB0YXJnZXRUb0NoZWNr
LCBDYWxsTGlua0luZm8qIGluZm8pCiAgICAgewogICAgICAgICBtX2pzQ2FsbHMuYXBwZW5kKEpT
Q2FsbFJlY29yZChmYXN0Q2FsbCwgc2xvd0NhbGwsIHRhcmdldFRvQ2hlY2ssIGluZm8pKTsKQEAg
LTM0Miw4ICszNTksOCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxJbmxpbmVDYWNoZVdyYXBwZXI8
SklUR2V0QnlJZEdlbmVyYXRvcj4sIDQ+IG1fZ2V0QnlJZHM7CiAgICAgVmVjdG9yPElubGluZUNh
Y2hlV3JhcHBlcjxKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I+LCA0PiBtX2dldEJ5SWRzV2l0
aFRoaXM7CiAgICAgVmVjdG9yPElubGluZUNhY2hlV3JhcHBlcjxKSVRQdXRCeUlkR2VuZXJhdG9y
PiwgND4gbV9wdXRCeUlkczsKLSAgICBWZWN0b3I8SW5saW5lQ2FjaGVXcmFwcGVyPEpJVEluQnlJ
ZEdlbmVyYXRvcj4sIDQ+IG1faW5CeUlkczsKICAgICBWZWN0b3I8SW5saW5lQ2FjaGVXcmFwcGVy
PEpJVEluc3RhbmNlT2ZHZW5lcmF0b3I+LCA0PiBtX2luc3RhbmNlT2ZzOworICAgIFZlY3RvcjxJ
blJlY29yZCwgND4gbV9pbnM7CiAgICAgVmVjdG9yPEpTQ2FsbFJlY29yZCwgND4gbV9qc0NhbGxz
OwogICAgIFZlY3RvcjxKU0RpcmVjdENhbGxSZWNvcmQsIDQ+IG1fanNEaXJlY3RDYWxsczsKICAg
ICBWZWN0b3I8SlNEaXJlY3RUYWlsQ2FsbFJlY29yZCwgND4gbV9qc0RpcmVjdFRhaWxDYWxsczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZS5oIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKaW5kZXggNjIzNjMwOWU2MmVlNWZmNTM4NjBi
NWRhYmJmZTJiMGIxMWQwYWYwOS4uNWNhZDBhYTRkMGQ0ZTVkMTZmNjY2NzMwZTcxY2JkYTljODg1
OWYxNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlLmgKQEAgLTc1MiwxNSArNzUyLDYg
QEAgcHVibGljOgogICAgICAgICBzZXRPcChTZXRSZWdFeHBPYmplY3RMYXN0SW5kZXgpOwogICAg
ICAgICBtX29wSW5mbyA9IGZhbHNlOwogICAgIH0KLQotICAgIHZvaWQgY29udmVydFRvSW5CeUlk
KHVuc2lnbmVkIGlkZW50aWZpZXJOdW1iZXIpCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcCA9
PSBJbkJ5VmFsKTsKLSAgICAgICAgc2V0T3BBbmREZWZhdWx0RmxhZ3MoSW5CeUlkKTsKLSAgICAg
ICAgY2hpbGRyZW4uc2V0Q2hpbGQyKEVkZ2UoKSk7Ci0gICAgICAgIG1fb3BJbmZvID0gaWRlbnRp
Zmllck51bWJlcjsKLSAgICAgICAgbV9vcEluZm8yID0gT3BJbmZvV3JhcHBlcigpOwotICAgIH0K
ICAgICAKICAgICBKU1ZhbHVlIGFzSlNWYWx1ZSgpCiAgICAgewpAQCAtMTAyOCw3ICsxMDE5LDYg
QEAgcHVibGljOgogICAgICAgICBjYXNlIFB1dFNldHRlckJ5SWQ6CiAgICAgICAgIGNhc2UgUHV0
R2V0dGVyU2V0dGVyQnlJZDoKICAgICAgICAgY2FzZSBEZWxldGVCeUlkOgotICAgICAgICBjYXNl
IEluQnlJZDoKICAgICAgICAgY2FzZSBHZXREeW5hbWljVmFyOgogICAgICAgICBjYXNlIFB1dER5
bmFtaWNWYXI6CiAgICAgICAgIGNhc2UgUmVzb2x2ZVNjb3BlRm9ySG9pc3RpbmdGdW5jRGVjbElu
RXZhbDoKQEAgLTE5OTcsNyArMTk4Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgY2FzZSBHZXRJbmRl
eGVkUHJvcGVydHlTdG9yYWdlOgogICAgICAgICBjYXNlIEdldEFycmF5TGVuZ3RoOgogICAgICAg
ICBjYXNlIEdldFZlY3Rvckxlbmd0aDoKLSAgICAgICAgY2FzZSBJbkJ5VmFsOgorICAgICAgICBj
YXNlIEluOgogICAgICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICBjYXNlIFB1dEJ5
VmFsOgogICAgICAgICBjYXNlIFB1dEJ5VmFsQWxpYXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR05vZGVUeXBlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR05vZGVUeXBlLmgKaW5kZXggNTMxNzExYmRhYjZkZGMzODU1ZTQxOTA1OWJkNzdiYjFhYmRl
MjU0ZS4uOTBlNGVmM2I4NmU4OTJkOGM5OWUxOGQzYWQ0MWU5OWRiMWI1NzllZSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHTm9kZVR5cGUuaApAQCAtMzcwLDggKzM3MCw3IEBAIG5hbWVz
cGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKICAgICBtYWNybyhOdW1iZXJUb1N0cmluZ1dpdGhW
YWxpZFJhZGl4Q29uc3RhbnQsIE5vZGVSZXN1bHRKUykgXAogICAgIG1hY3JvKE5ld1N0cmluZ09i
amVjdCwgTm9kZVJlc3VsdEpTKSBcCiAgICAgbWFjcm8oTWFrZVJvcGUsIE5vZGVSZXN1bHRKUykg
XAotICAgIG1hY3JvKEluQnlWYWwsIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAotICAgIG1hY3JvKEluQnlJZCwgTm9kZVJlc3VsdEJvb2xlYW4gfCBOb2RlTXVzdEdlbmVy
YXRlKSBcCisgICAgbWFjcm8oSW4sIE5vZGVSZXN1bHRCb29sZWFuIHwgTm9kZU11c3RHZW5lcmF0
ZSkgXAogICAgIG1hY3JvKFByb2ZpbGVUeXBlLCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFj
cm8oUHJvZmlsZUNvbnRyb2xGbG93LCBOb2RlTXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oU2V0
RnVuY3Rpb25OYW1lLCBOb2RlTXVzdEdlbmVyYXRlKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCmlu
ZGV4IDljNjYxZjkwNWFhNDdjMjBjNThjMTMwMjc0MGEzYjIyZGU0YWE0YTQuLjBkMGU3MTdiZWFl
NGZmNTI4NjgwYTAwMmYwODg2NGQ0N2Y5M2EwMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGljdGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCkBA
IC05ODEsOCArOTgxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHNldFByZWRpY3Rpb24oU3Bl
Y09iamVjdE90aGVyKTsKICAgICAgICAgICAgIGJyZWFrOwogCi0gICAgICAgIGNhc2UgSW5CeVZh
bDoKLSAgICAgICAgY2FzZSBJbkJ5SWQ6CisgICAgICAgIGNhc2UgSW46CiAgICAgICAgICAgICBz
ZXRQcmVkaWN0aW9uKFNwZWNCb29sZWFuKTsKICAgICAgICAgICAgIGJyZWFrOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCmluZGV4IGQ2ZDAyNmM0MjY5
YjM2NDI1NTFhMjY4YWQxNTYzYjgyNDY3ZTZkNzEuLjI2ZjZjNGNmYmQzMThiNTUxMGE2MmU5YWY4
YWM1MDVjOTI1YTVlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U2FmZVRvRXhlY3V0ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRv
RXhlY3V0ZS5oCkBAIC0zMzIsOCArMzMyLDcgQEAgYm9vbCBzYWZlVG9FeGVjdXRlKEFic3RyYWN0
U3RhdGVUeXBlJiBzdGF0ZSwgR3JhcGgmIGdyYXBoLCBOb2RlKiBub2RlLCBib29sIGlnbm8KICAg
ICBjYXNlIENhbGxTdHJpbmdDb25zdHJ1Y3RvcjoKICAgICBjYXNlIE5ld1N0cmluZ09iamVjdDoK
ICAgICBjYXNlIE1ha2VSb3BlOgotICAgIGNhc2UgSW5CeVZhbDoKLSAgICBjYXNlIEluQnlJZDoK
KyAgICBjYXNlIEluOgogICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgY2FzZSBQdXNoV2l0
aFNjb3BlOgogICAgIGNhc2UgQ3JlYXRlQWN0aXZhdGlvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAKaW5kZXggMWQ1NmQ0NjU3YTc4M2RkZWVi
YzYyMTU4ZmIyOTdlZmE0OGZmMDgxMi4uOTc1ZTVhYzA2MGRjMjkwOTNjMjQxNjEzZTJhMmQ0MDVh
MzY5MTI1OSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHAKQEAgLTEwNTYsNTIgKzEwNTYsNjcgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29t
cGlsZUdldEJ5SWRGbHVzaChOb2RlKiBub2RlLCBBY2Nlc3NUeXBlIGFjY2Vzc1R5cGUpCiAgICAg
fQogfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5CeUlkKE5vZGUqIG5vZGUpCit2
b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW4oTm9kZSogbm9kZSkKIHsKICAgICBTcGVjdWxh
dGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKLSAgICBKU1ZhbHVlUmVn
c1RlbXBvcmFyeSByZXN1bHQodGhpcywgUmV1c2UsIGJhc2UsIFBheWxvYWRXb3JkKTsKLQogICAg
IEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKLSAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdz
ID0gcmVzdWx0LnJlZ3MoKTsKLQotICAgIGJhc2UudXNlKCk7CisgICAgCisgICAgaWYgKEpTU3Ry
aW5nKiBzdHJpbmcgPSBub2RlLT5jaGlsZDIoKS0+ZHluYW1pY0Nhc3RDb25zdGFudDxKU1N0cmlu
Zyo+KCptX2ppdC52bSgpKSkgeworICAgICAgICBpZiAoc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwo
KSAmJiBzdHJpbmctPnRyeUdldFZhbHVlSW1wbCgpLT5pc0F0b21pYygpKSB7CisgICAgICAgICAg
ICBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8gPSBtX2ppdC5jb2RlQmxvY2soKS0+YWRkU3R1
YkluZm8oQWNjZXNzVHlwZTo6SW4pOworICAgICAgICAgICAgCisgICAgICAgICAgICBHUFJUZW1w
b3JhcnkgcmVzdWx0KHRoaXMpOworICAgICAgICAgICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3Vs
dC5ncHIoKTsKIAotICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1h
bnRpYzsKLSAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlID0gbV9qaXQucmVjb3JkQ2FsbFNpdGVB
bmRHZW5lcmF0ZUV4Y2VwdGlvbkhhbmRsaW5nT1NSRXhpdElmTmVlZGVkKGNvZGVPcmlnaW4sIG1f
c3RyZWFtLT5zaXplKCkpOwotICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7Ci0gICAgSklUSW5CeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9q
aXQuY29kZUJsb2NrKCksIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLCBpZGVu
dGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1iZXIoKSksCi0gICAgICAgIEpTVmFsdWVSZWdz
OjpwYXlsb2FkT25seShiYXNlR1BSKSwgcmVzdWx0UmVncyk7Ci0gICAgZ2VuLmdlbmVyYXRlRmFz
dFBhdGgobV9qaXQpOworICAgICAgICAgICAgdXNlKG5vZGUtPmNoaWxkMigpKTsKKyAgICAgICAg
ICAgIAorICAgICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6OlBhdGNoYWJsZUp1bXAganVtcCA9IG1f
aml0LnBhdGNoYWJsZUp1bXAoKTsKKyAgICAgICAgICAgIE1hY3JvQXNzZW1ibGVyOjpMYWJlbCBk
b25lID0gbV9qaXQubGFiZWwoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgLy8gU2luY2Ug
dGhpcyBibG9jayBpcyBleGVjdXRlZCBvbmx5IHdoZW4gdGhlIHJlc3VsdCBvZiBzdHJpbmctPnRy
eUdldFZhbHVlSW1wbCgpIGlzIGF0b21pYywKKyAgICAgICAgICAgIC8vIHdlIGNhbiBjYXN0IGl0
IHRvIGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqIHNhZmVseS4KKyAgICAgICAgICAgIGF1dG8gc2xv
d1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAganVtcC5tX2p1bXAsIHRoaXMs
IG9wZXJhdGlvbkluT3B0aW1pemUsCisgICAgICAgICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBheWxv
YWRPbmx5KHJlc3VsdEdQUiksIHN0dWJJbmZvLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgIHN0
YXRpY19jYXN0PGNvbnN0IEF0b21pY1N0cmluZ0ltcGwqPihzdHJpbmctPnRyeUdldFZhbHVlSW1w
bCgpKSk7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIHN0dWJJbmZvLT5jYWxsU2l0ZUluZGV4
ID0gbV9qaXQuYWRkQ2FsbFNpdGUobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKKyAgICAgICAgICAg
IHN0dWJJbmZvLT5jb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICAg
ICAgc3R1YkluZm8tPnBhdGNoLmJhc2VHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KGJhc2VHUFIp
OworICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0gc3RhdGljX2Nhc3Q8aW50
OF90PihyZXN1bHRHUFIpOworICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLnRoaXNHUFIgPSBz
dGF0aWNfY2FzdDxpbnQ4X3Q+KEludmFsaWRHUFJSZWcpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CisgICAgICAgICAgICBzdHViSW5mby0+cGF0Y2gudmFsdWVUYWdHUFIgPSBzdGF0aWNfY2FzdDxp
bnQ4X3Q+KEludmFsaWRHUFJSZWcpOworICAgICAgICAgICAgc3R1YkluZm8tPnBhdGNoLmJhc2VU
YWdHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KEludmFsaWRHUFJSZWcpOworICAgICAgICAgICAg
c3R1YkluZm8tPnBhdGNoLnRoaXNUYWdHUFIgPSBzdGF0aWNfY2FzdDxpbnQ4X3Q+KEludmFsaWRH
UFJSZWcpOworI2VuZGlmCisgICAgICAgICAgICBzdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVy
cyA9IHVzZWRSZWdpc3RlcnMoKTsKIAotICAgIGF1dG8gc2xvd1BhdGggPSBzbG93UGF0aENhbGwo
Ci0gICAgICAgIGdlbi5zbG93UGF0aEp1bXAoKSwgdGhpcywgb3BlcmF0aW9uSW5CeUlkT3B0aW1p
emUsCi0gICAgICAgIE5lZWRUb1NwaWxsLCBFeGNlcHRpb25DaGVja1JlcXVpcmVtZW50OjpDaGVj
a05lZWRlZCwKLSAgICAgICAgcmVzdWx0UmVncywgZ2VuLnN0dWJJbmZvKCksIENDYWxsSGVscGVy
czo6Q2VsbFZhbHVlKGJhc2VHUFIpLCBpZGVudGlmaWVyVUlEKG5vZGUtPmlkZW50aWZpZXJOdW1i
ZXIoKSkpOworICAgICAgICAgICAgbV9qaXQuYWRkSW4oSW5SZWNvcmQoanVtcCwgZG9uZSwgc2xv
d1BhdGguZ2V0KCksIHN0dWJJbmZvKSk7CisgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRv
cihXVEZNb3ZlKHNsb3dQYXRoKSk7CiAKLSAgICBtX2ppdC5hZGRJbkJ5SWQoZ2VuLCBzbG93UGF0
aC5nZXQoKSk7Ci0gICAgYWRkU2xvd1BhdGhHZW5lcmF0b3IoV1RGTW92ZShzbG93UGF0aCkpOwor
ICAgICAgICAgICAgYmFzZS51c2UoKTsKIAotICAgIGJsZXNzZWRCb29sZWFuUmVzdWx0KHJlc3Vs
dFJlZ3MucGF5bG9hZEdQUigpLCBub2RlLCBVc2VDaGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOwot
fQorICAgICAgICAgICAgYmxlc3NlZEJvb2xlYW5SZXN1bHQocmVzdWx0R1BSLCBub2RlLCBVc2VD
aGlsZHJlbkNhbGxlZEV4cGxpY2l0bHkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgfQogCi12b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlSW5CeVZhbChOb2RlKiBub2Rl
KQotewotICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbm9kZS0+Y2hpbGQxKCkp
OwogICAgIEpTVmFsdWVPcGVyYW5kIGtleSh0aGlzLCBub2RlLT5jaGlsZDIoKSk7Ci0KLSAgICBH
UFJSZWcgYmFzZUdQUiA9IGJhc2UuZ3ByKCk7CiAgICAgSlNWYWx1ZVJlZ3MgcmVncyA9IGtleS5q
c1ZhbHVlUmVncygpOwotCisgICAgICAgIAorICAgIEdQUkZsdXNoZWRDYWxsUmVzdWx0IHJlc3Vs
dCh0aGlzKTsKKyAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOworICAgICAgICAK
ICAgICBiYXNlLnVzZSgpOwogICAgIGtleS51c2UoKTsKLQorICAgICAgICAKICAgICBmbHVzaFJl
Z2lzdGVycygpOwotICAgIEpTVmFsdWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMp
OwotICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MgPSByZXN1bHQucmVncygpOwotICAgIGNhbGxP
cGVyYXRpb24ob3BlcmF0aW9uSW5CeVZhbCwgcmVzdWx0UmVncywgYmFzZUdQUiwgcmVncyk7Cisg
ICAgY2FsbE9wZXJhdGlvbigKKyAgICAgICAgb3BlcmF0aW9uR2VuZXJpY0luLCBleHRyYWN0UmVz
dWx0KEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZXN1bHRHUFIpKSwKKyAgICAgICAgYmFzZUdQ
UiwgcmVncyk7CiAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKLSAgICBibGVzc2VkQm9vbGVh
blJlc3VsdChyZXN1bHRSZWdzLnBheWxvYWRHUFIoKSwgbm9kZSwgVXNlQ2hpbGRyZW5DYWxsZWRF
eHBsaWNpdGx5KTsKKyAgICBibGVzc2VkQm9vbGVhblJlc3VsdChyZXN1bHRHUFIsIG5vZGUsIFVz
ZUNoaWxkcmVuQ2FsbGVkRXhwbGljaXRseSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNv
bXBpbGVEZWxldGVCeUlkKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmgKaW5kZXggMDVhMDhlYTE0ZTcxODE2NGE0ZWZmYzk1MDZlMzZi
MzllMWNmZmY0Yi4uNzdhNjNiMTU5NDkzZTFiYzkyNzE3YjdkNTVlMTg4NzZjOGM2ZTM4NCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuaApAQCAtNzM1
LDggKzczNSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbXBpbGVQdXNoV2l0aFNjb3BlKE5vZGUq
KTsKICAgICB2b2lkIGNvbXBpbGVHZXRCeUlkKE5vZGUqLCBBY2Nlc3NUeXBlKTsKICAgICB2b2lk
IGNvbXBpbGVHZXRCeUlkRmx1c2goTm9kZSosIEFjY2Vzc1R5cGUpOwotICAgIHZvaWQgY29tcGls
ZUluQnlJZChOb2RlKik7Ci0gICAgdm9pZCBjb21waWxlSW5CeVZhbChOb2RlKik7CisgICAgdm9p
ZCBjb21waWxlSW4oTm9kZSopOwogICAgIAogICAgIHZvaWQgbm9uU3BlY3VsYXRpdmVOb25QZWVw
aG9sZUNvbXBhcmVOdWxsT3JVbmRlZmluZWQoRWRnZSBvcGVyYW5kKTsKICAgICB2b2lkIG5vblNw
ZWN1bGF0aXZlUGVlcGhvbGVCcmFuY2hOdWxsT3JVbmRlZmluZWQoRWRnZSBvcGVyYW5kLCBOb2Rl
KiBicmFuY2hOb2RlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDI3MmM1N2E2YTg4YWM4YTdjYzFjYzAxYjQwYjY1
NTJkYjRkZGU1OTEuLmEzMDNjM2ZmNGMwNzZmMzFlN2QwYTAyNjg2N2FlYjgwYmY3ZjVkNTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82
NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcApAQCAtMzc1NiwxMiArMzc1Niw4IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGUoTm9kZSogbm9kZSkKICAgICAgICAgY29tcGlsZVNldEZ1bmN0aW9uTmFtZShub2RlKTsKICAg
ICAgICAgYnJlYWs7CiAKLSAgICBjYXNlIEluQnlJZDoKLSAgICAgICAgY29tcGlsZUluQnlJZChu
b2RlKTsKLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEluQnlWYWw6Ci0gICAgICAgIGNvbXBp
bGVJbkJ5VmFsKG5vZGUpOworICAgIGNhc2UgSW46CisgICAgICAgIGNvbXBpbGVJbihub2RlKTsK
ICAgICAgICAgYnJlYWs7CiAKICAgICBjYXNlIEhhc093blByb3BlcnR5OiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDY0LmNwcAppbmRleCA1MGYy
NjQ1MzUzOGE4YzI4MDI1NjA5ZjZjMzYxNWVlNjY5NDZkOGNjLi4wNmE0NmJhZjA4ZjZjZDI5NmIx
Y2M3N2UzNzc4NmM1MjYwNDAzOWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAKQEAgLTQzMDYsMTIgKzQzMDYsOCBAQCB2b2lkIFNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGNvbXBpbGVTZXRGdW5j
dGlvbk5hbWUobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCi0gICAgY2FzZSBJbkJ5SWQ6Ci0gICAg
ICAgIGNvbXBpbGVJbkJ5SWQobm9kZSk7Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBJbkJ5
VmFsOgotICAgICAgICBjb21waWxlSW5CeVZhbChub2RlKTsKKyAgICBjYXNlIEluOgorICAgICAg
ICBjb21waWxlSW4obm9kZSk7CiAgICAgICAgIGJyZWFrOwogCiAgICAgY2FzZSBIYXNPd25Qcm9w
ZXJ0eTogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmls
aXRpZXMuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CmluZGV4IGYxNTEzYmI5OTlhOWMzZWUyMmVjMDE5NTM2MTU5ZWVjODliOWJlOTQuLjljZGQxMTlh
MGQ5OTgxYWJlYjYzZjBlYzA3MTRlNWU2MjVlN2ZhMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKQEAgLTIwNSw4ICsyMDUsNyBAQCBpbmxpbmUg
Q2FwYWJpbGl0eUxldmVsIGNhbkNvbXBpbGUoTm9kZSogbm9kZSkKICAgICBjYXNlIFRocm93Ogog
ICAgIGNhc2UgVGhyb3dTdGF0aWNFcnJvcjoKICAgICBjYXNlIFVucmVhY2hhYmxlOgotICAgIGNh
c2UgSW5CeVZhbDoKLSAgICBjYXNlIEluQnlJZDoKKyAgICBjYXNlIEluOgogICAgIGNhc2UgSGFz
T3duUHJvcGVydHk6CiAgICAgY2FzZSBJc0NlbGxXaXRoVHlwZToKICAgICBjYXNlIE1hcEhhc2g6
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAKaW5kZXgg
OTExZDYyYWQ1NDI3YWIxNWEzZmM1YzNhMmQ3NTRmYmI5ODYxYTE0NC4uMzI0N2QyYTYyYjNjM2Qz
N2RkYWQ4ZjE3Y2E0OGJlNWZhM2Q2MmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMTG93ZXJERkdUb0IzLmNwcApAQCAtNzA4LDExICs3MDgsOCBAQCBwcml2YXRlOgogICAg
ICAgICBjYXNlIEdldEJ5SWREaXJlY3RGbHVzaDoKICAgICAgICAgICAgIGNvbXBpbGVHZXRCeUlk
KEFjY2Vzc1R5cGU6OkdldERpcmVjdCk7CiAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2Fz
ZSBJbkJ5SWQ6Ci0gICAgICAgICAgICBjb21waWxlSW5CeUlkKCk7Ci0gICAgICAgICAgICBicmVh
azsKLSAgICAgICAgY2FzZSBJbkJ5VmFsOgotICAgICAgICAgICAgY29tcGlsZUluQnlWYWwoKTsK
KyAgICAgICAgY2FzZSBJbjoKKyAgICAgICAgICAgIGNvbXBpbGVJbigpOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgSGFzT3duUHJvcGVydHk6CiAgICAgICAgICAgICBjb21waWxl
SGFzT3duUHJvcGVydHkoKTsKQEAgLTk3MTYsNzAgKzk3MTMsODcgQEAgcHJpdmF0ZToKICAgICAg
ICAgc2V0SlNWYWx1ZShtX291dC5waGkoSW50NjQsIHJlc3VsdHMpKTsKICAgICB9CiAgICAgCi0g
ICAgdm9pZCBjb21waWxlSW5CeVZhbCgpCisgICAgdm9pZCBjb21waWxlSW4oKQogICAgIHsKLSAg
ICAgICAgc2V0SlNWYWx1ZSh2bUNhbGwoSW50NjQsIG1fb3V0Lm9wZXJhdGlvbihvcGVyYXRpb25J
bkJ5VmFsKSwgbV9jYWxsRnJhbWUsIGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIGxvd0pTVmFs
dWUobV9ub2RlLT5jaGlsZDIoKSkpKTsKLSAgICB9CisgICAgICAgIERGR19BU1NFUlQobV9ncmFw
aCwgbV9ub2RlLCBtX25vZGUtPmNoaWxkMSgpLnVzZUtpbmQoKSA9PSBDZWxsVXNlLCBtX25vZGUt
PmNoaWxkMSgpLnVzZUtpbmQoKSk7CiAKLSAgICB2b2lkIGNvbXBpbGVJbkJ5SWQoKQotICAgIHsK
ICAgICAgICAgTm9kZSogbm9kZSA9IG1fbm9kZTsKLSAgICAgICAgVW5pcXVlZFN0cmluZ0ltcGwq
IHVpZCA9IG1fZ3JhcGguaWRlbnRpZmllcnMoKVtub2RlLT5pZGVudGlmaWVyTnVtYmVyKCldOwot
ICAgICAgICBMVmFsdWUgYmFzZSA9IGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSk7Ci0KLSAgICAg
ICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0Y2hwb2ludChJbnQ2NCk7
Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZFNvbWVSZWdpc3RlcihiYXNlKTsKLSAgICAgICAg
cGF0Y2hwb2ludC0+YXBwZW5kKG1fdGFnTWFzaywgVmFsdWVSZXA6OmxhdGVSZWcoR1BSSW5mbzo6
dGFnTWFza1JlZ2lzdGVyKSk7Ci0gICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVO
dW1iZXIsIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3Rlcikp
OwotCi0gICAgICAgIHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRj
aFJlZ2lzdGVycygpKTsKLQotICAgICAgICBSZWZQdHI8UGF0Y2hwb2ludEV4Y2VwdGlvbkhhbmRs
ZT4gZXhjZXB0aW9uSGFuZGxlID0KLSAgICAgICAgICAgIHByZXBhcmVQYXRjaHBvaW50Rm9yRXhj
ZXB0aW9ucyhwYXRjaHBvaW50KTsKLQotICAgICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0
ZTsKLSAgICAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAotICAgICAgICAgICAgWz1dIChD
Q2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMp
IHsKLSAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dT
Y3JhdGNoKGppdCk7Ci0KLSAgICAgICAgICAgICAgICBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5k
ZXggPQotICAgICAgICAgICAgICAgICAgICBzdGF0ZS0+aml0Q29kZS0+Y29tbW9uLmFkZFVuaXF1
ZUNhbGxTaXRlSW5kZXgobm9kZS0+b3JpZ2luLnNlbWFudGljKTsKLQotICAgICAgICAgICAgICAg
IC8vIFRoaXMgaXMgdGhlIGRpcmVjdCBleGl0IHRhcmdldCBmb3Igb3BlcmF0aW9uIGNhbGxzLgot
ICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0K
LSAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRDcmVhdGlv
bihwYXJhbXMpLT5qdW1wcyhqaXQpOwotCi0gICAgICAgICAgICAgICAgYXV0byBnZW5lcmF0b3Ig
PSBCb3g8SklUSW5CeUlkR2VuZXJhdG9yPjo6Y3JlYXRlKAotICAgICAgICAgICAgICAgICAgICBq
aXQuY29kZUJsb2NrKCksIG5vZGUtPm9yaWdpbi5zZW1hbnRpYywgY2FsbFNpdGVJbmRleCwKLSAg
ICAgICAgICAgICAgICAgICAgcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksIHVpZCwgSlNW
YWx1ZVJlZ3MocGFyYW1zWzFdLmdwcigpKSwKLSAgICAgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3MocGFyYW1zWzBdLmdwcigpKSk7Ci0KLSAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmdlbmVy
YXRlRmFzdFBhdGgoaml0KTsKLSAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGRv
bmUgPSBqaXQubGFiZWwoKTsKLQotICAgICAgICAgICAgICAgIHBhcmFtcy5hZGRMYXRlUGF0aCgK
LSAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkgeworICAgICAgICBF
ZGdlIGJhc2UgPSBub2RlLT5jaGlsZDEoKTsKKyAgICAgICAgTFZhbHVlIGNlbGwgPSBsb3dDZWxs
KGJhc2UpOworICAgICAgICBpZiAoSlNTdHJpbmcqIHN0cmluZyA9IG5vZGUtPmNoaWxkMigpLT5k
eW5hbWljQ2FzdENvbnN0YW50PEpTU3RyaW5nKj4odm0oKSkpIHsKKyAgICAgICAgICAgIGlmIChz
dHJpbmctPnRyeUdldFZhbHVlSW1wbCgpICYmIHN0cmluZy0+dHJ5R2V0VmFsdWVJbXBsKCktPmlz
QXRvbWljKCkpIHsKKyAgICAgICAgICAgICAgICBVbmlxdWVkU3RyaW5nSW1wbCogc3RyID0gYml0
d2lzZV9jYXN0PFVuaXF1ZWRTdHJpbmdJbXBsKj4oc3RyaW5nLT50cnlHZXRWYWx1ZUltcGwoKSk7
CisgICAgICAgICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gbV9vdXQucGF0
Y2hwb2ludChJbnQ2NCk7CisgICAgICAgICAgICAgICAgcGF0Y2hwb2ludC0+YXBwZW5kU29tZVJl
Z2lzdGVyKGNlbGwpOworICAgICAgICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ01h
c2ssIFZhbHVlUmVwOjpsYXRlUmVnKEdQUkluZm86OnRhZ01hc2tSZWdpc3RlcikpOworICAgICAg
ICAgICAgICAgIHBhdGNocG9pbnQtPmFwcGVuZChtX3RhZ1R5cGVOdW1iZXIsIFZhbHVlUmVwOjps
YXRlUmVnKEdQUkluZm86OnRhZ1R5cGVOdW1iZXJSZWdpc3RlcikpOworICAgICAgICAgICAgICAg
IHBhdGNocG9pbnQtPmNsb2JiZXIoUmVnaXN0ZXJTZXQ6Om1hY3JvU2NyYXRjaFJlZ2lzdGVycygp
KTsKKworICAgICAgICAgICAgICAgIFJlZlB0cjxQYXRjaHBvaW50RXhjZXB0aW9uSGFuZGxlPiBl
eGNlcHRpb25IYW5kbGUgPSBwcmVwYXJlUGF0Y2hwb2ludEZvckV4Y2VwdGlvbnMocGF0Y2hwb2lu
dCk7CisKKyAgICAgICAgICAgICAgICBTdGF0ZSogc3RhdGUgPSAmbV9mdGxTdGF0ZTsKKyAgICAg
ICAgICAgICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCisgICAgICAgICAgICAgICAgICAg
IFs9XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYg
cGFyYW1zKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAKLSAgICAgICAgICAgICAgICAgICAgICAgIGdl
bmVyYXRvci0+c2xvd1BhdGhKdW1wKCkubGluaygmaml0KTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIENDYWxsSGVscGVyczo6TGFiZWwgc2xvd1BhdGhCZWdpbiA9IGppdC5sYWJlbCgpOwotICAg
ICAgICAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpDYWxsIHNsb3dQYXRoQ2FsbCA9IGNh
bGxPcGVyYXRpb24oCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKnN0YXRlLCBwYXJhbXMu
dW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LCBub2RlLT5vcmlnaW4uc2VtYW50aWMsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9ucy5nZXQoKSwgb3BlcmF0aW9uSW5CeUlk
T3B0aW1pemUsIHBhcmFtc1swXS5ncHIoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoZ2VuZXJhdG9yLT5zdHViSW5mbygpKSwgcGFyYW1z
WzFdLmdwcigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6VHJ1
c3RlZEltbVB0cih1aWQpKS5jYWxsKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBqaXQuanVt
cCgpLmxpbmtUbyhkb25lLCAmaml0KTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJh
dG9yLT5yZXBvcnRTbG93UGF0aENhbGwoc2xvd1BhdGhCZWdpbiwgc2xvd1BhdGhDYWxsKTsKLQot
ICAgICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFs9XSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnZW5lcmF0b3ItPmZpbmFsaXplKGxpbmtCdWZmZXIsIGxpbmtC
dWZmZXIpOworICAgICAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyB0aGUgZGlyZWN0IGV4
aXQgdGFyZ2V0IGZvciBvcGVyYXRpb24gY2FsbHMuIFdlIGRvbid0IG5lZWQgYSBKUyBleGNlcHRp
b25IYW5kbGUgYmVjYXVzZSB3ZSBkb24ndAorICAgICAgICAgICAgICAgICAgICAgICAgLy8gY2Fj
aGUgUHJveHkgb2JqZWN0cy4KKyAgICAgICAgICAgICAgICAgICAgICAgIEJveDxDQ2FsbEhlbHBl
cnM6Okp1bXBMaXN0PiBleGNlcHRpb25zID0gZXhjZXB0aW9uSGFuZGxlLT5zY2hlZHVsZUV4aXRD
cmVhdGlvbihwYXJhbXMpLT5qdW1wcyhqaXQpOworCisgICAgICAgICAgICAgICAgICAgICAgICBH
UFJSZWcgYmFzZUdQUiA9IHBhcmFtc1sxXS5ncHIoKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IEdQUlJlZyByZXN1bHRHUFIgPSBwYXJhbXNbMF0uZ3ByKCk7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIFN0cnVjdHVyZVN0dWJJbmZvKiBzdHViSW5mbyA9CisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaml0LmNvZGVCbG9jaygpLT5hZGRTdHViSW5mbyhBY2Nlc3NUeXBlOjpJbik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICBzdHViSW5mby0+Y2FsbFNpdGVJbmRleCA9CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc3RhdGUtPmppdENvZGUtPmNvbW1vbi5hZGRDb2RlT3JpZ2lu
KG5vZGUtPm9yaWdpbi5zZW1hbnRpYyk7CisgICAgICAgICAgICAgICAgICAgICAgICBzdHViSW5m
by0+Y29kZU9yaWdpbiA9IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHN0dWJJbmZvLT5wYXRjaC5iYXNlR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihiYXNl
R1BSKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9
IHN0YXRpY19jYXN0PGludDhfdD4ocmVzdWx0R1BSKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHN0dWJJbmZvLT5wYXRjaC50aGlzR1BSID0gc3RhdGljX2Nhc3Q8aW50OF90PihJbnZhbGlkR1BS
UmVnKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0
ZXJzID0gcGFyYW1zLnVuYXZhaWxhYmxlUmVnaXN0ZXJzKCk7CisKKyAgICAgICAgICAgICAgICAg
ICAgICAgIENDYWxsSGVscGVyczo6UGF0Y2hhYmxlSnVtcCBqdW1wID0gaml0LnBhdGNoYWJsZUp1
bXAoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6TGFiZWwgZG9uZSA9
IGppdC5sYWJlbCgpOworCisgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuYWRkTGF0ZVBh
dGgoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgWz1dIChDQ2FsbEhlbHBlcnMmIGppdCkg
eworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lz
dGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAganVtcC5tX2p1bXAubGluaygmaml0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpMYWJlbCBzbG93UGF0aEJlZ2luID0gaml0LmxhYmVsKCk7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENDYWxsSGVscGVyczo6Q2FsbCBzbG93UGF0
aENhbGwgPSBjYWxsT3BlcmF0aW9uKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKnN0YXRlLCBwYXJhbXMudW5hdmFpbGFibGVSZWdpc3RlcnMoKSwgaml0LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZS0+b3JpZ2luLnNlbWFudGljLCBleGNlcHRp
b25zLmdldCgpLCBvcGVyYXRpb25Jbk9wdGltaXplLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVzdWx0R1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW1QdHIoc3R1Yklu
Zm8pLCBiYXNlR1BSLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHN0cikpLmNhbGwoKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaml0Lmp1bXAoKS5saW5rVG8oZG9uZSwgJmppdCk7CisKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaml0LmFkZExpbmtUYXNrKAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgWz1dIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1
YlJvdXRpbmVQdHJUYWc+IHN0YXJ0ID0gbGlua0J1ZmZlci5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0
aW5lUHRyVGFnPihqdW1wKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdHViSW5mby0+cGF0Y2guc3RhcnQgPSBzdGFydDsKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwdHJkaWZmX3QgaW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpk
aWZmZXJlbmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8Tm9QdHJUYWc+KGRvbmUp
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VS
VChpbmxpbmVTaXplID49IDApOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0dWJJbmZvLT5wYXRjaC5pbmxpbmVTaXplID0gaW5saW5lU2l6ZTsKKworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5wYXRjaC5kZWx0YUZyb21T
dGFydFRvU2xvd1BhdGhDYWxsTG9jYXRpb24gPSBNYWNyb0Fzc2VtYmxlcjo6ZGlmZmVyZW5jZUJl
dHdlZW5Db2RlUHRyKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBzdGFydCwgbGlua0J1ZmZlci5sb2NhdGlvbk9mPE5vUHRyVGFnPihzbG93UGF0aENhbGwpKTsK
KworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLT5wYXRj
aC5kZWx0YUZyb21TdGFydFRvU2xvd1BhdGhTdGFydCA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJl
bmNlQmV0d2VlbkNvZGVQdHIoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHN0YXJ0LCBsaW5rQnVmZmVyLmxvY2F0aW9uT2Y8Tm9QdHJUYWc+KHNsb3dQYXRoQmVn
aW4pKTsKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgIH0pOwotICAgICAg
ICAgICAgfSk7CiAKLSAgICAgICAgc2V0SlNWYWx1ZShwYXRjaHBvaW50KTsKKyAgICAgICAgICAg
ICAgICBzZXRKU1ZhbHVlKHBhdGNocG9pbnQpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfSAKKworICAgICAgICBzZXRKU1ZhbHVlKHZtQ2FsbChJbnQ2
NCwgbV9vdXQub3BlcmF0aW9uKG9wZXJhdGlvbkdlbmVyaWNJbiksIG1fY2FsbEZyYW1lLCBjZWxs
LCBsb3dKU1ZhbHVlKG1fbm9kZS0+Y2hpbGQyKCkpKSk7CiAgICAgfQogCiAgICAgdm9pZCBjb21w
aWxlSGFzT3duUHJvcGVydHkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9JQ1N0YXRzLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMuaAppbmRleCA2
ODRlODEzZGM0YTRhODNjNjc1MTAzMGUwYmM3YjY2YjliZjJhMTk5Li5jMWMyZDRlOTU3ZGZlYWU3
MTIwMzljNDVjYmU3Yjk1YzYyYTgyNWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0lDU3RhdHMuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0lDU3RhdHMu
aApAQCAtNTAsMTAgKzUwLDkgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgbWFjcm8oT3BlcmF0aW9u
R2V0QnlJZEJ1aWxkTGlzdCkgXAogICAgIG1hY3JvKE9wZXJhdGlvbkdldEJ5SWRPcHRpbWl6ZSkg
XAogICAgIG1hY3JvKE9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGltaXplKSBcCisgICAgbWFj
cm8oT3BlcmF0aW9uSW5PcHRpbWl6ZSkgXAorICAgIG1hY3JvKE9wZXJhdGlvbkluKSBcCiAgICAg
bWFjcm8oT3BlcmF0aW9uR2VuZXJpY0luKSBcCi0gICAgbWFjcm8oT3BlcmF0aW9uSW5CeUlkKSBc
Ci0gICAgbWFjcm8oT3BlcmF0aW9uSW5CeUlkR2VuZXJpYykgXAotICAgIG1hY3JvKE9wZXJhdGlv
bkluQnlJZE9wdGltaXplKSBcCiAgICAgbWFjcm8oT3BlcmF0aW9uUHV0QnlJZFN0cmljdCkgXAog
ICAgIG1hY3JvKE9wZXJhdGlvblB1dEJ5SWROb25TdHJpY3QpIFwKICAgICBtYWNybyhPcGVyYXRp
b25QdXRCeUlkRGlyZWN0U3RyaWN0KSBcCkBAIC02OCw4ICs2Nyw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIG1hY3JvKE9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RCdWlsZExpc3QpIFwK
ICAgICBtYWNybyhQdXRCeUlkQWRkQWNjZXNzQ2FzZSkgXAogICAgIG1hY3JvKFB1dEJ5SWRSZXBs
YWNlV2l0aEp1bXApIFwKLSAgICBtYWNybyhQdXRCeUlkU2VsZlBhdGNoKSBcCi0gICAgbWFjcm8o
SW5CeUlkU2VsZlBhdGNoKQorICAgIG1hY3JvKFB1dEJ5SWRTZWxmUGF0Y2gpCiAKIGNsYXNzIElD
RXZlbnQgewogcHVibGljOgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCmluZGV4IGQ5ZGIwNjI5
YTQzOGMxMjlkNTdiZmEzODMxNjY5ZWI4YWYxNTY5OTguLjE5OWQ4MWE4YTM1YTM0YjMxMmVmMzE1
NmYyZmQ4ZDM0NjQ3MzdkYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
SklULmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAKQEAgLTc4LDYg
Kzc4LDExIEBAIEpJVDo6SklUKFZNKiB2bSwgQ29kZUJsb2NrKiBjb2RlQmxvY2ssIHVuc2lnbmVk
IGxvb3BPU1JFbnRyeUJ5dGVjb2RlT2Zmc2V0KQogICAgICwgbV9pbnRlcnByZXRlcih2bS0+aW50
ZXJwcmV0ZXIpCiAgICAgLCBtX2xhYmVscyhjb2RlQmxvY2sgPyBjb2RlQmxvY2stPm51bWJlck9m
SW5zdHJ1Y3Rpb25zKCkgOiAwKQogICAgICwgbV9ieXRlY29kZU9mZnNldChzdGQ6Om51bWVyaWNf
bGltaXRzPHVuc2lnbmVkPjo6bWF4KCkpCisgICAgLCBtX2dldEJ5SWRJbmRleChVSU5UX01BWCkK
KyAgICAsIG1fZ2V0QnlJZFdpdGhUaGlzSW5kZXgoVUlOVF9NQVgpCisgICAgLCBtX3B1dEJ5SWRJ
bmRleChVSU5UX01BWCkKKyAgICAsIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4KFVJTlRfTUFYKQor
ICAgICwgbV9jYWxsTGlua0luZm9JbmRleChVSU5UX01BWCkKICAgICAsIG1fcGNUb0NvZGVPcmln
aW5NYXBCdWlsZGVyKCp2bSkKICAgICAsIG1fY2FuQmVPcHRpbWl6ZWQoZmFsc2UpCiAgICAgLCBt
X3Nob3VsZEVtaXRQcm9maWxpbmcoZmFsc2UpCkBAIC0yNzIsNyArMjc3LDcgQEAgdm9pZCBKSVQ6
OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICB1bnNpZ25lZCBieXRlY29kZU9mZnNl
dCA9IG1fYnl0ZWNvZGVPZmZzZXQ7CiAKICAgICAgICAgc3dpdGNoIChvcGNvZGVJRCkgewotICAg
ICAgICBERUZJTkVfU0xPV19PUChpbl9ieV92YWwpCisgICAgICAgIERFRklORV9TTE9XX09QKGlu
KQogICAgICAgICBERUZJTkVfU0xPV19PUChsZXNzKQogICAgICAgICBERUZJTkVfU0xPV19PUChs
ZXNzZXEpCiAgICAgICAgIERFRklORV9TTE9XX09QKGdyZWF0ZXIpCkBAIC0zMzYsNyArMzQxLDYg
QEAgdm9pZCBKSVQ6OnByaXZhdGVDb21waWxlTWFpblBhc3MoKQogICAgICAgICBERUZJTkVfT1Ao
b3BfYmVsb3cpCiAgICAgICAgIERFRklORV9PUChvcF9iZWxvd2VxKQogICAgICAgICBERUZJTkVf
T1Aob3BfdHJ5X2dldF9ieV9pZCkKLSAgICAgICAgREVGSU5FX09QKG9wX2luX2J5X2lkKQogICAg
ICAgICBjYXNlIG9wX2dldF9hcnJheV9sZW5ndGg6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lk
X3Byb3RvX2xvYWQ6CiAgICAgICAgIGNhc2Ugb3BfZ2V0X2J5X2lkX3Vuc2V0OgpAQCAtNDc0LDcg
KzQ3OCw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29tcGlsZVNsb3dDYXNlcygpCiAgICAgbV9nZXRC
eUlkSW5kZXggPSAwOwogICAgIG1fZ2V0QnlJZFdpdGhUaGlzSW5kZXggPSAwOwogICAgIG1fcHV0
QnlJZEluZGV4ID0gMDsKLSAgICBtX2luQnlJZEluZGV4ID0gMDsKICAgICBtX2luc3RhbmNlT2ZJ
bmRleCA9IDA7CiAgICAgbV9ieVZhbEluc3RydWN0aW9uSW5kZXggPSAwOwogICAgIG1fY2FsbExp
bmtJbmZvSW5kZXggPSAwOwpAQCAtNTE4LDcgKzUyMSw2IEBAIHZvaWQgSklUOjpwcml2YXRlQ29t
cGlsZVNsb3dDYXNlcygpCiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9jb25zdHJ1Y3Qp
CiAgICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9lcSkKICAgICAgICAgREVGSU5FX1NMT1dD
QVNFX09QKG9wX3RyeV9nZXRfYnlfaWQpCi0gICAgICAgIERFRklORV9TTE9XQ0FTRV9PUChvcF9p
bl9ieV9pZCkKICAgICAgICAgY2FzZSBvcF9nZXRfYXJyYXlfbGVuZ3RoOgogICAgICAgICBjYXNl
IG9wX2dldF9ieV9pZF9wcm90b19sb2FkOgogICAgICAgICBjYXNlIG9wX2dldF9ieV9pZF91bnNl
dDoKQEAgLTU5OCw3ICs2MDAsNiBAQCB2b2lkIEpJVDo6cHJpdmF0ZUNvbXBpbGVTbG93Q2FzZXMo
KQogICAgIFJFTEVBU0VfQVNTRVJUKG1fZ2V0QnlJZEluZGV4ID09IG1fZ2V0QnlJZHMuc2l6ZSgp
KTsKICAgICBSRUxFQVNFX0FTU0VSVChtX2dldEJ5SWRXaXRoVGhpc0luZGV4ID09IG1fZ2V0QnlJ
ZHNXaXRoVGhpcy5zaXplKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1fcHV0QnlJZEluZGV4ID09
IG1fcHV0QnlJZHMuc2l6ZSgpKTsKLSAgICBSRUxFQVNFX0FTU0VSVChtX2luQnlJZEluZGV4ID09
IG1faW5CeUlkcy5zaXplKCkpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1faW5zdGFuY2VPZkluZGV4
ID09IG1faW5zdGFuY2VPZnMuc2l6ZSgpKTsKICAgICBSRUxFQVNFX0FTU0VSVChtX2NhbGxMaW5r
SW5mb0luZGV4ID09IG1fY2FsbENvbXBpbGF0aW9uSW5mby5zaXplKCkpOwogICAgIFJFTEVBU0Vf
QVNTRVJUKG51bWJlck9mVmFsdWVQcm9maWxlcyA9PSBtX2NvZGVCbG9jay0+bnVtYmVyT2ZWYWx1
ZVByb2ZpbGVzKCkpOwpAQCAtODQxLDcgKzg0Miw2IEBAIENvbXBpbGF0aW9uUmVzdWx0IEpJVDo6
bGluaygpCiAgICAgZmluYWxpemVJbmxpbmVDYWNoZXMobV9nZXRCeUlkcywgcGF0Y2hCdWZmZXIp
OwogICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1fZ2V0QnlJZHNXaXRoVGhpcywgcGF0Y2hCdWZm
ZXIpOwogICAgIGZpbmFsaXplSW5saW5lQ2FjaGVzKG1fcHV0QnlJZHMsIHBhdGNoQnVmZmVyKTsK
LSAgICBmaW5hbGl6ZUlubGluZUNhY2hlcyhtX2luQnlJZHMsIHBhdGNoQnVmZmVyKTsKICAgICBm
aW5hbGl6ZUlubGluZUNhY2hlcyhtX2luc3RhbmNlT2ZzLCBwYXRjaEJ1ZmZlcik7CiAKICAgICBp
ZiAobV9ieVZhbENvbXBpbGF0aW9uSW5mby5zaXplKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklULmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5o
CmluZGV4IGI5NmFhMjI0MzNhYWJkYTUwZWE4ZGE5ZjNhOTk1ZDkwNGI3OTc5NTcuLjE1NmYxYjU4
MTI5ZjdmNmNmNzZmMTM5NWE1M2E5YTlkMjA4ZGJmZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklULmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQu
aApAQCAtNTAwLDcgKzUwMCw2IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICB2b2lkIGVtaXRf
b3BfZ2V0X2FyZ3VtZW50c19sZW5ndGgoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0
X29wX2dldF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKICAgICAgICAgdm9pZCBlbWl0X29wX2dldF9h
cmd1bWVudF9ieV92YWwoSW5zdHJ1Y3Rpb24qKTsKLSAgICAgICAgdm9pZCBlbWl0X29wX2luX2J5
X2lkKEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbml0X2xhenlfcmVnKElu
c3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9vdmVycmlkZXNfaGFzX2luc3RhbmNl
KEluc3RydWN0aW9uKik7CiAgICAgICAgIHZvaWQgZW1pdF9vcF9pbnN0YW5jZW9mKEluc3RydWN0
aW9uKik7CkBAIC02MTIsNyArNjExLDYgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIHZvaWQg
ZW1pdFNsb3dfb3BfZ2V0X2FyZ3VtZW50c19sZW5ndGgoSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3BfZ2V0X2J5
X3ZhbChJbnN0cnVjdGlvbiosIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImKTsKICAg
ICAgICAgdm9pZCBlbWl0U2xvd19vcF9nZXRfYXJndW1lbnRfYnlfdmFsKEluc3RydWN0aW9uKiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYpOwotICAgICAgICB2b2lkIGVtaXRTbG93
X29wX2luX2J5X2lkKEluc3RydWN0aW9uKiwgVmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRv
ciYpOwogICAgICAgICB2b2lkIGVtaXRTbG93X29wX2luc3RhbmNlb2YoSW5zdHJ1Y3Rpb24qLCBW
ZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3df
b3BfaW5zdGFuY2VvZl9jdXN0b20oSW5zdHJ1Y3Rpb24qLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46
Oml0ZXJhdG9yJik7CiAgICAgICAgIHZvaWQgZW1pdFNsb3dfb3Bfamxlc3MoSW5zdHJ1Y3Rpb24q
LCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJik7CkBAIC04NjcsNyArODY1LDYgQEAg
bmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIFZlY3RvcjxKSVRHZXRCeUlkR2VuZXJhdG9yPiBtX2dl
dEJ5SWRzOwogICAgICAgICBWZWN0b3I8SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yPiBtX2dl
dEJ5SWRzV2l0aFRoaXM7CiAgICAgICAgIFZlY3RvcjxKSVRQdXRCeUlkR2VuZXJhdG9yPiBtX3B1
dEJ5SWRzOwotICAgICAgICBWZWN0b3I8SklUSW5CeUlkR2VuZXJhdG9yPiBtX2luQnlJZHM7CiAg
ICAgICAgIFZlY3RvcjxKSVRJbnN0YW5jZU9mR2VuZXJhdG9yPiBtX2luc3RhbmNlT2ZzOwogICAg
ICAgICBWZWN0b3I8QnlWYWxDb21waWxhdGlvbkluZm8+IG1fYnlWYWxDb21waWxhdGlvbkluZm87
CiAgICAgICAgIFZlY3RvcjxDYWxsQ29tcGlsYXRpb25JbmZvPiBtX2NhbGxDb21waWxhdGlvbklu
Zm87CkBAIC04ODEsMTMgKzg3OCwxMiBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgSnVtcExp
c3QgbV9leGNlcHRpb25DaGVja3NXaXRoQ2FsbEZyYW1lUm9sbGJhY2s7CiAgICAgICAgIExhYmVs
IG1fZXhjZXB0aW9uSGFuZGxlcjsKIAotICAgICAgICB1bnNpZ25lZCBtX2dldEJ5SWRJbmRleCB7
IFVJTlRfTUFYIH07Ci0gICAgICAgIHVuc2lnbmVkIG1fZ2V0QnlJZFdpdGhUaGlzSW5kZXggeyBV
SU5UX01BWCB9OwotICAgICAgICB1bnNpZ25lZCBtX3B1dEJ5SWRJbmRleCB7IFVJTlRfTUFYIH07
Ci0gICAgICAgIHVuc2lnbmVkIG1faW5CeUlkSW5kZXggeyBVSU5UX01BWCB9OwotICAgICAgICB1
bnNpZ25lZCBtX2luc3RhbmNlT2ZJbmRleCB7IFVJTlRfTUFYIH07Ci0gICAgICAgIHVuc2lnbmVk
IG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4IHsgVUlOVF9NQVggfTsKLSAgICAgICAgdW5zaWduZWQg
bV9jYWxsTGlua0luZm9JbmRleCB7IFVJTlRfTUFYIH07CisgICAgICAgIHVuc2lnbmVkIG1fZ2V0
QnlJZEluZGV4OworICAgICAgICB1bnNpZ25lZCBtX2dldEJ5SWRXaXRoVGhpc0luZGV4OworICAg
ICAgICB1bnNpZ25lZCBtX3B1dEJ5SWRJbmRleDsKKyAgICAgICAgdW5zaWduZWQgbV9pbnN0YW5j
ZU9mSW5kZXg7CisgICAgICAgIHVuc2lnbmVkIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4OworICAg
ICAgICB1bnNpZ25lZCBtX2NhbGxMaW5rSW5mb0luZGV4OwogICAgICAgICAKICAgICAgICAgTGFi
ZWwgbV9hcml0eUNoZWNrOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8TGlua0J1ZmZlcj4gbV9s
aW5rQnVmZmVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxp
bmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGlu
ZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCAyZjk2OTc3MzljMGY4ZTljMTFhZTE5N2YzNDQ1NGY4
NjhkMWJhOTVhLi44ZjE3ZTllN2EzOWRkNmFkMDg2YzAxYTM0ZTJjMTgwODRiOTIzZjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9y
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJh
dG9yLmNwcApAQCAtMTY2LDIxICsxNjYsNiBAQCBWX0pJVE9wZXJhdGlvbl9FU3NpSkpJIEpJVFB1
dEJ5SWRHZW5lcmF0b3I6OnNsb3dQYXRoRnVuY3Rpb24oKQogICAgIHJldHVybiBvcGVyYXRpb25Q
dXRCeUlkTm9uU3RyaWN0T3B0aW1pemU7CiB9CiAKLUpJVEluQnlJZEdlbmVyYXRvcjo6SklUSW5C
eUlkR2VuZXJhdG9yKAotICAgIENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNvZGVP
cmlnaW4sIENhbGxTaXRlSW5kZXggY2FsbFNpdGUsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVn
aXN0ZXJzLAotICAgIFVuaXF1ZWRTdHJpbmdJbXBsKiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWdz
IGJhc2UsIEpTVmFsdWVSZWdzIHZhbHVlKQotICAgIDogSklUQnlJZEdlbmVyYXRvcihjb2RlQmxv
Y2ssIGNvZGVPcmlnaW4sIGNhbGxTaXRlLCBBY2Nlc3NUeXBlOjpJbiwgdXNlZFJlZ2lzdGVycywg
YmFzZSwgdmFsdWUpCi17Ci0gICAgLy8gRklYTUU6IFdlIGFyZSBub3Qgc3VwcG9ydGluZyBmYXN0
IHBhdGggZm9yICJsZW5ndGgiIHByb3BlcnR5LgotICAgIFVOVVNFRF9QQVJBTShwcm9wZXJ0eU5h
bWUpOwotICAgIFJFTEVBU0VfQVNTRVJUKGJhc2UucGF5bG9hZEdQUigpICE9IHZhbHVlLnRhZ0dQ
UigpKTsKLX0KLQotdm9pZCBKSVRJbkJ5SWRHZW5lcmF0b3I6OmdlbmVyYXRlRmFzdFBhdGgoTWFj
cm9Bc3NlbWJsZXImIGppdCkKLXsKLSAgICBnZW5lcmF0ZUZhc3RDb21tb24oaml0LCBJbmxpbmVB
Y2Nlc3M6OnNpemVGb3JQcm9wZXJ0eUFjY2VzcygpKTsKLX0KLQogSklUSW5zdGFuY2VPZkdlbmVy
YXRvcjo6SklUSW5zdGFuY2VPZkdlbmVyYXRvcigKICAgICBDb2RlQmxvY2sqIGNvZGVCbG9jaywg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luLCBDYWxsU2l0ZUluZGV4IGNhbGxTaXRlSW5kZXgsCiAgICAg
Y29uc3QgUmVnaXN0ZXJTZXQmIHVzZWRSZWdpc3RlcnMsIEdQUlJlZyByZXN1bHQsIEdQUlJlZyB2
YWx1ZSwgR1BSUmVnIHByb3RvdHlwZSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuaAppbmRleCBiNzQ3Yjg2ODlhZDkzODQ0YWI3ODUx
NDVjMDg0MzVmM2Q2OGU4ZDllLi4wN2EwOGM4NWMyM2MyMjMwNWMzYWE0NWNmNDUzN2JkOWM3NjVi
NDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hl
R2VuZXJhdG9yLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNo
ZUdlbmVyYXRvci5oCkBAIC0xNDMsMTcgKzE0Myw2IEBAIHByaXZhdGU6CiAgICAgUHV0S2luZCBt
X3B1dEtpbmQ7CiB9OwogCi1jbGFzcyBKSVRJbkJ5SWRHZW5lcmF0b3IgOiBwdWJsaWMgSklUQnlJ
ZEdlbmVyYXRvciB7Ci1wdWJsaWM6Ci0gICAgSklUSW5CeUlkR2VuZXJhdG9yKCkgeyB9Ci0KLSAg
ICBKSVRJbkJ5SWRHZW5lcmF0b3IoCi0gICAgICAgIENvZGVCbG9jayosIENvZGVPcmlnaW4sIENh
bGxTaXRlSW5kZXgsIGNvbnN0IFJlZ2lzdGVyU2V0JiB1c2VkUmVnaXN0ZXJzLCBVbmlxdWVkU3Ry
aW5nSW1wbCogcHJvcGVydHlOYW1lLAotICAgICAgICBKU1ZhbHVlUmVncyBiYXNlLCBKU1ZhbHVl
UmVncyB2YWx1ZSk7Ci0KLSAgICB2b2lkIGdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXIm
KTsKLX07Ci0KIGNsYXNzIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IgOiBwdWJsaWMgSklUSW5saW5l
Q2FjaGVHZW5lcmF0b3IgewogcHVibGljOgogICAgIEpJVEluc3RhbmNlT2ZHZW5lcmF0b3IoKSB7
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3BlcmF0aW9ucy5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuY3BwCmluZGV4IGZh
NDU2ZmFjMzUyYTg0MDI1NzBmYjZlYzc3MzFmNTEyMGEwMzdiYjMuLmJmMTY3N2UyMmM3M2UyNDY0
MWNiZThlMGUzOWU1NTA2NDA5N2JlMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvSklUT3BlcmF0aW9ucy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9K
SVRPcGVyYXRpb25zLmNwcApAQCAtMzc3LDkxICszNzcsNjQgQEAgRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkV2l0aFRoaXNPcHRpbWl6ZShFeGVjU3RhdGUqIGV4
ZWMsIFMKICAgICB9KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0
aW9uSW5CeUlkKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBF
bmNvZGVkSlNWYWx1ZSBiYXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQorRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25Jbk9wdGltaXplKEV4ZWNTdGF0ZSogZXhlYywgU3Ry
dWN0dXJlU3R1YkluZm8qIHN0dWJJbmZvLCBKU0NlbGwqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBs
KiBrZXkpCiB7CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2Up
OworICAgIAorICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRy
YWNlciB0cmFjZXIodm0sIGV4ZWMpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKCp2bSk7CiAKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFt
ZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRSh2bSk7Ci0KLSAgICBzdHViSW5mby0+dG9va1Nsb3dQYXRoID0gdHJ1ZTsKLQotICAg
IElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlkKCZ2bSwgdWlkKTsKLQotICAg
IEpTVmFsdWUgYmFzZVZhbHVlID0gSlNWYWx1ZTo6ZGVjb2RlKGJhc2UpOwotICAgIGlmICghYmFz
ZVZhbHVlLmlzT2JqZWN0KCkpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24oZXhlYywgc2NvcGUs
IGNyZWF0ZUludmFsaWRJblBhcmFtZXRlckVycm9yKGV4ZWMsIGJhc2VWYWx1ZSkpOwotICAgICAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotICAgIH0KLSAgICBKU09i
amVjdCogYmFzZU9iamVjdCA9IGFzT2JqZWN0KGJhc2VWYWx1ZSk7Ci0KLSAgICBMT0dfSUMoKElD
RXZlbnQ6Ok9wZXJhdGlvbkluQnlJZCwgYmFzZU9iamVjdC0+Y2xhc3NJbmZvKHZtKSwgaWRlbnQp
KTsKLQotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2Jq
ZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVydHkpOwotICAg
IHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGJhc2VPYmplY3QtPmdldFByb3BlcnR5
U2xvdChleGVjLCBpZGVudCwgc2xvdCkpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSklUX09QRVJB
VElPTiBvcGVyYXRpb25JbkJ5SWRHZW5lcmljKEV4ZWNTdGF0ZSogZXhlYywgRW5jb2RlZEpTVmFs
dWUgYmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqIHVpZCkKLXsKLSAgICBTdXBlclNhbXBsZXJTY29w
ZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Ci0KLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwot
ICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFjZXIoJnZtLCBleGVjKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBJZGVudGlmaWVyIGlkZW50ID0g
SWRlbnRpZmllcjo6ZnJvbVVpZCgmdm0sIHVpZCk7Ci0KLSAgICBKU1ZhbHVlIGJhc2VWYWx1ZSA9
IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKLSAgICBpZiAoIWJhc2VWYWx1ZS5pc09iamVjdCgpKSB7
Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBjcmVhdGVJbnZhbGlkSW5QYXJh
bWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsdWUpKTsKKyAgICBpZiAoIWJhc2UtPmlzT2JqZWN0KCkp
IHsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24oZXhlYywgc2NvcGUsIGNyZWF0ZUludmFsaWRJblBh
cmFtZXRlckVycm9yKGV4ZWMsIGJhc2UpKTsKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29k
ZShqc1VuZGVmaW5lZCgpKTsKICAgICB9Ci0gICAgSlNPYmplY3QqIGJhc2VPYmplY3QgPSBhc09i
amVjdChiYXNlVmFsdWUpOwotCi0gICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRpb25JbkJ5SWRH
ZW5lcmljLCBiYXNlT2JqZWN0LT5jbGFzc0luZm8odm0pLCBpZGVudCkpOworICAgIAorICAgIEFj
Y2Vzc1R5cGUgYWNjZXNzVHlwZSA9IHN0YXRpY19jYXN0PEFjY2Vzc1R5cGU+KHN0dWJJbmZvLT5h
Y2Nlc3NUeXBlKTsKIAotICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xv
dChiYXNlT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVy
dHkpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNCb29sZWFuKGJhc2VPYmplY3QtPmdl
dFByb3BlcnR5U2xvdChleGVjLCBpZGVudCwgc2xvdCkpKTsKKyAgICBJZGVudGlmaWVyIGlkZW50
ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCh2bSwga2V5KTsKKyAgICBMT0dfSUMoKElDRXZlbnQ6Ok9w
ZXJhdGlvbkluT3B0aW1pemUsIGJhc2UtPmNsYXNzSW5mbygqdm0pLCBpZGVudCkpOworICAgIFBy
b3BlcnR5U2xvdCBzbG90KGJhc2UsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpI
YXNQcm9wZXJ0eSk7CisgICAgYm9vbCByZXN1bHQgPSBhc09iamVjdChiYXNlKS0+Z2V0UHJvcGVy
dHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KTsKKyAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCBlbmNvZGVkSlNWYWx1ZSgpKTsKKyAgICAKKyAgICBSRUxFQVNFX0FTU0VSVChhY2Nlc3NUeXBl
ID09IHN0dWJJbmZvLT5hY2Nlc3NUeXBlKTsKKyAgICAKKyAgICBpZiAoc3R1YkluZm8tPmNvbnNp
ZGVyQ2FjaGluZyhleGVjLT5jb2RlQmxvY2soKSwgYXNPYmplY3QoYmFzZSktPnN0cnVjdHVyZSgp
KSkKKyAgICAgICAgcmVwYXRjaEluKGV4ZWMsIGJhc2UsIGlkZW50LCByZXN1bHQsIHNsb3QsICpz
dHViSW5mbyk7CisgICAgCisgICAgcmV0dXJuIEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4ocmVz
dWx0KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeUlk
T3B0aW1pemUoRXhlY1N0YXRlKiBleGVjLCBTdHJ1Y3R1cmVTdHViSW5mbyogc3R1YkluZm8sIEVu
Y29kZWRKU1ZhbHVlIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiB1aWQpCitFbmNvZGVkSlNWYWx1
ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluKEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1
YkluZm8qIHN0dWJJbmZvLCBKU0NlbGwqIGJhc2UsIFVuaXF1ZWRTdHJpbmdJbXBsKiBrZXkpCiB7
CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOworICAgIAor
ICAgIFZNKiB2bSA9ICZleGVjLT52bSgpOworICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0cmFj
ZXIodm0sIGV4ZWMpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKCp2bSk7
CiAKLSAgICBWTSYgdm0gPSBleGVjLT52bSgpOwotICAgIE5hdGl2ZUNhbGxGcmFtZVRyYWNlciB0
cmFjZXIoJnZtLCBleGVjKTsKLSAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0KLSAgICBJZGVudGlmaWVyIGlkZW50ID0gSWRlbnRpZmllcjo6ZnJvbVVpZCgmdm0sIHVp
ZCk7CisgICAgc3R1YkluZm8tPnRvb2tTbG93UGF0aCA9IHRydWU7CiAKLSAgICBKU1ZhbHVlIGJh
c2VWYWx1ZSA9IEpTVmFsdWU6OmRlY29kZShiYXNlKTsKLSAgICBpZiAoIWJhc2VWYWx1ZS5pc09i
amVjdCgpKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGV4ZWMsIHNjb3BlLCBjcmVhdGVJbnZh
bGlkSW5QYXJhbWV0ZXJFcnJvcihleGVjLCBiYXNlVmFsdWUpKTsKKyAgICBpZiAoIWJhc2UtPmlz
T2JqZWN0KCkpIHsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24oZXhlYywgc2NvcGUsIGNyZWF0ZUlu
dmFsaWRJblBhcmFtZXRlckVycm9yKGV4ZWMsIGJhc2UpKTsKICAgICAgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKICAgICB9Ci0gICAgSlNPYmplY3QqIGJhc2VPYmpl
Y3QgPSBhc09iamVjdChiYXNlVmFsdWUpOwotCi0gICAgTE9HX0lDKChJQ0V2ZW50OjpPcGVyYXRp
b25JbkJ5SWRPcHRpbWl6ZSwgYmFzZU9iamVjdC0+Y2xhc3NJbmZvKHZtKSwgaWRlbnQpKTsKIAor
ICAgIElkZW50aWZpZXIgaWRlbnQgPSBJZGVudGlmaWVyOjpmcm9tVWlkKHZtLCBrZXkpOworICAg
IExPR19JQygoSUNFdmVudDo6T3BlcmF0aW9uSW4sIGJhc2UtPmNsYXNzSW5mbygqdm0pLCBpZGVu
dCkpOwogICAgIHNjb3BlLnJlbGVhc2UoKTsKLSAgICBQcm9wZXJ0eVNsb3Qgc2xvdChiYXNlT2Jq
ZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6SGFzUHJvcGVydHkpOwotICAg
IGJvb2wgZm91bmQgPSBiYXNlT2JqZWN0LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNs
b3QpOwotICAgIGlmIChzdHViSW5mby0+Y29uc2lkZXJDYWNoaW5nKGV4ZWMtPmNvZGVCbG9jaygp
LCBiYXNlT2JqZWN0LT5zdHJ1Y3R1cmUodm0pKSkKLSAgICAgICAgcmVwYXRjaEluQnlJRChleGVj
LCBiYXNlT2JqZWN0LCBpZGVudCwgZm91bmQsIHNsb3QsICpzdHViSW5mbyk7Ci0gICAgcmV0dXJu
IEpTVmFsdWU6OmVuY29kZShqc0Jvb2xlYW4oZm91bmQpKTsKKyAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzQm9vbGVhbihhc09iamVjdChiYXNlKS0+aGFzUHJvcGVydHkoZXhlYywgaWRlbnQp
KSk7CiB9CiAKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeVZhbChF
eGVjU3RhdGUqIGV4ZWMsIEpTQ2VsbCogYmFzZSwgRW5jb2RlZEpTVmFsdWUga2V5KQorRW5jb2Rl
ZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZW5lcmljSW4oRXhlY1N0YXRlKiBleGVj
LCBKU0NlbGwqIGJhc2UsIEVuY29kZWRKU1ZhbHVlIGtleSkKIHsKICAgICBTdXBlclNhbXBsZXJT
Y29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAgICAgCiAgICAgVk0qIHZtID0gJmV4ZWMt
PnZtKCk7CiAgICAgTmF0aXZlQ2FsbEZyYW1lVHJhY2VyIHRyYWNlcih2bSwgZXhlYyk7CiAKLSAg
ICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW5C
eVZhbChleGVjLCBiYXNlLCBKU1ZhbHVlOjpkZWNvZGUoa2V5KSkpKTsKKyAgICByZXR1cm4gSlNW
YWx1ZTo6ZW5jb2RlKGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW4oZXhlYywgYmFzZSwg
SlNWYWx1ZTo6ZGVjb2RlKGtleSkpKSk7CiB9CiAKIHZvaWQgSklUX09QRVJBVElPTiBvcGVyYXRp
b25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSogZXhlYywgU3RydWN0dXJlU3R1YkluZm8qIHN0dWJJ
bmZvLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBVbmlxdWVkU3RyaW5nSW1wbCogdWlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRPcGVyYXRpb25zLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VE9wZXJhdGlvbnMuaAppbmRleCA2MDcxZTVkYWI0ZDNhMjU2Nzg1YjU0ZDE0YjU4MWRlMWFjY2Vk
MjY2Li43YTMyNjY5ZTRlM2RlZDI0MmJmN2NlNTA0Yzg3MDMwMTY1NjlmNDVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaAorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVE9wZXJhdGlvbnMuaApAQCAtMzcxLDEyICszNzEsOSBAQCBF
bmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWRXaXRoVGhpc09wdGlt
aXplKEV4ZWNTdGF0ZSosIFN0cnVjdAogRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVy
YXRpb25HZXRCeUlkRGlyZWN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2Rl
ZEpTVmFsdWUsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogRW5jb2RlZEpTVmFs
dWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZXRCeUlkRGlyZWN0R2VuZXJpYyhFeGVjU3RhdGUq
LCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiBFbmNv
ZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkdldEJ5SWREaXJlY3RPcHRpbWl6ZShF
eGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5mbyosIEVuY29kZWRKU1ZhbHVlLCBVbmlxdWVkU3Ry
aW5nSW1wbCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3Bl
cmF0aW9uSW5CeUlkKEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJbmZvKiwgRW5jb2RlZEpTVmFs
dWUsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwotRW5jb2RlZEpTVmFsdWUgSklU
X09QRVJBVElPTiBvcGVyYXRpb25JbkJ5SWRHZW5lcmljKEV4ZWNTdGF0ZSosIEVuY29kZWRKU1Zh
bHVlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJ
VF9PUEVSQVRJT04gb3BlcmF0aW9uSW5CeUlkT3B0aW1pemUoRXhlY1N0YXRlKiwgU3RydWN0dXJl
U3R1YkluZm8qLCBFbmNvZGVkSlNWYWx1ZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJO
QUw7CiBFbmNvZGVkSlNWYWx1ZSBKSVRfT1BFUkFUSU9OIG9wZXJhdGlvbkluT3B0aW1pemUoRXhl
Y1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1wbCop
IFdURl9JTlRFUk5BTDsKIEVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9uSW4o
RXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1YkluZm8qLCBKU0NlbGwqLCBVbmlxdWVkU3RyaW5nSW1w
bCopIFdURl9JTlRFUk5BTDsKLUVuY29kZWRKU1ZhbHVlIEpJVF9PUEVSQVRJT04gb3BlcmF0aW9u
SW5CeVZhbChFeGVjU3RhdGUqLCBKU0NlbGwqLCBFbmNvZGVkSlNWYWx1ZSkgV1RGX0lOVEVSTkFM
OworRW5jb2RlZEpTVmFsdWUgSklUX09QRVJBVElPTiBvcGVyYXRpb25HZW5lcmljSW4oRXhlY1N0
YXRlKiwgSlNDZWxsKiwgRW5jb2RlZEpTVmFsdWUpIFdURl9JTlRFUk5BTDsKIHZvaWQgSklUX09Q
RVJBVElPTiBvcGVyYXRpb25QdXRCeUlkU3RyaWN0KEV4ZWNTdGF0ZSosIFN0cnVjdHVyZVN0dWJJ
bmZvKiwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVk
QmFzZSwgVW5pcXVlZFN0cmluZ0ltcGwqKSBXVEZfSU5URVJOQUw7CiB2b2lkIEpJVF9PUEVSQVRJ
T04gb3BlcmF0aW9uUHV0QnlJZE5vblN0cmljdChFeGVjU3RhdGUqLCBTdHJ1Y3R1cmVTdHViSW5m
byosIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZEJh
c2UsIFVuaXF1ZWRTdHJpbmdJbXBsKikgV1RGX0lOVEVSTkFMOwogdm9pZCBKSVRfT1BFUkFUSU9O
IG9wZXJhdGlvblB1dEJ5SWREaXJlY3RTdHJpY3QoRXhlY1N0YXRlKiwgU3RydWN0dXJlU3R1Yklu
Zm8qLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRC
YXNlLCBVbmlxdWVkU3RyaW5nSW1wbCopIFdURl9JTlRFUk5BTDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKaW5kZXggZTYzNmY3MTIwOTBmZjUw
OThlZDYxNDNlYTliOGM5YTJmODA5NzczOS4uN2U1ZDEwN2FkMjIyNTllYTI0ZjNmZjVhNWE4ZjFh
NWI2NzE3ZWI3MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0
eUFjY2Vzcy5jcHAKQEAgLTc1MSw0MiArNzUxLDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1
dF9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UK
ICAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwogfQogCi12
b2lkIEpJVDo6ZW1pdF9vcF9pbl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9u
KQotewotICAgIGludCByZXN1bHRWUmVnID0gY3VycmVudEluc3RydWN0aW9uWzFdLnUub3BlcmFu
ZDsKLSAgICBpbnQgYmFzZVZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMl0udS5vcGVyYW5kOwot
ICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmllcihj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0KLSAgICBlbWl0R2V0VmlydHVhbFJl
Z2lzdGVyKGJhc2VWUmVnLCByZWdUMCk7Ci0KLSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0Nl
bGwocmVnVDAsIGJhc2VWUmVnKTsKLQotICAgIEpJVEluQnlJZEdlbmVyYXRvciBnZW4oCi0gICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVPZmZzZXQpLCBDYWxsU2l0ZUlu
ZGV4KG1fYnl0ZWNvZGVPZmZzZXQpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0
ZXJzKCksCi0gICAgICAgIGlkZW50LT5pbXBsKCksIEpTVmFsdWVSZWdzKHJlZ1QwKSwgSlNWYWx1
ZVJlZ3MocmVnVDApKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7Ci0gICAgYWRk
U2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKLSAgICBtX2luQnlJZHMuYXBwZW5kKGdlbik7
Ci0KLSAgICBlbWl0UHV0VmlydHVhbFJlZ2lzdGVyKHJlc3VsdFZSZWcpOwotfQotCi12b2lkIEpJ
VDo6ZW1pdFNsb3dfb3BfaW5fYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwg
VmVjdG9yPFNsb3dDYXNlRW50cnk+OjppdGVyYXRvciYgaXRlcikKLXsKLSAgICBsaW5rQWxsU2xv
d0Nhc2VzKGl0ZXIpOwotCi0gICAgaW50IHJlc3VsdFZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25b
MV0udS5vcGVyYW5kOwotICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9j
ay0+aWRlbnRpZmllcihjdXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0KLSAgICBK
SVRJbkJ5SWRHZW5lcmF0b3ImIGdlbiA9IG1faW5CeUlkc1ttX2luQnlJZEluZGV4KytdOwotCi0g
ICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7Ci0KLSAgICBDYWxsIGNhbGwgPSBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkluQnlJZE9wdGltaXplLCByZXN1bHRWUmVnLCBnZW4uc3R1Yklu
Zm8oKSwgcmVnVDAsIGlkZW50LT5pbXBsKCkpOwotCi0gICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2Fs
bChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRWYXJJbmplY3Rpb25D
aGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQogewogICAgIGlmICghbmVlZHNWYXJJ
bmplY3Rpb25DaGVja3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJ
VFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCA0YWI5MDMxNGE4YmI3Mzg1NjU4NDI5NjUyZjA0
NWUzMWM4NDcyMTdiLi5kYjJhNDcyZTg1MGE1NjZlMDdhMDIzY2Y0MzMwNDIyMjE4MTE1ZDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJf
NjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3Mz
Ml82NC5jcHAKQEAgLTc3MSw0MSArNzcxLDYgQEAgdm9pZCBKSVQ6OmVtaXRTbG93X29wX3B1dF9i
eV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2UKICAg
ICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwogfQogCi12b2lk
IEpJVDo6ZW1pdF9vcF9pbl9ieV9pZChJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQot
ewotICAgIGludCBkc3QgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwotICAgIGlu
dCBiYXNlID0gY3VycmVudEluc3RydWN0aW9uWzJdLnUub3BlcmFuZDsKLSAgICBjb25zdCBJZGVu
dGlmaWVyKiBpZGVudCA9ICYobV9jb2RlQmxvY2stPmlkZW50aWZpZXIoY3VycmVudEluc3RydWN0
aW9uWzNdLnUub3BlcmFuZCkpOwotCi0gICAgZW1pdExvYWQoYmFzZSwgcmVnVDEsIHJlZ1QwKTsK
LSAgICBlbWl0SnVtcFNsb3dDYXNlSWZOb3RKU0NlbGwoYmFzZSwgcmVnVDEpOwotCi0gICAgSklU
SW5CeUlkR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9i
eXRlY29kZU9mZnNldCksIENhbGxTaXRlSW5kZXgoY3VycmVudEluc3RydWN0aW9uKSwgUmVnaXN0
ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAotICAgICAgICBpZGVudC0+aW1wbCgp
LCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVn
VDApKTsKLSAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7Ci0gICAgYWRkU2xvd0Nhc2Uo
Z2VuLnNsb3dQYXRoSnVtcCgpKTsKLSAgICBtX2luQnlJZHMuYXBwZW5kKGdlbik7Ci0KLSAgICBl
bWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwotfQotCi12b2lkIEpJVDo6ZW1pdFNsb3dfb3Bf
aW5fYnlfaWQoSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbiwgVmVjdG9yPFNsb3dDYXNl
RW50cnk+OjppdGVyYXRvciYgaXRlcikKLXsKLSAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwot
Ci0gICAgaW50IHJlc3VsdFZSZWcgPSBjdXJyZW50SW5zdHJ1Y3Rpb25bMV0udS5vcGVyYW5kOwot
ICAgIGNvbnN0IElkZW50aWZpZXIqIGlkZW50ID0gJihtX2NvZGVCbG9jay0+aWRlbnRpZmllcihj
dXJyZW50SW5zdHJ1Y3Rpb25bM10udS5vcGVyYW5kKSk7Ci0KLSAgICBKSVRJbkJ5SWRHZW5lcmF0
b3ImIGdlbiA9IG1faW5CeUlkc1ttX2dldEJ5SWRJbmRleCsrXTsKLQotICAgIExhYmVsIGNvbGRQ
YXRoQmVnaW4gPSBsYWJlbCgpOwotCi0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbihvcGVy
YXRpb25JbkJ5SWRPcHRpbWl6ZSwgcmVzdWx0VlJlZywgZ2VuLnN0dWJJbmZvKCksIEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCksIGlkZW50LT5pbXBsKCkpOwotCi0gICAgZ2VuLnJlcG9ydFNsb3dQ
YXRoQ2FsbChjb2xkUGF0aEJlZ2luLCBjYWxsKTsKLX0KLQogdm9pZCBKSVQ6OmVtaXRWYXJJbmpl
Y3Rpb25DaGVjayhib29sIG5lZWRzVmFySW5qZWN0aW9uQ2hlY2tzKQogewogICAgIGlmICghbmVl
ZHNWYXJJbmplY3Rpb25DaGVja3MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aml0L1JlcGF0Y2guY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcApp
bmRleCA4NWVjMGIyMDRkMjc2ZjI5MTMxYzlhODhkZjlmM2RjMGUxMDcyNjMwLi4xNDM3M2JiYjI0
NjcxOGU5NDdkZWY2ZTkyZTAwMjUwYWM0Y2ZkYWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQv
UmVwYXRjaC5jcHAKQEAgLTYwNSw4ICs2MDUsOCBAQCB2b2lkIHJlcGF0Y2hQdXRCeUlEKEV4ZWNT
dGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsdWUsIFN0cnVjdHVyZSogc3RydWN0dXJlLCBjbwog
ICAgIH0KIH0KIAotc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5CeUlEKAotICAg
IEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIGlkZW50
LAorc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW4oCisgICAgRXhlY1N0YXRlKiBl
eGVjLCBKU0NlbGwqIGJhc2UsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LAogICAgIGJvb2wgd2Fz
Rm91bmQsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCwgU3RydWN0dXJlU3R1YkluZm8mIHN0dWJJ
bmZvKQogewogICAgIFZNJiB2bSA9IGV4ZWMtPnZtKCk7CkBAIC02MzEsMjYgKzYzMSw2IEBAIHN0
YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgc3RkOjp1bmlx
dWVfcHRyPFBvbHlQcm90b0FjY2Vzc0NoYWluPiBwcm90b3R5cGVBY2Nlc3NDaGFpbjsKICAgICAg
ICAgT2JqZWN0UHJvcGVydHlDb25kaXRpb25TZXQgY29uZGl0aW9uU2V0OwogICAgICAgICBpZiAo
d2FzRm91bmQpIHsKLSAgICAgICAgICAgIElubGluZUNhY2hlQWN0aW9uIGFjdGlvbiA9IGFjdGlv
bkZvckNlbGwodm0sIGJhc2UpOwotICAgICAgICAgICAgaWYgKGFjdGlvbiAhPSBBdHRlbXB0VG9D
YWNoZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gYWN0aW9uOwotCi0gICAgICAgICAgICAvLyBP
cHRpbWl6ZSBzZWxmIGFjY2Vzcy4KLSAgICAgICAgICAgIGlmIChzdHViSW5mby5jYWNoZVR5cGUg
PT0gQ2FjaGVUeXBlOjpVbnNldAotICAgICAgICAgICAgICAgICYmIHNsb3QuaXNDYWNoZWFibGVW
YWx1ZSgpCi0gICAgICAgICAgICAgICAgJiYgc2xvdC5zbG90QmFzZSgpID09IGJhc2UKLSAgICAg
ICAgICAgICAgICAmJiAhc2xvdC53YXRjaHBvaW50U2V0KCkKLSAgICAgICAgICAgICAgICAmJiAh
c3RydWN0dXJlLT5uZWVkSW1wdXJlUHJvcGVydHlXYXRjaHBvaW50KCkpIHsKLSAgICAgICAgICAg
ICAgICBib29sIGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2Vs
ZkluQWNjZXNzKHN0dWJJbmZvLCBzdHJ1Y3R1cmUpOwotICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgIExPR19JQygoSUNFdmVudDo6
SW5CeUlkU2VsZlBhdGNoLCBzdHJ1Y3R1cmUtPmNsYXNzSW5mbygpLCBpZGVudCkpOwotICAgICAg
ICAgICAgICAgICAgICBzdHJ1Y3R1cmUtPnN0YXJ0V2F0Y2hpbmdQcm9wZXJ0eUZvclJlcGxhY2Vt
ZW50cyh2bSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIGZ0bFRo
dW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0
aW9uKCksIG9wZXJhdGlvbkluQnlJZE9wdGltaXplKTsKLSAgICAgICAgICAgICAgICAgICAgc3R1
YkluZm8uaW5pdEluQnlJZFNlbGYoY29kZUJsb2NrLCBzdHJ1Y3R1cmUsIHNsb3QuY2FjaGVkT2Zm
c2V0KCkpOwotICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0cnlDYWNoZUxhdGVyOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLQogICAgICAgICAgICAgaWYgKHNsb3Quc2xv
dEJhc2UoKSAhPSBiYXNlKSB7CiAgICAgICAgICAgICAgICAgYm9vbCB1c2VzUG9seVByb3RvOwog
ICAgICAgICAgICAgICAgIHByb3RvdHlwZUFjY2Vzc0NoYWluID0gUG9seVByb3RvQWNjZXNzQ2hh
aW46OmNyZWF0ZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCksIGJhc2UsIHNsb3QsIHVzZXNQ
b2x5UHJvdG8pOwpAQCAtNjg0LDcgKzY2NCw3IEBAIHN0YXRpYyBJbmxpbmVDYWNoZUFjdGlvbiB0
cnlDYWNoZUluQnlJRCgKICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpJbkFkZEFjY2Vzc0Nhc2Us
IHN0cnVjdHVyZS0+Y2xhc3NJbmZvKCksIGlkZW50KSk7CiAKICAgICAgICAgc3RkOjp1bmlxdWVf
cHRyPEFjY2Vzc0Nhc2U+IG5ld0Nhc2UgPSBBY2Nlc3NDYXNlOjpjcmVhdGUoCi0gICAgICAgICAg
ICB2bSwgY29kZUJsb2NrLCB3YXNGb3VuZCA/IEFjY2Vzc0Nhc2U6OkluSGl0IDogQWNjZXNzQ2Fz
ZTo6SW5NaXNzLCB3YXNGb3VuZCA/IHNsb3QuY2FjaGVkT2Zmc2V0KCkgOiBpbnZhbGlkT2Zmc2V0
LCBzdHJ1Y3R1cmUsIGNvbmRpdGlvblNldCwgV1RGTW92ZShwcm90b3R5cGVBY2Nlc3NDaGFpbikp
OworICAgICAgICAgICAgdm0sIGNvZGVCbG9jaywgd2FzRm91bmQgPyBBY2Nlc3NDYXNlOjpJbkhp
dCA6IEFjY2Vzc0Nhc2U6OkluTWlzcywgaW52YWxpZE9mZnNldCwgc3RydWN0dXJlLCBjb25kaXRp
b25TZXQsIFdURk1vdmUocHJvdG90eXBlQWNjZXNzQ2hhaW4pKTsKIAogICAgICAgICByZXN1bHQg
PSBzdHViSW5mby5hZGRBY2Nlc3NDYXNlKGxvY2tlciwgY29kZUJsb2NrLCBpZGVudCwgV1RGTW92
ZShuZXdDYXNlKSk7CiAKQEAgLTY5Miw3ICs2NzIsMTAgQEAgc3RhdGljIElubGluZUNhY2hlQWN0
aW9uIHRyeUNhY2hlSW5CeUlEKAogICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpJblJlcGxh
Y2VXaXRoSnVtcCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQpKTsKICAgICAgICAgICAg
IAogICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQocmVzdWx0LmNvZGUoKSk7Ci0gICAgICAgICAg
ICBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoc3R1YkluZm8sIENvZGVMb2NhdGlvbkxh
YmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihyZXN1bHQuY29kZSgpKSk7CisKKyAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoSnVtcCgKKyAgICAgICAgICAgICAgICBzdHViSW5mby5w
YXRjaGFibGVKdW1wKCksCisgICAgICAgICAgICAgICAgQ29kZUxvY2F0aW9uTGFiZWw8SklUU3R1
YlJvdXRpbmVQdHJUYWc+KHJlc3VsdC5jb2RlKCkpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAt
NzAxLDE0ICs2ODQsMTMgQEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5CeUlE
KAogICAgIHJldHVybiByZXN1bHQuc2hvdWxkR2l2ZVVwTm93KCkgPyBHaXZlVXBPbkNhY2hlIDog
UmV0cnlDYWNoZUxhdGVyOwogfQogCi12b2lkIHJlcGF0Y2hJbkJ5SUQoRXhlY1N0YXRlKiBleGVj
LCBKU09iamVjdCogYmFzZU9iamVjdCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBi
b29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZv
JiBzdHViSW5mbykKK3ZvaWQgcmVwYXRjaEluKAorICAgIEV4ZWNTdGF0ZSogZXhlYywgSlNDZWxs
KiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgYm9vbCB3YXNGb3VuZCwKKyAgICBjb25z
dCBQcm9wZXJ0eVNsb3QmIHNsb3QsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKICAg
ICBTdXBlclNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7Ci0KLSAgICBpZiAo
dHJ5Q2FjaGVJbkJ5SUQoZXhlYywgYmFzZU9iamVjdCwgcHJvcGVydHlOYW1lLCB3YXNGb3VuZCwg
c2xvdCwgc3R1YkluZm8pID09IEdpdmVVcE9uQ2FjaGUpIHsKLSAgICAgICAgQ29kZUJsb2NrKiBj
b2RlQmxvY2sgPSBleGVjLT5jb2RlQmxvY2soKTsKLSAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0
Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0
aW9uSW5CeUlkKTsKLSAgICB9CisgICAgaWYgKHRyeUNhY2hlSW4oZXhlYywgYmFzZSwgaWRlbnQs
IHdhc0ZvdW5kLCBzbG90LCBzdHViSW5mbykgPT0gR2l2ZVVwT25DYWNoZSkKKyAgICAgICAgZnRs
VGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGV4ZWMtPmNvZGVCbG9jaygpLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25Jbik7CiB9CiAKIHN0YXRpYyBJbmxpbmVDYWNoZUFj
dGlvbiB0cnlDYWNoZUluc3RhbmNlT2YoCkBAIC0xMjU0LDEwICsxMjM2LDkgQEAgc3RhdGljIHZv
aWQgcmVzZXRQYXRjaGFibGVKdW1wKFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKICAgICBN
YWNyb0Fzc2VtYmxlcjo6cmVwYXRjaEp1bXAoc3R1YkluZm8ucGF0Y2hhYmxlSnVtcCgpLCBzdHVi
SW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CiB9CiAKLXZvaWQgcmVzZXRJbkJ5SUQoQ29k
ZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKK3ZvaWQgcmVz
ZXRJbihTdHJ1Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCiB7Ci0gICAgZnRsVGh1bmtBd2FyZVJl
cGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3Bl
cmF0aW9uSW5CeUlkT3B0aW1pemUpOwotICAgIElubGluZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVt
cChzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOworICAgIHJlc2V0
UGF0Y2hhYmxlSnVtcChzdHViSW5mbyk7CiB9CiAKIHZvaWQgcmVzZXRJbnN0YW5jZU9mKFN0cnVj
dHVyZVN0dWJJbmZvJiBzdHViSW5mbykKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvUmVwYXRjaC5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmgKaW5k
ZXggMGYzNjZkZGQ4Y2ViMzYwMmNlZmIxMDExZDYwMGM3ZWY0OGQyYTE1ZS4uYWEzMmMyNmUxYjIy
ODRjZTM1YmQ3ZWFiNzBmYzczMzJjN2I5NmZkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9SZXBhdGNoLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBh
dGNoLmgKQEAgLTQ0LDcgKzQ0LDcgQEAgdm9pZCBidWlsZEdldEJ5SURMaXN0KEV4ZWNTdGF0ZSos
IEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXImLCBjb25zdCBQcm9wZXJ0eVNsb3QKIHZvaWQgYnVp
bGRHZXRCeUlEUHJvdG9MaXN0KEV4ZWNTdGF0ZSosIEpTVmFsdWUsIGNvbnN0IElkZW50aWZpZXIm
LCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBTdHJ1Y3R1cmVTdHViSW5mbyYpOwogdm9pZCByZXBhdGNo
UHV0QnlJRChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBjb25zdCBJZGVudGlmaWVy
JiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1YkluZm8mLCBQdXRLaW5kKTsK
IHZvaWQgYnVpbGRQdXRCeUlkTGlzdChFeGVjU3RhdGUqLCBKU1ZhbHVlLCBTdHJ1Y3R1cmUqLCBj
b25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHV0UHJvcGVydHlTbG90JiwgU3RydWN0dXJlU3R1Yklu
Zm8mLCBQdXRLaW5kKTsKLXZvaWQgcmVwYXRjaEluQnlJRChFeGVjU3RhdGUqLCBKU09iamVjdCos
IGNvbnN0IElkZW50aWZpZXImLCBib29sIHdhc0ZvdW5kLCBjb25zdCBQcm9wZXJ0eVNsb3QmLCBT
dHJ1Y3R1cmVTdHViSW5mbyYpOwordm9pZCByZXBhdGNoSW4oRXhlY1N0YXRlKiwgSlNDZWxsKiwg
Y29uc3QgSWRlbnRpZmllciYsIGJvb2wgd2FzRm91bmQsIGNvbnN0IFByb3BlcnR5U2xvdCYsIFN0
cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIHJlcGF0Y2hJbnN0YW5jZU9mKEV4ZWNTdGF0ZSosIEpT
VmFsdWUgdmFsdWUsIEpTVmFsdWUgcHJvdG90eXBlLCBTdHJ1Y3R1cmVTdHViSW5mbyYsIGJvb2wg
d2FzRm91bmQpOwogdm9pZCBsaW5rRm9yKEV4ZWNTdGF0ZSosIENhbGxMaW5rSW5mbyYsIENvZGVC
bG9jayosIEpTT2JqZWN0KiBjYWxsZWUsIE1hY3JvQXNzZW1ibGVyQ29kZVB0cjxKU0VudHJ5UHRy
VGFnPik7CiB2b2lkIGxpbmtEaXJlY3RGb3IoRXhlY1N0YXRlKiwgQ2FsbExpbmtJbmZvJiwgQ29k
ZUJsb2NrKiwgTWFjcm9Bc3NlbWJsZXJDb2RlUHRyPEpTRW50cnlQdHJUYWc+KTsKQEAgLTU0LDcg
KzU0LDcgQEAgdm9pZCBsaW5rVmlydHVhbEZvcihFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mKTsK
IHZvaWQgbGlua1BvbHltb3JwaGljQ2FsbChFeGVjU3RhdGUqLCBDYWxsTGlua0luZm8mLCBDYWxs
VmFyaWFudCk7CiB2b2lkIHJlc2V0R2V0QnlJRChDb2RlQmxvY2sqLCBTdHJ1Y3R1cmVTdHViSW5m
byYsIEdldEJ5SURLaW5kKTsKIHZvaWQgcmVzZXRQdXRCeUlEKENvZGVCbG9jayosIFN0cnVjdHVy
ZVN0dWJJbmZvJik7Ci12b2lkIHJlc2V0SW5CeUlEKENvZGVCbG9jayosIFN0cnVjdHVyZVN0dWJJ
bmZvJik7Cit2b2lkIHJlc2V0SW4oU3RydWN0dXJlU3R1YkluZm8mKTsKIHZvaWQgcmVzZXRJbnN0
YW5jZU9mKFN0cnVjdHVyZVN0dWJJbmZvJik7CiB2b2lkIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2Fs
bChDb2RlQmxvY2sqLCBDb2RlTG9jYXRpb25DYWxsPEpTSW50ZXJuYWxQdHJUYWc+LCBGdW5jdGlv
blB0cjxDRnVuY3Rpb25QdHJUYWc+IG5ld0NhbGxlZUZ1bmN0aW9uKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXIuYXNtCmluZGV4IDc2
NDg3MDU5Y2Q3NjRjMGE3ZmNlNGFhN2UxMDZkN2ZmY2VmN2IyNTkuLjJiYzlmZWJmZWMzODU3ODI2
N2MwNjBjOWY2MzhjYjExODU1ODFjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9sbGludC9Mb3dMZXZlbEludGVycHJldGVyLmFzbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlci5hc20KQEAgLTE1MDcsMTYgKzE1MDcsMTAgQEAg
X2xsaW50X29wX2lzX2Z1bmN0aW9uOgogICAgIGRpc3BhdGNoKGNvbnN0ZXhwciBvcF9pc19mdW5j
dGlvbl9sZW5ndGgpCiAKIAotX2xsaW50X29wX2luX2J5X2lkOgorX2xsaW50X29wX2luOgogICAg
IHRyYWNlRXhlY3V0aW9uKCkKLSAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9pbl9ieV9pZCkK
LSAgICBkaXNwYXRjaChjb25zdGV4cHIgb3BfaW5fYnlfaWRfbGVuZ3RoKQotCi0KLV9sbGludF9v
cF9pbl9ieV92YWw6Ci0gICAgdHJhY2VFeGVjdXRpb24oKQotICAgIGNhbGxTbG93UGF0aChfc2xv
d19wYXRoX2luX2J5X3ZhbCkKLSAgICBkaXNwYXRjaChjb25zdGV4cHIgb3BfaW5fYnlfdmFsX2xl
bmd0aCkKKyAgICBjYWxsU2xvd1BhdGgoX3Nsb3dfcGF0aF9pbikKKyAgICBkaXNwYXRjaChjb25z
dGV4cHIgb3BfaW5fbGVuZ3RoKQogCiAKIF9sbGludF9vcF90cnlfZ2V0X2J5X2lkOgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2xsaW50L0xvd0xldmVsSW50ZXJwcmV0ZXI2NC5h
c20gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFz
bQppbmRleCAzZWVhNTRkNjQ4NjY3OWQwYjRlMDM0ZDIzNDdlMDYwMmZmNzRiZGFiLi42MjY5ODlk
NTI2ZmFlYjAyYTg1YjIwZTk1ZDZkY2I5NjhhYmIwYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvbGxpbnQvTG93TGV2ZWxJbnRlcnByZXRlcjY0LmFzbQpAQCAtMTU1Miw3
ICsxNTUyLDYgQEAgX2xsaW50X29wX3B1dF9ieV9pZDoKICAgICBjYWxsU2xvd1BhdGgoX2xsaW50
X3Nsb3dfcGF0aF9wdXRfYnlfaWQpCiAgICAgZGlzcGF0Y2goY29uc3RleHByIG9wX3B1dF9ieV9p
ZF9sZW5ndGgpCiAKLQogbWFjcm8gZmluaXNoR2V0QnlWYWwocmVzdWx0LCBzY3JhdGNoKQogICAg
IGxvYWRpc0Zyb21JbnN0cnVjdGlvbigxLCBzY3JhdGNoKQogICAgIHN0b3JlcSByZXN1bHQsIFtj
ZnIsIHNjcmF0Y2gsIDhdCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcGFyc2Vy
L05vZGVDb25zdHJ1Y3RvcnMuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNv
bnN0cnVjdG9ycy5oCmluZGV4IDVkNzdkYjE5Yjc2MmVmNzg0MTQ2ODhlZGM3MWM4OWY5ZjdmNmRm
ZjkuLmU2ZjAzYjY1Yjc1ZDAwMjUyZjA0M2VjOTkzMWZiYmE1MDRiOTNjZGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9wYXJzZXIvTm9kZUNvbnN0cnVjdG9ycy5oCkBAIC02MjMsNyAr
NjIzLDcgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgfQogCiAgICAgaW5saW5lIEluTm9kZTo6SW5O
b2RlKGNvbnN0IEpTVG9rZW5Mb2NhdGlvbiYgbG9jYXRpb24sIEV4cHJlc3Npb25Ob2RlKiBleHBy
MSwgRXhwcmVzc2lvbk5vZGUqIGV4cHIyLCBib29sIHJpZ2h0SGFzQXNzaWdubWVudHMpCi0gICAg
ICAgIDogVGhyb3dhYmxlQmluYXJ5T3BOb2RlKGxvY2F0aW9uLCBleHByMSwgZXhwcjIsIG9wX2lu
X2J5X3ZhbCwgcmlnaHRIYXNBc3NpZ25tZW50cykKKyAgICAgICAgOiBUaHJvd2FibGVCaW5hcnlP
cE5vZGUobG9jYXRpb24sIGV4cHIxLCBleHByMiwgb3BfaW4sIHJpZ2h0SGFzQXNzaWdubWVudHMp
CiAgICAgewogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvQ29tbW9uU2xvd1BhdGhzLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
bW1vblNsb3dQYXRocy5jcHAKaW5kZXggMjUzZGI1ZTRhYWM2MTE0ZTMwNmY5ZDRmMjA5NGE0Yjdj
M2YxYTU3NC4uODRkZDNkMmE0NTE2YTE4OGYwZjk4YTAxZDUwMTAwNGNkYzcyNTY2MyAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29tbW9uU2xvd1BhdGhzLmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMuY3BwCkBA
IC02NDgsMjEgKzY0OCwxMCBAQCBTTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaXNfZnVuY3Rpb24p
CiAgICAgUkVUVVJOKGpzQm9vbGVhbihqc0lzRnVuY3Rpb25UeXBlKE9QX0MoMikuanNWYWx1ZSgp
KSkpOwogfQogCi1TTE9XX1BBVEhfREVDTChzbG93X3BhdGhfaW5fYnlfdmFsKQorU0xPV19QQVRI
X0RFQ0woc2xvd19wYXRoX2luKQogewogICAgIEJFR0lOKCk7Ci0gICAgUkVUVVJOKGpzQm9vbGVh
bihDb21tb25TbG93UGF0aHM6Om9wSW5CeVZhbChleGVjLCBPUF9DKDIpLmpzVmFsdWUoKSwgT1Bf
QygzKS5qc1ZhbHVlKCksIHBjWzRdLnUuYXJyYXlQcm9maWxlKSkpOwotfQotCi1TTE9XX1BBVEhf
REVDTChzbG93X3BhdGhfaW5fYnlfaWQpCi17Ci0gICAgQkVHSU4oKTsKLQotICAgIEpTVmFsdWUg
YmFzZVZhbHVlID0gT1BfQygyKS5qc1ZhbHVlKCk7Ci0gICAgaWYgKCFiYXNlVmFsdWUuaXNPYmpl
Y3QoKSkKLSAgICAgICAgVEhST1coY3JlYXRlSW52YWxpZEluUGFyYW1ldGVyRXJyb3IoZXhlYywg
YmFzZVZhbHVlKSk7Ci0KLSAgICBSRVRVUk4oanNCb29sZWFuKGFzT2JqZWN0KGJhc2VWYWx1ZSkt
Pmhhc1Byb3BlcnR5KGV4ZWMsIGV4ZWMtPmNvZGVCbG9jaygpLT5pZGVudGlmaWVyKHBjWzNdLnUu
b3BlcmFuZCkpKSk7CisgICAgUkVUVVJOKGpzQm9vbGVhbihDb21tb25TbG93UGF0aHM6Om9wSW4o
ZXhlYywgT1BfQygyKS5qc1ZhbHVlKCksIE9QX0MoMykuanNWYWx1ZSgpLCBwY1s0XS51LmFycmF5
UHJvZmlsZSkpKTsKIH0KIAogU0xPV19QQVRIX0RFQ0woc2xvd19wYXRoX2RlbF9ieV92YWwpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Db21tb25TbG93UGF0aHMu
aCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCmluZGV4
IDQwNmNkYTM3ZjE5ZjFlOTM2NzRlMjM0MzU0MTkxNWM0MjBlYTVkNGUuLmMyODUxMzU2N2NkM2E2
ODdiZDAzNDU5Zjc2MWRjOWFmZjhkMDAwN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL0NvbW1vblNsb3dQYXRocy5oCkBAIC04NSw3ICs4NSw3IEBAIEFMV0FZU19JTkxJ
TkUgaW50IGFyaXR5Q2hlY2tGb3IoRXhlY1N0YXRlKiBleGVjLCBWTSYgdm0sIENvZGVTcGVjaWFs
aXphdGlvbktpbmQKICAgICByZXR1cm4gcGFkZGluZzsKIH0KIAotaW5saW5lIGJvb2wgb3BJbkJ5
VmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsLCBKU1ZhbHVlIHByb3BOYW1lLCBB
cnJheVByb2ZpbGUqIGFycmF5UHJvZmlsZSA9IG51bGxwdHIpCitpbmxpbmUgYm9vbCBvcEluKEV4
ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBiYXNlVmFsLCBKU1ZhbHVlIHByb3BOYW1lLCBBcnJheVBy
b2ZpbGUqIGFycmF5UHJvZmlsZSA9IG51bGxwdHIpCiB7CiAgICAgVk0mIHZtID0gZXhlYy0+dm0o
KTsKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CkBAIC0zMDgsOCAr
MzA4LDcgQEAgU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90eXBlb2YpOwogU0xPV19Q
QVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pc19vYmplY3QpOwogU0xPV19QQVRIX0hJRERFTl9E
RUNMKHNsb3dfcGF0aF9pc19vYmplY3Rfb3JfbnVsbCk7CiBTTE9XX1BBVEhfSElEREVOX0RFQ0wo
c2xvd19wYXRoX2lzX2Z1bmN0aW9uKTsKLVNMT1dfUEFUSF9ISURERU5fREVDTChzbG93X3BhdGhf
aW5fYnlfaWQpOwotU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbl9ieV92YWwpOwor
U0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF9pbik7CiBTTE9XX1BBVEhfSElEREVOX0RF
Q0woc2xvd19wYXRoX2RlbF9ieV92YWwpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0
aF9zdHJjYXQpOwogU0xPV19QQVRIX0hJRERFTl9ERUNMKHNsb3dfcGF0aF90b19wcmltaXRpdmUp
OwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRl
eCA3MmY5OTU0ZmFkNDc2YjRkM2NkN2MyYTBkZWY1NTQ0ZmNmZTRiNTc3Li4zM2JjYzg5ZWI4YTI2
N2Y4YWE0NzU0ZGUxODVmMTkzZGU5MTc2ODIyIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxv
ZworKysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTA1LTIxICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMjMxOTk4IGFuZCByMjMyMDE3LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg1ODQyCisKKyAgICAgICAgY2F1c2VzIGNy
YXNoZXMgb24gMzIgSlNDIGJvdCAoUmVxdWVzdGVkIGJ5IHJlYWxkYXdlaSBvbgorICAgICAgICAj
d2Via2l0KS4KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXRzOgorCisgICAgICAgICJbSlND
XSBKU0Mgc2hvdWxkIGhhdmUgY29uc2lzdGVudCBJbkJ5SWQgSUMiCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU2ODIKKyAgICAgICAgaHR0cHM6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIzMTk5OAorCisgICAgICAgICJVbnJldmlld2VkLCBm
aXggMzJiaXQgYW5kIHNjb3BlIHJlbGVhc2UiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODU2ODIKKyAgICAgICAgaHR0cHM6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0LzIzMjAxNworCiAyMDE4LTA1LTE5ICBZdXN1a2UgU3V6dWtpICA8dXRhdGFu
ZS50ZWFAZ21haWwuY29tPgogCiAgICAgICAgIFtKU0NdIEpTQyBzaG91bGQgaGF2ZSBjb25zaXN0
ZW50IEluQnlJZCBJQwpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW4tYnktaWQtYWNjZXNz
b3JzLmpzIGIvSlNUZXN0cy9zdHJlc3MvaW4tYnktaWQtYWNjZXNzb3JzLmpzCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCBlMzhkZDZkN2EzYmYxYjg2ZDRhZTk0MzcwOWI2NDViZDY2NDdl
NzcwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0pTVGVz
dHMvc3RyZXNzL2luLWJ5LWlkLWFjY2Vzc29ycy5qcworKysgL2Rldi9udWxsCkBAIC0xLDQxICsw
LDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0
dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcg
KyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0KG9iamVjdCkKLXsKLSAgICB2YXIgbmFtZSA9
ICJoZWxsbyI7Ci0gICAgcmV0dXJuIG5hbWUgaW4gb2JqZWN0OwotfQotbm9JbmxpbmUodGVzdCk7
Ci0KLXZhciBwcm90b0dldHRlciA9IHsKLSAgICBfX3Byb3RvX186IHsKLSAgICAgICAgZ2V0IGhl
bGxvKCkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvdXQiKTsKLSAgICAgICAgfQot
ICAgIH0KLX07Ci12YXIgcHJvdG9TZXR0ZXIgPSB7Ci0gICAgX19wcm90b19fOiB7Ci0gICAgICAg
IHNldCBoZWxsbyh2YWx1ZSkgewotICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvdXQiKTsK
LSAgICAgICAgfQotICAgIH0KLX07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytpKSB7Ci0g
ICAgc2hvdWxkQmUodGVzdCh7Ci0gICAgICAgIGdldCBoZWxsbygpIHsKLSAgICAgICAgICAgIHRo
cm93IG5ldyBFcnJvcigib3V0Iik7Ci0gICAgICAgIH0KLSAgICB9KSwgdHJ1ZSk7Ci0gICAgc2hv
dWxkQmUodGVzdCh7fSksIGZhbHNlKTsKLSAgICBzaG91bGRCZSh0ZXN0KHByb3RvR2V0dGVyKSwg
dHJ1ZSk7Ci0gICAgc2hvdWxkQmUodGVzdCh7Ci0gICAgICAgIHNldCBoZWxsbyh2YWx1ZSkgewot
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvdXQiKTsKLSAgICAgICAgfQotICAgIH0pLCB0
cnVlKTsKLSAgICBzaG91bGRCZSh0ZXN0KHByb3RvU2V0dGVyKSwgdHJ1ZSk7Ci19CmRpZmYgLS1n
aXQgYS9KU1Rlc3RzL3N0cmVzcy9pbi1ieS1pZC1haS5qcyBiL0pTVGVzdHMvc3RyZXNzL2luLWJ5
LWlkLWFpLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmExMWFjNzJhNWQyOTE1
OTYxZDY2ZjhlZDNhNTEzYTFjMGY1ZmQ0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0pTVGVzdHMvc3RyZXNzL2luLWJ5LWlkLWFpLmpzCisrKyAvZGV2L251
bGwKQEAgLTEsMjYgKzAsMCBAQAotZnVuY3Rpb24gc2hvdWxkQmUoYWN0dWFsLCBleHBlY3RlZCkg
ewotICAgIGlmIChhY3R1YWwgIT09IGV4cGVjdGVkKQotICAgICAgICB0aHJvdyBuZXcgRXJyb3Io
J2JhZCB2YWx1ZTogJyArIGFjdHVhbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qob2JqZWN0KQotewot
ICAgIHZhciBuYW1lID0gImhlbGxvIjsKLSAgICByZXR1cm4gbmFtZSBpbiBvYmplY3Q7Ci19Ci1u
b0lubGluZSh0ZXN0KTsKLQotdmFyIHByb3RvID0gewotICAgIF9fcHJvdG9fXzogeyBoZWxsbzog
MiB9Ci19OwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTU7ICsraSkgewotICAgIHNob3VsZEJlKHRl
c3QoewotICAgICAgICBoZWxsbzogNDIKLSAgICB9KSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUodGVz
dCh7fSksIGZhbHNlKTsKLSAgICBzaG91bGRCZSh0ZXN0KHsKLSAgICAgICAgaGVsbG93b3JsZDog
NDMsCi0gICAgICAgIG9rOiA0NAotICAgIH0pLCBmYWxzZSk7Ci0gICAgc2hvdWxkQmUodGVzdChw
cm90byksIHRydWUpOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9zdHJlc3MvaW4tYnktaWQtY3Vz
dG9tLWFjY2Vzc29ycy5qcyBiL0pTVGVzdHMvc3RyZXNzL2luLWJ5LWlkLWN1c3RvbS1hY2Nlc3Nv
cnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk1NzFlYzhlYjVkN2UyM2FmMzI0
M2I4ZjExZWJhMzBkZmYwZGZmYmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW4tYnktaWQtY3VzdG9tLWFjY2Vzc29ycy5qcwor
KysgL2Rldi9udWxsCkBAIC0xLDI1ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwg
ZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cg
bmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0MShv
YmplY3QpCi17Ci0gICAgcmV0dXJuICJjdXN0b21WYWx1ZSIgaW4gb2JqZWN0OwotfQotbm9Jbmxp
bmUodGVzdDEpOwotCi1mdW5jdGlvbiB0ZXN0MihvYmplY3QpCi17Ci0gICAgcmV0dXJuICJjdXN0
b21BY2Nlc3NvciIgaW4gb2JqZWN0OwotfQotbm9JbmxpbmUodGVzdDIpOwotCi12YXIgdGFyZ2V0
MSA9ICR2bS5jcmVhdGVDdXN0b21UZXN0R2V0dGVyU2V0dGVyKCk7Ci12YXIgdGFyZ2V0MiA9IHsg
X19wcm90b19fOiB0YXJnZXQxIH07Ci1mb3IgKHZhciBpID0gMDsgaSA8IDFlNTsgKytpKSB7Ci0g
ICAgc2hvdWxkQmUodGVzdDEodGFyZ2V0MSksIHRydWUpOwotICAgIHNob3VsZEJlKHRlc3QxKHRh
cmdldDIpLCB0cnVlKTsKLSAgICBzaG91bGRCZSh0ZXN0Mih0YXJnZXQxKSwgdHJ1ZSk7Ci0gICAg
c2hvdWxkQmUodGVzdDIodGFyZ2V0MiksIHRydWUpOwotfQpkaWZmIC0tZ2l0IGEvSlNUZXN0cy9z
dHJlc3MvaW4tYnktaWQtY3VzdG9tLXZhbHVlcy5qcyBiL0pTVGVzdHMvc3RyZXNzL2luLWJ5LWlk
LWN1c3RvbS12YWx1ZXMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY4NDc4MWZj
MzU4ZjNjYTZkZTUwY2NjNDhmMzE0ZmYyMTg0YzQzZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvSlNUZXN0cy9zdHJlc3MvaW4tYnktaWQtY3VzdG9tLXZh
bHVlcy5qcworKysgL2Rldi9udWxsCkBAIC0xLDE3ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJl
KGFjdHVhbCwgZXhwZWN0ZWQpIHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAg
ICAgdGhyb3cgbmV3IEVycm9yKCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlv
biB0ZXN0KG9iamVjdCkKLXsKLSAgICByZXR1cm4gIiQxIiBpbiBvYmplY3Q7Ci19Ci1ub0lubGlu
ZSh0ZXN0KTsKLQotdmFyIHRhcmdldDEgPSBSZWdFeHA7Ci12YXIgdGFyZ2V0MiA9IHsgX19wcm90
b19fOiBSZWdFeHAgfTsKLWZvciAodmFyIGkgPSAwOyBpIDwgMWU1OyArK2kpIHsKLSAgICBzaG91
bGRCZSh0ZXN0KHRhcmdldDEpLCB0cnVlKTsKLSAgICBzaG91bGRCZSh0ZXN0KHRhcmdldDIpLCB0
cnVlKTsKLX0KZGlmZiAtLWdpdCBhL0pTVGVzdHMvc3RyZXNzL2luLWJ5LWlkLW9wZXJhdGlvbi5q
cyBiL0pTVGVzdHMvc3RyZXNzL2luLWJ5LWlkLW9wZXJhdGlvbi5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggOTVkZDJjNDBlMzE5OWIyMDZmMGY2NmNiNWIyYjI1ZmVkZWU5NDViMi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0
cmVzcy9pbi1ieS1pZC1vcGVyYXRpb24uanMKKysrIC9kZXYvbnVsbApAQCAtMSw0MiArMCwwIEBA
Ci1mdW5jdGlvbiBzaG91bGRCZShhY3R1YWwsIGV4cGVjdGVkKSB7Ci0gICAgaWYgKGFjdHVhbCAh
PT0gZXhwZWN0ZWQpCi0gICAgICAgIHRocm93IG5ldyBFcnJvcignYmFkIHZhbHVlOiAnICsgYWN0
dWFsKTsKLX0KLQotZnVuY3Rpb24gdGVzdChvYmplY3QpCi17Ci0gICAgcmV0dXJuICJoZWxsbyIg
aW4gb2JqZWN0OwotfQotbm9JbmxpbmUodGVzdCk7Ci0KLWZvciAodmFyIGkgPSAwOyBpIDwgMWU2
OyArK2kpIHsKLSAgICBzaG91bGRCZSh0ZXN0KHsKLSAgICAgICAgaGVsbG86IDQyCi0gICAgfSks
IHRydWUpOwotICAgIHNob3VsZEJlKHRlc3QoewotICAgICAgICBoZWxsbzogdW5kZWZpbmVkLAot
ICAgICAgICB3b3JsZDogNDQKLSAgICB9KSwgdHJ1ZSk7Ci0gICAgc2hvdWxkQmUodGVzdCh7Ci0g
ICAgICAgIGhlbGxvd29ybGQ6IDQzLAotICAgICAgICBvazogNDQKLSAgICB9KSwgZmFsc2UpOwot
fQotCi1mdW5jdGlvbiBzZWxmQ2FjaGUob2JqZWN0KQotewotICAgIHJldHVybiAiaGVsbG8iIGlu
IG9iamVjdDsKLX0KLW5vSW5saW5lKHNlbGZDYWNoZSk7Ci0KLXZhciBvYmplY3QgPSB7fTsKLW9i
amVjdC5oZWxsbyA9IDQyOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTY7ICsraSkKLSAgICBzaG91
bGRCZShzZWxmQ2FjaGUob2JqZWN0KSwgdHJ1ZSk7Ci1vYmplY3Qud29ybGQgPSA0MzsKLXNob3Vs
ZEJlKHNlbGZDYWNoZShvYmplY3QpLCB0cnVlKTsKLW9iamVjdC53b3JsZCA9IDQzOwotc2hvdWxk
QmUoc2VsZkNhY2hlKHsgX19wcm90b19fOiBvYmplY3QgfSksIHRydWUpOwotZGVsZXRlIG9iamVj
dC5oZWxsbzsKLXNob3VsZEJlKHNlbGZDYWNoZShvYmplY3QpLCBmYWxzZSk7Ci1zaG91bGRCZShz
ZWxmQ2FjaGUoeyBfX3Byb3RvX186IG9iamVjdCB9KSwgZmFsc2UpOwpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9zdHJlc3MvaW4tYnktaWQtcHJveHkuanMgYi9KU1Rlc3RzL3N0cmVzcy9pbi1ieS1pZC1w
cm94eS5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMWU1NmJmMmY4YmI4OGJmMzY1
MzhkMjMzOWQyODIwYmU0MjJlY2QyYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9KU1Rlc3RzL3N0cmVzcy9pbi1ieS1pZC1wcm94eS5qcworKysgL2Rldi9u
dWxsCkBAIC0xLDQ0ICswLDAgQEAKLWZ1bmN0aW9uIHNob3VsZEJlKGFjdHVhbCwgZXhwZWN0ZWQp
IHsKLSAgICBpZiAoYWN0dWFsICE9PSBleHBlY3RlZCkKLSAgICAgICAgdGhyb3cgbmV3IEVycm9y
KCdiYWQgdmFsdWU6ICcgKyBhY3R1YWwpOwotfQotCi1mdW5jdGlvbiB0ZXN0KG9iamVjdCkKLXsK
LSAgICByZXR1cm4gImhlbGxvIiBpbiBvYmplY3Q7Ci19Ci1ub0lubGluZSh0ZXN0KTsKLQotdmFy
IGNvdW50ID0gMDsKLXZhciB0YXJnZXQgPSBudWxsOwotdmFyIGtleSA9IG51bGw7Ci12YXIgaGFu
ZGxlciA9IHsKLSAgICBoYXModGFyZ2V0QXJnLCBrZXlBcmcpIHsKLSAgICAgICAgKytjb3VudDsK
LSAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0QXJnOwotICAgICAgICBrZXkgPSBrZXlBcmc7Ci0gICAg
ICAgIHJldHVybiBrZXlBcmcgaW4gdGFyZ2V0QXJnOwotICAgIH0KLX07Ci12YXIgdGFyZ2V0T2Jq
ZWN0ID0ge307Ci12YXIgcHJveHkgPSBuZXcgUHJveHkodGFyZ2V0T2JqZWN0LCBoYW5kbGVyKTsK
LWZvciAodmFyIGkgPSAwOyBpIDwgMWU0OyArK2kpIHsKLSAgICBzaG91bGRCZShjb3VudCwgaSk7
Ci0gICAgc2hvdWxkQmUodGVzdChwcm94eSksIGZhbHNlKTsKLSAgICBzaG91bGRCZSh0YXJnZXQs
IHRhcmdldE9iamVjdCk7Ci0gICAgc2hvdWxkQmUoa2V5LCAiaGVsbG8iKTsKLX0KLXRhcmdldE9i
amVjdC5oZWxsbyA9IDQyOwotZm9yICh2YXIgaSA9IDA7IGkgPCAxZTQ7ICsraSkgewotICAgIHNo
b3VsZEJlKGNvdW50LCBpICsgMWU0KTsKLSAgICBzaG91bGRCZSh0ZXN0KHByb3h5KSwgdHJ1ZSk7
Ci0gICAgc2hvdWxkQmUodGFyZ2V0LCB0YXJnZXRPYmplY3QpOwotICAgIHNob3VsZEJlKGtleSwg
ImhlbGxvIik7Ci19Ci1kZWxldGUgdGFyZ2V0T2JqZWN0LmhlbGxvOwotZm9yICh2YXIgaSA9IDA7
IGkgPCAxZTQ7ICsraSkgewotICAgIHNob3VsZEJlKGNvdW50LCBpICsgMmU0KTsKLSAgICBzaG91
bGRCZSh0ZXN0KHByb3h5KSwgZmFsc2UpOwotICAgIHNob3VsZEJlKHRhcmdldCwgdGFyZ2V0T2Jq
ZWN0KTsKLSAgICBzaG91bGRCZShrZXksICJoZWxsbyIpOwotfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>