<?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>124280</bug_id>
          
          <creation_ts>2013-11-13 07:19:53 -0800</creation_ts>
          <short_desc>REGRESSION(r159180): crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html is failing on Maverics release bot</short_desc>
          <delta_ts>2013-11-13 11:17:36 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>122679</blocked>
    
    <blocked>124236</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>koivisto</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>950148</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-13 07:19:53 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/159180 broke the build:
crypto/subtle/rsassa-pkcs1-v1_5-import-jwk.html is failing on Maverics release bot (Requested by anttik 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>950150</commentid>
    <comment_count>1</comment_count>
      <attachid>216799</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-13 07:20:15 -0800</bug_when>
    <thetext>Created attachment 216799
ROLLOUT of r159180

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>950151</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:22:52 -0800</bug_when>
    <thetext>Skipping the failing test instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950152</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:25:32 -0800</bug_when>
    <thetext>http://build.webkit.org/results/Apple%20Mavericks%20Release%20WK1%20(Tests)/r159192%20(829)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950154</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:26:06 -0800</bug_when>
    <thetext>repurposing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950155</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2013-11-13 07:31:00 -0800</bug_when>
    <thetext>Skipped in https://trac.webkit.org/r159193</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950237</commentid>
    <comment_count>6</comment_count>
      <attachid>216819</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-11-13 10:37:03 -0800</bug_when>
    <thetext>Created attachment 216819
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950238</commentid>
    <comment_count>7</comment_count>
      <attachid>216819</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-11-13 10:47:32 -0800</bug_when>
    <thetext>Comment on attachment 216819
proposed fix

I&apos;d use std::array instead of those C style arrays but r+ anyway!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950251</commentid>
    <comment_count>8</comment_count>
      <attachid>216819</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-13 11:17:34 -0800</bug_when>
    <thetext>Comment on attachment 216819
proposed fix

Clearing flags on attachment: 216819

Committed r159211: &lt;http://trac.webkit.org/changeset/159211&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>950252</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-13 11:17:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216799</attachid>
            <date>2013-11-13 07:20:15 -0800</date>
            <delta_ts>2013-11-13 10:37:03 -0800</delta_ts>
            <desc>ROLLOUT of r159180</desc>
            <filename>bug-124280-20131113072015.patch</filename>
            <type>text/plain</type>
            <size>110422</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGU2MDM0OTI1YmExZWZi
YTdiMzFmMzVmNmZhMjJlYjJhYjk2MDljYy4uZDk1MzUzM2EzYjNjNTI2NGZhNmZjMmZmMDAzZGFh
OWUxNGM0MTI3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTExLTEzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTU5MTgwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2No
YW5nZXNldC8xNTkxODAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEyNDI4MAorCisgICAgICAgIGNyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUt
aW1wb3J0LWp3ay5odG1sIGlzIGZhaWxpbmcgb24KKyAgICAgICAgTWF2ZXJpY3MgcmVsZWFzZSBi
b3QgKFJlcXVlc3RlZCBieSBhbnR0aWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDcnlw
dG9BbGdvcml0aG1CdWlsZGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0Fs
Z29yaXRobUJ1aWxkZXIuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlQWVzQ2JjUGFyYW1zKToK
KyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUFlc0tleUdlblBhcmFtcyk6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVIbWFjUGFyYW1zKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUhtYWNLZXlQ
YXJhbXMpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yRW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KToKKyAgICAgICAg
KFdlYkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zv
clNpZ24pOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yVmVyaWZ5KToKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3J5cHRvQWxn
b3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JH
ZW5lcmF0ZUtleSk6CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVyaXZlQml0cyk6
CisgICAgICAgIChXZWJDb3JlOjpKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
cmFtZXRlcnNGb3JJbXBvcnRLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0
aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRXhwb3J0S2V5KToKKyAgICAgICAgKFdl
YkNvcmU6OkpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0Zvcldy
YXBLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yVW53cmFwS2V5KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Ny
eXB0b0tleVNlcmlhbGl6YXRpb25KV0suY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDcnlwdG9L
ZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0pOgorICAgICAgICAoV2ViQ29y
ZTo6SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjprZXlEYXRhKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaDoKKyAgICAgICAgKiBjcnlwdG8v
Q3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyLmg6CisgICAgICAgICogY3J5cHRvL0Ny
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8vQ3J5cHRvS2V5Lmg6CisgICAgICAgIChXZWJDb3JlOjpFTlVNX0NMQVNTKToKKyAg
ICAgICAgKiBjcnlwdG8vQ3J5cHRvS2V5RGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRv
S2V5RGF0YTo6RU5VTV9DTEFTUyk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1B
RVNfQ0JDOjppbXBvcnRLZXkpOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhNQUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6
aW1wb3J0S2V5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FTU0FfUEtDUzFfdjFfNS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDogUmVtb3ZlZC4KKyAgICAgICAg
KiBjcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaDoKKyAgICAgICAgKFdlYkNvcmU6OmFzQ3J5cHRv
S2V5QUVTKToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5j
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6YXNDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZSk6Cisg
ICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmg6
IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oOgorICAgICAg
ICAoV2ViQ29yZTo6YXNDcnlwdG9LZXlITUFDKToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9Dcnlw
dG9LZXlSU0EuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkNNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qzo6ZW5jcnlwdCk6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1BRVNfQ0JDOjpk
ZWNyeXB0KToKKyAgICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvQWxnb3JpdGhtSE1BQzo6c2lnbik6CisgICAgICAg
IChXZWJDb3JlOjpDcnlwdG9BbGdvcml0aG1ITUFDOjp2ZXJpZnkpOgorICAgICAgICAqIGNyeXB0
by9tYWMvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvQWxnb3JpdGhtUmVnaXN0cnk6OnBsYXRmb3JtUmVnaXN0ZXJBbGdvcml0aG1zKToKKyAg
ICAgICAgKiBjcnlwdG8vbWFjL0NyeXB0b0tleVJTQU1hYy5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtSG1hY0tleVBhcmFtcy5oOgorICAg
ICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5o
OiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YVNzYUtleVBhcmFtcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGNyeXB0by9wYXJhbWV0ZXJzL0Ny
eXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oOiBSZW1vdmVkLgorCiAyMDEzLTExLTEyICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBTdXBwb3J0IG92ZXJmbG93
LXdyYXA6YnJlYWstd29yZCBvbiBzaW1wbGUgbGluZSBwYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjZmMWJmMzlmMjk0M2M0
MmU1NmM4OTRjNzJhN2U0YTM0M2IwMGJlZC4uNmQ1MGE1NjBkNjY1MDA2MTMwYmY3NTkxNWMwM2E0
ZTFhNzVkNzMxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtNTU5NSw4ICs1NTk1LDYgQEAKIAkJRTE1N0E4RjExODE4NTQyNTAw
OUY4MjFEIC8qIEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1N0E4RUYxODE4NTQyNTAwOUY4MjFEIC8qIEpT
Q3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oICovOyB9OwogCQlFMTVBMzZENzExMDQ1NzIwMDBCN0I2
MzkgLyogWE1MTlNOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTE1QTM2RDYxMTA0NTcyMDAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuaCAqLzsgfTsK
IAkJRTE1QTM2RDkxMTA0NTcyNzAwQjdCNjM5IC8qIFhNTE5TTmFtZXMuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE1QTM2RDgxMTA0NTcyNzAwQjdC
NjM5IC8qIFhNTE5TTmFtZXMuY3BwICovOyB9OwotCQlFMTY0RkFBMzE4MzE1QkY0MDBEQjRFNjEg
LyogQ3J5cHRvS2V5UlNBLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBFMTY0RkFBMjE4MzE1QkY0MDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBLmggKi87IH07
Ci0JCUUxNjRGQUE1MTgzMTVFMUEwMERCNEU2MSAvKiBDcnlwdG9LZXlSU0FNYWMuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTE2NEZBQTQxODMxNUUx
QTAwREI0RTYxIC8qIENyeXB0b0tleVJTQU1hYy5jcHAgKi87IH07CiAJCUUxNjk4MDNEMTEzMzU0
MkQwMDg5NDExNSAvKiBDUnVudGltZU9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRTE2OTgwM0MxMTMzNTQyRDAwODk0MTE1IC8qIENSdW50aW1l
T2JqZWN0LmggKi87IH07CiAJCUUxNjk4MDQ5MTEzMzY0NDcwMDg5NDExNSAvKiBDUnVudGltZU9i
amVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTY5ODA0ODExMzM2NDQ3MDA4OTQxMTUgLyogQ1J1bnRpbWVPYmplY3QuY3BwICovOyB9OwogCQlF
MTY5ODI1NTExMzQ2MjlEMDA4OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxNjk4MjU0MTEzNDYyOUQwMDg5
NDExNSAvKiBPYmpDUnVudGltZU9iamVjdC5oICovOyB9OwpAQCAtNTY3MSwxNiArNTY2OSw4IEBA
CiAJCUUxQkE2NzE4MTc0MkJFRTYwMEMyMDI1MSAvKiBDYXJib24uZnJhbWV3b3JrIGluIEZyYW1l
d29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMjg2OTQwMjg0NkRD
RDAxODYzNUNBIC8qIENhcmJvbi5mcmFtZXdvcmsgKi87IH07CiAJCUUxQkE2NzFBMTc0MkJFRjQw
MEMyMDI1MSAvKiBXZWJDb3JlVGVzdFNoaW1MaWJyYXJ5LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkE2NzE5MTc0MkJFRjQwMEMyMDI1MSAvKiBX
ZWJDb3JlVGVzdFNoaW1MaWJyYXJ5LmNwcCAqLzsgfTsKIAkJRTFCQjg0QUQxODIyQ0E3NDAwNTI1
MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkI4NEFDMTgyMkNBNzQwMDUyNTA0MyAvKiBD
cnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgKi87IH07Ci0JCUUxQkQzMzE5MTgyRDhEREQw
MEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMUJEMzMxNzE4MkQ4REREMDBD
MDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuY3BwICovOyB9OwotCQlF
MUJEMzMxQTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3Yx
XzUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQkQz
MzE4MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5o
ICovOyB9OwotCQlFMUJEMzMxQzE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNh
U3NhUGFyYW1zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUJEMzMxQjE4MkQ4RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1z
LmggKi87IH07Ci0JCUUxQkQzMzFFMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1S
c2FLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlH
ZW5QYXJhbXMuaCAqLzsgfTsKIAkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmlj
b2RlU29ydC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFMUJFNTEyQjBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmNwcCAqLzsgfTsK
IAkJRTFCRTUxMkUwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCRTUxMkMwQ0Y2QzUxMjAw
MkVBOTU5IC8qIFhTTFRVbmljb2RlU29ydC5oICovOyB9OwotCQlFMUMyNjZEODE4MzE3QUI0MDAz
RjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMjY2RDYxODMxN0FCNDAw
M0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81TWFjLmNwcCAqLzsgfTsK
LQkJRTFDMjY2REIxODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBh
cmFtcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFD
MjY2REExODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5o
ICovOyB9OwotCQlFMUMyNjZERTE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNv
bXBvbmVudHMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcCAqLzsgfTsKLQkJRTFDMjY2REYxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFMUMyNjZERDE4MzE5RjMxMDAzRjhCMzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMuaCAqLzsgfTsKIAkJRTFDMkYyNEExNTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMkYyNDgx
NTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1tICovOyB9OwogCQlFMUMzNjJFRjBFQUYy
QUE5MDA3NDEwQkMgLyogSlNXb3JrZXJMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDMzYyRUQwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29y
a2VyTG9jYXRpb24uaCAqLzsgfTsKIAkJRTFDMzYyRjAwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29y
a2VyTG9jYXRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTFDMzYyRUUwRUFGMkFBOTAwNzQxMEJDIC8qIEpTV29ya2VyTG9jYXRpb24uY3BwICov
OyB9OwpAQCAtMTI2ODcsOCArMTI2NzcsNiBAQAogCQlFMTU3QThFRjE4MTg1NDI1MDA5RjgyMUQg
LyogSlNDcnlwdG9BbGdvcml0aG1CdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTVBMzZENjExMDQ1NzIwMDBCN0I2MzkgLyogWE1MTlNOYW1lcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxOU05hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUUxNUEzNkQ4MTEwNDU3MjcwMEI3QjYzOSAvKiBYTUxOU05hbWVzLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhNTE5TTmFtZXMuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMTY0RkFBMjE4MzE1QkY0MDBEQjRFNjEgLyogQ3J5
cHRvS2V5UlNBLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENyeXB0b0tleVJT
QS5oOyBwYXRoID0ga2V5cy9DcnlwdG9LZXlSU0EuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJRTE2NEZBQTQxODMxNUUxQTAwREI0RTYxIC8qIENyeXB0b0tleVJTQU1hYy5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBDcnlwdG9LZXlSU0FNYWMuY3BwOyBw
YXRoID0gbWFjL0NyeXB0b0tleVJTQU1hYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxNjk4MDNDMTEzMzU0MkQwMDg5NDExNSAvKiBDUnVudGltZU9iamVjdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDUnVudGltZU9iamVjdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMTY5ODA0ODExMzM2NDQ3MDA4OTQxMTUgLyogQ1J1bnRpbWVPYmpl
Y3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1J1bnRpbWVPYmpl
Y3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTY5ODI1NDExMzQ2MjlEMDA4
OTQxMTUgLyogT2JqQ1J1bnRpbWVPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gT2JqQ1J1bnRpbWVPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEyNzcyLDE2ICsxMjc2MCw4IEBACiAJCUUxQkE2NzE2MTc0MkJERTAwMEMyMDI1MSAvKiBsaWJX
ZWJDb3JlVGVzdFNoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGlj
aXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRlSW5JbmRleCA9IDA7
IHBhdGggPSBsaWJXZWJDb3JlVGVzdFNoaW0uZHlsaWI7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCUUxQkE2NzE5MTc0MkJFRjQwMEMyMDI1MSAvKiBXZWJDb3JlVGVzdFNo
aW1MaWJyYXJ5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkNv
cmVUZXN0U2hpbUxpYnJhcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUJC
ODRBQzE4MjJDQTc0MDA1MjUwNDMgLyogQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlNYWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQ3J5cHRvQWxnb3JpdGhtUmVnaXN0
cnlNYWMuY3BwOyBwYXRoID0gbWFjL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMTcxODJEOERERDAwQzA1RDlGIC8qIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRTFCRDMzMTgxODJEOERERDAwQzA1RDlGIC8qIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUUxQkQzMzFCMTgyRDhFRTkwMEMwNUQ5RiAvKiBDcnlwdG9BbGdv
cml0aG1Sc2FTc2FQYXJhbXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ3J5
cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmg7IHBhdGggPSBwYXJhbWV0ZXJzL0NyeXB0b0FsZ29y
aXRobVJzYVNzYVBhcmFtcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUJEMzMx
RDE4MkQ4RjQyMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBh
cmFtcy5oOyBwYXRoID0gcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCRTUxMkIwQ0Y2QzUxMjAwMkVBOTU5
IC8qIFhTTFRVbmljb2RlU29ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBYU0xUVW5pY29kZVNvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MUJFNTEyQzBDRjZDNTEyMDAyRUE5NTkgLyogWFNMVFVuaWNvZGVTb3J0LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhTTFRVbmljb2RlU29ydC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlFMUMyNjZENjE4MzE3QUI0MDAzRjhCMzMgLyogQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlFMUMyNjZEQTE4MzE5OTM1MDAzRjhCMzMgLyogQ3J5cHRvQWxn
b3JpdGhtUnNhU3NhS2V5UGFyYW1zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oOyBwYXRoID0gcGFyYW1ldGVycy9Dcnlw
dG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTFDMjY2REMxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENyeXB0b0tleURhdGFS
U0FDb21wb25lbnRzLmNwcDsgcGF0aCA9IGtleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFMUMyNjZERDE4MzE5RjMxMDAzRjhC
MzMgLyogQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaDsgcGF0aCA9IGtleXMvQ3J5
cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTFDMkYyNDgxNTMzQTIxMjAwODNGOTc0IC8qIFNldHRpbmdzTWFjLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gU2V0dGluZ3NNYWMubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUUxQzM2MkVEMEVBRjJBQTkwMDc0MTBCQyAvKiBKU1dvcmtlckxvY2F0
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTV29ya2VyTG9jYXRpb24u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDMzYyRUUwRUFGMkFBOTAwNzQxMEJD
IC8qIEpTV29ya2VyTG9jYXRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXb3JrZXJMb2NhdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yMDM0OCwxMyArMjAzMjgsMTEgQEAKIAkJCQlFMTI1RjgzNzE4MjJGMUVCMDBEODRDRDkgLyog
Q3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5jcHAgKi8sCiAJCQkJRTFCQjg0QUMxODIyQ0E3NDAwNTI1
MDQzIC8qIENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcCAqLywKIAkJCQlFMTI1RjgyRDE4
MjJDRkZGMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMU1hYy5jcHAgKi8sCi0JCQkJRTFD
MjY2RDYxODMxN0FCNDAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81
TWFjLmNwcCAqLywKIAkJCQlFMTlBQzNERTE4MjREQzY5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0TWFjLmNwcCAqLywKIAkJCQlFMTlBQzNERjE4MjREQzY5MDAzNDk0MjYgLyogQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2TWFjLmNwcCAqLywKIAkJCQlFMTlBQzNFMDE4MjREQzY5MDAzNDk0
MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMzg0TWFjLmNwcCAqLywKIAkJCQlFMTlBQzNFMTE4MjRE
QzY5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBNTEyTWFjLmNwcCAqLywKIAkJCQlFMTlB
QzNGODE4MjU2NkY3MDAzNDk0MjYgLyogQ3J5cHRvS2V5TWFjLmNwcCAqLywKLQkJCQlFMTY0RkFB
NDE4MzE1RTFBMDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNBTWFjLmNwcCAqLywKIAkJCSk7CiAJCQlu
YW1lID0gbWFjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIwMzY2LDggKzIwMzQ0
LDYgQEAKIAkJCQlFMTI1Rjg0MDE4MjQyNTNBMDBEODRDRDkgLyogQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5oICovLAogCQkJCUUxMjVGODJGMTgyMkYxMUIwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0
aG1ITUFDLmNwcCAqLywKIAkJCQlFMTI1RjgzMDE4MjJGMTFCMDBEODRDRDkgLyogQ3J5cHRvQWxn
b3JpdGhtSE1BQy5oICovLAotCQkJCUUxQkQzMzE3MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgKi8sCi0JCQkJRTFCRDMzMTgxODJEOERERDAw
QzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggKi8sCiAJCQkJRTEy
NUY4MjkxODIyQ0ZFQzAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobVNIQTEuY3BwICovLAogCQkJ
CUUxMjVGODJBMTgyMkNGRUMwMEQ4NENEOSAvKiBDcnlwdG9BbGdvcml0aG1TSEExLmggKi8sCiAJ
CQkJRTE5QUMzRTYxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAg
Ki8sCkBAIC0yMDM4OSwxMSArMjAzNjUsOCBAQAogCQkJCUUxMjVGODRDMTgyNDI4OUQwMEQ4NENE
OSAvKiBDcnlwdG9LZXlBRVMuaCAqLywKIAkJCQlFMTI1Rjg2MTE4MkMzMDNBMDBEODRDRDkgLyog
Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuY3BwICovLAogCQkJCUUxMjVGODYyMTgyQzMwM0Ew
MEQ4NENEOSAvKiBDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oICovLAotCQkJCUUxQzI2NkRD
MTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5jcHAgKi8sCi0J
CQkJRTFDMjY2REQxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmggKi8sCiAJCQkJRTEyNUY4MzMxODIyRjE4QTAwRDg0Q0Q5IC8qIENyeXB0b0tleUhNQUMuY3Bw
ICovLAogCQkJCUUxMjVGODM0MTgyMkYxOEEwMEQ4NENEOSAvKiBDcnlwdG9LZXlITUFDLmggKi8s
Ci0JCQkJRTE2NEZBQTIxODMxNUJGNDAwREI0RTYxIC8qIENyeXB0b0tleVJTQS5oICovLAogCQkJ
CUUxMjVGODU3MTgyQzFBQTYwMEQ4NENEOSAvKiBDcnlwdG9LZXlTZXJpYWxpemF0aW9uUmF3LmNw
cCAqLywKIAkJCQlFMTI1Rjg1ODE4MkMxQUE2MDBEODRDRDkgLyogQ3J5cHRvS2V5U2VyaWFsaXph
dGlvblJhdy5oICovLAogCQkJKTsKQEAgLTIwNDA3LDkgKzIwMzgwLDYgQEAKIAkJCQlFMTlBQzNG
NjE4MjRFNUQxMDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtQWVzS2V5R2VuUGFyYW1zLmggKi8s
CiAJCQkJRTE5REEyOUIxODE4OUFERDAwMDg4QkM4IC8qIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQ
YXJhbXMuaCAqLywKIAkJCQlFMUM2NTcxRTE4MTZFNTAzMDAyNTZDREQgLyogQ3J5cHRvQWxnb3Jp
dGhtSG1hY1BhcmFtcy5oICovLAotCQkJCUUxQkQzMzFEMTgyRDhGNDIwMEMwNUQ5RiAvKiBDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCAqLywKLQkJCQlFMUMyNjZEQTE4MzE5OTM1MDAz
RjhCMzMgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zLmggKi8sCi0JCQkJRTFCRDMz
MUIxODJEOEVFOTAwQzA1RDlGIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oICovLAog
CQkJKTsKIAkJCW5hbWUgPSBwYXJhbWV0ZXJzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
QEAgLTIyMTQwLDcgKzIyMTEwLDYgQEAKIAkJCQlGRDMxNjAwMjEyQjAyNjc2MDBDMUEzNTkgLyog
Q2hhbm5lbFNwbGl0dGVyTm9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1MEI2QTAwOTlERjAy
NzAwOTBENzgxIC8qIENoYXJhY3RlckRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3QjhGRkQx
MTZBRTdGOTYwMDM4Mzg4RCAvKiBDaGFyYWN0ZXJSZWZlcmVuY2VQYXJzZXJJbmxpbmVzLmggaW4g
SGVhZGVycyAqLywKLQkJCQlFMTY0RkFBMzE4MzE1QkY0MDBEQjRFNjEgLyogQ3J5cHRvS2V5UlNB
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREEyQTBEMDA2QzFEMDBFRjZGMjYgLyogQ2hhcnNl
dERhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCUY1NUIzREIyMTI1MUYxMkQwMDNFRjI2OSAvKiBD
aGVja2JveElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOTI1NDMwRjdFRjVCODAw
N0UzN0M5IC8qIENoZWNrZWRSYWRpb0J1dHRvbnMuaCBpbiBIZWFkZXJzICovLApAQCAtMjIzNDIs
NyArMjIzMTEsNiBAQAogCQkJCUY1NUIzREI2MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlSW5wdXRU
eXBlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NTNFQjYzNzE1OUM1NzA0MDAwMDFCQjcgLyogRGF0
ZVRpbWVGb3JtYXQuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDU4NTAzMTdGQTEwRDAwMDVGMkJD
QiAvKiBKU0FsbFZpZGVvQ2FwYWJpbGl0aWVzLmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUJEMzMx
QTE4MkQ4REREMDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBp
biBIZWFkZXJzICovLAogCQkJCUY1NUIzREI4MTI1MUYxMkQwMDNFRjI2OSAvKiBEYXRlVGltZUlu
cHV0VHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRjU1QjNEQkExMjUxRjEyRDAwM0VGMjY5IC8q
IERhdGVUaW1lTG9jYWxJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ1RkVBNUQwMTU2
RERFOEMwMDY1NDEwMSAvKiBEZWNpbWFsLmggaW4gSGVhZGVycyAqLywKQEAgLTIyOTAyLDcgKzIy
ODcwLDYgQEAKIAkJCQlCMjc1MzU2QjBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRSZWN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMjc1MzU2RDBCMDUzODE0MDAyQ0U2NEYgLyogRmxvYXRTaXplLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlENzJGNkQ3QTE1MzE1OUEzMDAxRUU0NEUgLyogRmxvd1RocmVh
ZENvbnRyb2xsZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQkQzMzFFMTgyRDhGNDIwMEMwNUQ5
RiAvKiBDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTE0OTkzQkU2MEIyRjJCMUMwMDUwNDk3RiAvKiBGb2N1c0NvbnRyb2xsZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA2MjI4Nzg0MEI0REIzMjIwMDBDMzRERiAvKiBGb2N1c0RpcmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjZEOUQyMzUxNEVBQkQyNjAwOTBENzVFIC8qIEZvY3VzRXZlbnQu
aCBpbiBIZWFkZXJzICovLApAQCAtMjM0NzgsNyArMjM0NDUsNiBAQAogCQkJCUE4MEU3QjBDMEEx
OUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxUaXRsZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTA3MDc1NkQ0MTQyMzlBNEYwMDQxNDE2MSAvKiBKU0hUTUxUcmFja0VsZW1lbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBODVCMjExMEExQjI1ODcwMEQ4Qzg3QyAvKiBKU0hUTUxVTGlzdEVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUUxQzI2NkRGMTgzMTlGMzEwMDNGOEIzMyAvKiBDcnlw
dG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNkU0QUJDRDUxMzhF
QTBCNzAwNzFEMjkxIC8qIEpTSFRNTFVua25vd25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwNzhFMDkyNzE3RDE0RDFDMDA0MjBBQTEgLyogUlRDU2Vzc2lvbkRlc2NyaXB0aW9uQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDE3MENENjgyNjkwMEZBREE3NSAvKiBKU0hU
TUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjM3MDcsNyArMjM2NzMsNiBAQAog
CQkJCUIyRkEzREREMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhTZWdNb3ZldG9BYnMuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyRkEzRERGMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR1BhdGhT
ZWdNb3ZldG9SZWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDU4NTIxMTdGREMxNDAwMDVGMkJD
QiAvKiBNZWRpYVRyYWNrQ29uc3RyYWludC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTFDMjY2REIx
ODMxOTkzNTAwM0Y4QjMzIC8qIENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQ0Q4QjVBNDYxODBERkY0RTAwOEI4RTY1IC8qIFZpZGVvVHJhY2tNZWRp
YVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNERTEwQUI3NUE2RjAwMEU1QUM0IC8q
IEpTU1ZHUGF0dGVybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTg1NDJBNzk1MEFFNUM5
NDEwMERGNThERiAvKiBKU1NWR1BvaW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI0MDIwLDcgKzIz
OTg1LDYgQEAKIAkJCQkwNzhFMDkxQjE3RDE0RDFDMDA0MjBBQTEgLyogTmF2aWdhdG9yVXNlck1l
ZGlhRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCNUREMEU4MUI4REQwMEIyNTk2NSAv
KiBPdXRsaW5lVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMEQ1NzM3MEE1Qzc3RkUwMDdF
REQ0QyAvKiBPdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlFMUJEMzMxQzE4MkQ4
RUU5MDBDMDVEOUYgLyogQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzNzc0QUJBNTBGQTIxRUI0MDBBRDdERTkgLyogT3ZlcmxhcFRlc3RSZXF1ZXN0Q2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUEyMTQ2ODA5N0EzMjkxMDBCOTA1MEEgLyogUGFn
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUI1MEIxREUxN0NENEMwRjAwODdGNjNDIC8qIEZvcm1O
YW1lZEl0ZW0uaCBpbiBIZWFkZXJzICovLApAQCAtMjU3OTAsNyArMjU3NTQsNiBAQAogCQkJCTUw
RDQwNjExMTQ3RDQ5REUwMEQzMEJCNSAvKiBDdXN0b21GaWx0ZXJDb21waWxlZFByb2dyYW0uY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTA5ODdDMjYxNTdENjc2RDAwQkRBODM1IC8qIEN1c3RvbUZp
bHRlckdsb2JhbENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTBENDA1RjkxNDdEMzFG
MzAwRDMwQkI1IC8qIEN1c3RvbUZpbHRlck1lc2guY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTFD
MjY2REUxODMxOUYzMTAwM0Y4QjMzIC8qIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdFMTJFOTEwMTVGQTVEM0EwMDVFNDEyNiAvKiBDdXN0b21GaWx0
ZXJNZXNoR2VuZXJhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUwQ0MwQTM5MTRDNkY1QjEw
MDE3QUI1MSAvKiBDdXN0b21GaWx0ZXJPcGVyYXRpb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTA5MzMzNEYxNjNCMEU0MzAwMDk5QTYwIC8qIEN1c3RvbUZpbHRlclBhcmFtZXRlckxpc3QuY3Bw
IGluIFNvdXJjZXMgKi8sCkBAIC0yNjM5Miw3ICsyNjM1NSw2IEBACiAJCQkJRTEyNUY4MzgxODIy
RjFFQjAwRDg0Q0Q5IC8qIENyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkNDRDc0RTUwQTRDOERERjAwNUZEQTZEIC8qIEhUTUxWaWV3U291cmNlRG9jdW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTc3QjM4NzkxMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxW
aWV3U291cmNlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxQzI2NkQ4MTgzMTdBQjQw
MDNGOEIzMyAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwQjhDNTZENDBGMjg2MjdGMDAwNTAyRTEgLyogSFRUUEhlYWRlck1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTRDNzY3MjBDRTkyM0ExMDA3RUYzQ0QgLyogSFRUUFBh
cnNlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzcxQTY3Q0IxMUM2QzdEQjAwMDQ3QjhCIC8q
IEh5cGhlbmF0aW9uQ0YuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yNjgwNyw3ICsyNjc2OSw2IEBA
CiAJCQkJQzZGNDIwQTIxNkI3MTY0RTAwNTJBOUYyIC8qIEpTTXV0YXRpb25DYWxsYmFjay5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk2NURGMzFGQjA5RDFDQzYwMDAwQkUzMjUgLyogSlNNdXRhdGlv
bkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUM2RjA5MDJDMTQzMjdENEYwMDY4NTg0OSAv
KiBKU011dGF0aW9uT2JzZXJ2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRTE2NEZBQTUxODMx
NUUxQTAwREI0RTYxIC8qIENyeXB0b0tleVJTQU1hYy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlD
NkYwOTE3RjE0M0EyQkI5MDA2ODU4NDkgLyogSlNNdXRhdGlvbk9ic2VydmVyQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUM2RjA4RkM5MTQzMTAwMEQwMDY4NTg0OSAvKiBKU011dGF0aW9u
UmVjb3JkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTA3OEUwOTAxMTdEMTRDRUUwMDQyMEFBMSAv
KiBNZWRpYVN0cmVhbVJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLApAQCAtMjcwOTgsNyArMjcw
NTksNiBAQAogCQkJCTkzRjFENUMwMTJENTMzNTYwMDgzMkJFQyAvKiBKU1dlYkdMTG9zZUNvbnRl
eHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlDN0I5OUIxMDQyRDJEMzAwMDlENDQ3IC8qIEpT
V2ViR0xQcm9ncmFtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5QzdCOTlEMTA0MkQyRDMwMDA5
RDQ0NyAvKiBKU1dlYkdMUmVuZGVyYnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUUxQkQz
MzE5MTgyRDhEREQwMEMwNUQ5RiAvKiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk0OUVFRDE0NjEwNTE5Njk0MDAwOTlGQUIgLyogSlNXZWJH
TFJlbmRlcmluZ0NvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDlFRUQxNEYxMDUxOTcx
QTAwMDk5RkFCIC8qIEpTV2ViR0xSZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTQ5QzdCOUEyMTA0MkQyRDMwMDA5RDQ0NyAvKiBKU1dlYkdMU2hhZGVyLmNwcCBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
cnlwdG9BbGdvcml0aG1CdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvQWxnb3JpdGhtQnVpbGRlci5jcHAKaW5kZXggMTNjMDYzYjMzMzk1Nzg1YmY0NGIzM2Q4
YzdiMTZlODRmYzY1NTJlNi4uN2I5MzI3ZmYzNDQ0N2VmNzQ0OGNlOGQxYTg0ZTdlZTc2ODA0NDZm
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0
aG1CdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0Fs
Z29yaXRobUJ1aWxkZXIuY3BwCkBAIC0zMCw4ICszMCw2IEBACiAKICNpbmNsdWRlIDxydW50aW1l
L09iamVjdENvbnN0cnVjdG9yLmg+CiAjaW5jbHVkZSA8cnVudGltZS9PcGVyYXRpb25zLmg+Ci0j
aW5jbHVkZSA8cnVudGltZS9UeXBlZEFycmF5cy5oPgotI2luY2x1ZGUgPHJ1bnRpbWUvVHlwZWRB
cnJheUlubGluZXMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIApAQCAtNjYsMTQgKzY0LDYg
QEAgdm9pZCBKU0NyeXB0b0FsZ29yaXRobUJ1aWxkZXI6OmFkZChjb25zdCBjaGFyKiBrZXksIGNv
bnN0IFN0cmluZyYgdmFsdWUpCiAgICAgbV9kaWN0aW9uYXJ5LT5wdXREaXJlY3Qodm0sIGlkZW50
aWZpZXIsIGpzU3RyaW5nKG1fZXhlYywgdmFsdWUpKTsKIH0KIAotdm9pZCBKU0NyeXB0b0FsZ29y
aXRobUJ1aWxkZXI6OmFkZChjb25zdCBjaGFyKiBrZXksIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
YnVmZmVyKQotewotICAgIFZNJiB2bSA9IG1fZXhlYy0+dm0oKTsKLSAgICBJZGVudGlmaWVyIGlk
ZW50aWZpZXIoJnZtLCBrZXkpOwotICAgIFJlZlB0cjxVaW50OEFycmF5PiBhcnJheVZpZXcgPSBV
aW50OEFycmF5OjpjcmVhdGUoYnVmZmVyLmRhdGEoKSwgYnVmZmVyLnNpemUoKSk7Ci0gICAgbV9k
aWN0aW9uYXJ5LT5wdXREaXJlY3Qodm0sIGlkZW50aWZpZXIsIGFycmF5Vmlldy0+d3JhcChtX2V4
ZWMsIHZtLmR5bmFtaWNHbG9iYWxPYmplY3QpKTsKLX0KLQogdm9pZCBKU0NyeXB0b0FsZ29yaXRo
bUJ1aWxkZXI6OmFkZChjb25zdCBjaGFyKiBrZXksIGNvbnN0IENyeXB0b0FsZ29yaXRobURlc2Ny
aXB0aW9uQnVpbGRlciYgbmVzdGVkQnVpbGRlcikKIHsKICAgICBWTSYgdm0gPSBtX2V4ZWMtPnZt
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29y
aXRobUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3Jp
dGhtQnVpbGRlci5oCmluZGV4IGUwOGM4ZmUyMzgxNTkwNDk4OWE2Y2YxNTNiN2Y0M2E0ZGY1Mjg4
ZmIuLmQyZjNkNThhZTEwMjU3N2QzMmU1ZTdhODRjNjRhZGNhMjQ0NTczNjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtQnVpbGRlci5o
CkBAIC00OCw3ICs0OCw2IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBhZGQoY29uc3Qg
Y2hhciosIHVuc2lnbmVkKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0IGNo
YXIqLCBjb25zdCBTdHJpbmcmKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0
IGNoYXIqLCBjb25zdCBWZWN0b3I8dWludDhfdD4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgYWRkKGNvbnN0IGNoYXIqLCBjb25zdCBDcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxk
ZXImKSBPVkVSUklERTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnkuY3BwCmluZGV4IGQ5YjM1
NGY0MDljOGFkMDliMDJkYWNmMzMyYzUxOWY2YTJmZjBkYWUuLjUwOWY1Y2JmOGVkYmZlYzFiMjdh
M2VlOTIwYjE2NDZiZTI0YjllZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5LmNwcApAQCAtMzMsOSArMzMs
NiBAQAogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMuaCIKICNpbmNsdWRl
ICJDcnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
UmVnaXN0cnkuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIK
LSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMuaCIKLSNpbmNsdWRlICJD
cnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJhbXMuaCIKICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgi
CiAjaW5jbHVkZSAiSlNDcnlwdG9PcGVyYXRpb25EYXRhLmgiCiAjaW5jbHVkZSAiSlNET01CaW5k
aW5nLmgiCkBAIC0xMTksNyArMTE2LDcgQEAgc3RhdGljIGJvb2wgZ2V0SGFzaEFsZ29yaXRobShK
U0RpY3Rpb25hcnkmIGRpY3Rpb25hcnksIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIKICAgICBy
ZXR1cm4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpnZXRBbGdvcml0aG1JZGVudGlmaWVy
KGV4ZWMsIGhhc2gsIHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNTdGF0ZSogZXhlYywg
SlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1zKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIHRo
cm93VHlwZUVycm9yKGV4ZWMpOwpAQCAtMTQ4LDcgKzE0NSw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzQ2JjUGFyYW1zKEV4ZWNT
dGF0ZSoKICAgICByZXR1cm4gc3RkOjptb3ZlKHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBzdGQ6OnVu
aXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5R2VuUGFyYW1z
KEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSB2YWx1ZSkKK3N0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3JlYXRlQWVzS2V5R2VuUGFyYW1zKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09i
amVjdCgpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMpOwpAQCAtMTY2LDcgKzE2Myw3
IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3Jl
YXRlQWVzS2V5R2VuUGFyYW1zKEV4ZWNTdGF0CiAgICAgcmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQp
OwogfQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IGNyZWF0ZUhtYWNQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQorc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVIbWFjUGFy
YW1zKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYg
KCF2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMpOwpAQCAt
MTg0LDcgKzE4MSw3IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlSG1hY1BhcmFtcyhFeGVjU3RhdGUqIGV4CiAgICAgcmV0dXJuIHN0ZDo6
bW92ZShyZXN1bHQpOwogfQogCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHZhbHVlKQorc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBjcmVhdGVIbWFjS2V5UGFyYW1zKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUg
dmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKSB7CiAgICAgICAgIHRocm93VHlw
ZUVycm9yKGV4ZWMpOwpAQCAtMjA2LDYzICsyMDMsNyBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IGNyZWF0ZUhtYWNLZXlQYXJhbXMoRXhlY1N0YXRl
KgogICAgIHJldHVybiBzdGQ6Om1vdmUocmVzdWx0KTsKIH0KIAotc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FLZXlHZW5QYXJhbXMoRXhl
Y1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICghdmFsdWUuaXNPYmplY3Qo
KSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgfQotCi0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPENyeXB0b0Fs
Z29yaXRobVJzYUtleUdlblBhcmFtcz4oKTsKLQotICAgIEpTVmFsdWUgbW9kdWx1c0xlbmd0aFZh
bHVlID0gZ2V0UHJvcGVydHkoZXhlYywgdmFsdWUuZ2V0T2JqZWN0KCksICJtb2R1bHVzTGVuZ3Ro
Iik7Ci0gICAgaWYgKGV4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQotICAgIC8vIEZJWE1FOiBXaHkgbm8gRW5mb3JjZVJhbmdlPyBGaWxlZCBhcyA8aHR0cHM6
Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3dfYnVnLmNnaT9pZD0yMzc3OT4uCi0gICAgcmVz
dWx0LT5tb2R1bHVzTGVuZ3RoID0gdG9VSW50MzIoZXhlYywgbW9kdWx1c0xlbmd0aFZhbHVlLCBO
b3JtYWxDb252ZXJzaW9uKTsKLSAgICBpZiAoZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCi0gICAgSlNWYWx1ZSBwdWJsaWNFeHBvbmVudFZhbHVlID0gZ2V0
UHJvcGVydHkoZXhlYywgdmFsdWUuZ2V0T2JqZWN0KCksICJwdWJsaWNFeHBvbmVudCIpOwotICAg
IGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBSZWZQdHI8VWludDhBcnJheT4gcHVibGljRXhwb25lbnRBcnJheSA9IHRvVWludDhBcnJheShw
dWJsaWNFeHBvbmVudFZhbHVlKTsKLSAgICBpZiAoIXB1YmxpY0V4cG9uZW50QXJyYXkpIHsKLSAg
ICAgICAgdGhyb3dUeXBlRXJyb3IoZXhlYywgIkV4cGVjdGVkIGEgVWludDhBcnJheSBpbiBwdWJs
aWNFeHBvbmVudCIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgcmVzdWx0
LT5wdWJsaWNFeHBvbmVudC5hcHBlbmQocHVibGljRXhwb25lbnRBcnJheS0+ZGF0YSgpLCBwdWJs
aWNFeHBvbmVudEFycmF5LT5ieXRlTGVuZ3RoKCkpOwotCi0gICAgcmV0dXJuIHN0ZDo6bW92ZShy
ZXN1bHQpOwotfQotCi1zdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFt
ZXRlcnM+IGNyZWF0ZVJzYVNzYUtleVBhcmFtcyhFeGVjU3RhdGUqLCBKU1ZhbHVlKQotewotICAg
IC8vIFdlYkNyeXB0byBSU0FTU0EtUEtDUzEtdjFfNSBhbGdvcml0aG0gY3VycmVudGx5IGRvZXMg
bm90IHRha2UgYW55IHBhcmFtZXRlcnMgdG8gaW1wb3J0S2V5LgotICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcz4oKTsKLX0KLQotc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBjcmVhdGVSc2FTc2FQ
YXJhbXMoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmICghdmFsdWUu
aXNPYmplY3QoKSkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAgSlNEaWN0aW9uYXJ5IGpzRGljdGlvbmFyeShleGVj
LCB2YWx1ZS5nZXRPYmplY3QoKSk7Ci0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVl
PENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcz4oKTsKLQotICAgIGlmICghZ2V0SGFzaEFsZ29y
aXRobShqc0RpY3Rpb25hcnksIHJlc3VsdC0+aGFzaCkpIHsKLSAgICAgICAgQVNTRVJUKGV4ZWMt
PmhhZEV4Y2VwdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHN0ZDo6bW92ZShyZXN1bHQpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxn
b3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJh
bWV0ZXJzRm9yRW5jcnlwdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1l
dGVyc0ZvckVuY3J5cHQoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChhbGdv
cml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1Mx
X3YxXzU6CkBAIC0yOTQsNyArMjM1LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGEKICAgICB9
CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZWNyeXB0KEV4ZWNTdGF0
ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUgdmFs
dWUpCitzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9B
bGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yRGVjcnlwdChKU0M6OkV4ZWNT
dGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNW
YWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKQEAgLTMyNiwxNCArMjY3LDEx
IEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0Fs
Z29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5Ojpj
cmVhdGVQYXJhbWV0ZXJzRm9yU2lnbihFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlxdWVfcHRyPENyeXB0
b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRl
UGFyYW1ldGVyc0ZvclNpZ24oSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7CiAgICAgc3dpdGNoIChh
bGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BL
Q1MxX3YxXzU6Ci0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBOT1RfU1VQUE9SVEVEX0VS
Uik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UlNBU1NBX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBjcmVhdGVSc2FTc2FQ
YXJhbXMoZXhlYywgdmFsdWUpOwogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBX1BTUzoKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNEU0E6CkBAIC0zNjEsMTQgKzI5
OSwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlw
dG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlIHZhbHVlKQorc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvclZlcmlmeShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBz
d2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNToKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQ
T1JURURfRVJSKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGNyZWF0
ZVJzYVNzYVBhcmFtcyhleGVjLCB2YWx1ZSk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FfUFNTOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
X09BRVA6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKQEAgLTM5
Niw3ICszMzEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChFeGVjU3RhdGUqIGV4ZWMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckRpZ2VzdChKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBzd2l0Y2gg
KGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNf
UEtDUzFfdjFfNToKQEAgLTQyOCwxNCArMzYzLDEzIEBAIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBh
CiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0ZXJzRm9yR2VuZXJhdGVL
ZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwg
SlNWYWx1ZSB2YWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
PiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JHZW5lcmF0
ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0sIEpTQzo6SlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBzd2l0Y2ggKGFsZ29yaXRobSkgewog
ICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNToKICAg
ICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OgogICAg
IGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzoKICAgICBjYXNlIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOgotICAgICAgICByZXR1cm4gY3JlYXRlUnNh
S2V5R2VuUGFyYW1zKGV4ZWMsIHZhbHVlKTsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkVDRFNBOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESDoK
ICAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIE5PVF9TVVBQT1JURURfRVJSKTsKQEAgLTQ2
Miw3ICszOTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4g
SlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGlj
dGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShFeGVjU3RhdGUqIGV4ZWMsIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFy
eTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2ZUtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBz
d2l0Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBRVNfUEtDUzFfdjFfNToKQEAgLTQ5MSw3ICs0MjUsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5
cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVh
dGVQYQogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRl
cnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckRlcml2
ZUJpdHMoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRo
bSwgSlNWYWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBK
U0NyeXB0b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JEZXJpdmVCaXRz
KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRo
bSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNTIwLDEzICs0
NTQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5
cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGEKICAgICB9CiB9CiAKLXN0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoRXhlY1N0YXRlKiBleGVjLCBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNWYWx1ZSB2YWx1ZSkKK3N0ZDo6dW5pcXVl
X3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRobURpY3Rpb25h
cnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JJbXBvcnRLZXkoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU0M6OkpTVmFsdWUgdmFsdWUpCiB7
CiAgICAgc3dpdGNoIChhbGdvcml0aG0pIHsKICAgICBjYXNlIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU6Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+KCk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNToKLSAgICAgICAgcmV0dXJuIGNyZWF0ZVJzYVNz
YUtleVBhcmFtcyhleGVjLCB2YWx1ZSk7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FfUFNTOgogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09B
RVA6CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQToKQEAgLTU1NCw3
ICs0ODYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gSlND
cnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYQogICAgIH0KIH0KIAotc3RkOjp1bmlx
dWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlv
bmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShFeGVjU3RhdGUqIGV4ZWMsIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtLCBKU1ZhbHVlKQorc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6
Y3JlYXRlUGFyYW1ldGVyc0ZvckV4cG9ydEtleShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0sIEpTQzo6SlNWYWx1ZSkKIHsKICAgICBzd2l0
Y2ggKGFsZ29yaXRobSkgewogICAgIGNhc2UgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
RVNfUEtDUzFfdjFfNToKQEAgLTU4NCw3ICs1MTYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQ
YQogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+
IEpTQ3J5cHRvQWxnb3JpdGhtRGljdGlvbmFyeTo6Y3JlYXRlUGFyYW1ldGVyc0ZvcldyYXBLZXko
RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNW
YWx1ZSkKK3N0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0
b0FsZ29yaXRobURpY3Rpb25hcnk6OmNyZWF0ZVBhcmFtZXRlcnNGb3JXcmFwS2V5KEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgSlNDOjpK
U1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGhtKSB7CiAgICAgY2FzZSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81OgpAQCAtNjEzLDcgKzU0NSw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzPiBKU0NyeXB0b0FsZ29yaXRo
bURpY3Rpb25hcnk6OmNyZWF0ZVBhCiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
QWxnb3JpdGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQ
YXJhbWV0ZXJzRm9yVW53cmFwS2V5KEV4ZWNTdGF0ZSogZXhlYywgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBhbGdvcml0aG0sIEpTVmFsdWUpCitzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3Jp
dGhtUGFyYW1ldGVycz4gSlNDcnlwdG9BbGdvcml0aG1EaWN0aW9uYXJ5OjpjcmVhdGVQYXJhbWV0
ZXJzRm9yVW53cmFwS2V5KEpTQzo6RXhlY1N0YXRlKiBleGVjLCBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGFsZ29yaXRobSwgSlNDOjpKU1ZhbHVlKQogewogICAgIHN3aXRjaCAoYWxnb3JpdGht
KSB7CiAgICAgY2FzZSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NTMV92MV81
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJp
YWxpemF0aW9uSldLLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRvS2V5
U2VyaWFsaXphdGlvbkpXSy5jcHAKaW5kZXggMDIyNjkyNTA2ZDI2ZTRkZWM4YTdhMTQ2YzU4YzJl
ZGE4ODQzNzY0Ni4uN2RiZTQ4OTFjZGVkZGUyMDMzZGFlNDEyZjFlMmQyZjYwY2Q0NTc2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDcnlwdG9LZXlTZXJpYWxpemF0
aW9uSldLLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0suY3BwCkBAIC0zMSw5ICszMSw3IEBACiAjaW5jbHVkZSAiQ3J5cHRvQWxn
b3JpdGhtLmgiCiAjaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcy5oIgogI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmgiCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGht
UnNhU3NhS2V5UGFyYW1zLmgiCiAjaW5jbHVkZSAiQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Uu
aCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oIgogI2luY2x1ZGUgIkV4
Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlIDxoZWFw
L1N0cm9uZ0lubGluZXMuaD4KQEAgLTQ0LDI2ICs0Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGJvb2wgZ2V0SlNBcnJheUZyb21KU09O
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgSlNBcnJh
eSomIHJlc3VsdCkKLXsKLSAgICBJZGVudGlmaWVyIGlkZW50aWZpZXIoZXhlYywga2V5KTsKLSAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdChqc29uKTsKLQotICAgIGlmICghanNvbi0+Z2V0UHJvcGVydHlT
bG90KGV4ZWMsIGlkZW50aWZpZXIsIHNsb3QpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBKU1ZhbHVlIHZhbHVlID0gc2xvdC5nZXRWYWx1ZShleGVjLCBpZGVudGlmaWVyKTsKLSAgICBB
U1NFUlQoIWV4ZWMtPmhhZEV4Y2VwdGlvbigpKTsKLSAgICBpZiAoaXNKU0FycmF5KHZhbHVlKSkg
ewotICAgICAgICB0aHJvd1R5cGVFcnJvcihleGVjLCBTdHJpbmc6OmZvcm1hdCgiRXhwZWN0ZWQg
YW4gYXJyYXkgZm9yIFwiJXNcIiBKU09OIGtleSIsICBrZXkpKTsKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIH0KLQotICAgIHJlc3VsdCA9IGFzQXJyYXkodmFsdWUpOwotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KIHN0YXRpYyBib29sIGdldFN0cmluZ0Zyb21KU09OKEV4ZWNTdGF0ZSogZXhl
YywgSlNPYmplY3QqIGpzb24sIGNvbnN0IGNoYXIqIGtleSwgU3RyaW5nJiByZXN1bHQpCiB7CiAg
ICAgSWRlbnRpZmllciBpZGVudGlmaWVyKGV4ZWMsIGtleSk7CkBAIC0xMDQsMjUgKzgyLDYgQEAg
c3RhdGljIGJvb2wgZ2V0Qm9vbGVhbkZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGpzb24sIGNvbnN0IGNoYXIqIGtleSwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJv
b2wgZ2V0QmlnSW50ZWdlclZlY3RvckZyb21KU09OKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IGpzb24sIGNvbnN0IGNoYXIqIGtleSwgVmVjdG9yPGNoYXI+JiByZXN1bHQpCi17Ci0gICAgU3Ry
aW5nIGJhc2U2NHVybEVuY29kZWROdW1iZXI7Ci0gICAgaWYgKCFnZXRTdHJpbmdGcm9tSlNPTihl
eGVjLCBqc29uLCBrZXksIGJhc2U2NHVybEVuY29kZWROdW1iZXIpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoIWJhc2U2NFVSTERlY29kZShiYXNlNjR1cmxFbmNvZGVkTnVtYmVy
LCByZXN1bHQpKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsICJDYW5ub3QgZGVjb2Rl
IGJhc2U2NHVybCBrZXkgZGF0YSBpbiBKV0siKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IH0KLQotICAgIGlmIChyZXN1bHRbMF0gPT0gMCkgewotICAgICAgICB0aHJvd1R5cGVFcnJvcihl
eGVjLCAiSldLIEJpZ0ludGVnZXIgbXVzdCB1dGlsaXplIHRoZSBtaW5pbXVtIG51bWJlciBvZiBv
Y3RldHMgdG8gcmVwcmVzZW50IHRoZSB2YWx1ZSIpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpX
Szo6SlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgU3Ry
aW5nJiBqc29uU3RyaW5nKQogICAgIDogbV9leGVjKGV4ZWMpCiB7CkBAIC0xNDksMTUgKzEwOCw2
IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycz4gY3Jl
YXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnCiAgICAgcmV0dXJuIHN0ZDo6bW92ZShobWFjUGFy
YW1ldGVycyk7CiB9CiAKLXN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycz4gY3JlYXRlUlNBU1NBS2V5UGFyYW1ldGVycyhDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGhhc2hGdW5jdGlvbikKLXsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvQWxnb3JpdGht
UnNhU3NhS2V5UGFyYW1zPiByc2FTU0FQYXJhbWV0ZXJzID0gc3RkOjptYWtlX3VuaXF1ZTxDcnlw
dG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXM+KCk7Ci0gICAgcnNhU1NBUGFyYW1ldGVycy0+aGFz
SGFzaCA9IHRydWU7Ci0gICAgcnNhU1NBUGFyYW1ldGVycy0+aGFzaCA9IGhhc2hGdW5jdGlvbjsK
LSAgICByZXR1cm4gc3RkOjptb3ZlKHJzYVNTQVBhcmFtZXRlcnMpOwotfQotCi0KIGJvb2wgSlND
cnlwdG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oc3RkOjp1bmlxdWVf
cHRyPENyeXB0b0FsZ29yaXRobT4mIHN1Z2dlc3RlZEFsZ29yaXRobSwgc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+JiBzdWdnZXN0ZWRQYXJhbWV0ZXJzKSBjb25zdAog
ewogICAgIGlmICghZ2V0U3RyaW5nRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJhbGci
LCBtX2p3a0FsZ29yaXRobU5hbWUpKSB7CkBAIC0xNzYsMTUgKzEyNiw2IEBAIGJvb2wgSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLOjpyZWNvbmNpbGVBbGdvcml0aG0oc3RkOjp1bmlxdWVfcHRy
PENyeXB0b0FsZ29yCiAgICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkhTNTEy
IikgewogICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVk
KCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpOwogICAgICAgICBwYXJh
bWV0ZXJzID0gY3JlYXRlSE1BQ1BhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzUxMik7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIlJTMjU2Iikg
ewotICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCku
Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsKLSAg
ICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQVNTQUtleVBhcmFtZXRlcnMoQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzI1Nik7Ci0gICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5h
bWUgPT0gIlJTMzg0IikgewotICAgICAgICBhbGdvcml0aG0gPSBDcnlwdG9BbGdvcml0aG1SZWdp
c3RyeTo6c2hhcmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9Q
S0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJTQVNTQUtleVBhcmFtZXRl
cnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NCk7Ci0gICAgfSBlbHNlIGlmICht
X2p3a0FsZ29yaXRobU5hbWUgPT0gIlJTNTEyIikgewotICAgICAgICBhbGdvcml0aG0gPSBDcnlw
dG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkuY3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81KTsKLSAgICAgICAgcGFyYW1ldGVycyA9IGNyZWF0ZVJT
QVNTQUtleVBhcmFtZXRlcnMoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMik7CiAg
ICAgfSBlbHNlIGlmIChtX2p3a0FsZ29yaXRobU5hbWUgPT0gIkExMjhDQkMiKSB7CiAgICAgICAg
IGFsZ29yaXRobSA9IENyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5OjpzaGFyZWQoKS5jcmVhdGUoQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQyk7CiAgICAgICAgIHBhcmFtZXRlcnMgPSBz
dGQ6Om1ha2VfdW5pcXVlPENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnM+KCk7CkBAIC0yMTEsMjAg
KzE1MiwxMSBAQCBib29sIEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6cmVjb25jaWxlQWxn
b3JpdGhtKHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcgogICAgIGlmIChhbGdvcml0aG0tPmlk
ZW50aWZpZXIoKSAhPSBzdWdnZXN0ZWRBbGdvcml0aG0tPmlkZW50aWZpZXIoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKGFsZ29yaXRobS0+aWRlbnRpZmllcigpID09IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUMpCi0gICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
cnlwdG9BbGdvcml0aG1IbWFjUGFyYW1zJj4oKnBhcmFtZXRlcnMpLmhhc2ggPT0gc3RhdGljX2Nh
c3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKS5oYXNo
OwotICAgIGlmIChhbGdvcml0aG0tPmlkZW50aWZpZXIoKSA9PSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSkgewotICAgICAgICBDcnlwdG9BbGdvcml0aG1Sc2FT
c2FLZXlQYXJhbXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxDcnlwdG9BbGdvcml0
aG1Sc2FTc2FLZXlQYXJhbXMmPigqcGFyYW1ldGVycyk7Ci0gICAgICAgIENyeXB0b0FsZ29yaXRo
bVJzYVNzYUtleVBhcmFtcyYgc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0
PENyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcyY+KCpzdWdnZXN0ZWRQYXJhbWV0ZXJzKTsK
LSAgICAgICAgQVNTRVJUKHJzYVNTQVBhcmFtZXRlcnMuaGFzSGFzaCk7Ci0gICAgICAgIGlmIChz
dWdnZXN0ZWRSU0FTU0FQYXJhbWV0ZXJzLmhhc0hhc2gpCi0gICAgICAgICAgICByZXR1cm4gc3Vn
Z2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNoID09IHJzYVNTQVBhcmFtZXRlcnMuaGFzaDsKLSAg
ICAgICAgc3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNIYXNoID0gdHJ1ZTsKLSAgICAgICAg
c3VnZ2VzdGVkUlNBU1NBUGFyYW1ldGVycy5oYXNoID0gcnNhU1NBUGFyYW1ldGVycy5oYXNoOwot
ICAgIH0KKyAgICAvLyBITUFDIGlzIHRoZSBvbmx5IGFsZ29yaXRobSB0aGF0IGhhcyBwYXJhbWV0
ZXJzIGluIGltcG9ydEtleS4KKyAgICBpZiAoYWxnb3JpdGhtLT5pZGVudGlmaWVyKCkgIT0gQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQykKKyAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICAvLyBPdGhlciBhbGdvcml0aG1zIGRvbid0IGhhdmUgcGFyYW1ldGVycy4KLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Q3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+
KCpwYXJhbWV0ZXJzKS5oYXNoID09IHN0YXRpY19jYXN0PENyeXB0b0FsZ29yaXRobUhtYWNQYXJh
bXMmPigqc3VnZ2VzdGVkUGFyYW1ldGVycykuaGFzaDsKIH0KIAogdm9pZCBKU0NyeXB0b0tleVNl
cmlhbGl6YXRpb25KV0s6OnJlY29uY2lsZVVzYWdlcyhDcnlwdG9LZXlVc2FnZSYgc3VnZ2VzdGVk
VXNhZ2UpIGNvbnN0CkBAIC0yNzUsOCArMjA3LDIwIEBAIGJvb2wgSlNDcnlwdG9LZXlTZXJpYWxp
emF0aW9uSldLOjprZXlTaXplSXNWYWxpZChzaXplX3Qgc2l6ZUluQml0cykgY29uc3QKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5RGF0YU9jdGV0U2VxdWVuY2UoKSBjb25zdAorc3RkOjp1
bmlxdWVfcHRyPENyeXB0b0tleURhdGE+IEpTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSzo6a2V5
RGF0YSgpIGNvbnN0CiB7CisgICAgU3RyaW5nIGp3a0tleVR5cGU7CisgICAgaWYgKCFnZXRTdHJp
bmdGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImt0eSIsIGp3a0tleVR5cGUpKSB7Cisg
ICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIHRocm93VHlw
ZUVycm9yKG1fZXhlYywgIlJlcXVpcmVkIEpXSyBcImt0eVwiIG1lbWJlciBpcyBtaXNzaW5nIik7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChqd2tLZXlUeXBlICE9
ICJvY3QiKSB7CisgICAgICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIlVuc3VwcG9ydGVkIEpX
SyBrZXkgdHlwZSAiICsgandrS2V5VHlwZSk7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKwogICAgIFN0cmluZyBrZXlCYXNlNjRVUkw7CiAgICAgaWYgKCFnZXRTdHJpbmdGcm9tSlNP
TihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImsiLCBrZXlCYXNlNjRVUkwpKSB7CiAgICAgICAgIGlm
ICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKQEAgLTI5OCwxMTkgKzI0Miw2IEBAIHN0ZDo6dW5p
cXVlX3B0cjxDcnlwdG9LZXlEYXRhPiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURh
dGFPY3RldFNlcXVlbmNlCiAgICAgcmV0dXJuIENyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlOjpj
cmVhdGUob2N0ZXRTZXF1ZW5jZSk7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRh
PiBKU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0s6OmtleURhdGFSU0FDb21wb25lbnRzKCkgY29u
c3QKLXsKLSAgICBWZWN0b3I8Y2hhcj4gbW9kdWx1czsKLSAgICBWZWN0b3I8Y2hhcj4gZXhwb25l
bnQ7Ci0gICAgVmVjdG9yPGNoYXI+IHByaXZhdGVFeHBvbmVudDsKLQotICAgIGlmICghZ2V0Qmln
SW50ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAibiIsIG1vZHVsdXMp
KSB7Ci0gICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHRo
cm93VHlwZUVycm9yKG1fZXhlYywgIlJlcXVpcmVkIEpXSyBcIm5cIiBtZW1iZXIgaXMgbWlzc2lu
ZyIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0lu
dGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImUiLCBleHBvbmVudCkp
IHsKLSAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgdGhy
b3dUeXBlRXJyb3IobV9leGVjLCAiUmVxdWlyZWQgSldLIFwiZVwiIG1lbWJlciBpcyBtaXNzaW5n
Iik7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIGlmICghZ2V0QmlnSW50
ZWdlclZlY3RvckZyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgpLCAiZCIsIG1vZHVsdXMpKSB7
Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3Jl
YXRlUHVibGljKG1vZHVsdXMsIGV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50czo6UHJpbWVJbmZvIGZpcnN0UHJpbWVJbmZvOwotICAgIENyeXB0b0tleURh
dGFSU0FDb21wb25lbnRzOjpQcmltZUluZm8gc2Vjb25kUHJpbWVJbmZvOwotICAgIFZlY3RvcjxD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6UHJpbWVJbmZvPiBvdGhlclByaW1lSW5mb3M7Ci0g
ICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCks
ICJwIiwgZmlyc3RQcmltZUluZm8ucHJpbWVGYWN0b3IpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMt
PmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJl
dHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBl
eHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVn
ZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgImRwIiwgZmlyc3RQcmltZUlu
Zm8uZmFjdG9yQ1JURXhwb25lbnQpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDcnlwdG9L
ZXlEYXRhUlNBQ29tcG9uZW50czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBvbmVudCwgcHJp
dmF0ZUV4cG9uZW50KTsKLSAgICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JGcm9t
SlNPTihtX2V4ZWMsIG1fanNvbi5nZXQoKSwgInEiLCBzZWNvbmRQcmltZUluZm8ucHJpbWVGYWN0
b3IpKSB7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
czo6Y3JlYXRlUHJpdmF0ZShtb2R1bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KTsKLSAg
ICB9Ci0KLSAgICBpZiAoIWdldEJpZ0ludGVnZXJWZWN0b3JGcm9tSlNPTihtX2V4ZWMsIG1fanNv
bi5nZXQoKSwgImRxIiwgc2Vjb25kUHJpbWVJbmZvLmZhY3RvckNSVEV4cG9uZW50KSkgewotICAg
ICAgICBpZiAobV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICByZXR1cm4gQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OmNyZWF0ZVBy
aXZhdGUobW9kdWx1cywgZXhwb25lbnQsIHByaXZhdGVFeHBvbmVudCk7Ci0gICAgfQotCi0gICAg
aWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04obV9leGVjLCBtX2pzb24uZ2V0KCksICJx
aSIsIHNlY29uZFByaW1lSW5mby5mYWN0b3JDUlRDb2VmZmljaWVudCkpIHsKLSAgICAgICAgaWYg
KG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAg
ICAgICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2YXRlKG1v
ZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQpOwotICAgIH0KLQotICAgIEpTQXJyYXkq
IG90aGVyUHJpbWVJbmZvSlNBcnJheTsKLSAgICBpZiAoIWdldEpTQXJyYXlGcm9tSlNPTihtX2V4
ZWMsIG1fanNvbi5nZXQoKSwgIm90aCIsIG90aGVyUHJpbWVJbmZvSlNBcnJheSkpIHsKLSAgICAg
ICAgaWYgKG1fZXhlYy0+aGFkRXhjZXB0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLSAgICAgICAgcmV0dXJuIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpjcmVhdGVQcml2
YXRlV2l0aEFkZGl0aW9uYWxEYXRhKG1vZHVsdXMsIGV4cG9uZW50LCBwcml2YXRlRXhwb25lbnQs
IGZpcnN0UHJpbWVJbmZvLCBzZWNvbmRQcmltZUluZm8sIG90aGVyUHJpbWVJbmZvcyk7Ci0gICAg
fQotCi0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlclByaW1lSW5mb0pTQXJyYXktPmxl
bmd0aCgpOyArK2kpIHsKLSAgICAgICAgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHM6OlByaW1l
SW5mbyBpbmZvOwotICAgICAgICBKU1ZhbHVlIGVsZW1lbnQgPSBvdGhlclByaW1lSW5mb0pTQXJy
YXktPmdldEluZGV4KG1fZXhlYywgaSk7Ci0gICAgICAgIGlmIChtX2V4ZWMtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGlmICghZWxlbWVudC5p
c09iamVjdCgpKSB7Ci0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsICJKV0sgXCJv
dGhcIiBhcnJheSBtZW1iZXIgaXMgbm90IGFuIG9iamVjdCIpOwotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJv
bUpTT04obV9leGVjLCBhc09iamVjdChlbGVtZW50KSwgInIiLCBpbmZvLnByaW1lRmFjdG9yKSkg
ewotICAgICAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
ICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIkNhbm5vdCBnZXQgcHJpbWUgZmFjdG9yIGZvciBh
IHByaW1lIGluIFwib3RoXCIgZGljdGlvbmFyeSIpOwotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFnZXRCaWdJbnRlZ2VyVmVjdG9yRnJvbUpTT04o
bV9leGVjLCBhc09iamVjdChlbGVtZW50KSwgImQiLCBpbmZvLmZhY3RvckNSVEV4cG9uZW50KSkg
ewotICAgICAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAg
ICAgIHRocm93VHlwZUVycm9yKG1fZXhlYywgIkNhbm5vdCBnZXQgZmFjdG9yIENSVCBleHBvbmVu
dCBmb3IgYSBwcmltZSBpbiBcIm90aFwiIGRpY3Rpb25hcnkiKTsKLSAgICAgICAgICAgIHJldHVy
biBudWxscHRyOwotICAgICAgICB9Ci0gICAgICAgIGlmICghZ2V0QmlnSW50ZWdlclZlY3RvckZy
b21KU09OKG1fZXhlYywgYXNPYmplY3QoZWxlbWVudCksICJ0IiwgaW5mby5mYWN0b3JDUlRDb2Vm
ZmljaWVudCkpIHsKLSAgICAgICAgICAgIGlmICghbV9leGVjLT5oYWRFeGNlcHRpb24oKSkKLSAg
ICAgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcihtX2V4ZWMsICJDYW5ub3QgZ2V0IGZhY3RvciBD
UlQgY29lZmZpY2llbnQgZm9yIGEgcHJpbWUgaW4gXCJvdGhcIiBkaWN0aW9uYXJ5Iik7Ci0gICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQotICAgICAgICBvdGhlclByaW1lSW5m
b3MuYXBwZW5kKGluZm8pOwotICAgIH0KLQotICAgIHJldHVybiBDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50czo6Y3JlYXRlUHJpdmF0ZVdpdGhBZGRpdGlvbmFsRGF0YShtb2R1bHVzLCBleHBvbmVu
dCwgcHJpdmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vjb25kUHJpbWVJbmZvLCBvdGhl
clByaW1lSW5mb3MpOwotfQotCi1zdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4gSlNDcnlw
dG9LZXlTZXJpYWxpemF0aW9uSldLOjprZXlEYXRhKCkgY29uc3QKLXsKLSAgICBTdHJpbmcgandr
S2V5VHlwZTsKLSAgICBpZiAoIWdldFN0cmluZ0Zyb21KU09OKG1fZXhlYywgbV9qc29uLmdldCgp
LCAia3R5IiwgandrS2V5VHlwZSkpIHsKLSAgICAgICAgaWYgKCFtX2V4ZWMtPmhhZEV4Y2VwdGlv
bigpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IobV9leGVjLCAiUmVxdWlyZWQgSldLIFwi
a3R5XCIgbWVtYmVyIGlzIG1pc3NpbmciKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
fQotCi0gICAgaWYgKGp3a0tleVR5cGUgPT0gIm9jdCIpCi0gICAgICAgIHJldHVybiBrZXlEYXRh
T2N0ZXRTZXF1ZW5jZSgpOwotCi0gICAgaWYgKGp3a0tleVR5cGUgPT0gIlJTQSIpCi0gICAgICAg
IHJldHVybiBrZXlEYXRhUlNBQ29tcG9uZW50cygpOwotCi0gICAgdGhyb3dUeXBlRXJyb3IobV9l
eGVjLCAiVW5zdXBwb3J0ZWQgSldLIGtleSB0eXBlICIgKyBqd2tLZXlUeXBlKTsKLSAgICByZXR1
cm4gbnVsbHB0cjsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKFNVQlRMRV9DUllQVE8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0NyeXB0b0tleVNlcmlhbGl6YXRpb25KV0suaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCmluZGV4IGFkMDUxNzAwNWMxNmZiNmFm
NzVjOGZkODkyYTk2ZmNjYzRjZjZlMDUuLjVkNWU4MjA3NDJkOTNkNThjMzIyNzZmNTE5OTRmNWMw
YjViYmUxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3J5cHRv
S2V5U2VyaWFsaXphdGlvbkpXSy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3J5cHRvS2V5U2VyaWFsaXphdGlvbkpXSy5oCkBAIC02Myw4ICs2Myw2IEBAIHByaXZhdGU6CiAg
ICAgSlNDcnlwdG9LZXlTZXJpYWxpemF0aW9uSldLKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgU3Ry
aW5nJik7CiAKICAgICBib29sIGtleVNpemVJc1ZhbGlkKHNpemVfdCBzaXplSW5CaXRzKSBjb25z
dDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YU9jdGV0U2VxdWVu
Y2UoKSBjb25zdDsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YT4ga2V5RGF0YVJT
QUNvbXBvbmVudHMoKSBjb25zdDsKIAogICAgIEpTQzo6RXhlY1N0YXRlKiBtX2V4ZWM7CiAgICAg
SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4gbV9qc29uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL0NyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlci5oCmluZGV4
IGE3ZmUxNGJiMGM0OWE0NDYwNzkzMTEyM2FjODVhNGM0ZTM3ZWY4NTEuLjc3YWEyZTJhODJmMWIx
NDRlMTEyNmU1NjNhY2E2NWU4YjIyYThkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1EZXNjcmlwdGlvbkJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vQ3J5cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyLmgKQEAgLTI4LDcg
KzI4LDYgQEAKIAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNv
cHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiAjaWYgRU5BQkxFKFNVQlRMRV9D
UllQVE8pCiAKQEAgLTQ0LDcgKzQzLDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGFk
ZChjb25zdCBjaGFyKiwgdW5zaWduZWQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgYWRkKGNvbnN0
IGNoYXIqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGFkZChjb25zdCBj
aGFyKiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBhZGQo
Y29uc3QgY2hhciosIGNvbnN0IENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYpID0g
MDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA2MGEzMWM3NzM4Y2YxODA2MzRjMGQ1ZjRiMzMwNTdjNDIyOWE0MzgyLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNU1hYy5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSw0NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkNyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgiCi0KLSNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKLQotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpzaWdu
KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25z
dCBWZWN0b3I8Q3J5cHRvT3BlcmF0aW9uRGF0YT4mLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdy
YXBwZXI+LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJS
OwotfQotCi12b2lkIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojp2ZXJpZnkoY29u
c3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYsIGNvbnN0IENyeXB0b0tleSYsIGNvbnN0IENy
eXB0b09wZXJhdGlvbkRhdGEmIC8qc2lnbmF0dXJlKi8sIGNvbnN0IFZlY3RvcjxDcnlwdG9PcGVy
YXRpb25EYXRhPiYgLypkYXRhKi8sIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBlcj4sIEV4
Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGVjID0gTk9UX1NVUFBPUlRFRF9FUlI7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL0NyeXB0b0tleS5oCmluZGV4IDczNjJkYzc0YzNlNmJmYzA3MTMzYzNiMzI0
ZjRjZmZhNTI3ZGFjOGIuLmY2OThiYjNkYzRlYmZjNDAwY2ExMjIwOTFlNjk4ZDZiMDI5MjIxZmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vQ3J5cHRvS2V5LmgKQEAgLTQxLDggKzQxLDcgQEAgY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtRGVzY3JpcHRpb25CdWlsZGVyOwogCiBFTlVNX0NMQVNTKENyeXB0b0tleUNs
YXNzKSB7CiAgICAgSE1BQywKLSAgICBBRVMsCi0gICAgUlNBCisgICAgQUVTCiB9OwogCiBjbGFz
cyBDcnlwdG9LZXkgOiBwdWJsaWMgUmVmQ291bnRlZDxDcnlwdG9LZXk+IHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vQ3J5cHRvS2V5RGF0YS5oCmluZGV4IDU0MTA2YjNmNWVlZjc1OTgxMDBjNjFlYWYzMGMw
YWVjYTFkZGE4NWMuLjJlNTQ1MTIyNmY0ODE3MTU1YjVlNDgyN2FkY2ZlZDQwNzc4OGVlMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9DcnlwdG9LZXlEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL0NyeXB0b0tleURhdGEuaApAQCAtMzYsOCArMzYsNyBAQCBjbGFz
cyBDcnlwdG9LZXlEYXRhIHsKIFdURl9NQUtFX05PTkNPUFlBQkxFKENyeXB0b0tleURhdGEpOwog
cHVibGljOgogICAgIEVOVU1fQ0xBU1MoRm9ybWF0KSB7Ci0gICAgICAgIE9jdGV0U2VxdWVuY2Us
Ci0gICAgICAgIFJTQUNvbXBvbmVudHMKKyAgICAgICAgT2N0ZXRTZXF1ZW5jZQogICAgIH07CiAK
ICAgICBDcnlwdG9LZXlEYXRhKEZvcm1hdCBmb3JtYXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCmlu
ZGV4IDA4M2EzZmVmOWFlZTZlYjAxODdlNThjMTQ0NDY0OGZlYzg5NGZjZWMuLjI4MzZjYjdiNDZj
NjUyNzU1NDZlZTc3ZThkZGZhOWFjMjkwZWQ2NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCkBA
IC03NSw3ICs3NSw3IEBAIHZvaWQgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6aW1wb3J0S2V5KGNv
bnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmLCBjb25zdCBDCiAgICAgICAgIGVjID0gTk9U
X1NVUFBPUlRFRF9FUlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29uc3QgQ3J5cHRv
S2V5RGF0YU9jdGV0U2VxdWVuY2UmIGtleURhdGFPY3RldFNlcXVlbmNlID0gdG9DcnlwdG9LZXlE
YXRhT2N0ZXRTZXF1ZW5jZShrZXlEYXRhKTsKKyAgICBjb25zdCBDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZSYga2V5RGF0YU9jdGV0U2VxdWVuY2UgPSBhc0NyeXB0b0tleURhdGFPY3RldFNlcXVl
bmNlKGtleURhdGEpOwogICAgIFJlZlB0cjxDcnlwdG9LZXlBRVM+IHJlc3VsdCA9IENyeXB0b0tl
eUFFUzo6Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMsIGtleURhdGFP
Y3RldFNlcXVlbmNlLm9jdGV0U2VxdWVuY2UoKSwgZXh0cmFjdGFibGUsIHVzYWdlKTsKICAgICBw
cm9taXNlLT5mdWxmaWxsKHJlc3VsdC5yZWxlYXNlKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAppbmRl
eCAzYzFhMzhjNzdhNzY1NTY5ZmFhMWE4NGJiMmJlMDU0YjExNDQ1ZGFmLi5mMmVkMmNlMTZkMDM0
YjA0ZmFlZTY0N2JhOTY0YzU0NTc2ZWM3YjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmNwcApAQCAtNzYsNyAr
NzYsNyBAQCB2b2lkIENyeXB0b0FsZ29yaXRobUhNQUM6OmltcG9ydEtleShjb25zdCBDcnlwdG9B
bGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLAogICAgICAgICBlYyA9IE5PVF9TVVBQT1JU
RURfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0IENyeXB0b0tleURhdGFP
Y3RldFNlcXVlbmNlJiBrZXlEYXRhT2N0ZXRTZXF1ZW5jZSA9IHRvQ3J5cHRvS2V5RGF0YU9jdGV0
U2VxdWVuY2Uoa2V5RGF0YSk7CisgICAgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2Um
IGtleURhdGFPY3RldFNlcXVlbmNlID0gYXNDcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZShrZXlE
YXRhKTsKIAogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0
ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KHBhcmFt
ZXRlcnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5jcHAKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM4Yzk3N2ZiYzFlZGMyNTYyODU3ZmE3YjM4YmIxMjM5
NDE3MmZiNzguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsODUgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJDcnlw
dG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1S
c2FTc2FLZXlQYXJhbXMuaCIKLSNpbmNsdWRlICJDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5o
IgotI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNvbnN0IGNoYXIqIGNvbnN0IENyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81OjpzX25hbWUgPSAicnNhc3NhLXBrY3MxLXYxXzUiOwotCi1Dcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1Mx
X3YxXzUoKQotewotfQotCi1DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNTo6fkNyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81KCkKLXsKLX0KLQotc3RkOjp1bmlxdWVfcHRyPENy
eXB0b0FsZ29yaXRobT4gQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmNyZWF0ZSgp
Ci17Ci0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+KG5ldyBDcnlw
dG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSk7Ci19Ci0KLUNyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzU6OmlkZW50aWZpZXIoKSBjb25z
dAotewotICAgIHJldHVybiBzX2lkZW50aWZpZXI7Ci19Ci0KLXZvaWQgQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzU6OmltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXlEYXRhJiBrZXlEYXRhLCBib29sIGV4dHJh
Y3RhYmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSwgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFw
cGVyPiBwcm9taXNlLCBFeGNlcHRpb25Db2RlJikKLXsKLSAgICBjb25zdCBDcnlwdG9BbGdvcml0
aG1Sc2FTc2FLZXlQYXJhbXMmIHJzYVNTQVBhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBD
cnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMmPihwYXJhbWV0ZXJzKTsKLSAgICBjb25zdCBD
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgcnNhQ29tcG9uZW50cyA9IHRvQ3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHMoa2V5RGF0YSk7Ci0KLSAgICBSZWZQdHI8Q3J5cHRvS2V5UlNBPiByZXN1
bHQgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FT
U0FfUEtDUzFfdjFfNSwgcnNhQ29tcG9uZW50cywgZXh0cmFjdGFibGUsIHVzYWdlKTsKLSAgICBp
ZiAoIXJlc3VsdCkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QobnVsbHB0cik7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAocnNhU1NBUGFyYW1ldGVycy5oYXNIYXNoKQotICAg
ICAgICByZXN1bHQtPnJlc3RyaWN0VG9IYXNoKHJzYVNTQVBhcmFtZXRlcnMuaGFzaCk7Ci0KLSAg
ICBwcm9taXNlLT5mdWxmaWxsKHJlc3VsdC5yZWxlYXNlKCkpOwotfQotCi12b2lkIENyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81OjpnZW5lcmF0ZUtleShjb25zdCBDcnlwdG9BbGdvcml0
aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2Fn
ZSB1c2FnZXMsIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBlcj4gcHJvbWlzZSwgRXhjZXB0
aW9uQ29kZSYpCi17Ci0gICAgY29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zJiBy
c2FQYXJhbWV0ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2Vu
UGFyYW1zJj4ocGFyYW1ldGVycyk7Ci0KLSAgICBDcnlwdG9LZXlSU0E6OmdlbmVyYXRlUGFpcihD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0FfUEtDUzFfdjFfNSwgcnNhUGFyYW1ldGVy
cy5tb2R1bHVzTGVuZ3RoLCByc2FQYXJhbWV0ZXJzLnB1YmxpY0V4cG9uZW50LCBleHRyYWN0YWJs
ZSwgdXNhZ2VzLCBzdGQ6Om1vdmUocHJvbWlzZSkpOwotfQotCi19Ci0KLSNlbmRpZiAvLyBFTkFC
TEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyYzVkYThlOWM0YTc2MTU1YjZhMmFjNmFlZjhk
ODlmYWQwOTg1Y2YwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNT
QV9QS0NTMV92MV81LmgKKysrIC9kZXYvbnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNV9oCi0jZGVmaW5lIENy
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81X2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29y
aXRobS5oIgotCi0jaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgRklOQUwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogY29u
c3Qgc19uYW1lOwotICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81
OwotCi0gICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwotCi0gICAgdmlydHVhbCBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGlkZW50aWZpZXIoKSBj
b25zdCBPVkVSUklERTsKLQotICAgIHZpcnR1YWwgdm9pZCBzaWduKGNvbnN0IENyeXB0b0FsZ29y
aXRobVBhcmFtZXRlcnMmLCBjb25zdCBDcnlwdG9LZXkmLCBjb25zdCBWZWN0b3I8Q3J5cHRvT3Bl
cmF0aW9uRGF0YT4mLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNlcHRpb25D
b2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIHZlcmlmeShjb25zdCBDcnlwdG9BbGdv
cml0aG1QYXJhbWV0ZXJzJiwgY29uc3QgQ3J5cHRvS2V5JiwgY29uc3QgQ3J5cHRvT3BlcmF0aW9u
RGF0YSYgc2lnbmF0dXJlLCBjb25zdCBWZWN0b3I8Q3J5cHRvT3BlcmF0aW9uRGF0YT4mIGRhdGEs
IHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBlcj4sIEV4Y2VwdGlvbkNvZGUmKSBPVkVSUklE
RTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVLZXkoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFy
YW1ldGVycyYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBzdGQ6OnVuaXF1ZV9w
dHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0gICAgdmlydHVh
bCB2b2lkIGltcG9ydEtleShjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiwgY29uc3Qg
Q3J5cHRvS2V5RGF0YSYsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlLCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+LCBFeGNlcHRpb25Db2RlJikgT1ZFUlJJREU7Ci0KLXBy
aXZhdGU6Ci0gICAgQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUoKTsKLSAgICB2aXJ0
dWFsIH5DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSgpOwotfTsKLQotfQotCi0jZW5k
aWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5QUVTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMu
aAppbmRleCA5YWE0YjZiMzFlYWUwNjhlZmRlMjMyMDQ4ZjEzNmViZGFkZDYyMWQzLi5mNzc3NDdm
ZDY0NDdhMmQyNDI3ZTZiMzRmN2M2YTlmNzVlMmE3NWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlBRVMuaApAQCAtNTYsMjEgKzU2LDE4IEBAIHByaXZhdGU6CiAgICAg
VmVjdG9yPGNoYXI+IG1fa2V5OwogfTsKIAotaW5saW5lIGJvb2wgaXNDcnlwdG9LZXlBRVMoY29u
c3QgQ3J5cHRvS2V5JiBrZXkpCitpbmxpbmUgY29uc3QgQ3J5cHRvS2V5QUVTKiBhc0NyeXB0b0tl
eUFFUyhjb25zdCBDcnlwdG9LZXkmIGtleSkKIHsKLSAgICByZXR1cm4ga2V5LmtleUNsYXNzKCkg
PT0gQ3J5cHRvS2V5Q2xhc3M6OkFFUzsKKyAgICBpZiAoa2V5LmtleUNsYXNzKCkgIT0gQ3J5cHRv
S2V5Q2xhc3M6OkFFUykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGNvbnN0IENyeXB0b0tleUFFUyo+KCZrZXkpOwogfQogCi1pbmxpbmUgY29uc3QgQ3J5
cHRvS2V5QUVTJiB0b0NyeXB0b0tleUFFUyhjb25zdCBDcnlwdG9LZXkmIGtleSkKK2lubGluZSBD
cnlwdG9LZXlBRVMqIGFzQ3J5cHRvS2V5QUVTKENyeXB0b0tleSYga2V5KQogewotICAgIEFTU0VS
VF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKGlzQ3J5cHRvS2V5QUVTKGtleSkpOwotICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9LZXlBRVMmPihrZXkpOwotfQotCi1pbmxpbmUg
Q3J5cHRvS2V5QUVTJiB0b0NyeXB0b0tleUFFUyhDcnlwdG9LZXkmIGtleSkKLXsKLSAgICBBU1NF
UlRfV0lUSF9TRUNVUklUWV9JTVBMSUNBVElPTihpc0NyeXB0b0tleUFFUyhrZXkpKTsKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Q3J5cHRvS2V5QUVTJj4oa2V5KTsKKyAgICBpZiAoa2V5LmtleUNs
YXNzKCkgIT0gQ3J5cHRvS2V5Q2xhc3M6OkFFUykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PENyeXB0b0tleUFFUyo+KCZrZXkpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UuaAppbmRleCAyZjU1OWE2MDYyMmYyNTZjZTE3MWJm
YTc1NTExMTFmNzAwNGNhYTkwLi4wMzk2ZjRjZDU3MmYwN2JmNTBhMjliZWUzY2I2ZWNkNzNmNzhk
YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRh
T2N0ZXRTZXF1ZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eURhdGFPY3RldFNlcXVlbmNlLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0
b3I8Y2hhcj4gbV9rZXlEYXRhOwogfTsKIAotaW5saW5lIGNvbnN0IENyeXB0b0tleURhdGFPY3Rl
dFNlcXVlbmNlJiB0b0NyeXB0b0tleURhdGFPY3RldFNlcXVlbmNlKGNvbnN0IENyeXB0b0tleURh
dGEmIGRhdGEpCitpbmxpbmUgY29uc3QgQ3J5cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UmIGFzQ3J5
cHRvS2V5RGF0YU9jdGV0U2VxdWVuY2UoY29uc3QgQ3J5cHRvS2V5RGF0YSYgZGF0YSkKIHsKICAg
ICBBU1NFUlQoZGF0YS5mb3JtYXQoKSA9PSBDcnlwdG9LZXlEYXRhOjpGb3JtYXQ6Ok9jdGV0U2Vx
dWVuY2UpOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9LZXlEYXRhT2N0ZXRT
ZXF1ZW5jZSY+KGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMv
Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCA1ZDhkNTExNmU2YzhjMTY0M2EyYjhlMjViOWJmMThlZDI0MWY4NTBjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDcwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZ
UFRPKQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLUNyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
OjpDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMs
IGNvbnN0IFZlY3RvcjxjaGFyPiYgZXhwb25lbnQpCi0gICAgOiBDcnlwdG9LZXlEYXRhKENyeXB0
b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cykKLSAgICAsIG1fdHlwZShUeXBlOjpQdWJs
aWMpCi0gICAgLCBtX21vZHVsdXMobW9kdWx1cykKLSAgICAsIG1fZXhwb25lbnQoZXhwb25lbnQp
Ci17Ci19Ci0KLUNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjpDcnlwdG9LZXlEYXRhUlNBQ29t
cG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0IFZlY3RvcjxjaGFyPiYg
ZXhwb25lbnQsIGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpdmF0ZUV4cG9uZW50KQotICAgIDogQ3J5
cHRvS2V5RGF0YShDcnlwdG9LZXlEYXRhOjpGb3JtYXQ6OlJTQUNvbXBvbmVudHMpCi0gICAgLCBt
X3R5cGUoVHlwZTo6UHJpdmF0ZSkKLSAgICAsIG1fbW9kdWx1cyhtb2R1bHVzKQotICAgICwgbV9l
eHBvbmVudChleHBvbmVudCkKLSAgICAsIG1fcHJpdmF0ZUV4cG9uZW50KHByaXZhdGVFeHBvbmVu
dCkKLSAgICAsIG1faGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzKGZhbHNlKQotewot
fQotCi1DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMoY29uc3QgVmVjdG9yPGNoYXI+JiBtb2R1bHVzLCBjb25zdCBWZWN0b3I8Y2hhcj4mIGV4cG9u
ZW50LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHByaXZhdGVFeHBvbmVudCwgY29uc3QgUHJpbWVJbmZv
JiBmaXJzdFByaW1lSW5mbywgY29uc3QgUHJpbWVJbmZvJiBzZWNvbmRQcmltZUluZm8sIGNvbnN0
IFZlY3RvcjxQcmltZUluZm8+JiBvdGhlclByaW1lSW5mb3MpCi0gICAgOiBDcnlwdG9LZXlEYXRh
KENyeXB0b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cykKLSAgICAsIG1fdHlwZShUeXBl
OjpQcml2YXRlKQotICAgICwgbV9tb2R1bHVzKG1vZHVsdXMpCi0gICAgLCBtX2V4cG9uZW50KGV4
cG9uZW50KQotICAgICwgbV9wcml2YXRlRXhwb25lbnQocHJpdmF0ZUV4cG9uZW50KQotICAgICwg
bV9oYXNBZGRpdGlvbmFsUHJpdmF0ZUtleVBhcmFtZXRlcnModHJ1ZSkKLSAgICAsIG1fZmlyc3RQ
cmltZUluZm8oZmlyc3RQcmltZUluZm8pCi0gICAgLCBtX3NlY29uZFByaW1lSW5mbyhzZWNvbmRQ
cmltZUluZm8pCi0gICAgLCBtX290aGVyUHJpbWVJbmZvcyhvdGhlclByaW1lSW5mb3MpCi17Ci19
Ci0KLUNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzOjp+Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHMoKQotewotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUo
U1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleURhdGFSU0FDb21wb25lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9D
cnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cy5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAzNDdlMDhkMjYwY2JiY2FhOTA4YjBiZTBjMjkwNDc3OWJkNmZmNWI0Li4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgKKysrIC9kZXYvbnVsbApAQCAtMSwxMDcg
KzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0g
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
Ci0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
LSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0g
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHNf
aAotI2RlZmluZSBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50c19oCi0KLSNpbmNsdWRlICJDcnlw
dG9LZXlEYXRhLmgiCi0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotCi0jaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHMgRklOQUwgOiBwdWJsaWMgQ3J5cHRvS2V5RGF0YSB7Ci1wdWJsaWM6Ci0gICAg
RU5VTV9DTEFTUyhUeXBlKSB7Ci0gICAgICAgIFB1YmxpYywKLSAgICAgICAgUHJpdmF0ZQotICAg
IH07Ci0KLSAgICBzdHJ1Y3QgUHJpbWVJbmZvIHsKLSAgICAgICAgVmVjdG9yPGNoYXI+IHByaW1l
RmFjdG9yOwotICAgICAgICBWZWN0b3I8Y2hhcj4gZmFjdG9yQ1JURXhwb25lbnQ7Ci0gICAgICAg
IFZlY3RvcjxjaGFyPiBmYWN0b3JDUlRDb2VmZmljaWVudDsKLSAgICB9OwotCi0gICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4gY3JlYXRlUHVibGlj
KGNvbnN0IFZlY3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNoYXI+JiBleHBvbmVu
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhtb2R1bHVzLCBleHBv
bmVudCkpOwotICAgIH0KLQotICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0
YVJTQUNvbXBvbmVudHM+IGNyZWF0ZVByaXZhdGUoY29uc3QgVmVjdG9yPGNoYXI+JiBtb2R1bHVz
LCBjb25zdCBWZWN0b3I8Y2hhcj4mIGV4cG9uZW50LCBjb25zdCBWZWN0b3I8Y2hhcj4mIHByaXZh
dGVFeHBvbmVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRv
S2V5RGF0YVJTQUNvbXBvbmVudHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhtb2R1
bHVzLCBleHBvbmVudCwgcHJpdmF0ZUV4cG9uZW50KSk7Ci0gICAgfQotCi0gICAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cz4gY3JlYXRlUHJpdmF0ZVdp
dGhBZGRpdGlvbmFsRGF0YShjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rv
cjxjaGFyPiYgZXhwb25lbnQsIGNvbnN0IFZlY3RvcjxjaGFyPiYgcHJpdmF0ZUV4cG9uZW50LCBj
b25zdCBQcmltZUluZm8mIGZpcnN0UHJpbWVJbmZvLCBjb25zdCBQcmltZUluZm8mIHNlY29uZFBy
aW1lSW5mbywgY29uc3QgVmVjdG9yPFByaW1lSW5mbz4mIG90aGVyUHJpbWVJbmZvcykKLSAgICB7
Ci0gICAgICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVu
dHM+KG5ldyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyhtb2R1bHVzLCBleHBvbmVudCwgcHJp
dmF0ZUV4cG9uZW50LCBmaXJzdFByaW1lSW5mbywgc2Vjb25kUHJpbWVJbmZvLCBvdGhlclByaW1l
SW5mb3MpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cygpOwotCi0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9Ci0KLSAgICAv
LyBQcml2YXRlIGFuZCBwdWJsaWMga2V5cy4KLSAgICBjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVs
dXMoKSBjb25zdCB7IHJldHVybiBtX21vZHVsdXM7IH0KLSAgICBjb25zdCBWZWN0b3I8Y2hhcj4m
IGV4cG9uZW50KCkgY29uc3QgeyByZXR1cm4gbV9leHBvbmVudDsgfQotCi0gICAgLy8gT25seSBw
cml2YXRlIGtleXMuCi0gICAgY29uc3QgVmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25lbnQoKSBj
b25zdCB7IHJldHVybiBtX3ByaXZhdGVFeHBvbmVudDsgfQotICAgIGJvb2wgaGFzQWRkaXRpb25h
bFByaXZhdGVLZXlQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNBZGRpdGlvbmFsUHJp
dmF0ZUtleVBhcmFtZXRlcnM7IH0KLSAgICBjb25zdCBQcmltZUluZm8mIGZpcnN0UHJpbWVJbmZv
KCkgY29uc3QgeyByZXR1cm4gbV9maXJzdFByaW1lSW5mbzsgfQotICAgIGNvbnN0IFByaW1lSW5m
byYgc2Vjb25kUHJpbWVJbmZvKCkgY29uc3QgeyByZXR1cm4gbV9zZWNvbmRQcmltZUluZm87IH0K
LSAgICBjb25zdCBWZWN0b3I8UHJpbWVJbmZvPiYgb3RoZXJQcmltZUluZm9zKCkgY29uc3QgeyBy
ZXR1cm4gbV9vdGhlclByaW1lSW5mb3M7IH0KLQotcHJpdmF0ZToKLSAgICBDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50cyhjb25zdCBWZWN0b3I8Y2hhcj4mIG1vZHVsdXMsIGNvbnN0IFZlY3Rvcjxj
aGFyPiYgZXhwb25lbnQpOwotICAgIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzKGNvbnN0IFZl
Y3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNoYXI+JiBleHBvbmVudCwgY29uc3Qg
VmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25lbnQpOwotICAgIENyeXB0b0tleURhdGFSU0FDb21w
b25lbnRzKGNvbnN0IFZlY3RvcjxjaGFyPiYgbW9kdWx1cywgY29uc3QgVmVjdG9yPGNoYXI+JiBl
eHBvbmVudCwgY29uc3QgVmVjdG9yPGNoYXI+JiBwcml2YXRlRXhwb25lbnQsIGNvbnN0IFByaW1l
SW5mbyYgZmlyc3RQcmltZUluZm8sIGNvbnN0IFByaW1lSW5mbyYgc2Vjb25kUHJpbWVJbmZvLCBj
b25zdCBWZWN0b3I8UHJpbWVJbmZvPiYgb3RoZXJQcmltZUluZm9zKTsKLQotICAgIFR5cGUgbV90
eXBlOwotCi0gICAgLy8gUHJpdmF0ZSBhbmQgcHVibGljIGtleXMuCi0gICAgVmVjdG9yPGNoYXI+
IG1fbW9kdWx1czsKLSAgICBWZWN0b3I8Y2hhcj4gbV9leHBvbmVudDsKLQotICAgIC8vIE9ubHkg
cHJpdmF0ZSBrZXlzLgotICAgIFZlY3RvcjxjaGFyPiBtX3ByaXZhdGVFeHBvbmVudDsKLSAgICBi
b29sIG1faGFzQWRkaXRpb25hbFByaXZhdGVLZXlQYXJhbWV0ZXJzOwotICAgIFByaW1lSW5mbyBt
X2ZpcnN0UHJpbWVJbmZvOwotICAgIFByaW1lSW5mbyBtX3NlY29uZFByaW1lSW5mbzsKLSAgICBW
ZWN0b3I8UHJpbWVJbmZvPiBtX290aGVyUHJpbWVJbmZvczsgLy8gV2hlbiB0aHJlZSBvciBtb3Jl
IHByaW1lcyBoYXZlIGJlZW4gdXNlZCwgdGhlIG51bWJlciBvZiBhcnJheSBlbGVtZW50cyBpcyBi
ZSB0aGUgbnVtYmVyIG9mIHByaW1lcyB1c2VkIG1pbnVzIHR3by4KLX07Ci0KLWlubGluZSBjb25z
dCBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50cyYgdG9DcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50
cyhjb25zdCBDcnlwdG9LZXlEYXRhJiBkYXRhKQotewotICAgIEFTU0VSVChkYXRhLmZvcm1hdCgp
ID09IENyeXB0b0tleURhdGE6OkZvcm1hdDo6UlNBQ29tcG9uZW50cyk7Ci0gICAgcmV0dXJuIHN0
YXRpY19jYXN0PGNvbnN0IENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzJj4oZGF0YSk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQotI2VuZGlmIC8vIENyeXB0b0tleURhdGFSU0FDb21wb25lbnRzX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuaAppbmRleCBhMGE2MGUwNDYwZDM5NjZkM2Y2MmQ3
NzlmNmE3YmFlMThmOTViNmRjLi42ODJlNTRjMDAwMTU1ZmY1NmZmMDBmMWU4YzkyYjM1MzhiN2Ex
YzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5oCkBAIC01
NywyMSArNTcsMTggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Y2hhcj4gbV9rZXk7CiB9OwogCi1p
bmxpbmUgYm9vbCBpc0NyeXB0b0tleUhNQUMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCitpbmxpbmUg
Y29uc3QgQ3J5cHRvS2V5SE1BQyogYXNDcnlwdG9LZXlITUFDKGNvbnN0IENyeXB0b0tleSYga2V5
KQogewotICAgIHJldHVybiBrZXkua2V5Q2xhc3MoKSA9PSBDcnlwdG9LZXlDbGFzczo6SE1BQzsK
KyAgICBpZiAoa2V5LmtleUNsYXNzKCkgIT0gQ3J5cHRvS2V5Q2xhc3M6OkhNQUMpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9LZXlI
TUFDKj4oJmtleSk7CiB9CiAKLWlubGluZSBjb25zdCBDcnlwdG9LZXlITUFDJiB0b0NyeXB0b0tl
eUhNQUMoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCitpbmxpbmUgQ3J5cHRvS2V5SE1BQyogYXNDcnlw
dG9LZXlITUFDKENyeXB0b0tleSYga2V5KQogewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGlzQ3J5cHRvS2V5SE1BQyhrZXkpKTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
Y29uc3QgQ3J5cHRvS2V5SE1BQyY+KGtleSk7Ci19Ci0KLWlubGluZSBDcnlwdG9LZXlITUFDJiB0
b0NyeXB0b0tleUhNQUMoQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJ
VFlfSU1QTElDQVRJT04oaXNDcnlwdG9LZXlITUFDKGtleSkpOwotICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxDcnlwdG9LZXlITUFDJj4oa2V5KTsKKyAgICBpZiAoa2V5LmtleUNsYXNzKCkgIT0gQ3J5
cHRvS2V5Q2xhc3M6OkhNQUMpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxDcnlwdG9LZXlITUFDKj4oJmtleSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJT
QS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY1MTI5MzBhOGVkMzAwNzA4ZTRjN2U2OWJiZTU5OGFhYjQ1
MzIyNTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw5MiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9LZXlSU0FfaAotI2RlZmlu
ZSBDcnlwdG9LZXlSU0FfaAotCi0jaW5jbHVkZSAiQ3J5cHRvS2V5LmgiCi0KLSNpZiBFTkFCTEUo
U1VCVExFX0NSWVBUTykKLQotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQotdHlw
ZWRlZiBzdHJ1Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwotdHlwZWRlZiBDQ1JT
QUNyeXB0b3JSZWYgUGxhdGZvcm1SU0FLZXk7Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1jbGFzcyBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czsKLWNsYXNzIENyeXB0b0tleVBh
aXI7Ci1jbGFzcyBQcm9taXNlV3JhcHBlcjsKLQotY2xhc3MgQ3J5cHRvS2V5UlNBIEZJTkFMIDog
cHVibGljIENyeXB0b0tleSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRv
S2V5UlNBPiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyLCBDcnlw
dG9LZXlUeXBlIHR5cGUsIFBsYXRmb3JtUlNBS2V5IHBsYXRmb3JtS2V5LCBib29sIGV4dHJhY3Rh
YmxlLCBDcnlwdG9LZXlVc2FnZSB1c2FnZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgQ3J5cHRvS2V5UlNBKGlkZW50aWZpZXIsIHR5cGUsIHBsYXRmb3JtS2V5LCBleHRyYWN0
YWJsZSwgdXNhZ2UpKTsKLSAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8Q3J5cHRvS2V5UlNB
PiBjcmVhdGUoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciwgY29uc3QgQ3J5cHRvS2V5RGF0YVJT
QUNvbXBvbmVudHMmLCBib29sIGV4dHJhY3RhYmxlLCBDcnlwdG9LZXlVc2FnZSk7Ci0gICAgdmly
dHVhbCB+Q3J5cHRvS2V5UlNBKCk7Ci0KLSAgICB2b2lkIHJlc3RyaWN0VG9IYXNoKENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIpOwotCi0gICAgc3RhdGljIHZvaWQgZ2VuZXJhdGVQYWlyKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIsIHVuc2lnbmVkIG1vZHVsdXNMZW5ndGgsIGNvbnN0IFZlY3Rv
cjxjaGFyPiYgcHVibGljRXhwb25lbnQsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdl
LCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+KTsKLQotICAgIHZpcnR1YWwgQ3J5cHRv
S2V5Q2xhc3Mga2V5Q2xhc3MoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBDcnlwdG9LZXlDbGFz
czo6UlNBOyB9Ci0KLSAgICBQbGF0Zm9ybVJTQUtleSBwbGF0Zm9ybUtleSgpIGNvbnN0IHsgcmV0
dXJuIG1fcGxhdGZvcm1LZXk7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBidWlsZEFsZ29yaXRobURl
c2NyaXB0aW9uKENyeXB0b0FsZ29yaXRobURlc2NyaXB0aW9uQnVpbGRlciYpIGNvbnN0IE9WRVJS
SURFOwotCi1wcml2YXRlOgotICAgIENyeXB0b0tleVJTQShDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyLCBDcnlwdG9LZXlUeXBlLCBQbGF0Zm9ybVJTQUtleSwgYm9vbCBleHRyYWN0YWJsZSwgQ3J5
cHRvS2V5VXNhZ2UpOwotCi0gICAgUGxhdGZvcm1SU0FLZXkgbV9wbGF0Zm9ybUtleTsKLQotICAg
IGJvb2wgbV9yZXN0cmljdGVkVG9TcGVjaWZpY0hhc2g7Ci0gICAgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBtX2hhc2g7Ci19OwotCi1pbmxpbmUgYm9vbCBpc0NyeXB0b0tleVJTQShjb25zdCBD
cnlwdG9LZXkmIGtleSkKLXsKLSAgICByZXR1cm4ga2V5LmtleUNsYXNzKCkgPT0gQ3J5cHRvS2V5
Q2xhc3M6OlJTQTsKLX0KLQotaW5saW5lIGNvbnN0IENyeXB0b0tleVJTQSYgdG9DcnlwdG9LZXlS
U0EoY29uc3QgQ3J5cHRvS2V5JiBrZXkpCi17Ci0gICAgQVNTRVJUX1dJVEhfU0VDVVJJVFlfSU1Q
TElDQVRJT04oaXNDcnlwdG9LZXlSU0Eoa2V5KSk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGNv
bnN0IENyeXB0b0tleVJTQSY+KGtleSk7Ci19Ci0KLWlubGluZSBDcnlwdG9LZXlSU0EmIGFzQ3J5
cHRvS2V5UlNBKENyeXB0b0tleSYga2V5KQotewotICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lN
UExJQ0FUSU9OKGlzQ3J5cHRvS2V5UlNBKGtleSkpOwotICAgIHJldHVybiBzdGF0aWNfY2FzdDxD
cnlwdG9LZXlSU0EmPihrZXkpOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKLSNlbmRpZiAvLyBDcnlwdG9LZXlSU0FfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Q01hYy5jcHAKaW5kZXggZGFhYjgxMjc4MDVlNmVkOWVlNTg3MWRkOGU0NWRmMzg3ZDkzMWQ3MC4u
ZGM0OGFkNGE0ZmIzYzcyYzhmZDBhOWM0OTQ4OTJjZjNhODc1YWUyOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDTWFjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUFFU19DQkNNYWMuY3Bw
CkBAIC05MiwyNyArOTIsMjcgQEAgc3RhdGljIHZvaWQgdHJhbnNmb3JtQUVTX0NCQyhDQ09wZXJh
dGlvbiBvcGVyYXRpb24sIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0NiY1AKIHZvaWQgQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQzo6ZW5jcnlwdChjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJz
JiBwYXJhbWV0ZXJzLCBjb25zdCBDcnlwdG9LZXkmIGtleSwgY29uc3QgVmVjdG9yPENyeXB0b09w
ZXJhdGlvbkRhdGE+JiBkYXRhLCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21p
c2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUFlc0Ni
Y1BhcmFtcyYgYWVzQ0JDUGFyYW1ldGVycyA9IHN0YXRpY19jYXN0PGNvbnN0IENyeXB0b0FsZ29y
aXRobUFlc0NiY1BhcmFtcyY+KHBhcmFtZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0tleUFFUyog
YWVzS2V5ID0gYXNDcnlwdG9LZXlBRVMoa2V5KTsKIAotICAgIGlmICghaXNDcnlwdG9LZXlBRVMo
a2V5KSkgeworICAgIGlmICghYWVzS2V5KSB7CiAgICAgICAgIGVjID0gTk9UX1NVUFBPUlRFRF9F
UlI7CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgY29uc3QgQ3J5cHRvS2V5QUVTJiBhZXNL
ZXkgPSB0b0NyeXB0b0tleUFFUyhrZXkpOwogCi0gICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNy
eXB0LCBhZXNDQkNQYXJhbWV0ZXJzLCBhZXNLZXksIGRhdGEsIHN0ZDo6bW92ZShwcm9taXNlKSk7
CisgICAgdHJhbnNmb3JtQUVTX0NCQyhrQ0NFbmNyeXB0LCBhZXNDQkNQYXJhbWV0ZXJzLCAqYWVz
S2V5LCBkYXRhLCBzdGQ6Om1vdmUocHJvbWlzZSkpOwogfQogCiB2b2lkIENyeXB0b0FsZ29yaXRo
bUFFU19DQkM6OmRlY3J5cHQoY29uc3QgQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyYgcGFyYW1l
dGVycywgY29uc3QgQ3J5cHRvS2V5JiBrZXksIGNvbnN0IFZlY3RvcjxDcnlwdG9PcGVyYXRpb25E
YXRhPiYgZGF0YSwgc3RkOjp1bmlxdWVfcHRyPFByb21pc2VXcmFwcGVyPiBwcm9taXNlLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBjb25zdCBDcnlwdG9BbGdvcml0aG1BZXNDYmNQYXJhbXMm
IGFlc0NCQ1BhcmFtZXRlcnMgPSBzdGF0aWNfY2FzdDxjb25zdCBDcnlwdG9BbGdvcml0aG1BZXND
YmNQYXJhbXMmPihwYXJhbWV0ZXJzKTsKKyAgICBjb25zdCBDcnlwdG9LZXlBRVMqIGFlc0tleSA9
IGFzQ3J5cHRvS2V5QUVTKGtleSk7CiAKLSAgICBpZiAoIWlzQ3J5cHRvS2V5QUVTKGtleSkpIHsK
KyAgICBpZiAoIWFlc0tleSkgewogICAgICAgICBlYyA9IE5PVF9TVVBQT1JURURfRVJSOwogICAg
ICAgICByZXR1cm47CiAgICAgfQotICAgIGNvbnN0IENyeXB0b0tleUFFUyYgYWVzS2V5ID0gdG9D
cnlwdG9LZXlBRVMoa2V5KTsKIAotICAgIHRyYW5zZm9ybUFFU19DQkMoa0NDRGVjcnlwdCwgYWVz
Q0JDUGFyYW1ldGVycywgYWVzS2V5LCBkYXRhLCBzdGQ6Om1vdmUocHJvbWlzZSkpOworICAgIHRy
YW5zZm9ybUFFU19DQkMoa0NDRGVjcnlwdCwgYWVzQ0JDUGFyYW1ldGVycywgKmFlc0tleSwgZGF0
YSwgc3RkOjptb3ZlKHByb21pc2UpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFj
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5cHRvQWxnb3JpdGhtSE1BQ01hYy5j
cHAKaW5kZXggYzFjNDJiMDhkY2ZhMWZjZTdlMWE1ZGYyYjJkMzQ2ZGYyYmZmMWVhYS4uYTA5Zjkw
YjJjYzExZTMyYmQ2NDc4YWE2YTcyMTZmNjJkYTMxYzg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL21hYy9DcnlwdG9BbGdvcml0aG1ITUFDTWFjLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29yaXRobUhNQUNNYWMuY3BwCkBAIC05NSwyMCAr
OTUsMjAgQEAgc3RhdGljIFZlY3Rvcjx1bnNpZ25lZCBjaGFyPiBjYWxjdWxhdGVTaWduYXR1cmUo
Q0NIbWFjQWxnb3JpdGhtIGFsZ29yaXRobSwgY29uc3QKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1B
Qzo6c2lnbihjb25zdCBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBjb25z
dCBDcnlwdG9LZXkmIGtleSwgY29uc3QgVmVjdG9yPENyeXB0b09wZXJhdGlvbkRhdGE+JiBkYXRh
LCBzdGQ6OnVuaXF1ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0
ZXJzID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KHBhcmFt
ZXRlcnMpOworICAgIGNvbnN0IENyeXB0b0tleUhNQUMqIGhtYWNLZXkgPSBhc0NyeXB0b0tleUhN
QUMoa2V5KTsKIAotICAgIGlmICghaXNDcnlwdG9LZXlITUFDKGtleSkpIHsKKyAgICBDQ0htYWNB
bGdvcml0aG0gYWxnb3JpdGhtOworICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGht
YWNQYXJhbWV0ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjb25zdCBDcnlwdG9LZXlITUFD
JiBobWFjS2V5ID0gdG9DcnlwdG9LZXlITUFDKGtleSk7CiAKLSAgICBDQ0htYWNBbGdvcml0aG0g
YWxnb3JpdGhtOwotICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQYXJhbWV0
ZXJzLmhhc2gsIGFsZ29yaXRobSkpIHsKKyAgICBpZiAoIWhtYWNLZXkpIHsKICAgICAgICAgZWMg
PSBOT1RfU1VQUE9SVEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFZlY3Rv
cjx1bnNpZ25lZCBjaGFyPiBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoYWxnb3JpdGht
LCBobWFjS2V5LmtleSgpLCBkYXRhKTsKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gc2lnbmF0
dXJlID0gY2FsY3VsYXRlU2lnbmF0dXJlKGFsZ29yaXRobSwgaG1hY0tleS0+a2V5KCksIGRhdGEp
OwogCiAgICAgcHJvbWlzZS0+ZnVsZmlsbChzaWduYXR1cmUpOwogfQpAQCAtMTE2LDIwICsxMTYs
MjAgQEAgdm9pZCBDcnlwdG9BbGdvcml0aG1ITUFDOjpzaWduKGNvbnN0IENyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnMKIHZvaWQgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6
dmVyaWZ5KGNvbnN0IENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIGNvbnN0
IENyeXB0b0tleSYga2V5LCBjb25zdCBDcnlwdG9PcGVyYXRpb25EYXRhJiBleHBlY3RlZFNpZ25h
dHVyZSwgY29uc3QgVmVjdG9yPENyeXB0b09wZXJhdGlvbkRhdGE+JiBkYXRhLCBzdGQ6OnVuaXF1
ZV9wdHI8UHJvbWlzZVdyYXBwZXI+IHByb21pc2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IGNvbnN0IENyeXB0b0FsZ29yaXRobUhtYWNQYXJhbXMmIGhtYWNQYXJhbWV0ZXJzID0gc3RhdGlj
X2Nhc3Q8Y29uc3QgQ3J5cHRvQWxnb3JpdGhtSG1hY1BhcmFtcyY+KHBhcmFtZXRlcnMpOworICAg
IGNvbnN0IENyeXB0b0tleUhNQUMqIGhtYWNLZXkgPSBhc0NyeXB0b0tleUhNQUMoa2V5KTsKIAot
ICAgIGlmICghaXNDcnlwdG9LZXlITUFDKGtleSkpIHsKKyAgICBDQ0htYWNBbGdvcml0aG0gYWxn
b3JpdGhtOworICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQYXJhbWV0ZXJz
Lmhhc2gsIGFsZ29yaXRobSkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9SVEVEX0VSUjsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBjb25zdCBDcnlwdG9LZXlITUFDJiBobWFjS2V5ID0g
dG9DcnlwdG9LZXlITUFDKGtleSk7CiAKLSAgICBDQ0htYWNBbGdvcml0aG0gYWxnb3JpdGhtOwot
ICAgIGlmICghZ2V0Q29tbW9uQ3J5cHRvQWxnb3JpdGhtKGhtYWNQYXJhbWV0ZXJzLmhhc2gsIGFs
Z29yaXRobSkpIHsKKyAgICBpZiAoIWhtYWNLZXkpIHsKICAgICAgICAgZWMgPSBOT1RfU1VQUE9S
VEVEX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFZlY3Rvcjx1bnNpZ25lZCBj
aGFyPiBzaWduYXR1cmUgPSBjYWxjdWxhdGVTaWduYXR1cmUoYWxnb3JpdGhtLCBobWFjS2V5Lmtl
eSgpLCBkYXRhKTsKKyAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gc2lnbmF0dXJlID0gY2FsY3Vs
YXRlU2lnbmF0dXJlKGFsZ29yaXRobSwgaG1hY0tleS0+a2V5KCksIGRhdGEpOwogCiAgICAgYm9v
bCByZXN1bHQgPSBzaWduYXR1cmUuc2l6ZSgpID09IGV4cGVjdGVkU2lnbmF0dXJlLnNlY29uZCAm
JiAhbWVtY21wKHNpZ25hdHVyZS5kYXRhKCksIGV4cGVjdGVkU2lnbmF0dXJlLmZpcnN0LCBzaWdu
YXR1cmUuc2l6ZSgpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFj
L0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcAppbmRleCAzMTE2OGU3MDZjZTE0YjYxY2E5
YzJjNTJmZmE3YjJmZWNiYzk1OTcxLi44ZjZjZDY0NTMxZjExNjIzMjA1NWQ3YWYwNTQ0M2M4MGJi
YjcwYjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0b0FsZ29y
aXRobVJlZ2lzdHJ5TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vbWFjL0NyeXB0
b0FsZ29yaXRobVJlZ2lzdHJ5TWFjLmNwcApAQCAtMzAsNyArMzAsNiBAQAogCiAjaW5jbHVkZSAi
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oIgogI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRobUhNQUMu
aCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIgogI2luY2x1
ZGUgIkNyeXB0b0FsZ29yaXRobVNIQTEuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1TSEEy
MjQuaCIKICNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1TSEEyNTYuaCIKQEAgLTQzLDcgKzQyLDYg
QEAgdm9pZCBDcnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6cGxhdGZvcm1SZWdpc3RlckFsZ29yaXRo
bXMoKQogewogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobUFFU19DQkM6OnNf
bmFtZSwgQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQzo6c19pZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0
aG1BRVNfQ0JDOjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRo
bUhNQUM6OnNfbmFtZSwgQ3J5cHRvQWxnb3JpdGhtSE1BQzo6c19pZGVudGlmaWVyLCBDcnlwdG9B
bGdvcml0aG1ITUFDOjpjcmVhdGUpOwotICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81OjpzX25hbWUsIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81OjpzX2lkZW50aWZpZXIsIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Ojpj
cmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobVNIQTE6OnNfbmFt
ZSwgQ3J5cHRvQWxnb3JpdGhtU0hBMTo6c19pZGVudGlmaWVyLCBDcnlwdG9BbGdvcml0aG1TSEEx
OjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRobVNIQTIyNDo6
c19uYW1lLCBDcnlwdG9BbGdvcml0aG1TSEEyMjQ6OnNfaWRlbnRpZmllciwgQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0OjpjcmVhdGUpOwogICAgIHJlZ2lzdGVyQWxnb3JpdGhtKENyeXB0b0FsZ29yaXRo
bVNIQTI1Njo6c19uYW1lLCBDcnlwdG9BbGdvcml0aG1TSEEyNTY6OnNfaWRlbnRpZmllciwgQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2OjpjcmVhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL21h
Yy9DcnlwdG9LZXlSU0FNYWMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0ODU3
MjYyMzM2N2VmMDRjZTAwMTM3NDhhMDljM2I2NGZiZGY2N2I5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvS2V5UlNBTWFjLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
LSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
Ci0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0g
Ki8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNyeXB0b0tleVJTQS5oIgotCi0j
aWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1EZXNj
cmlwdGlvbkJ1aWxkZXIuaCIKLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1SZWdpc3RyeS5oIgot
I2luY2x1ZGUgIkNyeXB0b0tleURhdGFSU0FDb21wb25lbnRzLmgiCi0jaW5jbHVkZSAiQ3J5cHRv
S2V5UGFpci5oIgotI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgotI2luY2x1ZGUgPENvbW1vbkNy
eXB0by9Db21tb25DcnlwdG9yLmg+Ci0KLSNpZiBkZWZpbmVkKF9faGFzX2luY2x1ZGUpCi0jaWYg
X19oYXNfaW5jbHVkZSg8Q29tbW9uQ3J5cHRvL0NvbW1vblJTQUNyeXB0b3IuaD4pCi0jaW5jbHVk
ZSA8Q29tbW9uQ3J5cHRvL0NvbW1vblJTQUNyeXB0b3IuaD4KLSNlbmRpZgotI2VuZGlmCi0KLSNp
Zm5kZWYgX0NDX1JTQUNSWVBUT1JfSF8KLWVudW0gewotICAgIGNjUlNBS2V5UHVibGljICAgICAg
ICAgID0gMCwKLSAgICBjY1JTQUtleVByaXZhdGUgICAgICAgICA9IDEKLX07Ci10eXBlZGVmIHVp
bnQzMl90IENDUlNBS2V5VHlwZTsKLSNlbmRpZgotCi1leHRlcm4gIkMiIENDQ3J5cHRvclN0YXR1
cyBDQ1JTQUNyeXB0b3JDcmVhdGVGcm9tRGF0YShDQ1JTQUtleVR5cGUga2V5VHlwZSwgdWludDhf
dCAqbW9kdWx1cywgc2l6ZV90IG1vZHVsdXNMZW5ndGgsIHVpbnQ4X3QgKmV4cG9uZW50LCBzaXpl
X3QgZXhwb25lbnRMZW5ndGgsIHVpbnQ4X3QgKnAsIHNpemVfdCBwTGVuZ3RoLCB1aW50OF90ICpx
LCBzaXplX3QgcUxlbmd0aCwgQ0NSU0FDcnlwdG9yUmVmICpyZWYpOwotZXh0ZXJuICJDIiBDQ0Ny
eXB0b3JTdGF0dXMgQ0NSU0FDcnlwdG9yR2VuZXJhdGVQYWlyKHNpemVfdCBrZXlzaXplLCB1aW50
MzJfdCBlLCBDQ1JTQUNyeXB0b3JSZWYgKnB1YmxpY0tleSwgQ0NSU0FDcnlwdG9yUmVmICpwcml2
YXRlS2V5KTsKLWV4dGVybiAiQyIgQ0NSU0FDcnlwdG9yUmVmIENDUlNBQ3J5cHRvckdldFB1Ymxp
Y0tleUZyb21Qcml2YXRlS2V5KENDUlNBQ3J5cHRvclJlZiBwcml2a2V5KTsKLWV4dGVybiAiQyIg
dm9pZCBDQ1JTQUNyeXB0b3JSZWxlYXNlKENDUlNBQ3J5cHRvclJlZiBrZXkpOwotZXh0ZXJuICJD
IiBDQ0NyeXB0b3JTdGF0dXMgQ0NSU0FHZXRLZXlDb21wb25lbnRzKENDUlNBQ3J5cHRvclJlZiBy
c2FLZXksIHVpbnQ4X3QgKm1vZHVsdXMsIHNpemVfdCAqbW9kdWx1c0xlbmd0aCwgdWludDhfdCAq
ZXhwb25lbnQsIHNpemVfdCAqZXhwb25lbnRMZW5ndGgsIHVpbnQ4X3QgKnAsIHNpemVfdCAqcExl
bmd0aCwgdWludDhfdCAqcSwgc2l6ZV90ICpxTGVuZ3RoKTsKLWV4dGVybiAiQyIgQ0NSU0FLZXlU
eXBlIENDUlNBR2V0S2V5VHlwZShDQ1JTQUNyeXB0b3JSZWYga2V5KTsKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1DcnlwdG9LZXlSU0E6OkNyeXB0b0tleVJTQShDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIGlkZW50aWZpZXIsIENyeXB0b0tleVR5cGUgdHlwZSwgUGxhdGZvcm1SU0FLZXkgcGxh
dGZvcm1LZXksIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tleVVzYWdlIHVzYWdlKQotICAgIDog
Q3J5cHRvS2V5KGlkZW50aWZpZXIsIHR5cGUsIGV4dHJhY3RhYmxlLCB1c2FnZSkKLSAgICAsIG1f
cGxhdGZvcm1LZXkocGxhdGZvcm1LZXkpCi0gICAgLCBtX3Jlc3RyaWN0ZWRUb1NwZWNpZmljSGFz
aChmYWxzZSkKLXsKLX0KLQotUGFzc1JlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6
Y3JlYXRlKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ3J5cHRv
S2V5RGF0YVJTQUNvbXBvbmVudHMmIGtleURhdGEsIGJvb2wgZXh0cmFjdGFibGUsIENyeXB0b0tl
eVVzYWdlIHVzYWdlKQotewotICAgIGlmIChrZXlEYXRhLnR5cGUoKSA9PSBDcnlwdG9LZXlEYXRh
UlNBQ29tcG9uZW50czo6VHlwZTo6UHJpdmF0ZSAmJiAha2V5RGF0YS5oYXNBZGRpdGlvbmFsUHJp
dmF0ZUtleVBhcmFtZXRlcnMoKSkgewotICAgICAgICBXVEZMb2dBbHdheXMoIlByaXZhdGUga2V5
cyB3aXRob3V0IGFkZGl0aW9uYWwgZGF0YSBhcmUgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0gICAgaWYgKGtleURhdGEub3RoZXJQcmltZUluZm9zKCku
c2l6ZSgpKSB7Ci0gICAgICAgIC8vIDxyZGFyOi8vcHJvYmxlbS8xNTQ0NDA3ND4gdHJhY2tzIGFk
ZGluZyBzdXBwb3J0LgotICAgICAgICBXVEZMb2dBbHdheXMoIktleXMgd2l0aCBtb3JlIHRoYW4g
dHdvIHByaW1lcyBhcmUgbm90IHN1cHBvcnRlZCIpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LSAgICB9Ci0gICAgQ0NSU0FDcnlwdG9yUmVmIGNyeXB0b3I7Ci0gICAgQ0NDcnlwdG9yU3RhdHVz
IHN0YXR1cyA9IENDUlNBQ3J5cHRvckNyZWF0ZUZyb21EYXRhKAotICAgICAgICBrZXlEYXRhLnR5
cGUoKSA9PSBDcnlwdG9LZXlEYXRhUlNBQ29tcG9uZW50czo6VHlwZTo6UHVibGljID8gY2NSU0FL
ZXlQdWJsaWMgOiBjY1JTQUtleVByaXZhdGUsCi0gICAgICAgICh1aW50OF90KilrZXlEYXRhLm1v
ZHVsdXMoKS5kYXRhKCksIGtleURhdGEubW9kdWx1cygpLnNpemUoKSwKLSAgICAgICAgKHVpbnQ4
X3QqKWtleURhdGEuZXhwb25lbnQoKS5kYXRhKCksIGtleURhdGEuZXhwb25lbnQoKS5zaXplKCks
Ci0gICAgICAgICh1aW50OF90KilrZXlEYXRhLmZpcnN0UHJpbWVJbmZvKCkucHJpbWVGYWN0b3Iu
ZGF0YSgpLCBrZXlEYXRhLmZpcnN0UHJpbWVJbmZvKCkucHJpbWVGYWN0b3Iuc2l6ZSgpLAotICAg
ICAgICAodWludDhfdCopa2V5RGF0YS5zZWNvbmRQcmltZUluZm8oKS5wcmltZUZhY3Rvci5kYXRh
KCksIGtleURhdGEuc2Vjb25kUHJpbWVJbmZvKCkucHJpbWVGYWN0b3Iuc2l6ZSgpLAotICAgICAg
ICAmY3J5cHRvcik7Ci0KLSAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgIExPR19FUlJPUigiQ291
bGRuJ3QgY3JlYXRlIFJTQSBrZXkgZnJvbSBkYXRhLCBlcnJvciAlZCIsIHN0YXR1cyk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgQ3J5
cHRvS2V5UlNBKGlkZW50aWZpZXIsIGtleURhdGEudHlwZSgpID09IENyeXB0b0tleURhdGFSU0FD
b21wb25lbnRzOjpUeXBlOjpQdWJsaWMgPyBDcnlwdG9LZXlUeXBlOjpQdWJsaWMgOiBDcnlwdG9L
ZXlUeXBlOjpQcml2YXRlLCBjcnlwdG9yLCBleHRyYWN0YWJsZSwgdXNhZ2UpKTsKLX0KLQotQ3J5
cHRvS2V5UlNBOjp+Q3J5cHRvS2V5UlNBKCkKLXsKLSAgICBDQ1JTQUNyeXB0b3JSZWxlYXNlKG1f
cGxhdGZvcm1LZXkpOwotfQotCi12b2lkIENyeXB0b0tleVJTQTo6cmVzdHJpY3RUb0hhc2goQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBpZGVudGlmaWVyKQotewotICAgIG1fcmVzdHJpY3RlZFRv
U3BlY2lmaWNIYXNoID0gdHJ1ZTsKLSAgICBtX2hhc2ggPSBpZGVudGlmaWVyOwotfQotCi12b2lk
IENyeXB0b0tleVJTQTo6YnVpbGRBbGdvcml0aG1EZXNjcmlwdGlvbihDcnlwdG9BbGdvcml0aG1E
ZXNjcmlwdGlvbkJ1aWxkZXImIGJ1aWxkZXIpIGNvbnN0Ci17Ci0gICAgQ3J5cHRvS2V5OjpidWls
ZEFsZ29yaXRobURlc2NyaXB0aW9uKGJ1aWxkZXIpOwotCi0gICAgQVNTRVJUKENDUlNBR2V0S2V5
VHlwZShtX3BsYXRmb3JtS2V5KSA9PSBjY1JTQUtleVB1YmxpYyB8fCBDQ1JTQUdldEtleVR5cGUo
bV9wbGF0Zm9ybUtleSkgPT0gY2NSU0FLZXlQcml2YXRlKTsKLSAgICBib29sIHBsYXRmb3JtS2V5
SXNQdWJsaWMgPSBDQ1JTQUdldEtleVR5cGUobV9wbGF0Zm9ybUtleSkgPT0gY2NSU0FLZXlQdWJs
aWM7Ci0gICAgQ0NSU0FDcnlwdG9yUmVmIHB1YmxpY0tleSA9IHBsYXRmb3JtS2V5SXNQdWJsaWMg
PyBtX3BsYXRmb3JtS2V5IDogQ0NSU0FDcnlwdG9yR2V0UHVibGljS2V5RnJvbVByaXZhdGVLZXko
bV9wbGF0Zm9ybUtleSk7Ci0KLSAgICBzaXplX3QgbW9kdWx1c0xlbmd0aDsKLSAgICBzaXplX3Qg
ZXhwb25lbnRMZW5ndGg7Ci0gICAgdWludDhfdCBwdWJsaWNFeHBvbmVudFsxNjM4NF07Ci0gICAg
c2l6ZV90IGR1bW15OwotICAgIHVpbnQ4X3QgYnVmWzE2Mzg0XTsKLSAgICBDQ0NyeXB0b3JTdGF0
dXMgc3RhdHVzID0gQ0NSU0FHZXRLZXlDb21wb25lbnRzKHB1YmxpY0tleSwgYnVmLCAmbW9kdWx1
c0xlbmd0aCwgcHVibGljRXhwb25lbnQsICZleHBvbmVudExlbmd0aCwgYnVmLCAmZHVtbXksIGJ1
ZiwgJmR1bW15KTsKLSAgICBpZiAoIXBsYXRmb3JtS2V5SXNQdWJsaWMpIHsKLSAgICAgICAgLy8g
Q0NSU0FDcnlwdG9yR2V0UHVibGljS2V5RnJvbVByaXZhdGVLZXkgaGFzICJHZXQiIGluIHRoZSBu
YW1lLCBidXQgaXRzIHJlc3VsdCBuZWVkcyB0byBiZSByZWxlYXNlZCAoc2VlIDxyZGFyOi8vcHJv
YmxlbS8xNTQ0OTY5Nz4pLgotICAgICAgICBDQ1JTQUNyeXB0b3JSZWxlYXNlKHB1YmxpY0tleSk7
Ci0gICAgfQotICAgIGlmIChzdGF0dXMpIHsKLSAgICAgICAgV1RGTG9nQWx3YXlzKCJDb3VsZG4n
dCBnZXQgUlNBIGtleSBjb21wb25lbnRzLCBzdGF0dXMgJWQiLCBzdGF0dXMpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgYnVpbGRlci5hZGQoIm1vZHVsdXNMZW5ndGgiLCBtb2R1bHVz
TGVuZ3RoICogOCk7Ci0KLSAgICBWZWN0b3I8dW5zaWduZWQgY2hhcj4gcHVibGljRXhwb25lbnRW
ZWN0b3I7Ci0gICAgcHVibGljRXhwb25lbnRWZWN0b3IuYXBwZW5kKHB1YmxpY0V4cG9uZW50LCBl
eHBvbmVudExlbmd0aCk7Ci0gICAgYnVpbGRlci5hZGQoInB1YmxpY0V4cG9uZW50IiwgcHVibGlj
RXhwb25lbnRWZWN0b3IpOwotCi0gICAgaWYgKG1fcmVzdHJpY3RlZFRvU3BlY2lmaWNIYXNoKSB7
Ci0gICAgICAgIGF1dG8gaGFzaERlc2NyaXB0aW9uQnVpbGRlciA9IGJ1aWxkZXIuY3JlYXRlRW1w
dHlDbG9uZSgpOwotICAgICAgICBoYXNoRGVzY3JpcHRpb25CdWlsZGVyLT5hZGQoIm5hbWUiLCBD
cnlwdG9BbGdvcml0aG1SZWdpc3RyeTo6c2hhcmVkKCkubmFtZUZvcklkZW50aWZpZXIobV9oYXNo
KSk7Ci0gICAgICAgIGJ1aWxkZXIuYWRkKCJoYXNoIiwgKmhhc2hEZXNjcmlwdGlvbkJ1aWxkZXIp
OwotICAgIH0KLX0KLQotc3RhdGljIGJvb2wgYmlnSW50ZWdlclRvVUludDMyKGNvbnN0IFZlY3Rv
cjxjaGFyPiYgYmlnSW50ZWdlciwgdWludDMyX3QmIHJlc3VsdCkKLXsKLSAgICByZXN1bHQgPSAw
OwotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpICsgNCA8IGJpZ0ludGVnZXIuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgaWYgKGJpZ0ludGVnZXJbaV0pCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
IC8vIFRvbyBiaWcgdG8gZml0IGluIDMyIGJpdHMuCi0gICAgfQotCi0gICAgZm9yIChzaXplX3Qg
aSA9IGJpZ0ludGVnZXIuc2l6ZSgpID4gNCA/IGJpZ0ludGVnZXIuc2l6ZSgpIC0gNCA6IDA7IGkg
PCBiaWdJbnRlZ2VyLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIHJlc3VsdCA8PD0gODsKLSAgICAg
ICAgcmVzdWx0ICs9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXI+KGJpZ0ludGVnZXJbaV0pOwot
ICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBDcnlwdG9LZXlSU0E6OmdlbmVyYXRl
UGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobSwgdW5zaWduZWQgbW9kdWx1
c0xlbmd0aCwgY29uc3QgVmVjdG9yPGNoYXI+JiBwdWJsaWNFeHBvbmVudCwgYm9vbCBleHRyYWN0
YWJsZSwgQ3J5cHRvS2V5VXNhZ2UgdXNhZ2UsIHN0ZDo6dW5pcXVlX3B0cjxQcm9taXNlV3JhcHBl
cj4gcHJvbWlzZSkKLXsKLSAgICB1aW50MzJfdCBlOwotICAgIGlmICghYmlnSW50ZWdlclRvVUlu
dDMyKHB1YmxpY0V4cG9uZW50LCBlKSkgewotICAgICAgICAvLyBBZGRpbmcgc3VwcG9ydCBpcyB0
cmFja2VkIGFzIDxyZGFyOi8vcHJvYmxlbS8xNTQ0NDAzND4uCi0gICAgICAgIFdURkxvZ0Fsd2F5
cygiUHVibGljIGV4cG9uZW50IGlzIHRvbyBiaWcsIG5vdCBzdXBwb3J0ZWQgYnkgQ29tbW9uQ3J5
cHRvIik7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChudWxscHRyKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KLQotICAgIFByb21pc2VXcmFwcGVyKiBsb2NhbFByb21pc2UgPSBwcm9taXNlLnJl
bGVhc2UoKTsKLQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUo
RElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwgMCksIF57Ci0gICAgICAgIENDUlNBQ3J5
cHRvclJlZiBjY1B1YmxpY0tleTsKLSAgICAgICAgQ0NSU0FDcnlwdG9yUmVmIGNjUHJpdmF0ZUtl
eTsKLSAgICAgICAgQ0NDcnlwdG9yU3RhdHVzIHN0YXR1cyA9IENDUlNBQ3J5cHRvckdlbmVyYXRl
UGFpcihtb2R1bHVzTGVuZ3RoLCBlLCAmY2NQdWJsaWNLZXksICZjY1ByaXZhdGVLZXkpOwotICAg
ICAgICBpZiAoc3RhdHVzKSB7Ci0gICAgICAgICAgICBXVEZMb2dBbHdheXMoIkNvdWxkIG5vdCBn
ZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgJWQiLCBzdGF0dXMpOwotICAgICAgICAgICAgZGlz
cGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgICAgICAg
ICBsb2NhbFByb21pc2UtPnJlamVjdChudWxscHRyKTsKLSAgICAgICAgICAgICAgICBkZWxldGUg
bG9jYWxQcm9taXNlOwotICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0KLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
XnsKLSAgICAgICAgICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+IHB1YmxpY0tleSA9IENyeXB0b0tl
eVJTQTo6Y3JlYXRlKGFsZ29yaXRobSwgQ3J5cHRvS2V5VHlwZTo6UHVibGljLCBjY1B1YmxpY0tl
eSwgZXh0cmFjdGFibGUsIHVzYWdlKTsKLSAgICAgICAgICAgIFJlZlB0cjxDcnlwdG9LZXlSU0E+
IHByaXZhdGVLZXkgPSBDcnlwdG9LZXlSU0E6OmNyZWF0ZShhbGdvcml0aG0sIENyeXB0b0tleVR5
cGU6OlByaXZhdGUsIGNjUHJpdmF0ZUtleSwgZXh0cmFjdGFibGUsIHVzYWdlKTsKLSAgICAgICAg
ICAgIGxvY2FsUHJvbWlzZS0+ZnVsZmlsbChDcnlwdG9LZXlQYWlyOjpjcmVhdGUocHVibGljS2V5
LnJlbGVhc2UoKSwgcHJpdmF0ZUtleS5yZWxlYXNlKCkpKTsKLSAgICAgICAgICAgIGRlbGV0ZSBs
b2NhbFByb21pc2U7Ci0gICAgICAgIH0pOwotICAgIH0pOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoU1VCVExFX0NSWVBUTykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJh
bXMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobUht
YWNLZXlQYXJhbXMuaAppbmRleCBjZDIzYWYxYTA1OGJjNDI1N2ExMDhlZmQ4NWYwM2Y3OTBlZjQ4
YmM3Li4zN2Q0Y2UzYmMxMDY1YjMzOWU5OTQzOTBjMjYxNjJiNTUzNDQzZWJlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1IbWFjS2V5
UGFyYW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxn
b3JpdGhtSG1hY0tleVBhcmFtcy5oCkBAIC0zNSwxMSArMzUsNiBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhtYWNLZXlQYXJhbXMgRklOQUwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycyB7CiBwdWJsaWM6Ci0gICAgQ3J5cHRvQWxnb3JpdGht
SG1hY0tleVBhcmFtcygpCi0gICAgICAgIDogaGFzTGVuZ3RoKGZhbHNlKQotICAgIHsKLSAgICB9
Ci0KICAgICAvLyBUaGUgaW5uZXIgaGFzaCBmdW5jdGlvbiB0byB1c2UuCiAgICAgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBoYXNoOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vcGFyYW1ldGVycy9DcnlwdG9BbGdvcml0aG1Sc2FLZXlHZW5QYXJhbXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcy5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjMGUyN2RkNWQ3MWQwNDgxZTU1NmRmZThi
NTNkZGQ0Mzc1YzU2NmMwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJz
YUtleUdlblBhcmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNDYgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpZm5kZWYgQ3J5cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zX2gKLSNkZWZpbmUgQ3J5
cHRvQWxnb3JpdGhtUnNhS2V5R2VuUGFyYW1zX2gKLQotI2luY2x1ZGUgIkNyeXB0b0FsZ29yaXRo
bVBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYUtleUdlblBhcmFtcyBGSU5BTCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoKLSAgICAvLyBUaGUg
bGVuZ3RoLCBpbiBiaXRzLCBvZiB0aGUgUlNBIG1vZHVsdXMuCi0gICAgdW5zaWduZWQgbW9kdWx1
c0xlbmd0aDsKLSAgICAvLyBUaGUgUlNBIHB1YmxpYyBleHBvbmVudCwgZW5jb2RlZCBhcyBCaWdJ
bnRlZ2VyLgotICAgIFZlY3RvcjxjaGFyPiBwdWJsaWNFeHBvbmVudDsKLX07Ci0KLX0KLQotI2Vu
ZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVJz
YUtleUdlblBhcmFtc19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vcGFyYW1l
dGVycy9DcnlwdG9BbGdvcml0aG1Sc2FTc2FLZXlQYXJhbXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBhcmFtcy5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NTVhN2JmNzE4ZWEyMmI1YWNiYWNlZjY2ZGI1NzNlZjEz
Mzk1MzQ1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYUtleVBh
cmFtcy5oCisrKyAvZGV2L251bGwKQEAgLTEsNTQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zX2gKLSNkZWZpbmUgQ3J5cHRvQWxnb3Jp
dGhtUnNhU3NhS2V5Ci0KLSNpbmNsdWRlICJDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyLmgiCi0j
aW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtUGFyYW1ldGVycy5oIgotCi0jaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gVGhpcyBwYXJhbWV0ZXJzIGNs
YXNzIGlzIGN1cnJlbnRseSBub3Qgc3BlY2lmaWVkIGluIFdlYkNyeXB0by4KLS8vIEl0IGlzIG5l
Y2Vzc2FyeSB0byBzdXBwb3J0IGltcG9ydCBmcm9tIEpXSywgd2hpY2ggdHJlYXRzIGhhc2ggZnVu
Y3Rpb24gYXMgcGFydCBvZiBhbGdvcml0aG0KLS8vIGlkZW50aWZpZXIsIHNvIHdlIG5lZWQgdG8g
cmVtZW1iZXIgaXQgdG8gY29tcGFyZSB3aXRoIG9uZSBwYXNzZWQgdG8gc2lnbiBvciB2ZXJpZnkg
ZnVuY3Rpb25zLgotY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUnNhU3NhS2V5UGFyYW1zIEZJTkFMIDog
cHVibGljIENyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMgewotcHVibGljOgotICAgIENyeXB0b0Fs
Z29yaXRobVJzYVNzYUtleVBhcmFtcygpCi0gICAgICAgIDogaGFzSGFzaChmYWxzZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgLy8gVGhlIGhhc2ggYWxnb3JpdGhtIHRvIHVzZS4KLSAgICBib29sIGhh
c0hhc2g7Ci0gICAgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBoYXNoOwotfTsKLQotfQotCi0j
ZW5kaWYgLy8gRU5BQkxFKFNVQlRMRV9DUllQVE8pCi0jZW5kaWYgLy8gQ3J5cHRvQWxnb3JpdGht
UnNhU3NhUGFyYW1zX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9wYXJhbWV0
ZXJzL0NyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtcy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDZlOGUwZmQ3YzdmOTI1NTZkYmU3MzViYzM5YWI4MTlhZTFiYjBlMTEu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL3BhcmFtZXRlcnMvQ3J5cHRvQWxnb3JpdGhtUnNhU3NhUGFyYW1zLmgKKysr
IC9kZXYvbnVsbApAQCAtMSw0NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEzIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwot
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0g
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBDcnlwdG9B
bGdvcml0aG1Sc2FTc2FQYXJhbXNfaAotI2RlZmluZSBDcnlwdG9BbGdvcml0aG1Sc2FTc2FQYXJh
bXNfaAotCi0jaW5jbHVkZSAiQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllci5oIgotI2luY2x1ZGUg
IkNyeXB0b0FsZ29yaXRobVBhcmFtZXRlcnMuaCIKLQotI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIENyeXB0b0FsZ29yaXRobVJzYVNzYVBh
cmFtcyBGSU5BTCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG1QYXJhbWV0ZXJzIHsKLXB1YmxpYzoK
LSAgICAvLyBUaGUgaGFzaCBhbGdvcml0aG0gdG8gdXNlLgotICAgIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgaGFzaDsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIEVOQUJMRShTVUJUTEVfQ1JZUFRP
KQotI2VuZGlmIC8vIENyeXB0b0FsZ29yaXRobVJzYVNzYVBhcmFtc19oCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmUxZjZl
MzRkY2Y5YmI0YTcxNDQwNGRmNmViN2I5MTg0YmFkMDFjOC4uMzJkMTgxYTI4OGE2ZmM2M2VjMTU2
YTBjNDk4ZDY5ODM2YzRkMTg0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTExLTEzICBD
b21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTU5MTgwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xNTkxODAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNDI4MAorCisgICAgICAgIGNyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYx
XzUtaW1wb3J0LWp3ay5odG1sIGlzIGZhaWxpbmcgb24KKyAgICAgICAgTWF2ZXJpY3MgcmVsZWFz
ZSBib3QgKFJlcXVlc3RlZCBieSBhbnR0aWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBjcnlw
dG8vc3VidGxlL3Jlc291cmNlcy9jb21tb24uanM6CisgICAgICAgIChoZXhUb0FycmF5QnVmZmVy
KToKKyAgICAgICAgKiBjcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtl
eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogY3J5cHRvL3N1YnRsZS9yc2Fzc2Et
cGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBjcnlwdG8v
c3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0OiBSZW1vdmVk
LgorICAgICAgICAqIGNyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5o
dG1sOiBSZW1vdmVkLgorCiAyMDEzLTExLTEyICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBTdXBwb3J0IG92ZXJmbG93LXdyYXA6YnJlYWstd29yZCBvbiBzaW1w
bGUgbGluZSBwYXRoCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291
cmNlcy9jb21tb24uanMgYi9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3Jlc291cmNlcy9jb21t
b24uanMKaW5kZXggOGE0MGY0MjNmZGI5Njc1MjA4MjUwNjNmZTkzMTNkMjVkYzNiZTJiOS4uMzg0
YTUwMmZmNGRmNDMyNmEwZDE1ODZhNjYyMzdiYTc2YjllNDU3NyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvY3J5cHRvL3N1YnRsZS9yZXNvdXJjZXMvY29tbW9uLmpzCisrKyBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcmVzb3VyY2VzL2NvbW1vbi5qcwpAQCAtNDgsMjQgKzQ4LDEzIEBAIGZ1
bmN0aW9uIGFzY2lpVG9BcnJheUJ1ZmZlcihzdHIpCiBmdW5jdGlvbiBoZXhUb0FycmF5QnVmZmVy
KHN0cikKIHsKICAgICBpZiAoc3RyLmxlbmd0aCAlIDIpCi0gICAgICAgIHRocm93ICJIZXggc3Ry
aW5nIGxlbmd0aCBtdXN0IGJlIGV2ZW4iOworICAgICAgICB0aHJvdyAiSGV4IHN0cmluZyBsZW5n
aHQgbXVzdCBiZSBldmVuIjsKICAgICB2YXIgY2hhcnMgPSBbXTsKICAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHN0ci5sZW5ndGg7IGkgKz0gMikKICAgICAgICAgY2hhcnMucHVzaChwYXJzZUludChz
dHIuc3Vic3RyKGksIDIpLCAxNikpOwogICAgIHJldHVybiBuZXcgVWludDhBcnJheShjaGFycyk7
CiB9CiAKLXZhciBCYXNlNjRVUkwgPSB7Ci0gICAgc3RyaW5naWZ5OiBmdW5jdGlvbiAoYSkgewot
ICAgICAgICB2YXIgYmFzZTY0c3RyaW5nID0gYnRvYShTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5
KDAsIGEpKTsKLSAgICAgICAgcmV0dXJuIGJhc2U2NHN0cmluZy5yZXBsYWNlKC89L2csICIiKS5y
ZXBsYWNlKC9cKy9nLCAiLSIpLnJlcGxhY2UoL1wvL2csICJfIik7Ci0gICAgfSwKLSAgICBwYXJz
ZTogZnVuY3Rpb24gKHMpIHsKLSAgICAgICAgcyA9IHMucmVwbGFjZSgvLS9nLCAiKyIpLnJlcGxh
Y2UoL18vZywgIi8iKS5yZXBsYWNlKC9ccy9nLCAnJyk7Ci0gICAgICAgIHJldHVybiBuZXcgVWlu
dDhBcnJheShBcnJheS5wcm90b3R5cGUubWFwLmNhbGwoYXRvYihzKSwgZnVuY3Rpb24gKGMpIHsg
cmV0dXJuIGMuY2hhckNvZGVBdCgwKSB9KSk7Ci0gICAgfQotfTsKLQogZnVuY3Rpb24gcHJpbnRS
ZWplY3RlZFJlc3VsdCh2YWx1ZSkKIHsKICAgICBkZWJ1ZygiICAgIHJlamVjdGVkIHdpdGggdmFs
dWUgb2YgIiArIHZhbHVlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUv
cnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBrY3MxLXYxXzUtZ2VuZXJhdGUta2V5LWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmUwMzc4MDhlY2Q1NjliYTFhNDlmMzNh
ZTAxY2Y3NzZkM2JmZjljNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVy
YXRlLWtleS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNCArMCwwIEBACi1UZXN0
IGdlbmVyYXRpbmcgYW4gUlNBIGtleSBwYWlyIGZvciBSU0FTU0EtUEtDUzEtdjFfNS4KLQotT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLUdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLgotUEFT
UyBrZXlQYWlyLnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5UGFpcl0nCi1QQVNTIGtleVBhaXIu
cHVibGljS2V5LnR5cGUgaXMgJ3B1YmxpYycKLVBBU1Mga2V5UGFpci5wdWJsaWNLZXkuYWxnb3Jp
dGhtLm5hbWUgaXMgJ3JzYXNzYS1wa2NzMS12MV81JwotUEFTUyBrZXlQYWlyLnB1YmxpY0tleS5h
bGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5dGVBcnJheVRvSGV4U3RyaW5n
KGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkgaXMgJ1swMSAwMCAw
MV0nCi1QQVNTIGtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5oYXNoIGlzIHVuZGVmaW5lZC4K
LVBBU1Mga2V5UGFpci5wcml2YXRlS2V5LnR5cGUgaXMgJ3ByaXZhdGUnCi1QQVNTIGtleVBhaXIu
cHJpdmF0ZUtleS5hbGdvcml0aG0ubmFtZSBpcyAncnNhc3NhLXBrY3MxLXYxXzUnCi1QQVNTIGtl
eVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1QQVNTIGJ5
dGVBcnJheVRvSGV4U3RyaW5nKGtleVBhaXIucHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhw
b25lbnQpIGlzICdbMDEgMDAgMDFdJwotUEFTUyBrZXlQYWlyLnByaXZhdGVLZXkuYWxnb3JpdGht
Lmhhc2ggaXMgdW5kZWZpbmVkLgotCi1UZXN0aW5nIHRoYXQgY3VzdG9tIGF0dHJpYnV0ZXMgb24g
a2V5cyBzdXJ2aXZlIGdhcmJhZ2UgY29sbGVjdGlvbi4uLgotUEFTUyBrZXlQYWlyLnB1YmxpY0tl
eS5mb28gaXMgJ2JhcicKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1w
a2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9y
c2Fzc2EtcGtjczEtdjFfNS1nZW5lcmF0ZS1rZXkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWJhNmNjYzNjYmJhYjY4YTdkODljNjg3ZGI4MGI1YTlmZjMwYWQ0MC4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlw
dG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWdlbmVyYXRlLWtleS5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNTcgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2NvbW1vbi5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4K
LTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci0KLTxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdCBnZW5lcmF0aW5nIGFuIFJTQSBrZXkgcGFpciBmb3Ig
UlNBU1NBLVBLQ1MxLXYxXzUuIik7Ci0KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1pZiAoIXdp
bmRvdy5zdWJ0bGUpCi0gICAgd2luZG93LmNyeXB0by5zdWJ0bGUgPSB3aW5kb3cuY3J5cHRvLndl
YmtpdFN1YnRsZTsKLQotdmFyIGFsZ29yaXRobUtleUdlbiA9IHsKLSAgICBuYW1lOiAiUlNBU1NB
LVBLQ1MxLXYxXzUiLAotICAgIC8vIFJzYUtleUdlblBhcmFtcwotICAgIG1vZHVsdXNMZW5ndGg6
IDIwNDgsCi0gICAgcHVibGljRXhwb25lbnQ6IG5ldyBVaW50OEFycmF5KFsweDAxLCAweDAwLCAw
eDAxXSksICAvLyBFcXVpdmFsZW50IHRvIDY1NTM3Ci19OwotdmFyIGV4dHJhY3RhYmxlID0gdHJ1
ZTsKLQotZGVidWcoIkdlbmVyYXRpbmcgYSBrZXkgcGFpci4uLiIpOwotY3J5cHRvLnN1YnRsZS5n
ZW5lcmF0ZUtleShhbGdvcml0aG1LZXlHZW4sIGV4dHJhY3RhYmxlLCBbInNpZ24iLCAidmVyaWZ5
Il0pLnRoZW4oZnVuY3Rpb24ocmVzdWx0KSB7Ci0gICAga2V5UGFpciA9IHJlc3VsdDsKLSAgICBz
aG91bGRCZSgia2V5UGFpci50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleVBhaXJdJyIpOwotICAg
IHNob3VsZEJlKCJrZXlQYWlyLnB1YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hv
dWxkQmUoImtleVBhaXIucHVibGljS2V5LmFsZ29yaXRobS5uYW1lIiwgIidyc2Fzc2EtcGtjczEt
djFfNSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuYWxnb3JpdGhtLm1vZHVs
dXNMZW5ndGgiLCAiMjA0OCIpOwotICAgIHNob3VsZEJlKCJieXRlQXJyYXlUb0hleFN0cmluZyhr
ZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIidbMDEgMDAgMDFd
JyIpOwotICAgIHNob3VsZEJlVW5kZWZpbmVkKCJrZXlQYWlyLnB1YmxpY0tleS5hbGdvcml0aG0u
aGFzaCIpOwotICAgIHNob3VsZEJlKCJrZXlQYWlyLnByaXZhdGVLZXkudHlwZSIsICIncHJpdmF0
ZSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIiwg
Iidyc2Fzc2EtcGtjczEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgia2V5UGFpci5wcml2YXRlS2V5
LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZUFy
cmF5VG9IZXhTdHJpbmcoa2V5UGFpci5wcml2YXRlS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVu
dCkiLCAiJ1swMSAwMCAwMV0nIik7Ci0gICAgc2hvdWxkQmVVbmRlZmluZWQoImtleVBhaXIucHJp
dmF0ZUtleS5hbGdvcml0aG0uaGFzaCIpOwotCi0gICAgZGVidWcoIlxuVGVzdGluZyB0aGF0IGN1
c3RvbSBhdHRyaWJ1dGVzIG9uIGtleXMgc3Vydml2ZSBnYXJiYWdlIGNvbGxlY3Rpb24uLi4iKTsK
LSAgICBrZXlQYWlyLnB1YmxpY0tleS5mb28gPSAiYmFyIjsKLSAgICBnYygpOwotICAgIHNldFRp
bWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAgICAgIGdjKCk7Ci0gICAgICAgIHNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7Ci0gICAgICAgICAgICBzaG91bGRCZSgia2V5UGFpci5wdWJsaWNLZXkuZm9vIiwg
IidiYXInIik7Ci0gICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgfSwgMCk7Ci0g
ICAgfSwgMCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2Vz
L2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2st
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFf
NS1pbXBvcnQtandrLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
OTYzYTllZDQ1YzdhZTI2NTg1YmQ3NDUxODAzYWI2ZmNjZjliMzMyNC4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9jcnlwdG8vc3VidGxl
L3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2stZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjYgKzAsMCBAQAotVGVzdCBpbXBvcnRpbmcgYW4gUlNBIGtleSBmb3IgUlNBU1NBLVBL
Q1MxLXYxXzUuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1JbXBvcnRpbmcgYSBw
dWJsaWMga2V5Li4uCi1QQVNTIHB1YmxpY0tleS50b1N0cmluZygpIGlzICdbb2JqZWN0IEtleV0n
Ci1QQVNTIHB1YmxpY0tleS50eXBlIGlzICdwdWJsaWMnCi1QQVNTIHB1YmxpY0tleS51c2FnZXMg
aXMgWydzaWduJywndmVyaWZ5J10KLVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5uYW1lIGlzICdy
c2Fzc2EtcGtjczEtdjFfNScKLVBBU1MgcHVibGljS2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3Ro
IGlzIDIwNDgKLVBBU1MgYnl0ZUFycmF5VG9IZXhTdHJpbmcocHVibGljS2V5LmFsZ29yaXRobS5w
dWJsaWNFeHBvbmVudCkgaXMgJ1swMSAwMCAwMV0nCi1QQVNTIHB1YmxpY0tleS5hbGdvcml0aG0u
aGFzaC5uYW1lIGlzICdzaGEtMjU2JwotCi1JbXBvcnRpbmcgYSBwcml2YXRlIGtleS4uLgotUEFT
UyBwcml2YXRlS2V5LnRvU3RyaW5nKCkgaXMgJ1tvYmplY3QgS2V5XScKLVBBU1MgcHJpdmF0ZUtl
eS50eXBlIGlzICdwcml2YXRlJwotUEFTUyBwcml2YXRlS2V5LnVzYWdlcyBpcyBbJ3NpZ24nLCd2
ZXJpZnknXQotUEFTUyBwcml2YXRlS2V5LmFsZ29yaXRobS5uYW1lIGlzICdyc2Fzc2EtcGtjczEt
djFfNScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0ubW9kdWx1c0xlbmd0aCBpcyAyMDQ4Ci1Q
QVNTIGJ5dGVBcnJheVRvSGV4U3RyaW5nKHByaXZhdGVLZXkuYWxnb3JpdGhtLnB1YmxpY0V4cG9u
ZW50KSBpcyAnWzAxIDAwIDAxXScKLVBBU1MgcHJpdmF0ZUtleS5hbGdvcml0aG0uaGFzaC5uYW1l
IGlzICdzaGEtMjU2JwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NyeXB0by9zdWJ0bGUvcnNhc3NhLXBr
Y3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sIGIvTGF5b3V0VGVzdHMvY3J5cHRvL3N1YnRsZS9yc2Fz
c2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDM0ZjczMDY5NTZlZTRmMDU1ODFlNTczOTczNzM0ZTI4MmI2OGFiM2EuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvY3J5cHRvL3N1
YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1pbXBvcnQtandrLmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSw2OCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvY29tbW9uLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLQotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUZXN0IGltcG9ydGluZyBhbiBSU0Ega2V5IGZvciBSU0FTU0EtUEtDUzEt
djFfNS4iKTsKLQotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWlmICghd2luZG93LnN1YnRsZSkK
LSAgICB3aW5kb3cuY3J5cHRvLnN1YnRsZSA9IHdpbmRvdy5jcnlwdG8ud2Via2l0U3VidGxlOwot
Ci12YXIgZXh0cmFjdGFibGUgPSB0cnVlOwotCi12YXIgcHVibGljS2V5SlNPTiA9IHsKLSAgICBr
dHk6ICJSU0EiLAotICAgIGFsZzogIlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xRElo
Q3pxa25UaFdhd09wOFFMazhaaXkycDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFj
VDlhZ3B6SXpjLU1iTFNISUdnV1FHTzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91
N1hTU0xEb1JuUjBRRzVNc0RoRDZzMmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09T
Z1pETEs4VW5DU2dBMU9ndVo5ODliRnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1Zl
TkgtaWc4NTdPU2N5V2JHeUV5M0JpdzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtO
czZSLU15eXE3MktVcDAybUpEWmlpeWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIK
LX07Ci0KLXZhciBwcml2YXRlS2V5SlNPTiA9IHsKLSAgICBrdHk6ICJSU0EiLAotICAgIGFsZzog
IlJTMjU2IiwKLSAgICBuOiAicmNDVUN2N09jMUhWYW0xREloQ3pxa25UaFdhd09wOFFMazhaaXky
cDEwQnlqUUZDYWpvRml5dUFXbC1SMVdYWmFmNHhpdExScmFjVDlhZ3B6SXpjLU1iTFNISUdnV1FH
TzIxbEdpSW15NWZ0Wi1EOGJIQXFSejJ5MTVwekQ0YzRDRW91N1hTU0xEb1JuUjBRRzVNc0RoRDZz
MmdWOW13SGtydGtDeHRNV2RCaS03N2FzOHdHbWxOUmxkY09TZ1pETEs4VW5DU2dBMU9ndVo5ODli
RnljOHRPT0VJYjB4VVNmUFN6M0xQU0NueVl6NjhhRGptS1ZlTkgtaWc4NTdPU2N5V2JHeUV5M0Jp
dzY0cXVuM2p1VWxOV3NKM3puZ2tPZHRlWVd5dHg1UXI0WEtOczZSLU15eXE3MktVcDAybUpEWmlp
eWlnbHhNTF9pMy1fQ2VlY0N3IiwKLSAgICBlOiAiQVFBQiIsCi0gICAgZDogImVOTFMzN2FDejdS
WFNOUERfRHRMQko2ajVUOGNTeGR6UkJDalBhSTZXY0dxSnAxNmxxM1VUd3VvRExBcWxBOW9HWW0y
Mzhkc0lXcHV1Y1BfbFF0YldlLTdTcHhvSTZfdm1ZR2Y3WVZVSHYxLURGOXFpT21Tck1tZHhNblZP
ellYWThSYVQ2dGhQam5fSjVjZkxWMnhJX0x3c3JNdG1wZFN5TmxnWDB6VFVod3R1YWhnQUtNRUNo
WWpIMkVuakhkSHc2c1kyLXdBcGRjUUk3VUxFMG9vNVJ6YlFacG11aGNOOWhpQmMwTDNoaEYwcW81
MG1ibDAyXzY1X0dRN0RwVmtYQnhOZ1JCTHpsUGFibXp6RzJvQWhmZWZMZ1ltU0Mxb3BhQ2tYRTZ2
UldRTldOTDQ1UlpOWkZZTTN1b0pnaE9NcUdlb2NNMEJwamRDaEhyUE9sRnZTUSIsCi0gICAgcDog
IjRtaVR1QWpLTWVINXVKNUtCMzk3UVV3aGJrWUVnU2JjQTJtaWZtU2t2RTIwMThnYjU1cWtCSEsx
ZVZyeWYxX200M0xObGM2T19hazZnZnpkWkladlM1TkNHalBsMHEwOXBsVXB1OHFGT1NzcEJ3QTY3
cUdINzZsRmxaTG5fZDR5Z2xTN3dmTHJ1NF81WXM4cUxMcy1EcVZMdml3cG9zT255eVdxd001QVhw
MCIsCi0gICAgcTogInhIWXJ6a2l2dG1uel9zR2NobldHYzBxLXBET2tLaWNwdFJwdjJwTUZJSVh4
bkZYNWFNZUVYSVpqVnVqWHR3VXkxVWxGSU4yR1pKU3Z5NUtKNzltdV9YeU5uRkhNemVkSC1BM2Vl
M3U4aDFVVXJaRi12VXUxX2U0VV94NjdOTjFkZWR6VVNLeW5ON3BGbDNPa3VTaE1CV0dWLWN3ek9Q
ZGNWQWZWdVpseFVNYyIsCi0gICAgZHA6ICJmQnpEellEVUJtQlFHb3A3SG4wZHZmX1QyN1Y2UnFw
Y3RXbzA3NENRWmNGYlAyYXRGVnRLU2ozdmlXVDN4aWQyVkh6Y2dpREhkZnBNM25FVmxFTzF3d0lv
bkdDU3ZkakdFT1ppaUZWT2pyWkFPVnhBOGd1T2p5eUZ2cWJYa2UwNlZ3UElJVnZmS2VTVTJ6dWhi
UF9fMXR0NkZfZnhvdzRLYjJ4b25HVDBHR2siLAotICAgIGRxOiAiam1FMkRpSVBkaHdEZ0xYQVFw
SWFCcVE4MWJPM1hmVlRfTFJVTEF3d3d3bFB1UVYxNDhIMDR6bGg5VEo2WTJHWkhZb2tWMVUwZU9C
cEp4ZmtiN2RMWXRwSnB1aUJqUmY0eUlVRW9HbGtrSV9RbEpuRlNGci1ZakdSZGZOSHFXQmt4bFNN
Wkw3NzBSOW1JQVRuZEdrSDd6NXgtcjlLd0JaRkM0RkNHMmhnX3pFIiwKLSAgICBxaTogIllDWF9w
THdiTUJBMVRoVkgwV2N3bW55dHFOY3JNQ0V3VG03QnlBMmVVNm5XYlFyVUx2ZjdtOV9remZMVWNq
c25wQVZsQlFHNUpNWE15MFNxNHB0d2J5d3NhNS1HOEtBT09PUjJMM3Y0aEMtRXlzOWZ0Z0ZNXzNp
MG80MGVlUUg0YjNoYVBibnRySWVNZzhJemxPdVZZS2Y5LTJRdUtEb1dlUmRkN05zZHhUayIKLX07
Ci0KLWRlYnVnKCJJbXBvcnRpbmcgYSBwdWJsaWMga2V5Li4uIik7Ci1jcnlwdG8uc3VidGxlLmlt
cG9ydEtleSgiandrIiwgYXNjaWlUb0FycmF5QnVmZmVyKEpTT04uc3RyaW5naWZ5KHB1YmxpY0tl
eUpTT04pKSwgbnVsbCwgZXh0cmFjdGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSkudGhlbihmdW5j
dGlvbihyZXN1bHQpIHsKLSAgICBwdWJsaWNLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInB1
YmxpY0tleS50b1N0cmluZygpIiwgIidbb2JqZWN0IEtleV0nIik7Ci0gICAgc2hvdWxkQmUoInB1
YmxpY0tleS50eXBlIiwgIidwdWJsaWMnIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS51c2Fn
ZXMiLCAiWydzaWduJywndmVyaWZ5J10iKTsKLSAgICBzaG91bGRCZSgicHVibGljS2V5LmFsZ29y
aXRobS5uYW1lIiwgIidyc2Fzc2EtcGtjczEtdjFfNSciKTsKLSAgICBzaG91bGRCZSgicHVibGlj
S2V5LmFsZ29yaXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0
ZUFycmF5VG9IZXhTdHJpbmcocHVibGljS2V5LmFsZ29yaXRobS5wdWJsaWNFeHBvbmVudCkiLCAi
J1swMSAwMCAwMV0nIik7Ci0gICAgc2hvdWxkQmUoInB1YmxpY0tleS5hbGdvcml0aG0uaGFzaC5u
YW1lIiwgIidzaGEtMjU2JyIpOwotICAgIGRlYnVnKCJcbkltcG9ydGluZyBhIHByaXZhdGUga2V5
Li4uIik7Ci0gICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJqd2siLCBhc2NpaVRv
QXJyYXlCdWZmZXIoSlNPTi5zdHJpbmdpZnkocHJpdmF0ZUtleUpTT04pKSwgbnVsbCwgZXh0cmFj
dGFibGUsIFsic2lnbiIsICJ2ZXJpZnkiXSk7Ci19KS50aGVuKGZ1bmN0aW9uKHJlc3VsdCkgewot
ICAgIHByaXZhdGVLZXkgPSByZXN1bHQ7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudG9TdHJp
bmcoKSIsICInW29iamVjdCBLZXldJyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LnR5cGUi
LCAiJ3ByaXZhdGUnIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkudXNhZ2VzIiwgIlsnc2ln
bicsJ3ZlcmlmeSddIik7Ci0gICAgc2hvdWxkQmUoInByaXZhdGVLZXkuYWxnb3JpdGhtLm5hbWUi
LCAiJ3JzYXNzYS1wa2NzMS12MV81JyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29y
aXRobS5tb2R1bHVzTGVuZ3RoIiwgIjIwNDgiKTsKLSAgICBzaG91bGRCZSgiYnl0ZUFycmF5VG9I
ZXhTdHJpbmcocHJpdmF0ZUtleS5hbGdvcml0aG0ucHVibGljRXhwb25lbnQpIiwgIidbMDEgMDAg
MDFdJyIpOwotICAgIHNob3VsZEJlKCJwcml2YXRlS2V5LmFsZ29yaXRobS5oYXNoLm5hbWUiLCAi
J3NoYS0yNTYnIik7Ci0gICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotCi08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="239844"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>216819</attachid>
            <date>2013-11-13 10:37:03 -0800</date>
            <delta_ts>2013-11-13 11:17:34 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>InitializeVariables.txt</filename>
            <type>text/plain</type>
            <size>3260</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1OTIwOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDEzLTExLTEzICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIGNyeXB0by9zdWJ0bGUvcnNh
c3NhLXBrY3MxLXYxXzUtaW1wb3J0LWp3ay5odG1sIGlzIGZhaWxpbmcgb24gTWF2ZXJpY3MgcmVs
ZWFzZSBib3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNDI4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogY3J5cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwOiAoV2ViQ29yZTo6Q3J5cHRvS2V5UlNB
OjpidWlsZEFsZ29yaXRobURlc2NyaXB0aW9uKToKKyAgICAgICAgRG9uJ3QgYmUgYSBtdXBwZXQs
IGluaXRpYWxpemUgeW91ciB2YXJpYWJsZXMuCisKIDIwMTMtMTEtMTIgIEplciBOb2JsZSAgPGpl
ci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhUTUxNZWRpYUVs
ZW1lbnQuZmFzdFNlZWsoKQpJbmRleDogU291cmNlL1dlYkNvcmUvY3J5cHRvL21hYy9DcnlwdG9L
ZXlSU0FNYWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9tYWMvQ3J5
cHRvS2V5UlNBTWFjLmNwcAkocmV2aXNpb24gMTU5MjAzKQorKysgU291cmNlL1dlYkNvcmUvY3J5
cHRvL21hYy9DcnlwdG9LZXlSU0FNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsMTIgKzEx
MiwxNSBAQCB2b2lkIENyeXB0b0tleVJTQTo6YnVpbGRBbGdvcml0aG1EZXNjcmlwCiAgICAgYm9v
bCBwbGF0Zm9ybUtleUlzUHVibGljID0gQ0NSU0FHZXRLZXlUeXBlKG1fcGxhdGZvcm1LZXkpID09
IGNjUlNBS2V5UHVibGljOwogICAgIENDUlNBQ3J5cHRvclJlZiBwdWJsaWNLZXkgPSBwbGF0Zm9y
bUtleUlzUHVibGljID8gbV9wbGF0Zm9ybUtleSA6IENDUlNBQ3J5cHRvckdldFB1YmxpY0tleUZy
b21Qcml2YXRlS2V5KG1fcGxhdGZvcm1LZXkpOwogCi0gICAgc2l6ZV90IG1vZHVsdXNMZW5ndGg7
Ci0gICAgc2l6ZV90IGV4cG9uZW50TGVuZ3RoOworICAgIHVpbnQ4X3QgbW9kdWx1c1sxNjM4NF07
CisgICAgc2l6ZV90IG1vZHVsdXNMZW5ndGggPSBzaXplb2YobW9kdWx1cyk7CiAgICAgdWludDhf
dCBwdWJsaWNFeHBvbmVudFsxNjM4NF07Ci0gICAgc2l6ZV90IGR1bW15OwotICAgIHVpbnQ4X3Qg
YnVmWzE2Mzg0XTsKLSAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVzID0gQ0NSU0FHZXRLZXlDb21w
b25lbnRzKHB1YmxpY0tleSwgYnVmLCAmbW9kdWx1c0xlbmd0aCwgcHVibGljRXhwb25lbnQsICZl
eHBvbmVudExlbmd0aCwgYnVmLCAmZHVtbXksIGJ1ZiwgJmR1bW15KTsKKyAgICBzaXplX3QgZXhw
b25lbnRMZW5ndGggPSBzaXplb2YoMTYzODQpOworICAgIHVpbnQ4X3QgcFsxNjM4NF07CisgICAg
c2l6ZV90IHBMZW5ndGggPSBzaXplb2YocCk7CisgICAgdWludDhfdCBxWzE2Mzg0XTsKKyAgICBz
aXplX3QgcUxlbmd0aCA9IHNpemVvZihxKTsKKyAgICBDQ0NyeXB0b3JTdGF0dXMgc3RhdHVzID0g
Q0NSU0FHZXRLZXlDb21wb25lbnRzKHB1YmxpY0tleSwgbW9kdWx1cywgJm1vZHVsdXNMZW5ndGgs
IHB1YmxpY0V4cG9uZW50LCAmZXhwb25lbnRMZW5ndGgsIHAsICZwTGVuZ3RoLCBxLCAmcUxlbmd0
aCk7CiAgICAgaWYgKCFwbGF0Zm9ybUtleUlzUHVibGljKSB7CiAgICAgICAgIC8vIENDUlNBQ3J5
cHRvckdldFB1YmxpY0tleUZyb21Qcml2YXRlS2V5IGhhcyAiR2V0IiBpbiB0aGUgbmFtZSwgYnV0
IGl0cyByZXN1bHQgbmVlZHMgdG8gYmUgcmVsZWFzZWQgKHNlZSA8cmRhcjovL3Byb2JsZW0vMTU0
NDk2OTc+KS4KICAgICAgICAgQ0NSU0FDcnlwdG9yUmVsZWFzZShwdWJsaWNLZXkpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gMTU5MjA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMTEtMTMgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEBhcHBsZS5jb20+CisKKyAgICAgICAgY3J5cHRvL3N1YnRsZS9yc2Fzc2EtcGtjczEtdjFfNS1p
bXBvcnQtandrLmh0bWwgaXMgZmFpbGluZyBvbiBNYXZlcmljcyByZWxlYXNlIGJvdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0MjgwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRp
b25zOiBVbnNraXAuCisKIDIwMTMtMTEtMTIgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEhUTUxNZWRpYUVsZW1lbnQuZmFzdFNlZWso
KQpJbmRleDogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxNTkyMDMpCisrKyBMYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC02OSw1ICs2OSwzIEBAIGZhc3Qv
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW0tY2xvbmUuaHRtbCAKICMgVGhlIHNwZWMgaXMgbm90IGNs
ZWFyIGlmIHRoZSBNZWRpYVN0cmVhbSBlbmRlZCBldmVudCBzaG91bGQgYmUgZmlyZWQgaWYgc3Rv
cCBpcyBjYWxsZWQgb24gZWFjaCBNZWRpYVN0cmVhbSdzIHRyYWNrCiAjIFNraXBwaW5nIGl0IGZv
ciBub3csIHRoZW4gcHV0IGl0IGFnYWluIHdoZW4gdGhlIHNwZWMgZGVjaWRlcyBpdAogZmFzdC9t
ZWRpYXN0cmVhbS9NZWRpYVN0cmVhbS1vbmVuZGVkLmh0bWwgWyBTa2lwIF0KLQotd2Via2l0Lm9y
Zy9iLzEyNDI4MCBjcnlwdG8vc3VidGxlL3JzYXNzYS1wa2NzMS12MV81LWltcG9ydC1qd2suaHRt
bCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>