<?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>101388</bug_id>
          
          <creation_ts>2012-11-06 13:34:45 -0800</creation_ts>
          <short_desc>REGRESSION(r133526): May have caused 15% memory regression in Chromium (Requested by jsbell|gardener on #webkit).</short_desc>
          <delta_ts>2012-11-06 13:38:08 -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>101110</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>759999</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 13:34:45 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/133526 broke the build:
May have caused 15% memory regression in Chromium (Requested by jsbell|gardener on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760004</commentid>
    <comment_count>1</comment_count>
      <attachid>172639</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-06 13:35:29 -0800</bug_when>
    <thetext>Created attachment 172639
ROLLOUT of r133526

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>760005</commentid>
    <comment_count>2</comment_count>
      <attachid>172639</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-06 13:38:06 -0800</bug_when>
    <thetext>Comment on attachment 172639
ROLLOUT of r133526

Clearing flags on attachment: 172639

Committed r133665: &lt;http://trac.webkit.org/changeset/133665&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760006</commentid>
    <comment_count>3</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-11-06 13:38:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172639</attachid>
            <date>2012-11-06 13:35:29 -0800</date>
            <delta_ts>2012-11-06 13:38:06 -0800</delta_ts>
            <desc>ROLLOUT of r133526</desc>
            <filename>bug-101388-20121106214150.patch</filename>
            <type>text/plain</type>
            <size>47542</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyNWUxMTk5MWRlZmI5
ZDQwN2NmYWRkY2I5OTFhMDFiZGQ3ODg4Yy4uNTBjMTk2Mzg2ZGZiYzVkYTJhMmQ0NmNhMTM5NjFi
NDI5N2Y3ZmVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkyIEBACisyMDEyLTExLTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMzNTI2LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzM1MjYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEwMTM4OAorCisgICAgICAgIE1heSBoYXZlIGNhdXNlZCAxNSUgbWVtb3J5IHJl
Z3Jlc3Npb24gaW4gQ2hyb21pdW0gKFJlcXVlc3RlZAorICAgICAgICBieSBqc2JlbGx8Z2FyZGVu
ZXIgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBVc2VWOC5jbWFrZToKKyAgICAgICAgKiBXZWJD
b3JlLmd5cGk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06
CisgICAgICAgIChHZW5lcmF0ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJH
ZXR0ZXIpOgorICAgICAgICAoR2VuZXJhdGVDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAg
KEdlbmVyYXRlTmFtZWRDb25zdHJ1Y3RvckNhbGxiYWNrKToKKyAgICAgICAgKEdlbmVyYXRlVG9W
OENvbnZlcnRlcnMpOgorICAgICAgICAoR2V0RG9tTWFwRnVuY3Rpb24pOgorICAgICAgICAoR2V0
RG9tTWFwTmFtZSk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2
NEFycmF5Lmg6CisgICAgICAgIChXZWJDb3JlOjpWOEZsb2F0NjRBcnJheTo6d3JhcCk6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oOgor
ICAgICAgICAoV2ViQ29yZTo6VjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OlY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3cmFwKToKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6VjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6d3JhcCk6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgIChX
ZWJDb3JlOjpWOFRlc3RFdmVudFRhcmdldDo6d3JhcCk6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0
RXhjZXB0aW9uOjp3cmFwKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RJbnRlcmZhY2U6OndyYXAp
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyOjp3cmFwKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFt
ZWRDb25zdHJ1Y3Rvci5oOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0TmFtZWRDb25zdHJ1Y3Rv
cjo6d3JhcCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6VjhUZXN0Tm9kZTo6Y29uc3RydWN0b3JDYWxsYmFjayk6
CisgICAgICAgIChXZWJDb3JlOjpWOFRlc3ROb2RlOjp3cmFwU2xvdyk6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHA6CisgICAgICAgIChXZWJDb3JlOjpU
ZXN0T2JqVjhJbnRlcm5hbDo6cmVhZE9ubHlUZXN0T2JqQXR0ckF0dHJHZXR0ZXIpOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4VGVzdE9iajo6d3JhcCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6VjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlOjp3cmFwKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NRGF0
YVN0b3JlOjpET01EYXRhU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6RE9NRGF0YVN0b3JlOjp+
RE9NRGF0YVN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkRPTURhdGFTdG9yZTo6Y3VycmVudCk6
CisgICAgICAgIChXZWJDb3JlOjpET01EYXRhU3RvcmU6OnJlcG9ydE1lbW9yeVVzYWdlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRP
TURhdGFTdG9yZTo6ZG9tTm9kZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpET01EYXRhU3RvcmU6
OmRvbU9iamVjdE1hcCk6CisgICAgICAgIChET01EYXRhU3RvcmUpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L0RPTVdyYXBwZXJNYXAuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoRE9N
V3JhcHBlck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVyTWFwOjp+RE9NV3JhcHBl
ck1hcCk6CisgICAgICAgIChXZWJDb3JlOjpET01XcmFwcGVySGFzaE1hcDo6cmVtb3ZlKToKKyAg
ICAgICAgKiBiaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaDoKKyAgICAgICAgKiBiaW5kaW5n
cy92OC9JbnRydXNpdmVET01XcmFwcGVyTWFwLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChJbnRydXNpdmVET01XcmFwcGVyTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
dHJ1c2l2ZURPTVdyYXBwZXJNYXA6OndlYWtDYWxsYmFjayk6CisgICAgICAgICogYmluZGluZ3Mv
djgvU2NyaXB0UHJvZmlsZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuZXV0ZXJCaW5kaW5nKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9WOERPTU1hcC5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIuY3BwLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRET01Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6Omdl
dERPTU9iamVjdE1hcCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01NYXAuaDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAu
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdpbmRvd1No
ZWxsLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6VjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01Ob2RlKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAg
ICAgICAoVjhET01XcmFwcGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3JhcHBlcjo6Z2V0
Q2FjaGVkV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdyYXBwZXI6OnNldEpTV3Jh
cHBlckZvckRPTU9iamVjdCk6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4TlBPYmplY3QuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHA6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
djgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnY4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9yQ2FsbGJhY2spOgorCiAyMDEyLTEx
LTA2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFNvbWUg
Y29va2llIGNvZGUgY2xlYW51cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0ZDkwOTdl
YjM3OGFjOTg4NDMyYjQwMWRjNDc0MTYxMzJhYjdmMTg3Li5mNmU1ODEyNjZjZjIzYjE4Yzk1YzEz
OGVhZjE0YzY2MTFlY2Y5YjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDE2IEBACiAyMDEyLTExLTA2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWls
LmNvbT4KIAorICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMzNTI2LgorICAgICAg
ICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzM1MjYKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTM4OAorCisgICAgICAgIE1heSBo
YXZlIGNhdXNlZCAxNSUgbWVtb3J5IHJlZ3Jlc3Npb24gaW4gQ2hyb21pdW0gKFJlcXVlc3RlZAor
ICAgICAgICBieSBqc2JlbGx8Z2FyZGVuZXIgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBzcmMv
V2ViU2NyaXB0Q29udHJvbGxlci5jcHA6CisKKzIwMTItMTEtMDYgIFNoZXJpZmYgQm90ICA8d2Vi
a2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCiAgICAgICAgIFVucmV2aWV3ZWQuICBSb2xsZWQg
REVQUy4KIAogICAgICAgICAqIERFUFM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Vc2VW
OC5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCmluZGV4IDdkZTA5NGM2MDYxNjVk
NzhmZmE0MjA3ZThiZjI4YjA0YzEwOTRkNTIuLmI2MzU4ZjdjNzY1ZmRiZGRhZDE1ZmU0ODBhOGRk
MzAzYTU1NzdjZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1VzZVY4LmNtYWtlCkBAIC00OCw2ICs0OCw3IEBAIExJU1QoQVBQRU5E
IFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL3Y4L1Y4QmluZGluZy5jcHAKICAgICBiaW5k
aW5ncy92OC9WOENvbGxlY3Rpb24uY3BwCiAgICAgYmluZGluZ3MvdjgvVjhET01Db25maWd1cmF0
aW9uLmNwcCwKKyAgICBiaW5kaW5ncy92OC9WOERPTU1hcC5jcHAKICAgICBiaW5kaW5ncy92OC9W
OERPTVdpbmRvd1NoZWxsLmNwcAogICAgIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKICAg
ICBiaW5kaW5ncy92OC9WOEV2ZW50TGlzdGVuZXIuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggY2I0
MjQyNjE4MzA2M2U0Yzg5NTRiOGFmOGQ2YzY4YzEyOTY0ZWRlNy4uYTI5Yzg2YTM3NmJjNzg2ZDU1
MDk1ZThhODQ2OTc5NTI1YWQ5MTc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMjIzMyw2ICsyMjMz
LDcgQEAKICAgICAgICAgICAgICdiaW5kaW5ncy92OC9EYXRlRXh0ZW5zaW9uLmgnLAogICAgICAg
ICAgICAgJ2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwJywKICAgICAgICAgICAg
ICdiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmgnLAorICAgICAgICAgICAgJ2JpbmRp
bmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3Mv
djgvSmF2YVNjcmlwdENhbGxGcmFtZS5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L0ph
dmFTY3JpcHRDYWxsRnJhbWUuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvTlBPYmplY3RX
cmFwcGVyLmNwcCcsCkBAIC0yMzAxLDYgKzIzMDIsOCBAQAogICAgICAgICAgICAgJ2JpbmRpbmdz
L3Y4L1Y4RGVwZW5kZW50UmV0YWluZWQuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhE
T01Db25maWd1cmF0aW9uLmNwcCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhET01Db25m
aWd1cmF0aW9uLmgnLAorICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcCcsCisg
ICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhET01NYXAuaCcsCiAgICAgICAgICAgICAnYmluZGlu
Z3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAnLAogICAgICAgICAgICAgJ2JpbmRpbmdzL3Y4L1Y4
RE9NV2luZG93U2hlbGwuaCcsCiAgICAgICAgICAgICAnYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCmluZGV4IDJkOWY5MTJlMmI3ODMwOWEzZDE4NDk5OGU4MGE1ZjJmYTRjMDY3MmIu
LjZmOTk1Y2I4NGM0OGI2ODNhNWRhOTM2NDNkNGNlMDcxMjE5YTQ3Y2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC01MDIs
NyArNTAyLDggQEAgRU5ECiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+ICR7Y2xhc3NOYW1lfTo6d3Jh
cCgke25hdGl2ZVR5cGV9KiBpbXBsLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29u
dGV4dCwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCiB7CiBFTkQKLSAgICBteSAkZ2V0Q2FjaGVkV3Jh
cHBlciA9IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKSA/ICJWOERPTVdyYXBwZXI6OmdldENhY2hl
ZFdyYXBwZXIoaW1wbCkiIDogIkRPTURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+Z2V0KGlt
cGwpIjsKKyAgICBteSAkZG9tTWFwRnVuY3Rpb24gPSBHZXREb21NYXBGdW5jdGlvbigkZGF0YU5v
ZGUsICRpbnRlcmZhY2VOYW1lLCAiaXNvbGF0ZSIpOworICAgIG15ICRnZXRDYWNoZWRXcmFwcGVy
ID0gSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpID8gIlY4RE9NV3JhcHBlcjo6Z2V0Q2FjaGVkV3Jh
cHBlcihpbXBsKSIgOiAiJHtkb21NYXBGdW5jdGlvbn0uZ2V0KGltcGwpIjsKICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9ICRnZXRDYWNoZWRXcmFwcGVyOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgp
KQpAQCAtMTAzNiw3ICsxMDM3LDggQEAgRU5ECiAgICAgICAgICMgQ2hlY2sgZm9yIGEgd3JhcHBl
ciBpbiB0aGUgd3JhcHBlciBjYWNoZS4gSWYgdGhlcmUgaXMgb25lLCB3ZSBrbm93IHRoYXQgYSBo
aWRkZW4gcmVmZXJlbmNlIGhhcyBhbHJlYWR5CiAgICAgICAgICMgYmVlbiBjcmVhdGVkLiBJZiB3
ZSBkb24ndCBmaW5kIGEgd3JhcHBlciwgd2UgY3JlYXRlIGJvdGggYSB3cmFwcGVyIGFuZCBhIGhp
ZGRlbiByZWZlcmVuY2UuCiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgUmVm
UHRyPCRyZXR1cm5UeXBlPiByZXN1bHQgPSAke2dldHRlclN0cmluZ307XG4iKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBl
ciA9IHJlc3VsdC5nZXQoKSA/IHY4OjpIYW5kbGU8djg6OlZhbHVlPihET01EYXRhU3RvcmU6OmN1
cnJlbnQoaW5mby5HZXRJc29sYXRlKCkpLT5nZXQocmVzdWx0LmdldCgpKSkgOiB2OFVuZGVmaW5l
ZCgpO1xuIik7CisgICAgICAgIG15ICRkb21NYXBGdW5jdGlvbiA9IEdldERvbU1hcEZ1bmN0aW9u
KCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUsICJpbmZvLkdldElzb2xhdGUoKSIpOworICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB3cmFw
cGVyID0gcmVzdWx0LmdldCgpID8gJHtkb21NYXBGdW5jdGlvbn0uZ2V0KHJlc3VsdC5nZXQoKSkg
OiB2OFVuZGVmaW5lZCgpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIg
ICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIiAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpLCBpbmZvLkhvbGRl
cigpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnRE
ZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSlcbiIpOwpAQCAtMTk0MCwxMCAr
MTk0MiwxMSBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGdvdG8g
ZmFpbDtcbiIpOwogICAgIH0KIAorICAgIG15ICRET01PYmplY3QgPSBHZXREb21NYXBOYW1lKCRk
YXRhTm9kZSwgJGltcGxDbGFzc05hbWUpOwogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7
CiAKICAgICBWOERPTVdyYXBwZXI6OnNldERPTVdyYXBwZXIod3JhcHBlciwgJmluZm8sIGltcGwu
Z2V0KCkpOwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwu
cmVsZWFzZSgpLCB3cmFwcGVyLCBhcmdzLkdldElzb2xhdGUoKSk7CisgICAgVjhET01XcmFwcGVy
OjpzZXRKU1dyYXBwZXJGb3Ike0RPTU9iamVjdH0oaW1wbC5yZWxlYXNlKCksIHdyYXBwZXIsIGFy
Z3MuR2V0SXNvbGF0ZSgpKTsKICAgICByZXR1cm4gd3JhcHBlcjsKIEVORAogCkBAIC0yMTMxLDEw
ICsyMTM0LDExIEBAIEVORAogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgZ290
byBmYWlsO1xuIik7CiAgICAgfQogCisgICAgbXkgJERPTU9iamVjdCA9IEdldERvbU1hcE5hbWUo
JGRhdGFOb2RlLCAkaW1wbENsYXNzTmFtZSk7CiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5E
KTsKIAogICAgIFY4RE9NV3JhcHBlcjo6c2V0RE9NV3JhcHBlcih3cmFwcGVyLCAmVjgke2ltcGxD
bGFzc05hbWV9Q29uc3RydWN0b3I6OmluZm8sIGltcGwuZ2V0KCkpOwotICAgIFY4RE9NV3JhcHBl
cjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwucmVsZWFzZSgpLCB3cmFwcGVyLCBhcmdz
LkdldElzb2xhdGUoKSk7CisgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3Ike0RPTU9i
amVjdH0oaW1wbC5yZWxlYXNlKCksIHdyYXBwZXIsIGFyZ3MuR2V0SXNvbGF0ZSgpKTsKICAgICBy
ZXR1cm4gd3JhcHBlcjsKIEVORAogCkBAIC0zMzk4LDYgKzM0MDIsNyBAQCBzdWIgR2VuZXJhdGVU
b1Y4Q29udmVydGVycwogICAgIG15ICRjbGFzc05hbWUgPSBzaGlmdDsKICAgICBteSAkbmF0aXZl
VHlwZSA9IHNoaWZ0OwogCisgICAgbXkgJGRvbU1hcE5hbWUgPSBHZXREb21NYXBOYW1lKCRkYXRh
Tm9kZSwgJGludGVyZmFjZU5hbWUpOwogICAgIG15ICR3cmFwU2xvd0FyZ3VtZW50VHlwZSA9IEdl
dFBhc3NSZWZQdHJUeXBlKCRuYXRpdmVUeXBlKTsKICAgICBteSAkYmFzZVR5cGUgPSBCYXNlSW50
ZXJmYWNlTmFtZSgkZGF0YU5vZGUpOwogCkBAIC0zNDU4LDcgKzM0NjMsNyBAQCBFTkQKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3Jh
cHBlciwgaW1wbC5nZXQoKSk7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBl
ckhhbmRsZSA9IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwsIHdy
YXBwZXIsIGlzb2xhdGUpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJI
YW5kbGUgPSBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvciR7ZG9tTWFwTmFtZX0oaW1wbCwg
d3JhcHBlciwgaXNvbGF0ZSk7CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAg
ICAgd3JhcHBlckhhbmRsZS5NYXJrSW5kZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsK
QEAgLTM0NjYsNiArMzQ3MSwyNCBAQCBFTkQKIEVORAogfQogCitzdWIgR2V0RG9tTWFwRnVuY3Rp
b24KK3sKKyAgICBteSAkZGF0YU5vZGUgPSBzaGlmdDsKKyAgICBteSAkaW50ZXJmYWNlTmFtZSA9
IHNoaWZ0OworICAgIG15ICRnZXRJc29sYXRlID0gc2hpZnQ7CisKKyAgICByZXR1cm4gImdldCIg
LiBHZXREb21NYXBOYW1lKCRkYXRhTm9kZSwgJGludGVyZmFjZU5hbWUpIC4gIk1hcCgiIC4gJGdl
dElzb2xhdGUgLiAiKSI7Cit9CisKK3N1YiBHZXREb21NYXBOYW1lCit7CisgICAgbXkgJGRhdGFO
b2RlID0gc2hpZnQ7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsKKworICAgIHJldHVybiAiRE9NTm9k
ZSIgaWYgSXNOb2RlU3ViVHlwZSgkZGF0YU5vZGUpOworICAgIHJldHVybiAiRE9NT2JqZWN0IjsK
K30KKwogc3ViIEdldE5hdGl2ZVR5cGVGb3JDb252ZXJzaW9ucwogewogICAgIG15ICRkYXRhTm9k
ZSA9IHNoaWZ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuaAppbmRleCBiZTAxYjFjMDZkZWYzNDFhZThkODhmNjJl
YTk3MmJkOWY4YmQ4NDBlLi5hZmIwMTM0NGViZTFlZWEzYzdiNTAyNjg3ZGQ2OTI1Y2Q2OTk5YTIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhG
bG9hdDY0QXJyYXkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhGbG9hdDY0QXJyYXkuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogCiB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4RmxvYXQ2NEFycmF5Ojp3cmFwKEZsb2F0NjRBcnJheSogaW1wbCwg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQogewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBET01EYXRh
U3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLmdldChpbXBsKTsK
ICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB3cmFw
cGVyOwogICAgIHJldHVybiBWOEZsb2F0NjRBcnJheTo6d3JhcFNsb3coaW1wbCwgY3JlYXRpb25D
b250ZXh0LCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCAxOTIz
ODEwYWIwNDllMmEzNDE2YjM0MzZkOGM5NGI2MmZmZWIwYTY4Li43YmFlYWNjYTk3NzMzYTdjYjBm
ZGJkY2M3MjM1NWE3YzlhMDM2NWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5oCkBA
IC01NSw3ICs1NSw3IEBAIHByaXZhdGU6CiAKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0
QWN0aXZlRE9NT2JqZWN0Ojp3cmFwKFRlc3RBY3RpdmVET01PYmplY3QqIGltcGwsIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsK
LSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gRE9NRGF0YVN0b3JlOjpj
dXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcChpc29sYXRlKS5nZXQoaW1wbCk7CiAgICAgICAg
IGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAg
ICByZXR1cm4gVjhUZXN0QWN0aXZlRE9NT2JqZWN0Ojp3cmFwU2xvdyhpbXBsLCBjcmVhdGlvbkNv
bnRleHQsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAppbmRleCA4
Yzg5YzBhMjlkZGE1NDdmNjFiNzIyNTEyODUxYTVhZGJlZGU3NWQ3Li5lYTMzNGIwZTRjYzkzYTNj
ZDE4NDRmMzVmMjlmYmM1ZDk0NzE0M2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaApAQCAtNTQsNyArNTQsNyBAQCBwcml2YXRlOgogCiB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp3cmFwKFRlc3RDdXN0b21OYW1lZEdldHRlciogaW1w
bCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBp
c29sYXRlKQogewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBET01E
YXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLmdldChpbXBs
KTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB3
cmFwcGVyOwogICAgIHJldHVybiBWOFRlc3RDdXN0b21OYW1lZEdldHRlcjo6d3JhcFNsb3coaW1w
bCwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5oCmluZGV4IDYyOWE1YjU1ZTliNzY2YzhkZmNjMzFjY2IyZDUxMzc5NTIwNzNiOTEuLjk5NjEy
ODBmMGVmMzcyM2Y1YWIyYzI0OTk4NDQ1ODcyYjg1YWRjN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50
Q29uc3RydWN0b3IuaApAQCAtNTUsNyArNTUsNyBAQCBwcml2YXRlOgogCiB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6OndyYXAoVGVzdEV2ZW50Q29uc3RydWN0
b3IqIGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNv
bGF0ZSogaXNvbGF0ZSkKIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbCk7CisgICAgICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcChpc29sYXRlKS5n
ZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gd3JhcHBlcjsKICAgICByZXR1cm4gVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6d3JhcFNs
b3coaW1wbCwgY3JlYXRpb25Db250ZXh0LCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmgK
aW5kZXggOWI2OGUzNGUxZmYxYWZiMWZiY2M3ZjViZjRmNDk2MTBmZTMyYTI1Ni4uZjliMWY3YWYx
NmZlODA4ZDVhYWYwNGM2OWRiMTcxOWFjNGUwMWI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmgK
QEAgLTU2LDcgKzU2LDcgQEAgcHJpdmF0ZToKIAogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRl
c3RFdmVudFRhcmdldDo6d3JhcChUZXN0RXZlbnRUYXJnZXQqIGltcGwsIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICAg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gRE9NRGF0YVN0b3JlOjpjdXJyZW50
KGlzb2xhdGUpLT5nZXQoaW1wbCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9IGdldERPTU9iamVjdE1hcChpc29sYXRlKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICgh
d3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1
cm4gVjhUZXN0RXZlbnRUYXJnZXQ6OndyYXBTbG93KGltcGwsIGNyZWF0aW9uQ29udGV4dCwgaXNv
bGF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0RXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXhjZXB0aW9uLmgKaW5kZXggNzFiOTQ3OGQzZmU5NWUwNzg1M2Y1MjExMDBi
Nzc4N2Q0MTg0MjQ2Yy4uOTlhZmU4YjE2MzliMmI3YTVkMmIzMGIyOGVkMjkyYzdlNGY2OTM3NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVz
dEV4Y2VwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RFeGNlcHRpb24uaApAQCAtNTMsNyArNTMsNyBAQCBwcml2YXRlOgogCiB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV4Y2VwdGlvbjo6d3JhcChUZXN0RXhjZXB0aW9uKiBpbXBs
LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgdjg6Oklzb2xhdGUqIGlz
b2xhdGUpCiB7Ci0gICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IERPTURh
dGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+Z2V0KGltcGwpOworICAgICAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmplY3RNYXAoaXNvbGF0ZSkuZ2V0KGltcGwp
OwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdy
YXBwZXI7CiAgICAgcmV0dXJuIFY4VGVzdEV4Y2VwdGlvbjo6d3JhcFNsb3coaW1wbCwgY3JlYXRp
b25Db250ZXh0LCBpc29sYXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuaAppbmRleCA3NWZkMTFmZjI2YzMx
NTc5MGQ2ZDNjYWQwNWQwMzZjODQxZDdjMDg5Li44N2NhMGI4YWRjNTQ3ZDJiN2U5NTAxZTgyMGFm
YWQzM2ZlOWQzNTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5oCkBAIC01OCw3ICs1OCw3IEBAIHByaXZh
dGU6CiAKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwKFRlc3RJ
bnRlcmZhY2UqIGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2
ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsKLSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwcGVyID0gRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbCk7CisgICAg
ICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcChpc29s
YXRlKS5nZXQoaW1wbCk7CiAgICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAg
ICAgICByZXR1cm4gd3JhcHBlcjsKICAgICByZXR1cm4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwU2xv
dyhpbXBsLCBjcmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVu
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggN2JhNGE1NjQxNmNlYjNmNjg3MzVlNGFhZGM5ODJl
MDU3OWE1NTJiMC4uZjg4NTk4MDQ2Y2U4NThhZTI0OTcxMjdlOTI3YjRkNDZiY2NkYzM2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1l
ZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC01Myw3ICs1Myw3
IEBAIHByaXZhdGU6CiAKIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcjo6d3JhcChUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogaW1wbCwgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29sYXRlKQog
ewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBET01EYXRhU3RvcmU6
OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsKTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLmdldChpbXBsKTsKICAgICAg
ICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOwog
ICAgIHJldHVybiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFwU2xvdyhpbXBsLCBj
cmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmgK
aW5kZXggYjBmMzQ3MWM4OTczZDBhOTFkMWUxNjQ2Yjg2ZGU1NGRjNDNiM2E0Yi4uOTk1OTllNjI1
YjIwYzI0NWU3OTBkMTU0MWY5YzBlYjBmMGQxOTUyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25z
dHJ1Y3Rvci5oCkBAIC02MCw3ICs2MCw3IEBAIHByaXZhdGU6CiAKIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcChUZXN0TmFtZWRDb25zdHJ1Y3Rvciog
aW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRl
KiBpc29sYXRlKQogewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBE
T01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsKTsKKyAgICAgICAgdjg6Okhh
bmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLmdldChp
bXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biB3cmFwcGVyOwogICAgIHJldHVybiBWOFRlc3ROYW1lZENvbnN0cnVjdG9yOjp3cmFwU2xvdyhp
bXBsLCBjcmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCmluZGV4IDEzZWJjNjVh
ZTRiZThkZjlhMmI1ZTJiOWViMjYyYTFkOGMzY2ZkMGIuLmE1ZGU0YjYzYTc0OWY1OTg4NmE3NTQ0
YjljMjFmMmQ1OWMzY2YxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgdjg6Okhh
bmRsZTx2ODo6VmFsdWU+IFY4VGVzdE5vZGU6OmNvbnN0cnVjdG9yQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBh
cmdzLkhvbGRlcigpOwogCiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdyYXBwZXIs
ICZpbmZvLCBpbXBsLmdldCgpKTsKLSAgICBWOERPTVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRP
TU9iamVjdChpbXBsLnJlbGVhc2UoKSwgd3JhcHBlciwgYXJncy5HZXRJc29sYXRlKCkpOworICAg
IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NTm9kZShpbXBsLnJlbGVhc2UoKSwgd3Jh
cHBlciwgYXJncy5HZXRJc29sYXRlKCkpOwogICAgIHJldHVybiB3cmFwcGVyOwogfQogCkBAIC0x
MzUsNyArMTM1LDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3ROb2RlOjp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3ROb2RlPiBpbXBsLCB2ODo6SGFuZGwKICAgICAgICAgcmV0dXJuIHdy
YXBwZXI7CiAKICAgICBpbnN0YWxsUGVyQ29udGV4dFByb3BlcnRpZXMod3JhcHBlciwgaW1wbC5n
ZXQoKSk7Ci0gICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9IFY4
RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltcGwsIHdyYXBwZXIsIGlzb2xh
dGUpOworICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXJIYW5kbGUgPSBWOERP
TVdyYXBwZXI6OnNldEpTV3JhcHBlckZvckRPTU5vZGUoaW1wbCwgd3JhcHBlciwgaXNvbGF0ZSk7
CiAgICAgaWYgKCFoYXNEZXBlbmRlbnRMaWZldGltZSkKICAgICAgICAgd3JhcHBlckhhbmRsZS5N
YXJrSW5kZXBlbmRlbnQoKTsKICAgICByZXR1cm4gd3JhcHBlcjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKaW5kZXggMjVi
NmI0YjlkZGMyNTZlZDU1ZWIxZTdjMzFkMDdiZTM3YWFmZjM0OS4uMmRjNzM2NjE4YTJiOTYxZDg5
MmFlMWQwOWZiZmI4MzVlZjc4YjJkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9iai5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCBz
dGF0aWMgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHJlYWRPbmx5VGVzdE9iakF0dHJBdHRyR2V0dGVy
KHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogICAgIElOQ19TVEFUUygiRE9NLlRlc3RPYmoucmVhZE9u
bHlUZXN0T2JqQXR0ci5fZ2V0Iik7CiAgICAgVGVzdE9iaiogaW1wID0gVjhUZXN0T2JqOjp0b05h
dGl2ZShpbmZvLkhvbGRlcigpKTsKICAgICBSZWZQdHI8VGVzdE9iaj4gcmVzdWx0ID0gaW1wLT5y
ZWFkT25seVRlc3RPYmpBdHRyKCk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHdyYXBwZXIg
PSByZXN1bHQuZ2V0KCkgPyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oRE9NRGF0YVN0b3JlOjpjdXJy
ZW50KGluZm8uR2V0SXNvbGF0ZSgpKS0+Z2V0KHJlc3VsdC5nZXQoKSkpIDogdjhVbmRlZmluZWQo
KTsKKyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gd3JhcHBlciA9IHJlc3VsdC5nZXQoKSA/IGdl
dERPTU9iamVjdE1hcChpbmZvLkdldElzb2xhdGUoKSkuZ2V0KHJlc3VsdC5nZXQoKSkgOiB2OFVu
ZGVmaW5lZCgpOwogICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewogICAgICAgICB3cmFwcGVy
ID0gdG9WOChyZXN1bHQuZ2V0KCksIGluZm8uSG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTsK
ICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPYmouaAppbmRleCA5NDM4OTUyYzg4MjJl
OTNlODczZjZmODkwNzA4MjMwNDE4MmQzYmZjLi42MjFlMjk3YWYzOTk5ZjAzOGVkOWZkYzE3MGJl
ODk2YjdhZDZiMmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0T2JqLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE9iai5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAKIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwKFRlc3RPYmoqIGltcGwsIHY4OjpIYW5k
bGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSkKIHsK
LSAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gRE9NRGF0YVN0b3JlOjpj
dXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IGdldERPTU9iamVjdE1hcChpc29sYXRlKS5nZXQoaW1wbCk7CiAgICAgICAg
IGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAg
ICByZXR1cm4gVjhUZXN0T2JqOjp3cmFwU2xvdyhpbXBsLCBjcmVhdGlvbkNvbnRleHQsIGlzb2xh
dGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZS5oCmluZGV4IDM5NzAxNjg1MGRiNWViZThmMzVkZjQ5ZjcyNGQ4NmRiMmM5NTY0MDUuLjYz
YzIyMmEwYjBjMTZkZTllOWU3NDIzYTVkNTZlMTA3YjAxODA0NTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RTZXJpYWxpemVkU2NyaXB0
VmFsdWVJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKQEAgLTU2LDcgKzU2
LDcgQEAgcHJpdmF0ZToKIAogdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RTZXJpYWxpemVk
U2NyaXB0VmFsdWVJbnRlcmZhY2U6OndyYXAoVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVy
ZmFjZSogaW1wbCwgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJ
c29sYXRlKiBpc29sYXRlKQogewotICAgICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXIgPSBET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsKTsKKyAgICAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUp
LmdldChpbXBsKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAg
IHJldHVybiB3cmFwcGVyOwogICAgIHJldHVybiBWOFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2U6OndyYXBTbG93KGltcGwsIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01EYXRhU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmNwcAppbmRleCBhZTM1OWJhZDFk
ZmMyZTI1ZDZlMzFmZjRjNDA4OGJlZjgxNDI1MzZmLi5iNGY5ZGFmN2RiNzJhODM3NjMwMGYyODYy
ZDA1NTc0ZDNlODk0ZTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9E
T01EYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTURhdGFT
dG9yZS5jcHAKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJET01EYXRhU3RvcmUuaCIKIAorI2luY2x1ZGUgIkRPTVdyYXBwZXJNYXAuaCIKKyNpbmNsdWRl
ICJJbnRydXNpdmVET01XcmFwcGVyTWFwLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CkBAIC00MCw2ICs0MiwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBET01EYXRh
U3RvcmU6OkRPTURhdGFTdG9yZShUeXBlIHR5cGUpCiAgICAgOiBtX3R5cGUodHlwZSkKIHsKKyAg
ICBpZiAodHlwZSA9PSBNYWluV29ybGQpCisgICAgICAgIG1fZG9tTm9kZU1hcCA9IGFkb3B0UHRy
KG5ldyBJbnRydXNpdmVET01XcmFwcGVyTWFwPE5vZGU+KTsKKyAgICBlbHNlIHsKKyAgICAgICAg
QVNTRVJUKHR5cGUgPT0gSXNvbGF0ZWRXb3JsZCB8fCB0eXBlID09IFdvcmtlcik7CisgICAgICAg
IC8vIEZJWE1FOiBJbiBwcmluY2lwbGUsIHdlIHNob3VsZG4ndCBuZWVkIHRvIGNyZWF0ZSB0aGlz
CisgICAgICAgIC8vIHdyYXBwZXIgbWFwIGZvciB3b3JrZXJzIGJlY2F1c2UgdGhlcmUgYXJlIG5v
IE5vZGVzIG9uCisgICAgICAgIC8vIHdvcmtlciB0aHJlYWRzLgorICAgICAgICBtX2RvbU5vZGVN
YXAgPSBhZG9wdFB0cihuZXcgRE9NV3JhcHBlckhhc2hNYXA8Tm9kZT4pOworICAgIH0KKyAgICBt
X2RvbU9iamVjdE1hcCA9IGFkb3B0UHRyKG5ldyBET01XcmFwcGVySGFzaE1hcDx2b2lkPik7CisK
ICAgICBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPnJlZ2lzdGVyRE9NRGF0YVN0b3JlKHRo
aXMpOwogfQogCkBAIC00OCwxMyArNjEsMTYgQEAgRE9NRGF0YVN0b3JlOjp+RE9NRGF0YVN0b3Jl
KCkKICAgICBBU1NFUlQobV90eXBlICE9IE1haW5Xb3JsZCk7IC8vIFdlIG5ldmVyIGFjdHVhbGx5
IGRlc3RydWN0IHRoZSBtYWluIHdvcmxkJ3MgRE9NRGF0YVN0b3JlLgogCiAgICAgVjhQZXJJc29s
YXRlRGF0YTo6Y3VycmVudCgpLT51bnJlZ2lzdGVyRE9NRGF0YVN0b3JlKHRoaXMpOwotICAgIG1f
d3JhcHBlck1hcC5jbGVhcigpOworCisgICAgaWYgKG1fdHlwZSA9PSBJc29sYXRlZFdvcmxkKQor
ICAgICAgICBtX2RvbU5vZGVNYXAtPmNsZWFyKCk7CisgICAgbV9kb21PYmplY3RNYXAtPmNsZWFy
KCk7CiB9CiAKIERPTURhdGFTdG9yZSogRE9NRGF0YVN0b3JlOjpjdXJyZW50KHY4OjpJc29sYXRl
KiBpc29sYXRlKQogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoRE9NRGF0YVN0b3JlLCBkZWZh
dWx0U3RvcmUsIChNYWluV29ybGQpKTsKLSAgICBWOFBlcklzb2xhdGVEYXRhKiBkYXRhID0gaXNv
bGF0ZSA/IFY4UGVySXNvbGF0ZURhdGE6OmZyb20oaXNvbGF0ZSkgOiBWOFBlcklzb2xhdGVEYXRh
OjpjdXJyZW50KCk7CisgICAgVjhQZXJJc29sYXRlRGF0YSogZGF0YSA9IFY4UGVySXNvbGF0ZURh
dGE6OmZyb20oaXNvbGF0ZSk7CiAgICAgaWYgKFVOTElLRUxZKCEhZGF0YS0+ZG9tRGF0YVN0b3Jl
KCkpKQogICAgICAgICByZXR1cm4gZGF0YS0+ZG9tRGF0YVN0b3JlKCk7CiAgICAgVjhET01XaW5k
b3dTaGVsbCogY29udGV4dCA9IFY4RE9NV2luZG93U2hlbGw6OmdldEVudGVyZWQoKTsKQEAgLTY2
LDIzICs4Miw4IEBAIERPTURhdGFTdG9yZSogRE9NRGF0YVN0b3JlOjpjdXJyZW50KHY4OjpJc29s
YXRlKiBpc29sYXRlKQogdm9pZCBET01EYXRhU3RvcmU6OnJlcG9ydE1lbW9yeVVzYWdlKE1lbW9y
eU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CiB7CiAgICAgTWVtb3J5Q2xhc3NJ
bmZvIGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5k
aW5nKTsKLSAgICBpbmZvLmFkZE1lbWJlcihtX3dyYXBwZXJNYXApOwotfQotCi12b2lkIERPTURh
dGFTdG9yZTo6d2Vha0NhbGxiYWNrKHY4OjpQZXJzaXN0ZW50PHY4OjpWYWx1ZT4gdmFsdWUsIHZv
aWQqIGNvbnRleHQpCi17Ci0gICAgU2NyaXB0V3JhcHBhYmxlKiBrZXkgPSBzdGF0aWNfY2FzdDxT
Y3JpcHRXcmFwcGFibGUqPihjb250ZXh0KTsKLSAgICBBU1NFUlQodmFsdWUtPklzT2JqZWN0KCkp
OwotICAgIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIgPSB2ODo6UGVyc2lzdGVu
dDx2ODo6T2JqZWN0Pjo6Q2FzdCh2YWx1ZSk7Ci0gICAgQVNTRVJUKGtleS0+d3JhcHBlcigpID09
IHdyYXBwZXIpOwotICAgIC8vIE5vdGU6IHxvYmplY3R8IG1pZ2h0IG5vdCBiZSBlcXVhbCB0byB8
a2V5fCwgZS5nLiwgaWYgU2NyaXB0V3JhcHBhYmxlIGlzbid0IGEgbGVmdC1tb3N0IGJhc2UgY2xh
c3MuCi0gICAgdm9pZCogb2JqZWN0ID0gdG9OYXRpdmUod3JhcHBlcik7Ci0gICAgV3JhcHBlclR5
cGVJbmZvKiB0eXBlID0gdG9XcmFwcGVyVHlwZUluZm8od3JhcHBlcik7Ci0KLSAgICBrZXktPmNs
ZWFyV3JhcHBlcigpOwotICAgIHZhbHVlLkRpc3Bvc2UoKTsKLSAgICB2YWx1ZS5DbGVhcigpOwot
ICAgIHR5cGUtPmRlcmVmT2JqZWN0KG9iamVjdCk7CisgICAgaW5mby5hZGRNZW1iZXIobV9kb21O
b2RlTWFwKTsKKyAgICBpbmZvLmFkZE1lbWJlcihtX2RvbU9iamVjdE1hcCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L0RPTURhdGFTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3Jl
LmgKaW5kZXggODg1MzVmMTcxMzU0Y2M0NjZiZjcxMDMxMmEyZmUxNDQxMDQzNWRiNy4uZjBjYzcw
ODUyMDA1YzAzNjM0YmQzMDFlMWQxNDg5YTA4YTUxZWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvRE9NRGF0YVN0b3JlLmgKQEAgLTU3LDYwICs1NywxNyBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgRE9NRGF0YVN0b3JlKFR5cGUpOwogICAgIH5ET01EYXRhU3RvcmUoKTsKIAotICAg
IHN0YXRpYyBET01EYXRhU3RvcmUqIGN1cnJlbnQodjg6Oklzb2xhdGUqID0gMCk7CisgICAgc3Rh
dGljIERPTURhdGFTdG9yZSogY3VycmVudCh2ODo6SXNvbGF0ZSopOwogCi0gICAgLy8gQ2FsbGVy
cyBuZWVkIHRvIGJlIGNhcmVmdWwgd2hlbiBjYWxsaW5nIGdldCgpIGFuZCBzZXQoKSB0aGF0IHRo
ZXkgdXNlCi0gICAgLy8gdGhlIGNvcnJlY3QgY29tcGlsZS10aW1lIHR5cGUuIFdlIHVzZSB0aGUg
Y29tcGlsZS10aW1lIHR5cGUgdG8gZGVjaWRlCi0gICAgLy8gd2hldGhlciB0aGUgd3JhcHBlciBp
cyBzdG9yZWQgaW4gYSBoYXNobWFwIG9yIHdoZXRoZXIgdGhlIHdyYXBwZXIgaXMKLSAgICAvLyBz
dG9yZWQgaW5saW5lIGluIHRoZSBvYmplY3QuIElmIGNhbGxlcnMgdXNlIHRoZSB3cm9uZyB0eXBl
LCB3ZSdsbCBlaXRoZXIKLSAgICAvLyBzdG9yZSB0aGUgd3JhcHBlciBpbiB0aGUgd3JvbmcgcGxh
Y2Ugb3IgbG9vayBmb3IgaXQgaW4gdGhlIHdyb25nIHBsYWNlLgotCi0gICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLSAgICBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBnZXQoVCogb2JqZWN0
KSBjb25zdAotICAgIHsKLSAgICAgICAgaWYgKHdyYXBwZXJJc1N0b3JlZEluT2JqZWN0KG9iamVj
dCkpCi0gICAgICAgICAgICByZXR1cm4gZ2V0V3JhcHBlckZyb21PYmplY3Qob2JqZWN0KTsKLSAg
ICAgICAgcmV0dXJuIG1fd3JhcHBlck1hcC5nZXQob2JqZWN0KTsKLSAgICB9Ci0KLSAgICAvLyBU
YWtlcyBvd25lcnNoaXAgb2YgfG9iamVjdHwgYW5kIHx3cmFwcGVyfC4KLSAgICB0ZW1wbGF0ZTx0
eXBlbmFtZSBUPgotICAgIGlubGluZSB2b2lkIHNldChUKiBvYmplY3QsIHY4OjpQZXJzaXN0ZW50
PHY4OjpPYmplY3Q+IHdyYXBwZXIpCi0gICAgewotICAgICAgICBpZiAoc2V0V3JhcHBlckluT2Jq
ZWN0KG9iamVjdCwgd3JhcHBlcikpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIG1fd3Jh
cHBlck1hcC5zZXQob2JqZWN0LCB3cmFwcGVyKTsKLSAgICB9CisgICAgRE9NV3JhcHBlck1hcDxO
b2RlPiYgZG9tTm9kZU1hcCgpIHsgcmV0dXJuICptX2RvbU5vZGVNYXA7IH0KKyAgICBET01XcmFw
cGVyTWFwPHZvaWQ+JiBkb21PYmplY3RNYXAoKSB7IHJldHVybiAqbV9kb21PYmplY3RNYXA7IH0K
IAogICAgIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2UoTWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0Owog
Ci1wcml2YXRlOgotICAgIGlubGluZSBib29sIHdyYXBwZXJJc1N0b3JlZEluT2JqZWN0KHZvaWQq
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIGlubGluZSBib29sIHdyYXBwZXJJc1N0b3Jl
ZEluT2JqZWN0KFNjcmlwdFdyYXBwYWJsZSopIGNvbnN0IHsgcmV0dXJuIG1fdHlwZSA9PSBNYWlu
V29ybGQ7IH0KLQotICAgIGlubGluZSB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdldFdyYXBwZXJG
cm9tT2JqZWN0KHZvaWQqIG9iamVjdCkgY29uc3QgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKTsgfQotICAgIGlubGluZSB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IGdldFdyYXBwZXJGcm9tT2JqZWN0KFNjcmlwdFdyYXBwYWJsZSoga2V5KSBjb25z
dAotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBNYWluV29ybGQpOwotICAgICAgICBy
ZXR1cm4ga2V5LT53cmFwcGVyKCk7Ci0gICAgfQotCi0gICAgaW5saW5lIGJvb2wgc2V0V3JhcHBl
ckluT2JqZWN0KHZvaWQqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PikgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICBpbmxpbmUgYm9vbCBzZXRXcmFwcGVySW5PYmplY3QoU2NyaXB0V3JhcHBhYmxl
KiBrZXksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpCi0gICAgewotICAgICAg
ICBpZiAobV90eXBlICE9IE1haW5Xb3JsZCkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgQVNTRVJUKGtleS0+d3JhcHBlcigpLklzRW1wdHkoKSk7Ci0gICAgICAgIEFTU0VSVCht
X3dyYXBwZXJNYXAuZ2V0KHRvTmF0aXZlKHdyYXBwZXIpKS5Jc0VtcHR5KCkpOwotICAgICAgICBr
ZXktPnNldFdyYXBwZXIod3JhcHBlcik7Ci0gICAgICAgIHdyYXBwZXIuTWFrZVdlYWsoa2V5LCB3
ZWFrQ2FsbGJhY2spOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBzdGF0aWMg
dm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiwgdm9pZCogY29udGV4
dCk7Ci0KK3Byb3RlY3RlZDoKICAgICBUeXBlIG1fdHlwZTsKLSAgICBET01XcmFwcGVySGFzaE1h
cDx2b2lkPiBtX3dyYXBwZXJNYXA7CisgICAgT3duUHRyPERPTVdyYXBwZXJNYXA8Tm9kZT4gPiBt
X2RvbU5vZGVNYXA7CisgICAgT3duUHRyPERPTVdyYXBwZXJNYXA8dm9pZD4gPiBtX2RvbU9iamVj
dE1hcDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L0RPTVdyYXBwZXJNYXAuaAppbmRleCBmMzljOGQ4MmVkYmQxMDI3ZDAyOTRjZWY3MDQw
ODg1YWQ3ODg0ZTJhLi5iNGMyNWQ5ZTRhNDlmYzIwNDY5Y2Y3MWMyNmUzMWZmZGQ0Y2EwNmU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyTWFwLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRE9NV3JhcHBlck1hcC5oCkBAIC0zOSw4ICsz
OSwyMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIERPTURhdGFTdG9yZTsKKwor
dGVtcGxhdGU8Y2xhc3MgS2V5VHlwZT4KK2NsYXNzIERPTVdyYXBwZXJNYXAgeworcHVibGljOgor
ICAgIHZpcnR1YWwgfkRPTVdyYXBwZXJNYXAoKSB7IH0KKworICAgIHZpcnR1YWwgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gZ2V0KEtleVR5cGUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNl
dChLZXlUeXBlKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4pID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXIoKSA9IDA7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVwb3J0TWVtb3J5VXNhZ2Uo
TWVtb3J5T2JqZWN0SW5mbyopIGNvbnN0ID0gMDsKK307CisKIHRlbXBsYXRlPGNsYXNzIEtleVR5
cGU+Ci1jbGFzcyBET01XcmFwcGVySGFzaE1hcCB7CitjbGFzcyBET01XcmFwcGVySGFzaE1hcCA6
IHB1YmxpYyBET01XcmFwcGVyTWFwPEtleVR5cGU+IHsKIHB1YmxpYzoKICAgICB0eXBlZGVmIEhh
c2hNYXA8S2V5VHlwZSosIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+ID4gTWFwVHlwZTsKIApA
QCAtNDksMTIgKzYzLDEyIEBAIHB1YmxpYzoKICAgICB7CiAgICAgfQogCi0gICAgdjg6OlBlcnNp
c3RlbnQ8djg6Ok9iamVjdD4gZ2V0KEtleVR5cGUqIGtleSkgY29uc3QKKyAgICB2aXJ0dWFsIHY4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IGdldChLZXlUeXBlKiBrZXkpIE9WRVJSSURFCiAgICAg
ewogICAgICAgICByZXR1cm4gbV9tYXAuZ2V0KGtleSk7CiAgICAgfQogCi0gICAgdm9pZCBzZXQo
S2V5VHlwZSoga2V5LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQorICAgIHZp
cnR1YWwgdm9pZCBzZXQoS2V5VHlwZSoga2V5LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3
cmFwcGVyKSBPVkVSUklERQogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX21hcC5jb250YWlucyhr
ZXkpKTsKICAgICAgICAgQVNTRVJUKHN0YXRpY19jYXN0PEtleVR5cGUqPih0b05hdGl2ZSh3cmFw
cGVyKSkgPT0ga2V5KTsKQEAgLTYyLDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICBtX21hcC5z
ZXQoa2V5LCB3cmFwcGVyKTsKICAgICB9CiAKLSAgICB2b2lkIGNsZWFyKCkKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXIoKSBPVkVSUklERQogICAgIHsKICAgICAgICAgZm9yICh0eXBlbmFtZSBNYXBU
eXBlOjppdGVyYXRvciBpdCA9IG1fbWFwLmJlZ2luKCk7IGl0ICE9IG1fbWFwLmVuZCgpOyArK2l0
KSB7CiAgICAgICAgICAgICB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyID0gaXQt
PnZhbHVlOwpAQCAtNzMsMTMgKzg3LDEzIEBAIHB1YmxpYzoKICAgICAgICAgbV9tYXAuY2xlYXIo
KTsKICAgICB9CiAKLSAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1lbW9yeU9iamVjdEluZm8q
IG1lbW9yeU9iamVjdEluZm8pIGNvbnN0CisgICAgdmlydHVhbCB2b2lkIHJlcG9ydE1lbW9yeVVz
YWdlKE1lbW9yeU9iamVjdEluZm8qIG1lbW9yeU9iamVjdEluZm8pIGNvbnN0IE9WRVJSSURFCiAg
ICAgewogICAgICAgICBNZW1vcnlDbGFzc0luZm8gaW5mbyhtZW1vcnlPYmplY3RJbmZvLCB0aGlz
LCBXZWJDb3JlTWVtb3J5VHlwZXM6OkJpbmRpbmcpOwogICAgICAgICBpbmZvLmFkZE1lbWJlciht
X21hcCk7CiAgICAgfQogCi0gICAgdm9pZCByZW1vdmUoS2V5VHlwZSoga2V5LCB2ODo6UGVyc2lz
dGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQorICAgIHZpcnR1YWwgdm9pZCByZW1vdmUoS2V5VHlw
ZSoga2V5LCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQogICAgIHsKICAgICAg
ICAgdHlwZW5hbWUgTWFwVHlwZTo6aXRlcmF0b3IgaXQgPSBtX21hcC5maW5kKGtleSk7CiAgICAg
ICAgIEFTU0VSVChpdCAhPSBtX21hcC5lbmQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9ET01XcmFwcGVyV29ybGQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RPTVdyYXBwZXJXb3JsZC5oCmluZGV4IDVkZjMwNTgxNWQyNGZiZDQ2OGM4ZjEwMzI5N2Fj
NThiOWRhMjJiM2EuLjY4ZWU2ZTljZjU0NGU2YTM0NjRmODZmMWM0MDIxMDRiNjgyODBmYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RPTVdyYXBwZXJXb3JsZC5oCkBAIC0zMyw2
ICszMyw3IEBACiAKICNpbmNsdWRlICJET01EYXRhU3RvcmUuaCIKICNpbmNsdWRlICJTZWN1cml0
eU9yaWdpbi5oIgorI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdy
YXBwZXJNYXAuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0ludHJ1c2l2ZURPTVdyYXBw
ZXJNYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xMjI0NmI2NzUxNjliMWMzZDAzZDZjNjQzM2ZkYmQwNTdjNmJh
MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvSW50cnVz
aXZlRE9NV3JhcHBlck1hcC5oCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEludHJ1c2l2ZURPTVdy
YXBwZXJNYXBfaAorI2RlZmluZSBJbnRydXNpdmVET01XcmFwcGVyTWFwX2gKKworI2luY2x1ZGUg
IkRPTVdyYXBwZXJNYXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit0ZW1wbGF0ZTxjbGFz
cyBLZXlUeXBlPgorY2xhc3MgSW50cnVzaXZlRE9NV3JhcHBlck1hcCA6IHB1YmxpYyBET01XcmFw
cGVyTWFwPEtleVR5cGU+IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHY4OjpQZXJzaXN0ZW50PHY4
OjpPYmplY3Q+IGdldChLZXlUeXBlKiBrZXkpIE9WRVJSSURFCisgICAgeworICAgICAgICByZXR1
cm4ga2V5LT53cmFwcGVyKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIHNldChLZXlUeXBl
KiBrZXksIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHdyYXBwZXIpIE9WRVJSSURFCisgICAg
eworICAgICAgICBBU1NFUlQoa2V5ICYmIGtleS0+d3JhcHBlcigpLklzRW1wdHkoKSk7CisgICAg
ICAgIGtleS0+c2V0V3JhcHBlcih3cmFwcGVyKTsKKyAgICAgICAgd3JhcHBlci5NYWtlV2Vhayhr
ZXksIHdlYWtDYWxsYmFjayk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIGNsZWFyKCkgT1ZF
UlJJREUKKyAgICB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRNZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKiBtZW1vcnlP
YmplY3RJbmZvKSBjb25zdCBPVkVSUklERQorICAgIHsKKyAgICAgICAgTWVtb3J5Q2xhc3NJbmZv
IGluZm8obWVtb3J5T2JqZWN0SW5mbywgdGhpcywgV2ViQ29yZU1lbW9yeVR5cGVzOjpCaW5kaW5n
KTsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGluZm8pOworICAgIH0KKworcHJpdmF0ZToKKyAgICBz
dGF0aWMgdm9pZCB3ZWFrQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8djg6OlZhbHVlPiB2YWx1ZSwg
dm9pZCogY29udGV4dCkKKyAgICB7CisgICAgICAgIEtleVR5cGUqIGtleSA9IHN0YXRpY19jYXN0
PEtleVR5cGUqPihjb250ZXh0KTsKKyAgICAgICAgQVNTRVJUKHZhbHVlLT5Jc09iamVjdCgpKTsK
KyAgICAgICAgQVNTRVJUKGtleS0+d3JhcHBlcigpID09IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+OjpDYXN0KHZhbHVlKSk7CisKKyAgICAgICAga2V5LT5jbGVhcldyYXBwZXIoKTsKKyAgICAg
ICAgdmFsdWUuRGlzcG9zZSgpOworICAgICAgICB2YWx1ZS5DbGVhcigpOworICAgICAgICBrZXkt
PmRlcmVmKCk7CisgICAgfQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdFByb2ZpbGVyLmNwcAppbmRleCBm
ZjU3YzNjZTI0Y2VmYjcyNTFmYTIzOGRmM2VmODM4Y2UwMDIxZDdhLi5jODQwZjIyODFkNzU3NDUx
ODFkYjJkZWUyNGI0ZjA2NDAwMThmMzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9TY3JpcHRQcm9maWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0UHJvZmlsZXIuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiU2NyaXB0
T2JqZWN0LmgiCiAjaW5jbHVkZSAiVjhBcnJheUJ1ZmZlclZpZXcuaCIKICNpbmNsdWRlICJWOEJp
bmRpbmcuaCIKKyNpbmNsdWRlICJWOERPTU1hcC5oIgogI2luY2x1ZGUgIlY4Tm9kZS5oIgogI2lu
Y2x1ZGUgIldlYkNvcmVNZW1vcnlJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJXcmFwcGVy
VHlwZUluZm8uaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TZXJpYWxp
emVkU2NyaXB0VmFsdWUuY3BwCmluZGV4IGQxMmQwODUzZDQ0N2ZkNjMxN2Y1NjAyNDY2MDgyYzk4
YTc3NWY4MDMuLjBmNjA0MjEyODc1MmU0MTdhYTQxNGFlYzE5MTdkYmU3MGRkYzFiNTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmNwcApAQCAtMjIwNiwxNCArMjIwNiwxMyBAQCBTZXJpYWxpemVkU2NyaXB0VmFsdWU6OlNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZSgpCiB7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci1pbmxpbmUg
dm9pZCBuZXV0ZXJCaW5kaW5nKFQqIG9iamVjdCkgCitzdGF0aWMgdm9pZCBuZXV0ZXJCaW5kaW5n
KHZvaWQqIGRvbU9iamVjdCkgCiB7CiAgICAgVmVjdG9yPERPTURhdGFTdG9yZSo+JiBhbGxTdG9y
ZXMgPSBWOFBlcklzb2xhdGVEYXRhOjpjdXJyZW50KCktPmFsbFN0b3JlcygpOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgYWxsU3RvcmVzLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIHY4OjpI
YW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGFsbFN0b3Jlc1tpXS0+Z2V0KG9iamVjdCk7Ci0g
ICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgICAgICB3cmFwcGVyLT5TZXRJ
bmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxBcnJheURhdGEoMCwgdjg6OmtFeHRlcm5hbEJ5dGVB
cnJheSwgMCk7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqID0gYWxsU3RvcmVz
W2ldLT5kb21PYmplY3RNYXAoKS5nZXQoZG9tT2JqZWN0KTsKKyAgICAgICAgaWYgKCFvYmouSXNF
bXB0eSgpKQorICAgICAgICAgICAgb2JqLT5TZXRJbmRleGVkUHJvcGVydGllc1RvRXh0ZXJuYWxB
cnJheURhdGEoMCwgdjg6OmtFeHRlcm5hbEJ5dGVBcnJheSwgMCk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzQzMzdlMDk2ZmU0
MTRlMWI3NmY3MmE2MDg2YzBmMDdmYTdkMmYxYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NTWFwLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3Ry
aWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRo
ZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9y
IHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAq
ICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIlY4RE9NTWFwLmgiCisKKyNpbmNsdWRlICJET01EYXRhU3Rv
cmUuaCIKKyNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOE5vZGUuaCIKKyNpbmNs
dWRlIDx3dGYvTWFpblRocmVhZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0RPTVdyYXBw
ZXJNYXA8Tm9kZT4mIGdldERPTU5vZGVNYXAodjg6Oklzb2xhdGUqIGlzb2xhdGUpCit7CisgICAg
aWYgKCFpc29sYXRlKQorICAgICAgICBpc29sYXRlID0gdjg6Oklzb2xhdGU6OkdldEN1cnJlbnQo
KTsKKyAgICByZXR1cm4gRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5kb21Ob2RlTWFw
KCk7Cit9CisKK0RPTVdyYXBwZXJNYXA8dm9pZD4mIGdldERPTU9iamVjdE1hcCh2ODo6SXNvbGF0
ZSogaXNvbGF0ZSkKK3sKKyAgICBpZiAoIWlzb2xhdGUpCisgICAgICAgIGlzb2xhdGUgPSB2ODo6
SXNvbGF0ZTo6R2V0Q3VycmVudCgpOworICAgIHJldHVybiBET01EYXRhU3RvcmU6OmN1cnJlbnQo
aXNvbGF0ZSktPmRvbU9iamVjdE1hcCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTU1hcC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOGM3ZDI4OWUwM2Fh
MjFkMjE2Mzc4MWNiYjVlZWFkYTQ1MzU2YzZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvVjhET01NYXAuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBWOERP
TU1hcF9oCisjZGVmaW5lIFY4RE9NTWFwX2gKKworI2luY2x1ZGUgIkRPTVdyYXBwZXJNYXAuaCIK
KyNpbmNsdWRlICJOb2RlLmgiCisjaW5jbHVkZSAiV2ViQ29yZU1lbW9yeUluc3RydW1lbnRhdGlv
bi5oIgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4K
KyNpbmNsdWRlIDx3dGYvTWVtb3J5SW5zdHJ1bWVudGF0aW9uSGFzaE1hcC5oPgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KKyNpbmNsdWRlIDx2OC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K0RPTVdyYXBwZXJNYXA8Tm9kZT4mIGdldERPTU5vZGVNYXAodjg6Oklzb2xhdGUqID0gMCk7CitE
T01XcmFwcGVyTWFwPHZvaWQ+JiBnZXRET01PYmplY3RNYXAodjg6Oklzb2xhdGUqID0gMCk7CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFY4RE9NTWFwX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV2luZG93U2hlbGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XaW5kb3dTaGVsbC5jcHAKaW5kZXggMDJiMzQ3
ZGMyN2I3ZTZhYjkwMzMyYmEyY2Q3ZGFlOTY2MzY0NTlmZS4uNGQzN2ZjOTNjYTNiMzQ3OTU2MDA2
NjczMjJiZGI3M2JiZWUyYzkwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XaW5kb3dTaGVsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XaW5kb3dTaGVsbC5jcHAKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJTdHlsZVBy
b3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhDb2xsZWN0
aW9uLmgiCisjaW5jbHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIlY4RG9jdW1lbnQuaCIKICNpbmNsdWRlICJWOEdDQ29udHJvbGxlci5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYWFjOTVkYmVl
MmEzYzIwNWJlMWMwMzE1MjQwOTJkOWMxZjM1YmI0Ni4uNzgzY2FiZjU2ZjQ1OWQ5ODAyYTBkM2Qy
OTljYmU4ZTFhMWYxN2NhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdy
YXBwZXIuY3BwCkBAIC02OCw2ICs2OCwxNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3Y4
OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9N
Tm9kZShQYXNzUmVmUHRyPE5vZGU+IG5vZGUsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciwgdjg6Oklzb2xhdGUqIGlzb2xhdGUpCit7CisgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVj
dD4gd3JhcHBlckhhbmRsZSA9IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBl
cik7CisgICAgQVNTRVJUKG1heWJlRE9NV3JhcHBlcih3cmFwcGVySGFuZGxlKSk7CisgICAgd3Jh
cHBlckhhbmRsZS5TZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU5vZGVDbGFzc0lkKTsKKyAgICBnZXRE
T01Ob2RlTWFwKGlzb2xhdGUpLnNldChub2RlLmxlYWtSZWYoKSwgd3JhcHBlckhhbmRsZSk7Cisg
ICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7Cit9CisKIHZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1l
ZEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QgY2hh
ciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKQogewogICAgIEFTU0VSVChuYW1l
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5kZXggNmQ0MWNj
MzViZTM5MjM5YzBhZjcxNDU1ZDIzNjhhZDQ4NmI5ZDQxNi4uMzRkODgxOTQ2NzViOWMxNDE3MzIx
Y2I2ZWExNTg3MzI2OWI4MjZiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJOb2RlLmgiCiAjaW5jbHVkZSAi
Tm9kZUZpbHRlci5oIgogI2luY2x1ZGUgIlY4Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmgiCisjaW5j
bHVkZSAiVjhET01NYXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvd1NoZWxsLmgiCiAjaW5jbHVk
ZSAiVjhVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJXcmFwcGVyVHlwZUluZm8uaCIKQEAgLTEwMiw2
ICsxMDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVD4KICAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+IHNldEpTV3Jh
cHBlckZvckRPTU9iamVjdChQYXNzUmVmUHRyPFQ+LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+LCB2
ODo6SXNvbGF0ZSogPSAwKTsKKyAgICAgICAgc3RhdGljIHY4OjpQZXJzaXN0ZW50PHY4OjpPYmpl
Y3Q+IHNldEpTV3JhcHBlckZvckRPTU5vZGUoUGFzc1JlZlB0cjxOb2RlPiwgdjg6OkhhbmRsZTx2
ODo6T2JqZWN0Piwgdjg6Oklzb2xhdGUqID0gMCk7CiAKICAgICAgICAgc3RhdGljIGJvb2wgaXNW
YWxpZERPTU9iamVjdCh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCkBAIC0xMjYsMTcgKzEyOCw4
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgICAgICByZXR1cm4gbm9kZS0+d3Jh
cHBlcigpOwogCiAgICAgICAgICAgICBET01EYXRhU3RvcmUqIHN0b3JlID0gY29udGV4dC0+d29y
bGQoKS0+ZG9tRGF0YVN0b3JlKCk7Ci0gICAgICAgICAgICByZXR1cm4gc3RvcmUtPmdldChub2Rl
KTsKLSAgICAgICAgfQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyB2b2lkIHNldFdyYXBw
ZXJDbGFzcyh2b2lkKiwgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlcikKLSAgICAg
ICAgewotICAgICAgICAgICAgd3JhcHBlci5TZXRXcmFwcGVyQ2xhc3NJZCh2OERPTU9iamVjdENs
YXNzSWQpOwotICAgICAgICB9Ci0KLSAgICAgICAgc3RhdGljIHZvaWQgc2V0V3JhcHBlckNsYXNz
KE5vZGUqLCB2ODo6UGVyc2lzdGVudDx2ODo6T2JqZWN0PiB3cmFwcGVyKQotICAgICAgICB7Ci0g
ICAgICAgICAgICB3cmFwcGVyLlNldFdyYXBwZXJDbGFzc0lkKHY4RE9NTm9kZUNsYXNzSWQpOwor
ICAgICAgICAgICAgRE9NV3JhcHBlck1hcDxOb2RlPiYgZG9tTm9kZU1hcCA9IHN0b3JlLT5kb21O
b2RlTWFwKCk7CisgICAgICAgICAgICByZXR1cm4gZG9tTm9kZU1hcC5nZXQobm9kZSk7CiAgICAg
ICAgIH0KICAgICB9OwogCkBAIC0xNDUsOCArMTM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIHsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6Ok9iamVjdD4gd3JhcHBlckhhbmRsZSA9
IHY4OjpQZXJzaXN0ZW50PHY4OjpPYmplY3Q+OjpOZXcod3JhcHBlcik7CiAgICAgICAgIEFTU0VS
VChtYXliZURPTVdyYXBwZXIod3JhcHBlckhhbmRsZSkpOwotICAgICAgICBzZXRXcmFwcGVyQ2xh
c3Mob2JqZWN0LmdldCgpLCB3cmFwcGVySGFuZGxlKTsKLSAgICAgICAgRE9NRGF0YVN0b3JlOjpj
dXJyZW50KGlzb2xhdGUpLT5zZXQob2JqZWN0LmxlYWtSZWYoKSwgd3JhcHBlckhhbmRsZSk7Cisg
ICAgICAgIHdyYXBwZXJIYW5kbGUuU2V0V3JhcHBlckNsYXNzSWQodjhET01PYmplY3RDbGFzc0lk
KTsKKyAgICAgICAgZ2V0RE9NT2JqZWN0TWFwKGlzb2xhdGUpLnNldChvYmplY3QubGVha1JlZigp
LCB3cmFwcGVySGFuZGxlKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXJIYW5kbGU7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEdDQ29udHJvbGxlci5jcHAKaW5kZXgg
MzM3ZWE3NjdhMzg0MGQ4MDU0ZTk5NzRkZTI5MTZmM2QzZjZlOWRmYy4uN2E2NzkzMDVhZGQyZDEw
OTFiZGVhZTU1NjA3OGJmZDc4MWJjMzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhHQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1Y4R0NDb250cm9sbGVyLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkRPTUlt
cGxlbWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIkludHJ1c2l2ZURPTVdyYXBwZXJNYXAuaCIKICNpbmNs
dWRlICJNZW1vcnlVc2FnZVN1cHBvcnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUG9ydC5oIgogI2lu
Y2x1ZGUgIlJldGFpbmVkRE9NSW5mby5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhOUE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5Q
T2JqZWN0LmNwcAppbmRleCBjNDg4NTE2YWE1OTE5YTJjNTQxNTFmZTIxN2VhMjQ4YmNiYjA3YzBm
Li42NzZhNjcyZDkwM2UwZDg1M2M4ZTgzMWRjMjE1MGE1M2MyYWIxNzgyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9WOE5QT2JqZWN0LmNwcApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1
ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAjaW5jbHVkZSAiTlBWOE9iamVjdC5oIgogI2luY2x1
ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5jbHVkZSAiVjhIVE1M
QXBwbGV0RWxlbWVudC5oIgogI2luY2x1ZGUgIlY4SFRNTEVtYmVkRWxlbWVudC5oIgogI2luY2x1
ZGUgIlY4SFRNTE9iamVjdEVsZW1lbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuY3BwCmluZGV4IDE1YzVl
OTAwYmY1ZTRmNmE3OTljOTJmYmMyODg1YTIxNjEzYWNlZjAuLjk5YWEwOWViYjZhMTFmYmU3Y2Y1
ZTUyYTk5ZTFlZTc3YzMxZWY4YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmNwcApAQCAtNDMsNiArNDMs
NyBAQAogI2luY2x1ZGUgIlNoYXJlZFdvcmtlci5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckNv
bnRleHQuaCIKICNpbmNsdWRlICJWOEJpbmRpbmcuaCIKKyNpbmNsdWRlICJWOERPTU1hcC5oIgog
I2luY2x1ZGUgIlY4RE9NV2luZG93U2hlbGwuaCIKICNpbmNsdWRlICJWOERlZGljYXRlZFdvcmtl
ckNvbnRleHQuaCIKICNpbmNsdWRlICJWOEdDQ29udHJvbGxlci5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCA2
MjhmNTFiNjBkOTU2NGUyNDliMTU3ZmE3MzlmOGJiN2UwZWVjYjYwLi41YmFjYjVhZDliZTFkZDdi
NmI4MWFmNDhjZmU5NjE1NmJmYTRmNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9Xb3JrZXJTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUu
aCIKICNpbmNsdWRlICJTY3JpcHRWYWx1ZS5oIgorI2luY2x1ZGUgIlY4RE9NTWFwLmgiCiAjaW5j
bHVkZSAiVjhXb3JrZXJDb250ZXh0LmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4dC5oIgogI2lu
Y2x1ZGUgIldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVudENvbnN0cnVjdG9y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxJbWFnZUVsZW1l
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNThhN2FmNDkyZTI5MDVmYWVhNzBjZjRlYjQzN2EyNmYx
ZWRkZDI1My4uMjU2YzlkMzdlNDExY2ZlNzBhNmUzNjM3ODJhMzY2M2EwNDQ1M2QzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SFRNTEltYWdlRWxlbWVu
dENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3IuY3BwCkBAIC04MCw3ICs4MCw3IEBAIHN0YXRp
YyB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdjhIVE1MSW1hZ2VFbGVtZW50Q29uc3RydWN0b3JDYWxs
YmFjayhjb25zdCB2ODo6QXJnCiAgICAgUmVmUHRyPEhUTUxJbWFnZUVsZW1lbnQ+IGltYWdlID0g
SFRNTEltYWdlRWxlbWVudDo6Y3JlYXRlRm9ySlNDb25zdHJ1Y3Rvcihkb2N1bWVudCwgb3B0aW9u
YWxXaWR0aCwgb3B0aW9uYWxIZWlnaHQpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlciA9IGFyZ3MuSG9sZGVyKCk7CiAgICAgVjhET01XcmFwcGVyOjpzZXRET01XcmFwcGVyKHdy
YXBwZXIsICZWOEhUTUxJbWFnZUVsZW1lbnRDb25zdHJ1Y3Rvcjo6aW5mbywgaW1hZ2UuZ2V0KCkp
OwotICAgIFY4RE9NV3JhcHBlcjo6c2V0SlNXcmFwcGVyRm9yRE9NT2JqZWN0KGltYWdlLnJlbGVh
c2UoKSwgd3JhcHBlcik7CisgICAgVjhET01XcmFwcGVyOjpzZXRKU1dyYXBwZXJGb3JET01Ob2Rl
KGltYWdlLnJlbGVhc2UoKSwgd3JhcHBlcik7CiAgICAgcmV0dXJuIHdyYXBwZXI7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNjcmlwdENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAK
aW5kZXggMjk4NDgwNDU2OWI0NzRjMWNlMWY0M2Q2YzQwMzc3MDYyNmIyNWQxYS4uY2RmZjc1YWIx
Y2VjN2MxNGU1NzYzNjUyY2Q5MjI3ZWY0Njg0YjE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTMyLDYgKzMyLDkgQEAK
ICNpbmNsdWRlICJXZWJTY3JpcHRDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJTY3JpcHRDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAiVjhET01NYXAuaCIK
KyNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>