<?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>106449</bug_id>
          
          <creation_ts>2013-01-09 06:14:54 -0800</creation_ts>
          <short_desc>[chromium] move resource load callback dumping to TestRunner library</short_desc>
          <delta_ts>2013-01-09 13:45:46 -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>91308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to>jochen</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>803283</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2013-01-09 06:14:54 -0800</bug_when>
    <thetext>[chromium] move resource load callback dumping to TestRunner library</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803284</commentid>
    <comment_count>1</comment_count>
      <attachid>181910</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-09 06:15:50 -0800</bug_when>
    <thetext>Created attachment 181910
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803286</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-09 06:20:02 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803599</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-09 12:31:20 -0800</bug_when>
    <thetext>These patches look very nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803644</commentid>
    <comment_count>4</comment_count>
      <attachid>181973</attachid>
    <who name="">jochen</who>
    <bug_when>2013-01-09 13:25:50 -0800</bug_when>
    <thetext>Created attachment 181973
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803657</commentid>
    <comment_count>5</comment_count>
      <attachid>181973</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-09 13:45:43 -0800</bug_when>
    <thetext>Comment on attachment 181973
Patch for landing

Clearing flags on attachment: 181973

Committed r139234: &lt;http://trac.webkit.org/changeset/139234&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>803658</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-09 13:45:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181910</attachid>
            <date>2013-01-09 06:15:50 -0800</date>
            <delta_ts>2013-01-09 13:25:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-106449-20130109151253.patch</filename>
            <type>text/plain</type>
            <size>38283</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MTY4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzg1YTRmOGExNDhkYjljYWI3MjMyOWI5ZTUxM2JkMWRh
Y2Q2NzQ4ZS4uMzRhZjk5NWZjNmZhNDQ1YzQzMjc0NGNjZjhhODg2MzRkOTEwZTFlZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDEzLTAxLTA5ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSByZXNvdXJjZSBsb2FkIGNhbGxiYWNrIGR1bXBpbmcg
dG8gVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDY0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcik6CisgICAgICAgIChEUlRU
ZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJU
VGVzdFJ1bm5lci5oOgorICAgICAgICAoRFJUVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmg6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdERlbGVnYXRl
OjptYWtlVVJMRXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViVGVzdFByb3h5QmFzZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHk6OmFzc2lnbklkZW50aWZpZXJUb1JlcXVlc3QpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5Ojp3aWxsUmVxdWVzdFJlc291cmNlKToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdl
YlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAg
KFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkRmluaXNoUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkRmFpbFJlc291cmNlTG9hZCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2Vi
VGVzdFJ1bm5lci5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKToKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3Bv
bnNlTUlNRVR5cGVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5u
ZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6cmVz
ZXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291
cmNlTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpz
aG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5u
ZXI6OlRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5l
cjo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpU
ZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OlRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
Lmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6cmVzZXQpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjphc3NpZ25JZGVudGlm
aWVyVG9SZXF1ZXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6
OndpbGxSZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFBy
b3h5QmFzZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eUJhc2U6OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6ZGlkRmFpbFJlc291cmNlTG9hZCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAo
V2ViVmlld0hvc3Q6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJWaWV3SG9zdDo6bWFr
ZVVSTEVycm9yRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViVmlld0hvc3Q6OnJlc2V0KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAo
V2ViVmlld0hvc3QpOgorCiAyMDEzLTAxLTA4ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbihyMTM4NjgxKTogQWRkIEhBVkUoQUND
RVNTSUJJTElUWSkgZ3VhcmQgdG8gYXRrIGZpbGVzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCmluZGV4IGFlNDAyMWNhMzFjOTgyZDZmNDJlYjky
MTY2ZDM5NGY1N2ZkOWViM2EuLjZjNmZmNzZiZDA0NTg1MzdiYjA1Y2M5MTlkOGYxNTljY2NlZmEx
MzYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
Y3BwCkBAIC0xMTksOSArMTE5LDYgQEAgRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcihUZXN0
U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIs
ICZEUlRUZXN0UnVubmVyOjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOwogICAgIGJpbmRNZXRo
b2QoImR1bXBCYWNrRm9yd2FyZExpc3QiLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcEJhY2tGb3J3YXJk
TGlzdCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayIsICZE
UlRUZXN0UnVubmVyOjpkdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKTsKLSAgICBiaW5kTWV0
aG9kKCJkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBSZXNv
dXJjZUxvYWRDYWxsYmFja3MpOwotICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZVJlcXVlc3RD
YWxsYmFja3MiLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyk7
Ci0gICAgYmluZE1ldGhvZCgiZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMiLCAmRFJUVGVz
dFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOwogICAgIGJpbmRNZXRob2Qo
ImR1bXBTZWxlY3Rpb25SZWN0IiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBTZWxlY3Rpb25SZWN0KTsK
ICAgICBiaW5kTWV0aG9kKCJkdW1wU3RhdHVzQ2FsbGJhY2tzIiwgJkRSVFRlc3RSdW5uZXI6OmR1
bXBXaW5kb3dTdGF0dXNDaGFuZ2VzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUGVybWlzc2lvbkNs
aWVudENhbGxiYWNrcyIsICZEUlRUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENhbGxi
YWNrcyk7CkBAIC0yNTMsMjQgKzI1MCw2IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFByb2dy
ZXNzRmluaXNoZWRDYWxsYmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpCiAgICAg
cmVzdWx0LT5zZXROdWxsKCk7CiB9CiAKLXZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNl
TG9hZENhbGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQp
Ci17Ci0gICAgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKLSAgICByZXN1bHQt
PnNldE51bGwoKTsKLX0KLQotdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0
Q2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsK
LSAgICBtX2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MgPSB0cnVlOwotICAgIHJlc3VsdC0+
c2V0TnVsbCgpOwotfQotCi12b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlc3BvbnNl
TUlNRVR5cGVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsK
LSAgICBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzID0gdHJ1ZTsKLSAgICByZXN1bHQt
PnNldE51bGwoKTsKLX0KLQogdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hh
bmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAg
bV9kdW1wV2luZG93U3RhdHVzQ2hhbmdlcyA9IHRydWU7CkBAIC00NzUsOSArNDU0LDYgQEAgdm9p
ZCBEUlRUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0KCkt
PnNldERldmljZVNjYWxlRmFjdG9yKDEpOwogICAgIG1fZHVtcENyZWF0ZVZpZXcgPSBmYWxzZTsK
ICAgICBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSBmYWxzZTsKLSAgICBtX2R1bXBS
ZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKLSAgICBtX2R1bXBSZXNvdXJjZVJlcXVlc3RD
YWxsYmFja3MgPSBmYWxzZTsKLSAgICBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzID0g
ZmFsc2U7CiAgICAgbV9kdW1wQmFja0ZvcndhcmRMaXN0ID0gZmFsc2U7CiAgICAgbV9kdW1wV2lu
ZG93U3RhdHVzQ2hhbmdlcyA9IGZhbHNlOwogICAgIG1fZHVtcFNlbGVjdGlvblJlY3QgPSBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5u
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuaAppbmRl
eCA0ODMwZDU1ODdkN2FkNGU4MmVmZmQ4YjNjOWM0MzRhYzQwNmNiZDQxLi5iOTA4Y2ZiZDg3N2E1
ZDQ2N2VlNDA1Mzc0ZGI0M2VlMTA2ZjhkN2U2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCkBAIC04NCwyMSArODQsNiBAQCBwdWJsaWM6CiAgICAg
Ly8gcmVwcmVzZW50YXRpb24gb2YgdGhlIGJhY2svZm9yd2FyZCBsaXN0LiBJdCBpZ25vcmVzIGFs
bCBhcmd1bWVudHMuCiAgICAgdm9pZCBkdW1wQmFja0ZvcndhcmRMaXN0KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZs
YWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBkdW1wIGEgZGVzY3JpcHRpdmUKLSAgICAv
LyBsaW5lIGZvciBlYWNoIHJlc291cmNlIGxvYWQgY2FsbGJhY2suIEl0IHRha2VzIG5vIGFyZ3Vt
ZW50cywgYW5kIGlnbm9yZXMKLSAgICAvLyBhbnkgdGhhdCBtYXkgYmUgcHJlc2VudC4KLSAgICB2
b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3Bw
VmFyaWFudCopOyAgICAKLQotICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0
ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YKLSAgICAvLyBkZXNjcmlwdGl2
ZSB0ZXh0IGZvciBlYWNoIGVsZW1lbnQgdGhhdCByZXF1ZXN0ZWQgYSByZXNvdXJjZS4gSXQgdGFr
ZXMgbm8KLSAgICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVz
ZW50LgotICAgIHZvaWQgZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KLSAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBm
bGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCB0aGUgTUlNRSB0eXBlCi0gICAg
Ly8gZm9yIGVhY2ggcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkLiBJdCB0YWtlcyBubyBhcmd1bWVu
dHMsIGFuZCBpZ25vcmVzIGFueQotICAgIC8vIHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9p
ZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7Ci0KICAgICAvLyBUaGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVs
bHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCBhbGwgY2FsbHMKICAgICAvLyB0byB3aW5kb3cuc3Rh
dHVzKCkuCiAgICAgLy8gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcyBhbnkgdGhh
dCBtYXkgYmUgcHJlc2VudC4KQEAgLTI0OSwxMSArMjM0LDYgQEAgcHVibGljOgogCiAgICAgYm9v
bCBzaG91bGREdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKCkgeyByZXR1cm4gbV9kdW1wUHJv
Z3Jlc3NGaW5pc2hlZENhbGxiYWNrOyB9CiAgICAgdm9pZCBzZXRTaG91bGREdW1wUHJvZ3Jlc3NG
aW5pc2hlZENhbGxiYWNrKGJvb2wgdmFsdWUpIHsgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxi
YWNrID0gdmFsdWU7IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
KSB7cmV0dXJuIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsgfQotICAgIHZvaWQgc2V0U2hv
dWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyhib29sIHZhbHVlKSB7IG1fZHVtcFJlc291
cmNlUmVxdWVzdENhbGxiYWNrcyA9IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3Vy
Y2VSZXF1ZXN0Q2FsbGJhY2tzKCkgeyByZXR1cm4gbV9kdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzOyB9Ci0gICAgdm9pZCBzZXRTaG91bGREdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhi
b29sIHZhbHVlKSB7IG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMgPSB2YWx1ZTsgfQot
ICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSB7cmV0dXJuIG1f
ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXM7IH0KICAgICBib29sIHNob3VsZER1bXBTdGF0
dXNDYWxsYmFja3MoKSB7IHJldHVybiBtX2R1bXBXaW5kb3dTdGF0dXNDaGFuZ2VzOyB9CiAgICAg
Ym9vbCBzaG91bGREdW1wU2VsZWN0aW9uUmVjdCgpIHsgcmV0dXJuIG1fZHVtcFNlbGVjdGlvblJl
Y3Q7IH0KICAgICBib29sIHNob3VsZER1bXBCYWNrRm9yd2FyZExpc3QoKSB7IHJldHVybiBtX2R1
bXBCYWNrRm9yd2FyZExpc3Q7IH0KQEAgLTM1NywxOCArMzM3LDYgQEAgcHJpdmF0ZToKICAgICAv
LyBmaW5pc2hlZCBjYWxsYmFjay4KICAgICBib29sIG1fZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjazsKIAotICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgb3V0cHV0IGEgZGVz
Y3JpcHRpdmUgbGluZSBmb3IgZWFjaCByZXNvdXJjZQotICAgIC8vIGxvYWQgY2FsbGJhY2suCi0g
ICAgYm9vbCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3M7Ci0KLSAgICAvLyBJZiB0cnVlLCB0
aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGRlc2NyaXB0aXZlIGxpbmUgZm9yIGVhY2ggcmVz
b3VyY2UKLSAgICAvLyByZXF1ZXN0IGNhbGxiYWNrLgotICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VS
ZXF1ZXN0Q2FsbGJhY2tzOwotCi0gICAgLy8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBv
dXRwdXQgdGhlIE1JTUUgdHlwZSBmb3IgZWFjaCByZXNvdXJjZSB0aGF0IAotICAgIC8vIHdhcyBs
b2FkZWQuCi0gICAgYm9vbCBtX2R1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzOwotCiAgICAg
Ly8gSWYgdHJ1ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBwcm9kdWNlIGEgZHVtcCBvZiB0aGUgYmFj
ayBmb3J3YXJkIGxpc3QgYXMKICAgICAvLyB3ZWxsLgogICAgIGJvb2wgbV9kdW1wQmFja0Zvcndh
cmRMaXN0OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9wdWJsaWMvV2ViVGVzdERlbGVnYXRlLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaAppbmRleCAzMDg2Nzc2NDhj
NDY0YWQyYWMzOWQ5YWQwMTIwZjExZGY3NDI1N2M4Li5iMmE5M2JhOWVlODZlNjU3ODJhZTI5MTUw
ZjlmNGRhZTVlMjE2N2U0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaApAQCAt
MzQsMTEgKzM0LDEzIEBACiAjaW5jbHVkZSAiUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYlN0
cmluZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJVUkwuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViVmVjdG9yLmgiCisjaW5jbHVkZSA8
c3RyaW5nPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLXN0cnVjdCBXZWJDb250ZXh0TWVudURhdGE7
CiBjbGFzcyBXZWJHYW1lcGFkczsKIGNsYXNzIFdlYkludGVudFJlcXVlc3Q7CitzdHJ1Y3QgV2Vi
Q29udGV4dE1lbnVEYXRhOworc3RydWN0IFdlYlVSTEVycm9yOwogfQogCiBuYW1lc3BhY2UgV2Vi
VGVzdFJ1bm5lciB7CkBAIC03NCw2ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlQcmVmZXJlbmNlcygpIHsgfTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3VycmVudFdlYklu
dGVudFJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0JikgeyB9OwogICAgIHZp
cnR1YWwgV2ViS2l0OjpXZWJJbnRlbnRSZXF1ZXN0KiBjdXJyZW50V2ViSW50ZW50UmVxdWVzdCgp
IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG1ha2VVUkxFcnJvckRlc2Ny
aXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSB7IHJldHVybiBzdGQ6OnN0cmluZygp
OyB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCmluZGV4IGVkZmNkYjJjYTQ2
YWUwMTY1MjJhM2U2ZDg0ZmQzZGE1NTg0Y2JjZWMuLjhhZmQyNjUzZDhiYTg4ZmRmY2E1NTdjN2Zh
ODlhMGMyYjBkYjEwMzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0zOCw5ICsz
OCwxMiBAQAogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTmF2aWdhdGlvblBv
bGljeS5oIgogI2luY2x1ZGUgIldlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVGV4dEFmZmluaXR5
LmgiCiAjaW5jbHVkZSAiV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJUZXh0RGlyZWN0aW9uLmgi
CisjaW5jbHVkZSA8bWFwPgorI2luY2x1ZGUgPHN0cmluZz4KIAogbmFtZXNwYWNlIFdlYktpdCB7
CiBjbGFzcyBXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0OworY2xhc3MgV2ViQ2FjaGVkVVJMUmVxdWVz
dDsKIGNsYXNzIFdlYkRyYWdEYXRhOwogY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJJbWFnZTsK
QEAgLTUyLDYgKzU1LDggQEAgY2xhc3MgV2ViU2VjdXJpdHlPcmlnaW47CiBjbGFzcyBXZWJTZXJp
YWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CitjbGFz
cyBXZWJVUkxSZXF1ZXN0OworY2xhc3MgV2ViVVJMUmVzcG9uc2U7CiBzdHJ1Y3QgV2ViUG9pbnQ7
CiBzdHJ1Y3QgV2ViU2l6ZTsKIHN0cnVjdCBXZWJVUkxFcnJvcjsKQEAgLTY4LDYgKzczLDggQEAg
cHVibGljOgogICAgIHZvaWQgc2V0SW50ZXJmYWNlcyhXZWJUZXN0SW50ZXJmYWNlcyopOwogICAg
IHZvaWQgc2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKik7CiAKKyAgICB2b2lkIHJlc2V0KCk7
CisKICAgICB2b2lkIHNldFBhaW50UmVjdChjb25zdCBXZWJLaXQ6OldlYlJlY3QmKTsKICAgICBX
ZWJLaXQ6OldlYlJlY3QgcGFpbnRSZWN0KCkgY29uc3Q7CiAKQEAgLTExMiwxMiArMTE5LDE5IEBA
IHByb3RlY3RlZDoKICAgICB2b2lkIGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoV2ViS2l0OjpX
ZWJGcmFtZSopOwogICAgIHZvaWQgZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2ViRnJh
bWUqLCBjb25zdCBXZWJLaXQ6OldlYlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgV2ViS2l0OjpXZWJV
UkwmIGluc2VjdXJlVVJMKTsKICAgICB2b2lkIGRpZERldGVjdFhTUyhXZWJLaXQ6OldlYkZyYW1l
KiwgY29uc3QgV2ViS2l0OjpXZWJVUkwmIGluc2VjdXJlVVJMLCBib29sIGRpZEJsb2NrRW50aXJl
UGFnZSk7CisgICAgdm9pZCBhc3NpZ25JZGVudGlmaWVyVG9SZXF1ZXN0KFdlYktpdDo6V2ViRnJh
bWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmKTsK
KyAgICB2b2lkIHdpbGxSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdl
YktpdDo6V2ViQ2FjaGVkVVJMUmVxdWVzdCYpOworICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFdl
YktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJLaXQ6OldlYlVSTFJlcXVl
c3QmLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKTsKKyAg
ICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OldlYkZyYW1lKiwgdW5zaWduZWQgaWRl
bnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXNwb25zZSYpOworICAgIHZvaWQgZGlkRmlu
aXNoUmVzb3VyY2VMb2FkKFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyKTsK
KyAgICB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVk
IGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKTsKIAogcHJpdmF0ZToKICAg
ICBXZWJUZXN0SW50ZXJmYWNlcyogbV90ZXN0SW50ZXJmYWNlczsKICAgICBXZWJUZXN0RGVsZWdh
dGUqIG1fZGVsZWdhdGU7CiAKICAgICBXZWJLaXQ6OldlYlJlY3QgbV9wYWludFJlY3Q7CisgICAg
c3RkOjptYXA8dW5zaWduZWQsIHN0ZDo6c3RyaW5nPiBtX3Jlc291cmNlSWRlbnRpZmllck1hcDsK
IH07CiAKIC8vIFVzZSB0aGlzIHRlbXBsYXRlIHRvIGluamVjdCBtZXRob2RzIGludG8geW91ciBX
ZWJWaWV3Q2xpZW50L1dlYkZyYW1lQ2xpZW50CkBAIC0zMjAsNiArMzM0LDM2IEBAIHB1YmxpYzoK
ICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkRGV0ZWN0WFNTKGZyYW1lLCBpbnNlY3VyZVVS
TCwgZGlkQmxvY2tFbnRpcmVQYWdlKTsKICAgICAgICAgQmFzZTo6ZGlkRGV0ZWN0WFNTKGZyYW1l
LCBpbnNlY3VyZVVSTCwgZGlkQmxvY2tFbnRpcmVQYWdlKTsKICAgICB9CisgICAgdmlydHVhbCB2
b2lkIGFzc2lnbklkZW50aWZpZXJUb1JlcXVlc3QoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIHVu
c2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkK
KyAgICB7CisgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmFzc2lnbklkZW50aWZpZXJUb1JlcXVl
c3QoZnJhbWUsIGlkZW50aWZpZXIsIHJlcXVlc3QpOworICAgICAgICBCYXNlOjphc3NpZ25JZGVu
dGlmaWVyVG9SZXF1ZXN0KGZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0KTsKKyAgICB9CisgICAg
dmlydHVhbCB2b2lkIHdpbGxSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUs
IGNvbnN0IFdlYktpdDo6V2ViQ2FjaGVkVVJMUmVxdWVzdCYgcmVxdWVzdCkKKyAgICB7CisgICAg
ICAgIFdlYlRlc3RQcm94eUJhc2U6OndpbGxSZXF1ZXN0UmVzb3VyY2UoZnJhbWUsIHJlcXVlc3Qp
OworICAgICAgICBCYXNlOjp3aWxsUmVxdWVzdFJlc291cmNlKGZyYW1lLCByZXF1ZXN0KTsKKyAg
ICB9CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJLaXQ6OldlYkZyYW1lKiBm
cmFtZSwgdW5zaWduZWQgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0
LCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQorICAgIHsK
KyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6d2lsbFNlbmRSZXF1ZXN0KGZyYW1lLCBpZGVudGlm
aWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAgICAgICAgQmFzZTo6d2lsbFNlbmRS
ZXF1ZXN0KGZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKKyAg
ICB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OldlYkZyYW1l
KiBmcmFtZSwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXNwb25z
ZSYgcmVzcG9uc2UpCisgICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRSZWNlaXZl
UmVzcG9uc2UoZnJhbWUsIGlkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICAgICAgQmFzZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKGZyYW1lLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgfQorICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSogZnJh
bWUsIHVuc2lnbmVkIGlkZW50aWZpZXIpCisgICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNl
OjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZnJhbWUsIGlkZW50aWZpZXIpOworICAgICAgICBCYXNl
OjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoZnJhbWUsIGlkZW50aWZpZXIpOworICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbFJlc291cmNlTG9hZChXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwg
dW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYgZXJyb3IpCisg
ICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGZyYW1l
LCBpZGVudGlmaWVyLCBlcnJvcik7CisgICAgICAgIEJhc2U6OmRpZEZhaWxSZXNvdXJjZUxvYWQo
ZnJhbWUsIGlkZW50aWZpZXIsIGVycm9yKTsKKyAgICB9CiB9OwogCiB9CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UnVu
bmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJUZXN0UnVubmVyLmgKaW5kZXggM2YxYjE2ZDkxZTc3M2JmN2QzYTIxNTY2MzE5MTA5MjVkNmRm
ODU5MS4uYjg3Yjg3ODM1Y2U3OTFhMTA5OWI4ZTFmNGM3NDhiMTQ0Mjg5NjgwNSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3RSdW5uZXIuaApAQCAtNTYsNiArNTYsOSBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHNob3VsZER1bXBVc2VyR2VzdHVyZUluRnJhbWVMb2FkQ2FsbGJhY2tzKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgc3RvcFByb3Zpc2lvbmFsRnJh
bWVMb2FkcygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNr
cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBS
ZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIH07CiAK
IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggZDc2NjZjOWE5MmNlNzFhNzljOGQ2NjNmZDc4
YjY5NDJkNTRkY2ZlMy4uZWQxNWIxNWJhODcwNGMyNTU4NmJhNzJmM2Y5NzUwZmFkMWExMDgyZiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTE0Miw2ICsxNDIsOSBAQCBUZXN0UnVubmVyOjpU
ZXN0UnVubmVyKCkKICAgICBiaW5kTWV0aG9kKCJkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENh
bGxiYWNrcyIsICZUZXN0UnVubmVyOjpkdW1wVXNlckdlc3R1cmVJbkZyYW1lTG9hZENhbGxiYWNr
cyk7CiAgICAgYmluZE1ldGhvZCgic2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsICZUZXN0
UnVubmVyOjpzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzKTsKICAgICBiaW5kTWV0aG9kKCJk
dW1wVGl0bGVDaGFuZ2VzIiwgJlRlc3RSdW5uZXI6OmR1bXBUaXRsZUNoYW5nZXMpOworICAgIGJp
bmRNZXRob2QoImR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MiLCAmVGVzdFJ1bm5lcjo6ZHVtcFJl
c291cmNlTG9hZENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcFJlc291cmNlUmVxdWVz
dENhbGxiYWNrcyIsICZUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKTsK
KyAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyIsICZUZXN0UnVu
bmVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyk7CiAKICAgICAvLyBUaGUgZm9sbG93
aW5nIG1ldGhvZHMgaW50ZXJhY3Qgd2l0aCB0aGUgV2ViVGVzdFByb3h5LgogICAgIGJpbmRNZXRo
b2QoInNlbmRXZWJJbnRlbnRSZXNwb25zZSIsICZUZXN0UnVubmVyOjpzZW5kV2ViSW50ZW50UmVz
cG9uc2UpOwpAQCAtMjE2LDYgKzIxOSw5IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAg
IG1fZHVtcFVzZXJHZXN0dXJlSW5GcmFtZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKICAgICBtX3N0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMgPSBmYWxzZTsKICAgICBtX2R1bXBUaXRsZUNoYW5nZXMg
PSBmYWxzZTsKKyAgICBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBt
X2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MgPSBmYWxzZTsKKyAgICBtX2R1bXBSZXNvdXJj
ZVJlc3BvbnNlTUlNRVR5cGVzID0gZmFsc2U7CiAKICAgICBtX2dsb2JhbEZsYWcuc2V0KGZhbHNl
KTsKICAgICBtX3BsYXRmb3JtTmFtZS5zZXQoImNocm9taXVtIik7CkBAIC0yOTgsNiArMzA0LDE5
IEBAIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFRpdGxlQ2hhbmdlcygpIGNvbnN0CiAgICAg
cmV0dXJuIG1fZHVtcFRpdGxlQ2hhbmdlczsKIH0KIAorYm9vbCBUZXN0UnVubmVyOjpzaG91bGRE
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXN0SXNS
dW5uaW5nICYmIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrczsKK30KK2Jvb2wgVGVzdFJ1bm5l
cjo6c2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fdGVzdElzUnVubmluZyAmJiBtX2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3M7Cit9
Citib29sIFRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV90ZXN0SXNSdW5uaW5nICYmIG1fZHVtcFJlc291cmNlUmVz
cG9uc2VNSU1FVHlwZXM7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGFiS2V5Q3ljbGVzVGhy
b3VnaEVsZW1lbnRzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50
KiByZXN1bHQpCiB7CiAgICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1sw
XS5pc0Jvb2woKSkKQEAgLTEwNjMsNiArMTA4MiwyNCBAQCB2b2lkIFRlc3RSdW5uZXI6OmR1bXBU
aXRsZUNoYW5nZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQog
ICAgIHJlc3VsdC0+c2V0TnVsbCgpOwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJj
ZUxvYWRDYWxsYmFja3MoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0
KQoreworICAgIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9IHRydWU7CisgICAgcmVzdWx0
LT5zZXROdWxsKCk7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdENh
bGxiYWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7Cisg
ICAgbV9kdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzID0gdHJ1ZTsKKyAgICByZXN1bHQtPnNl
dE51bGwoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVU
eXBlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
bV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyA9IHRydWU7CisgICAgcmVzdWx0LT5zZXRO
dWxsKCk7Cit9CisKIHZvaWQgVGVzdFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoQ3BwVmFyaWFu
dCogcmVzdWx0KQogewogICAgIHJlc3VsdC0+c2V0KHN0YXRpY19jYXN0PGludD4oV2ViV29ya2Vy
SW5mbzo6ZGVkaWNhdGVkV29ya2VyQ291bnQoKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDU4
ZDA2YjkyNWQ1MjdmNmI5MGFhOGQwN2Q0MDkwZDkxYmIwMGQwNWQuLmI1ZmRkODcxNDk2N2NlNDMx
OTM5MWM4YTRhZTFjNTg0MzY5Zjk4YjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTc0LDYgKzc0
LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wVXNlckdlc3R1cmVJbkZy
YW1lTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9vbCBzdG9w
UHJvdmlzaW9uYWxGcmFtZUxvYWRzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZER1bXBUaXRsZUNoYW5nZXMoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIGNvbnN0IE9WRVJSSURFOworICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlN
RVR5cGVzKCkgY29uc3QgT1ZFUlJJREU7CiAKIHByb3RlY3RlZDoKICAgICAvLyBGSVhNRTogbWFr
ZSB0aGVzZSBwcml2YXRlIG9uY2UgdGhlIG1vdmUgZnJvbSBEUlRUZXN0UnVubmVyIHRvIFRlc3RS
dW5uZXIKQEAgLTIzMiw2ICsyMzUsMjEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgZHVtcFRpdGxl
Q2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICAvLyBU
aGlzIGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVt
cCBhIGRlc2NyaXB0aXZlCisgICAgLy8gbGluZSBmb3IgZWFjaCByZXNvdXJjZSBsb2FkIGNhbGxi
YWNrLiBJdCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzCisgICAgLy8gYW55IHRoYXQg
bWF5IGJlIHByZXNlbnQuCisgICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8vIFRoaXMgZnVuY3Rpb24g
c2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBwcmludCBhIGxpbmUgb2YK
KyAgICAvLyBkZXNjcmlwdGl2ZSB0ZXh0IGZvciBlYWNoIGVsZW1lbnQgdGhhdCByZXF1ZXN0ZWQg
YSByZXNvdXJjZS4gSXQgdGFrZXMgbm8KKyAgICAvLyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFu
eSB0aGF0IG1heSBiZSBwcmVzZW50LgorICAgIHZvaWQgZHVtcFJlc291cmNlUmVxdWVzdENhbGxi
YWNrcyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKKyAgICAvLyBUaGlz
IGZ1bmN0aW9uIHNldHMgYSBmbGFnIHRoYXQgdGVsbHMgdGhlIHRlc3Rfc2hlbGwgdG8gZHVtcCB0
aGUgTUlNRSB0eXBlCisgICAgLy8gZm9yIGVhY2ggcmVzb3VyY2UgdGhhdCB3YXMgbG9hZGVkLiBJ
dCB0YWtlcyBubyBhcmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueQorICAgIC8vIHRoYXQgbWF5IGJl
IHByZXNlbnQuCisgICAgdm9pZCBkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
ICAgICAvLyBNZXRob2RzIGludGVyYWN0aW5nIHdpdGggdGhlIFdlYlRlc3RQcm94eQogCkBAIC0z
MTMsNiArMzMxLDE4IEBAIHByaXZhdGU6CiAgICAgLy8gSWYgdHJ1ZSwgb3V0cHV0IGEgbWVzc2Fn
ZSB3aGVuIHRoZSBwYWdlIHRpdGxlIGlzIGNoYW5nZWQuCiAgICAgYm9vbCBtX2R1bXBUaXRsZUNo
YW5nZXM7CiAKKyAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGRl
c2NyaXB0aXZlIGxpbmUgZm9yIGVhY2ggcmVzb3VyY2UKKyAgICAvLyBsb2FkIGNhbGxiYWNrLgor
ICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzOworCisgICAgLy8gSWYgdHJ1ZSwg
dGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGZvciBlYWNoIHJl
c291cmNlCisgICAgLy8gcmVxdWVzdCBjYWxsYmFjay4KKyAgICBib29sIG1fZHVtcFJlc291cmNl
UmVxdWVzdENhbGxiYWNrczsKKworICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwg
b3V0cHV0IHRoZSBNSU1FIHR5cGUgZm9yIGVhY2ggcmVzb3VyY2UgdGhhdCAKKyAgICAvLyB3YXMg
bG9hZGVkLgorICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKKwogICAg
IC8vIFdBViBhdWRpbyBkYXRhIGlzIHN0b3JlZCBoZXJlLgogICAgIFdlYktpdDo6V2ViQXJyYXlC
dWZmZXJWaWV3IG1fYXVkaW9EYXRhOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAppbmRleCAx
M2NlOTY0YzRkNzliMTBkNGZkYTU3YTQ5ZTQ4YzJkNjIyMjM2NGQ3Li40ZmQ1YWQ5YjA2NGRiNzVm
ZGEzMzI5OTJkODI5MjVhNjA3NjNkZGRkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKQEAg
LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oIgog
I2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24uaCIKICNpbmNsdWRlICJXZWJB
Y2Nlc3NpYmlsaXR5T2JqZWN0LmgiCisjaW5jbHVkZSAiV2ViQ2FjaGVkVVJMUmVxdWVzdC5oIgog
I2luY2x1ZGUgIldlYkVsZW1lbnQuaCIKICNpbmNsdWRlICJXZWJFdmVudFNlbmRlci5oIgogI2lu
Y2x1ZGUgIldlYkZyYW1lLmgiCkBAIC00Nyw2ICs0OCw4IEBACiAjaW5jbHVkZSAiV2ViVGVzdFJ1
bm5lci5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJDU3Ry
aW5nLmgiCisjaW5jbHVkZSAicGxhdGZvcm0vV2ViVVJMUmVxdWVzdC5oIgorI2luY2x1ZGUgInBs
YXRmb3JtL1dlYlVSTFJlc3BvbnNlLmgiCiAjaW5jbHVkZSA8d3RmL1N0cmluZ0V4dHJhcy5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtMTQwLDYgKzE0Myw0MyBAQCB2b2lkIHByaW50
RnJhbWVVc2VyR2VzdHVyZVN0YXR1cyhXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlLCBXZWJGcmFt
ZSogZnJhbWUsIGNvbgogICAgIGRlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCJGcmFtZSB3
aXRoIHVzZXIgZ2VzdHVyZSBcIiIpICsgKGlzVXNlckdlc3R1cmUgPyAidHJ1ZSIgOiAiZmFsc2Ui
KSArICJcIiIgKyBtc2cpOwogfQogCisvLyBVc2VkIHRvIHdyaXRlIGEgcGxhdGZvcm0gbmV1dHJh
bCBmaWxlOi8vLyBVUkwgYnkgdGFraW5nIHRoZQorLy8gZmlsZW5hbWUgYW5kIGl0cyBkaXJlY3Rv
cnkuIChlLmcuLCBjb252ZXJ0cworLy8gImZpbGU6Ly8vdG1wL2Zvby9iYXIudHh0IiB0byBqdXN0
ICJiYXIudHh0IikuCitzdHJpbmcgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQoY29u
c3Qgc3RyaW5nJiB1cmwpCit7CisgICAgaWYgKHVybC5lbXB0eSgpIHx8IHN0cmluZzo6bnBvcyA9
PSB1cmwuZmluZCgiZmlsZTovLyIpKQorICAgICAgICByZXR1cm4gdXJsOworCisgICAgc2l6ZV90
IHBvcyA9IHVybC5yZmluZCgnLycpOworICAgIGlmIChwb3MgPT0gc3RyaW5nOjpucG9zIHx8ICFw
b3MpCisgICAgICAgIHJldHVybiAiRVJST1I6IiArIHVybDsKKyAgICBwb3MgPSB1cmwucmZpbmQo
Jy8nLCBwb3MgLSAxKTsKKyAgICBpZiAocG9zID09IHN0cmluZzo6bnBvcykKKyAgICAgICAgcmV0
dXJuICJFUlJPUjoiICsgdXJsOworCisgICAgcmV0dXJuIHVybC5zdWJzdHIocG9zICsgMSk7Cit9
CisKK3ZvaWQgcHJpbnRSZXNwb25zZURlc2NyaXB0aW9uKFdlYlRlc3REZWxlZ2F0ZSogZGVsZWdh
dGUsIGNvbnN0IFdlYlVSTFJlc3BvbnNlJiByZXNwb25zZSkKK3sKKyAgICBpZiAocmVzcG9uc2Uu
aXNOdWxsKCkpIHsKKyAgICAgICAgZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiKG51bGwpIik7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc3RyaW5nIHVybCA9IHJlc3BvbnNlLnVybCgpLnNw
ZWMoKTsKKyAgICBjaGFyIGRhdGFbMTAwXTsKKyAgICBzbnByaW50ZihkYXRhLCBzaXplb2YoZGF0
YSksICIlZCIsIHJlc3BvbnNlLiBodHRwU3RhdHVzQ29kZSgpKTsKKyAgICBkZWxlZ2F0ZS0+cHJp
bnRNZXNzYWdlKHN0cmluZygiPE5TVVJMUmVzcG9uc2UgIikgKyBkZXNjcmlwdGlvblN1aXRhYmxl
Rm9yVGVzdFJlc3VsdCh1cmwpICsgIiwgaHR0cCBzdGF0dXMgY29kZSAiICsgZGF0YSArICI+Iik7
Cit9CisKK3N0cmluZyBVUkxEZXNjcmlwdGlvbihjb25zdCBHVVJMJiB1cmwpCit7CisgICAgaWYg
KHVybC5TY2hlbWVJcygiZmlsZSIpKQorICAgICAgICByZXR1cm4gdXJsLkV4dHJhY3RGaWxlTmFt
ZSgpOworICAgIHJldHVybiB1cmwucG9zc2libHlfaW52YWxpZF9zcGVjKCk7Cit9CisKIH0KIAog
V2ViVGVzdFByb3h5QmFzZTo6V2ViVGVzdFByb3h5QmFzZSgpCkBAIC0xNjIsNiArMjAyLDEyIEBA
IHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6c2V0RGVsZWdhdGUoV2ViVGVzdERlbGVnYXRlKiBkZWxl
Z2F0ZSkKICAgICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CiB9CiAKK3ZvaWQgV2ViVGVzdFByb3h5
QmFzZTo6cmVzZXQoKQoreworICAgIG1fcGFpbnRSZWN0ID0gV2ViUmVjdCgpOworICAgIG1fcmVz
b3VyY2VJZGVudGlmaWVyTWFwLmNsZWFyKCk7Cit9CisKIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6
c2V0UGFpbnRSZWN0KGNvbnN0IFdlYlJlY3QmIHJlY3QpCiB7CiAgICAgbV9wYWludFJlY3QgPSBy
ZWN0OwpAQCAtNTkyLDQgKzYzOCwxMDIgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWREZXRl
Y3RYU1MoV2ViRnJhbWUqLCBjb25zdCBXZWJVUkwmLCBib29sKQogICAgICAgICBtX2RlbGVnYXRl
LT5wcmludE1lc3NhZ2UoImRpZERldGVjdFhTU1xuIik7CiB9CiAKK3ZvaWQgV2ViVGVzdFByb3h5
QmFzZTo6YXNzaWduSWRlbnRpZmllclRvUmVxdWVzdChXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50
aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkKK3sKKyAgICBpZiAo
bV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdEludGVyZmFjZXMtPnRlc3RS
dW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIEFT
U0VSVChtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpID09IG1fcmVzb3Vy
Y2VJZGVudGlmaWVyTWFwLmVuZCgpKTsKKyAgICAgICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXBb
aWRlbnRpZmllcl0gPSBkZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0LnVy
bCgpLnNwZWMoKSk7CisgICAgfQorfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6OndpbGxSZXF1
ZXN0UmVzb3VyY2UoV2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNhY2hlZFVSTFJl
cXVlc3QmIHJlcXVlc3QpCit7CisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIo
KSAmJiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZVJl
cXVlc3RDYWxsYmFja3MoKSkgeworICAgICAgICBwcmludEZyYW1lRGVzY3JpcHRpb24obV9kZWxl
Z2F0ZSwgZnJhbWUpOworICAgICAgICBXZWJFbGVtZW50IGVsZW1lbnQgPSByZXF1ZXN0LmluaXRp
YXRvckVsZW1lbnQoKTsKKyAgICAgICAgaWYgKCFlbGVtZW50LmlzTnVsbCgpKSB7CisgICAgICAg
ICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIiAtIGVsZW1lbnQgd2l0aCAiKTsKKyAgICAg
ICAgICAgIGlmIChlbGVtZW50Lmhhc0F0dHJpYnV0ZSgiaWQiKSkKKyAgICAgICAgICAgICAgICBt
X2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCJpZCAnIikgKyBlbGVtZW50LmdldEF0dHJp
YnV0ZSgiaWQiKS51dGY4KCkuZGF0YSgpICsgIiciKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIm5vIGlkIik7CisgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiIC0gIikg
KyByZXF1ZXN0LmluaXRpYXRvck5hbWUoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgbV9kZWxl
Z2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiIHJlcXVlc3RlZCAnIikgKyBVUkxEZXNjcmlwdGlv
bihyZXF1ZXN0LnVybFJlcXVlc3QoKS51cmwoKSkuY19zdHIoKSArICInXG4iKTsKKyAgICB9Cit9
CisKK3ZvaWQgV2ViVGVzdFByb3h5QmFzZTo6d2lsbFNlbmRSZXF1ZXN0KFdlYkZyYW1lKiwgdW5z
aWduZWQgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
ZWJLaXQ6OldlYlVSTFJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNlKQoreworICAgIC8vIE5lZWQg
dG8gdXNlIEdVUkwgZm9yIGhvc3QoKSBhbmQgU2NoZW1lSXMoKQorICAgIEdVUkwgdXJsID0gcmVx
dWVzdC51cmwoKTsKKyAgICBzdHJpbmcgcmVxdWVzdFVSTCA9IHVybC5wb3NzaWJseV9pbnZhbGlk
X3NwZWMoKTsKKworICAgIEdVUkwgbWFpbkRvY3VtZW50VVJMID0gcmVxdWVzdC5maXJzdFBhcnR5
Rm9yQ29va2llcygpOworCisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAm
JiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZUxvYWRD
YWxsYmFja3MoKSkgeworICAgICAgICBpZiAobV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZmluZChp
ZGVudGlmaWVyKSA9PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSkKKyAgICAgICAgICAg
IG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiPHVua25vd24+Iik7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtX3Jlc291cmNlSWRlbnRpZmllck1h
cFtpZGVudGlmaWVyXSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiIC0gd2ls
bFNlbmRSZXF1ZXN0IDxOU1VSTFJlcXVlc3QgVVJMICIpOworICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UoZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RSZXN1bHQocmVxdWVzdFVSTCku
Y19zdHIoKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiLCBtYWluIGRvY3Vt
ZW50IFVSTCAiKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKFVSTERlc2NyaXB0
aW9uKG1haW5Eb2N1bWVudFVSTCkuY19zdHIoKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50
TWVzc2FnZSgiLCBodHRwIG1ldGhvZCAiKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNz
YWdlKHJlcXVlc3QuaHR0cE1ldGhvZCgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBtX2RlbGVn
YXRlLT5wcmludE1lc3NhZ2UoIj4gcmVkaXJlY3RSZXNwb25zZSAiKTsKKyAgICAgICAgcHJpbnRS
ZXNwb25zZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIHJlZGlyZWN0UmVzcG9uc2UpOworICAgICAg
ICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIlxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRl
c3RQcm94eUJhc2U6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50
aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmIHJlc3BvbnNlKQoreworICAgIGlm
IChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVz
dFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAg
aWYgKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmZpbmQoaWRlbnRpZmllcikgPT0gbV9yZXNvdXJj
ZUlkZW50aWZpZXJNYXAuZW5kKCkpCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3Nh
Z2UoIjx1bmtub3duPiIpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UobV9yZXNvdXJjZUlkZW50aWZpZXJNYXBbaWRlbnRpZmllcl0pOworICAgICAg
ICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiKTsKKyAg
ICAgICAgcHJpbnRSZXNwb25zZURlc2NyaXB0aW9uKG1fZGVsZWdhdGUsIHJlc3BvbnNlKTsKKyAg
ICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJcbiIpOworICAgIH0KKyAgICBpZiAobV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5u
ZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSkgeworICAgICAgICBH
VVJMIHVybCA9IHJlc3BvbnNlLnVybCgpOworICAgICAgICBXZWJTdHJpbmcgbWltZVR5cGUgPSBy
ZXNwb25zZS5taW1lVHlwZSgpOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UodXJs
LkV4dHJhY3RGaWxlTmFtZSgpKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIg
aGFzIE1JTUUgdHlwZSAiKTsKKyAgICAgICAgLy8gU2ltdWxhdGUgTlNVUkxSZXNwb25zZSdzIG1h
cHBpbmcgb2YgZW1wdHkvdW5rbm93biBNSU1FIHR5cGVzIHRvIGFwcGxpY2F0aW9uL29jdGV0LXN0
cmVhbQorICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UobWltZVR5cGUuaXNFbXB0eSgp
ID8gImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbSIgOiBtaW1lVHlwZS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJcbiIpOworICAgIH0KK30KKwordm9p
ZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViRnJhbWUqLCB1bnNp
Z25lZCBpZGVudGlmaWVyKQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVy
KCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgaWYgKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmZp
bmQoaWRlbnRpZmllcikgPT0gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZW5kKCkpCisgICAgICAg
ICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIjx1bmtub3duPiIpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UobV9yZXNvdXJjZUlkZW50aWZp
ZXJNYXBbaWRlbnRpZmllcl0pOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIiAt
IGRpZEZpbmlzaExvYWRpbmdcbiIpOworICAgIH0KKyAgICBtX3Jlc291cmNlSWRlbnRpZmllck1h
cC5lcmFzZShpZGVudGlmaWVyKTsKK30KKwordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRGYWls
UmVzb3VyY2VMb2FkKFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0
OjpXZWJVUkxFcnJvciYgZXJyb3IpCit7CisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RS
dW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNv
dXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBpZiAobV9yZXNvdXJjZUlkZW50aWZpZXJN
YXAuZmluZChpZGVudGlmaWVyKSA9PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSkKKyAg
ICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiPHVua25vd24+Iik7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtX3Jlc291cmNlSWRl
bnRpZmllck1hcFtpZGVudGlmaWVyXSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2Fn
ZSgiIC0gZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6ICIpOworICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UobV9kZWxlZ2F0ZS0+bWFrZVVSTEVycm9yRGVzY3JpcHRpb24oZXJyb3IpKTsK
KyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJcbiIpOworICAgIH0KKyAgICBtX3Jl
c291cmNlSWRlbnRpZmllck1hcC5lcmFzZShpZGVudGlmaWVyKTsKK30KKwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDI0NTAwY2ZkNjNi
NzM3YzI5Zjk4OTVjNTA3NWEwZjdiMmU1NjU2MmQuLmRkMjczZjhkMWE2ZmQ3NmJkZDY4ODVkMzcx
ZGM5Yjk3OTRkYmRlMjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHAKQEAgLTEyNiwyNCArMTI2LDYgQEAgc3RhdGljIHN0cmluZyB1cmxTdWl0YWJs
ZUZvclRlc3RSZXN1bHQoY29uc3Qgc3RyaW5nJiB1cmwpCiAgICAgcmV0dXJuIGZpbGVuYW1lOwog
fQogCi0vLyBVc2VkIHRvIHdyaXRlIGEgcGxhdGZvcm0gbmV1dHJhbCBmaWxlOi8vLyBVUkwgYnkg
dGFraW5nIHRoZQotLy8gZmlsZW5hbWUgYW5kIGl0cyBkaXJlY3RvcnkuIChlLmcuLCBjb252ZXJ0
cwotLy8gImZpbGU6Ly8vdG1wL2Zvby9iYXIudHh0IiB0byBqdXN0ICJiYXIudHh0IikuCi1zdGF0
aWMgc3RyaW5nIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0IHN0cmluZyYg
dXJsKQotewotICAgIGlmICh1cmwuZW1wdHkoKSB8fCBzdHJpbmc6Om5wb3MgPT0gdXJsLmZpbmQo
ImZpbGU6Ly8iKSkKLSAgICAgICAgcmV0dXJuIHVybDsKLQotICAgIHNpemVfdCBwb3MgPSB1cmwu
cmZpbmQoJy8nKTsKLSAgICBpZiAocG9zID09IHN0cmluZzo6bnBvcyB8fCAhcG9zKQotICAgICAg
ICByZXR1cm4gIkVSUk9SOiIgKyB1cmw7Ci0gICAgcG9zID0gdXJsLnJmaW5kKCcvJywgcG9zIC0g
MSk7Ci0gICAgaWYgKHBvcyA9PSBzdHJpbmc6Om5wb3MpCi0gICAgICAgIHJldHVybiAiRVJST1I6
IiArIHVybDsKLQotICAgIHJldHVybiB1cmwuc3Vic3RyKHBvcyArIDEpOwotfQotCiAvLyBHZXQg
YSBkZWJ1Z2dpbmcgc3RyaW5nIGZyb20gYSBXZWJOYXZpZ2F0aW9uVHlwZS4KIHN0YXRpYyBjb25z
dCBjaGFyKiB3ZWJOYXZpZ2F0aW9uVHlwZVRvU3RyaW5nKFdlYk5hdmlnYXRpb25UeXBlIHR5cGUp
CiB7CkBAIC0xNzEsMTggKzE1Myw2IEBAIHN0YXRpYyBzdHJpbmcgVVJMRGVzY3JpcHRpb24oY29u
c3QgR1VSTCYgdXJsKQogICAgIHJldHVybiB1cmwucG9zc2libHlfaW52YWxpZF9zcGVjKCk7CiB9
CiAKLXN0YXRpYyB2b2lkIHByaW50UmVzcG9uc2VEZXNjcmlwdGlvbihjb25zdCBXZWJVUkxSZXNw
b25zZSYgcmVzcG9uc2UpCi17Ci0gICAgaWYgKHJlc3BvbnNlLmlzTnVsbCgpKSB7Ci0gICAgICAg
IGZwdXRzKCIobnVsbCkiLCBzdGRvdXQpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIHN0
cmluZyB1cmwgPSByZXNwb25zZS51cmwoKS5zcGVjKCk7Ci0gICAgcHJpbnRmKCI8TlNVUkxSZXNw
b25zZSAlcywgaHR0cCBzdGF0dXMgY29kZSAlZD4iLAotICAgICAgICAgICBkZXNjcmlwdGlvblN1
aXRhYmxlRm9yVGVzdFJlc3VsdCh1cmwpLmNfc3RyKCksCi0gICAgICAgICAgIHJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkpOwotfQotCiBzdGF0aWMgdm9pZCBwcmludE5vZGVEZXNjcmlwdGlvbihj
b25zdCBXZWJOb2RlJiBub2RlLCBpbnQgZXhjZXB0aW9uKQogewogICAgIGlmIChleGNlcHRpb24p
IHsKQEAgLTkxNiwxOSArODg2LDYgQEAgdm9pZCBXZWJWaWV3SG9zdDo6ZGlkTmF2aWdhdGVXaXRo
aW5QYWdlKFdlYkZyYW1lKiBmcmFtZSwgYm9vbCBpc05ld05hdmlnYXRpb24pCiAgICAgdXBkYXRl
Rm9yQ29tbWl0dGVkTG9hZChmcmFtZSwgaXNOZXdOYXZpZ2F0aW9uKTsKIH0KIAotdm9pZCBXZWJW
aWV3SG9zdDo6YXNzaWduSWRlbnRpZmllclRvUmVxdWVzdChXZWJGcmFtZSosIHVuc2lnbmVkIGlk
ZW50aWZpZXIsIGNvbnN0IFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCi17Ci0gICAgIGlmICghbV9z
aGVsbC0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKQotICAgICAgICByZXR1cm47
Ci0gICAgQVNTRVJUKCFtX3Jlc291cmNlSWRlbnRpZmllck1hcC5jb250YWlucyhpZGVudGlmaWVy
KSk7Ci0gICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuc2V0KGlkZW50aWZpZXIsIGRlc2NyaXB0
aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3QudXJsKCkuc3BlYygpKSk7Ci19Ci0KLXZv
aWQgV2ViVmlld0hvc3Q6OnJlbW92ZUlkZW50aWZpZXJGb3JSZXF1ZXN0KHVuc2lnbmVkIGlkZW50
aWZpZXIpCi17Ci0gICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAucmVtb3ZlKGlkZW50aWZpZXIp
OwotfQotCiBzdGF0aWMgdm9pZCBibG9ja1JlcXVlc3QoV2ViVVJMUmVxdWVzdCYgcmVxdWVzdCkK
IHsKICAgICByZXF1ZXN0LnNldFVSTChXZWJVUkwoKSk7CkBAIC05NDQsMjMgKzkwMSw2IEBAIHN0
YXRpYyBib29sIGhvc3RJc1VzZWRCeVNvbWVUZXN0c1RvR2VuZXJhdGVFcnJvcihjb25zdCBzdHJp
bmcmIGhvc3QpCiAgICAgcmV0dXJuIGhvc3QgPT0gIjI1NS4yNTUuMjU1LjI1NSI7CiB9CiAKLXZv
aWQgV2ViVmlld0hvc3Q6OndpbGxSZXF1ZXN0UmVzb3VyY2UoV2ViS2l0OjpXZWJGcmFtZSogZnJh
bWUsIGNvbnN0IFdlYktpdDo6V2ViQ2FjaGVkVVJMUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICBp
ZiAobV9zaGVsbC0+c2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpKSB7Ci0gICAg
ICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihmcmFtZSk7Ci0gICAgICAgIFdlYkVsZW1lbnQgZWxl
bWVudCA9IHJlcXVlc3QuaW5pdGlhdG9yRWxlbWVudCgpOwotICAgICAgICBpZiAoIWVsZW1lbnQu
aXNOdWxsKCkpIHsKLSAgICAgICAgICAgIHByaW50ZigiIC0gZWxlbWVudCB3aXRoICIpOwotICAg
ICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQXR0cmlidXRlKCJpZCIpKQotICAgICAgICAgICAgICAg
IHByaW50ZigiaWQgJyVzJyIsIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0ZjgoKS5kYXRh
KCkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHByaW50Zigibm8gaWQiKTsK
LSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwcmludGYoIiAtICVzIiwgcmVxdWVzdC5pbml0
aWF0b3JOYW1lKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIHByaW50ZigiIHJlcXVlc3RlZCAn
JXMnXG4iLCBVUkxEZXNjcmlwdGlvbihyZXF1ZXN0LnVybFJlcXVlc3QoKS51cmwoKSkuY19zdHIo
KSk7Ci0gICAgfQotfQotCiB2b2lkIFdlYlZpZXdIb3N0Ojp3aWxsU2VuZFJlcXVlc3QoV2ViRnJh
bWUqIGZyYW1lLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBXZWJVUkxSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICAvLyBOZWVkIHRv
IHVzZSBHVVJMIGZvciBob3N0KCkgYW5kIFNjaGVtZUlzKCkKQEAgLTk2OCwxNiArOTA4LDYgQEAg
dm9pZCBXZWJWaWV3SG9zdDo6d2lsbFNlbmRSZXF1ZXN0KFdlYkZyYW1lKiBmcmFtZSwgdW5zaWdu
ZWQgaWRlbnRpZmllciwgV2ViVVJMUmUKICAgICBzdHJpbmcgcmVxdWVzdFVSTCA9IHVybC5wb3Nz
aWJseV9pbnZhbGlkX3NwZWMoKTsKIAogICAgIEdVUkwgbWFpbkRvY3VtZW50VVJMID0gcmVxdWVz
dC5maXJzdFBhcnR5Rm9yQ29va2llcygpOwotICAgIGlmICh0ZXN0UnVubmVyKCktPnNob3VsZER1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewotICAgICAgICBwcmludFJlc291cmNlRGVzY3Jp
cHRpb24oaWRlbnRpZmllcik7Ci0gICAgICAgIHByaW50ZigiIC0gd2lsbFNlbmRSZXF1ZXN0IDxO
U1VSTFJlcXVlc3QgVVJMICVzLCBtYWluIGRvY3VtZW50IFVSTCAlcywiCi0gICAgICAgICAgICAg
ICAiIGh0dHAgbWV0aG9kICVzPiByZWRpcmVjdFJlc3BvbnNlICIsCi0gICAgICAgICAgICAgICBk
ZXNjcmlwdGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0VVJMKS5jX3N0cigpLAotICAg
ICAgICAgICAgICAgVVJMRGVzY3JpcHRpb24obWFpbkRvY3VtZW50VVJMKS5jX3N0cigpLAotICAg
ICAgICAgICAgICAgcmVxdWVzdC5odHRwTWV0aG9kKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAg
IHByaW50UmVzcG9uc2VEZXNjcmlwdGlvbihyZWRpcmVjdFJlc3BvbnNlKTsKLSAgICAgICAgZnB1
dHMoIlxuIiwgc3Rkb3V0KTsKLSAgICB9CiAKICAgICByZXF1ZXN0LnNldEV4dHJhRGF0YSh3ZWJr
aXRfc3VwcG9ydDo6Q3JlYXRlV2ViVVJMUmVxdWVzdEV4dHJhRGF0YShmcmFtZS0+ZG9jdW1lbnQo
KS5yZWZlcnJlclBvbGljeSgpKSk7CiAKQEAgLTEwMTEsNDQgKzk0MSw2IEBAIHZvaWQgV2ViVmll
d0hvc3Q6OndpbGxTZW5kUmVxdWVzdChXZWJGcmFtZSogZnJhbWUsIHVuc2lnbmVkIGlkZW50aWZp
ZXIsIFdlYlVSTFJlCiAgICAgcmVxdWVzdC5zZXRVUkwod2Via2l0X3N1cHBvcnQ6OlJld3JpdGVM
YXlvdXRUZXN0c1VSTChyZXF1ZXN0LnVybCgpLnNwZWMoKSkpOwogfQogCi12b2lkIFdlYlZpZXdI
b3N0OjpkaWRSZWNlaXZlUmVzcG9uc2UoV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBj
b25zdCBXZWJVUkxSZXNwb25zZSYgcmVzcG9uc2UpCi17Ci0gICAgaWYgKG1fc2hlbGwtPnNob3Vs
ZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewotICAgICAgICBwcmludFJlc291cmNlRGVz
Y3JpcHRpb24oaWRlbnRpZmllcik7Ci0gICAgICAgIGZwdXRzKCIgLSBkaWRSZWNlaXZlUmVzcG9u
c2UgIiwgc3Rkb3V0KTsKLSAgICAgICAgcHJpbnRSZXNwb25zZURlc2NyaXB0aW9uKHJlc3BvbnNl
KTsKLSAgICAgICAgZnB1dHMoIlxuIiwgc3Rkb3V0KTsKLSAgICB9Ci0gICAgaWYgKG1fc2hlbGwt
PnNob3VsZER1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKCkpIHsKLSAgICAgICAgR1VSTCB1
cmwgPSByZXNwb25zZS51cmwoKTsKLSAgICAgICAgV2ViU3RyaW5nIG1pbWVUeXBlID0gcmVzcG9u
c2UubWltZVR5cGUoKTsKLSAgICAgICAgcHJpbnRmKCIlcyBoYXMgTUlNRSB0eXBlICVzXG4iLAot
ICAgICAgICAgICAgdXJsLkV4dHJhY3RGaWxlTmFtZSgpLmNfc3RyKCksCi0gICAgICAgICAgICAv
LyBTaW11bGF0ZSBOU1VSTFJlc3BvbnNlJ3MgbWFwcGluZyBvZiBlbXB0eS91bmtub3duIE1JTUUg
dHlwZXMgdG8gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCi0gICAgICAgICAgICBtaW1lVHlwZS5p
c0VtcHR5KCkgPyAiYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIiA6IG1pbWVUeXBlLnV0ZjgoKS5k
YXRhKCkpOwotICAgIH0KLX0KLQotdm9pZCBXZWJWaWV3SG9zdDo6ZGlkRmluaXNoUmVzb3VyY2VM
b2FkKFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllcikKLXsKLSAgICBpZiAobV9zaGVsbC0+
c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7Ci0gICAgICAgIHByaW50UmVzb3Vy
Y2VEZXNjcmlwdGlvbihpZGVudGlmaWVyKTsKLSAgICAgICAgZnB1dHMoIiAtIGRpZEZpbmlzaExv
YWRpbmdcbiIsIHN0ZG91dCk7Ci0gICAgfQotICAgIHJlbW92ZUlkZW50aWZpZXJGb3JSZXF1ZXN0
KGlkZW50aWZpZXIpOwotfQotCi12b2lkIFdlYlZpZXdIb3N0OjpkaWRGYWlsUmVzb3VyY2VMb2Fk
KFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViVVJMRXJyb3ImIGVycm9y
KQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkp
IHsKLSAgICAgICAgcHJpbnRSZXNvdXJjZURlc2NyaXB0aW9uKGlkZW50aWZpZXIpOwotICAgICAg
ICBmcHV0cygiIC0gZGlkRmFpbExvYWRpbmdXaXRoRXJyb3I6ICIsIHN0ZG91dCk7Ci0gICAgICAg
IGZwdXRzKHdlYmtpdF9zdXBwb3J0OjpNYWtlVVJMRXJyb3JEZXNjcmlwdGlvbihlcnJvcikuY19z
dHIoKSwgc3Rkb3V0KTsKLSAgICAgICAgZnB1dHMoIlxuIiwgc3Rkb3V0KTsKLSAgICB9Ci0gICAg
cmVtb3ZlSWRlbnRpZmllckZvclJlcXVlc3QoaWRlbnRpZmllcik7Ci19Ci0KIHZvaWQgV2ViVmll
d0hvc3Q6Om9wZW5GaWxlU3lzdGVtKFdlYkZyYW1lKiBmcmFtZSwgV2ViRmlsZVN5c3RlbTo6VHlw
ZSB0eXBlLCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUsIFdlYkZpbGVTeXN0ZW1DYWxsYmFj
a3MqIGNhbGxiYWNrcykKIHsKICAgICB3ZWJraXRfc3VwcG9ydDo6T3BlbkZpbGVTeXN0ZW0oZnJh
bWUsIHR5cGUsIHNpemUsIGNyZWF0ZSwgY2FsbGJhY2tzKTsKQEAgLTExNjMsNiArMTA1NSwxMSBA
QCBXZWJJbnRlbnRSZXF1ZXN0KiBXZWJWaWV3SG9zdDo6Y3VycmVudFdlYkludGVudFJlcXVlc3Qo
KQogICAgIHJldHVybiAmbV9jdXJyZW50UmVxdWVzdDsKIH0KIAorc3RkOjpzdHJpbmcgV2ViVmll
d0hvc3Q6Om1ha2VVUkxFcnJvckRlc2NyaXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3Im
IGVycm9yKQoreworICAgIHJldHVybiB3ZWJraXRfc3VwcG9ydDo6TWFrZVVSTEVycm9yRGVzY3Jp
cHRpb24oZXJyb3IpOworfQorCiAvLyBQdWJsaWMgZnVuY3Rpb25zIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKIFdlYlZpZXdIb3N0
OjpXZWJWaWV3SG9zdChUZXN0U2hlbGwqIHNoZWxsKQpAQCAtMTI1Nyw3ICsxMTU0LDYgQEAgdm9p
ZCBXZWJWaWV3SG9zdDo6cmVzZXQoKQogICAgIG1fbmF2aWdhdGlvbkNvbnRyb2xsZXIgPSBhZG9w
dFB0cihuZXcgVGVzdE5hdmlnYXRpb25Db250cm9sbGVyKHRoaXMpKTsKIAogICAgIG1fcGVuZGlu
Z0V4dHJhRGF0YS5jbGVhcigpOwotICAgIG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmNsZWFyKCk7
CiAgICAgbV9jbGVhckhlYWRlcnMuY2xlYXIoKTsKICAgICBtX2VkaXRDb21tYW5kTmFtZS5jbGVh
cigpOwogICAgIG1fZWRpdENvbW1hbmRWYWx1ZS5jbGVhcigpOwpAQCAtMTI3NCw3ICsxMTcwLDcg
QEAgdm9pZCBXZWJWaWV3SG9zdDo6cmVzZXQoKQogICAgIG1fd2luZG93UmVjdCA9IFdlYlJlY3Qo
KTsKICAgICAvLyBtX3Byb3h5IGlzIG5vdCBzZXQgd2hlbiByZXNldCgpIGlzIGludm9rZWQgZnJv
bSB0aGUgY29uc3RydWN0b3IuCiAgICAgaWYgKG1fcHJveHkpCi0gICAgICAgIHByb3h5KCktPnNl
dFBhaW50UmVjdChXZWJSZWN0KCkpOworICAgICAgICBwcm94eSgpLT5yZXNldCgpOwogCiAgICAg
aWYgKG1fd2ViV2lkZ2V0KSB7CiAgICAgICAgIHdlYlZpZXcoKS0+bWFpbkZyYW1lKCktPnNldE5h
bWUoV2ViU3RyaW5nKCkpOwpAQCAtMTQ3NywxMiArMTM3Myw2IEBAIHZvaWQgV2ViVmlld0hvc3Q6
OnByaW50RnJhbWVEZXNjcmlwdGlvbihXZWJGcmFtZSogd2ViZnJhbWUpCiAgICAgcHJpbnRmKCJm
cmFtZSBcIiVzXCIiLCBuYW1lOC5jX3N0cigpKTsKIH0KIAotdm9pZCBXZWJWaWV3SG9zdDo6cHJp
bnRSZXNvdXJjZURlc2NyaXB0aW9uKHVuc2lnbmVkIGlkZW50aWZpZXIpCi17Ci0gICAgUmVzb3Vy
Y2VNYXA6Oml0ZXJhdG9yIGl0ID0gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZmluZChpZGVudGlm
aWVyKTsKLSAgICBwcmludGYoIiVzIiwgaXQgIT0gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZW5k
KCkgPyBpdC0+dmFsdWUuY19zdHIoKSA6ICI8dW5rbm93bj4iKTsKLX0KLQogdm9pZCBXZWJWaWV3
SG9zdDo6c2V0UGVuZGluZ0V4dHJhRGF0YShQYXNzT3duUHRyPFRlc3RTaGVsbEV4dHJhRGF0YT4g
ZXh0cmFEYXRhKQogewogICAgIG1fcGVuZGluZ0V4dHJhRGF0YSA9IGV4dHJhRGF0YTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IDQ2NWVmZWQxMDgy
MTQ5MGVhMmZkOWM5ZTU2NTY3ZWFhZWJiZDBlNjcuLmZjOGJiZjQzMDlhNWY4YTdiYjlkNGMxZDY1
N2Y1ZDY0NDMzYWE0ZDAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdl
YktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAg
dmlydHVhbCB2b2lkIGFwcGx5UHJlZmVyZW5jZXMoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3VycmVudFdlYkludGVudFJlcXVlc3QoY29uc3QgV2ViS2l0OjpXZWJJbnRlbnRSZXF1
ZXN0JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QqIGN1
cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBzdGQ6OnN0cmlu
ZyBtYWtlVVJMRXJyb3JEZXNjcmlwdGlvbihjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJikgT1ZF
UlJJREU7CiAKICAgICAvLyBOYXZpZ2F0aW9uSG9zdAogICAgIHZpcnR1YWwgYm9vbCBuYXZpZ2F0
ZShjb25zdCBUZXN0TmF2aWdhdGlvbkVudHJ5JiwgYm9vbCByZWxvYWQpOwpAQCAtMjU0LDEzICsy
NTUsNyBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQs
IHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgdm9pZCBkaWRGYWls
TG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkKFdlYktpdDo6V2ViRnJhbWUqKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkTmF2aWdhdGVXaXRoaW5QYWdlKFdlYktpdDo6V2ViRnJhbWUqLCBib29sIGlz
TmV3TmF2aWdhdGlvbik7Ci0gICAgdmlydHVhbCB2b2lkIGFzc2lnbklkZW50aWZpZXJUb1JlcXVl
c3QoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6
V2ViVVJMUmVxdWVzdCYpOwotICAgIHZpcnR1YWwgdm9pZCByZW1vdmVJZGVudGlmaWVyRm9yUmVx
dWVzdCh1bnNpZ25lZCBpZGVudGlmaWVyKTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlcXVlc3RS
ZXNvdXJjZShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJDYWNoZWRVUkxSZXF1
ZXN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJLaXQ6OldlYkZyYW1l
KiwgdW5zaWduZWQgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0JiwgY29uc3QgV2Vi
S2l0OjpXZWJVUkxSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9u
c2UoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6
V2ViVVJMUmVzcG9uc2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoUmVzb3VyY2VMb2Fk
KFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyKTsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlkRmFpbFJlc291cmNlTG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRp
ZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYpOwogICAgIHZpcnR1YWwgdm9pZCBvcGVu
RmlsZVN5c3RlbShXZWJLaXQ6OldlYkZyYW1lKiwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtOjpUeXBl
LCBsb25nIGxvbmcgc2l6ZSwgYm9vbCBjcmVhdGUsIFdlYktpdDo6V2ViRmlsZVN5c3RlbUNhbGxi
YWNrcyopOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVGaWxlU3lzdGVtKFdlYktpdDo6V2ViRnJh
bWUqLCBXZWJLaXQ6OldlYkZpbGVTeXN0ZW06OlR5cGUsIFdlYktpdDo6V2ViRmlsZVN5c3RlbUNh
bGxiYWNrcyopOwogICAgIHZpcnR1YWwgYm9vbCB3aWxsQ2hlY2tBbmREaXNwYXRjaE1lc3NhZ2VF
dmVudCgKQEAgLTM2MywxMSArMzU4LDYgQEAgcHJpdmF0ZToKIAogICAgIE93blB0cjxUZXN0U2hl
bGxFeHRyYURhdGE+IG1fcGVuZGluZ0V4dHJhRGF0YTsKIAotICAgIC8vIE1hcHMgcmVzb3VyY2Ug
aWRlbnRpZmllcnMgdG8gYSBkZXNjcmlwdGl2ZSBzdHJpbmcuCi0gICAgdHlwZWRlZiBIYXNoTWFw
PHVuc2lnbmVkLCBzdGQ6OnN0cmluZz4gUmVzb3VyY2VNYXA7Ci0gICAgUmVzb3VyY2VNYXAgbV9y
ZXNvdXJjZUlkZW50aWZpZXJNYXA7Ci0gICAgdm9pZCBwcmludFJlc291cmNlRGVzY3JpcHRpb24o
dW5zaWduZWQgaWRlbnRpZmllcik7Ci0KICAgICBXZWJLaXQ6OldlYkN1cnNvckluZm8gbV9jdXJy
ZW50Q3Vyc29yOwogCiAgICAgYm9vbCBtX2hhc1dpbmRvdzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>181973</attachid>
            <date>2013-01-09 13:25:50 -0800</date>
            <delta_ts>2013-01-09 13:45:43 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106449-20130109222253.patch</filename>
            <type>text/plain</type>
            <size>37865</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5MjMxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZjk4ODA3YTg2MTFiYmYzZmIzODkyYjQxNTE2OGFmZmU4
MTZjYzZmZC4uY2VkZWMwNzgzNTBmNThhZDZlMTA2MWJjMTRkZDFiODZiNTQ1ZTVjNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDEzLTAxLTA5ICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFtjaHJvbWl1bV0gbW92ZSByZXNvdXJjZSBsb2FkIGNhbGxiYWNrIGR1bXBpbmcg
dG8gVGVzdFJ1bm5lciBsaWJyYXJ5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDY0NDkKKworICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgor
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHA6Cisg
ICAgICAgIChEUlRUZXN0UnVubmVyOjpEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKERSVFRlc3RS
dW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0
UnVubmVyLmg6CisgICAgICAgIChEUlRUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUuaDoKKyAgICAg
ICAgKFdlYktpdCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0RGVsZWdhdGU6Om1h
a2VVUkxFcnJvckRlc2NyaXB0aW9uKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJUZXN0UHJveHlCYXNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RQcm94eTo6YXNzaWduSWRlbnRpZmllclRvUmVxdWVzdCk6CisgICAgICAgIChXZWJUZXN0UnVu
bmVyOjpXZWJUZXN0UHJveHk6OndpbGxSZXF1ZXN0UmVzb3VyY2UpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRGYWlsUmVzb3VyY2VMb2FkKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0
UnVubmVyLmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UnVubmVyOjpzaG91bGRE
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRl
c3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAo
V2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VN
SU1FVHlwZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnNob3Vs
ZER1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOgorICAgICAg
ICAoV2ViVGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpk
dW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RS
dW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MpOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoK
KyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpXZWJUZXN0UHJveHlCYXNlOjpyZXNldCk6CisgICAgICAgIChXZWJUZXN0UnVubmVyKToKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eUJhc2U6OmFzc2lnbklkZW50aWZpZXJU
b1JlcXVlc3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5QmFzZTo6d2ls
bFJlcXVlc3RSZXNvdXJjZSk6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHlC
YXNlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFBy
b3h5QmFzZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RQcm94eUJhc2U6OmRpZEZpbmlzaFJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJUZXN0
UnVubmVyOjpXZWJUZXN0UHJveHlCYXNlOjpkaWRGYWlsUmVzb3VyY2VMb2FkKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgIChXZWJW
aWV3SG9zdDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYlZpZXdIb3N0OjptYWtlVVJM
RXJyb3JEZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJWaWV3SG9zdDo6cmVzZXQpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJW
aWV3SG9zdCk6CisKIDIwMTMtMDEtMDkgIERhbiBDYXJuZXkgIDxkY2FybmV5QGdvb2dsZS5jb20+
CiAKICAgICAgICAgW2Nocm9taXVtXSBtb3ZlIGR1bXBjcmVhdGV2aWV3IG1ldGhvZHMgdG8gdGVz
dHJ1bm5lciBsaWJyYXJ5CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRl
c3RSdW5uZXIuY3BwCmluZGV4IDM4ODJhNWFkYzhlZDc5MWU2MDUzZjU1MmM2ZjhhMGIzYWZhMTE2
N2IuLjc5MDkxYmQ5ODcyMTdmYTcyYWQ5MzgzNDEyMWI2N2M2YWQ3ODQ1YTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCkBAIC0xMTksOSAr
MTE5LDYgQEAgRFJUVGVzdFJ1bm5lcjo6RFJUVGVzdFJ1bm5lcihUZXN0U2hlbGwqIHNoZWxsKQog
ICAgIGJpbmRNZXRob2QoImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIsICZEUlRUZXN0UnVubmVy
OjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOwogICAgIGJpbmRNZXRob2QoImR1bXBCYWNrRm9y
d2FyZExpc3QiLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcEJhY2tGb3J3YXJkTGlzdCk7CiAgICAgYmlu
ZE1ldGhvZCgiZHVtcFByb2dyZXNzRmluaXNoZWRDYWxsYmFjayIsICZEUlRUZXN0UnVubmVyOjpk
dW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrKTsKLSAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3Vy
Y2VMb2FkQ2FsbGJhY2tzIiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MpOwotICAgIGJpbmRNZXRob2QoImR1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MiLCAmRFJU
VGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyk7Ci0gICAgYmluZE1ldGhv
ZCgiZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMiLCAmRFJUVGVzdFJ1bm5lcjo6ZHVtcFJl
c291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOwogICAgIGJpbmRNZXRob2QoImR1bXBTZWxlY3Rpb25S
ZWN0IiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBTZWxlY3Rpb25SZWN0KTsKICAgICBiaW5kTWV0aG9k
KCJkdW1wU3RhdHVzQ2FsbGJhY2tzIiwgJkRSVFRlc3RSdW5uZXI6OmR1bXBXaW5kb3dTdGF0dXND
aGFuZ2VzKTsKICAgICBiaW5kTWV0aG9kKCJkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyIs
ICZEUlRUZXN0UnVubmVyOjpkdW1wUGVybWlzc2lvbkNsaWVudENhbGxiYWNrcyk7CkBAIC0yNTEs
MjQgKzI0OCw2IEBAIHZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFByb2dyZXNzRmluaXNoZWRDYWxs
YmFjayhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpCiAgICAgcmVzdWx0LT5zZXROdWxs
KCk7CiB9CiAKLXZvaWQgRFJUVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyhj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgbV9kdW1w
UmVzb3VyY2VMb2FkQ2FsbGJhY2tzID0gdHJ1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0K
LQotdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBtX2R1bXBSZXNv
dXJjZVJlcXVlc3RDYWxsYmFja3MgPSB0cnVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQot
Ci12b2lkIERSVFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBtX2R1bXBSZXNv
dXJjZVJlc3BvbnNlTUlNRVR5cGVzID0gdHJ1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0K
LQogdm9pZCBEUlRUZXN0UnVubmVyOjpkdW1wV2luZG93U3RhdHVzQ2hhbmdlcyhjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9kdW1wV2luZG93U3Rh
dHVzQ2hhbmdlcyA9IHRydWU7CkBAIC00NjYsOSArNDQ1LDYgQEAgdm9pZCBEUlRUZXN0UnVubmVy
OjpyZXNldCgpCiAgICAgaWYgKG1fc2hlbGwpCiAgICAgICAgIG1fc2hlbGwtPndlYlZpZXdIb3N0
KCktPnNldERldmljZVNjYWxlRmFjdG9yKDEpOwogICAgIG1fZHVtcFByb2dyZXNzRmluaXNoZWRD
YWxsYmFjayA9IGZhbHNlOwotICAgIG1fZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9IGZhbHNl
OwotICAgIG1fZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyA9IGZhbHNlOwotICAgIG1fZHVt
cFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMgPSBmYWxzZTsKICAgICBtX2R1bXBCYWNrRm9yd2Fy
ZExpc3QgPSBmYWxzZTsKICAgICBtX2R1bXBXaW5kb3dTdGF0dXNDaGFuZ2VzID0gZmFsc2U7CiAg
ICAgbV9kdW1wU2VsZWN0aW9uUmVjdCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRFJUVGVzdFJ1bm5lci5oCmluZGV4IGE5ZDBjNWJiNmExNzVhZTMyZDI2ZDFjOTVh
OTdkNDYxNTE0ZGE2NDUuLmRiMjZjZGIyMjBiODE2NWY1MmEyNGYyZTlhYjE1MzAyNDhkYmI0ZGYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmgKQEAg
LTg0LDIxICs4NCw2IEBAIHB1YmxpYzoKICAgICAvLyByZXByZXNlbnRhdGlvbiBvZiB0aGUgYmFj
ay9mb3J3YXJkIGxpc3QuIEl0IGlnbm9yZXMgYWxsIGFyZ3VtZW50cy4KICAgICB2b2lkIGR1bXBC
YWNrRm9yd2FyZExpc3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0g
ICAgLy8gVGhpcyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxs
IHRvIGR1bXAgYSBkZXNjcmlwdGl2ZQotICAgIC8vIGxpbmUgZm9yIGVhY2ggcmVzb3VyY2UgbG9h
ZCBjYWxsYmFjay4gSXQgdGFrZXMgbm8gYXJndW1lbnRzLCBhbmQgaWdub3JlcwotICAgIC8vIGFu
eSB0aGF0IG1heSBiZSBwcmVzZW50LgotICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZENhbGxiYWNr
cyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7ICAgIAotCi0gICAgLy8gVGhp
cyBmdW5jdGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50
IGEgbGluZSBvZgotICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIGVhY2ggZWxlbWVudCB0aGF0
IHJlcXVlc3RlZCBhIHJlc291cmNlLiBJdCB0YWtlcyBubwotICAgIC8vIGFyZ3VtZW50cywgYW5k
IGlnbm9yZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCi0gICAgdm9pZCBkdW1wUmVzb3VyY2VS
ZXF1ZXN0Q2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQot
ICAgIC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVs
bCB0byBkdW1wIHRoZSBNSU1FIHR5cGUKLSAgICAvLyBmb3IgZWFjaCByZXNvdXJjZSB0aGF0IHdh
cyBsb2FkZWQuIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55Ci0gICAgLy8g
dGhhdCBtYXkgYmUgcHJlc2VudC4KLSAgICB2b2lkIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5
cGVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQogICAgIC8vIFRoaXMg
ZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBkdW1wIGFs
bCBjYWxscwogICAgIC8vIHRvIHdpbmRvdy5zdGF0dXMoKS4KICAgICAvLyBJdCB0YWtlcyBubyBh
cmd1bWVudHMsIGFuZCBpZ25vcmVzIGFueSB0aGF0IG1heSBiZSBwcmVzZW50LgpAQCAtMjQzLDEx
ICsyMjgsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVk
Q2FsbGJhY2soKSB7IHJldHVybiBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2s7IH0KICAg
ICB2b2lkIHNldFNob3VsZER1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2soYm9vbCB2YWx1ZSkg
eyBtX2R1bXBQcm9ncmVzc0ZpbmlzaGVkQ2FsbGJhY2sgPSB2YWx1ZTsgfQotICAgIGJvb2wgc2hv
dWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpIHtyZXR1cm4gbV9kdW1wUmVzb3VyY2VMb2Fk
Q2FsbGJhY2tzOyB9Ci0gICAgdm9pZCBzZXRTaG91bGREdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJh
Y2tzKGJvb2wgdmFsdWUpIHsgbV9kdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzID0gdmFsdWU7
IH0KLSAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MoKSB7IHJldHVy
biBtX2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3M7IH0KLSAgICB2b2lkIHNldFNob3VsZER1
bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGJvb2wgdmFsdWUpIHsgbV9kdW1wUmVzb3VyY2VS
ZXNwb25zZU1JTUVUeXBlcyA9IHZhbHVlOyB9Ci0gICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VS
ZXNwb25zZU1JTUVUeXBlcygpIHtyZXR1cm4gbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBl
czsgfQogICAgIGJvb2wgc2hvdWxkRHVtcFN0YXR1c0NhbGxiYWNrcygpIHsgcmV0dXJuIG1fZHVt
cFdpbmRvd1N0YXR1c0NoYW5nZXM7IH0KICAgICBib29sIHNob3VsZER1bXBTZWxlY3Rpb25SZWN0
KCkgeyByZXR1cm4gbV9kdW1wU2VsZWN0aW9uUmVjdDsgfQogICAgIGJvb2wgc2hvdWxkRHVtcEJh
Y2tGb3J3YXJkTGlzdCgpIHsgcmV0dXJuIG1fZHVtcEJhY2tGb3J3YXJkTGlzdDsgfQpAQCAtMzQ5
LDE4ICszMjksNiBAQCBwcml2YXRlOgogICAgIC8vIGZpbmlzaGVkIGNhbGxiYWNrLgogICAgIGJv
b2wgbV9kdW1wUHJvZ3Jlc3NGaW5pc2hlZENhbGxiYWNrOwogCi0gICAgLy8gSWYgdHJ1ZSwgdGhl
IHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgYSBkZXNjcmlwdGl2ZSBsaW5lIGZvciBlYWNoIHJlc291
cmNlCi0gICAgLy8gbG9hZCBjYWxsYmFjay4KLSAgICBib29sIG1fZHVtcFJlc291cmNlTG9hZENh
bGxiYWNrczsKLQotICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0X3NoZWxsIHdpbGwgb3V0cHV0IGEg
ZGVzY3JpcHRpdmUgbGluZSBmb3IgZWFjaCByZXNvdXJjZQotICAgIC8vIHJlcXVlc3QgY2FsbGJh
Y2suCi0gICAgYm9vbCBtX2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3M7Ci0KLSAgICAvLyBJ
ZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCB0aGUgTUlNRSB0eXBlIGZvciBlYWNo
IHJlc291cmNlIHRoYXQgCi0gICAgLy8gd2FzIGxvYWRlZC4KLSAgICBib29sIG1fZHVtcFJlc291
cmNlUmVzcG9uc2VNSU1FVHlwZXM7Ci0KICAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3
aWxsIHByb2R1Y2UgYSBkdW1wIG9mIHRoZSBiYWNrIGZvcndhcmQgbGlzdCBhcwogICAgIC8vIHdl
bGwuCiAgICAgYm9vbCBtX2R1bXBCYWNrRm9yd2FyZExpc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0RGVsZWdhdGUu
aCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRl
c3REZWxlZ2F0ZS5oCmluZGV4IDMwODY3NzY0OGM0NjRhZDJhYzM5ZDlhZDAxMjBmMTFkZjc0MjU3
YzguLmIyYTkzYmE5ZWU4NmU2NTc4MmFlMjkxNTBmOWY0ZGFlNWUyMTY3ZTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RE
ZWxlZ2F0ZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3REZWxlZ2F0ZS5oCkBAIC0zNCwxMSArMzQsMTMgQEAKICNpbmNsdWRlICJQ
bGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvV2ViU3RyaW5nLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL1dlYlVSTC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtL2Nocm9taXVtL3B1
YmxpYy9XZWJWZWN0b3IuaCIKKyNpbmNsdWRlIDxzdHJpbmc+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewotc3RydWN0IFdlYkNvbnRleHRNZW51RGF0YTsKIGNsYXNzIFdlYkdhbWVwYWRzOwogY2xhc3Mg
V2ViSW50ZW50UmVxdWVzdDsKK3N0cnVjdCBXZWJDb250ZXh0TWVudURhdGE7CitzdHJ1Y3QgV2Vi
VVJMRXJyb3I7CiB9CiAKIG5hbWVzcGFjZSBXZWJUZXN0UnVubmVyIHsKQEAgLTc0LDYgKzc2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVByZWZlcmVuY2VzKCkgeyB9OwogICAg
IHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50V2ViSW50ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6Oldl
YkludGVudFJlcXVlc3QmKSB7IH07CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkludGVudFJlcXVl
c3QqIGN1cnJlbnRXZWJJbnRlbnRSZXF1ZXN0KCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwg
c3RkOjpzdHJpbmcgbWFrZVVSTEVycm9yRGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJVUkxF
cnJvciYpIHsgcmV0dXJuIHN0ZDo6c3RyaW5nKCk7IH0KIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94
eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2Vi
VGVzdFByb3h5LmgKaW5kZXggOTU5ZDI5MDU4NmU5MTIwODdlMDU2MDI3NDRmYjBhNDM5YWNmYWMx
NC4uODlmOWJhZTI5Y2Q5ZDE2NTBhMWUwNDhjNGIyYWY1ZTUxN2RiY2Y4MyAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFBy
b3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJs
aWMvV2ViVGVzdFByb3h5LmgKQEAgLTM4LDkgKzM4LDEyIEBACiAjaW5jbHVkZSAiV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJOYXZpZ2F0aW9uUG9saWN5LmgiCiAjaW5jbHVkZSAiV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJUZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJXZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlRleHREaXJlY3Rpb24uaCIKKyNpbmNsdWRlIDxtYXA+CisjaW5jbHVkZSA8
c3RyaW5nPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkFjY2Vzc2liaWxpdHlPYmpl
Y3Q7CitjbGFzcyBXZWJDYWNoZWRVUkxSZXF1ZXN0OwogY2xhc3MgV2ViRHJhZ0RhdGE7CiBjbGFz
cyBXZWJGcmFtZTsKIGNsYXNzIFdlYkltYWdlOwpAQCAtNTMsNiArNTYsNyBAQCBjbGFzcyBXZWJT
ZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBXZWJTdHJpbmc7CiBjbGFzcyBXZWJVUkw7CiBj
bGFzcyBXZWJVUkxSZXF1ZXN0OworY2xhc3MgV2ViVVJMUmVzcG9uc2U7CiBjbGFzcyBXZWJWaWV3
Owogc3RydWN0IFdlYlBvaW50Owogc3RydWN0IFdlYlNpemU7CkBAIC03MSw2ICs3NSw4IEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldEludGVyZmFjZXMoV2ViVGVzdEludGVyZmFjZXMqKTsKICAgICB2
b2lkIHNldERlbGVnYXRlKFdlYlRlc3REZWxlZ2F0ZSopOwogCisgICAgdm9pZCByZXNldCgpOwor
CiAgICAgdm9pZCBzZXRQYWludFJlY3QoY29uc3QgV2ViS2l0OjpXZWJSZWN0Jik7CiAgICAgV2Vi
S2l0OjpXZWJSZWN0IHBhaW50UmVjdCgpIGNvbnN0OwogCkBAIC0xMTYsMTIgKzEyMiwxOSBAQCBw
cm90ZWN0ZWQ6CiAgICAgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50KFdlYktpdDo6V2Vi
RnJhbWUqKTsKICAgICB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChXZWJLaXQ6OldlYkZyYW1l
KiwgY29uc3QgV2ViS2l0OjpXZWJTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFdlYktpdDo6V2ViVVJM
JiBpbnNlY3VyZVVSTCk7CiAgICAgdm9pZCBkaWREZXRlY3RYU1MoV2ViS2l0OjpXZWJGcmFtZSos
IGNvbnN0IFdlYktpdDo6V2ViVVJMJiBpbnNlY3VyZVVSTCwgYm9vbCBkaWRCbG9ja0VudGlyZVBh
Z2UpOworICAgIHZvaWQgYXNzaWduSWRlbnRpZmllclRvUmVxdWVzdChXZWJLaXQ6OldlYkZyYW1l
KiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0Jik7Cisg
ICAgdm9pZCB3aWxsUmVxdWVzdFJlc291cmNlKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJL
aXQ6OldlYkNhY2hlZFVSTFJlcXVlc3QmKTsKKyAgICB2b2lkIHdpbGxTZW5kUmVxdWVzdChXZWJL
aXQ6OldlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0
JiwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CisgICAg
dm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0OjpXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50
aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2UmKTsKKyAgICB2b2lkIGRpZEZpbmlz
aFJlc291cmNlTG9hZChXZWJLaXQ6OldlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllcik7Cisg
ICAgdm9pZCBkaWRGYWlsUmVzb3VyY2VMb2FkKFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBp
ZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJik7CiAKIHByaXZhdGU6CiAgICAg
V2ViVGVzdEludGVyZmFjZXMqIG1fdGVzdEludGVyZmFjZXM7CiAgICAgV2ViVGVzdERlbGVnYXRl
KiBtX2RlbGVnYXRlOwogCiAgICAgV2ViS2l0OjpXZWJSZWN0IG1fcGFpbnRSZWN0OworICAgIHN0
ZDo6bWFwPHVuc2lnbmVkLCBzdGQ6OnN0cmluZz4gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXA7CiB9
OwogCiAvLyBVc2UgdGhpcyB0ZW1wbGF0ZSB0byBpbmplY3QgbWV0aG9kcyBpbnRvIHlvdXIgV2Vi
Vmlld0NsaWVudC9XZWJGcmFtZUNsaWVudApAQCAtMzI5LDYgKzM0MiwzNiBAQCBwdWJsaWM6CiAg
ICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZERldGVjdFhTUyhmcmFtZSwgaW5zZWN1cmVVUkws
IGRpZEJsb2NrRW50aXJlUGFnZSk7CiAgICAgICAgIEJhc2U6OmRpZERldGVjdFhTUyhmcmFtZSwg
aW5zZWN1cmVVUkwsIGRpZEJsb2NrRW50aXJlUGFnZSk7CiAgICAgfQorICAgIHZpcnR1YWwgdm9p
ZCBhc3NpZ25JZGVudGlmaWVyVG9SZXF1ZXN0KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCB1bnNp
Z25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmIHJlcXVlc3QpCisg
ICAgeworICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjphc3NpZ25JZGVudGlmaWVyVG9SZXF1ZXN0
KGZyYW1lLCBpZGVudGlmaWVyLCByZXF1ZXN0KTsKKyAgICAgICAgQmFzZTo6YXNzaWduSWRlbnRp
ZmllclRvUmVxdWVzdChmcmFtZSwgaWRlbnRpZmllciwgcmVxdWVzdCk7CisgICAgfQorICAgIHZp
cnR1YWwgdm9pZCB3aWxsUmVxdWVzdFJlc291cmNlKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBj
b25zdCBXZWJLaXQ6OldlYkNhY2hlZFVSTFJlcXVlc3QmIHJlcXVlc3QpCisgICAgeworICAgICAg
ICBXZWJUZXN0UHJveHlCYXNlOjp3aWxsUmVxdWVzdFJlc291cmNlKGZyYW1lLCByZXF1ZXN0KTsK
KyAgICAgICAgQmFzZTo6d2lsbFJlcXVlc3RSZXNvdXJjZShmcmFtZSwgcmVxdWVzdCk7CisgICAg
fQorICAgIHZpcnR1YWwgdm9pZCB3aWxsU2VuZFJlcXVlc3QoV2ViS2l0OjpXZWJGcmFtZSogZnJh
bWUsIHVuc2lnbmVkIGlkZW50aWZpZXIsIFdlYktpdDo6V2ViVVJMUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2ViS2l0OjpXZWJVUkxSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKKyAgICB7Cisg
ICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OndpbGxTZW5kUmVxdWVzdChmcmFtZSwgaWRlbnRpZmll
ciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgIEJhc2U6OndpbGxTZW5kUmVx
dWVzdChmcmFtZSwgaWRlbnRpZmllciwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAg
fQorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoV2ViS2l0OjpXZWJGcmFtZSog
ZnJhbWUsIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9uc2Um
IHJlc3BvbnNlKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGZyYW1lLCBpZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgICAgIEJhc2U6OmRpZFJl
Y2VpdmVSZXNwb25zZShmcmFtZSwgaWRlbnRpZmllciwgcmVzcG9uc2UpOworICAgIH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoUmVzb3VyY2VMb2FkKFdlYktpdDo6V2ViRnJhbWUqIGZyYW1l
LCB1bnNpZ25lZCBpZGVudGlmaWVyKQorICAgIHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6
ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGZyYW1lLCBpZGVudGlmaWVyKTsKKyAgICAgICAgQmFzZTo6
ZGlkRmluaXNoUmVzb3VyY2VMb2FkKGZyYW1lLCBpZGVudGlmaWVyKTsKKyAgICB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEZhaWxSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIHVu
c2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImIGVycm9yKQorICAg
IHsKKyAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkRmFpbFJlc291cmNlTG9hZChmcmFtZSwg
aWRlbnRpZmllciwgZXJyb3IpOworICAgICAgICBCYXNlOjpkaWRGYWlsUmVzb3VyY2VMb2FkKGZy
YW1lLCBpZGVudGlmaWVyLCBlcnJvcik7CisgICAgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFJ1bm5l
ci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2Vi
VGVzdFJ1bm5lci5oCmluZGV4IGQyNGU3MDVkYzIzMzMxNmQ2ZmY1OTMwYTNlZWQ0ODdlZmRiOGZl
ZmIuLjE3YmJjYjczZDc1Y2VlMmIzMmRkZWQ0ZTgxM2ViZmI1Yjc2N2I5NTQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RS
dW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1
YmxpYy9XZWJUZXN0UnVubmVyLmgKQEAgLTU4LDYgKzU4LDkgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREdW1wVGl0bGVDaGFuZ2VzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcENyZWF0ZVZpZXcoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjYW5PcGVuV2luZG93cygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3MoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1w
UmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogfTsKIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCA0MWI2
YmRjMTM0OTdlZGEwNjkxZTMyZTQ2MjYyMjdjNDA1NmM1MzkxLi5iYjk2NWY0OWI1MzEzZmExZGNl
MGMyYmI5NmNmNjg2ZWQ2ODFkYTk0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMTQ0LDYg
KzE0NCw5IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgIGJpbmRNZXRob2QoImR1bXBU
aXRsZUNoYW5nZXMiLCAmVGVzdFJ1bm5lcjo6ZHVtcFRpdGxlQ2hhbmdlcyk7CiAgICAgYmluZE1l
dGhvZCgiZHVtcENyZWF0ZVZpZXciLCAmVGVzdFJ1bm5lcjo6ZHVtcENyZWF0ZVZpZXcpOwogICAg
IGJpbmRNZXRob2QoInNldENhbk9wZW5XaW5kb3dzIiwgJlRlc3RSdW5uZXI6OnNldENhbk9wZW5X
aW5kb3dzKTsKKyAgICBiaW5kTWV0aG9kKCJkdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzIiwgJlRl
c3RSdW5uZXI6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MpOworICAgIGJpbmRNZXRob2QoImR1
bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3MiLCAmVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVx
dWVzdENhbGxiYWNrcyk7CisgICAgYmluZE1ldGhvZCgiZHVtcFJlc291cmNlUmVzcG9uc2VNSU1F
VHlwZXMiLCAmVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMpOwogCiAg
ICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGludGVyYWN0IHdpdGggdGhlIFdlYlRlc3RQcm94
eS4KICAgICBiaW5kTWV0aG9kKCJzZW5kV2ViSW50ZW50UmVzcG9uc2UiLCAmVGVzdFJ1bm5lcjo6
c2VuZFdlYkludGVudFJlc3BvbnNlKTsKQEAgLTIyMCw2ICsyMjMsOSBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnJlc2V0KCkKICAgICBtX2R1bXBUaXRsZUNoYW5nZXMgPSBmYWxzZTsKICAgICBtX2R1bXBD
cmVhdGVWaWV3ID0gZmFsc2U7CiAgICAgbV9jYW5PcGVuV2luZG93cyA9IGZhbHNlOworICAgIG1f
ZHVtcFJlc291cmNlTG9hZENhbGxiYWNrcyA9IGZhbHNlOworICAgIG1fZHVtcFJlc291cmNlUmVx
dWVzdENhbGxiYWNrcyA9IGZhbHNlOworICAgIG1fZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlw
ZXMgPSBmYWxzZTsKIAogICAgIG1fZ2xvYmFsRmxhZy5zZXQoZmFsc2UpOwogICAgIG1fcGxhdGZv
cm1OYW1lLnNldCgiY2hyb21pdW0iKTsKQEAgLTMxMiw2ICszMTgsMjEgQEAgYm9vbCBUZXN0UnVu
bmVyOjpjYW5PcGVuV2luZG93cygpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2FuT3BlbldpbmRvd3M7
CiB9CiAKK2Jvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGVzdElzUnVubmluZyAmJiBtX2R1bXBSZXNvdXJjZUxv
YWRDYWxsYmFja3M7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUmVx
dWVzdENhbGxiYWNrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdGVzdElzUnVubmluZyAmJiBt
X2R1bXBSZXNvdXJjZVJlcXVlc3RDYWxsYmFja3M7Cit9CisKK2Jvb2wgVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKSBjb25zdAoreworICAgIHJldHVybiBt
X3Rlc3RJc1J1bm5pbmcgJiYgbV9kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlczsKK30KKwog
dm9pZCBUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBpZiAo
YXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQpAQCAtMTA4OSw2
ICsxMTEwLDI0IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0Q2FuT3BlbldpbmRvd3MoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogICAgIHJlc3VsdC0+c2V0TnVsbCgp
OwogfQogCit2b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIG1fZHVtcFJlc291
cmNlTG9hZENhbGxiYWNrcyA9IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcyhjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgbV9kdW1wUmVzb3VyY2VSZXF1
ZXN0Q2FsbGJhY2tzID0gdHJ1ZTsKKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwordm9pZCBU
ZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgbV9kdW1wUmVzb3VyY2VSZXNwb25z
ZU1JTUVUeXBlcyA9IHRydWU7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgVGVz
dFJ1bm5lcjo6d29ya2VyVGhyZWFkQ291bnQoQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIHJl
c3VsdC0+c2V0KHN0YXRpY19jYXN0PGludD4oV2ViV29ya2VySW5mbzo6ZGVkaWNhdGVkV29ya2Vy
Q291bnQoKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDlmYjMxOTk1NTkyM2JmNmU4N2IxNjIz
Y2Q4YzMxNGM2YWZlOWVkODcuLmJmMTU1MTgyNTRkMGFlMmI1NTJlMWFkMDJkZGE0Yzk4NjNmMTI0
YWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTc2LDYgKzc2LDkgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGREdW1wVGl0bGVDaGFuZ2VzKCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIHNob3VsZER1bXBDcmVhdGVWaWV3KCkgY29uc3QgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCBib29sIGNhbk9wZW5XaW5kb3dzKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIHNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSBjb25zdCBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VSZXNwb25z
ZU1JTUVUeXBlcygpIGNvbnN0IE9WRVJSSURFOwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8gRklYTUU6
IG1ha2UgdGhlc2UgcHJpdmF0ZSBvbmNlIHRoZSBtb3ZlIGZyb20gRFJUVGVzdFJ1bm5lciB0byBU
ZXN0UnVubmVyCkBAIC0yNDEsNiArMjQ0LDIxIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldENh
bk9wZW5XaW5kb3dzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAg
IC8vIFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0
byBkdW1wIGEgZGVzY3JpcHRpdmUKKyAgICAvLyBsaW5lIGZvciBlYWNoIHJlc291cmNlIGxvYWQg
Y2FsbGJhY2suIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMKKyAgICAvLyBhbnkg
dGhhdCBtYXkgYmUgcHJlc2VudC4KKyAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCisgICAgLy8gVGhpcyBmdW5j
dGlvbiBzZXRzIGEgZmxhZyB0aGF0IHRlbGxzIHRoZSB0ZXN0X3NoZWxsIHRvIHByaW50IGEgbGlu
ZSBvZgorICAgIC8vIGRlc2NyaXB0aXZlIHRleHQgZm9yIGVhY2ggZWxlbWVudCB0aGF0IHJlcXVl
c3RlZCBhIHJlc291cmNlLiBJdCB0YWtlcyBubworICAgIC8vIGFyZ3VtZW50cywgYW5kIGlnbm9y
ZXMgYW55IHRoYXQgbWF5IGJlIHByZXNlbnQuCisgICAgdm9pZCBkdW1wUmVzb3VyY2VSZXF1ZXN0
Q2FsbGJhY2tzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKworICAgIC8v
IFRoaXMgZnVuY3Rpb24gc2V0cyBhIGZsYWcgdGhhdCB0ZWxscyB0aGUgdGVzdF9zaGVsbCB0byBk
dW1wIHRoZSBNSU1FIHR5cGUKKyAgICAvLyBmb3IgZWFjaCByZXNvdXJjZSB0aGF0IHdhcyBsb2Fk
ZWQuIEl0IHRha2VzIG5vIGFyZ3VtZW50cywgYW5kIGlnbm9yZXMgYW55CisgICAgLy8gdGhhdCBt
YXkgYmUgcHJlc2VudC4KKyAgICB2b2lkIGR1bXBSZXNvdXJjZVJlc3BvbnNlTUlNRVR5cGVzKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwogICAgIC8vIE1ldGhvZHMgaW50ZXJhY3Rpbmcgd2l0aCB0aGUgV2ViVGVzdFByb3h5CiAK
QEAgLTMzMSw2ICszNDksMTggQEAgcHJpdmF0ZToKICAgICAvLyBzZXRDYW5PcGVuV2luZG93cygp
LgogICAgIGJvb2wgbV9jYW5PcGVuV2luZG93czsKIAorICAgIC8vIElmIHRydWUsIHRoZSB0ZXN0
X3NoZWxsIHdpbGwgb3V0cHV0IGEgZGVzY3JpcHRpdmUgbGluZSBmb3IgZWFjaCByZXNvdXJjZQor
ICAgIC8vIGxvYWQgY2FsbGJhY2suCisgICAgYm9vbCBtX2R1bXBSZXNvdXJjZUxvYWRDYWxsYmFj
a3M7CisKKyAgICAvLyBJZiB0cnVlLCB0aGUgdGVzdF9zaGVsbCB3aWxsIG91dHB1dCBhIGRlc2Ny
aXB0aXZlIGxpbmUgZm9yIGVhY2ggcmVzb3VyY2UKKyAgICAvLyByZXF1ZXN0IGNhbGxiYWNrLgor
ICAgIGJvb2wgbV9kdW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzOworCisgICAgLy8gSWYgdHJ1
ZSwgdGhlIHRlc3Rfc2hlbGwgd2lsbCBvdXRwdXQgdGhlIE1JTUUgdHlwZSBmb3IgZWFjaCByZXNv
dXJjZSB0aGF0IAorICAgIC8vIHdhcyBsb2FkZWQuCisgICAgYm9vbCBtX2R1bXBSZXNvdXJjZVJl
c3BvbnNlTUlNRVR5cGVzOworCiAgICAgLy8gV0FWIGF1ZGlvIGRhdGEgaXMgc3RvcmVkIGhlcmUu
CiAgICAgV2ViS2l0OjpXZWJBcnJheUJ1ZmZlclZpZXcgbV9hdWRpb0RhdGE7CiAKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQ
cm94eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9X
ZWJUZXN0UHJveHkuY3BwCmluZGV4IDNmOTJhMjMyZDllNDhkOTU0N2E5Y2ZjN2RmODJlNjBlYWNj
NWVmOTYuLjBjNzNiNTY0NDgzZGYyZDYwZTA4NDQ5ZmNhZDdlZGUxZDg3NTY3M2MgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQ
cm94eS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViVGVzdFByb3h5LmNwcApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIldlYkFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbi5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxpdHlPYmplY3QuaCIKKyNpbmNsdWRlICJX
ZWJDYWNoZWRVUkxSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViRWxlbWVudC5oIgogI2luY2x1ZGUg
IldlYkV2ZW50U2VuZGVyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKQEAgLTQ4LDYgKzQ5LDcg
QEAKICNpbmNsdWRlICJXZWJWaWV3LmgiCiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ1N0cmluZy5o
IgogI2luY2x1ZGUgInBsYXRmb3JtL1dlYlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJwbGF0Zm9y
bS9XZWJVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKQEAgLTE0MSw2ICsxNDMsMzYgQEAgdm9pZCBwcmludEZyYW1l
VXNlckdlc3R1cmVTdGF0dXMoV2ViVGVzdERlbGVnYXRlKiBkZWxlZ2F0ZSwgV2ViRnJhbWUqIGZy
YW1lLCBjb24KICAgICBkZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKHN0cmluZygiRnJhbWUgd2l0aCB1
c2VyIGdlc3R1cmUgXCIiKSArIChpc1VzZXJHZXN0dXJlID8gInRydWUiIDogImZhbHNlIikgKyAi
XCIiICsgbXNnKTsKIH0KIAorLy8gVXNlZCB0byB3cml0ZSBhIHBsYXRmb3JtIG5ldXRyYWwgZmls
ZTovLy8gVVJMIGJ5IHRha2luZyB0aGUKKy8vIGZpbGVuYW1lIGFuZCBpdHMgZGlyZWN0b3J5LiAo
ZS5nLiwgY29udmVydHMKKy8vICJmaWxlOi8vL3RtcC9mb28vYmFyLnR4dCIgdG8ganVzdCAiYmFy
LnR4dCIpLgorc3RyaW5nIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KGNvbnN0IHN0
cmluZyYgdXJsKQoreworICAgIGlmICh1cmwuZW1wdHkoKSB8fCBzdHJpbmc6Om5wb3MgPT0gdXJs
LmZpbmQoImZpbGU6Ly8iKSkKKyAgICAgICAgcmV0dXJuIHVybDsKKworICAgIHNpemVfdCBwb3Mg
PSB1cmwucmZpbmQoJy8nKTsKKyAgICBpZiAocG9zID09IHN0cmluZzo6bnBvcyB8fCAhcG9zKQor
ICAgICAgICByZXR1cm4gIkVSUk9SOiIgKyB1cmw7CisgICAgcG9zID0gdXJsLnJmaW5kKCcvJywg
cG9zIC0gMSk7CisgICAgaWYgKHBvcyA9PSBzdHJpbmc6Om5wb3MpCisgICAgICAgIHJldHVybiAi
RVJST1I6IiArIHVybDsKKworICAgIHJldHVybiB1cmwuc3Vic3RyKHBvcyArIDEpOworfQorCit2
b2lkIHByaW50UmVzcG9uc2VEZXNjcmlwdGlvbihXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlLCBj
b25zdCBXZWJVUkxSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKHJlc3BvbnNlLmlzTnVs
bCgpKSB7CisgICAgICAgIGRlbGVnYXRlLT5wcmludE1lc3NhZ2UoIihudWxsKSIpOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIHN0cmluZyB1cmwgPSByZXNwb25zZS51cmwoKS5zcGVjKCk7
CisgICAgY2hhciBkYXRhWzEwMF07CisgICAgc25wcmludGYoZGF0YSwgc2l6ZW9mKGRhdGEpLCAi
JWQiLCByZXNwb25zZS4gaHR0cFN0YXR1c0NvZGUoKSk7CisgICAgZGVsZWdhdGUtPnByaW50TWVz
c2FnZShzdHJpbmcoIjxOU1VSTFJlc3BvbnNlICIpICsgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRl
c3RSZXN1bHQodXJsKSArICIsIGh0dHAgc3RhdHVzIGNvZGUgIiArIGRhdGEgKyAiPiIpOworfQor
CiBzdHJpbmcgVVJMRGVzY3JpcHRpb24oY29uc3QgR1VSTCYgdXJsKQogewogICAgIGlmICh1cmwu
U2NoZW1lSXMoImZpbGUiKSkKQEAgLTE3MCw2ICsyMDIsMTIgQEAgdm9pZCBXZWJUZXN0UHJveHlC
YXNlOjpzZXREZWxlZ2F0ZShXZWJUZXN0RGVsZWdhdGUqIGRlbGVnYXRlKQogICAgIG1fZGVsZWdh
dGUgPSBkZWxlZ2F0ZTsKIH0KIAordm9pZCBXZWJUZXN0UHJveHlCYXNlOjpyZXNldCgpCit7Cisg
ICAgbV9wYWludFJlY3QgPSBXZWJSZWN0KCk7CisgICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAu
Y2xlYXIoKTsKK30KKwogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpzZXRQYWludFJlY3QoY29uc3Qg
V2ViUmVjdCYgcmVjdCkKIHsKICAgICBtX3BhaW50UmVjdCA9IHJlY3Q7CkBAIC02MDksNCArNjQ3
LDEwMiBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZERldGVjdFhTUyhXZWJGcmFtZSosIGNv
bnN0IFdlYlVSTCYsIGJvb2wpCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiZGlk
RGV0ZWN0WFNTXG4iKTsKIH0KIAordm9pZCBXZWJUZXN0UHJveHlCYXNlOjphc3NpZ25JZGVudGlm
aWVyVG9SZXF1ZXN0KFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0
OjpXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50
ZXN0UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1w
UmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgQVNTRVJUKG1fcmVzb3VyY2VJZGVu
dGlmaWVyTWFwLmZpbmQoaWRlbnRpZmllcikgPT0gbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZW5k
KCkpOworICAgICAgICBtX3Jlc291cmNlSWRlbnRpZmllck1hcFtpZGVudGlmaWVyXSA9IGRlc2Ny
aXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0KHJlcXVlc3QudXJsKCkuc3BlYygpKTsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViVGVzdFByb3h5QmFzZTo6d2lsbFJlcXVlc3RSZXNvdXJjZShXZWJGcmFt
ZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViQ2FjaGVkVVJMUmVxdWVzdCYgcmVxdWVzdCkKK3sK
KyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdEludGVyZmFj
ZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlUmVxdWVzdENhbGxiYWNrcygpKSB7
CisgICAgICAgIHByaW50RnJhbWVEZXNjcmlwdGlvbihtX2RlbGVnYXRlLCBmcmFtZSk7CisgICAg
ICAgIFdlYkVsZW1lbnQgZWxlbWVudCA9IHJlcXVlc3QuaW5pdGlhdG9yRWxlbWVudCgpOworICAg
ICAgICBpZiAoIWVsZW1lbnQuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnBy
aW50TWVzc2FnZSgiIC0gZWxlbWVudCB3aXRoICIpOworICAgICAgICAgICAgaWYgKGVsZW1lbnQu
aGFzQXR0cmlidXRlKCJpZCIpKQorICAgICAgICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVz
c2FnZShzdHJpbmcoImlkICciKSArIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCJpZCIpLnV0ZjgoKS5k
YXRhKCkgKyAiJyIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIG1fZGVsZWdh
dGUtPnByaW50TWVzc2FnZSgibm8gaWQiKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBt
X2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uoc3RyaW5nKCIgLSAiKSArIHJlcXVlc3QuaW5pdGlhdG9y
TmFtZSgpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2Uo
c3RyaW5nKCIgcmVxdWVzdGVkICciKSArIFVSTERlc2NyaXB0aW9uKHJlcXVlc3QudXJsUmVxdWVz
dCgpLnVybCgpKS5jX3N0cigpICsgIidcbiIpOworICAgIH0KK30KKwordm9pZCBXZWJUZXN0UHJv
eHlCYXNlOjp3aWxsU2VuZFJlcXVlc3QoV2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBX
ZWJLaXQ6OldlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYktpdDo6V2ViVVJMUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCit7CisgICAgLy8gTmVlZCB0byB1c2UgR1VSTCBmb3IgaG9z
dCgpIGFuZCBTY2hlbWVJcygpCisgICAgR1VSTCB1cmwgPSByZXF1ZXN0LnVybCgpOworICAgIHN0
cmluZyByZXF1ZXN0VVJMID0gdXJsLnBvc3NpYmx5X2ludmFsaWRfc3BlYygpOworCisgICAgR1VS
TCBtYWluRG9jdW1lbnRVUkwgPSByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29raWVzKCk7CisKKyAg
ICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygpKSB7CisgICAg
ICAgIGlmIChtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpID09IG1fcmVz
b3VyY2VJZGVudGlmaWVyTWFwLmVuZCgpKQorICAgICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRN
ZXNzYWdlKCI8dW5rbm93bj4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9kZWxlZ2F0
ZS0+cHJpbnRNZXNzYWdlKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwW2lkZW50aWZpZXJdKTsKKyAg
ICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJM
UmVxdWVzdCBVUkwgIik7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShkZXNjcmlw
dGlvblN1aXRhYmxlRm9yVGVzdFJlc3VsdChyZXF1ZXN0VVJMKS5jX3N0cigpKTsKKyAgICAgICAg
bV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIsIG1haW4gZG9jdW1lbnQgVVJMICIpOworICAgICAg
ICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoVVJMRGVzY3JpcHRpb24obWFpbkRvY3VtZW50VVJM
KS5jX3N0cigpKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIsIGh0dHAgbWV0
aG9kICIpOworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UocmVxdWVzdC5odHRwTWV0
aG9kKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgi
PiByZWRpcmVjdFJlc3BvbnNlICIpOworICAgICAgICBwcmludFJlc3BvbnNlRGVzY3JpcHRpb24o
bV9kZWxlZ2F0ZSwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50
TWVzc2FnZSgiXG4iKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkUmVj
ZWl2ZVJlc3BvbnNlKFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0
OjpXZWJVUkxSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1
bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBpZiAobV9yZXNvdXJjZUlkZW50
aWZpZXJNYXAuZmluZChpZGVudGlmaWVyKSA9PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQo
KSkKKyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiPHVua25vd24+Iik7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtX3Jlc291
cmNlSWRlbnRpZmllck1hcFtpZGVudGlmaWVyXSk7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50
TWVzc2FnZSgiIC0gZGlkUmVjZWl2ZVJlc3BvbnNlICIpOworICAgICAgICBwcmludFJlc3BvbnNl
RGVzY3JpcHRpb24obV9kZWxlZ2F0ZSwgcmVzcG9uc2UpOworICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UoIlxuIik7CisgICAgfQorICAgIGlmIChtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCkgJiYgbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5zaG91bGREdW1wUmVz
b3VyY2VSZXNwb25zZU1JTUVUeXBlcygpKSB7CisgICAgICAgIEdVUkwgdXJsID0gcmVzcG9uc2Uu
dXJsKCk7CisgICAgICAgIFdlYlN0cmluZyBtaW1lVHlwZSA9IHJlc3BvbnNlLm1pbWVUeXBlKCk7
CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSh1cmwuRXh0cmFjdEZpbGVOYW1lKCkp
OworICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoIiBoYXMgTUlNRSB0eXBlICIpOwor
ICAgICAgICAvLyBTaW11bGF0ZSBOU1VSTFJlc3BvbnNlJ3MgbWFwcGluZyBvZiBlbXB0eS91bmtu
b3duIE1JTUUgdHlwZXMgdG8gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCisgICAgICAgIG1fZGVs
ZWdhdGUtPnByaW50TWVzc2FnZShtaW1lVHlwZS5pc0VtcHR5KCkgPyAiYXBwbGljYXRpb24vb2N0
ZXQtc3RyZWFtIiA6IG1pbWVUeXBlLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBtX2RlbGVnYXRl
LT5wcmludE1lc3NhZ2UoIlxuIik7CisgICAgfQorfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6
OmRpZEZpbmlzaFJlc291cmNlTG9hZChXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIpCit7
CisgICAgaWYgKG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKSAmJiBtX3Rlc3RJbnRlcmZh
Y2VzLT50ZXN0UnVubmVyKCktPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewor
ICAgICAgICBpZiAobV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuZmluZChpZGVudGlmaWVyKSA9PSBt
X3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSkKKyAgICAgICAgICAgIG1fZGVsZWdhdGUtPnBy
aW50TWVzc2FnZSgiPHVua25vd24+Iik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fZGVs
ZWdhdGUtPnByaW50TWVzc2FnZShtX3Jlc291cmNlSWRlbnRpZmllck1hcFtpZGVudGlmaWVyXSk7
CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgiIC0gZGlkRmluaXNoTG9hZGluZ1xu
Iik7CisgICAgfQorICAgIG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmVyYXNlKGlkZW50aWZpZXIp
OworfQorCit2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZEZhaWxSZXNvdXJjZUxvYWQoV2ViRnJh
bWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJiBlcnJv
cikKK3sKKyAgICBpZiAobV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpICYmIG1fdGVzdElu
dGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxiYWNrcygp
KSB7CisgICAgICAgIGlmIChtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIp
ID09IG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwLmVuZCgpKQorICAgICAgICAgICAgbV9kZWxlZ2F0
ZS0+cHJpbnRNZXNzYWdlKCI8dW5rbm93bj4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKG1fcmVzb3VyY2VJZGVudGlmaWVyTWFwW2lkZW50aWZp
ZXJdKTsKKyAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCIgLSBkaWRGYWlsTG9hZGlu
Z1dpdGhFcnJvcjogIik7CisgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZShtX2RlbGVn
YXRlLT5tYWtlVVJMRXJyb3JEZXNjcmlwdGlvbihlcnJvcikpOworICAgICAgICBtX2RlbGVnYXRl
LT5wcmludE1lc3NhZ2UoIlxuIik7CisgICAgfQorICAgIG1fcmVzb3VyY2VJZGVudGlmaWVyTWFw
LmVyYXNlKGlkZW50aWZpZXIpOworfQorCiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggNDJjM2U3ZGQxNWM3MGU2NzA3ZGYxMzgyZGQwYmE1
ODRiMWE1ZWIxMi4uMTQ3NzlmYWZjNmZjNThkMWVlM2MwMzBhODFlOGY4MDljNzc1ODEzZiAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApAQCAtMTI2
LDI0ICsxMjYsNiBAQCBzdGF0aWMgc3RyaW5nIHVybFN1aXRhYmxlRm9yVGVzdFJlc3VsdChjb25z
dCBzdHJpbmcmIHVybCkKICAgICByZXR1cm4gZmlsZW5hbWU7CiB9CiAKLS8vIFVzZWQgdG8gd3Jp
dGUgYSBwbGF0Zm9ybSBuZXV0cmFsIGZpbGU6Ly8vIFVSTCBieSB0YWtpbmcgdGhlCi0vLyBmaWxl
bmFtZSBhbmQgaXRzIGRpcmVjdG9yeS4gKGUuZy4sIGNvbnZlcnRzCi0vLyAiZmlsZTovLy90bXAv
Zm9vL2Jhci50eHQiIHRvIGp1c3QgImJhci50eHQiKS4KLXN0YXRpYyBzdHJpbmcgZGVzY3JpcHRp
b25TdWl0YWJsZUZvclRlc3RSZXN1bHQoY29uc3Qgc3RyaW5nJiB1cmwpCi17Ci0gICAgaWYgKHVy
bC5lbXB0eSgpIHx8IHN0cmluZzo6bnBvcyA9PSB1cmwuZmluZCgiZmlsZTovLyIpKQotICAgICAg
ICByZXR1cm4gdXJsOwotCi0gICAgc2l6ZV90IHBvcyA9IHVybC5yZmluZCgnLycpOwotICAgIGlm
IChwb3MgPT0gc3RyaW5nOjpucG9zIHx8ICFwb3MpCi0gICAgICAgIHJldHVybiAiRVJST1I6IiAr
IHVybDsKLSAgICBwb3MgPSB1cmwucmZpbmQoJy8nLCBwb3MgLSAxKTsKLSAgICBpZiAocG9zID09
IHN0cmluZzo6bnBvcykKLSAgICAgICAgcmV0dXJuICJFUlJPUjoiICsgdXJsOwotCi0gICAgcmV0
dXJuIHVybC5zdWJzdHIocG9zICsgMSk7Ci19Ci0KIC8vIEdldCBhIGRlYnVnZ2luZyBzdHJpbmcg
ZnJvbSBhIFdlYk5hdmlnYXRpb25UeXBlLgogc3RhdGljIGNvbnN0IGNoYXIqIHdlYk5hdmlnYXRp
b25UeXBlVG9TdHJpbmcoV2ViTmF2aWdhdGlvblR5cGUgdHlwZSkKIHsKQEAgLTE3MSwxOCArMTUz
LDYgQEAgc3RhdGljIHN0cmluZyBVUkxEZXNjcmlwdGlvbihjb25zdCBHVVJMJiB1cmwpCiAgICAg
cmV0dXJuIHVybC5wb3NzaWJseV9pbnZhbGlkX3NwZWMoKTsKIH0KIAotc3RhdGljIHZvaWQgcHJp
bnRSZXNwb25zZURlc2NyaXB0aW9uKGNvbnN0IFdlYlVSTFJlc3BvbnNlJiByZXNwb25zZSkKLXsK
LSAgICBpZiAocmVzcG9uc2UuaXNOdWxsKCkpIHsKLSAgICAgICAgZnB1dHMoIihudWxsKSIsIHN0
ZG91dCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgc3RyaW5nIHVybCA9IHJlc3BvbnNl
LnVybCgpLnNwZWMoKTsKLSAgICBwcmludGYoIjxOU1VSTFJlc3BvbnNlICVzLCBodHRwIHN0YXR1
cyBjb2RlICVkPiIsCi0gICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVGb3JUZXN0UmVzdWx0
KHVybCkuY19zdHIoKSwKLSAgICAgICAgICAgcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKSk7Ci19
Ci0KIHN0YXRpYyB2b2lkIHByaW50Tm9kZURlc2NyaXB0aW9uKGNvbnN0IFdlYk5vZGUmIG5vZGUs
IGludCBleGNlcHRpb24pCiB7CiAgICAgaWYgKGV4Y2VwdGlvbikgewpAQCAtOTE0LDE5ICs4ODQs
NiBAQCB2b2lkIFdlYlZpZXdIb3N0OjpkaWROYXZpZ2F0ZVdpdGhpblBhZ2UoV2ViRnJhbWUqIGZy
YW1lLCBib29sIGlzTmV3TmF2aWdhdGlvbikKICAgICB1cGRhdGVGb3JDb21taXR0ZWRMb2FkKGZy
YW1lLCBpc05ld05hdmlnYXRpb24pOwogfQogCi12b2lkIFdlYlZpZXdIb3N0Ojphc3NpZ25JZGVu
dGlmaWVyVG9SZXF1ZXN0KFdlYkZyYW1lKiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2Vi
VVJMUmVxdWVzdCYgcmVxdWVzdCkKLXsKLSAgICAgaWYgKCFtX3NoZWxsLT5zaG91bGREdW1wUmVz
b3VyY2VMb2FkQ2FsbGJhY2tzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBBU1NFUlQoIW1fcmVz
b3VyY2VJZGVudGlmaWVyTWFwLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX3Jlc291cmNl
SWRlbnRpZmllck1hcC5zZXQoaWRlbnRpZmllciwgZGVzY3JpcHRpb25TdWl0YWJsZUZvclRlc3RS
ZXN1bHQocmVxdWVzdC51cmwoKS5zcGVjKCkpKTsKLX0KLQotdm9pZCBXZWJWaWV3SG9zdDo6cmVt
b3ZlSWRlbnRpZmllckZvclJlcXVlc3QodW5zaWduZWQgaWRlbnRpZmllcikKLXsKLSAgICBtX3Jl
c291cmNlSWRlbnRpZmllck1hcC5yZW1vdmUoaWRlbnRpZmllcik7Ci19Ci0KIHN0YXRpYyB2b2lk
IGJsb2NrUmVxdWVzdChXZWJVUkxSZXF1ZXN0JiByZXF1ZXN0KQogewogICAgIHJlcXVlc3Quc2V0
VVJMKFdlYlVSTCgpKTsKQEAgLTk0MiwyMyArODk5LDYgQEAgc3RhdGljIGJvb2wgaG9zdElzVXNl
ZEJ5U29tZVRlc3RzVG9HZW5lcmF0ZUVycm9yKGNvbnN0IHN0cmluZyYgaG9zdCkKICAgICByZXR1
cm4gaG9zdCA9PSAiMjU1LjI1NS4yNTUuMjU1IjsKIH0KIAotdm9pZCBXZWJWaWV3SG9zdDo6d2ls
bFJlcXVlc3RSZXNvdXJjZShXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpX
ZWJDYWNoZWRVUkxSZXF1ZXN0JiByZXF1ZXN0KQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGRE
dW1wUmVzb3VyY2VSZXF1ZXN0Q2FsbGJhY2tzKCkpIHsKLSAgICAgICAgcHJpbnRGcmFtZURlc2Ny
aXB0aW9uKGZyYW1lKTsKLSAgICAgICAgV2ViRWxlbWVudCBlbGVtZW50ID0gcmVxdWVzdC5pbml0
aWF0b3JFbGVtZW50KCk7Ci0gICAgICAgIGlmICghZWxlbWVudC5pc051bGwoKSkgewotICAgICAg
ICAgICAgcHJpbnRmKCIgLSBlbGVtZW50IHdpdGggIik7Ci0gICAgICAgICAgICBpZiAoZWxlbWVu
dC5oYXNBdHRyaWJ1dGUoImlkIikpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJpZCAnJXMnIiwg
ZWxlbWVudC5nZXRBdHRyaWJ1dGUoImlkIikudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgICAgICBl
bHNlCi0gICAgICAgICAgICAgICAgcHJpbnRmKCJubyBpZCIpOwotICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIHByaW50ZigiIC0gJXMiLCByZXF1ZXN0LmluaXRpYXRvck5hbWUoKS51dGY4KCku
ZGF0YSgpKTsKLSAgICAgICAgcHJpbnRmKCIgcmVxdWVzdGVkICclcydcbiIsIFVSTERlc2NyaXB0
aW9uKHJlcXVlc3QudXJsUmVxdWVzdCgpLnVybCgpKS5jX3N0cigpKTsKLSAgICB9Ci19Ci0KIHZv
aWQgV2ViVmlld0hvc3Q6OndpbGxTZW5kUmVxdWVzdChXZWJGcmFtZSogZnJhbWUsIHVuc2lnbmVk
IGlkZW50aWZpZXIsIFdlYlVSTFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdlYlVSTFJlc3BvbnNl
JiByZWRpcmVjdFJlc3BvbnNlKQogewogICAgIC8vIE5lZWQgdG8gdXNlIEdVUkwgZm9yIGhvc3Qo
KSBhbmQgU2NoZW1lSXMoKQpAQCAtOTY2LDE2ICs5MDYsNiBAQCB2b2lkIFdlYlZpZXdIb3N0Ojp3
aWxsU2VuZFJlcXVlc3QoV2ViRnJhbWUqIGZyYW1lLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBXZWJV
UkxSZQogICAgIHN0cmluZyByZXF1ZXN0VVJMID0gdXJsLnBvc3NpYmx5X2ludmFsaWRfc3BlYygp
OwogCiAgICAgR1VSTCBtYWluRG9jdW1lbnRVUkwgPSByZXF1ZXN0LmZpcnN0UGFydHlGb3JDb29r
aWVzKCk7Ci0gICAgaWYgKHRlc3RSdW5uZXIoKS0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENhbGxi
YWNrcygpKSB7Ci0gICAgICAgIHByaW50UmVzb3VyY2VEZXNjcmlwdGlvbihpZGVudGlmaWVyKTsK
LSAgICAgICAgcHJpbnRmKCIgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgJXMs
IG1haW4gZG9jdW1lbnQgVVJMICVzLCIKLSAgICAgICAgICAgICAgICIgaHR0cCBtZXRob2QgJXM+
IHJlZGlyZWN0UmVzcG9uc2UgIiwKLSAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uU3VpdGFibGVG
b3JUZXN0UmVzdWx0KHJlcXVlc3RVUkwpLmNfc3RyKCksCi0gICAgICAgICAgICAgICBVUkxEZXNj
cmlwdGlvbihtYWluRG9jdW1lbnRVUkwpLmNfc3RyKCksCi0gICAgICAgICAgICAgICByZXF1ZXN0
Lmh0dHBNZXRob2QoKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgcHJpbnRSZXNwb25zZURlc2Ny
aXB0aW9uKHJlZGlyZWN0UmVzcG9uc2UpOwotICAgICAgICBmcHV0cygiXG4iLCBzdGRvdXQpOwot
ICAgIH0KIAogICAgIHJlcXVlc3Quc2V0RXh0cmFEYXRhKHdlYmtpdF9zdXBwb3J0OjpDcmVhdGVX
ZWJVUkxSZXF1ZXN0RXh0cmFEYXRhKGZyYW1lLT5kb2N1bWVudCgpLnJlZmVycmVyUG9saWN5KCkp
KTsKIApAQCAtMTAwOSw0NCArOTM5LDYgQEAgdm9pZCBXZWJWaWV3SG9zdDo6d2lsbFNlbmRSZXF1
ZXN0KFdlYkZyYW1lKiBmcmFtZSwgdW5zaWduZWQgaWRlbnRpZmllciwgV2ViVVJMUmUKICAgICBy
ZXF1ZXN0LnNldFVSTCh3ZWJraXRfc3VwcG9ydDo6UmV3cml0ZUxheW91dFRlc3RzVVJMKHJlcXVl
c3QudXJsKCkuc3BlYygpKSk7CiB9CiAKLXZvaWQgV2ViVmlld0hvc3Q6OmRpZFJlY2VpdmVSZXNw
b25zZShXZWJGcmFtZSosIHVuc2lnbmVkIGlkZW50aWZpZXIsIGNvbnN0IFdlYlVSTFJlc3BvbnNl
JiByZXNwb25zZSkKLXsKLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcFJlc291cmNlTG9hZENh
bGxiYWNrcygpKSB7Ci0gICAgICAgIHByaW50UmVzb3VyY2VEZXNjcmlwdGlvbihpZGVudGlmaWVy
KTsKLSAgICAgICAgZnB1dHMoIiAtIGRpZFJlY2VpdmVSZXNwb25zZSAiLCBzdGRvdXQpOwotICAg
ICAgICBwcmludFJlc3BvbnNlRGVzY3JpcHRpb24ocmVzcG9uc2UpOwotICAgICAgICBmcHV0cygi
XG4iLCBzdGRvdXQpOwotICAgIH0KLSAgICBpZiAobV9zaGVsbC0+c2hvdWxkRHVtcFJlc291cmNl
UmVzcG9uc2VNSU1FVHlwZXMoKSkgewotICAgICAgICBHVVJMIHVybCA9IHJlc3BvbnNlLnVybCgp
OwotICAgICAgICBXZWJTdHJpbmcgbWltZVR5cGUgPSByZXNwb25zZS5taW1lVHlwZSgpOwotICAg
ICAgICBwcmludGYoIiVzIGhhcyBNSU1FIHR5cGUgJXNcbiIsCi0gICAgICAgICAgICB1cmwuRXh0
cmFjdEZpbGVOYW1lKCkuY19zdHIoKSwKLSAgICAgICAgICAgIC8vIFNpbXVsYXRlIE5TVVJMUmVz
cG9uc2UncyBtYXBwaW5nIG9mIGVtcHR5L3Vua25vd24gTUlNRSB0eXBlcyB0byBhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0KLSAgICAgICAgICAgIG1pbWVUeXBlLmlzRW1wdHkoKSA/ICJhcHBsaWNh
dGlvbi9vY3RldC1zdHJlYW0iIDogbWltZVR5cGUudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQotfQot
Ci12b2lkIFdlYlZpZXdIb3N0OjpkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViRnJhbWUqLCB1bnNp
Z25lZCBpZGVudGlmaWVyKQotewotICAgIGlmIChtX3NoZWxsLT5zaG91bGREdW1wUmVzb3VyY2VM
b2FkQ2FsbGJhY2tzKCkpIHsKLSAgICAgICAgcHJpbnRSZXNvdXJjZURlc2NyaXB0aW9uKGlkZW50
aWZpZXIpOwotICAgICAgICBmcHV0cygiIC0gZGlkRmluaXNoTG9hZGluZ1xuIiwgc3Rkb3V0KTsK
LSAgICB9Ci0gICAgcmVtb3ZlSWRlbnRpZmllckZvclJlcXVlc3QoaWRlbnRpZmllcik7Ci19Ci0K
LXZvaWQgV2ViVmlld0hvc3Q6OmRpZEZhaWxSZXNvdXJjZUxvYWQoV2ViRnJhbWUqLCB1bnNpZ25l
ZCBpZGVudGlmaWVyLCBjb25zdCBXZWJVUkxFcnJvciYgZXJyb3IpCi17Ci0gICAgaWYgKG1fc2hl
bGwtPnNob3VsZER1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKSkgewotICAgICAgICBwcmludFJl
c291cmNlRGVzY3JpcHRpb24oaWRlbnRpZmllcik7Ci0gICAgICAgIGZwdXRzKCIgLSBkaWRGYWls
TG9hZGluZ1dpdGhFcnJvcjogIiwgc3Rkb3V0KTsKLSAgICAgICAgZnB1dHMod2Via2l0X3N1cHBv
cnQ6Ok1ha2VVUkxFcnJvckRlc2NyaXB0aW9uKGVycm9yKS5jX3N0cigpLCBzdGRvdXQpOwotICAg
ICAgICBmcHV0cygiXG4iLCBzdGRvdXQpOwotICAgIH0KLSAgICByZW1vdmVJZGVudGlmaWVyRm9y
UmVxdWVzdChpZGVudGlmaWVyKTsKLX0KLQogdm9pZCBXZWJWaWV3SG9zdDo6b3BlbkZpbGVTeXN0
ZW0oV2ViRnJhbWUqIGZyYW1lLCBXZWJGaWxlU3lzdGVtOjpUeXBlIHR5cGUsIGxvbmcgbG9uZyBz
aXplLCBib29sIGNyZWF0ZSwgV2ViRmlsZVN5c3RlbUNhbGxiYWNrcyogY2FsbGJhY2tzKQogewog
ICAgIHdlYmtpdF9zdXBwb3J0OjpPcGVuRmlsZVN5c3RlbShmcmFtZSwgdHlwZSwgc2l6ZSwgY3Jl
YXRlLCBjYWxsYmFja3MpOwpAQCAtMTE2MSw2ICsxMDUzLDExIEBAIFdlYkludGVudFJlcXVlc3Qq
IFdlYlZpZXdIb3N0OjpjdXJyZW50V2ViSW50ZW50UmVxdWVzdCgpCiAgICAgcmV0dXJuICZtX2N1
cnJlbnRSZXF1ZXN0OwogfQogCitzdGQ6OnN0cmluZyBXZWJWaWV3SG9zdDo6bWFrZVVSTEVycm9y
RGVzY3JpcHRpb24oY29uc3QgV2ViS2l0OjpXZWJVUkxFcnJvciYgZXJyb3IpCit7CisgICAgcmV0
dXJuIHdlYmtpdF9zdXBwb3J0OjpNYWtlVVJMRXJyb3JEZXNjcmlwdGlvbihlcnJvcik7Cit9CisK
IC8vIFB1YmxpYyBmdW5jdGlvbnMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAogV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0KFRlc3RT
aGVsbCogc2hlbGwpCkBAIC0xMjU1LDcgKzExNTIsNiBAQCB2b2lkIFdlYlZpZXdIb3N0OjpyZXNl
dCgpCiAgICAgbV9uYXZpZ2F0aW9uQ29udHJvbGxlciA9IGFkb3B0UHRyKG5ldyBUZXN0TmF2aWdh
dGlvbkNvbnRyb2xsZXIodGhpcykpOwogCiAgICAgbV9wZW5kaW5nRXh0cmFEYXRhLmNsZWFyKCk7
Ci0gICAgbV9yZXNvdXJjZUlkZW50aWZpZXJNYXAuY2xlYXIoKTsKICAgICBtX2NsZWFySGVhZGVy
cy5jbGVhcigpOwogICAgIG1fZWRpdENvbW1hbmROYW1lLmNsZWFyKCk7CiAgICAgbV9lZGl0Q29t
bWFuZFZhbHVlLmNsZWFyKCk7CkBAIC0xMjcyLDcgKzExNjgsNyBAQCB2b2lkIFdlYlZpZXdIb3N0
OjpyZXNldCgpCiAgICAgbV93aW5kb3dSZWN0ID0gV2ViUmVjdCgpOwogICAgIC8vIG1fcHJveHkg
aXMgbm90IHNldCB3aGVuIHJlc2V0KCkgaXMgaW52b2tlZCBmcm9tIHRoZSBjb25zdHJ1Y3Rvci4K
ICAgICBpZiAobV9wcm94eSkKLSAgICAgICAgcHJveHkoKS0+c2V0UGFpbnRSZWN0KFdlYlJlY3Qo
KSk7CisgICAgICAgIHByb3h5KCktPnJlc2V0KCk7CiAKICAgICBpZiAobV93ZWJXaWRnZXQpIHsK
ICAgICAgICAgd2ViVmlldygpLT5tYWluRnJhbWUoKS0+c2V0TmFtZShXZWJTdHJpbmcoKSk7CkBA
IC0xNDc1LDEyICsxMzcxLDYgQEAgdm9pZCBXZWJWaWV3SG9zdDo6cHJpbnRGcmFtZURlc2NyaXB0
aW9uKFdlYkZyYW1lKiB3ZWJmcmFtZSkKICAgICBwcmludGYoImZyYW1lIFwiJXNcIiIsIG5hbWU4
LmNfc3RyKCkpOwogfQogCi12b2lkIFdlYlZpZXdIb3N0OjpwcmludFJlc291cmNlRGVzY3JpcHRp
b24odW5zaWduZWQgaWRlbnRpZmllcikKLXsKLSAgICBSZXNvdXJjZU1hcDo6aXRlcmF0b3IgaXQg
PSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5maW5kKGlkZW50aWZpZXIpOwotICAgIHByaW50Zigi
JXMiLCBpdCAhPSBtX3Jlc291cmNlSWRlbnRpZmllck1hcC5lbmQoKSA/IGl0LT52YWx1ZS5jX3N0
cigpIDogIjx1bmtub3duPiIpOwotfQotCiB2b2lkIFdlYlZpZXdIb3N0OjpzZXRQZW5kaW5nRXh0
cmFEYXRhKFBhc3NPd25QdHI8VGVzdFNoZWxsRXh0cmFEYXRhPiBleHRyYURhdGEpCiB7CiAgICAg
bV9wZW5kaW5nRXh0cmFEYXRhID0gZXh0cmFEYXRhOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggNDY1ZWZlZDEwODIxNDkwZWEyZmQ5YzllNTY1Njdl
YWFlYmJkMGU2Ny4uZmM4YmJmNDMwOWE1ZjhhN2JiOWQ0YzFkNjU3ZjVkNjQ0MzNhYTRkMCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xNDgsNiAr
MTQ4LDcgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50
LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIHZvaWQgYXBwbHlQ
cmVmZXJlbmNlcygpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJyZW50V2ViSW50
ZW50UmVxdWVzdChjb25zdCBXZWJLaXQ6OldlYkludGVudFJlcXVlc3QmKSBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViSW50ZW50UmVxdWVzdCogY3VycmVudFdlYkludGVudFJlcXVl
c3QoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHN0ZDo6c3RyaW5nIG1ha2VVUkxFcnJvckRlc2Ny
aXB0aW9uKGNvbnN0IFdlYktpdDo6V2ViVVJMRXJyb3ImKSBPVkVSUklERTsKIAogICAgIC8vIE5h
dmlnYXRpb25Ib3N0CiAgICAgdmlydHVhbCBib29sIG5hdmlnYXRlKGNvbnN0IFRlc3ROYXZpZ2F0
aW9uRW50cnkmLCBib29sIHJlbG9hZCk7CkBAIC0yNTQsMTMgKzI1NSw3IEBAIGNsYXNzIFdlYlZp
ZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktpdDo6V2Vi
RnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCB2b2lkIGRpZEZhaWxMb2FkKFdlYktpdDo6V2ViRnJh
bWUqLCBjb25zdCBXZWJLaXQ6OldlYlVSTEVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIGRpZEZp
bmlzaExvYWQoV2ViS2l0OjpXZWJGcmFtZSopOwogICAgIHZpcnR1YWwgdm9pZCBkaWROYXZpZ2F0
ZVdpdGhpblBhZ2UoV2ViS2l0OjpXZWJGcmFtZSosIGJvb2wgaXNOZXdOYXZpZ2F0aW9uKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRvUmVxdWVzdChXZWJLaXQ6OldlYkZyYW1l
KiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXF1ZXN0Jik7Ci0g
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUlkZW50aWZpZXJGb3JSZXF1ZXN0KHVuc2lnbmVkIGlkZW50
aWZpZXIpOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVxdWVzdFJlc291cmNlKFdlYktpdDo6V2Vi
RnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNhY2hlZFVSTFJlcXVlc3QmKTsKICAgICB2aXJ0dWFs
IHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlm
aWVyLCBXZWJLaXQ6OldlYlVSTFJlcXVlc3QmLCBjb25zdCBXZWJLaXQ6OldlYlVSTFJlc3BvbnNl
Jik7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShXZWJLaXQ6OldlYkZyYW1l
KiwgdW5zaWduZWQgaWRlbnRpZmllciwgY29uc3QgV2ViS2l0OjpXZWJVUkxSZXNwb25zZSYpOwot
ICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hSZXNvdXJjZUxvYWQoV2ViS2l0OjpXZWJGcmFtZSos
IHVuc2lnbmVkIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsUmVzb3VyY2VM
b2FkKFdlYktpdDo6V2ViRnJhbWUqLCB1bnNpZ25lZCBpZGVudGlmaWVyLCBjb25zdCBXZWJLaXQ6
OldlYlVSTEVycm9yJik7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5GaWxlU3lzdGVtKFdlYktpdDo6
V2ViRnJhbWUqLCBXZWJLaXQ6OldlYkZpbGVTeXN0ZW06OlR5cGUsIGxvbmcgbG9uZyBzaXplLCBi
b29sIGNyZWF0ZSwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKik7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUZpbGVTeXN0ZW0oV2ViS2l0OjpXZWJGcmFtZSosIFdlYktpdDo6V2ViRmls
ZVN5c3RlbTo6VHlwZSwgV2ViS2l0OjpXZWJGaWxlU3lzdGVtQ2FsbGJhY2tzKik7CiAgICAgdmly
dHVhbCBib29sIHdpbGxDaGVja0FuZERpc3BhdGNoTWVzc2FnZUV2ZW50KApAQCAtMzYzLDExICsz
NTgsNiBAQCBwcml2YXRlOgogCiAgICAgT3duUHRyPFRlc3RTaGVsbEV4dHJhRGF0YT4gbV9wZW5k
aW5nRXh0cmFEYXRhOwogCi0gICAgLy8gTWFwcyByZXNvdXJjZSBpZGVudGlmaWVycyB0byBhIGRl
c2NyaXB0aXZlIHN0cmluZy4KLSAgICB0eXBlZGVmIEhhc2hNYXA8dW5zaWduZWQsIHN0ZDo6c3Ry
aW5nPiBSZXNvdXJjZU1hcDsKLSAgICBSZXNvdXJjZU1hcCBtX3Jlc291cmNlSWRlbnRpZmllck1h
cDsKLSAgICB2b2lkIHByaW50UmVzb3VyY2VEZXNjcmlwdGlvbih1bnNpZ25lZCBpZGVudGlmaWVy
KTsKLQogICAgIFdlYktpdDo6V2ViQ3Vyc29ySW5mbyBtX2N1cnJlbnRDdXJzb3I7CiAKICAgICBi
b29sIG1faGFzV2luZG93Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>