<?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>103992</bug_id>
          
          <creation_ts>2012-12-04 05:25:58 -0800</creation_ts>
          <short_desc>REGRESSION(r136498): Patch causes a lot of tests to crash in GTK+ bots (Requested by KaL on #webkit).</short_desc>
          <delta_ts>2012-12-04 05:31:07 -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>101074</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>cgarcia</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>782478</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 05:25:58 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/136498 broke the build:
Patch causes a lot of tests to crash in GTK+ bots (Requested by KaL 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>782480</commentid>
    <comment_count>1</comment_count>
      <attachid>177469</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 05:26:40 -0800</bug_when>
    <thetext>Created attachment 177469
ROLLOUT of r136498

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>782482</commentid>
    <comment_count>2</comment_count>
      <attachid>177469</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 05:31:04 -0800</bug_when>
    <thetext>Comment on attachment 177469
ROLLOUT of r136498

Clearing flags on attachment: 177469

Committed r136505: &lt;http://trac.webkit.org/changeset/136505&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782483</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-12-04 05:31:07 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177469</attachid>
            <date>2012-12-04 05:26:40 -0800</date>
            <delta_ts>2012-12-04 05:31:04 -0800</delta_ts>
            <desc>ROLLOUT of r136498</desc>
            <filename>bug-103992-20121204133254.patch</filename>
            <type>text/plain</type>
            <size>88301</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2NTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTQ2ZWQ0YzRjMzQxY2U3
ZDFlMzNiMmM3ZDhjYzRhNzkzNmIxMzIxZS4uNzdhYzFjZjIzYjAzMTMwMmRkODRhYzQzZmFkOTBl
ZDM1ZTFiM2MyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMi0xMi0wNCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEzNjQ5OC4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvMTM2NDk4CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDM5OTIKKworICAgICAgICBQYXRjaCBjYXVzZXMgYSBsb3Qgb2YgdGVzdHMg
dG8gY3Jhc2ggaW4gR1RLKyBib3RzIChSZXF1ZXN0ZWQKKyAgICAgICAgYnkgS2FMIG9uICN3ZWJr
aXQpLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bToKKyAgICAgICAgKEdlbmVyYXRlUHJvcGVydGllcyk6CisgICAgICAgIChHZW5lcmF0ZUhlYWRl
cik6CisgICAgICAgIChHZW5lcmF0ZUNGaWxlKToKKyAgICAgICAgKEdlbmVyYXRlRXZlbnRUYXJn
ZXRJZmFjZSk6CisgICAgICAgIChXcml0ZURhdGEpOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwRmxvYXQ2NEFycmF5KToKKyAgICAgICAg
KHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF9kb21f
ZmxvYXQ2NGFycmF5X2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV9mbG9hdDY0YXJy
YXlfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NRmxvYXQ2NEFycmF5Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNv
cmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwVGVzdEFjdGl2ZURPTU9iamVjdCk6CisgICAgICAg
ICh3ZWJraXRfZG9tX3Rlc3RfYWN0aXZlX2RvbV9vYmplY3RfZmluYWxpemUpOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2NsYXNzX2luaXQpOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2luaXQpOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3QuaDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2Fs
bGJhY2suY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdlYktpdDo6d3Jh
cFRlc3RDYWxsYmFjayk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfZmluYWxp
emUpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X2NhbGxiYWNrX2NsYXNzX2luaXQpOgorICAg
ICAgICAod2Via2l0X2RvbV90ZXN0X2NhbGxiYWNrX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5oOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDdXN0b21OYW1lZEdl
dHRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFw
VGVzdEN1c3RvbU5hbWVkR2V0dGVyKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9jdXN0b21f
bmFtZWRfZ2V0dGVyX2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9jdXN0b21f
bmFtZWRfZ2V0dGVyX2NsYXNzX2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X2N1c3Rv
bV9uYW1lZF9nZXR0ZXJfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmg6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdlYktpdDo6d3JhcFRlc3RFdmVu
dENvbnN0cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9ldmVudF9jb25zdHJ1Y3Rv
cl9maW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfY29uc3RydWN0b3Jf
Y2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfY29uc3RydWN0b3Jf
aW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdEV2ZW50Q29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAoV2ViS2l0Ojpj
b3JlKToKKyAgICAgICAgKFdlYktpdDo6d3JhcFRlc3RFdmVudFRhcmdldCk6CisgICAgICAgICh3
ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2Rpc3BhdGNoX2V2ZW50KToKKyAgICAgICAgKHdl
YmtpdF9kb21fdGVzdF9ldmVudF90YXJnZXRfYWRkX2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAg
KHdlYmtpdF9kb21fdGVzdF9ldmVudF90YXJnZXRfcmVtb3ZlX2V2ZW50X2xpc3RlbmVyKToKKyAg
ICAgICAgKHdlYmtpdF9kb21fdGVzdF9ldmVudF90YXJnZXRfZmluYWxpemUpOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X2V2ZW50X3RhcmdldF9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9ldmVudF90YXJnZXRfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0Lmg6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwVGVzdEV4Y2VwdGlv
bik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfZXhjZXB0aW9uX2ZpbmFsaXplKToKKyAgICAg
ICAgKHdlYmtpdF9kb21fdGVzdF9leGNlcHRpb25fY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJr
aXRfZG9tX3Rlc3RfZXhjZXB0aW9uX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFeGNlcHRpb24uaDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBUZXN0SW50ZXJmYWNlKToK
KyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfZmluYWxpemUpOgorICAgICAgICAo
d2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9k
b21fdGVzdF9pbnRlcmZhY2VfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdEludGVyZmFjZS5oOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6Y29yZSk6CisgICAgICAgIChXZWJLaXQ6OndyYXBUZXN0TWVk
aWFRdWVyeUxpc3RMaXN0ZW5lcik6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVl
cnlfbGlzdF9saXN0ZW5lcl9maW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3RfbWVk
aWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21f
dGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyX2luaXQpOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVy
Lmg6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAg
KFdlYktpdDo6d3JhcFRlc3ROYW1lZENvbnN0cnVjdG9yKToKKyAgICAgICAgKHdlYmtpdF9kb21f
dGVzdF9uYW1lZF9jb25zdHJ1Y3Rvcl9maW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3RfbmFtZWRfY29uc3RydWN0b3JfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rl
c3RfbmFtZWRfY29uc3RydWN0b3JfaW5pdCk6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3IuaDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Tm9kZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwVGVzdE5vZGUpOgorICAg
ICAgICAod2Via2l0X2RvbV90ZXN0X25vZGVfZGlzcGF0Y2hfZXZlbnQpOgorICAgICAgICAod2Vi
a2l0X2RvbV90ZXN0X25vZGVfYWRkX2V2ZW50X2xpc3RlbmVyKToKKyAgICAgICAgKHdlYmtpdF9k
b21fdGVzdF9ub2RlX3JlbW92ZV9ldmVudF9saXN0ZW5lcik6CisgICAgICAgICh3ZWJraXRfZG9t
X3Rlc3Rfbm9kZV9maW5hbGl6ZSk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9jbGFz
c19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9ub2RlX2luaXQpOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3ROb2RlLmg6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHA6
CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwVGVzdE9iaik6
CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2JqX2ZpbmFsaXplKToKKyAgICAgICAgKHdlYmtp
dF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfZG9tX3Rlc3Rfb2Jq
X2luaXQpOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPYmouaDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OmNv
cmUpOgorICAgICAgICAoV2ViS2l0Ojp3cmFwVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMpOgor
ICAgICAgICAod2Via2l0X2RvbV90ZXN0X292ZXJsb2FkZWRfY29uc3RydWN0b3JzX2ZpbmFsaXpl
KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vdmVybG9hZGVkX2NvbnN0cnVjdG9yc19jbGFz
c19pbml0KToKKyAgICAgICAgKHdlYmtpdF9kb21fdGVzdF9vdmVybG9hZGVkX2NvbnN0cnVjdG9y
c19pbml0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwOgorICAgICAgICAoV2ViS2l0Ojpjb3JlKToKKyAgICAgICAgKFdlYktpdDo6d3JhcFRl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UpOgorICAgICAgICAod2Via2l0X2RvbV90
ZXN0X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9maW5hbGl6ZSk6CisgICAgICAg
ICh3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2NsYXNz
X2luaXQpOgorICAgICAgICAod2Via2l0X2RvbV90ZXN0X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVl
X2ludGVyZmFjZV9pbml0KToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmg6CisKIDIwMTIt
MTItMDQgIE1hcmt1cyBIZWludHogIDxtYXJrdXNoZWludHpAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IFZpZXdwb3J0IGNvbnNvbGUgd2FybmluZ3MgY2xlYW51cC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdP
YmplY3QucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JH
T2JqZWN0LnBtCmluZGV4IDk4NTMwYTI0NTI5YzAyOGM4YzVkMTIxZGUwNGU4ZGQ1MWQ0YmNiZTUu
LjViMmJiYTcyMjhhYWUzMDU4ZWI0OTUxNTE0MDAxZjhiYmEzNDJhYmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckdPYmplY3QucG0KKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yR09iamVjdC5w
bQpAQCAtNjQxLDExICs2NDEsMTkgQEAgRU9GCiAgICAgJGltcGxDb250ZW50ID0gPDwgIkVPRiI7
CiBzdGF0aWMgdm9pZCAke2xvd2VyQ2FzZUlmYWNlTmFtZX1fZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQogewotICAgICR7Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NXyR7Y2xz
Q2Fwc30ob2JqZWN0KS0+cHJpdjsKICRjb25kaXRpb25HdWFyZFN0YXJ0Ci0gICAgV2ViS2l0OjpE
T01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktp
dERPTU9iamVjdCogZG9tT2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAK
KyAgICBpZiAoZG9tT2JqZWN0LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OiR7aW50
ZXJmYWNlTmFtZX0qIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9Kj4oZG9tT2JqZWN0LT5jb3JlT2JqZWN0KTsKKworICAgICAgICBXZWJLaXQ6OkRPTU9i
amVjdENhY2hlOjpmb3JnZXQoY29yZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVm
KCk7CisKKyAgICAgICAgZG9tT2JqZWN0LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CiAkY29uZGl0
aW9uR3VhcmRFbmQKLSAgICBwcml2LT5+JHtjbGFzc05hbWV9UHJpdmF0ZSgpOworCiAgICAgR19P
QkpFQ1RfQ0xBU1MoJHtsb3dlckNhc2VJZmFjZU5hbWV9X3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
KG9iamVjdCk7CiB9CiAKQEAgLTY3OSwyMiArNjg3LDEwIEBAIEVPRgogICAgIH0KIAogICAgICRp
bXBsQ29udGVudCA9IDw8ICJFT0YiOwotc3RhdGljIEdPYmplY3QqICR7bG93ZXJDYXNlSWZhY2VO
YW1lfV9jb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBndWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291
bnQsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29uc3RydWN0UHJvcGVydGllcykKLXsKLSAgICBH
T2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUygke2xvd2VyQ2FzZUlmYWNlTmFtZX1fcGFy
ZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBj
b25zdHJ1Y3RQcm9wZXJ0aWVzKTsKLSRjb25kaXRpb25HdWFyZFN0YXJ0Ci0gICAgJHtjbGFzc05h
bWV9UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fJHtjbHNDYXBzfShvYmplY3QpLT5wcml2Owot
ICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjoke2ludGVyZmFjZU5h
bWV9Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7Ci0kY29uZGl0aW9u
R3VhcmRFbmQKLSAgICByZXR1cm4gb2JqZWN0OwotfQotCiBzdGF0aWMgdm9pZCAke2xvd2VyQ2Fz
ZUlmYWNlTmFtZX1fY2xhc3NfaW5pdCgke2NsYXNzTmFtZX1DbGFzcyogcmVxdWVzdENsYXNzKQog
ewogICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVz
dENsYXNzKTsKLSAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0cnVjdG9yID0gJHtsb3dlckNhc2VJZmFj
ZU5hbWV9X2NvbnN0cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSAke2xvd2Vy
Q2FzZUlmYWNlTmFtZX1fZmluYWxpemU7Ci0gICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdv
YmplY3RDbGFzcywgc2l6ZW9mKCR7Y2xhc3NOYW1lfVByaXZhdGUpKTsKIEVPRgogICAgIHB1c2go
QGNCb2R5UHJvcGVydGllcywgJGltcGxDb250ZW50KTsKIApAQCAtNzE4LDExICs3MTQsOCBAQCBF
T0YKICAgICAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKIH0KIAotc3RhdGljIHZvaWQgJHtsb3dl
ckNhc2VJZmFjZU5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiBzZWxmKQorc3RhdGljIHZvaWQgJHts
b3dlckNhc2VJZmFjZU5hbWV9X2luaXQoJHtjbGFzc05hbWV9KiByZXF1ZXN0KQogewotICAgICR7
Y2xhc3NOYW1lfVByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2Vs
ZiwgV0VCS0lUX1RZUEVfRE9NXyR7Y2xzQ2Fwc30sICR7Y2xhc3NOYW1lfVByaXZhdGUpOwotICAg
IHNlbGYtPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJpdikgJHtjbGFzc05hbWV9UHJpdmF0ZSgp
OwogfQogCiBFT0YKQEAgLTc2NiwxMiArNzU5LDggQEAgRU9GCiAjZGVmaW5lIFdFQktJVF9ET01f
SVNfJHtjbHNDYXBzfV9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFz
cyksICBXRUJLSVRfVFlQRV9ET01fJHtjbHNDYXBzfSkpCiAjZGVmaW5lIFdFQktJVF9ET01fJHtj
bHNDYXBzfV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBXRUJLSVRfVFlQRV9ET01fJHtjbHNDYXBzfSwgJHtjbGFzc05hbWV9Q2xhc3MpKQogCi10eXBl
ZGVmIHN0cnVjdCBfJHtjbGFzc05hbWV9UHJpdmF0ZSAke2NsYXNzTmFtZX1Qcml2YXRlOwotCiBz
dHJ1Y3QgXyR7Y2xhc3NOYW1lfSB7CiAgICAgJHtwYXJlbnRDbGFzc05hbWV9IHBhcmVudF9pbnN0
YW5jZTsKLQotICAgICR7Y2xhc3NOYW1lfVByaXZhdGUgKnByaXY7CiB9OwogCiBzdHJ1Y3QgXyR7
Y2xhc3NOYW1lfUNsYXNzIHsKQEAgLTEyMDUsMTMgKzExOTQsNiBAQCBzdWIgR2VuZXJhdGVDRmls
ZSB7CiAgICAgbXkgJGNsc0NhcHMgPSB1YyhGaXhVcERlY2FtZWxpemVkTmFtZShkZWNhbWVsaXpl
KCRpbnRlcmZhY2VOYW1lKSkpOwogICAgIG15ICRsb3dlckNhc2VJZmFjZU5hbWUgPSAid2Via2l0
X2RvbV8iIC4gRml4VXBEZWNhbWVsaXplZE5hbWUoZGVjYW1lbGl6ZSgkaW50ZXJmYWNlTmFtZSkp
OwogCi0gICAgbXkgJGNvbmRpdGlvbmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRl
Q29uZGl0aW9uYWxTdHJpbmcoJGludGVyZmFjZSk7Ci0gICAgcHVzaChAY1N0cnVjdFByaXYsICJz
dHJ1Y3QgXyR7Y2xhc3NOYW1lfVByaXZhdGUge1xuIik7Ci0gICAgcHVzaChAY1N0cnVjdFByaXYs
ICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cbiIpIGlmICRjb25kaXRpb25hbFN0cmluZzsKLSAg
ICBwdXNoKEBjU3RydWN0UHJpdiwgIiAgICBSZWZQdHI8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1l
fT4gY29yZU9iamVjdDtcbiIpOwotICAgIHB1c2goQGNTdHJ1Y3RQcml2LCAiI2VuZGlmIC8vICR7
Y29uZGl0aW9uYWxTdHJpbmd9XG4iKSBpZiAkY29uZGl0aW9uYWxTdHJpbmc7Ci0gICAgcHVzaChA
Y1N0cnVjdFByaXYsICJ9O1xuXG4iKTsKLQogICAgICRpbXBsQ29udGVudCA9IDw8ICJFT0YiOwog
JHtkZWZpbmVUeXBlTWFjcm99KCR7Y2xhc3NOYW1lfSwgJHtsb3dlckNhc2VJZmFjZU5hbWV9LCAk
e3BhcmVudEdPYmpUeXBlfSR7ZGVmaW5lVHlwZUludGVyZmFjZUltcGxlbWVudGF0aW9ufQogCkBA
IC0xMjIyLDcgKzEyMDQsMTEgQEAgRU9GCiBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBjb3Jl
KCR7Y2xhc3NOYW1lfSogcmVxdWVzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1
ZXN0LCAwKTsKLSAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKwor
ICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxX
ZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNv
cmVPYmplY3QpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDApOworCisg
ICAgcmV0dXJuIGNvcmVPYmplY3Q7CiB9CiAKIEVPRgpAQCAtMTIzNSw2ICsxMjIxLDExIEBAIEVP
RgogJHtjbGFzc05hbWV9KiB3cmFwJHtpbnRlcmZhY2VOYW1lfShXZWJDb3JlOjoke2ludGVyZmFj
ZU5hbWV9KiBjb3JlT2JqZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmpl
Y3QsIDApOworCisgICAgLy8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBz
bWFydCBwb2ludGVyIGJlY2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8g
aW4gYSBDLWFsbG9jYXRlZCBHT2JqZWN0IHN0cnVjdHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNv
ZGUgZm9yIHRoZSBtYXRjaGluZyBkZXJlZigpLgorICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAg
ICAgcmV0dXJuIFdFQktJVF9ET01fJHtjbHNDYXBzfShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVf
RE9NXyR7Y2xzQ2Fwc30sICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIE5VTEwpKTsKIH0KIApA
QCAtMTI2NSw3ICsxMjU2LDYgQEAgc3ViIEdlbmVyYXRlRXZlbnRUYXJnZXRJZmFjZSB7CiAKICAg
ICBteSAkaW50ZXJmYWNlTmFtZSA9ICRpbnRlcmZhY2UtPm5hbWU7CiAgICAgbXkgJGRlY2FtZWxp
emUgPSBGaXhVcERlY2FtZWxpemVkTmFtZShkZWNhbWVsaXplKCRpbnRlcmZhY2VOYW1lKSk7Ci0g
ICAgbXkgJGNsc0NhcHMgPSB1YygkZGVjYW1lbGl6ZSk7CiAKICAgICAkaW1wbEluY2x1ZGVzeyJH
T2JqZWN0RXZlbnRMaXN0ZW5lci5oIn0gPSAxOwogICAgICRpbXBsSW5jbHVkZXN7IldlYktpdERP
TUV2ZW50VGFyZ2V0LmgifSA9IDE7CkBAIC0xMjc0LDggKzEyNjQsMTEgQEAgc3ViIEdlbmVyYXRl
RXZlbnRUYXJnZXRJZmFjZSB7CiAgICAgbXkgJGltcGwgPSA8PCAiRU9GIjsKIHN0YXRpYyB2b2lk
IHdlYmtpdF9kb21fJHtkZWNhbWVsaXplfV9kaXNwYXRjaF9ldmVudChXZWJLaXRET01FdmVudFRh
cmdldCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVycm9yKQogewor
ICAgIFdlYkNvcmU6OkV2ZW50KiBjb3JlRXZlbnQgPSBXZWJLaXQ6OmNvcmUoZXZlbnQpOworICAg
IFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjoke2ludGVyZmFjZU5hbWV9Kj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9i
amVjdCk7CisKICAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBXRUJLSVRf
RE9NXyR7Y2xzQ2Fwc30odGFyZ2V0KS0+cHJpdi0+Y29yZU9iamVjdC0+ZGlzcGF0Y2hFdmVudChX
ZWJLaXQ6OmNvcmUoZXZlbnQpLCBlYyk7CisgICAgY29yZVRhcmdldC0+ZGlzcGF0Y2hFdmVudChj
b3JlRXZlbnQsIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgV2ViQ29yZTo6RXhjZXB0aW9u
Q29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKGVjKTsKICAgICAgICAgZ19zZXRfZXJyb3JfbGl0
ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNjcmlwdGlv
bi5jb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKQEAgLTEyODQsMTMgKzEyNzcsMTMgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV8ke2RlY2FtZWxpemV9X2Rpc3BhdGNoX2V2ZW50KFdlYktpdERPTUV2
ZW50VGFyZ2V0KiB0YXJnZXQKIAogc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fJHtkZWNhbWVs
aXplfV9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgY29u
c3QgY2hhciogZXZlbnROYW1lLCBHQ2FsbGJhY2sgaGFuZGxlciwgZ2Jvb2xlYW4gYnViYmxlLCBn
cG9pbnRlciB1c2VyRGF0YSkKIHsKLSAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBjb3Jl
VGFyZ2V0ID0gV0VCS0lUX0RPTV8ke2Nsc0NhcHN9KHRhcmdldCktPnByaXYtPmNvcmVPYmplY3Qu
Z2V0KCk7CisgICAgV2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSogY29yZVRhcmdldCA9IHN0YXRp
Y19jYXN0PFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qPihXRUJLSVRfRE9NX09CSkVDVCh0YXJn
ZXQpLT5jb3JlT2JqZWN0KTsKICAgICByZXR1cm4gV2ViQ29yZTo6R09iamVjdEV2ZW50TGlzdGVu
ZXI6OmFkZEV2ZW50TGlzdGVuZXIoR19PQkpFQ1QodGFyZ2V0KSwgY29yZVRhcmdldCwgZXZlbnRO
YW1lLCBoYW5kbGVyLCBidWJibGUsIHVzZXJEYXRhKTsKIH0KIAogc3RhdGljIGdib29sZWFuIHdl
YmtpdF9kb21fJHtkZWNhbWVsaXplfV9yZW1vdmVfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZl
bnRUYXJnZXQqIHRhcmdldCwgY29uc3QgY2hhciogZXZlbnROYW1lLCBHQ2FsbGJhY2sgaGFuZGxl
ciwgZ2Jvb2xlYW4gYnViYmxlKQogewotICAgIFdlYkNvcmU6OiR7aW50ZXJmYWNlTmFtZX0qIGNv
cmVUYXJnZXQgPSBXRUJLSVRfRE9NXyR7Y2xzQ2Fwc30odGFyZ2V0KS0+cHJpdi0+Y29yZU9iamVj
dC5nZXQoKTsKKyAgICBXZWJDb3JlOjoke2ludGVyZmFjZU5hbWV9KiBjb3JlVGFyZ2V0ID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6JHtpbnRlcmZhY2VOYW1lfSo+KFdFQktJVF9ET01fT0JKRUNUKHRh
cmdldCktPmNvcmVPYmplY3QpOwogICAgIHJldHVybiBXZWJDb3JlOjpHT2JqZWN0RXZlbnRMaXN0
ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09CSkVDVCh0YXJnZXQpLCBjb3JlVGFyZ2V0LCBl
dmVudE5hbWUsIGhhbmRsZXIsIGJ1YmJsZSk7CiB9CiAKQEAgLTE0MzksNyArMTQzMiw2IEBAIEVP
RgogCiAgICAgcHJpbnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD5cbiI7CiAgICAgcHJp
bnQgSU1QTCAiI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD5cblxuIjsKLSAgICBwcmludCBJTVBMIEBj
U3RydWN0UHJpdjsKICAgICBwcmludCBJTVBMICIjaWYgJHtjb25kaXRpb25hbFN0cmluZ31cblxu
IiBpZiAkY29uZGl0aW9uYWxTdHJpbmc7CiAKICAgICBwcmludCBJTVBMICJuYW1lc3BhY2UgV2Vi
S2l0IHtcblxuIjsKQEAgLTE0NjEsNyArMTQ1Myw2IEBAIEVPRgogICAgIEBjQm9keSA9ICgpOwog
ICAgIEBjQm9keVByaXYgPSAoKTsKICAgICBAY0JvZHlQcm9wZXJ0aWVzID0gKCk7Ci0gICAgQGNT
dHJ1Y3RQcml2ID0gKCk7CiB9CiAKIHN1YiBHZW5lcmF0ZUludGVyZmFjZSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01G
bG9hdDY0QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NRmxvYXQ2NEFycmF5LmNwcAppbmRleCAxYzhkMGU1NzQ0ZDVjNzlmZGNj
YTY2M2U1NTZjZTdkYWI1YjgwODc5Li41OTQ1NTA5ZTU0M2NlNTY3OTBmNWYyZWE0NjQyMTYzYWRl
NDhjZDU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01GbG9hdDY0QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5jcHAKQEAg
LTMzLDEwICszMyw2IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KIAotc3RydWN0IF9XZWJLaXRET01GbG9hdDY0QXJyYXlQcml2YXRlIHsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6RmxvYXQ2NEFycmF5PiBjb3JlT2JqZWN0OwotfTsKLQogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIFdlYktpdERPTUZsb2F0NjRBcnJheSoga2l0KFdlYkNvcmU6OkZsb2F0NjRB
cnJheSogb2JqKQpAQCAtNTIsMTIgKzQ4LDIxIEBAIFdlYktpdERPTUZsb2F0NjRBcnJheSoga2l0
KFdlYkNvcmU6OkZsb2F0NjRBcnJheSogb2JqKQogV2ViQ29yZTo6RmxvYXQ2NEFycmF5KiBjb3Jl
KFdlYktpdERPTUZsb2F0NjRBcnJheSogcmVxdWVzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChyZXF1ZXN0LCAwKTsKLSAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5n
ZXQoKTsKKworICAgIFdlYkNvcmU6OkZsb2F0NjRBcnJheSogY29yZU9iamVjdCA9IHN0YXRpY19j
YXN0PFdlYkNvcmU6OkZsb2F0NjRBcnJheSo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5j
b3JlT2JqZWN0KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKwor
ICAgIHJldHVybiBjb3JlT2JqZWN0OwogfQogCiBXZWJLaXRET01GbG9hdDY0QXJyYXkqIHdyYXBG
bG9hdDY0QXJyYXkoV2ViQ29yZTo6RmxvYXQ2NEFycmF5KiBjb3JlT2JqZWN0KQogewogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDApOworCisgICAgLy8gV2UgY2FsbCByZWYo
KSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBzbWFydCBwb2ludGVyIGJlY2F1c2Ugd2UgY2FuJ3Qg
c3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8gaW4gYSBDLWFsbG9jYXRlZCBHT2JqZWN0IHN0cnVj
dHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUgZm9yIHRoZSBtYXRjaGluZyBkZXJlZigpLgor
ICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAgICAgcmV0dXJuIFdFQktJVF9ET01fRkxPQVQ2NEFS
UkFZKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fRkxPQVQ2NEFSUkFZLCAiY29yZS1vYmpl
Y3QiLCBjb3JlT2JqZWN0LCBOVUxMKSk7CiB9CiAKQEAgLTY3LDM3ICs3MiwzMCBAQCBHX0RFRklO
RV9UWVBFKFdlYktpdERPTUZsb2F0NjRBcnJheSwgd2Via2l0X2RvbV9mbG9hdDY0YXJyYXksIFdF
QktJVF9UWVBFX0RPTV9BUgogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX2Zsb2F0NjRhcnJheV9m
aW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgV2ViS2l0RE9NRmxvYXQ2NEFycmF5UHJp
dmF0ZSogcHJpdiA9IFdFQktJVF9ET01fRkxPQVQ2NEFSUkFZKG9iamVjdCktPnByaXY7CiAKLSAg
ICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSk7
CisgICAgV2ViS2l0RE9NT2JqZWN0KiBkb21PYmplY3QgPSBXRUJLSVRfRE9NX09CSkVDVChvYmpl
Y3QpOworICAgIAorICAgIGlmIChkb21PYmplY3QtPmNvcmVPYmplY3QpIHsKKyAgICAgICAgV2Vi
Q29yZTo6RmxvYXQ2NEFycmF5KiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Rmxv
YXQ2NEFycmF5Kj4oZG9tT2JqZWN0LT5jb3JlT2JqZWN0KTsKIAotICAgIHByaXYtPn5XZWJLaXRE
T01GbG9hdDY0QXJyYXlQcml2YXRlKCk7Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9m
bG9hdDY0YXJyYXlfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKLX0KKyAgICAgICAg
V2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmplY3QpOworICAgICAgICBjb3Jl
T2JqZWN0LT5kZXJlZigpOwogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV9mbG9hdDY0YXJy
YXlfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0UHJvcGVydGllc0NvdW50
LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRpZXMpCi17Ci0gICAgR09i
amVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV9mbG9hdDY0YXJyYXlfcGFy
ZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBj
b25zdHJ1Y3RQcm9wZXJ0aWVzKTsKKyAgICAgICAgZG9tT2JqZWN0LT5jb3JlT2JqZWN0ID0gMDsK
KyAgICB9CiAKLSAgICBXZWJLaXRET01GbG9hdDY0QXJyYXlQcml2YXRlKiBwcml2ID0gV0VCS0lU
X0RPTV9GTE9BVDY0QVJSQVkob2JqZWN0KS0+cHJpdjsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6RmxvYXQ2NEFycmF5Kj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2Jq
ZWN0KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2JqZWN0OworICAgIEdfT0JKRUNUX0NM
QVNTKHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVj
dCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2NsYXNzX2luaXQo
V2ViS2l0RE9NRmxvYXQ2NEFycmF5Q2xhc3MqIHJlcXVlc3RDbGFzcykKIHsKICAgICBHT2JqZWN0
Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7Ci0gICAg
Z29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2NvbnN0
cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX2Zsb2F0NjRh
cnJheV9maW5hbGl6ZTsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoZ29iamVjdENsYXNz
LCBzaXplb2YoV2ViS2l0RE9NRmxvYXQ2NEFycmF5UHJpdmF0ZSkpOwogfQogCi1zdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX2Zsb2F0NjRhcnJheV9pbml0KFdlYktpdERPTUZsb2F0NjRBcnJheSogc2Vs
ZikKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fZmxvYXQ2NGFycmF5X2luaXQoV2ViS2l0RE9NRmxv
YXQ2NEFycmF5KiByZXF1ZXN0KQogewotICAgIFdlYktpdERPTUZsb2F0NjRBcnJheVByaXZhdGUq
IHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9N
X0ZMT0FUNjRBUlJBWSwgV2ViS2l0RE9NRmxvYXQ2NEFycmF5UHJpdmF0ZSk7Ci0gICAgc2VsZi0+
cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRET01GbG9hdDY0QXJyYXlQcml2YXRl
KCk7CiB9CiAKIFdlYktpdERPTUludDMyQXJyYXkqCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01GbG9hdDY0QXJyYXkuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTUZs
b2F0NjRBcnJheS5oCmluZGV4IDg4NzMzZDQ3ZDkwNzkzNzZkMjM0ODA4YTY1MzY5YWQwMGNmYzY5
MzIuLjA2ZWRiODJmYzdiYTExMTI5MWM1MmY3MGI4Y2NjMjkwNzVlMjVkMTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTUZs
b2F0NjRBcnJheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9H
T2JqZWN0L1dlYktpdERPTUZsb2F0NjRBcnJheS5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lO
X0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9ET01fSVNfRkxPQVQ2NEFSUkFZX0NMQVNTKGtsYXNzKSAo
R19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0RPTV9GTE9BVDY0
QVJSQVkpKQogI2RlZmluZSBXRUJLSVRfRE9NX0ZMT0FUNjRBUlJBWV9HRVRfQ0xBU1Mob2JqKSAg
KEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9ET01fRkxPQVQ2
NEFSUkFZLCBXZWJLaXRET01GbG9hdDY0QXJyYXlDbGFzcykpCiAKLXR5cGVkZWYgc3RydWN0IF9X
ZWJLaXRET01GbG9hdDY0QXJyYXlQcml2YXRlIFdlYktpdERPTUZsb2F0NjRBcnJheVByaXZhdGU7
Ci0KIHN0cnVjdCBfV2ViS2l0RE9NRmxvYXQ2NEFycmF5IHsKICAgICBXZWJLaXRET01BcnJheUJ1
ZmZlclZpZXcgcGFyZW50X2luc3RhbmNlOwotCi0gICAgV2ViS2l0RE9NRmxvYXQ2NEFycmF5UHJp
dmF0ZSAqcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0RE9NRmxvYXQ2NEFycmF5Q2xhc3Mgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApp
bmRleCBiNGZhN2ZhZDQ4NzhlMDBhNzJlYzc5ZTk1MzFhYTZkOGUyMDhiMDNiLi42NzgzMDYyNmZi
MTYwNzdhY2NiZjJhODM4OTAyNWU3NjlhYzBmM2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0QWN0aXZlRE9NT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMzIsMTAgKzMyLDYgQEAKICNp
bmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1zdHJ1Y3Qg
X1dlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6VGVzdEFjdGl2ZURPTU9iamVjdD4gY29yZU9iamVjdDsKLX07Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0KiBraXQoV2ViQ29yZTo6VGVzdEFj
dGl2ZURPTU9iamVjdCogb2JqKQpAQCAtNTEsMTIgKzQ3LDIxIEBAIFdlYktpdERPTVRlc3RBY3Rp
dmVET01PYmplY3QqIGtpdChXZWJDb3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0KiBvYmopCiBXZWJD
b3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0KiBjb3JlKFdlYktpdERPTVRlc3RBY3RpdmVET01PYmpl
Y3QqIHJlcXVlc3QpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocmVxdWVzdCwgMCk7Ci0g
ICAgcmV0dXJuIHJlcXVlc3QtPnByaXYtPmNvcmVPYmplY3QuZ2V0KCk7CisKKyAgICBXZWJDb3Jl
OjpUZXN0QWN0aXZlRE9NT2JqZWN0KiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
VGVzdEFjdGl2ZURPTU9iamVjdCo+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2Jq
ZWN0KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIHJl
dHVybiBjb3JlT2JqZWN0OwogfQogCiBXZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0KiB3cmFw
VGVzdEFjdGl2ZURPTU9iamVjdChXZWJDb3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0KiBjb3JlT2Jq
ZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDApOworCisgICAg
Ly8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBzbWFydCBwb2ludGVyIGJl
Y2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8gaW4gYSBDLWFsbG9jYXRl
ZCBHT2JqZWN0IHN0cnVjdHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUgZm9yIHRoZSBtYXRj
aGluZyBkZXJlZigpLgorICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAgICAgcmV0dXJuIFdFQktJ
VF9ET01fVEVTVF9BQ1RJVkVfRE9NX09CSkVDVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRE9N
X1RFU1RfQUNUSVZFX0RPTV9PQkpFQ1QsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIE5VTEwp
KTsKIH0KIApAQCAtNzEsMTEgKzc2LDE5IEBAIGVudW0gewogCiBzdGF0aWMgdm9pZCB3ZWJraXRf
ZG9tX3Rlc3RfYWN0aXZlX2RvbV9vYmplY3RfZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewot
ICAgIFdlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RP
TV9URVNUX0FDVElWRV9ET01fT0JKRUNUKG9iamVjdCktPnByaXY7CiAKLSAgICBXZWJLaXQ6OkRP
TU9iamVjdENhY2hlOjpmb3JnZXQocHJpdi0+Y29yZU9iamVjdC5nZXQoKSk7CisgICAgV2ViS2l0
RE9NT2JqZWN0KiBkb21PYmplY3QgPSBXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpOworICAgIAor
ICAgIGlmIChkb21PYmplY3QtPmNvcmVPYmplY3QpIHsKKyAgICAgICAgV2ViQ29yZTo6VGVzdEFj
dGl2ZURPTU9iamVjdCogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RBY3Rp
dmVET01PYmplY3QqPihkb21PYmplY3QtPmNvcmVPYmplY3QpOworCisgICAgICAgIFdlYktpdDo6
RE9NT2JqZWN0Q2FjaGU6OmZvcmdldChjb3JlT2JqZWN0KTsKKyAgICAgICAgY29yZU9iamVjdC0+
ZGVyZWYoKTsKKworICAgICAgICBkb21PYmplY3QtPmNvcmVPYmplY3QgPSAwOworICAgIH0KKwog
Ci0gICAgcHJpdi0+fldlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRlKCk7CiAgICAg
R19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X3BhcmVudF9j
bGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKQEAgLTk3LDIyICsxMTAsMTAgQEAgc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2dldF9wcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW4KICAgICB9CiB9CiAKLXN0YXRpYyBHT2JqZWN0KiB3ZWJraXRfZG9t
X3Rlc3RfYWN0aXZlX2RvbV9vYmplY3RfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29u
c3RydWN0UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFBy
b3BlcnRpZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKHR5
cGUsIGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgY29uc3RydWN0UHJvcGVydGllcyk7Ci0KLSAg
ICBXZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0UHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01f
VEVTVF9BQ1RJVkVfRE9NX09CSkVDVChvYmplY3QpLT5wcml2OwotICAgIHByaXYtPmNvcmVPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0QWN0aXZlRE9NT2JqZWN0Kj4oV0VCS0lUX0RP
TV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7Ci0KLSAgICByZXR1cm4gb2JqZWN0OwotfQot
CiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfYWN0aXZlX2RvbV9vYmplY3RfY2xhc3NfaW5p
dChXZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0Q2xhc3MqIHJlcXVlc3RDbGFzcykKIHsKICAg
ICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFz
cyk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9kb21fdGVzdF9hY3Rp
dmVfZG9tX29iamVjdF9jb25zdHJ1Y3RvcjsKICAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0g
d2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2ZpbmFsaXplOwotICAgIGdfdHlwZV9j
bGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0QWN0aXZl
RE9NT2JqZWN0UHJpdmF0ZSkpOwogICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Vi
a2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2dldF9wcm9wZXJ0eTsKIAogICAgIGdfb2Jq
ZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoZ29iamVjdENsYXNzLApAQCAtMTI2LDExICsxMjcs
OCBAQCBHX01BWExPTkcsIC8qIG1heCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2FjdGl2ZV9kb21fb2JqZWN0X2luaXQoV2Vi
S2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdCogc2VsZikKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9hY3RpdmVfZG9tX29iamVjdF9pbml0KFdlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3Qq
IHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdFByaXZhdGUqIHBy
aXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9NX1RF
U1RfQUNUSVZFX0RPTV9PQkpFQ1QsIFdlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRl
KTsKLSAgICBzZWxmLT5wcml2ID0gcHJpdjsKLSAgICBuZXcgKHByaXYpIFdlYktpdERPTVRlc3RB
Y3RpdmVET01PYmplY3RQcml2YXRlKCk7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RBY3RpdmVE
T01PYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0
L1dlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3QuaAppbmRleCA1OGEzODgzNDU5MGMwODI4YTQ3
ZTVlN2Y0N2MzZDMyODkzNzkyMGI5Li44ZTZlMDVhYjVkM2M4YmU2NzM0OGFlZTBjZWJlYzZiZDI3
N2U5ODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9i
amVjdC5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9E
T01fSVNfVEVTVF9BQ1RJVkVfRE9NX09CSkVDVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9ET01fVEVTVF9BQ1RJVkVfRE9NX09CSkVD
VCkpCiAjZGVmaW5lIFdFQktJVF9ET01fVEVTVF9BQ1RJVkVfRE9NX09CSkVDVF9HRVRfQ0xBU1Mo
b2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9ET01f
VEVTVF9BQ1RJVkVfRE9NX09CSkVDVCwgV2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdENsYXNz
KSkKIAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRl
IFdlYktpdERPTVRlc3RBY3RpdmVET01PYmplY3RQcml2YXRlOwotCiBzdHJ1Y3QgX1dlYktpdERP
TVRlc3RBY3RpdmVET01PYmplY3QgewogICAgIFdlYktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFu
Y2U7Ci0KLSAgICBXZWJLaXRET01UZXN0QWN0aXZlRE9NT2JqZWN0UHJpdmF0ZSAqcHJpdjsKIH07
CiAKIHN0cnVjdCBfV2ViS2l0RE9NVGVzdEFjdGl2ZURPTU9iamVjdENsYXNzIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RDYWxsYmFjay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suY3BwCmluZGV4IDBhMTZlODM3YTIyODhhYTAx
ZmEyMDllOTkzOWJmMTRmMzMyMWE0MjAuLjMxZTZhNmQ1YWQxOTlhMThhMzE5NjY0NWRjN2IxMjY4
MjMwZDRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RDYWxsYmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmNwcApA
QCAtMzcsMTIgKzM3LDYgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCi1zdHJ1Y3QgX1dlYktpdERPTVRlc3RDYWxsYmFja1ByaXZhdGUgewotI2lm
IEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RDYWxsYmFjaz4g
Y29yZU9iamVjdDsKLSNlbmRpZiAvLyBFTkFCTEUoU1FMX0RBVEFCQVNFKQotfTsKLQogI2lmIEVO
QUJMRShTUUxfREFUQUJBU0UpCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNjAsMTIgKzU0LDIx
IEBAIFdlYktpdERPTVRlc3RDYWxsYmFjayoga2l0KFdlYkNvcmU6OlRlc3RDYWxsYmFjayogb2Jq
KQogV2ViQ29yZTo6VGVzdENhbGxiYWNrKiBjb3JlKFdlYktpdERPTVRlc3RDYWxsYmFjayogcmVx
dWVzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1ZXN0LCAwKTsKLSAgICByZXR1
cm4gcmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKworICAgIFdlYkNvcmU6OlRlc3RD
YWxsYmFjayogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RDYWxsYmFjayo+
KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KTsKKyAgICBnX3JldHVybl92
YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIHJldHVybiBjb3JlT2JqZWN0OwogfQog
CiBXZWJLaXRET01UZXN0Q2FsbGJhY2sqIHdyYXBUZXN0Q2FsbGJhY2soV2ViQ29yZTo6VGVzdENh
bGxiYWNrKiBjb3JlT2JqZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmpl
Y3QsIDApOworCisgICAgLy8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBz
bWFydCBwb2ludGVyIGJlY2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8g
aW4gYSBDLWFsbG9jYXRlZCBHT2JqZWN0IHN0cnVjdHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNv
ZGUgZm9yIHRoZSBtYXRjaGluZyBkZXJlZigpLgorICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAg
ICAgcmV0dXJuIFdFQktJVF9ET01fVEVTVF9DQUxMQkFDSyhnX29iamVjdF9uZXcoV0VCS0lUX1RZ
UEVfRE9NX1RFU1RfQ0FMTEJBQ0ssICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIE5VTEwpKTsK
IH0KIApAQCAtNzcsMzcgKzgwLDMwIEBAIEdfREVGSU5FX1RZUEUoV2ViS2l0RE9NVGVzdENhbGxi
YWNrLCB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2ssIFdFQktJVF9UWVBFX0RPTV9PCiAKIHN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9jYWxsYmFja19maW5hbGl6ZShHT2JqZWN0KiBvYmplY3Qp
CiB7Ci0gICAgV2ViS2l0RE9NVGVzdENhbGxiYWNrUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01f
VEVTVF9DQUxMQkFDSyhvYmplY3QpLT5wcml2OwogI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkp
OwotI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCi0gICAgcHJpdi0+fldlYktpdERPTVRl
c3RDYWxsYmFja1ByaXZhdGUoKTsKLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3Rf
Y2FsbGJhY2tfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKLX0KKyAgICBXZWJLaXRE
T01PYmplY3QqIGRvbU9iamVjdCA9IFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgCisg
ICAgaWYgKGRvbU9iamVjdC0+Y29yZU9iamVjdCkgeworICAgICAgICBXZWJDb3JlOjpUZXN0Q2Fs
bGJhY2sqIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0Q2FsbGJhY2sqPihk
b21PYmplY3QtPmNvcmVPYmplY3QpOwogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV90ZXN0
X2NhbGxiYWNrX2NvbnN0cnVjdG9yKEdUeXBlIHR5cGUsIGd1aW50IGNvbnN0cnVjdFByb3BlcnRp
ZXNDb3VudCwgR09iamVjdENvbnN0cnVjdFBhcmFtKiBjb25zdHJ1Y3RQcm9wZXJ0aWVzKQotewot
ICAgIEdPYmplY3QqIG9iamVjdCA9IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9jYWxs
YmFja19wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVz
Q291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOwotI2lmIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgV2ViS2l0RE9NVGVzdENhbGxiYWNrUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9D
QUxMQkFDSyhvYmplY3QpLT5wcml2OwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpUZXN0Q2FsbGJhY2sqPihXRUJLSVRfRE9NX09CSkVDVChvYmplY3QpLT5jb3Jl
T2JqZWN0KTsKKyAgICAgICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmpl
Y3QpOworICAgICAgICBjb3JlT2JqZWN0LT5kZXJlZigpOworCisgICAgICAgIGRvbU9iamVjdC0+
Y29yZU9iamVjdCA9IDA7CisgICAgfQogI2VuZGlmIC8vIEVOQUJMRShTUUxfREFUQUJBU0UpCi0g
ICAgcmV0dXJuIG9iamVjdDsKKworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9j
YWxsYmFja19wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0Q2FsbGJh
Y2tDbGFzcyogcmVxdWVzdENsYXNzKQogewogICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNz
ID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsKLSAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0
cnVjdG9yID0gd2Via2l0X2RvbV90ZXN0X2NhbGxiYWNrX2NvbnN0cnVjdG9yOwogICAgIGdvYmpl
Y3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX3Rlc3RfY2FsbGJhY2tfZmluYWxpemU7Ci0g
ICAgZ190eXBlX2NsYXNzX2FkZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6ZW9mKFdlYktpdERP
TVRlc3RDYWxsYmFja1ByaXZhdGUpKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0
X2NhbGxiYWNrX2luaXQoV2ViS2l0RE9NVGVzdENhbGxiYWNrKiBzZWxmKQorc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X2NhbGxiYWNrX2luaXQoV2ViS2l0RE9NVGVzdENhbGxiYWNrKiByZXF1
ZXN0KQogewotICAgIFdlYktpdERPTVRlc3RDYWxsYmFja1ByaXZhdGUqIHByaXYgPSBHX1RZUEVf
SU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9NX1RFU1RfQ0FMTEJBQ0ss
IFdlYktpdERPTVRlc3RDYWxsYmFja1ByaXZhdGUpOwotICAgIHNlbGYtPnByaXYgPSBwcml2Owot
ICAgIG5ldyAocHJpdikgV2ViS2l0RE9NVGVzdENhbGxiYWNrUHJpdmF0ZSgpOwogfQogCiBnYm9v
bGVhbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdENhbGxiYWNrLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suaAppbmRleCA1MDk1ZDlm
NmRiZDBmOGVhMjRlNmE5MWYzODEyODk0ZGVhOTljMTY1Li5lMDJlMzJhYmY2OTkzYzliOGQzYmYx
MGI4OTA3MGIyYTc2YWQ1MTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJhY2suaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q2FsbGJh
Y2suaApAQCAtMzUsMTIgKzM1LDggQEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9N
X0lTX1RFU1RfQ0FMTEJBQ0tfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgo
a2xhc3MpLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfQ0FMTEJBQ0spKQogI2RlZmluZSBXRUJLSVRf
RE9NX1RFU1RfQ0FMTEJBQ0tfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NM
QVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfQ0FMTEJBQ0ssIFdlYktpdERPTVRlc3RD
YWxsYmFja0NsYXNzKSkKIAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RDYWxsYmFja1By
aXZhdGUgV2ViS2l0RE9NVGVzdENhbGxiYWNrUHJpdmF0ZTsKLQogc3RydWN0IF9XZWJLaXRET01U
ZXN0Q2FsbGJhY2sgewogICAgIFdlYktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAg
ICBXZWJLaXRET01UZXN0Q2FsbGJhY2tQcml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9XZWJL
aXRET01UZXN0Q2FsbGJhY2tDbGFzcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAppbmRleCA1YmYzOGM5YzI4MDNjNDdiZjcxOTYx
MzNiNzQ5NmIzNTJhNzkwN2YxLi44YjA4NmRlODFmNzU5NGI4YjhkNmFlYWFmOGYzMDA5ZDhmZDE2
YzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09i
amVjdC9XZWJLaXRET01UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RDdXN0b21OYW1l
ZEdldHRlci5jcHAKQEAgLTMxLDEwICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotc3RydWN0IF9XZWJLaXRET01UZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJQcml2YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0
dGVyPiBjb3JlT2JqZWN0OwotfTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVRl
c3RDdXN0b21OYW1lZEdldHRlcioga2l0KFdlYkNvcmU6OlRlc3RDdXN0b21OYW1lZEdldHRlciog
b2JqKQpAQCAtNTAsMTIgKzQ2LDIxIEBAIFdlYktpdERPTVRlc3RDdXN0b21OYW1lZEdldHRlciog
a2l0KFdlYkNvcmU6OlRlc3RDdXN0b21OYW1lZEdldHRlciogb2JqKQogV2ViQ29yZTo6VGVzdEN1
c3RvbU5hbWVkR2V0dGVyKiBjb3JlKFdlYktpdERPTVRlc3RDdXN0b21OYW1lZEdldHRlciogcmVx
dWVzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1ZXN0LCAwKTsKLSAgICByZXR1
cm4gcmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKworICAgIFdlYkNvcmU6OlRlc3RD
dXN0b21OYW1lZEdldHRlciogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RD
dXN0b21OYW1lZEdldHRlcio+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0
KTsKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIHJldHVy
biBjb3JlT2JqZWN0OwogfQogCiBXZWJLaXRET01UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHdyYXBU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoV2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjb3Jl
T2JqZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDApOworCisg
ICAgLy8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBzbWFydCBwb2ludGVy
IGJlY2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8gaW4gYSBDLWFsbG9j
YXRlZCBHT2JqZWN0IHN0cnVjdHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUgZm9yIHRoZSBt
YXRjaGluZyBkZXJlZigpLgorICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAgICAgcmV0dXJuIFdF
QktJVF9ET01fVEVTVF9DVVNUT01fTkFNRURfR0VUVEVSKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQ
RV9ET01fVEVTVF9DVVNUT01fTkFNRURfR0VUVEVSLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0
LCBOVUxMKSk7CiB9CiAKQEAgLTY1LDM3ICs3MCwzMCBAQCBHX0RFRklORV9UWVBFKFdlYktpdERP
TVRlc3RDdXN0b21OYW1lZEdldHRlciwgd2Via2l0X2RvbV90ZXN0X2N1c3RvbV9uYW1lZF9nZXR0
ZQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfY3VzdG9tX25hbWVkX2dldHRlcl9maW5h
bGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9DVVNUT01fTkFNRURfR0VUVEVSKG9i
amVjdCktPnByaXY7CiAKLSAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQocHJpdi0+
Y29yZU9iamVjdC5nZXQoKSk7CisgICAgV2ViS2l0RE9NT2JqZWN0KiBkb21PYmplY3QgPSBXRUJL
SVRfRE9NX09CSkVDVChvYmplY3QpOworICAgIAorICAgIGlmIChkb21PYmplY3QtPmNvcmVPYmpl
Y3QpIHsKKyAgICAgICAgV2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjb3JlT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oZG9tT2JqZWN0
LT5jb3JlT2JqZWN0KTsKIAotICAgIHByaXYtPn5XZWJLaXRET01UZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJQcml2YXRlKCk7Ci0gICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X2N1c3RvbV9u
YW1lZF9nZXR0ZXJfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKLX0KKyAgICAgICAg
V2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmplY3QpOworICAgICAgICBjb3Jl
T2JqZWN0LT5kZXJlZigpOwogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV90ZXN0X2N1c3Rv
bV9uYW1lZF9nZXR0ZXJfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0UHJv
cGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRpZXMp
Ci17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0
X2N1c3RvbV9uYW1lZF9nZXR0ZXJfcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29u
c3RydWN0UHJvcGVydGllc0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVzKTsKKyAgICAgICAgZG9t
T2JqZWN0LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CiAKLSAgICBXZWJLaXRET01UZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9URVNUX0NVU1RPTV9OQU1FRF9H
RVRURVIob2JqZWN0KS0+cHJpdjsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6VGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0
KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2JqZWN0OworICAgIEdfT0JKRUNUX0NMQVNT
KHdlYmtpdF9kb21fdGVzdF9jdXN0b21fbmFtZWRfZ2V0dGVyX3BhcmVudF9jbGFzcyktPmZpbmFs
aXplKG9iamVjdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9jdXN0b21fbmFt
ZWRfZ2V0dGVyX2NsYXNzX2luaXQoV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ2xhc3Mq
IHJlcXVlc3RDbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JK
RUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9
IHdlYmtpdF9kb21fdGVzdF9jdXN0b21fbmFtZWRfZ2V0dGVyX2NvbnN0cnVjdG9yOwogICAgIGdv
YmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX3Rlc3RfY3VzdG9tX25hbWVkX2dldHRl
cl9maW5hbGl6ZTsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUoZ29iamVjdENsYXNzLCBz
aXplb2YoV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJpdmF0ZSkpOwogfQogCi1zdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfY3VzdG9tX25hbWVkX2dldHRlcl9pbml0KFdlYktpdERP
TVRlc3RDdXN0b21OYW1lZEdldHRlciogc2VsZikKK3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVz
dF9jdXN0b21fbmFtZWRfZ2V0dGVyX2luaXQoV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVy
KiByZXF1ZXN0KQogewotICAgIFdlYktpdERPTVRlc3RDdXN0b21OYW1lZEdldHRlclByaXZhdGUq
IHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9N
X1RFU1RfQ1VTVE9NX05BTUVEX0dFVFRFUiwgV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVy
UHJpdmF0ZSk7Ci0gICAgc2VsZi0+cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRE
T01UZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcml2YXRlKCk7CiB9CiAKIHZvaWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RDdXN0b21OYW1lZEdldHRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKaW5kZXggZDlkMzZh
NjllYmY4MjhhZWYwMjhlNzBkZjQyNmQ3ZGZkOWRjZWI1Ny4uMDE2NjlkMDUwNmEyYTM3NDA4ZDc4
ZmJjODllM2M0OWZlYWQxOGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgKQEAgLTM1LDEyICszNSw4IEBAIEdfQkVHSU5fREVDTFMK
ICNkZWZpbmUgV0VCS0lUX0RPTV9JU19URVNUX0NVU1RPTV9OQU1FRF9HRVRURVJfQ0xBU1Moa2xh
c3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRE9NX1RF
U1RfQ1VTVE9NX05BTUVEX0dFVFRFUikpCiAjZGVmaW5lIFdFQktJVF9ET01fVEVTVF9DVVNUT01f
TkFNRURfR0VUVEVSX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFTUygo
b2JqKSwgIFdFQktJVF9UWVBFX0RPTV9URVNUX0NVU1RPTV9OQU1FRF9HRVRURVIsIFdlYktpdERP
TVRlc3RDdXN0b21OYW1lZEdldHRlckNsYXNzKSkKIAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERP
TVRlc3RDdXN0b21OYW1lZEdldHRlclByaXZhdGUgV2ViS2l0RE9NVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJpdmF0ZTsKLQogc3RydWN0IF9XZWJLaXRET01UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgewog
ICAgIFdlYktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICBXZWJLaXRET01UZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9XZWJLaXRET01U
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDbGFzcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJL
aXRET01UZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNWUzYTNkYzcxYjgxMjc1YmIzYmI0
Mzk2ODJkZGY0OGViODA3NWExNS4uZDc2MGU2ZmIyMjI1NjE2ZDEwMTc1YWRmMjVmNzhjZjhhZTU5
YjMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFdmVudENvbnN0
cnVjdG9yLmNwcApAQCAtMzEsMTAgKzMxLDYgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1zdHJ1Y3QgX1dlYktpdERPTVRlc3RFdmVudENvbnN0
cnVjdG9yUHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RFdmVudENvbnN0cnVjdG9y
PiBjb3JlT2JqZWN0OwotfTsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKIFdlYktpdERPTVRlc3RF
dmVudENvbnN0cnVjdG9yKiBraXQoV2ViQ29yZTo6VGVzdEV2ZW50Q29uc3RydWN0b3IqIG9iaikK
QEAgLTUwLDEyICs0NiwyMSBAQCBXZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3Rvcioga2l0KFdl
YkNvcmU6OlRlc3RFdmVudENvbnN0cnVjdG9yKiBvYmopCiBXZWJDb3JlOjpUZXN0RXZlbnRDb25z
dHJ1Y3RvciogY29yZShXZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3RvciogcmVxdWVzdCkKIHsK
ICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1ZXN0LCAwKTsKLSAgICByZXR1cm4gcmVxdWVz
dC0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKworICAgIFdlYkNvcmU6OlRlc3RFdmVudENvbnN0
cnVjdG9yKiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEV2ZW50Q29uc3Ry
dWN0b3IqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9iamVj
dDsKIH0KIAogV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3IqIHdyYXBUZXN0RXZlbnRDb25z
dHJ1Y3RvcihXZWJDb3JlOjpUZXN0RXZlbnRDb25zdHJ1Y3RvciogY29yZU9iamVjdCkKIHsKICAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIC8vIFdlIGNhbGwg
cmVmKCkgcmF0aGVyIHRoYW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBiZWNhdXNlIHdlIGNh
bid0IHN0b3JlIGEgQysrIG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0ZWQgR09iamVjdCBz
dHJ1Y3R1cmUuIFNlZSB0aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0Y2hpbmcgZGVyZWYo
KS4KKyAgICBjb3JlT2JqZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJLSVRfRE9NX1RFU1Rf
RVZFTlRfQ09OU1RSVUNUT1IoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0RPTV9URVNUX0VWRU5U
X0NPTlNUUlVDVE9SLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBOVUxMKSk7CiB9CiAKQEAg
LTcxLDExICs3NiwxOSBAQCBlbnVtIHsKIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2V2
ZW50X2NvbnN0cnVjdG9yX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKLSAgICBXZWJLaXRE
T01UZXN0RXZlbnRDb25zdHJ1Y3RvclByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX1RFU1RfRVZF
TlRfQ09OU1RSVUNUT1Iob2JqZWN0KS0+cHJpdjsKIAotICAgIFdlYktpdDo6RE9NT2JqZWN0Q2Fj
aGU6OmZvcmdldChwcml2LT5jb3JlT2JqZWN0LmdldCgpKTsKKyAgICBXZWJLaXRET01PYmplY3Qq
IGRvbU9iamVjdCA9IFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgCisgICAgaWYgKGRv
bU9iamVjdC0+Y29yZU9iamVjdCkgeworICAgICAgICBXZWJDb3JlOjpUZXN0RXZlbnRDb25zdHJ1
Y3RvciogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RFdmVudENvbnN0cnVj
dG9yKj4oZG9tT2JqZWN0LT5jb3JlT2JqZWN0KTsKKworICAgICAgICBXZWJLaXQ6OkRPTU9iamVj
dENhY2hlOjpmb3JnZXQoY29yZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7
CisKKyAgICAgICAgZG9tT2JqZWN0LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CisKIAotICAgIHBy
aXYtPn5XZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3RvclByaXZhdGUoKTsKICAgICBHX09CSkVD
VF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfY29uc3RydWN0b3JfcGFyZW50X2NsYXNzKS0+
ZmluYWxpemUob2JqZWN0KTsKIH0KIApAQCAtMTAxLDIyICsxMTQsMTAgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X2V2ZW50X2NvbnN0cnVjdG9yX2dldF9wcm9wZXJ0eShHT2JqZWN0KiBv
YmplY3QsIGd1aW4KICAgICB9CiB9CiAKLXN0YXRpYyBHT2JqZWN0KiB3ZWJraXRfZG9tX3Rlc3Rf
ZXZlbnRfY29uc3RydWN0b3JfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0
UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRp
ZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90
ZXN0X2V2ZW50X2NvbnN0cnVjdG9yX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKHR5cGUsIGNv
bnN0cnVjdFByb3BlcnRpZXNDb3VudCwgY29uc3RydWN0UHJvcGVydGllcyk7Ci0KLSAgICBXZWJL
aXRET01UZXN0RXZlbnRDb25zdHJ1Y3RvclByaXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX1RFU1Rf
RVZFTlRfQ09OU1RSVUNUT1Iob2JqZWN0KS0+cHJpdjsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0g
c3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEV2ZW50Q29uc3RydWN0b3IqPihXRUJLSVRfRE9NX09C
SkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKLQotICAgIHJldHVybiBvYmplY3Q7Ci19Ci0KIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9ldmVudF9jb25zdHJ1Y3Rvcl9jbGFzc19pbml0KFdl
YktpdERPTVRlc3RFdmVudENvbnN0cnVjdG9yQ2xhc3MqIHJlcXVlc3RDbGFzcykKIHsKICAgICBH
T2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFzcyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7
Ci0gICAgZ29iamVjdENsYXNzLT5jb25zdHJ1Y3RvciA9IHdlYmtpdF9kb21fdGVzdF9ldmVudF9j
b25zdHJ1Y3Rvcl9jb25zdHJ1Y3RvcjsKICAgICBnb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Vi
a2l0X2RvbV90ZXN0X2V2ZW50X2NvbnN0cnVjdG9yX2ZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFz
c19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0RXZlbnRDb25z
dHJ1Y3RvclByaXZhdGUpKTsKICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdlYmtp
dF9kb21fdGVzdF9ldmVudF9jb25zdHJ1Y3Rvcl9nZXRfcHJvcGVydHk7CiAKICAgICBnX29iamVj
dF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFzcywKQEAgLTEzNSwxMSArMTM2LDgg
QEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2V2ZW50X2NvbnN0cnVjdG9yX2NsYXNzX2lu
aXQoV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3QKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CiB9
CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9ldmVudF9jb25zdHJ1Y3Rvcl9pbml0KFdl
YktpdERPTVRlc3RFdmVudENvbnN0cnVjdG9yKiBzZWxmKQorc3RhdGljIHZvaWQgd2Via2l0X2Rv
bV90ZXN0X2V2ZW50X2NvbnN0cnVjdG9yX2luaXQoV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0
b3IqIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3JQcml2YXRl
KiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHNlbGYsIFdFQktJVF9UWVBFX0RP
TV9URVNUX0VWRU5UX0NPTlNUUlVDVE9SLCBXZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3RvclBy
aXZhdGUpOwotICAgIHNlbGYtPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJpdikgV2ViS2l0RE9N
VGVzdEV2ZW50Q29uc3RydWN0b3JQcml2YXRlKCk7CiB9CiAKIGdjaGFyKgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVz
dEV2ZW50Q29uc3RydWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RFdmVudENvbnN0cnVjdG9yLmgKaW5kZXggNmU1ZjA5OGQw
MjkwZDU4MTk4NmJiNzJjYTIxMmFhMzc4NzU2NTIzZC4uN2Y3MDkwYmY0NDRiMWUwZDY3ZTM3M2Zi
YTdkNmRjMzI0ZjFjYjAxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
RXZlbnRDb25zdHJ1Y3Rvci5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVm
aW5lIFdFQktJVF9ET01fSVNfVEVTVF9FVkVOVF9DT05TVFJVQ1RPUl9DTEFTUyhrbGFzcykgKEdf
VFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9ET01fVEVTVF9FVkVO
VF9DT05TVFJVQ1RPUikpCiAjZGVmaW5lIFdFQktJVF9ET01fVEVTVF9FVkVOVF9DT05TVFJVQ1RP
Ul9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJL
SVRfVFlQRV9ET01fVEVTVF9FVkVOVF9DT05TVFJVQ1RPUiwgV2ViS2l0RE9NVGVzdEV2ZW50Q29u
c3RydWN0b3JDbGFzcykpCiAKLXR5cGVkZWYgc3RydWN0IF9XZWJLaXRET01UZXN0RXZlbnRDb25z
dHJ1Y3RvclByaXZhdGUgV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3JQcml2YXRlOwotCiBz
dHJ1Y3QgX1dlYktpdERPTVRlc3RFdmVudENvbnN0cnVjdG9yIHsKICAgICBXZWJLaXRET01PYmpl
Y3QgcGFyZW50X2luc3RhbmNlOwotCi0gICAgV2ViS2l0RE9NVGVzdEV2ZW50Q29uc3RydWN0b3JQ
cml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9XZWJLaXRET01UZXN0RXZlbnRDb25zdHJ1Y3Rv
ckNsYXNzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0RXZlbnRUYXJnZXQuY3Bw
CmluZGV4IGI3NDg3MzFjNjVjMzNkYzAzNGE4NWZmNTYyMjhmYjgyM2ZlNDk5ODEuLmYxZTY4ZDg0
MDkzZDdlZDFhZjc0ZjBmMzBkOTQ1NGQzNzc3M2FmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFdmVudFRhcmdl
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMzUsMTAgKzM1LDYgQEAKICNpbmNsdWRl
IDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCi1zdHJ1Y3QgX1dlYktp
dERPTVRlc3RFdmVudFRhcmdldFByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0RXZl
bnRUYXJnZXQ+IGNvcmVPYmplY3Q7Ci19OwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0
RE9NVGVzdEV2ZW50VGFyZ2V0KiBraXQoV2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0KiBvYmopCkBA
IC01NCwxMiArNTAsMjEgQEAgV2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0KiBraXQoV2ViQ29yZTo6
VGVzdEV2ZW50VGFyZ2V0KiBvYmopCiBXZWJDb3JlOjpUZXN0RXZlbnRUYXJnZXQqIGNvcmUoV2Vi
S2l0RE9NVGVzdEV2ZW50VGFyZ2V0KiByZXF1ZXN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKHJlcXVlc3QsIDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5jb3JlT2JqZWN0Lmdl
dCgpOworCisgICAgV2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0KiBjb3JlT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0Kj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVz
dCktPmNvcmVPYmplY3QpOworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDAp
OworCisgICAgcmV0dXJuIGNvcmVPYmplY3Q7CiB9CiAKIFdlYktpdERPTVRlc3RFdmVudFRhcmdl
dCogd3JhcFRlc3RFdmVudFRhcmdldChXZWJDb3JlOjpUZXN0RXZlbnRUYXJnZXQqIGNvcmVPYmpl
Y3QpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICAv
LyBXZSBjYWxsIHJlZigpIHJhdGhlciB0aGFuIHVzaW5nIGEgQysrIHNtYXJ0IHBvaW50ZXIgYmVj
YXVzZSB3ZSBjYW4ndCBzdG9yZSBhIEMrKyBvYmplY3QKKyAgICAvLyBpbiBhIEMtYWxsb2NhdGVk
IEdPYmplY3Qgc3RydWN0dXJlLiBTZWUgdGhlIGZpbmFsaXplKCkgY29kZSBmb3IgdGhlIG1hdGNo
aW5nIGRlcmVmKCkuCisgICAgY29yZU9iamVjdC0+cmVmKCk7CisKICAgICByZXR1cm4gV0VCS0lU
X0RPTV9URVNUX0VWRU5UX1RBUkdFVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRE9NX1RFU1Rf
RVZFTlRfVEFSR0VULCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBOVUxMKSk7CiB9CiAKQEAg
LTY3LDggKzcyLDExIEBAIFdlYktpdERPTVRlc3RFdmVudFRhcmdldCogd3JhcFRlc3RFdmVudFRh
cmdldChXZWJDb3JlOjpUZXN0RXZlbnRUYXJnZXQqIGNvcmVPYmplCiAKIHN0YXRpYyB2b2lkIHdl
YmtpdF9kb21fdGVzdF9ldmVudF90YXJnZXRfZGlzcGF0Y2hfZXZlbnQoV2ViS2l0RE9NRXZlbnRU
YXJnZXQqIHRhcmdldCwgV2ViS2l0RE9NRXZlbnQqIGV2ZW50LCBHRXJyb3IqKiBlcnJvcikKIHsK
KyAgICBXZWJDb3JlOjpFdmVudCogY29yZUV2ZW50ID0gV2ViS2l0Ojpjb3JlKGV2ZW50KTsKKyAg
ICBXZWJDb3JlOjpUZXN0RXZlbnRUYXJnZXQqIGNvcmVUYXJnZXQgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpUZXN0RXZlbnRUYXJnZXQqPihXRUJLSVRfRE9NX09CSkVDVCh0YXJnZXQpLT5jb3JlT2Jq
ZWN0KTsKKwogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFdFQktJVF9E
T01fVEVTVF9FVkVOVF9UQVJHRVQodGFyZ2V0KS0+cHJpdi0+Y29yZU9iamVjdC0+ZGlzcGF0Y2hF
dmVudChXZWJLaXQ6OmNvcmUoZXZlbnQpLCBlYyk7CisgICAgY29yZVRhcmdldC0+ZGlzcGF0Y2hF
dmVudChjb3JlRXZlbnQsIGVjKTsKICAgICBpZiAoZWMpIHsKICAgICAgICAgV2ViQ29yZTo6RXhj
ZXB0aW9uQ29kZURlc2NyaXB0aW9uIGRlc2NyaXB0aW9uKGVjKTsKICAgICAgICAgZ19zZXRfZXJy
b3JfbGl0ZXJhbChlcnJvciwgZ19xdWFya19mcm9tX3N0cmluZygiV0VCS0lUX0RPTSIpLCBkZXNj
cmlwdGlvbi5jb2RlLCBkZXNjcmlwdGlvbi5uYW1lKTsKQEAgLTc3LDEzICs4NSwxMyBAQCBzdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2Rpc3BhdGNoX2V2ZW50KFdlYktp
dERPTUV2ZW50VGFyZ2V0KiB0YQogCiBzdGF0aWMgZ2Jvb2xlYW4gd2Via2l0X2RvbV90ZXN0X2V2
ZW50X3RhcmdldF9hZGRfZXZlbnRfbGlzdGVuZXIoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdl
dCwgY29uc3QgY2hhciogZXZlbnROYW1lLCBHQ2FsbGJhY2sgaGFuZGxlciwgZ2Jvb2xlYW4gYnVi
YmxlLCBncG9pbnRlciB1c2VyRGF0YSkKIHsKLSAgICBXZWJDb3JlOjpUZXN0RXZlbnRUYXJnZXQq
IGNvcmVUYXJnZXQgPSBXRUJLSVRfRE9NX1RFU1RfRVZFTlRfVEFSR0VUKHRhcmdldCktPnByaXYt
PmNvcmVPYmplY3QuZ2V0KCk7CisgICAgV2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0KiBjb3JlVGFy
Z2V0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0Kj4oV0VCS0lUX0RPTV9P
QkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkdPYmplY3RF
dmVudExpc3RlbmVyOjphZGRFdmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVUYXJn
ZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgYnViYmxlLCB1c2VyRGF0YSk7CiB9CiAKIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X3JlbW92ZV9ldmVudF9saXN0ZW5l
cihXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBjb25zdCBjaGFyKiBldmVudE5hbWUsIEdD
YWxsYmFjayBoYW5kbGVyLCBnYm9vbGVhbiBidWJibGUpCiB7Ci0gICAgV2ViQ29yZTo6VGVzdEV2
ZW50VGFyZ2V0KiBjb3JlVGFyZ2V0ID0gV0VCS0lUX0RPTV9URVNUX0VWRU5UX1RBUkdFVCh0YXJn
ZXQpLT5wcml2LT5jb3JlT2JqZWN0LmdldCgpOworICAgIFdlYkNvcmU6OlRlc3RFdmVudFRhcmdl
dCogY29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RFdmVudFRhcmdldCo+KFdF
QktJVF9ET01fT0JKRUNUKHRhcmdldCktPmNvcmVPYmplY3QpOwogICAgIHJldHVybiBXZWJDb3Jl
OjpHT2JqZWN0RXZlbnRMaXN0ZW5lcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihHX09CSkVDVCh0YXJn
ZXQpLCBjb3JlVGFyZ2V0LCBldmVudE5hbWUsIGhhbmRsZXIsIGJ1YmJsZSk7CiB9CiAKQEAgLTk4
LDM3ICsxMDYsMzAgQEAgR19ERUZJTkVfVFlQRV9XSVRIX0NPREUoV2ViS2l0RE9NVGVzdEV2ZW50
VGFyZ2V0LCB3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0LAogCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKLSAg
ICBXZWJLaXRET01UZXN0RXZlbnRUYXJnZXRQcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9URVNU
X0VWRU5UX1RBUkdFVChvYmplY3QpLT5wcml2OwogCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNo
ZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktpdERPTU9iamVjdCog
ZG9tT2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAgICBpZiAoZG9t
T2JqZWN0LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OlRlc3RFdmVudFRhcmdldCog
Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RFdmVudFRhcmdldCo+KGRvbU9i
amVjdC0+Y29yZU9iamVjdCk7CiAKLSAgICBwcml2LT5+V2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0
UHJpdmF0ZSgpOwotICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9ldmVudF90YXJn
ZXRfcGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKLX0KKyAgICAgICAgV2ViS2l0OjpE
T01PYmplY3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmplY3QpOworICAgICAgICBjb3JlT2JqZWN0LT5k
ZXJlZigpOwogCi1zdGF0aWMgR09iamVjdCogd2Via2l0X2RvbV90ZXN0X2V2ZW50X3RhcmdldF9j
b25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBndWludCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdP
YmplY3RDb25zdHJ1Y3RQYXJhbSogY29uc3RydWN0UHJvcGVydGllcykKLXsKLSAgICBHT2JqZWN0
KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X3Bh
cmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKHR5cGUsIGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwg
Y29uc3RydWN0UHJvcGVydGllcyk7CisgICAgICAgIGRvbU9iamVjdC0+Y29yZU9iamVjdCA9IDA7
CisgICAgfQogCi0gICAgV2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0UHJpdmF0ZSogcHJpdiA9IFdF
QktJVF9ET01fVEVTVF9FVkVOVF9UQVJHRVQob2JqZWN0KS0+cHJpdjsKLSAgICBwcml2LT5jb3Jl
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEV2ZW50VGFyZ2V0Kj4oV0VCS0lUX0RP
TV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2JqZWN0OworICAg
IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9ldmVudF90YXJnZXRfcGFyZW50X2NsYXNz
KS0+ZmluYWxpemUob2JqZWN0KTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2V2
ZW50X3RhcmdldF9jbGFzc19pbml0KFdlYktpdERPTVRlc3RFdmVudFRhcmdldENsYXNzKiByZXF1
ZXN0Q2xhc3MpCiB7CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9D
TEFTUyhyZXF1ZXN0Q2xhc3MpOwotICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJr
aXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2NvbnN0cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+
ZmluYWxpemUgPSB3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2ZpbmFsaXplOwotICAgIGdf
dHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0
RXZlbnRUYXJnZXRQcml2YXRlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9l
dmVudF90YXJnZXRfaW5pdChXZWJLaXRET01UZXN0RXZlbnRUYXJnZXQqIHNlbGYpCitzdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX3Rlc3RfZXZlbnRfdGFyZ2V0X2luaXQoV2ViS2l0RE9NVGVzdEV2ZW50
VGFyZ2V0KiByZXF1ZXN0KQogewotICAgIFdlYktpdERPTVRlc3RFdmVudFRhcmdldFByaXZhdGUq
IHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9N
X1RFU1RfRVZFTlRfVEFSR0VULCBXZWJLaXRET01UZXN0RXZlbnRUYXJnZXRQcml2YXRlKTsKLSAg
ICBzZWxmLT5wcml2ID0gcHJpdjsKLSAgICBuZXcgKHByaXYpIFdlYktpdERPTVRlc3RFdmVudFRh
cmdldFByaXZhdGUoKTsKIH0KIAogV2ViS2l0RE9NTm9kZSoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFdmVudFRh
cmdldC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdEV2ZW50VGFyZ2V0LmgKaW5kZXggMWU4ZTI1MjQ3NmExYzU5ZWViOWY3YmQ0MTU3
OGFkYWJkZTdlOGM3YS4uZDY1Y2QxMzk0ZDdiZmY1MjhlNjYzZDQ5ODQwZGZiZjEwMjgwODhlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV2ZW50VGFyZ2V0LmgKQEAgLTM1LDEy
ICszNSw4IEBAIEdfQkVHSU5fREVDTFMKICNkZWZpbmUgV0VCS0lUX0RPTV9JU19URVNUX0VWRU5U
X1RBUkdFVF9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19DTEFTU19UWVBFKChrbGFzcyksICBX
RUJLSVRfVFlQRV9ET01fVEVTVF9FVkVOVF9UQVJHRVQpKQogI2RlZmluZSBXRUJLSVRfRE9NX1RF
U1RfRVZFTlRfVEFSR0VUX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9DTEFT
Uygob2JqKSwgIFdFQktJVF9UWVBFX0RPTV9URVNUX0VWRU5UX1RBUkdFVCwgV2ViS2l0RE9NVGVz
dEV2ZW50VGFyZ2V0Q2xhc3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NVGVzdEV2ZW50
VGFyZ2V0UHJpdmF0ZSBXZWJLaXRET01UZXN0RXZlbnRUYXJnZXRQcml2YXRlOwotCiBzdHJ1Y3Qg
X1dlYktpdERPTVRlc3RFdmVudFRhcmdldCB7CiAgICAgV2ViS2l0RE9NT2JqZWN0IHBhcmVudF9p
bnN0YW5jZTsKLQotICAgIFdlYktpdERPTVRlc3RFdmVudFRhcmdldFByaXZhdGUgKnByaXY7CiB9
OwogCiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RFdmVudFRhcmdldENsYXNzIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RFeGNlcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dP
YmplY3QvV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbi5jcHAKaW5kZXggNDk3YzFlOTdiODNjZDc3Yzll
M2NjZjBmMzQ0OTg2ZjY5NTgxMjdjNy4uYmUxNzk0MDE3Y2NhZmUyMjJlMjkxNGE0MDAyMjM2Mzdj
MTE3Nzk3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTMxLDEwICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAotc3RydWN0IF9XZWJLaXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZSB7Ci0g
ICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RFeGNlcHRpb24+IGNvcmVPYmplY3Q7Ci19OwotCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbioga2l0KFdlYkNvcmU6OlRl
c3RFeGNlcHRpb24qIG9iaikKQEAgLTUwLDEyICs0NiwyMSBAQCBXZWJLaXRET01UZXN0RXhjZXB0
aW9uKiBraXQoV2ViQ29yZTo6VGVzdEV4Y2VwdGlvbiogb2JqKQogV2ViQ29yZTo6VGVzdEV4Y2Vw
dGlvbiogY29yZShXZWJLaXRET01UZXN0RXhjZXB0aW9uKiByZXF1ZXN0KQogewogICAgIGdfcmV0
dXJuX3ZhbF9pZl9mYWlsKHJlcXVlc3QsIDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5j
b3JlT2JqZWN0LmdldCgpOworCisgICAgV2ViQ29yZTo6VGVzdEV4Y2VwdGlvbiogY29yZU9iamVj
dCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RFeGNlcHRpb24qPihXRUJLSVRfRE9NX09CSkVD
VChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9i
amVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9iamVjdDsKIH0KIAogV2ViS2l0RE9NVGVzdEV4
Y2VwdGlvbiogd3JhcFRlc3RFeGNlcHRpb24oV2ViQ29yZTo6VGVzdEV4Y2VwdGlvbiogY29yZU9i
amVjdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAg
IC8vIFdlIGNhbGwgcmVmKCkgcmF0aGVyIHRoYW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBi
ZWNhdXNlIHdlIGNhbid0IHN0b3JlIGEgQysrIG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0
ZWQgR09iamVjdCBzdHJ1Y3R1cmUuIFNlZSB0aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0
Y2hpbmcgZGVyZWYoKS4KKyAgICBjb3JlT2JqZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJL
SVRfRE9NX1RFU1RfRVhDRVBUSU9OKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fVEVTVF9F
WENFUFRJT04sICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIE5VTEwpKTsKIH0KIApAQCAtNzAs
MTEgKzc1LDE5IEBAIGVudW0gewogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfZXhjZXB0
aW9uX2ZpbmFsaXplKEdPYmplY3QqIG9iamVjdCkKIHsKLSAgICBXZWJLaXRET01UZXN0RXhjZXB0
aW9uUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9FWENFUFRJT04ob2JqZWN0KS0+cHJp
djsKIAotICAgIFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OmZvcmdldChwcml2LT5jb3JlT2JqZWN0
LmdldCgpKTsKKyAgICBXZWJLaXRET01PYmplY3QqIGRvbU9iamVjdCA9IFdFQktJVF9ET01fT0JK
RUNUKG9iamVjdCk7CisgICAgCisgICAgaWYgKGRvbU9iamVjdC0+Y29yZU9iamVjdCkgeworICAg
ICAgICBXZWJDb3JlOjpUZXN0RXhjZXB0aW9uKiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGVzdEV4Y2VwdGlvbio+KGRvbU9iamVjdC0+Y29yZU9iamVjdCk7CisKKyAgICAgICAg
V2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KGNvcmVPYmplY3QpOworICAgICAgICBjb3Jl
T2JqZWN0LT5kZXJlZigpOworCisgICAgICAgIGRvbU9iamVjdC0+Y29yZU9iamVjdCA9IDA7Cisg
ICAgfQorCiAKLSAgICBwcml2LT5+V2ViS2l0RE9NVGVzdEV4Y2VwdGlvblByaXZhdGUoKTsKICAg
ICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3RfZXhjZXB0aW9uX3BhcmVudF9jbGFzcykt
PmZpbmFsaXplKG9iamVjdCk7CiB9CiAKQEAgLTk2LDIyICsxMDksMTAgQEAgc3RhdGljIHZvaWQg
d2Via2l0X2RvbV90ZXN0X2V4Y2VwdGlvbl9nZXRfcHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBn
dWludCBwcm9wZXIKICAgICB9CiB9CiAKLXN0YXRpYyBHT2JqZWN0KiB3ZWJraXRfZG9tX3Rlc3Rf
ZXhjZXB0aW9uX2NvbnN0cnVjdG9yKEdUeXBlIHR5cGUsIGd1aW50IGNvbnN0cnVjdFByb3BlcnRp
ZXNDb3VudCwgR09iamVjdENvbnN0cnVjdFBhcmFtKiBjb25zdHJ1Y3RQcm9wZXJ0aWVzKQotewot
ICAgIEdPYmplY3QqIG9iamVjdCA9IEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9leGNl
cHRpb25fcGFyZW50X2NsYXNzKS0+Y29uc3RydWN0b3IodHlwZSwgY29uc3RydWN0UHJvcGVydGll
c0NvdW50LCBjb25zdHJ1Y3RQcm9wZXJ0aWVzKTsKLQotICAgIFdlYktpdERPTVRlc3RFeGNlcHRp
b25Qcml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9URVNUX0VYQ0VQVElPTihvYmplY3QpLT5wcml2
OwotICAgIHByaXYtPmNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0RXhjZXB0
aW9uKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7Ci0KLSAgICByZXR1
cm4gb2JqZWN0OwotfQotCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfZXhjZXB0aW9uX2Ns
YXNzX2luaXQoV2ViS2l0RE9NVGVzdEV4Y2VwdGlvbkNsYXNzKiByZXF1ZXN0Q2xhc3MpCiB7CiAg
ICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xh
c3MpOwotICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRfZG9tX3Rlc3RfZXhj
ZXB0aW9uX2NvbnN0cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRf
ZG9tX3Rlc3RfZXhjZXB0aW9uX2ZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0
ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZSkpOwog
ICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV90ZXN0X2V4Y2VwdGlv
bl9nZXRfcHJvcGVydHk7CiAKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdv
YmplY3RDbGFzcywKQEAgLTEyMywxMSArMTI0LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90
ZXN0X2V4Y2VwdGlvbl9jbGFzc19pbml0KFdlYktpdERPTVRlc3RFeGNlcHRpb25DbGFzcyogcmUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21f
dGVzdF9leGNlcHRpb25faW5pdChXZWJLaXRET01UZXN0RXhjZXB0aW9uKiBzZWxmKQorc3RhdGlj
IHZvaWQgd2Via2l0X2RvbV90ZXN0X2V4Y2VwdGlvbl9pbml0KFdlYktpdERPTVRlc3RFeGNlcHRp
b24qIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdEV4Y2VwdGlvblByaXZhdGUqIHByaXYg
PSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9NX1RFU1Rf
RVhDRVBUSU9OLCBXZWJLaXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZSk7Ci0gICAgc2VsZi0+cHJp
diA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZSgp
OwogfQogCiBnY2hhcioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFeGNlcHRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RFeGNlcHRpb24uaApp
bmRleCBlYzdiOTJhNDYyM2RjMzYxNjZkNjgyNjUxOWM4MDEwOTE0ZGI3M2EzLi43N2I0Yzk1MDEy
NDU4NmQzOTc5NjcyNmJhNGU5MzYwMzZlODY3YjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0RXhjZXB0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdEV4Y2VwdGlvbi5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVm
aW5lIFdFQktJVF9ET01fSVNfVEVTVF9FWENFUFRJT05fQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hF
Q0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfRVhDRVBUSU9OKSkK
ICNkZWZpbmUgV0VCS0lUX0RPTV9URVNUX0VYQ0VQVElPTl9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQ
RV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9ET01fVEVTVF9FWENFUFRJ
T04sIFdlYktpdERPTVRlc3RFeGNlcHRpb25DbGFzcykpCiAKLXR5cGVkZWYgc3RydWN0IF9XZWJL
aXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZSBXZWJLaXRET01UZXN0RXhjZXB0aW9uUHJpdmF0ZTsK
LQogc3RydWN0IF9XZWJLaXRET01UZXN0RXhjZXB0aW9uIHsKICAgICBXZWJLaXRET01PYmplY3Qg
cGFyZW50X2luc3RhbmNlOwotCi0gICAgV2ViS2l0RE9NVGVzdEV4Y2VwdGlvblByaXZhdGUgKnBy
aXY7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RFeGNlcHRpb25DbGFzcyB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGI4NjcxMGRhODE3NTY4
YTBmMDQ4MDY3YTJhNmRmODkyOTNhNjFhZjAuLmQwMTY1OTMwYmI4YmU3MzBmOWQwYzlmMmUzOGMy
MDNjNDQxYjFiNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2Uu
Y3BwCkBAIC0zNCwxMiArMzQsNiBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKLXN0cnVjdCBfV2ViS2l0RE9NVGVzdEludGVyZmFjZVByaXZhdGUg
ewotI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6VGVzdEludGVyZmFjZT4gY29yZU9iamVjdDsKLSNlbmRpZiAvLyBFTkFCTEUo
Q29uZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi19OwotCiAjaWYgRU5BQkxFKENvbmRp
dGlvbjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3
LDEyICs1MSwyMSBAQCBXZWJLaXRET01UZXN0SW50ZXJmYWNlKiBraXQoV2ViQ29yZTo6VGVzdElu
dGVyZmFjZSogb2JqKQogV2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZShXZWJLaXRET01UZXN0
SW50ZXJmYWNlKiByZXF1ZXN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHJlcXVlc3Qs
IDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5jb3JlT2JqZWN0LmdldCgpOworCisgICAg
V2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OlRlc3RJbnRlcmZhY2UqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4g
Y29yZU9iamVjdDsKIH0KIAogV2ViS2l0RE9NVGVzdEludGVyZmFjZSogd3JhcFRlc3RJbnRlcmZh
Y2UoV2ViQ29yZTo6VGVzdEludGVyZmFjZSogY29yZU9iamVjdCkKIHsKICAgICBnX3JldHVybl92
YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIC8vIFdlIGNhbGwgcmVmKCkgcmF0aGVy
IHRoYW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBiZWNhdXNlIHdlIGNhbid0IHN0b3JlIGEg
QysrIG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0ZWQgR09iamVjdCBzdHJ1Y3R1cmUuIFNl
ZSB0aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0Y2hpbmcgZGVyZWYoKS4KKyAgICBjb3Jl
T2JqZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJLSVRfRE9NX1RFU1RfSU5URVJGQUNFKGdf
b2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fVEVTVF9JTlRFUkZBQ0UsICJjb3JlLW9iamVjdCIs
IGNvcmVPYmplY3QsIE5VTEwpKTsKIH0KIApAQCAtODEsMTEgKzg0LDE5IEBAIGVudW0gewogCiBz
dGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2ZpbmFsaXplKEdPYmplY3QqIG9i
amVjdCkKIHsKLSAgICBXZWJLaXRET01UZXN0SW50ZXJmYWNlUHJpdmF0ZSogcHJpdiA9IFdFQktJ
VF9ET01fVEVTVF9JTlRFUkZBQ0Uob2JqZWN0KS0+cHJpdjsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9y
Z2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktpdERPTU9iamVjdCogZG9tT2Jq
ZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAgICBpZiAoZG9tT2JqZWN0
LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OlRlc3RJbnRlcmZhY2UqIGNvcmVPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0SW50ZXJmYWNlKj4oZG9tT2JqZWN0LT5jb3Jl
T2JqZWN0KTsKKworICAgICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQoY29yZU9i
amVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CisKKyAgICAgICAgZG9tT2JqZWN0
LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8
IEVOQUJMRShDb25kaXRpb24yKQotICAgIHByaXYtPn5XZWJLaXRET01UZXN0SW50ZXJmYWNlUHJp
dmF0ZSgpOworCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9w
YXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCkBAIC0xNzQsMjIgKzE4NSwxMCBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2dldF9wcm9wZXJ0eShHT2Jq
ZWN0KiBvYmplY3QsIGd1aW50IHByb3BlcgogICAgIH0KIH0KIAotc3RhdGljIEdPYmplY3QqIHdl
YmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29u
c3RydWN0UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFBy
b3BlcnRpZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0
X2RvbV90ZXN0X2ludGVyZmFjZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rvcih0eXBlLCBjb25z
dHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOwotI2lmIEVOQUJMRShD
b25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICBXZWJLaXRET01UZXN0SW50ZXJm
YWNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9JTlRFUkZBQ0Uob2JqZWN0KS0+cHJp
djsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdEludGVy
ZmFjZSo+KFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCktPmNvcmVPYmplY3QpOwotI2VuZGlmIC8v
IEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICByZXR1cm4gb2Jq
ZWN0OwotfQotCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2NsYXNzX2lu
aXQoV2ViS2l0RE9NVGVzdEludGVyZmFjZUNsYXNzKiByZXF1ZXN0Q2xhc3MpCiB7CiAgICAgR09i
amVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwot
ICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNl
X2NvbnN0cnVjdG9yOwogICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX3Rl
c3RfaW50ZXJmYWNlX2ZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2Jq
ZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0SW50ZXJmYWNlUHJpdmF0ZSkpOwogICAgIGdv
YmplY3RDbGFzcy0+c2V0X3Byb3BlcnR5ID0gd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9zZXRf
cHJvcGVydHk7CiAgICAgZ29iamVjdENsYXNzLT5nZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX3Rl
c3RfaW50ZXJmYWNlX2dldF9wcm9wZXJ0eTsKIApAQCAtMjE2LDExICsyMTUsOCBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRfZG9tX3Rlc3RfaW50ZXJmYWNlX2NsYXNzX2luaXQoV2ViS2l0RE9NVGVzdElu
dGVyZmFjZUNsYXNzKiByZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBRFdSSVRFKSk7CiB9CiAKLXN0YXRp
YyB2b2lkIHdlYmtpdF9kb21fdGVzdF9pbnRlcmZhY2VfaW5pdChXZWJLaXRET01UZXN0SW50ZXJm
YWNlKiBzZWxmKQorc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X2ludGVyZmFjZV9pbml0KFdl
YktpdERPTVRlc3RJbnRlcmZhY2UqIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdEludGVy
ZmFjZVByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5TVEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VC
S0lUX1RZUEVfRE9NX1RFU1RfSU5URVJGQUNFLCBXZWJLaXRET01UZXN0SW50ZXJmYWNlUHJpdmF0
ZSk7Ci0gICAgc2VsZi0+cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRET01UZXN0
SW50ZXJmYWNlUHJpdmF0ZSgpOwogfQogCiB2b2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0SW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0SW50ZXJmYWNlLmgKaW5kZXggZGUyN2MwZTQ0YTg0MGQ1YjU3ZjE4NjdiNTQ1ZTI3YjdhNDQw
ZjkwOS4uMmZjOWMyN2U0ZmE1ODQwZGI0MjljZWUyYmE3OGFhZTYxNWVjYjc1MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9N
VGVzdEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3RJbnRlcmZhY2UuaApAQCAtMzUsMTIgKzM1LDggQEAgR19C
RUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX1RFU1RfSU5URVJGQUNFX0NMQVNTKGts
YXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0RPTV9U
RVNUX0lOVEVSRkFDRSkpCiAjZGVmaW5lIFdFQktJVF9ET01fVEVTVF9JTlRFUkZBQ0VfR0VUX0NM
QVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVf
RE9NX1RFU1RfSU5URVJGQUNFLCBXZWJLaXRET01UZXN0SW50ZXJmYWNlQ2xhc3MpKQogCi10eXBl
ZGVmIHN0cnVjdCBfV2ViS2l0RE9NVGVzdEludGVyZmFjZVByaXZhdGUgV2ViS2l0RE9NVGVzdElu
dGVyZmFjZVByaXZhdGU7Ci0KIHN0cnVjdCBfV2ViS2l0RE9NVGVzdEludGVyZmFjZSB7CiAgICAg
V2ViS2l0RE9NT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIFdlYktpdERPTVRlc3RJbnRl
cmZhY2VQcml2YXRlICpwcml2OwogfTsKIAogc3RydWN0IF9XZWJLaXRET01UZXN0SW50ZXJmYWNl
Q2xhc3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlh
UXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDVmZmU1NjJkMTY4M2E5ODMxYzNjYWE5YmE3NjFm
ODY3MWM3ZDI4MTAuLjgwYmZiNWQyZjFmOWQxMGEwNjM1ODQ2NWYyMGM4ZGQ4OGQ4OWUzNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dl
YktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lci5jcHAKQEAgLTMxLDEwICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotc3RydWN0IF9XZWJLaXRET01UZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lcj4gY29yZU9iamVjdDsKLX07Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcioga2l0KFdlYkNvcmU6OlRlc3RN
ZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBvYmopCkBAIC01MCwxMiArNDYsMjEgQEAgV2ViS2l0RE9N
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIGtpdChXZWJDb3JlOjpUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lciogb2IKIFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiBjb3Jl
KFdlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKiByZXF1ZXN0KQogewogICAgIGdf
cmV0dXJuX3ZhbF9pZl9mYWlsKHJlcXVlc3QsIDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2
LT5jb3JlT2JqZWN0LmdldCgpOworCisgICAgV2ViQ29yZTo6VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIqIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0TWVkaWFRdWVyeUxp
c3RMaXN0ZW5lcio+KFdFQktJVF9ET01fT0JKRUNUKHJlcXVlc3QpLT5jb3JlT2JqZWN0KTsKKyAg
ICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIHJldHVybiBjb3Jl
T2JqZWN0OwogfQogCiBXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogd3JhcFRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKiBjb3JlT2JqZWN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3Qs
IDApOworCisgICAgLy8gV2UgY2FsbCByZWYoKSByYXRoZXIgdGhhbiB1c2luZyBhIEMrKyBzbWFy
dCBwb2ludGVyIGJlY2F1c2Ugd2UgY2FuJ3Qgc3RvcmUgYSBDKysgb2JqZWN0CisgICAgLy8gaW4g
YSBDLWFsbG9jYXRlZCBHT2JqZWN0IHN0cnVjdHVyZS4gU2VlIHRoZSBmaW5hbGl6ZSgpIGNvZGUg
Zm9yIHRoZSBtYXRjaGluZyBkZXJlZigpLgorICAgIGNvcmVPYmplY3QtPnJlZigpOworCiAgICAg
cmV0dXJuIFdFQktJVF9ET01fVEVTVF9NRURJQV9RVUVSWV9MSVNUX0xJU1RFTkVSKGdfb2JqZWN0
X25ldyhXRUJLSVRfVFlQRV9ET01fVEVTVF9NRURJQV9RVUVSWV9MSVNUX0xJU1RFTkVSLCAiY29y
ZS1vYmplY3QiLCBjb3JlT2JqZWN0LCBOVUxMKSk7CiB9CiAKQEAgLTY1LDM2ICs3MCwyOSBAQCBH
X0RFRklORV9UWVBFKFdlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLCB3ZWJraXRf
ZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbAogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3RfbWVk
aWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9maW5hbGl6ZShHT2JqZWN0KiBvYmplY3QpCiB7Ci0gICAg
V2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2YXRlKiBwcml2ID0gV0VCS0lU
X0RPTV9URVNUX01FRElBX1FVRVJZX0xJU1RfTElTVEVORVIob2JqZWN0KS0+cHJpdjsKIAotICAg
IFdlYktpdDo6RE9NT2JqZWN0Q2FjaGU6OmZvcmdldChwcml2LT5jb3JlT2JqZWN0LmdldCgpKTsK
KyAgICBXZWJLaXRET01PYmplY3QqIGRvbU9iamVjdCA9IFdFQktJVF9ET01fT0JKRUNUKG9iamVj
dCk7CisgICAgCisgICAgaWYgKGRvbU9iamVjdC0+Y29yZU9iamVjdCkgeworICAgICAgICBXZWJD
b3JlOjpUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyKj4oZG9tT2JqZWN0LT5jb3JlT2Jq
ZWN0KTsKIAotICAgIHByaXYtPn5XZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclBy
aXZhdGUoKTsKLSAgICBHX09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3RfbWVkaWFfcXVlcnlf
bGlzdF9saXN0ZW5lcl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwotfQorICAgICAg
ICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQoY29yZU9iamVjdCk7CisgICAgICAgIGNv
cmVPYmplY3QtPmRlcmVmKCk7CiAKLXN0YXRpYyBHT2JqZWN0KiB3ZWJraXRfZG9tX3Rlc3RfbWVk
aWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9jb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBndWludCBjb25z
dHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29uc3RydWN0UHJv
cGVydGllcykKLXsKLSAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3ZWJraXRf
ZG9tX3Rlc3RfbWVkaWFfcXVlcnlfbGlzdF9saXN0ZW5lcl9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1
Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMp
OworICAgICAgICBkb21PYmplY3QtPmNvcmVPYmplY3QgPSAwOworICAgIH0KIAotICAgIFdlYktp
dERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01f
VEVTVF9NRURJQV9RVUVSWV9MSVNUX0xJU1RFTkVSKG9iamVjdCktPnByaXY7Ci0gICAgcHJpdi0+
Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RNZWRpYVF1ZXJ5TGlzdExpc3Rl
bmVyKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1
cm4gb2JqZWN0OworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVy
eV9saXN0X2xpc3RlbmVyX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9iamVjdCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyX2NsYXNz
X2luaXQoV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJDbGFzcyogcmVxdWVzdENs
YXNzKQogewogICAgIEdPYmplY3RDbGFzcyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1Mo
cmVxdWVzdENsYXNzKTsKLSAgICBnb2JqZWN0Q2xhc3MtPmNvbnN0cnVjdG9yID0gd2Via2l0X2Rv
bV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlzdGVuZXJfY29uc3RydWN0b3I7CiAgICAgZ29iamVj
dENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3Rl
bmVyX2ZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3Ms
IHNpemVvZihXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByaXZhdGUpKTsKIH0K
IAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X21lZGlhX3F1ZXJ5X2xpc3RfbGlzdGVuZXJf
aW5pdChXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lciogc2VsZikKK3N0YXRpYyB2
b2lkIHdlYmtpdF9kb21fdGVzdF9tZWRpYV9xdWVyeV9saXN0X2xpc3RlbmVyX2luaXQoV2ViS2l0
RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9N
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXJQcml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNF
X0dFVF9QUklWQVRFKHNlbGYsIFdFQktJVF9UWVBFX0RPTV9URVNUX01FRElBX1FVRVJZX0xJU1Rf
TElTVEVORVIsIFdlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyUHJpdmF0ZSk7Ci0g
ICAgc2VsZi0+cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRET01UZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByaXZhdGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2Jq
ZWN0L1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmgKaW5kZXggNTg3YWIyZTkz
YzA5ZjJjY2M1ZWQ1ZmYyNDE3YmE2MjkwYjIwZjk2Yi4uNTViOTAwYzBkZjIxYTljMzBmOTZjNzY3
NzA2NDc0YjAxMDAxNjVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRE
T01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lO
X0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9ET01fSVNfVEVTVF9NRURJQV9RVUVSWV9MSVNUX0xJU1RF
TkVSX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGtsYXNzKSwgIFdFQktJ
VF9UWVBFX0RPTV9URVNUX01FRElBX1FVRVJZX0xJU1RfTElTVEVORVIpKQogI2RlZmluZSBXRUJL
SVRfRE9NX1RFU1RfTUVESUFfUVVFUllfTElTVF9MSVNURU5FUl9HRVRfQ0xBU1Mob2JqKSAgKEdf
VFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiksICBXRUJLSVRfVFlQRV9ET01fVEVTVF9NRURJ
QV9RVUVSWV9MSVNUX0xJU1RFTkVSLCBXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5l
ckNsYXNzKSkKIAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyUHJpdmF0ZSBXZWJLaXRET01UZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lclByaXZhdGU7
Ci0KIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIgewogICAgIFdl
YktpdERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICBXZWJLaXRET01UZXN0TWVkaWFR
dWVyeUxpc3RMaXN0ZW5lclByaXZhdGUgKnByaXY7CiB9OwogCiBzdHJ1Y3QgX1dlYktpdERPTVRl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyQ2xhc3MgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3Qv
V2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGEyZGIyYmMxYzA2NDliZDJi
Mjc0NzJiZTU5Mzg5NmIwMzdmZmJmYTYuLjcwZjlkMTA2NTE4ZTA0ODgxNjA4MTZiMjYyMjU1MjU4
ZGZiYjkzMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9HT2JqZWN0L1dlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0TmFtZWRD
b25zdHJ1Y3Rvci5jcHAKQEAgLTMxLDEwICszMSw2IEBACiAjaW5jbHVkZSA8d3RmL0dldFB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotc3RydWN0IF9XZWJLaXRET01UZXN0TmFtZWRD
b25zdHJ1Y3RvclByaXZhdGUgewotICAgIFJlZlB0cjxXZWJDb3JlOjpUZXN0TmFtZWRDb25zdHJ1
Y3Rvcj4gY29yZU9iamVjdDsKLX07Ci0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJLaXRET01U
ZXN0TmFtZWRDb25zdHJ1Y3Rvcioga2l0KFdlYkNvcmU6OlRlc3ROYW1lZENvbnN0cnVjdG9yKiBv
YmopCkBAIC01MCwxMiArNDYsMjEgQEAgV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3IqIGtp
dChXZWJDb3JlOjpUZXN0TmFtZWRDb25zdHJ1Y3Rvciogb2JqKQogV2ViQ29yZTo6VGVzdE5hbWVk
Q29uc3RydWN0b3IqIGNvcmUoV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3IqIHJlcXVlc3Qp
CiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwocmVxdWVzdCwgMCk7Ci0gICAgcmV0dXJuIHJl
cXVlc3QtPnByaXYtPmNvcmVPYmplY3QuZ2V0KCk7CisKKyAgICBXZWJDb3JlOjpUZXN0TmFtZWRD
b25zdHJ1Y3RvciogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3ROYW1lZENv
bnN0cnVjdG9yKj4oV0VCS0lUX0RPTV9PQkpFQ1QocmVxdWVzdCktPmNvcmVPYmplY3QpOworICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKGNvcmVPYmplY3QsIDApOworCisgICAgcmV0dXJuIGNvcmVP
YmplY3Q7CiB9CiAKIFdlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yKiB3cmFwVGVzdE5hbWVk
Q29uc3RydWN0b3IoV2ViQ29yZTo6VGVzdE5hbWVkQ29uc3RydWN0b3IqIGNvcmVPYmplY3QpCiB7
CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICAvLyBXZSBj
YWxsIHJlZigpIHJhdGhlciB0aGFuIHVzaW5nIGEgQysrIHNtYXJ0IHBvaW50ZXIgYmVjYXVzZSB3
ZSBjYW4ndCBzdG9yZSBhIEMrKyBvYmplY3QKKyAgICAvLyBpbiBhIEMtYWxsb2NhdGVkIEdPYmpl
Y3Qgc3RydWN0dXJlLiBTZWUgdGhlIGZpbmFsaXplKCkgY29kZSBmb3IgdGhlIG1hdGNoaW5nIGRl
cmVmKCkuCisgICAgY29yZU9iamVjdC0+cmVmKCk7CisKICAgICByZXR1cm4gV0VCS0lUX0RPTV9U
RVNUX05BTUVEX0NPTlNUUlVDVE9SKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fVEVTVF9O
QU1FRF9DT05TVFJVQ1RPUiwgImNvcmUtb2JqZWN0IiwgY29yZU9iamVjdCwgTlVMTCkpOwogfQog
CkBAIC02NSwzNiArNzAsMjkgQEAgR19ERUZJTkVfVFlQRShXZWJLaXRET01UZXN0TmFtZWRDb25z
dHJ1Y3Rvciwgd2Via2l0X2RvbV90ZXN0X25hbWVkX2NvbnN0cnVjdG9yLAogCiBzdGF0aWMgdm9p
ZCB3ZWJraXRfZG9tX3Rlc3RfbmFtZWRfY29uc3RydWN0b3JfZmluYWxpemUoR09iamVjdCogb2Jq
ZWN0KQogewotICAgIFdlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yUHJpdmF0ZSogcHJpdiA9
IFdFQktJVF9ET01fVEVTVF9OQU1FRF9DT05TVFJVQ1RPUihvYmplY3QpLT5wcml2OwogCi0gICAg
V2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOwor
ICAgIFdlYktpdERPTU9iamVjdCogZG9tT2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0
KTsKKyAgICAKKyAgICBpZiAoZG9tT2JqZWN0LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNv
cmU6OlRlc3ROYW1lZENvbnN0cnVjdG9yKiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6VGVzdE5hbWVkQ29uc3RydWN0b3IqPihkb21PYmplY3QtPmNvcmVPYmplY3QpOwogCi0gICAg
cHJpdi0+fldlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yUHJpdmF0ZSgpOwotICAgIEdfT0JK
RUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9uYW1lZF9jb25zdHJ1Y3Rvcl9wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOwotfQorICAgICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpm
b3JnZXQoY29yZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CiAKLXN0YXRp
YyBHT2JqZWN0KiB3ZWJraXRfZG9tX3Rlc3RfbmFtZWRfY29uc3RydWN0b3JfY29uc3RydWN0b3Io
R1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3Ry
dWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRpZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0g
R19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X25hbWVkX2NvbnN0cnVjdG9yX3BhcmVudF9j
bGFzcyktPmNvbnN0cnVjdG9yKHR5cGUsIGNvbnN0cnVjdFByb3BlcnRpZXNDb3VudCwgY29uc3Ry
dWN0UHJvcGVydGllcyk7CisgICAgICAgIGRvbU9iamVjdC0+Y29yZU9iamVjdCA9IDA7CisgICAg
fQogCi0gICAgV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3JQcml2YXRlKiBwcml2ID0gV0VC
S0lUX0RPTV9URVNUX05BTUVEX0NPTlNUUlVDVE9SKG9iamVjdCktPnByaXY7Ci0gICAgcHJpdi0+
Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3ROYW1lZENvbnN0cnVjdG9yKj4o
V0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2Jq
ZWN0OworICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9uYW1lZF9jb25zdHJ1Y3Rv
cl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmplY3QpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3RfbmFtZWRfY29uc3RydWN0b3JfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0TmFt
ZWRDb25zdHJ1Y3RvckNsYXNzKiByZXF1ZXN0Q2xhc3MpCiB7CiAgICAgR09iamVjdENsYXNzKiBn
b2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwotICAgIGdvYmplY3RD
bGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRfZG9tX3Rlc3RfbmFtZWRfY29uc3RydWN0b3JfY29u
c3RydWN0b3I7CiAgICAgZ29iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb21fdGVzdF9u
YW1lZF9jb25zdHJ1Y3Rvcl9maW5hbGl6ZTsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZhdGUo
Z29iamVjdENsYXNzLCBzaXplb2YoV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3JQcml2YXRl
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9uYW1lZF9jb25zdHJ1Y3Rvcl9p
bml0KFdlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yKiBzZWxmKQorc3RhdGljIHZvaWQgd2Vi
a2l0X2RvbV90ZXN0X25hbWVkX2NvbnN0cnVjdG9yX2luaXQoV2ViS2l0RE9NVGVzdE5hbWVkQ29u
c3RydWN0b3IqIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3JQ
cml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHNlbGYsIFdFQktJVF9U
WVBFX0RPTV9URVNUX05BTUVEX0NPTlNUUlVDVE9SLCBXZWJLaXRET01UZXN0TmFtZWRDb25zdHJ1
Y3RvclByaXZhdGUpOwotICAgIHNlbGYtPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJpdikgV2Vi
S2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3JQcml2YXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RO
YW1lZENvbnN0cnVjdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0TmFtZWRDb25zdHJ1Y3Rvci5oCmluZGV4IGJmZDlkY2QyYzg1
ODAyYzU0OTEyMzg5MWFkYmVkOTRkYzhlYzhkMTguLjRiMGVjYjBlYjFiMGE2YWI2ZjY1NTA3OGZk
ZWM3Nzk5YTBiNzAxMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5h
bWVkQ29uc3RydWN0b3IuaApAQCAtMzUsMTIgKzM1LDggQEAgR19CRUdJTl9ERUNMUwogI2RlZmlu
ZSBXRUJLSVRfRE9NX0lTX1RFU1RfTkFNRURfQ09OU1RSVUNUT1JfQ0xBU1Moa2xhc3MpIChHX1RZ
UEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3MpLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfTkFNRURf
Q09OU1RSVUNUT1IpKQogI2RlZmluZSBXRUJLSVRfRE9NX1RFU1RfTkFNRURfQ09OU1RSVUNUT1Jf
R0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lU
X1RZUEVfRE9NX1RFU1RfTkFNRURfQ09OU1RSVUNUT1IsIFdlYktpdERPTVRlc3ROYW1lZENvbnN0
cnVjdG9yQ2xhc3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3Ry
dWN0b3JQcml2YXRlIFdlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yUHJpdmF0ZTsKLQogc3Ry
dWN0IF9XZWJLaXRET01UZXN0TmFtZWRDb25zdHJ1Y3RvciB7CiAgICAgV2ViS2l0RE9NT2JqZWN0
IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIFdlYktpdERPTVRlc3ROYW1lZENvbnN0cnVjdG9yUHJp
dmF0ZSAqcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE5hbWVkQ29uc3RydWN0b3JD
bGFzcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
R09iamVjdC9XZWJLaXRET01UZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0Tm9kZS5jcHAKaW5kZXggYTJkYmUxNzNm
YmUxOGRmZDQzMWI0NjkwZTc5NWRhMmQ5NGY5YTA5Yi4uY2NkNjEzMWY4OTc5NTI2MzRlOTk4Mzkz
MDI2YzMzNGY5NDBhNDAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3ROb2RlLmNwcApA
QCAtMzQsMTAgKzM0LDYgQEAKICNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCi1zdHJ1Y3QgX1dlYktpdERPTVRlc3ROb2RlUHJpdmF0ZSB7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlRlc3ROb2RlPiBjb3JlT2JqZWN0OwotfTsKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFdlYktpdERPTVRlc3ROb2RlKiBraXQoV2ViQ29yZTo6VGVzdE5vZGUqIG9iaikKQEAg
LTUzLDEyICs0OSwyMSBAQCBXZWJLaXRET01UZXN0Tm9kZSoga2l0KFdlYkNvcmU6OlRlc3ROb2Rl
KiBvYmopCiBXZWJDb3JlOjpUZXN0Tm9kZSogY29yZShXZWJLaXRET01UZXN0Tm9kZSogcmVxdWVz
dCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChyZXF1ZXN0LCAwKTsKLSAgICByZXR1cm4g
cmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKworICAgIFdlYkNvcmU6OlRlc3ROb2Rl
KiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdE5vZGUqPihXRUJLSVRfRE9N
X09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
Y29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9iamVjdDsKIH0KIAogV2ViS2l0RE9N
VGVzdE5vZGUqIHdyYXBUZXN0Tm9kZShXZWJDb3JlOjpUZXN0Tm9kZSogY29yZU9iamVjdCkKIHsK
ICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIC8vIFdlIGNh
bGwgcmVmKCkgcmF0aGVyIHRoYW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBiZWNhdXNlIHdl
IGNhbid0IHN0b3JlIGEgQysrIG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0ZWQgR09iamVj
dCBzdHJ1Y3R1cmUuIFNlZSB0aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0Y2hpbmcgZGVy
ZWYoKS4KKyAgICBjb3JlT2JqZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJLSVRfRE9NX1RF
U1RfTk9ERShnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfRE9NX1RFU1RfTk9ERSwgImNvcmUtb2Jq
ZWN0IiwgY29yZU9iamVjdCwgTlVMTCkpOwogfQogCkBAIC02Niw4ICs3MSwxMSBAQCBXZWJLaXRE
T01UZXN0Tm9kZSogd3JhcFRlc3ROb2RlKFdlYkNvcmU6OlRlc3ROb2RlKiBjb3JlT2JqZWN0KQog
CiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9kaXNwYXRjaF9ldmVudChXZWJLaXRE
T01FdmVudFRhcmdldCogdGFyZ2V0LCBXZWJLaXRET01FdmVudCogZXZlbnQsIEdFcnJvcioqIGVy
cm9yKQogeworICAgIFdlYkNvcmU6OkV2ZW50KiBjb3JlRXZlbnQgPSBXZWJLaXQ6OmNvcmUoZXZl
bnQpOworICAgIFdlYkNvcmU6OlRlc3ROb2RlKiBjb3JlVGFyZ2V0ID0gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6VGVzdE5vZGUqPihXRUJLSVRfRE9NX09CSkVDVCh0YXJnZXQpLT5jb3JlT2JqZWN0KTsK
KwogICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOwotICAgIFdFQktJVF9ET01fVEVT
VF9OT0RFKHRhcmdldCktPnByaXYtPmNvcmVPYmplY3QtPmRpc3BhdGNoRXZlbnQoV2ViS2l0Ojpj
b3JlKGV2ZW50KSwgZWMpOworICAgIGNvcmVUYXJnZXQtPmRpc3BhdGNoRXZlbnQoY29yZUV2ZW50
LCBlYyk7CiAgICAgaWYgKGVjKSB7CiAgICAgICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGVEZXNj
cmlwdGlvbiBkZXNjcmlwdGlvbihlYyk7CiAgICAgICAgIGdfc2V0X2Vycm9yX2xpdGVyYWwoZXJy
b3IsIGdfcXVhcmtfZnJvbV9zdHJpbmcoIldFQktJVF9ET00iKSwgZGVzY3JpcHRpb24uY29kZSwg
ZGVzY3JpcHRpb24ubmFtZSk7CkBAIC03NiwxMyArODQsMTMgQEAgc3RhdGljIHZvaWQgd2Via2l0
X2RvbV90ZXN0X25vZGVfZGlzcGF0Y2hfZXZlbnQoV2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdl
dCwgV2UKIAogc3RhdGljIGdib29sZWFuIHdlYmtpdF9kb21fdGVzdF9ub2RlX2FkZF9ldmVudF9s
aXN0ZW5lcihXZWJLaXRET01FdmVudFRhcmdldCogdGFyZ2V0LCBjb25zdCBjaGFyKiBldmVudE5h
bWUsIEdDYWxsYmFjayBoYW5kbGVyLCBnYm9vbGVhbiBidWJibGUsIGdwb2ludGVyIHVzZXJEYXRh
KQogewotICAgIFdlYkNvcmU6OlRlc3ROb2RlKiBjb3JlVGFyZ2V0ID0gV0VCS0lUX0RPTV9URVNU
X05PREUodGFyZ2V0KS0+cHJpdi0+Y29yZU9iamVjdC5nZXQoKTsKKyAgICBXZWJDb3JlOjpUZXN0
Tm9kZSogY29yZVRhcmdldCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3ROb2RlKj4oV0VCS0lU
X0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9iamVjdCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkdP
YmplY3RFdmVudExpc3RlbmVyOjphZGRFdmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNv
cmVUYXJnZXQsIGV2ZW50TmFtZSwgaGFuZGxlciwgYnViYmxlLCB1c2VyRGF0YSk7CiB9CiAKIHN0
YXRpYyBnYm9vbGVhbiB3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9yZW1vdmVfZXZlbnRfbGlzdGVuZXIo
V2ViS2l0RE9NRXZlbnRUYXJnZXQqIHRhcmdldCwgY29uc3QgY2hhciogZXZlbnROYW1lLCBHQ2Fs
bGJhY2sgaGFuZGxlciwgZ2Jvb2xlYW4gYnViYmxlKQogewotICAgIFdlYkNvcmU6OlRlc3ROb2Rl
KiBjb3JlVGFyZ2V0ID0gV0VCS0lUX0RPTV9URVNUX05PREUodGFyZ2V0KS0+cHJpdi0+Y29yZU9i
amVjdC5nZXQoKTsKKyAgICBXZWJDb3JlOjpUZXN0Tm9kZSogY29yZVRhcmdldCA9IHN0YXRpY19j
YXN0PFdlYkNvcmU6OlRlc3ROb2RlKj4oV0VCS0lUX0RPTV9PQkpFQ1QodGFyZ2V0KS0+Y29yZU9i
amVjdCk7CiAgICAgcmV0dXJuIFdlYkNvcmU6OkdPYmplY3RFdmVudExpc3RlbmVyOjpyZW1vdmVF
dmVudExpc3RlbmVyKEdfT0JKRUNUKHRhcmdldCksIGNvcmVUYXJnZXQsIGV2ZW50TmFtZSwgaGFu
ZGxlciwgYnViYmxlKTsKIH0KIApAQCAtOTcsMzYgKzEwNSwyOSBAQCBHX0RFRklORV9UWVBFX1dJ
VEhfQ09ERShXZWJLaXRET01UZXN0Tm9kZSwgd2Via2l0X2RvbV90ZXN0X25vZGUsIFdFQktJVF9U
WVBFX0RPTQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9maW5hbGl6ZShHT2Jq
ZWN0KiBvYmplY3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVzdE5vZGVQcml2YXRlKiBwcml2ID0gV0VC
S0lUX0RPTV9URVNUX05PREUob2JqZWN0KS0+cHJpdjsKIAotICAgIFdlYktpdDo6RE9NT2JqZWN0
Q2FjaGU6OmZvcmdldChwcml2LT5jb3JlT2JqZWN0LmdldCgpKTsKKyAgICBXZWJLaXRET01PYmpl
Y3QqIGRvbU9iamVjdCA9IFdFQktJVF9ET01fT0JKRUNUKG9iamVjdCk7CisgICAgCisgICAgaWYg
KGRvbU9iamVjdC0+Y29yZU9iamVjdCkgeworICAgICAgICBXZWJDb3JlOjpUZXN0Tm9kZSogY29y
ZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3ROb2RlKj4oZG9tT2JqZWN0LT5jb3Jl
T2JqZWN0KTsKIAotICAgIHByaXYtPn5XZWJLaXRET01UZXN0Tm9kZVByaXZhdGUoKTsKLSAgICBH
X09CSkVDVF9DTEFTUyh3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6
ZShvYmplY3QpOwotfQorICAgICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQoY29y
ZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CiAKLXN0YXRpYyBHT2JqZWN0
KiB3ZWJraXRfZG9tX3Rlc3Rfbm9kZV9jb25zdHJ1Y3RvcihHVHlwZSB0eXBlLCBndWludCBjb25z
dHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIEdPYmplY3RDb25zdHJ1Y3RQYXJhbSogY29uc3RydWN0UHJv
cGVydGllcykKLXsKLSAgICBHT2JqZWN0KiBvYmplY3QgPSBHX09CSkVDVF9DTEFTUyh3ZWJraXRf
ZG9tX3Rlc3Rfbm9kZV9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQ
cm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOworICAgICAgICBkb21PYmplY3Qt
PmNvcmVPYmplY3QgPSAwOworICAgIH0KIAotICAgIFdlYktpdERPTVRlc3ROb2RlUHJpdmF0ZSog
cHJpdiA9IFdFQktJVF9ET01fVEVTVF9OT0RFKG9iamVjdCktPnByaXY7Ci0gICAgcHJpdi0+Y29y
ZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3ROb2RlKj4oV0VCS0lUX0RPTV9PQkpF
Q1Qob2JqZWN0KS0+Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2JqZWN0OworICAgIEdfT0JK
RUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9ub2RlX3BhcmVudF9jbGFzcyktPmZpbmFsaXplKG9i
amVjdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9ub2RlX2NsYXNzX2luaXQo
V2ViS2l0RE9NVGVzdE5vZGVDbGFzcyogcmVxdWVzdENsYXNzKQogewogICAgIEdPYmplY3RDbGFz
cyogZ29iamVjdENsYXNzID0gR19PQkpFQ1RfQ0xBU1MocmVxdWVzdENsYXNzKTsKLSAgICBnb2Jq
ZWN0Q2xhc3MtPmNvbnN0cnVjdG9yID0gd2Via2l0X2RvbV90ZXN0X25vZGVfY29uc3RydWN0b3I7
CiAgICAgZ29iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb21fdGVzdF9ub2RlX2ZpbmFs
aXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihX
ZWJLaXRET01UZXN0Tm9kZVByaXZhdGUpKTsKIH0KIAotc3RhdGljIHZvaWQgd2Via2l0X2RvbV90
ZXN0X25vZGVfaW5pdChXZWJLaXRET01UZXN0Tm9kZSogc2VsZikKK3N0YXRpYyB2b2lkIHdlYmtp
dF9kb21fdGVzdF9ub2RlX2luaXQoV2ViS2l0RE9NVGVzdE5vZGUqIHJlcXVlc3QpCiB7Ci0gICAg
V2ViS2l0RE9NVGVzdE5vZGVQcml2YXRlKiBwcml2ID0gR19UWVBFX0lOU1RBTkNFX0dFVF9QUklW
QVRFKHNlbGYsIFdFQktJVF9UWVBFX0RPTV9URVNUX05PREUsIFdlYktpdERPTVRlc3ROb2RlUHJp
dmF0ZSk7Ci0gICAgc2VsZi0+cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2KSBXZWJLaXRET01U
ZXN0Tm9kZVByaXZhdGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3ROb2RlLmgKaW5k
ZXggZmE0YmE4N2M3YmM0Yzk5M2M4MjVjMDk1ZWEwYTA4NzRlMGQwZWQ1ZC4uNzMwZmU5ODRjMjli
YjNkZDllZWFmZmNmYjQ3N2FlOWZmMTZiM2I1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE5vZGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0
Tm9kZS5oCkBAIC0zNSwxMiArMzUsOCBAQCBHX0JFR0lOX0RFQ0xTCiAjZGVmaW5lIFdFQktJVF9E
T01fSVNfVEVTVF9OT0RFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZUEUoKGts
YXNzKSwgIFdFQktJVF9UWVBFX0RPTV9URVNUX05PREUpKQogI2RlZmluZSBXRUJLSVRfRE9NX1RF
U1RfTk9ERV9HRVRfQ0xBU1Mob2JqKSAgKEdfVFlQRV9JTlNUQU5DRV9HRVRfQ0xBU1MoKG9iaiks
ICBXRUJLSVRfVFlQRV9ET01fVEVTVF9OT0RFLCBXZWJLaXRET01UZXN0Tm9kZUNsYXNzKSkKIAot
dHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRlc3ROb2RlUHJpdmF0ZSBXZWJLaXRET01UZXN0Tm9k
ZVByaXZhdGU7Ci0KIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE5vZGUgewogICAgIFdlYktpdERPTU5v
ZGUgcGFyZW50X2luc3RhbmNlOwotCi0gICAgV2ViS2l0RE9NVGVzdE5vZGVQcml2YXRlICpwcml2
OwogfTsKIAogc3RydWN0IF9XZWJLaXRET01UZXN0Tm9kZUNsYXNzIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
YmouY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2Vi
S2l0RE9NVGVzdE9iai5jcHAKaW5kZXggZjM2ZjE3MjQ2NGFjNDAyODA1MmU4Y2E0MzMwNTYyNzI0
Y2ExOGFjNS4uM2QyZTQxMWEzNjE0ZjUwMzMyNGUyMDdlYzUzNjdkN2JmOTBiZTBjNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9iai5jcHAKQEAgLTQ0LDEwICs0NCw2IEBACiAjaW5jbHVk
ZSA8d3RmL0dldFB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAotc3RydWN0IF9XZWJL
aXRET01UZXN0T2JqUHJpdmF0ZSB7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlRlc3RPYmo+IGNvcmVP
YmplY3Q7Ci19OwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NVGVzdE9iaioga2l0
KFdlYkNvcmU6OlRlc3RPYmoqIG9iaikKQEAgLTYzLDEyICs1OSwyMSBAQCBXZWJLaXRET01UZXN0
T2JqKiBraXQoV2ViQ29yZTo6VGVzdE9iaiogb2JqKQogV2ViQ29yZTo6VGVzdE9iaiogY29yZShX
ZWJLaXRET01UZXN0T2JqKiByZXF1ZXN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHJl
cXVlc3QsIDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5jb3JlT2JqZWN0LmdldCgpOwor
CisgICAgV2ViQ29yZTo6VGVzdE9iaiogY29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OlRlc3RPYmoqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9i
amVjdDsKIH0KIAogV2ViS2l0RE9NVGVzdE9iaiogd3JhcFRlc3RPYmooV2ViQ29yZTo6VGVzdE9i
aiogY29yZU9iamVjdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAw
KTsKKworICAgIC8vIFdlIGNhbGwgcmVmKCkgcmF0aGVyIHRoYW4gdXNpbmcgYSBDKysgc21hcnQg
cG9pbnRlciBiZWNhdXNlIHdlIGNhbid0IHN0b3JlIGEgQysrIG9iamVjdAorICAgIC8vIGluIGEg
Qy1hbGxvY2F0ZWQgR09iamVjdCBzdHJ1Y3R1cmUuIFNlZSB0aGUgZmluYWxpemUoKSBjb2RlIGZv
ciB0aGUgbWF0Y2hpbmcgZGVyZWYoKS4KKyAgICBjb3JlT2JqZWN0LT5yZWYoKTsKKwogICAgIHJl
dHVybiBXRUJLSVRfRE9NX1RFU1RfT0JKKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fVEVT
VF9PQkosICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3QsIE5VTEwpKTsKIH0KIApAQCAtMTI4LDEx
ICsxMzMsMTkgQEAgZW51bSB7CiAKIHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfZmlu
YWxpemUoR09iamVjdCogb2JqZWN0KQogewotICAgIFdlYktpdERPTVRlc3RPYmpQcml2YXRlKiBw
cml2ID0gV0VCS0lUX0RPTV9URVNUX09CSihvYmplY3QpLT5wcml2OwogCi0gICAgV2ViS2l0OjpE
T01PYmplY3RDYWNoZTo6Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktp
dERPTU9iamVjdCogZG9tT2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAK
KyAgICBpZiAoZG9tT2JqZWN0LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OlRlc3RP
YmoqIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0T2JqKj4oZG9tT2JqZWN0
LT5jb3JlT2JqZWN0KTsKKworICAgICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQo
Y29yZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CisKKyAgICAgICAgZG9t
T2JqZWN0LT5jb3JlT2JqZWN0ID0gMDsKKyAgICB9CisKIAotICAgIHByaXYtPn5XZWJLaXRET01U
ZXN0T2JqUHJpdmF0ZSgpOwogICAgIEdfT0JKRUNUX0NMQVNTKHdlYmtpdF9kb21fdGVzdF9vYmpf
cGFyZW50X2NsYXNzKS0+ZmluYWxpemUob2JqZWN0KTsKIH0KIApAQCAtNTA1LDIyICs1MTgsMTAg
QEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X29ial9nZXRfcHJvcGVydHkoR09iamVjdCog
b2JqZWN0LCBndWludCBwcm9wZXJ0eUlkLAogICAgIH0KIH0KIAotc3RhdGljIEdPYmplY3QqIHdl
YmtpdF9kb21fdGVzdF9vYmpfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0
UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRp
ZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90
ZXN0X29ial9wYXJlbnRfY2xhc3MpLT5jb25zdHJ1Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0
aWVzQ291bnQsIGNvbnN0cnVjdFByb3BlcnRpZXMpOwotCi0gICAgV2ViS2l0RE9NVGVzdE9ialBy
aXZhdGUqIHByaXYgPSBXRUJLSVRfRE9NX1RFU1RfT0JKKG9iamVjdCktPnByaXY7Ci0gICAgcHJp
di0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RPYmoqPihXRUJLSVRfRE9N
X09CSkVDVChvYmplY3QpLT5jb3JlT2JqZWN0KTsKLQotICAgIHJldHVybiBvYmplY3Q7Ci19Ci0K
IHN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0
T2JqQ2xhc3MqIHJlcXVlc3RDbGFzcykKIHsKICAgICBHT2JqZWN0Q2xhc3MqIGdvYmplY3RDbGFz
cyA9IEdfT0JKRUNUX0NMQVNTKHJlcXVlc3RDbGFzcyk7Ci0gICAgZ29iamVjdENsYXNzLT5jb25z
dHJ1Y3RvciA9IHdlYmtpdF9kb21fdGVzdF9vYmpfY29uc3RydWN0b3I7CiAgICAgZ29iamVjdENs
YXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb21fdGVzdF9vYmpfZmluYWxpemU7Ci0gICAgZ190eXBl
X2NsYXNzX2FkZF9wcml2YXRlKGdvYmplY3RDbGFzcywgc2l6ZW9mKFdlYktpdERPTVRlc3RPYmpQ
cml2YXRlKSk7CiAgICAgZ29iamVjdENsYXNzLT5zZXRfcHJvcGVydHkgPSB3ZWJraXRfZG9tX3Rl
c3Rfb2JqX3NldF9wcm9wZXJ0eTsKICAgICBnb2JqZWN0Q2xhc3MtPmdldF9wcm9wZXJ0eSA9IHdl
YmtpdF9kb21fdGVzdF9vYmpfZ2V0X3Byb3BlcnR5OwogCkBAIC04ODgsMTEgKzg4OSw4IEBAIEdf
TUFYTE9ORywgLyogbWF4ICovCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogfQogCi1zdGF0
aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb2JqX2luaXQoV2ViS2l0RE9NVGVzdE9iaiogc2VsZikK
K3N0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vYmpfaW5pdChXZWJLaXRET01UZXN0T2JqKiBy
ZXF1ZXN0KQogewotICAgIFdlYktpdERPTVRlc3RPYmpQcml2YXRlKiBwcml2ID0gR19UWVBFX0lO
U1RBTkNFX0dFVF9QUklWQVRFKHNlbGYsIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwgV2ViS2l0
RE9NVGVzdE9ialByaXZhdGUpOwotICAgIHNlbGYtPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJp
dikgV2ViS2l0RE9NVGVzdE9ialByaXZhdGUoKTsKIH0KIAogdm9pZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE9i
ai5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmplY3QvV2ViS2l0
RE9NVGVzdE9iai5oCmluZGV4IDgzYmRhOTBhY2U0MGY5NTk1MzVhZTkyYjRiMDgxMDA0ZjcxOWFk
MTkuLjZkMDA5MjQ0NjM0YTE0YThmMjVhMDFjNjg5OTJmYzY3ZTljZTVmZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRl
c3RPYmouaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVj
dC9XZWJLaXRET01UZXN0T2JqLmgKQEAgLTM1LDEyICszNSw4IEBAIEdfQkVHSU5fREVDTFMKICNk
ZWZpbmUgV0VCS0lUX0RPTV9JU19URVNUX09CSl9DTEFTUyhrbGFzcykgKEdfVFlQRV9DSEVDS19D
TEFTU19UWVBFKChrbGFzcyksICBXRUJLSVRfVFlQRV9ET01fVEVTVF9PQkopKQogI2RlZmluZSBX
RUJLSVRfRE9NX1RFU1RfT0JKX0dFVF9DTEFTUyhvYmopICAoR19UWVBFX0lOU1RBTkNFX0dFVF9D
TEFTUygob2JqKSwgIFdFQktJVF9UWVBFX0RPTV9URVNUX09CSiwgV2ViS2l0RE9NVGVzdE9iakNs
YXNzKSkKIAotdHlwZWRlZiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RPYmpQcml2YXRlIFdlYktpdERP
TVRlc3RPYmpQcml2YXRlOwotCiBzdHJ1Y3QgX1dlYktpdERPTVRlc3RPYmogewogICAgIFdlYktp
dERPTU9iamVjdCBwYXJlbnRfaW5zdGFuY2U7Ci0KLSAgICBXZWJLaXRET01UZXN0T2JqUHJpdmF0
ZSAqcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE9iakNsYXNzIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERP
TVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3Jz
LmNwcAppbmRleCBjYjIyN2JhMTdjNjMzMjFjZTRhNTg5YmI5NWYyNTJiMWI5NzI0MzJmLi42YWNk
MzM2YjkwNzg2ZWVmN2MxZTgxYTY4MjUwMjJmNzE0NDBjZWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T3Zlcmxv
YWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBA
IC0zMSwxMCArMzEsNiBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KICNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKLXN0cnVjdCBfV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQ
cml2YXRlIHsKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnM+
IGNvcmVPYmplY3Q7Ci19OwotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViS2l0RE9NVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIGtpdChXZWJDb3JlOjpUZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9ycyogb2JqKQpAQCAtNTAsMTIgKzQ2LDIxIEBAIFdlYktpdERPTVRlc3RPdmVybG9hZGVkQ29u
c3RydWN0b3JzKiBraXQoV2ViQ29yZTo6VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIG9iCiBX
ZWJDb3JlOjpUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogY29yZShXZWJLaXRET01UZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycyogcmVxdWVzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFp
bChyZXF1ZXN0LCAwKTsKLSAgICByZXR1cm4gcmVxdWVzdC0+cHJpdi0+Y29yZU9iamVjdC5nZXQo
KTsKKworICAgIFdlYkNvcmU6OlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBjb3JlT2JqZWN0
ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPihXRUJL
SVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19yZXR1cm5fdmFsX2lm
X2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9iamVjdDsKIH0KIAogV2Vi
S2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHdyYXBUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycyhXZWJDb3JlOjpUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyogY29yZU9iamVjdCkK
IHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIC8vIFdl
IGNhbGwgcmVmKCkgcmF0aGVyIHRoYW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBiZWNhdXNl
IHdlIGNhbid0IHN0b3JlIGEgQysrIG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0ZWQgR09i
amVjdCBzdHJ1Y3R1cmUuIFNlZSB0aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0Y2hpbmcg
ZGVyZWYoKS4KKyAgICBjb3JlT2JqZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJLSVRfRE9N
X1RFU1RfT1ZFUkxPQURFRF9DT05TVFJVQ1RPUlMoZ19vYmplY3RfbmV3KFdFQktJVF9UWVBFX0RP
TV9URVNUX09WRVJMT0FERURfQ09OU1RSVUNUT1JTLCAiY29yZS1vYmplY3QiLCBjb3JlT2JqZWN0
LCBOVUxMKSk7CiB9CiAKQEAgLTY1LDM2ICs3MCwyOSBAQCBHX0RFRklORV9UWVBFKFdlYktpdERP
TVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLCB3ZWJraXRfZG9tX3Rlc3Rfb3ZlcmxvYWRlZF9j
bwogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb3ZlcmxvYWRlZF9jb25zdHJ1Y3RvcnNf
ZmluYWxpemUoR09iamVjdCogb2JqZWN0KQogewotICAgIFdlYktpdERPTVRlc3RPdmVybG9hZGVk
Q29uc3RydWN0b3JzUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9PVkVSTE9BREVEX0NP
TlNUUlVDVE9SUyhvYmplY3QpLT5wcml2OwogCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6
Zm9yZ2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktpdERPTU9iamVjdCogZG9t
T2JqZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAgICBpZiAoZG9tT2Jq
ZWN0LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OlRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzKiBjb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGVzdE92ZXJsb2FkZWRD
b25zdHJ1Y3RvcnMqPihkb21PYmplY3QtPmNvcmVPYmplY3QpOwogCi0gICAgcHJpdi0+fldlYktp
dERPTVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJpdmF0ZSgpOwotICAgIEdfT0JKRUNUX0NM
QVNTKHdlYmtpdF9kb21fdGVzdF9vdmVybG9hZGVkX2NvbnN0cnVjdG9yc19wYXJlbnRfY2xhc3Mp
LT5maW5hbGl6ZShvYmplY3QpOwotfQorICAgICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpm
b3JnZXQoY29yZU9iamVjdCk7CisgICAgICAgIGNvcmVPYmplY3QtPmRlcmVmKCk7CiAKLXN0YXRp
YyBHT2JqZWN0KiB3ZWJraXRfZG9tX3Rlc3Rfb3ZlcmxvYWRlZF9jb25zdHJ1Y3RvcnNfY29uc3Ry
dWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3RydWN0UHJvcGVydGllc0NvdW50LCBHT2JqZWN0
Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3BlcnRpZXMpCi17Ci0gICAgR09iamVjdCogb2Jq
ZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X292ZXJsb2FkZWRfY29uc3RydWN0
b3JzX3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdG9yKHR5cGUsIGNvbnN0cnVjdFByb3BlcnRpZXND
b3VudCwgY29uc3RydWN0UHJvcGVydGllcyk7CisgICAgICAgIGRvbU9iamVjdC0+Y29yZU9iamVj
dCA9IDA7CisgICAgfQogCi0gICAgV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQ
cml2YXRlKiBwcml2ID0gV0VCS0lUX0RPTV9URVNUX09WRVJMT0FERURfQ09OU1RSVUNUT1JTKG9i
amVjdCktPnByaXY7Ci0gICAgcHJpdi0+Y29yZU9iamVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OlRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4oV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KS0+
Y29yZU9iamVjdCk7CiAKLSAgICByZXR1cm4gb2JqZWN0OworICAgIEdfT0JKRUNUX0NMQVNTKHdl
YmtpdF9kb21fdGVzdF9vdmVybG9hZGVkX2NvbnN0cnVjdG9yc19wYXJlbnRfY2xhc3MpLT5maW5h
bGl6ZShvYmplY3QpOwogfQogCiBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rlc3Rfb3ZlcmxvYWRl
ZF9jb25zdHJ1Y3RvcnNfY2xhc3NfaW5pdChXZWJLaXRET01UZXN0T3ZlcmxvYWRlZENvbnN0cnVj
dG9yc0NsYXNzKiByZXF1ZXN0Q2xhc3MpCiB7CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xh
c3MgPSBHX09CSkVDVF9DTEFTUyhyZXF1ZXN0Q2xhc3MpOwotICAgIGdvYmplY3RDbGFzcy0+Y29u
c3RydWN0b3IgPSB3ZWJraXRfZG9tX3Rlc3Rfb3ZlcmxvYWRlZF9jb25zdHJ1Y3RvcnNfY29uc3Ry
dWN0b3I7CiAgICAgZ29iamVjdENsYXNzLT5maW5hbGl6ZSA9IHdlYmtpdF9kb21fdGVzdF9vdmVy
bG9hZGVkX2NvbnN0cnVjdG9yc19maW5hbGl6ZTsKLSAgICBnX3R5cGVfY2xhc3NfYWRkX3ByaXZh
dGUoZ29iamVjdENsYXNzLCBzaXplb2YoV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNQcml2YXRlKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9vdmVybG9hZGVk
X2NvbnN0cnVjdG9yc19pbml0KFdlYktpdERPTVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKiBz
ZWxmKQorc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X292ZXJsb2FkZWRfY29uc3RydWN0b3Jz
X2luaXQoV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqIHJlcXVlc3QpCiB7Ci0g
ICAgV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcml2YXRlKiBwcml2ID0gR19U
WVBFX0lOU1RBTkNFX0dFVF9QUklWQVRFKHNlbGYsIFdFQktJVF9UWVBFX0RPTV9URVNUX09WRVJM
T0FERURfQ09OU1RSVUNUT1JTLCBXZWJLaXRET01UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1By
aXZhdGUpOwotICAgIHNlbGYtPnByaXYgPSBwcml2OwotICAgIG5ldyAocHJpdikgV2ViS2l0RE9N
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNQcml2YXRlKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5oCmluZGV4
IDNjZTA1MTI2ZGU2ZTkxZjRkZTJmMWZlYmNiOWVjYzQ4ZTgwYzZmMjIuLjg4NGY5NDdlMTI2YTVi
MzEyNTkxZDZhZTZkOGMxODcwNDMwNjViZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RPdmVybG9hZGVkQ29uc3Ry
dWN0b3JzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0dPYmpl
Y3QvV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuaApAQCAtMzUsMTIgKzM1LDgg
QEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX1RFU1RfT1ZFUkxPQURFRF9D
T05TVFJVQ1RPUlNfQ0xBU1Moa2xhc3MpIChHX1RZUEVfQ0hFQ0tfQ0xBU1NfVFlQRSgoa2xhc3Mp
LCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfT1ZFUkxPQURFRF9DT05TVFJVQ1RPUlMpKQogI2RlZmlu
ZSBXRUJLSVRfRE9NX1RFU1RfT1ZFUkxPQURFRF9DT05TVFJVQ1RPUlNfR0VUX0NMQVNTKG9iaikg
IChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNTKChvYmopLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1Rf
T1ZFUkxPQURFRF9DT05TVFJVQ1RPUlMsIFdlYktpdERPTVRlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzQ2xhc3MpKQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNQcml2YXRlIFdlYktpdERPTVRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzUHJpdmF0
ZTsKLQogc3RydWN0IF9XZWJLaXRET01UZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycyB7CiAgICAg
V2ViS2l0RE9NT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIFdlYktpdERPTVRlc3RPdmVy
bG9hZGVkQ29uc3RydWN0b3JzUHJpdmF0ZSAqcHJpdjsKIH07CiAKIHN0cnVjdCBfV2ViS2l0RE9N
VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNDbGFzcyB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01UZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZh
Y2UuY3BwCmluZGV4IDkxYTE0NjFmMzAyYmIxNWFjMTcxNGI4NTI4YjA1ZWY2NGMyNjI5NDYuLjFl
NGI3ZjEzMGQxNzBkNjRiZjU5YjA1NWE1MDdkYjhkZmI3ODZlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UuY3BwCkBAIC0zNCwxMiArMzQsNiBAQAogI2luY2x1ZGUgPHd0Zi9HZXRQdHIu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKLXN0cnVjdCBfV2ViS2l0RE9NVGVzdFNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByaXZhdGUgewotI2lmIEVOQUJMRShDb25kaXRpb24x
KSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAgICBSZWZQdHI8V2ViQ29yZTo6VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZT4gY29yZU9iamVjdDsKLSNlbmRpZiAvLyBFTkFCTEUoQ29u
ZGl0aW9uMSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi19OwotCiAjaWYgRU5BQkxFKENvbmRpdGlv
bjEpIHx8IEVOQUJMRShDb25kaXRpb24yKQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTU3LDEy
ICs1MSwyMSBAQCBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBr
aXQoV2ViQ29yZTo6VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYQogV2ViQ29yZTo6VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY29yZShXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlw
dFZhbHVlSW50ZXJmYWNlKiByZXF1ZXN0KQogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKHJl
cXVlc3QsIDApOwotICAgIHJldHVybiByZXF1ZXN0LT5wcml2LT5jb3JlT2JqZWN0LmdldCgpOwor
CisgICAgV2ViQ29yZTo6VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY29yZU9i
amVjdCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OlRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRl
cmZhY2UqPihXRUJLSVRfRE9NX09CSkVDVChyZXF1ZXN0KS0+Y29yZU9iamVjdCk7CisgICAgZ19y
ZXR1cm5fdmFsX2lmX2ZhaWwoY29yZU9iamVjdCwgMCk7CisKKyAgICByZXR1cm4gY29yZU9iamVj
dDsKIH0KIAogV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogd3Jh
cFRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UoV2ViQ29yZTo6VGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSogY29yZU9iamVjdCkKIHsKICAgICBnX3JldHVybl92YWxf
aWZfZmFpbChjb3JlT2JqZWN0LCAwKTsKKworICAgIC8vIFdlIGNhbGwgcmVmKCkgcmF0aGVyIHRo
YW4gdXNpbmcgYSBDKysgc21hcnQgcG9pbnRlciBiZWNhdXNlIHdlIGNhbid0IHN0b3JlIGEgQysr
IG9iamVjdAorICAgIC8vIGluIGEgQy1hbGxvY2F0ZWQgR09iamVjdCBzdHJ1Y3R1cmUuIFNlZSB0
aGUgZmluYWxpemUoKSBjb2RlIGZvciB0aGUgbWF0Y2hpbmcgZGVyZWYoKS4KKyAgICBjb3JlT2Jq
ZWN0LT5yZWYoKTsKKwogICAgIHJldHVybiBXRUJLSVRfRE9NX1RFU1RfU0VSSUFMSVpFRF9TQ1JJ
UFRfVkFMVUVfSU5URVJGQUNFKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9ET01fVEVTVF9TRVJJ
QUxJWkVEX1NDUklQVF9WQUxVRV9JTlRFUkZBQ0UsICJjb3JlLW9iamVjdCIsIGNvcmVPYmplY3Qs
IE5VTEwpKTsKIH0KIApAQCAtODMsMTEgKzg2LDE5IEBAIGVudW0gewogCiBzdGF0aWMgdm9pZCB3
ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2ZpbmFsaXpl
KEdPYmplY3QqIG9iamVjdCkKIHsKLSAgICBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJpdmF0ZSogcHJpdiA9IFdFQktJVF9ET01fVEVTVF9TRVJJQUxJWkVEX1ND
UklQVF9WQUxVRV9JTlRFUkZBQ0Uob2JqZWN0KS0+cHJpdjsKICNpZiBFTkFCTEUoQ29uZGl0aW9u
MSkgfHwgRU5BQkxFKENvbmRpdGlvbjIpCi0gICAgV2ViS2l0OjpET01PYmplY3RDYWNoZTo6Zm9y
Z2V0KHByaXYtPmNvcmVPYmplY3QuZ2V0KCkpOworICAgIFdlYktpdERPTU9iamVjdCogZG9tT2Jq
ZWN0ID0gV0VCS0lUX0RPTV9PQkpFQ1Qob2JqZWN0KTsKKyAgICAKKyAgICBpZiAoZG9tT2JqZWN0
LT5jb3JlT2JqZWN0KSB7CisgICAgICAgIFdlYkNvcmU6OlRlc3RTZXJpYWxpemVkU2NyaXB0VmFs
dWVJbnRlcmZhY2UqIGNvcmVPYmplY3QgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oZG9tT2JqZWN0LT5jb3JlT2JqZWN0KTsKKworICAg
ICAgICBXZWJLaXQ6OkRPTU9iamVjdENhY2hlOjpmb3JnZXQoY29yZU9iamVjdCk7CisgICAgICAg
IGNvcmVPYmplY3QtPmRlcmVmKCk7CisKKyAgICAgICAgZG9tT2JqZWN0LT5jb3JlT2JqZWN0ID0g
MDsKKyAgICB9CiAjZW5kaWYgLy8gRU5BQkxFKENvbmRpdGlvbjEpIHx8IEVOQUJMRShDb25kaXRp
b24yKQotICAgIHByaXYtPn5XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJm
YWNlUHJpdmF0ZSgpOworCiAgICAgR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2RvbV90ZXN0X3Nlcmlh
bGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZShvYmpl
Y3QpOwogfQogCkBAIC0xNTUsMjIgKzE2NiwxMCBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfZG9tX3Rl
c3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2dldF9wcm9wZXJ0eShHT2JqZQog
ICAgIH0KIH0KIAotc3RhdGljIEdPYmplY3QqIHdlYmtpdF9kb21fdGVzdF9zZXJpYWxpemVkX3Nj
cmlwdF92YWx1ZV9pbnRlcmZhY2VfY29uc3RydWN0b3IoR1R5cGUgdHlwZSwgZ3VpbnQgY29uc3Ry
dWN0UHJvcGVydGllc0NvdW50LCBHT2JqZWN0Q29uc3RydWN0UGFyYW0qIGNvbnN0cnVjdFByb3Bl
cnRpZXMpCi17Ci0gICAgR09iamVjdCogb2JqZWN0ID0gR19PQkpFQ1RfQ0xBU1Mod2Via2l0X2Rv
bV90ZXN0X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9wYXJlbnRfY2xhc3MpLT5j
b25zdHJ1Y3Rvcih0eXBlLCBjb25zdHJ1Y3RQcm9wZXJ0aWVzQ291bnQsIGNvbnN0cnVjdFByb3Bl
cnRpZXMpOwotI2lmIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFCTEUoQ29uZGl0aW9uMikKLSAg
ICBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJpdmF0ZSogcHJp
diA9IFdFQktJVF9ET01fVEVTVF9TRVJJQUxJWkVEX1NDUklQVF9WQUxVRV9JTlRFUkZBQ0Uob2Jq
ZWN0KS0+cHJpdjsKLSAgICBwcml2LT5jb3JlT2JqZWN0ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZSo+KFdFQktJVF9ET01fT0JKRUNUKG9i
amVjdCktPmNvcmVPYmplY3QpOwotI2VuZGlmIC8vIEVOQUJMRShDb25kaXRpb24xKSB8fCBFTkFC
TEUoQ29uZGl0aW9uMikKLSAgICByZXR1cm4gb2JqZWN0OwotfQotCiBzdGF0aWMgdm9pZCB3ZWJr
aXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2NsYXNzX2luaXQo
V2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZUNsYXNzKiByZXF1ZXN0
Q2xhc3MpCiB7CiAgICAgR09iamVjdENsYXNzKiBnb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFT
UyhyZXF1ZXN0Q2xhc3MpOwotICAgIGdvYmplY3RDbGFzcy0+Y29uc3RydWN0b3IgPSB3ZWJraXRf
ZG9tX3Rlc3Rfc2VyaWFsaXplZF9zY3JpcHRfdmFsdWVfaW50ZXJmYWNlX2NvbnN0cnVjdG9yOwog
ICAgIGdvYmplY3RDbGFzcy0+ZmluYWxpemUgPSB3ZWJraXRfZG9tX3Rlc3Rfc2VyaWFsaXplZF9z
Y3JpcHRfdmFsdWVfaW50ZXJmYWNlX2ZpbmFsaXplOwotICAgIGdfdHlwZV9jbGFzc19hZGRfcHJp
dmF0ZShnb2JqZWN0Q2xhc3MsIHNpemVvZihXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZh
bHVlSW50ZXJmYWNlUHJpdmF0ZSkpOwogICAgIGdvYmplY3RDbGFzcy0+Z2V0X3Byb3BlcnR5ID0g
d2Via2l0X2RvbV90ZXN0X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9nZXRfcHJv
cGVydHk7CiAKICAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5KGdvYmplY3RDbGFz
cywKQEAgLTIxMCwxMSArMjA5LDggQEAgc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0X3Nlcmlh
bGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9jbGFzc19pbml0KFdlYktpdEQKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0VCS0lU
X1BBUkFNX1JFQURBQkxFKSk7CiB9CiAKLXN0YXRpYyB2b2lkIHdlYmtpdF9kb21fdGVzdF9zZXJp
YWxpemVkX3NjcmlwdF92YWx1ZV9pbnRlcmZhY2VfaW5pdChXZWJLaXRET01UZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKiBzZWxmKQorc3RhdGljIHZvaWQgd2Via2l0X2RvbV90ZXN0
X3NlcmlhbGl6ZWRfc2NyaXB0X3ZhbHVlX2ludGVyZmFjZV9pbml0KFdlYktpdERPTVRlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UqIHJlcXVlc3QpCiB7Ci0gICAgV2ViS2l0RE9NVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZVByaXZhdGUqIHByaXYgPSBHX1RZUEVfSU5T
VEFOQ0VfR0VUX1BSSVZBVEUoc2VsZiwgV0VCS0lUX1RZUEVfRE9NX1RFU1RfU0VSSUFMSVpFRF9T
Q1JJUFRfVkFMVUVfSU5URVJGQUNFLCBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlUHJpdmF0ZSk7Ci0gICAgc2VsZi0+cHJpdiA9IHByaXY7Ci0gICAgbmV3IChwcml2
KSBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlUHJpdmF0ZSgpOwog
fQogCiB2b2lkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvR09iamVjdC9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvR09iamVjdC9XZWJLaXRET01U
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmgKaW5kZXggYTg2MzMzYzJlN2ZhNWU4
YTc4MzEyZWUwNmMyMjFhNTJmOTVkNmJhYi4uYTBjMzdjYWZkMmJhOTgyYTRmNjNhOWM5NjQyM2Fi
YTE5MGM1ZmYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0dPYmplY3QvV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9HT2JqZWN0L1dlYktp
dERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuaApAQCAtMzUsMTIgKzM1LDgg
QEAgR19CRUdJTl9ERUNMUwogI2RlZmluZSBXRUJLSVRfRE9NX0lTX1RFU1RfU0VSSUFMSVpFRF9T
Q1JJUFRfVkFMVUVfSU5URVJGQUNFX0NMQVNTKGtsYXNzKSAoR19UWVBFX0NIRUNLX0NMQVNTX1RZ
UEUoKGtsYXNzKSwgIFdFQktJVF9UWVBFX0RPTV9URVNUX1NFUklBTElaRURfU0NSSVBUX1ZBTFVF
X0lOVEVSRkFDRSkpCiAjZGVmaW5lIFdFQktJVF9ET01fVEVTVF9TRVJJQUxJWkVEX1NDUklQVF9W
QUxVRV9JTlRFUkZBQ0VfR0VUX0NMQVNTKG9iaikgIChHX1RZUEVfSU5TVEFOQ0VfR0VUX0NMQVNT
KChvYmopLCAgV0VCS0lUX1RZUEVfRE9NX1RFU1RfU0VSSUFMSVpFRF9TQ1JJUFRfVkFMVUVfSU5U
RVJGQUNFLCBXZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlQ2xhc3Mp
KQogCi10eXBlZGVmIHN0cnVjdCBfV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZVByaXZhdGUgV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFj
ZVByaXZhdGU7Ci0KIHN0cnVjdCBfV2ViS2l0RE9NVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZSB7CiAgICAgV2ViS2l0RE9NT2JqZWN0IHBhcmVudF9pbnN0YW5jZTsKLQotICAgIFdl
YktpdERPTVRlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2VQcml2YXRlICpwcml2Owog
fTsKIAogc3RydWN0IF9XZWJLaXRET01UZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
Q2xhc3Mgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>