<?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>201636</bug_id>
          
          <creation_ts>2019-09-10 03:40:54 -0700</creation_ts>
          <short_desc>[GTK][WPE] Stop using the session bus in the unit tests</short_desc>
          <delta_ts>2019-09-11 01:29:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>201642</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1569490</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-10 03:40:54 -0700</bug_when>
    <thetext>We are actually using GTestDBus, not the actual session bus of the user session, but it would still be better to use a private p2p DBus connection. This is also the way we encourage apps to implement the communication with the web process extension.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569493</commentid>
    <comment_count>1</comment_count>
      <attachid>378454</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-10 03:48:20 -0700</bug_when>
    <thetext>Created attachment 378454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569868</commentid>
    <comment_count>2</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-09-11 01:28:55 -0700</bug_when>
    <thetext>Committed r249759: &lt;https://trac.webkit.org/changeset/249759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1569869</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-11 01:29:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/55253355&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378454</attachid>
            <date>2019-09-10 03:48:20 -0700</date>
            <delta_ts>2019-09-11 00:35:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-tests-dbus.diff</filename>
            <type>text/plain</type>
            <size>40373</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwYTY2
NjYxOWMwZC4uOTM3NDRkMzM5ZGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MiBAQAorMjAxOS0wOS0xMCAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS11bV1BFXSBTdG9w
IHVzaW5nIHRoZSBzZXNzaW9uIGJ1cyBpbiB0aGUgdW5pdCB0ZXN0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxNjM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2UgYXJlIGFjdHVhbGx5IHVzaW5nIEdU
ZXN0REJ1cywgbm90IHRoZSBhY3R1YWwgc2Vzc2lvbiBidXMgb2YgdGhlIHVzZXIgc2Vzc2lvbiwg
YnV0IGl0IHdvdWxkIHN0aWxsIGJlIGJldHRlciB0bworICAgICAgICB1c2UgYSBwcml2YXRlIHAy
cCBEQnVzIGNvbm5lY3Rpb24uIFRoaXMgaXMgYWxzbyB0aGUgd2F5IHdlIGVuY291cmFnZSBhcHBz
IHRvIGltcGxlbWVudCB0aGUgY29tbXVuaWNhdGlvbiB3aXRoCisgICAgICAgIHRoZSB3ZWIgcHJv
Y2VzcyBleHRlbnNpb24uIFRoaXMgcGF0Y2ggcmVtb3ZlcyB0aGUgV2ViS2l0VGVzdEJ1cyBjbGFz
cyBhbmQgc3RhcnRzIGEgREJ1cyBzZXJ2ZXIgYmVmb3JlIGV2ZXJ5CisgICAgICAgIHRlc3QuIFRo
ZSBzZXJ2ZXIgYWRkcmVzcyBpcyBwYXNzZWQgdG8gdGhlIHdlYiBleHRlbnNpb24gYXMgaW5pdGlh
bGl6YXRpb24gcGFyYW1ldGVyIHRvIGNvbm5lY3QgZGlyZWN0bHkgdG8KKyAgICAgICAgaXQuIFdl
IGtlZXAgYSBnbG9iYWwgbGlzdCBvZiBjb25uZWN0aW9ucyB0byB0aGUgc2VydmVyIGFuZCBhIEhh
c2hNYXAgdG8gZ2V0IHRoZSBjdXJyZW50IGFjdGl2ZSBjb25uZWN0aW9uIGZvcgorICAgICAgICBh
IFdlYktpdFdlYlZpZXcuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdExvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChiZWZvcmVBbGwpOgorICAgICAgICAo
YWZ0ZXJBbGwpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
TXVsdGlwcm9jZXNzLmNwcDoKKyAgICAgICAgKHRlc3RQcm9jZXNzUGVyV2ViVmlldyk6CisgICAg
ICAgIChiZWZvcmVBbGwpOgorICAgICAgICAoYWZ0ZXJBbGwpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHA6CisgICAgICAgICh0
ZXN0V2ViRXh0ZW5zaW9uR2V0VGl0bGUpOgorICAgICAgICAodGVzdFdlYkV4dGVuc2lvbklucHV0
RWxlbWVudElzVXNlckVkaXRlZCk6CisgICAgICAgICh0ZXN0RG9jdW1lbnRMb2FkZWRTaWduYWwp
OgorICAgICAgICAodGVzdFdlYktpdFdlYlZpZXdQcm9jZXNzQ3Jhc2hlZCk6CisgICAgICAgICh0
ZXN0V2ViRXh0ZW5zaW9uSXNvbGF0ZWRXb3JsZCk6CisgICAgICAgICh0ZXN0SW5zdGFsbE1pc3Np
bmdQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QpOgorICAgICAgICAodGVzdFdlYkV4dGVuc2lvbkZv
cm1Db250cm9sc0Fzc29jaWF0ZWQpOgorICAgICAgICAoRm9ybVN1Ym1pc3Npb25UZXN0OjpGb3Jt
U3VibWlzc2lvblRlc3QpOgorICAgICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgKGFmdGVyQWxs
KToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvV2ViRXh0ZW5zaW9u
VGVzdC5jcHA6CisgICAgICAgIChEZWxheWVkU2lnbmFsOjpEZWxheWVkU2lnbmFsKToKKyAgICAg
ICAgKGVtaXRQYWdlQ3JlYXRlZCk6CisgICAgICAgIChwYWdlQ3JlYXRlZENhbGxiYWNrKToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2VyX2RhdGEpOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0FjY2Vzc2liaWxpdHlUZXN0
U2VydmVyLmNwcDoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9UZXN0
V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHA6CisgICAgICAgIChBY2Nlc3NpYmlsaXR5VGVzdDo6QWNj
ZXNzaWJpbGl0eVRlc3QpOgorICAgICAgICAoQWNjZXNzaWJpbGl0eVRlc3Q6OmVuc3VyZVByb3h5
KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgIChhZnRlckFsbCk6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmNwcDoKKyAgICAgICAgKGRidXNDb25uZWN0aW9u
Q2xvc2VkKToKKyAgICAgICAgKGRidXNTZXJ2ZXJDb25uZWN0aW9uKToKKyAgICAgICAgKHN0YXJ0
REJ1c1NlcnZlcik6CisgICAgICAgIChzdG9wREJ1c1NlcnZlcik6CisgICAgICAgIChtYWluKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oOgorICAg
ICAgICAoVGVzdDo6aW5pdGlhbGl6ZVdlYkV4dGVuc2lvbnMpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RCdXMuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RCdXMuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJWaWV3VGVzdC5j
cHA6CisgICAgICAgIChXZWJWaWV3VGVzdDo6fldlYlZpZXdUZXN0KToKKyAgICAgICAgKFdlYlZp
ZXdUZXN0OjpleHRlbnNpb25Qcm94eSk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9nbGliL1dl
YktpdEdMaWIvV2ViVmlld1Rlc3QuaDoKKwogMjAxOS0wOS0wNyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJld3JpdGUgaHR0cC90ZXN0cy93b3JrZXJzL3NlcnZp
Y2Uvc2VydmljZXdvcmtlci1wcml2YXRlLWJyb3dzaW5nLmh0dHBzLmh0bWwgYXMgYW4gQVBJIHRl
c3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
TG9hZGVyQ2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0TG9hZGVyQ2xpZW50LmNwcAppbmRleCAyZDgwYWY5NDNjZi4uMDg0MzE0YjA0NWIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdExv
YWRlckNsaWVudC5jcHAKQEAgLTIyLDE0ICsyMiwxMiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
CiAjaW5jbHVkZSAiTG9hZFRyYWNraW5nVGVzdC5oIgotI2luY2x1ZGUgIldlYktpdFRlc3RCdXMu
aCIKICNpbmNsdWRlICJXZWJLaXRUZXN0U2VydmVyLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3Qu
aCIKICNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogCi1zdGF0aWMgV2ViS2l0VGVzdEJ1cyogYnVz
Owogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGtTZXJ2ZXI7CiAKIGNvbnN0IGNoYXIqIGtETlRI
ZWFkZXJOb3RQcmVzZW50ID0gIkROVCBoZWFkZXIgbm90IHByZXNlbnQiOwpAQCAtNDkzLDExICs0
OTEsOSBAQCBwdWJsaWM6CiAKICAgICBXZWJQYWdlVVJJVGVzdCgpCiAgICAgewotICAgICAgICBH
VW5pcXVlUHRyPGNoYXI+IGV4dGVuc2lvbkJ1c05hbWUoZ19zdHJkdXBfcHJpbnRmKCJvcmcud2Vi
a2l0Lmd0ay5XZWJFeHRlbnNpb25UZXN0JXUiLCBUZXN0OjpzX3dlYkV4dGVuc2lvbklEKSk7Ci0g
ICAgICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9wdEdSZWYoYnVzLT5jcmVhdGVQ
cm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAotICAgICAgICAgICAgIi9vcmcvd2Via2l0L2d0
ay9XZWJFeHRlbnNpb25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCBt
X21haW5Mb29wKSk7CisgICAgICAgIG1fcHJveHkgPSBleHRlbnNpb25Qcm94eSgpOwogICAgICAg
ICBtX3VyaUNoYW5nZWRTaWduYWxJRCA9IGdfZGJ1c19jb25uZWN0aW9uX3NpZ25hbF9zdWJzY3Jp
YmUoCi0gICAgICAgICAgICBnX2RidXNfcHJveHlfZ2V0X2Nvbm5lY3Rpb24ocHJveHkuZ2V0KCkp
LAorICAgICAgICAgICAgZ19kYnVzX3Byb3h5X2dldF9jb25uZWN0aW9uKG1fcHJveHkuZ2V0KCkp
LAogICAgICAgICAgICAgMCwKICAgICAgICAgICAgICJvcmcud2Via2l0Lmd0ay5XZWJFeHRlbnNp
b25UZXN0IiwKICAgICAgICAgICAgICJVUklDaGFuZ2VkIiwKQEAgLTUxNSw3ICs1MTEsNyBAQCBw
dWJsaWM6CiAgICAgfldlYlBhZ2VVUklUZXN0KCkKICAgICB7CiAgICAgICAgIGdfc2lnbmFsX2hh
bmRsZXJzX2Rpc2Nvbm5lY3RfbWF0Y2hlZChtX3dlYlZpZXcsIEdfU0lHTkFMX01BVENIX0RBVEEs
IDAsIDAsIDAsIDAsIHRoaXMpOwotICAgICAgICBnX2RidXNfY29ubmVjdGlvbl9zaWduYWxfdW5z
dWJzY3JpYmUoYnVzLT5jb25uZWN0aW9uKCksIG1fdXJpQ2hhbmdlZFNpZ25hbElEKTsKKyAgICAg
ICAgZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3Vuc3Vic2NyaWJlKGdfZGJ1c19wcm94eV9nZXRf
Y29ubmVjdGlvbihtX3Byb3h5LmdldCgpKSwgbV91cmlDaGFuZ2VkU2lnbmFsSUQpOwogICAgIH0K
IAogICAgIHZvaWQgbG9hZFVSSShjb25zdCBjaGFyKiB1cmkpCkBAIC01MzIsNiArNTI4LDcgQEAg
cHVibGljOgogICAgICAgICAgICAgQVNTRVJUX0NNUF9DU1RSSU5HKG1fd2ViUGFnZVVSSXNbaV0s
ID09LCBtX3dlYlZpZXdVUklzW2ldKTsKICAgICB9CiAKKyAgICBHUmVmUHRyPEdEQnVzUHJveHk+
IG1fcHJveHk7CiAgICAgdW5zaWduZWQgbV91cmlDaGFuZ2VkU2lnbmFsSUQ7CiAgICAgVmVjdG9y
PENTdHJpbmc+IG1fd2ViUGFnZVVSSXM7CiAgICAgVmVjdG9yPENTdHJpbmc+IG1fd2ViVmlld1VS
SXM7CkBAIC03MjksMTAgKzcyNiw2IEBAIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBT
ZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqCiAKIHZvaWQg
YmVmb3JlQWxsKCkKIHsKLSAgICBidXMgPSBuZXcgV2ViS2l0VGVzdEJ1cygpOwotICAgIGlmICgh
YnVzLT5ydW4oKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAga1NlcnZlciA9IG5ldyBXZWJLaXRU
ZXN0U2VydmVyKCk7CiAgICAga1NlcnZlci0+cnVuKHNlcnZlckNhbGxiYWNrKTsKIApAQCAtNzY3
LDYgKzc2MCw1IEBAIHZvaWQgYmVmb3JlQWxsKCkKIAogdm9pZCBhZnRlckFsbCgpCiB7Ci0gICAg
ZGVsZXRlIGJ1czsKICAgICBkZWxldGUga1NlcnZlcjsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcCBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcAppbmRl
eCBiMzM3ZjRkYmY3ZC4uNTUyZTM5MmVmOTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0TXVsdGlwcm9jZXNzLmNwcAorKysgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdE11bHRpcHJvY2Vzcy5jcHAKQEAgLTIwLDEy
ICsyMCwxMCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdE1haW4uaCIK
LSNpbmNsdWRlICJXZWJLaXRUZXN0QnVzLmgiCiAjaW5jbHVkZSAiV2ViVmlld1Rlc3QuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBudW1WaWV3cyA9
IDI7Ci1zdGF0aWMgV2ViS2l0VGVzdEJ1cyogYnVzOwogCiBjbGFzcyBNdWx0aXByb2Nlc3NUZXN0
OiBwdWJsaWMgVGVzdCB7CiBwdWJsaWM6CkBAIC01NCw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICAg
ICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKICAgICB9CiAKLSAgICB2b2lk
IGxvYWRXZWJWaWV3QW5kV2FpdFVudGlsTG9hZGVkKHVuc2lnbmVkIGluZGV4KQorICAgIHZvaWQg
bG9hZFdlYlZpZXdBbmRXYWl0VW50aWxQYWdlQ3JlYXRlZCh1bnNpZ25lZCBpbmRleCkKICAgICB7
CiAgICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQoaW5kZXgsIDwsIG51bVZpZXdzKTsKIApAQCAtNjIs
MTkgKzYwLDI0IEBAIHB1YmxpYzoKICAgICAgICAgYXNzZXJ0T2JqZWN0SXNEZWxldGVkV2hlblRl
c3RGaW5pc2hlcyhHX09CSkVDVChtX3dlYlZpZXdzW2luZGV4XS5nZXQoKSkpOwogCiAgICAgICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX2h0bWwobV93ZWJWaWV3c1tpbmRleF0uZ2V0KCksICI8aHRt
bD48L2h0bWw+IiwgbnVsbHB0cik7Ci0gICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobV93ZWJWaWV3
c1tpbmRleF0uZ2V0KCksICJsb2FkLWNoYW5nZWQiLCBHX0NBTExCQUNLKGxvYWRDaGFuZ2VkKSwg
dGhpcyk7CisgICAgICAgIGdfaWRsZV9hZGQoW10oZ3BvaW50ZXIgdXNlckRhdGEpIC0+IGdib29s
ZWFuIHsKKyAgICAgICAgICAgIGF1dG8qIHRlc3QgPSBzdGF0aWNfY2FzdDxNdWx0aXByb2Nlc3NU
ZXN0Kj4odXNlckRhdGEpOworICAgICAgICAgICAgaWYgKCFzX2RidXNDb25uZWN0aW9uUGFnZU1h
cC5nZXQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2ViVmlld3NbdGVzdC0+
bV9pbml0aWFsaXplV2ViRXh0ZW5zaW9uc1NpZ25hbENvdW50IC0gMV0uZ2V0KCkpKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gVFJVRTsKKworICAgICAgICAgICAgZ19tYWluX2xvb3BfcXVpdCh0
ZXN0LT5tX21haW5Mb29wKTsKKyAgICAgICAgICAgIHJldHVybiBGQUxTRTsKKyAgICAgICAgfSwg
dGhpcyk7CiAgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKLQotICAgICAgICBt
X3dlYlZpZXdCdXNOYW1lc1tpbmRleF0gPSBHVW5pcXVlUHRyPGNoYXI+KGdfc3RyZHVwX3ByaW50
Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6c193ZWJFeHRlbnNp
b25JRCkpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIHdlYlByb2Nlc3NQaWQodW5zaWduZWQgaW5k
ZXgpCiAgICAgewogICAgICAgICBnX2Fzc2VydF9jbXB1aW50KGluZGV4LCA8LCBudW1WaWV3cyk7
CiAKLSAgICAgICAgR1JlZlB0cjxHREJ1c1Byb3h5PiBwcm94eSA9IGFkb3B0R1JlZihidXMtPmNy
ZWF0ZVByb3h5KG1fd2ViVmlld0J1c05hbWVzW2luZGV4XS5nZXQoKSwKLSAgICAgICAgICAgICIv
b3JnL3dlYmtpdC9ndGsvV2ViRXh0ZW5zaW9uVGVzdCIsICJvcmcud2Via2l0Lmd0ay5XZWJFeHRl
bnNpb25UZXN0IiwgbV9tYWluTG9vcCkpOwotCisgICAgICAgIEdSZWZQdHI8R0RCdXNQcm94eT4g
cHJveHkgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X25ld19zeW5jKHNfZGJ1c0Nvbm5lY3Rpb25Q
YWdlTWFwLmdldCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQobV93ZWJWaWV3c1tpbmRleF0u
Z2V0KCkpKSwKKyAgICAgICAgICAgIHN0YXRpY19jYXN0PEdEQnVzUHJveHlGbGFncz4oR19EQlVT
X1BST1hZX0ZMQUdTX0RPX05PVF9MT0FEX1BST1BFUlRJRVMgfCBHX0RCVVNfUFJPWFlfRkxBR1Nf
RE9fTk9UX0NPTk5FQ1RfU0lHTkFMUyksCisgICAgICAgICAgICBudWxscHRyLCBudWxscHRyLCAi
L29yZy93ZWJraXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiLCAib3JnLndlYmtpdC5ndGsuV2ViRXh0
ZW5zaW9uVGVzdCIsIG51bGxwdHIsIG51bGxwdHIpKTsKICAgICAgICAgR1JlZlB0cjxHVmFyaWFu
dD4gcmVzdWx0ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9jYWxsX3N5bmMoCiAgICAgICAgICAg
ICBwcm94eS5nZXQoKSwKICAgICAgICAgICAgICJHZXRQcm9jZXNzSWRlbnRpZmllciIsCkBAIC04
OSwyMCArOTIsMTUgQEAgcHVibGljOgogICAgIH0KIAogI2lmIFBMQVRGT1JNKEdUSykKLSAgICBz
dGF0aWMgdm9pZCBuYW1lVmFuaXNoZWRDYWxsYmFjayhHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rp
b24sIGNvbnN0IGdjaGFyKiBuYW1lLCBncG9pbnRlciB1c2VyRGF0YSkKLSAgICB7Ci0gICAgICAg
IGdfbWFpbl9sb29wX3F1aXQoc3RhdGljX2Nhc3Q8R01haW5Mb29wKj4odXNlckRhdGEpKTsKLSAg
ICB9Ci0KICAgICB2b2lkIGRlc3Ryb3lXZWJWaWV3QW5kV2FpdFVudGlsV2ViUHJvY2Vzc0Zpbmlz
aGVzKHVuc2lnbmVkIGluZGV4KQogICAgIHsKICAgICAgICAgZ19hc3NlcnRfY21wdWludChpbmRl
eCwgPCwgbnVtVmlld3MpOwogCi0gICAgICAgIHVuc2lnbmVkIHdhdGNoZXJJRCA9IGdfYnVzX3dh
dGNoX25hbWVfb25fY29ubmVjdGlvbihidXMtPmNvbm5lY3Rpb24oKSwgbV93ZWJWaWV3QnVzTmFt
ZXNbaW5kZXhdLmdldCgpLCBHX0JVU19OQU1FX1dBVENIRVJfRkxBR1NfTk9ORSwKLSAgICAgICAg
ICAgIG51bGxwdHIsIG5hbWVWYW5pc2hlZENhbGxiYWNrLCBtX21haW5Mb29wLCBudWxscHRyKTsK
KyAgICAgICAgYXV0byogY29ubmVjdGlvbiA9IHNfZGJ1c0Nvbm5lY3Rpb25QYWdlTWFwLmdldCh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQobV93ZWJWaWV3c1tpbmRleF0uZ2V0KCkpKTsKKyAg
ICAgICAgZ19hc3NlcnRfbm9ubnVsbChjb25uZWN0aW9uKTsKKyAgICAgICAgZ19zaWduYWxfY29u
bmVjdF9zd2FwcGVkKGNvbm5lY3Rpb24sICJjbG9zZWQiLCBHX0NBTExCQUNLKGdfbWFpbl9sb29w
X3F1aXQpLCBtX21haW5Mb29wKTsKICAgICAgICAgZ3RrX3dpZGdldF9kZXN0cm95KEdUS19XSURH
RVQobV93ZWJWaWV3c1tpbmRleF0uZ2V0KCkpKTsKICAgICAgICAgZ19tYWluX2xvb3BfcnVuKG1f
bWFpbkxvb3ApOwotICAgICAgICBnX2J1c191bndhdGNoX25hbWUod2F0Y2hlcklEKTsKICAgICB9
CiAjZW5kaWYKIApAQCAtMTIxLDEzICsxMTksMTMgQEAgc3RhdGljIHZvaWQgdGVzdFByb2Nlc3NQ
ZXJXZWJWaWV3KE11bHRpcHJvY2Vzc1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgLy8g
cHJvY2VzcyBpZGVudGlmaWVycykuCiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbnVt
Vmlld3M7IGkrKykgewotICAgICAgICB0ZXN0LT5sb2FkV2ViVmlld0FuZFdhaXRVbnRpbExvYWRl
ZChpKTsKKyAgICAgICAgdGVzdC0+bG9hZFdlYlZpZXdBbmRXYWl0VW50aWxQYWdlQ3JlYXRlZChp
KTsKICAgICAgICAgZ19hc3NlcnRfdHJ1ZShXRUJLSVRfSVNfV0VCX1ZJRVcodGVzdC0+bV93ZWJW
aWV3c1tpXS5nZXQoKSkpOwotICAgICAgICBnX2Fzc2VydF9ub25udWxsKHRlc3QtPm1fd2ViVmll
d0J1c05hbWVzW2ldKTsKKyAgICAgICAgZ19hc3NlcnRfbm9ubnVsbChUZXN0OjpzX2RidXNDb25u
ZWN0aW9uUGFnZU1hcC5nZXQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2Vi
Vmlld3NbaV0uZ2V0KCkpKSk7CiAgICAgfQogCiAgICAgZ19hc3NlcnRfY21wdWludCh0ZXN0LT5t
X2luaXRpYWxpemVXZWJFeHRlbnNpb25zU2lnbmFsQ291bnQsID09LCBudW1WaWV3cyk7Ci0gICAg
Z19hc3NlcnRfY21wc3RyKHRlc3QtPm1fd2ViVmlld0J1c05hbWVzWzBdLmdldCgpLCAhPSwgdGVz
dC0+bV93ZWJWaWV3QnVzTmFtZXNbMV0uZ2V0KCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKFRlc3Q6
OnNfZGJ1c0Nvbm5lY3Rpb25QYWdlTWFwLmdldCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQo
dGVzdC0+bV93ZWJWaWV3c1swXS5nZXQoKSkpID09IFRlc3Q6OnNfZGJ1c0Nvbm5lY3Rpb25QYWdl
TWFwLmdldCh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3c1sxXS5n
ZXQoKSkpKTsKICAgICBnX2Fzc2VydF9jbXB1aW50KHRlc3QtPndlYlByb2Nlc3NQaWQoMCksICE9
LCB0ZXN0LT53ZWJQcm9jZXNzUGlkKDEpKTsKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTI1Mywx
NSArMjUxLDEwIEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICAvLyBDaGVjayB0aGF0IGRlZmF1bHQg
c2V0dGluZyBpcyB0aGUgb25lIHN0YXRlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbgogICAgIGdfYXNz
ZXJ0X2NtcHVpbnQod2Via2l0X3dlYl9jb250ZXh0X2dldF9wcm9jZXNzX21vZGVsKHdlYmtpdF93
ZWJfY29udGV4dF9nZXRfZGVmYXVsdCgpKSwgPT0sIFdFQktJVF9QUk9DRVNTX01PREVMX01VTFRJ
UExFX1NFQ09OREFSWV9QUk9DRVNTRVMpOwogCi0gICAgYnVzID0gbmV3IFdlYktpdFRlc3RCdXMo
KTsKLSAgICBpZiAoIWJ1cy0+cnVuKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIE11bHRpcHJv
Y2Vzc1Rlc3Q6OmFkZCgiV2ViS2l0V2ViQ29udGV4dCIsICJwcm9jZXNzLXBlci13ZWItdmlldyIs
IHRlc3RQcm9jZXNzUGVyV2ViVmlldyk7CiAgICAgVUlDbGllbnRNdWx0aXByb2Nlc3NUZXN0Ojph
ZGQoIldlYktpdFdlYlZpZXciLCAibXVsdGlwcm9jZXNzLWNyZWF0ZS1yZWFkeS1jbG9zZSIsIHRl
c3RNdWx0aXByb2Nlc3NXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZSk7CiB9CiAKIHZvaWQgYWZ0ZXJB
bGwoKQogewotICAgIGRlbGV0ZSBidXM7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYkV4dGVuc2lvbnMuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAppbmRleCA3MmJm
NzM2N2Q2MS4uN2YxNjgxYTM4ODMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJFeHRlbnNpb25zLmNwcApAQCAtMTksMTEgKzE5
LDkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogCi0jaW5jbHVkZSAiV2ViS2l0VGVzdEJ1cy5o
IgogI2luY2x1ZGUgIldlYlZpZXdUZXN0LmgiCiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgogCi1zdGF0aWMgV2ViS2l0VGVzdEJ1cyogYnVzOwogc3RhdGljIEdVbmlxdWVQdHI8Y2hhcj4g
c2NyaXB0RGlhbG9nUmVzdWx0OwogCiAjZGVmaW5lIElOUFVUX0lEICJpbnB1dC1pZCIKQEAgLTM0
LDEyICszMiwxMCBAQCBzdGF0aWMgR1VuaXF1ZVB0cjxjaGFyPiBzY3JpcHREaWFsb2dSZXN1bHQ7
CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25HZXRUaXRsZShXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGhlYWQ+PHRp
dGxlPldlYktpdEdUSyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PC9i
b2R5PjwvaHRtbD4iLCAwKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+PGhlYWQ+PHRpdGxl
PldlYktpdEdUSyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hlYWQ+PGJvZHk+PC9ib2R5
PjwvaHRtbD4iLCAiaHR0cDovL2Jhci5jb20iKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmlu
aXNoZWQoKTsKIAotICAgIEdVbmlxdWVQdHI8Y2hhcj4gZXh0ZW5zaW9uQnVzTmFtZShnX3N0cmR1
cF9wcmludGYoIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QldSIsIFRlc3Q6OnNfd2Vi
RXh0ZW5zaW9uSUQpKTsKLSAgICBHUmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVm
KGJ1cy0+Y3JlYXRlUHJveHkoZXh0ZW5zaW9uQnVzTmFtZS5nZXQoKSwKLSAgICAgICAgIi9vcmcv
d2Via2l0L2d0ay9XZWJFeHRlbnNpb25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lv
blRlc3QiLCB0ZXN0LT5tX21haW5Mb29wKSk7CisgICAgYXV0byBwcm94eSA9IHRlc3QtPmV4dGVu
c2lvblByb3h5KCk7CiAgICAgR1JlZlB0cjxHVmFyaWFudD4gcmVzdWx0ID0gYWRvcHRHUmVmKGdf
ZGJ1c19wcm94eV9jYWxsX3N5bmMoCiAgICAgICAgIHByb3h5LmdldCgpLAogICAgICAgICAiR2V0
VGl0bGUiLApAQCAtNzUsOSArNzEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViRXh0ZW5zaW9uSW5w
dXRFbGVtZW50SXNVc2VyRWRpdGVkKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3RwbwogICAgIHRl
c3QtPmxvYWRIdG1sKCI8aHRtbD48Ym9keSBpZD0nYm9keSc+PGlucHV0IGlkPSdpbnB1dCc+PC9p
bnB1dD48dGV4dGFyZWEgaWQ9J3RleHRhcmVhJz48L3RleHRhcmVhPjwvYm9keT48L2h0bWw+Iiwg
bnVsbHB0cik7CiAgICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKLSAgICBHVW5p
cXVlUHRyPGNoYXI+IGV4dGVuc2lvbkJ1c05hbWUoZ19zdHJkdXBfcHJpbnRmKCJvcmcud2Via2l0
Lmd0ay5XZWJFeHRlbnNpb25UZXN0JXUiLCBUZXN0OjpzX3dlYkV4dGVuc2lvbklEKSk7Ci0gICAg
R1JlZlB0cjxHREJ1c1Byb3h5PiBwcm94eSA9IGFkb3B0R1JlZihidXMtPmNyZWF0ZVByb3h5KGV4
dGVuc2lvbkJ1c05hbWUuZ2V0KCksCi0gICAgICAgICIvb3JnL3dlYmtpdC9ndGsvV2ViRXh0ZW5z
aW9uVGVzdCIsICJvcmcud2Via2l0Lmd0ay5XZWJFeHRlbnNpb25UZXN0IiwgdGVzdC0+bV9tYWlu
TG9vcCkpOworICAgIGF1dG8gcHJveHkgPSB0ZXN0LT5leHRlbnNpb25Qcm94eSgpOwogCiAgICAg
dWludDY0X3QgcGFnZUlEID0gd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHRlc3QtPm1fd2Vi
Vmlldyk7CiAgICAgZ19hc3NlcnRfZmFsc2UoaW5wdXRFbGVtZW50SXNVc2VyRWRpdGVkKHByb3h5
LmdldCgpLCBwYWdlSUQsICJpbnB1dCIpKTsKQEAgLTExNCwyMyArMTA4LDIyIEBAIHN0YXRpYyB2
b2lkIGRvY3VtZW50TG9hZGVkQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgY2hhcios
IGNvbnN0IGNoYXIqLCBjCiAKIHN0YXRpYyB2b2lkIHRlc3REb2N1bWVudExvYWRlZFNpZ25hbChX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IGV4dGVuc2lvbkJ1c05hbWUoZ19zdHJkdXBfcHJpbnRmKCJvcmcud2Via2l0Lmd0ay5XZWJFeHRl
bnNpb25UZXN0JXUiLCBUZXN0OjpzX3dlYkV4dGVuc2lvbklEKSk7Ci0gICAgR1JlZlB0cjxHREJ1
c1Byb3h5PiBwcm94eSA9IGFkb3B0R1JlZihidXMtPmNyZWF0ZVByb3h5KGV4dGVuc2lvbkJ1c05h
bWUuZ2V0KCksCi0gICAgICAgICIvb3JnL3dlYmtpdC9ndGsvV2ViRXh0ZW5zaW9uVGVzdCIsICJv
cmcud2Via2l0Lmd0ay5XZWJFeHRlbnNpb25UZXN0IiwgdGVzdC0+bV9tYWluTG9vcCkpOworICAg
IGF1dG8gcHJveHkgPSB0ZXN0LT5leHRlbnNpb25Qcm94eSgpOworCiAgICAgR0RCdXNDb25uZWN0
aW9uKiBjb25uZWN0aW9uID0gZ19kYnVzX3Byb3h5X2dldF9jb25uZWN0aW9uKHByb3h5LmdldCgp
KTsKICAgICBndWludCBpZCA9IGdfZGJ1c19jb25uZWN0aW9uX3NpZ25hbF9zdWJzY3JpYmUoY29u
bmVjdGlvbiwKLSAgICAgICAgMCwKKyAgICAgICAgbnVsbHB0ciwKICAgICAgICAgIm9yZy53ZWJr
aXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLAogICAgICAgICAiRG9jdW1lbnRMb2FkZWQiLAogICAg
ICAgICAiL29yZy93ZWJraXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiLAotICAgICAgICAwLAorICAg
ICAgICBudWxscHRyLAogICAgICAgICBHX0RCVVNfU0lHTkFMX0ZMQUdTX05PTkUsCiAgICAgICAg
IHJlaW50ZXJwcmV0X2Nhc3Q8R0RCdXNTaWduYWxDYWxsYmFjaz4oZG9jdW1lbnRMb2FkZWRDYWxs
YmFjayksCiAgICAgICAgIHRlc3QsCi0gICAgICAgIDApOworICAgICAgICBudWxscHRyKTsKICAg
ICBnX2Fzc2VydF9jbXB1aW50KGlkLCAhPSwgMCk7CiAKLSAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0
bWw+PGhlYWQ+PHRpdGxlPldlYktpdEdUSyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hl
YWQ+PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCAwKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0bWw+
PGhlYWQ+PHRpdGxlPldlYktpdEdUSyBXZWIgRXh0ZW5zaW9ucyBUZXN0PC90aXRsZT48L2hlYWQ+
PGJvZHk+PC9ib2R5PjwvaHRtbD4iLCBudWxscHRyKTsKICAgICBnX21haW5fbG9vcF9ydW4odGVz
dC0+bV9tYWluTG9vcCk7CiAgICAgZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3Vuc3Vic2NyaWJl
KGNvbm5lY3Rpb24sIGlkKTsKIH0KQEAgLTE0NSw3ICsxMzgsNyBAQCBzdGF0aWMgZ2Jvb2xlYW4g
d2ViUHJvY2Vzc1Rlcm1pbmF0ZWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViUHJv
Y2Vzc1RlcgogCiBzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0V2ViVmlld1Byb2Nlc3NDcmFzaGVkKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIHRlc3QtPmxvYWRIdG1sKCI8
aHRtbD48L2h0bWw+IiwgMCk7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjwvaHRtbD4iLCBu
dWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKIAogICAgIGdfc2ln
bmFsX2Nvbm5lY3RfYWZ0ZXIodGVzdC0+bV93ZWJWaWV3LCAid2ViLXByb2Nlc3MtdGVybWluYXRl
ZCIsCkBAIC0xNTMsMTAgKzE0Niw3IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRXZWJWaWV3UHJv
Y2Vzc0NyYXNoZWQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAKICAgICB0ZXN0
LT5tX2V4cGVjdGVkV2ViUHJvY2Vzc0NyYXNoID0gdHJ1ZTsKIAotICAgIEdVbmlxdWVQdHI8Y2hh
cj4gZXh0ZW5zaW9uQnVzTmFtZShnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJraXQuZ3RrLldlYkV4
dGVuc2lvblRlc3QldSIsIFRlc3Q6OnNfd2ViRXh0ZW5zaW9uSUQpKTsKLSAgICBHUmVmUHRyPEdE
QnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRlUHJveHkoZXh0ZW5zaW9uQnVz
TmFtZS5nZXQoKSwKLSAgICAgICAgIi9vcmcvd2Via2l0L2d0ay9XZWJFeHRlbnNpb25UZXN0Iiwg
Im9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCB0ZXN0LT5tX21haW5Mb29wKSk7Ci0K
KyAgICBhdXRvIHByb3h5ID0gdGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKICAgICBHUmVmUHRyPEdW
YXJpYW50PiByZXN1bHQgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfc3luYygKICAgICAg
ICAgcHJveHkuZ2V0KCksCiAgICAgICAgICJBYm9ydFByb2Nlc3MiLApAQCAtMjI1LDkgKzIxNSw3
IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJFeHRlbnNpb25Jc29sYXRlZFdvcmxkKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogICAgICAgICAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5pbm5lckhUTUwgPSB0b3AuZm9vO1xuIgogICAgICAgICAid2luZG93Lm9wZW4g
PSBmdW5jdGlvbiAoKSB7IGFsZXJ0KCdJc29sYXRlZCBXb3JsZCcpOyB9XG4iCiAgICAgICAgICJ3
aW5kb3cub3BlbigpOyI7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBleHRlbnNpb25CdXNOYW1lKGdf
c3RyZHVwX3ByaW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1IiwgVGVzdDo6
c193ZWJFeHRlbnNpb25JRCkpOwotICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJveHkgPSBhZG9w
dEdSZWYoYnVzLT5jcmVhdGVQcm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAotICAgICAgICAi
L29yZy93ZWJraXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiICwgIm9yZy53ZWJraXQuZ3RrLldlYkV4
dGVuc2lvblRlc3QiLCB0ZXN0LT5tX21haW5Mb29wKSk7CisgICAgYXV0byBwcm94eSA9IHRlc3Qt
PmV4dGVuc2lvblByb3h5KCk7CiAgICAgZ19kYnVzX3Byb3h5X2NhbGwocHJveHkuZ2V0KCksCiAg
ICAgICAgICJSdW5KYXZhU2NyaXB0SW5Jc29sYXRlZFdvcmxkIiwKICAgICAgICAgZ192YXJpYW50
X25ldygiKHQmcykiLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQodGVzdC0+bV93ZWJWaWV3
KSwgaXNvbGF0ZWRXb3JsZFNjcmlwdCksCkBAIC0yNjQsOSArMjUyLDcgQEAgc3RhdGljIGdib29s
ZWFuIHBlcm1pc3Npb25SZXF1ZXN0Q2FsbGJhY2soV2ViS2l0V2ViVmlldyosIFdlYktpdFBlcm1p
c3Npb25SZXF1ZXMKIAogc3RhdGljIHZvaWQgdGVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc1Blcm1p
c3Npb25SZXF1ZXN0KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZXh0ZW5zaW9uQnVzTmFtZShnX3N0cmR1cF9wcmludGYoIm9yZy53ZWJr
aXQuZ3RrLldlYkV4dGVuc2lvblRlc3QldSIsIFRlc3Q6OnNfd2ViRXh0ZW5zaW9uSUQpKTsKLSAg
ICBHUmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRlUHJveHko
ZXh0ZW5zaW9uQnVzTmFtZS5nZXQoKSwKLSAgICAgICAgIi9vcmcvd2Via2l0L2d0ay9XZWJFeHRl
bnNpb25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCB0ZXN0LT5tX21h
aW5Mb29wKSk7CisgICAgYXV0byBwcm94eSA9IHRlc3QtPmV4dGVuc2lvblByb3h5KCk7CiAgICAg
R1JlZlB0cjxHVmFyaWFudD4gcmVzdWx0ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9jYWxsX3N5
bmMocHJveHkuZ2V0KCksICJSZW1vdmVBVlBsdWdpbnNGcm9tR1NUUmVnaXN0cnkiLAogICAgICAg
ICBudWxscHRyLCBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwgbnVsbHB0ciwgbnVsbHB0cikp
OwogCkBAIC0yOTIsOSArMjc4LDcgQEAgc3RhdGljIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRy
b2xzQ2FsbGJhY2soR0RCdXNDb25uZWN0aW9uKiwgY29uc3QgY2hhciosIGNvbnMKIAogc3RhdGlj
IHZvaWQgdGVzdFdlYkV4dGVuc2lvbkZvcm1Db250cm9sc0Fzc29jaWF0ZWQoV2ViVmlld1Rlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBleHRlbnNpb25C
dXNOYW1lKGdfc3RyZHVwX3ByaW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1
IiwgVGVzdDo6c193ZWJFeHRlbnNpb25JRCkpOwotICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gcHJv
eHkgPSBhZG9wdEdSZWYoYnVzLT5jcmVhdGVQcm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAot
ICAgICAgICAiL29yZy93ZWJraXQvZ3RrL1dlYkV4dGVuc2lvblRlc3QiLCAib3JnLndlYmtpdC5n
dGsuV2ViRXh0ZW5zaW9uVGVzdCIsIHRlc3QtPm1fbWFpbkxvb3ApKTsKKyAgICBhdXRvIHByb3h5
ID0gdGVzdC0+ZXh0ZW5zaW9uUHJveHkoKTsKICAgICBHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rp
b24gPSBnX2RidXNfcHJveHlfZ2V0X2Nvbm5lY3Rpb24ocHJveHkuZ2V0KCkpOwogICAgIGd1aW50
IGlkID0gZ19kYnVzX2Nvbm5lY3Rpb25fc2lnbmFsX3N1YnNjcmliZShjb25uZWN0aW9uLAogICAg
ICAgICBudWxscHRyLApAQCAtMzQ2LDkgKzMzMCw3IEBAIHB1YmxpYzoKIAogICAgIEZvcm1TdWJt
aXNzaW9uVGVzdCgpCiAgICAgewotICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IGV4dGVuc2lvbkJ1
c05hbWUoZ19zdHJkdXBfcHJpbnRmKCJvcmcud2Via2l0Lmd0ay5XZWJFeHRlbnNpb25UZXN0JXUi
LCBzX3dlYkV4dGVuc2lvbklEKSk7Ci0gICAgICAgIG1fcHJveHkgPSBhZG9wdEdSZWYoYnVzLT5j
cmVhdGVQcm94eShleHRlbnNpb25CdXNOYW1lLmdldCgpLAotICAgICAgICAgICAgIi9vcmcvd2Vi
a2l0L2d0ay9XZWJFeHRlbnNpb25UZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRl
c3QiLCBtX21haW5Mb29wKSk7CisgICAgICAgIG1fcHJveHkgPSBleHRlbnNpb25Qcm94eSgpOwog
ICAgICAgICBHREJ1c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24gPSBnX2RidXNfcHJveHlfZ2V0X2Nv
bm5lY3Rpb24obV9wcm94eS5nZXQoKSk7CiAKICAgICAgICAgbV93aWxsU2VuZERPTUV2ZW50Q2Fs
bGJhY2tJRCA9IGdfZGJ1c19jb25uZWN0aW9uX3NpZ25hbF9zdWJzY3JpYmUoY29ubmVjdGlvbiwK
QEAgLTQ2MiwxMCArNDQ0LDYgQEAgc3RhdGljIHZvaWQgdGVzdFdlYkV4dGVuc2lvbkZvcm1TdWJt
aXNzaW9uU3RlcHMoRm9ybVN1Ym1pc3Npb25UZXN0KiB0ZXN0LCBnY29uc3QKIAogdm9pZCBiZWZv
cmVBbGwoKQogewotICAgIGJ1cyA9IG5ldyBXZWJLaXRUZXN0QnVzKCk7Ci0gICAgaWYgKCFidXMt
PnJ1bigpKQotICAgICAgICByZXR1cm47Ci0KICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRX
ZWJFeHRlbnNpb24iLCAiZG9tLWRvY3VtZW50LXRpdGxlIiwgdGVzdFdlYkV4dGVuc2lvbkdldFRp
dGxlKTsKICNpZiBQTEFURk9STShHVEspCiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2Vi
RXh0ZW5zaW9uIiwgImRvbS1pbnB1dC1lbGVtZW50LWlzLXVzZXItZWRpdGVkIiwgdGVzdFdlYkV4
dGVuc2lvbklucHV0RWxlbWVudElzVXNlckVkaXRlZCk7CkBAIC00ODMsNSArNDYxLDQgQEAgdm9p
ZCBiZWZvcmVBbGwoKQogCiB2b2lkIGFmdGVyQWxsKCkKIHsKLSAgICBkZWxldGUgYnVzOwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVu
c2lvblRlc3QuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4
dGVuc2lvblRlc3QuY3BwCmluZGV4IGVhNDZjY2NmZDBlLi5iM2I5YzhiZmZlYSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1dlYkV4dGVuc2lvblRlc3Qu
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9XZWJFeHRlbnNp
b25UZXN0LmNwcApAQCAtNjMsNiArNjMsOSBAQCBzdGF0aWMgY29uc3QgY2hhciBpbnRyb3NwZWN0
aW9uWE1MW10gPQogICAgICIgIDwvbWV0aG9kPiIKICAgICAiICA8bWV0aG9kIG5hbWU9J1JlbW92
ZUFWUGx1Z2luc0Zyb21HU1RSZWdpc3RyeSc+IgogICAgICIgIDwvbWV0aG9kPiIKKyAgICAiICA8
c2lnbmFsIG5hbWU9J1BhZ2VDcmVhdGVkJz4iCisgICAgIiAgIDxhcmcgdHlwZT0ndCcgbmFtZT0n
cGFnZUlEJyBkaXJlY3Rpb249J291dCcvPiIKKyAgICAiICA8L3NpZ25hbD4iCiAgICAgIiAgPHNp
Z25hbCBuYW1lPSdEb2N1bWVudExvYWRlZCcvPiIKICAgICAiICA8c2lnbmFsIG5hbWU9J0Zvcm1D
b250cm9sc0Fzc29jaWF0ZWQnPiIKICAgICAiICAgPGFyZyB0eXBlPSdzJyBuYW1lPSdmb3JtSWRz
JyBkaXJlY3Rpb249J291dCcvPiIKQEAgLTg5LDYgKzkyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIg
aW50cm9zcGVjdGlvblhNTFtdID0KIAogCiB0eXBlZGVmIGVudW0geworICAgIFBhZ2VDcmVhdGVk
U2lnbmFsLAogICAgIERvY3VtZW50TG9hZGVkU2lnbmFsLAogICAgIFVSSUNoYW5nZWRTaWduYWws
CiAgICAgRm9ybUNvbnRyb2xzQXNzb2NpYXRlZFNpZ25hbCwKQEAgLTEwMiw2ICsxMDYsMTIgQEAg
c3RydWN0IERlbGF5ZWRTaWduYWwgewogICAgIHsKICAgICB9CiAKKyAgICBEZWxheWVkU2lnbmFs
KERlbGF5ZWRTaWduYWxUeXBlIHR5cGUsIGd1aW50NjQgbikKKyAgICAgICAgOiB0eXBlKHR5cGUp
CisgICAgICAgICwgbihuKQorICAgIHsKKyAgICB9CisKICAgICBEZWxheWVkU2lnbmFsKERlbGF5
ZWRTaWduYWxUeXBlIHR5cGUsIGNvbnN0IGNoYXIqIHN0cikKICAgICAgICAgOiB0eXBlKHR5cGUp
CiAgICAgICAgICwgc3RyKHN0cikKQEAgLTEyNCw2ICsxMzQsNyBAQCBzdHJ1Y3QgRGVsYXllZFNp
Z25hbCB7CiAgICAgQ1N0cmluZyBzdHIzOwogICAgIGdib29sZWFuIGI7CiAgICAgZ2Jvb2xlYW4g
YjI7CisgICAgZ3VpbnQ2NCBuOwogfTsKIAogRGVxdWU8RGVsYXllZFNpZ25hbD4gZGVsYXllZFNp
Z25hbHNRdWV1ZTsKQEAgLTQwNSw4ICs0MTYsMjYgQEAgc3RhdGljIHZvaWQgd2lsbFN1Ym1pdEZv
cm1DYWxsYmFjayhXZWJLaXRXZWJQYWdlKiB3ZWJQYWdlLCBXZWJLaXRET01FbGVtZW50KiBmb3IK
ICAgICB9CiB9CiAKK3N0YXRpYyB2b2lkIGVtaXRQYWdlQ3JlYXRlZChHREJ1c0Nvbm5lY3Rpb24q
IGNvbm5lY3Rpb24sIGd1aW50NjQgcGFnZUlEKQoreworICAgIGJvb2wgb2sgPSBnX2RidXNfY29u
bmVjdGlvbl9lbWl0X3NpZ25hbCgKKyAgICAgICAgY29ubmVjdGlvbiwKKyAgICAgICAgbnVsbHB0
ciwKKyAgICAgICAgIi9vcmcvd2Via2l0L2d0ay9XZWJFeHRlbnNpb25UZXN0IiwKKyAgICAgICAg
Im9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLAorICAgICAgICAiUGFnZUNyZWF0ZWQi
LAorICAgICAgICBnX3ZhcmlhbnRfbmV3KCIodCkiLCBwYWdlSUQpLAorICAgICAgICBudWxscHRy
KTsKKyAgICBnX2Fzc2VydF90cnVlKG9rKTsKK30KKwogc3RhdGljIHZvaWQgcGFnZUNyZWF0ZWRD
YWxsYmFjayhXZWJLaXRXZWJFeHRlbnNpb24qIGV4dGVuc2lvbiwgV2ViS2l0V2ViUGFnZSogd2Vi
UGFnZSwgZ3BvaW50ZXIpCiB7CisgICAgaWYgKGF1dG8qIGRhdGEgPSBnX29iamVjdF9nZXRfZGF0
YShHX09CSkVDVChleHRlbnNpb24pLCAiZGJ1cy1jb25uZWN0aW9uIikpCisgICAgICAgIGVtaXRQ
YWdlQ3JlYXRlZChHX0RCVVNfQ09OTkVDVElPTihkYXRhKSwgd2Via2l0X3dlYl9wYWdlX2dldF9p
ZCh3ZWJQYWdlKSk7CisgICAgZWxzZQorICAgICAgICBkZWxheWVkU2lnbmFsc1F1ZXVlLmFwcGVu
ZChEZWxheWVkU2lnbmFsKFBhZ2VDcmVhdGVkU2lnbmFsLCB3ZWJraXRfd2ViX3BhZ2VfZ2V0X2lk
KHdlYlBhZ2UpKSk7CisKICAgICBnX3NpZ25hbF9jb25uZWN0KHdlYlBhZ2UsICJkb2N1bWVudC1s
b2FkZWQiLCBHX0NBTExCQUNLKGRvY3VtZW50TG9hZGVkQ2FsbGJhY2spLCBleHRlbnNpb24pOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2ViUGFnZSwgIm5vdGlmeTo6dXJpIiwgR19DQUxMQkFDSyh1
cmlDaGFuZ2VkQ2FsbGJhY2spLCBleHRlbnNpb24pOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Qod2Vi
UGFnZSwgInNlbmQtcmVxdWVzdCIsIEdfQ0FMTEJBQ0soc2VuZFJlcXVlc3RDYWxsYmFjayksIG51
bGxwdHIpOwpAQCAtNTIwLDEzICs1NDksMTcgQEAgc3RhdGljIGNvbnN0IEdEQnVzSW50ZXJmYWNl
VlRhYmxlIGludGVyZmFjZVZpcnR1YWxUYWJsZSA9IHsKICAgICBtZXRob2RDYWxsQ2FsbGJhY2ss
IDAsIDAsIHsgMCwgfQogfTsKIAotc3RhdGljIHZvaWQgYnVzQWNxdWlyZWRDYWxsYmFjayhHREJ1
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIGNvbnN0IGNoYXIqIG5hbWUsIGdwb2ludGVyIHVzZXJE
YXRhKQorc3RhdGljIHZvaWQgZGJ1c0Nvbm5lY3Rpb25DcmVhdGVkKEdPYmplY3QqLCBHQXN5bmNS
ZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpCiB7Ci0gICAgc3RhdGljIEdEQnVzTm9k
ZUluZm8qIGludHJvc3BlY3Rpb25EYXRhID0gMDsKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4g
ZXJyb3I7CisgICAgR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uID0gZ19kYnVzX2Nvbm5lY3Rp
b25fbmV3X2Zvcl9hZGRyZXNzX2ZpbmlzaChyZXN1bHQsICZlcnJvci5vdXRQdHIoKSk7CisgICAg
Z19hc3NlcnQoR19JU19EQlVTX0NPTk5FQ1RJT04oY29ubmVjdGlvbikpOworICAgIGdfYXNzZXJ0
X25vX2Vycm9yKGVycm9yLmdldCgpKTsKKworICAgIHN0YXRpYyBHREJ1c05vZGVJbmZvKiBpbnRy
b3NwZWN0aW9uRGF0YSA9IG51bGxwdHI7CiAgICAgaWYgKCFpbnRyb3NwZWN0aW9uRGF0YSkKLSAg
ICAgICAgaW50cm9zcGVjdGlvbkRhdGEgPSBnX2RidXNfbm9kZV9pbmZvX25ld19mb3JfeG1sKGlu
dHJvc3BlY3Rpb25YTUwsIDApOworICAgICAgICBpbnRyb3NwZWN0aW9uRGF0YSA9IGdfZGJ1c19u
b2RlX2luZm9fbmV3X2Zvcl94bWwoaW50cm9zcGVjdGlvblhNTCwgbnVsbHB0cik7CiAKLSAgICBH
VW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CiAgICAgdW5zaWduZWQgcmVnaXN0cmF0aW9uSUQg
PSBnX2RidXNfY29ubmVjdGlvbl9yZWdpc3Rlcl9vYmplY3QoCiAgICAgICAgIGNvbm5lY3Rpb24s
CiAgICAgICAgICIvb3JnL3dlYmtpdC9ndGsvV2ViRXh0ZW5zaW9uVGVzdCIsCkBAIC01MzYsMTIg
KzU2OSwxNSBAQCBzdGF0aWMgdm9pZCBidXNBY3F1aXJlZENhbGxiYWNrKEdEQnVzQ29ubmVjdGlv
biogY29ubmVjdGlvbiwgY29uc3QgY2hhciogbmFtZSwgZwogICAgICAgICBzdGF0aWNfY2FzdDxH
RGVzdHJveU5vdGlmeT4oZ19vYmplY3RfdW5yZWYpLAogICAgICAgICAmZXJyb3Iub3V0UHRyKCkp
OwogICAgIGlmICghcmVnaXN0cmF0aW9uSUQpCi0gICAgICAgIGdfd2FybmluZygiRmFpbGVkIHRv
IHJlZ2lzdGVyIG9iamVjdDogJXNcbiIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgZ19lcnJv
cigiRmFpbGVkIHRvIHJlZ2lzdGVyIG9iamVjdDogJXNcbiIsIGVycm9yLT5tZXNzYWdlKTsKIAot
ICAgIGdfb2JqZWN0X3NldF9kYXRhKEdfT0JKRUNUKHVzZXJEYXRhKSwgImRidXMtY29ubmVjdGlv
biIsIGNvbm5lY3Rpb24pOworICAgIGdfb2JqZWN0X3NldF9kYXRhX2Z1bGwoR19PQkpFQ1QodXNl
ckRhdGEpLCAiZGJ1cy1jb25uZWN0aW9uIiwgY29ubmVjdGlvbiwgZ19vYmplY3RfdW5yZWYpOwog
ICAgIHdoaWxlIChkZWxheWVkU2lnbmFsc1F1ZXVlLnNpemUoKSkgewogICAgICAgICBEZWxheWVk
U2lnbmFsIGRlbGF5ZWRTaWduYWwgPSBkZWxheWVkU2lnbmFsc1F1ZXVlLnRha2VGaXJzdCgpOwog
ICAgICAgICBzd2l0Y2ggKGRlbGF5ZWRTaWduYWwudHlwZSkgeworICAgICAgICBjYXNlIFBhZ2VD
cmVhdGVkU2lnbmFsOgorICAgICAgICAgICAgZW1pdFBhZ2VDcmVhdGVkKGNvbm5lY3Rpb24sIGRl
bGF5ZWRTaWduYWwubik7CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBEb2N1bWVu
dExvYWRlZFNpZ25hbDoKICAgICAgICAgICAgIGVtaXREb2N1bWVudExvYWRlZChjb25uZWN0aW9u
KTsKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNTg0LDE0ICs2MjAsMTIgQEAgZXh0ZXJuICJDIiB2
b2lkIHdlYmtpdF93ZWJfZXh0ZW5zaW9uX2luaXRpYWxpemVfd2l0aF91c2VyX2RhdGEoV2ViS2l0
V2ViRXh0ZW5zaW8KICAgICByZWdpc3RlckdSZXNvdXJjZSgpOwogCiAgICAgZ19hc3NlcnRfbm9u
bnVsbCh1c2VyRGF0YSk7Ci0gICAgZ19hc3NlcnRfdHJ1ZShnX3ZhcmlhbnRfaXNfb2ZfdHlwZSh1
c2VyRGF0YSwgR19WQVJJQU5UX1RZUEVfVUlOVDMyKSk7Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBi
dXNOYW1lKGdfc3RyZHVwX3ByaW50Zigib3JnLndlYmtpdC5ndGsuV2ViRXh0ZW5zaW9uVGVzdCV1
IiwgZ192YXJpYW50X2dldF91aW50MzIodXNlckRhdGEpKSk7Ci0gICAgZ19idXNfb3duX25hbWUo
Ci0gICAgICAgIEdfQlVTX1RZUEVfU0VTU0lPTiwKLSAgICAgICAgYnVzTmFtZS5nZXQoKSwKLSAg
ICAgICAgR19CVVNfTkFNRV9PV05FUl9GTEFHU19OT05FLAotICAgICAgICBidXNBY3F1aXJlZENh
bGxiYWNrLAotICAgICAgICAwLCAwLAotICAgICAgICBnX29iamVjdF9yZWYoZXh0ZW5zaW9uKSwK
LSAgICAgICAgc3RhdGljX2Nhc3Q8R0Rlc3Ryb3lOb3RpZnk+KGdfb2JqZWN0X3VucmVmKSk7Cisg
ICAgY29uc3QgY2hhciogZ3VpZDsKKyAgICBjb25zdCBjaGFyKiBhZGRyZXNzOworICAgIGdfdmFy
aWFudF9nZXQodXNlckRhdGEsICIoJnMmcykiLCAmZ3VpZCwgJmFkZHJlc3MpOworICAgIGdfYXNz
ZXJ0X25vbm51bGwoZ3VpZCk7CisgICAgZ19hc3NlcnRfbm9ubnVsbChhZGRyZXNzKTsKKworICAg
IGdfZGJ1c19jb25uZWN0aW9uX25ld19mb3JfYWRkcmVzcyhhZGRyZXNzLCBHX0RCVVNfQ09OTkVD
VElPTl9GTEFHU19BVVRIRU5USUNBVElPTl9DTElFTlQsIG51bGxwdHIsIG51bGxwdHIsCisgICAg
ICAgIGRidXNDb25uZWN0aW9uQ3JlYXRlZCwgZXh0ZW5zaW9uKTsKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0FjY2Vzc2liaWxpdHlUZXN0U2VydmVy
LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0FjY2Vzc2liaWxpdHlU
ZXN0U2VydmVyLmNwcAppbmRleCBmNmY3ODI5MGIyNi4uZjg1ZjdlNzQ4ZGUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL0FjY2Vzc2liaWxpdHlUZXN0U2Vy
dmVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0ay9BY2Nlc3Np
YmlsaXR5VGVzdFNlcnZlci5jcHAKQEAgLTc2LDE1ICs3NiwxNyBAQCBpbnQgbWFpbihpbnQgYXJn
YywgY2hhcioqIGFyZ3YpCiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih3aW5k
b3cpLCBHVEtfV0lER0VUKHdlYlZpZXcpKTsKICAgICBndGtfd2lkZ2V0X3Nob3dfYWxsKHdpbmRv
dyk7CiAKLSAgICBnX2J1c19vd25fbmFtZShHX0JVU19UWVBFX1NFU1NJT04sICJvcmcud2Via2l0
Lmd0ay5BY2Nlc3NpYmlsaXR5VGVzdCIsIEdfQlVTX05BTUVfT1dORVJfRkxBR1NfTk9ORSwKLSAg
ICAgICAgW10oR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBjb25zdCBjaGFyKiBuYW1lLCBn
cG9pbnRlciB1c2VyRGF0YSkgeworICAgIGdfZGJ1c19jb25uZWN0aW9uX25ld19mb3JfYWRkcmVz
cyhhcmd2WzFdLCBHX0RCVVNfQ09OTkVDVElPTl9GTEFHU19BVVRIRU5USUNBVElPTl9DTElFTlQs
IG51bGxwdHIsIG51bGxwdHIsCisgICAgICAgIFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqIHJl
c3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIEdEQnVzQ29ubmVjdGlvbiog
Y29ubmVjdGlvbiA9IGdfZGJ1c19jb25uZWN0aW9uX25ld19mb3JfYWRkcmVzc19maW5pc2gocmVz
dWx0LCBudWxscHRyKTsKKwogICAgICAgICAgICAgc3RhdGljIEdEQnVzTm9kZUluZm8gKmludHJv
c3BlY3Rpb25EYXRhID0gbnVsbHB0cjsKICAgICAgICAgICAgIGlmICghaW50cm9zcGVjdGlvbkRh
dGEpCiAgICAgICAgICAgICAgICAgaW50cm9zcGVjdGlvbkRhdGEgPSBnX2RidXNfbm9kZV9pbmZv
X25ld19mb3JfeG1sKGludHJvc3BlY3Rpb25YTUwsIG51bGxwdHIpOwogCiAgICAgICAgICAgICBn
X2RidXNfY29ubmVjdGlvbl9yZWdpc3Rlcl9vYmplY3QoY29ubmVjdGlvbiwgIi9vcmcvd2Via2l0
L2d0ay9BY2Nlc3NpYmlsaXR5VGVzdCIsIGludHJvc3BlY3Rpb25EYXRhLT5pbnRlcmZhY2VzWzBd
LAogICAgICAgICAgICAgICAgICZpbnRlcmZhY2VWaXJ0dWFsVGFibGUsIHVzZXJEYXRhLCBudWxs
cHRyLCBudWxscHRyKTsKLSAgICAgICAgfSwgbnVsbHB0ciwgbnVsbHB0ciwgd2ViVmlldywgbnVs
bHB0cik7CisgICAgICAgIH0sIHdlYlZpZXcpOwogCiAgICAgZ3RrX21haW4oKTsKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RXZWJLaXRBY2Nl
c3NpYmlsaXR5LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RX
ZWJLaXRBY2Nlc3NpYmlsaXR5LmNwcAppbmRleCBlMGUwMGE3MDE3YS4uOGNkYTA1MWY2MTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R3RrL1Rlc3RXZWJLaXRB
Y2Nlc3NpYmlsaXR5LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEd0
ay9UZXN0V2ViS2l0QWNjZXNzaWJpbGl0eS5jcHAKQEAgLTIwLDE1ICsyMCwxMiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogCiAjaW5jbHVkZSAiVGVzdE1haW4uaCIKLSNpbmNsdWRlICJXZWJLaXRU
ZXN0QnVzLmgiCiAKIC8vIFRoZSBsaWJhdHNwaSBoZWFkZXJzIGRvbid0IHVzZSBHX0JFR0lOX0RF
Q0xTCiBleHRlcm4gIkMiIHsKICNpbmNsdWRlIDxhdHNwaS9hdHNwaS5oPgogfQogCi1zdGF0aWMg
V2ViS2l0VGVzdEJ1cyogYnVzOwotCiBjbGFzcyBBY2Nlc3NpYmlsaXR5VGVzdCA6IHB1YmxpYyBU
ZXN0IHsKIHB1YmxpYzoKICAgICBNQUtFX0dMSUJfVEVTVF9GSVhUVVJFKEFjY2Vzc2liaWxpdHlU
ZXN0KTsKQEAgLTM2LDkgKzMzLDEwIEBAIHB1YmxpYzoKICAgICBBY2Nlc3NpYmlsaXR5VGVzdCgp
CiAgICAgewogICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IHRlc3RTZXJ2ZXJQYXRoKGdfYnVpbGRf
ZmlsZW5hbWUoV0VCS0lUX0VYRUNfUEFUSCwgIlRlc3RXZWJLaXRBUEkiLCAiV2ViS2l0Mkd0ayIs
ICJBY2Nlc3NpYmlsaXR5VGVzdFNlcnZlciIsIG51bGxwdHIpKTsKLSAgICAgICAgY2hhciogYXJn
c1syXTsKKyAgICAgICAgY2hhciogYXJnc1szXTsKICAgICAgICAgYXJnc1swXSA9IHRlc3RTZXJ2
ZXJQYXRoLmdldCgpOwotICAgICAgICBhcmdzWzFdID0gbnVsbHB0cjsKKyAgICAgICAgYXJnc1sx
XSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGdfZGJ1c19zZXJ2ZXJfZ2V0X2NsaWVudF9hZGRyZXNzKHNf
ZGJ1c1NlcnZlci5nZXQoKSkpOworICAgICAgICBhcmdzWzJdID0gbnVsbHB0cjsKIAogICAgICAg
ICBnX2Fzc2VydF90cnVlKGdfc3Bhd25fYXN5bmMobnVsbHB0ciwgYXJncywgbnVsbHB0ciwgR19T
UEFXTl9ERUZBVUxULCBudWxscHRyLCBudWxscHRyLCAmbV9jaGlsZFByb2Nlc3NJRCwgbnVsbHB0
cikpOwogICAgIH0KQEAgLTEyMyw3ICsxMjEsMjEgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBtX21haW5Mb29wID0gYWRvcHRHUmVmKGdfbWFpbl9sb29wX25ldyhu
dWxscHRyLCBGQUxTRSkpOwotICAgICAgICBtX3Byb3h5ID0gYWRvcHRHUmVmKGJ1cy0+Y3JlYXRl
UHJveHkoIm9yZy53ZWJraXQuZ3RrLkFjY2Vzc2liaWxpdHlUZXN0IiwgIi9vcmcvd2Via2l0L2d0
ay9BY2Nlc3NpYmlsaXR5VGVzdCIsICJvcmcud2Via2l0Lmd0ay5BY2Nlc3NpYmlsaXR5VGVzdCIs
IG1fbWFpbkxvb3AuZ2V0KCkpKTsKKworICAgICAgICBpZiAoc19kYnVzQ29ubmVjdGlvbnMuaXNF
bXB0eSgpKSB7CisgICAgICAgICAgICBnX2lkbGVfYWRkKFtdKGdwb2ludGVyIHVzZXJEYXRhKSAt
PiBnYm9vbGVhbiB7CisgICAgICAgICAgICAgICAgaWYgKHNfZGJ1c0Nvbm5lY3Rpb25zLmlzRW1w
dHkoKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisKKyAgICAgICAgICAgICAg
ICBnX21haW5fbG9vcF9xdWl0KHN0YXRpY19jYXN0PEdNYWluTG9vcCo+KHVzZXJEYXRhKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEZBTFNFOworICAgICAgICAgICAgfSwgbV9tYWluTG9vcC5n
ZXQoKSk7CisgICAgICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcC5nZXQoKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBtX3Byb3h5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9uZXdf
c3luYyhzX2RidXNDb25uZWN0aW9uc1swXS5nZXQoKSwgc3RhdGljX2Nhc3Q8R0RCdXNQcm94eUZs
YWdzPihHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9UX0xPQURfUFJPUEVSVElFUyB8IEdfREJVU19Q
Uk9YWV9GTEFHU19ET19OT1RfQ09OTkVDVF9TSUdOQUxTKSwKKyAgICAgICAgICAgIG51bGxwdHIs
IG51bGxwdHIsICIvb3JnL3dlYmtpdC9ndGsvQWNjZXNzaWJpbGl0eVRlc3QiLCAib3JnLndlYmtp
dC5ndGsuQWNjZXNzaWJpbGl0eVRlc3QiLCBudWxscHRyLCBudWxscHRyKSk7CisgICAgICAgIGdf
YXNzZXJ0X3RydWUoR19JU19EQlVTX1BST1hZKG1fcHJveHkuZ2V0KCkpKTsKICAgICB9CiAKICAg
ICBHUGlkIG1fY2hpbGRQcm9jZXNzSUQgeyAwIH07CkBAIC0yMTYsMTQgKzIyOCw5IEBAIHN0YXRp
YyB2b2lkIHRlc3RBdHNwaUJhc2ljSGllcmFyY2h5KEFjY2Vzc2liaWxpdHlUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQogCiB2b2lkIGJlZm9yZUFsbCgpCiB7Ci0gICAgYnVzID0gbmV3IFdlYktp
dFRlc3RCdXMoKTsKLSAgICBpZiAoIWJ1cy0+cnVuKCkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IEFjY2Vzc2liaWxpdHlUZXN0OjphZGQoIldlYktpdEFjY2Vzc2liaWxpdHkiLCAiYXRzcGktYmFz
aWMtaGllcmFyY2h5IiwgdGVzdEF0c3BpQmFzaWNIaWVyYXJjaHkpOwogfQogCiB2b2lkIGFmdGVy
QWxsKCkKIHsKLSAgICBkZWxldGUgYnVzOwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9nbGliL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL0NNYWtl
TGlzdHMudHh0CmluZGV4IGI2ZWQzNzA5ZDU4Li40ZWI0YmZlNTQwMiAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9nbGliL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9DTWFrZUxpc3RzLnR4dApAQCAtMSw2ICsxLDUgQEAKIHNldChXZWJLaXRHTGli
QVBJVGVzdHNfU09VUkNFUwogICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL2dsaWIvV2Vi
S2l0R0xpYi9Mb2FkVHJhY2tpbmdUZXN0LmNwcAotICAgICR7VE9PTFNfRElSfS9UZXN0V2ViS2l0
QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0QnVzLmNwcAogICAgICR7VE9PTFNfRElSfS9U
ZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0U2VydmVyLmNwcAogICAgICR7
VE9PTFNfRElSfS9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5jcHAKICAg
ICAke1RPT0xTX0RJUn0vVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3Qu
Y3BwCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0
TWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5j
cHAKaW5kZXggYTE1NWE1MTAwYTYuLmZhNWJlMTYyNzJkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVzdE1haW4uY3BwCkBAIC0yNiw3ICsyNiw5IEBACiAj
aW5jbHVkZSA8Z3RrL2d0ay5oPgogI2VuZGlmCiAKLXVpbnQzMl90IFRlc3Q6OnNfd2ViRXh0ZW5z
aW9uSUQgPSAwOworR1JlZlB0cjxHREJ1c1NlcnZlcj4gVGVzdDo6c19kYnVzU2VydmVyOworVmVj
dG9yPEdSZWZQdHI8R0RCdXNDb25uZWN0aW9uPj4gVGVzdDo6c19kYnVzQ29ubmVjdGlvbnM7CitI
YXNoTWFwPHVpbnQ2NF90LCBHREJ1c0Nvbm5lY3Rpb24qPiBUZXN0OjpzX2RidXNDb25uZWN0aW9u
UGFnZU1hcDsKIAogdm9pZCBiZWZvcmVBbGwoKTsKIHZvaWQgYWZ0ZXJBbGwoKTsKQEAgLTY0LDYg
KzY2LDU0IEBAIHN0YXRpYyB2b2lkIHJlbW92ZU5vbkVtcHR5RGlyZWN0b3J5KGNvbnN0IGNoYXIq
IGRpcmVjdG9yeVBhdGgpCiAgICAgZ19ybWRpcihkaXJlY3RvcnlQYXRoKTsKIH0KIAorc3RhdGlj
IHZvaWQgZGJ1c0Nvbm5lY3Rpb25DbG9zZWQoR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9uKQor
eworICAgIGF1dG8gaXQgPSBUZXN0OjpzX2RidXNDb25uZWN0aW9ucy5maW5kKGNvbm5lY3Rpb24p
OworICAgIGdfYXNzZXJ0KGl0ICE9IG5vdEZvdW5kKTsKKworICAgIGZvciAoYXV0byBpdCA6IFRl
c3Q6OnNfZGJ1c0Nvbm5lY3Rpb25QYWdlTWFwKSB7CisgICAgICAgIGlmIChpdC52YWx1ZSA9PSBj
b25uZWN0aW9uKQorICAgICAgICAgICAgaXQudmFsdWUgPSBudWxscHRyOworICAgIH0KKyAgICBU
ZXN0OjpzX2RidXNDb25uZWN0aW9ucy5yZW1vdmUoaXQpOworfQorCitzdGF0aWMgZ2Jvb2xlYW4g
ZGJ1c1NlcnZlckNvbm5lY3Rpb24oR0RCdXNTZXJ2ZXIqIHNlcnZlciwgR0RCdXNDb25uZWN0aW9u
KiBjb25uZWN0aW9uKQoreworICAgIGdfc2lnbmFsX2Nvbm5lY3QoY29ubmVjdGlvbiwgImNsb3Nl
ZCIsIEdfQ0FMTEJBQ0soZGJ1c0Nvbm5lY3Rpb25DbG9zZWQpLCBudWxscHRyKTsKKyAgICBnX2Fz
c2VydCghVGVzdDo6c19kYnVzQ29ubmVjdGlvbnMuY29udGFpbnMoY29ubmVjdGlvbikpOworICAg
IFRlc3Q6OnNfZGJ1c0Nvbm5lY3Rpb25zLmFwcGVuZChjb25uZWN0aW9uKTsKKworICAgIGdfZGJ1
c19jb25uZWN0aW9uX3NpZ25hbF9zdWJzY3JpYmUoY29ubmVjdGlvbiwgbnVsbHB0ciwgIm9yZy53
ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCAiUGFnZUNyZWF0ZWQiLCAiL29yZy93ZWJraXQv
Z3RrL1dlYkV4dGVuc2lvblRlc3QiLAorICAgICAgICBudWxscHRyLCBHX0RCVVNfU0lHTkFMX0ZM
QUdTX05PTkUsIFtdKEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiwgY29uc3QgY2hhciosIGNv
bnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgY29uc3QgY2hhciosIEdWYXJpYW50KiBwYXJhbWV0ZXJz
LCBncG9pbnRlcikgeworICAgICAgICAgICAgZ3VpbnQ2NCBwYWdlSUQ7CisgICAgICAgICAgICBn
X3ZhcmlhbnRfZ2V0KHBhcmFtZXRlcnMsICIodCkiLCAmcGFnZUlEKTsKKyAgICAgICAgICAgIGdf
YXNzZXJ0KFRlc3Q6OnNfZGJ1c0Nvbm5lY3Rpb25zLmNvbnRhaW5zKGNvbm5lY3Rpb24pKTsKKyAg
ICAgICAgICAgIFRlc3Q6OnNfZGJ1c0Nvbm5lY3Rpb25QYWdlTWFwLnNldChwYWdlSUQsIGNvbm5l
Y3Rpb24pOworICAgICAgICB9LCBudWxscHRyLCBudWxscHRyKTsKKworICAgIHJldHVybiBUUlVF
OworfQorCitzdGF0aWMgdm9pZCBzdGFydERCdXNTZXJ2ZXIoKQoreworICAgIEdVbmlxdWVPdXRQ
dHI8R0Vycm9yPiBlcnJvcjsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFkZHJlc3MoZ19zdHJkdXBf
cHJpbnRmKCJ1bml4OnRtcGRpcj0lcyIsIHRlc3REYXRhRGlyZWN0b3J5LmdldCgpKSk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBndWlkKGdfZGJ1c19nZW5lcmF0ZV9ndWlkKCkpOworICAgIFRlc3Q6
OnNfZGJ1c1NlcnZlciA9IGFkb3B0R1JlZihnX2RidXNfc2VydmVyX25ld19zeW5jKGFkZHJlc3Mu
Z2V0KCksIEdfREJVU19TRVJWRVJfRkxBR1NfTk9ORSwgZ3VpZC5nZXQoKSwgbnVsbHB0ciwgbnVs
bHB0ciwgJmVycm9yLm91dFB0cigpKSk7CisgICAgaWYgKCFUZXN0OjpzX2RidXNTZXJ2ZXIpCisg
ICAgICAgIGdfZXJyb3IoIkZhaWxlZCB0byBzdGFydCBEQnVzIHNlcnZlcjogJXMiLCBlcnJvci0+
bWVzc2FnZSk7CisKKyAgICBnX3NpZ25hbF9jb25uZWN0KFRlc3Q6OnNfZGJ1c1NlcnZlci5nZXQo
KSwgIm5ldy1jb25uZWN0aW9uIiwgR19DQUxMQkFDSyhkYnVzU2VydmVyQ29ubmVjdGlvbiksIG51
bGxwdHIpOworICAgIGdfZGJ1c19zZXJ2ZXJfc3RhcnQoVGVzdDo6c19kYnVzU2VydmVyLmdldCgp
KTsKK30KKworc3RhdGljIHZvaWQgc3RvcERCdXNTZXJ2ZXIoKQoreworICAgIGdfZGJ1c19zZXJ2
ZXJfc3RvcChUZXN0OjpzX2RidXNTZXJ2ZXIuZ2V0KCkpOworICAgIFRlc3Q6OnNfZGJ1c1NlcnZl
ciA9IG51bGxwdHI7Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKIHsKICAg
ICBnX3Vuc2V0ZW52KCJEQlVTX1NFU1NJT05fQlVTX0FERFJFU1MiKTsKQEAgLTgyLDExICsxMzIs
MTMgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQogICAgIGdfdGVzdF9idWdfYmFz
ZSgiaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvIik7CiAKICAgICByZWdpc3RlckdSZXNvdXJjZSgp
OworICAgIHN0YXJ0REJ1c1NlcnZlcigpOwogCiAgICAgYmVmb3JlQWxsKCk7CiAgICAgaW50IHJl
dHVyblZhbHVlID0gZ190ZXN0X3J1bigpOwogICAgIGFmdGVyQWxsKCk7CiAKKyAgICBzdG9wREJ1
c1NlcnZlcigpOwogICAgIHJlbW92ZU5vbkVtcHR5RGlyZWN0b3J5KHRlc3REYXRhRGlyZWN0b3J5
LmdldCgpKTsKIAogICAgIHJldHVybiByZXR1cm5WYWx1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1Rlc3RNYWluLmggYi9Ub29scy9UZXN0V2ViS2l0
QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFpbi5oCmluZGV4IDA3ODZhYTEwZGY3Li41OTJhMGMy
NDc2NiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvVGVz
dE1haW4uaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9UZXN0TWFp
bi5oCkBAIC0yMSw3ICsyMSw5IEBACiAKICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGds
aWItb2JqZWN0Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aFNldC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KQEAgLTE1MCw3ICsxNTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGluaXRpYWxpemVXZWJFeHRlbnNpb25zKCkKICAgICB7CiAgICAgICAgIHdlYmtpdF93ZWJf
Y29udGV4dF9zZXRfd2ViX2V4dGVuc2lvbnNfZGlyZWN0b3J5KG1fd2ViQ29udGV4dC5nZXQoKSwg
V0VCS0lUX1RFU1RfV0VCX0VYVEVOU0lPTlNfRElSKTsKLSAgICAgICAgd2Via2l0X3dlYl9jb250
ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlvbl91c2VyX2RhdGEobV93ZWJDb250
ZXh0LmdldCgpLCBnX3ZhcmlhbnRfbmV3X3VpbnQzMigrK3Nfd2ViRXh0ZW5zaW9uSUQpKTsKKyAg
ICAgICAgd2Via2l0X3dlYl9jb250ZXh0X3NldF93ZWJfZXh0ZW5zaW9uc19pbml0aWFsaXphdGlv
bl91c2VyX2RhdGEobV93ZWJDb250ZXh0LmdldCgpLAorICAgICAgICAgICAgZ192YXJpYW50X25l
dygiKHNzKSIsIGdfZGJ1c19zZXJ2ZXJfZ2V0X2d1aWQoc19kYnVzU2VydmVyLmdldCgpKSwgZ19k
YnVzX3NlcnZlcl9nZXRfY2xpZW50X2FkZHJlc3Moc19kYnVzU2VydmVyLmdldCgpKSkpOwogICAg
IH0KIAogI2lmIFBMQVRGT1JNKFdQRSkKQEAgLTI3Miw1ICsyNzUsNyBAQCBwdWJsaWM6CiAKICAg
ICBIYXNoU2V0PEdPYmplY3QqPiBtX3dhdGNoZWRPYmplY3RzOwogICAgIEdSZWZQdHI8V2ViS2l0
V2ViQ29udGV4dD4gbV93ZWJDb250ZXh0OwotICAgIHN0YXRpYyB1aW50MzJfdCBzX3dlYkV4dGVu
c2lvbklEOworICAgIHN0YXRpYyBHUmVmUHRyPEdEQnVzU2VydmVyPiBzX2RidXNTZXJ2ZXI7Cisg
ICAgc3RhdGljIFZlY3RvcjxHUmVmUHRyPEdEQnVzQ29ubmVjdGlvbj4+IHNfZGJ1c0Nvbm5lY3Rp
b25zOworICAgIHN0YXRpYyBIYXNoTWFwPHVpbnQ2NF90LCBHREJ1c0Nvbm5lY3Rpb24qPiBzX2Ri
dXNDb25uZWN0aW9uUGFnZU1hcDsKIH07CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0QnVzLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
Z2xpYi9XZWJLaXRHTGliL1dlYktpdFRlc3RCdXMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiYTY0NzZjOGRhMS4uMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9nbGliL1dlYktpdEdMaWIvV2ViS2l0VGVzdEJ1cy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw4
MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgotICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0
aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJLaXRUZXN0QnVzLmgiCi0KLVdlYktpdFRlc3RCdXM6
OldlYktpdFRlc3RCdXMoKQotICAgIDogbV9idXMoYWRvcHRHUmVmKGdfdGVzdF9kYnVzX25ldyhH
X1RFU1RfREJVU19OT05FKSkpCi17Ci19Ci0KLVdlYktpdFRlc3RCdXM6On5XZWJLaXRUZXN0QnVz
KCkKLXsKLSAgICBnX3Rlc3RfZGJ1c19kb3duKG1fYnVzLmdldCgpKTsKLX0KLQotYm9vbCBXZWJL
aXRUZXN0QnVzOjpydW4oKQotewotICAgIENTdHJpbmcgZGlzcGxheSA9IGdfZ2V0ZW52KCJESVNQ
TEFZIik7Ci0gICAgQ1N0cmluZyBydW50aW1lRGlyID0gZ19nZXRlbnYoIlhER19SVU5USU1FX0RJ
UiIpOwotICAgIGdfdGVzdF9kYnVzX3VwKG1fYnVzLmdldCgpKTsKLSAgICBtX2FkZHJlc3MgPSBn
X3Rlc3RfZGJ1c19nZXRfYnVzX2FkZHJlc3MobV9idXMuZ2V0KCkpOwotICAgIGlmICghZGlzcGxh
eS5pc051bGwoKSkKLSAgICAgICAgZ19zZXRlbnYoIkRJU1BMQVkiLCBkaXNwbGF5LmRhdGEoKSwg
RkFMU0UpOwotICAgIGlmICghcnVudGltZURpci5pc051bGwoKSkKLSAgICAgICAgZ19zZXRlbnYo
IlhER19SVU5USU1FX0RJUiIsIHJ1bnRpbWVEaXIuZGF0YSgpLCBGQUxTRSk7Ci0gICAgcmV0dXJu
ICFtX2FkZHJlc3MuaXNOdWxsKCk7Ci19Ci0KLUdEQnVzQ29ubmVjdGlvbiogV2ViS2l0VGVzdEJ1
czo6Z2V0T3JDcmVhdGVDb25uZWN0aW9uKCkKLXsKLSAgICBpZiAobV9jb25uZWN0aW9uKQotICAg
ICAgICByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOwotCi0gICAgZ19hc3NlcnRfZmFsc2UobV9h
ZGRyZXNzLmlzTnVsbCgpKTsKLSAgICBtX2Nvbm5lY3Rpb24gPSBhZG9wdEdSZWYoZ19kYnVzX2Nv
bm5lY3Rpb25fbmV3X2Zvcl9hZGRyZXNzX3N5bmMobV9hZGRyZXNzLmRhdGEoKSwKLSAgICAgICAg
c3RhdGljX2Nhc3Q8R0RCdXNDb25uZWN0aW9uRmxhZ3M+KEdfREJVU19DT05ORUNUSU9OX0ZMQUdT
X0FVVEhFTlRJQ0FUSU9OX0NMSUVOVCB8IEdfREJVU19DT05ORUNUSU9OX0ZMQUdTX01FU1NBR0Vf
QlVTX0NPTk5FQ1RJT04pLAotICAgICAgICBudWxscHRyLCBudWxscHRyLCBudWxscHRyKSk7Ci0g
ICAgZ19hc3NlcnRfbm9ubnVsbChtX2Nvbm5lY3Rpb24uZ2V0KCkpOwotICAgIHJldHVybiBtX2Nv
bm5lY3Rpb24uZ2V0KCk7Ci19Ci0KLXN0YXRpYyB2b2lkIG9uTmFtZUFwcGVhcmVkKEdEQnVzQ29u
bmVjdGlvbiosIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKiwgZ3BvaW50ZXIgdXNlckRhdGEpCi17
Ci0gICAgZ19tYWluX2xvb3BfcXVpdChzdGF0aWNfY2FzdDxHTWFpbkxvb3AqPih1c2VyRGF0YSkp
OwotfQotCi1HREJ1c1Byb3h5KiBXZWJLaXRUZXN0QnVzOjpjcmVhdGVQcm94eShjb25zdCBjaGFy
KiBzZXJ2aWNlTmFtZSwgY29uc3QgY2hhciogb2JqZWN0UGF0aCwgY29uc3QgY2hhciogaW50ZXJm
YWNlTmFtZSwgR01haW5Mb29wKiBtYWluTG9vcCkKLXsKLSAgICB1bnNpZ25lZCB3YXRjaGVySUQg
PSBnX2J1c193YXRjaF9uYW1lX29uX2Nvbm5lY3Rpb24oZ2V0T3JDcmVhdGVDb25uZWN0aW9uKCks
IHNlcnZpY2VOYW1lLCBHX0JVU19OQU1FX1dBVENIRVJfRkxBR1NfTk9ORSwgb25OYW1lQXBwZWFy
ZWQsIG51bGxwdHIsIG1haW5Mb29wLCBudWxscHRyKTsKLSAgICBnX21haW5fbG9vcF9ydW4obWFp
bkxvb3ApOwotICAgIGdfYnVzX3Vud2F0Y2hfbmFtZSh3YXRjaGVySUQpOwotCi0gICAgR0RCdXNQ
cm94eSogcHJveHkgPSBnX2RidXNfcHJveHlfbmV3X3N5bmMoCi0gICAgICAgIGNvbm5lY3Rpb24o
KSwKLSAgICAgICAgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05PVF9BVVRPX1NUQVJULAotICAgICAg
ICBudWxscHRyLCAvLyBHREJ1c0ludGVyZmFjZUluZm8KLSAgICAgICAgc2VydmljZU5hbWUsCi0g
ICAgICAgIG9iamVjdFBhdGgsCi0gICAgICAgIGludGVyZmFjZU5hbWUsCi0gICAgICAgIG51bGxw
dHIsIC8vIEdDYW5jZWxsYWJsZQotICAgICAgICBudWxscHRyKTsKLSAgICBnX2Fzc2VydF9ub25u
dWxsKHByb3h5KTsKLSAgICByZXR1cm4gcHJveHk7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0QnVzLmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0QnVzLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IGNjNTlmYjk5MGYzLi4wMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9XZWJLaXRUZXN0QnVzLmgKKysrIC9kZXYvbnVsbApAQCAt
MSw0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIElnYWxpYSBTLkwuCi0gKgot
ICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAo
YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICogYnV0
IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg
b2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICog
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotICovCi0KLSNwcmFn
bWEgb25jZQotCi0jaW5jbHVkZSA8Z2lvL2dpby5oPgotI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0KLWNsYXNzIFdlYktpdFRlc3RC
dXMgewotcHVibGljOgotICAgIFdlYktpdFRlc3RCdXMoKTsKLSAgICB+V2ViS2l0VGVzdEJ1cygp
OwotCi0gICAgYm9vbCBydW4oKTsKLSAgICBHREJ1c1Byb3h5KiBjcmVhdGVQcm94eShjb25zdCBj
aGFyKiBzZXJ2aWNlTmFtZSwgY29uc3QgY2hhciogb2JqZWN0UGF0aCwgY29uc3QgY2hhciogaW50
ZXJmYWNlTmFtZSwgR01haW5Mb29wKik7Ci0gICAgR0RCdXNDb25uZWN0aW9uKiBjb25uZWN0aW9u
KCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9Ci0KLXByaXZhdGU6Ci0gICAg
R0RCdXNDb25uZWN0aW9uKiBnZXRPckNyZWF0ZUNvbm5lY3Rpb24oKTsKLQotICAgIEdSZWZQdHI8
R1Rlc3REQnVzPiBtX2J1czsKLSAgICBDU3RyaW5nIG1fYWRkcmVzczsKLSAgICBHUmVmUHRyPEdE
QnVzQ29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwotfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcCBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmNwcAppbmRleCBlZmQ5ZmJmNDU0NC4u
ZDUzNjU4ZDUzNjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRH
TGliL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0
R0xpYi9XZWJWaWV3VGVzdC5jcHAKQEAgLTQxLDYgKzQxLDcgQEAgV2ViVmlld1Rlc3Q6On5XZWJW
aWV3VGVzdCgpCiAgICAgICAgIHdlYmtpdF9qYXZhc2NyaXB0X3Jlc3VsdF91bnJlZihtX2phdmFz
Y3JpcHRSZXN1bHQpOwogICAgIGlmIChtX3N1cmZhY2UpCiAgICAgICAgIGNhaXJvX3N1cmZhY2Vf
ZGVzdHJveShtX3N1cmZhY2UpOworICAgIHNfZGJ1c0Nvbm5lY3Rpb25QYWdlTWFwLnJlbW92ZSh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQobV93ZWJWaWV3KSk7CiAgICAgZ19vYmplY3RfdW5y
ZWYobV93ZWJWaWV3KTsKICAgICBnX21haW5fbG9vcF91bnJlZihtX21haW5Mb29wKTsKIH0KQEAg
LTM5MywzICszOTQsMzQgQEAgYm9vbCBXZWJWaWV3VGVzdDo6cnVuV2ViUHJvY2Vzc1Rlc3QoY29u
c3QgY2hhciogc3VpdGVOYW1lLCBjb25zdCBjaGFyKiB0ZXN0TmFtZSwKICAgICB3YWl0VW50aWxM
b2FkRmluaXNoZWQoKTsKICAgICByZXR1cm4gamF2YXNjcmlwdFJlc3VsdFRvQm9vbGVhbihqYXZh
c2NyaXB0UmVzdWx0KTsKIH0KKworR1JlZlB0cjxHREJ1c1Byb3h5PiBXZWJWaWV3VGVzdDo6ZXh0
ZW5zaW9uUHJveHkoKQoreworICAgIEdEQnVzQ29ubmVjdGlvbiogY29ubmVjdGlvbiA9IG51bGxw
dHI7CisKKyAgICAvLyBJZiBub3RoaW5nIGhhcyBiZWVuIGxvYWRlZCB5ZXQsIGxvYWQgYWJvdXQ6
YmxhbmsgdG8gZm9yY2UgdGhlIHdlYiBwcm9jZXNzIHRvIGJlIHNwYXduZWQuCisgICAgaWYgKCF3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3VyaShtX3dlYlZpZXcpKSB7CisgICAgICAgIGxvYWRVUkkoImFi
b3V0OmJsYW5rIik7CisgICAgICAgIHdhaXRVbnRpbExvYWRGaW5pc2hlZCgpOworCisgICAgICAg
IGNvbm5lY3Rpb24gPSBzX2RidXNDb25uZWN0aW9uUGFnZU1hcC5nZXQod2Via2l0X3dlYl92aWV3
X2dldF9wYWdlX2lkKG1fd2ViVmlldykpOworICAgICAgICBpZiAoIWNvbm5lY3Rpb24pIHsKKyAg
ICAgICAgICAgIC8vIFdhaXQgZm9yIHBhZ2UgY3JlYXRlZCBzaWduYWwuCisgICAgICAgICAgICBn
X2lkbGVfYWRkKFtdKGdwb2ludGVyIHVzZXJEYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgICAg
ICAgICAgYXV0byogdGVzdCA9IHN0YXRpY19jYXN0PFdlYlZpZXdUZXN0Kj4odXNlckRhdGEpOwor
ICAgICAgICAgICAgICAgIGlmICghc19kYnVzQ29ubmVjdGlvblBhZ2VNYXAuZ2V0KHdlYmtpdF93
ZWJfdmlld19nZXRfcGFnZV9pZCh0ZXN0LT5tX3dlYlZpZXcpKSkKKyAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIFRSVUU7CisKKyAgICAgICAgICAgICAgICB0ZXN0LT5xdWl0TWFpbkxvb3AoKTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gRkFMU0U7CisgICAgICAgICAgICB9LCB0aGlzKTsKKyAg
ICAgICAgICAgIGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKKyAgICAgICAgICAgIC8vIEZJ
WE1FOiB3ZSBjYW4gY2FjaGUgdGhpcyBvbmNlIHdlIGNhbiBtb25pdG9yIHRoZSBwYWdlIGlkIG9u
IHRoZSB3ZWIgdmlldy4KKyAgICAgICAgICAgIGNvbm5lY3Rpb24gPSBzX2RidXNDb25uZWN0aW9u
UGFnZU1hcC5nZXQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKG1fd2ViVmlldykpOworICAg
ICAgICB9CisgICAgfSBlbHNlCisgICAgICAgIGNvbm5lY3Rpb24gPSBzX2RidXNDb25uZWN0aW9u
UGFnZU1hcC5nZXQod2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKG1fd2ViVmlldykpOworCisg
ICAgcmV0dXJuIGFkb3B0R1JlZihnX2RidXNfcHJveHlfbmV3X3N5bmMoY29ubmVjdGlvbiwgc3Rh
dGljX2Nhc3Q8R0RCdXNQcm94eUZsYWdzPihHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9UX0xPQURf
UFJPUEVSVElFUyB8IEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfQ09OTkVDVF9TSUdOQUxTKSwK
KyAgICAgICAgbnVsbHB0ciwgbnVsbHB0ciwgIi9vcmcvd2Via2l0L2d0ay9XZWJFeHRlbnNpb25U
ZXN0IiwgIm9yZy53ZWJraXQuZ3RrLldlYkV4dGVuc2lvblRlc3QiLCBudWxscHRyLCBudWxscHRy
KSk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2dsaWIvV2ViS2l0R0xpYi9X
ZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmll
d1Rlc3QuaAppbmRleCAzZDRkNTExYmM4Ny4uMzk0YWYzYmY5YjAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvZ2xpYi9XZWJLaXRHTGliL1dlYlZpZXdUZXN0LmgKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9nbGliL1dlYktpdEdMaWIvV2ViVmlld1Rlc3QuaApAQCAtOTYsNiArOTYs
OCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgZ2Jvb2xlYW4gd2ViUHJvY2Vzc1Rlcm1pbmF0ZWQo
V2ViS2l0V2ViVmlldyosIFdlYktpdFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbiwgV2ViVmll
d1Rlc3QqKTsKIAorICAgIEdSZWZQdHI8R0RCdXNQcm94eT4gZXh0ZW5zaW9uUHJveHkoKTsKKwog
ICAgIEdSZWZQdHI8V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyPiBtX3VzZXJDb250ZW50TWFuYWdl
cjsKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXcgeyBudWxscHRyIH07CiAgICAgR01haW5M
b29wKiBtX21haW5Mb29wOwo=
</data>
<flag name="review"
          id="394077"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>