<?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>209184</bug_id>
          
          <creation_ts>2020-03-17 09:36:06 -0700</creation_ts>
          <short_desc>Use less sync IPC for ITP testRunner methods</short_desc>
          <delta_ts>2020-03-17 14:01:46 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=209187</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>209187</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1630752</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 09:36:06 -0700</bug_when>
    <thetext>Use less sync IPC for ITP testRunner methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630754</commentid>
    <comment_count>1</comment_count>
      <attachid>393760</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 09:42:37 -0700</bug_when>
    <thetext>Created attachment 393760
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630755</commentid>
    <comment_count>2</comment_count>
      <attachid>393761</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 09:43:16 -0700</bug_when>
    <thetext>Created attachment 393761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630779</commentid>
    <comment_count>3</comment_count>
      <attachid>393765</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 10:40:41 -0700</bug_when>
    <thetext>Created attachment 393765
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630781</commentid>
    <comment_count>4</comment_count>
      <attachid>393765</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-03-17 10:42:30 -0700</bug_when>
    <thetext>Comment on attachment 393765
Patch

r=me,
watch out for flakiness caused by this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630814</commentid>
    <comment_count>5</comment_count>
      <attachid>393765</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 11:34:06 -0700</bug_when>
    <thetext>Comment on attachment 393765
Patch

Clearing flags on attachment: 393765

Committed r258566: &lt;https://trac.webkit.org/changeset/258566&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630815</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-17 11:34:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630817</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-17 11:35:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/60547182&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393760</attachid>
            <date>2020-03-17 09:42:37 -0700</date>
            <delta_ts>2020-03-17 09:43:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209184-20200317094236.patch</filename>
            <type>text/plain</type>
            <size>21145</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDY3ZDgzN2E5ZmNmODU4MjFmZjA4MzhhYWU4Y2UwNjJh
MTc0M2JlMy4uMDQ5NWViZDBkYjY5MDY5ZTExZDI1YWNkMjA1NWZhNDE3NmEzZDYwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDIwLTAzLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGxlc3Mgc3luYyBJUEMgZm9yIElUUCB0ZXN0UnVubmVyIG1ldGhvZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE4NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTAzLTE2ICBKdXN0aW4gTWlj
aGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcGVyc29uYWwg
ZW1haWwgdG8gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dG9y
cy5qc29uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCA3YjdhMDNmYzBlNDUxMDk3MjQ4NDdjNjEwZTUzMDY5Mjc4MjVj
OWM0Li5kOGVkODI4YTgyNDdkNGYwY2I3NzJmZTczNDkyNmJkOGViYWYwN2JiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVn
TW9kZShib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyCiAKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpOwogICAgIFdLUmV0YWlu
UHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2
YWx1ZSkpOwotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5n
ZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQo
KSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXREZWJ1Z01vZGVD
YWxsYmFjaygpCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShKU1N0cmluZ1JlZiBob3N0TmFtZQog
ICAgIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSIpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZUJvZHkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhvc3ROYW1lKSk7Ci0g
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAog
dm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlQ2FsbGJhY2soKQpAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNv
bmRzLCBKU1YKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzTGFzdFNlZW4i
KSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0
V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tleXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCBy
YXdLZXlzLnNpemUoKSkpOwogICAgIAotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBt
ZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxE
aWRTZXRMYXN0U2VlbkNhbGxiYWNrKCkKQEAgLTE1MzUsNyArMTUzNSw3IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBK
U1N0cmluZ1JlZiB0CiAgICAgfQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3Rp
Y3NNZXJnZVN0YXRpc3RpYyIpKTsKICAgICBXS1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IG1l
c3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJh
d1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBv
c3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5h
bWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0
aXN0aWNzQ2FsbERpZFNldE1lcmdlU3RhdGlzdGljQ2FsbGJhY2soKQpAQCAtMTU2OSw3ICsxNTY5
LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UiKSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0
aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tl
eXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCByYXdLZXlzLnNpemUoKSkpOwogCi0gICAgV0tC
dW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5i
dW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsK
KyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5k
bGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBU
ZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlQ2FsbGJhY2so
KQpAQCAtMTYwMyw3ICsxNjAzLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHYKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpOwog
ICAgIFdLUmV0YWluUHRyPFdLRGljdGlvbmFyeVJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdL
RGljdGlvbmFyeUNyZWF0ZShyYXdLZXlzLmRhdGEoKSwgcmF3VmFsdWVzLmRhdGEoKSwgcmF3S2V5
cy5zaXplKCkpKTsKICAgICAKLSAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVz
c2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0
VmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2soKQpAQCAtMjAzMCw3ICsyMDMwLDcgQEAgdm9p
ZCBUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KEpTVmFsdWVSZWYgY2FsbGJhY2sKICAgICAvLyBTZXR0aW5nIGEgY2FsbGJhY2sgaW1wbGllcyB3
ZSBleHBlY3QgdG8gcmVjZWl2ZSBjYWxsYmFja3MuIFNvIHJlZ2lzdGVyIGZvciB0aGVtLgogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkIikpOwogICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJv
ZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShub3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VC
b2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCA2OWYyMTllZTMwZTM0N2NlMmMzOWZlODhiNTUwZTg1YTY4NjhiMzI0Li43MzNmZWFjYTQ4
ODUzZTA2ZTYxNGU2Yzc0ZjJlMDIwNDZjM2Q4NzIzIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtODI1LDYgKzgyNSwxMDAgQEAgdm9pZCBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVz
c2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKSB7
CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0
cmluZ0dldFR5cGVJRCgpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGhv
c3ROYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0xhc3RTZWVuIikpIHsK
KyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlH
ZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLRG91YmxlUmVmIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzTGFzdFNlZW4oaG9zdE5hbWUsIFdLRG91
YmxlR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc01l
cmdlU3RhdGlzdGljIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5
KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMktleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMiIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGxhc3RTZWVuS2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTGFzdFNlZW4iKSk7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBoYWRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIYWRVc2VySW50ZXJhY3Rpb24iKSk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzR3JhbmRmYXRoZXJl
ZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzR3JhbmRmYXRo
ZXJlZCIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzUHJldmFsZW50S2V5
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpc1ZlcnlQcmV2YWxlbnRLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1ZlcnlQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEYXRhUmVjb3Jkc1JlbW92
ZWQiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lc0FjY2Vzc2VkRmly
c3RQYXJ0eUludGVyYWN0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGltZXNBY2Nlc3NlZEZpcnN0UGFydHlJbnRlcmFjdGlvbiIpKTsKKworICAgICAgICBX
S1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xID0gc3RhdGljX2Nhc3Q8V0tT
dHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCB0b3BGcmFtZURvbWFpbjFLZXkuZ2V0KCkpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJh
bWVEb21haW4yID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURvbWFpbjJLZXkuZ2V0KCkpKTsK
KyAgICAgICAgV0tEb3VibGVSZWYgbGFzdFNlZW4gPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGxhc3RTZWVu
S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBoYWRVc2VySW50ZXJhY3Rpb24gPSBz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCBoYWRVc2VySW50ZXJhY3Rpb25LZXkuZ2V0KCkpKTsKKyAgICAgICAg
V0tEb3VibGVSZWYgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLRG91
YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbktleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5S
ZWYgaXNHcmFuZGZhdGhlcmVkID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNHcmFuZGZhdGhlcmVkS2V5
LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1ByZXZhbGVudCA9IHN0YXRpY19jYXN0
PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGlzUHJldmFsZW50S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1Zl
cnlQcmV2YWxlbnQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBpc1ZlcnlQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tVSW50NjRSZWYgZGF0YVJlY29yZHNSZW1vdmVkID0gc3RhdGljX2Nhc3Q8
V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkuZ2V0KCkpKTsKKworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKGhvc3ROYW1lLCB0
b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgV0tEb3VibGVHZXRWYWx1ZShsYXN0U2Vl
biksIFdLQm9vbGVhbkdldFZhbHVlKGhhZFVzZXJJbnRlcmFjdGlvbiksIFdLRG91YmxlR2V0VmFs
dWUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIFdLQm9vbGVhbkdldFZhbHVlKGlzR3JhbmRm
YXRoZXJlZCksIFdLQm9vbGVhbkdldFZhbHVlKGlzUHJldmFsZW50KSwgV0tCb29sZWFuR2V0VmFs
dWUoaXNWZXJ5UHJldmFsZW50KSwgV0tVSW50NjRHZXRWYWx1ZShkYXRhUmVjb3Jkc1JlbW92ZWQp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikp
IHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25h
cnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2
YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7CisKKyAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSho
b3N0TmFtZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSIpKSB7CisgICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOworCisg
ICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2Fz
dDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGhvc3ROYW1lS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSG9zdE5hbWUiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB2YWx1
ZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlZhbHVlIikpOwor
CisgICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBob3N0TmFt
ZUtleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKGhvc3ROYW1lLCBXS0Jvb2xl
YW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCIpKSB7CisgICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBX
S0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5
KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVl
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIApAQCAtMTEyNSw5NSArMTIxOSw2IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAg
ICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoaXNFcGhlbWVyYWwpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0KLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUiKSkgewotICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKLSAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0g
c3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKFdLQm9vbGVhbkdldFZh
bHVlKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICAKLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSIpKSB7Ci0gICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tTdHJpbmdHZXRUeXBlSUQoKSk7Ci0gICAgICAgIFdL
U3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1lc3NhZ2VCb2R5
KTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShob3N0TmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NMYXN0U2VlbiIpKSB7Ci0gICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwotICAg
ICAgICAKLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVmFs
dWUiKSk7Ci0gICAgICAgIAotICAgICAgICBXS1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19j
YXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tEb3VibGVSZWYgdmFsdWUg
PSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0gICAgICAgIAotICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGhvc3ROYW1l
LCBXS0RvdWJsZUdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMiKSkgewotICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgp
KTsKLQotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gc3Rh
dGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4xS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4xIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4yS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4yIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbGFzdFNlZW5LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJM
YXN0U2VlbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhhZFVzZXJJbnRl
cmFjdGlvbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhZFVz
ZXJJbnRlcmFjdGlvbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJNb3N0UmVjZW50VXNlckludGVyYWN0aW9uIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNHcmFuZGZhdGhlcmVkS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiSXNHcmFuZGZhdGhlcmVkIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNQcmV2YWxlbnRLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJJc1ByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGlzVmVyeVByZXZhbGVudEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIklzVmVyeVByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGRhdGFSZWNvcmRzUmVtb3ZlZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkRhdGFSZWNvcmRzUmVtb3ZlZCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHRpbWVzQWNjZXNzZWRGaXJzdFBhcnR5SW50ZXJhY3Rpb25LZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUaW1lc0FjY2Vzc2VkRmlyc3RQYXJ0
eUludGVyYWN0aW9uIikpOwotCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbjEgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRvcEZyYW1lRG9tYWluMUtleS5nZXQoKSkp
OwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIgPSBzdGF0aWNfY2FzdDxXS1N0
cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHRvcEZyYW1lRG9tYWluMktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBsYXN0U2Vl
biA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgbGFzdFNlZW5LZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29s
ZWFuUmVmIGhhZFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGhhZFVzZXJJbnRl
cmFjdGlvbktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5
LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiBpc0dyYW5kZmF0aGVyZWQgPSBzdGF0aWNf
Y2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBpc0dyYW5kZmF0aGVyZWRLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29sZWFu
UmVmIGlzUHJldmFsZW50ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKLSAgICAgICAgV0tCb29sZWFuUmVmIGlzVmVyeVByZXZhbGVudCA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25h
cnksIGlzVmVyeVByZXZhbGVudEtleS5nZXQoKSkpOwotICAgICAgICBXS1VJbnQ2NFJlZiBkYXRh
UmVjb3Jkc1JlbW92ZWQgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGRhdGFSZWNvcmRzUmVtb3ZlZEtleS5n
ZXQoKSkpOwotICAgICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVEb21haW4xLCB0b3BG
cmFtZURvbWFpbjIsIFdLRG91YmxlR2V0VmFsdWUobGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1
ZShoYWRVc2VySW50ZXJhY3Rpb24pLCBXS0RvdWJsZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24pLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5H
ZXRWYWx1ZShpc1ByZXZhbGVudCksIFdLQm9vbGVhbkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCks
IFdLVUludDY0R2V0VmFsdWUoZGF0YVJlY29yZHNSZW1vdmVkKSk7Ci0KLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikpIHsKLSAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRU
eXBlSUQoKSk7Ci0KLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiVmFsdWUiKSk7Ci0KLSAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNfY2Fz
dDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9
IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0KLSAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShob3N0TmFt
ZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpIHsKLSAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7Ci0g
ICAgICAgIAotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0g
c3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gdmFsdWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJW
YWx1ZSIpKTsKLSAgICAgICAgCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS0Jvb2xlYW5SZWYgdmFs
dWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOwotICAgICAgICAKLSAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2UoaG9zdE5hbWUsIFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgImR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIikpIHsKICAg
ICAgICAgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKQEAgLTE0NzAsMTIgKzE0NzUsMTIg
QEAgV0tSZXRhaW5QdHI8V0tUeXBlUmVmPiBUZXN0SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNo
cm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEIKICAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmds
ZXRvbigpLnN0YXRpc3RpY3NTdWJtaXRUZWxlbWV0cnkoKTsKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAgICAgfQotICAgIAorCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzTm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCIpKSB7CiAgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tC
b29sZWFuR2V0VHlwZUlEKCkpOwogICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNf
Y2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKICAgICAgICAgVGVzdENvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzU2V0SXNSdW5uaW5nVGVzdCIpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393761</attachid>
            <date>2020-03-17 09:43:16 -0700</date>
            <delta_ts>2020-03-17 10:40:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209184-20200317094315.patch</filename>
            <type>text/plain</type>
            <size>20893</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDY3ZDgzN2E5ZmNmODU4MjFmZjA4MzhhYWU4Y2UwNjJh
MTc0M2JlMy4uMDQ5NWViZDBkYjY5MDY5ZTExZDI1YWNkMjA1NWZhNDE3NmEzZDYwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDIwLTAzLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGxlc3Mgc3luYyBJUEMgZm9yIElUUCB0ZXN0UnVubmVyIG1ldGhvZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE4NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTAzLTE2ICBKdXN0aW4gTWlj
aGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcGVyc29uYWwg
ZW1haWwgdG8gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dG9y
cy5qc29uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCA3YjdhMDNmYzBlNDUxMDk3MjQ4NDdjNjEwZTUzMDY5Mjc4MjVj
OWM0Li5kOGVkODI4YTgyNDdkNGYwY2I3NzJmZTczNDkyNmJkOGViYWYwN2JiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVn
TW9kZShib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyCiAKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpOwogICAgIFdLUmV0YWlu
UHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2
YWx1ZSkpOwotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5n
ZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQo
KSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXREZWJ1Z01vZGVD
YWxsYmFjaygpCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShKU1N0cmluZ1JlZiBob3N0TmFtZQog
ICAgIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSIpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZUJvZHkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhvc3ROYW1lKSk7Ci0g
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAog
dm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlQ2FsbGJhY2soKQpAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNv
bmRzLCBKU1YKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzTGFzdFNlZW4i
KSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0
V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tleXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCBy
YXdLZXlzLnNpemUoKSkpOwogICAgIAotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBt
ZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxE
aWRTZXRMYXN0U2VlbkNhbGxiYWNrKCkKQEAgLTE1MzUsNyArMTUzNSw3IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBK
U1N0cmluZ1JlZiB0CiAgICAgfQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3Rp
Y3NNZXJnZVN0YXRpc3RpYyIpKTsKICAgICBXS1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IG1l
c3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJh
d1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBv
c3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5h
bWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0
aXN0aWNzQ2FsbERpZFNldE1lcmdlU3RhdGlzdGljQ2FsbGJhY2soKQpAQCAtMTU2OSw3ICsxNTY5
LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UiKSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0
aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tl
eXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCByYXdLZXlzLnNpemUoKSkpOwogCi0gICAgV0tC
dW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5i
dW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsK
KyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5k
bGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBU
ZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlQ2FsbGJhY2so
KQpAQCAtMTYwMyw3ICsxNjAzLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHYKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpOwog
ICAgIFdLUmV0YWluUHRyPFdLRGljdGlvbmFyeVJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdL
RGljdGlvbmFyeUNyZWF0ZShyYXdLZXlzLmRhdGEoKSwgcmF3VmFsdWVzLmRhdGEoKSwgcmF3S2V5
cy5zaXplKCkpKTsKICAgICAKLSAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVz
c2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0
VmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2soKQpAQCAtMjAzMCw3ICsyMDMwLDcgQEAgdm9p
ZCBUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KEpTVmFsdWVSZWYgY2FsbGJhY2sKICAgICAvLyBTZXR0aW5nIGEgY2FsbGJhY2sgaW1wbGllcyB3
ZSBleHBlY3QgdG8gcmVjZWl2ZSBjYWxsYmFja3MuIFNvIHJlZ2lzdGVyIGZvciB0aGVtLgogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkIikpOwogICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJv
ZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShub3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VC
b2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCA2OWYyMTllZTMwZTM0N2NlMmMzOWZlODhiNTUwZTg1YTY4NjhiMzI0Li5iNWU1M2Y1NzVi
ZDNjZWM1YjRhOTk3M2Q1M2RiNjMyYTA2MjM1ZDM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtODI1LDYgKzgyNSwxMDAgQEAgdm9pZCBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVz
c2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKSB7
CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0
cmluZ0dldFR5cGVJRCgpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGhv
c3ROYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0xhc3RTZWVuIikpIHsK
KyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlH
ZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLRG91YmxlUmVmIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzTGFzdFNlZW4oaG9zdE5hbWUsIFdLRG91
YmxlR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc01l
cmdlU3RhdGlzdGljIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5
KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMktleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMiIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGxhc3RTZWVuS2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTGFzdFNlZW4iKSk7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBoYWRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIYWRVc2VySW50ZXJhY3Rpb24iKSk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzR3JhbmRmYXRoZXJl
ZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzR3JhbmRmYXRo
ZXJlZCIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzUHJldmFsZW50S2V5
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpc1ZlcnlQcmV2YWxlbnRLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1ZlcnlQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEYXRhUmVjb3Jkc1JlbW92
ZWQiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lc0FjY2Vzc2VkRmly
c3RQYXJ0eUludGVyYWN0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGltZXNBY2Nlc3NlZEZpcnN0UGFydHlJbnRlcmFjdGlvbiIpKTsKKworICAgICAgICBX
S1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xID0gc3RhdGljX2Nhc3Q8V0tT
dHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCB0b3BGcmFtZURvbWFpbjFLZXkuZ2V0KCkpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJh
bWVEb21haW4yID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURvbWFpbjJLZXkuZ2V0KCkpKTsK
KyAgICAgICAgV0tEb3VibGVSZWYgbGFzdFNlZW4gPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGxhc3RTZWVu
S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBoYWRVc2VySW50ZXJhY3Rpb24gPSBz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCBoYWRVc2VySW50ZXJhY3Rpb25LZXkuZ2V0KCkpKTsKKyAgICAgICAg
V0tEb3VibGVSZWYgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLRG91
YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbktleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5S
ZWYgaXNHcmFuZGZhdGhlcmVkID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNHcmFuZGZhdGhlcmVkS2V5
LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1ByZXZhbGVudCA9IHN0YXRpY19jYXN0
PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGlzUHJldmFsZW50S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1Zl
cnlQcmV2YWxlbnQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBpc1ZlcnlQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tVSW50NjRSZWYgZGF0YVJlY29yZHNSZW1vdmVkID0gc3RhdGljX2Nhc3Q8
V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkuZ2V0KCkpKTsKKworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKGhvc3ROYW1lLCB0
b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgV0tEb3VibGVHZXRWYWx1ZShsYXN0U2Vl
biksIFdLQm9vbGVhbkdldFZhbHVlKGhhZFVzZXJJbnRlcmFjdGlvbiksIFdLRG91YmxlR2V0VmFs
dWUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIFdLQm9vbGVhbkdldFZhbHVlKGlzR3JhbmRm
YXRoZXJlZCksIFdLQm9vbGVhbkdldFZhbHVlKGlzUHJldmFsZW50KSwgV0tCb29sZWFuR2V0VmFs
dWUoaXNWZXJ5UHJldmFsZW50KSwgV0tVSW50NjRHZXRWYWx1ZShkYXRhUmVjb3Jkc1JlbW92ZWQp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikp
IHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25h
cnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2
YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7CisKKyAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSho
b3N0TmFtZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSIpKSB7CisgICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOworCisg
ICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2Fz
dDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGhvc3ROYW1lS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSG9zdE5hbWUiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB2YWx1
ZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlZhbHVlIikpOwor
CisgICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBob3N0TmFt
ZUtleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKGhvc3ROYW1lLCBXS0Jvb2xl
YW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCIpKSB7CisgICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBX
S0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5
KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVl
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIApAQCAtMTEyNSw5NSArMTIxOSw2IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAg
ICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoaXNFcGhlbWVyYWwpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0KLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUiKSkgewotICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKLSAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0g
c3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKFdLQm9vbGVhbkdldFZh
bHVlKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICAKLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSIpKSB7Ci0gICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tTdHJpbmdHZXRUeXBlSUQoKSk7Ci0gICAgICAgIFdL
U3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1lc3NhZ2VCb2R5
KTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShob3N0TmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NMYXN0U2VlbiIpKSB7Ci0gICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwotICAg
ICAgICAKLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVmFs
dWUiKSk7Ci0gICAgICAgIAotICAgICAgICBXS1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19j
YXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tEb3VibGVSZWYgdmFsdWUg
PSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0gICAgICAgIAotICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGhvc3ROYW1l
LCBXS0RvdWJsZUdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMiKSkgewotICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgp
KTsKLQotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gc3Rh
dGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4xS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4xIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4yS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4yIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbGFzdFNlZW5LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJM
YXN0U2VlbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhhZFVzZXJJbnRl
cmFjdGlvbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhZFVz
ZXJJbnRlcmFjdGlvbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJNb3N0UmVjZW50VXNlckludGVyYWN0aW9uIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNHcmFuZGZhdGhlcmVkS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiSXNHcmFuZGZhdGhlcmVkIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNQcmV2YWxlbnRLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJJc1ByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGlzVmVyeVByZXZhbGVudEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIklzVmVyeVByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGRhdGFSZWNvcmRzUmVtb3ZlZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkRhdGFSZWNvcmRzUmVtb3ZlZCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHRpbWVzQWNjZXNzZWRGaXJzdFBhcnR5SW50ZXJhY3Rpb25LZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUaW1lc0FjY2Vzc2VkRmlyc3RQYXJ0
eUludGVyYWN0aW9uIikpOwotCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbjEgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRvcEZyYW1lRG9tYWluMUtleS5nZXQoKSkp
OwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIgPSBzdGF0aWNfY2FzdDxXS1N0
cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHRvcEZyYW1lRG9tYWluMktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBsYXN0U2Vl
biA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgbGFzdFNlZW5LZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29s
ZWFuUmVmIGhhZFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGhhZFVzZXJJbnRl
cmFjdGlvbktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5
LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiBpc0dyYW5kZmF0aGVyZWQgPSBzdGF0aWNf
Y2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBpc0dyYW5kZmF0aGVyZWRLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29sZWFu
UmVmIGlzUHJldmFsZW50ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKLSAgICAgICAgV0tCb29sZWFuUmVmIGlzVmVyeVByZXZhbGVudCA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25h
cnksIGlzVmVyeVByZXZhbGVudEtleS5nZXQoKSkpOwotICAgICAgICBXS1VJbnQ2NFJlZiBkYXRh
UmVjb3Jkc1JlbW92ZWQgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGRhdGFSZWNvcmRzUmVtb3ZlZEtleS5n
ZXQoKSkpOwotICAgICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVEb21haW4xLCB0b3BG
cmFtZURvbWFpbjIsIFdLRG91YmxlR2V0VmFsdWUobGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1
ZShoYWRVc2VySW50ZXJhY3Rpb24pLCBXS0RvdWJsZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24pLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5H
ZXRWYWx1ZShpc1ByZXZhbGVudCksIFdLQm9vbGVhbkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCks
IFdLVUludDY0R2V0VmFsdWUoZGF0YVJlY29yZHNSZW1vdmVkKSk7Ci0KLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikpIHsKLSAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRU
eXBlSUQoKSk7Ci0KLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiVmFsdWUiKSk7Ci0KLSAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNfY2Fz
dDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9
IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0KLSAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShob3N0TmFt
ZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpIHsKLSAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7Ci0g
ICAgICAgIAotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0g
c3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gdmFsdWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJW
YWx1ZSIpKTsKLSAgICAgICAgCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS0Jvb2xlYW5SZWYgdmFs
dWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOwotICAgICAgICAKLSAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2UoaG9zdE5hbWUsIFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgImR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIikpIHsKICAg
ICAgICAgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKQEAgLTE0NzAsNyArMTQ3NSw3IEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KCk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICAKKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9v
bGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nh
c3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393765</attachid>
            <date>2020-03-17 10:40:41 -0700</date>
            <delta_ts>2020-03-17 11:34:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209184-20200317104040.patch</filename>
            <type>text/plain</type>
            <size>23071</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NTQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDY3ZDgzN2E5ZmNmODU4MjFmZjA4MzhhYWU4Y2UwNjJh
MTc0M2JlMy4uMDQ5NWViZDBkYjY5MDY5ZTExZDI1YWNkMjA1NWZhNDE3NmEzZDYwZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIy
IEBACisyMDIwLTAzLTE3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgVXNlIGxlc3Mgc3luYyBJUEMgZm9yIElUUCB0ZXN0UnVubmVyIG1ldGhvZHMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTE4NAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5l
cjo6c2V0U3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnNl
dFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXVFI6
OlRlc3RSdW5uZXI6OnNldFN0YXRpc3RpY3NMYXN0U2Vlbik6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyk6CisgICAgICAgIChXVFI6OlRlc3RS
dW5uZXI6OnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXVFI6OlRl
c3RSdW5uZXI6OnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAo
V1RSOjpUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxi
YWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcDoKKyAg
ICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVNZXNzYWdlRnJvbUluamVjdGVk
QnVuZGxlKToKKyAgICAgICAgKFdUUjo6VGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUpOgorCiAyMDIwLTAzLTE2ICBKdXN0aW4gTWlj
aGF1ZCAgPGp1c3Rpbl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgcGVyc29uYWwg
ZW1haWwgdG8gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbnRyaWJ1dG9y
cy5qc29uCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmNwcAppbmRleCA3YjdhMDNmYzBlNDUxMDk3MjQ4NDdjNjEwZTUzMDY5Mjc4MjVj
OWM0Li5kOGVkODI4YTgyNDdkNGYwY2I3NzJmZTczNDkyNmJkOGViYWYwN2JiIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAK
QEAgLTE0MzUsNyArMTQzNSw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0U3RhdGlzdGljc0RlYnVn
TW9kZShib29sIHZhbHVlLCBKU1ZhbHVlUmVmIGNvbXBsZXRpb25IYW5kbGVyCiAKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzRGVidWdNb2RlIikpOwogICAgIFdLUmV0YWlu
UHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZSh2
YWx1ZSkpOwotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2FnZShJbmplY3RlZEJ1bmRs
ZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5n
ZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJbmplY3RlZEJ1bmRsZTo6
c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBtZXNzYWdlQm9keS5nZXQo
KSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxEaWRTZXREZWJ1Z01vZGVD
YWxsYmFjaygpCkBAIC0xNDQ5LDcgKzE0NDksNyBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFN0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShKU1N0cmluZ1JlZiBob3N0TmFtZQog
ICAgIAogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0so
V0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSIpKTsKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2Fn
ZUJvZHkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aEpTU3RyaW5nKGhvc3ROYW1lKSk7Ci0g
ICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0
b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxs
cHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAog
dm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlQ2FsbGJhY2soKQpAQCAtMTQ4MSw3ICsxNDgxLDcgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRTdGF0aXN0aWNzTGFzdFNlZW4oSlNTdHJpbmdSZWYgaG9zdE5hbWUsIGRvdWJsZSBzZWNv
bmRzLCBKU1YKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzTGFzdFNlZW4i
KSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0
V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tleXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCBy
YXdLZXlzLnNpemUoKSkpOwogICAgIAotICAgIFdLQnVuZGxlUG9zdFN5bmNocm9ub3VzTWVzc2Fn
ZShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgp
LCBtZXNzYWdlQm9keS5nZXQoKSwgbnVsbHB0cik7CisgICAgV0tCdW5kbGVQb3N0TWVzc2FnZShJ
bmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIG1lc3NhZ2VOYW1lLmdldCgpLCBt
ZXNzYWdlQm9keS5nZXQoKSk7CiB9CiAKIHZvaWQgVGVzdFJ1bm5lcjo6c3RhdGlzdGljc0NhbGxE
aWRTZXRMYXN0U2VlbkNhbGxiYWNrKCkKQEAgLTE1MzUsNyArMTUzNSw3IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBK
U1N0cmluZ1JlZiB0CiAgICAgfQogICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdl
TmFtZSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlNldFN0YXRpc3Rp
Y3NNZXJnZVN0YXRpc3RpYyIpKTsKICAgICBXS1JldGFpblB0cjxXS0RpY3Rpb25hcnlSZWY+IG1l
c3NhZ2VCb2R5ID0gYWRvcHRXSyhXS0RpY3Rpb25hcnlDcmVhdGUocmF3S2V5cy5kYXRhKCksIHJh
d1ZhbHVlcy5kYXRhKCksIHJhd0tleXMuc2l6ZSgpKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hy
b25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2Fn
ZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBv
c3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5h
bWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0
aXN0aWNzQ2FsbERpZFNldE1lcmdlU3RhdGlzdGljQ2FsbGJhY2soKQpAQCAtMTU2OSw3ICsxNTY5
LDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UoSlNT
dHJpbmdSZWYgaG9zdE5hbWUsIGJvb2wgdmFsdWUKICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJT
ZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UiKSk7CiAgICAgV0tSZXRhaW5QdHI8V0tEaWN0
aW9uYXJ5UmVmPiBtZXNzYWdlQm9keSA9IGFkb3B0V0soV0tEaWN0aW9uYXJ5Q3JlYXRlKHJhd0tl
eXMuZGF0YSgpLCByYXdWYWx1ZXMuZGF0YSgpLCByYXdLZXlzLnNpemUoKSkpOwogCi0gICAgV0tC
dW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5i
dW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpLCBudWxscHRyKTsK
KyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5k
bGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5LmdldCgpKTsKIH0KIAogdm9pZCBU
ZXN0UnVubmVyOjpzdGF0aXN0aWNzQ2FsbERpZFNldFByZXZhbGVudFJlc291cmNlQ2FsbGJhY2so
KQpAQCAtMTYwMyw3ICsxNjAzLDcgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRTdGF0aXN0aWNzVmVy
eVByZXZhbGVudFJlc291cmNlKEpTU3RyaW5nUmVmIGhvc3ROYW1lLCBib29sIHYKICAgICBXS1Jl
dGFpblB0cjxXS1N0cmluZ1JlZj4gbWVzc2FnZU5hbWUgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRl
V2l0aFVURjhDU3RyaW5nKCJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpOwog
ICAgIFdLUmV0YWluUHRyPFdLRGljdGlvbmFyeVJlZj4gbWVzc2FnZUJvZHkgPSBhZG9wdFdLKFdL
RGljdGlvbmFyeUNyZWF0ZShyYXdLZXlzLmRhdGEoKSwgcmF3VmFsdWVzLmRhdGEoKSwgcmF3S2V5
cy5zaXplKCkpKTsKICAgICAKLSAgICBXS0J1bmRsZVBvc3RTeW5jaHJvbm91c01lc3NhZ2UoSW5q
ZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVz
c2FnZUJvZHkuZ2V0KCksIG51bGxwdHIpOworICAgIFdLQnVuZGxlUG9zdE1lc3NhZ2UoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCBtZXNzYWdlTmFtZS5nZXQoKSwgbWVzc2Fn
ZUJvZHkuZ2V0KCkpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnN0YXRpc3RpY3NDYWxsRGlkU2V0
VmVyeVByZXZhbGVudFJlc291cmNlQ2FsbGJhY2soKQpAQCAtMjAzMCw3ICsyMDMwLDcgQEAgdm9p
ZCBUZXN0UnVubmVyOjppbnN0YWxsU3RhdGlzdGljc0RpZFNjYW5EYXRhUmVjb3Jkc0NhbGxiYWNr
KEpTVmFsdWVSZWYgY2FsbGJhY2sKICAgICAvLyBTZXR0aW5nIGEgY2FsbGJhY2sgaW1wbGllcyB3
ZSBleHBlY3QgdG8gcmVjZWl2ZSBjYWxsYmFja3MuIFNvIHJlZ2lzdGVyIGZvciB0aGVtLgogICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtZXNzYWdlTmFtZSA9IGFkb3B0V0soV0tTdHJpbmdD
cmVhdGVXaXRoVVRGOENTdHJpbmcoIlN0YXRpc3RpY3NOb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jk
c1dlcmVTY2FubmVkIikpOwogICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gbWVzc2FnZUJv
ZHkgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0ZShub3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dl
cmVTY2FubmVkKSk7Ci0gICAgV0tCdW5kbGVQb3N0U3luY2hyb25vdXNNZXNzYWdlKEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VC
b2R5LmdldCgpLCBudWxscHRyKTsKKyAgICBXS0J1bmRsZVBvc3RNZXNzYWdlKEluamVjdGVkQnVu
ZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIG1lc3NhZ2VCb2R5
LmdldCgpKTsKIH0KIAogdm9pZCBUZXN0UnVubmVyOjpzdGF0aXN0aWNzRGlkU2NhbkRhdGFSZWNv
cmRzQ2FsbGJhY2soKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0SW52
b2NhdGlvbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcApp
bmRleCA2OWYyMTllZTMwZTM0N2NlMmMzOWZlODhiNTUwZTg1YTY4NjhiMzI0Li5iNWU1M2Y1NzVi
ZDNjZWM1YjRhOTk3M2Q1M2RiNjMyYTA2MjM1ZDM3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RJbnZvY2F0aW9uLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RJbnZvY2F0aW9uLmNwcApAQCAtODI1LDYgKzgyNSwxMDAgQEAgdm9pZCBUZXN0SW52b2Nh
dGlvbjo6ZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tSW5qZWN0ZWRCdW5kbGUoV0tTdHJpbmdSZWYgbWVz
c2FnZU5hbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0RlYnVnTW9kZSIpKSB7
CisgICAgICAgIEFTU0VSVChXS0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0
VHlwZUlEKCkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jv
b2xlYW5SZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRv
bigpLnNldFN0YXRpc3RpY3NEZWJ1Z01vZGUoV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS1N0
cmluZ0dldFR5cGVJRCgpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4obWVzc2FnZUJvZHkpOworICAgICAgICBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGhv
c3ROYW1lKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc0xhc3RTZWVuIikpIHsK
KyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlH
ZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlv
bmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAgICAg
ICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNf
Y2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURp
Y3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLRG91YmxlUmVmIHZhbHVl
ID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVz
c2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzTGFzdFNlZW4oaG9zdE5hbWUsIFdLRG91
YmxlR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc01l
cmdlU3RhdGlzdGljIikpIHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5
KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVm
IG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVz
c2FnZUJvZHkpOworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMUtleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMSIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHRvcEZyYW1lRG9tYWluMktleSA9IGFkb3B0
V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlRvcEZyYW1lRG9tYWluMiIpKTsKKyAg
ICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGxhc3RTZWVuS2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTGFzdFNlZW4iKSk7CisgICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBoYWRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIYWRVc2VySW50ZXJhY3Rpb24iKSk7CisgICAgICAgIFdL
UmV0YWluUHRyPFdLU3RyaW5nUmVmPiBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5ID0gYWRv
cHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvbiIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzR3JhbmRmYXRoZXJl
ZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIklzR3JhbmRmYXRo
ZXJlZCIpKTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGlzUHJldmFsZW50S2V5
ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiSXNQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBpc1ZlcnlQcmV2YWxlbnRLZXkgPSBh
ZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJJc1ZlcnlQcmV2YWxlbnQiKSk7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkg
PSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJEYXRhUmVjb3Jkc1JlbW92
ZWQiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB0aW1lc0FjY2Vzc2VkRmly
c3RQYXJ0eUludGVyYWN0aW9uS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVGltZXNBY2Nlc3NlZEZpcnN0UGFydHlJbnRlcmFjdGlvbiIpKTsKKworICAgICAgICBX
S1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19jYXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJhbWVEb21haW4xID0gc3RhdGljX2Nhc3Q8V0tT
dHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5
LCB0b3BGcmFtZURvbWFpbjFLZXkuZ2V0KCkpKTsKKyAgICAgICAgV0tTdHJpbmdSZWYgdG9wRnJh
bWVEb21haW4yID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB0b3BGcmFtZURvbWFpbjJLZXkuZ2V0KCkpKTsK
KyAgICAgICAgV0tEb3VibGVSZWYgbGFzdFNlZW4gPSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4o
V0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGxhc3RTZWVu
S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBoYWRVc2VySW50ZXJhY3Rpb24gPSBz
dGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2Fn
ZUJvZHlEaWN0aW9uYXJ5LCBoYWRVc2VySW50ZXJhY3Rpb25LZXkuZ2V0KCkpKTsKKyAgICAgICAg
V0tEb3VibGVSZWYgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLRG91
YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwg
bW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbktleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5S
ZWYgaXNHcmFuZGZhdGhlcmVkID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25h
cnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNHcmFuZGZhdGhlcmVkS2V5
LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1ByZXZhbGVudCA9IHN0YXRpY19jYXN0
PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGlzUHJldmFsZW50S2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiBpc1Zl
cnlQcmV2YWxlbnQgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0
ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBpc1ZlcnlQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKKyAgICAgICAgV0tVSW50NjRSZWYgZGF0YVJlY29yZHNSZW1vdmVkID0gc3RhdGljX2Nhc3Q8
V0tVSW50NjRSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCBkYXRhUmVjb3Jkc1JlbW92ZWRLZXkuZ2V0KCkpKTsKKworICAgICAgICBUZXN0Q29udHJv
bGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc01lcmdlU3RhdGlzdGljKGhvc3ROYW1lLCB0
b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgV0tEb3VibGVHZXRWYWx1ZShsYXN0U2Vl
biksIFdLQm9vbGVhbkdldFZhbHVlKGhhZFVzZXJJbnRlcmFjdGlvbiksIFdLRG91YmxlR2V0VmFs
dWUobW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiksIFdLQm9vbGVhbkdldFZhbHVlKGlzR3JhbmRm
YXRoZXJlZCksIFdLQm9vbGVhbkdldFZhbHVlKGlzUHJldmFsZW50KSwgV0tCb29sZWFuR2V0VmFs
dWUoaXNWZXJ5UHJldmFsZW50KSwgV0tVSW50NjRHZXRWYWx1ZShkYXRhUmVjb3Jkc1JlbW92ZWQp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikp
IHsKKyAgICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25h
cnlHZXRUeXBlSUQoKSk7CisKKyAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOworICAg
ICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3Ry
aW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKKyAgICAgICAgV0tSZXRhaW5Q
dHI8V0tTdHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiVmFsdWUiKSk7CisKKyAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0
aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9k
eURpY3Rpb25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7CisgICAgICAgIFdLQm9vbGVhblJlZiB2
YWx1ZSA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktl
eShtZXNzYWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7CisKKyAgICAgICAgVGVz
dENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSho
b3N0TmFtZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1lc3NhZ2VOYW1lLCAi
U2V0U3RhdGlzdGljc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSIpKSB7CisgICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOworCisg
ICAgICAgIFdLRGljdGlvbmFyeVJlZiBtZXNzYWdlQm9keURpY3Rpb25hcnkgPSBzdGF0aWNfY2Fz
dDxXS0RpY3Rpb25hcnlSZWY+KG1lc3NhZ2VCb2R5KTsKKyAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IGhvc3ROYW1lS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiSG9zdE5hbWUiKSk7CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB2YWx1
ZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIlZhbHVlIikpOwor
CisgICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+
KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBob3N0TmFt
ZUtleS5nZXQoKSkpOworICAgICAgICBXS0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxX
S0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlEaWN0aW9u
YXJ5LCB2YWx1ZUtleS5nZXQoKSkpOworCisgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlKGhvc3ROYW1lLCBXS0Jvb2xl
YW5HZXRWYWx1ZSh2YWx1ZSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUsICJTdGF0aXN0aWNzTm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCIpKSB7CisgICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tCb29sZWFuR2V0VHlwZUlEKCkpOworICAgICAgICBX
S0Jvb2xlYW5SZWYgdmFsdWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KG1lc3NhZ2VCb2R5
KTsKKyAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NOb3Rp
ZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFdLQm9vbGVhbkdldFZhbHVlKHZhbHVl
KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
IH0KIApAQCAtMTEyNSw5NSArMTIxOSw2IEBAIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdElu
dm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJvbm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAg
ICAgIFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gcmVzdWx0ID0gYWRvcHRXSyhXS0Jvb2xlYW5DcmVh
dGUoaXNFcGhlbWVyYWwpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0KLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUiKSkgewotICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkp
ID09IFdLQm9vbGVhbkdldFR5cGVJRCgpKTsKLSAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0g
c3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5zZXRTdGF0aXN0aWNzRGVidWdNb2RlKFdLQm9vbGVhbkdldFZh
bHVlKHZhbHVlKSk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLSAgICAKLSAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhtZXNzYWdlTmFtZSwgIlNldFN0YXRpc3Rp
Y3NQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSIpKSB7Ci0gICAgICAgIEFTU0VSVChXS0dl
dFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tTdHJpbmdHZXRUeXBlSUQoKSk7Ci0gICAgICAgIFdL
U3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGljX2Nhc3Q8V0tTdHJpbmdSZWY+KG1lc3NhZ2VCb2R5
KTsKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShob3N0TmFtZSk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIH0KLSAgICAKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyht
ZXNzYWdlTmFtZSwgIlNldFN0YXRpc3RpY3NMYXN0U2VlbiIpKSB7Ci0gICAgICAgIEFTU0VSVChX
S0dldFR5cGVJRChtZXNzYWdlQm9keSkgPT0gV0tEaWN0aW9uYXJ5R2V0VHlwZUlEKCkpOwotICAg
ICAgICAKLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFyeSA9IHN0
YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBXS1JldGFp
blB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiVmFs
dWUiKSk7Ci0gICAgICAgIAotICAgICAgICBXS1N0cmluZ1JlZiBob3N0TmFtZSA9IHN0YXRpY19j
YXN0PFdLU3RyaW5nUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGlj
dGlvbmFyeSwgaG9zdE5hbWVLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tEb3VibGVSZWYgdmFsdWUg
PSBzdGF0aWNfY2FzdDxXS0RvdWJsZVJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0gICAgICAgIAotICAgICAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkuc2V0U3RhdGlzdGljc0xhc3RTZWVuKGhvc3ROYW1l
LCBXS0RvdWJsZUdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIAotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICB9Ci0gICAgCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
bWVzc2FnZU5hbWUsICJTZXRTdGF0aXN0aWNzTWVyZ2VTdGF0aXN0aWMiKSkgewotICAgICAgICBB
U1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLRGljdGlvbmFyeUdldFR5cGVJRCgp
KTsKLQotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0gc3Rh
dGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0YWlu
UHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4xS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4xIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gdG9wRnJhbWVEb21haW4yS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiVG9wRnJhbWVEb21haW4yIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1Jl
Zj4gbGFzdFNlZW5LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJM
YXN0U2VlbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGhhZFVzZXJJbnRl
cmFjdGlvbktleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIkhhZFVz
ZXJJbnRlcmFjdGlvbiIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb25LZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhD
U3RyaW5nKCJNb3N0UmVjZW50VXNlckludGVyYWN0aW9uIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNHcmFuZGZhdGhlcmVkS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiSXNHcmFuZGZhdGhlcmVkIikpOwotICAgICAgICBXS1JldGFpblB0
cjxXS1N0cmluZ1JlZj4gaXNQcmV2YWxlbnRLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKCJJc1ByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGlzVmVyeVByZXZhbGVudEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIklzVmVyeVByZXZhbGVudCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJp
bmdSZWY+IGRhdGFSZWNvcmRzUmVtb3ZlZEtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRo
VVRGOENTdHJpbmcoIkRhdGFSZWNvcmRzUmVtb3ZlZCIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHRpbWVzQWNjZXNzZWRGaXJzdFBhcnR5SW50ZXJhY3Rpb25LZXkgPSBhZG9w
dFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJUaW1lc0FjY2Vzc2VkRmlyc3RQYXJ0
eUludGVyYWN0aW9uIikpOwotCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BG
cmFtZURvbWFpbjEgPSBzdGF0aWNfY2FzdDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRl
bUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIHRvcEZyYW1lRG9tYWluMUtleS5nZXQoKSkp
OwotICAgICAgICBXS1N0cmluZ1JlZiB0b3BGcmFtZURvbWFpbjIgPSBzdGF0aWNfY2FzdDxXS1N0
cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnks
IHRvcEZyYW1lRG9tYWluMktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBsYXN0U2Vl
biA9IHN0YXRpY19jYXN0PFdLRG91YmxlUmVmPihXS0RpY3Rpb25hcnlHZXRJdGVtRm9yS2V5KG1l
c3NhZ2VCb2R5RGljdGlvbmFyeSwgbGFzdFNlZW5LZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29s
ZWFuUmVmIGhhZFVzZXJJbnRlcmFjdGlvbiA9IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tE
aWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGhhZFVzZXJJbnRl
cmFjdGlvbktleS5nZXQoKSkpOwotICAgICAgICBXS0RvdWJsZVJlZiBtb3N0UmVjZW50VXNlcklu
dGVyYWN0aW9uID0gc3RhdGljX2Nhc3Q8V0tEb3VibGVSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uS2V5
LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiBpc0dyYW5kZmF0aGVyZWQgPSBzdGF0aWNf
Y2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBpc0dyYW5kZmF0aGVyZWRLZXkuZ2V0KCkpKTsKLSAgICAgICAgV0tCb29sZWFu
UmVmIGlzUHJldmFsZW50ID0gc3RhdGljX2Nhc3Q8V0tCb29sZWFuUmVmPihXS0RpY3Rpb25hcnlH
ZXRJdGVtRm9yS2V5KG1lc3NhZ2VCb2R5RGljdGlvbmFyeSwgaXNQcmV2YWxlbnRLZXkuZ2V0KCkp
KTsKLSAgICAgICAgV0tCb29sZWFuUmVmIGlzVmVyeVByZXZhbGVudCA9IHN0YXRpY19jYXN0PFdL
Qm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25h
cnksIGlzVmVyeVByZXZhbGVudEtleS5nZXQoKSkpOwotICAgICAgICBXS1VJbnQ2NFJlZiBkYXRh
UmVjb3Jkc1JlbW92ZWQgPSBzdGF0aWNfY2FzdDxXS1VJbnQ2NFJlZj4oV0tEaWN0aW9uYXJ5R2V0
SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rpb25hcnksIGRhdGFSZWNvcmRzUmVtb3ZlZEtleS5n
ZXQoKSkpOwotICAgICAgICAKLSAgICAgICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNl
dFN0YXRpc3RpY3NNZXJnZVN0YXRpc3RpYyhob3N0TmFtZSwgdG9wRnJhbWVEb21haW4xLCB0b3BG
cmFtZURvbWFpbjIsIFdLRG91YmxlR2V0VmFsdWUobGFzdFNlZW4pLCBXS0Jvb2xlYW5HZXRWYWx1
ZShoYWRVc2VySW50ZXJhY3Rpb24pLCBXS0RvdWJsZUdldFZhbHVlKG1vc3RSZWNlbnRVc2VySW50
ZXJhY3Rpb24pLCBXS0Jvb2xlYW5HZXRWYWx1ZShpc0dyYW5kZmF0aGVyZWQpLCBXS0Jvb2xlYW5H
ZXRWYWx1ZShpc1ByZXZhbGVudCksIFdLQm9vbGVhbkdldFZhbHVlKGlzVmVyeVByZXZhbGVudCks
IFdLVUludDY0R2V0VmFsdWUoZGF0YVJlY29yZHNSZW1vdmVkKSk7Ci0KLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgfQotICAgIAotICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKG1lc3NhZ2VOYW1lLCAiU2V0U3RhdGlzdGljc1ByZXZhbGVudFJlc291cmNlIikpIHsKLSAg
ICAgICAgQVNTRVJUKFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRU
eXBlSUQoKSk7Ci0KLSAgICAgICAgV0tEaWN0aW9uYXJ5UmVmIG1lc3NhZ2VCb2R5RGljdGlvbmFy
eSA9IHN0YXRpY19jYXN0PFdLRGljdGlvbmFyeVJlZj4obWVzc2FnZUJvZHkpOwotICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaG9zdE5hbWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3Jl
YXRlV2l0aFVURjhDU3RyaW5nKCJIb3N0TmFtZSIpKTsKLSAgICAgICAgV0tSZXRhaW5QdHI8V0tT
dHJpbmdSZWY+IHZhbHVlS2V5ID0gYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmlu
ZygiVmFsdWUiKSk7Ci0KLSAgICAgICAgV0tTdHJpbmdSZWYgaG9zdE5hbWUgPSBzdGF0aWNfY2Fz
dDxXS1N0cmluZ1JlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNzYWdlQm9keURpY3Rp
b25hcnksIGhvc3ROYW1lS2V5LmdldCgpKSk7Ci0gICAgICAgIFdLQm9vbGVhblJlZiB2YWx1ZSA9
IHN0YXRpY19jYXN0PFdLQm9vbGVhblJlZj4oV0tEaWN0aW9uYXJ5R2V0SXRlbUZvcktleShtZXNz
YWdlQm9keURpY3Rpb25hcnksIHZhbHVlS2V5LmdldCgpKSk7Ci0KLSAgICAgICAgVGVzdENvbnRy
b2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZShob3N0TmFt
ZSwgV0tCb29sZWFuR2V0VmFsdWUodmFsdWUpKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgfQotCi0gICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcobWVzc2FnZU5hbWUs
ICJTZXRTdGF0aXN0aWNzVmVyeVByZXZhbGVudFJlc291cmNlIikpIHsKLSAgICAgICAgQVNTRVJU
KFdLR2V0VHlwZUlEKG1lc3NhZ2VCb2R5KSA9PSBXS0RpY3Rpb25hcnlHZXRUeXBlSUQoKSk7Ci0g
ICAgICAgIAotICAgICAgICBXS0RpY3Rpb25hcnlSZWYgbWVzc2FnZUJvZHlEaWN0aW9uYXJ5ID0g
c3RhdGljX2Nhc3Q8V0tEaWN0aW9uYXJ5UmVmPihtZXNzYWdlQm9keSk7Ci0gICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBob3N0TmFtZUtleSA9IGFkb3B0V0soV0tTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIkhvc3ROYW1lIikpOwotICAgICAgICBXS1JldGFpblB0cjxXS1N0cmlu
Z1JlZj4gdmFsdWVLZXkgPSBhZG9wdFdLKFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJW
YWx1ZSIpKTsKLSAgICAgICAgCi0gICAgICAgIFdLU3RyaW5nUmVmIGhvc3ROYW1lID0gc3RhdGlj
X2Nhc3Q8V0tTdHJpbmdSZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXkobWVzc2FnZUJvZHlE
aWN0aW9uYXJ5LCBob3N0TmFtZUtleS5nZXQoKSkpOwotICAgICAgICBXS0Jvb2xlYW5SZWYgdmFs
dWUgPSBzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JLZXko
bWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCB2YWx1ZUtleS5nZXQoKSkpOwotICAgICAgICAKLSAgICAg
ICAgVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnNldFN0YXRpc3RpY3NWZXJ5UHJldmFsZW50
UmVzb3VyY2UoaG9zdE5hbWUsIFdLQm9vbGVhbkdldFZhbHVlKHZhbHVlKSk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOwotICAgIH0KICAgICAKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhtZXNzYWdlTmFtZSwgImR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzIikpIHsKICAg
ICAgICAgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKTsKQEAgLTE0NzAsNyArMTQ3NSw3IEBA
IFdLUmV0YWluUHRyPFdLVHlwZVJlZj4gVGVzdEludm9jYXRpb246OmRpZFJlY2VpdmVTeW5jaHJv
bm91c01lc3NhZ2VGcm9tSW5qZWN0ZWRCCiAgICAgICAgIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5zdGF0aXN0aWNzU3VibWl0VGVsZW1ldHJ5KCk7CiAgICAgICAgIHJldHVybiBudWxscHRy
OwogICAgIH0KLSAgICAKKwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKG1l
c3NhZ2VOYW1lLCAiU3RhdGlzdGljc05vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQiKSkgewogICAgICAgICBBU1NFUlQoV0tHZXRUeXBlSUQobWVzc2FnZUJvZHkpID09IFdLQm9v
bGVhbkdldFR5cGVJRCgpKTsKICAgICAgICAgV0tCb29sZWFuUmVmIHZhbHVlID0gc3RhdGljX2Nh
c3Q8V0tCb29sZWFuUmVmPihtZXNzYWdlQm9keSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRlLXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFn
ZS1hY2Nlc3MtZGF0YWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFj
Y2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5o
dG1sCmluZGV4IDQxYTVjOTMyMmYxNDlkZGQxMTA5NGMxOGJlMDE0YTc0Mjk3MDFiMGMuLjI0NDhj
OWMwMGRlZjY5NjQzNmY5N2I3ODVjNTJkYTA4YzBhZTNhZjIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1z
dG9yYWdlLWFjY2Vzcy1kYXRhYmFzZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy1k
YXRhYmFzZS5odG1sCkBAIC0xOCw3ICsxOCwxMSBAQAogICAgICAgICAgICAgICAgICAgICB0ZXN0
UnVubmVyLnNldFN0YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsLCB0cnVl
LCBmdW5jdGlvbiAoKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFz
c2VkKGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2ll
cyhmYWxzZSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5h
YmxlRmVhdHVyZShmYWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGV2ZW50LmRhdGEucmVwbGFjZSgiRkFJTCAiLCAiIikpOwogICAgICAgICAgICAgfSBlbHNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvYWdncmVnYXRl
LXNvcnRlZC1kYXRhLXdpdGgtc3RvcmFnZS1hY2Nlc3MuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFj
Y2Vzcy5odG1sCmluZGV4IDllNzU5OWNhODQ2OThjN2ZhYTE2ZmFlMjRhYzMyOTk5Yzc4NWU3M2Uu
LjdiMzY2NTM5YTFkMmYwYTE3MGYwNWMwNDk4YTg0NmUxMjU3OTUxYTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEt
d2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9hZ2dyZWdhdGUtc29ydGVkLWRhdGEtd2l0aC1zdG9yYWdlLWFjY2Vzcy5odG1s
CkBAIC0xNyw3ICsxNywxMSBAQAogICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnNldFN0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5VXJsLCB0cnVlLCBmdW5jdGlvbiAo
KSB7CiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2ZW50LmRh
dGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1
bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkQmxvY2tUaGlyZFBhcnR5Q29va2llcyhmYWxzZSwgZnVu
Y3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RW5hYmxlRmVhdHVyZShm
YWxzZSwgZmluaXNoSlNUZXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKGV2ZW50LmRhdGEu
cmVwbGFjZSgiRkFJTCAiLCAiIikpOwogICAgICAgICAgICAgfSBlbHNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>