<?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>202773</bug_id>
          
          <creation_ts>2019-10-09 15:54:51 -0700</creation_ts>
          <short_desc>Support programmatic paste requests on macOS</short_desc>
          <delta_ts>2019-10-10 09:17:27 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1578438</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-09 15:54:51 -0700</bug_when>
    <thetext>&lt;rdar://problem/48957166&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578467</commentid>
    <comment_count>1</comment_count>
      <attachid>380590</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-10-09 17:19:52 -0700</bug_when>
    <thetext>Created attachment 380590
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578685</commentid>
    <comment_count>2</comment_count>
      <attachid>380590</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 09:17:26 -0700</bug_when>
    <thetext>Comment on attachment 380590
First pass

Clearing flags on attachment: 380590

Committed r250973: &lt;https://trac.webkit.org/changeset/250973&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1578686</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-10-10 09:17:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>380590</attachid>
            <date>2019-10-09 17:19:52 -0700</date>
            <delta_ts>2019-10-10 09:17:26 -0700</delta_ts>
            <desc>First pass</desc>
            <filename>bug-202773-20191009171951.patch</filename>
            <type>text/plain</type>
            <size>104180</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUwODU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjMxYmEyOGE0MTc2YmE3
MTFiYTQzYjRkMDEzN2EyODEwOTY1ZTczMS4uYTg2NTJiN2UxMjc0MGJkNmRkNWE4OTRiNjNkNzhi
NDBjZTI5NGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTEwLTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFN1cHBvcnQgcHJv
Z3JhbW1hdGljIHBhc3RlIHJlcXVlc3RzIG9uIG1hY09TCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDI3NzMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzQ4OTU3MTY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZHMgc3VwcG9ydCBmb3IgcHJvZ3JhbW1hdGljIHBhc3RlIHJlcXVlc3RzIG9uIG1hY09T
LiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0czogZWRpdGluZy9w
YXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtY29uZmlybWF0aW9uLmh0bWwKKyAgICAgICAg
ICAgICAgIGVkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLWNvbnNlY3V0aXZl
LWNvbmZpcm1hdGlvbnMuaHRtbAorICAgICAgICAgICAgICAgZWRpdGluZy9wYXN0ZWJvYXJkL2Rv
bS1wYXN0ZS9kb20tcGFzdGUtcmVqZWN0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGVkaXRpbmcv
cGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS5odG1s
CisgICAgICAgICAgICAgICBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1z
YW1lLW9yaWdpbi5odG1sCisKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVmYXVsdFZhbHVlRm9yU3VwcG9ydGVkUGFzdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6c3VwcG9ydGVkUGFzdGUpOgorICAgICAgICAoV2ViQ29yZTo6YWxsb3dQYXN0
ZUZyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6ZW5hYmxlZFBhc3RlKToKKworICAgICAgICBG
aXhlcyBhbiBleGlzdGluZyBidWcgdW5jb3ZlcmVkIGJ5IHRoZSBsYXlvdXQgdGVzdCBlZGl0aW5n
L2V4ZWNDb21tYW5kL2NsaXBib2FyZC1hY2Nlc3MuaHRtbCwgd2hpY2ggdGVzdHMgdGhlCisgICAg
ICAgIHJlc3VsdHMgb2YgYGRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoImNvcHkiKWAgYW5k
IGBkb2N1bWVudC5xdWVyeUNvbW1hbmRFbmFibGVkKCJwYXN0ZSIpYC4gVGhlIHByb2JsZW0gaGVy
ZQorICAgICAgICBpcyB0aGF0IGRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoInBhc3RlIikg
cmV0dXJucyB0cnVlIGlmIERPTSBwYXN0ZSBhY2Nlc3MgcmVxdWVzdHMgYXJlIGVuYWJsZWQsIHJl
Z2FyZGxlc3MKKyAgICAgICAgb2Ygd2hldGhlciBvciBub3QgdGhlcmUgaXMgYW4gYWN0aXZlIHVz
ZXIgZ2VzdHVyZS4gVGhpcyBpcyBpbmNvbnNpc3RlbnQgd2l0aCB0aGUgYmVoYXZpb3Igb2YgImNv
cHkiIGFuZCAiY3V0IiwKKyAgICAgICAgd2hpY2ggcmV0dXJuIGZhbHNlIGluIHRoZSBjYXNlIHdo
ZXJlIHRoZXJlIGlzIG5vIHVzZXIgZ2VzdHVyZSAoYW5kIHRoZSBjbGlwYm9hcmQgYWNjZXNzIHBv
bGljeSBpcyBhbHNvIGVxdWFsIHRvCisgICAgICAgIENsaXBib2FyZEFjY2Vzc1BvbGljeTo6UmVx
dWlyZXNVc2VyR2VzdHVyZSAtLSByZWZlciB0byBgYWxsb3dDb3B5Q3V0RnJvbURPTWApLgorCisg
ICAgICAgIFdoZW4gcGFzdGluZywgd2Ugb25seSBET00gcGFzdGUgYWNjZXNzIHJlcXVlc3RzIHRv
IGJlIHRyaWdnZXJlZCBvbmx5IGluIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIGEgdXNlciBnZXN0
dXJlLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgZW5hYmxlZFBhc3RlIHNob3VsZCBhZGRpdGlv
bmFsbHkgYmUgZ2F0ZWQgb24gYSB1c2VyIGdlc3R1cmUgY2hlY2suIEZvciBjb25zaXN0ZW5jeSB3
aXRoIHRoZQorICAgICAgICBpbXBsZW1lbnRhdGlvbiBvZiBgZW5hYmxlZENvcHlgLCB3ZSBpbnRy
b2R1Y2UgYSBgYWxsb3dQYXN0ZUZyb21ET01gIGhlbHBlciB0aGF0IGlzIHNpbWlsYXIgdG8KKyAg
ICAgICAgYGFsbG93Q29weUN1dEZyb21ET01gLCBhbmQgYWRkaXRpb25hbGx5IGNoZWNrIHRoaXMg
Y29uc3RyYWludCB3aGVuIHRoZSBwYXN0ZSBjb21tYW5kJ3Mgc291cmNlIGlzIHRoZSBET00gKGFz
CisgICAgICAgIG9wcG9zZWQgdG8gYSBtZW51IG9yIGtleSBiaW5kaW5nKS4KKworICAgICAgICBU
aGlzIGFkanVzdG1lbnQgYWxzbyBhZGRzIGEgbWlzc2luZyBjYW5ESFRNTFBhc3RlKCkgY2hlY2sg
cHJpb3IgdG8gY29uc3VsdGluZyBjYW5QYXN0ZSgpLiBUaGlzIGVuc3VyZXMgdGhhdCB3aGVuCisg
ICAgICAgIGV2YWx1YXRpbmcgZG9jdW1lbnQucXVlcnlDb21tYW5kRW5hYmxlZCgiUGFzdGUiKSwg
d2UnbGwgZGlzcGF0Y2ggYSAiYmVmb3JlcGFzdGUiIGV2ZW50LCBzaW1pbGFyIHRvIGhvdworICAg
ICAgICBldmFsdWF0aW5nIGRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoIkNvcHkiKSBkaXNw
YXRjaGVzIGEgImJlZm9yZWNvcHkiIGV2ZW50LgorCisgICAgICAgICogcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oOgorCisgICAgICAgIE1hcmsgYSBmdW5jdGlvbiBhcyBXRUJDT1JFX0VYUE9S
VC4KKwogMjAxOS0xMC0wOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4K
IAogICAgICAgICBbQ2xpcGJvYXJkIEFQSV0gUmVmYWN0b3IgUGFzdGVib2FyZCBpdGVtIHJlYWRp
bmcgZnVuY3Rpb25zIHRvIHdvcmsgb24gYm90aCBpT1MgYW5kIG1hY09TCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYy
MTliNjAwMjMxMzYwY2IyYjViMWJiZmRkYzQwODQ5YjgyZGQzMDQuLjUyZmUwYzgyZGFmYTVkNDdm
OWIzZDkwYjdiNjJiNDBlZDBhM2Y1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjQgQEAKKzIwMTkt
MTAtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
U3VwcG9ydCBwcm9ncmFtbWF0aWMgcGFzdGUgcmVxdWVzdHMgb24gbWFjT1MKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMjc3MworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNDg5NTcxNjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkcyBzdXBwb3J0IGZvciBwcm9ncmFtbWF0aWMgcGFzdGUgcmVxdWVz
dHMgb24gbWFjT1MsIGFzIHdlbGwgYXMgc29tZSB0ZXN0aW5nIFNQSSBpbiBXS1dlYlZpZXcgdG8g
YWxsb3cKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciB0byBncmFiIHRoZSBOU01lbnUgdXNlZCBm
b3IgdGhlIERPTSBwYXN0ZSByZXF1ZXN0LiBUaGlzIHBhdGNoIGFkb3B0cyB0aGUgc2FtZSBzdHJh
dGVneSB0YWtlbiB0bworICAgICAgICBhbGxvdyBwcm9ncmFtbWF0aWMgcGFzdGUgb24gaU9TLCBi
eSBhbGxvd2luZyBwcm9ncmFtbWF0aWMgcGFzdGVzIGNvbWluZyBmcm9tIHRoZSBwYWdlIHRvIHNo
b3cgcGxhdGZvcm0gVUkgd2hpY2gKKyAgICAgICAgdGhlIHVzZXIgbXVzdCB0aGVuIGludGVyYWN0
IHdpdGggaW4gb3JkZXIgdG8gcHJvY2VlZCB3aXRoIHRoZSBwYXN0ZS4gU2VlIGJlbG93IGZvciBt
b3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmg6CisKKyAgICAgICAgTWFrZSB0aGlzIGF2YWlsYWJsZSBvbiBib3RoIGlPUyBhbmQgbWFj
T1MgKGlPUyBmYW1pbHkgaXMgb21pdHRlZCBmb3Igbm93LCBzaW5jZSBjYWxsb3V0IGJhciBVSSBp
cyBub3QgZ2VuZXJhbGx5CisgICAgICAgIHByZXNlbnQgb24gbm9uLWlPUyBpT1MtZmFtaWx5IHBs
YXRmb3JtcyBzdWNoIGFzIEFwcGxlIFdhdGNoKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9ncmFudERPTVBh
c3RlQWNjZXNzXSk6CisKKyAgICAgICAgVGhpcyBzZWxlY3RvciBpcyBjYWxsZWQgd2hlbiB0aGUg
dXNlciB0YXBzIHRoZSBQYXN0ZSBvcHRpb24gaW4gdGhlIHByZXNlbnRlZCBOU01lbnUuCisKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9hY3RpdmVNZW51XSk6CisKKyAgICAgICAgUmV0dXJucyB0aGUg
Y3VycmVudGx5IGFjdGl2ZSBOU01lbnUuIE9ubHkgZm9yIHRlc3RpbmcgcHVycG9zZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9ncmFudERP
TVBhc3RlQWNjZXNzXSk6CisKKyAgICAgICAgU2FtZSBleGVyY2lzZSBhcyBhYm92ZSwgb25seSBm
b3IgV0tWaWV3IGluc3RlYWQgb2YgV0tXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkb21QYXN0
ZU1lbnUgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKC1bV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBpbml0V2l0aFdlYlZpZXdJbXBsOl0p
OgorICAgICAgICAoLVtXS0RPTVBhc3RlTWVudURlbGVnYXRlIG1lbnVEaWRDbG9zZTpdKToKKyAg
ICAgICAgKC1bV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBudW1iZXJPZkl0ZW1zSW5NZW51Ol0pOgor
ICAgICAgICAoLVtXS0RPTVBhc3RlTWVudURlbGVnYXRlIGNvbmZpbmVtZW50UmVjdEZvck1lbnU6
b25TY3JlZW46XSk6CisKKyAgICAgICAgQWRkcyBhIG5ldyBvYmplY3QsIHdob3NlIHB1cnBvc2Ug
aXMgdG8gYmUgYSBkZWxlZ2F0ZSBmb3IgdGhlIE5TTWVudSB0aGF0IGlzIHByZXNlbnRlZCB3aGVu
IHJlcXVlc3RpbmcgRE9NIHBhc3RlCisgICAgICAgIGFjY2Vzcy4gVGhpcyBvYmplY3QgaXMgdXNl
ZCBpbnN0ZWFkIG9mIFdLV2ViVmlldywgc2luY2UgQVBJIGNsaWVudHMgbWF5IGVuZCB1cCBtYWtp
bmcgdGhlIFdLV2ViVmlldyB0aGUgZGVsZWdhdGUKKyAgICAgICAgZm9yIGEgZGlmZmVyZW50IG1l
bnUsIGluIHdoaWNoIGNhc2Ugc29tZSBpbXBsZW1lbnRhdGlvbnMgKGVpdGhlciB0aGVpcnMgb3Ig
b3Vycykgb2YgTlNNZW51RGVsZWdhdGUgbWV0aG9kcyB3b3VsZAorICAgICAgICBub3QgYmUgY2Fs
bGVkLiBBdm9pZGluZyB0aGlzIHdvdWxkIHJlcXVpcmUgdGhlIGNsaWVudCB0byBiZSBhd2FyZSB0
aGF0IFdLV2ViVmlldyBjb25mb3JtcyB0byBOU01lbnVEZWxlZ2F0ZSwKKyAgICAgICAgd2hpY2gg
aXMgb25seSBkZWNsYXJlZCBwcml2YXRlbHkuCisKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmhhbmRsZVByb2Nlc3NTd2FwT3JFeGl0KToKKworICAgICAgICBPbiBwcm9jZXNzIHN3YXAg
b3IgZXhpdCwgYXV0b21hdGljYWxseSBiYWlsIG91dCBvZiBhbnkgcGVuZGluZyBET00gcGFzdGUg
cmVxdWVzdCBieSBkZW55aW5nIGl0LgorCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpy
ZXF1ZXN0RE9NUGFzdGVBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFu
ZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdCk6CisKKyAgICAgICAgSGFuZGxlIHRoZSBET00g
cGFzdGUgcmVxdWVzdCBieSBzaG93aW5nIGFuIE5TTWVudSBuZWFyIHRoZSBtb3VzZSBjdXJzb3Ig
d2l0aCBhIHNpbmdsZSBvcHRpb24gdG8gcGFzdGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlcXVlc3RET01Q
YXN0ZUFjY2Vzcyk6CisKIDIwMTktMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NsaXBib2FyZCBBUEldIFJlZmFjdG9yIFBhc3RlYm9hcmQg
aXRlbSByZWFkaW5nIGZ1bmN0aW9ucyB0byB3b3JrIG9uIGJvdGggaU9TIGFuZCBtYWNPUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggNGU1YWE2MTg2ODg2MTY5
NjIwMTdmM2NmM2ZmNGQxZmI1ZmJkMWMzNC4uMzBlODIyZTUxMDIyZWRkMDFjMTk0OTAzOGVmNmEw
YjZlYzI1Yjc2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBA
IC0xMjM1LDEzICsxMjM1LDIxIEBAIHN0YXRpYyBib29sIHN1cHBvcnRlZENvcHlDdXQoRnJhbWUq
IGZyYW1lKQogICAgIHJldHVybiBjbGllbnQgPyBjbGllbnQtPmNhbkNvcHlDdXQoZnJhbWUsIGRl
ZmF1bHRWYWx1ZSkgOiBkZWZhdWx0VmFsdWU7CiB9CiAKK3N0YXRpYyBib29sIGRlZmF1bHRWYWx1
ZUZvclN1cHBvcnRlZFBhc3RlKEZyYW1lJiBmcmFtZSkKK3sKKyAgICBhdXRvJiBzZXR0aW5ncyA9
IGZyYW1lLnNldHRpbmdzKCk7CisgICAgaWYgKHNldHRpbmdzLmphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQoKSAmJiBzZXR0aW5ncy5ET01QYXN0ZUFsbG93ZWQoKSkKKyAgICAgICAgcmV0dXJu
IHRydWU7CisKKyAgICByZXR1cm4gc2V0dGluZ3MuZG9tUGFzdGVBY2Nlc3NSZXF1ZXN0c0VuYWJs
ZWQoKTsKK30KKwogc3RhdGljIGJvb2wgc3VwcG9ydGVkUGFzdGUoRnJhbWUqIGZyYW1lKQogewog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGF1dG8mIHNldHRp
bmdzID0gZnJhbWUtPnNldHRpbmdzKCk7Ci0gICAgYm9vbCBkZWZhdWx0VmFsdWUgPSAoc2V0dGlu
Z3MuamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpICYmIHNldHRpbmdzLkRPTVBhc3RlQWxs
b3dlZCgpKSB8fCBzZXR0aW5ncy5kb21QYXN0ZUFjY2Vzc1JlcXVlc3RzRW5hYmxlZCgpOworICAg
IGJvb2wgZGVmYXVsdFZhbHVlID0gZGVmYXVsdFZhbHVlRm9yU3VwcG9ydGVkUGFzdGUoKmZyYW1l
KTsKIAogICAgIEVkaXRvckNsaWVudCogY2xpZW50ID0gZnJhbWUtPmVkaXRvcigpLmNsaWVudCgp
OwogICAgIHJldHVybiBjbGllbnQgPyBjbGllbnQtPmNhblBhc3RlKGZyYW1lLCBkZWZhdWx0VmFs
dWUpIDogZGVmYXVsdFZhbHVlOwpAQCAtMTM3MCw5ICsxMzc4LDI2IEBAIHN0YXRpYyBib29sIGVu
YWJsZWRJblJpY2hseUVkaXRhYmxlVGV4dChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29t
bWFuZFNvdXJjCiAgICAgcmV0dXJuIHNlbGVjdGlvbi5pc0NhcmV0T3JSYW5nZSgpICYmIHNlbGVj
dGlvbi5pc0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpICYmIHNlbGVjdGlvbi5yb290RWRpdGFibGVF
bGVtZW50KCk7CiB9CiAKLXN0YXRpYyBib29sIGVuYWJsZWRQYXN0ZShGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSkKK3N0YXRpYyBib29sIGFsbG93UGFzdGVGcm9tRE9N
KEZyYW1lJiBmcmFtZSkKIHsKLSAgICByZXR1cm4gZnJhbWUuZWRpdG9yKCkuY2FuUGFzdGUoKTsK
KyAgICBhdXRvJiBzZXR0aW5ncyA9IGZyYW1lLnNldHRpbmdzKCk7CisgICAgaWYgKHNldHRpbmdz
LmphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSAmJiBzZXR0aW5ncy5ET01QYXN0ZUFsbG93
ZWQoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gc2V0dGluZ3MuZG9tUGFz
dGVBY2Nlc3NSZXF1ZXN0c0VuYWJsZWQoKSAmJiBVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCk7Cit9CisKK3N0YXRpYyBib29sIGVuYWJsZWRQYXN0ZShGcmFtZSYg
ZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzb3VyY2UpCit7CisgICAgc3dpdGNo
IChzb3VyY2UpIHsKKyAgICBjYXNlIENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZzoKKyAgICAg
ICAgcmV0dXJuIGZyYW1lLmVkaXRvcigpLmNhbkRIVE1MUGFzdGUoKSB8fCBmcmFtZS5lZGl0b3Io
KS5jYW5QYXN0ZSgpOworICAgIGNhc2UgQ29tbWFuZEZyb21ET006CisgICAgY2FzZSBDb21tYW5k
RnJvbURPTVdpdGhVc2VySW50ZXJmYWNlOgorICAgICAgICByZXR1cm4gYWxsb3dQYXN0ZUZyb21E
T00oZnJhbWUpICYmIChmcmFtZS5lZGl0b3IoKS5jYW5ESFRNTFBhc3RlKCkgfHwgZnJhbWUuZWRp
dG9yKCkuY2FuUGFzdGUoKSk7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBmYWxzZTsKIH0KIAogc3RhdGljIGJvb2wgZW5hYmxlZFJhbmdlSW5FZGl0YWJsZVRl
eHQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggOGE3YWM4OGM0MmQ1NDA4OGMx
NWY0YmQzOGEyMDE2YmJiNTgyZGUwNi4uOTRhMGQ2M2FmYTdhY2QyODc1ZWQ2NjVhNGIwNDIzNmM0
Y2Q0NWU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApA
QCAtNjgsNyArNjgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ1N0b3AoKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCk7
CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0N1dCgpOwotICAgIFN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdQYXN0ZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdQYXN0ZSgpOwogI2lmIFBMQVRGT1JNKEdUSykKICAgICBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnRGVsZXRlKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0lucHV0TWV0
aG9kcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNE
ZWZhdWx0VmFsdWVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1
bHRWYWx1ZXMuaAppbmRleCBjYmJjZGMxZTBhNmFkZTMyNzRhNzI2ODY5ZDM0MDUxYTE0ZjU3YWE5
Li40OWM1YmIwZWZlYzU3NzRhNDlhZGI4NmIyYzZiY2UzMzM0YjFlY2ZjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApAQCAtMjU2
LDcgKzI1Niw3IEBACiAjZGVmaW5lIERFRkFVTFRfQ1VTVE9NX1BBU1RFQk9BUkRfREFUQV9FTkFC
TEVEIGZhbHNlCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShJT1Mp
IHx8IFBMQVRGT1JNKE1BQykKICNkZWZpbmUgREVGQVVMVF9ET01fUEFTVEVfQUNDRVNTX1JFUVVF
U1RTX0VOQUJMRUQgdHJ1ZQogI2Vsc2UKICNkZWZpbmUgREVGQVVMVF9ET01fUEFTVEVfQUNDRVNT
X1JFUVVFU1RTX0VOQUJMRUQgZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDRmZWM3NTBiZDAyNjM1M2RmMjc3YmZmNzEwYTdhOTYy
NWM5ZDMwZDYuLjQ4MzIxZWQ5Mjk0Y2VlZDU5YTliNWI0ZDM1YzRiOTQyYjM4M2E2ZTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtMzY0
MCw2ICszNjQwLDExIEBAIC0gKHZvaWQpc2V0RnJhbWVTaXplOihOU1NpemUpc2l6ZQogICAgIF9p
bXBsLT5zZXRGcmFtZVNpemUoTlNTaXplVG9DR1NpemUoc2l6ZSkpOwogfQogCistICh2b2lkKV93
ZWJfZ3JhbnRET01QYXN0ZUFjY2VzcworeworICAgIF9pbXBsLT5oYW5kbGVET01QYXN0ZVJlcXVl
c3RXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50ZWRGb3JH
ZXN0dXJlKTsKK30KKwogQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfQkVHSU4KIC0g
KHZvaWQpcmVuZXdHU3RhdGUKIEFMTE9XX0RFUFJFQ0FURURfSU1QTEVNRU5UQVRJT05TX0VORApA
QCAtNzMxNCw2ICs3MzE5LDEzIEBAIC0gKHZvaWQpX2RvQWZ0ZXJQcm9jZXNzaW5nQWxsUGVuZGlu
Z01vdXNlRXZlbnRzOihkaXNwYXRjaF9ibG9ja190KWFjdGlvbgogICAgIF9pbXBsLT5kb0FmdGVy
UHJvY2Vzc2luZ0FsbFBlbmRpbmdNb3VzZUV2ZW50cyhhY3Rpb24pOwogfQogCistIChOU01lbnUg
KilfYWN0aXZlTWVudQoreworICAgIC8vIEZJWE1FOiBPbmx5IHRoZSBET00gcGFzdGUgYWNjZXNz
IG1lbnUgaXMgc3VwcG9ydGVkIGZvciBub3cuIEluIHRoZSBmdXR1cmUsIGl0IGNvdWxkIGJlCisg
ICAgLy8gZXh0ZW5kZWQgdG8gcmVjb2duaXplIHRoZSByZWd1bGFyIGNvbnRleHQgbWVudSBhcyB3
ZWxsLgorICAgIHJldHVybiBfaW1wbC0+ZG9tUGFzdGVNZW51KCk7Cit9CisKICNlbmRpZiAvLyBQ
TEFURk9STShNQUMpCiAKIC0gKHZvaWQpX3JlcXVlc3RBY3RpdmVOb3dQbGF5aW5nU2Vzc2lvbklu
Zm86KHZvaWQoXikoQk9PTCwgQk9PTCwgTlNTdHJpbmcqLCBkb3VibGUsIGRvdWJsZSwgTlNJbnRl
Z2VyKSljYWxsYmFjawpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCBjNTBhN2U0Y2FmYjZlMzQ5YTY2MWIzOTY3NmYy
OWEzODliM2RhNjc1Li40MzUwODBmMzI0NDVjZThlN2Y1NmVlNWRjMDA0Mzk0YmNmMWFhNWQ5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
SW50ZXJuYWwuaApAQCAtMTg5LDYgKzE4OSwxMCBAQCBzdHJ1Y3QgUHJpbnRJbmZvOwogLSAoV0tQ
YWdlUmVmKV9wYWdlRm9yVGVzdGluZzsKIC0gKFdlYktpdDo6V2ViUGFnZVByb3h5KilfcGFnZTsK
IAorI2lmIFBMQVRGT1JNKE1BQykKKy0gKHZvaWQpX3dlYl9ncmFudERPTVBhc3RlQWNjZXNzOwor
I2VuZGlmCisKIEBlbmQKIAogV0tXZWJWaWV3KiBmcm9tV2ViUGFnZVByb3h5KFdlYktpdDo6V2Vi
UGFnZVByb3h5Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBjZDIwNWQwMzJkM2E3MmMwMmZkYzY1YTY2MGQ5OTdk
YjYzZjg1NTcyLi4wOTRmZTI1MzliMzQ2YzcyYzU4NjFmMTc5NWEyOTY0ODE1NmY5ZTUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmgKQEAgLTU0Myw2ICs1NDMsNyBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwg
X1dLUmVjdEVkZ2UpIHsKIC0gKHZvaWQpX2luc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVu
dFJhbmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygx
MC4xMi4zKSk7CiAtIChOU1JlY3QpX2NhbmRpZGF0ZVJlY3QgV0tfQVBJX0FWQUlMQUJMRShtYWNv
cygxMC4xMykpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgc2V0dGVyPV9zZXRV
c2VTeXN0ZW1BcHBlYXJhbmNlOikgQk9PTCBfdXNlU3lzdGVtQXBwZWFyYW5jZSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0KSk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5T
TWVudSAqX2FjdGl2ZU1lbnUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSk7CiAK
IC0gKHZvaWQpX3NldEhlYWRlckJhbm5lckhlaWdodDooaW50KWhlaWdodCBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEyLjMpKTsKIC0gKHZvaWQpX3NldEZvb3RlckJhbm5lckhlaWdodDooaW50
KWhlaWdodCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyLjMpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNzJmODhjYTY0NjZlOTYxMWJiZmU2ZGMx
MjFjMDAyZGJmNDZkZTg3MC4uNjhjZTBjOGViNjg1ZWFiMjIzMzMwMzI4NTkzNGQ2ZGM0NmU3ZDRi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTg5MSw2
ICs4OTEsMTEgQEAgQUxMT1dfREVQUkVDQVRFRF9JTVBMRU1FTlRBVElPTlNfRU5ECiAgICAgcmV0
dXJuIF9kYXRhLT5faW1wbC0+bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlv
bihkcm9wRGVzdGluYXRpb24pOwogfQogCistICh2b2lkKV93ZWJfZ3JhbnRET01QYXN0ZUFjY2Vz
cworeworICAgIF9kYXRhLT5faW1wbC0+aGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChX
ZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpHcmFudGVkRm9yR2VzdHVyZSk7Cit9CisK
IC0gKHZvaWQpbWF5YmVJbnN0YWxsSWNvbkxvYWRpbmdDbGllbnQKIHsKICAgICBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKaW5kZXggNmM1ZjRmMzZlZWExZjBhMTQ2OWVjYjU4MzJiZTRiMGI0YjFh
OTJiMi4uMzNkN2E5YTgxNDk1ZWUyZDU4MjJhYTY0Zjc3ZTUxOGQ5MzA0ZjQxNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV0tMYXlvdXRNb2RlLmgi
CiAjaW5jbHVkZSAiX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9ET01QYXN0ZUFjY2Vzcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0
SW5kaWNhdG9yV2luZG93Lmg+CkBAIC0zOCw2ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dL
RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9BVktpdFNQ
SS5oPgogI2luY2x1ZGUgPHd0Zi9CbG9ja1B0ci5oPgorI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vh
a09iakNQdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpAQCAtNDcsMTAgKzQ5LDEyIEBA
IHVzaW5nIF9XS1JlY3RFZGdlID0gTlNVSW50ZWdlcjsKIAogT0JKQ19DTEFTUyBOU0FjY2Vzc2li
aWxpdHlSZW1vdGVVSUVsZW1lbnQ7CiBPQkpDX0NMQVNTIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXI7CitPQkpDX0NMQVNTIE5TTWVudTsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRD
b250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFdLQWNjZXNzaWJpbGl0eVNl
dHRpbmdzT2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsK
K09CSkNfQ0xBU1MgV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZTsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JV
bmRvVGFyZ2V0OwogT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JK
Q19DTEFTUyBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CkBAIC0xMTQsNiArMTE4LDggQEAg
c3RydWN0IFNoYXJlRGF0YVdpdGhQYXJzZWRVUkw7CiAtICh2b2lkKV93ZWJfZGlkUGVyZm9ybURy
YWdPcGVyYXRpb246KEJPT0wpaGFuZGxlZDsKICNlbmRpZgogCistICh2b2lkKV93ZWJfZ3JhbnRE
T01QYXN0ZUFjY2VzczsKKwogQG9wdGlvbmFsCiAtICh2b2lkKV93ZWJfZGlkQWRkTWVkaWFDb250
cm9sc01hbmFnZXI6KGlkKWNvbnRyb2xzTWFuYWdlcjsKIC0gKHZvaWQpX3dlYl9kaWRSZW1vdmVN
ZWRpYUNvbnRyb2xzTWFuYWdlcjsKQEAgLTYwMCw2ICs2MDYsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKICAgICB2b2lkIGNsZWFyUHJv
bWlzZWREcmFnSW1hZ2UoKTsKIAorICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYpOwor
ICAgIHZvaWQgaGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlKTsKKyAgICBOU01lbnUgKmRvbVBhc3RlTWVudSgpIGNvbnN0IHsgcmV0
dXJuIG1fZG9tUGFzdGVNZW51LmdldCgpOyB9CisKIHByaXZhdGU6CiAjaWYgSEFWRShUT1VDSF9C
QVIpCiAgICAgdm9pZCBzZXRVcFRleHRUb3VjaEJhcihOU1RvdWNoQmFyICopOwpAQCAtNzk0LDYg
KzgwNCw5IEBAIHByaXZhdGU6CiAgICAgTlNJbnRlZ2VyIG1faW5pdGlhbE51bWJlck9mVmFsaWRJ
dGVtc0ZvckRyb3AgeyAwIH07CiAjZW5kaWYKIAorICAgIFJldGFpblB0cjxOU01lbnU+IG1fZG9t
UGFzdGVNZW51OworICAgIFJldGFpblB0cjxXS0RPTVBhc3RlTWVudURlbGVnYXRlPiBtX2RvbVBh
c3RlTWVudURlbGVnYXRlOworICAgIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9N
UGFzdGVBY2Nlc3NSZXNwb25zZSk+IG1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcjsKIH07CiAgICAg
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KaW5kZXggNjQyZjE2Njc1MmU2Yzk4MzU0NjAwMGZjMDQ2ZWFjZDU0NzAx
ZTVmMC4uMTI2MjcxNzU2NjgwZmM4M2I5YmU1MjE4NjUyZDJmYjU1ZjlhZmJlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTkyLDYgKzkyLDcg
QEAKICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5TlNQYXN0ZWJvYXJkVHlwZXMuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTG9hZGVyTlNVUkxFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVk
U3RyaW5ncy5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Byb21pc2Vk
QXR0YWNobWVudEluZm8uaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJh
bmdlLmg+CkBAIC04NzksNiArODgwLDQ1IEBAIC0gKE5TU3RyaW5nICopYXR0YWNobWVudElkZW50
aWZpZXIKIAogQGVuZAogCitAaW50ZXJmYWNlIFdLRE9NUGFzdGVNZW51RGVsZWdhdGUgOiBOU09i
amVjdDxOU01lbnVEZWxlZ2F0ZT4KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFdlYlZpZXdJbXBs
OihXZWJLaXQ6OldlYlZpZXdJbXBsJilpbXBsOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tE
T01QYXN0ZU1lbnVEZWxlZ2F0ZSB7CisgICAgV2Vha1B0cjxXZWJLaXQ6OldlYlZpZXdJbXBsPiBf
aW1wbDsKK30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViVmlld0ltcGw6KFdlYktpdDo6
V2ViVmlld0ltcGwmKWltcGwKK3sKKyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9pbXBsID0gbWFrZVdlYWtQdHIoaW1wbCk7CisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpbWVudURpZENsb3NlOihOU01lbnUgKiltZW51Cit7
CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW2ltcGwgPSBf
aW1wbF0geworICAgICAgICBpZiAoaW1wbCkKKyAgICAgICAgICAgIGltcGwtPmhhbmRsZURPTVBh
c3RlUmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVu
aWVkRm9yR2VzdHVyZSk7CisgICAgfSk7Cit9CisKKy0gKE5TSW50ZWdlciludW1iZXJPZkl0ZW1z
SW5NZW51OihOU01lbnUgKiltZW51Cit7CisgICAgcmV0dXJuIDE7Cit9CisKKy0gKE5TUmVjdClj
b25maW5lbWVudFJlY3RGb3JNZW51OihOU01lbnUgKiltZW51IG9uU2NyZWVuOihOU1NjcmVlbiAq
KXNjcmVlbgoreworICAgIGF1dG8gY29uZmluZW1lbnRSZWN0ID0gV2ViQ29yZTo6ZW5jbG9zaW5n
SW50UmVjdChOU1JlY3QgeyBOU0V2ZW50Lm1vdXNlTG9jYXRpb24sIG1lbnUuc2l6ZSB9KTsKKyAg
ICBjb25maW5lbWVudFJlY3QubW92ZSgwLCAtY29uZmluZW1lbnRSZWN0LmhlaWdodCgpKTsKKyAg
ICByZXR1cm4gY29uZmluZW1lbnRSZWN0OworfQorCitAZW5kCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBOU1RvdWNoQmFyICpXZWJWaWV3SW1wbDo6bWFrZVRvdWNoQmFyKCkKQEAgLTE0MTcsNiAr
MTQ1Nyw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZVByb2Nlc3NTd2FwT3JFeGl0KCkKIAog
ICAgIHVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb24oZmFsc2UpOwogICAgIGZs
dXNoUGVuZGluZ01vdXNlRXZlbnRDYWxsYmFja3MoKTsKKworICAgIGhhbmRsZURPTVBhc3RlUmVx
dWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9y
R2VzdHVyZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnByb2Nlc3NXaWxsU3dhcCgpCkBAIC00
MjYzLDYgKzQzMDUsMzkgQEAgTlNBcnJheSAqV2ViVmlld0ltcGw6Om5hbWVzT2ZQcm9taXNlZEZp
bGVzRHJvcHBlZEF0RGVzdGluYXRpb24oTlNVUkwgKmRyb3BEZXN0aW4KICAgICByZXR1cm4gW05T
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb24pCit7Cisg
ICAgQVNTRVJUKCFtX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpOworICAgIGhhbmRsZURPTVBhc3Rl
UmVxdWVzdFdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVk
Rm9yR2VzdHVyZSk7CisKKyAgICBOU0RhdGEgKmRhdGEgPSBbTlNQYXN0ZWJvYXJkLmdlbmVyYWxQ
YXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKV07CisgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShkYXRhKTsKKyAgICBpZiAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21T
aGFyZWRCdWZmZXIoYnVmZmVyLmdldCgpKS5vcmlnaW4gPT0gb3JpZ2luSWRlbnRpZmllcikgewor
ICAgICAgICBjb21wbGV0aW9uKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkdyYW50
ZWRGb3JHZXN0dXJlKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fZG9tUGFzdGVN
ZW51RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tET01QYXN0ZU1lbnVEZWxlZ2F0ZSBhbGxvY10gaW5p
dFdpdGhXZWJWaWV3SW1wbDoqdGhpc10pOworICAgIG1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbik7CisgICAgbV9kb21QYXN0ZU1lbnUgPSBhZG9wdE5TKFtbTlNN
ZW51IGFsbG9jXSBpbml0V2l0aFRpdGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3Rl
KCldKTsKKworICAgIFttX2RvbVBhc3RlTWVudSBzZXREZWxlZ2F0ZTptX2RvbVBhc3RlTWVudURl
bGVnYXRlLmdldCgpXTsKKyAgICBbbV9kb21QYXN0ZU1lbnUgc2V0QWxsb3dzQ29udGV4dE1lbnVQ
bHVnSW5zOk5PXTsKKyAgICBbbV9kb21QYXN0ZU1lbnUgaW5zZXJ0SXRlbVdpdGhUaXRsZTpXZWJD
b3JlOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpIGFjdGlvbjpAc2VsZWN0b3IoX3dlYl9ncmFu
dERPTVBhc3RlQWNjZXNzKSBrZXlFcXVpdmFsZW50OmVtcHR5U3RyaW5nKCkgYXRJbmRleDowXTsK
KyAgICBbTlNNZW51IHBvcFVwQ29udGV4dE1lbnU6bV9kb21QYXN0ZU1lbnUuZ2V0KCkgd2l0aEV2
ZW50Om1fbGFzdE1vdXNlRG93bkV2ZW50LmdldCgpIGZvclZpZXc6bV92aWV3LmdldEF1dG9yZWxl
YXNlZCgpXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlRE9NUGFzdGVSZXF1ZXN0V2l0
aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlIHJlc3BvbnNlKQoreworICAg
IGlmIChhdXRvIGhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
ciwgeyB9KSkKKyAgICAgICAgaGFuZGxlcihyZXNwb25zZSk7CisgICAgW21fZG9tUGFzdGVNZW51
IHJlbW92ZUFsbEl0ZW1zXTsKKyAgICBbbV9kb21QYXN0ZU1lbnUgdXBkYXRlXTsKKyAgICBbbV9k
b21QYXN0ZU1lbnUgY2FuY2VsVHJhY2tpbmddOworICAgIG1fZG9tUGFzdGVNZW51ID0gbmlsOwor
ICAgIG1fZG9tUGFzdGVNZW51RGVsZWdhdGUgPSBuaWw7Cit9CisKIHN0YXRpYyBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gdGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRvd0lELCBib29s
IGNhcHR1cmVBdE5vbWluYWxSZXNvbHV0aW9uKQogewogICAgIENHU1dpbmRvd0NhcHR1cmVPcHRp
b25zIG9wdGlvbnMgPSBrQ0dTQ2FwdHVyZUlnbm9yZUdsb2JhbENsaXBTaGFwZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggYTdmZGIw
YjA1OTgzNzU0NTBmNzU0ZTEwOWVhY2EyYjk3YzFhMzE2MS4uODAxNmI1NmMxNjBhY2M3YjQyNjk2
MDBmMDdmNzM3YjM3OTM3NjdiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsTWFjLmgKQEAgLTIxMyw3ICsyMTMsNyBAQCBwcml2YXRlOgogICAgIHZv
aWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkg
b3ZlcnJpZGU7CiAKLSAgICB2b2lkIHJlcXVlc3RET01QYXN0ZUFjY2Vzcyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmIGNvbXBsZXRpb24p
IGZpbmFsIHsgY29tcGxldGlvbihXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5p
ZWRGb3JHZXN0dXJlKTsgfQorICAgIHZvaWQgcmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdl
YkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2UpPiYmKSBmaW5hbDsKIAogICAgIE5TVmlldyAq
YWN0aXZlVmlldygpIGNvbnN0OwogICAgIE5TV2luZG93ICphY3RpdmVXaW5kb3coKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5tbQpp
bmRleCBhOTEyOTUzZWM5MWMyNzMzNjI2NzYzZGFmOWRhMjZiMjQ5MzNjNmQ3Li4yMjY1M2Q3NDM5
ODg2ZGJmNWVjZGNkZGFmZTcyZDAyZDdiODMxZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLm1tCkBAIC05NTUsNiArOTU1LDExIEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OnRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbiBkaXJl
Y3Rpb24pCiAgICAgbV9pbXBsLT50YWtlRm9jdXMoZGlyZWN0aW9uKTsKIH0KIAordm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IGVsZW1lbnRSZWN0LCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZSk+JiYgY29tcGxldGlv
bikKK3sKKyAgICBtX2ltcGwtPnJlcXVlc3RET01QYXN0ZUFjY2VzcyhlbGVtZW50UmVjdCwgb3Jp
Z2luSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ4Nzg0NjFkZDE2MTdkMTI0NDk4ZGJiMDUw
Mzc5NDU3MDFhZjdmNjUuLjNhM2E5ZWQ0M2I0ZWM1MjY3MmRlZmMzMDgyMDgxY2RjOGYxYWZjZDAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw4NSBAQAorMjAxOS0xMC0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBTdXBwb3J0IHByb2dyYW1tYXRpYyBwYXN0ZSByZXF1ZXN0cyBvbiBt
YWNPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
NzczCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80ODk1NzE2Nj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIG5ldyB0ZXN0aW5nIHN1cHBvcnQg
dG8gZW5hYmxlIHVzIHRvIHRlc3QgcHJvZ3JhbW1hdGljIHBhc3RlIHJlcXVlc3RzIG9uIG1hY09T
LgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3Mv
VUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKworICAgICAgICBBZGQgYSBmZXcgbmV3IFVJU2NyaXB0
Q29udHJvbGxlciBtZXRob2RzOgorICAgICAgICAtIGFjdGl2YXRlQXRQb2ludCh4LCB5LCBjYWxs
YmFjayk6IHVzZWQgdG8gYWN0aXZhdGUgY29udGVudCB1bmRlcm5lYXRoIGF0ICh4LCB5KSwgaW4g
cm9vdCB2aWV3IGNvb3JkaW5hdGVzCisgICAgICAgICAgKFdLV2ViVmlldyBvbiBtYWNPUywgYW5k
IFdLQ29udGVudFZpZXcgb24gaU9TKS4gT24gbWFjT1MsIHRoaXMgbW92ZXMgdGhlIG1vdXNlIHRv
IHRoZSBnaXZlbiBsb2NhdGlvbiBhbmQKKyAgICAgICAgICBjbGlja3MuCisgICAgICAgIC0gY2hv
b3NlTWVudUFjdGlvbihhY3Rpb24sIGNhbGxiYWNrKTogdXNlZCB0byBzZWxlY3QgYSBtZW51IGl0
ZW0gd2l0aCB0aGUgZ2l2ZW4gdGl0bGUuCisgICAgICAgIC0gZGlzbWlzc01lbnUoKTogZGlzbWlz
c2VzIHRoZSBwbGF0Zm9ybSBtZW51LgorCisgICAgICAgIE5vdGUgdGhhdCBkaXNtaXNzTWVudSBh
bmQgY2hvb3NlTWVudUFjdGlvbiBjdXJyZW50bHkgb25seSB3b3JrIGZvciB0aGUgRE9NIHBhc3Rl
IG1lbnUsIGJ1dCBjb3VsZCBiZSBleHRlbmRlZCBpbgorICAgICAgICB0aGUgZnV0dXJlIHRvIGhh
bmRsZSB0aGUgc3lzdGVtIGNvbnRleHQgbWVudS4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlzbWlzc01lbnUpOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXI6OmNob29zZU1lbnVBY3Rpb24pOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAoV1RSOjpV
SVNjcmlwdENvbnRyb2xsZXI6OmFjdGl2YXRlQXRQb2ludCk6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0
Q29udHJvbGxlcjo6Y29jb2FSZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAg
ICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgaW5pdFdpdGhGcmFtZTpjb25maWd1cmF0aW9uOl0pOgor
ICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRTaG93TWVudV0pOgorICAgICAgICAo
LVtUZXN0UnVubmVyV0tXZWJWaWV3IF9kaWRIaWRlTWVudV0pOgorCisgICAgICAgIE1ha2UgdGhl
c2UgcHJlc2VudCBhY3Jvc3MgYm90aCBtYWNPUyBhbmQgaU9TLiBPbiBtYWNPUywgd2UgbGlzdGVu
IGZvciBOU01lbnVEaWRCZWdpblRyYWNraW5nTm90aWZpY2F0aW9uIGFuZAorICAgICAgICBOU01l
bnVEaWRFbmRUcmFja2luZ05vdGlmaWNhdGlvbiB0byBrbm93IHdoZW4gYSBtZW51IGhhcyBiZWVu
IHNob3duIG9yIGRpc21pc3NlZC4KKworICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IGRp
c21pc3NBY3RpdmVNZW51XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgcmVzZXRJ
bnRlcmFjdGlvbkNhbGxiYWNrc10pOgorCisgICAgICAgIE1ha2UgdGhlc2UgYXZhaWxhYmxlIG9u
IGJvdGggaU9TIGFuZCBtYWNPUy4gVGhlIG9ubHkgaW50ZXJhY3Rpb24gY2FsbGJhY2tzIG9uIG1h
Y09TIGFyZSBjdXJyZW50bHkKKyAgICAgICAgZGlkU2hvd01lbnVDYWxsYmFjayBhbmQgZGlkSGlk
ZU1lbnVDYWxsYmFjay4KKworICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IF93aWxsSGlk
ZU1lbnVdKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJv
bGxlckNvY29hLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENv
bnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6
OnNldERpZFNob3dNZW51Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYTo6c2V0RGlkSGlkZU1lbnVDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlckNvY29hOjpkaXNtaXNzTWVudSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlckNvY29hOjppc1Nob3dpbmdNZW51IGNvbnN0KToKKworICAgICAgICBNb3ZlIHRoZXNl
IGltcGxlbWVudGF0aW9ucyBpbnRvIFVJU2NyaXB0Q29udHJvbGxlckNvY29hLCBmcm9tIFVJU2Ny
aXB0Q29udHJvbGxlcklPUy4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RD
b250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1S
ZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKworICAgICAgICBJbnN0ZWFkIG9mIGNsZWFy
aW5nIGFsbCBpbnRlcmFjdGlvbiBjYWxsYmFja3MgaW4gVGVzdENvbnRyb2xsZXJJT1MsIGRvIGl0
IGluIFRlc3RDb250cm9sbGVyQ29jb2Egd2hlcmUgaXQKKyAgICAgICAgYWZmZWN0cyBib3RoIG1h
Y09TIGFuZCBpT1MuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENv
bnRyb2xsZXJJT1MuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENv
bnRyb2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcklPUzo6YWN0
aXZhdGVBdFBvaW50KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVySU9TOjpzaW5n
bGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcklPUzo6Y2hvb3NlTWVudUFjdGlvbik6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJv
bGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24gY29uc3QpOgorICAgICAgICAoV1RSOjpVSVNjcmlw
dENvbnRyb2xsZXJJT1M6OnNldERpZFNob3dNZW51Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldERpZEhpZGVNZW51Q2FsbGJhY2spOiBE
ZWxldGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ01l
bnUgY29uc3QpOiBEZWxldGVkLgorCisgICAgICAgIEFic3RyYWN0IHJlY3RGb3JNZW51QWN0aW9u
IGFuZCBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyBvdXQgaW50byBwcml2YXRlIGhlbHBl
ciBtZXRob2RzLCBzdWNoIHRoYXQgdGhleSBjYW4KKyAgICAgICAgYmUgdXNlZCBmcm9tIHdpdGhp
biBvdGhlciBzY3JpcHQgY29udHJvbGxlciBtZXRob2RzLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmg6CisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tOgorCisgICAgICAgIEltcGxlbWVu
dCB0aGUgbmV3IHNjcmlwdCBjb250cm9sbGVyIGhvb2tzIG9uIG1hY09TLgorCisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlck1hYzo6Y2xlYXJBbGxDYWxsYmFja3MpOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXJNYWM6OmNob29zZU1lbnVBY3Rpb24pOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXJNYWM6OmFjdGl2YXRlQXRQb2ludCk6CisKIDIwMTktMTAt
MDggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcnZpY2Ug
V29ya2VyIEZldGNoIGV2ZW50cyBzaG91bGQgdGltZSBvdXQuCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xs
ZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3Mv
VUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBkOGRiZTZlZjJlODczMzQwZmMzOTkzYzZiZWFl
ZmNkZTcxYWRhYTVjLi5jMGE5MjM4ZjBmMDg4MGVmNGY2MzAyZGZjNjE1M2FmMzZmOTUzZDZlIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5n
cy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTYzLDYgKzYz
LDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCBkb3VibGVUYXBB
dFBvaW50KGxvbmcgeCwgbG9uZyB5LCBmbG9hdCBkZWxheSwgb2JqZWN0IGNhbGxiYWNrKTsKICAg
ICB2b2lkIGRyYWdGcm9tUG9pbnRUb1BvaW50KGxvbmcgc3RhcnRYLCBsb25nIHN0YXJ0WSwgbG9u
ZyBlbmRYLCBsb25nIGVuZFksIGRvdWJsZSBkdXJhdGlvblNlY29uZHMsIG9iamVjdCBjYWxsYmFj
ayk7CiAKKyAgICB2b2lkIGFjdGl2YXRlQXRQb2ludChsb25nIHgsIGxvbmcgeSwgb2JqZWN0IGNh
bGxiYWNrKTsKKwogICAgIHZvaWQgbG9uZ1ByZXNzQXRQb2ludChsb25nIHgsIGxvbmcgeSwgb2Jq
ZWN0IGNhbGxiYWNrKTsKIAogICAgIHZvaWQgc3R5bHVzRG93bkF0UG9pbnQobG9uZyB4LCBsb25n
IHksIGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1
cmUsIG9iamVjdCBjYWxsYmFjayk7CkBAIC0yMzgsNiArMjQwLDggQEAgaW50ZXJmYWNlIFVJU2Ny
aXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5n
TWVudTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IG1lbnVSZWN0OwogICAgIG9iamVj
dCByZWN0Rm9yTWVudUFjdGlvbihET01TdHJpbmcgYWN0aW9uKTsKKyAgICB2b2lkIGNob29zZU1l
bnVBY3Rpb24oRE9NU3RyaW5nIGFjdGlvbiwgb2JqZWN0IGNhbGxiYWNrKTsKKyAgICB2b2lkIGRp
c21pc3NNZW51KCk7CiAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBpc1Nob3dpbmdQ
b3BvdmVyOwogICAgIGF0dHJpYnV0ZSBvYmplY3Qgd2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2s7
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBmNWI3MTVlMDJlY2EzMjg5OGY5NWU1MThm
ZjlkYmJiZGJmYzE1ZTkzLi44MDBjY2RiYjQyZWY4NTM5YTY1OWIzYjU3Y2Y4NzE3YmNlNDg2NGNk
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTIzMSw0ICsyMzEsMTIgQEAgdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQog
ICAgIGNsZWFyQWxsQ2FsbGJhY2tzKCk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpk
aXNtaXNzTWVudSgpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjaG9vc2VNZW51
QWN0aW9uKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQorCiB9CmRpZmYgLS1naXQgYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
aCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCmluZGV4IDEwMjkwNDFhMzQwODYyNDBhZWIwYjU2ZjA3MjZkNjUwMDE0Zjc0ODMuLmIw
NjBkYjVmODM2NDc1NGQzYTViZDdiMmYxNWQ0NTAyOWNiMjhmYTAgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisr
KyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCkBAIC0xMDUsNiArMTA1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBiZWNv
bWVGaXJzdFJlc3BvbmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZXNpZ25GaXJzdFJlc3BvbmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgdmly
dHVhbCB2b2lkIGNob29zZU1lbnVBY3Rpb24oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpOworICAg
IHZpcnR1YWwgdm9pZCBkaXNtaXNzTWVudSgpOworCiAgICAgdmlydHVhbCB2b2lkIGZpcnN0UmVz
cG9uZGVyU3VwcHJlc3Npb25Gb3JXZWJWaWV3KGJvb2wpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQog
ICAgIHZpcnR1YWwgdm9pZCBtYWtlV2luZG93Q29udGVudFZpZXdGaXJzdFJlc3BvbmRlcigpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1dpbmRvd0NvbnRlbnRWaWV3
Rmlyc3RSZXNwb25kZXIoKSBjb25zdCB7IG5vdEltcGxlbWVudGVkKCk7IHJldHVybiBmYWxzZTsg
fQpAQCAtMTQyLDYgKzE0NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZHJhZ0Zyb21Q
b2ludFRvUG9pbnQobG9uZyBzdGFydFgsIGxvbmcgc3RhcnRZLCBsb25nIGVuZFgsIGxvbmcgZW5k
WSwgZG91YmxlIGR1cmF0aW9uU2Vjb25kcywgSlNWYWx1ZVJlZiBjYWxsYmFjaykgeyBub3RJbXBs
ZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGxvbmdQcmVzc0F0UG9pbnQobG9uZyB4LCBs
b25nIHksIEpTVmFsdWVSZWYgY2FsbGJhY2spIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAg
dmlydHVhbCB2b2lkIGFjdGl2YXRlQXRQb2ludChsb25nIHgsIGxvbmcgeSwgSlNWYWx1ZVJlZiBj
YWxsYmFjaykgeyBub3RJbXBsZW1lbnRlZCgpOyB9CisKICAgICAvLyBLZXlib2FyZAogCiAgICAg
dmlydHVhbCB2b2lkIGVudGVyVGV4dChKU1N0cmluZ1JlZikgeyBub3RJbXBsZW1lbnRlZCgpOyB9
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVy
Q29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29j
b2EubW0KaW5kZXggZGE5ZjM0OTc4ZjkyZTBmZmYxZWQ0YjI4OTY0ZWU3NDhiYWM5Y2JiZi4uNjEy
NzYwY2ZiZDEyODE0ZGZiYTVkMDIzYTc1ZWU0MTQ3M2QxNjUzNCAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMjYyLDYg
KzI2Miw4IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmNvY29hUmVzZXRTdGF0ZVRvQ29uc2lzdGVu
dFZhbHVlcyhjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9uCiAgICAgICAgIC8vIFRvZ2dsZSBvbiBi
ZWZvcmUgdGhlIHRlc3QsIGFuZCB0b2dnbGUgb2ZmIGFmdGVyIHRoZSB0ZXN0LgogICAgICAgICBp
ZiAob3B0aW9ucy5zaG91bGRTaG93U3BlbGxDaGVja2luZ0RvdHMpCiAgICAgICAgICAgICBbcGxh
dGZvcm1WaWV3IHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOm5pbF07CisKKyAgICAgICAg
W3BsYXRmb3JtVmlldyByZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzXTsKICAgICB9CiAKICAgICBb
Z2xvYmFsV2Vic2l0ZURhdGFTdG9yZURlbGVnYXRlQ2xpZW50IHNldEFsbG93UmFpc2luZ1F1b3Rh
OiB0cnVlXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1
bm5lcldLV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVy
V0tXZWJWaWV3LmgKaW5kZXggZDIxNjQwNDcxNDRkNGY0YjYxODY4YzEyYjEwODgyYjBhMzA4NTZm
Yy4uZTBhZjk5ZDM3MWQzZTBjZGM3NDZiZGMxZDllMTc3Mzg5ZjNjNGE5OSAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgKQEAgLTQx
LDggKzQxLDYgQEAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5kWm9v
bWluZ0NhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChe
ZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNv
cHkpIHZvaWQgKF5kaWRIaWRlS2V5Ym9hcmRDYWxsYmFjaykodm9pZCk7Ci1AcHJvcGVydHkgKG5v
bmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dNZW51Q2FsbGJhY2spKHZvaWQpOwotQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2b2lkKTsK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChed2lsbFByZXNlbnRQb3BvdmVyQ2Fs
bGJhY2spKHZvaWQpOwogQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNt
aXNzUG9wb3ZlckNhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2spKHZvaWQpOwpAQCAtNTQsNyArNTIsNiBAQAog
LSAodm9pZClyZXNldEN1c3RvbU1lbnVBY3Rpb247CiAtICh2b2lkKWluc3RhbGxDdXN0b21NZW51
QWN0aW9uOihOU1N0cmluZyAqKW5hbWUgZGlzbWlzc2VzQXV0b21hdGljYWxseTooQk9PTClkaXNt
aXNzZXNBdXRvbWF0aWNhbGx5IGNhbGxiYWNrOihkaXNwYXRjaF9ibG9ja190KWNhbGxiYWNrOwog
Ci0tICh2b2lkKXJlc2V0SW50ZXJhY3Rpb25DYWxsYmFja3M7CiAtICh2b2lkKXpvb21Ub1NjYWxl
Oihkb3VibGUpc2NhbGUgYW5pbWF0ZWQ6KEJPT0wpYW5pbWF0ZWQgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClhY2Nlc3NpYmlsaXR5
UmV0cmlldmVTcGVha1NlbGVjdGlvbkNvbnRlbnRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwogLSAodm9pZClfZGlkRW5kUm90YXRpb247CkBA
IC02Miw3ICs1OSw2IEBACiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBVSUVkZ2VJbnNl
dHMgb3ZlcnJpZGVTYWZlQXJlYUluc2V0czsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBnZXR0ZXI9aXNTaG93aW5nS2V5Ym9hcmQpIEJPT0wgc2hvd2luZ0tleWJvYXJkOwotQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTaG93aW5nTWVudSkgQk9PTCBz
aG93aW5nTWVudTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRGlz
bWlzc2luZ01lbnUpIEJPT0wgZGlzbWlzc2luZ01lbnU7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGdldHRlcj1pc1Nob3dpbmdQb3BvdmVyKSBCT09MIHNob3dpbmdQb3BvdmVyOwog
QHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgQk9PTCB1c2VzU2FmYXJpTGlrZVJvdGF0aW9u
OwpAQCAtNzAsNyArNjYsMTMgQEAKIAogI2VuZGlmCiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSwgZ2V0dGVyPWlzU2hvd2luZ01lbnUpIEJPT0wgc2hvd2luZ01lbnU7CitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dNZW51Q2FsbGJhY2spKHZvaWQpOwor
QHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRIaWRlTWVudUNhbGxiYWNrKSh2
b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4sIHNldHRlcj1fc2V0U3RhYmxlU3Rh
dGVPdmVycmlkZTopIE5TTnVtYmVyICpfc3RhYmxlU3RhdGVPdmVycmlkZTsKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCBzZXR0ZXI9X3NldFNjcm9sbGluZ1VwZGF0ZXNEaXNhYmxlZEZvclRlc3Rpbmc6
KSBCT09MIF9zY3JvbGxpbmdVcGRhdGVzRGlzYWJsZWRGb3JUZXN0aW5nOwogCistICh2b2lkKWRp
c21pc3NBY3RpdmVNZW51OworLSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzOworCiBA
ZW5kCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJX
S1dlYlZpZXcubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dl
YlZpZXcubW0KaW5kZXggNjMyYmEwZTY0NWJiYjQyMTY0ZDEwMTA4MTJkZTFkNDE4ZTJjMGFjMi4u
NTJjZWQ4M2YxMDdkZDVjYmExYTYwZjcyMDQ0MjE2YzAwNDkxYjMwYSAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQpAQCAtODQs
MTEgKzg0LDE0IEBAIElHTk9SRV9XQVJOSU5HU19FTkQKIH0KICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihDR1JlY3QpZnJh
bWUgY29uZmlndXJhdGlvbjooV0tXZWJWaWV3Q29uZmlndXJhdGlvbiAqKWNvbmZpZ3VyYXRpb24K
IHsKICAgICBpZiAoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lIGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbl0pIHsKICAgICAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIGNlbnRl
ciA9IFtOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKKyNpZiBQTEFURk9STShN
QUMpCisgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X2RpZFNob3dNZW51KSBuYW1lOk5TTWVudURpZEJlZ2luVHJhY2tpbmdOb3RpZmljYXRpb24gb2Jq
ZWN0Om5pbF07CisgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IoX2RpZEhpZGVNZW51KSBuYW1lOk5TTWVudURpZEVuZFRyYWNraW5nTm90aWZpY2F0aW9u
IG9iamVjdDpuaWxdOworI2Vsc2UKICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3RvcihfaW52b2tlU2hvd0tleWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeSkg
bmFtZTpVSUtleWJvYXJkRGlkU2hvd05vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKICAgICAgICAg
W2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfaW52b2tlSGlkZUtl
eWJvYXJkQ2FsbGJhY2tJZk5lY2Vzc2FyeSkgbmFtZTpVSUtleWJvYXJkRGlkSGlkZU5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3RvcihfZGlkU2hvd01lbnUpIG5hbWU6VUlNZW51Q29udHJvbGxlckRpZFNob3dN
ZW51Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwpAQCAtOTcsNiArMTAwLDcgQEAgLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZSBjb25maWd1cmF0aW9uOihXS1dlYlZp
ZXdDb25maWd1cmF0aW8KICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3Rvcihfd2lsbFByZXNlbnRQb3BvdmVyKSBuYW1lOkAiVUlQb3BvdmVyQ29udHJvbGxl
cldpbGxQcmVzZW50UG9wb3Zlck5vdGlmaWNhdGlvbiIgb2JqZWN0Om5pbF07CiAgICAgICAgIFtj
ZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2RpZERpc21pc3NQb3Bv
dmVyKSBuYW1lOkAiVUlQb3BvdmVyQ29udHJvbGxlckRpZERpc21pc3NQb3BvdmVyTm90aWZpY2F0
aW9uIiBvYmplY3Q6bmlsXTsKICAgICAgICAgc2VsZi5VSURlbGVnYXRlID0gc2VsZjsKKyNlbmRp
ZgogICAgIH0KICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTExMyw2ICsxMTcsNjkgQEAgLSAodm9p
ZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQogCistICh2b2lkKV9kaWRTaG93TWVu
dQoreworICAgIGlmIChzZWxmLnNob3dpbmdNZW51KQorICAgICAgICByZXR1cm47CisKKyAgICBz
ZWxmLnNob3dpbmdNZW51ID0gWUVTOworICAgIGlmIChzZWxmLmRpZFNob3dNZW51Q2FsbGJhY2sp
CisgICAgICAgIHNlbGYuZGlkU2hvd01lbnVDYWxsYmFjaygpOworfQorCistICh2b2lkKV9kaWRI
aWRlTWVudQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgc2VsZi5kaXNtaXNzaW5n
TWVudSA9IE5POworI2VuZGlmCisKKyAgICBpZiAoIXNlbGYuc2hvd2luZ01lbnUpCisgICAgICAg
IHJldHVybjsKKworICAgIHNlbGYuc2hvd2luZ01lbnUgPSBOTzsKKyAgICBpZiAoc2VsZi5kaWRI
aWRlTWVudUNhbGxiYWNrKQorICAgICAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2soKTsKK30K
KworLSAodm9pZClkaXNtaXNzQWN0aXZlTWVudQoreworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgW3NlbGYgcmVzaWduRmlyc3RSZXNwb25kZXJdOworI2Vsc2UKKyAgICBhdXRvIG1lbnUg
PSByZXRhaW5QdHIoc2VsZi5fYWN0aXZlTWVudSk7CisgICAgW21lbnUgcmVtb3ZlQWxsSXRlbXNd
OworICAgIFttZW51IHVwZGF0ZV07CisgICAgW21lbnUgY2FuY2VsVHJhY2tpbmddOworI2VuZGlm
Cit9CisKKy0gKHZvaWQpcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrcworeworICAgIHNlbGYuZGlk
U2hvd01lbnVDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBu
aWw7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBzZWxmLmRpZFN0YXJ0Rm9ybUNvbnRy
b2xJbnRlcmFjdGlvbkNhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkRW5kRm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkU2hvd0ZvcmNlUHJlc3NQcmV2
aWV3Q2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLndpbGxCZWdpblpvb21pbmdDYWxsYmFjayA9IG5pbDsK
KyAgICBzZWxmLmRpZEVuZFpvb21pbmdDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLmRpZFNob3dL
ZXlib2FyZENhbGxiYWNrID0gbmlsOworICAgIHNlbGYuZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2sg
PSBuaWw7CisgICAgc2VsZi53aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayA9IG5pbDsKKyAgICBz
ZWxmLmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWRFbmRTY3Jv
bGxpbmdDYWxsYmFjayA9IG5pbDsKKyAgICBzZWxmLnJvdGF0aW9uRGlkRW5kQ2FsbGJhY2sgPSBu
aWw7CisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKK30KKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisKKy0gKHZvaWQpX3dpbGxIaWRlTWVudQoreworICAgIHNlbGYuZGlzbWlzc2lu
Z01lbnUgPSBZRVM7Cit9CisKIC0gKHZvaWQpZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9u
CiB7CiAgICAgX2lzSW50ZXJhY3RpbmdXaXRoRm9ybUNvbnRyb2wgPSBZRVM7CkBAIC0yMjgsMjQg
KzI5NSw2IEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbjooU0VMKWFjdGlvbiB3aXRoU2VuZGVy
OihpZClzZW5kZXIKICAgICByZXR1cm4gY2FuUGVyZm9ybUFjdGlvbkJ5RGVmYXVsdDsKIH0KIAot
LSAodm9pZClyZXNldEludGVyYWN0aW9uQ2FsbGJhY2tzCi17Ci0gICAgc2VsZi5kaWRTdGFydEZv
cm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLmRpZEVuZEZvcm1D
b250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLmRpZFNob3dGb3JjZVBy
ZXNzUHJldmlld0NhbGxiYWNrID0gbmlsOwotICAgIHNlbGYuZGlkRGlzbWlzc0ZvcmNlUHJlc3NQ
cmV2aWV3Q2FsbGJhY2sgPSBuaWw7Ci0gICAgc2VsZi53aWxsQmVnaW5ab29taW5nQ2FsbGJhY2sg
PSBuaWw7Ci0gICAgc2VsZi5kaWRFbmRab29taW5nQ2FsbGJhY2sgPSBuaWw7Ci0gICAgc2VsZi5k
aWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLmRpZEhpZGVLZXlib2FyZENh
bGxiYWNrID0gbmlsOwotICAgIHNlbGYuZGlkU2hvd01lbnVDYWxsYmFjayA9IG5pbDsKLSAgICBz
ZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBuaWw7Ci0gICAgc2VsZi53aWxsUHJlc2VudFBvcG92
ZXJDYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2sgPSBu
aWw7Ci0gICAgc2VsZi5kaWRFbmRTY3JvbGxpbmdDYWxsYmFjayA9IG5pbDsKLSAgICBzZWxmLnJv
dGF0aW9uRGlkRW5kQ2FsbGJhY2sgPSBuaWw7Ci19Ci0KIC0gKHZvaWQpem9vbVRvU2NhbGU6KGRv
dWJsZSlzY2FsZSBhbmltYXRlZDooQk9PTClhbmltYXRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBBU1NFUlQoIXNlbGYuem9vbVRv
U2NhbGVDb21wbGV0aW9uSGFuZGxlcik7CkBAIC0yODEsMzMgKzMzMCw2IEBAIC0gKHZvaWQpX2lu
dm9rZUhpZGVLZXlib2FyZENhbGxiYWNrSWZOZWNlc3NhcnkKICAgICAgICAgc2VsZi5kaWRIaWRl
S2V5Ym9hcmRDYWxsYmFjaygpOwogfQogCi0tICh2b2lkKV9kaWRTaG93TWVudQotewotICAgIGlm
IChzZWxmLnNob3dpbmdNZW51KQotICAgICAgICByZXR1cm47Ci0KLSAgICBzZWxmLnNob3dpbmdN
ZW51ID0gWUVTOwotICAgIGlmIChzZWxmLmRpZFNob3dNZW51Q2FsbGJhY2spCi0gICAgICAgIHNl
bGYuZGlkU2hvd01lbnVDYWxsYmFjaygpOwotfQotCi0tICh2b2lkKV93aWxsSGlkZU1lbnUKLXsK
LSAgICBzZWxmLmRpc21pc3NpbmdNZW51ID0gWUVTOwotfQotCi0tICh2b2lkKV9kaWRIaWRlTWVu
dQotewotICAgIHNlbGYuZGlzbWlzc2luZ01lbnUgPSBOTzsKLQotICAgIGlmICghc2VsZi5zaG93
aW5nTWVudSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc2VsZi5zaG93aW5nTWVudSA9IE5POwot
ICAgIGlmIChzZWxmLmRpZEhpZGVNZW51Q2FsbGJhY2spCi0gICAgICAgIHNlbGYuZGlkSGlkZU1l
bnVDYWxsYmFjaygpOwotfQotCiAtICh2b2lkKV93aWxsUHJlc2VudFBvcG92ZXIKIHsKICAgICBp
ZiAoc2VsZi5zaG93aW5nUG9wb3ZlcikKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaAppbmRleCBkZDU3ZGMwYzRlZGIzNWE4
Y2ZmM2YzNmMwNzc3ZjYxYjM1ZmE3ZjMwLi4zZTRiZmQ4OTU1MzJhNzlmNjcwMzBiYjIwOWI4NjY3
Y2NhMDY3NjAwIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2Ny
aXB0Q29udHJvbGxlckNvY29hLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9V
SVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCkBAIC00OSw2ICs0OSwxMSBAQCBwdWJsaWM6CiAgICAg
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGZpcnN0UmVkb0xhYmVsKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgTlNVbmRvTWFuYWdlciAqcGxhdGZvcm1VbmRvTWFuYWdlcigpIGNvbnN0IG92ZXJyaWRl
OwogCisgICAgdm9pZCBzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYpIG92ZXJyaWRl
OworICAgIHZvaWQgc2V0RGlkSGlkZU1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpc21pc3NNZW51KCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Nob3dpbmdNZW51
KCkgY29uc3Qgb3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBVSVNjcmlwdENv
bnRyb2xsZXJDb2NvYShVSVNjcmlwdENvbnRleHQmKTsKICAgICBUZXN0UnVubmVyV0tXZWJWaWV3
ICp3ZWJWaWV3KCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9j
b2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCBkY2VmYTc2ZTY3YTliNThiYjdh
ZmM4NjVlNzJmN2ViM2Y5ZGEzZmIyLi4wZjRlYjA3OWM1ODBhZGJiNmRkZDZkMmIxOTBlZTJmZWY1
MjExMzZmIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EubW0KQEAgLTE2Niw0ICsxNjYsMzQgQEAgTlNVbmRvTWFuYWdl
ciAqVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnBsYXRmb3JtVW5kb01hbmFnZXIoKSBjb25zdAog
ICAgIHJldHVybiBwbGF0Zm9ybUNvbnRlbnRWaWV3KCkudW5kb01hbmFnZXI7CiB9CiAKK3ZvaWQg
VUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldERpZFNob3dNZW51Q2FsbGJhY2soSlNWYWx1ZVJl
ZiBjYWxsYmFjaykKK3sKKyAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dNZW51Q2Fs
bGJhY2soY2FsbGJhY2spOworICAgIHdlYlZpZXcoKS5kaWRTaG93TWVudUNhbGxiYWNrID0gXnsK
KyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
Y29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZFNob3dNZW51KTsKKyAgICB9Owor
fQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXREaWRIaWRlTWVudUNhbGxiYWNr
KEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRI
aWRlTWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKKyAgICB3ZWJWaWV3KCkuZGlkSGlkZU1lbnVDYWxs
YmFjayA9IF57CisgICAgICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7
CisgICAgfTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6ZGlzbWlzc01lbnUo
KQoreworICAgIFt3ZWJWaWV3KCkgZGlzbWlzc0FjdGl2ZU1lbnVdOworfQorCitib29sIFVJU2Ny
aXB0Q29udHJvbGxlckNvY29hOjppc1Nob3dpbmdNZW51KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
d2ViVmlldygpLnNob3dpbmdNZW51OworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Rlc3RDb250cm9sbGVySU9TLm1tIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVGVzdENvbnRyb2xsZXJJT1MubW0KaW5kZXggOTc4YTBl
ZTRhZjQzNGRkMTUyZjVhYjBkNWViMDg0ZDhiZjc3ZGY5NS4uZjFmMTY1NzgwOTQ3ZGQwNTk3NDg1
Yjg2YTYyODRkZmZiYjNmMzg5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVGVzdENvbnRyb2xsZXJJT1MubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
VGVzdENvbnRyb2xsZXJJT1MubW0KQEAgLTE2Nyw3ICsxNjcsNiBAQCB2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJlc2V0U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlv
bnMmIG9wdAogICAgICAgICB3ZWJWaWV3Lm92ZXJyaWRlU2FmZUFyZWFJbnNldHMgPSBVSUVkZ2VJ
bnNldHNaZXJvOwogICAgICAgICBbd2ViVmlldyBfY2xlYXJPdmVycmlkZUxheW91dFBhcmFtZXRl
cnNdOwogICAgICAgICBbd2ViVmlldyBfY2xlYXJJbnRlcmZhY2VPcmllbnRhdGlvbk92ZXJyaWRl
XTsKLSAgICAgICAgW3dlYlZpZXcgcmVzZXRJbnRlcmFjdGlvbkNhbGxiYWNrc107CiAgICAgICAg
IFt3ZWJWaWV3IHJlc2V0Q3VzdG9tTWVudUFjdGlvbl07CiAgICAgICAgIFt3ZWJWaWV3IHNldEFs
bG93ZWRNZW51QWN0aW9uczpuaWxdOwogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4IDAyYTYxZTZhMjQxN2I0YzM4NGIxZWEx
ODExMjc2N2ZkOGFlNmFjYjcuLjZiYTI2MmFkYzkxNGU5MTQ3Y2VjNzBiYWFhZGNiOGQxNTI0Y2U0
Y2UgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJv
bGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJv
bGxlcklPUy5oCkBAIC0yNiw5ICsyNiwxNSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbXBvcnQgIlVJ
U2NyaXB0Q29udHJvbGxlckNvY29hLmgiCisjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KIAogI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpCiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIEZsb2F0
UG9pbnQ7CitjbGFzcyBGbG9hdFJlY3Q7Cit9CisKIG5hbWVzcGFjZSBXVFIgewogCiBjbGFzcyBV
SVNjcmlwdENvbnRyb2xsZXJJT1MgOiBwdWJsaWMgVUlTY3JpcHRDb250cm9sbGVyQ29jb2EgewpA
QCAtNjcsNiArNzMsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB0eXBlQ2hhcmFjdGVyVXNpbmdIYXJk
d2FyZUtleWJvYXJkKEpTU3RyaW5nUmVmIGNoYXJhY3RlciwgSlNWYWx1ZVJlZikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBrZXlEb3duKEpTU3RyaW5nUmVmIGNoYXJhY3RlciwgSlNWYWx1ZVJlZiBtb2Rp
ZmllckFycmF5KSBvdmVycmlkZTsKIAorICAgIHZvaWQgYWN0aXZhdGVBdFBvaW50KGxvbmcgeCwg
bG9uZyB5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKKwogICAgIHZvaWQgcmF3S2V5
RG93bihKU1N0cmluZ1JlZikgb3ZlcnJpZGU7CiAgICAgdm9pZCByYXdLZXlVcChKU1N0cmluZ1Jl
Zikgb3ZlcnJpZGU7CiAKQEAgLTExMiw3ICsxMjAsNyBAQCBwdWJsaWM6CiAgICAgSlNPYmplY3RS
ZWYgcmVjdEZvck1lbnVBY3Rpb24oSlNTdHJpbmdSZWYpIGNvbnN0IG92ZXJyaWRlOwogICAgIEpT
T2JqZWN0UmVmIG1lbnVSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc0Rpc21pc3Np
bmdNZW51KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc1Nob3dpbmdNZW51KCkgY29uc3Qg
b3ZlcnJpZGU7CisgICAgdm9pZCBjaG9vc2VNZW51QWN0aW9uKEpTU3RyaW5nUmVmLCBKU1ZhbHVl
UmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHNldFNhZmVBcmVhSW5zZXRzKGRvdWJsZSB0b3AsIGRv
dWJsZSByaWdodCwgZG91YmxlIGJvdHRvbSwgZG91YmxlIGxlZnQpIG92ZXJyaWRlOwogICAgIHZv
aWQgYmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21wbGV0
ZUJhY2tTd2lwZShKU1ZhbHVlUmVmKSBvdmVycmlkZTsKQEAgLTEzNSw4ICsxNDMsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXREaWRFbmRab29taW5nQ2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXREaWRTaG93S2V5Ym9hcmRDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVy
cmlkZTsKICAgICB2b2lkIHNldERpZEhpZGVLZXlib2FyZENhbGxiYWNrKEpTVmFsdWVSZWYpIG92
ZXJyaWRlOwotICAgIHZvaWQgc2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldERpZEhpZGVNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmKSBv
dmVycmlkZTsKICAgICB2b2lkIHNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJl
Zikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVl
UmVmKSBvdmVycmlkZTsKQEAgLTE0NCw2ICsxNTAsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAg
ICAgdm9pZCB3YWl0Rm9yU2luZ2xlVGFwVG9SZXNldCgpIGNvbnN0OworICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCByZWN0Rm9yTWVudUFjdGlvbihDRlN0cmluZ1JlZikgY29uc3Q7CisgICAgdm9pZCBz
aW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhXZWJDb3JlOjpGbG9hdFBvaW50IGxvY2F0aW9u
LCBWZWN0b3I8U3RyaW5nPiYmIG1vZGlmaWVyRmxhZ3MsIEJsb2NrUHRyPHZvaWQoKT4mJik7CiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENv
bnRyb2xsZXJJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW0KaW5kZXggMzI0M2VkZjhmNDk1MzkzNzhmY2VjNDhiZTEwZjlkYjg1MTYzNDJk
Mi4uNmU2MTIyNDAyYzBlMDQ0MTdjZmM2N2RkYzc3NTAyMTNmZTQzNDQzOCAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAt
MzksNiArMzksNyBAQAogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuaD4K
ICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL09wYXF1ZUpTU3RyaW5nLmg+CiAjaW1wb3J0IDxVSUtp
dC9VSUtpdC5oPgorI2ltcG9ydCA8V2ViQ29yZS9GbG9hdFBvaW50Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0Zsb2F0UmVjdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KQEAgLTI2NCw2ICsyNjUsMTEgQEAgdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXJJT1M6OnNpbmdsZVRhcEF0UG9pbnQobG9uZyB4LCBsb25nIHksIEpTVmFsdWVS
ZWYgY2FsbGJhY2sKICAgICBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyh4LCB5LCBudWxs
cHRyLCBjYWxsYmFjayk7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjphY3RpdmF0
ZUF0UG9pbnQobG9uZyB4LCBsb25nIHksIEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgc2lu
Z2xlVGFwQXRQb2ludCh4LCB5LCBjYWxsYmFjayk7Cit9CisKIHZvaWQgVUlTY3JpcHRDb250cm9s
bGVySU9TOjp3YWl0Rm9yU2luZ2xlVGFwVG9SZXNldCgpIGNvbnN0CiB7CiAgICAgYm9vbCBkb25l
V2FpdGluZ0ZvclNpbmdsZVRhcFRvUmVzZXQgPSBmYWxzZTsKQEAgLTI4OCwyNSArMjk0LDI4IEBA
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjp0d29GaW5nZXJTaW5nbGVUYXBBdFBvaW50KGxv
bmcgeCwgbG9uZyB5LCBKU1ZhbHVlUmVmCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2lu
Z2xlVGFwQXRQb2ludFdpdGhNb2RpZmllcnMobG9uZyB4LCBsb25nIHksIEpTVmFsdWVSZWYgbW9k
aWZpZXJBcnJheSwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICB1bnNpZ25lZCBjYWxsYmFj
a0lEID0gbV9jb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5
cGVOb25QZXJzaXN0ZW50KTsKKyAgICBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhXZWJD
b3JlOjpGbG9hdFBvaW50KHgsIHkpLCBwYXJzZU1vZGlmaWVyQXJyYXkobV9jb250ZXh0LT5qc0Nv
bnRleHQoKSwgbW9kaWZpZXJBcnJheSksIG1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWZQdHIoKnRoaXMpLCBjYWxsYmFja0lEXSB7CisgICAgICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmFzeW5jVGFza0Nv
bXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH0pKTsKK30KIAordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXJJT1M6OnNpbmdsZVRhcEF0UG9pbnRXaXRoTW9kaWZpZXJzKFdlYkNvcmU6OkZsb2F0UG9pbnQg
bG9jYXRpb24sIFZlY3RvcjxTdHJpbmc+JiYgbW9kaWZpZXJGbGFncywgQmxvY2tQdHI8dm9pZCgp
PiYmIGJsb2NrKQorewogICAgIHdhaXRGb3JTaW5nbGVUYXBUb1Jlc2V0KCk7CiAKLSAgICBhdXRv
IG1vZGlmaWVyRmxhZ3MgPSBwYXJzZU1vZGlmaWVyQXJyYXkobV9jb250ZXh0LT5qc0NvbnRleHQo
KSwgbW9kaWZpZXJBcnJheSk7CiAgICAgZm9yIChhdXRvJiBtb2RpZmllckZsYWcgOiBtb2RpZmll
ckZsYWdzKQogICAgICAgICBbW0hJREV2ZW50R2VuZXJhdG9yIHNoYXJlZEhJREV2ZW50R2VuZXJh
dG9yXSBrZXlEb3duOm1vZGlmaWVyRmxhZ107CiAKLSAgICBbW0hJREV2ZW50R2VuZXJhdG9yIHNo
YXJlZEhJREV2ZW50R2VuZXJhdG9yXSB0YXA6Z2xvYmFsVG9Db250ZW50Q29vcmRpbmF0ZXMod2Vi
VmlldygpLCB4LCB5KSBjb21wbGV0aW9uQmxvY2s6XnsKKyAgICBbW0hJREV2ZW50R2VuZXJhdG9y
IHNoYXJlZEhJREV2ZW50R2VuZXJhdG9yXSB0YXA6Z2xvYmFsVG9Db250ZW50Q29vcmRpbmF0ZXMo
d2ViVmlldygpLCBsb2NhdGlvbi54KCksIGxvY2F0aW9uLnkoKSkgY29tcGxldGlvbkJsb2NrOlt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZlB0cigqdGhpcyksIG1vZGlmaWVyRmxhZ3MgPSBX
VEZNb3ZlKG1vZGlmaWVyRmxhZ3MpLCBibG9jayA9IFdURk1vdmUoYmxvY2spXSAoKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCFtX2NvbnRleHQpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IGZvciAoc2l6ZV90IGkgPSBtb2RpZmllckZsYWdzLnNpemUoKTsgaTsgKSB7CiAgICAgICAgICAg
ICAtLWk7CiAgICAgICAgICAgICBbW0hJREV2ZW50R2VuZXJhdG9yIHNoYXJlZEhJREV2ZW50R2Vu
ZXJhdG9yXSBrZXlVcDptb2RpZmllckZsYWdzW2ldXTsKICAgICAgICAgfQotICAgICAgICBbW0hJ
REV2ZW50R2VuZXJhdG9yIHNoYXJlZEhJREV2ZW50R2VuZXJhdG9yXSBzZW5kTWFya2VySElERXZl
bnRXaXRoQ29tcGxldGlvbkJsb2NrOl57Ci0gICAgICAgICAgICBpZiAoIW1fY29udGV4dCkKLSAg
ICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICBtX2NvbnRleHQtPmFzeW5jVGFza0Nv
bXBsZXRlKGNhbGxiYWNrSUQpOwotICAgICAgICB9XTsKKyAgICAgICAgW1tISURFdmVudEdlbmVy
YXRvciBzaGFyZWRISURFdmVudEdlbmVyYXRvcl0gc2VuZE1hcmtlckhJREV2ZW50V2l0aENvbXBs
ZXRpb25CbG9jazpibG9jay5nZXQoKV07CiAgICAgfV07CiB9CiAKQEAgLTkyNCwyNCArOTMzLDE4
IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFj
ayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgIH07CiB9CiAKLXZvaWQgVUlTY3JpcHRDb250cm9s
bGVySU9TOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6Y2hvb3NlTWVudUFjdGlvbihKU1N0cmluZ1JlZiBqc0Fj
dGlvbiwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKLSAgICBVSVNjcmlwdENvbnRyb2xsZXI6OnNl
dERpZFNob3dNZW51Q2FsbGJhY2soY2FsbGJhY2spOwotICAgIHdlYlZpZXcoKS5kaWRTaG93TWVu
dUNhbGxiYWNrID0gXnsKLSAgICAgICAgaWYgKCFtX2NvbnRleHQpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlwZURpZFNob3dN
ZW51KTsKLSAgICB9OwotfQorICAgIGF1dG8gYWN0aW9uID0gYWRvcHRDRihKU1N0cmluZ0NvcHlD
RlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBqc0FjdGlvbikpOworICAgIGF1dG8gcmVjdCA9
IHJlY3RGb3JNZW51QWN0aW9uKGFjdGlvbi5nZXQoKSk7CisgICAgaWYgKHJlY3QuaXNFbXB0eSgp
KQorICAgICAgICByZXR1cm47CiAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVySU9TOjpzZXREaWRI
aWRlTWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgVUlTY3JpcHRDb250
cm9sbGVyOjpzZXREaWRIaWRlTWVudUNhbGxiYWNrKGNhbGxiYWNrKTsKLSAgICB3ZWJWaWV3KCku
ZGlkSGlkZU1lbnVDYWxsYmFjayA9IF57Ci0gICAgICAgIGlmICghbV9jb250ZXh0KQotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5
cGVEaWRIaWRlTWVudSk7Ci0gICAgfTsKKyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gbV9jb250
ZXh0LT5wcmVwYXJlRm9yQXN5bmNUYXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0
ZW50KTsKKyAgICBzaW5nbGVUYXBBdFBvaW50V2l0aE1vZGlmaWVycyhyZWN0LmNlbnRlcigpLCB7
IH0sIG1ha2VCbG9ja1B0cihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBj
YWxsYmFja0lEXSB7CisgICAgICAgIGlmIChtX2NvbnRleHQpCisgICAgICAgICAgICBtX2NvbnRl
eHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAgIH0pKTsKIH0KIAogYm9vbCBV
SVNjcmlwdENvbnRyb2xsZXJJT1M6OmlzU2hvd2luZ1BvcG92ZXIoKSBjb25zdApAQCAtOTcyLDE5
ICs5NzUsMjcgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnNldERpZERpc21pc3NQb3Bv
dmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29u
dHJvbGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24oSlNTdHJpbmdSZWYganNBY3Rpb24pIGNvbnN0
CiB7CiAgICAgYXV0byBhY3Rpb24gPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGpzQWN0aW9uKSk7CisgICAgYXV0byByZWN0ID0gcmVjdEZvck1lbnVB
Y3Rpb24oYWN0aW9uLmdldCgpKTsKKyAgICBpZiAocmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworCisgICAgcmV0dXJuIG1fY29udGV4dC0+b2JqZWN0RnJvbVJlY3QocmVj
dCk7Cit9CiAKK1dlYkNvcmU6OkZsb2F0UmVjdCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OnJlY3RG
b3JNZW51QWN0aW9uKENGU3RyaW5nUmVmIGFjdGlvbikgY29uc3QKK3sKICAgICBVSVdpbmRvdyAq
d2luZG93Rm9yQnV0dG9uID0gbmlsOwogICAgIFVJQnV0dG9uICpidXR0b25Gb3JBY3Rpb24gPSBu
aWw7CiAgICAgVUlWaWV3ICpjYWxsb3V0QmFyID0gVUlDYWxsb3V0QmFyLmFjdGl2ZUNhbGxvdXRC
YXI7CiAgICAgaWYgKCFjYWxsb3V0QmFyLndpbmRvdykKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBmb3IgKFVJQnV0dG9uICpidXR0b24gaW4gZmlu
ZEFsbFZpZXdzSW5IaWVyYXJjaHlPZlR5cGUoY2FsbG91dEJhciwgVUlCdXR0b24uY2xhc3MpKSB7
CiAgICAgICAgIE5TU3RyaW5nICpidXR0b25UaXRsZSA9IFtidXR0b24gdGl0bGVGb3JTdGF0ZTpV
SUNvbnRyb2xTdGF0ZU5vcm1hbF07CiAgICAgICAgIGlmICghYnV0dG9uVGl0bGUubGVuZ3RoKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKCFbYnV0dG9uVGl0bGUgaXNFcXVh
bFRvU3RyaW5nOihfX2JyaWRnZSBOU1N0cmluZyAqKWFjdGlvbi5nZXQoKV0pCisgICAgICAgIGlm
ICghW2J1dHRvblRpdGxlIGlzRXF1YWxUb1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcgKilhY3Rp
b25dKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgYnV0dG9uRm9yQWN0aW9uID0g
YnV0dG9uOwpAQCAtOTkzLDEwICsxMDA0LDEwIEBAIEpTT2JqZWN0UmVmIFVJU2NyaXB0Q29udHJv
bGxlcklPUzo6cmVjdEZvck1lbnVBY3Rpb24oSlNTdHJpbmdSZWYganNBY3Rpb24pIGNvbnN0CiAg
ICAgfQogCiAgICAgaWYgKCFidXR0b25Gb3JBY3Rpb24pCi0gICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICByZXR1cm4geyB9OwogCiAgICAgQ0dSZWN0IHJlY3RJblJvb3RWaWV3Q29vcmRp
bmF0ZXMgPSBbYnV0dG9uRm9yQWN0aW9uIGNvbnZlcnRSZWN0OmJ1dHRvbkZvckFjdGlvbi5ib3Vu
ZHMgdG9WaWV3OnBsYXRmb3JtQ29udGVudFZpZXcoKV07Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+
b2JqZWN0RnJvbVJlY3QoV2ViQ29yZTo6RmxvYXRSZWN0KHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0
ZXMub3JpZ2luLngsIHJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMub3JpZ2luLnksIHJlY3RJblJv
b3RWaWV3Q29vcmRpbmF0ZXMuc2l6ZS53aWR0aCwgcmVjdEluUm9vdFZpZXdDb29yZGluYXRlcy5z
aXplLmhlaWdodCkpOworICAgIHJldHVybiBXZWJDb3JlOjpGbG9hdFJlY3QocmVjdEluUm9vdFZp
ZXdDb29yZGluYXRlcy5vcmlnaW4ueCwgcmVjdEluUm9vdFZpZXdDb29yZGluYXRlcy5vcmlnaW4u
eSwgcmVjdEluUm9vdFZpZXdDb29yZGluYXRlcy5zaXplLndpZHRoLCByZWN0SW5Sb290Vmlld0Nv
b3JkaW5hdGVzLnNpemUuaGVpZ2h0KTsKIH0KIAogSlNPYmplY3RSZWYgVUlTY3JpcHRDb250cm9s
bGVySU9TOjptZW51UmVjdCgpIGNvbnN0CkBAIC0xMDE0LDExICsxMDI1LDYgQEAgYm9vbCBVSVNj
cmlwdENvbnRyb2xsZXJJT1M6OmlzRGlzbWlzc2luZ01lbnUoKSBjb25zdAogICAgIHJldHVybiB3
ZWJWaWV3KCkuZGlzbWlzc2luZ01lbnU7CiB9CiAKLWJvb2wgVUlTY3JpcHRDb250cm9sbGVySU9T
Ojppc1Nob3dpbmdNZW51KCkgY29uc3QKLXsKLSAgICByZXR1cm4gd2ViVmlldygpLnNob3dpbmdN
ZW51OwotfQotCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6c2V0RGlkRW5kU2Nyb2xsaW5n
Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBVSVNjcmlwdENvbnRyb2xsZXI6
OnNldERpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKGNhbGxiYWNrKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1hYy5oIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9tYWMvVUlTY3JpcHRDb250cm9sbGVyTWFjLmgKaW5kZXggMDQ5ZDk3MTVi
ZTg2MzIxM2Q0Mzk2ZTY3NGE3MjFjYjAyMThjNGNmOS4uMjU1MGY3ODY4ZGU2ZjkzZjYxYTA4OTA0
ODkwZTk4YmVlZjU1NTQ1OCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
VUlTY3JpcHRDb250cm9sbGVyTWFjLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
VUlTY3JpcHRDb250cm9sbGVyTWFjLmgKQEAgLTUxLDYgKzUxLDExIEBAIHB1YmxpYzoKICAgICBi
b29sIGlzV2luZG93Q29udGVudFZpZXdGaXJzdFJlc3BvbmRlcigpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIHZvaWQgdG9nZ2xlQ2Fwc0xvY2soSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAgTlNWaWV3
ICpwbGF0Zm9ybUNvbnRlbnRWaWV3KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdm9pZCBjbGVhckFs
bENhbGxiYWNrcygpIG92ZXJyaWRlOworCisgICAgdm9pZCBjaG9vc2VNZW51QWN0aW9uKEpTU3Ry
aW5nUmVmLCBKU1ZhbHVlUmVmKSBvdmVycmlkZTsKKworICAgIHZvaWQgYWN0aXZhdGVBdFBvaW50
KGxvbmcgeCwgbG9uZyB5LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKSBvdmVycmlkZTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMv
VUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tCmluZGV4IDY4ZWY4Nzg5NTJjYTdjNDMzYzliMjkwN2UyM2Rj
NWMxM2VmMjM0MTguLjA4YzY2ODM2YmU4Yzg2YmFkNDFkNDA5YTg5NmU5Mzc0ZWY3M2IzZmYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL1VJU2NyaXB0Q29udHJvbGxlck1h
Yy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9VSVNjcmlwdENvbnRyb2xsZXJN
YWMubW0KQEAgLTI2LDYgKzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiVUlT
Y3JpcHRDb250cm9sbGVyTWFjLmgiCiAKKyNpbXBvcnQgIkV2ZW50U2VuZGVyUHJveHkuaCIKICNp
bXBvcnQgIkV2ZW50U2VyaWFsaXplck1hYy5oIgogI2ltcG9ydCAiUGxhdGZvcm1XZWJWaWV3Lmgi
CiAjaW1wb3J0ICJTaGFyZWRFdmVudFN0cmVhbXNNYWMuaCIKQEAgLTExOCw2ICsxMTksMzYgQEAg
c3RhdGljIHZvaWQgcGxheUJhY2tFdmVudHMoV0tXZWJWaWV3ICp3ZWJWaWV3LCBVSVNjcmlwdENv
bnRleHQgKmNvbnRleHQsIE5TU3RyaW4KICAgICB9XTsKIH0KIAordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXJNYWM6OmNsZWFyQWxsQ2FsbGJhY2tzKCkKK3sKKyAgICBbd2ViVmlldygpIHJlc2V0SW50
ZXJhY3Rpb25DYWxsYmFja3NdOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6Y2hv
b3NlTWVudUFjdGlvbihKU1N0cmluZ1JlZiBqc0FjdGlvbiwgSlNWYWx1ZVJlZiBjYWxsYmFjaykK
K3sKKyAgICB1bnNpZ25lZCBjYWxsYmFja0lEID0gbV9jb250ZXh0LT5wcmVwYXJlRm9yQXN5bmNU
YXNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50KTsKKworICAgIGF1dG8gYWN0
aW9uID0gYWRvcHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBq
c0FjdGlvbikpOworICAgIF9fYmxvY2sgTlNVSW50ZWdlciBtYXRjaEluZGV4ID0gTlNOb3RGb3Vu
ZDsKKyAgICBhdXRvIGFjdGl2ZU1lbnUgPSByZXRhaW5QdHIod2ViVmlldygpLl9hY3RpdmVNZW51
KTsKKyAgICBbW2FjdGl2ZU1lbnUgaXRlbUFycmF5XSBlbnVtZXJhdGVPYmplY3RzVXNpbmdCbG9j
azpeKE5TTWVudUl0ZW0gKml0ZW0sIE5TVUludGVnZXIgaW5kZXgsIEJPT0wgKnN0b3ApIHsKKyAg
ICAgICAgaWYgKFtpdGVtLnRpdGxlIGlzRXF1YWxUb1N0cmluZzooX19icmlkZ2UgTlNTdHJpbmcg
KilhY3Rpb24uZ2V0KCldKQorICAgICAgICAgICAgbWF0Y2hJbmRleCA9IGluZGV4OworICAgIH1d
OworCisgICAgaWYgKG1hdGNoSW5kZXggIT0gTlNOb3RGb3VuZCkgeworICAgICAgICBbYWN0aXZl
TWVudSBwZXJmb3JtQWN0aW9uRm9ySXRlbUF0SW5kZXg6bWF0Y2hJbmRleF07CisgICAgICAgIFth
Y3RpdmVNZW51IHJlbW92ZUFsbEl0ZW1zXTsKKyAgICAgICAgW2FjdGl2ZU1lbnUgdXBkYXRlXTsK
KyAgICAgICAgW2FjdGl2ZU1lbnUgY2FuY2VsVHJhY2tpbmddOworICAgIH0KKworICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIGlmIChtX2Nv
bnRleHQpCisgICAgICAgICAgICBtX2NvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNr
SUQpOworICAgIH0pOworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlck1hYzo6YmVnaW5CYWNr
U3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBwbGF5QmFja0V2ZW50cyh3ZWJWaWV3
KCksIG1fY29udGV4dCwgYmVnaW5Td2lwZUJhY2tFdmVudFN0cmVhbSgpLCBjYWxsYmFjayk7CkBA
IC0xNzQsNCArMjA1LDI0IEBAIE5TVmlldyAqVUlTY3JpcHRDb250cm9sbGVyTWFjOjpwbGF0Zm9y
bUNvbnRlbnRWaWV3KCkgY29uc3QKICAgICByZXR1cm4gd2ViVmlldygpOwogfQogCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlck1hYzo6YWN0aXZhdGVBdFBvaW50KGxvbmcgeCwgbG9uZyB5LCBKU1Zh
bHVlUmVmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIGV2ZW50U2VuZGVyID0gVGVzdENvbnRyb2xs
ZXI6OnNpbmdsZXRvbigpLmV2ZW50U2VuZGVyUHJveHkoKTsKKyAgICBpZiAoIWV2ZW50U2VuZGVy
KSB7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgdW5zaWduZWQgY2FsbGJhY2tJRCA9IG1fY29udGV4dC0+cHJlcGFyZUZvckFzeW5j
VGFzayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCk7CisKKyAgICBldmVudFNl
bmRlci0+bW91c2VNb3ZlVG8oeCwgeSk7CisgICAgZXZlbnRTZW5kZXItPm1vdXNlRG93bigwLCAw
KTsKKyAgICBldmVudFNlbmRlci0+bW91c2VVcCgwLCAwKTsKKworICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgIGlmIChtX2NvbnRleHQpCisg
ICAgICAgICAgICBtX2NvbnRleHQtPmFzeW5jVGFza0NvbXBsZXRlKGNhbGxiYWNrSUQpOworICAg
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiNGEyOTU1MGRiOTI5ZDZmY2Zj
MWU4YTc3MTlmYTI0ZTY0MjQxNjAzLi4xZTBmYWMwNzgwZWMzZmE0ZDk4NTJmMzZlOTkzYzYwYWI2
ZjU5MTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTktMTAtMDkgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgU3VwcG9ydCBwcm9ncmFtbWF0aWMg
cGFzdGUgcmVxdWVzdHMgb24gbWFjT1MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwMjc3MworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDg5NTcxNjY+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0
b3JzIGV4aXN0aW5nIGxheW91dCB0ZXN0cyBmb3IgcHJvZ3JhbW1hdGljIHBhc3RlIHJlcXVlc3Rz
IG9uIGlPUywgc3VjaCB0aGF0IHRoZXkgbm93IHJ1biBpbiBib3RoIGlPUyBhbmQKKyAgICAgICAg
bWFjT1MuIFNlZSBiZWxvdyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0
ZS1jb25maXJtYXRpb24tZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uZmlybWF0aW9uLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1jb25maXJt
YXRpb24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9p
b3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2Rv
bS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25m
aXJtYXRpb25zLmh0bWwuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9k
b20tcGFzdGUtcmVqZWN0aW9uLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtcmVqZWN0aW9uLmh0bWw6IFJlbmFtZWQg
ZnJvbSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rp
b24uaHRtbC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0
ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0
dXJlLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3Rl
L2RvbS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2Vz
dHVyZS5odG1sLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBh
c3RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1zYW1lLW9y
aWdpbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lv
cy9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9h
cmQvZG9tLXBhc3RlL3Jlc291cmNlcy9kb20tcGFzdGUtaGVscGVyLmpzOiBBZGRlZC4KKworICAg
ICAgICBSZS13b3JkIHNvbWUgb2YgdGhlc2UgbGF5b3V0IHRlc3RzJyBkZXNjcmlwdGlvbnMgdG8g
cmVmZXJlbmNlICJjbGlja3Mgb3IgdGFwcyIsIGluc3RlYWQgb2YganVzdCAidGFwcyIsIGFuZCBh
bHNvCisgICAgICAgIHJlcGxhY2UgbWVudGlvbnMgb2YgImNhbGxvdXQgYmFycyIgd2l0aCBwbGF0
Zm9ybS1hZ25vc3RpYyAibWVudXMiLgorCisgICAgICAgIChyZXR1cm4ubmV3LlByb21pc2UuKToK
KyAgICAgICAgKGFzeW5jLl93YWl0Rm9yT3JUcmlnZ2VyUGFzdGVNZW51KToKKyAgICAgICAgKGFz
eW5jLnRyaWdnZXJQYXN0ZU1lbnVBZnRlckFjdGl2YXRpbmdMb2NhdGlvbik6CisgICAgICAgIChh
c3luYy53YWl0Rm9yUGFzdGVNZW51KToKKworICAgICAgICBSZWZhY3RvciB0aGVzZSB0ZXN0aW5n
IGhlbHBlcnMgdG8gc3VwcG9ydCBib3RoIGlPUyBhbmQgbWFjT1M6CisKKyAgICAgICAgKDEpIFJl
cGxhY2UgY29kZSB0aGF0IGZpbmRzIGNhbGxvdXQgYmFyIG1lbnUgaXRlbXMgYW5kIHN5bnRoZXNp
emVzIHRhcHMgb24gaU9TLCB3aXRoIGNvZGUgdGhhdCBpbnN0ZWFkIGNob29zZXMgYQorICAgICAg
ICBtZW51IGl0ZW0gd2l0aCB0aGUgZ2l2ZW4gdGl0bGUgKGluIHRoaXMgY2FzZSwgIlBhc3RlIiku
IFRoaXMgaXMgc3VwcG9ydGVkIG9uIGJvdGggbWFjT1MgYW5kIGlPUywgd2hlcmUgd2UgaW52b2tl
CisgICAgICAgIHRoZSBOU01lbnVJdGVtJ3MgYWN0aW9uIGFuZCBkaXNtaXNzIHRoZSBtZW51IGl0
ZW0sIGFuZCBmaW5kIGFuZCB0YXAgdGhlIGNhbGxvdXQgYmFyIG1lbnUgaXRlbSwgcmVzcGVjdGl2
ZWx5LgorCisgICAgICAgICgyKSBJbXBsZW1lbnQgVUlTY3JpcHRDb250cm9sbGVyOjphY3RpdmF0
ZUF0UG9pbnQsIHdoaWNoIGlzIHVzZWQgYXMgYSBjcm9zcy1wbGF0Zm9ybSB3YXkgb2YgYWN0aXZh
dGluZyBhbgorICAgICAgICBlbGVtZW50IGF0IHRoZSBnaXZlbiBwb2ludC4gT24gaU9TLCB0aGlz
IHRhcHMgdGhlIGdpdmVuIGxvY2F0aW9uLCBhbmQgb24gbWFjT1MsIHRoaXMgbW92ZXMgdGhlIG1v
dXNlIHRvIHRoYXQKKyAgICAgICAgbG9jYXRpb24gYW5kIHRoZW4gc2ltdWxhdGVzIGEgY2xpY2sg
KG1vdXNlIGRvd24gYW5kIG1vdXNlIHVwKS4gSW4gYSBzdWJzZXF1ZW50IHBhdGNoLCB3ZSBzaG91
bGQgYWRkaXRpb25hbGx5IHVzZQorICAgICAgICB0aGlzIGluIHRoZSBpbXBsZW1lbnRhdGlvbiBv
ZiBVSUhlbHBlci5hY3RpdmF0ZUF0KCkuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQv
aW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLWV4cGVjdGVkLnR4dDogUmVt
b3ZlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rp
b24tZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9p
b3MvcmVzb3VyY2VzL2RvbS1wYXN0ZS1oZWxwZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zOgorCisgICAgICAgIFNraXAgZWRp
dGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZSBldmVyeXdoZXJlIGZvciBub3csIGV4Y2VwdCBmb3Ig
bWFjT1MgYW5kIGlPUyBXZWJLaXQyLgorCiAyMDE5LTEwLTA4ICB5b3Vlbm4gZmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbVRyYWNrIHNob3VsZCBiZSBhIFBs
YXRmb3JtTWVkaWFTZXNzaW9uQ2xpZW50IGluc3RlYWQgb2YgTWVkaWFTdHJlYW0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDAxZmM5ZTIxMjY5ZTZhYmM1YjVmNTMyMTcxMDdlM2Q4NDJlYTAzZDguLmQ0
MzExYjJiMDliMjJjZDlkMzBiZDQ4NzFmNmYzNzQ0NGNlZmM0NzYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNTYsNyArNTYsNyBAQCBodHRwL3Rlc3RzL3NzbC9jdXJsIFsgU2tpcCBdCiBzeXN0ZW0t
cHJldmlldyBbIFNraXAgXQogZWRpdGluZy9pbWFnZXMgWyBTa2lwIF0KIHBvaW50ZXJldmVudHMv
aW9zIFsgU2tpcCBdCi1lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zIFsgU2tpcCBdCitlZGl0aW5nL3Bh
c3RlYm9hcmQvZG9tLXBhc3RlIFsgU2tpcCBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvbWFjIFsgU2tp
cCBdCiBmYXN0L21lZGlhL2lvcyBbIFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1jb25maXJtYXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFz
dGUtY29uZmlybWF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hOTdiZjdlOTk3NWNkYjVj
NmZkYzRjYjQ4MWYyN2U0Mjk5MmRhMTk3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtY29uZmlybWF0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE4IEBACitDbGljayBoZXJlIHRvIGNvcHkKK0NsaWNrIGhlcmUg
dG8gY29weQorCitWZXJpZmllcyB0aGF0IGEgbWVudSBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHBy
b2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0IHNlbGVjdGluZyBQYXN0ZSBp
biB0aGUgbWVudSBhbGxvd3MgdGhlIHBhc3RlIHRvIGhhcHBlbi4gVG8gbWFudWFsbHkgdGVzdCwg
Y2xpY2sgb3IgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIGNsaWNrIG9yIHRhcCB0aGUgZWRp
dGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gc2VsZWN0ICdQYXN0ZScgaW4gdGhlIHJlc3VsdGlu
ZyBtZW51LiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBzaG91bGQgYmUgcGFzdGVkIHR3
aWNlIGluIHRoZSBlZGl0YWJsZSBhcmVhLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
K1BBU1MgZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCdQYXN0ZScpIGlzIHRydWUKK1BB
U1MgZG9jdW1lbnQucXVlcnlDb21tYW5kRW5hYmxlZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGV2
ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIGlzICJDbGljayBoZXJlIHRv
IGNvcHkiCitQQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIGlzIHRydWUKK1BBU1Mg
ZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykgaXMgIkNsaWNrIGhlcmUg
dG8gY29weSIKK1BBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFT
UyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNsaWNrIGhlcmUgdG8gY29weUNsaWNrIGhlcmUgdG8g
Y29weSIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2Rv
bS1wYXN0ZS1jb25maXJtYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9kb20tcGFzdGUvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiNTEw
OWNkYTI2YjJkZTVlZTE4ZjNlMDZkMGM4N2Q1NmQ3YzkxZjcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1jb25maXJt
YXRpb24uaHRtbApAQCAtMCwwICsxLDY5IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBkb21QYXN0ZUFsbG93ZWQ9ZmFsc2UgdXNlRmxleGlibGVWaWV3cG9ydD10
cnVlIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHM9dHJ1ZSBdIC0tPgorPGh0bWw+
Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0
aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi9yZXNvdXJjZXMvZG9tLXBhc3Rl
LWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pz
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwOworfQor
CisjY29weSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJvcmRl
cjogMXB4IGRhc2hlZCBibGFjazsKK30KKworI2VkaXRvciB7CisgICAgd2lkdGg6IDEwMCU7Cisg
ICAgaGVpZ2h0OiAxMDBweDsKKyAgICBib3JkZXI6IDFweCBkYXNoZWQgc2lsdmVyOworICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9
ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGlmcmFtZSBpZD0iY29weSIgc3JjPSJk
YXRhOnRleHQvaHRtbCw8ZGl2IGlkPSdjb3B5JyBzdHlsZT0nZm9udC1zaXplOiA0MHB4OyB0ZXh0
LWFsaWduOiBjZW50ZXI7Jz5DbGljayBoZXJlIHRvIGNvcHk8L2Rpdj4KKyAgICA8c2NyaXB0Pgor
ICAgIGNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7CisgICAgICAgIGdldFNl
bGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvcHkpOworICAgICAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgnQ29weScpOworICAgICAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMo
KTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4iPjwvaWZyYW1lPgorPGRpdiBpZD0iZGVzY3JpcHRp
b24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgoranNUZXN0SXNB
c3luYyA9IHRydWU7CisKK2NvbnN0IGVkaXRvciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJl
ZGl0b3IiKTsKKworZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRoYXQgYSBtZW51IGlzIHNob3duIHdo
ZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSwgYW5kIHRoYXQgc2Vs
ZWN0aW5nIFBhc3RlIGluIHRoZSBtZW51IGFsbG93cyB0aGUgcGFzdGUgdG8gaGFwcGVuLiBUbyBt
YW51YWxseSB0ZXN0LCBjbGljayBvciB0YXAgdGhlIHRleHQgb24gdGhlIGJvdHRvbSwgY2xpY2sg
b3IgdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFib3ZlLCBhbmQgdGhlbiBzZWxlY3QgJ1Bhc3RlJyBp
biB0aGUgcmVzdWx0aW5nIG1lbnUuIFRoZSB0ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3Vs
ZCBiZSBwYXN0ZWQgPHN0cm9uZz48ZW0+dHdpY2U8L2VtPjwvc3Ryb25nPiBpbiB0aGUgZWRpdGFi
bGUgYXJlYS4iKTsKKworZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgZXZlbnQgPT4g
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQv
cGxhaW4nKSIsICJDbGljayBoZXJlIHRvIGNvcHkiKSk7CitlZGl0b3IuYWRkRXZlbnRMaXN0ZW5l
cigiY2xpY2siLCBldmVudCA9PiB7CisgICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZWRp
dG9yKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCdQYXN0
ZScpIiwgInRydWUiKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQucXVlcnlDb21tYW5kRW5hYmxl
ZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5k
KCdQYXN0ZScpIiwgInRydWUiKTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnSW5zZXJ0UGFy
YWdyYXBoJyk7CisgICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwg
InRydWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImVkaXRvci50ZXh0Q29udGVudCIs
ICJDbGljayBoZXJlIHRvIGNvcHlDbGljayBoZXJlIHRvIGNvcHkiKTsKKyAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOworICAgIGVkaXRvci5ibHVyKCk7Cit9KTsKKworYWRkRXZlbnRMaXN0ZW5l
cigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICByZXR1cm47CisKKyAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUF0KDE2MCwgMTI1KTsK
KyAgICBhd2FpdCB0cmlnZ2VyUGFzdGVNZW51QWZ0ZXJBY3RpdmF0aW5nTG9jYXRpb24oMTYwLCA1
MCk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9k
b20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1j
b25maXJtYXRpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTM0NWYwNzU1MzYyMTVhNzBh
MDZmNTFiMmJhMDI0NDU1N2I0NTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29uZmlybWF0
aW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorCitWZXJpZmllcyB0aGF0IG5vIG1l
bnUgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3Rl
IG9uIGEgdGltZXIgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbi4gVG8gdGVzdCBtYW51YWxseSwgY2xp
Y2sgb3IgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20gdG8gY29weSwgYW5kIHRoZW4gY2xpY2sg
b3IgdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFib3ZlIHRvIHRyaWdnZXIgdHdvIHByb2dyYW1tYXRp
YyBwYXN0ZXMgd2l0aCB0aGUgbWVudS4gQ2hlY2sgdGhhdCBwZXJtaXNzaW9ucyBmb3IgdGhlIGZp
cnN0IHByb2dyYW1tYXRpYyBwYXN0ZSBkbyBub3QgYWZmZWN0IHRoZSBzZWNvbmQgcHJvZ3JhbW1h
dGljIHBhc3RlLCBzaW5jZSBpdCBpcyBwZXJmb3JtZWQgb24gYSB6ZXJvLWRlbGF5IHRpbWVyLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNsaWNrIGhlcmUg
dG8gY29weSIKK1BBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFT
UyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1jb25zZWN1dGl2
ZS1jb25maXJtYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9t
LXBhc3RlL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMWUxMWFhZWQzMWVjMzcxYzJmOTQzZDE1NDJhMjNhYWE3MTkyNGQ0ZgotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3Rl
LWNvbnNlY3V0aXZlLWNvbmZpcm1hdGlvbnMuaHRtbApAQCAtMCwwICsxLDkyIEBACis8IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBkb21QYXN0ZUFsbG93ZWQ9ZmFsc2Ug
dXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91
dHM9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lk
dGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
Li9yZXNvdXJjZXMvZG9tLXBhc3RlLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9keSB7
CisgICAgbWFyZ2luOiAwOworfQorCisjY29weSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVp
Z2h0OiA1MHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKK30KKworI2VkaXRvciB7
CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBib3JkZXI6IDFweCBk
YXNoZWQgc2lsdmVyOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKzwvc3R5bGU+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGlm
cmFtZSBpZD0iY29weSIgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPSdjb3B5JyBzdHlsZT0n
Zm9udC1zaXplOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Jz5DbGljayBoZXJlIHRvIGNvcHk8
L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAo
KSA9PiB7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvcHkpOwor
ICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAgICAgICBnZXRTZWxlY3Rp
b24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4iPjwvaWZyYW1l
PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IGVkaXRvciA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKKworZGVzY3JpcHRpb24oIlZlcmlmaWVzIHRo
YXQgbm8gbWVudSBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dl
cnMgcGFzdGUgb24gYSB0aW1lciBhZnRlciB1c2VyIGludGVyYWN0aW9uLiBUbyB0ZXN0IG1hbnVh
bGx5LCBjbGljayBvciB0YXAgdGhlIHRleHQgb24gdGhlIGJvdHRvbSB0byBjb3B5LCBhbmQgdGhl
biBjbGljayBvciB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUgdG8gdHJpZ2dlciB0d28gcHJv
Z3JhbW1hdGljIHBhc3RlcyB3aXRoIHRoZSBtZW51LiBDaGVjayB0aGF0IHBlcm1pc3Npb25zIGZv
ciB0aGUgZmlyc3QgcHJvZ3JhbW1hdGljIHBhc3RlIGRvIG5vdCBhZmZlY3QgdGhlIHNlY29uZCBw
cm9ncmFtbWF0aWMgcGFzdGUsIHNpbmNlIGl0IGlzIHBlcmZvcm1lZCBvbiBhIHplcm8tZGVsYXkg
dGltZXIuIik7CisKK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JBbmRUYXBQYXN0ZU1lbnVUd2ljZSgp
IHsKKyAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIHRlc3RSdW5u
ZXIucnVuVUlTY3JpcHQoYAorICAgICAgICAgICAgKCgpID0+IHsKKyAgICAgICAgICAgICAgICBk
b25lQ291bnQgPSAwOworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGluY3JlbWVudFByb2dyZXNz
KCkgeworICAgICAgICAgICAgICAgICAgICBpZiAoKytkb25lQ291bnQgPT09IDUpCisgICAgICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRIaWRlTWVudUNh
bGxiYWNrID0gaW5jcmVtZW50UHJvZ3Jlc3M7CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVy
LmRpZFNob3dNZW51Q2FsbGJhY2sgPSB0YXBQYXN0ZU1lbnVBY3Rpb247CisKKyAgICAgICAgICAg
ICAgICBmdW5jdGlvbiB0YXBQYXN0ZU1lbnVBY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5jaG9vc2VNZW51QWN0aW9uKCJQYXN0ZSIsIGluY3JlbWVudFByb2dyZXNz
KTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuYWN0
aXZhdGVBdFBvaW50KDE2MCwgNTAsIGluY3JlbWVudFByb2dyZXNzKTsKKyAgICAgICAgICAgIH0p
KClgLCByZXNvbHZlKTsKKyAgICB9KTsKK30KKworZnVuY3Rpb24gcGFzdGUoKSB7CisgICAgZ2V0
U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZWRpdG9yKTsKKyAgICBzaG91bGRCZSgiZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29weSIpOworICAgIGVkaXRv
ci50ZXh0Q29udGVudCA9ICIiOworICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcyhl
ZGl0b3IpOworfQorCitlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBldmVudCA9PiB7
CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICBwYXN0ZSgpOworICAgIHNldFRpbWVv
dXQocGFzdGUsIDApOworfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9
PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93LmludGVybmFscykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7
CisgICAgYXdhaXQgd2FpdEZvckFuZFRhcFBhc3RlTWVudVR3aWNlKCk7CisgICAgZmluaXNoSlNU
ZXN0KCk7Cit9KTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtcmVqZWN0aW9u
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUv
ZG9tLXBhc3RlLXJlamVjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIyZjdkOWYxMDgz
OGFkOGEwMmUyOTliN2FjZWI4ZjBhMmQ0MGQ0MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlamVjdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorCitWZXJpZmllcyB0aGF0IGEgbWVudSBpcyBzaG93
biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0
IGRpc21pc3NpbmcgdGhlIG1lbnUgcHJldmVudHMgdGhlIHBhc3RlIGZyb20gaGFwcGVuaW5nLiBU
byBtYW51YWxseSB0ZXN0LCBjbGljayBvciB0YXAgdGhlIHRleHQgb24gdGhlIGJvdHRvbSwgY2xp
Y2sgb3IgdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFib3ZlLCBhbmQgdGhlbiBkaXNtaXNzIHRoZSBy
ZXN1bHRpbmcgbWVudSBieSBpbnRlcmFjdGluZyBlbHNld2hlcmUuIFRoZSB0ZXh0ICdDbGljayBo
ZXJlIHRvIGNvcHknIHNob3VsZCBub3QgYmUgcGFzdGVkLCBhbmQgdGhlIG1lbnUgc2hvdWxkIGRp
c2FwcGVhci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIGRvY3VtZW50LnF1
ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LnF1ZXJ5
Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBkb2N1bWVudC5leGVjQ29tbWFu
ZCgnUGFzdGUnKSBpcyBmYWxzZQorUEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSBp
cyBmYWxzZQorUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIiIKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1yZWplY3Rpb24uaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlamVj
dGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwYThlYjk5MWM0YTUxOWU5YmJmZTNlZTBmMTFkNmM4ZmFk
MTBkNDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
ZG9tLXBhc3RlL2RvbS1wYXN0ZS1yZWplY3Rpb24uaHRtbApAQCAtMCwwICsxLDY4IEBACis8IURP
Q1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBkb21QYXN0ZUFsbG93ZWQ9ZmFs
c2UgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGlt
ZW91dHM9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0i
d2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi9yZXNvdXJjZXMvZG9tLXBhc3RlLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHN0eWxlPgorYm9k
eSB7CisgICAgbWFyZ2luOiAwOworfQorCisjY29weSB7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
aGVpZ2h0OiA1MHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKK30KKworI2VkaXRv
ciB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBib3JkZXI6IDFw
eCBkYXNoZWQgc2lsdmVyOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KKzwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2Pgor
PGlmcmFtZSBpZD0iY29weSIgc3JjPSJkYXRhOnRleHQvaHRtbCw8ZGl2IGlkPSdjb3B5JyBzdHls
ZT0nZm9udC1zaXplOiA0MHB4OyB0ZXh0LWFsaWduOiBjZW50ZXI7Jz5DbGljayBoZXJlIHRvIGNv
cHk8L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2sn
LCAoKSA9PiB7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnNlbGVjdEFsbENoaWxkcmVuKGNvcHkp
OworICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAgICAgICBnZXRTZWxl
Y3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4iPjwvaWZy
YW1lPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgoranNUZXN0SXNBc3luYyA9IHRydWU7CisKK2NvbnN0IGVkaXRvciA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJlZGl0b3IiKTsKKworZGVzY3JpcHRpb24oIlZlcmlmaWVz
IHRoYXQgYSBtZW51IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0cmln
Z2VycyBwYXN0ZSwgYW5kIHRoYXQgZGlzbWlzc2luZyB0aGUgbWVudSBwcmV2ZW50cyB0aGUgcGFz
dGUgZnJvbSBoYXBwZW5pbmcuIFRvIG1hbnVhbGx5IHRlc3QsIGNsaWNrIG9yIHRhcCB0aGUgdGV4
dCBvbiB0aGUgYm90dG9tLCBjbGljayBvciB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUsIGFu
ZCB0aGVuIGRpc21pc3MgdGhlIHJlc3VsdGluZyBtZW51IGJ5IGludGVyYWN0aW5nIGVsc2V3aGVy
ZS4gVGhlIHRleHQgJ0NsaWNrIGhlcmUgdG8gY29weScgc2hvdWxkIDxzdHJvbmc+bm90PC9zdHJv
bmc+IGJlIHBhc3RlZCwgYW5kIHRoZSBtZW51IHNob3VsZCBkaXNhcHBlYXIuIik7CisKK2VkaXRv
ci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sgaGVy
ZSB0byBjb3B5IikpOworZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4g
eworICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7CisgICAgc2hvdWxkQmUo
ImRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAg
c2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykiLCAidHJ1ZSIp
OworICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJmYWxzZSIp
OworICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJmYWxzZSIp
OworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIiIpOwor
ICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgZWRpdG9yLmJsdXIoKTsKK30pOworCith
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgIGlmICghd2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRl
QXQoMTYwLCAxMjUpOworICAgIGF3YWl0IHRyaWdnZXJQYXN0ZU1lbnVBZnRlckFjdGl2YXRpbmdM
b2NhdGlvbigxNjAsIDUwLCBmYWxzZSk7CisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBh
c3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg1M2Ey
M2JjNzIyM2RlMzg3MGI2MTE4NzdiNTcxYWMxMTI1ZjRjMAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlcXVpcmVz
LXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMyBAQAorQ2xpY2sgaGVyZSB0
byBjb3B5CisKK1ZlcmlmaWVzIHRoYXQgbm8gbWVudSBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHBy
b2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUgb3V0c2lkZSB0aGUgc2NvcGUgb2YgdXNlciBp
bnRlcmFjdGlvbi4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIuCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUn
KSBpcyB0cnVlCitQQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIGlzIGZhbHNlCitQ
QVNTIGVkaXRvci50ZXh0Q29udGVudCBpcyAiQ2xpY2sgaGVyZSB0byBjb3B5IgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlcXVpcmVz
LXVzZXItZ2VzdHVyZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1w
YXN0ZS9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTg2
NWRjNjNiYzhlOWMyNGNkZmYwYzVmZThmNWU3OTkwZjNlNmUyNwotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXJlcXVp
cmVzLXVzZXItZ2VzdHVyZS5odG1sCkBAIC0wLDAgKzEsNzEgQEAKKzwhRE9DVFlQRSBodG1sPiA8
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGRvbVBhc3RlQWxsb3dlZD1mYWxzZSB1c2VGbGV4aWJs
ZVZpZXdwb3J0PXRydWUgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cz10cnVlIF0g
LS0+Cis8aHRtbD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Ut
d2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuL3Jlc291cmNl
cy9kb20tcGFzdGUtaGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVz
b3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c3R5bGU+Citib2R5IHsKKyAgICBtYXJn
aW46IDA7Cit9CisKKyNjb3B5IHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBoZWlnaHQ6IDUwcHg7
CisgICAgYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOworfQorCisjZWRpdG9yIHsKKyAgICB3aWR0
aDogMTAwJTsKKyAgICBoZWlnaHQ6IDEwMHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2
ZXI7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Cis8aWZyYW1lIGlkPSJj
b3B5IiBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgaWQ9J2NvcHknIHN0eWxlPSdmb250LXNpemU6
IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsnPkNsaWNrIGhlcmUgdG8gY29weTwvZGl2PgorICAg
IDxzY3JpcHQ+CisgICAgY29weS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKKyAg
ICAgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7CisgICAgICAgIGRv
Y3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7CisgICAgICAgIGdldFNlbGVjdGlvbigpLnJlbW92
ZUFsbFJhbmdlcygpOworICAgIH0pOworICAgIDwvc2NyaXB0PiI+PC9pZnJhbWU+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+
Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworY29uc3QgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImVkaXRvciIpOworCitkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBubyBtZW51
IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSBv
dXRzaWRlIHRoZSBzY29wZSBvZiB1c2VyIGludGVyYWN0aW9uLiBUaGlzIHRlc3QgcmVxdWlyZXMg
V2ViS2l0VGVzdFJ1bm5lci4iKTsKKworZnVuY3Rpb24gY2hlY2tEb25lKCkgeworICAgIGlmICgh
d2luZG93LmRvbmVDb3VudCkKKyAgICAgICAgZG9uZUNvdW50ID0gMDsKKworICAgIGlmICgrK2Rv
bmVDb3VudCA9PSAyKQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworZWRpdG9yLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgIGVkaXRvci5mb2N1cygpOworICAg
IHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAg
cmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHsKKyAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50
LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwgImZhbHNlIikKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiQ2xpY2sgaGVyZSB0byBjb3B5Iik7CisgICAg
ICAgIGNoZWNrRG9uZSgpOworICAgIH0pOworfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBhc3luYyAoKSA9PiB7CisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7
CisgICAgYXdhaXQgdHJpZ2dlclBhc3RlTWVudUFmdGVyQWN0aXZhdGluZ0xvY2F0aW9uKDE2MCwg
NTApOworICAgIGNoZWNrRG9uZSgpOworfSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kb20tcGFzdGUvZG9t
LXBhc3RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9kb20tcGFzdGUvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wMThmNjY5N2UzN2Y1ZTZhNmZmYzk1NTIyMWU0M2FiNjU2YWJhMDQ1Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20t
cGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0NsaWNrIGhl
cmUgdG8gY29weQorQ2xpY2sgaGVyZSB0byBjb3B5CitDbGljayBoZXJlIHRvIGNvcHkKK1Zlcmlm
aWVzIHRoYXQgcHJvZ3JhbW1hdGljIHBhc3RlIGlzIGFsbG93ZWQgd2hlbiBjb3BpZWQgZGF0YSBp
cyBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVG8gbWFudWFsbHkgdGVzdCwgY2xpY2sgb3IgdGFwIHRo
ZSB0ZXh0IG9uIHRoZSBib3R0b20gdG8gcHJvZ3JhbW1hdGljYWxseSBjb3B5LCBhbmQgdGhlbiBj
bGljayBvciB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYW5kIGNoZWNrIHRoYXQgdGhlIHRleHQgaXMg
cGFzdGVkIHR3aWNlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgZG9jdW1l
bnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCdQYXN0ZScpIGlzIHRydWUKK1BBU1MgZG9jdW1lbnQu
cXVlcnlDb21tYW5kRW5hYmxlZCgnUGFzdGUnKSBpcyB0cnVlCitQQVNTIGV2ZW50LmNsaXBib2Fy
ZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIGlzICJDbGljayBoZXJlIHRvIGNvcHkiCitQQVNT
IGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIGlzIHRydWUKK1BBU1MgZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKK1BB
U1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgdHJ1ZQorUEFTUyBlZGl0b3IudGV4
dENvbnRlbnQgaXMgIkNsaWNrIGhlcmUgdG8gY29weUNsaWNrIGhlcmUgdG8gY29weSIKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlL2RvbS1wYXN0ZS1zYW1l
LW9yaWdpbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9k
b20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44OTkxMzhjOTg3MzM0NTE3NDdk
OGY2ZTdlY2FmYWQyNjViMjcwZTEyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbApAQCAt
MCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBk
b21QYXN0ZUFsbG93ZWQ9ZmFsc2UgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIGlnbm9yZVN5bmNo
cm9ub3VzTWVzc2FnaW5nVGltZW91dHM9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEiPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHN0eWxlPgorYm9keSB7CisgICAgbWFyZ2luOiAwOworfQorCisjY29weSwgI2VkaXRv
ciB7CisgICAgd2lkdGg6IDEwMCU7CisgICAgdGV4dC1hbGlnbjogY2VudGVyOworfQorCisjY29w
eSB7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJvcmRlcjogMXB4IGRhc2hlZCBibGFjazsKKyAg
ICBmb250LXNpemU6IDQwcHg7Cit9CisKKyNlZGl0b3IgeworICAgIGhlaWdodDogMTAwcHg7Cisg
ICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZlcjsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxkaXYgaWQ9ImVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2PgorPGRpdiBpZD0nY29w
eScgc3R5bGU9Jyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+Cis8ZGl2IGlkPSJkZXNjcmlwdGlv
biI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworY29uc3QgY29weSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb3B5
Iik7Citjb25zdCBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7CisK
K2Rlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IHByb2dyYW1tYXRpYyBwYXN0ZSBpcyBhbGxvd2Vk
IHdoZW4gY29waWVkIGRhdGEgaXMgZnJvbSB0aGUgc2FtZSBvcmlnaW4uIFRvIG1hbnVhbGx5IHRl
c3QsIGNsaWNrIG9yIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tIHRvIHByb2dyYW1tYXRpY2Fs
bHkgY29weSwgYW5kIHRoZW4gY2xpY2sgb3IgdGFwIHRoZSBlZGl0YWJsZSBhcmVhIGFuZCBjaGVj
ayB0aGF0IHRoZSB0ZXh0IGlzIHBhc3RlZCA8ZW0+dHdpY2U8L2VtPi4iKTsKKworY29weS5hZGRF
dmVudExpc3RlbmVyKCdjbGljaycsICgpID0+IHsKKyAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RB
bGxDaGlsZHJlbihjb3B5KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgnQ29weScpOworICAg
IGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOworfSk7CisKK2VkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQu
Y2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5
IikpOworZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQgPT4geworICAgIGdl
dFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7CisgICAgc2hvdWxkQmUoImRvY3VtZW50
LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmUo
ImRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bhc3RlJykiLCAidHJ1ZSIpOworICAgIHNo
b3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFBhcmFncmFwaCcpOworICAgIHNob3VsZEJlKCJkb2N1
bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiQ2xpY2sgaGVyZSB0byBjb3B5Q2xpY2sgaGVy
ZSB0byBjb3B5Iik7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICBlZGl0b3IuYmx1
cigpOworICAgIGZpbmlzaEpTVGVzdCgpOworfSk7CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBhc3luYyAoKSA9PiB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7CisgICAgYXdh
aXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDUwKTsKK30pOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvZG9t
LXBhc3RlL3Jlc291cmNlcy9kb20tcGFzdGUtaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9yZXNvdXJjZXMvZG9tLXBhc3RlLWhlbHBlci5qcwpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jODQzYzYxYjQ1OWQwOTI2YTEwYTJjOTA2Yzk4NzRiZGZjMWY0OGFkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZS9yZXNv
dXJjZXMvZG9tLXBhc3RlLWhlbHBlci5qcwpAQCAtMCwwICsxLDQwIEBACisKK2FzeW5jIGZ1bmN0
aW9uIF93YWl0Rm9yT3JUcmlnZ2VyUGFzdGVNZW51KHgsIHksIHByb2NlZWRXaXRoUGFzdGUsIHNo
b3VsZEFjdGl2YXRlKSB7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAg
ICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGAKKyAgICAgICAgICAgICgoKSA9PiB7CisgICAg
ICAgICAgICAgICAgZG9uZUNvdW50ID0gMDsKKyAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVj
a0RvbmUoKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICgrK2RvbmVDb3VudCA9PT0gKCR7c2hv
dWxkQWN0aXZhdGV9ID8gMyA6IDIpKQorICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLnVpU2NyaXB0Q29tcGxldGUoKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIuZGlkSGlkZU1lbnVDYWxsYmFjayA9IGNoZWNrRG9uZTsKKworICAg
ICAgICAgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVET01QYXN0ZVJlcXVlc3QoKSB7CisgICAgICAg
ICAgICAgICAgICAgIGlmICgke3Byb2NlZWRXaXRoUGFzdGV9KQorICAgICAgICAgICAgICAgICAg
ICAgICAgdWlDb250cm9sbGVyLmNob29zZU1lbnVBY3Rpb24oIlBhc3RlIiwgY2hlY2tEb25lKTsK
KyAgICAgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgICAgICB1aUNv
bnRyb2xsZXIuZGlzbWlzc01lbnUoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrRG9u
ZSgpOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICAgICAgaWYgKHVpQ29udHJvbGxlci5pc1Nob3dpbmdNZW51KQorICAgICAgICAgICAgICAg
ICAgICByZXNvbHZlRE9NUGFzdGVSZXF1ZXN0KCk7CisgICAgICAgICAgICAgICAgZWxzZQorICAg
ICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkU2hvd01lbnVDYWxsYmFjayA9IHJlc29s
dmVET01QYXN0ZVJlcXVlc3Q7CisKKyAgICAgICAgICAgICAgICBpZiAoJHtzaG91bGRBY3RpdmF0
ZX0pCisgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5hY3RpdmF0ZUF0UG9pbnQoJHt4
fSwgJHt5fSwgY2hlY2tEb25lKTsKKyAgICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKKyAgICB9
KTsKK30KKworYXN5bmMgZnVuY3Rpb24gdHJpZ2dlclBhc3RlTWVudUFmdGVyQWN0aXZhdGluZ0xv
Y2F0aW9uKHgsIHksIHByb2NlZWRXaXRoUGFzdGUgPSB0cnVlKSB7CisgICAgcmV0dXJuIF93YWl0
Rm9yT3JUcmlnZ2VyUGFzdGVNZW51KHgsIHksIHByb2NlZWRXaXRoUGFzdGUsIHRydWUpOworfQor
Cithc3luYyBmdW5jdGlvbiB3YWl0Rm9yUGFzdGVNZW51KHByb2NlZWRXaXRoUGFzdGUgPSB0cnVl
KSB7CisgICAgcmV0dXJuIF93YWl0Rm9yT3JUcmlnZ2VyUGFzdGVNZW51KG51bGwsIG51bGwsIHBy
b2NlZWRXaXRoUGFzdGUsIGZhbHNlKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24t
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzN2M3ODNhMmUyODk3
YmU5NTI5MWI2YTA0ZDBmNmY5ZmE2OGZlMTRmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9t
LXBhc3RlLWNvbmZpcm1hdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxOCAr
MCwwIEBACi1DbGljayBoZXJlIHRvIGNvcHkKLUNsaWNrIGhlcmUgdG8gY29weQotCi1WZXJpZmll
cyB0aGF0IGEgY2FsbG91dCBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkg
dHJpZ2dlcnMgcGFzdGUsIGFuZCB0aGF0IHRhcHBpbmcgdGhlIGNhbGxvdXQgYWxsb3dzIHRoZSBw
YXN0ZSB0byBoYXBwZW4uIFRvIG1hbnVhbGx5IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90
dG9tLCB0YXAgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUsIGFuZCB0aGVuIHNlbGVjdCAnUGFzdGUn
IGluIHRoZSByZXN1bHRpbmcgY2FsbG91dCBtZW51LiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBj
b3B5JyBzaG91bGQgYmUgcGFzdGVkIHR3aWNlIGluIHRoZSBlZGl0YWJsZSBhcmVhLgotCi1PbiBz
dWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dl
ZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1MgZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9y
dGVkKCdQYXN0ZScpIGlzIHRydWUKLVBBU1MgZG9jdW1lbnQucXVlcnlDb21tYW5kRW5hYmxlZCgn
UGFzdGUnKSBpcyB0cnVlCi1QQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9w
bGFpbicpIGlzICJDbGljayBoZXJlIHRvIGNvcHkiCi1QQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5k
KCdQYXN0ZScpIGlzIHRydWUKLVBBU1MgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0
L3BsYWluJykgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKLVBBU1MgZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ1Bhc3RlJykgaXMgdHJ1ZQotUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNsaWNrIGhl
cmUgdG8gY29weUNsaWNrIGhlcmUgdG8gY29weSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25maXJtYXRpb24uaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlvbi5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NzJmOTRkMWI4MDQyYWY3ZWJhYzQxMWQ1MTEzMmI1
ZGQ4MWU5OWFhLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLWNvbmZpcm1hdGlv
bi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjkgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+IDwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZG9tUGFzdGVBbGxvd2VkPWZhbHNlIHVzZUZsZXhpYmxl
Vmlld3BvcnQ9dHJ1ZSBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzPXRydWUgXSAt
LT4KLTxodG1sPgotPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13
aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4vcmVzb3VyY2Vz
L2RvbS1wYXN0ZS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWJvZHkgewotICAgIG1hcmdp
bjogMDsKLX0KLQotI2NvcHkgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogNTBweDsK
LSAgICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7Ci19Ci0KLSNlZGl0b3IgewotICAgIHdpZHRo
OiAxMDAlOwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAgYm9yZGVyOiAxcHggZGFzaGVkIHNpbHZl
cjsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT48L2Rpdj4KLTxpZnJhbWUgaWQ9ImNv
cHkiIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPGRpdiBpZD0nY29weScgc3R5bGU9J2ZvbnQtc2l6ZTog
NDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0byBjb3B5PC9kaXY+Ci0gICAg
PHNjcmlwdD4KLSAgICBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgKCkgPT4gewotICAg
ICAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihjb3B5KTsKLSAgICAgICAgZG9j
dW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKLSAgICAgICAgZ2V0U2VsZWN0aW9uKCkucmVtb3Zl
QWxsUmFuZ2VzKCk7Ci0gICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ij48L2lmcmFtZT4KLTxkaXYgaWQ9
ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgotPHNjcmlwdD4K
LWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1jb25zdCBlZGl0b3IgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiZWRpdG9yIik7Ci0KLWRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IGEgY2FsbG91
dCBpcyBzaG93biB3aGVuIHRoZSBwYWdlIHByb2dyYW1tYXRpY2FsbHkgdHJpZ2dlcnMgcGFzdGUs
IGFuZCB0aGF0IHRhcHBpbmcgdGhlIGNhbGxvdXQgYWxsb3dzIHRoZSBwYXN0ZSB0byBoYXBwZW4u
IFRvIG1hbnVhbGx5IHRlc3QsIHRhcCB0aGUgdGV4dCBvbiB0aGUgYm90dG9tLCB0YXAgdGhlIGVk
aXRhYmxlIGFyZWEgYWJvdmUsIGFuZCB0aGVuIHNlbGVjdCAnUGFzdGUnIGluIHRoZSByZXN1bHRp
bmcgY2FsbG91dCBtZW51LiBUaGUgdGV4dCAnQ2xpY2sgaGVyZSB0byBjb3B5JyBzaG91bGQgYmUg
cGFzdGVkIDxzdHJvbmc+PGVtPnR3aWNlPC9lbT48L3N0cm9uZz4gaW4gdGhlIGVkaXRhYmxlIGFy
ZWEuIik7Ci0KLWVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJwYXN0ZSIsIGV2ZW50ID0+IHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWlu
JykiLCAiQ2xpY2sgaGVyZSB0byBjb3B5IikpOwotZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNs
aWNrIiwgZXZlbnQgPT4gewotICAgIGdldFNlbGVjdGlvbigpLnNldFBvc2l0aW9uKGVkaXRvcik7
Ci0gICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZFN1cHBvcnRlZCgnUGFzdGUnKSIs
ICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImRvY3VtZW50LnF1ZXJ5Q29tbWFuZEVuYWJsZWQoJ1Bh
c3RlJykiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFz
dGUnKSIsICJ0cnVlIik7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFBhcmFncmFw
aCcpOwotICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29tbWFuZCgnUGFzdGUnKSIsICJ0cnVl
Iik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQiLCAiQ2xp
Y2sgaGVyZSB0byBjb3B5Q2xpY2sgaGVyZSB0byBjb3B5Iik7Ci0gICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKLSAgICBlZGl0b3IuYmx1cigpOwotfSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxv
YWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7Ci0gICAg
YXdhaXQgdHJpZ2dlclBhc3RlTWVudUFmdGVyVGFwQXQoMTYwLCA1MCk7Ci0gICAgZmluaXNoSlNU
ZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2VjdXRpdmUtY29u
ZmlybWF0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
aW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLWV4cGVjdGVkLnR4dApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDU2YjQ4MDViMDA0NDRhMDA3Nzg0ZGNmMjFjYjAz
MTY2MjQ1YmUxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2
ZS1jb25maXJtYXRpb25zLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDEzICswLDAg
QEAKLQotVmVyaWZpZXMgdGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJv
Z3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSBvbiBhIHRpbWVyIGFmdGVyIHVzZXIgaW50ZXJh
Y3Rpb24uIFRvIHRlc3QgbWFudWFsbHksIGNsaWNrIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20gdG8g
Y29weSwgYW5kIHRoZW4gY2xpY2sgdGhlIGVkaXRhYmxlIGFyZWEgYWJvdmUgdG8gdHJpZ2dlciB0
d28gcHJvZ3JhbW1hdGljIHBhc3RlcyB3aXRoIHRoZSBjYWxsb3V0IGJhci4gQ2hlY2sgdGhhdCBw
ZXJtaXNzaW9ucyBmb3IgdGhlIGZpcnN0IHByb2dyYW1tYXRpYyBwYXN0ZSBkbyBub3QgYWZmZWN0
IHRoZSBzZWNvbmQgcHJvZ3JhbW1hdGljIHBhc3RlLCBzaW5jZSBpdCBpcyBwZXJmb3JtZWQgb24g
YSB6ZXJvLWRlbGF5IHRpbWVyLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1Mg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgdHJ1ZQotUEFTUyBlZGl0b3IudGV4dENv
bnRlbnQgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKLVBBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJykgaXMgdHJ1ZQotUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNsaWNrIGhlcmUg
dG8gY29weSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVU
RQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1w
YXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1jb25zZWN1dGl2ZS1jb25maXJtYXRpb25zLmh0bWwK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGRhZWQyOGY1YTBmMjI0Yjg3YjMwNDViZjE4
ZTM5YTcwZDIzMDBjNDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtY29uc2Vj
dXRpdmUtY29uZmlybWF0aW9ucy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsOTMgKzAsMCBAQAot
PCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZG9tUGFzdGVBbGxvd2Vk
PWZhbHNlIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzPXRydWUgXSAtLT4KLTxodG1sPgotPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRl
bnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KLTxoZWFkPgotPHNjcmlw
dCBzcmM9Ii4vcmVzb3VyY2VzL2RvbS1wYXN0ZS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4K
LWJvZHkgewotICAgIG1hcmdpbjogMDsKLX0KLQotI2NvcHkgewotICAgIHdpZHRoOiAxMDAlOwot
ICAgIGhlaWdodDogNTBweDsKLSAgICBib3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7Ci19Ci0KLSNl
ZGl0b3IgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdodDogMTAwcHg7Ci0gICAgYm9yZGVy
OiAxcHggZGFzaGVkIHNpbHZlcjsKLSAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Ci19Ci08L3N0eWxl
PgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRlZGl0YWJsZT48L2Rp
dj4KLTxpZnJhbWUgaWQ9ImNvcHkiIHNyYz0iZGF0YTp0ZXh0L2h0bWwsPGRpdiBpZD0nY29weScg
c3R5bGU9J2ZvbnQtc2l6ZTogNDBweDsgdGV4dC1hbGlnbjogY2VudGVyOyc+Q2xpY2sgaGVyZSB0
byBjb3B5PC9kaXY+Ci0gICAgPHNjcmlwdD4KLSAgICBjb3B5LmFkZEV2ZW50TGlzdGVuZXIoJ2Ns
aWNrJywgKCkgPT4gewotICAgICAgICBnZXRTZWxlY3Rpb24oKS5zZWxlY3RBbGxDaGlsZHJlbihj
b3B5KTsKLSAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0NvcHknKTsKLSAgICAgICAgZ2V0
U2VsZWN0aW9uKCkucmVtb3ZlQWxsUmFuZ2VzKCk7Ci0gICAgfSk7Ci0gICAgPC9zY3JpcHQ+Ij48
L2lmcmFtZT4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KLTxkaXYgaWQ9ImNvbnNvbGUi
PjwvZGl2PgotPHNjcmlwdD4KLWpzVGVzdElzQXN5bmMgPSB0cnVlOwotCi1jb25zdCBlZGl0b3Ig
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZWRpdG9yIik7Ci0KLWRlc2NyaXB0aW9uKCJWZXJp
ZmllcyB0aGF0IG5vIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNh
bGx5IHRyaWdnZXJzIHBhc3RlIG9uIGEgdGltZXIgYWZ0ZXIgdXNlciBpbnRlcmFjdGlvbi4gVG8g
dGVzdCBtYW51YWxseSwgY2xpY2sgdGhlIHRleHQgb24gdGhlIGJvdHRvbSB0byBjb3B5LCBhbmQg
dGhlbiBjbGljayB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSB0byB0cmlnZ2VyIHR3byBwcm9ncmFt
bWF0aWMgcGFzdGVzIHdpdGggdGhlIGNhbGxvdXQgYmFyLiBDaGVjayB0aGF0IHBlcm1pc3Npb25z
IGZvciB0aGUgZmlyc3QgcHJvZ3JhbW1hdGljIHBhc3RlIGRvIG5vdCBhZmZlY3QgdGhlIHNlY29u
ZCBwcm9ncmFtbWF0aWMgcGFzdGUsIHNpbmNlIGl0IGlzIHBlcmZvcm1lZCBvbiBhIHplcm8tZGVs
YXkgdGltZXIuIik7Ci0KLWFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JBbmRUYXBQYXN0ZU1lbnVUd2lj
ZSgpIHsKLSAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICAgIHRlc3RS
dW5uZXIucnVuVUlTY3JpcHQoYAotICAgICAgICAgICAgKCgpID0+IHsKLSAgICAgICAgICAgICAg
ICBkb25lQ291bnQgPSAwOwotICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGluY3JlbWVudFByb2dy
ZXNzKCkgewotICAgICAgICAgICAgICAgICAgICBpZiAoKytkb25lQ291bnQgPT09IDUpCi0gICAg
ICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgpOwotICAg
ICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRIaWRlTWVu
dUNhbGxiYWNrID0gaW5jcmVtZW50UHJvZ3Jlc3M7Ci0gICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRpZFNob3dNZW51Q2FsbGJhY2sgPSB0YXBQYXN0ZU1lbnVBY3Rpb247Ci0KLSAgICAgICAg
ICAgICAgICBmdW5jdGlvbiB0YXBQYXN0ZU1lbnVBY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHJlY3QgPSB1aUNvbnRyb2xsZXIucmVjdEZvck1lbnVBY3Rpb24oIlBhc3RlIik7
Ci0gICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KHJlY3Qu
bGVmdCArIHJlY3Qud2lkdGggLyAyLCByZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMiwgaW5jcmVt
ZW50UHJvZ3Jlc3MpOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHVpQ29u
dHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KDE2MCwgNTAsIGluY3JlbWVudFByb2dyZXNzKTsKLSAg
ICAgICAgICAgIH0pKClgLCByZXNvbHZlKTsKLSAgICB9KTsKLX0KLQotZnVuY3Rpb24gcGFzdGUo
KSB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZWRpdG9yKTsKLSAgICBzaG91bGRC
ZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpOwotICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29weSIp
OwotICAgIGVkaXRvci50ZXh0Q29udGVudCA9ICIiOwotICAgIGdldFNlbGVjdGlvbigpLnJlbW92
ZUFsbFJhbmdlcyhlZGl0b3IpOwotfQotCi1lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2si
LCBldmVudCA9PiB7Ci0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICBwYXN0ZSgpOwot
ICAgIHNldFRpbWVvdXQocGFzdGUsIDApOwotfSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQi
LCBhc3luYyAoKSA9PiB7Ci0gICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lciB8fCAhd2luZG93Lmlu
dGVybmFscykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVB
dCgxNjAsIDEyNSk7Ci0gICAgYXdhaXQgd2FpdEZvckFuZFRhcFBhc3RlTWVudVR3aWNlKCk7Ci0g
ICAgZmluaXNoSlNUZXN0KCk7Ci19KTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVq
ZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3Mv
ZG9tLXBhc3RlLXJlamVjdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGMzYWRhZDcxNGFhN2RkYjRlNWViYTE5ODEzZmQwNjBkNDU2YWE0ZmYuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDE0ICswLDAgQEAKLQotVmVyaWZpZXMgdGhhdCBhIGNhbGxvdXQgaXMgc2hv
d24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdnZXJzIHBhc3RlLCBhbmQgdGhh
dCBkaXNtaXNzaW5nIHRoZSBjYWxsb3V0IHByZXZlbnRzIHRoZSBwYXN0ZSBmcm9tIGhhcHBlbmlu
Zy4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0IG9uIHRoZSBib3R0b20sIHRhcCB0aGUg
ZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gZGlzbWlzcyB0aGUgcmVzdWx0aW5nIGNhbGxv
dXQgbWVudSBieSBzY3JvbGxpbmcgb3IgdGFwcGluZyBlbHNld2hlcmUuIFRoZSB0ZXh0ICdDbGlj
ayBoZXJlIHRvIGNvcHknIHNob3VsZCBub3QgYmUgcGFzdGVkLCBhbmQgdGhlIGNhbGxvdXQgYmFy
IHNob3VsZCBkaXNhcHBlYXIuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotUEFTUyBk
b2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoJ1Bhc3RlJykgaXMgdHJ1ZQotUEFTUyBkb2N1
bWVudC5xdWVyeUNvbW1hbmRFbmFibGVkKCdQYXN0ZScpIGlzIHRydWUKLVBBU1MgZG9jdW1lbnQu
ZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgZmFsc2UKLVBBU1MgZG9jdW1lbnQuZXhlY0NvbW1hbmQo
J1Bhc3RlJykgaXMgZmFsc2UKLVBBU1MgZWRpdG9yLnRleHRDb250ZW50IGlzICIiCi1QQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVqZWN0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZWplY3Rp
b24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzgzNmU3OTVmMmNmMjI3ZTg1
N2Q4MTliOGU3Y2Y4MmMwYTRjMDFlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0
ZS1yZWplY3Rpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY4ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGRvbVBhc3RlQWxsb3dlZD1mYWxzZSB1
c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0
cz10cnVlIF0gLS0+Ci08aHRtbD4KLTxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0
aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIu
L3Jlc291cmNlcy9kb20tcGFzdGUtaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Ci08c3R5bGU+Ci1ib2R5IHsK
LSAgICBtYXJnaW46IDA7Ci19Ci0KLSNjb3B5IHsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWln
aHQ6IDUwcHg7Ci0gICAgYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNrOwotfQotCi0jZWRpdG9yIHsK
LSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJvcmRlcjogMXB4IGRh
c2hlZCBzaWx2ZXI7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwotfQotPC9zdHlsZT4KLTwvaGVh
ZD4KLTxib2R5PgotPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+Ci08aWZy
YW1lIGlkPSJjb3B5IiBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYgaWQ9J2NvcHknIHN0eWxlPSdm
b250LXNpemU6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsnPkNsaWNrIGhlcmUgdG8gY29weTwv
ZGl2PgotICAgIDxzY3JpcHQ+Ci0gICAgY29weS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsICgp
ID0+IHsKLSAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0g
ICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7Ci0gICAgICAgIGdldFNlbGVjdGlv
bigpLnJlbW92ZUFsbFJhbmdlcygpOwotICAgIH0pOwotICAgIDwvc2NyaXB0PiI+PC9pZnJhbWU+
Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4K
LTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotY29uc3QgZWRpdG9yID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOwotCi1kZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhh
dCBhIGNhbGxvdXQgaXMgc2hvd24gd2hlbiB0aGUgcGFnZSBwcm9ncmFtbWF0aWNhbGx5IHRyaWdn
ZXJzIHBhc3RlLCBhbmQgdGhhdCBkaXNtaXNzaW5nIHRoZSBjYWxsb3V0IHByZXZlbnRzIHRoZSBw
YXN0ZSBmcm9tIGhhcHBlbmluZy4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0IG9uIHRo
ZSBib3R0b20sIHRhcCB0aGUgZWRpdGFibGUgYXJlYSBhYm92ZSwgYW5kIHRoZW4gZGlzbWlzcyB0
aGUgcmVzdWx0aW5nIGNhbGxvdXQgbWVudSBieSBzY3JvbGxpbmcgb3IgdGFwcGluZyBlbHNld2hl
cmUuIFRoZSB0ZXh0ICdDbGljayBoZXJlIHRvIGNvcHknIHNob3VsZCA8c3Ryb25nPm5vdDwvc3Ry
b25nPiBiZSBwYXN0ZWQsIGFuZCB0aGUgY2FsbG91dCBiYXIgc2hvdWxkIGRpc2FwcGVhci4iKTsK
LQotZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgZXZlbnQgPT4gc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEoJ3RleHQvcGxhaW4nKSIsICJD
bGljayBoZXJlIHRvIGNvcHkiKSk7Ci1lZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBl
dmVudCA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oZWRpdG9yKTsKLSAgICBz
aG91bGRCZSgiZG9jdW1lbnQucXVlcnlDb21tYW5kU3VwcG9ydGVkKCdQYXN0ZScpIiwgInRydWUi
KTsKLSAgICBzaG91bGRCZSgiZG9jdW1lbnQucXVlcnlDb21tYW5kRW5hYmxlZCgnUGFzdGUnKSIs
ICJ0cnVlIik7Ci0gICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwg
ImZhbHNlIik7Ci0gICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwg
ImZhbHNlIik7Ci0gICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQi
LCAiIik7Ci0gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKLSAgICBlZGl0b3IuYmx1cigpOwot
fSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgaWYgKCF3
aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXdhaXQgVUlIZWxwZXIu
YWN0aXZhdGVBdCgxNjAsIDEyNSk7Ci0gICAgYXdhaXQgdHJpZ2dlclBhc3RlTWVudUFmdGVyVGFw
QXQoMTYwLCA1MCwgZmFsc2UpOwotICAgIGZpbmlzaEpTVGVzdCgpOwotfSk7Ci08L3NjcmlwdD4K
LTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2Vy
LWdlc3R1cmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmMTAw
YmE2YzMwZmRhOWE0ZjY4YmEzOTE1NDBlMDVhMWIyNGExNTg1Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9pb3MvZG9tLXBhc3RlLXJlcXVpcmVzLXVzZXItZ2VzdHVyZS1leHBlY3RlZC50eHQKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1DbGljayBoZXJlIHRvIGNvcHkKLQotVmVyaWZpZXMg
dGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJvZ3JhbW1hdGljYWxseSB0
cmlnZ2VycyBwYXN0ZSBvdXRzaWRlIHRoZSBzY29wZSBvZiB1c2VyIGludGVyYWN0aW9uLiBUaGlz
IHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi1QQVNTIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIGlzIHRydWUKLVBBU1Mg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykgaXMgZmFsc2UKLVBBU1MgZWRpdG9yLnRleHRD
b250ZW50IGlzICJDbGljayBoZXJlIHRvIGNvcHkiCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtcmVxdWlyZXMtdXNlci1nZXN0dXJlLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1yZXF1aXJlcy11c2Vy
LWdlc3R1cmUuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTI3OTA0ZjBlMmNj
M2ZlZjljYTdlMjg5Nzg2YjAzNzg4MzFiNDM2My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2Rv
bS1wYXN0ZS1yZXF1aXJlcy11c2VyLWdlc3R1cmUuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcx
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGRvbVBh
c3RlQWxsb3dlZD1mYWxzZSB1c2VGbGV4aWJsZVZpZXdwb3J0PXRydWUgaWdub3JlU3luY2hyb25v
dXNNZXNzYWdpbmdUaW1lb3V0cz10cnVlIF0gLS0+Ci08aHRtbD4KLTxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuL3Jlc291cmNlcy9kb20tcGFzdGUtaGVscGVyLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Ci08c3R5bGU+Ci1ib2R5IHsKLSAgICBtYXJnaW46IDA7Ci19Ci0KLSNjb3B5IHsKLSAgICB3aWR0
aDogMTAwJTsKLSAgICBoZWlnaHQ6IDUwcHg7Ci0gICAgYm9yZGVyOiAxcHggZGFzaGVkIGJsYWNr
OwotfQotCi0jZWRpdG9yIHsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWlnaHQ6IDEwMHB4Owot
ICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2ZXI7Ci0gICAgdGV4dC1hbGlnbjogY2VudGVyOwot
fQotPC9zdHlsZT4KLTwvaGVhZD4KLTxib2R5PgotPGRpdiBpZD0iZWRpdG9yIiBjb250ZW50ZWRp
dGFibGU+PC9kaXY+Ci08aWZyYW1lIGlkPSJjb3B5IiBzcmM9ImRhdGE6dGV4dC9odG1sLDxkaXYg
aWQ9J2NvcHknIHN0eWxlPSdmb250LXNpemU6IDQwcHg7IHRleHQtYWxpZ246IGNlbnRlcjsnPkNs
aWNrIGhlcmUgdG8gY29weTwvZGl2PgotICAgIDxzY3JpcHQ+Ci0gICAgY29weS5hZGRFdmVudExp
c3RlbmVyKCdjbGljaycsICgpID0+IHsKLSAgICAgICAgZ2V0U2VsZWN0aW9uKCkuc2VsZWN0QWxs
Q2hpbGRyZW4oY29weSk7Ci0gICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdDb3B5Jyk7Ci0g
ICAgICAgIGdldFNlbGVjdGlvbigpLnJlbW92ZUFsbFJhbmdlcygpOwotICAgIH0pOwotICAgIDwv
c2NyaXB0PiI+PC9pZnJhbWU+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Ci08ZGl2IGlk
PSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotY29u
c3QgZWRpdG9yID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOwotCi1kZXNjcmlw
dGlvbigiVmVyaWZpZXMgdGhhdCBubyBjYWxsb3V0IGlzIHNob3duIHdoZW4gdGhlIHBhZ2UgcHJv
Z3JhbW1hdGljYWxseSB0cmlnZ2VycyBwYXN0ZSBvdXRzaWRlIHRoZSBzY29wZSBvZiB1c2VyIGlu
dGVyYWN0aW9uLiBUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4iKTsKLQotZnVu
Y3Rpb24gY2hlY2tEb25lKCkgewotICAgIGlmICghd2luZG93LmRvbmVDb3VudCkKLSAgICAgICAg
ZG9uZUNvdW50ID0gMDsKLQotICAgIGlmICgrK2RvbmVDb3VudCA9PSAyKQotICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLX0KLQotZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZXZlbnQg
PT4gewotICAgIGVkaXRvci5mb2N1cygpOwotICAgIHNob3VsZEJlKCJkb2N1bWVudC5leGVjQ29t
bWFuZCgnUGFzdGUnKSIsICJ0cnVlIik7Ci0gICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+
IHsKLSAgICAgICAgc2hvdWxkQmUoImRvY3VtZW50LmV4ZWNDb21tYW5kKCdQYXN0ZScpIiwgImZh
bHNlIikKLSAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJlZGl0b3IudGV4dENvbnRlbnQi
LCAiQ2xpY2sgaGVyZSB0byBjb3B5Iik7Ci0gICAgICAgIGNoZWNrRG9uZSgpOwotICAgIH0pOwot
fSk7Ci0KLWFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgYXdhaXQg
VUlIZWxwZXIuYWN0aXZhdGVBdCgxNjAsIDEyNSk7Ci0gICAgYXdhaXQgdHJpZ2dlclBhc3RlTWVu
dUFmdGVyVGFwQXQoMTYwLCA1MCk7Ci0gICAgY2hlY2tEb25lKCk7Ci19KTsKLTwvc2NyaXB0Pgot
PC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4tZXhwZWN0ZWQudHh0
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2YWFiMTdiM2VkYTU3NjU0Njg3N2FjNWI3
MzRiODc0ZjI5NzQ3ZGM3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUt
b3JpZ2luLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE4ICswLDAgQEAKLUNsaWNr
IGhlcmUgdG8gY29weQotQ2xpY2sgaGVyZSB0byBjb3B5Ci1DbGljayBoZXJlIHRvIGNvcHkKLVZl
cmlmaWVzIHRoYXQgcHJvZ3JhbW1hdGljIHBhc3RlIGlzIGFsbG93ZWQgd2hlbiBjb3BpZWQgZGF0
YSBpcyBmcm9tIHRoZSBzYW1lIG9yaWdpbi4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSB0ZXh0
IG9uIHRoZSBib3R0b20gdG8gcHJvZ3JhbW1hdGljYWxseSBjb3B5LCBhbmQgdGhlbiB0YXAgdGhl
IGVkaXRhYmxlIGFyZWEgYW5kIGNoZWNrIHRoYXQgdGhlIHRleHQgaXMgcGFzdGVkIHR3aWNlLgot
Ci1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLVBBU1MgZG9jdW1lbnQucXVlcnlDb21tYW5k
U3VwcG9ydGVkKCdQYXN0ZScpIGlzIHRydWUKLVBBU1MgZG9jdW1lbnQucXVlcnlDb21tYW5kRW5h
YmxlZCgnUGFzdGUnKSBpcyB0cnVlCi1QQVNTIGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgn
dGV4dC9wbGFpbicpIGlzICJDbGljayBoZXJlIHRvIGNvcHkiCi1QQVNTIGRvY3VtZW50LmV4ZWND
b21tYW5kKCdQYXN0ZScpIGlzIHRydWUKLVBBU1MgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRh
KCd0ZXh0L3BsYWluJykgaXMgIkNsaWNrIGhlcmUgdG8gY29weSIKLVBBU1MgZG9jdW1lbnQuZXhl
Y0NvbW1hbmQoJ1Bhc3RlJykgaXMgdHJ1ZQotUEFTUyBlZGl0b3IudGV4dENvbnRlbnQgaXMgIkNs
aWNrIGhlcmUgdG8gY29weUNsaWNrIGhlcmUgdG8gY29weSIKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9yaWdpbi5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9kb20tcGFzdGUtc2FtZS1vcmlnaW4uaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWNhMGQ2OWEzNDNhYTI4OTk4ZGIwODEyOTk2
ZjI1NzZmYWE0N2FhMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zL2RvbS1wYXN0ZS1zYW1lLW9y
aWdpbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzEgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+
IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgZG9tUGFzdGVBbGxvd2VkPWZhbHNlIHVzZUZsZXhp
YmxlVmlld3BvcnQ9dHJ1ZSBpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzPXRydWUg
XSAtLT4KLTxodG1sPgotPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9y
ZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KLTxzdHlsZT4KLWJvZHkgewotICAgIG1h
cmdpbjogMDsKLX0KLQotI2NvcHksICNlZGl0b3IgewotICAgIHdpZHRoOiAxMDAlOwotICAgIHRl
eHQtYWxpZ246IGNlbnRlcjsKLX0KLQotI2NvcHkgewotICAgIGhlaWdodDogNTBweDsKLSAgICBi
b3JkZXI6IDFweCBkYXNoZWQgYmxhY2s7Ci0gICAgZm9udC1zaXplOiA0MHB4OwotfQotCi0jZWRp
dG9yIHsKLSAgICBoZWlnaHQ6IDEwMHB4OwotICAgIGJvcmRlcjogMXB4IGRhc2hlZCBzaWx2ZXI7
Ci19Ci08L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+Ci08ZGl2IGlkPSJlZGl0b3IiIGNvbnRlbnRl
ZGl0YWJsZT48L2Rpdj4KLTxkaXYgaWQ9J2NvcHknIHN0eWxlPScnPkNsaWNrIGhlcmUgdG8gY29w
eTwvZGl2PgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgotPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Ci08c2NyaXB0PgotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0KLWNvbnN0IGNvcHkgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29weSIpOwotY29uc3QgZWRpdG9yID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImVkaXRvciIpOwotCi1kZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCBw
cm9ncmFtbWF0aWMgcGFzdGUgaXMgYWxsb3dlZCB3aGVuIGNvcGllZCBkYXRhIGlzIGZyb20gdGhl
IHNhbWUgb3JpZ2luLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHRleHQgb24gdGhlIGJvdHRv
bSB0byBwcm9ncmFtbWF0aWNhbGx5IGNvcHksIGFuZCB0aGVuIHRhcCB0aGUgZWRpdGFibGUgYXJl
YSBhbmQgY2hlY2sgdGhhdCB0aGUgdGV4dCBpcyBwYXN0ZWQgPGVtPnR3aWNlPC9lbT4uIik7Ci0K
LWNvcHkuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCAoKSA9PiB7Ci0gICAgZ2V0U2VsZWN0aW9u
KCkuc2VsZWN0QWxsQ2hpbGRyZW4oY29weSk7Ci0gICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0Nv
cHknKTsKLSAgICBnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKTsKLX0pOwotCi1lZGl0
b3IuYWRkRXZlbnRMaXN0ZW5lcigicGFzdGUiLCBldmVudCA9PiBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoImV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dC9wbGFpbicpIiwgIkNsaWNrIGhl
cmUgdG8gY29weSIpKTsKLWVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIGV2ZW50ID0+
IHsKLSAgICBnZXRTZWxlY3Rpb24oKS5zZXRQb3NpdGlvbihlZGl0b3IpOwotICAgIHNob3VsZEJl
KCJkb2N1bWVudC5xdWVyeUNvbW1hbmRTdXBwb3J0ZWQoJ1Bhc3RlJykiLCAidHJ1ZSIpOwotICAg
IHNob3VsZEJlKCJkb2N1bWVudC5xdWVyeUNvbW1hbmRFbmFibGVkKCdQYXN0ZScpIiwgInRydWUi
KTsKLSAgICBzaG91bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIp
OwotICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRQYXJhZ3JhcGgnKTsKLSAgICBzaG91
bGRCZSgiZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ1Bhc3RlJykiLCAidHJ1ZSIpOwotICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygiZWRpdG9yLnRleHRDb250ZW50IiwgIkNsaWNrIGhlcmUgdG8gY29w
eUNsaWNrIGhlcmUgdG8gY29weSIpOwotICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAg
ZWRpdG9yLmJsdXIoKTsKLSAgICBmaW5pc2hKU1Rlc3QoKTsKLX0pOwotCi1hZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4gewotICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTYwLCAxMjUp
OwotICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlQXQoMTYwLCA1MCk7Ci19KTsKLTwvc2NyaXB0
PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL2lvcy9yZXNvdXJjZXMvZG9tLXBhc3RlLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9pb3MvcmVzb3VyY2VzL2RvbS1wYXN0ZS1oZWxwZXIuanMKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmOWJjNDFhNWJlNWFjZTUwOWMxMGE0YTMzYjZiMjA5
N2JlNWY0OGUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2lvcy9yZXNvdXJjZXMvZG9tLXBhc3RlLWhl
bHBlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLQotYXN5bmMgZnVuY3Rpb24g
X3dhaXRGb3JPclRyaWdnZXJQYXN0ZU1lbnUoeCwgeSwgcHJvY2VlZFdpdGhQYXN0ZSwgc2hvdWxk
VGFwKSB7Ci0gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewotICAgICAgICB0ZXN0
UnVubmVyLnJ1blVJU2NyaXB0KGAKLSAgICAgICAgICAgICgoKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgZG9uZUNvdW50ID0gMDsKLSAgICAgICAgICAgICAgICBmdW5jdGlvbiBjaGVja0RvbmUoKSB7
Ci0gICAgICAgICAgICAgICAgICAgIGlmICgrK2RvbmVDb3VudCA9PT0gKCR7c2hvdWxkVGFwfSA/
IDMgOiAyKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENv
bXBsZXRlKCk7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAgdWlDb250cm9s
bGVyLmRpZEhpZGVNZW51Q2FsbGJhY2sgPSBjaGVja0RvbmU7Ci0KLSAgICAgICAgICAgICAgICBm
dW5jdGlvbiB0YXBQYXN0ZU1lbnVBY3Rpb24oKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgk
e3Byb2NlZWRXaXRoUGFzdGV9KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWN0
ID0gdWlDb250cm9sbGVyLnJlY3RGb3JNZW51QWN0aW9uKCJQYXN0ZSIpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgdWlDb250cm9sbGVyLnNpbmdsZVRhcEF0UG9pbnQocmVjdC5sZWZ0ICsgcmVj
dC53aWR0aCAvIDIsIHJlY3QudG9wICsgcmVjdC5oZWlnaHQgLyAyLCBjaGVja0RvbmUpOwotICAg
ICAgICAgICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgICAgICAgICAgICAgdWlDb250
cm9sbGVyLnJlc2lnbkZpcnN0UmVzcG9uZGVyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBj
aGVja0RvbmUoKTsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLQot
ICAgICAgICAgICAgICAgIGlmICh1aUNvbnRyb2xsZXIuaXNTaG93aW5nTWVudSkKLSAgICAgICAg
ICAgICAgICAgICAgdGFwUGFzdGVNZW51QWN0aW9uKCk7Ci0gICAgICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkU2hvd01lbnVDYWxsYmFjayA9IHRh
cFBhc3RlTWVudUFjdGlvbjsKLQotICAgICAgICAgICAgICAgIGlmICgke3Nob3VsZFRhcH0pCi0g
ICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zaW5nbGVUYXBBdFBvaW50KCR7eH0sICR7
eX0sIGNoZWNrRG9uZSk7Ci0gICAgICAgICAgICB9KSgpYCwgcmVzb2x2ZSk7Ci0gICAgfSk7Ci19
Ci0KLWFzeW5jIGZ1bmN0aW9uIHRyaWdnZXJQYXN0ZU1lbnVBZnRlclRhcEF0KHgsIHksIHByb2Nl
ZWRXaXRoUGFzdGUgPSB0cnVlKSB7Ci0gICAgcmV0dXJuIF93YWl0Rm9yT3JUcmlnZ2VyUGFzdGVN
ZW51KHgsIHksIHByb2NlZWRXaXRoUGFzdGUsIHRydWUpOwotfQotCi1hc3luYyBmdW5jdGlvbiB3
YWl0Rm9yUGFzdGVNZW51KHByb2NlZWRXaXRoUGFzdGUgPSB0cnVlKSB7Ci0gICAgcmV0dXJuIF93
YWl0Rm9yT3JUcmlnZ2VyUGFzdGVNZW51KG51bGwsIG51bGwsIHByb2NlZWRXaXRoUGFzdGUsIGZh
bHNlKTsKLX0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4
cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBkN2U5OGE5YjBlYzE2ZWI1Y2JlN2ZiNzM2MDE3MmIxNmJiZTQ1ODM0Li5mMDhlZjk3
ODNmZjYwMDk5MDJiZmIwZGU1MzMwMzk4YjYwMzI5N2QwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMSw3ICsyMSw3IEBAIGZhc3Qvd2Vi
LXNoYXJlIFsgUGFzcyBdCiBlZGl0aW5nL2NhcmV0L2lvcyBbIFBhc3MgXQogZWRpdGluZy9maW5k
IFsgUGFzcyBdCiBlZGl0aW5nL2lucHV0L2lvcyBbIFBhc3MgXQotZWRpdGluZy9wYXN0ZWJvYXJk
L2lvcyBbIFBhc3MgXQorZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZSBbIFBhc3MgXQogZWRp
dGluZy91bmRvLW1hbmFnZXIgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9zZXQtc2VsZWN0ZWQt
dGV4dC1yYW5nZS1hZnRlci1uZXdsaW5lLmh0bWwgWyBQYXNzIF0KQEAgLTEzNjMsNyArMTM2Myw2
IEBAIGZhc3Qvdmlld3BvcnQvaW9zL2lnbm9yZS1taW5pbXVtLWRldmljZS13aWR0aC1mb3ItcGFn
ZS13aXRoLXZpZXdwb3J0LWRldmljZS13aWR0CiAjIHByb2JsZW0gd2l0aCBibHVyIGhhbmRsaW5n
CiBtYXRobWwvZm9jdXMtZXZlbnQtaGFuZGxpbmcuaHRtbCBbIEZhaWx1cmUgXQogCi13ZWJraXQu
b3JnL2IvMjAxODk4IGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2lu
Lmh0bWwgWyBGYWlsdXJlIF0KICMgPHJkYXI6Ly9wcm9ibGVtLzUxNzU2MjU0PlJFR1JFU1NJT04g
KHIyNDQ1ODItcjI0NDU5NikgTGF5b3V0IHRlc3RzIGZhc3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1z
Y3JvbGwtdmlzaWJpbGl0eS1oaWRkZW4uaHRtbCBmYXN0L3Njcm9sbGluZy9pb3MvdG91Y2gtc2Ny
b2xsLXBvaW50ZXItZXZlbnRzLW5vbmUuaHRtbCBhcmUgZmFpbGluZwogZmFzdC9zY3JvbGxpbmcv
aW9zL3RvdWNoLXNjcm9sbC1wb2ludGVyLWV2ZW50cy1ub25lLmh0bWwgWyBGYWlsdXJlIF0KIGZh
c3Qvc2Nyb2xsaW5nL2lvcy90b3VjaC1zY3JvbGwtdmlzaWJpbGl0eS1oaWRkZW4uaHRtbCBbIEZh
aWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAz
YWYzMWM4NTFhMzg0ZjdiNzQxMTQ5ZjllM2IzNzlhYmJjZDY4NTQ4Li5jMDBmM2QzZTEwNjc5NjJi
ODY2ODg1MDI3YjE0MDhiZWQ3YTQ1OTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtMzM2OSw4ICszMzY5LDYgQEAgZmFzdC9zY3JvbGxpbmcvaW9zL3Rv
dWNoLXNjcm9sbC12aXNpYmlsaXR5LWhpZGRlbi5odG1sIFsgRmFpbHVyZSBdCiAjIDxyZGFyOi8v
cHJvYmxlbS81Mjk2MjI3Mj4gZmFzdC9zY3JvbGxpbmcvaW9zL2JvZHktb3ZlcmZsb3ctaGlkZGVu
Lmh0bWwgaXMgYW4gSW1hZ2UgZmFpbHVyZQogZmFzdC9zY3JvbGxpbmcvaW9zL2JvZHktb3ZlcmZs
b3ctaGlkZGVuLmh0bWwgWyBQYXNzIEltYWdlT25seUZhaWx1cmUgXQogCi13ZWJraXQub3JnL2Iv
MjAxODk4IGVkaXRpbmcvcGFzdGVib2FyZC9pb3MvZG9tLXBhc3RlLXNhbWUtb3JpZ2luLmh0bWwg
WyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzIwMTg5OSBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFz
dGUtZG9lcy1ub3QtZmlyZS1wcm9taXNlcy13aGlsZS1zYW5pdGl6aW5nLXdlYi1jb250ZW50Lmh0
bWwgWyBGYWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIwMTkwMCB3ZWJydGMvZGF0YWNoYW5uZWwv
bWRucy1pY2UtY2FuZGlkYXRlcy5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzRmN2Y2ZGQ5ZjNkNGIxOTNjNmRm
YzA0ZTAwMjg5MzU2Y2ZlNGFhNy4uNGI1NGYwMjlkMTRlZDdkNzU3ZTEyMjc4YWNlYTk0YjdhM2Q2
MDEzMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTAsNiArMTAsNyBAQCBjb21wb3NpdGluZy9zY3JvbGxpbmcvYXN5bmMtb3ZlcmZsb3ct
c2Nyb2xsaW5nIFsgUGFzcyBdCiBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9jbGlwcGluZy1z
Y29wZSBbIFBhc3MgXQogZWRpdGluZy9maW5kIFsgUGFzcyBdCiBlZGl0aW5nL3VuZG8tbWFuYWdl
ciBbIFBhc3MgXQorZWRpdGluZy9wYXN0ZWJvYXJkL2RvbS1wYXN0ZSBbIFBhc3MgXQogZmFzdC9m
b3Jtcy9zZWxlY3QvbWFjLXdrMiBbIFBhc3MgXQogZmFzdC92aXN1YWwtdmlld3BvcnQvdGlsZWQt
ZHJhd2luZyBbIFBhc3MgXQogZmFzdC93ZWItc2hhcmUgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggM2Q1MWYzZmY1ZDI0NmVmM2U2MmNmMTll
ZmI2ZGIyMTllMTM1NDMyNy4uM2IwZDM2YmMwY2YyYzQyNGEwZTc1N2RhMWVhODBkYTU1MDYzY2Qx
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNzMs
NyArMTE3Myw3IEBAIG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtY3Vlcy1hZGRlZC1vbmNlLmh0
bWwgWyBTa2lwIF0gIyBUaW1lb3V0CiAjIyMjIyMgUGFzdGVib2FyZAogIyMjIyMjIFRoZXNlIHRl
c3RzIGFyZSB2ZXJ5IGZsYWt5LgogZWRpdGluZy9wYXN0ZWJvYXJkLyBbIFBhc3MgRmFpbHVyZSBd
Ci1lZGl0aW5nL3Bhc3RlYm9hcmQvaW9zIFsgU2tpcCBdCitlZGl0aW5nL3Bhc3RlYm9hcmQvZG9t
LXBhc3RlLyBbIFNraXAgXQogWyBEZWJ1ZyBdIGVkaXRpbmcvcGFzdGVib2FyZC9jb3B5LWNyYXNo
Lmh0bWwgWyBTa2lwIF0gIyBEZWJ1ZyBBc3NlcnRpb24KIFsgRGVidWcgXSBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvY29weS1jcmFzaC13aXRoLWV4dHJhbmVvdXMtYXR0cmlidXRlLmh0bWwgWyBTa2lwIF0g
IyBEZWJ1ZyBBc3NlcnRpb24KIFsgRGVidWcgXSBlZGl0aW5nL3Bhc3RlYm9hcmQvdGVzdGNhc2Ut
OTUwNy5odG1sIFsgU2tpcCBdICMgRGVidWcgQXNzZXJ0aW9uCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBhN2U1YzcyYjc4N2E1MzYxNTEy
MWY3OTAxODk0MjRjYWFiYTJlYjJmLi4xYjgwMTc5ZGY1NzIwYmViYTIxYzVhNTllZDliMWQ4ZmNj
YzFhYTBjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEzMDYsNyArMTMwNiw3IEBAIGZhc3QvZG9tL0hUTUxJbnB1dEVsZW1lbnQvY2hh
bmdlLXR5cGUtaW4taW5wdXQtZXZlbnQtbGlzdGVuZXIuaHRtbCBbIFNraXAgXQogZWRpdGluZy9w
YXN0ZWJvYXJkLyBbIFBhc3MgRmFpbHVyZSBJbWFnZU9ubHlGYWlsdXJlIF0KIGVkaXRpbmcvcGFz
dGVib2FyZC9jb3B5LXBhc3RlLWFjcm9zcy1zaGFkb3ctYm91bmRhcmllcy13aXRoLXN0eWxlLTIu
aHRtbCBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctYW5kLWRyb3AtY29sb3ItaW5w
dXQtZXZlbnRzLmh0bWwgWyBTa2lwIF0KLWVkaXRpbmcvcGFzdGVib2FyZC9pb3MvIFsgU2tpcCBd
CitlZGl0aW5nL3Bhc3RlYm9hcmQvZG9tLXBhc3RlLyBbIFNraXAgXQogZWRpdGluZy9wYXN0ZWJv
YXJkL3Bhc3RlLWltYWdlLWFzLWJsb2ItdXJsLmh0bWwgWyBTa2lwIF0KICMgVE9ETyBldmVudFNl
bmRlci5jb250ZXh0Q2xpY2soKSBuZWVkcyB0byByZXR1cm4gYSBKUyBhcnJheSBvZiB0aGUgY29u
dGV4dCBtZW51IGl0ZW1zLgogd2Via2l0Lm9yZy9iLzYyNTk3IGVkaXRpbmcvcGFzdGVib2FyZC9j
b3B5LXN0YW5kYWxvbmUtaW1hZ2UtY3Jhc2guaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>