<?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>226961</bug_id>
          
          <creation_ts>2021-06-13 23:59:38 -0700</creation_ts>
          <short_desc>Import WPT webrtc-extensions</short_desc>
          <delta_ts>2021-06-14 23:47:19 -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>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1769329</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-13 23:59:38 -0700</bug_when>
    <thetext>Import WPT webrtc-extensions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769331</commentid>
    <comment_count>1</comment_count>
      <attachid>431304</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-14 00:03:40 -0700</bug_when>
    <thetext>Created attachment 431304
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769332</commentid>
    <comment_count>2</comment_count>
      <attachid>431305</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-06-14 01:47:06 -0700</bug_when>
    <thetext>Created attachment 431305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769708</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-14 23:46:27 -0700</bug_when>
    <thetext>Committed r278861 (238805@main): &lt;https://commits.webkit.org/238805@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431305.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1769709</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-14 23:47:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/79326903&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431304</attachid>
            <date>2021-06-14 00:03:40 -0700</date>
            <delta_ts>2021-06-14 01:47:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226961-20210614090339.patch</filename>
            <type>text/plain</type>
            <size>55735</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4NjA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9saWJ3ZWJydGMvQ2hhbmdlTG9nIGIvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL0NoYW5n
ZUxvZwppbmRleCBiMTczZmRhYjI1ZTRiODAxZGMyZWJmZmUxOWU2MGJlODhmNDQ1MjI0Li4zNzkw
YjYxNzgwNjMxNjI2YjFmYzFlYTc2YzhlNzk1NTYzNjVkODI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS9saWJ3ZWJydGMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L2xp
YndlYnJ0Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNi0xNCAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wb3J0IFdQVCB3ZWJydGMtZXh0
ZW5zaW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI2OTYxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY0L2gyNjRfYml0c3RyZWFtX3BhcnNlci5j
YzoKKwogMjAyMS0wNi0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAg
ICAgICAgRW5hYmxlIGtWVFZpZGVvRW5jb2RlclNwZWNpZmljYXRpb25fUmVxdWlyZWRMb3dMYXRl
bmN5IGluIGNhc2Ugb2YgTWFjT1Mgc29mdHdhcmUgZW5jb2RlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzNTI5
ODdmZWNhMjBmNWU1OTQ5N2YxZWJkMTI5MGVmMjA2MjU0MDMuLjczYTUzOTM1MDJjNzNiMDdmZmJl
MzY4ZDhmYjk4MzRmNjYxYmVlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0w
Ni0xMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RGlz
cGxheU1lZGlhIEFQSSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNjg3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxMzQw
NDE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dDogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUtcmF0ZS5odG1sCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxl
KToKKyAgICAgICAgT25seSBhcHBseSBkZWNpbWF0aW9uIGluIGNhc2UgZnJhbWUgcmF0ZSBpcyBz
ZXQuCisKIDIwMjEtMDYtMDggIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPiBhbmQg
VmljdG9yIE0uIEphcXVleiBMLiA8dmphcXVlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVwZGF0
ZSBsaWJ3ZWJydGMgdG8gTTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJy
dGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlkZW8vaDI2NC9oMjY0X2JpdHN0cmVhbV9wYXJzZXIu
Y2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ3ZWJydGMvU291cmNlL3dlYnJ0Yy9jb21tb25fdmlk
ZW8vaDI2NC9oMjY0X2JpdHN0cmVhbV9wYXJzZXIuY2MKaW5kZXggM2I0MTU5OWZhMGQzZjY0NDc4
ODdkYjBmMDFkOWFhNjM3ZWE0YjM1ZS4uNmM5MDYwNjZkYTNiNjgyY2Y1NTVhNjQ2N2NjZGRjY2M4
MjlhZjQ0MSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvbGlid2VicnRjL1NvdXJjZS93
ZWJydGMvY29tbW9uX3ZpZGVvL2gyNjQvaDI2NF9iaXRzdHJlYW1fcGFyc2VyLmNjCisrKyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L2xpYndlYnJ0Yy9Tb3VyY2Uvd2VicnRjL2NvbW1vbl92aWRlby9oMjY0
L2gyNjRfYml0c3RyZWFtX3BhcnNlci5jYwpAQCAtMjc1LDYgKzI3NSwxMSBAQCB2b2lkIEgyNjRC
aXRzdHJlYW1QYXJzZXI6OlBhcnNlU2xpY2UoY29uc3QgdWludDhfdCogc2xpY2UsIHNpemVfdCBs
ZW5ndGgpIHsKICAgICBjYXNlIEgyNjQ6Ok5hbHVUeXBlOjprU3BzOiB7CiAgICAgICBzcHNfID0g
U3BzUGFyc2VyOjpQYXJzZVNwcyhzbGljZSArIEgyNjQ6OmtOYWx1VHlwZVNpemUsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW5ndGggLSBIMjY0OjprTmFsdVR5cGVTaXplKTsK
KyAgICAgICAgZnByaW50ZihzdGRlcnIsICJTUFM6ICIpOworICAgICAgICBmb3IgKHNpemVfdCBj
cHRyID0gMDsgY3B0ciA8IGxlbmd0aCAtIEgyNjQ6OmtOYWx1VHlwZVNpemU7ICsrY3B0cikgewor
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIleCAiLCBzbGljZVtIMjY0OjprTmFsdVR5cGVT
aXplICsgY3B0cl0pOworICAgICAgICB9CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG5cbiIp
OwogICAgICAgaWYgKCFzcHNfKQogICAgICAgICBSVENfRExPRyhMU19XQVJOSU5HKSA8PCAiVW5h
YmxlIHRvIHBhcnNlIFNQUyBmcm9tIEgyNjQgYml0c3RyZWFtLiI7CiAgICAgICBicmVhazsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggODZhOWJlMTVmMDE2NGE0ZTZmODNjNWIxNmE1ZGY5ZTM2
NmNiMWM1MC4uMWU3YWZmY2VmZTdkMWRjNWU4MDgwYThjYzgwY2MzNmU2MjEwYTMwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTE4Myw3ICsxODMsOCBAQCB2b2lkIFJlYWx0aW1lVmlkZW9T
b3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlJiBzYW1wbGUpCiAgICAgaWYg
KG1fZnJhbWVEZWNpbWF0aW9uID4gMSAmJiArK21fZnJhbWVEZWNpbWF0aW9uQ291bnRlciAlIG1f
ZnJhbWVEZWNpbWF0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2ZyYW1lRGVjaW1hdGlv
biA9IHN0YXRpY19jYXN0PHNpemVfdD4obV9zb3VyY2UtPm9ic2VydmVkRnJhbWVSYXRlKCkgLyBm
cmFtZVJhdGUoKSk7CisgICAgYXV0byBmcmFtZVJhdGUgPSB0aGlzLT5mcmFtZVJhdGUoKTsKKyAg
ICBtX2ZyYW1lRGVjaW1hdGlvbiA9IGZyYW1lUmF0ZSA/IHN0YXRpY19jYXN0PHNpemVfdD4obV9z
b3VyY2UtPm9ic2VydmVkRnJhbWVSYXRlKCkgLyBmcmFtZVJhdGUpIDogMTsKICAgICBpZiAoIW1f
ZnJhbWVEZWNpbWF0aW9uKQogICAgICAgICBtX2ZyYW1lRGVjaW1hdGlvbiA9IDE7CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBmYWVlNmZjMDk1OGM4MTNiYzg0YzRiZTg5YzViM2U5ZWQ4YmRlMTkzLi4yMjk2YmNkZmI3M2Ni
NGIzZWQxYzI2MzQ5MDZmYzY2MDAxZDBmMGExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMjEt
MDYtMTQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9y
dCBXUFQgd2VicnRjLWV4dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyNjk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUt
cmF0ZS5odG1sOgorICAgICAgICAqIHRlc3RzLW9wdGlvbnMuanNvbjoKKworMjAyMS0wNi0xMCAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0RGlzcGxheU1l
ZGlhIEFQSSBkb2Vzbid0IHdvcmsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjg3NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzkxMzQwNDE+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L21l
ZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1yYXRlLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtZnJhbWUtcmF0ZS5o
dG1sOiBBZGRlZC4KKwogMjAyMS0wNi0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgVXBkYXRlIGxpYndlYnJ0YyB0byBNOTIKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCmluZGV4IDg4NDU5MWUyMjlmNGUxOTMwNDI2ODNjOTIxN2JlZDlkNzY3MDQzMzMu
LmVhMmY0YTM5MjYzYzliMjZlYWFiOGY3Mzc4Mzc2MTYzZWNlZjkwYWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA2LTE0ICBZb3Vlbm4gRmFi
bGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BUIHdlYnJ0Yy1leHRl
bnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjY5NjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHJlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRpb25zLmpzb246CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zLzogQWRkZWQuCisKIDIwMjEtMDYtMDggIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBsaWJ3ZWJydGMg
dG8gTTkyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3Bs
YXlNZWRpYS1mcmFtZS1yYXRlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0RGlzcGxheU1lZGlhLWZyYW1lLXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzNDUzMTE0YTgxYjcxNTU3YmRkODljNGJlYzkyM2FlZTU2NWI1ODEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1y
YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBFbnN1cmUgZ2V0RGlzcGxh
eU1lZGlhIGdlbmVyYXRlIGZyYW1lcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1yYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1mcmFtZS1yYXRlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTg4NGI5ODAwZjEzNWY0MmZmMWVmNDcyZmY1N2E1YzhkM2JjNGYzMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLWZyYW1l
LXJhdGUuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5n
ZXREaXNwbGF5TWVkaWEgYW5kIGZyYW1lIHJhdGU8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxzLmpz
Ij48L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDxzY3JpcHQ+Citw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGlmICghd2luZG93LmludGVybmFscykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgc3RyZWFtID0gYXdhaXQgY2FsbEdldERpc3BsYXlN
ZWRpYSh7IHZpZGVvOiB0cnVlIH0pOworICAgIGludGVybmFscy5vYnNlcnZlTWVkaWFTdHJlYW1U
cmFjayhzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXSk7CisgICAgbGV0IGN1cnJlbnRDb3VudCA9
IGludGVybmFscy50cmFja1ZpZGVvU2FtcGxlQ291bnQ7CisgICAgbGV0IGNvdW50ZXIgPSAwOwor
ICAgIHdoaWxlIChjdXJyZW50Q291bnQgPT09IGludGVybmFscy50cmFja1ZpZGVvU2FtcGxlQ291
bnQgJiYgY291bnRlcisrIDwgMTAwKQorICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKKyAgICBhc3NlcnRfdHJ1ZShjb3VudGVyIDwg
MTAwKTsKK30sICJFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIGdlbmVyYXRlIGZyYW1lcyIpOworICAg
ICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbiBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29u
CmluZGV4IDdkN2QyM2MxNzczOTkyYTk1NzBhYTYwMmEzMTk0ZTUwN2RkZjg2NGQuLmI4ODI5Yjc3
OTM4YWU5NjlhNDAyZjNiNGM1NTY4MWZhMzgxM2U5YWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29uCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVjdGF0aW9ucy5qc29u
CkBAIC00MzQsNiArNDM0LDcgQEAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYm1lc3NhZ2lu
ZyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYm1lc3NhZ2luZy8iOiAi
aW1wb3J0IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMiOiAiaW1wb3J0IiwgCisg
ICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucyI6ICJpbXBvcnQiLCAKICAg
ICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1wcmlvcml0eSI6ICJpbXBvcnQiLCAKICAgICAi
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9sZWdhY3kiOiAic2tpcCIsIAogICAgICJ3ZWItcGxh
dGZvcm0tdGVzdHMvd2Vic29ja2V0cyI6ICJpbXBvcnQiLCAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvTUVU
QS55bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy1leHRlbnNpb25zL01FVEEueW1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlOGNiMDI4ZjA4ODQyNTg5ZDZjMmYw
NjM5MWJjNWM4NDY5MDQ4ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL01FVEEueW1sCkBAIC0w
LDAgKzEsMyBAQAorc3BlYzogaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1leHRlbnNpb25z
Lworc3VnZ2VzdGVkX3Jldmlld2VyczoKKyAgLSBoYm9zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ09B
dXRoQ3JlZGVudGlhbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ09BdXRoQ3JlZGVudGlhbC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYWI5YTJjMWNmNGQyMjJlNTdhMzgzMGI4OGQxMmJjYjQ5ZDdi
OTNlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDT0F1dGhDcmVkZW50aWFsLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDE4IEBACisKK0ZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZp
ZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcg
Y3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90aHJvd3Nf
ZG9tOiBmdW5jdGlvbiAiKCkgPT4KKyAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbeworICAgICAg
dXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAorICAgICAgY3JlZGVudGlhbFR5cGU6ICdv
YXV0aCcsCisgICAgICB1c2VybmFtZTogJ3VzZXInLAorICAgICAgY3JlZGVudGlhbDogJ2NyZWQn
CisgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcp
IC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNy
ZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dzX2Rv
bTogZnVuY3Rpb24gIigpID0+CisgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKKyAgICAgIHVy
bHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKKyAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1
dGgnLAorICAgICAgdXNlcm5hbWU6ICd1c2VyJywKKyAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJwor
ICAgIH1dIH0pIiBkaWQgbm90IHRocm93CitGQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlvbihjb25m
aWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWwgdHlwZSBhbmQgY3JlZGVudGlhbCBm
cm9tIHNwZWMgc2hvdWxkIG5vdCB0aHJvdyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5n
KSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitGQUlMIHNldENvbmZpZ3Vy
YXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsIHR5cGUgYW5kIGNy
ZWRlbnRpYWwgZnJvbSBzcGVjIHNob3VsZCBub3QgdGhyb3cgYXNzZXJ0X2VxdWFsczogZXhwZWN0
ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy1leHRlbnNpb25zL1JUQ09BdXRoQ3JlZGVudGlhbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENPQXV0aENyZWRl
bnRpYWwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2U5MmM2ZDA4N2QzZjMzOTU2NTFiOWZkOGVhNTgzNzM2
YmY3MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENPQXV0aENyZWRlbnRpYWwuaHRtbApA
QCAtMCwwICsxLDQ0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
dGl0bGU+UlRDQ29uZmlndXJhdGlvbiBpY2VTZXJ2ZXJzIHdpdGggT0F1dGggY3JlZGVudGlhbHM8
L3RpdGxlPgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMnPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Jy4uL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWhlbHBlci5qcyc+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKy8vIFRoZXNlIHRlc3RzIGFyZSBi
YXNlZCBvbgorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYnJ0Yy1leHRlbnNpb25zLyNydGNv
YXV0aGNyZWRlbnRpYWwtZGljdGlvbmFyeQorCisvKgorICAgIDQuMy4yLiAgVG8gc2V0IGEgY29u
ZmlndXJhdGlvbgorICAgIDExLjYuIElmIHNjaGVtZSBuYW1lIGlzIHR1cm4gb3IgdHVybnMsIGFu
ZCBzZXJ2ZXIuY3JlZGVudGlhbFR5cGUgaXMgIm9hdXRoIiwKKyAgICBhbmQgc2VydmVyLmNyZWRl
bnRpYWwgaXMgbm90IGFuIFJUQ09BdXRoQ3JlZGVudGlhbCwgdGhlbiB0aHJvdyBhbgorICAgIElu
dmFsaWRBY2Nlc3NFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCisqLworY29uZmlnX3Rlc3Qo
bWFrZVBjID0+IHsKKyAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRBY2Nlc3NFcnJvcicsICgp
ID0+CisgICAgbWFrZVBjKHsgaWNlU2VydmVyczogW3sKKyAgICAgIHVybHM6ICd0dXJuczp0dXJu
LmV4YW1wbGUub3JnJywKKyAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAorICAgICAgdXNl
cm5hbWU6ICd1c2VyJywKKyAgICAgIGNyZWRlbnRpYWw6ICdjcmVkJworICAgIH1dIH0pKTsKK30s
ICd3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGgsIGFuZCBzdHJpbmcgY3Jl
ZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yJyk7CisKK2NvbmZpZ190ZXN0
KG1ha2VQYyA9PiB7CisgIGNvbnN0IHBjID0gbWFrZVBjKHsgaWNlU2VydmVyczogW3sKKyAgICB1
cmxzOiAndHVybnM6dHVybjIuZXhhbXBsZS5uZXQnLAorICAgIHVzZXJuYW1lOiAnMjJCSWp4VTkz
aC9JZ3dFYicsCisgICAgY3JlZGVudGlhbDogeworICAgICAgbWFjS2V5OiAnV210emFuQjNaVzlw
ZUZodGRtNDJOelV6TkcwPScsCisgICAgICBhY2Nlc3NUb2tlbjogJ0FBd2cza1BIV1Bmdms5YkRG
TDkzNndZdmtvY3RNQUR6UTVWaE5EZ2VNUjMrWmxaMzVieWc5NzJmVzhRanBFbDdieDkxWUxCUEZz
SWhzeGxvV2NYUGhBPT0nCisgICAgfSwKKyAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJworICB9
XX0pOworICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdldENvbmZpZ3VyYXRpb24oKTsKKyAg
Y29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1swXTsKKyAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIuY3Jl
ZGVudGlhbFR5cGUsICdvYXV0aCcpOworfSwgJ3dpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFs
IHR5cGUgYW5kIGNyZWRlbnRpYWwgZnJvbSBzcGVjIHNob3VsZCBub3QgdGhyb3cnKTsKKworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtYWRhcHRpdmVQdGltZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtYWRhcHRpdmVQdGltZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNzVkZWI1YjBlZDM5YWJlODkzNTM3ZWU5ZTFlYmY1YzBlNjIzYWMz
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1hZGFwdGl2ZVB0aW1l
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworRkFJTCBTZXR0aW5nIGFkYXB0aXZlUHRp
bWUgc2hvdWxkIGJlIGFjY2VwdGVkIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCB1bmRl
ZmluZWQKK0ZBSUwgYWRhcHRpdmVQdGltZSBzaG91bGQgYmUgZGVmYXVsdCBmYWxzZSBhc3NlcnRf
ZmFsc2U6IGV4cGVjdGVkIGZhbHNlIGdvdCB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9S
VENSdHBQYXJhbWV0ZXJzLWFkYXB0aXZlUHRpbWUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVy
cy1hZGFwdGl2ZVB0aW1lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTBjYzk4OWMxM2RhMGI2NTMzZmFhZGZh
M2FjMTIzZTZkZjg5ODg2MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVy
cy1hZGFwdGl2ZVB0aW1lLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzIGFk
YXB0aXZlUHRpbWUgcHJvcGVydHk8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIGZ1
bmN0aW9uIGdldEZpcnN0RW5jb2RpbmcocGFyYW0pIHsKKyAgICBjb25zdCB7IGVuY29kaW5ncyB9
ID0gcGFyYW07CisgICAgYXNzZXJ0X2VxdWFscyhlbmNvZGluZ3MubGVuZ3RoLCAxKTsKKyAgICBy
ZXR1cm4gZW5jb2RpbmdzWzBdOworICB9CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNj
ZWl2ZXIoJ2F1ZGlvJywgeworICAgICAgc2VuZEVuY29kaW5nczogW3thZGFwdGl2ZVB0aW1lOiB0
cnVlfV0sCisgICAgfSk7CisKKyAgICBsZXQgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygp
OworICAgIGxldCBlbmNvZGluZyA9IGdldEZpcnN0RW5jb2RpbmcocGFyYW0pOworCisgICAgYXNz
ZXJ0X3RydWUoZW5jb2RpbmcuYWRhcHRpdmVQdGltZSk7CisKKyAgICBlbmNvZGluZy5hZGFwdGl2
ZVB0aW1lID0gZmFsc2U7CisgICAgYXdhaXQgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pOwor
ICAgIHBhcmFtID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgICBlbmNvZGluZyA9IGdldEZp
cnN0RW5jb2RpbmcocGFyYW0pOworCisgICAgYXNzZXJ0X2ZhbHNlKGVuY29kaW5nLmFkYXB0aXZl
UHRpbWUpOworCisgIH0sIGBTZXR0aW5nIGFkYXB0aXZlUHRpbWUgc2hvdWxkIGJlIGFjY2VwdGVk
YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
KyAgICBjb25zdCB7IHNlbmRlciB9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywgeyBzZW5k
RW5jb2RpbmdzOiBbe31dIH0pOworCisgICAgY29uc3QgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1l
dGVycygpOworICAgIGNvbnN0IGVuY29kaW5nID0gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSk7CisK
KyAgICBhc3NlcnRfZmFsc2UoZW5jb2RpbmcuYWRhcHRpdmVQdGltZSk7CisKKyAgfSwgYGFkYXB0
aXZlUHRpbWUgc2hvdWxkIGJlIGRlZmF1bHQgZmFsc2VgKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1l
eHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtbWF4RnJhbWVyYXRlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lv
bnMvUlRDUnRwUGFyYW1ldGVycy1tYXhGcmFtZXJhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEwZjE3M2VjNjA3OWY4ZDJmMTRjZTQ2YzMzMWJlZTNiZGQ0Y2I1NDEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1l
eHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtbWF4RnJhbWVyYXRlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEwIEBACisKK0ZBSUwgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIHNlbmRFbmNvZGluZy5t
YXhGcmFtZXJhdGUgZmllbGQgc2V0IHRvIGxlc3MgdGhhbiAwIHNob3VsZCByZWplY3Qgd2l0aCBS
YW5nZUVycm9yIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBwYy5hZGRUcmFuc2Nl
aXZlcigndmlkZW8nLCB7CisgICAgc2VuZEVuY29kaW5nczogW3sKKyAgICAgIG1heEZyYW1lcmF0
ZTogLTEwCisgICAgfV0KKyAgfSkiIGRpZCBub3QgdGhyb3cKK0ZBSUwgc2V0UGFyYW1ldGVycygp
IHdpdGggZW5jb2RpbmcubWF4RnJhbWVyYXRlIGZpZWxkIHNldCB0byBsZXNzIHRoYW4gMCBzaG91
bGQgcmVqZWN0IHdpdGggUmFuZ2VFcnJvciBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSBy
ZWplY3RlZDogdW5kZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBzZXRQYXJh
bWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgc2hvdWxkIHN1Y2Nl
ZWQgd2l0aCBSVENSdHBUcmFuc2NlaXZlckluaXQKK1BBU1Mgc2V0UGFyYW1ldGVycygpIHdpdGgg
bW9kaWZpZWQgZW5jb2RpbmcubWF4RnJhbWVyYXRlIHNob3VsZCBzdWNjZWVkIHdpdGhvdXQgUlRD
UnRwVHJhbnNjZWl2ZXJJbml0CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1t
YXhGcmFtZXJhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1tYXhGcmFtZXJhdGUuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5jMWQ0NzIzODYwMDlkNjkzODM1MjYzNDgzOTU5YTgzZDBlODk4MDQ4Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBQYXJhbWV0ZXJzLW1heEZyYW1lcmF0ZS5odG1s
CkBAIC0wLDAgKzEsMzkgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
Kzx0aXRsZT5SVENSdHBQYXJhbWV0ZXJzIGVuY29kaW5nczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYnJ0
Yy9kaWN0aW9uYXJ5LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYnJ0Yy9S
VENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworCit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgYXNzZXJ0X3Ro
cm93c19qcyhSYW5nZUVycm9yLCAoKSA9PiBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nLCB7Cisg
ICAgc2VuZEVuY29kaW5nczogW3sKKyAgICAgIG1heEZyYW1lcmF0ZTogLTEwCisgICAgfV0KKyAg
fSkpOworfSwgYGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBzZW5kRW5jb2RpbmcubWF4RnJhbWVyYXRl
IGZpZWxkIHNldCB0byBsZXNzIHRoYW4gMCBzaG91bGQgcmVqZWN0IHdpdGggUmFuZ2VFcnJvcmAp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0
IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKKyAgYXdhaXQgZG9PZmZl
ckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKKworICBjb25zdCBwYXJhbSA9IHNlbmRlci5nZXRQYXJh
bWV0ZXJzKCk7CisgIHZhbGlkYXRlU2VuZGVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CisgIGNvbnN0
IGVuY29kaW5nID0gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSk7CisKKyAgZW5jb2RpbmcubWF4RnJh
bWVyYXRlID0gLTEwOworICByZXR1cm4gcHJvbWlzZV9yZWplY3RzX2pzKHQsIFJhbmdlRXJyb3Is
CisgICAgc2VuZGVyLnNldFBhcmFtZXRlcnMocGFyYW0pKTsKK30sIGBzZXRQYXJhbWV0ZXJzKCkg
d2l0aCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgZmllbGQgc2V0IHRvIGxlc3MgdGhhbiAwIHNob3Vs
ZCByZWplY3Qgd2l0aCBSYW5nZUVycm9yYCk7CisKK3Rlc3RfbW9kaWZpZWRfZW5jb2RpbmcoJ3Zp
ZGVvJywgJ21heEZyYW1lcmF0ZScsIDI0LCAxNiwKKyAgJ3NldFBhcmFtZXRlcnMoKSB3aXRoIG1v
ZGlmaWVkIGVuY29kaW5nLm1heEZyYW1lcmF0ZSBzaG91bGQgc3VjY2VlZCcpOworCis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXItcGxheW91dERlbGF5SGludC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFJlY2VpdmVyLXBsYXlvdXREZWxheUhpbnQtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjEyYmI0NWMyYzExOWU1ZTU0NWI5NzBmYWIwNGZiZTZjNzIyN2JlMzgK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFJlY2VpdmVyLXBsYXlvdXREZWxheUhpbnQt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKKworRkFJTCBhdWRpbyBwbGF5b3V0RGVsYXlI
aW50IGlzIG51bGwgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBu
dWxsIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitQQVNTIGF1ZGlvIHBsYXlvdXREZWxh
eUhpbnQgYWNjZXB0cyBwb3NpdGl0dmUgdmFsdWVzCitQQVNTIGF1ZGlvIHBsYXlvdXREZWxheUhp
bnQgYWNjZXB0cyBsYXJnZSBwb3NpdGl2ZSB2YWx1ZXMKK0ZBSUwgYXVkaW8gcGxheW91dERlbGF5
SGludCByZXR1cm5zIGxhc3QgdmFsaWQgdmFsdWUgb24gdGhyb3cgYXNzZXJ0X3Rocm93c19qczog
YXVkaW8gcGxheW91dERlbGF5SGludCBkb2Vzbid0IGFjY2VwdCBuZWdhdGl2ZSB2YWx1ZXMgZnVu
Y3Rpb24gIigpID0+IHsKKyAgICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gLTAuNTsKKyAg
fSIgZGlkIG5vdCB0aHJvdworUEFTUyBhdWRpbyBwbGF5b3V0RGVsYXlIaW50IGFsbG93cyB6ZXJv
IHZhbHVlCitQQVNTIGF1ZGlvIHBsYXlvdXREZWxheUhpbnQgYWxsb3dzIHRvIHJlc2V0IHZhbHVl
IHRvIG51bGwKK0ZBSUwgdmlkZW8gcGxheW91dERlbGF5SGludCBpcyBudWxsIGJ5IGRlZmF1bHQg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgbnVsbCBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAorUEFTUyB2aWRlbyBwbGF5b3V0RGVsYXlIaW50IGFjY2VwdHMgcG9zaXRpdHZl
IHZhbHVlcworUEFTUyB2aWRlbyBwbGF5b3V0RGVsYXlIaW50IGFjY2VwdHMgbGFyZ2UgcG9zaXRp
dHZlIHZhbHVlcworRkFJTCB2aWRlbyBwbGF5b3V0RGVsYXlIaW50IHJldHVybnMgbGFzdCB2YWxp
ZCB2YWx1ZSBhc3NlcnRfdGhyb3dzX2pzOiB2aWRlbyBwbGF5b3V0RGVsYXlIaW50IGRvZXNuJ3Qg
YWNjZXB0IG5lZ2F0aXZlIHZhbHVlcyBmdW5jdGlvbiAiKCkgPT4geworICAgIHJlY2VpdmVyLnBs
YXlvdXREZWxheUhpbnQgPSAtMC41OworICB9IiBkaWQgbm90IHRocm93CitQQVNTIHZpZGVvIHBs
YXlvdXREZWxheUhpbnQgYWxsb3dzIHplcm8gdmFsdWUKK1BBU1MgdmlkZW8gcGxheW91dERlbGF5
SGludCBhbGxvd3MgdG8gcmVzZXQgdmFsdWUgdG8gbnVsbAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JU
Q1J0cFJlY2VpdmVyLXBsYXlvdXREZWxheUhpbnQuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXIt
cGxheW91dERlbGF5SGludC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5ZGZjMTlhNmI2ODkwMDY3OWIwNmIz
YzM1MjdjMTc3YzRlMzhiNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFJlY2VpdmVy
LXBsYXlvdXREZWxheUhpbnQuaHRtbApAQCAtMCwwICsxLDExMyBAQAorPCFET0NUWVBFIGh0bWw+
Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8dGl0bGU+VGVzdHMgZm9yIFJUQ1J0cFJlY2VpdmVy
LXBsYXlvdXREZWxheUhpbnQgYXR0cmlidXRlPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJl
Zj0iaHR0cHM6Ly9oZW5ib3MuZ2l0aHViLmlvL3dlYnJ0Yy1leHRlbnNpb25zLyNkb20tcnRjcnRw
cmVjZWl2ZXItcGxheW91dGRlbGF5aGludCI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8Ym9keT4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCcKKwor
dGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFk
ZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30pOworICBhc3NlcnRf
ZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIG51bGwpOworfSwgJ2F1ZGlvIHBsYXlv
dXREZWxheUhpbnQgaXMgbnVsbCBieSBkZWZhdWx0Jyk7CisKK3Rlc3QodCA9PiB7CisgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
LCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVjZWl2ZXIucGxheW91dERlbGF5SGludCA9
IDAuNTsKKyAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50LCAwLjUpOwor
fSwgJ2F1ZGlvIHBsYXlvdXREZWxheUhpbnQgYWNjZXB0cyBwb3NpdGl0dmUgdmFsdWVzJyk7CisK
K3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBwYy5h
ZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVjZWl2
ZXIucGxheW91dERlbGF5SGludCA9IDIwLjU7CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxh
eW91dERlbGF5SGludCwgMjAuNSk7Cit9LCAnYXVkaW8gcGxheW91dERlbGF5SGludCBhY2NlcHRz
IGxhcmdlIHBvc2l0aXZlIHZhbHVlcycpOworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVj
dGlvbjoncmVjdm9ubHknfSk7CisgIHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQgPSAwLjcKKyAg
YXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICByZWNlaXZlci5wbGF5b3V0
RGVsYXlIaW50ID0gLTAuNTsKKyAgfSwgJ2F1ZGlvIHBsYXlvdXREZWxheUhpbnQgZG9lc25cJ3Qg
YWNjZXB0IG5lZ2F0aXZlIHZhbHVlcycpOworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlv
dXREZWxheUhpbnQsIDAuNyk7Cit9LCAnYXVkaW8gcGxheW91dERlbGF5SGludCByZXR1cm5zIGxh
c3QgdmFsaWQgdmFsdWUgb24gdGhyb3cnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJl
Y3Rpb246J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMC4wOwor
ICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIDAuMCk7Cit9LCAnYXVk
aW8gcGxheW91dERlbGF5SGludCBhbGxvd3MgemVybyB2YWx1ZScpOworCit0ZXN0KHQgPT4gewor
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIo
J2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7CisgIHJlY2VpdmVyLnBsYXlvdXREZWxh
eUhpbnQgPSAwLjU7CisgIHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQgPSBudWxsOworICBhc3Nl
cnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIG51bGwpOworfSwgJ2F1ZGlvIHBs
YXlvdXREZWxheUhpbnQgYWxsb3dzIHRvIHJlc2V0IHZhbHVlIHRvIG51bGwnKTsKKwordGVzdCh0
ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCd2aWRlbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30pOworICBhc3NlcnRfZXF1YWxz
KHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIG51bGwpOworfSwgJ3ZpZGVvIHBsYXlvdXREZWxh
eUhpbnQgaXMgbnVsbCBieSBkZWZhdWx0Jyk7CisKK3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2Uo
KSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nLCB7ZGly
ZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVjZWl2ZXIucGxheW91dERlbGF5SGludCA9IDAuNTsK
KyAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50LCAwLjUpOworfSwgJ3Zp
ZGVvIHBsYXlvdXREZWxheUhpbnQgYWNjZXB0cyBwb3NpdGl0dmUgdmFsdWVzJyk7CisKK3Rlc3Qo
dCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBwYy5hZGRUcmFu
c2NlaXZlcigndmlkZW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVjZWl2ZXIucGxh
eW91dERlbGF5SGludCA9IDIwLjU7CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxheW91dERl
bGF5SGludCwgMjAuNSk7Cit9LCAndmlkZW8gcGxheW91dERlbGF5SGludCBhY2NlcHRzIGxhcmdl
IHBvc2l0aXR2ZSB2YWx1ZXMnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAg
Y29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycsIHtkaXJlY3Rpb246
J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMC43CisgIGFzc2Vy
dF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiB7CisgICAgcmVjZWl2ZXIucGxheW91dERlbGF5
SGludCA9IC0wLjU7CisgIH0sICd2aWRlbyBwbGF5b3V0RGVsYXlIaW50IGRvZXNuXCd0IGFjY2Vw
dCBuZWdhdGl2ZSB2YWx1ZXMnKTsKKyAgYXNzZXJ0X2VxdWFscyhyZWNlaXZlci5wbGF5b3V0RGVs
YXlIaW50LCAwLjcpOworfSwgJ3ZpZGVvIHBsYXlvdXREZWxheUhpbnQgcmV0dXJucyBsYXN0IHZh
bGlkIHZhbHVlJyk7CisKK3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHty
ZWNlaXZlcn0gPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nLCB7ZGlyZWN0aW9uOidyZWN2b25s
eSd9KTsKKyAgcmVjZWl2ZXIucGxheW91dERlbGF5SGludCA9IDAuMDsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50LCAwLjApOworfSwgJ3ZpZGVvIHBsYXlvdXREZWxh
eUhpbnQgYWxsb3dzIHplcm8gdmFsdWUnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycsIHtkaXJl
Y3Rpb246J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMC41Owor
ICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gbnVsbDsKKyAgYXNzZXJ0X2VxdWFscyhyZWNl
aXZlci5wbGF5b3V0RGVsYXlIaW50LCBudWxsKTsKK30sICd2aWRlbyBwbGF5b3V0RGVsYXlIaW50
IGFsbG93cyB0byByZXNldCB2YWx1ZSB0byBudWxsJyk7Cis8L3NjcmlwdD4KKzwvYm9keT4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWNhcHR1cmVUaW1lc3Rh
bXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtY2FwdHVy
ZVRpbWVzdGFtcC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGVmMTAwZWU2M2EyZTUwNDE4YmM3
NDhlOGUxYTdmMmM4MGQ0YTVhZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hy
b25pemF0aW9uU291cmNlLWNhcHR1cmVUaW1lc3RhbXAtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTAgQEAKKworCitQQVNTIFthdWRpb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNob3Vs
ZCBub3QgY29udGFpbiBjYXB0dXJlVGltZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBS
VFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBub3Qgb2ZmZXJlZAorUEFTUyBbYXVkaW9dIGdldFN5bmNo
cm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gY2FwdHVyZVRpbWVzdGFtcCBp
ZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgb2ZmZXJlZCwg
YnV0IG5vdCBhbnN3ZXJlZAorRkFJTCBbYXVkaW9dIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMo
KSBzaG91bGQgY29udGFpbiBjYXB0dXJlVGltZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGlt
ZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBuZWdvdGlhdGVkIHN0ZXBfd2FpdF9mdW5jOiBObyBh
YnMtY2FwdHVyZS10aW1lIGNhcHR1cmUgdGltZSBoZWFkZXIgZXh0ZW5zaW9uLiBUaW1lZCBvdXQg
d2FpdGluZyBvbiBjb25kaXRpb24KK1BBU1MgW3ZpZGVvXSBnZXRTeW5jaHJvbml6YXRpb25Tb3Vy
Y2VzKCkgc2hvdWxkIG5vdCBjb250YWluIGNhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUgY2Fw
dHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5vdCBvZmZlcmVkCitQQVNTIFt2aWRl
b10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFpbiBjYXB0dXJl
VGltZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBp
cyBvZmZlcmVkLCBidXQgbm90IGFuc3dlcmVkCitGQUlMIFt2aWRlb10gZ2V0U3luY2hyb25pemF0
aW9uU291cmNlcygpIHNob3VsZCBjb250YWluIGNhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUg
Y2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5lZ290aWF0ZWQgc3RlcF93YWl0
X2Z1bmM6IE5vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRlciBleHRlbnNpb24u
IFRpbWVkIG91dCB3YWl0aW5nIG9uIGNvbmRpdGlvbgorRkFJTCBBdWRpbyBhbmQgdmlkZW8gUlRD
UnRwU3luY2hyb25pemF0aW9uU291cmNlLmNhcHR1cmVUaW1lc3RhbXAgYXJlIGNvbXBhcmFibGUg
c3RlcF93YWl0X2Z1bmM6IE5vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRlciBl
eHRlbnNpb24uIFRpbWVkIG91dCB3YWl0aW5nIG9uIGNvbmRpdGlvbgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNp
b25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1jYXB0dXJlVGltZXN0YW1wLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNp
b25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1jYXB0dXJlVGltZXN0YW1wLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjBiNGVkMGE3NGY1NTZmMTQ5YjMwOGQwMzg5ZDMzNGRjNWQ1ZmRhOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWNhcHR1cmVUaW1l
c3RhbXAuaHRtbApAQCAtMCwwICsxLDk0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJz
ZXQ9dXRmLTg+Cis8IS0tIFRoaXMgZmlsZSBjb250YWlucyBhIHRlc3QgdGhhdCB3YWl0cyBmb3Ig
MiBzZWNvbmRzLiAtLT4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPmNhcHR1cmVUaW1lc3RhbXAgYXR0cmlidXRlIGluIFJUQ1J0cFN5bmNocm9uaXphdGlvblNv
dXJjZTwvdGl0bGU+Cis8ZGl2Pjx2aWRlbyBpZD0icmVtb3RlIiB3aWR0aD0iMTI0IiBoZWlnaHQ9
IjEyNCIgYXV0b3BsYXk+PC92aWRlbz48L2Rpdj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYnJ0Yy9SVENTdGF0
cy1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93ZWJydGMtZXh0ZW5zaW9ucy9S
VENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisndXNlIHN0cmljdCc7CisKK2Z1bmN0aW9uIGxpc3RlbkZvckNhcHR1cmVUaW1lc3RhbXAodCwg
cmVjZWl2ZXIpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgZnVu
Y3Rpb24gbGlzdGVuKCkgeworICAgICAgY29uc3Qgc3NyY3MgPSByZWNlaXZlci5nZXRTeW5jaHJv
bml6YXRpb25Tb3VyY2VzKCk7CisgICAgICBhc3NlcnRfdHJ1ZShzc3JjcyAhPSB1bmRlZmluZWQp
OworICAgICAgaWYgKHNzcmNzLmxlbmd0aCA+IDApIHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyhz
c3Jjcy5sZW5ndGgsIDEpOworICAgICAgICBpZiAoc3NyY3NbMF0uY2FwdHVyZVRpbWVzdGFtcCAh
PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICByZXNvbHZlKHNzcmNzWzBdLmNhcHR1cmVUaW1lc3Rh
bXApOworICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICB9CisgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfTsKKyAgICB0LnN0ZXBfd2FpdChsaXN0ZW4sICdObyBhYnMtY2Fw
dHVyZS10aW1lIGNhcHR1cmUgdGltZSBoZWFkZXIgZXh0ZW5zaW9uLicpOworICB9KTsKK30KKwor
Ly8gUGFzc2VzIGlmIGBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKClgIGNvbnRhaW5zIGBjYXB0
dXJlVGltZXN0YW1wYCBpZiBhbmQKKy8vIG9ubHkgaWYgZXhwZWN0ZWQuCitmb3IgKGNvbnN0IGtp
bmQgb2YgWydhdWRpbycsICd2aWRlbyddKSB7CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBbY2FsbGVyLCBjYWxsZWVdID0gYXdhaXQgaW5pdGlhdGVTaW5nbGVUcmFja0Nh
bGwoCisgICAgICAgIHQsIC8qIGNhcHM9ICAqL3tba2luZF06IHRydWV9LCAvKiBhYnNDYXB0dXJl
VGltZU9mZmVyZWQ9ICovZmFsc2UsCisgICAgICAgIC8qIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQ9
ICovZmFsc2UpOworICAgIGNvbnN0IHJlY2VpdmVyID0gY2FsbGVlLmdldFJlY2VpdmVycygpWzBd
OworCisgICAgZm9yIChjb25zdCBzc3JjIG9mIGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2Vp
dmVyKSkgeworICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygc3NyYy5jYXB0dXJlVGltZXN0YW1w
LCAndW5kZWZpbmVkJyk7CisgICAgfQorICB9LCAnWycgKyBraW5kICsgJ10gZ2V0U3luY2hyb25p
emF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFpbiAnICsKKyAgICAgICdjYXB0dXJlVGlt
ZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBu
b3QgJyArCisgICAgICAnb2ZmZXJlZCcpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgICBjb25zdCBbY2FsbGVyLCBjYWxsZWVdID0gYXdhaXQgaW5pdGlhdGVTaW5nbGVUcmFja0Nh
bGwoCisgICAgICAgIHQsIC8qIGNhcHM9ICAqL3tba2luZF06IHRydWV9LCAvKiBhYnNDYXB0dXJl
VGltZU9mZmVyZWQ9ICovZmFsc2UsCisgICAgICAgIC8qIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQ9
ICovZmFsc2UpOworICAgIGNvbnN0IHJlY2VpdmVyID0gY2FsbGVlLmdldFJlY2VpdmVycygpWzBd
OworCisgICAgZm9yIChjb25zdCBzc3JjIG9mIGF3YWl0IGxpc3RlbkZvclNTUkNzKHQsIHJlY2Vp
dmVyKSkgeworICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygc3NyYy5jYXB0dXJlVGltZXN0YW1w
LCAndW5kZWZpbmVkJyk7CisgICAgfQorICB9LCAnWycgKyBraW5kICsgJ10gZ2V0U3luY2hyb25p
emF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFpbiAnICsKKyAgICAgICdjYXB0dXJlVGlt
ZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyAn
ICsKKyAgICAgICdvZmZlcmVkLCBidXQgbm90IGFuc3dlcmVkJyk7CisKKyAgcHJvbWlzZV90ZXN0
KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjYWxsZXIsIGNhbGxlZV0gPSBhd2FpdCBpbml0aWF0
ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgICAgdCwgLyogY2Fwcz0gICove1traW5kXTogdHJ1ZX0s
IC8qIGFic0NhcHR1cmVUaW1lT2ZmZXJlZD0gKi90cnVlLAorICAgICAgICAvKiBhYnNDYXB0dXJl
VGltZUFuc3dlcmVkPSAqL3RydWUpOworICAgIGNvbnN0IHJlY2VpdmVyID0gY2FsbGVlLmdldFJl
Y2VpdmVycygpWzBdOworICAgIGF3YWl0IGxpc3RlbkZvckNhcHR1cmVUaW1lc3RhbXAodCwgcmVj
ZWl2ZXIpOworICB9LCAnWycgKyBraW5kICsgJ10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygp
IHNob3VsZCBjb250YWluICcgKworICAgICAgJ2NhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUg
Y2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzICcgKworICAgICAgJ25lZ290aWF0
ZWQnKTsKK30KKworLy8gUGFzc2VzIGlmIGBjYXB0dXJlVGltZXN0YW1wYCBmb3IgYXVkaW8gYW5k
IHZpZGVvIGFyZSBjb21wYXJhYmxlLCB3aGljaCBpcworLy8gZXhwZWN0ZWQgc2luY2UgdGhlIHRl
c3QgY3JlYXRlcyBhIGxvY2FsIHBlZXIgY29ubmVjdGlvbiBiZXR3ZWVuIGBjYWxsZXJgIGFuZAor
Ly8gYGNhbGxlZWAuCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IFtjYWxsZXIs
IGNhbGxlZV0gPSBhd2FpdCBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgIHQsIC8qIGNh
cHM9ICAqL3thdWRpbzogdHJ1ZSwgdmlkZW86IHRydWV9LAorICAgICAgLyogYWJzQ2FwdHVyZVRp
bWVPZmZlcmVkPSAqL3RydWUsIC8qIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQ9ICovdHJ1ZSk7Cisg
IGNvbnN0IHJlY2VpdmVycyA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKTsKKyAgYXNzZXJ0X2VxdWFs
cyhyZWNlaXZlcnMubGVuZ3RoLCAyKTsKKworICBsZXQgY2FwdHVyZVRpbWVzdGFtcHMgPSBbdW5k
ZWZpbmVkLCB1bmRlZmluZWRdOworICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpOworICBm
b3IgKGxldCBpID0gMDsgaSA8IDI7ICsraSkgeworICAgIGNhcHR1cmVUaW1lc3RhbXBzW2ldID0g
YXdhaXQgbGlzdGVuRm9yQ2FwdHVyZVRpbWVzdGFtcCh0LCByZWNlaXZlcnNbaV0pOworICB9Cisg
IGNvbnN0IHQxID0gcGVyZm9ybWFuY2Uubm93KCk7CisgIGFzc2VydF9sZXNzX3RoYW4oTWF0aC5h
YnMoY2FwdHVyZVRpbWVzdGFtcHNbMF0gLSBjYXB0dXJlVGltZXN0YW1wc1sxXSksCisgICAgICAg
ICAgICAgICAgICAgdDEgLSB0MCk7Cit9LCAnQXVkaW8gYW5kIHZpZGVvIFJUQ1J0cFN5bmNocm9u
aXphdGlvblNvdXJjZS5jYXB0dXJlVGltZXN0YW1wIGFyZSAnICsKKyAgICdjb21wYXJhYmxlJyk7
CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3Vy
Y2UtaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtaGVscGVyLmpz
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjEwY2ZkNjUxNTU0YTI1OTgxN2NkMzQ1MjFhYjQ0NTU2MDYzZjRmNDQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1oZWxwZXIu
anMKQEAgLTAsMCArMSwxNDAgQEAKKyd1c2Ugc3RyaWN0JzsKKworLy8gVGhpcyBmaWxlIGRlcGVu
ZHMgb24gYHdlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanNgCisvLyB3aGljaCBzaG91
bGQgYmUgbG9hZGVkIGZyb20gdGhlIG1haW4gSFRNTCBmaWxlLgorCit2YXIga0Fic0NhcHR1cmVU
aW1lID0KKyAgICAnaHR0cDovL3d3dy53ZWJydGMub3JnL2V4cGVyaW1lbnRzL3J0cC1oZHJleHQv
YWJzLWNhcHR1cmUtdGltZSc7CisKK2Z1bmN0aW9uIGFkZEhlYWRlckV4dGVuc2lvblRvU2RwKHNk
cCwgdXJpKSB7CisgIGNvbnN0IGV4dG1hcCA9IG5ldyBSZWdFeHAoJ2E9ZXh0bWFwOihcXGQrKScp
OworICBsZXQgc2RwTGluZXMgPSBzZHAuc3BsaXQoJ1xyXG4nKTsKKworICAvLyBUaGlzIGFzc3Vt
ZXMgYXQgbW9zdCBvbmUgYXVkaW8gbT0gc2VjdGlvbiBhbmQgb25lIHZpZGVvIG09IHNlY3Rpb24u
CisgIC8vIElmIG1vcmUgYXJlIHByZXNlbnQsIG9ubHkgdGhlIGZpcnN0IHNlY3Rpb24gb2YgZWFj
aCBraW5kIGlzIG11bmdlZC4KKyAgZm9yIChjb25zdCBzZWN0aW9uIG9mIFsnYXVkaW8nLCAndmlk
ZW8nXSkgeworICAgIGxldCBmb3VuZF9zZWN0aW9uID0gZmFsc2U7CisgICAgbGV0IG1heElkID0g
dW5kZWZpbmVkOworICAgIGxldCBtYXhJZExpbmUgPSB1bmRlZmluZWQ7CisgICAgbGV0IGV4dG1h
cEFsbG93TWl4ZWQgPSBmYWxzZTsKKworICAgIC8vIGZpbmQgdGhlIGxhcmdlc3QgaGVhZGVyIGV4
dGVuc2lvbiBpZCBmb3Igc2VjdGlvbi4KKyAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNkcExpbmVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICBpZiAoIWZvdW5kX3NlY3Rpb24pIHsKKyAgICAgICAgaWYg
KHNkcExpbmVzW2ldLnN0YXJ0c1dpdGgoJ209JyArIHNlY3Rpb24pKSB7CisgICAgICAgICAgZm91
bmRfc2VjdGlvbiA9IHRydWU7CisgICAgICAgIH0KKyAgICAgICAgY29udGludWU7CisgICAgICB9
IGVsc2UgeworICAgICAgICBpZiAoc2RwTGluZXNbaV0uc3RhcnRzV2l0aCgnbT0nKSkgeworICAg
ICAgICAgIC8vIGVuZCBvZiBzZWN0aW9uCisgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAg
ICAgIH0KKworICAgICAgaWYgKHNkcExpbmVzW2ldID09PSAnYT1leHRtYXAtYWxsb3ctbWl4ZWQn
KSB7CisgICAgICAgIGV4dG1hcEFsbG93TWl4ZWQgPSB0cnVlOworICAgICAgfQorICAgICAgbGV0
IHJlc3VsdCA9IHNkcExpbmVzW2ldLm1hdGNoKGV4dG1hcCk7CisgICAgICBpZiAocmVzdWx0ICYm
IHJlc3VsdC5sZW5ndGggPT09IDIpIHsKKyAgICAgICAgaWYgKG1heElkID09IHVuZGVmaW5lZCB8
fCByZXN1bHRbMV0gPiBtYXhJZCkgeworICAgICAgICAgIG1heElkID0gcGFyc2VJbnQocmVzdWx0
WzFdKTsKKyAgICAgICAgICBtYXhJZExpbmUgPSBpOworICAgICAgICB9CisgICAgICB9CisgICAg
fQorCisgICAgaWYgKG1heElkID09IDE0ICYmICFleHRtYXBBbGxvd01peGVkKSB7CisgICAgICAv
LyBSZWFjaGluZyB0aGUgbGltaXQgb2Ygb25lIGJ5dGUgaGVhZGVyIGV4dGVuc2lvbi4gQWRkaW5n
IHR3byBieXRlIGhlYWRlcgorICAgICAgLy8gZXh0ZW5zaW9uIHN1cHBvcnQuCisgICAgICBzZHBM
aW5lcy5zcGxpY2UobWF4SWRMaW5lICsgMSwgMCwgJ2E9ZXh0bWFwLWFsbG93LW1peGVkJyk7Cisg
ICAgfQorICAgIGlmIChtYXhJZExpbmUgIT09IHVuZGVmaW5lZCkgeworICAgICAgc2RwTGluZXMu
c3BsaWNlKG1heElkTGluZSArIDEsIDAsCisgICAgICAgICAgICAgICAgICAgICAgJ2E9ZXh0bWFw
OicgKyAobWF4SWQgKyAxKS50b1N0cmluZygpICsgJyAnICsgdXJpKTsKKyAgICB9CisgIH0KKyAg
cmV0dXJuIHNkcExpbmVzLmpvaW4oJ1xyXG4nKTsKK30KKworLy8gVE9ETyhjcmJ1Zy5jb20vMTA1
MTgyMSk6IFVzZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBBUEkgaW5zdGVhZCBvZiBtdW5naW5nCisv
LyB3aGVuIHRoZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBBUEkgaXMgaW1wbGVtZW50ZWQuCithc3lu
YyBmdW5jdGlvbiBhZGRBYnNDYXB0dXJlVGltZUFuZEV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxs
ZWUpIHsKKyAgbGV0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisKKyAgLy8g
QWJzb2x1dGUgY2FwdHVyZSB0aW1lIGhlYWRlciBleHRlbnNpb24gbWF5IG5vdCBiZSBvZmZlcmVk
IGJ5IGRlZmF1bHQsCisgIC8vIGluIHN1Y2ggY2FzZSwgbXVuZ2UgdGhlIFNEUC4KKyAgb2ZmZXIu
c2RwID0gYWRkSGVhZGVyRXh0ZW5zaW9uVG9TZHAob2ZmZXIuc2RwLCBrQWJzQ2FwdHVyZVRpbWUp
OworCisgIGF3YWl0IGNhbGxlci5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgcmV0dXJu
IGNhbGxlZS5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Cit9CisKKy8vIFRPRE8oY3JidWcu
Y29tLzEwNTE4MjEpOiBVc2UgUlRQIGhlYWRlciBleHRlbnNpb24gQVBJIGluc3RlYWQgb2YgbXVu
Z2luZworLy8gd2hlbiB0aGUgUlRQIGhlYWRlciBleHRlbnNpb24gQVBJIGlzIGltcGxlbWVudGVk
LgorYXN5bmMgZnVuY3Rpb24gY2hlY2tBYnNDYXB0dXJlVGltZUFuZEV4Y2hhbmdlQW5zd2VyKGNh
bGxlciwgY2FsbGVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQpIHsKKyAgbGV0IGFuc3dlciA9IGF3YWl0
IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKworICBjb25zdCBleHRtYXAgPSBuZXcgUmVnRXhwKCdh
PWV4dG1hcDpcXGQrICcgKyBrQWJzQ2FwdHVyZVRpbWUgKyAnXHJcbicsICdnJyk7CisgIGlmIChh
bnN3ZXIuc2RwLm1hdGNoKGV4dG1hcCkgPT0gbnVsbCkgeworICAgIC8vIFdlIGV4cGVjdCB0aGF0
IGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBhbnN3ZXJlZC4K
KyAgICAvLyBCdXQgaWYgbm90LCB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2NlZWQgd2l0aCB0aGUg
dGVzdC4KKyAgICBhc3NlcnRfZmFsc2UoYWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZCwgJ0Fic29sdXRl
IGNhcHR1cmUgdGltZSBSVFAgJyArCisgICAgICAgICdoZWFkZXIgZXh0ZW5zaW9uIGlzIG5vdCBh
bnN3ZXJlZCcpOworICB9IGVsc2UgeworICAgIGlmICghYWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZCkg
eworICAgICAgLy8gV2UgZXhwZWN0IHRoYXQgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFk
ZXIgZXh0ZW5zaW9uIGlzIG5vdAorICAgICAgLy8gYW5zd2VyZWQsIGJ1dCBpdCBpcywgdGhlbiB3
ZSBtdW5nZSB0aGUgYW5zd2VyIHRvIHJlbW92ZSBpdC4KKyAgICAgIGFuc3dlci5zZHAgPSBhbnN3
ZXIuc2RwLnJlcGxhY2UoZXh0bWFwLCAnJyk7CisgICAgfQorICB9CisKKyAgYXdhaXQgY2FsbGVl
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgcmV0dXJuIGNhbGxlci5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihhbnN3ZXIpOworfQorCithc3luYyBmdW5jdGlvbiBleGNoYW5nZU9mZmVyQW5k
TGlzdGVuVG9PbnRyYWNrKHQsIGNhbGxlciwgY2FsbGVlLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNDYXB0dXJlVGltZU9mZmVyZWQpIHsKKyAgY29u
c3Qgb250cmFja1Byb21pc2UgPSBhZGRFdmVudExpc3RlbmVyUHJvbWlzZSh0LCBjYWxsZWUsICd0
cmFjaycpOworICAvLyBBYnNvbHV0ZSBjYXB0dXJlIHRpbWUgaGVhZGVyIGV4dGVuc2lvbiBpcyBl
eHBlY3RlZCBub3Qgb2ZmZXJlZCBieSBkZWZhdWx0LAorICAvLyBhbmQgdGh1cyBtdW5naW5nIGlz
IG5lZWRlZCB0byBlbmFibGUgaXQuCisgIGF3YWl0IGFic0NhcHR1cmVUaW1lT2ZmZXJlZAorICAg
ICAgPyBhZGRBYnNDYXB0dXJlVGltZUFuZEV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpCisg
ICAgICA6IGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpOworICByZXR1cm4gb250cmFja1By
b21pc2U7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsKHQsIGNh
cCwgYWJzQ2FwdHVyZVRpbWVPZmZlcmVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgYWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZCkgeworICBjb25zdCBjYWxsZXIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2Uo
KSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBn
ZXROb2lzZVN0cmVhbShjYXApOworICBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9
PiB7CisgICAgY2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pOworICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gdHJhY2suc3RvcCgpKTsKKyAgfSk7CisKKyAgLy8gVE9ETyhjcmJ1Zy5jb20vOTg4
NDMyKTogYGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBvbiB0aGUgYXVkaW8gc2lkZQorICAv
LyBuZWVkcyBhIGhhcmR3YXJlIHNpbmsgZm9yIHRoZSByZXR1cm5lZCBkaWN0aW9uYXJ5IGVudHJp
ZXMgdG8gZ2V0IHVwZGF0ZWQuCisgIGNvbnN0IHJlbW90ZVZpZGVvID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ3JlbW90ZScpOworCisgIGNhbGxlZS5vbnRyYWNrID0gZSA9PiB7CisgICAgcmVt
b3RlVmlkZW8uc3JjT2JqZWN0ID0gZS5zdHJlYW1zWzBdOworICB9CisKKyAgZXhjaGFuZ2VJY2VD
YW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5kTGlz
dGVuVG9PbnRyYWNrKHQsIGNhbGxlciwgY2FsbGVlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGFic0NhcHR1cmVUaW1lT2ZmZXJlZCk7CisKKyAgLy8gRXhjaGFuZ2Ug
YW5zd2VyIGFuZCBjaGVjayB3aGV0aGVyIHRoZSBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhl
YWRlcgorICAvLyBleHRlbnNpb24gaXMgYW5zd2VyZWQuCisgIGF3YWl0IGNoZWNrQWJzQ2FwdHVy
ZVRpbWVBbmRFeGNoYW5nZUFuc3dlcihjYWxsZXIsIGNhbGxlZSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQpOworCisg
IHJldHVybiBbY2FsbGVyLCBjYWxsZWVdOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5j
aHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5z
aW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdhM2E1MDhlMTg5NWE1YmM3OGJmMGU1NDRiN2M0OTQ4
MDJlZmU1ODYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNv
dXJjZS1zZW5kZXJDYXB0dXJlVGltZU9mZnNldC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBA
QAorCisKK1BBU1MgW2F1ZGlvXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5v
dCBjb250YWluIHNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0IGlmIGFic29sdXRlIGNhcHR1cmUgdGlt
ZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBub3Qgb2ZmZXJlZAorUEFTUyBbYXVkaW9dIGdldFN5
bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gc2VuZGVyQ2FwdHVyZVRp
bWVPZmZzZXQgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlz
IG9mZmVyZWQsIGJ1dCBub3QgYW5zd2VyZWQKK0ZBSUwgW2F1ZGlvXSBnZXRTeW5jaHJvbml6YXRp
b25Tb3VyY2VzKCkgc2hvdWxkIGNvbnRhaW4gc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgaWYgYWJz
b2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5lZ290aWF0ZWQgc3Rl
cF93YWl0X2Z1bmM6IE5vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRlciBleHRl
bnNpb24uIFRpbWVkIG91dCB3YWl0aW5nIG9uIGNvbmRpdGlvbgorUEFTUyBbdmlkZW9dIGdldFN5
bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gc2VuZGVyQ2FwdHVyZVRp
bWVPZmZzZXQgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlz
IG5vdCBvZmZlcmVkCitQQVNTIFt2aWRlb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNo
b3VsZCBub3QgY29udGFpbiBzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBpZiBhYnNvbHV0ZSBjYXB0
dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgb2ZmZXJlZCwgYnV0IG5vdCBhbnN3ZXJl
ZAorRkFJTCBbdmlkZW9dIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgY29udGFp
biBzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhl
YWRlciBleHRlbnNpb24gaXMgbmVnb3RpYXRlZCBzdGVwX3dhaXRfZnVuYzogTm8gYWJzLWNhcHR1
cmUtdGltZSBjYXB0dXJlIHRpbWUgaGVhZGVyIGV4dGVuc2lvbi4gVGltZWQgb3V0IHdhaXRpbmcg
b24gY29uZGl0aW9uCitGQUlMIEF1ZGlvIGFuZCB2aWRlbyBSVENSdHBTeW5jaHJvbml6YXRpb25T
b3VyY2Uuc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgbXVzdCBiZSB6ZXJvIHN0ZXBfd2FpdF9mdW5j
OiBObyBhYnMtY2FwdHVyZS10aW1lIGNhcHR1cmUgdGltZSBoZWFkZXIgZXh0ZW5zaW9uLiBUaW1l
ZCBvdXQgd2FpdGluZyBvbiBjb25kaXRpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5j
aHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRD
UnRwU3luY2hyb25pemF0aW9uU291cmNlLXNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjNhZDliZjg4OGMzODE1YjZhNGM1ZDZiNDk0MDc3MjczYWFmM2RlYwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLXNlbmRlckNhcHR1
cmVUaW1lT2Zmc2V0Lmh0bWwKQEAgLTAsMCArMSw5MiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPCEtLSBUaGlzIGZpbGUgY29udGFpbnMgYSB0ZXN0IHRoYXQgd2Fp
dHMgZm9yIDIgc2Vjb25kcy4gLS0+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25n
Ij4KKzx0aXRsZT5zZW5kZXJDYXB0dXJlVGltZU9mZnNldCBhdHRyaWJ1dGUgaW4gUlRDUnRwU3lu
Y2hyb25pemF0aW9uU291cmNlPC90aXRsZT4KKzxkaXY+PHZpZGVvIGlkPSJyZW1vdGUiIHdpZHRo
PSIxMjQiIGhlaWdodD0iMTI0IiBhdXRvcGxheT48L3ZpZGVvPjwvZGl2PgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIv
d2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dlYnJ0
Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gbGlzdGVuRm9yU2VuZGVy
Q2FwdHVyZVRpbWVPZmZzZXQodCwgcmVjZWl2ZXIpIHsKKyAgcmV0dXJuIG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7CisgICAgZnVuY3Rpb24gbGlzdGVuKCkgeworICAgICAgY29uc3Qgc3NyY3Mg
PSByZWNlaXZlci5nZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCk7CisgICAgICBhc3NlcnRfdHJ1
ZShzc3JjcyAhPSB1bmRlZmluZWQpOworICAgICAgaWYgKHNzcmNzLmxlbmd0aCA+IDApIHsKKyAg
ICAgICAgYXNzZXJ0X2VxdWFscyhzc3Jjcy5sZW5ndGgsIDEpOworICAgICAgICBpZiAoc3NyY3Nb
MF0uY2FwdHVyZVRpbWVzdGFtcCAhPSB1bmRlZmluZWQpIHsKKyAgICAgICAgICByZXNvbHZlKHNz
cmNzWzBdLnNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0KTsKKyAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgfQorICAgICAgcmV0dXJuIGZhbHNlOworICAgIH07CisgICAgdC5z
dGVwX3dhaXQobGlzdGVuLCAnTm8gYWJzLWNhcHR1cmUtdGltZSBjYXB0dXJlIHRpbWUgaGVhZGVy
IGV4dGVuc2lvbi4nKTsKKyAgfSk7Cit9CisKKy8vIFBhc3NlcyBpZiBgZ2V0U3luY2hyb25pemF0
aW9uU291cmNlcygpYCBjb250YWlucyBgc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXRgIGlmCisvLyBh
bmQgb25seSBpZiBleHBlY3RlZC4KK2ZvciAoY29uc3Qga2luZCBvZiBbJ2F1ZGlvJywgJ3ZpZGVv
J10pIHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjYWxsZXIsIGNh
bGxlZV0gPSBhd2FpdCBpbml0aWF0ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgICAgdCwgLyogY2Fw
cz0gICove1traW5kXTogdHJ1ZX0sIC8qIGFic0NhcHR1cmVUaW1lT2ZmZXJlZD0gKi9mYWxzZSwK
KyAgICAgICAgLyogYWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZD0gKi9mYWxzZSk7CisgICAgY29uc3Qg
cmVjZWl2ZXIgPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF07CisKKyAgICBmb3IgKGNvbnN0IHNz
cmMgb2YgYXdhaXQgbGlzdGVuRm9yU1NSQ3ModCwgcmVjZWl2ZXIpKSB7CisgICAgICBhc3NlcnRf
ZXF1YWxzKHR5cGVvZiBzc3JjLnNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0LCAndW5kZWZpbmVkJyk7
CisgICAgfQorICB9LCAnWycgKyBraW5kICsgJ10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygp
IHNob3VsZCBub3QgY29udGFpbiAnICsKKyAgICAgICdzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBp
ZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gJyArCisgICAgICAn
aXMgbm90IG9mZmVyZWQnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29u
c3QgW2NhbGxlciwgY2FsbGVlXSA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsKAorICAg
ICAgICB0LCAvKiBjYXBzPSAgKi97W2tpbmRdOiB0cnVlfSwgLyogYWJzQ2FwdHVyZVRpbWVPZmZl
cmVkPSAqL2ZhbHNlLAorICAgICAgICAvKiBhYnNDYXB0dXJlVGltZUFuc3dlcmVkPSAqL2ZhbHNl
KTsKKyAgICBjb25zdCByZWNlaXZlciA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKVswXTsKKworICAg
IGZvciAoY29uc3Qgc3NyYyBvZiBhd2FpdCBsaXN0ZW5Gb3JTU1JDcyh0LCByZWNlaXZlcikpIHsK
KyAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHNzcmMuc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQs
ICd1bmRlZmluZWQnKTsKKyAgICB9CisgIH0sICdbJyArIGtpbmQgKyAnXSBnZXRTeW5jaHJvbml6
YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluICcgKworICAgICAgJ3NlbmRlckNhcHR1
cmVUaW1lT2Zmc2V0IGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lv
biAnICsKKyAgICAgICdpcyBvZmZlcmVkLCBidXQgbm90IGFuc3dlcmVkJyk7CisKKyAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjYWxsZXIsIGNhbGxlZV0gPSBhd2FpdCBp
bml0aWF0ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgICAgdCwgLyogY2Fwcz0gICove1traW5kXTog
dHJ1ZX0sIC8qIGFic0NhcHR1cmVUaW1lT2ZmZXJlZD0gKi90cnVlLAorICAgICAgICAvKiBhYnND
YXB0dXJlVGltZUFuc3dlcmVkPSAqL3RydWUpOworICAgIGNvbnN0IHJlY2VpdmVyID0gY2FsbGVl
LmdldFJlY2VpdmVycygpWzBdOworICAgIGxldCBzZW5kZXJDYXB0dXJlVGltZU9mZnNldCA9IGF3
YWl0IGxpc3RlbkZvclNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0KAorICAgICAgICB0LCByZWNlaXZl
cik7CisgICAgYXNzZXJ0X3RydWUoc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgIT0gdW5kZWZpbmVk
KTsKKyAgfSwgJ1snICsga2luZCArICddIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91
bGQgY29udGFpbiAnICsKKyAgICAgICdzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBpZiBhYnNvbHV0
ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gJyArCisgICAgICAnaXMgbmVnb3Rp
YXRlZCcpOworfQorCisvLyBQYXNzZXMgaWYgYHNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0YCBpcyB6
ZXJvLCB3aGljaCBpcyBleHBlY3RlZCBzaW5jZSB0aGUgdGVzdAorLy8gY3JlYXRlcyBhIGxvY2Fs
IHBlZXIgY29ubmVjdGlvbiBiZXR3ZWVuIGBjYWxsZXJgIGFuZCBgY2FsbGVlYC4KK3Byb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgW2NhbGxlciwgY2FsbGVlXSA9IGF3YWl0IGluaXRp
YXRlU2luZ2xlVHJhY2tDYWxsKAorICAgICAgdCwgLyogY2Fwcz0gICove2F1ZGlvOiB0cnVlLCB2
aWRlbzogdHJ1ZX0sCisgICAgICAvKiBhYnNDYXB0dXJlVGltZU9mZmVyZWQ9ICovdHJ1ZSwgLyog
YWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZD0gKi90cnVlKTsKKyAgY29uc3QgcmVjZWl2ZXJzID0gY2Fs
bGVlLmdldFJlY2VpdmVycygpOworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVycy5sZW5ndGgsIDIp
OworCisgIGZvciAobGV0IGkgPSAwOyBpIDwgMjsgKytpKSB7CisgICAgbGV0IHNlbmRlckNhcHR1
cmVUaW1lT2Zmc2V0ID0gYXdhaXQgbGlzdGVuRm9yU2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQoCisg
ICAgICAgIHQsIHJlY2VpdmVyc1tpXSk7CisgICAgYXNzZXJ0X2VxdWFscyhzZW5kZXJDYXB0dXJl
VGltZU9mZnNldCwgMCk7CisgIH0KK30sICdBdWRpbyBhbmQgdmlkZW8gUlRDUnRwU3luY2hyb25p
emF0aW9uU291cmNlLnNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0IG11c3QgJyArCisgICAnYmUgemVy
bycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVh
ZGVyRXh0ZW5zaW9uQ29udHJvbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFRyYW5zY2VpdmVy
LWhlYWRlckV4dGVuc2lvbkNvbnRyb2wtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIwYTcwODc1
NThhOTQzNDNkNDJiMDczOWNhYTkxMTBkY2NlNzA3OGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25z
L1JUQ1J0cFRyYW5zY2VpdmVyLWhlYWRlckV4dGVuc2lvbkNvbnRyb2wtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMTIgQEAKKworRkFJTCB0aGUgdmlkZW8gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5z
aW9uc1RvT2ZmZXIoKSBpbmNsdWRlcyBtYW5kYXRvcnkgZXh0ZW5zaW9ucyB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2FwYWJpbGl0aWVzLmZpbmQnKQorRkFJTCB0aGUg
YXVkaW8gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXIoKSBpbmNsdWRlcyBtYW5k
YXRvcnkgZXh0ZW5zaW9ucyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAn
Y2FwYWJpbGl0aWVzLmZpbmQnKQorRkFJTCBzZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyB0
aHJvd3MgVHlwZUVycm9yIG9uIGVuY291bnRlcmluZyBtaXNzaW5nIFVSSSB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2FwYWJpbGl0aWVzWzBdJykKK0ZBSUwgc2V0T2Zm
ZXJlZFJ0cEhlYWRlckV4dGVuc2lvbnMgdGhyb3dzIE5vdFN1cHBvcnRlZCBvbiBlbmNvdW50ZXJp
bmcgdW5rbm93biBVUkkgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2Nh
cGFiaWxpdGllc1swXScpCitGQUlMIHNldE9mZmVyZWRSdHBIZWFkZXJFeHRlbnNpb25zIHRocm93
cyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Igd2hlbiBzZXR0aW5nIGEgbWFuZGF0b3J5IGhlYWRl
ciBleHRlbnNpb24ncyBkaXJlY3Rpb24gdG8gc29tZXRoaW5nIGVsc2UgdGhhbiAic2VuZHJlY3Yi
IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRpZXMuZmlu
ZCcpCitGQUlMIG1vZGlmaWVkIGRpcmVjdGlvbiBzZXQgYnkgc2V0T2ZmZXJlZFJ0cEhlYWRlckV4
dGVuc2lvbnMgaXMgdmlzaWJsZSBpbiBoZWFkZXJFeHRlbnNpb25zT2ZmZXJlZCB1bmRlZmluZWQg
aXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2FwYWJpbGl0aWVzLmZpbmQnKQorRkFJTCB1
bnN0b3BwZWQgZXh0ZW5zaW9ucyB0dXJuIHVwIGluIG9mZmVyIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKG5lYXIgJy4uLi5qb2luKCJcbiIpOy4uLicpIgorRkFJTCBzdG9wcGVk
IGV4dGVuc2lvbnMgZG8gbm90IHR1cm4gdXAgaW4gb2ZmZXJzIHByb21pc2VfdGVzdDogVW5oYW5k
bGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlz
IG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2NhcGFiaWxpdGllcy5maW5kJykiCitGQUlMIHRo
ZSBzZXQgb2YgbmVnb3RpYXRlZCBleHRlbnNpb25zIGdyb3dzIHdpdGggc3Vic2VxdWVudCBvZmZl
cnMgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
VHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2FwYWJp
bGl0aWVzLmZpbmQnKSIKK0ZBSUwgdGhlIHNldCBvZiBuZWdvdGlhdGVkIGV4dGVuc2lvbnMgaXMg
dGhlIHNldCBvZiB1bnN0b3BwZWQgZXh0ZW5zaW9ucyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCBy
ZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3Qg
YW4gb2JqZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRpZXMuZmluZCcpIgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRl
bnNpb25zL1JUQ1J0cFRyYW5zY2VpdmVyLWhlYWRlckV4dGVuc2lvbkNvbnRyb2wuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lv
bnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9uQ29udHJvbC5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4MjNiZDgzMGM2ZTM0YzE1OWRjNTExYzA1NzIxYTQwYjY5NTg2YjEKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy1leHRlbnNpb25zL1JUQ1J0cFRyYW5zY2VpdmVyLWhlYWRlckV4dGVuc2lvbkNvbnRyb2wuaHRt
bApAQCAtMCwwICsxLDIxOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlJUQ1J0cFBhcmFtZXRlcnMgZW5jb2RpbmdzPC90aXRsZT4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvd2Vi
cnRjL2RpY3Rpb25hcnktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvd2VicnRj
L1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0
cmljdCc7CisKK2FzeW5jIGZ1bmN0aW9uIG5lZ290aWF0ZShwYzEsIHBjMikgeworICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7
CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMy
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2Ny
aXB0aW9uKGFuc3dlcik7Cit9CisKK3Rlc3QoZnVuY3Rpb24odCkgeworICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICBj
b25zdCBjYXBhYmlsaXRpZXMgPSB0cmFuc2NlaXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZlcjsK
KyAgbGV0IGNhcGFiaWxpdHkgPSBjYXBhYmlsaXRpZXMuZmluZCgoY2FwYWJpbGl0eSkgPT4gewor
ICAgICAgcmV0dXJuIGNhcGFiaWxpdHkudXJpID09ICJ1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4
dDpzZGVzOm1pZCIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5LmRpcmVjdGlvbiAhPSAic3Rv
cHBlZCI7CisgIH0pOworICBhc3NlcnRfbm90X2VxdWFscyhjYXBhYmlsaXR5LCB1bmRlZmluZWQp
OworICBjYXBhYmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZpbmQoKGNhcGFiaWxpdHkpID0+IHsKKyAg
ICAgIHJldHVybiBjYXBhYmlsaXR5LnVyaSA9PSAidXJuOjNncHA6dmlkZW8tb3JpZW50YXRpb24i
ICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS5kaXJlY3Rpb24gIT0gInN0b3BwZWQiOworICB9
KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoY2FwYWJpbGl0eSwgdW5kZWZpbmVkKTsKK30sIGB0aGUg
dmlkZW8gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXIoKSBpbmNsdWRlcyBtYW5k
YXRvcnkgZXh0ZW5zaW9uc2ApOworCit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgY29uc3QgcGMgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKKyAg
Y29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXI7
CisgIGxldCBjYXBhYmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZpbmQoKGNhcGFiaWxpdHkpID0+IHsK
KyAgICAgIHJldHVybiBjYXBhYmlsaXR5LnVyaSA9PSAidXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJl
eHQ6c2RlczptaWQiICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS5kaXJlY3Rpb24gIT0gInN0
b3BwZWQiOworICB9KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoY2FwYWJpbGl0eSwgdW5kZWZpbmVk
KTsKK30sIGB0aGUgYXVkaW8gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXIoKSBp
bmNsdWRlcyBtYW5kYXRvcnkgZXh0ZW5zaW9uc2ApOworCit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKKyAgY29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5z
aW9uc1RvT2ZmZXI7CisgIGNhcGFiaWxpdGllc1swXS51cmkgPSAiIjsKKyAgYXNzZXJ0X3Rocm93
c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICB0cmFuc2NlaXZlci5zZXRPZmZlcmVkUnRwSGVh
ZGVyRXh0ZW5zaW9ucyhjYXBhYmlsaXRpZXMpOworICB9LCAndHJhbnNjZWl2ZXIgc2hvdWxkIHRo
cm93IFR5cGVFcnJvciB3aGVuIHNldHRpbmcgYW4gZW1wdHkgVVJJJyk7Cit9LCBgc2V0T2ZmZXJl
ZFJ0cEhlYWRlckV4dGVuc2lvbnMgdGhyb3dzIFR5cGVFcnJvciBvbiBlbmNvdW50ZXJpbmcgbWlz
c2luZyBVUklgKTsKKwordGVzdChmdW5jdGlvbih0KSB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNv
bnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIGNvbnN0IGNh
cGFiaWxpdGllcyA9IHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNUb09mZmVyOworICBjYXBh
YmlsaXRpZXNbMF0udXJpID0gIjQ3MTEiOworICBhc3NlcnRfdGhyb3dzX2RvbSgiTm90U3VwcG9y
dGVkRXJyb3IiLCAoKSA9PiB7CisgICAgdHJhbnNjZWl2ZXIuc2V0T2ZmZXJlZFJ0cEhlYWRlckV4
dGVuc2lvbnMoY2FwYWJpbGl0aWVzKTsKKyAgfSwgJ3RyYW5zY2VpdmVyIHNob3VsZCB0aHJvdyBO
b3RTdXBwb3J0ZWQgd2hlbiBzZXR0aW5nIGFuIHVua25vd24gVVJJJyk7Cit9LCBgc2V0T2ZmZXJl
ZFJ0cEhlYWRlckV4dGVuc2lvbnMgdGhyb3dzIE5vdFN1cHBvcnRlZCBvbiBlbmNvdW50ZXJpbmcg
dW5rbm93biBVUklgKTsKKwordGVzdChmdW5jdGlvbih0KSB7CisgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Cisg
IGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIGNvbnN0
IGNhcGFiaWxpdGllcyA9IHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNUb09mZmVyOworICBs
ZXQgY2FwYWJpbGl0eSA9IGNhcGFiaWxpdGllcy5maW5kKChjYXBhYmlsaXR5KSA9PiB7CisgICAg
ICByZXR1cm4gY2FwYWJpbGl0eS51cmkgPT0gInVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNk
ZXM6bWlkIjsKKyAgfSk7CisgIFsic2VuZG9ubHkiLCAicmVjdm9ubHkiLCAiaW5hY3RpdmUiLCAi
c3RvcHBlZCJdLm1hcChkaXJlY3Rpb24gPT4geworICAgIGNhcGFiaWxpdHkuZGlyZWN0aW9uID0g
ZGlyZWN0aW9uOworICAgIGFzc2VydF90aHJvd3NfZG9tKCJJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3IiLCAoKSA9PiB7CisgICAgICB0cmFuc2NlaXZlci5zZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5z
aW9ucyhjYXBhYmlsaXRpZXMpOworICAgIH0sIGB0cmFuc2NlaXZlciBzaG91bGQgdGhyb3cgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yIHdoZW4gc2V0dGluZyBhIG1hbmRhdG9yeSBoZWFkZXIgZXh0
ZW5zaW9uXCdzIGRpcmVjdGlvbiB0byAke2RpcmVjdGlvbn1gKTsKKyAgfSk7Cit9LCBgc2V0T2Zm
ZXJlZFJ0cEhlYWRlckV4dGVuc2lvbnMgdGhyb3dzIEludmFsaWRNb2RpZmljYXRpb25FcnJvciB3
aGVuIHNldHRpbmcgYSBtYW5kYXRvcnkgaGVhZGVyIGV4dGVuc2lvblwncyBkaXJlY3Rpb24gdG8g
c29tZXRoaW5nIGVsc2UgdGhhbiAic2VuZHJlY3YiYCk7CisKK3Rlc3QoZnVuY3Rpb24odCkgewor
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOworICBsZXQgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5z
aW9uc1RvT2ZmZXI7CisgIGxldCBzZWxlY3RlZF9jYXBhYmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZp
bmQoKGNhcGFiaWxpdHkpID0+IHsKKyAgICAgIHJldHVybiBjYXBhYmlsaXR5LmRpcmVjdGlvbiA9
PSAic2VuZHJlY3YiICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS51cmkgIT0gInVybjppZXRm
OnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIjsKKyAgfSk7CisgIHNlbGVjdGVkX2NhcGFiaWxp
dHkuZGlyZWN0aW9uID0gInN0b3BwZWQiOworICBjb25zdCBvZmZlcmVkX2NhcGFiaWxpdGllcyA9
IHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNUb09mZmVyOworICBsZXQgYWx0ZXJlZF9jYXBh
YmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZpbmQoKGNhcGFiaWxpdHkpID0+IHsKKyAgICAgIHJldHVy
biBjYXBhYmlsaXR5LnVyaSA9PSBzZWxlY3RlZF9jYXBhYmlsaXR5LnVyaSAmJgorICAgICAgICAg
ICAgIGNhcGFiaWxpdHkuZGlyZWN0aW9uID09ICJzdG9wcGVkIjsKKyAgfSk7CisgIGFzc2VydF9u
b3RfZXF1YWxzKGFsdGVyZWRfY2FwYWJpbGl0eSwgdW5kZWZpbmVkKTsKK30sIGBtb2RpZmllZCBk
aXJlY3Rpb24gc2V0IGJ5IHNldE9mZmVyZWRSdHBIZWFkZXJFeHRlbnNpb25zIGlzIHZpc2libGUg
aW4gaGVhZGVyRXh0ZW5zaW9uc09mZmVyZWRgKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2Vp
dmVyKCd2aWRlbycpOworICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0cmFuc2NlaXZlci5oZWFkZXJF
eHRlbnNpb25zVG9PZmZlcjsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigp
OworICBjb25zdCBleHRtYXBzID0gb2ZmZXIKKyAgICAgICAgICAgICAgICAgICAgICAuc2RwCisg
ICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCJcbiIpCisgICAgICAgICAgICAgICAgICAgICAg
LmZpbHRlcihsaW5lID0+IHsgcmV0dXJuIGxpbmUuaW5jbHVkZXMoImE9ZXh0bWFwIik7IH0pCisg
ICAgICAgICAgICAgICAgICAgICAgLmpvaW4oIlxuIik7CisgIGZvciAoY29uc3QgY2FwYWJpbGl0
eSBvZiBjYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoY2FwYWJpbGl0eS5kaXJlY3Rpb24gPT0gInN0
b3BwZWQiKSB7CisgICAgICBhc3NlcnRfZmFsc2UoZXh0bWFwcy5pbmNsdWRlcyhjYXBhYmlsaXR5
LnVyaSkpOworICAgIH0gZWxzZSB7CisgICAgICBhc3NlcnRfdHJ1ZShleHRtYXBzLmluY2x1ZGVz
KGNhcGFiaWxpdHkudXJpKSk7CisgICAgfQorICB9Cit9LCBgdW5zdG9wcGVkIGV4dGVuc2lvbnMg
dHVybiB1cCBpbiBvZmZlcmApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVv
Jyk7CisgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNU
b09mZmVyOworICBjb25zdCBzZWxlY3RlZF9jYXBhYmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZpbmQo
KGNhcGFiaWxpdHkpID0+IHsKKyAgICAgIHJldHVybiBjYXBhYmlsaXR5LmRpcmVjdGlvbiA9PSAi
c2VuZHJlY3YiICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS51cmkgIT0gInVybjppZXRmOnBh
cmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIiAmJgorICAgICAgICAgICAgIGNhcGFiaWxpdHkudXJp
ICE9ICJ1cm46M2dwcDp2aWRlby1vcmllbnRhdGlvbiI7CisgIH0pOworICBzZWxlY3RlZF9jYXBh
YmlsaXR5LmRpcmVjdGlvbiA9ICJzdG9wcGVkIjsKKyAgdHJhbnNjZWl2ZXIuc2V0T2ZmZXJlZFJ0
cEhlYWRlckV4dGVuc2lvbnMoY2FwYWJpbGl0aWVzKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBw
Yy5jcmVhdGVPZmZlcigpOworICBjb25zdCBleHRtYXBzID0gb2ZmZXIKKyAgICAgICAgICAgICAg
ICAgICAgICAuc2RwCisgICAgICAgICAgICAgICAgICAgICAgLnNwbGl0KCJcbiIpCisgICAgICAg
ICAgICAgICAgICAgICAgLmZpbHRlcihsaW5lID0+IHsgcmV0dXJuIGxpbmUuaW5jbHVkZXMoImE9
ZXh0bWFwIik7IH0pCisgICAgICAgICAgICAgICAgICAgICAgLmpvaW4oIlxuIik7CisgIGZvciAo
Y29uc3QgY2FwYWJpbGl0eSBvZiBjYXBhYmlsaXRpZXMpIHsKKyAgICBpZiAoY2FwYWJpbGl0eS5k
aXJlY3Rpb24gPT0gInN0b3BwZWQiKSB7CisgICAgICBhc3NlcnRfZmFsc2UoZXh0bWFwcy5pbmNs
dWRlcyhjYXBhYmlsaXR5LnVyaSkpOworICAgIH0gZWxzZSB7CisgICAgICBhc3NlcnRfdHJ1ZShl
eHRtYXBzLmluY2x1ZGVzKGNhcGFiaWxpdHkudXJpKSk7CisgICAgfQorICB9Cit9LCBgc3RvcHBl
ZCBleHRlbnNpb25zIGRvIG5vdCB0dXJuIHVwIGluIG9mZmVyc2ApOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisg
IC8vIERpc2FibGUgYSBub24tbWFuZGF0b3J5IGV4dGVuc2lvbiBiZWZvcmUgZmlyc3QgbmVnb3Rp
YXRpb24uCisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycp
OworICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0cmFuc2NlaXZlci5oZWFkZXJFeHRlbnNpb25zVG9P
ZmZlcjsKKyAgY29uc3Qgc2VsZWN0ZWRfY2FwYWJpbGl0eSA9IGNhcGFiaWxpdGllcy5maW5kKChj
YXBhYmlsaXR5KSA9PiB7CisgICAgICByZXR1cm4gY2FwYWJpbGl0eS5kaXJlY3Rpb24gPT0gInNl
bmRyZWN2IiAmJgorICAgICAgICAgICAgIGNhcGFiaWxpdHkudXJpICE9ICJ1cm46aWV0ZjpwYXJh
bXM6cnRwLWhkcmV4dDpzZGVzOm1pZCIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5LnVyaSAh
PSAidXJuOjNncHA6dmlkZW8tb3JpZW50YXRpb24iOworICB9KTsKKyAgc2VsZWN0ZWRfY2FwYWJp
bGl0eS5kaXJlY3Rpb24gPSAic3RvcHBlZCI7CisgIHRyYW5zY2VpdmVyLnNldE9mZmVyZWRSdHBI
ZWFkZXJFeHRlbnNpb25zKGNhcGFiaWxpdGllcyk7CisKKyAgYXdhaXQgbmVnb3RpYXRlKHBjMSwg
cGMyKTsKKyAgY29uc3QgbmVnb3RpYXRlZF9jYXBhYmlsaXRlcyA9IHRyYW5zY2VpdmVyLmhlYWRl
ckV4dGVuc2lvbnNOZWdvdGlhdGVkOworCisgIC8vIEF0dGVtcHQgZW5hYmxpbmcgdGhlIGV4dGVu
c2lvbi4KKyAgc2VsZWN0ZWRfY2FwYWJpbGl0eS5kaXJlY3Rpb24gPSAic2VuZHJlY3YiOworCisg
IC8vIFRoZSBlbmFibGVkIGV4dGVuc2lvbiBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIG5lZ290
aWF0ZWQgc2V0LgorICB0cmFuc2NlaXZlci5zZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyhj
YXBhYmlsaXRpZXMpOworICBhd2FpdCBuZWdvdGlhdGUocGMxLCBwYzIpOworICBhc3NlcnRfbm90
X2VxdWFscygKKyAgICAgIHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNOZWdvdGlhdGVkLmZp
bmQoY2FwYWJpbGl0eSA9PiB7CisgICAgICAgIHJldHVybiBjYXBhYmlsaXR5LnVyaSA9PSBzZWxl
Y3RlZF9jYXBhYmlsaXR5LnVyaSAmJgorICAgICAgICAgICAgICAgY2FwYWJpbGl0eS5kaXJlY3Rp
b24gPT0gInNlbmRyZWN2IjsKKyAgICAgIH0pLCB1bmRlZmluZWQpOworfSwgYHRoZSBzZXQgb2Yg
bmVnb3RpYXRlZCBleHRlbnNpb25zIGdyb3dzIHdpdGggc3Vic2VxdWVudCBvZmZlcnNgKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBj
MiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKworICAvLyBEaXNhYmxlIGEgbm9uLW1hbmRhdG9yeSBleHRlbnNpb24gYmVmb3Jl
IGZpcnN0IG5lZ290aWF0aW9uLgorICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2Nl
aXZlcigndmlkZW8nKTsKKyAgY29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVy
RXh0ZW5zaW9uc1RvT2ZmZXI7CisgIGNvbnN0IHNlbGVjdGVkX2NhcGFiaWxpdHkgPSBjYXBhYmls
aXRpZXMuZmluZCgoY2FwYWJpbGl0eSkgPT4geworICAgICAgcmV0dXJuIGNhcGFiaWxpdHkuZGly
ZWN0aW9uID09ICJzZW5kcmVjdiIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5LnVyaSAhPSAi
dXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQiICYmCisgICAgICAgICAgICAgY2Fw
YWJpbGl0eS51cmkgIT0gInVybjozZ3BwOnZpZGVvLW9yaWVudGF0aW9uIjsKKyAgfSk7CisgIHNl
bGVjdGVkX2NhcGFiaWxpdHkuZGlyZWN0aW9uID0gInN0b3BwZWQiOworICB0cmFuc2NlaXZlci5z
ZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyhjYXBhYmlsaXRpZXMpOworCisgIGF3YWl0IG5l
Z290aWF0ZShwYzEsIHBjMik7CisgIGNvbnN0IG5lZ290aWF0ZWRfY2FwYWJpbGl0ZXMgPSB0cmFu
c2NlaXZlci5oZWFkZXJFeHRlbnNpb25zTmVnb3RpYXRlZDsKKworICBmb3IgKGNvbnN0IGNhcGFi
aWxpdHkgb2YgbmVnb3RpYXRlZF9jYXBhYmlsaXRlcykgeworICAgIGFzc2VydF9ub3RfZXF1YWxz
KGNhcGFiaWxpdGllcy5maW5kKChjYXApID0+IHsKKyAgICAgIHJldHVybiBjYXAudXJpID09IGNh
cGFiaWxpdHkudXJpICYmIGNhcC5kaXJlY3Rpb24gIT0gInN0b3BwZWQiOworICAgIH0pLCB1bmRl
ZmluZWQpOworICB9CisgIGZvciAoY29uc3QgY2FwYWJpbGl0eSBvZiBjYXBhYmlsaXRpZXMpIHsK
KyAgICBpZiAoY2FwYWJpbGl0eS5kaXJlY3Rpb24gIT0gInN0b3BwZWQiKSB7CisgICAgICBhc3Nl
cnRfbm90X2VxdWFscyhuZWdvdGlhdGVkX2NhcGFiaWxpdGVzLmZpbmQoKGNhcCkgPT4geworICAg
ICAgICByZXR1cm4gY2FwLnVyaSA9PSBjYXBhYmlsaXR5LnVyaTsKKyAgICAgIH0pLCB1bmRlZmlu
ZWQpOworICAgIH0KKyAgfQorfSwgYHRoZSBzZXQgb2YgbmVnb3RpYXRlZCBleHRlbnNpb25zIGlz
IHRoZSBzZXQgb2YgdW5zdG9wcGVkIGV4dGVuc2lvbnNgKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1l
eHRlbnNpb25zL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy93M2MtaW1wb3J0LmxvZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hNjQ0ZWI1ZGZhZDg1NmYzZjU3N2ZmOGFkMDJlNmFmMzAzOTY0OTVjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMt
ZXh0ZW5zaW9ucy93M2MtaW1wb3J0LmxvZwpAQCAtMCwwICsxLDI1IEBACitUaGUgdGVzdHMgaW4g
dGhpcyBkaXJlY3Rvcnkgd2VyZSBpbXBvcnRlZCBmcm9tIHRoZSBXM0MgcmVwb3NpdG9yeS4KK0Rv
IE5PVCBtb2RpZnkgdGhlc2UgdGVzdHMgZGlyZWN0bHkgaW4gV2ViS2l0LgorSW5zdGVhZCwgY3Jl
YXRlIGEgcHVsbCByZXF1ZXN0IG9uIHRoZSBXUFQgZ2l0aHViOgorCWh0dHBzOi8vZ2l0aHViLmNv
bS93ZWItcGxhdGZvcm0tdGVzdHMvd3B0CisKK1RoZW4gcnVuIHRoZSBUb29scy9TY3JpcHRzL2lt
cG9ydC13M2MtdGVzdHMgaW4gV2ViS2l0IHRvIHJlaW1wb3J0CisKK0RvIE5PVCBtb2RpZnkgb3Ig
cmVtb3ZlIHRoaXMgZmlsZS4KKworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitQcm9wZXJ0aWVzIHJlcXVpcmlu
ZyB2ZW5kb3IgcHJlZml4ZXM6CitOb25lCitQcm9wZXJ0eSB2YWx1ZXMgcmVxdWlyaW5nIHZlbmRv
ciBwcmVmaXhlczoKK05vbmUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorTGlzdCBvZiBmaWxlczoKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25z
L01FVEEueW1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMtZXh0ZW5zaW9ucy9SVENPQXV0aENyZWRlbnRpYWwuaHRtbAorL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFy
YW1ldGVycy1hZGFwdGl2ZVB0aW1lLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtbWF4RnJh
bWVyYXRlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFJlY2VpdmVyLXBsYXlvdXREZWxheUhpbnQuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVu
c2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWNhcHR1cmVUaW1lc3RhbXAuaHRtbAor
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVu
c2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWhlbHBlci5qcworL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRw
U3luY2hyb25pemF0aW9uU291cmNlLXNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0Lmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25z
L1JUQ1J0cFRyYW5zY2VpdmVyLWhlYWRlckV4dGVuc2lvbkNvbnRyb2wuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0
aW9ucy5qc29uCmluZGV4IGYyNGUwNTYwNTdlNjRmY2ZiMTA0MTY2N2JiN2VmNjVjOTA1OWNjMTku
LjNmOGQ4OWM0NjZiODIxOTFmODgyZTAwMTc3OTNkZjc4YjMyOGRkYzIgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy90ZXN0cy1vcHRp
b25zLmpzb24KQEAgLTI5NTQsNiArMjk1NCwxMiBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWFuYWx5c2Vybm9kZS1pbnRl
cmZhY2UvdGVzdC1hbmFseXNlci1vdXRwdXQuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAg
XSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9u
cy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtY2FwdHVyZVRpbWVzdGFtcC5odG1sIjogWwor
ICAgICAgICAic2xvdyIKKyAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1zZW5kZXJD
YXB0dXJlVGltZU9mZnNldC5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9u
ZWNoYW5nZS1sb25nLmh0bWwiOiBbCiAgICAgICAgICJzbG93IgogICAgIF0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431305</attachid>
            <date>2021-06-14 01:47:06 -0700</date>
            <delta_ts>2021-06-14 23:46:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226961-20210614104704.patch</filename>
            <type>text/plain</type>
            <size>50280</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4ODIwCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMmZiNWNjYTFlMWVhMjc5YzYwMDky
ZjBlN2JkZWIyNzFiNmQ4NDBkZC4uZjRjNjc1NTMyMDcyNjUxZWExMWNmNzQ4MDBkYmJkMDgxYWFi
YmU2YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIxLTA2LTE0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBvcnQgV1BUIHdlYnJ0Yy1leHRlbnNpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjY5NjEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHRlc3Rz
LW9wdGlvbnMuanNvbjoKKwogMjAyMS0wNi0xMyAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bVEZDXSBBZGQgc3VwcG9ydCBmb3Igb3Zlci1jb25zdHJhaW5l
ZCBjYXNlcyBmb3IgYXZhaWxhYmxlIHNwYWNlIGRpc3RyaWJ1dGlvbgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKaW5kZXggYTViN2VkNjk4MTI4MTQyMjUwZDFhYWM3Mzk5ODE0ZjUxZTBkNjNj
MS4uNGQxNTYwMDM4M2ZiMWU3ZmY0N2IyNTkyYWM1NjU0NTJiYTMwYmI0NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDYtMTQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEltcG9ydCBXUFQgd2VicnRjLWV4
dGVuc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyNjk2MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogcmVzb3VyY2VzL2ltcG9ydC1leHBlY3RhdGlvbnMuanNvbjoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvOiBBZGRlZC4KKwogMjAyMS0wNi0xMSAgQ2F0
aGllIENoZW4gIDxjYXRoaWVjaGVuQGlnYWxpYS5jb20+CiAKICAgICAgICAgVXNlIEhUTUxEaW1l
bnNpb24gdG8gcGFyc2UgZGlmZmVyZW50IEhUTUwgYXR0cmlidXRlIGxlbmd0aCB2YWx1ZXMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9yZXNvdXJjZXMvaW1wb3J0LWV4cGVj
dGF0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24KaW5kZXggN2Q3ZDIzYzE3NzM5OTJhOTU3MGFhNjAyYTMxOTRlNTA3
ZGRmODY0ZC4uYjg4MjliNzc5MzhhZTk2OWE0MDJmM2I0YzU1NjgxZmEzODEzZTlhYyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQtZXhwZWN0YXRp
b25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3Jlc291cmNlcy9pbXBvcnQt
ZXhwZWN0YXRpb25zLmpzb24KQEAgLTQzNCw2ICs0MzQsNyBAQAogICAgICJ3ZWItcGxhdGZvcm0t
dGVzdHMvd2VibWVzc2FnaW5nIjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMv
d2VibWVzc2FnaW5nLyI6ICJpbXBvcnQiLCAKICAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
YyI6ICJpbXBvcnQiLCAKKyAgICAid2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25z
IjogImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLXByaW9yaXR5Ijog
ImltcG9ydCIsIAogICAgICJ3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL2xlZ2FjeSI6ICJza2lw
IiwgCiAgICAgIndlYi1wbGF0Zm9ybS10ZXN0cy93ZWJzb2NrZXRzIjogImltcG9ydCIsIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMtZXh0ZW5zaW9ucy9NRVRBLnltbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvTUVUQS55bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmU4Y2Iw
MjhmMDg4NDI1ODlkNmMyZjA2MzkxYmM1Yzg0NjkwNDhkMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lv
bnMvTUVUQS55bWwKQEAgLTAsMCArMSwzIEBACitzcGVjOiBodHRwczovL3czYy5naXRodWIuaW8v
d2VicnRjLWV4dGVuc2lvbnMvCitzdWdnZXN0ZWRfcmV2aWV3ZXJzOgorICAtIGhib3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
LWV4dGVuc2lvbnMvUlRDT0F1dGhDcmVkZW50aWFsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDT0F1
dGhDcmVkZW50aWFsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjlhMmMxY2Y0ZDIyMmU1N2Ez
ODMwYjg4ZDEyYmNiNDlkN2I5M2VlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENPQXV0aENy
ZWRlbnRpYWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKKworRkFJTCBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBv
YXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJy
b3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgorICAgIG1ha2VQYyh7IGljZVNl
cnZlcnM6IFt7CisgICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCisgICAgICBj
cmVkZW50aWFsVHlwZTogJ29hdXRoJywKKyAgICAgIHVzZXJuYW1lOiAndXNlcicsCisgICAgICBj
cmVkZW50aWFsOiAnY3JlZCcKKyAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdworRkFJTCBzZXRDb25m
aWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgb2F1
dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9y
IGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KKyAgICBtYWtlUGMoeyBpY2VTZXJ2
ZXJzOiBbeworICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAorICAgICAgY3Jl
ZGVudGlhbFR5cGU6ICdvYXV0aCcsCisgICAgICB1c2VybmFtZTogJ3VzZXInLAorICAgICAgY3Jl
ZGVudGlhbDogJ2NyZWQnCisgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKK0ZBSUwgbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbCB0eXBl
IGFuZCBjcmVkZW50aWFsIGZyb20gc3BlYyBzaG91bGQgbm90IHRocm93IGFzc2VydF9lcXVhbHM6
IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQK
K0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRl
bnRpYWwgdHlwZSBhbmQgY3JlZGVudGlhbCBmcm9tIHNwZWMgc2hvdWxkIG5vdCB0aHJvdyBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkg
dW5kZWZpbmVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDT0F1dGhDcmVkZW50aWFsLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNp
b25zL1JUQ09BdXRoQ3JlZGVudGlhbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzZTkyYzZkMDg3ZDNmMzM5
NTY1MWI5ZmQ4ZWE1ODM3MzZiZjcwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ09BdXRo
Q3JlZGVudGlhbC5odG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENDb25maWd1cmF0aW9uIGljZVNlcnZlcnMgd2l0aCBP
QXV0aCBjcmVkZW50aWFsczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nL3Jlc291cmNlcy90ZXN0aGFybmVzc3Jl
cG9ydC5qcyc+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0nLi4vd2VicnRjL1JUQ0NvbmZpZ3VyYXRp
b24taGVscGVyLmpzJz48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ugc3RyaWN0JzsKKworLy8g
VGhlc2UgdGVzdHMgYXJlIGJhc2VkIG9uCisvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRj
LWV4dGVuc2lvbnMvI3J0Y29hdXRoY3JlZGVudGlhbC1kaWN0aW9uYXJ5CisKKy8qCisgICAgNC4z
LjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCisgICAgMTEuNi4gSWYgc2NoZW1lIG5hbWUgaXMg
dHVybiBvciB0dXJucywgYW5kIHNlcnZlci5jcmVkZW50aWFsVHlwZSBpcyAib2F1dGgiLAorICAg
IGFuZCBzZXJ2ZXIuY3JlZGVudGlhbCBpcyBub3QgYW4gUlRDT0F1dGhDcmVkZW50aWFsLCB0aGVu
IHRocm93IGFuCisgICAgSW52YWxpZEFjY2Vzc0Vycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4K
KyovCitjb25maWdfdGVzdChtYWtlUGMgPT4geworICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxp
ZEFjY2Vzc0Vycm9yJywgKCkgPT4KKyAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbeworICAgICAg
dXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAorICAgICAgY3JlZGVudGlhbFR5cGU6ICdv
YXV0aCcsCisgICAgICB1c2VybmFtZTogJ3VzZXInLAorICAgICAgY3JlZGVudGlhbDogJ2NyZWQn
CisgICAgfV0gfSkpOworfSwgJ3dpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0
aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3In
KTsKKworY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKKyAgY29uc3QgcGMgPSBtYWtlUGMoeyBpY2VT
ZXJ2ZXJzOiBbeworICAgIHVybHM6ICd0dXJuczp0dXJuMi5leGFtcGxlLm5ldCcsCisgICAgdXNl
cm5hbWU6ICcyMkJJanhVOTNoL0lnd0ViJywKKyAgICBjcmVkZW50aWFsOiB7CisgICAgICBtYWNL
ZXk6ICdXbXR6YW5CM1pXOXBlRmh0ZG00Mk56VXpORzA9JywKKyAgICAgIGFjY2Vzc1Rva2VuOiAn
QUF3ZzNrUEhXUGZ2azliREZMOTM2d1l2a29jdE1BRHpRNVZoTkRnZU1SMytabFozNWJ5Zzk3MmZX
OFFqcEVsN2J4OTFZTEJQRnNJaHN4bG9XY1hQaEE9PScKKyAgICB9LAorICAgIGNyZWRlbnRpYWxU
eXBlOiAnb2F1dGgnCisgIH1dfSk7CisgIGNvbnN0IHsgaWNlU2VydmVycyB9ID0gcGMuZ2V0Q29u
ZmlndXJhdGlvbigpOworICBjb25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJzWzBdOworICBhc3NlcnRf
ZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwgJ29hdXRoJyk7Cit9LCAnd2l0aCB0dXJucyBz
ZXJ2ZXIsIGNyZWRlbnRpYWwgdHlwZSBhbmQgY3JlZGVudGlhbCBmcm9tIHNwZWMgc2hvdWxkIG5v
dCB0aHJvdycpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVy
cy1hZGFwdGl2ZVB0aW1lLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1hZGFw
dGl2ZVB0aW1lLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NWRlYjViMGVkMzlhYmU4OTM1Mzdl
ZTllMWViZjVjMGU2MjNhYzM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBQYXJhbWV0
ZXJzLWFkYXB0aXZlUHRpbWUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFNl
dHRpbmcgYWRhcHRpdmVQdGltZSBzaG91bGQgYmUgYWNjZXB0ZWQgYXNzZXJ0X3RydWU6IGV4cGVj
dGVkIHRydWUgZ290IHVuZGVmaW5lZAorRkFJTCBhZGFwdGl2ZVB0aW1lIHNob3VsZCBiZSBkZWZh
dWx0IGZhbHNlIGFzc2VydF9mYWxzZTogZXhwZWN0ZWQgZmFsc2UgZ290IHVuZGVmaW5lZAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMtYWRhcHRpdmVQdGltZS5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9u
cy9SVENSdHBQYXJhbWV0ZXJzLWFkYXB0aXZlUHRpbWUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGNjOTg5
YzEzZGEwYjY1MzNmYWFkZmEzYWMxMjNlNmRmODk4ODYyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9u
cy9SVENSdHBQYXJhbWV0ZXJzLWFkYXB0aXZlUHRpbWUuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5SVENSdHBFbmNv
ZGluZ1BhcmFtZXRlcnMgYWRhcHRpdmVQdGltZSBwcm9wZXJ0eTwvdGl0bGU+Cis8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorICAndXNl
IHN0cmljdCc7CisKKyAgZnVuY3Rpb24gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSkgeworICAgIGNv
bnN0IHsgZW5jb2RpbmdzIH0gPSBwYXJhbTsKKyAgICBhc3NlcnRfZXF1YWxzKGVuY29kaW5ncy5s
ZW5ndGgsIDEpOworICAgIHJldHVybiBlbmNvZGluZ3NbMF07CisgIH0KKworICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHsgc2VuZGVy
IH0gPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7CisgICAgICBzZW5kRW5jb2RpbmdzOiBb
e2FkYXB0aXZlUHRpbWU6IHRydWV9XSwKKyAgICB9KTsKKworICAgIGxldCBwYXJhbSA9IHNlbmRl
ci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgbGV0IGVuY29kaW5nID0gZ2V0Rmlyc3RFbmNvZGluZyhw
YXJhbSk7CisKKyAgICBhc3NlcnRfdHJ1ZShlbmNvZGluZy5hZGFwdGl2ZVB0aW1lKTsKKworICAg
IGVuY29kaW5nLmFkYXB0aXZlUHRpbWUgPSBmYWxzZTsKKyAgICBhd2FpdCBzZW5kZXIuc2V0UGFy
YW1ldGVycyhwYXJhbSk7CisgICAgcGFyYW0gPSBzZW5kZXIuZ2V0UGFyYW1ldGVycygpOworICAg
IGVuY29kaW5nID0gZ2V0Rmlyc3RFbmNvZGluZyhwYXJhbSk7CisKKyAgICBhc3NlcnRfZmFsc2Uo
ZW5jb2RpbmcuYWRhcHRpdmVQdGltZSk7CisKKyAgfSwgYFNldHRpbmcgYWRhcHRpdmVQdGltZSBz
aG91bGQgYmUgYWNjZXB0ZWRgKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHsgc2VuZGVyIH0gPSBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nLCB7IHNlbmRFbmNvZGluZ3M6IFt7fV0gfSk7CisKKyAgICBjb25zdCBwYXJhbSA9
IHNlbmRlci5nZXRQYXJhbWV0ZXJzKCk7CisgICAgY29uc3QgZW5jb2RpbmcgPSBnZXRGaXJzdEVu
Y29kaW5nKHBhcmFtKTsKKworICAgIGFzc2VydF9mYWxzZShlbmNvZGluZy5hZGFwdGl2ZVB0aW1l
KTsKKworICB9LCBgYWRhcHRpdmVQdGltZSBzaG91bGQgYmUgZGVmYXVsdCBmYWxzZWApOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1tYXhGcmFtZXJhdGUt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBQYXJhbWV0ZXJzLW1heEZyYW1lcmF0ZS1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTBmMTczZWM2MDc5ZjhkMmYxNGNlNDZjMzMxYmVlM2JkZDRjYjU0
MQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUGFyYW1ldGVycy1tYXhGcmFtZXJhdGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTAgQEAKKworRkFJTCBhZGRUcmFuc2NlaXZlcigpIHdp
dGggc2VuZEVuY29kaW5nLm1heEZyYW1lcmF0ZSBmaWVsZCBzZXQgdG8gbGVzcyB0aGFuIDAgc2hv
dWxkIHJlamVjdCB3aXRoIFJhbmdlRXJyb3IgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigp
ID0+IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycsIHsKKyAgICBzZW5kRW5jb2RpbmdzOiBbewor
ICAgICAgbWF4RnJhbWVyYXRlOiAtMTAKKyAgICB9XQorICB9KSIgZGlkIG5vdCB0aHJvdworRkFJ
TCBzZXRQYXJhbWV0ZXJzKCkgd2l0aCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgZmllbGQgc2V0IHRv
IGxlc3MgdGhhbiAwIHNob3VsZCByZWplY3Qgd2l0aCBSYW5nZUVycm9yIGFzc2VydF91bnJlYWNo
ZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBj
b2RlCitQQVNTIHNldFBhcmFtZXRlcnMoKSB3aXRoIG1vZGlmaWVkIGVuY29kaW5nLm1heEZyYW1l
cmF0ZSBzaG91bGQgc3VjY2VlZCB3aXRoIFJUQ1J0cFRyYW5zY2VpdmVySW5pdAorUEFTUyBzZXRQ
YXJhbWV0ZXJzKCkgd2l0aCBtb2RpZmllZCBlbmNvZGluZy5tYXhGcmFtZXJhdGUgc2hvdWxkIHN1
Y2NlZWQgd2l0aG91dCBSVENSdHBUcmFuc2NlaXZlckluaXQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9S
VENSdHBQYXJhbWV0ZXJzLW1heEZyYW1lcmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBQYXJhbWV0ZXJz
LW1heEZyYW1lcmF0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMxZDQ3MjM4NjAwOWQ2OTM4MzUyNjM0ODM5
NTlhODNkMGU4OTgwNDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFBhcmFtZXRlcnMt
bWF4RnJhbWVyYXRlLmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0
YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1J0cFBhcmFtZXRlcnMgZW5jb2RpbmdzPC90aXRs
ZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvd2VicnRjL2RpY3Rpb25hcnktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Rlc3QoZnVuY3Rpb24odCkgeworICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3Nl
KCkpOworICBhc3NlcnRfdGhyb3dzX2pzKFJhbmdlRXJyb3IsICgpID0+IHBjLmFkZFRyYW5zY2Vp
dmVyKCd2aWRlbycsIHsKKyAgICBzZW5kRW5jb2RpbmdzOiBbeworICAgICAgbWF4RnJhbWVyYXRl
OiAtMTAKKyAgICB9XQorICB9KSk7Cit9LCBgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIHNlbmRFbmNv
ZGluZy5tYXhGcmFtZXJhdGUgZmllbGQgc2V0IHRvIGxlc3MgdGhhbiAwIHNob3VsZCByZWplY3Qg
d2l0aCBSYW5nZUVycm9yYCk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5j
bG9zZSgpKTsKKyAgY29uc3QgeyBzZW5kZXIgfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycp
OworICBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOworCisgIGNvbnN0IHBhcmFt
ID0gc2VuZGVyLmdldFBhcmFtZXRlcnMoKTsKKyAgdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJz
KHBhcmFtKTsKKyAgY29uc3QgZW5jb2RpbmcgPSBnZXRGaXJzdEVuY29kaW5nKHBhcmFtKTsKKwor
ICBlbmNvZGluZy5tYXhGcmFtZXJhdGUgPSAtMTA7CisgIHJldHVybiBwcm9taXNlX3JlamVjdHNf
anModCwgUmFuZ2VFcnJvciwKKyAgICBzZW5kZXIuc2V0UGFyYW1ldGVycyhwYXJhbSkpOworfSwg
YHNldFBhcmFtZXRlcnMoKSB3aXRoIGVuY29kaW5nLm1heEZyYW1lcmF0ZSBmaWVsZCBzZXQgdG8g
bGVzcyB0aGFuIDAgc2hvdWxkIHJlamVjdCB3aXRoIFJhbmdlRXJyb3JgKTsKKwordGVzdF9tb2Rp
ZmllZF9lbmNvZGluZygndmlkZW8nLCAnbWF4RnJhbWVyYXRlJywgMjQsIDE2LAorICAnc2V0UGFy
YW1ldGVycygpIHdpdGggbW9kaWZpZWQgZW5jb2RpbmcubWF4RnJhbWVyYXRlIHNob3VsZCBzdWNj
ZWVkJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBSZWNlaXZlci1wbGF5
b3V0RGVsYXlIaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXItcGxheW91dERl
bGF5SGludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTJiYjQ1YzJjMTE5ZTVlNTQ1Yjk3MGZh
YjA0ZmJlNmM3MjI3YmUzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXIt
cGxheW91dERlbGF5SGludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBAQAorCitGQUlMIGF1
ZGlvIHBsYXlvdXREZWxheUhpbnQgaXMgbnVsbCBieSBkZWZhdWx0IGFzc2VydF9lcXVhbHM6IGV4
cGVjdGVkIChvYmplY3QpIG51bGwgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKK1BBU1Mg
YXVkaW8gcGxheW91dERlbGF5SGludCBhY2NlcHRzIHBvc2l0aXR2ZSB2YWx1ZXMKK1BBU1MgYXVk
aW8gcGxheW91dERlbGF5SGludCBhY2NlcHRzIGxhcmdlIHBvc2l0aXZlIHZhbHVlcworRkFJTCBh
dWRpbyBwbGF5b3V0RGVsYXlIaW50IHJldHVybnMgbGFzdCB2YWxpZCB2YWx1ZSBvbiB0aHJvdyBh
c3NlcnRfdGhyb3dzX2pzOiBhdWRpbyBwbGF5b3V0RGVsYXlIaW50IGRvZXNuJ3QgYWNjZXB0IG5l
Z2F0aXZlIHZhbHVlcyBmdW5jdGlvbiAiKCkgPT4geworICAgIHJlY2VpdmVyLnBsYXlvdXREZWxh
eUhpbnQgPSAtMC41OworICB9IiBkaWQgbm90IHRocm93CitQQVNTIGF1ZGlvIHBsYXlvdXREZWxh
eUhpbnQgYWxsb3dzIHplcm8gdmFsdWUKK1BBU1MgYXVkaW8gcGxheW91dERlbGF5SGludCBhbGxv
d3MgdG8gcmVzZXQgdmFsdWUgdG8gbnVsbAorRkFJTCB2aWRlbyBwbGF5b3V0RGVsYXlIaW50IGlz
IG51bGwgYnkgZGVmYXVsdCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAob2JqZWN0KSBudWxsIGJ1
dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCitQQVNTIHZpZGVvIHBsYXlvdXREZWxheUhpbnQg
YWNjZXB0cyBwb3NpdGl0dmUgdmFsdWVzCitQQVNTIHZpZGVvIHBsYXlvdXREZWxheUhpbnQgYWNj
ZXB0cyBsYXJnZSBwb3NpdGl0dmUgdmFsdWVzCitGQUlMIHZpZGVvIHBsYXlvdXREZWxheUhpbnQg
cmV0dXJucyBsYXN0IHZhbGlkIHZhbHVlIGFzc2VydF90aHJvd3NfanM6IHZpZGVvIHBsYXlvdXRE
ZWxheUhpbnQgZG9lc24ndCBhY2NlcHQgbmVnYXRpdmUgdmFsdWVzIGZ1bmN0aW9uICIoKSA9PiB7
CisgICAgcmVjZWl2ZXIucGxheW91dERlbGF5SGludCA9IC0wLjU7CisgIH0iIGRpZCBub3QgdGhy
b3cKK1BBU1MgdmlkZW8gcGxheW91dERlbGF5SGludCBhbGxvd3MgemVybyB2YWx1ZQorUEFTUyB2
aWRlbyBwbGF5b3V0RGVsYXlIaW50IGFsbG93cyB0byByZXNldCB2YWx1ZSB0byBudWxsCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXItcGxheW91dERlbGF5SGludC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9u
cy9SVENSdHBSZWNlaXZlci1wbGF5b3V0RGVsYXlIaW50Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjlkZmMx
OWE2YjY4OTAwNjc5YjA2YjNjMzUyN2MxNzdjNGUzOGI0OAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lv
bnMvUlRDUnRwUmVjZWl2ZXItcGxheW91dERlbGF5SGludC5odG1sCkBAIC0wLDAgKzEsMTEzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzx0aXRsZT5UZXN0cyBm
b3IgUlRDUnRwUmVjZWl2ZXItcGxheW91dERlbGF5SGludCBhdHRyaWJ1dGU8L3RpdGxlPgorPGxp
bmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2hlbmJvcy5naXRodWIuaW8vd2VicnRjLWV4dGVu
c2lvbnMvI2RvbS1ydGNydHByZWNlaXZlci1wbGF5b3V0ZGVsYXloaW50Ij4KKzxzY3JpcHQgc3Jj
PSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVz
b3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxib2R5PgorPHNjcmlwdD4K
Kyd1c2Ugc3RyaWN0JworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB7
cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9u
bHknfSk7CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxheW91dERlbGF5SGludCwgbnVsbCk7
Cit9LCAnYXVkaW8gcGxheW91dERlbGF5SGludCBpcyBudWxsIGJ5IGRlZmF1bHQnKTsKKwordGVz
dCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5w
bGF5b3V0RGVsYXlIaW50ID0gMC41OworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXRE
ZWxheUhpbnQsIDAuNSk7Cit9LCAnYXVkaW8gcGxheW91dERlbGF5SGludCBhY2NlcHRzIHBvc2l0
aXR2ZSB2YWx1ZXMnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qg
e3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zv
bmx5J30pOworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMjAuNTsKKyAgYXNzZXJ0X2Vx
dWFscyhyZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50LCAyMC41KTsKK30sICdhdWRpbyBwbGF5b3V0
RGVsYXlIaW50IGFjY2VwdHMgbGFyZ2UgcG9zaXRpdmUgdmFsdWVzJyk7CisKK3Rlc3QodCA9PiB7
CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBwYy5hZGRUcmFuc2NlaXZl
cignYXVkaW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVjZWl2ZXIucGxheW91dERl
bGF5SGludCA9IDAuNworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAg
IHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQgPSAtMC41OworICB9LCAnYXVkaW8gcGxheW91dERl
bGF5SGludCBkb2VzblwndCBhY2NlcHQgbmVnYXRpdmUgdmFsdWVzJyk7CisgIGFzc2VydF9lcXVh
bHMocmVjZWl2ZXIucGxheW91dERlbGF5SGludCwgMC43KTsKK30sICdhdWRpbyBwbGF5b3V0RGVs
YXlIaW50IHJldHVybnMgbGFzdCB2YWxpZCB2YWx1ZSBvbiB0aHJvdycpOworCit0ZXN0KHQgPT4g
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7CisgIHJlY2VpdmVyLnBsYXlvdXRE
ZWxheUhpbnQgPSAwLjA7CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxheW91dERlbGF5SGlu
dCwgMC4wKTsKK30sICdhdWRpbyBwbGF5b3V0RGVsYXlIaW50IGFsbG93cyB6ZXJvIHZhbHVlJyk7
CisKK3Rlc3QodCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHtyZWNlaXZlcn0gPSBw
Yy5hZGRUcmFuc2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgcmVj
ZWl2ZXIucGxheW91dERlbGF5SGludCA9IDAuNTsKKyAgcmVjZWl2ZXIucGxheW91dERlbGF5SGlu
dCA9IG51bGw7CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxheW91dERlbGF5SGludCwgbnVs
bCk7Cit9LCAnYXVkaW8gcGxheW91dERlbGF5SGludCBhbGxvd3MgdG8gcmVzZXQgdmFsdWUgdG8g
bnVsbCcpOworCit0ZXN0KHQgPT4geworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2
ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7
CisgIGFzc2VydF9lcXVhbHMocmVjZWl2ZXIucGxheW91dERlbGF5SGludCwgbnVsbCk7Cit9LCAn
dmlkZW8gcGxheW91dERlbGF5SGludCBpcyBudWxsIGJ5IGRlZmF1bHQnKTsKKwordGVzdCh0ID0+
IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2Vp
dmVyKCd2aWRlbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5wbGF5b3V0
RGVsYXlIaW50ID0gMC41OworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhp
bnQsIDAuNSk7Cit9LCAndmlkZW8gcGxheW91dERlbGF5SGludCBhY2NlcHRzIHBvc2l0aXR2ZSB2
YWx1ZXMnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qge3JlY2Vp
dmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30p
OworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMjAuNTsKKyAgYXNzZXJ0X2VxdWFscyhy
ZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50LCAyMC41KTsKK30sICd2aWRlbyBwbGF5b3V0RGVsYXlI
aW50IGFjY2VwdHMgbGFyZ2UgcG9zaXRpdHZlIHZhbHVlcycpOworCit0ZXN0KHQgPT4geworICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjLmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3Zp
ZGVvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7CisgIHJlY2VpdmVyLnBsYXlvdXREZWxheUhp
bnQgPSAwLjcKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IHsKKyAgICByZWNl
aXZlci5wbGF5b3V0RGVsYXlIaW50ID0gLTAuNTsKKyAgfSwgJ3ZpZGVvIHBsYXlvdXREZWxheUhp
bnQgZG9lc25cJ3QgYWNjZXB0IG5lZ2F0aXZlIHZhbHVlcycpOworICBhc3NlcnRfZXF1YWxzKHJl
Y2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIDAuNyk7Cit9LCAndmlkZW8gcGxheW91dERlbGF5SGlu
dCByZXR1cm5zIGxhc3QgdmFsaWQgdmFsdWUnKTsKKwordGVzdCh0ID0+IHsKKyAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKKyAgY29uc3Qge3JlY2VpdmVyfSA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycsIHtk
aXJlY3Rpb246J3JlY3Zvbmx5J30pOworICByZWNlaXZlci5wbGF5b3V0RGVsYXlIaW50ID0gMC4w
OworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIDAuMCk7Cit9LCAn
dmlkZW8gcGxheW91dERlbGF5SGludCBhbGxvd3MgemVybyB2YWx1ZScpOworCit0ZXN0KHQgPT4g
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB7cmVjZWl2ZXJ9ID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ3ZpZGVvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7CisgIHJlY2VpdmVyLnBsYXlvdXRE
ZWxheUhpbnQgPSAwLjU7CisgIHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQgPSBudWxsOworICBh
c3NlcnRfZXF1YWxzKHJlY2VpdmVyLnBsYXlvdXREZWxheUhpbnQsIG51bGwpOworfSwgJ3ZpZGVv
IHBsYXlvdXREZWxheUhpbnQgYWxsb3dzIHRvIHJlc2V0IHZhbHVlIHRvIG51bGwnKTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3Vy
Y2UtY2FwdHVyZVRpbWVzdGFtcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXph
dGlvblNvdXJjZS1jYXB0dXJlVGltZXN0YW1wLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZWYx
MDBlZTYzYTJlNTA0MThiYzc0OGU4ZTFhN2YyYzgwZDRhNWFkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5z
aW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtY2FwdHVyZVRpbWVzdGFtcC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMCBAQAorCisKK1BBU1MgW2F1ZGlvXSBnZXRTeW5jaHJvbml6YXRp
b25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluIGNhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1
dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5vdCBvZmZlcmVkCitQQVNT
IFthdWRpb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFpbiBj
YXB0dXJlVGltZXN0YW1wIGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVu
c2lvbiBpcyBvZmZlcmVkLCBidXQgbm90IGFuc3dlcmVkCitGQUlMIFthdWRpb10gZ2V0U3luY2hy
b25pemF0aW9uU291cmNlcygpIHNob3VsZCBjb250YWluIGNhcHR1cmVUaW1lc3RhbXAgaWYgYWJz
b2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5lZ290aWF0ZWQgc3Rl
cF93YWl0X2Z1bmM6IE5vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRlciBleHRl
bnNpb24uIFRpbWVkIG91dCB3YWl0aW5nIG9uIGNvbmRpdGlvbgorUEFTUyBbdmlkZW9dIGdldFN5
bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gY2FwdHVyZVRpbWVzdGFt
cCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgbm90IG9m
ZmVyZWQKK1BBU1MgW3ZpZGVvXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5v
dCBjb250YWluIGNhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBo
ZWFkZXIgZXh0ZW5zaW9uIGlzIG9mZmVyZWQsIGJ1dCBub3QgYW5zd2VyZWQKK0ZBSUwgW3ZpZGVv
XSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIGNvbnRhaW4gY2FwdHVyZVRpbWVz
dGFtcCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgbmVn
b3RpYXRlZCBzdGVwX3dhaXRfZnVuYzogTm8gYWJzLWNhcHR1cmUtdGltZSBjYXB0dXJlIHRpbWUg
aGVhZGVyIGV4dGVuc2lvbi4gVGltZWQgb3V0IHdhaXRpbmcgb24gY29uZGl0aW9uCitGQUlMIEF1
ZGlvIGFuZCB2aWRlbyBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UuY2FwdHVyZVRpbWVzdGFt
cCBhcmUgY29tcGFyYWJsZSBzdGVwX3dhaXRfZnVuYzogTm8gYWJzLWNhcHR1cmUtdGltZSBjYXB0
dXJlIHRpbWUgaGVhZGVyIGV4dGVuc2lvbi4gVGltZWQgb3V0IHdhaXRpbmcgb24gY29uZGl0aW9u
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWNhcHR1cmVU
aW1lc3RhbXAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLWNhcHR1cmVU
aW1lc3RhbXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MGI0ZWQwYTc0ZjU1NmYxNDliMzA4ZDAzODlkMzM0
ZGM1ZDVmZGE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25T
b3VyY2UtY2FwdHVyZVRpbWVzdGFtcC5odG1sCkBAIC0wLDAgKzEsOTQgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzwhLS0gVGhpcyBmaWxlIGNvbnRhaW5zIGEgdGVz
dCB0aGF0IHdhaXRzIGZvciAyIHNlY29uZHMuIC0tPgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+Cis8dGl0bGU+Y2FwdHVyZVRpbWVzdGFtcCBhdHRyaWJ1dGUgaW4gUlRDUnRw
U3luY2hyb25pemF0aW9uU291cmNlPC90aXRsZT4KKzxkaXY+PHZpZGVvIGlkPSJyZW1vdGUiIHdp
ZHRoPSIxMjQiIGhlaWdodD0iMTI0IiBhdXRvcGxheT48L3ZpZGVvPjwvZGl2PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSIvd2VicnRjL1JUQ1N0YXRzLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3dl
YnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1oZWxwZXIuanMiPjwv
c2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworZnVuY3Rpb24gbGlzdGVuRm9yQ2Fw
dHVyZVRpbWVzdGFtcCh0LCByZWNlaXZlcikgeworICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29s
dmUpID0+IHsKKyAgICBmdW5jdGlvbiBsaXN0ZW4oKSB7CisgICAgICBjb25zdCBzc3JjcyA9IHJl
Y2VpdmVyLmdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKTsKKyAgICAgIGFzc2VydF90cnVlKHNz
cmNzICE9IHVuZGVmaW5lZCk7CisgICAgICBpZiAoc3NyY3MubGVuZ3RoID4gMCkgeworICAgICAg
ICBhc3NlcnRfZXF1YWxzKHNzcmNzLmxlbmd0aCwgMSk7CisgICAgICAgIGlmIChzc3Jjc1swXS5j
YXB0dXJlVGltZXN0YW1wICE9IHVuZGVmaW5lZCkgeworICAgICAgICAgIHJlc29sdmUoc3NyY3Nb
MF0uY2FwdHVyZVRpbWVzdGFtcCk7CisgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0K
KyAgICAgIH0KKyAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9OworICAgIHQuc3RlcF93YWl0KGxp
c3RlbiwgJ05vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRlciBleHRlbnNpb24u
Jyk7CisgIH0pOworfQorCisvLyBQYXNzZXMgaWYgYGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMo
KWAgY29udGFpbnMgYGNhcHR1cmVUaW1lc3RhbXBgIGlmIGFuZAorLy8gb25seSBpZiBleHBlY3Rl
ZC4KK2ZvciAoY29uc3Qga2luZCBvZiBbJ2F1ZGlvJywgJ3ZpZGVvJ10pIHsKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjYWxsZXIsIGNhbGxlZV0gPSBhd2FpdCBpbml0
aWF0ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgICAgdCwgLyogY2Fwcz0gICove1traW5kXTogdHJ1
ZX0sIC8qIGFic0NhcHR1cmVUaW1lT2ZmZXJlZD0gKi9mYWxzZSwKKyAgICAgICAgLyogYWJzQ2Fw
dHVyZVRpbWVBbnN3ZXJlZD0gKi9mYWxzZSk7CisgICAgY29uc3QgcmVjZWl2ZXIgPSBjYWxsZWUu
Z2V0UmVjZWl2ZXJzKClbMF07CisKKyAgICBmb3IgKGNvbnN0IHNzcmMgb2YgYXdhaXQgbGlzdGVu
Rm9yU1NSQ3ModCwgcmVjZWl2ZXIpKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBzc3Jj
LmNhcHR1cmVUaW1lc3RhbXAsICd1bmRlZmluZWQnKTsKKyAgICB9CisgIH0sICdbJyArIGtpbmQg
KyAnXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluICcgKwor
ICAgICAgJ2NhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFk
ZXIgZXh0ZW5zaW9uIGlzIG5vdCAnICsKKyAgICAgICdvZmZlcmVkJyk7CisKKyAgcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IFtjYWxsZXIsIGNhbGxlZV0gPSBhd2FpdCBpbml0
aWF0ZVNpbmdsZVRyYWNrQ2FsbCgKKyAgICAgICAgdCwgLyogY2Fwcz0gICove1traW5kXTogdHJ1
ZX0sIC8qIGFic0NhcHR1cmVUaW1lT2ZmZXJlZD0gKi9mYWxzZSwKKyAgICAgICAgLyogYWJzQ2Fw
dHVyZVRpbWVBbnN3ZXJlZD0gKi9mYWxzZSk7CisgICAgY29uc3QgcmVjZWl2ZXIgPSBjYWxsZWUu
Z2V0UmVjZWl2ZXJzKClbMF07CisKKyAgICBmb3IgKGNvbnN0IHNzcmMgb2YgYXdhaXQgbGlzdGVu
Rm9yU1NSQ3ModCwgcmVjZWl2ZXIpKSB7CisgICAgICBhc3NlcnRfZXF1YWxzKHR5cGVvZiBzc3Jj
LmNhcHR1cmVUaW1lc3RhbXAsICd1bmRlZmluZWQnKTsKKyAgICB9CisgIH0sICdbJyArIGtpbmQg
KyAnXSBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluICcgKwor
ICAgICAgJ2NhcHR1cmVUaW1lc3RhbXAgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFk
ZXIgZXh0ZW5zaW9uIGlzICcgKworICAgICAgJ29mZmVyZWQsIGJ1dCBub3QgYW5zd2VyZWQnKTsK
KworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgW2NhbGxlciwgY2FsbGVl
XSA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsKAorICAgICAgICB0LCAvKiBjYXBzPSAg
Ki97W2tpbmRdOiB0cnVlfSwgLyogYWJzQ2FwdHVyZVRpbWVPZmZlcmVkPSAqL3RydWUsCisgICAg
ICAgIC8qIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQ9ICovdHJ1ZSk7CisgICAgY29uc3QgcmVjZWl2
ZXIgPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF07CisgICAgYXdhaXQgbGlzdGVuRm9yQ2FwdHVy
ZVRpbWVzdGFtcCh0LCByZWNlaXZlcik7CisgIH0sICdbJyArIGtpbmQgKyAnXSBnZXRTeW5jaHJv
bml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIGNvbnRhaW4gJyArCisgICAgICAnY2FwdHVyZVRpbWVz
dGFtcCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgJyAr
CisgICAgICAnbmVnb3RpYXRlZCcpOworfQorCisvLyBQYXNzZXMgaWYgYGNhcHR1cmVUaW1lc3Rh
bXBgIGZvciBhdWRpbyBhbmQgdmlkZW8gYXJlIGNvbXBhcmFibGUsIHdoaWNoIGlzCisvLyBleHBl
Y3RlZCBzaW5jZSB0aGUgdGVzdCBjcmVhdGVzIGEgbG9jYWwgcGVlciBjb25uZWN0aW9uIGJldHdl
ZW4gYGNhbGxlcmAgYW5kCisvLyBgY2FsbGVlYC4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgW2NhbGxlciwgY2FsbGVlXSA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxs
KAorICAgICAgdCwgLyogY2Fwcz0gICove2F1ZGlvOiB0cnVlLCB2aWRlbzogdHJ1ZX0sCisgICAg
ICAvKiBhYnNDYXB0dXJlVGltZU9mZmVyZWQ9ICovdHJ1ZSwgLyogYWJzQ2FwdHVyZVRpbWVBbnN3
ZXJlZD0gKi90cnVlKTsKKyAgY29uc3QgcmVjZWl2ZXJzID0gY2FsbGVlLmdldFJlY2VpdmVycygp
OworICBhc3NlcnRfZXF1YWxzKHJlY2VpdmVycy5sZW5ndGgsIDIpOworCisgIGxldCBjYXB0dXJl
VGltZXN0YW1wcyA9IFt1bmRlZmluZWQsIHVuZGVmaW5lZF07CisgIGNvbnN0IHQwID0gcGVyZm9y
bWFuY2Uubm93KCk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMjsgKytpKSB7CisgICAgY2FwdHVy
ZVRpbWVzdGFtcHNbaV0gPSBhd2FpdCBsaXN0ZW5Gb3JDYXB0dXJlVGltZXN0YW1wKHQsIHJlY2Vp
dmVyc1tpXSk7CisgIH0KKyAgY29uc3QgdDEgPSBwZXJmb3JtYW5jZS5ub3coKTsKKyAgYXNzZXJ0
X2xlc3NfdGhhbihNYXRoLmFicyhjYXB0dXJlVGltZXN0YW1wc1swXSAtIGNhcHR1cmVUaW1lc3Rh
bXBzWzFdKSwKKyAgICAgICAgICAgICAgICAgICB0MSAtIHQwKTsKK30sICdBdWRpbyBhbmQgdmlk
ZW8gUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNlLmNhcHR1cmVUaW1lc3RhbXAgYXJlICcgKwor
ICAgJ2NvbXBhcmFibGUnKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5
bmNocm9uaXphdGlvblNvdXJjZS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlv
blNvdXJjZS1oZWxwZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTBjZmQ2NTE1NTRhMjU5ODE3Y2QzNDUyMWFi
NDQ1NTYwNjNmNGY0NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0
aW9uU291cmNlLWhlbHBlci5qcwpAQCAtMCwwICsxLDE0MCBAQAorJ3VzZSBzdHJpY3QnOworCisv
LyBUaGlzIGZpbGUgZGVwZW5kcyBvbiBgd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
c2AKKy8vIHdoaWNoIHNob3VsZCBiZSBsb2FkZWQgZnJvbSB0aGUgbWFpbiBIVE1MIGZpbGUuCisK
K3ZhciBrQWJzQ2FwdHVyZVRpbWUgPQorICAgICdodHRwOi8vd3d3LndlYnJ0Yy5vcmcvZXhwZXJp
bWVudHMvcnRwLWhkcmV4dC9hYnMtY2FwdHVyZS10aW1lJzsKKworZnVuY3Rpb24gYWRkSGVhZGVy
RXh0ZW5zaW9uVG9TZHAoc2RwLCB1cmkpIHsKKyAgY29uc3QgZXh0bWFwID0gbmV3IFJlZ0V4cCgn
YT1leHRtYXA6KFxcZCspJyk7CisgIGxldCBzZHBMaW5lcyA9IHNkcC5zcGxpdCgnXHJcbicpOwor
CisgIC8vIFRoaXMgYXNzdW1lcyBhdCBtb3N0IG9uZSBhdWRpbyBtPSBzZWN0aW9uIGFuZCBvbmUg
dmlkZW8gbT0gc2VjdGlvbi4KKyAgLy8gSWYgbW9yZSBhcmUgcHJlc2VudCwgb25seSB0aGUgZmly
c3Qgc2VjdGlvbiBvZiBlYWNoIGtpbmQgaXMgbXVuZ2VkLgorICBmb3IgKGNvbnN0IHNlY3Rpb24g
b2YgWydhdWRpbycsICd2aWRlbyddKSB7CisgICAgbGV0IGZvdW5kX3NlY3Rpb24gPSBmYWxzZTsK
KyAgICBsZXQgbWF4SWQgPSB1bmRlZmluZWQ7CisgICAgbGV0IG1heElkTGluZSA9IHVuZGVmaW5l
ZDsKKyAgICBsZXQgZXh0bWFwQWxsb3dNaXhlZCA9IGZhbHNlOworCisgICAgLy8gZmluZCB0aGUg
bGFyZ2VzdCBoZWFkZXIgZXh0ZW5zaW9uIGlkIGZvciBzZWN0aW9uLgorICAgIGZvciAobGV0IGkg
PSAwOyBpIDwgc2RwTGluZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgIGlmICghZm91bmRfc2VjdGlv
bikgeworICAgICAgICBpZiAoc2RwTGluZXNbaV0uc3RhcnRzV2l0aCgnbT0nICsgc2VjdGlvbikp
IHsKKyAgICAgICAgICBmb3VuZF9zZWN0aW9uID0gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBj
b250aW51ZTsKKyAgICAgIH0gZWxzZSB7CisgICAgICAgIGlmIChzZHBMaW5lc1tpXS5zdGFydHNX
aXRoKCdtPScpKSB7CisgICAgICAgICAgLy8gZW5kIG9mIHNlY3Rpb24KKyAgICAgICAgICBicmVh
azsKKyAgICAgICAgfQorICAgICAgfQorCisgICAgICBpZiAoc2RwTGluZXNbaV0gPT09ICdhPWV4
dG1hcC1hbGxvdy1taXhlZCcpIHsKKyAgICAgICAgZXh0bWFwQWxsb3dNaXhlZCA9IHRydWU7Cisg
ICAgICB9CisgICAgICBsZXQgcmVzdWx0ID0gc2RwTGluZXNbaV0ubWF0Y2goZXh0bWFwKTsKKyAg
ICAgIGlmIChyZXN1bHQgJiYgcmVzdWx0Lmxlbmd0aCA9PT0gMikgeworICAgICAgICBpZiAobWF4
SWQgPT0gdW5kZWZpbmVkIHx8IHJlc3VsdFsxXSA+IG1heElkKSB7CisgICAgICAgICAgbWF4SWQg
PSBwYXJzZUludChyZXN1bHRbMV0pOworICAgICAgICAgIG1heElkTGluZSA9IGk7CisgICAgICAg
IH0KKyAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobWF4SWQgPT0gMTQgJiYgIWV4dG1hcEFsbG93
TWl4ZWQpIHsKKyAgICAgIC8vIFJlYWNoaW5nIHRoZSBsaW1pdCBvZiBvbmUgYnl0ZSBoZWFkZXIg
ZXh0ZW5zaW9uLiBBZGRpbmcgdHdvIGJ5dGUgaGVhZGVyCisgICAgICAvLyBleHRlbnNpb24gc3Vw
cG9ydC4KKyAgICAgIHNkcExpbmVzLnNwbGljZShtYXhJZExpbmUgKyAxLCAwLCAnYT1leHRtYXAt
YWxsb3ctbWl4ZWQnKTsKKyAgICB9CisgICAgaWYgKG1heElkTGluZSAhPT0gdW5kZWZpbmVkKSB7
CisgICAgICBzZHBMaW5lcy5zcGxpY2UobWF4SWRMaW5lICsgMSwgMCwKKyAgICAgICAgICAgICAg
ICAgICAgICAnYT1leHRtYXA6JyArIChtYXhJZCArIDEpLnRvU3RyaW5nKCkgKyAnICcgKyB1cmkp
OworICAgIH0KKyAgfQorICByZXR1cm4gc2RwTGluZXMuam9pbignXHJcbicpOworfQorCisvLyBU
T0RPKGNyYnVnLmNvbS8xMDUxODIxKTogVXNlIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIEFQSSBpbnN0
ZWFkIG9mIG11bmdpbmcKKy8vIHdoZW4gdGhlIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIEFQSSBpcyBp
bXBsZW1lbnRlZC4KK2FzeW5jIGZ1bmN0aW9uIGFkZEFic0NhcHR1cmVUaW1lQW5kRXhjaGFuZ2VP
ZmZlcihjYWxsZXIsIGNhbGxlZSkgeworICBsZXQgb2ZmZXIgPSBhd2FpdCBjYWxsZXIuY3JlYXRl
T2ZmZXIoKTsKKworICAvLyBBYnNvbHV0ZSBjYXB0dXJlIHRpbWUgaGVhZGVyIGV4dGVuc2lvbiBt
YXkgbm90IGJlIG9mZmVyZWQgYnkgZGVmYXVsdCwKKyAgLy8gaW4gc3VjaCBjYXNlLCBtdW5nZSB0
aGUgU0RQLgorICBvZmZlci5zZHAgPSBhZGRIZWFkZXJFeHRlbnNpb25Ub1NkcChvZmZlci5zZHAs
IGtBYnNDYXB0dXJlVGltZSk7CisKKyAgYXdhaXQgY2FsbGVyLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOworICByZXR1cm4gY2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKK30K
KworLy8gVE9ETyhjcmJ1Zy5jb20vMTA1MTgyMSk6IFVzZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBB
UEkgaW5zdGVhZCBvZiBtdW5naW5nCisvLyB3aGVuIHRoZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBB
UEkgaXMgaW1wbGVtZW50ZWQuCithc3luYyBmdW5jdGlvbiBjaGVja0Fic0NhcHR1cmVUaW1lQW5k
RXhjaGFuZ2VBbnN3ZXIoY2FsbGVyLCBjYWxsZWUsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzQ2FwdHVyZVRpbWVBbnN3ZXJlZCkgeworICBs
ZXQgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworCisgIGNvbnN0IGV4dG1h
cCA9IG5ldyBSZWdFeHAoJ2E9ZXh0bWFwOlxcZCsgJyArIGtBYnNDYXB0dXJlVGltZSArICdcclxu
JywgJ2cnKTsKKyAgaWYgKGFuc3dlci5zZHAubWF0Y2goZXh0bWFwKSA9PSBudWxsKSB7CisgICAg
Ly8gV2UgZXhwZWN0IHRoYXQgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5z
aW9uIGlzIGFuc3dlcmVkLgorICAgIC8vIEJ1dCBpZiBub3QsIHRoZXJlIGlzIG5vIG5lZWQgdG8g
cHJvY2VlZCB3aXRoIHRoZSB0ZXN0LgorICAgIGFzc2VydF9mYWxzZShhYnNDYXB0dXJlVGltZUFu
c3dlcmVkLCAnQWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJUUCAnICsKKyAgICAgICAgJ2hlYWRlciBl
eHRlbnNpb24gaXMgbm90IGFuc3dlcmVkJyk7CisgIH0gZWxzZSB7CisgICAgaWYgKCFhYnNDYXB0
dXJlVGltZUFuc3dlcmVkKSB7CisgICAgICAvLyBXZSBleHBlY3QgdGhhdCBhYnNvbHV0ZSBjYXB0
dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24gaXMgbm90CisgICAgICAvLyBhbnN3ZXJlZCwg
YnV0IGl0IGlzLCB0aGVuIHdlIG11bmdlIHRoZSBhbnN3ZXIgdG8gcmVtb3ZlIGl0LgorICAgICAg
YW5zd2VyLnNkcCA9IGFuc3dlci5zZHAucmVwbGFjZShleHRtYXAsICcnKTsKKyAgICB9CisgIH0K
KworICBhd2FpdCBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICByZXR1cm4g
Y2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Cit9CisKK2FzeW5jIGZ1bmN0aW9u
IGV4Y2hhbmdlT2ZmZXJBbmRMaXN0ZW5Ub09udHJhY2sodCwgY2FsbGVyLCBjYWxsZWUsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFic0NhcHR1cmVUaW1l
T2ZmZXJlZCkgeworICBjb25zdCBvbnRyYWNrUHJvbWlzZSA9IGFkZEV2ZW50TGlzdGVuZXJQcm9t
aXNlKHQsIGNhbGxlZSwgJ3RyYWNrJyk7CisgIC8vIEFic29sdXRlIGNhcHR1cmUgdGltZSBoZWFk
ZXIgZXh0ZW5zaW9uIGlzIGV4cGVjdGVkIG5vdCBvZmZlcmVkIGJ5IGRlZmF1bHQsCisgIC8vIGFu
ZCB0aHVzIG11bmdpbmcgaXMgbmVlZGVkIHRvIGVuYWJsZSBpdC4KKyAgYXdhaXQgYWJzQ2FwdHVy
ZVRpbWVPZmZlcmVkCisgICAgICA/IGFkZEFic0NhcHR1cmVUaW1lQW5kRXhjaGFuZ2VPZmZlcihj
YWxsZXIsIGNhbGxlZSkKKyAgICAgIDogZXhjaGFuZ2VPZmZlcihjYWxsZXIsIGNhbGxlZSk7Cisg
IHJldHVybiBvbnRyYWNrUHJvbWlzZTsKK30KKworYXN5bmMgZnVuY3Rpb24gaW5pdGlhdGVTaW5n
bGVUcmFja0NhbGwodCwgY2FwLCBhYnNDYXB0dXJlVGltZU9mZmVyZWQsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBhYnNDYXB0dXJlVGltZUFuc3dlcmVkKSB7CisgIGNv
bnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IGNhbGxlci5jbG9zZSgpKTsKKyAgY29uc3QgY2FsbGVlID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gY2FsbGVlLmNsb3NlKCkpOworCisgIGNvbnN0
IHN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKGNhcCk7CisgIHN0cmVhbS5nZXRUcmFja3Mo
KS5mb3JFYWNoKHRyYWNrID0+IHsKKyAgICBjYWxsZXIuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7
CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiB0cmFjay5zdG9wKCkpOworICB9KTsKKworICAvLyBU
T0RPKGNyYnVnLmNvbS85ODg0MzIpOiBgZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIG9uIHRo
ZSBhdWRpbyBzaWRlCisgIC8vIG5lZWRzIGEgaGFyZHdhcmUgc2luayBmb3IgdGhlIHJldHVybmVk
IGRpY3Rpb25hcnkgZW50cmllcyB0byBnZXQgdXBkYXRlZC4KKyAgY29uc3QgcmVtb3RlVmlkZW8g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVtb3RlJyk7CisKKyAgY2FsbGVlLm9udHJhY2sg
PSBlID0+IHsKKyAgICByZW1vdGVWaWRlby5zcmNPYmplY3QgPSBlLnN0cmVhbXNbMF07CisgIH0K
KworICBleGNoYW5nZUljZUNhbmRpZGF0ZXMoY2FsbGVyLCBjYWxsZWUpOworCisgIGF3YWl0IGV4
Y2hhbmdlT2ZmZXJBbmRMaXN0ZW5Ub09udHJhY2sodCwgY2FsbGVyLCBjYWxsZWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzQ2FwdHVyZVRpbWVPZmZlcmVkKTsK
KworICAvLyBFeGNoYW5nZSBhbnN3ZXIgYW5kIGNoZWNrIHdoZXRoZXIgdGhlIGFic29sdXRlIGNh
cHR1cmUgdGltZSBSVFAgaGVhZGVyCisgIC8vIGV4dGVuc2lvbiBpcyBhbnN3ZXJlZC4KKyAgYXdh
aXQgY2hlY2tBYnNDYXB0dXJlVGltZUFuZEV4Y2hhbmdlQW5zd2VyKGNhbGxlciwgY2FsbGVlLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzQ2FwdHVyZVRp
bWVBbnN3ZXJlZCk7CisKKyAgcmV0dXJuIFtjYWxsZXIsIGNhbGxlZV07Cit9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRl
bnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1zZW5kZXJDYXB0dXJlVGltZU9mZnNl
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1zZW5kZXJD
YXB0dXJlVGltZU9mZnNldC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2EzYTUwOGUxODk1YTVi
Yzc4YmYwZTU0NGI3YzQ5NDgwMmVmZTU4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRw
U3luY2hyb25pemF0aW9uU291cmNlLXNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0LWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDEwIEBACisKKworUEFTUyBbYXVkaW9dIGdldFN5bmNocm9uaXphdGlvblNv
dXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgaWYgYWJz
b2x1dGUgY2FwdHVyZSB0aW1lIFJUUCBoZWFkZXIgZXh0ZW5zaW9uIGlzIG5vdCBvZmZlcmVkCitQ
QVNTIFthdWRpb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFp
biBzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhl
YWRlciBleHRlbnNpb24gaXMgb2ZmZXJlZCwgYnV0IG5vdCBhbnN3ZXJlZAorRkFJTCBbYXVkaW9d
IGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgY29udGFpbiBzZW5kZXJDYXB0dXJl
VGltZU9mZnNldCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhlYWRlciBleHRlbnNpb24g
aXMgbmVnb3RpYXRlZCBzdGVwX3dhaXRfZnVuYzogTm8gYWJzLWNhcHR1cmUtdGltZSBjYXB0dXJl
IHRpbWUgaGVhZGVyIGV4dGVuc2lvbi4gVGltZWQgb3V0IHdhaXRpbmcgb24gY29uZGl0aW9uCitQ
QVNTIFt2aWRlb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNlcygpIHNob3VsZCBub3QgY29udGFp
biBzZW5kZXJDYXB0dXJlVGltZU9mZnNldCBpZiBhYnNvbHV0ZSBjYXB0dXJlIHRpbWUgUlRQIGhl
YWRlciBleHRlbnNpb24gaXMgbm90IG9mZmVyZWQKK1BBU1MgW3ZpZGVvXSBnZXRTeW5jaHJvbml6
YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluIHNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0
IGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBvZmZlcmVk
LCBidXQgbm90IGFuc3dlcmVkCitGQUlMIFt2aWRlb10gZ2V0U3luY2hyb25pemF0aW9uU291cmNl
cygpIHNob3VsZCBjb250YWluIHNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0IGlmIGFic29sdXRlIGNh
cHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiBpcyBuZWdvdGlhdGVkIHN0ZXBfd2FpdF9m
dW5jOiBObyBhYnMtY2FwdHVyZS10aW1lIGNhcHR1cmUgdGltZSBoZWFkZXIgZXh0ZW5zaW9uLiBU
aW1lZCBvdXQgd2FpdGluZyBvbiBjb25kaXRpb24KK0ZBSUwgQXVkaW8gYW5kIHZpZGVvIFJUQ1J0
cFN5bmNocm9uaXphdGlvblNvdXJjZS5zZW5kZXJDYXB0dXJlVGltZU9mZnNldCBtdXN0IGJlIHpl
cm8gc3RlcF93YWl0X2Z1bmM6IE5vIGFicy1jYXB0dXJlLXRpbWUgY2FwdHVyZSB0aW1lIGhlYWRl
ciBleHRlbnNpb24uIFRpbWVkIG91dCB3YWl0aW5nIG9uIGNvbmRpdGlvbgorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRl
bnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1zZW5kZXJDYXB0dXJlVGltZU9mZnNl
dC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRp
bWVPZmZzZXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42M2FkOWJmODg4YzM4MTViNmE0YzVkNmI0OTQwNzcy
NzNhYWYzZGVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25T
b3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQuaHRtbApAQCAtMCwwICsxLDkyIEBACis8IWRv
Y3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8IS0tIFRoaXMgZmlsZSBjb250YWlu
cyBhIHRlc3QgdGhhdCB3YWl0cyBmb3IgMiBzZWNvbmRzLiAtLT4KKzxtZXRhIG5hbWU9InRpbWVv
dXQiIGNvbnRlbnQ9ImxvbmciPgorPHRpdGxlPnNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0IGF0dHJp
YnV0ZSBpbiBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2U8L3RpdGxlPgorPGRpdj48dmlkZW8g
aWQ9InJlbW90ZSIgd2lkdGg9IjEyNCIgaGVpZ2h0PSIxMjQiIGF1dG9wbGF5PjwvdmlkZW8+PC9k
aXY+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii93ZWJydGMvUlRDU3RhdHMtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0aW9uU291cmNl
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitmdW5jdGlv
biBsaXN0ZW5Gb3JTZW5kZXJDYXB0dXJlVGltZU9mZnNldCh0LCByZWNlaXZlcikgeworICByZXR1
cm4gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBmdW5jdGlvbiBsaXN0ZW4oKSB7Cisg
ICAgICBjb25zdCBzc3JjcyA9IHJlY2VpdmVyLmdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKTsK
KyAgICAgIGFzc2VydF90cnVlKHNzcmNzICE9IHVuZGVmaW5lZCk7CisgICAgICBpZiAoc3NyY3Mu
bGVuZ3RoID4gMCkgeworICAgICAgICBhc3NlcnRfZXF1YWxzKHNzcmNzLmxlbmd0aCwgMSk7Cisg
ICAgICAgIGlmIChzc3Jjc1swXS5jYXB0dXJlVGltZXN0YW1wICE9IHVuZGVmaW5lZCkgeworICAg
ICAgICAgIHJlc29sdmUoc3NyY3NbMF0uc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQpOworICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICB9CisgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfTsKKyAgICB0LnN0ZXBfd2FpdChsaXN0ZW4sICdObyBhYnMtY2FwdHVyZS10aW1lIGNh
cHR1cmUgdGltZSBoZWFkZXIgZXh0ZW5zaW9uLicpOworICB9KTsKK30KKworLy8gUGFzc2VzIGlm
IGBnZXRTeW5jaHJvbml6YXRpb25Tb3VyY2VzKClgIGNvbnRhaW5zIGBzZW5kZXJDYXB0dXJlVGlt
ZU9mZnNldGAgaWYKKy8vIGFuZCBvbmx5IGlmIGV4cGVjdGVkLgorZm9yIChjb25zdCBraW5kIG9m
IFsnYXVkaW8nLCAndmlkZW8nXSkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgW2NhbGxlciwgY2FsbGVlXSA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsKAor
ICAgICAgICB0LCAvKiBjYXBzPSAgKi97W2tpbmRdOiB0cnVlfSwgLyogYWJzQ2FwdHVyZVRpbWVP
ZmZlcmVkPSAqL2ZhbHNlLAorICAgICAgICAvKiBhYnNDYXB0dXJlVGltZUFuc3dlcmVkPSAqL2Zh
bHNlKTsKKyAgICBjb25zdCByZWNlaXZlciA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKVswXTsKKwor
ICAgIGZvciAoY29uc3Qgc3NyYyBvZiBhd2FpdCBsaXN0ZW5Gb3JTU1JDcyh0LCByZWNlaXZlcikp
IHsKKyAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHNzcmMuc2VuZGVyQ2FwdHVyZVRpbWVPZmZz
ZXQsICd1bmRlZmluZWQnKTsKKyAgICB9CisgIH0sICdbJyArIGtpbmQgKyAnXSBnZXRTeW5jaHJv
bml6YXRpb25Tb3VyY2VzKCkgc2hvdWxkIG5vdCBjb250YWluICcgKworICAgICAgJ3NlbmRlckNh
cHR1cmVUaW1lT2Zmc2V0IGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVu
c2lvbiAnICsKKyAgICAgICdpcyBub3Qgb2ZmZXJlZCcpOworCisgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgICBjb25zdCBbY2FsbGVyLCBjYWxsZWVdID0gYXdhaXQgaW5pdGlhdGVTaW5n
bGVUcmFja0NhbGwoCisgICAgICAgIHQsIC8qIGNhcHM9ICAqL3tba2luZF06IHRydWV9LCAvKiBh
YnNDYXB0dXJlVGltZU9mZmVyZWQ9ICovZmFsc2UsCisgICAgICAgIC8qIGFic0NhcHR1cmVUaW1l
QW5zd2VyZWQ9ICovZmFsc2UpOworICAgIGNvbnN0IHJlY2VpdmVyID0gY2FsbGVlLmdldFJlY2Vp
dmVycygpWzBdOworCisgICAgZm9yIChjb25zdCBzc3JjIG9mIGF3YWl0IGxpc3RlbkZvclNTUkNz
KHQsIHJlY2VpdmVyKSkgeworICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygc3NyYy5zZW5kZXJD
YXB0dXJlVGltZU9mZnNldCwgJ3VuZGVmaW5lZCcpOworICAgIH0KKyAgfSwgJ1snICsga2luZCAr
ICddIGdldFN5bmNocm9uaXphdGlvblNvdXJjZXMoKSBzaG91bGQgbm90IGNvbnRhaW4gJyArCisg
ICAgICAnc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgaWYgYWJzb2x1dGUgY2FwdHVyZSB0aW1lIFJU
UCBoZWFkZXIgZXh0ZW5zaW9uICcgKworICAgICAgJ2lzIG9mZmVyZWQsIGJ1dCBub3QgYW5zd2Vy
ZWQnKTsKKworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgW2NhbGxlciwg
Y2FsbGVlXSA9IGF3YWl0IGluaXRpYXRlU2luZ2xlVHJhY2tDYWxsKAorICAgICAgICB0LCAvKiBj
YXBzPSAgKi97W2tpbmRdOiB0cnVlfSwgLyogYWJzQ2FwdHVyZVRpbWVPZmZlcmVkPSAqL3RydWUs
CisgICAgICAgIC8qIGFic0NhcHR1cmVUaW1lQW5zd2VyZWQ9ICovdHJ1ZSk7CisgICAgY29uc3Qg
cmVjZWl2ZXIgPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKClbMF07CisgICAgbGV0IHNlbmRlckNhcHR1
cmVUaW1lT2Zmc2V0ID0gYXdhaXQgbGlzdGVuRm9yU2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQoCisg
ICAgICAgIHQsIHJlY2VpdmVyKTsKKyAgICBhc3NlcnRfdHJ1ZShzZW5kZXJDYXB0dXJlVGltZU9m
ZnNldCAhPSB1bmRlZmluZWQpOworICB9LCAnWycgKyBraW5kICsgJ10gZ2V0U3luY2hyb25pemF0
aW9uU291cmNlcygpIHNob3VsZCBjb250YWluICcgKworICAgICAgJ3NlbmRlckNhcHR1cmVUaW1l
T2Zmc2V0IGlmIGFic29sdXRlIGNhcHR1cmUgdGltZSBSVFAgaGVhZGVyIGV4dGVuc2lvbiAnICsK
KyAgICAgICdpcyBuZWdvdGlhdGVkJyk7Cit9CisKKy8vIFBhc3NlcyBpZiBgc2VuZGVyQ2FwdHVy
ZVRpbWVPZmZzZXRgIGlzIHplcm8sIHdoaWNoIGlzIGV4cGVjdGVkIHNpbmNlIHRoZSB0ZXN0Cisv
LyBjcmVhdGVzIGEgbG9jYWwgcGVlciBjb25uZWN0aW9uIGJldHdlZW4gYGNhbGxlcmAgYW5kIGBj
YWxsZWVgLgorcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBbY2FsbGVyLCBjYWxs
ZWVdID0gYXdhaXQgaW5pdGlhdGVTaW5nbGVUcmFja0NhbGwoCisgICAgICB0LCAvKiBjYXBzPSAg
Ki97YXVkaW86IHRydWUsIHZpZGVvOiB0cnVlfSwKKyAgICAgIC8qIGFic0NhcHR1cmVUaW1lT2Zm
ZXJlZD0gKi90cnVlLCAvKiBhYnNDYXB0dXJlVGltZUFuc3dlcmVkPSAqL3RydWUpOworICBjb25z
dCByZWNlaXZlcnMgPSBjYWxsZWUuZ2V0UmVjZWl2ZXJzKCk7CisgIGFzc2VydF9lcXVhbHMocmVj
ZWl2ZXJzLmxlbmd0aCwgMik7CisKKyAgZm9yIChsZXQgaSA9IDA7IGkgPCAyOyArK2kpIHsKKyAg
ICBsZXQgc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgPSBhd2FpdCBsaXN0ZW5Gb3JTZW5kZXJDYXB0
dXJlVGltZU9mZnNldCgKKyAgICAgICAgdCwgcmVjZWl2ZXJzW2ldKTsKKyAgICBhc3NlcnRfZXF1
YWxzKHNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0LCAwKTsKKyAgfQorfSwgJ0F1ZGlvIGFuZCB2aWRl
byBSVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2Uuc2VuZGVyQ2FwdHVyZVRpbWVPZmZzZXQgbXVz
dCAnICsKKyAgICdiZSB6ZXJvJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENS
dHBUcmFuc2NlaXZlci1oZWFkZXJFeHRlbnNpb25Db250cm9sLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMv
UlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9uQ29udHJvbC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMjBhNzA4NzU1OGE5NDM0M2Q0MmIwNzM5Y2FhOTExMGRjY2U3MDc4YwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9uQ29udHJv
bC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorCitGQUlMIHRoZSB2aWRlbyB0cmFuc2Nl
aXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZlcigpIGluY2x1ZGVzIG1hbmRhdG9yeSBleHRlbnNp
b25zIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRpZXMu
ZmluZCcpCitGQUlMIHRoZSBhdWRpbyB0cmFuc2NlaXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZl
cigpIGluY2x1ZGVzIG1hbmRhdG9yeSBleHRlbnNpb25zIHVuZGVmaW5lZCBpcyBub3QgYW4gb2Jq
ZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRpZXMuZmluZCcpCitGQUlMIHNldE9mZmVyZWRSdHBI
ZWFkZXJFeHRlbnNpb25zIHRocm93cyBUeXBlRXJyb3Igb24gZW5jb3VudGVyaW5nIG1pc3Npbmcg
VVJJIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRpZXNb
MF0nKQorRkFJTCBzZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyB0aHJvd3MgTm90U3VwcG9y
dGVkIG9uIGVuY291bnRlcmluZyB1bmtub3duIFVSSSB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAnY2FwYWJpbGl0aWVzWzBdJykKK0ZBSUwgc2V0T2ZmZXJlZFJ0cEhlYWRl
ckV4dGVuc2lvbnMgdGhyb3dzIEludmFsaWRNb2RpZmljYXRpb25FcnJvciB3aGVuIHNldHRpbmcg
YSBtYW5kYXRvcnkgaGVhZGVyIGV4dGVuc2lvbidzIGRpcmVjdGlvbiB0byBzb21ldGhpbmcgZWxz
ZSB0aGFuICJzZW5kcmVjdiIgdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcg
J2NhcGFiaWxpdGllcy5maW5kJykKK0ZBSUwgbW9kaWZpZWQgZGlyZWN0aW9uIHNldCBieSBzZXRP
ZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyBpcyB2aXNpYmxlIGluIGhlYWRlckV4dGVuc2lvbnNP
ZmZlcmVkIHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICdjYXBhYmlsaXRp
ZXMuZmluZCcpCitGQUlMIHVuc3RvcHBlZCBleHRlbnNpb25zIHR1cm4gdXAgaW4gb2ZmZXIgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAobmVhciAnLi4uLmpvaW4oIlxuIik7Li4u
JykiCitGQUlMIHN0b3BwZWQgZXh0ZW5zaW9ucyBkbyBub3QgdHVybiB1cCBpbiBvZmZlcnMgcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAnY2FwYWJpbGl0aWVz
LmZpbmQnKSIKK0ZBSUwgdGhlIHNldCBvZiBuZWdvdGlhdGVkIGV4dGVuc2lvbnMgZ3Jvd3Mgd2l0
aCBzdWJzZXF1ZW50IG9mZmVycyBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0
aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChl
dmFsdWF0aW5nICdjYXBhYmlsaXRpZXMuZmluZCcpIgorRkFJTCB0aGUgc2V0IG9mIG5lZ290aWF0
ZWQgZXh0ZW5zaW9ucyBpcyB0aGUgc2V0IG9mIHVuc3RvcHBlZCBleHRlbnNpb25zIHByb21pc2Vf
dGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjog
dW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ2NhcGFiaWxpdGllcy5maW5k
JykiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9u
Q29udHJvbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBUcmFuc2NlaXZlci1oZWFkZXJFeHRlbnNpb25Db250
cm9sLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZTgyM2JkODMwYzZlMzRjMTU5ZGM1MTFjMDU3MjFhNDBiNjk1
ODZiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0
ZW5zaW9uQ29udHJvbC5odG1sCkBAIC0wLDAgKzEsMjE5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+UlRDUnRwUGFyYW1ldGVycyBlbmNvZGluZ3M8L3Rp
dGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9Ii93ZWJydGMvZGljdGlvbmFyeS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworYXN5bmMgZnVuY3Rpb24gbmVnb3RpYXRlKHBjMSwg
cGMyKSB7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0
IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURl
c2NyaXB0aW9uKG9mZmVyKTsKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dl
cigpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCBw
YzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKK30KKwordGVzdChmdW5jdGlvbih0KSB7
CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2
ZXIoJ3ZpZGVvJyk7CisgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHRyYW5zY2VpdmVyLmhlYWRlckV4
dGVuc2lvbnNUb09mZmVyOworICBsZXQgY2FwYWJpbGl0eSA9IGNhcGFiaWxpdGllcy5maW5kKChj
YXBhYmlsaXR5KSA9PiB7CisgICAgICByZXR1cm4gY2FwYWJpbGl0eS51cmkgPT0gInVybjppZXRm
OnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIiAmJgorICAgICAgICAgICAgIGNhcGFiaWxpdHku
ZGlyZWN0aW9uICE9ICJzdG9wcGVkIjsKKyAgfSk7CisgIGFzc2VydF9ub3RfZXF1YWxzKGNhcGFi
aWxpdHksIHVuZGVmaW5lZCk7CisgIGNhcGFiaWxpdHkgPSBjYXBhYmlsaXRpZXMuZmluZCgoY2Fw
YWJpbGl0eSkgPT4geworICAgICAgcmV0dXJuIGNhcGFiaWxpdHkudXJpID09ICJ1cm46M2dwcDp2
aWRlby1vcmllbnRhdGlvbiIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5LmRpcmVjdGlvbiAh
PSAic3RvcHBlZCI7CisgIH0pOworICBhc3NlcnRfbm90X2VxdWFscyhjYXBhYmlsaXR5LCB1bmRl
ZmluZWQpOworfSwgYHRoZSB2aWRlbyB0cmFuc2NlaXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZl
cigpIGluY2x1ZGVzIG1hbmRhdG9yeSBleHRlbnNpb25zYCk7CisKK3Rlc3QoZnVuY3Rpb24odCkg
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2Vp
dmVyKCdhdWRpbycpOworICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0cmFuc2NlaXZlci5oZWFkZXJF
eHRlbnNpb25zVG9PZmZlcjsKKyAgbGV0IGNhcGFiaWxpdHkgPSBjYXBhYmlsaXRpZXMuZmluZCgo
Y2FwYWJpbGl0eSkgPT4geworICAgICAgcmV0dXJuIGNhcGFiaWxpdHkudXJpID09ICJ1cm46aWV0
ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5
LmRpcmVjdGlvbiAhPSAic3RvcHBlZCI7CisgIH0pOworICBhc3NlcnRfbm90X2VxdWFscyhjYXBh
YmlsaXR5LCB1bmRlZmluZWQpOworfSwgYHRoZSBhdWRpbyB0cmFuc2NlaXZlci5oZWFkZXJFeHRl
bnNpb25zVG9PZmZlcigpIGluY2x1ZGVzIG1hbmRhdG9yeSBleHRlbnNpb25zYCk7CisKK3Rlc3Qo
ZnVuY3Rpb24odCkgeworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBj
LmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0cmFuc2Nl
aXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZlcjsKKyAgY2FwYWJpbGl0aWVzWzBdLnVyaSA9ICIi
OworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geworICAgIHRyYW5zY2VpdmVy
LnNldE9mZmVyZWRSdHBIZWFkZXJFeHRlbnNpb25zKGNhcGFiaWxpdGllcyk7CisgIH0sICd0cmFu
c2NlaXZlciBzaG91bGQgdGhyb3cgVHlwZUVycm9yIHdoZW4gc2V0dGluZyBhbiBlbXB0eSBVUkkn
KTsKK30sIGBzZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyB0aHJvd3MgVHlwZUVycm9yIG9u
IGVuY291bnRlcmluZyBtaXNzaW5nIFVSSWApOworCit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVk
aW8nKTsKKyAgY29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9u
c1RvT2ZmZXI7CisgIGNhcGFiaWxpdGllc1swXS51cmkgPSAiNDcxMSI7CisgIGFzc2VydF90aHJv
d3NfZG9tKCJOb3RTdXBwb3J0ZWRFcnJvciIsICgpID0+IHsKKyAgICB0cmFuc2NlaXZlci5zZXRP
ZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyhjYXBhYmlsaXRpZXMpOworICB9LCAndHJhbnNjZWl2
ZXIgc2hvdWxkIHRocm93IE5vdFN1cHBvcnRlZCB3aGVuIHNldHRpbmcgYW4gdW5rbm93biBVUkkn
KTsKK30sIGBzZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyB0aHJvd3MgTm90U3VwcG9ydGVk
IG9uIGVuY291bnRlcmluZyB1bmtub3duIFVSSWApOworCit0ZXN0KGZ1bmN0aW9uKHQpIHsKKyAg
Y29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcign
YXVkaW8nKTsKKyAgY29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5z
aW9uc1RvT2ZmZXI7CisgIGxldCBjYXBhYmlsaXR5ID0gY2FwYWJpbGl0aWVzLmZpbmQoKGNhcGFi
aWxpdHkpID0+IHsKKyAgICAgIHJldHVybiBjYXBhYmlsaXR5LnVyaSA9PSAidXJuOmlldGY6cGFy
YW1zOnJ0cC1oZHJleHQ6c2RlczptaWQiOworICB9KTsKKyAgWyJzZW5kb25seSIsICJyZWN2b25s
eSIsICJpbmFjdGl2ZSIsICJzdG9wcGVkIl0ubWFwKGRpcmVjdGlvbiA9PiB7CisgICAgY2FwYWJp
bGl0eS5kaXJlY3Rpb24gPSBkaXJlY3Rpb247CisgICAgYXNzZXJ0X3Rocm93c19kb20oIkludmFs
aWRNb2RpZmljYXRpb25FcnJvciIsICgpID0+IHsKKyAgICAgIHRyYW5zY2VpdmVyLnNldE9mZmVy
ZWRSdHBIZWFkZXJFeHRlbnNpb25zKGNhcGFiaWxpdGllcyk7CisgICAgfSwgYHRyYW5zY2VpdmVy
IHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Igd2hlbiBzZXR0aW5nIGEgbWFu
ZGF0b3J5IGhlYWRlciBleHRlbnNpb25cJ3MgZGlyZWN0aW9uIHRvICR7ZGlyZWN0aW9ufWApOwor
ICB9KTsKK30sIGBzZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyB0aHJvd3MgSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yIHdoZW4gc2V0dGluZyBhIG1hbmRhdG9yeSBoZWFkZXIgZXh0ZW5zaW9u
XCdzIGRpcmVjdGlvbiB0byBzb21ldGhpbmcgZWxzZSB0aGFuICJzZW5kcmVjdiJgKTsKKwordGVz
dChmdW5jdGlvbih0KSB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIGxldCBjYXBhYmlsaXRpZXMgPSB0cmFuc2Nl
aXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZlcjsKKyAgbGV0IHNlbGVjdGVkX2NhcGFiaWxpdHkg
PSBjYXBhYmlsaXRpZXMuZmluZCgoY2FwYWJpbGl0eSkgPT4geworICAgICAgcmV0dXJuIGNhcGFi
aWxpdHkuZGlyZWN0aW9uID09ICJzZW5kcmVjdiIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5
LnVyaSAhPSAidXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQiOworICB9KTsKKyAg
c2VsZWN0ZWRfY2FwYWJpbGl0eS5kaXJlY3Rpb24gPSAic3RvcHBlZCI7CisgIGNvbnN0IG9mZmVy
ZWRfY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXI7Cisg
IGxldCBhbHRlcmVkX2NhcGFiaWxpdHkgPSBjYXBhYmlsaXRpZXMuZmluZCgoY2FwYWJpbGl0eSkg
PT4geworICAgICAgcmV0dXJuIGNhcGFiaWxpdHkudXJpID09IHNlbGVjdGVkX2NhcGFiaWxpdHku
dXJpICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS5kaXJlY3Rpb24gPT0gInN0b3BwZWQiOwor
ICB9KTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMoYWx0ZXJlZF9jYXBhYmlsaXR5LCB1bmRlZmluZWQp
OworfSwgYG1vZGlmaWVkIGRpcmVjdGlvbiBzZXQgYnkgc2V0T2ZmZXJlZFJ0cEhlYWRlckV4dGVu
c2lvbnMgaXMgdmlzaWJsZSBpbiBoZWFkZXJFeHRlbnNpb25zT2ZmZXJlZGApOworCitwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVy
ID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHRy
YW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNUb09mZmVyOworICBjb25zdCBvZmZlciA9IGF3YWl0
IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGNvbnN0IGV4dG1hcHMgPSBvZmZlcgorICAgICAgICAgICAg
ICAgICAgICAgIC5zZHAKKyAgICAgICAgICAgICAgICAgICAgICAuc3BsaXQoIlxuIikKKyAgICAg
ICAgICAgICAgICAgICAgICAuZmlsdGVyKGxpbmUgPT4geyByZXR1cm4gbGluZS5pbmNsdWRlcygi
YT1leHRtYXAiKTsgfSkKKyAgICAgICAgICAgICAgICAgICAgICAuam9pbigiXG4iKTsKKyAgZm9y
IChjb25zdCBjYXBhYmlsaXR5IG9mIGNhcGFiaWxpdGllcykgeworICAgIGlmIChjYXBhYmlsaXR5
LmRpcmVjdGlvbiA9PSAic3RvcHBlZCIpIHsKKyAgICAgIGFzc2VydF9mYWxzZShleHRtYXBzLmlu
Y2x1ZGVzKGNhcGFiaWxpdHkudXJpKSk7CisgICAgfSBlbHNlIHsKKyAgICAgIGFzc2VydF90cnVl
KGV4dG1hcHMuaW5jbHVkZXMoY2FwYWJpbGl0eS51cmkpKTsKKyAgICB9CisgIH0KK30sIGB1bnN0
b3BwZWQgZXh0ZW5zaW9ucyB0dXJuIHVwIGluIG9mZmVyYCk7CisKK3Byb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRU
cmFuc2NlaXZlcigndmlkZW8nKTsKKyAgY29uc3QgY2FwYWJpbGl0aWVzID0gdHJhbnNjZWl2ZXIu
aGVhZGVyRXh0ZW5zaW9uc1RvT2ZmZXI7CisgIGNvbnN0IHNlbGVjdGVkX2NhcGFiaWxpdHkgPSBj
YXBhYmlsaXRpZXMuZmluZCgoY2FwYWJpbGl0eSkgPT4geworICAgICAgcmV0dXJuIGNhcGFiaWxp
dHkuZGlyZWN0aW9uID09ICJzZW5kcmVjdiIgJiYKKyAgICAgICAgICAgICBjYXBhYmlsaXR5LnVy
aSAhPSAidXJuOmlldGY6cGFyYW1zOnJ0cC1oZHJleHQ6c2RlczptaWQiICYmCisgICAgICAgICAg
ICAgY2FwYWJpbGl0eS51cmkgIT0gInVybjozZ3BwOnZpZGVvLW9yaWVudGF0aW9uIjsKKyAgfSk7
CisgIHNlbGVjdGVkX2NhcGFiaWxpdHkuZGlyZWN0aW9uID0gInN0b3BwZWQiOworICB0cmFuc2Nl
aXZlci5zZXRPZmZlcmVkUnRwSGVhZGVyRXh0ZW5zaW9ucyhjYXBhYmlsaXRpZXMpOworICBjb25z
dCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgIGNvbnN0IGV4dG1hcHMgPSBvZmZl
cgorICAgICAgICAgICAgICAgICAgICAgIC5zZHAKKyAgICAgICAgICAgICAgICAgICAgICAuc3Bs
aXQoIlxuIikKKyAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGxpbmUgPT4geyByZXR1cm4g
bGluZS5pbmNsdWRlcygiYT1leHRtYXAiKTsgfSkKKyAgICAgICAgICAgICAgICAgICAgICAuam9p
bigiXG4iKTsKKyAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9mIGNhcGFiaWxpdGllcykgeworICAg
IGlmIChjYXBhYmlsaXR5LmRpcmVjdGlvbiA9PSAic3RvcHBlZCIpIHsKKyAgICAgIGFzc2VydF9m
YWxzZShleHRtYXBzLmluY2x1ZGVzKGNhcGFiaWxpdHkudXJpKSk7CisgICAgfSBlbHNlIHsKKyAg
ICAgIGFzc2VydF90cnVlKGV4dG1hcHMuaW5jbHVkZXMoY2FwYWJpbGl0eS51cmkpKTsKKyAgICB9
CisgIH0KK30sIGBzdG9wcGVkIGV4dGVuc2lvbnMgZG8gbm90IHR1cm4gdXAgaW4gb2ZmZXJzYCk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisKKyAgLy8gRGlzYWJsZSBhIG5vbi1tYW5kYXRvcnkgZXh0ZW5zaW9uIGJl
Zm9yZSBmaXJzdCBuZWdvdGlhdGlvbi4KKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEuYWRkVHJh
bnNjZWl2ZXIoJ3ZpZGVvJyk7CisgIGNvbnN0IGNhcGFiaWxpdGllcyA9IHRyYW5zY2VpdmVyLmhl
YWRlckV4dGVuc2lvbnNUb09mZmVyOworICBjb25zdCBzZWxlY3RlZF9jYXBhYmlsaXR5ID0gY2Fw
YWJpbGl0aWVzLmZpbmQoKGNhcGFiaWxpdHkpID0+IHsKKyAgICAgIHJldHVybiBjYXBhYmlsaXR5
LmRpcmVjdGlvbiA9PSAic2VuZHJlY3YiICYmCisgICAgICAgICAgICAgY2FwYWJpbGl0eS51cmkg
IT0gInVybjppZXRmOnBhcmFtczpydHAtaGRyZXh0OnNkZXM6bWlkIiAmJgorICAgICAgICAgICAg
IGNhcGFiaWxpdHkudXJpICE9ICJ1cm46M2dwcDp2aWRlby1vcmllbnRhdGlvbiI7CisgIH0pOwor
ICBzZWxlY3RlZF9jYXBhYmlsaXR5LmRpcmVjdGlvbiA9ICJzdG9wcGVkIjsKKyAgdHJhbnNjZWl2
ZXIuc2V0T2ZmZXJlZFJ0cEhlYWRlckV4dGVuc2lvbnMoY2FwYWJpbGl0aWVzKTsKKworICBhd2Fp
dCBuZWdvdGlhdGUocGMxLCBwYzIpOworICBjb25zdCBuZWdvdGlhdGVkX2NhcGFiaWxpdGVzID0g
dHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5zaW9uc05lZ290aWF0ZWQ7CisKKyAgLy8gQXR0ZW1wdCBl
bmFibGluZyB0aGUgZXh0ZW5zaW9uLgorICBzZWxlY3RlZF9jYXBhYmlsaXR5LmRpcmVjdGlvbiA9
ICJzZW5kcmVjdiI7CisKKyAgLy8gVGhlIGVuYWJsZWQgZXh0ZW5zaW9uIHNob3VsZCBub3QgYmUg
cGFydCBvZiB0aGUgbmVnb3RpYXRlZCBzZXQuCisgIHRyYW5zY2VpdmVyLnNldE9mZmVyZWRSdHBI
ZWFkZXJFeHRlbnNpb25zKGNhcGFiaWxpdGllcyk7CisgIGF3YWl0IG5lZ290aWF0ZShwYzEsIHBj
Mik7CisgIGFzc2VydF9ub3RfZXF1YWxzKAorICAgICAgdHJhbnNjZWl2ZXIuaGVhZGVyRXh0ZW5z
aW9uc05lZ290aWF0ZWQuZmluZChjYXBhYmlsaXR5ID0+IHsKKyAgICAgICAgcmV0dXJuIGNhcGFi
aWxpdHkudXJpID09IHNlbGVjdGVkX2NhcGFiaWxpdHkudXJpICYmCisgICAgICAgICAgICAgICBj
YXBhYmlsaXR5LmRpcmVjdGlvbiA9PSAic2VuZHJlY3YiOworICAgICAgfSksIHVuZGVmaW5lZCk7
Cit9LCBgdGhlIHNldCBvZiBuZWdvdGlhdGVkIGV4dGVuc2lvbnMgZ3Jvd3Mgd2l0aCBzdWJzZXF1
ZW50IG9mZmVyc2ApOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9z
ZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworCisgIC8vIERpc2FibGUgYSBub24tbWFuZGF0b3J5
IGV4dGVuc2lvbiBiZWZvcmUgZmlyc3QgbmVnb3RpYXRpb24uCisgIGNvbnN0IHRyYW5zY2VpdmVy
ID0gcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICBjb25zdCBjYXBhYmlsaXRpZXMgPSB0
cmFuc2NlaXZlci5oZWFkZXJFeHRlbnNpb25zVG9PZmZlcjsKKyAgY29uc3Qgc2VsZWN0ZWRfY2Fw
YWJpbGl0eSA9IGNhcGFiaWxpdGllcy5maW5kKChjYXBhYmlsaXR5KSA9PiB7CisgICAgICByZXR1
cm4gY2FwYWJpbGl0eS5kaXJlY3Rpb24gPT0gInNlbmRyZWN2IiAmJgorICAgICAgICAgICAgIGNh
cGFiaWxpdHkudXJpICE9ICJ1cm46aWV0ZjpwYXJhbXM6cnRwLWhkcmV4dDpzZGVzOm1pZCIgJiYK
KyAgICAgICAgICAgICBjYXBhYmlsaXR5LnVyaSAhPSAidXJuOjNncHA6dmlkZW8tb3JpZW50YXRp
b24iOworICB9KTsKKyAgc2VsZWN0ZWRfY2FwYWJpbGl0eS5kaXJlY3Rpb24gPSAic3RvcHBlZCI7
CisgIHRyYW5zY2VpdmVyLnNldE9mZmVyZWRSdHBIZWFkZXJFeHRlbnNpb25zKGNhcGFiaWxpdGll
cyk7CisKKyAgYXdhaXQgbmVnb3RpYXRlKHBjMSwgcGMyKTsKKyAgY29uc3QgbmVnb3RpYXRlZF9j
YXBhYmlsaXRlcyA9IHRyYW5zY2VpdmVyLmhlYWRlckV4dGVuc2lvbnNOZWdvdGlhdGVkOworCisg
IGZvciAoY29uc3QgY2FwYWJpbGl0eSBvZiBuZWdvdGlhdGVkX2NhcGFiaWxpdGVzKSB7CisgICAg
YXNzZXJ0X25vdF9lcXVhbHMoY2FwYWJpbGl0aWVzLmZpbmQoKGNhcCkgPT4geworICAgICAgcmV0
dXJuIGNhcC51cmkgPT0gY2FwYWJpbGl0eS51cmkgJiYgY2FwLmRpcmVjdGlvbiAhPSAic3RvcHBl
ZCI7CisgICAgfSksIHVuZGVmaW5lZCk7CisgIH0KKyAgZm9yIChjb25zdCBjYXBhYmlsaXR5IG9m
IGNhcGFiaWxpdGllcykgeworICAgIGlmIChjYXBhYmlsaXR5LmRpcmVjdGlvbiAhPSAic3RvcHBl
ZCIpIHsKKyAgICAgIGFzc2VydF9ub3RfZXF1YWxzKG5lZ290aWF0ZWRfY2FwYWJpbGl0ZXMuZmlu
ZCgoY2FwKSA9PiB7CisgICAgICAgIHJldHVybiBjYXAudXJpID09IGNhcGFiaWxpdHkudXJpOwor
ICAgICAgfSksIHVuZGVmaW5lZCk7CisgICAgfQorICB9Cit9LCBgdGhlIHNldCBvZiBuZWdvdGlh
dGVkIGV4dGVuc2lvbnMgaXMgdGhlIHNldCBvZiB1bnN0b3BwZWQgZXh0ZW5zaW9uc2ApOworCis8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL3czYy1pbXBv
cnQubG9nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmE2NDRlYjVkZmFkODU2ZjNmNTc3ZmY4YWQwMmU2YWYzMDM5NjQ5
NWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL3czYy1pbXBvcnQubG9nCkBAIC0wLDAgKzEsMjUg
QEAKK1RoZSB0ZXN0cyBpbiB0aGlzIGRpcmVjdG9yeSB3ZXJlIGltcG9ydGVkIGZyb20gdGhlIFcz
QyByZXBvc2l0b3J5LgorRG8gTk9UIG1vZGlmeSB0aGVzZSB0ZXN0cyBkaXJlY3RseSBpbiBXZWJL
aXQuCitJbnN0ZWFkLCBjcmVhdGUgYSBwdWxsIHJlcXVlc3Qgb24gdGhlIFdQVCBnaXRodWI6CisJ
aHR0cHM6Ly9naXRodWIuY29tL3dlYi1wbGF0Zm9ybS10ZXN0cy93cHQKKworVGhlbiBydW4gdGhl
IFRvb2xzL1NjcmlwdHMvaW1wb3J0LXczYy10ZXN0cyBpbiBXZWJLaXQgdG8gcmVpbXBvcnQKKwor
RG8gTk9UIG1vZGlmeSBvciByZW1vdmUgdGhpcyBmaWxlLgorCistLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KK1By
b3BlcnRpZXMgcmVxdWlyaW5nIHZlbmRvciBwcmVmaXhlczoKK05vbmUKK1Byb3BlcnR5IHZhbHVl
cyByZXF1aXJpbmcgdmVuZG9yIHByZWZpeGVzOgorTm9uZQorLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitMaXN0
IG9mIGZpbGVzOgorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWV4dGVuc2lvbnMvTUVUQS55bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy1leHRlbnNpb25zL1JUQ09BdXRoQ3JlZGVudGlhbC5odG1s
CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMtZXh0
ZW5zaW9ucy9SVENSdHBQYXJhbWV0ZXJzLWFkYXB0aXZlUHRpbWUuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRw
UGFyYW1ldGVycy1tYXhGcmFtZXJhdGUuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwUmVjZWl2ZXItcGxheW91
dERlbGF5SGludC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtY2FwdHVy
ZVRpbWVzdGFtcC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMtZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2UtaGVscGVy
LmpzCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMt
ZXh0ZW5zaW9ucy9SVENSdHBTeW5jaHJvbml6YXRpb25Tb3VyY2Utc2VuZGVyQ2FwdHVyZVRpbWVP
ZmZzZXQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwVHJhbnNjZWl2ZXItaGVhZGVyRXh0ZW5zaW9uQ29udHJv
bC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24gYi9MYXlv
dXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KaW5kZXggZjI0ZTA1NjA1N2U2NGZjZmIxMDQxNjY3
YmI3ZWY2NWM5MDU5Y2MxOS4uM2Y4ZDg5YzQ2NmI4MjE5MWY4ODJlMDAxNzc5M2RmNzhiMzI4ZGRj
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uCisrKyBiL0xheW91
dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgpAQCAtMjk1NCw2ICsyOTU0LDEyIEBACiAgICAgImlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUt
YW5hbHlzZXJub2RlLWludGVyZmFjZS90ZXN0LWFuYWx5c2VyLW91dHB1dC5odG1sIjogWwogICAg
ICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy1leHRlbnNpb25zL1JUQ1J0cFN5bmNocm9uaXphdGlvblNvdXJjZS1jYXB0dXJlVGlt
ZXN0YW1wLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjLWV4dGVuc2lvbnMvUlRDUnRwU3luY2hyb25pemF0
aW9uU291cmNlLXNlbmRlckNhcHR1cmVUaW1lT2Zmc2V0Lmh0bWwiOiBbCisgICAgICAgICJzbG93
IgorICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAg
ICAgXSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>