<?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>156482</bug_id>
          
          <creation_ts>2016-04-11 16:43:11 -0700</creation_ts>
          <short_desc>REGRESSION(r199315): This change broke the OS X Yosemite build. (Requested by jwtan on #webkit).</short_desc>
          <delta_ts>2016-04-11 16:46:06 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>155783</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>darin</cc>
    
    <cc>jeremyj-wk</cc>
    
    <cc>jiewen_tan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1182874</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:43:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/199315 broke the build:
This change broke the OS X Yosemite build. (Requested by jwtan 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>1182875</commentid>
    <comment_count>1</comment_count>
      <attachid>276188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:43:53 -0700</bug_when>
    <thetext>Created attachment 276188
ROLLOUT of r199315

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>1182876</commentid>
    <comment_count>2</comment_count>
      <attachid>276188</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:46:03 -0700</bug_when>
    <thetext>Comment on attachment 276188
ROLLOUT of r199315

Clearing flags on attachment: 276188

Committed r199321: &lt;http://trac.webkit.org/changeset/199321&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1182877</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-11 16:46:06 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276188</attachid>
            <date>2016-04-11 16:43:53 -0700</date>
            <delta_ts>2016-04-11 16:46:03 -0700</delta_ts>
            <desc>ROLLOUT of r199315</desc>
            <filename>bug-156482-20160411164401.patch</filename>
            <type>text/plain</type>
            <size>50124</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk5MzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjM5MThmZWZiMmUzZTlm
M2I1YzhhMGI1ZGVmOWJmNDY5ZTE0MzIzZC4uNWNkZGEwZDFhNjJkNDYyNTdhOGZjN2ZmYWNkMjhl
ZmNiNTRlNzI0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA0LTExICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTk5MzE1LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTU2NDgyCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYnJva2UgdGhlIE9T
IFggWW9zZW1pdGUgYnVpbGQuIChSZXF1ZXN0ZWQgYnkgand0YW4KKyAgICAgICAgb24gI3dlYmtp
dCkuCisKKyAgICAgICAgUmV2ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJXaGVuIGNsZWFy
aW5nIGNhY2hlLCBhbHNvIGNsZWFyIEFWRm91bmRhdGlvbiBjYWNoZS4iCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU3ODMKKyAgICAgICAgaHR0cDov
L3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTk5MzE1CisKIDIwMTYtMDQtMTEgIEJyaWFuIEJ1
cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogZ2V0IHJpZCBv
ZiBJbnNwZWN0b3JCYXNpY1ZhbHVlIGFuZCBJbnNwZWN0b3JTdHJpbmcgc3ViY2xhc3NlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCmluZGV4IDZiMTA1MzkxZjUyZjhiODQzNTY4OGU5MjJiMjUwYzdiZWVlYzkyN2EuLjYyM2Jh
MDJmZTI1OWU5NjkwZmM5OTNiNDBkMjA0YjgzNGJhNWJkODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxNi0wNC0xMSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5v
cmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5OTMxNS4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjQ4MgorCisgICAgICAg
IFRoaXMgY2hhbmdlIGJyb2tlIHRoZSBPUyBYIFlvc2VtaXRlIGJ1aWxkLiAoUmVxdWVzdGVkIGJ5
IGp3dGFuCisgICAgICAgIG9uICN3ZWJraXQpLgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dDoKKworICAgICAgICAiV2hlbiBjbGVhcmluZyBjYWNoZSwgYWxzbyBjbGVhciBBVkZvdW5kYXRp
b24gY2FjaGUuIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTU1NzgzCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzE5OTMx
NQorCiAyMDE2LTA0LTExICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAogICAg
ICAgICBXaGVuIGNsZWFyaW5nIGNhY2hlLCBhbHNvIGNsZWFyIEFWRm91bmRhdGlvbiBjYWNoZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDNmNGY2NDU5ZTRk
ZWJiZjMwNjJlNTcyODFjOWQwZDFkOWY5MDY0NTIuLmE3Mjc3OWZiYjhlNzg4ODNmMzI2ODk5MmM2
YjY2ZjEzYWEzNjQzNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNw
cApAQCAtNTU5MywzNiArNTU5MywyMSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3Vs
ZERlbGF5TG9hZEV2ZW50KGJvb2wgc2hvdWxkRGVsYXkpCiAgICAgZWxzZQogICAgICAgICBkb2N1
bWVudCgpLmRlY3JlbWVudExvYWRFdmVudERlbGF5Q291bnQoKTsKIH0KKyAgICAKIAotc3RhdGlj
IFN0cmluZyYgc2hhcmVkTWVkaWFDYWNoZURpcmVjdG9yeSgpCi17Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gc2hhcmVkTWVkaWFDYWNoZURpcmVjdG9yeTsKLSAgICByZXR1cm4g
c2hhcmVkTWVkaWFDYWNoZURpcmVjdG9yeTsKLX0KLQotdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUNhY2hlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBzaGFyZWRN
ZWRpYUNhY2hlRGlyZWN0b3J5KCkgPSBwYXRoOwotfQotCi1jb25zdCBTdHJpbmcmIEhUTUxNZWRp
YUVsZW1lbnQ6Om1lZGlhQ2FjaGVEaXJlY3RvcnkoKQotewotICAgIHJldHVybiBzaGFyZWRNZWRp
YUNhY2hlRGlyZWN0b3J5KCk7Ci19Ci0KLUhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4g
SFRNTE1lZGlhRWxlbWVudDo6b3JpZ2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgp
Cit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmdldFNpdGVzSW5NZWRpYUNhY2hlKFZlY3RvcjxTdHJp
bmc+JiBzaXRlcykKIHsKLSAgICByZXR1cm4gTWVkaWFQbGF5ZXI6Om9yaWdpbnNJbk1lZGlhQ2Fj
aGUocGF0aCk7CisgICAgTWVkaWFQbGF5ZXI6OmdldFNpdGVzSW5NZWRpYUNhY2hlKHNpdGVzKTsK
IH0KIAotdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5n
JiBwYXRoLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UpCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFDYWNoZSgpCiB7Ci0gICAgTWVk
aWFQbGF5ZXI6OmNsZWFyTWVkaWFDYWNoZShwYXRoLCBtb2RpZmllZFNpbmNlKTsKKyAgICBNZWRp
YVBsYXllcjo6Y2xlYXJNZWRpYUNhY2hlKCk7CiB9CiAKLXZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEhhc2hT
ZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mIG9yaWdpbnMpCit2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5nJiBzaXRlKQogewotICAgIE1l
ZGlhUGxheWVyOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKHBhdGgsIG9yaWdpbnMpOworICAg
IE1lZGlhUGxheWVyOjpjbGVhck1lZGlhQ2FjaGVGb3JTaXRlKHNpdGUpOwogfQogCiB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OnJlc2V0TWVkaWFFbmdpbmVzKCkKQEAgLTYyMDcsMTEgKzYxOTIsNiBA
QCBib29sIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENh
Y2hlKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWNvbnN0IFN0cmluZyYgSFRNTE1l
ZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbWVkaWFDYWNoZURpcmVjdG9yeSgpOwotfQotCiBib29sIEhUTUxNZWRpYUVsZW1l
bnQ6Om1lZGlhUGxheWVyU2hvdWxkV2FpdEZvclJlc3BvbnNlVG9BdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbmdlKQogewogICAgIEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmgKaW5kZXggN2VkZDQ0NDE3YTc5ODE3NzMyNjNkMmI0Zjk1NGM0YTk3ODI3ZTI4
NS4uZWRhNDg1NzI2ZmY5ZjgxN2NjNWJjZGMyMzY1Yzc5NWEzNDk0MGFlMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKQEAgLTM4MCwxMSArMzgwLDkgQEAgcHVibGljOgog
ICAgIHZvaWQgcHJpdmF0ZUJyb3dzaW5nU3RhdGVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKIAogICAg
IC8vIE1lZGlhIGNhY2hlIG1hbmFnZW1lbnQuCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgc2V0TWVkaWFDYWNoZURpcmVjdG9yeShjb25zdCBTdHJpbmcmKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgU3RyaW5nJiBtZWRpYUNhY2hlRGlyZWN0b3J5KCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2lu
c0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
dm9pZCBjbGVhck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiwgc3RkOjpjaHJvbm86OnN5c3RlbV9j
bG9jazo6dGltZV9wb2ludCBtb2RpZmllZFNpbmNlID0geyB9KTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYsIGNv
bnN0IEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgdm9pZCBnZXRTaXRlc0luTWVkaWFDYWNoZShWZWN0b3I8U3RyaW5nPiYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZSgpOworICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvclNpdGUoY29uc3QgU3RyaW5n
Jik7CiAgICAgc3RhdGljIHZvaWQgcmVzZXRNZWRpYUVuZ2luZXMoKTsKIAogICAgIGJvb2wgaXNQ
bGF5aW5nKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5aW5nOyB9CkBAIC01OTksNyArNTk3LDYgQEAg
cHJpdmF0ZToKICAgICBDYWNoZWRSZXNvdXJjZUxvYWRlciogbWVkaWFQbGF5ZXJDYWNoZWRSZXNv
dXJjZUxvYWRlcigpIG92ZXJyaWRlOwogICAgIFJlZlB0cjxQbGF0Zm9ybU1lZGlhUmVzb3VyY2VM
b2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSBvdmVycmlkZTsKICAgICBi
b29sIG1lZGlhUGxheWVyU2hvdWxkVXNlUGVyc2lzdGVudENhY2hlKCkgY29uc3Qgb3ZlcnJpZGU7
Ci0gICAgY29uc3QgU3RyaW5nJiBtZWRpYVBsYXllck1lZGlhQ2FjaGVEaXJlY3RvcnkoKSBjb25z
dCBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKICAg
ICBHcmFwaGljc0RldmljZUFkYXB0ZXIqIG1lZGlhUGxheWVyR3JhcGhpY3NEZXZpY2VBZGFwdGVy
KGNvbnN0IE1lZGlhUGxheWVyKikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggMWI4MWQ0ZGY4YTJmMDQ1
NWE1ZTJjY2E2YmMzNmM3NWYxN2I2YjY3Ny4uMGFkNjEzYmI4MGQyNjljZmY2N2RmYWRhYTkzYTNi
YWVmMDJlN2E4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmNwcApAQCAtMTcwLDEzICsxNzAsMTMgQEAgc3RydWN0IE1lZGlhUGxheWVyRmFj
dG9yeSB7CiAgICAgQ3JlYXRlTWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3I7CiAgICAgTWVk
aWFFbmdpbmVTdXBwb3J0ZWRUeXBlcyBnZXRTdXBwb3J0ZWRUeXBlczsKICAgICBNZWRpYUVuZ2lu
ZVN1cHBvcnRzVHlwZSBzdXBwb3J0c1R5cGVBbmRDb2RlY3M7Ci0gICAgTWVkaWFFbmdpbmVPcmln
aW5zSW5NZWRpYUNhY2hlIG9yaWdpbnNJbk1lZGlhQ2FjaGU7CisgICAgTWVkaWFFbmdpbmVHZXRT
aXRlc0luTWVkaWFDYWNoZSBnZXRTaXRlc0luTWVkaWFDYWNoZTsKICAgICBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGU7Ci0gICAgTWVkaWFFbmdpbmVDbGVhck1lZGlh
Q2FjaGVGb3JPcmlnaW5zIGNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnM7CisgICAgTWVkaWFFbmdp
bmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlIGNsZWFyTWVkaWFDYWNoZUZvclNpdGU7CiAgICAgTWVk
aWFFbmdpbmVTdXBwb3J0c0tleVN5c3RlbSBzdXBwb3J0c0tleVN5c3RlbTsKIH07CiAKLXN0YXRp
YyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRpYUVuZ2lu
ZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdpbmVPcmln
aW5zSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVD
bGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsK
K3N0YXRpYyB2b2lkIGFkZE1lZGlhRW5naW5lKENyZWF0ZU1lZGlhRW5naW5lUGxheWVyLCBNZWRp
YUVuZ2luZVN1cHBvcnRlZFR5cGVzLCBNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSwgTWVkaWFFbmdp
bmVHZXRTaXRlc0luTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUsIE1lZGlh
RW5naW5lQ2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgTWVkaWFFbmdpbmVTdXBwb3J0c0tleVN5c3Rl
bSk7CiAKIHN0YXRpYyBib29sIGhhdmVNZWRpYUVuZ2luZXNWZWN0b3I7CiAKQEAgLTIzNCwxMyAr
MjM0LDEzIEBAIHN0YXRpYyBjb25zdCBWZWN0b3I8TWVkaWFQbGF5ZXJGYWN0b3J5PiYgaW5zdGFs
bGVkTWVkaWFFbmdpbmVzKCkKIH0KIAogc3RhdGljIHZvaWQgYWRkTWVkaWFFbmdpbmUoQ3JlYXRl
TWVkaWFFbmdpbmVQbGF5ZXIgY29uc3RydWN0b3IsIE1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMg
Z2V0U3VwcG9ydGVkVHlwZXMsIE1lZGlhRW5naW5lU3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZSwK
LSAgICBNZWRpYUVuZ2luZU9yaWdpbnNJbk1lZGlhQ2FjaGUgb3JpZ2luc0luTWVkaWFDYWNoZSwg
TWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGUgY2xlYXJNZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMgY2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucywgTWVkaWFF
bmdpbmVTdXBwb3J0c0tleVN5c3RlbSBzdXBwb3J0c0tleVN5c3RlbSkKKyAgICBNZWRpYUVuZ2lu
ZUdldFNpdGVzSW5NZWRpYUNhY2hlIGdldFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNs
ZWFyTWVkaWFDYWNoZSBjbGVhck1lZGlhQ2FjaGUsIE1lZGlhRW5naW5lQ2xlYXJNZWRpYUNhY2hl
Rm9yU2l0ZSBjbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lz
dGVtIHN1cHBvcnRzS2V5U3lzdGVtKQogewogICAgIEFTU0VSVChjb25zdHJ1Y3Rvcik7CiAgICAg
QVNTRVJUKGdldFN1cHBvcnRlZFR5cGVzKTsKICAgICBBU1NFUlQoc3VwcG9ydHNUeXBlKTsKIAot
ICAgIG11dGFibGVJbnN0YWxsZWRNZWRpYUVuZ2luZXNWZWN0b3IoKS5hcHBlbmQoTWVkaWFQbGF5
ZXJGYWN0b3J5IHsgY29uc3RydWN0b3IsIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUs
IG9yaWdpbnNJbk1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9y
T3JpZ2lucywgc3VwcG9ydHNLZXlTeXN0ZW0gfSk7CisgICAgbXV0YWJsZUluc3RhbGxlZE1lZGlh
RW5naW5lc1ZlY3RvcigpLmFwcGVuZChNZWRpYVBsYXllckZhY3RvcnkgeyBjb25zdHJ1Y3Rvciwg
Z2V0U3VwcG9ydGVkVHlwZXMsIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUsIGNs
ZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgc3VwcG9ydHNLZXlTeXN0ZW0g
fSk7CiB9CiAKIHN0YXRpYyBjb25zdCBBdG9taWNTdHJpbmcmIGFwcGxpY2F0aW9uT2N0ZXRTdHJl
YW0oKQpAQCAtMTA0MiwzOSArMTA0MiwzMCBAQCB2b2lkIE1lZGlhUGxheWVyOjpyZWxvYWRUaW1l
ckZpcmVkKCkKICAgICBsb2FkV2l0aE5leHRNZWRpYUVuZ2luZShtX2N1cnJlbnRNZWRpYUVuZ2lu
ZSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1zdGF0aWMgdm9pZCBhZGRUb0hhc2goSGFz
aFNldDxUPiYgdG9IYXNoLCBIYXNoU2V0PFQ+JiYgZnJvbUhhc2gpCit2b2lkIE1lZGlhUGxheWVy
OjpnZXRTaXRlc0luTWVkaWFDYWNoZShWZWN0b3I8U3RyaW5nPiYgc2l0ZXMpCiB7Ci0gICAgaWYg
KHRvSGFzaC5pc0VtcHR5KCkpCi0gICAgICAgIHRvSGFzaCA9IFdURk1vdmUoZnJvbUhhc2gpOwot
ICAgIGVsc2UKLSAgICAgICAgdG9IYXNoLmFkZChmcm9tSGFzaC5iZWdpbigpLCBmcm9tSGFzaC5l
bmQoKSk7Ci19Ci0gICAgCi1IYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1lZGlhUGxh
eWVyOjpvcmlnaW5zSW5NZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYgcGF0aCkKLXsKLSAgICBIYXNo
U2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnM7CiAgICAgZm9yIChhdXRvJiBlbmdp
bmUgOiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSkgewotICAgICAgICBpZiAoIWVuZ2luZS5vcmln
aW5zSW5NZWRpYUNhY2hlKQorICAgICAgICBpZiAoIWVuZ2luZS5nZXRTaXRlc0luTWVkaWFDYWNo
ZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhZGRUb0hhc2gob3JpZ2lucywgZW5n
aW5lLm9yaWdpbnNJbk1lZGlhQ2FjaGUocGF0aCkpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBl
bmdpbmVTaXRlczsKKyAgICAgICAgZW5naW5lLmdldFNpdGVzSW5NZWRpYUNhY2hlKGVuZ2luZVNp
dGVzKTsKKyAgICAgICAgc2l0ZXMuYXBwZW5kVmVjdG9yKGVuZ2luZVNpdGVzKTsKICAgICB9Ci0g
ICAgcmV0dXJuIG9yaWdpbnM7CiB9CiAKLXZvaWQgTWVkaWFQbGF5ZXI6OmNsZWFyTWVkaWFDYWNo
ZShjb25zdCBTdHJpbmcmIHBhdGgsIHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQgbW9kaWZpZWRTaW5jZSkKK3ZvaWQgTWVkaWFQbGF5ZXI6OmNsZWFyTWVkaWFDYWNoZSgpCiB7
CiAgICAgZm9yIChhdXRvJiBlbmdpbmUgOiBpbnN0YWxsZWRNZWRpYUVuZ2luZXMoKSkgewogICAg
ICAgICBpZiAoZW5naW5lLmNsZWFyTWVkaWFDYWNoZSkKLSAgICAgICAgICAgIGVuZ2luZS5jbGVh
ck1lZGlhQ2FjaGUocGF0aCwgbW9kaWZpZWRTaW5jZSk7CisgICAgICAgICAgICBlbmdpbmUuY2xl
YXJNZWRpYUNhY2hlKCk7CiAgICAgfQogfQogCi12b2lkIE1lZGlhUGxheWVyOjpjbGVhck1lZGlh
Q2FjaGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3QgSGFzaFNldDxSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKK3ZvaWQgTWVkaWFQbGF5ZXI6OmNsZWFyTWVkaWFD
YWNoZUZvclNpdGUoY29uc3QgU3RyaW5nJiBzaXRlKQogewogICAgIGZvciAoYXV0byYgZW5naW5l
IDogaW5zdGFsbGVkTWVkaWFFbmdpbmVzKCkpIHsKLSAgICAgICAgaWYgKGVuZ2luZS5jbGVhck1l
ZGlhQ2FjaGVGb3JPcmlnaW5zKQotICAgICAgICAgICAgZW5naW5lLmNsZWFyTWVkaWFDYWNoZUZv
ck9yaWdpbnMocGF0aCwgb3JpZ2lucyk7CisgICAgICAgIGlmIChlbmdpbmUuY2xlYXJNZWRpYUNh
Y2hlRm9yU2l0ZSkKKyAgICAgICAgICAgIGVuZ2luZS5jbGVhck1lZGlhQ2FjaGVGb3JTaXRlKHNp
dGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyLmgKaW5kZXggOTMwNTAxNzEwZTNhOWIxY2U2ODRjMzMwNDdjMjE1MmVjZTFjYTk3
OC4uYjk2OTRhZGIzNzJjNGIwY2EzNjkzZWMwMjg3OTU3YjFiZjc1MDdmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00MCw3ICs0MCw2
IEBACiAjaW5jbHVkZSAiUGxhdGZvcm1MYXllci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFS
ZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVkaWFTZXNzaW9uLmgiCi0jaW5j
bHVkZSAiU2VjdXJpdHlPcmlnaW5IYXNoLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRl
ICJWaWRlb1RyYWNrUHJpdmF0ZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvVWludDhBcnJheS5oPgpA
QCAtMjM3LDcgKzIzNiw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxQbGF0Zm9ybU1l
ZGlhUmVzb3VyY2VMb2FkZXI+IG1lZGlhUGxheWVyQ3JlYXRlUmVzb3VyY2VMb2FkZXIoKSB7IHJl
dHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCBib29sIGRvZXNIYXZlQXR0cmlidXRlKGNvbnN0
IEF0b21pY1N0cmluZyYsIEF0b21pY1N0cmluZyogPSAwKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBtZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgp
IGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGNvbnN0IFN0cmluZyYgbWVkaWFQ
bGF5ZXJNZWRpYUNhY2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gZW1wdHlTdHJpbmcoKTsg
fQogCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYVBsYXll
ckRpZEFkZEF1ZGlvVHJhY2soUGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4pIHsgfQpAQCAt
Mjk0LDkgKzI5Miw5IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgTWVkaWFQbGF5ZXI6OlN1cHBvcnRz
VHlwZSBzdXBwb3J0c1R5cGUoY29uc3QgTWVkaWFFbmdpbmVTdXBwb3J0UGFyYW1ldGVycyYsIGNv
bnN0IE1lZGlhUGxheWVyU3VwcG9ydHNUeXBlQ2xpZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZ2V0
U3VwcG9ydGVkVHlwZXMoSGFzaFNldDxTdHJpbmcsIEFTQ0lJQ2FzZUluc2Vuc2l0aXZlSGFzaD4m
KTsKICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwotICAgIHN0YXRpYyBIYXNoU2V0PFJl
ZlB0cjxTZWN1cml0eU9yaWdpbj4+IG9yaWdpbnNJbk1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBw
YXRoKTsKLSAgICBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBwYXRo
LCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOwot
ICAgIHN0YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJiBw
YXRoLCBjb25zdCBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+Jik7CisgICAgc3RhdGlj
IHZvaWQgZ2V0U2l0ZXNJbk1lZGlhQ2FjaGUoVmVjdG9yPFN0cmluZz4mKTsKKyAgICBzdGF0aWMg
dm9pZCBjbGVhck1lZGlhQ2FjaGUoKTsKKyAgICBzdGF0aWMgdm9pZCBjbGVhck1lZGlhQ2FjaGVG
b3JTaXRlKGNvbnN0IFN0cmluZyYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzS2V5U3lzdGVt
KGNvbnN0IFN0cmluZyYga2V5U3lzdGVtLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKTsKIAogICAg
IGJvb2wgc3VwcG9ydHNGdWxsc2NyZWVuKCkgY29uc3Q7CkBAIC02MzIsMTMgKzYzMCwxMyBAQCBw
cml2YXRlOgogdHlwZWRlZiBzdGQ6OmZ1bmN0aW9uPHN0ZDo6dW5pcXVlX3B0cjxNZWRpYVBsYXll
clByaXZhdGVJbnRlcmZhY2U+IChNZWRpYVBsYXllciopPiBDcmVhdGVNZWRpYUVuZ2luZVBsYXll
cjsKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lU3VwcG9ydGVkVHlwZXMpKEhhc2hTZXQ8U3Ry
aW5nLCBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2g+JiB0eXBlcyk7CiB0eXBlZGVmIE1lZGlhUGxh
eWVyOjpTdXBwb3J0c1R5cGUgKCpNZWRpYUVuZ2luZVN1cHBvcnRzVHlwZSkoY29uc3QgTWVkaWFF
bmdpbmVTdXBwb3J0UGFyYW1ldGVycyYgcGFyYW1ldGVycyk7Ci10eXBlZGVmIEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4gKCpNZWRpYUVuZ2luZU9yaWdpbnNJbk1lZGlhQ2FjaGUpKGNv
bnN0IFN0cmluZyYgcGF0aCk7Ci10eXBlZGVmIHZvaWQgKCpNZWRpYUVuZ2luZUNsZWFyTWVkaWFD
YWNoZSkoY29uc3QgU3RyaW5nJiBwYXRoLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1l
X3BvaW50IG1vZGlmaWVkU2luY2UpOwotdHlwZWRlZiB2b2lkICgqTWVkaWFFbmdpbmVDbGVhck1l
ZGlhQ2FjaGVGb3JPcmlnaW5zKShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IEhhc2hTZXQ8UmVm
UHRyPFNlY3VyaXR5T3JpZ2luPj4mKTsKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lR2V0U2l0
ZXNJbk1lZGlhQ2FjaGUpKFZlY3RvcjxTdHJpbmc+Jik7Cit0eXBlZGVmIHZvaWQgKCpNZWRpYUVu
Z2luZUNsZWFyTWVkaWFDYWNoZSkoKTsKK3R5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lQ2xlYXJN
ZWRpYUNhY2hlRm9yU2l0ZSkoY29uc3QgU3RyaW5nJik7CiB0eXBlZGVmIGJvb2wgKCpNZWRpYUVu
Z2luZVN1cHBvcnRzS2V5U3lzdGVtKShjb25zdCBTdHJpbmcmIGtleVN5c3RlbSwgY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSk7CiAKIHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0cmFyKShD
cmVhdGVNZWRpYUVuZ2luZVBsYXllciwgTWVkaWFFbmdpbmVTdXBwb3J0ZWRUeXBlcywgTWVkaWFF
bmdpbmVTdXBwb3J0c1R5cGUsCi0gICAgTWVkaWFFbmdpbmVPcmlnaW5zSW5NZWRpYUNhY2hlLCBN
ZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdpbmVDbGVhck1lZGlhQ2FjaGVGb3JP
cmlnaW5zLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsKKyAgICBNZWRpYUVuZ2luZUdl
dFNpdGVzSW5NZWRpYUNhY2hlLCBNZWRpYUVuZ2luZUNsZWFyTWVkaWFDYWNoZSwgTWVkaWFFbmdp
bmVDbGVhck1lZGlhQ2FjaGVGb3JTaXRlLCBNZWRpYUVuZ2luZVN1cHBvcnRzS2V5U3lzdGVtKTsK
IHR5cGVkZWYgdm9pZCAoKk1lZGlhRW5naW5lUmVnaXN0ZXIpKE1lZGlhRW5naW5lUmVnaXN0cmFy
KTsKIAogY2xhc3MgTWVkaWFQbGF5ZXJGYWN0b3J5U3VwcG9ydCB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDg5
YzBjMTllZGFjYzc2ZWY3YmZjOWNiNmU3YTBiODYyNjg3MDZmYjAuLmQ5MTlmNTQzMzdhNDU3YzEw
ZWM2OGJhNWEyMGViN2RlM2I4ZmVjNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCkBAIC0yMTQsOSArMjE0LDkgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdW5zaWduZWQgYXVkaW9EZWNvZGVkQnl0ZUNvdW50KCkgY29u
c3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgdW5zaWduZWQgdmlkZW9EZWNvZGVkQnl0ZUNv
dW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQogCi0gICAgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlP
cmlnaW4+PiBvcmlnaW5zSW5NZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYpIHsgcmV0dXJuIHsgfTsg
fQotICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYsIHN0ZDo6Y2hyb25vOjpz
eXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQpIHsgfQotICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9y
T3JpZ2lucyhjb25zdCBTdHJpbmcmLCBjb25zdCBIYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdp
bj4+JikgeyB9CisgICAgdm9pZCBnZXRTaXRlc0luTWVkaWFDYWNoZShWZWN0b3I8U3RyaW5nPiYp
IHsgfQorICAgIHZvaWQgY2xlYXJNZWRpYUNhY2hlKCkgeyB9CisgICAgdm9pZCBjbGVhck1lZGlh
Q2FjaGVGb3JTaXRlKGNvbnN0IFN0cmluZyYpIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIHNldFBy
aXZhdGVCcm93c2luZ01vZGUoYm9vbCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAppbmRleCAw
ZTVjZjExYmNmZGMwOTI1NzM5ZmJiN2I2YjZjZWRkZTM3MjhiYWMyLi5kNmRlNzYyYzFmZTJiZjg0
NmFhYWUyNDUzYzZjNTViMGJhZGNhOWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCkBAIC04Nywx
MCArODcsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCByZWdpc3Rlck1lZGlhRW5naW5l
KE1lZGlhRW5naW5lUmVnaXN0cmFyKTsKIAotICAgIHN0YXRpYyBIYXNoU2V0PFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4+IG9yaWdpbnNJbk1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJik7Ci0gICAgc3Rh
dGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYsIHN0ZDo6Y2hyb25vOjpzeXN0
ZW1fY2xvY2s6OnRpbWVfcG9pbnQgbW9kaWZpZWRTaW5jZSk7Ci0gICAgc3RhdGljIHZvaWQgY2xl
YXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhjb25zdCBTdHJpbmcmLCBjb25zdCBIYXNoU2V0PFJlZlB0
cjxTZWN1cml0eU9yaWdpbj4+Jik7Ci0KICAgICB2b2lkIHNldEFzc2V0KFJldGFpblB0cjxpZD4p
OwogICAgIHZvaWQgdHJhY2tzQ2hhbmdlZCgpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qy5tbQppbmRleCA4MTZmNjdhOTg0YjZhNDJkN2NiNzY2YjI2MDQxZWIxN2M1Njg3YzY4Li5iOWU4
MDcyNmZmMDRhNDUxZjVmNTUzOTY4OTYwMmI0NDFhNmJkNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akMubW0KQEAgLTE1OCw3ICsxNTgsNiBAQCBTT0ZUX0xJTktfQ0xBU1MoQVZGb3VuZGF0aW9uLCBB
VlBsYXllckxheWVyKQogU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldCkK
IFNPRlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWQXNzZXRJbWFnZUdlbmVyYXRvcikKIFNP
RlRfTElOS19DTEFTUyhBVkZvdW5kYXRpb24sIEFWTWV0YWRhdGFJdGVtKQotU09GVF9MSU5LX0NM
QVNTKEFWRm91bmRhdGlvbiwgQVZBc3NldENhY2hlKQogCiBTT0ZUX0xJTktfQ0xBU1MoQ29yZUlt
YWdlLCBDSUNvbnRleHQpCiBTT0ZUX0xJTktfQ0xBU1MoQ29yZUltYWdlLCBDSUltYWdlKQpAQCAt
MjI4LDcgKzIyNyw2IEBAIFNPRlRfTElOS19QT0lOVEVSKEFWRm91bmRhdGlvbiwgQVZQbGF5ZXJJ
dGVtTGVnaWJsZU91dHB1dFRleHRTdHlsaW5nUmVzb2x1dGlvblNvCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShBVkZfQ0FQVElPTlMpCi1TT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWVVJM
QXNzZXRDYWNoZUtleSwgTlNTdHJpbmcqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9u
LCBBVlVSTEFzc2V0SFRUUENvb2tpZXNLZXksIE5TU3RyaW5nKikKIFNPRlRfTElOS19QT0lOVEVS
KEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldE91dE9mQmFuZEFsdGVybmF0ZVRyYWNrc0tleSwgTlNT
dHJpbmcqKQogU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0VXNlc05v
UGVyc2lzdGVudENhY2hlS2V5LCBOU1N0cmluZyopCkBAIC0yNDQsNyArMjQyLDYgQEAgU09GVF9M
SU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1lZGlhQ2hhcmFjdGVyaXN0aWNJc0F1eGlsaWFy
eUNvbnRlbnQsIE5TU3RyaW4KIAogI2RlZmluZSBBVlVSTEFzc2V0SFRUUENvb2tpZXNLZXkgZ2V0
QVZVUkxBc3NldEhUVFBDb29raWVzS2V5KCkKICNkZWZpbmUgQVZVUkxBc3NldE91dE9mQmFuZEFs
dGVybmF0ZVRyYWNrc0tleSBnZXRBVlVSTEFzc2V0T3V0T2ZCYW5kQWx0ZXJuYXRlVHJhY2tzS2V5
KCkKLSNkZWZpbmUgQVZVUkxBc3NldENhY2hlS2V5IGdldEFWVVJMQXNzZXRDYWNoZUtleSgpCiAj
ZGVmaW5lIEFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXkgZ2V0QVZVUkxBc3NldFVz
ZXNOb1BlcnNpc3RlbnRDYWNoZUtleSgpCiAjZGVmaW5lIEFWT3V0T2ZCYW5kQWx0ZXJuYXRlVHJh
Y2tEaXNwbGF5TmFtZUtleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRGlzcGxheU5hbWVL
ZXkoKQogI2RlZmluZSBBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRh
Z0tleSBnZXRBVk91dE9mQmFuZEFsdGVybmF0ZVRyYWNrRXh0ZW5kZWRMYW5ndWFnZVRhZ0tleSgp
CkBAIC00MjUsOTUgKzQyMiw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cmVnaXN0ZXJNZWRpYUVuZ2luZShNZWRpYUVuZ2luZVJlZ2lzdHJhCiB7CiAgICAgaWYg
KGlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciogcGxheWVy
KSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM+KHBsYXllcik7IH0sCi0gICAgICAgICAgICBnZXRTdXBwb3J0ZWRUeXBlcywgc3VwcG9y
dHNUeXBlLCBvcmlnaW5zSW5NZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGUsIGNsZWFyTWVkaWFD
YWNoZUZvck9yaWdpbnMsIHN1cHBvcnRzS2V5U3lzdGVtKTsKLX0KLQotc3RhdGljIEFWQXNzZXRD
YWNoZSAqYXNzZXRDYWNoZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoKQotewotICAgIE5TVVJM
ICphc3NldENhY2hlVVJMOwotICAgIAotICAgIGlmIChwYXRoLmlzRW1wdHkoKSkKLSAgICAgICAg
YXNzZXRDYWNoZVVSTCA9IFtbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOk5TVGVtcG9yYXJ5RGlyZWN0
b3J5KCldIFVSTEJ5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpAIk1lZGlhQ2FjaGUiIGlzRGlyZWN0
b3J5OllFU107Ci0gICAgZWxzZQotICAgICAgICBhc3NldENhY2hlVVJMID0gW05TVVJMIGZpbGVV
UkxXaXRoUGF0aDpwYXRoIGlzRGlyZWN0b3J5OllFU107Ci0KLSAgICByZXR1cm4gW2dldEFWQXNz
ZXRDYWNoZUNsYXNzKCkgYXNzZXRDYWNoZVdpdGhVUkw6YXNzZXRDYWNoZVVSTF07Ci19Ci0KLUhh
c2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6b3JpZ2luc0luTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmIHBhdGgpCi17Ci0gICAg
SGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiBvcmlnaW5zOwotICAgIGZvciAoTlNTdHJp
bmcgKmtleSBpbiBbYXNzZXRDYWNoZUZvclBhdGgocGF0aCkgYWxsS2V5c10pIHsKLSAgICAgICAg
VVJMIGtleUFzVVJMID0gVVJMKFVSTCgpLCBrZXkpOwotICAgICAgICBpZiAoa2V5QXNVUkwuaXNW
YWxpZCgpKQotICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShr
ZXlBc1VSTCkpOwotICAgIH0KLSAgICByZXR1cm4gb3JpZ2luczsKLX0KLQotc3RhdGljIHN0ZDo6
Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9pbnQgdG9TeXN0ZW1DbG9ja1RpbWUoTlNEYXRl
ICpkYXRlKQotewotICAgIEFTU0VSVChkYXRlKTsKLSAgICB1c2luZyBuYW1lc3BhY2Ugc3RkOjpj
aHJvbm87Ci0KLSAgICByZXR1cm4gc3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50KGR1cmF0aW9uX2Nh
c3Q8c3lzdGVtX2Nsb2NrOjpkdXJhdGlvbj4oZHVyYXRpb248ZG91YmxlPihkYXRlLnRpbWVJbnRl
cnZhbFNpbmNlMTk3MCkpKTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjbGVhck1lZGlhQ2FjaGUoY29uc3QgU3RyaW5nJiBwYXRoLCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpCi17Ci0gICAgTE9HKE1lZGlh
LCAiTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6Y2xlYXJNZWRpYUNhY2hlKCki
KTsKLSAgICAKLSAgICBBVkFzc2V0Q2FjaGUqIGFzc2V0Q2FjaGUgPSBhc3NldENhY2hlRm9yUGF0
aChwYXRoKTsKLSAgICAKLSAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gW2Fzc2V0Q2FjaGUgYWxs
S2V5c10pIHsKLSAgICAgICAgaWYgKHRvU3lzdGVtQ2xvY2tUaW1lKFthc3NldENhY2hlIGxhc3RN
b2RpZmllZERhdGVPZkVudHJ5Rm9yS2V5OmtleV0pID4gbW9kaWZpZWRTaW5jZSkKLSAgICAgICAg
ICAgIFthc3NldENhY2hlIHJlbW92ZUVudHJ5Rm9yS2V5OmtleV07Ci0gICAgfQotCi0gICAgTlNG
aWxlTWFuYWdlciAqZmlsZU1hbmFnZXIgPSBbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl07
Ci0gICAgTlNVUkwgKmJhc2VVUkwgPSBbYXNzZXRDYWNoZSBVUkxdOwotCi0gICAgaWYgKG1vZGlm
aWVkU2luY2UgPD0gc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCB7IH0pIHsK
LSAgICAgICAgW2ZpbGVNYW5hZ2VyIHJlbW92ZUl0ZW1BdFVSTDpiYXNlVVJMIGVycm9yOm5pbF07
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgTlNBcnJheSAqcHJvcGVydHlLZXlz
ID0gQFtOU1VSTE5hbWVLZXksIE5TVVJMQ29udGVudE1vZGlmaWNhdGlvbkRhdGVLZXksIE5TVVJM
SXNSZWd1bGFyRmlsZUtleV07Ci0gICAgTlNEaXJlY3RvcnlFbnVtZXJhdG9yICplbnVtZXJhdG9y
ID0gW2ZpbGVNYW5hZ2VyIGVudW1lcmF0b3JBdFVSTDpiYXNlVVJMIGluY2x1ZGluZ1Byb3BlcnRp
ZXNGb3JLZXlzOgotICAgICAgICBwcm9wZXJ0eUtleXMgb3B0aW9uczpOU0RpcmVjdG9yeUVudW1l
cmF0aW9uU2tpcHNTdWJkaXJlY3RvcnlEZXNjZW5kYW50cwotICAgICAgICBlcnJvckhhbmRsZXI6
bmlsXTsKLSAgICAKLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8TlNVUkwgKj4+IHVybHNU
b0RlbGV0ZSA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotICAgIGZv
ciAoTlNVUkwgKmZpbGVVUkwgOiBlbnVtZXJhdG9yKSB7Ci0gICAgICAgIE5TRGljdGlvbmFyeTxO
U1N0cmluZyAqLCBpZD4gKmZpbGVBdHRyaWJ1dGVzID0gW2ZpbGVVUkwgcmVzb3VyY2VWYWx1ZXNG
b3JLZXlzOnByb3BlcnR5S2V5cyBlcnJvcjpuaWxdOwotICAgIAotICAgICAgICBpZiAoIVtmaWxl
QXR0cmlidXRlc1tOU1VSTE5hbWVLZXldIGhhc1ByZWZpeDpAIkNhY2hlZE1lZGlhLSJdKQotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIAotICAgICAgICBpZiAoIVtmaWxlQXR0cmlidXRl
c1tOU1VSTElzUmVndWxhckZpbGVLZXldIGJvb2xWYWx1ZV0pCi0gICAgICAgICAgICBjb250aW51
ZTsKLSAgICAgICAgCi0gICAgICAgIGlmICh0b1N5c3RlbUNsb2NrVGltZShmaWxlQXR0cmlidXRl
c1tOU1VSTENvbnRlbnRNb2RpZmljYXRpb25EYXRlS2V5XSkgPD0gbW9kaWZpZWRTaW5jZSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAKLSAgICAgICAgW3VybHNUb0RlbGV0ZSBhZGRP
YmplY3Q6ZmlsZVVSTF07Ci0gICAgfQotICAgIAotICAgIGZvciAoTlNVUkwgKmZpbGVVUkwgaW4g
dXJsc1RvRGVsZXRlLmdldCgpKQotICAgICAgICBbZmlsZU1hbmFnZXIgcmVtb3ZlSXRlbUF0VVJM
OmZpbGVVUkwgZXJyb3I6bmlsXTsKLX0KLQotdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjbGVhck1lZGlhQ2FjaGVGb3JPcmlnaW5zKGNvbnN0IFN0cmluZyYgcGF0aCwg
Y29uc3QgSGFzaFNldDxSZWZQdHI8U2VjdXJpdHlPcmlnaW4+PiYgb3JpZ2lucykKLXsKLSAgICBM
T0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjbGVhck1lZGlh
Q2FjaGVGb3JPcmlnaW5zKCkiKTsKLSAgICBBVkFzc2V0Q2FjaGUqIGFzc2V0Q2FjaGUgPSBhc3Nl
dENhY2hlRm9yUGF0aChwYXRoKTsKLSAgICBmb3IgKE5TU3RyaW5nICprZXkgaW4gW2Fzc2V0Q2Fj
aGUgYWxsS2V5c10pIHsKLSAgICAgICAgVVJMIGtleUFzVVJMID0gVVJMKFVSTCgpLCBrZXkpOwot
ICAgICAgICBpZiAoa2V5QXNVUkwuaXNWYWxpZCgpKSB7Ci0gICAgICAgICAgICBpZiAob3JpZ2lu
cy5jb250YWlucyhTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKGtleUFzVVJMKSkpCi0gICAgICAgICAg
ICAgICAgW2Fzc2V0Q2FjaGUgcmVtb3ZlRW50cnlGb3JLZXk6a2V5XTsKLSAgICAgICAgfQotICAg
IH0KKyAgICAgICAgICAgIGdldFN1cHBvcnRlZFR5cGVzLCBzdXBwb3J0c1R5cGUsIDAsIDAsIDAs
IHN1cHBvcnRzS2V5U3lzdGVtKTsKIH0KIAogTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQyhNZWRpYVBsYXllciogcGxh
eWVyKQpAQCAtOTY1LDExICs4NzQsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakM6OmNyZWF0ZUFWQXNzZXRGb3JVUkwoY29uc3QgU3RyaW5nJiB1cmwpCiAgICAgfQog
I2VuZGlmCiAKLSAgICBib29sIHVzZVBlcnNpc3RlbnRDYWNoZSA9IHBsYXllcigpLT5jbGllbnQo
KS5tZWRpYVBsYXllclNob3VsZFVzZVBlcnNpc3RlbnRDYWNoZSgpOwotICAgIFtvcHRpb25zIHNl
dE9iamVjdDpAKCF1c2VQZXJzaXN0ZW50Q2FjaGUpIGZvcktleTpBVlVSTEFzc2V0VXNlc05vUGVy
c2lzdGVudENhY2hlS2V5XTsKLSAgICAKLSAgICBpZiAodXNlUGVyc2lzdGVudENhY2hlKQotICAg
ICAgICBbb3B0aW9ucyBzZXRPYmplY3Q6YXNzZXRDYWNoZUZvclBhdGgocGxheWVyKCktPmNsaWVu
dCgpLm1lZGlhUGxheWVyTWVkaWFDYWNoZURpcmVjdG9yeSgpKSBmb3JLZXk6QVZVUkxBc3NldENh
Y2hlS2V5XTsKKyAgICBbb3B0aW9ucyBzZXRPYmplY3Q6W05TTnVtYmVyIG51bWJlcldpdGhCb29s
OiFwbGF5ZXIoKS0+Y2xpZW50KCkubWVkaWFQbGF5ZXJTaG91bGRVc2VQZXJzaXN0ZW50Q2FjaGUo
KV0gZm9yS2V5OkFWVVJMQXNzZXRVc2VzTm9QZXJzaXN0ZW50Q2FjaGVLZXldOwogCiAgICAgTlNV
UkwgKmNvY29hVVJMID0gY2Fub25pY2FsVVJMKHVybCk7CiAgICAgbV9hdkFzc2V0ID0gYWRvcHRO
UyhbYWxsb2NBVlVSTEFzc2V0SW5zdGFuY2UoKSBpbml0V2l0aFVSTDpjb2NvYVVSTCBvcHRpb25z
Om9wdGlvbnMuZ2V0KCldKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKaW5kZXggNTlhM2Rh
NmYxNWFmODk0OTlhMTJkYTJkNDIwNjVmYzUxOWY0Yjg1YS4uZjM3M2ZmODU1OTYzNzM5OWJjZWQ0
YTNkMmE4NDI4NDQ2ZTE5YzEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKQEAgLTY4
LDkgKzY4LDkgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhI
YXNoU2V0PFN0cmluZywgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoPiYgdHlwZXMpOwogICAgIHN0
YXRpYyBNZWRpYVBsYXllcjo6U3VwcG9ydHNUeXBlIHN1cHBvcnRzVHlwZShjb25zdCBNZWRpYUVu
Z2luZVN1cHBvcnRQYXJhbWV0ZXJzJik7CiAKLSAgICBzdGF0aWMgSGFzaFNldDxSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+PiBvcmlnaW5zSW5NZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYpOwotICAgIHN0
YXRpYyB2b2lkIGNsZWFyTWVkaWFDYWNoZShjb25zdCBTdHJpbmcmLCBzdGQ6OmNocm9ubzo6c3lz
dGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UpOwotICAgIHN0YXRpYyB2b2lkIGNs
ZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMoY29uc3QgU3RyaW5nJiwgY29uc3QgSGFzaFNldDxSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+PiYpOworICAgIHN0YXRpYyB2b2lkIGdldFNpdGVzSW5NZWRpYUNh
Y2hlKFZlY3RvcjxTdHJpbmc+Jik7CisgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlKCk7
CisgICAgc3RhdGljIHZvaWQgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjb25zdCBTdHJpbmcmKTsK
ICAgICBzdGF0aWMgYm9vbCBpc0F2YWlsYWJsZSgpOwogCiAgICAgUGxhdGZvcm1NZWRpYSBwbGF0
Zm9ybU1lZGlhKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0K
aW5kZXggYzQ2Y2MxMWU0MjVmOTc4MzViMTE0ODc2YzE3OWRmNGEyZjZlZjkyNC4uODI5YjZlZTFk
OTI0NDE0YTQ1OWUxMTE4ZWY0NzM3MTA3NDUxMmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVR
VEtpdC5tbQpAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6
OnJlZ2lzdGVyTWVkaWFFbmdpbmUoTWVkaWFFbmdpbmVSZWdpc3RyYXIgcmVnaXN0cmFyCiB7CiAg
ICAgaWYgKGlzQXZhaWxhYmxlKCkpCiAgICAgICAgIHJlZ2lzdHJhcihbXShNZWRpYVBsYXllciog
cGxheWVyKSB7IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
PihwbGF5ZXIpOyB9LCBnZXRTdXBwb3J0ZWRUeXBlcywKLSAgICAgICAgICAgIHN1cHBvcnRzVHlw
ZSwgb3JpZ2luc0luTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlLCBjbGVhck1lZGlhQ2FjaGVG
b3JPcmlnaW5zLCAwKTsKKyAgICAgICAgICAgIHN1cHBvcnRzVHlwZSwgZ2V0U2l0ZXNJbk1lZGlh
Q2FjaGUsIGNsZWFyTWVkaWFDYWNoZSwgY2xlYXJNZWRpYUNhY2hlRm9yU2l0ZSwgMCk7CiB9CiAK
IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpNZWRpYVBsYXllclByaXZhdGVRVEtpdChNZWRpYVBs
YXllciogcGxheWVyKQpAQCAtMTMzOSwzMCArMTMzOSwyMyBAQCBib29sIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0Ojppc0F2YWlsYWJsZSgpCiAgICAgcmV0dXJuIFFUS2l0TGlicmFyeSgpOwogfQog
Ci1IYXNoU2V0PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+IE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
OjpvcmlnaW5zSW5NZWRpYUNhY2hlKGNvbnN0IFN0cmluZyYpCit2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZVFUS2l0OjpnZXRTaXRlc0luTWVkaWFDYWNoZShWZWN0b3I8U3RyaW5nPiYgc2l0ZXMpIAog
ewotICAgIEhhc2hTZXQ8UmVmUHRyPFNlY3VyaXR5T3JpZ2luPj4gb3JpZ2luczsKICAgICBOU0Fy
cmF5ICptZWRpYVNpdGVzID0gd2tRVEdldFNpdGVzSW5NZWRpYURvd25sb2FkQ2FjaGUoKTsKLSAg
ICAKLSAgICBmb3IgKE5TU3RyaW5nICpzaXRlIGluIG1lZGlhU2l0ZXMpIHsKLSAgICAgICAgVVJM
IHNpdGVBc1VSTCA9IFVSTChVUkwoKSwgc2l0ZSk7Ci0gICAgICAgIGlmIChzaXRlQXNVUkwuaXNW
YWxpZCgpKQotICAgICAgICAgICAgb3JpZ2lucy5hZGQoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShz
aXRlQXNVUkwpKTsKLSAgICB9Ci0gICAgcmV0dXJuIG9yaWdpbnM7CisgICAgZm9yIChOU1N0cmlu
ZyAqc2l0ZSBpbiBtZWRpYVNpdGVzKQorICAgICAgICBzaXRlcy5hcHBlbmQoc2l0ZSk7CiB9CiAK
LXZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNsZWFyTWVkaWFDYWNoZShjb25zdCBTdHJp
bmcmLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50KQordm9pZCBNZWRpYVBs
YXllclByaXZhdGVRVEtpdDo6Y2xlYXJNZWRpYUNhY2hlKCkKIHsKICAgICBMT0coTWVkaWEsICJN
ZWRpYVBsYXllclByaXZhdGVRVEtpdDo6Y2xlYXJNZWRpYUNhY2hlKCkiKTsKICAgICB3a1FUQ2xl
YXJNZWRpYURvd25sb2FkQ2FjaGUoKTsKIH0KIAotdm9pZCBNZWRpYVBsYXllclByaXZhdGVRVEtp
dDo6Y2xlYXJNZWRpYUNhY2hlRm9yT3JpZ2lucyhjb25zdCBTdHJpbmcmLCBjb25zdCBIYXNoU2V0
PFJlZlB0cjxTZWN1cml0eU9yaWdpbj4+JiBvcmlnaW5zKQordm9pZCBNZWRpYVBsYXllclByaXZh
dGVRVEtpdDo6Y2xlYXJNZWRpYUNhY2hlRm9yU2l0ZShjb25zdCBTdHJpbmcmIHNpdGUpCiB7Ci0g
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQ6OmNsZWFyTWVkaWFDYWNoZUZv
ck9yaWdpbnMoKSIpOwotICAgIGZvciAoYXV0byYgb3JpZ2luIDogb3JpZ2lucykKLSAgICAgICAg
d2tRVENsZWFyTWVkaWFEb3dubG9hZENhY2hlRm9yU2l0ZShvcmlnaW4tPnRvUmF3U3RyaW5nKCkp
OworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpjbGVhck1lZGlhQ2Fj
aGVGb3JTaXRlKCkiKTsKKyAgICB3a1FUQ2xlYXJNZWRpYURvd25sb2FkQ2FjaGVGb3JTaXRlKHNp
dGUpOwogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZVFUS2l0OjpkaXNhYmxlVW5zdXBwb3J0
ZWRUcmFja3MoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9B
VkZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9tYWMvQVZGb3Vu
ZGF0aW9uU1BJLmgKaW5kZXggOThkZTlkMDRmYTQyYzllYTNkYjVmZWUwMWZlMzdmMzA0ZGYzZTYw
MC4uODZkYjc5MmQyNWY2ZmFhZmZkYTUxYjZkNTRjMGU3MzQzY2E1YjczNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL21hYy9BVkZvdW5kYXRpb25TUEkuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL0FWRm91bmRhdGlvblNQSS5oCkBAIC01NSwy
MSArNTUsNiBAQCBOU19BU1NVTUVfTk9OTlVMTF9FTkQKIAogI2VuZGlmIC8vIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCiAKLSNpZiBVU0UoQVBQTEVf
SU5URVJOQUxfU0RLKQotI2ltcG9ydCA8QVZGb3VuZGF0aW9uL0FWQXNzZXRDYWNoZV9Qcml2YXRl
Lmg+Ci0jZWxzZQotTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KLUBpbnRlcmZhY2UgQVZBc3NldENh
Y2hlIDogTlNPYmplY3QKLSsgKEFWQXNzZXRDYWNoZSAqKWFzc2V0Q2FjaGVXaXRoVVJMOihOU1VS
TCAqKVVSTDsKLS0gKGlkKWluaXRXaXRoVVJMOihOU1VSTCAqKVVSTDsKLS0gKE5TQXJyYXkgKilh
bGxLZXlzOwotLSAoTlNEYXRlICopbGFzdE1vZGlmaWVkRGF0ZU9mRW50cnlGb3JLZXk6KE5TU3Ry
aW5nICopa2V5OwotLSAodm9pZClyZW1vdmVFbnRyeUZvcktleTooTlNTdHJpbmcgKilrZXk7Ci1A
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TVVJMICpVUkw7Ci1AZW5kCi1O
U19BU1NVTUVfTk9OTlVMTF9FTkQKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oSU9TKQogCiAjaWYg
SEFWRShBVktJVCkgJiYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcAppbmRleCBi
OWEzMmNjM2MwZGUyOGRlZWUyNzNiOTY1N2MzNzlmNjM3YTk0ODU1Li4yMmQ4ZDZjOTYxZWFlOWU2
M2JiZmNhYzQ1NWU1NDcxM2RiNGE2MzhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuY3BwCkBAIC02NSw4ICs2NSw2IEBA
IHZvaWQgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczo6ZW5jb2RlKElQQzo6QXJndW1lbnRF
bmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICAgICBlbmNvZGVyIDw8IHdlYlNRTERhdGFiYXNlRGly
ZWN0b3J5OwogICAgIGVuY29kZXIgPDwgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGU7Ci0gICAgZW5jb2RlciA8PCBtZWRpYUNhY2hlRGlyZWN0b3J5OwotICAgIGVuY29kZXIg
PDwgbWVkaWFDYWNoZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZTsKICNpZiBFTkFCTEUoU0VDQ09N
UF9GSUxURVJTKQogICAgIGVuY29kZXIgPDwgY29va2llU3RvcmFnZURpcmVjdG9yeTsKICNlbmRp
ZgpAQCAtMTYxLDEwICsxNTksNiBAQCBib29sIFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM6
OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgV2ViUHJvYwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLndlYlNRTERh
dGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5KSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVy
cy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwogI2lmIEVOQUJMRShTRUNDT01QX0ZJTFRFUlMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9u
UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByb2Nlc3NDcmVhdGlvblBh
cmFtZXRlcnMuaAppbmRleCA1ZTcxYjI4ODJmOWM4ZDQ4NWE4OWVhZTI5OWFkNDc5NmZkNGQ1Mjg3
Li43MzM4YTI4ZmJjMGExYzQ4YzAzOTY5OTgyNjY0YWFkMjEwYTVmODA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKQEAg
LTcyLDggKzcyLDYgQEAgc3RydWN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAg
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5z
aW9uSGFuZGxlOwogICAgIFN0cmluZyB3ZWJTUUxEYXRhYmFzZURpcmVjdG9yeTsKICAgICBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUgd2ViU1FMRGF0YWJhc2VEaXJlY3RvcnlFeHRlbnNpb25IYW5k
bGU7Ci0gICAgU3RyaW5nIG1lZGlhQ2FjaGVEaXJlY3Rvcnk7Ci0gICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIG1lZGlhQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25IYW5kbGU7CiAjaWYgRU5BQkxF
KFNFQ0NPTVBfRklMVEVSUykKICAgICBTdHJpbmcgY29va2llU3RvcmFnZURpcmVjdG9yeTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQcm9jZXNz
UG9vbENvbmZpZ3VyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uY3BwCmluZGV4IDExYTE2OWIxYzc4MmU5MjBiZmYyMzNk
ZThlZTRjMGI5NjFiYThhZjkuLjQxNjAzM2UxYTYwYjkyY2M5NTRiNzFlM2RiNjkyY2RlMzk2OTlm
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQ
SVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5jcHAKQEAgLTQ2LDcgKzQ2LDYgQEAgUmVmPFByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjcmVhdGVXaXRo
TGVnYWN5T3B0aW9ucygKIAogICAgIGNvbmZpZ3VyYXRpb24tPm1fYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKICAgICBjb25maWd1cmF0aW9uLT5tX2Rpc2tDYWNo
ZURpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVs
dE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpOwotICAgIGNvbmZpZ3VyYXRpb24tPm1fbWVkaWFDYWNo
ZURpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVs
dE1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsKICAgICBjb25maWd1cmF0aW9uLT5tX2luZGV4ZWREQkRh
dGFiYXNlRGlyZWN0b3J5ID0gV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKTsKICAgICBjb25maWd1cmF0aW9uLT5t
X2xvY2FsU3RvcmFnZURpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwogICAgIGNvbmZpZ3VyYXRpb24t
Pm1fbWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSA9IFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6Omxl
Z2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkoKTsKQEAgLTU4LDcg
KzU3LDYgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmlndXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uOjpjcmVhdGVXaXRoTGVnYWN5T3B0aW9ucygKIFByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bjo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uKCkKICAgICA6IG1fYXBwbGljYXRpb25DYWNoZURp
cmVjdG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eSgpKQogICAgICwgbV9kaXNrQ2FjaGVEaXJlY3RvcnkoV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVs
dE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpKQotICAgICwgbV9tZWRpYUNhY2hlRGlyZWN0b3J5KFdl
YnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkpCiAgICAgLCBtX2lu
ZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRJbmRleGVk
REJEYXRhYmFzZURpcmVjdG9yeSgpKQogICAgICwgbV9sb2NhbFN0b3JhZ2VEaXJlY3RvcnkoV2Vi
c2l0ZURhdGFTdG9yZTo6ZGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpKQogICAgICwgbV93
ZWJTUUxEYXRhYmFzZURpcmVjdG9yeShXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0V2ViU1FMRGF0
YWJhc2VEaXJlY3RvcnkoKSkKQEAgLTgxLDcgKzc5LDYgQEAgUmVmPFByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbj4gUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uOjpjb3B5KCkKICAgICBjb3B5LT5tX2Rp
c2tDYWNoZVNpemVPdmVycmlkZSA9IHRoaXMtPm1fZGlza0NhY2hlU2l6ZU92ZXJyaWRlOwogICAg
IGNvcHktPm1fYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSA9IHRoaXMtPm1fYXBwbGljYXRpb25D
YWNoZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2Rpc2tDYWNoZURpcmVjdG9yeSA9IHRoaXMtPm1f
ZGlza0NhY2hlRGlyZWN0b3J5OwotICAgIGNvcHktPm1fbWVkaWFDYWNoZURpcmVjdG9yeSA9IHRo
aXMtPm1fbWVkaWFDYWNoZURpcmVjdG9yeTsKICAgICBjb3B5LT5tX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5ID0gdGhpcy0+bV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeTsKICAgICBjb3B5
LT5tX2luamVjdGVkQnVuZGxlUGF0aCA9IHRoaXMtPm1faW5qZWN0ZWRCdW5kbGVQYXRoOwogICAg
IGNvcHktPm1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5ID0gdGhpcy0+bV9sb2NhbFN0b3JhZ2VEaXJl
Y3Rvcnk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElQ
cm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaAppbmRleCBiMTI5M2QzMDFmYTY4YTYzZjE0NjdjMzZl
N2FjMTdmOWMyMjUyMjFjLi42NzMzMWU5NzBlNzUyZjdkOGJmZDMxMmUyMDIzNGM5MjJjYjU3YWJi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgKQEAgLTY1LDkgKzY1LDYgQEAgcHVibGljOgogICAgIGNv
bnN0IFdURjo6U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2Rp
c2tDYWNoZURpcmVjdG9yeTsgfQogICAgIHZvaWQgc2V0RGlza0NhY2hlRGlyZWN0b3J5KGNvbnN0
IFdURjo6U3RyaW5nJiBkaXNrQ2FjaGVEaXJlY3RvcnkpIHsgbV9kaXNrQ2FjaGVEaXJlY3Rvcnkg
PSBkaXNrQ2FjaGVEaXJlY3Rvcnk7IH0KIAotICAgIGNvbnN0IFdURjo6U3RyaW5nJiBtZWRpYUNh
Y2hlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYUNhY2hlRGlyZWN0b3J5OyB9Ci0g
ICAgdm9pZCBzZXRNZWRpYUNhY2hlRGlyZWN0b3J5KGNvbnN0IFdURjo6U3RyaW5nJiBtZWRpYUNh
Y2hlRGlyZWN0b3J5KSB7IG1fbWVkaWFDYWNoZURpcmVjdG9yeSA9IG1lZGlhQ2FjaGVEaXJlY3Rv
cnk7IH0KLSAgICAKICAgICBjb25zdCBXVEY6OlN0cmluZyYgaW5kZXhlZERCRGF0YWJhc2VEaXJl
Y3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2luZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OyB9CiAg
ICAgdm9pZCBzZXRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeShjb25zdCBXVEY6OlN0cmluZyYg
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkpIHsgbV9pbmRleGVkREJEYXRhYmFzZURpcmVjdG9y
eSA9IGluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5OyB9CiAKQEAgLTEwNSw3ICsxMDIsNiBAQCBw
cml2YXRlOgogCiAgICAgV1RGOjpTdHJpbmcgbV9hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5Owog
ICAgIFdURjo6U3RyaW5nIG1fZGlza0NhY2hlRGlyZWN0b3J5OwotICAgIFdURjo6U3RyaW5nIG1f
bWVkaWFDYWNoZURpcmVjdG9yeTsKICAgICBXVEY6OlN0cmluZyBtX2luZGV4ZWREQkRhdGFiYXNl
RGlyZWN0b3J5OwogICAgIFdURjo6U3RyaW5nIG1faW5qZWN0ZWRCdW5kbGVQYXRoOwogICAgIFdU
Rjo6U3RyaW5nIG1fbG9jYWxTdG9yYWdlRGlyZWN0b3J5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggZmIyYWNkNmQ2
YTVhZGI5NmIzNzk0MmQ4ZjdkZjRmYmQ5ODhmNDQzNi4uMmEyZWE0MTAwZDVhZjVmN2M1MGEzYjc3
OWI4MmYyMWQxNjUwNzgyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9BUElXZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0xMzcsMTMgKzEzNyw1IEBAIFN0cmluZyBX
ZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSgp
CiB9CiAKICNlbmRpZgotICAgIAotI2lmICFQTEFURk9STShDT0NPQSkKLVN0cmluZyBXZWJzaXRl
RGF0YVN0b3JlOjpkZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCi17Ci0gICAgLy8gRklYTUU6
IEltcGxlbWVudC4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjM2
OSBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjM3MAotICAg
IHJldHVybiBTdHJpbmcoKTsKLX0KLSNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0FQSVdlYnNpdGVEYXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQVBJV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IGEwMzc1NTM4ZTg3NTdj
NzFhNWM0NzJmODI4NjQ0MmQwNThiNTgxMDIuLjQ2NWE1ZWU4ZDYxOTcxYmNlMzVhZGQ3ZjVlMWY5
NjNhMjZjYmIwYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQVBJ
V2Vic2l0ZURhdGFTdG9yZS5oCkBAIC00OSw3ICs0OSw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyBTdHJpbmcgZGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKTsKICAgICBzdGF0aWMg
U3RyaW5nIGRlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsKLSAgICBzdGF0aWMgU3RyaW5n
IGRlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7CiAKICAgICBzdGF0aWMgU3RyaW5nIGRlZmF1
bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgZGVmYXVs
dExvY2FsU3RvcmFnZURpcmVjdG9yeSgpOwpAQCAtNjEsNyArNjAsNiBAQCBwcml2YXRlOgogICAg
IFdlYnNpdGVEYXRhU3RvcmUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9u
KTsKICAgICBXZWJzaXRlRGF0YVN0b3JlKCk7CiAKLSAgICBzdGF0aWMgU3RyaW5nIHRlbXBEaXJl
Y3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlOYW1l
KTsKICAgICBzdGF0aWMgU3RyaW5nIGNhY2hlRGlyZWN0b3J5RmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGNvbnN0IFN0cmluZyYgZGlyZWN0b3J5TmFtZSk7CiAgICAgc3RhdGljIFN0cmluZyB3ZWJz
aXRlRGF0YURpcmVjdG9yeUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIGRp
cmVjdG9yeU5hbWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL0FQSVdlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGVkYTRjMTQ5
MjQ0NDY4NjQzNjViNjk4YjU1ZTVhMzcxNjc4NzRkNTcuLjgyMzFhYmJjNjIwZWEzYjAxMTY1NTRk
Y2M0YzBmYjE5ZDRiZjI3ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvQVBJV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCkBAIC01Nywx
MSArNTcsNiBAQCBTdHJpbmcgV2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE5ldHdvcmtDYWNoZURp
cmVjdG9yeSgpCiAgICAgcmV0dXJuIGNhY2hlRGlyZWN0b3J5RmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKCJOZXR3b3JrQ2FjaGUiKTsKIH0KIAotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1
bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKLXsKLSAgICByZXR1cm4gdGVtcERpcmVjdG9yeUZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbigiTWVkaWFDYWNoZSIpOwotfQotCiBTdHJpbmcgV2Vic2l0ZURh
dGFTdG9yZTo6ZGVmYXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCkKIHsKICAgICByZXR1
cm4gd2Vic2l0ZURhdGFEaXJlY3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oIkluZGV4ZWRE
QiIpOwpAQCAtODcsMzMgKzgyLDYgQEAgU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5KCkKICAgICByZXR1cm4gd2Vic2l0ZURhdGFE
aXJlY3RvcnlGaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oIlJlc291cmNlTG9hZFN0YXRpc3RpY3Mi
KTsKIH0KIAotU3RyaW5nIFdlYnNpdGVEYXRhU3RvcmU6OnRlbXBEaXJlY3RvcnlGaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBkaXJlY3RvcnlOYW1lKQotewotICAgIHN0YXRp
YyBkaXNwYXRjaF9vbmNlX3Qgb25jZVRva2VuOwotICAgIHN0YXRpYyBOU1VSTCAqdGVtcFVSTDsK
LSAgICAKLSAgICBkaXNwYXRjaF9vbmNlKCZvbmNlVG9rZW4sIF57Ci0gICAgICAgIE5TVVJMICp1
cmwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOk5TVGVtcG9yYXJ5RGlyZWN0b3J5KCldOwotICAg
ICAgICBpZiAoIXVybCkKLSAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIAotICAgICAgICBpZiAoIVdlYktpdDo6cHJvY2Vzc0hhc0NvbnRhaW5lcigpKSB7
Ci0gICAgICAgICAgICBOU1N0cmluZyAqYnVuZGxlSWRlbnRpZmllciA9IFtOU0J1bmRsZSBtYWlu
QnVuZGxlXS5idW5kbGVJZGVudGlmaWVyOwotICAgICAgICAgICAgaWYgKCFidW5kbGVJZGVudGlm
aWVyKQotICAgICAgICAgICAgICAgIGJ1bmRsZUlkZW50aWZpZXIgPSBbTlNQcm9jZXNzSW5mbyBw
cm9jZXNzSW5mb10ucHJvY2Vzc05hbWU7Ci0gICAgICAgICAgICB1cmwgPSBbdXJsIFVSTEJ5QXBw
ZW5kaW5nUGF0aENvbXBvbmVudDpidW5kbGVJZGVudGlmaWVyIGlzRGlyZWN0b3J5OllFU107Ci0g
ICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHRlbXBVUkwgPSBbW3VybCBVUkxCeUFwcGVuZGlu
Z1BhdGhDb21wb25lbnQ6QCJXZWJLaXQiIGlzRGlyZWN0b3J5OllFU10gcmV0YWluXTsKLSAgICB9
KTsKLSAgICAKLSAgICBOU1VSTCAqdXJsID0gW3RlbXBVUkwgVVJMQnlBcHBlbmRpbmdQYXRoQ29t
cG9uZW50OmRpcmVjdG9yeU5hbWUgaXNEaXJlY3Rvcnk6WUVTXTsKLSAgICBpZiAoIVtbTlNGaWxl
TWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY3JlYXRlRGlyZWN0b3J5QXRVUkw6dXJsIHdpdGhJbnRl
cm1lZGlhdGVEaXJlY3RvcmllczpZRVMgYXR0cmlidXRlczpuaWwgZXJyb3I6bnVsbHB0cl0pCi0g
ICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3RvcnkgJUAiLCB1cmwpOwot
ICAgIAotICAgIHJldHVybiB1cmwuYWJzb2x1dGVVUkwucGF0aC5maWxlU3lzdGVtUmVwcmVzZW50
YXRpb247Ci19Ci0KIFN0cmluZyBXZWJzaXRlRGF0YVN0b3JlOjpjYWNoZURpcmVjdG9yeUZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihjb25zdCBTdHJpbmcmIGRpcmVjdG9yeU5hbWUpCiB7CiAgICAg
c3RhdGljIGRpc3BhdGNoX29uY2VfdCBvbmNlVG9rZW47CkBAIC0xNzYsNyArMTQ0LDYgQEAgV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpDb25maWd1cmF0aW9uIFdlYnNpdGVEYXRhU3RvcmU6OmRl
ZmF1bHREYXRhU3RvcmVDb25maWcKIAogICAgIGNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNo
ZURpcmVjdG9yeSA9IGRlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7CiAgICAgY29u
ZmlndXJhdGlvbi5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkgPSBkZWZhdWx0TmV0d29ya0NhY2hlRGly
ZWN0b3J5KCk7Ci0gICAgY29uZmlndXJhdGlvbi5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gZGVmYXVs
dE1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsKIAogICAgIGNvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJh
c2VEaXJlY3RvcnkgPSBkZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKTsKICAgICBjb25m
aWd1cmF0aW9uLmxvY2FsU3RvcmFnZURpcmVjdG9yeSA9IGRlZmF1bHRMb2NhbFN0b3JhZ2VEaXJl
Y3RvcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUG9vbENvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQb29sQ29jb2EubW0KaW5kZXggMTA2NTIyOThmMjEzYjNiMDExMDBlMGYxMzVhMTIxYjY3
ZDAxMDhkYy4uYmZhMGE5YTg5N2IxMjUyMDBmYTBhOGViYzFmMDFkYzQ0ZjE4ZjYzMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KQEAgLTY0LDcgKzY0LDYgQEAgTlNTdHJpbmcgKldlYlN0b3JhZ2VEaXJlY3RvcnlEZWZh
dWx0c0tleSA9IEAiV2ViS2l0TG9jYWxTdG9yYWdlRGF0YWJhc2VQYXRoUHJlZmUKIE5TU3RyaW5n
ICpXZWJLaXRKU0NKSVRFbmFibGVkRGVmYXVsdHNLZXkgPSBAIldlYktpdEpTQ0pJVEVuYWJsZWRE
ZWZhdWx0c0tleSI7CiBOU1N0cmluZyAqV2ViS2l0SlNDRlRMSklURW5hYmxlZERlZmF1bHRzS2V5
ID0gQCJXZWJLaXRKU0NGVExKSVRFbmFibGVkRGVmYXVsdHNLZXkiOwogTlNTdHJpbmcgKldlYktp
dE1lZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnlEZWZhdWx0c0tleSA9IEAiV2ViS2l0TWVkaWFLZXlz
U3RvcmFnZURpcmVjdG9yeSI7Ci1OU1N0cmluZyAqV2ViS2l0TWVkaWFDYWNoZURpcmVjdG9yeURl
ZmF1bHRzS2V5ID0gQCJXZWJLaXRNZWRpYUNhY2hlRGlyZWN0b3J5IjsKIAogI2lmICFQTEFURk9S
TShJT1MpCiBzdGF0aWMgTlNTdHJpbmcgKldlYktpdEFwcGxpY2F0aW9uRGlkQ2hhbmdlQWNjZXNz
aWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZU5vdGlmaWNhdGlvbiA9IEAiTlNBcHBsaWNhdGlv
bkRpZENoYW5nZUFjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VOb3RpZmljYXRpb24i
OwpAQCAtMzM3LDI1ICszMzYsNiBAQCBTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRm
b3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCiAgICAgcmV0dXJuIHN0cmluZ0J5UmVz
b2x2aW5nU3ltbGlua3NJblBhdGgoW2xvY2FsU3RvcmFnZURpcmVjdG9yeSBzdHJpbmdCeVN0YW5k
YXJkaXppbmdQYXRoXSk7CiB9CiAKLVN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCi17Ci0gICAgcmVnaXN0ZXJVc2VyRGVmYXVs
dHNJZk5lZWRlZCgpOwotICAgIAotICAgIE5TU3RyaW5nICptZWRpYUtleXNDYWNoZURpcmVjdG9y
eSA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpX
ZWJLaXRNZWRpYUNhY2hlRGlyZWN0b3J5RGVmYXVsdHNLZXldOwotICAgIGlmICghbWVkaWFLZXlz
Q2FjaGVEaXJlY3RvcnkgfHwgIVttZWRpYUtleXNDYWNoZURpcmVjdG9yeSBpc0tpbmRPZkNsYXNz
OltOU1N0cmluZyBjbGFzc11dKSB7Ci0gICAgICAgIG1lZGlhS2V5c0NhY2hlRGlyZWN0b3J5ID0g
TlNUZW1wb3JhcnlEaXJlY3RvcnkoKTsKLSAgICAgICAgCi0gICAgICAgIGlmICghV2ViS2l0Ojpw
cm9jZXNzSGFzQ29udGFpbmVyKCkpIHsKLSAgICAgICAgICAgIE5TU3RyaW5nICpidW5kbGVJZGVu
dGlmaWVyID0gW05TQnVuZGxlIG1haW5CdW5kbGVdLmJ1bmRsZUlkZW50aWZpZXI7Ci0gICAgICAg
ICAgICBpZiAoIWJ1bmRsZUlkZW50aWZpZXIpCi0gICAgICAgICAgICAgICAgYnVuZGxlSWRlbnRp
ZmllciA9IFtOU1Byb2Nlc3NJbmZvIHByb2Nlc3NJbmZvXS5wcm9jZXNzTmFtZTsKLSAgICAgICAg
ICAgIG1lZGlhS2V5c0NhY2hlRGlyZWN0b3J5ID0gW21lZGlhS2V5c0NhY2hlRGlyZWN0b3J5IHN0
cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpidW5kbGVJZGVudGlmaWVyXTsKLSAgICAgICAg
fQotICAgICAgICBtZWRpYUtleXNDYWNoZURpcmVjdG9yeSA9IFttZWRpYUtleXNDYWNoZURpcmVj
dG9yeSBzdHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6QCJXZWJLaXQvTWVkaWFDYWNoZSJd
OwotICAgIH0KLSAgICByZXR1cm4gc3RyaW5nQnlSZXNvbHZpbmdTeW1saW5rc0luUGF0aChbbWVk
aWFLZXlzQ2FjaGVEaXJlY3Rvcnkgc3RyaW5nQnlTdGFuZGFyZGl6aW5nUGF0aF0pOwotfQotCiBT
dHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhS2V5c1N0b3Jh
Z2VEaXJlY3RvcnkoKQogewogICAgIHJlZ2lzdGVyVXNlckRlZmF1bHRzSWZOZWVkZWQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDMzYWJlZWFl
YWM2N2I3ODg4NjQ2NTYyZDZlZTUzMjVmOTM1NjZmMTguLmZlNzNiM2ZlOTlmNGI5MzMyYjNjNGY1
YzlhODhiMTM0MDQxMzU4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcApAQCAtMTI4LDcgKzEyOCw2IEBAIHN0YXRpYyBXZWJzaXRlRGF0YVN0b3JlOjpD
b25maWd1cmF0aW9uIGxlZ2FjeVdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uKEFQSTo6CiAg
ICAgY29uZmlndXJhdGlvbi5sb2NhbFN0b3JhZ2VEaXJlY3RvcnkgPSBwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24ubG9jYWxTdG9yYWdlRGlyZWN0b3J5KCk7CiAgICAgY29uZmlndXJhdGlvbi53ZWJT
UUxEYXRhYmFzZURpcmVjdG9yeSA9IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi53ZWJTUUxEYXRh
YmFzZURpcmVjdG9yeSgpOwogICAgIGNvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25DYWNoZURpcmVj
dG9yeSA9IHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5
KCk7Ci0gICAgY29uZmlndXJhdGlvbi5tZWRpYUNhY2hlRGlyZWN0b3J5ID0gcHJvY2Vzc1Bvb2xD
b25maWd1cmF0aW9uLm1lZGlhQ2FjaGVEaXJlY3RvcnkoKTsKICAgICBjb25maWd1cmF0aW9uLm1l
ZGlhS2V5c1N0b3JhZ2VEaXJlY3RvcnkgPSBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24ubWVkaWFL
ZXlzU3RvcmFnZURpcmVjdG9yeSgpOwogICAgIGNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlRGly
ZWN0b3J5ID0gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmRpc2tDYWNoZURpcmVjdG9yeSgpOwog
CkBAIC01NDUsMTAgKzU0NCw2IEBAIFdlYlByb2Nlc3NQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNy
ZWF0ZU5ld1dlYlByb2Nlc3MoKQogICAgIGlmICghcGFyYW1ldGVycy53ZWJTUUxEYXRhYmFzZURp
cmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclJlYWRXcml0ZURpcmVjdG9yeShwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5
LCBwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKIAot
ICAgIHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+bWVk
aWFDYWNoZURpcmVjdG9yeSgpOwotICAgIGlmICghcGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0
b3J5LmlzRW1wdHkoKSkKLSAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9y
UmVhZFdyaXRlRGlyZWN0b3J5KHBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeSwgcGFyYW1l
dGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKLSAgICAKICNpZiBFTkFC
TEUoU0VDQ09NUF9GSUxURVJTKQogICAgIHBhcmFtZXRlcnMuY29va2llU3RvcmFnZURpcmVjdG9y
eSA9IHRoaXMtPmNvb2tpZVN0b3JhZ2VEaXJlY3RvcnkoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCBhOGIzODY3MWNkM2U3ZTI3ZTQ1YzY2
YTVlZThmNzNjYzJjMTNhMDRhLi5kYWI1ZjIwNWEyNzk4YmRjMDUzNjRiY2M5YmJlODNlN2IxZjIw
Mzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzYx
LDcgKzM2MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgU3RyaW5nIGxlZ2FjeVBsYXRmb3JtRGVm
YXVsdEluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KCk7CiAgICAgc3RhdGljIFN0cmluZyBsZWdh
Y3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBT
dHJpbmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpOwot
ICAgIHN0YXRpYyBTdHJpbmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9y
eSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0QXBwbGljYXRpb25D
YWNoZURpcmVjdG9yeSgpOwogICAgIHN0YXRpYyBTdHJpbmcgbGVnYWN5UGxhdGZvcm1EZWZhdWx0
TmV0d29ya0NhY2hlRGlyZWN0b3J5KCk7CiAgICAgc3RhdGljIGJvb2wgaXNOZXR3b3JrQ2FjaGVF
bmFibGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vic2l0
ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggOTE5ZWVhNjI5MWFlMjljMTZmYTFiZGM5
MzgwZTU5ZGQ4ZTFjMjNjMi4uMjg3NGZmNDQ2MDRlNGQ1ZWRhNjM3ZjIxOGJjOWE3YWI1ZmQ3YWI0
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzcsNyArMzcsNiBAQAogI2luY2x1ZGUgIldlYnNp
dGVEYXRhLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRGF0YWJhc2VUcmFja2VyLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9I
VE1MTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9PcmlnaW5Mb2NrLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CkBAIC03OCw3ICs3Nyw2IEBAIFdlYnNpdGVEYXRhU3RvcmU6OldlYnNpdGVEYXRhU3RvcmUoQ29u
ZmlndXJhdGlvbiBjb25maWd1cmF0aW9uKQogICAgICwgbV9zZXNzaW9uSUQoV2ViQ29yZTo6U2Vz
c2lvbklEOjpkZWZhdWx0U2Vzc2lvbklEKCkpCiAgICAgLCBtX25ldHdvcmtDYWNoZURpcmVjdG9y
eShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24ubmV0d29ya0NhY2hlRGlyZWN0b3J5KSkKICAgICAsIG1f
YXBwbGljYXRpb25DYWNoZURpcmVjdG9yeShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24uYXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSkpCi0gICAgLCBtX21lZGlhQ2FjaGVEaXJlY3RvcnkoV1RGTW92ZShj
b25maWd1cmF0aW9uLm1lZGlhQ2FjaGVEaXJlY3RvcnkpKQogICAgICwgbV93ZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24ud2ViU1FMRGF0YWJhc2VEaXJlY3Rvcnkp
KQogICAgICwgbV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KFdURk1vdmUoY29uZmlndXJhdGlv
bi5tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KSkKICAgICAsIG1fc3RvcmFnZU1hbmFnZXIoU3Rv
cmFnZU1hbmFnZXI6OmNyZWF0ZShXVEZNb3ZlKGNvbmZpZ3VyYXRpb24ubG9jYWxTdG9yYWdlRGly
ZWN0b3J5KSkpCkBAIC0yNTcsMjcgKzI1NSw2IEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6ZmV0
Y2hEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0aW9uU2V0CiAK
ICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBhZG9w
dFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKGZldGNoT3B0aW9ucywgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpKTsKIAotICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFU
eXBlOjpEaXNrQ2FjaGUpKSB7Ci0gICAgICAgIFN0cmluZ0NhcHR1cmUgbWVkaWFDYWNoZURpcmVj
dG9yeSB7IG1fbWVkaWFDYWNoZURpcmVjdG9yeSB9OwotICAgICAgICAKLSAgICAgICAgY2FsbGJh
Y2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5nQ2FsbGJhY2soKTsKLSAgICAgICAgbV9xdWV1ZS0+ZGlz
cGF0Y2goW2ZldGNoT3B0aW9ucywgbWVkaWFDYWNoZURpcmVjdG9yeSwgY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7Ci0gICAgICAgICAgICBIYXNoU2V0PFJlZlB0cjxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bj4+IG9yaWdpbnMgPSBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpvcmlnaW5zSW5NZWRpYUNh
Y2hlKG1lZGlhQ2FjaGVEaXJlY3Rvcnkuc3RyaW5nKCkpOwotICAgICAgICAgICAgV2Vic2l0ZURh
dGEqIHdlYnNpdGVEYXRhID0gbmV3IFdlYnNpdGVEYXRhOwotICAgICAgICAgICAgCi0gICAgICAg
ICAgICBmb3IgKGF1dG8mIG9yaWdpbiA6IG9yaWdpbnMpIHsKLSAgICAgICAgICAgICAgICBXZWJz
aXRlRGF0YTo6RW50cnkgZW50cnkgeyBvcmlnaW4sIFdlYnNpdGVEYXRhVHlwZTo6RGlza0NhY2hl
LCAwIH07Ci0gICAgICAgICAgICAgICAgd2Vic2l0ZURhdGEtPmVudHJpZXMuYXBwZW5kKFdURk1v
dmUoZW50cnkpKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIAotICAgICAgICAgICAgV1RG
OjpSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NhbGxiYWNrQWdncmVnYXRvciwgb3JpZ2lucywg
d2Vic2l0ZURhdGFdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92
ZVBlbmRpbmdDYWxsYmFjayhXVEZNb3ZlKCp3ZWJzaXRlRGF0YSkpOwotICAgICAgICAgICAgICAg
IAotICAgICAgICAgICAgICAgIGRlbGV0ZSB3ZWJzaXRlRGF0YTsKLSAgICAgICAgICAgIH0pOwot
ICAgICAgICB9KTsKLSAgICB9Ci0KICAgICBhdXRvIG5ldHdvcmtQcm9jZXNzQWNjZXNzVHlwZSA9
IGNvbXB1dGVOZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGVGb3JEYXRhRmV0Y2goZGF0YVR5cGVzLCAh
aXNQZXJzaXN0ZW50KCkpOwogICAgIGlmIChuZXR3b3JrUHJvY2Vzc0FjY2Vzc1R5cGUgIT0gUHJv
Y2Vzc0FjY2Vzc1R5cGU6Ok5vbmUpIHsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNzUG9vbCA6
IHByb2Nlc3NQb29scygpKSB7CkBAIC01NTIsMTkgKzUyOSw2IEBAIHZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIHN0
ZDo6Y2hyCiAKICAgICBSZWZQdHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0
b3IgPSBhZG9wdFJlZihuZXcgQ2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKSk7CiAKLSAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
RGlza0NhY2hlKSkgewotICAgICAgICBTdHJpbmdDYXB0dXJlIG1lZGlhQ2FjaGVEaXJlY3Rvcnkg
eyBtX21lZGlhQ2FjaGVEaXJlY3RvcnkgfTsKLQotICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3It
PmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbbW9kaWZp
ZWRTaW5jZSwgbWVkaWFDYWNoZURpcmVjdG9yeSwgY2FsbGJhY2tBZ2dyZWdhdG9yXSB7Ci0gICAg
ICAgICAgICBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpjbGVhck1lZGlhQ2FjaGUobWVkaWFD
YWNoZURpcmVjdG9yeS5zdHJpbmcoKSwgbW9kaWZpZWRTaW5jZSk7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIFdURjo6UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsKLSAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdD
YWxsYmFjaygpOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLQogICAgIGF1
dG8gbmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlID0gY29tcHV0ZU5ldHdvcmtQcm9jZXNzQWNjZXNz
VHlwZUZvckRhdGFSZW1vdmFsKGRhdGFUeXBlcywgIWlzUGVyc2lzdGVudCgpKTsKICAgICBpZiAo
bmV0d29ya1Byb2Nlc3NBY2Nlc3NUeXBlICE9IFByb2Nlc3NBY2Nlc3NUeXBlOjpOb25lKSB7CiAg
ICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewpAQCAtNzkx
LDI1ICs3NTUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEoT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBjb25zdCBWZQogICAgIH07CiAKICAgICBSZWZQ
dHI8Q2FsbGJhY2tBZ2dyZWdhdG9yPiBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBhZG9wdFJlZihuZXcg
Q2FsbGJhY2tBZ2dyZWdhdG9yKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKSk7Ci0gICAgCi0g
ICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkRpc2tDYWNoZSkpIHsK
LSAgICAgICAgU3RyaW5nQ2FwdHVyZSBtZWRpYUNhY2hlRGlyZWN0b3J5IHsgbV9tZWRpYUNhY2hl
RGlyZWN0b3J5IH07Ci0gICAgICAgIEhhc2hTZXQ8UmVmUHRyPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPj4gb3JpZ2luczsKLSAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkYXRhUmVjb3JkIDogZGF0
YVJlY29yZHMpIHsKLSAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYgb3JpZ2luIDogZGF0YVJl
Y29yZC5vcmlnaW5zKQotICAgICAgICAgICAgICAgIG9yaWdpbnMuYWRkKG9yaWdpbik7Ci0gICAg
ICAgIH0KLSAgICAgICAgCi0gICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0Nh
bGxiYWNrKCk7Ci0gICAgICAgIG1fcXVldWUtPmRpc3BhdGNoKFtvcmlnaW5zLCBtZWRpYUNhY2hl
RGlyZWN0b3J5LCBjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAgICAgIFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmNsZWFyTWVkaWFDYWNoZUZvck9yaWdpbnMobWVkaWFDYWNoZURpcmVj
dG9yeS5zdHJpbmcoKSwgb3JpZ2lucyk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIFdURjo6
UnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKLSAgICAgICAg
ICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRpbmdDYWxsYmFjaygpOwotICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0pOwotICAgIH0KLSAgICAKKwogICAgIGF1dG8gbmV0d29y
a1Byb2Nlc3NBY2Nlc3NUeXBlID0gY29tcHV0ZU5ldHdvcmtQcm9jZXNzQWNjZXNzVHlwZUZvckRh
dGFSZW1vdmFsKGRhdGFUeXBlcywgIWlzUGVyc2lzdGVudCgpKTsKICAgICBpZiAobmV0d29ya1By
b2Nlc3NBY2Nlc3NUeXBlICE9IFByb2Nlc3NBY2Nlc3NUeXBlOjpOb25lKSB7CiAgICAgICAgIGZv
ciAoYXV0byYgcHJvY2Vzc1Bvb2wgOiBwcm9jZXNzUG9vbHMoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5k
ZXggYTRhOWUxMDQzYjc2YTZlYjg4ZGZmM2M3MTExZjRmNjJhNzdlY2Y3NC4uMTAzZDYyMzgzMWI4
NTI0YWY2YzAzNzQ3NmEwYjMzOWU1ZDdhOTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCkBAIC02MSw3ICs2
MSw2IEBAIHB1YmxpYzoKICAgICAgICAgU3RyaW5nIG5ldHdvcmtDYWNoZURpcmVjdG9yeTsKICAg
ICAgICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rvcnk7CiAKLSAgICAgICAgU3RyaW5n
IG1lZGlhQ2FjaGVEaXJlY3Rvcnk7CiAgICAgICAgIFN0cmluZyB3ZWJTUUxEYXRhYmFzZURpcmVj
dG9yeTsKICAgICAgICAgU3RyaW5nIGxvY2FsU3RvcmFnZURpcmVjdG9yeTsKICAgICAgICAgU3Ry
aW5nIG1lZGlhS2V5c1N0b3JhZ2VEaXJlY3Rvcnk7CkBAIC0xMTgsNyArMTE3LDYgQEAgcHJpdmF0
ZToKIAogICAgIGNvbnN0IFN0cmluZyBtX25ldHdvcmtDYWNoZURpcmVjdG9yeTsKICAgICBjb25z
dCBTdHJpbmcgbV9hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5OwotICAgIGNvbnN0IFN0cmluZyBt
X21lZGlhQ2FjaGVEaXJlY3Rvcnk7CiAKICAgICBjb25zdCBTdHJpbmcgbV93ZWJTUUxEYXRhYmFz
ZURpcmVjdG9yeTsKICAgICBjb25zdCBTdHJpbmcgbV9tZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9XZWJQcm9jZXNzUG9v
bEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlByb2Nlc3NQb29sRWZs
LmNwcAppbmRleCAyNTVlZTg3MjEyYzRiODU3MzgzZDc4ZGE4M2Q2Y2Q2NDBhYjBmNzdmLi4xMGI1
ZjJhMDc0ZTAxZjhmNmM1NzkyMDAxMGRkOGJjOTMwYmI3MjE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlByb2Nlc3NQb29sRWZsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1dlYlByb2Nlc3NQb29sRWZsLmNwcApAQCAtODcsMTEgKzg3
LDYgQEAgU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNh
dGlvbkNhY2hlRGlyZWN0b3J5KCkKICAgICByZXR1cm4gQVBJOjpXZWJzaXRlRGF0YVN0b3JlOjpk
ZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpOwogfQogCi1TdHJpbmcgV2ViUHJvY2Vz
c1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKQotewotICAg
IHJldHVybiBBUEk6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5
KCk7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpbml0
aWFsaXplSW5zcGVjdG9yU2VydmVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvZ3RrL1dlYlByb2Nlc3NQb29sR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9ndGsvV2ViUHJvY2Vzc1Bvb2xHdGsuY3BwCmluZGV4IDk3YWZiNzAxZmZhYzJjMzY4YjdiMGM2
N2JiYmYzMjg3MmYxZWI1NTguLjRlZmNlMzlkOWQwMzM0NTZjYzg2NTE0NWNmYTM3NTYzMWMzZjkx
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bv
b2xHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9ndGsvV2ViUHJvY2Vzc1Bv
b2xHdGsuY3BwCkBAIC04NiwxMSArODYsNiBAQCBXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6
bGVnYWN5UGxhdGZvcm1EZWZhdWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCiAgICAgcmV0
dXJuIEFQSTo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rv
cnkoKTsKIH0KIAotV1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVm
YXVsdE1lZGlhQ2FjaGVEaXJlY3RvcnkoKQotewotICAgIHJldHVybiBBUEk6OldlYnNpdGVEYXRh
U3RvcmU6OmRlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCk7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBpbml0SW5zcGVjdG9yU2VydmVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCAxMWI2MmI0MmI0ZWFiOWUz
ZDI2OTg3ODM4MDA4MjZjYWM0ZmUzYjEyLi5jOGQzYzFmNGQ1OWY5YjBmODUzN2NhNjg3Y2U0NTU1
MjZlZWZlMzI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKQEAg
LTc3LDcgKzc3LDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9HQ0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dseXBoUGFnZS5o
PgotI2luY2x1ZGUgPFdlYkNvcmUvSFRNTE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvSWNvbkRhdGFiYXNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTVdpbmRvdy5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTGFuZ3VhZ2UuaD4KQEAgLTI5NCw5ICsyOTMsNiBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXJhbWV0ZXJzKQogICAgIGlmICghcGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0
b3J5LmlzRW1wdHkoKSkKICAgICAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNpbmdsZXRv
bigpLnNldENhY2hlRGlyZWN0b3J5KHBhcmFtZXRlcnMuYXBwbGljYXRpb25DYWNoZURpcmVjdG9y
eSk7CiAKLSAgICBpZiAoIXBhcmFtZXRlcnMubWVkaWFDYWNoZURpcmVjdG9yeS5pc0VtcHR5KCkp
Ci0gICAgICAgIFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhQ2FjaGVEaXJlY3Rv
cnkocGFyYW1ldGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5KTsKLQogICAgIHNldENhY2hlTW9kZWwo
c3RhdGljX2Nhc3Q8dWludDMyX3Q+KHBhcmFtZXRlcnMuY2FjaGVNb2RlbCkpOwogCiAgICAgaWYg
KCFwYXJhbWV0ZXJzLmxhbmd1YWdlcy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCmluZGV4IGEwODdmOTBlNzU2MWRl
YjU2NDQ4MDY0ODNmZGMxYWE1YjM4OWJkMmIuLmY3NjFjZTZiMThlNDgxOTQzZDM4ZjgzMjIyM2M0
OTVhNDc2NjA0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0xMzUsNyArMTM1LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
JiBwYXIKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVy
cy51aVByb2Nlc3NCdW5kbGVSZXNvdXJjZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogICAgIFNhbmRi
b3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLndlYlNRTERhdGFiYXNl
RGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1l
UGVybWFuZW50bHkocGFyYW1ldGVycy5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9u
SGFuZGxlKTsKLSAgICBTYW5kYm94RXh0ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1l
dGVycy5tZWRpYUNhY2hlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5tZWRpYUtleVN0b3JhZ2VEaXJl
Y3RvcnlFeHRlbnNpb25IYW5kbGUpOwogI2lmIFBMQVRGT1JNKElPUykKICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjb25zdW1lUGVybWFuZW50bHkocGFyYW1ldGVycy5jb29raWVTdG9yYWdlRGlyZWN0
b3J5RXh0ZW5zaW9uSGFuZGxlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>