<?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>213985</bug_id>
          
          <creation_ts>2020-07-05 22:16:50 -0700</creation_ts>
          <short_desc>[iPadOS] Unable to change focus between Google Docs windows by tapping</short_desc>
          <delta_ts>2020-07-06 12:46:00 -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>WebKit2</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>annulen</cc>
    
    <cc>bdakin</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668973</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-05 22:16:50 -0700</bug_when>
    <thetext>&lt;rdar://problem/57083267&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668977</commentid>
    <comment_count>1</comment_count>
      <attachid>403575</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-05 23:31:39 -0700</bug_when>
    <thetext>Created attachment 403575
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668978</commentid>
    <comment_count>2</comment_count>
      <attachid>403576</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-05 23:45:11 -0700</bug_when>
    <thetext>Created attachment 403576
Fix GTK/WPE builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669042</commentid>
    <comment_count>3</comment_count>
      <attachid>403598</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-06 09:08:27 -0700</bug_when>
    <thetext>Created attachment 403598
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669075</commentid>
    <comment_count>4</comment_count>
      <attachid>403598</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-06 11:48:18 -0700</bug_when>
    <thetext>Comment on attachment 403598
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=403598&amp;action=review

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1504
&gt; +        if (nativeWebTouchEvent.isPotentialTap() &amp;&amp; self.hasHiddenContentEditable &amp;&amp; self._hasFocusedElement &amp;&amp; !self.window.keyWindow)
&gt; +            [self.window makeKeyWindow];

Does the test cover all 4 of these changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669078</commentid>
    <comment_count>5</comment_count>
      <attachid>403598</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-06 11:51:00 -0700</bug_when>
    <thetext>Comment on attachment 403598
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=403598&amp;action=review

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1504
&gt;&gt; +            [self.window makeKeyWindow];
&gt; 
&gt; Does the test cover all 4 of these changes?

Unfortunately, the new test doesn’t cover the change in `-mouseGestureRecognizerChanged:` (since there’s currently no way to simulate real trackpad-y mouse events from WebKitTestRunner at the moment).

The three other changes here are covered, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669081</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-06 11:57:55 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #5)
&gt; Comment on attachment 403598 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403598&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:1504
&gt; &gt;&gt; +            [self.window makeKeyWindow];
&gt; &gt; 
&gt; &gt; Does the test cover all 4 of these changes?
&gt; 
&gt; Unfortunately, the new test doesn’t cover the change in
&gt; `-mouseGestureRecognizerChanged:` (since there’s currently no way to
&gt; simulate real trackpad-y mouse events from WebKitTestRunner at the moment).

I filed &lt;https://bugs.webkit.org/show_bug.cgi?id=213995&gt; to track this.

&gt; 
&gt; The three other changes here are covered, however.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669103</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-06 12:45:58 -0700</bug_when>
    <thetext>Committed r263979: &lt;https://trac.webkit.org/changeset/263979&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 403598.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403575</attachid>
            <date>2020-07-05 23:31:39 -0700</date>
            <delta_ts>2020-07-05 23:45:10 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-213985-20200705233138.patch</filename>
            <type>text/plain</type>
            <size>51737</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlODg1NTU1Nzk5MWU2OWY3
YTk1MDMwNGJiNmVjNTMyNTg3NThkMTMuLmI3MmViZDQzNzA5NmUzMjVhNGUzMTk3OTBhZTJlZDlj
MTg0NWQwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDctMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPU10gVW5hYmxl
IHRvIGNoYW5nZSBmb2N1cyBiZXR3ZWVuIEdvb2dsZSBEb2NzIHdpbmRvd3MgYnkgdGFwcGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzA4MzI2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHB1dHRpbmcgdHdvIEdvb2dsZSBEb2NzIHdp
bmRvd3Mgc2lkZS1ieS1zaWRlIG9uIGlQYWQsIGl0J3MgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0
byBjaGFuZ2UgdGhlIHdpbmRvdyB0bworICAgICAgICB3aGljaCBrZXlib2FyZCBpbnB1dCBpcyBy
b3V0ZWQuIEluIG5hdGl2ZSB2aWV3cyAoZS5nLiB0d28gc2lkZS1ieS1zaWRlIE5vdGVzIHdpbmRv
d3MpLCB0aGlzIGlzIG5vcm1hbGx5IGhhbmRsZWQKKyAgICAgICAgYnkgYFVJVGV4dE11bHRpVGFw
UmVjb2duaXplcmAsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGBVSVRleHRTZWxlY3Rpb25JbnRlcmFj
dGlvbmA7IHRhcHBpbmcgdG8gcGxhY2UgdGhlIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIGNhbGxz
IGludG8gYC1bVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2V0Rmlyc3RSZXNwb25kZXJJZk5l
Y2Vzc2FyeUFjdGl2YXRpbmdTZWxlY3Rpb246XWAsIHdoaWNoCisgICAgICAgIHVwZGF0ZXMgdGhl
IGtleSB3aW5kb3cgaWYgbmVlZGVkLiBUaGlzIGRvZXNuJ3QgYXBwbHkgdG8gR29vZ2xlIERvY3Mg
YmVjYXVzZSB0aGV5IGluc3RlYWQgdXNlIHRvdWNoIGV2ZW50cyB0bworICAgICAgICBkcml2ZSB0
aGVpciBvd24gInRleHQgaW50ZXJhY3Rpb24iLWxpa2UgYmVoYXZpb3JzIGluc3RlYWQgb2YgcmVs
eWluZyBvbiBzeXN0ZW0gZ2VzdHVyZSByZWNvZ25pemVycywgd2hpY2ggd2UKKyAgICAgICAgc3Vw
cHJlc3MgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4gYSBoaWRk
ZW4gY29udGVudGVkaXRhYmxlLgorCisgICAgICAgIEJ1dCBldmVuIGluIG5vbi1oaWRkZW4gZWRp
dGFibGUgYXJlYXMsIHRoZSBpbml0aWFsIHRhcCB0byBmb2N1cyBhbiBlZGl0YWJsZSBlbGVtZW50
IHN0aWxsIGRvZXNuJ3QgYXV0b21hdGljYWxseQorICAgICAgICBtYWtlIHRoZSB3aW5kb3cga2V5
LCBzaW5jZSB0aGUgZWRpdGFibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBhcmUgc3RpbGwg
aW5hY3RpdmUgd2hlbiB0YXBwaW5nIHRvIGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnQuIFRoaXMgbWVhbnMgdHdvIHRhcHMgYXJlIGN1cnJlbnRseSByZXF1aXJlZCB0byBjaGFuZ2Ug
dGhlIGtleSB3aW5kb3cgd2hlbiBmb2N1c2luZyB0d28gU2FmYXJpCisgICAgICAgIHdpbmRvd3Mg
c2lkZS1ieS1zaWRlOiB0aGUgZmlyc3QgdGFwIHRvIGZvY3VzIHRoZSBlbGVtZW50ICh2aWEgdGhl
IHN5bnRoZXRpYyBjbGljayBnZXN0dXJlKSwgYW5kIHRoZSBzZWNvbmQgdGFwCisgICAgICAgIHRv
IHRyaWdnZXIgdGhlIGVkaXRhYmxlIHRleHQgaW50ZXJhY3Rpb24gdGFwIGdlc3R1cmUgdGhhdCBp
cyB1c2VkIHRvIHNldCB0aGUgc2VsZWN0aW9uLgorCisgICAgICAgIFRvIGZpeCBib3RoIG9mIHRo
ZXNlIGlzc3VlcywgbWFrZSBzb21lIG1pbm9yIGFkanVzdG1lbnRzIHRvIGNhbGwgYC1tYWtlS2V5
V2luZG93YCBmcm9tIFdlYktpdCB3aGVuIGZvY3VzaW5nCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnRzLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1h
cmVhLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6
ZWQ6XSk6CisKKyAgICAgICAgRm9yIHRoZSBjYXNlIGluIEdvb2dsZSBEb2NzIHdoZXJlIGEgaGlk
ZGVuIGVkaXRhYmxlIGVsZW1lbnQgaXMgdXNlZCBhbmQgdGFwcGluZyBpbiB0aGUgcGFnZSBkb2Vz
IG5vdCByZXN1bHQgaW4KKyAgICAgICAgdGhlIGVsZW1lbnQgYmVpbmcgcmVmb2N1c2VkLCB3ZSBh
ZGRpdGlvbmFsbHkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBtYWtlIG91ciB3aW5kb3cga2V5
IGFueXdheXMuIExpbWl0IHRoaXMKKyAgICAgICAgaGFjayB0byB0YXAgZ2VzdHVyZXMsIGFuZCBv
bmx5IHdoZW4gdGhlcmUgaXMgYSBoaWRkZW4gZm9jdXNlZCBlZGl0YWJsZSBlbGVtZW50IHRvIGVt
dWxhdGUgcGxhdGZvcm0gYmVoYXZpb3Igb2YKKyAgICAgICAgdXBkYXRpbmcgdGhlIGtleSB3aW5k
b3cgYmFzZWQgb24gdGhlIHRleHQgdGFwIGdlc3R1cmUuCisKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6
YWN0aXZpdHlTdGF0ZUNoYW5nZXM6dXNlck9iamVjdDpdKToKKworICAgICAgICBNYWtlIHRoZSBj
b250ZW50IHZpZXcncyB3aW5kb3cga2V5IHdoZW4gZm9jdXNpbmcgYW4gZWRpdGFibGUgZWxlbWVu
dC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZV0p
OgorCisgICAgICAgIENvbnNpZGVyIHRoZSBzZWxlY3Rpb24gdG8gYmUgaW5zaWRlIGEgaGlkZGVu
IGVkaXRhYmxlIGFyZWEgaWYgdGhlIGBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbGAg
ZmxhZyBpcyBzZXQKKyAgICAgICAgYXMgd2VsbC4gV2hpbGUgdGhpcyBkb2Vzbid0IGFmZmVjdCBH
b29nbGUgRG9jcywgaXQgZG9lcyBhZmZlY3Qgc29tZSBvdGhlciBjdXN0b20gZWRpdG9ycywgc3Vj
aCBhcyBRdWlwLgorCiAyMDIwLTA3LTA1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2Mzk2MC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCmluZGV4IDdiOGI1ZmZkNGJiODMwNTAwMmJkMTJiYWRmOGE1MWE4ZWUwMTU0ZTguLjRh
ZjExZWQyODhmNDk1MjBkZDZmNDAwN2E2MmQ3OGZmMjRhNGU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpA
QCAtMTQ5OSw2ICsxNDk5LDkgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihV
SVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIAogICAgICAgICBp
ZiAoIV9wYWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQogICAgICAgICAgICAgW3NlbGYgX3Jl
c2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisKKyAgICAgICAgaWYgKG5hdGl2ZVdlYlRvdWNo
RXZlbnQuaXNQb3RlbnRpYWxUYXAoKSAmJiBzZWxmLmhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZSAm
JiBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCAmJiAhc2VsZi53aW5kb3cua2V5V2luZG93KQorICAg
ICAgICAgICAgW3NlbGYud2luZG93IG1ha2VLZXlXaW5kb3ddOwogICAgIH0KICNlbmRpZgogfQpA
QCAtNTk4NCw4ICs1OTg3LDExIEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2Vi
S2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgW3NlbGYg
cmVsb2FkSW5wdXRWaWV3c107CiAjZW5kaWYKIAotICAgIGlmIChpc1NlbGVjdGFibGUpCisgICAg
aWYgKGlzU2VsZWN0YWJsZSkgewogICAgICAgICBbc2VsZiBfc2hvd0tleWJvYXJkXTsKKyAgICAg
ICAgaWYgKCFzZWxmLndpbmRvdy5rZXlXaW5kb3cpCisgICAgICAgICAgICBbc2VsZi53aW5kb3cg
bWFrZUtleVdpbmRvd107CisgICAgfQogCiAgICAgLy8gVGhlIGN1c3RvbSBmaXhlZCBwb3NpdGlv
biByZWN0IGJlaGF2aW9yIGlzIGFmZmVjdGVkIGJ5IC1pc0ZvY3VzaW5nRWxlbWVudCwgc28gaWYg
dGhhdCBjaGFuZ2VzIHdlIG5lZWQgdG8gcmVjb21wdXRlIHJlY3RzLgogICAgIGlmIChlZGl0YWJs
ZUNoYW5nZWQpCkBAIC02NjI4LDcgKzY2MzQsNyBAQCAtIChCT09MKXN1cHBvcnRzVGV4dFNlbGVj
dGlvbldpdGhDaGFyYWN0ZXJHcmFudWxhcml0eQogCiAtIChCT09MKWhhc0hpZGRlbkNvbnRlbnRF
ZGl0YWJsZQogewotICAgIHJldHVybiBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25z
LmNvbnRhaW5zKFdlYktpdDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVk
KTsKKyAgICByZXR1cm4gX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5jb250YWlu
c0FueSh7IFdlYktpdDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkLCBX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCB9KTsKIH0KIAogLSAoQk9PTClfc2hvdWxk
U3VwcHJlc3NTZWxlY3Rpb25Db21tYW5kcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI3ZWRiZDAwZjlhNGY0OGViOGRkNDkyYTEzOGMyMWU1MDBm
MGJhYWQuLjM0OWI1MzY1NzRjNWU3M2QxYjJjNjY1MDFmZGViNGNjNmRhNDEwNGEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBA
QAorMjAyMC0wNy0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaVBhZE9TXSBVbmFibGUgdG8gY2hhbmdlIGZvY3VzIGJldHdlZW4gR29vZ2xlIERv
Y3Mgd2luZG93cyBieSB0YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDgzMjY3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJL
aXRUZXN0UnVubmVyIHN1cHBvcnQgZm9yIGJlaW5nIGFibGUgdG8gdmVyaWZ5IHRoYXQgYSB3ZWIg
dmlldydzIHdpbmRvdyBoYXMgYmVjb21lIHRoZSBrZXkgd2luZG93LgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6d2luZG93SXNLZXkgY29uc3QpOgorICAgICAgICAq
IFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAuCisK
KyAgICAgICAgUmVuYW1lIGBVSVNjcmlwdENvbnRyb2xsZXIuY3BwYCAoaW4gVGVzdFJ1bm5lclNo
YXJlZCkgdG8gYFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHBgLCBhbmQgaW50cm9kdWNlIG5l
dworICAgICAgICBEdW1wUmVuZGVyVHJlZSBhbmQgV2ViS2l0VGVzdFJ1bm5lciB2ZXJzaW9ucyBv
ZiBgVUlTY3JpcHRDb250cm9sbGVyLmNwcGAgdG8gaG91c2UgRHVtcFJlbmRlclRyZWUgYW5kCisg
ICAgICAgIFdlYktpdFRlc3RSdW5uZXItc3BlY2lmaWMgVUlTY3JpcHRDb250cm9sbGVyIG1ldGhv
ZCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgRm9yIG5vdywgdGhlc2UgYXJlIGp1c3QgYHdp
bmRvd0lzS2V5YCBhbmQgYHNldFdpbmRvd0lzS2V5YCBiZWxvdywgd2hpY2ggcGx1bWIgaW50byB0
aGVpciByZXNwZWN0aXZlIHBsYXRmb3JtLQorICAgICAgICBhZ25vc3RpYyBgUGxhdGZvcm1XZWJW
aWV3YCBtZXRob2RzIGluIFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNj
cmlwdENvbnRyb2xsZXI6OndpbmRvd0lzS2V5IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3Jp
cHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tOgorICAgICAgICAoLVtX
ZWJLaXRUZXN0UnVubmVyV2luZG93IGJlY29tZUtleVdpbmRvd10pOgorICAgICAgICAoLVtXZWJL
aXRUZXN0UnVubmVyV2luZG93IHJlc2lnbktleVdpbmRvd10pOgorCisgICAgICAgIFVwZGF0ZSB0
aGVzZSB0d28gbWV0aG9kcyB0byB1cGRhdGUgYG1fd2luZG93SXNLZXlgIHdoZW4gdGhlIHRlc3Qg
cnVubmVyJ3MgYFVJV2luZG93YCBiZWNvbWVzIHRoZSBrZXkgd2luZG93IChvcgorICAgICAgICBz
dG9wcyBiZWluZyB0aGUga2V5IHdpbmRvdykuIFRoaXMgaXMgaW52b2tlZCB3aGVuIGAtW1VJV2lu
ZG93IG1ha2VLZXlXaW5kb3ddYCBpcyBjYWxsZWQgKGUuZy4gZnJvbSB3aXRoaW4gV2ViS2l0Cisg
ICAgICAgIGNvZGUgd2hlbiB0YXBwaW5nIG9uIGFuIGVkaXRhYmxlIGVsZW1lbnQpLgorCisgICAg
ICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkpOgorCisgICAgICAgIEF2
b2lkIGluZmluaXRlbHkgbG9vcGluZyB3aGVuIHNldHRpbmcgd2luZG93SXNLZXkgdG8gYHRydWVg
LCBkdWUgdG8gYC1iZWNvbWVLZXlXaW5kb3dgIGNhbGxpbmcgYmFjayBpbnRvCisgICAgICAgIGBz
ZXRXaW5kb3dJc0tleWAuCisKIDIwMjAtMDctMDUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1
ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjYzOTYwLgpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDUxMjA5ZDlmYTlkOTAzMDA0MGMxMDg4OGM3
Yjk3ZjA2YTVjYmE2Zi4uNTA3NTNmNTE3MzI1YjNmMjlkMjRhMThiMDcwNjdmOGQwNDg2MTcxNyAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00OCw3ICs0OCw2IEBACiAvKiBCZWdpbiBQ
QlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCQkwMEYwNDg1NDFBMEMzQzlBMDAwMjQ0REIgLyogVVJM
UmVkaXJlY3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMDBGMDQ4NTMxQTBDM0M5QTAwMDI0NERCIC8qIFVSTFJlZGlyZWN0LmNwcCAqLzsgfTsKIAkJ
MEYxOEU2RUMxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZFODFENkI5QzA3MDAy
N0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLzsgfTsKLQkJMEYxOEU2RUQxRDZCOUMwNzAw
MjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZFQTFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3Jp
cHRDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMEYxOEU3MDYxRDZCQTAyMzAwMjdFNTQ3IC8qIEpT
VUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGMThFNzA0MUQ2QkEwMjMwMDI3RTU0NyAvKiBKU1VJU2NyaXB0Q29udHJv
bGxlci5jcHAgKi87IH07CiAJCTBGMThFNzBEMUQ2QkFDOEMwMDI3RTU0NyAvKiBVSVNjcmlwdENv
bnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjE4RTcwQzFENkJBQzhDMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
ICovOyB9OwogCQkwRjE4RTcwRjFENkJBQ0I2MDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVy
TWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
OEU3MEUxRDZCQUNCNjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlck1hYy5tbSAqLzsgfTsK
QEAgLTE1Nyw2ICsxNTYsOCBAQAogCQlDMjNFQTIwODFCQzlGMDUxMDBDOTgwQjcgLyogRm9udFdp
dGhGZWF0dXJlcy5vdGYgaW4gQ29weSBGb250IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyM0VBMjA2MUJDOUVBQkEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVz
Lm90ZiAqLzsgfTsKIAkJQzIzRUEyMDkxQkM5RjA1MTAwQzk4MEI3IC8qIEZvbnRXaXRoRmVhdHVy
ZXMudHRmIGluIENvcHkgRm9udCBGaWxlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBDMjNFQTIwNzFCQzlFQUJBMDBDOTgwQjcgLyogRm9udFdpdGhGZWF0dXJlcy50dGYgKi87
IH07CiAJCUUxQjc4MTY1MTFBRjMxQjcwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQjc4
MDg3MTFBRjE2NjkwMDdFMUJDMiAvKiBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbSAqLzsgfTsK
KwkJRjQ0NUM2ODYyNEIyNzg5RDAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1QzY4
NTI0QjI3ODhGMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLzsgfTsK
KwkJRjQ0NUM2ODkyNEIyNzhFQzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDQ1QzY4ODI0QjI3
OEVDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJRjQ0QTUzMUQy
MUI4OUE0RDAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMg
LyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ0QTUzMUUyMUI4OUE1MDAwREJC
OTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRBNTMxQzIxQjg5QTQ1MDBEQkI5OUMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5tbSAqLzsgfTsKIAkJRjQ4NEMyMjMyMzdCMjdENjAwQkY3N0QwIC8q
IFVJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ4NEMyMjIyMzdCMjdENjAwQkY3N0QwIC8qIFVJU2NyaXB0Q29u
dHJvbGxlckNvY29hLm1tICovOyB9OwpAQCAtMjQ2LDcgKzI0Nyw2IEBACiAJCTAwRjA0ODUzMUEw
QzNDOUEwMDAyNDREQiAvKiBVUkxSZWRpcmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBVUkxSZWRpcmVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMThFNkU4MUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250ZXh0LmNwcDsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNkU5MUQ2QjlDMDcwMDI3RTU0
NyAvKiBVSVNjcmlwdENvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
VUlTY3JpcHRDb250ZXh0Lmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEYx
OEU2RUExRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVSVNjcmlwdENvbnRyb2xsZXIuY3BwOyBwYXRo
ID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RUIxRDZCOUMwNzAwMjdF
NTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBVSVNjcmlwdENvbnRyb2xsZXIuaDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjE4RTZGMDFENkI5QzI0MDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyLmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBVSVNjcmlwdENvbnRyb2xsZXIuaWRsOyBwYXRoID0g
Li4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250
cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RjExRDZCOUM2
NDAwMjdFNTQ3IC8qIERlcml2ZWRTb3VyY2VzLm1ha2UgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRGVyaXZlZFNvdXJjZXMubWFr
ZTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQyOCw2ICs0MjgsOCBAQAogCQlDMjNF
QTIwNzFCQzlFQUJBMDBDOTgwQjcgLyogRm9udFdpdGhGZWF0dXJlcy50dGYgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBuYW1lID0gRm9udFdp
dGhGZWF0dXJlcy50dGY7IHBhdGggPSBmb250cy9Gb250V2l0aEZlYXR1cmVzLnR0Zjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCNzgwODUxMUFGMTY0MzAwN0UxQkMyIC8qIE1vY2tH
ZW9sb2NhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1v
Y2tHZW9sb2NhdGlvblByb3ZpZGVyLmg7IHBhdGggPSBtYWMvTW9ja0dlb2xvY2F0aW9uUHJvdmlk
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFCNzgwODcxMUFGMTY2OTAwN0Ux
QkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBuYW1lID0gTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIubW07IHBhdGggPSBtYWMv
TW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDsgcGF0aCA9
IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNo
YXJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDVDNjg4MjRCMjc4RUMw
MDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVUlT
Y3JpcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUz
MTkyMUI4OUE0NDAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxQTIxQjg5QTQ0MDBEQkI5OUMgLyogQ2xhc3NN
ZXRob2RTd2l6emxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IENsYXNzTWV0aG9kU3dpenpsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
NEE1MzFCMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsYXNzTWV0aG9kU3dpenpsZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzMyw4ICs1MzUsOSBAQAogCQkJCTBGNkEwRTAwMUQ2RTBG
OEEwMEYxQzlBOCAvKiBtYWMgKi8sCiAJCQkJMEYxOEU2RTgxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5jcHAgKi8sCiAJCQkJMEYxOEU2RTkxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5oICovLAotCQkJCTBGMThFNkVBMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovLAogCQkJCTBGMThFNkVCMUQ2QjlDMDcwMDI3RTU0NyAvKiBV
SVNjcmlwdENvbnRyb2xsZXIuaCAqLywKKwkJCQlGNDQ1QzY4ODI0QjI3OEVDMDA3OTA0NDAgLyog
VUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLywKKwkJCQlGNDQ1QzY4NTI0QjI3ODhGMDA3OTA0NDAg
LyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gVUlT
Y3JpcHRDb250ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExODgsNiArMTE5
MSw3IEBACiAJCQkJQUE1QTE1RjAxNkUxNUNEMDAwRjdDNTYxIC8qIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnRJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzBFMjYxNTBFMkRBNEM2MDAxQjZCQzIg
LyogQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4
QjM5MEM5QjAyMTkwMDExNDM2OSAvKiBBcHBsZVNjcmlwdENvbnRyb2xsZXIubSBpbiBTb3VyY2Vz
ICovLAorCQkJCUY0NDVDNjg5MjRCMjc4RUMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRjQ0QTUzMUQyMUI4OUE0RDAwREJCOTlDIC8qIENsYXNz
TWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQk1M0NCQjgzMjEzNEU0MkYzMDAx
Q0U2QTQgLyogQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFB
MkZCODRGMTc4QzgwOTMwMDU5RkQ5NiAvKiBEZWZhdWx0UG9saWN5RGVsZWdhdGUubW0gaW4gU291
cmNlcyAqLywKQEAgLTEyMjcsMTAgKzEyMzEsMTAgQEAKIAkJCQlCQzAxMzFEQTBDOTc3MjAxMDA4
NzMxN0QgLyogVGVzdFJ1bm5lci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEIyNDBDOUIw
MTRCMDAxMTQzNjkgLyogVGVzdFJ1bm5lck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUY0RDQy
MzYxMURENTA0ODIwMDY3ODI5MCAvKiBUZXh0SW5wdXRDb250cm9sbGVySU9TLm0gaW4gU291cmNl
cyAqLywKKwkJCQlGNDQ1QzY4NjI0QjI3ODlEMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVy
U2hhcmVkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDQTE4QjQ5MEM5QjAyQzQwMDExNDM2OSAv
KiBUZXh0SW5wdXRDb250cm9sbGVyTWFjLm0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0ExOEI2QTBD
OUIwOEMyMDAxMTQzNjkgLyogVUlEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMThF
NkVDMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJMEYxOEU2RUQxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNDg0QzIyMzIzN0IyN0Q2MDBCRjc3RDAgLyogVUlTY3JpcHRD
b250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcwRDFENkJBQzhDMDAy
N0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEYx
OEU3MEYxRDZCQUNCNjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVUlTY3JpcHRDb250cm9s
bGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1VJU2NyaXB0Q29udHJvbGxlci5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNGEyNTRmZDMxZjVhYTI2Njk3Y2RkNTMyODc3NzBhMzAzOGRlODAxNQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1VJU2NyaXB0Q29udHJvbGxlci5jcHAK
QEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJVSVNjcmlwdENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVUlT
Y3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleShib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjp3aW5kb3dJc0tleSgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwK
aW5kZXggOWQ5ZGJhYzRhY2U0YzU2NWZmNzBiNTBlZTJkNzUyMWUwOWJjM2VmYS4uOWZkNjdmZDY0
Mjg4ZTE5YmFhYTI5ODhkZjJlNDViNDMxZWI0YzhhOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9V
SVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yNDEsNiArMjQxLDggQEAgaW50ZXJmYWNlIFVJU2Ny
aXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNTaG93aW5n
S2V5Ym9hcmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaGFzSW5wdXRTZXNzaW9u
OwogCisgICAgYXR0cmlidXRlIGJvb2xlYW4gd2luZG93SXNLZXk7CisKICAgICBhdHRyaWJ1dGUg
b2JqZWN0IGRpZFNob3dNZW51Q2FsbGJhY2s7CiAgICAgYXR0cmlidXRlIG9iamVjdCBkaWRIaWRl
TWVudUNhbGxiYWNrOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzRGlzbWlzc2lu
Z01lbnU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMmFjM2Q2NGViMzJmNTgwY2FjYTg1ODNmZmU3MDQ3Yjc5NjMxYWE3Yi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisrKyAvZGV2L251bGwK
QEAgLTEsMjQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCi0KLSNpbmNsdWRlICJKU1VJU2NyaXB0Q29udHJv
bGxlci5oIgotI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4dC5oIgotI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTVmFsdWVSZWYuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0
cmluZy5oPgotCi1uYW1lc3BhY2UgV1RSIHsKLQotRGV2aWNlT3JpZW50YXRpb24qIHRvRGV2aWNl
T3JpZW50YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCi17Ci0g
ICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uIHZhbHVlc1tdID0gewotICAgICAgICBEZXZpY2VP
cmllbnRhdGlvbjo6UG9ydHJhaXQsCi0gICAgICAgIERldmljZU9yaWVudGF0aW9uOjpQb3J0cmFp
dFVwc2lkZURvd24sCi0gICAgICAgIERldmljZU9yaWVudGF0aW9uOjpMYW5kc2NhcGVMZWZ0LAot
ICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNjYXBlUmlnaHQKLSAgICB9OwotCi0gICAg
YXV0byBvcHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBu
dWxscHRyKSk7Ci0gICAgaWYgKG9wdGlvbi5nZXQoKS0+c3RyaW5nKCkgPT0gInBvcnRyYWl0IikK
LSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMF07Ci0gICAgICAgIAotICAgIGlmIChvcHRpb24uZ2V0
KCktPnN0cmluZygpID09ICJwb3J0cmFpdC11cHNpZGVkb3duIikKLSAgICAgICAgcmV0dXJuICZ2
YWx1ZXNbMV07Ci0gICAgICAgIAotICAgIGlmIChvcHRpb24uZ2V0KCktPnN0cmluZygpID09ICJs
YW5kc2NhcGUtbGVmdCIpCi0gICAgICAgIHJldHVybiAmdmFsdWVzWzJdOwotICAgICAgICAKLSAg
ICBpZiAob3B0aW9uLmdldCgpLT5zdHJpbmcoKSA9PSAibGFuZHNjYXBlLXJpZ2h0IikKLSAgICAg
ICAgcmV0dXJuICZ2YWx1ZXNbM107Ci0gICAgICAgIAotICAgIHJldHVybiBudWxscHRyOwotfQot
Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0lO
KSAmJiAhUExBVEZPUk0oV1BFKQotUmVmPFVJU2NyaXB0Q29udHJvbGxlcj4gVUlTY3JpcHRDb250
cm9sbGVyOjpjcmVhdGUoVUlTY3JpcHRDb250ZXh0JiBjb250ZXh0KQotewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFVJU2NyaXB0Q29udHJvbGxlcihjb250ZXh0KSk7Ci19Ci0jZW5kaWYKLQot
VUlTY3JpcHRDb250cm9sbGVyOjpVSVNjcmlwdENvbnRyb2xsZXIoVUlTY3JpcHRDb250ZXh0JiBj
b250ZXh0KQotICAgIDogbV9jb250ZXh0KCZjb250ZXh0KQotewotfQotCi12b2lkIFVJU2NyaXB0
Q29udHJvbGxlcjo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgbV9jb250ZXh0ID0gbnVsbHB0
cjsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6Om1ha2VXaW5kb3dPYmplY3QoSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQotewotICAgIHNldFByb3BlcnR5KGNvbnRleHQsIHdpbmRvd09iamVjdCwgInVpQ29u
dHJvbGxlciIsIHRoaXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUsIGV4Y2VwdGlvbik7Ci19Ci0KLUpTQ2xhc3NSZWYgVUlTY3Jp
cHRDb250cm9sbGVyOjp3cmFwcGVyQ2xhc3MoKQotewotICAgIHJldHVybiBKU1VJU2NyaXB0Q29u
dHJvbGxlcjo6dUlTY3JpcHRDb250cm9sbGVyQ2xhc3MoKTsKLX0KLQotdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFs
dWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxi
YWNrLCBDYWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24pOwotfQotCi1K
U1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0
aW9uQ2FsbGJhY2soKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0
aElEKENhbGxiYWNrVHlwZURpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbik7Ci19Ci0KLXZv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2Fs
bGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2Fs
bGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24p
OwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRW5kRm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKLX0K
LSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxs
YmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRleHRNZW51KTsKLX0KLQotSlNW
YWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNob3dDb250ZXh0TWVudUNhbGxiYWNrKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5
cGVEaWRTaG93Q29udGV4dE1lbnUpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0
RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAg
ICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZERp
c21pc3NDb250ZXh0TWVudSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpk
aWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29u
dGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0NvbnRleHRNZW51KTsK
LX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFj
ayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFj
ayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbEJlZ2luWm9vbWluZyk7Ci19Ci0KLUpTVmFsdWVS
ZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsQmVnaW5ab29taW5nQ2FsbGJhY2soKSBjb25zdAot
ewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZVdpbGxC
ZWdpblpvb21pbmcpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kWm9v
bWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdp
c3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRFbmRab29taW5nKTsKLX0KLQot
SlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZFpvb21pbmdDYWxsYmFjaygpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBl
RGlkRW5kWm9vbWluZyk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsQ3Jl
YXRlTmV3UGFnZUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0
LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVXaWxsQ3JlYXRlTmV3UGFn
ZSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsQ3JlYXRlTmV3UGFn
ZUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJ
RChDYWxsYmFja1R5cGVXaWxsQ3JlYXRlTmV3UGFnZSk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250
cm9sbGVyOjpzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQot
ewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBl
RGlkRW5kU2Nyb2xsaW5nKTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRp
ZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRTY3JvbGxpbmcpOwotfQotCi12b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0tleWJvYXJkQ2FsbGJhY2soSlNWYWx1ZVJlZiBj
YWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENh
bGxiYWNrVHlwZURpZFNob3dLZXlib2FyZCk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250
cm9sbGVyOjpkaWRTaG93S2V5Ym9hcmRDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
Y29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd0tleWJvYXJkKTsKLX0K
LQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhpZGVLZXlib2FyZENhbGxiYWNrKEpT
VmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNh
bGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOwotfQotCi1KU1ZhbHVlUmVmIFVJ
U2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKSBjb25zdAotewotICAg
IHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEhpZGVLZXli
b2FyZCk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93TWVudUNhbGxi
YWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxi
YWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93TWVudSk7Ci19Ci0KLUpTVmFsdWVSZWYg
VUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93TWVudUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93TWVudSk7
Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlTWVudUNhbGxiYWNrKEpT
VmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNh
bGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3Jp
cHRDb250cm9sbGVyOjpkaWRIaWRlTWVudUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7Ci19Ci0K
LXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjayhK
U1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhj
YWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKLX0KLQotSlNWYWx1ZVJl
ZiBVSVNjcmlwdENvbnRyb2xsZXI6OndpbGxQcmVzZW50UG9wb3ZlckNhbGxiYWNrKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVXaWxs
UHJlc2VudFBvcG92ZXIpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlz
bWlzc1BvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4
dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92
ZXIpOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlzc1BvcG92
ZXJDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRo
SUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIpOwotfQotCi12b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0cmluZ1JlZiByZXN1bHQpCi17Ci0gICAgbV9j
b250ZXh0LT5yZXF1ZXN0VUlTY3JpcHRDb21wbGV0aW9uKHJlc3VsdCk7Ci0gICAgY2xlYXJBbGxD
YWxsYmFja3MoKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRpc21pc3NNZW51KCkK
LXsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNob29zZU1lbnVBY3Rpb24oSlNTdHJp
bmdSZWYsIEpTVmFsdWVSZWYpCi17Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKaW5kZXgg
NjA5M2VkNWEyNWEzMDA3OWU5NWE0ODJlNzZhZDY4YWVjZDU4NDgyNi4uOWZhYTZkNjFjNGUwNThl
NTRkMzBiMTY0ZmU3YWZhMTgwZTdlZmE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKQEAgLTE4
OCw2ICsxODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxhY2VUZXh0QXRSYW5n
ZShKU1N0cmluZ1JlZiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKSB7IG5vdEltcGxlbWVudGVk
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsRHluYW1pY0RpY3Rpb25hcmllcygpIHsg
bm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgdmlydHVhbCBib29sIHdpbmRvd0lzS2V5KCkgY29u
c3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd0lzS2V5KGJvb2wpOworCiAgICAgLy8gU3R5
bHVzCiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bHVzRG93bkF0UG9pbnQobG9uZyB4LCBsb25nIHks
IGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUs
IEpTVmFsdWVSZWYgY2FsbGJhY2spIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
U2hhcmVkLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlclNoYXJlZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjNGI2ZDAyYjU2MTYwMGJlMmNm
ZmYwMmQ4MzY4ZWFmY2U5OWM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKQEAgLTAs
MCArMSwyNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
VUlTY3JpcHRDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJKU1VJU2NyaXB0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4dC5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTVmFsdWVSZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5o
PgorCituYW1lc3BhY2UgV1RSIHsKKworRGV2aWNlT3JpZW50YXRpb24qIHRvRGV2aWNlT3JpZW50
YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUpCit7CisgICAgc3Rh
dGljIERldmljZU9yaWVudGF0aW9uIHZhbHVlc1tdID0geworICAgICAgICBEZXZpY2VPcmllbnRh
dGlvbjo6UG9ydHJhaXQsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uOjpQb3J0cmFpdFVwc2lk
ZURvd24sCisgICAgICAgIERldmljZU9yaWVudGF0aW9uOjpMYW5kc2NhcGVMZWZ0LAorICAgICAg
ICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNjYXBlUmlnaHQKKyAgICB9OworCisgICAgYXV0byBv
cHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZhbHVlLCBudWxscHRy
KSk7CisgICAgaWYgKG9wdGlvbi0+c3RyaW5nKCkgPT0gInBvcnRyYWl0IikKKyAgICAgICAgcmV0
dXJuICZ2YWx1ZXNbMF07CisKKyAgICBpZiAob3B0aW9uLT5zdHJpbmcoKSA9PSAicG9ydHJhaXQt
dXBzaWRlZG93biIpCisgICAgICAgIHJldHVybiAmdmFsdWVzWzFdOworCisgICAgaWYgKG9wdGlv
bi0+c3RyaW5nKCkgPT0gImxhbmRzY2FwZS1sZWZ0IikKKyAgICAgICAgcmV0dXJuICZ2YWx1ZXNb
Ml07CisKKyAgICBpZiAob3B0aW9uLT5zdHJpbmcoKSA9PSAibGFuZHNjYXBlLXJpZ2h0IikKKyAg
ICAgICAgcmV0dXJuICZ2YWx1ZXNbM107CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2lm
ICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdJTikgJiYg
IVBMQVRGT1JNKFdQRSkKK1JlZjxVSVNjcmlwdENvbnRyb2xsZXI+IFVJU2NyaXB0Q29udHJvbGxl
cjo6Y3JlYXRlKFVJU2NyaXB0Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBVSVNjcmlwdENvbnRyb2xsZXIoY29udGV4dCkpOworfQorI2VuZGlmCisKK1VJU2Ny
aXB0Q29udHJvbGxlcjo6VUlTY3JpcHRDb250cm9sbGVyKFVJU2NyaXB0Q29udGV4dCYgY29udGV4
dCkKKyAgICA6IG1fY29udGV4dCgmY29udGV4dCkKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OmNvbnRleHREZXN0cm95ZWQoKQoreworICAgIG1fY29udGV4dCA9IG51bGxwdHI7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjptYWtlV2luZG93T2JqZWN0KEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKK3sKKyAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3QsICJ1aUNvbnRyb2xs
ZXIiLCB0aGlzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlLCBleGNlcHRpb24pOworfQorCitKU0NsYXNzUmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6d3JhcHBlckNsYXNzKCkKK3sKKyAgICByZXR1cm4gSlNVSVNjcmlwdENvbnRyb2xs
ZXI6OnVJU2NyaXB0Q29udHJvbGxlckNsYXNzKCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywg
Q2FsbGJhY2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKK30KKworSlNWYWx1
ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChD
YWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24pOworfQorCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNr
KEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNr
KGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKK30K
KworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZEZvcm1Db250cm9sSW50ZXJh
Y3Rpb25DYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tX
aXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbik7Cit9CisgICAg
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRleHRNZW51Q2FsbGJhY2so
SlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2so
Y2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dDb250ZXh0TWVudSk7Cit9CisKK0pTVmFsdWVS
ZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjaygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlk
U2hvd0NvbnRleHRNZW51KTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERp
c21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9j
b250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWREaXNtaXNz
Q29udGV4dE1lbnUpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlz
bWlzc0NvbnRleHRNZW51Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQt
PmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NDb250ZXh0TWVudSk7Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsQmVnaW5ab29taW5nQ2FsbGJhY2soSlNW
YWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2Fs
bGJhY2ssIENhbGxiYWNrVHlwZVdpbGxCZWdpblpvb21pbmcpOworfQorCitKU1ZhbHVlUmVmIFVJ
U2NyaXB0Q29udHJvbGxlcjo6d2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVXaWxsQmVnaW5a
b29taW5nKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEVuZFpvb21pbmdD
YWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJD
YWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkRW5kWm9vbWluZyk7Cit9CisKK0pTVmFs
dWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRab29taW5nQ2FsbGJhY2soKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEVu
ZFpvb21pbmcpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbENyZWF0ZU5l
d1BhZ2VDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVn
aXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbENyZWF0ZU5ld1BhZ2UpOwor
fQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d2lsbENyZWF0ZU5ld1BhZ2VDYWxs
YmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2Fs
bGJhY2tUeXBlV2lsbENyZWF0ZU5ld1BhZ2UpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6c2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAg
ICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZEVu
ZFNjcm9sbGluZyk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRT
Y3JvbGxpbmdDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJh
Y2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nKTsKK30KKwordm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnNldERpZFNob3dLZXlib2FyZENhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJh
Y2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFj
a1R5cGVEaWRTaG93S2V5Ym9hcmQpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxl
cjo6ZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRl
eHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFNob3dLZXlib2FyZCk7Cit9CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlS2V5Ym9hcmRDYWxsYmFjayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFj
aywgQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlw
dENvbnRyb2xsZXI6OmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQp
OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd01lbnVDYWxsYmFjayhK
U1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhj
YWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd01lbnUpOworfQorCitKU1ZhbHVlUmVmIFVJU2Ny
aXB0Q29udHJvbGxlcjo6ZGlkU2hvd01lbnVDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd01lbnUpOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkSGlkZU1lbnVDYWxsYmFjayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFj
aywgQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZGlkSGlkZU1lbnVDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
dGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUpOworfQorCit2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbFByZXNlbnRQb3BvdmVyQ2FsbGJhY2soSlNWYWx1
ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJh
Y2ssIENhbGxiYWNrVHlwZVdpbGxQcmVzZW50UG9wb3Zlcik7Cit9CisKK0pTVmFsdWVSZWYgVUlT
Y3JpcHRDb250cm9sbGVyOjp3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlV2lsbFByZXNl
bnRQb3BvdmVyKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NQ
b3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJl
Z2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsK
K30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZERpc21pc3NQb3BvdmVyQ2Fs
bGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENh
bGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQoreworICAgIG1fY29udGV4
dC0+cmVxdWVzdFVJU2NyaXB0Q29tcGxldGlvbihyZXN1bHQpOworICAgIGNsZWFyQWxsQ2FsbGJh
Y2tzKCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNzTWVudSgpCit7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjaG9vc2VNZW51QWN0aW9uKEpTU3RyaW5nUmVm
LCBKU1ZhbHVlUmVmKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2Ny
aXB0Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5MDZjOTI1YjVjZDg1ZWZmYzA2OGM0ZGEx
YWE3NjIxMjc1MjBlZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJU2NyaXB0Q29udHJvbGxlci5oIgorCisjaW5j
bHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKwor
bmFtZXNwYWNlIFdUUiB7CisKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjp3aW5kb3dJc0tleSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2Vi
VmlldygpLT53aW5kb3dJc0tleSgpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0
V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAgICBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkubWFpbldlYlZpZXcoKS0+c2V0V2luZG93SXNLZXkoaXNLZXkpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1
bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9X
ZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMDIwZDZlZTM0
NDhjODQ0YzFjMmE2NmM5YjQ3OGQzMzJiZDc1MGU3Ni4uYzNjMzYzZmE3ZGUwNGJjNWQ0YTgyZDcw
MDA0N2U1YjdjOWRiMjJkNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJL
aXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTQ1LDcgKzQ1LDcgQEAKIAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAkJMEYx
OEU2RTUxRDZCOUI5RTAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERDFENkI5QUFGMDAyN0U1
NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLzsgfTsKLQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdF
NTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRD
b250cm9sbGVyLmNwcCAqLzsgfTsKKwkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2Ny
aXB0Q29udHJvbGxlclNoYXJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9s
bGVyU2hhcmVkLmNwcCAqLzsgfTsKIAkJMEYxOEU3MTgxRDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3Jh
cHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjE4RTcxNTFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCAqLzsgfTsKIAkJMEY0QjA4
NzMxRDVCRTg4RDAwRUMxQjc4IC8qIExhdW5jaC5zdG9yeWJvYXJkIGluIFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCMDg3MjFENUJFODhEMDBFQzFCNzgg
LyogTGF1bmNoLnN0b3J5Ym9hcmQgKi87IH07CiAJCTBGNTE2OUNDMTQ0NTIyMkQwMEUwQTlENyAv
KiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1MjIyRDAwRTBBOUQ3IC8qIFdlYktpdC5mcmFtZXdvcmsg
Ki87IH07CkBAIC0xNTIsNiArMTUyLDggQEAKIAkJRTEzMkFBM0QxN0NFNzc2RjAwNjExREYwIC8q
IFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEUxMzJBQTNCMTdDRTc3NkYwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVu
bmVyRXZlbnQubW0gKi87IH07CiAJCUUxQzY0MkMzMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXND
bGFzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUx
QzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5tbSAqLzsgfTsKIAkJRTFDNjQy
QzYxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFDNjQyQzQxN0NCQ0Q0
QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tICovOyB9OworCQlGNDQ1
QzY4NDI0QjI3N0UzMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjgzMjRCMjc3RTMwMDc5
MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OworCQlGNDQ1QzY4QTI0QjI3QUND
MDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNDRBNTMxNzIxQjg5OUUyMDBEQkI5OUMgLyog
Q2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY0NEE1MzE0MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6
bGVyLm1tICovOyB9OwogCQlGNDRBNTMxODIxQjg5OUU1MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRo
b2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NEE1MzE2MjFCODk5REEwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
ICovOyB9OwogCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVy
Q29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDYyNDBBRjIxNzAxMjgzMDA5MTdCMTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi87
IH07CkBAIC0yMjEsNyArMjIzLDcgQEAKIC8qIEJlZ2luIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlv
biAqLwogCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFVJU2NyaXB0Q29udGV4dC5jcHA7
IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRl
eHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE4RTZERTFENkI5QUFGMDAy
N0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFVJU2NyaXB0Q29udGV4dC5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyLmNwcDsg
cGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMThFNkRGMUQ2QjlBQUYw
MDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDsgcGF0aCA9
IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNo
YXJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNkUwMUQ2QjlBQUYw
MDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyLmg7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVk
L1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMEYxOEU2RTMxRDZCOUFCRjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxl
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyLmlkbDsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0
Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNzE0MUQ2
QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwYWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBKU1dyYXBwYWJsZS5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5n
cy9KU1dyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDEwLDYgKzQx
Miw3IEBACiAJCUUxQzY0MkMyMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3NlQXNDbGFzcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlFMUM2NDJDNDE3Q0JDRDRDMDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1
bm5lclBhc3RlYm9hcmQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRTFDNjQyQzUxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJv
YXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQ
YXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0NDVDNjgzMjRCMjc3
RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VUlTY3JpcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0
QTUzMTMyMUI4OTlEQTAwREJCOTlDIC8qIEluc3RhbmNlTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFuY2VNZXRob2RTd2l6emxlci5oOyBwYXRo
ID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1MzE0MjFCODk5REEwMERCQjk5QyAvKiBD
bGFzc01ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQv
Y29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjQ0QTUzMTUyMUI4OTlEQTAwREJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBwYXRo
ID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFzc01ldGhvZFN3aXp6bGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDMsNiArNTA2LDcgQEAKIAkJCQlCQ0Q3RDJGNjEx
OTIxMjc4MDA2REI3RUUgLyogVGVzdEludm9jYXRpb24uaCAqLywKIAkJCQkwRjYyMkNFODFCQkIz
QTFBMDA4MzhBRDMgLyogVGVzdE9wdGlvbnMuY3BwICovLAogCQkJCTFBMzMyNjA1MUI3NTM5NjUw
MEY4OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovLAorCQkJCUY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0
MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovLAogCQkJCUJDMjUxQTE3MTFEMTY3NzQwMDJF
QkMwMSAvKiBXZWJLaXRUZXN0UnVubmVyUHJlZml4LmggKi8sCiAJCQkJMzE2NEM4RUYxNUQxQURB
MTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcCAqLywKIAkJCQkzMTEwQkUw
RjE1QkEwMTE0MDBEMjE2QUMgLyogV2ViTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLywKQEAgLTU1
Nyw4ICs1NjEsOCBAQAogCQkJCTJEQjYxODdGMUQ3RDU5ODgwMDk3OEQxOSAvKiBzcGkgKi8sCiAJ
CQkJMEYxOEU2REQxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgKi8sCiAJ
CQkJMEYxOEU2REUxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5oICovLAotCQkJ
CTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovLAog
CQkJCTBGMThFNkUwMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaCAqLywK
KwkJCQkwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVk
LmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gVUlTY3JpcHRDb250ZXh0OwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKQEAgLTExNjUsNiArMTE2OSw3IEBACiAJCQkJQkM3OTM0RTgxMTkwNjg0
NjAwNUVBOEUyIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUx
QzY0MkMzMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDOEM3OTVDMTFEMjc4NUQwMDQ1MzVBMSAvKiBUZXN0Q29udHJvbGxlck1hYy5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUY0NDVDNjg0MjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRy
b2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4N0I2MTMxQkFDQUQ4MjAwNEVDNTcyIC8q
IFVJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUUxMzJBQTNBMTdD
RDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRTEzMkFBM0QxN0NFNzc2RjAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJF
dmVudC5tbSBpbiBTb3VyY2VzICovLApAQCAtMTE5OSw5ICsxMjA0LDEwIEBACiAJCQkJMEY4N0I2
MTcxQkFDQzRDMDAwNEVDNTcyIC8qIFRlc3RSdW5uZXJXS1dlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKIAkJCQk0MUM1Mzc4RTIxRjEzNDE0MDA4QjFGQUQgLyogVGVzdFdlYnNpdGVEYXRhU3RvcmVE
ZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGMThFNkU1MUQ2QjlCOUUwMDI3RTU0NyAv
KiBVSVNjcmlwdENvbnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOEU2RTYxRDZCOUJB
MjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlG
NDQ1QzY4QTI0QjI3QUNDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUY0NjI0MEIxMjE3MDEzRTUwMDkxN0IxNiAvKiBVSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGNzNCNTVDMUJBODkwNDIwMDRCM0VGNCAv
KiBVSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjE4RTZFNjFE
NkI5QkEyMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUExODUxMDQzMUI5QUUxNDUwMDc0NEFFQiAvKiBXZWJOb3RpZmljYXRpb25Qcm92
aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0NDFCOUFFMTRBMDA3NDRBRUIgLyog
V29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0gYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KaW5kZXggMDFlMjZmOTJm
ZDllNWNhNmYzYWZiMTEyN2JlZjc3ZThhMWNiMDM2My4uODc5MGE3OGJjMDAzYWFjMjJiNjMxOGY5
ZWQ3YzUxZDM0ZDdkYjRjOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
UGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1Bs
YXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNjcsNiArNjcsMjIgQEAgLSAoaWQpaW5pdFdpdGhGcmFt
ZTooQ0dSZWN0KWZyYW1lCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpYmVjb21lS2V5
V2luZG93Cit7CisgICAgW3N1cGVyIGJlY29tZUtleVdpbmRvd107CisKKyAgICBpZiAoX3BsYXRm
b3JtV2ViVmlldykKKyAgICAgICAgX3BsYXRmb3JtV2ViVmlldy0+c2V0V2luZG93SXNLZXkodHJ1
ZSk7Cit9CisKKy0gKHZvaWQpcmVzaWduS2V5V2luZG93Cit7CisgICAgW3N1cGVyIHJlc2lnbktl
eVdpbmRvd107CisKKyAgICBpZiAoX3BsYXRmb3JtV2ViVmlldykKKyAgICAgICAgX3BsYXRmb3Jt
V2ViVmlldy0+c2V0V2luZG93SXNLZXkoZmFsc2UpOworfQorCiAtICh2b2lkKWRlYWxsb2MKIHsK
ICAgICBhbGxXaW5kb3dzLnJlbW92ZUZpcnN0KHNlbGYpOwpAQCAtMjEyLDcgKzIyOCw3IEBAIFBs
YXRmb3JtV2luZG93IFBsYXRmb3JtV2ViVmlldzo6a2V5V2luZG93KCkKIHZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjpzZXRXaW5kb3dJc0tleShib29sIGlzS2V5KQogewogICAgIG1fd2luZG93SXNLZXkg
PSBpc0tleTsKLSAgICBpZiAoaXNLZXkpCisgICAgaWYgKGlzS2V5ICYmICFtX3dpbmRvdy5rZXlX
aW5kb3cpCiAgICAgICAgIFttX3dpbmRvdyBtYWtlS2V5V2luZG93XTsKIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE3
ZDMwZTNkNzY1NzhmMTliYzI2Y2E1ODhhMmI2YTYxYjA4MjUyNTguLmEzY2I5YWQwNWE0ZTYzYTZi
OTMzZTA4ZGE1MzJkMjVkZTI1MDViYTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMC0wNy0w
NSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBh
ZE9TXSBVbmFibGUgdG8gY2hhbmdlIGZvY3VzIGJldHdlZW4gR29vZ2xlIERvY3Mgd2luZG93cyBi
eSB0YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDgzMjY3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVz
dCB0byB2ZXJpZnkgdGhhdCB0YXBwaW5nIHRvIGZvY3VzIGEgcGxhaW4gdGV4dGFyZWEgY2F1c2Vz
IHRoZSB3ZWIgdmlldydzIHdpbmRvdyB0byBiZWNvbWUKKyAgICAgICAgdGhlIGtleSB3aW5kb3cs
IGFzIHdlbGwgYXMgdGFwcGluZyB0byBmb2N1cyBhIGhpZGRlbiBjb250ZW50ZWRpdGFibGUgYXJl
YSwgb3ZlciBhIHRvdWNoIGhhbmRsZXIgdGhhdCBwcmV2ZW50cworICAgICAgICBkZWZhdWx0Lgor
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9zL2JlY29tZS1rZXktd2luZG93LXdoZW4t
Zm9jdXNpbmctZWRpdGFibGUtYXJlYS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRh
YmxlLWFyZWEuaHRtbDogQWRkZWQuCisgICAgICAgICogcmVzb3VyY2VzL3VpLWhlbHBlci5qczoK
KyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5zZXRXaW5kb3dJc0tleSk6CisgICAgICAgICh3aW5k
b3cuVUlIZWxwZXIud2luZG93SXNLZXkpOgorCiAyMDIwLTA3LTAzICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYVJlY29yZGVyIHNob3VsZCBzdXBwb3J0
IHBlZXIgY29ubmVjdGlvbiByZW1vdGUgdmlkZW8gdHJhY2tzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2lu
Zy1lZGl0YWJsZS1hcmVhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2lvcy9iZWNvbWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MTcwMDgyMDJmNDhlNGY4MjljMjgyZmQ3NDFhM2JjZTll
YjVkYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9p
b3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1hcmVhLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBmb2N1c2luZyBl
ZGl0YWJsZSBlbGVtZW50cyB1cGRhdGVzIHRoZSBrZXkgd2luZG93LiBUaGlzIHRlc3QgcmVxdWly
ZXMgV2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BB
U1MgQmVjYW1lIGtleSB3aW5kb3cgYWZ0ZXIgdGFwcGluZyBvbiBURVhUQVJFQQorUEFTUyBCZWNh
bWUga2V5IHdpbmRvdyBhZnRlciB0YXBwaW5nIG9uIEJVVFRPTgorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVk
aXRhYmxlLWFyZWEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNv
bWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xM2E5ZmZjNTRmYjQ0NDgwMDlhZGNhMzVmODY3NzViNDYyMGVkMTg2Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2JlY29tZS1rZXktd2luZG93
LXdoZW4tZm9jdXNpbmctZWRpdGFibGUtYXJlYS5odG1sCkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9D
VFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9
dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+Cis8aGVhZD4KKyAgICA8c3R5bGU+
CisgICAgI3RpbnktZWRpdG9yIHsKKyAgICAgICAgd2lkdGg6IDAuNXB4OworICAgICAgICBoZWln
aHQ6IDAuNXB4OworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMDsK
KyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICAgICAgb3V0
bGluZTogbm9uZTsKKyAgICB9CisKKyAgICB0ZXh0YXJlYSwgYnV0dG9uIHsKKyAgICAgICAgd2lk
dGg6IDI4MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7CisgICAgICAgIGRpc3BsYXk6IGJsb2Nr
OworICAgICAgICBmb250LXNpemU6IDIwcHg7CisgICAgfQorICAgIDwvc3R5bGU+CisgICAgPHNj
cmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGFkZEV2ZW50TGlzdGVuZXIo
ImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVy
aWZpZXMgdGhhdCBmb2N1c2luZyBlZGl0YWJsZSBlbGVtZW50cyB1cGRhdGVzIHRoZSBrZXkgd2lu
ZG93LiBUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4iKTsKKworICAgICAgICBj
b25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInRleHRhcmVhIik7CisgICAg
ICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImJ1dHRvbiIpOworCisg
ICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwgKGV2ZW50KSA9PiB7
CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjdGlueS1lZGl0b3IiKS5mb2N1
cygpOworICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKKyAgICAgICAgfSk7CisK
KyAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIFt0ZXh0YXJlYSwgYnV0dG9uXSkgeworICAgICAg
ICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0V2luZG93SXNLZXkoZmFsc2UpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbihlbGVt
ZW50KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0
ID0gYXdhaXQgVUlIZWxwZXIud2luZG93SXNLZXkoKTsKKyAgICAgICAgICAgICAgICBpZiAocmVz
dWx0KQorICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHRlc3RQYXNzZWQoYEJlY2FtZSBrZXkgd2luZG93IGFmdGVyIHRhcHBpbmcgb24gJHtlbGVt
ZW50LnRhZ05hbWV9YCk7CisgICAgICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIo
KTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOwor
ICAgICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTsKKyAgICAgICAgfQorICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxk
aXYgaWQ9InRpbnktZWRpdG9yIiBjb250ZW50ZWRpdGFibGU+PC9kaXY+CisgICAgPHRleHRhcmVh
PkZpcnN0LCBjbGljayBoZXJlPC90ZXh0YXJlYT4KKyAgICA8YnV0dG9uPlRoZW4sIGNsaWNrIGhl
cmU8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxl
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0
VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCBiZTA4NGEzMGE5NjY2NzY3ZThjMTMz
MDQ4NDQ1ZmUyZWYwNGQzNjY2Li43ZDYwZjdkYmI1NmYyMjQ3ODBhZmQwY2E0YzFkOGU0MzIzZGQ0
ODIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisrKyBi
L0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTExODgsNiArMTE4OCwyMCBA
QCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0K
IAorICAgIHN0YXRpYyBzZXRXaW5kb3dJc0tleShpc0tleSkKKyAgICB7CisgICAgICAgIGNvbnN0
IHNjcmlwdCA9IGB1aUNvbnRyb2xsZXIud2luZG93SXNLZXkgPSAke2lzS2V5fWA7CisgICAgICAg
IHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2Ny
aXB0LCByZXNvbHZlKSk7CisgICAgfQorCisgICAgc3RhdGljIHdpbmRvd0lzS2V5KCkKKyAgICB7
CisgICAgICAgIGNvbnN0IHNjcmlwdCA9ICJ1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSh1
aUNvbnRyb2xsZXIud2luZG93SXNLZXkpIjsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJl
c29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChzY3JpcHQsIChyZXN1bHQpID0+IHsKKyAg
ICAgICAgICAgIHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpOworICAgICAgICB9KSk7CisgICAg
fQorCiAgICAgc3RhdGljIHdhaXRGb3JEb3VibGVUYXBEZWxheSgpCiAgICAgewogICAgICAgICBj
b25zdCB1aVNjcmlwdCA9IGB1aUNvbnRyb2xsZXIuZG9BZnRlckRvdWJsZVRhcERlbGF5KCgpID0+
IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCIiKSlgOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403576</attachid>
            <date>2020-07-05 23:45:11 -0700</date>
            <delta_ts>2020-07-06 09:08:25 -0700</delta_ts>
            <desc>Fix GTK/WPE builds</desc>
            <filename>bug-213985-20200705234510.patch</filename>
            <type>text/plain</type>
            <size>52958</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlODg1NTU1Nzk5MWU2OWY3
YTk1MDMwNGJiNmVjNTMyNTg3NThkMTMuLmI3MmViZDQzNzA5NmUzMjVhNGUzMTk3OTBhZTJlZDlj
MTg0NWQwZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDcgQEAKKzIwMjAtMDctMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPU10gVW5hYmxl
IHRvIGNoYW5nZSBmb2N1cyBiZXR3ZWVuIEdvb2dsZSBEb2NzIHdpbmRvd3MgYnkgdGFwcGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzA4MzI2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHB1dHRpbmcgdHdvIEdvb2dsZSBEb2NzIHdp
bmRvd3Mgc2lkZS1ieS1zaWRlIG9uIGlQYWQsIGl0J3MgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0
byBjaGFuZ2UgdGhlIHdpbmRvdyB0bworICAgICAgICB3aGljaCBrZXlib2FyZCBpbnB1dCBpcyBy
b3V0ZWQuIEluIG5hdGl2ZSB2aWV3cyAoZS5nLiB0d28gc2lkZS1ieS1zaWRlIE5vdGVzIHdpbmRv
d3MpLCB0aGlzIGlzIG5vcm1hbGx5IGhhbmRsZWQKKyAgICAgICAgYnkgYFVJVGV4dE11bHRpVGFw
UmVjb2duaXplcmAsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGBVSVRleHRTZWxlY3Rpb25JbnRlcmFj
dGlvbmA7IHRhcHBpbmcgdG8gcGxhY2UgdGhlIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIGNhbGxz
IGludG8gYC1bVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2V0Rmlyc3RSZXNwb25kZXJJZk5l
Y2Vzc2FyeUFjdGl2YXRpbmdTZWxlY3Rpb246XWAsIHdoaWNoCisgICAgICAgIHVwZGF0ZXMgdGhl
IGtleSB3aW5kb3cgaWYgbmVlZGVkLiBUaGlzIGRvZXNuJ3QgYXBwbHkgdG8gR29vZ2xlIERvY3Mg
YmVjYXVzZSB0aGV5IGluc3RlYWQgdXNlIHRvdWNoIGV2ZW50cyB0bworICAgICAgICBkcml2ZSB0
aGVpciBvd24gInRleHQgaW50ZXJhY3Rpb24iLWxpa2UgYmVoYXZpb3JzIGluc3RlYWQgb2YgcmVs
eWluZyBvbiBzeXN0ZW0gZ2VzdHVyZSByZWNvZ25pemVycywgd2hpY2ggd2UKKyAgICAgICAgc3Vw
cHJlc3MgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4gYSBoaWRk
ZW4gY29udGVudGVkaXRhYmxlLgorCisgICAgICAgIEJ1dCBldmVuIGluIG5vbi1oaWRkZW4gZWRp
dGFibGUgYXJlYXMsIHRoZSBpbml0aWFsIHRhcCB0byBmb2N1cyBhbiBlZGl0YWJsZSBlbGVtZW50
IHN0aWxsIGRvZXNuJ3QgYXV0b21hdGljYWxseQorICAgICAgICBtYWtlIHRoZSB3aW5kb3cga2V5
LCBzaW5jZSB0aGUgZWRpdGFibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBhcmUgc3RpbGwg
aW5hY3RpdmUgd2hlbiB0YXBwaW5nIHRvIGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnQuIFRoaXMgbWVhbnMgdHdvIHRhcHMgYXJlIGN1cnJlbnRseSByZXF1aXJlZCB0byBjaGFuZ2Ug
dGhlIGtleSB3aW5kb3cgd2hlbiBmb2N1c2luZyB0d28gU2FmYXJpCisgICAgICAgIHdpbmRvd3Mg
c2lkZS1ieS1zaWRlOiB0aGUgZmlyc3QgdGFwIHRvIGZvY3VzIHRoZSBlbGVtZW50ICh2aWEgdGhl
IHN5bnRoZXRpYyBjbGljayBnZXN0dXJlKSwgYW5kIHRoZSBzZWNvbmQgdGFwCisgICAgICAgIHRv
IHRyaWdnZXIgdGhlIGVkaXRhYmxlIHRleHQgaW50ZXJhY3Rpb24gdGFwIGdlc3R1cmUgdGhhdCBp
cyB1c2VkIHRvIHNldCB0aGUgc2VsZWN0aW9uLgorCisgICAgICAgIFRvIGZpeCBib3RoIG9mIHRo
ZXNlIGlzc3VlcywgbWFrZSBzb21lIG1pbm9yIGFkanVzdG1lbnRzIHRvIGNhbGwgYC1tYWtlS2V5
V2luZG93YCBmcm9tIFdlYktpdCB3aGVuIGZvY3VzaW5nCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnRzLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1h
cmVhLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6
ZWQ6XSk6CisKKyAgICAgICAgRm9yIHRoZSBjYXNlIGluIEdvb2dsZSBEb2NzIHdoZXJlIGEgaGlk
ZGVuIGVkaXRhYmxlIGVsZW1lbnQgaXMgdXNlZCBhbmQgdGFwcGluZyBpbiB0aGUgcGFnZSBkb2Vz
IG5vdCByZXN1bHQgaW4KKyAgICAgICAgdGhlIGVsZW1lbnQgYmVpbmcgcmVmb2N1c2VkLCB3ZSBh
ZGRpdGlvbmFsbHkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBtYWtlIG91ciB3aW5kb3cga2V5
IGFueXdheXMuIExpbWl0IHRoaXMKKyAgICAgICAgaGFjayB0byB0YXAgZ2VzdHVyZXMsIGFuZCBv
bmx5IHdoZW4gdGhlcmUgaXMgYSBoaWRkZW4gZm9jdXNlZCBlZGl0YWJsZSBlbGVtZW50IHRvIGVt
dWxhdGUgcGxhdGZvcm0gYmVoYXZpb3Igb2YKKyAgICAgICAgdXBkYXRpbmcgdGhlIGtleSB3aW5k
b3cgYmFzZWQgb24gdGhlIHRleHQgdGFwIGdlc3R1cmUuCisKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6
YWN0aXZpdHlTdGF0ZUNoYW5nZXM6dXNlck9iamVjdDpdKToKKworICAgICAgICBNYWtlIHRoZSBj
b250ZW50IHZpZXcncyB3aW5kb3cga2V5IHdoZW4gZm9jdXNpbmcgYW4gZWRpdGFibGUgZWxlbWVu
dC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZV0p
OgorCisgICAgICAgIENvbnNpZGVyIHRoZSBzZWxlY3Rpb24gdG8gYmUgaW5zaWRlIGEgaGlkZGVu
IGVkaXRhYmxlIGFyZWEgaWYgdGhlIGBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbGAg
ZmxhZyBpcyBzZXQKKyAgICAgICAgYXMgd2VsbC4gV2hpbGUgdGhpcyBkb2Vzbid0IGFmZmVjdCBH
b29nbGUgRG9jcywgaXQgZG9lcyBhZmZlY3Qgc29tZSBvdGhlciBjdXN0b20gZWRpdG9ycywgc3Vj
aCBhcyBRdWlwLgorCiAyMDIwLTA3LTA1ICBDb21taXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByZXZlcnRpbmcgcjI2Mzk2MC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCmluZGV4IDdiOGI1ZmZkNGJiODMwNTAwMmJkMTJiYWRmOGE1MWE4ZWUwMTU0ZTguLjRh
ZjExZWQyODhmNDk1MjBkZDZmNDAwN2E2MmQ3OGZmMjRhNGU5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpA
QCAtMTQ5OSw2ICsxNDk5LDkgQEAgLSAodm9pZClfd2ViVG91Y2hFdmVudHNSZWNvZ25pemVkOihV
SVdlYlRvdWNoRXZlbnRzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIAogICAgICAgICBp
ZiAoIV9wYWdlLT5pc1Njcm9sbGluZ09yWm9vbWluZygpKQogICAgICAgICAgICAgW3NlbGYgX3Jl
c2V0UGFubmluZ1ByZXZlbnRpb25GbGFnc107CisKKyAgICAgICAgaWYgKG5hdGl2ZVdlYlRvdWNo
RXZlbnQuaXNQb3RlbnRpYWxUYXAoKSAmJiBzZWxmLmhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZSAm
JiBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCAmJiAhc2VsZi53aW5kb3cua2V5V2luZG93KQorICAg
ICAgICAgICAgW3NlbGYud2luZG93IG1ha2VLZXlXaW5kb3ddOwogICAgIH0KICNlbmRpZgogfQpA
QCAtNTk4NCw4ICs1OTg3LDExIEBAIC0gKHZvaWQpX2VsZW1lbnREaWRGb2N1czooY29uc3QgV2Vi
S2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uJilpbmZvcm1hdGlvbiB1CiAgICAgW3NlbGYg
cmVsb2FkSW5wdXRWaWV3c107CiAjZW5kaWYKIAotICAgIGlmIChpc1NlbGVjdGFibGUpCisgICAg
aWYgKGlzU2VsZWN0YWJsZSkgewogICAgICAgICBbc2VsZiBfc2hvd0tleWJvYXJkXTsKKyAgICAg
ICAgaWYgKCFzZWxmLndpbmRvdy5rZXlXaW5kb3cpCisgICAgICAgICAgICBbc2VsZi53aW5kb3cg
bWFrZUtleVdpbmRvd107CisgICAgfQogCiAgICAgLy8gVGhlIGN1c3RvbSBmaXhlZCBwb3NpdGlv
biByZWN0IGJlaGF2aW9yIGlzIGFmZmVjdGVkIGJ5IC1pc0ZvY3VzaW5nRWxlbWVudCwgc28gaWYg
dGhhdCBjaGFuZ2VzIHdlIG5lZWQgdG8gcmVjb21wdXRlIHJlY3RzLgogICAgIGlmIChlZGl0YWJs
ZUNoYW5nZWQpCkBAIC02NjI4LDcgKzY2MzQsNyBAQCAtIChCT09MKXN1cHBvcnRzVGV4dFNlbGVj
dGlvbldpdGhDaGFyYWN0ZXJHcmFudWxhcml0eQogCiAtIChCT09MKWhhc0hpZGRlbkNvbnRlbnRF
ZGl0YWJsZQogewotICAgIHJldHVybiBfc3VwcHJlc3NTZWxlY3Rpb25Bc3Npc3RhbnRSZWFzb25z
LmNvbnRhaW5zKFdlYktpdDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVk
KTsKKyAgICByZXR1cm4gX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50UmVhc29ucy5jb250YWlu
c0FueSh7IFdlYktpdDo6RWRpdGFibGVSb290SXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkLCBX
ZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbCB9KTsKIH0KIAogLSAoQk9PTClfc2hvdWxk
U3VwcHJlc3NTZWxlY3Rpb25Db21tYW5kcwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI3ZWRiZDAwZjlhNGY0OGViOGRkNDkyYTEzOGMyMWU1MDBm
MGJhYWQuLmMyOTEzYjc5ZDhhNzkzMjcyZDJiZjNjMWZlZDg5ODFmZDdlZDExMWMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBA
QAorMjAyMC0wNy0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwor
ICAgICAgICBbaVBhZE9TXSBVbmFibGUgdG8gY2hhbmdlIGZvY3VzIGJldHdlZW4gR29vZ2xlIERv
Y3Mgd2luZG93cyBieSB0YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTM5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDgzMjY3Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJL
aXRUZXN0UnVubmVyIHN1cHBvcnQgZm9yIGJlaW5nIGFibGUgdG8gdmVyaWZ5IHRoYXQgYSB3ZWIg
dmlldydzIHdpbmRvdyBoYXMgYmVjb21lIHRoZSBrZXkgd2luZG93LgorCisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVt
cFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6d2luZG93SXNLZXkgY29uc3QpOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAg
ICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
Lmg6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRD
b250cm9sbGVyU2hhcmVkLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAuCisKKyAgICAgICAgUmVuYW1l
IGBVSVNjcmlwdENvbnRyb2xsZXIuY3BwYCAoaW4gVGVzdFJ1bm5lclNoYXJlZCkgdG8gYFVJU2Ny
aXB0Q29udHJvbGxlclNoYXJlZC5jcHBgLCBhbmQgaW50cm9kdWNlIG5ldworICAgICAgICBEdW1w
UmVuZGVyVHJlZSBhbmQgV2ViS2l0VGVzdFJ1bm5lciB2ZXJzaW9ucyBvZiBgVUlTY3JpcHRDb250
cm9sbGVyLmNwcGAgdG8gaG91c2UgRHVtcFJlbmRlclRyZWUgYW5kCisgICAgICAgIFdlYktpdFRl
c3RSdW5uZXItc3BlY2lmaWMgVUlTY3JpcHRDb250cm9sbGVyIG1ldGhvZCBpbXBsZW1lbnRhdGlv
bnMuCisKKyAgICAgICAgRm9yIG5vdywgdGhlc2UgYXJlIGp1c3QgYHdpbmRvd0lzS2V5YCBhbmQg
YHNldFdpbmRvd0lzS2V5YCBiZWxvdywgd2hpY2ggcGx1bWIgaW50byB0aGVpciByZXNwZWN0aXZl
IHBsYXRmb3JtLQorICAgICAgICBhZ25vc3RpYyBgUGxhdGZvcm1XZWJWaWV3YCBtZXRob2RzIGlu
IFdlYktpdFRlc3RSdW5uZXIuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0
Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6
OndpbmRvd0lzS2V5IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpz
ZXRXaW5kb3dJc0tleSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4
dDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW06CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgYmVjb21l
S2V5V2luZG93XSk6CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgcmVzaWduS2V5
V2luZG93XSk6CisKKyAgICAgICAgVXBkYXRlIHRoZXNlIHR3byBtZXRob2RzIHRvIHVwZGF0ZSBg
bV93aW5kb3dJc0tleWAgd2hlbiB0aGUgdGVzdCBydW5uZXIncyBgVUlXaW5kb3dgIGJlY29tZXMg
dGhlIGtleSB3aW5kb3cgKG9yCisgICAgICAgIHN0b3BzIGJlaW5nIHRoZSBrZXkgd2luZG93KS4g
VGhpcyBpcyBpbnZva2VkIHdoZW4gYC1bVUlXaW5kb3cgbWFrZUtleVdpbmRvd11gIGlzIGNhbGxl
ZCAoZS5nLiBmcm9tIHdpdGhpbiBXZWJLaXQKKyAgICAgICAgY29kZSB3aGVuIHRhcHBpbmcgb24g
YW4gZWRpdGFibGUgZWxlbWVudCkuCisKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojpz
ZXRXaW5kb3dJc0tleSk6CisKKyAgICAgICAgQXZvaWQgaW5maW5pdGVseSBsb29waW5nIHdoZW4g
c2V0dGluZyB3aW5kb3dJc0tleSB0byBgdHJ1ZWAsIGR1ZSB0byBgLWJlY29tZUtleVdpbmRvd2Ag
Y2FsbGluZyBiYWNrIGludG8KKyAgICAgICAgYHNldFdpbmRvd0lzS2V5YC4KKwogMjAyMC0wNy0w
NSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjM5NjAuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0
CmluZGV4IGQxODUzODBlOGZhYzgzOGYzZGM2NmVkZGExMjM0MzMxNDUxYjQ1YjguLjM2ZTNmZTg2
Y2QxZTE5Mjk2NzI3ZjY1Y2MwOThkODgwYzRjODBhMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtl
TGlzdHMudHh0CkBAIC05LDcgKzksNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfU09VUkNFUwogICAg
ICR7V2ViS2l0VGVzdFJ1bm5lcl9TSEFSRURfRElSfS9CaW5kaW5ncy9KU1dyYXBwZXIuY3BwCiAK
ICAgICAke1dlYktpdFRlc3RSdW5uZXJfVUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRDb250
ZXh0LmNwcAotICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQVENPTlRFWFRfRElSfS9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwCisgICAgJHtXZWJLaXRUZXN0UnVubmVyX1VJU0NSSVBUQ09OVEVY
VF9ESVJ9L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKIAogICAgIEFjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmNwcAogICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcApAQCAtMjEsNiAr
MjEsNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfU09VUkNFUwogICAgIFBpeGVsRHVtcFN1cHBvcnQu
Y3BwCiAgICAgVGVzdE9wdGlvbnMuY3BwCiAgICAgVGVzdFJ1bm5lci5jcHAKKyAgICBVSVNjcmlw
dENvbnRyb2xsZXIuY3BwCiAgICAgV29ya1F1ZXVlLmNwcAogKQogCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCA0NTEyMDlkOWZhOWQ5MDMwMDQwYzEwODg4YzdiOTdmMDZhNWNiYTZmLi5h
YzExNThkMzUzYTU1YTJiOWMwYWFmNDU4MTA4NzcxMDFhNDZhMDY1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTQ4LDcgKzQ4LDYgQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0
aW9uICovCiAJCTAwRjA0ODU0MUEwQzNDOUEwMDAyNDREQiAvKiBVUkxSZWRpcmVjdC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEYwNDg1MzFBMEMz
QzlBMDAwMjQ0REIgLyogVVJMUmVkaXJlY3QuY3BwICovOyB9OwogCQkwRjE4RTZFQzFENkI5QzA3
MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThFNkU4MUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlw
dENvbnRleHQuY3BwICovOyB9OwotCQkwRjE4RTZFRDFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3Jp
cHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGMThFNkVBMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3Bw
ICovOyB9OwogCQkwRjE4RTcwNjFENkJBMDIzMDAyN0U1NDcgLyogSlNVSVNjcmlwdENvbnRyb2xs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYx
OEU3MDQxRDZCQTAyMzAwMjdFNTQ3IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLzsgfTsK
IAkJMEYxOEU3MEQxRDZCQUM4QzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThFNzBDMUQ2
QkFDOEMwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTBGMThF
NzBGMUQ2QkFDQjYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTcwRTFENkJBQ0I2MDAy
N0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tICovOyB9OwpAQCAtMTU3LDYgKzE1Niw4
IEBACiAJCUMyM0VBMjA4MUJDOUYwNTEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLm90ZiBp
biBDb3B5IEZvbnQgRmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIz
RUEyMDYxQkM5RUFCQTAwQzk4MEI3IC8qIEZvbnRXaXRoRmVhdHVyZXMub3RmICovOyB9OwogCQlD
MjNFQTIwOTFCQzlGMDUxMDBDOTgwQjcgLyogRm9udFdpdGhGZWF0dXJlcy50dGYgaW4gQ29weSBG
b250IEZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyM0VBMjA3MUJD
OUVBQkEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLnR0ZiAqLzsgfTsKIAkJRTFCNzgxNjUx
MUFGMzFCNzAwN0UxQkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCNzgwODcxMUFGMTY2OTAwN0Ux
QkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tICovOyB9OworCQlGNDQ1QzY4NjI0QjI3
ODlEMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0
MCAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwICovOyB9OworCQlGNDQ1QzY4OTI0QjI3
OEVDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjg4MjRCMjc4RUMwMDc5MDQ0MCAvKiBV
SVNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMg
LyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3
aXp6bGVyLm1tICovOyB9OwogCQlGNDRBNTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0NEE1MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
Lm1tICovOyB9OwogCQlGNDg0QzIyMzIzN0IyN0Q2MDBCRjc3RDAgLyogVUlTY3JpcHRDb250cm9s
bGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNDg0QzIyMjIzN0IyN0Q2MDBCRjc3RDAgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0g
Ki87IH07CkBAIC0yNDYsNyArMjQ3LDYgQEAKIAkJMDBGMDQ4NTMxQTBDM0M5QTAwMDI0NERCIC8q
IFVSTFJlZGlyZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVS
TFJlZGlyZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RTgxRDZC
OUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBVSVNjcmlwdENvbnRleHQuY3BwOyBwYXRoID0gLi4vVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RTkxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29u
dGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVSVNjcmlwdENvbnRleHQu
aDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjE4RTZFQTFENkI5QzA3MDAy
N0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFVJU2NyaXB0Q29udHJvbGxlci5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkwRjE4RTZFQjFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRD
b250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVJU2NyaXB0Q29u
dHJvbGxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNkYw
MUQ2QjlDMjQwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgbmFtZSA9IFVJU2NyaXB0Q29udHJvbGxlci5pZGw7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE4RTZGMTFENkI5QzY0MDAyN0U1NDcgLyogRGVy
aXZlZFNvdXJjZXMubWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtNDI4LDYgKzQyOCw4IEBACiAJCUMyM0VBMjA3MUJDOUVBQkEwMEM5
ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBGb250V2l0aEZlYXR1cmVzLnR0Zjsg
cGF0aCA9IGZvbnRzL0ZvbnRXaXRoRmVhdHVyZXMudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUI3ODA4NTExQUYxNjQzMDA3RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlk
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTW9ja0dlb2xvY2F0aW9uUHJv
dmlkZXIuaDsgcGF0aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMUI3ODA4NzExQUYxNjY5MDA3RTFCQzIgLyogTW9ja0dlb2xv
Y2F0aW9uUHJvdmlkZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBNb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbTsgcGF0aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Q
cm92aWRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0NUM2ODUyNEIyNzg4
RjAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQuY3BwOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0NUM2ODgyNEIyNzhFQzAwNzkwNDQwIC8qIFVJU2Ny
aXB0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxOTIxQjg5QTQ0MDBEQkI5
OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6
emxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMUIyMUI4OUE0NDAw
REJCOTlDIC8qIENsYXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNTMzLDggKzUzNSw5IEBACiAJCQkJMEY2QTBFMDAxRDZFMEY4QTAwRjFDOUE4IC8qIG1h
YyAqLywKIAkJCQkwRjE4RTZFODFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNw
cCAqLywKIAkJCQkwRjE4RTZFOTFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0Lmgg
Ki8sCi0JCQkJMEYxOEU2RUExRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5j
cHAgKi8sCisJCQkJRjQ0NUM2ODgyNEIyNzhFQzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxl
ci5jcHAgKi8sCiAJCQkJMEYxOEU2RUIxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJv
bGxlci5oICovLAorCQkJCUY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRy
b2xsZXJTaGFyZWQuY3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBVSVNjcmlwdENvbnRleHQ7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIzMCwxMCArMTIzMywxMSBAQAogCQkJCUJD
QTE4QjQ5MEM5QjAyQzQwMDExNDM2OSAvKiBUZXh0SW5wdXRDb250cm9sbGVyTWFjLm0gaW4gU291
cmNlcyAqLywKIAkJCQlCQ0ExOEI2QTBDOUIwOEMyMDAxMTQzNjkgLyogVUlEZWxlZ2F0ZS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNkVDMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENv
bnRleHQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJMEYxOEU2RUQxRDZCOUMwNzAwMjdFNTQ3IC8q
IFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNDQ1QzY4OTI0QjI3
OEVDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUY0ODRDMjIzMjM3QjI3RDYwMEJGNzdEMCAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTBGMThFNzBEMUQ2QkFDOEMwMDI3RTU0NyAvKiBVSVNjcmlwdENv
bnRyb2xsZXJJT1MubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcwRjFENkJBQ0I2MDAyN0U1
NDcgLyogVUlTY3JpcHRDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQ0NUM2
ODYyNEIyNzg5RDAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlCQzlEOTAyNDBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUJDQTE4QjI2MEM5QjAxNUMwMDExNDM2OSAvKiBXb3JrUXVldWVJ
dGVtTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1VJ
U2NyaXB0Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEyNTRmZDMxZjVhYTI2Njk3Y2RkNTMy
ODc3NzBhMzAzOGRlODAxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJVSVNjcmlwdENvbnRyb2xsZXIuaCIKKworbmFt
ZXNwYWNlIFdUUiB7CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleShi
b29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9s
bGVyOjp3aW5kb3dJc0tleSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9s
bGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggOWQ5ZGJhYzRhY2U0YzU2NWZmNzBiNTBlZTJk
NzUyMWUwOWJjM2VmYS4uOWZkNjdmZDY0Mjg4ZTE5YmFhYTI5ODhkZjJlNDViNDMxZWI0YzhhOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yNDEsNiAr
MjQxLDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIGJvb2xlYW4gaXNTaG93aW5nS2V5Ym9hcmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IGJvb2xlYW4gaGFzSW5wdXRTZXNzaW9uOwogCisgICAgYXR0cmlidXRlIGJvb2xlYW4gd2luZG93
SXNLZXk7CisKICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNob3dNZW51Q2FsbGJhY2s7CiAgICAg
YXR0cmlidXRlIG9iamVjdCBkaWRIaWRlTWVudUNhbGxiYWNrOwogICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBib29sZWFuIGlzRGlzbWlzc2luZ01lbnU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMmFjM2Q2NGViMzJmNTgwY2FjYTg1ODNmZmU3
MDQ3Yjc5NjMxYWE3Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoK
LSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0j
aW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCi0KLSNp
bmNsdWRlICJKU1VJU2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4
dC5oIgotI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KLSNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RSIHsKLQotRGV2
aWNlT3JpZW50YXRpb24qIHRvRGV2aWNlT3JpZW50YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTVmFsdWVSZWYgdmFsdWUpCi17Ci0gICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uIHZhbHVl
c1tdID0gewotICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6UG9ydHJhaXQsCi0gICAgICAgIERl
dmljZU9yaWVudGF0aW9uOjpQb3J0cmFpdFVwc2lkZURvd24sCi0gICAgICAgIERldmljZU9yaWVu
dGF0aW9uOjpMYW5kc2NhcGVMZWZ0LAotICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNj
YXBlUmlnaHQKLSAgICB9OwotCi0gICAgYXV0byBvcHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJp
bmdDb3B5KGNvbnRleHQsIHZhbHVlLCBudWxscHRyKSk7Ci0gICAgaWYgKG9wdGlvbi5nZXQoKS0+
c3RyaW5nKCkgPT0gInBvcnRyYWl0IikKLSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMF07Ci0gICAg
ICAgIAotICAgIGlmIChvcHRpb24uZ2V0KCktPnN0cmluZygpID09ICJwb3J0cmFpdC11cHNpZGVk
b3duIikKLSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMV07Ci0gICAgICAgIAotICAgIGlmIChvcHRp
b24uZ2V0KCktPnN0cmluZygpID09ICJsYW5kc2NhcGUtbGVmdCIpCi0gICAgICAgIHJldHVybiAm
dmFsdWVzWzJdOwotICAgICAgICAKLSAgICBpZiAob3B0aW9uLmdldCgpLT5zdHJpbmcoKSA9PSAi
bGFuZHNjYXBlLXJpZ2h0IikKLSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbM107Ci0gICAgICAgIAot
ICAgIHJldHVybiBudWxscHRyOwotfQotCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KENPQ09BKSAmJiAhUExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV1BFKQotUmVmPFVJU2NyaXB0
Q29udHJvbGxlcj4gVUlTY3JpcHRDb250cm9sbGVyOjpjcmVhdGUoVUlTY3JpcHRDb250ZXh0JiBj
b250ZXh0KQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVJU2NyaXB0Q29udHJvbGxlcihj
b250ZXh0KSk7Ci19Ci0jZW5kaWYKLQotVUlTY3JpcHRDb250cm9sbGVyOjpVSVNjcmlwdENvbnRy
b2xsZXIoVUlTY3JpcHRDb250ZXh0JiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KCZjb250ZXh0
KQotewotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dERlc3Ryb3llZCgpCi17
Ci0gICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
Om1ha2VXaW5kb3dPYmplY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRv
d09iamVjdCwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIHNldFByb3BlcnR5KGNvbnRl
eHQsIHdpbmRvd09iamVjdCwgInVpQ29udHJvbGxlciIsIHRoaXMsIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUsIGV4Y2VwdGlvbik7
Ci19Ci0KLUpTQ2xhc3NSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3cmFwcGVyQ2xhc3MoKQotewot
ICAgIHJldHVybiBKU1VJU2NyaXB0Q29udHJvbGxlcjo6dUlTY3JpcHRDb250cm9sbGVyQ2xhc3Mo
KTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0
LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250
cm9sSW50ZXJhY3Rpb24pOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKSBjb25zdAotewotICAgIHJldHVy
biBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFN0YXJ0Rm9ybUNvbnRy
b2xJbnRlcmFjdGlvbik7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRFbmRG
b3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAg
ICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZEVu
ZEZvcm1Db250cm9sSW50ZXJhY3Rpb24pOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3QKLXsKLSAg
ICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRGb3Jt
Q29udHJvbEludGVyYWN0aW9uKTsKLX0KLSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpz
ZXREaWRTaG93Q29udGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAg
IG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hv
d0NvbnRleHRNZW51KTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNo
b3dDb250ZXh0TWVudUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93Q29udGV4dE1lbnUpOwotfQotCi12b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNW
YWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2Fs
bGJhY2ssIENhbGxiYWNrVHlwZURpZERpc21pc3NDb250ZXh0TWVudSk7Ci19Ci0KLUpTVmFsdWVS
ZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpIGNv
bnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBl
RGlkRGlzbWlzc0NvbnRleHRNZW51KTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNl
dFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1f
Y29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbEJlZ2lu
Wm9vbWluZyk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsQmVnaW5a
b29taW5nQ2FsbGJhY2soKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNr
V2l0aElEKENhbGxiYWNrVHlwZVdpbGxCZWdpblpvb21pbmcpOwotfQotCi12b2lkIFVJU2NyaXB0
Q29udHJvbGxlcjo6c2V0RGlkRW5kWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2sp
Ci17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5
cGVEaWRFbmRab29taW5nKTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRp
ZEVuZFpvb21pbmdDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2Fs
bGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kWm9vbWluZyk7Ci19Ci0KLXZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpzZXRXaWxsQ3JlYXRlTmV3UGFnZUNhbGxiYWNrKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxs
YmFja1R5cGVXaWxsQ3JlYXRlTmV3UGFnZSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250
cm9sbGVyOjp3aWxsQ3JlYXRlTmV3UGFnZUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVXaWxsQ3JlYXRlTmV3UGFnZSk7
Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFj
ayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFj
ayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nKTsKLX0KLQotSlNWYWx1ZVJl
ZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRT
Y3JvbGxpbmcpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0tleWJv
YXJkQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lz
dGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dLZXlib2FyZCk7Ci19Ci0K
LUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93S2V5Ym9hcmRDYWxsYmFjaygp
IGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tU
eXBlRGlkU2hvd0tleWJvYXJkKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERp
ZEhpZGVLZXlib2FyZENhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250
ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9h
cmQpOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJk
Q2FsbGJhY2soKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElE
KENhbGxiYWNrVHlwZURpZEhpZGVLZXlib2FyZCk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpzZXREaWRTaG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAg
bV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93
TWVudSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93TWVudUNh
bGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChD
YWxsYmFja1R5cGVEaWRTaG93TWVudSk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpz
ZXREaWRIaWRlTWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250
ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7
Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlTWVudUNhbGxiYWNr
KCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFj
a1R5cGVEaWRIaWRlTWVudSk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxs
UHJlc2VudFBvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29u
dGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQ
b3BvdmVyKTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OndpbGxQcmVzZW50
UG9wb3ZlckNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFj
a1dpdGhJRChDYWxsYmFja1R5cGVXaWxsUHJlc2VudFBvcG92ZXIpOwotfQotCi12b2lkIFVJU2Ny
aXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNh
bGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2Fs
bGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIpOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29u
dHJvbGxlcjo6ZGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJu
IG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIp
OwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0cmlu
Z1JlZiByZXN1bHQpCi17Ci0gICAgbV9jb250ZXh0LT5yZXF1ZXN0VUlTY3JpcHRDb21wbGV0aW9u
KHJlc3VsdCk7Ci0gICAgY2xlYXJBbGxDYWxsYmFja3MoKTsKLX0KLQotdm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OmRpc21pc3NNZW51KCkKLXsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OmNob29zZU1lbnVBY3Rpb24oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpCi17Ci19Ci0KLX0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5oIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmgKaW5kZXggNjA5M2VkNWEyNWEzMDA3OWU5NWE0ODJlNzZhZDY4YWVj
ZDU4NDgyNi4uOWZhYTZkNjFjNGUwNThlNTRkMzBiMTY0ZmU3YWZhMTgwZTdlZmE5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250
cm9sbGVyLmgKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlT
Y3JpcHRDb250cm9sbGVyLmgKQEAgLTE4OCw2ICsxODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHJlcGxhY2VUZXh0QXRSYW5nZShKU1N0cmluZ1JlZiwgaW50IGxvY2F0aW9uLCBpbnQg
bGVuZ3RoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxs
RHluYW1pY0RpY3Rpb25hcmllcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgdmlydHVh
bCBib29sIHdpbmRvd0lzS2V5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd0lz
S2V5KGJvb2wpOworCiAgICAgLy8gU3R5bHVzCiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bHVzRG93
bkF0UG9pbnQobG9uZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1
ZGVBbmdsZSwgZmxvYXQgcHJlc3N1cmUsIEpTVmFsdWVSZWYgY2FsbGJhY2spIHsgbm90SW1wbGVt
ZW50ZWQoKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDBjNGI2ZDAyYjU2MTYwMGJlMmNmZmYwMmQ4MzY4ZWFmY2U5OWM3MQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlclNoYXJlZC5jcHAKQEAgLTAsMCArMSwyNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCisKKyNpbmNsdWRl
ICJKU1VJU2NyaXB0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4dC5oIgor
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9PcGFxdWVKU1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RSIHsKKworRGV2aWNlT3Jp
ZW50YXRpb24qIHRvRGV2aWNlT3JpZW50YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFs
dWVSZWYgdmFsdWUpCit7CisgICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uIHZhbHVlc1tdID0g
eworICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6UG9ydHJhaXQsCisgICAgICAgIERldmljZU9y
aWVudGF0aW9uOjpQb3J0cmFpdFVwc2lkZURvd24sCisgICAgICAgIERldmljZU9yaWVudGF0aW9u
OjpMYW5kc2NhcGVMZWZ0LAorICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNjYXBlUmln
aHQKKyAgICB9OworCisgICAgYXV0byBvcHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5
KGNvbnRleHQsIHZhbHVlLCBudWxscHRyKSk7CisgICAgaWYgKG9wdGlvbi0+c3RyaW5nKCkgPT0g
InBvcnRyYWl0IikKKyAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMF07CisKKyAgICBpZiAob3B0aW9u
LT5zdHJpbmcoKSA9PSAicG9ydHJhaXQtdXBzaWRlZG93biIpCisgICAgICAgIHJldHVybiAmdmFs
dWVzWzFdOworCisgICAgaWYgKG9wdGlvbi0+c3RyaW5nKCkgPT0gImxhbmRzY2FwZS1sZWZ0IikK
KyAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMl07CisKKyAgICBpZiAob3B0aW9uLT5zdHJpbmcoKSA9
PSAibGFuZHNjYXBlLXJpZ2h0IikKKyAgICAgICAgcmV0dXJuICZ2YWx1ZXNbM107CisKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NP
QSkgJiYgIVBMQVRGT1JNKFdJTikgJiYgIVBMQVRGT1JNKFdQRSkKK1JlZjxVSVNjcmlwdENvbnRy
b2xsZXI+IFVJU2NyaXB0Q29udHJvbGxlcjo6Y3JlYXRlKFVJU2NyaXB0Q29udGV4dCYgY29udGV4
dCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBVSVNjcmlwdENvbnRyb2xsZXIoY29udGV4
dCkpOworfQorI2VuZGlmCisKK1VJU2NyaXB0Q29udHJvbGxlcjo6VUlTY3JpcHRDb250cm9sbGVy
KFVJU2NyaXB0Q29udGV4dCYgY29udGV4dCkKKyAgICA6IG1fY29udGV4dCgmY29udGV4dCkKK3sK
K30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbnRleHREZXN0cm95ZWQoKQoreworICAg
IG1fY29udGV4dCA9IG51bGxwdHI7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjptYWtl
V2luZG93T2JqZWN0KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dPYmpl
Y3QsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3
aW5kb3dPYmplY3QsICJ1aUNvbnRyb2xsZXIiLCB0aGlzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCBleGNlcHRpb24pOworfQor
CitKU0NsYXNzUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d3JhcHBlckNsYXNzKCkKK3sKKyAgICBy
ZXR1cm4gSlNVSVNjcmlwdENvbnRyb2xsZXI6OnVJU2NyaXB0Q29udHJvbGxlckNsYXNzKCk7Cit9
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJh
Y3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVn
aXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbElu
dGVyYWN0aW9uKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFN0YXJ0
Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250cm9sSW50
ZXJhY3Rpb24pOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kRm9ybUNv
bnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9j
b250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRFbmRGb3Jt
Q29udHJvbEludGVyYWN0aW9uKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6
OmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRy
b2xJbnRlcmFjdGlvbik7Cit9CisgICAgCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlk
U2hvd0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2Nv
bnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dDb250
ZXh0TWVudSk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29u
dGV4dE1lbnVDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJh
Y2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRleHRNZW51KTsKK30KKwordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVS
ZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNr
LCBDYWxsYmFja1R5cGVEaWREaXNtaXNzQ29udGV4dE1lbnUpOworfQorCitKU1ZhbHVlUmVmIFVJ
U2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soKSBjb25zdAor
eworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERp
c21pc3NDb250ZXh0TWVudSk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxs
QmVnaW5ab29taW5nQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRl
eHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZVdpbGxCZWdpblpvb21p
bmcpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d2lsbEJlZ2luWm9vbWlu
Z0NhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJ
RChDYWxsYmFja1R5cGVXaWxsQmVnaW5ab29taW5nKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnNldERpZEVuZFpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQorewor
ICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlk
RW5kWm9vbWluZyk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRa
b29taW5nQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNr
V2l0aElEKENhbGxiYWNrVHlwZURpZEVuZFpvb21pbmcpOworfQorCit2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6c2V0V2lsbENyZWF0ZU5ld1BhZ2VDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNr
KQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tU
eXBlV2lsbENyZWF0ZU5ld1BhZ2UpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxl
cjo6d2lsbENyZWF0ZU5ld1BhZ2VDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
dGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlV2lsbENyZWF0ZU5ld1BhZ2UpOworfQor
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soSlNW
YWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2Fs
bGJhY2ssIENhbGxiYWNrVHlwZURpZEVuZFNjcm9sbGluZyk7Cit9CisKK0pTVmFsdWVSZWYgVUlT
Y3JpcHRDb250cm9sbGVyOjpkaWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xs
aW5nKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dLZXlib2FyZENh
bGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNh
bGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93S2V5Ym9hcmQpOworfQorCitKU1Zh
bHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2soKSBjb25z
dAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURp
ZFNob3dLZXlib2FyZCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRl
S2V5Ym9hcmRDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+
cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsK
K30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEhpZGVLZXlib2FyZENhbGxi
YWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxs
YmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0RGlkU2hvd01lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29u
dGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd01lbnUp
OworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd01lbnVDYWxsYmFj
aygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJh
Y2tUeXBlRGlkU2hvd01lbnUpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlk
SGlkZU1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+
cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUpOworfQor
CitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZU1lbnVDYWxsYmFjaygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBl
RGlkSGlkZU1lbnUpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbFByZXNl
bnRQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQt
PnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZVdpbGxQcmVzZW50UG9wb3Zl
cik7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsUHJlc2VudFBvcG92
ZXJDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRo
SUQoQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnNldERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFj
aykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNr
VHlwZURpZERpc21pc3NQb3BvdmVyKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xs
ZXI6OmRpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2Nv
bnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsKK30K
Kwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYg
cmVzdWx0KQoreworICAgIG1fY29udGV4dC0+cmVxdWVzdFVJU2NyaXB0Q29tcGxldGlvbihyZXN1
bHQpOworICAgIGNsZWFyQWxsQ2FsbGJhY2tzKCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9s
bGVyOjpkaXNtaXNzTWVudSgpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjaG9v
c2VNZW51QWN0aW9uKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQorCit9CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dAppbmRleCA2ZDE2NDAwODViOTE2N2ViMDI1ODUxZTA1
ODlkYmQ5NWJlM2UzOGYwLi5hM2QwNTFiOTYyZTgwOTk3ZDExNGI3ZjQxZDRmNWQxNmQ3ZDNlOWM3
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKQEAgLTEwLDcgKzEwLDcgQEAg
c2V0KFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5E
SU5HU19ESVJ9L0pTV3JhcHBlci5jcHAKIAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQ
VENPTlRFWFRfRElSfS9VSVNjcmlwdENvbnRleHQuY3BwCi0gICAgJHtXZWJLaXRUZXN0UnVubmVy
X1VJU0NSSVBUQ09OVEVYVF9ESVJ9L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKyAgICAke1dlYktp
dFRlc3RSdW5uZXJfVUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRDb250cm9sbGVyU2hhcmVk
LmNwcAogCiAgICAgQ3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcAogICAgIEdlb2xvY2F0aW9uUHJv
dmlkZXJNb2NrLmNwcApAQCAtMTksNiArMTksNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9TT1VS
Q0VTCiAgICAgVGVzdENvbnRyb2xsZXIuY3BwCiAgICAgVGVzdEludm9jYXRpb24uY3BwCiAgICAg
VGVzdE9wdGlvbnMuY3BwCisgICAgVUlTY3JpcHRDb250cm9sbGVyLmNwcAogICAgIFdlYk5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcAogICAgIFdvcmtRdWV1ZU1hbmFnZXIuY3BwCiApCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5
MDZjOTI1YjVjZDg1ZWZmYzA2OGM0ZGExYWE3NjIxMjc1MjBlZgotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMCwwICsx
LDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJU2Ny
aXB0Q29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVk
ZSAiVGVzdENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK2Jvb2wgVUlTY3JpcHRD
b250cm9sbGVyOjp3aW5kb3dJc0tleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT53aW5kb3dJc0tleSgpOworfQorCit2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAgICBU
ZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+c2V0V2luZG93SXNLZXko
aXNLZXkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvV2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggMDIwZDZlZTM0NDhjODQ0YzFjMmE2NmM5YjQ3OGQzMzJiZDc1MGU3Ni4u
YzNjMzYzZmE3ZGUwNGJjNWQ0YTgyZDcwMDA0N2U1YjdjOWRiMjJkNCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogLyogQmVnaW4gUEJYQnVp
bGRGaWxlIHNlY3Rpb24gKi8KIAkJMEYxOEU2RTUxRDZCOUI5RTAwMjdFNTQ3IC8qIFVJU2NyaXB0
Q29udGV4dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLzsgfTsK
LQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5
QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJMEYxOEU2RTYx
RDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5QUFGMDAy
N0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLzsgfTsKIAkJMEYxOEU3MTgx
RDZCQzQ1NjAwMjdFNTQ3IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTcxNTFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFw
cGVyLmNwcCAqLzsgfTsKIAkJMEY0QjA4NzMxRDVCRTg4RDAwRUMxQjc4IC8qIExhdW5jaC5zdG9y
eWJvYXJkIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RjRCMDg3MjFENUJFODhEMDBFQzFCNzggLyogTGF1bmNoLnN0b3J5Ym9hcmQgKi87IH07CiAJCTBG
NTE2OUNDMTQ0NTIyMkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3Mg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1MjIyRDAwRTBB
OUQ3IC8qIFdlYktpdC5mcmFtZXdvcmsgKi87IH07CkBAIC0xNTIsNiArMTUyLDggQEAKIAkJRTEz
MkFBM0QxN0NFNzc2RjAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzJBQTNCMTdDRTc3NkYw
MDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVyRXZlbnQubW0gKi87IH07CiAJCUUxQzY0MkMzMTdD
QkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxQzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXND
bGFzcy5tbSAqLzsgfTsKIAkJRTFDNjQyQzYxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RS
dW5uZXJQYXN0ZWJvYXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTFDNjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0
ZWJvYXJkLm1tICovOyB9OworCQlGNDQ1QzY4NDI0QjI3N0UzMDA3OTA0NDAgLyogVUlTY3JpcHRD
b250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICov
OyB9OworCQlGNDQ1QzY4QTI0QjI3QUNDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjgz
MjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNDRB
NTMxNzIxQjg5OUUyMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzE0MjFCODk5REEwMERC
Qjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNDRBNTMxODIxQjg5OUU1
MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzE2MjFCODk5REEwMERCQjk5QyAvKiBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdC
MTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDYyNDBBRjIxNzAxMjgzMDA5MTdCMTYgLyogVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2EubW0gKi87IH07CkBAIC0yMjEsNyArMjIzLDcgQEAKIC8qIEJlZ2lu
IFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcg
LyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVJU2NyaXB0Q29udGV4dC5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE4RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVJU2NyaXB0Q29udGV4dC5oOyBwYXRoID0gLi4v
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VUlTY3JpcHRDb250cm9sbGVyLmNwcDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFy
ZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250
cm9sbGVyU2hhcmVkLmNwcDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGMThFNkUwMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyLmg7IHBh
dGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RTMxRDZCOUFCRjAwMjdF
NTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVUlT
Y3JpcHRDb250cm9sbGVyLmlkbDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMThFNzE0MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwYWJsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dyYXBwYWJsZS5oOyBwYXRoID0gLi4v
VGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDEwLDYgKzQxMiw3IEBACiAJCUUxQzY0MkMyMTdDQkNDNzMwMEQ2NkEz
QyAvKiBQb3NlQXNDbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3Nl
QXNDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDNDE3Q0JDRDRD
MDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQyQzUxN0NCQ0Q0QzAwRDY2QTNDIC8q
IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVUlTY3JpcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMTMyMUI4OTlEQTAwREJCOTlDIC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1
MzE0MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMTUyMUI4OTlEQTAwREJCOTlDIC8qIENs
YXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xh
c3NNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFz
c01ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDMsNiAr
NTA2LDcgQEAKIAkJCQlCQ0Q3RDJGNjExOTIxMjc4MDA2REI3RUUgLyogVGVzdEludm9jYXRpb24u
aCAqLywKIAkJCQkwRjYyMkNFODFCQkIzQTFBMDA4MzhBRDMgLyogVGVzdE9wdGlvbnMuY3BwICov
LAogCQkJCTFBMzMyNjA1MUI3NTM5NjUwMEY4OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovLAorCQkJ
CUY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovLAog
CQkJCUJDMjUxQTE3MTFEMTY3NzQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVyUHJlZml4Lmgg
Ki8sCiAJCQkJMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcCAqLywKIAkJCQkzMTEwQkUwRjE1QkEwMTE0MDBEMjE2QUMgLyogV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCAqLywKQEAgLTU1Nyw4ICs1NjEsOCBAQAogCQkJCTJEQjYxODdGMUQ3RDU5
ODgwMDk3OEQxOSAvKiBzcGkgKi8sCiAJCQkJMEYxOEU2REQxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5jcHAgKi8sCiAJCQkJMEYxOEU2REUxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5oICovLAotCQkJCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovLAogCQkJCTBGMThFNkUwMUQ2QjlBQUYwMDI3RTU0NyAvKiBV
SVNjcmlwdENvbnRyb2xsZXIuaCAqLywKKwkJCQkwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyog
VUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gVUlTY3Jp
cHRDb250ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExNjUsNiArMTE2OSw3
IEBACiAJCQkJQkM3OTM0RTgxMTkwNjg0NjAwNUVBOEUyIC8qIFBsYXRmb3JtV2ViVmlld01hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUUxQzY0MkMzMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXND
bGFzcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDOEM3OTVDMTFEMjc4NUQwMDQ1MzVBMSAvKiBU
ZXN0Q29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0NDVDNjg0MjRCMjc3RTMw
MDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEY4
N0I2MTMxQkFDQUQ4MjAwNEVDNTcyIC8qIFVJU2NyaXB0Q29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCUUxMzJBQTNBMTdDRDVGMTAwMDYxMURGMCAvKiBXZWJLaXRUZXN0UnVubmVy
RHJhZ2dpbmdJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJRTEzMkFBM0QxN0NFNzc2RjAwNjEx
REYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSBpbiBTb3VyY2VzICovLApAQCAtMTE5OSw5
ICsxMjA0LDEwIEBACiAJCQkJMEY4N0I2MTcxQkFDQzRDMDAwNEVDNTcyIC8qIFRlc3RSdW5uZXJX
S1dlYlZpZXcubW0gaW4gU291cmNlcyAqLywKIAkJCQk0MUM1Mzc4RTIxRjEzNDE0MDA4QjFGQUQg
LyogVGVzdFdlYnNpdGVEYXRhU3RvcmVEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBG
MThFNkU1MUQ2QjlCOUUwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLywKKwkJCQlGNDQ1QzY4QTI0QjI3QUNDMDA3OTA0NDAgLyogVUlTY3Jp
cHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0NjI0MEIxMjE3MDEzRTUwMDkx
N0IxNiAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBG
NzNCNTVDMUJBODkwNDIwMDRCM0VGNCAvKiBVSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gaW4gU291
cmNlcyAqLywKKwkJCQkwRjE4RTZFNjFENkI5QkEyMDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9s
bGVyU2hhcmVkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUExODUxMDQzMUI5QUUxNDUwMDc0NEFF
QiAvKiBXZWJOb3RpZmljYXRpb25Qcm92aWRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1
MTA0NDFCOUFFMTRBMDA3NDRBRUIgLyogV29ya1F1ZXVlTWFuYWdlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCSk7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9y
bVdlYlZpZXdJT1MubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZp
ZXdJT1MubW0KaW5kZXggMDFlMjZmOTJmZDllNWNhNmYzYWZiMTEyN2JlZjc3ZThhMWNiMDM2My4u
ODc5MGE3OGJjMDAzYWFjMjJiNjMxOGY5ZWQ3YzUxZDM0ZDdkYjRjOCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1tCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQpAQCAtNjcsNiArNjcs
MjIgQEAgLSAoaWQpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZyYW1lCiAgICAgcmV0dXJuIHNlbGY7
CiB9CiAKKy0gKHZvaWQpYmVjb21lS2V5V2luZG93Cit7CisgICAgW3N1cGVyIGJlY29tZUtleVdp
bmRvd107CisKKyAgICBpZiAoX3BsYXRmb3JtV2ViVmlldykKKyAgICAgICAgX3BsYXRmb3JtV2Vi
Vmlldy0+c2V0V2luZG93SXNLZXkodHJ1ZSk7Cit9CisKKy0gKHZvaWQpcmVzaWduS2V5V2luZG93
Cit7CisgICAgW3N1cGVyIHJlc2lnbktleVdpbmRvd107CisKKyAgICBpZiAoX3BsYXRmb3JtV2Vi
VmlldykKKyAgICAgICAgX3BsYXRmb3JtV2ViVmlldy0+c2V0V2luZG93SXNLZXkoZmFsc2UpOwor
fQorCiAtICh2b2lkKWRlYWxsb2MKIHsKICAgICBhbGxXaW5kb3dzLnJlbW92ZUZpcnN0KHNlbGYp
OwpAQCAtMjEyLDcgKzIyOCw3IEBAIFBsYXRmb3JtV2luZG93IFBsYXRmb3JtV2ViVmlldzo6a2V5
V2luZG93KCkKIHZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleShib29sIGlzS2V5
KQogewogICAgIG1fd2luZG93SXNLZXkgPSBpc0tleTsKLSAgICBpZiAoaXNLZXkpCisgICAgaWYg
KGlzS2V5ICYmICFtX3dpbmRvdy5rZXlXaW5kb3cpCiAgICAgICAgIFttX3dpbmRvdyBtYWtlS2V5
V2luZG93XTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE3ZDMwZTNkNzY1NzhmMTliYzI2Y2E1ODhhMmI2YTYxYjA4
MjUyNTguLmEzY2I5YWQwNWE0ZTYzYTZiOTMzZTA4ZGE1MzJkMjVkZTI1MDViYTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAyMC0wNy0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKworICAgICAgICBbaVBhZE9TXSBVbmFibGUgdG8gY2hhbmdlIGZvY3VzIGJldHdl
ZW4gR29vZ2xlIERvY3Mgd2luZG93cyBieSB0YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU3MDgzMjY3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCB0YXBwaW5nIHRvIGZvY3Vz
IGEgcGxhaW4gdGV4dGFyZWEgY2F1c2VzIHRoZSB3ZWIgdmlldydzIHdpbmRvdyB0byBiZWNvbWUK
KyAgICAgICAgdGhlIGtleSB3aW5kb3csIGFzIHdlbGwgYXMgdGFwcGluZyB0byBmb2N1cyBhIGhp
ZGRlbiBjb250ZW50ZWRpdGFibGUgYXJlYSwgb3ZlciBhIHRvdWNoIGhhbmRsZXIgdGhhdCBwcmV2
ZW50cworICAgICAgICBkZWZhdWx0LgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9z
L2JlY29tZS1rZXktd2luZG93LXdoZW4tZm9jdXNpbmctZWRpdGFibGUtYXJlYS1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5LXdp
bmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEuaHRtbDogQWRkZWQuCisgICAgICAgICog
cmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5zZXRXaW5k
b3dJc0tleSk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIud2luZG93SXNLZXkpOgorCiAyMDIw
LTA3LTAzICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRp
YVJlY29yZGVyIHNob3VsZCBzdXBwb3J0IHBlZXIgY29ubmVjdGlvbiByZW1vdGUgdmlkZW8gdHJh
Y2tzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21l
LWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1hcmVhLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5LXdpbmRvdy13aGVuLWZv
Y3VzaW5nLWVkaXRhYmxlLWFyZWEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MTcwMDgyMDJm
NDhlNGY4MjljMjgyZmQ3NDFhM2JjZTllYjVkYTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2lu
Zy1lZGl0YWJsZS1hcmVhLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitUaGlzIHRlc3Qg
dmVyaWZpZXMgdGhhdCBmb2N1c2luZyBlZGl0YWJsZSBlbGVtZW50cyB1cGRhdGVzIHRoZSBrZXkg
d2luZG93LiBUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVzdFJ1bm5lci4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgQmVjYW1lIGtleSB3aW5kb3cgYWZ0ZXIgdGFwcGlu
ZyBvbiBURVhUQVJFQQorUEFTUyBCZWNhbWUga2V5IHdpbmRvdyBhZnRlciB0YXBwaW5nIG9uIEJV
VFRPTgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5
LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEuaHRtbCBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRh
YmxlLWFyZWEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2E5ZmZjNTRmYjQ0NDgwMDlhZGNhMzVmODY3NzVi
NDYyMGVkMTg2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vaW9zL2JlY29tZS1rZXktd2luZG93LXdoZW4tZm9jdXNpbmctZWRpdGFibGUtYXJlYS5odG1s
CkBAIC0wLDAgKzEsNjQgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8bWV0YSBuYW1lPSJ2
aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVz
ZXItc2NhbGFibGU9bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3Jp
cHQ+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgI3RpbnktZWRpdG9yIHsKKyAgICAgICAgd2lk
dGg6IDAuNXB4OworICAgICAgICBoZWlnaHQ6IDAuNXB4OworICAgICAgICBwb3NpdGlvbjogYWJz
b2x1dGU7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgbGVmdDogMDsKKyAgICAgICAgb3ZlcmZs
b3c6IGhpZGRlbjsKKyAgICAgICAgb3V0bGluZTogbm9uZTsKKyAgICB9CisKKyAgICB0ZXh0YXJl
YSwgYnV0dG9uIHsKKyAgICAgICAgd2lkdGg6IDI4MHB4OworICAgICAgICBoZWlnaHQ6IDUwcHg7
CisgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICBmb250LXNpemU6IDIwcHg7CisgICAg
fQorICAgIDwvc3R5bGU+CisgICAgPHNjcmlwdD4KKyAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgICAgIGRl
c2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBmb2N1c2luZyBlZGl0YWJsZSBlbGVt
ZW50cyB1cGRhdGVzIHRoZSBrZXkgd2luZG93LiBUaGlzIHRlc3QgcmVxdWlyZXMgV2ViS2l0VGVz
dFJ1bm5lci4iKTsKKworICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoInRleHRhcmVhIik7CisgICAgICAgIGNvbnN0IGJ1dHRvbiA9IGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3IoImJ1dHRvbiIpOworCisgICAgICAgIGJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJ0
b3VjaHN0YXJ0IiwgKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVj
dG9yKCIjdGlueS1lZGl0b3IiKS5mb2N1cygpOworICAgICAgICAgICAgZXZlbnQucHJldmVudERl
ZmF1bHQoKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBmb3IgKGxldCBlbGVtZW50IG9mIFt0ZXh0
YXJlYSwgYnV0dG9uXSkgeworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0V2luZG93SXNL
ZXkoZmFsc2UpOworICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5k
V2FpdEZvcklucHV0U2Vzc2lvbihlbGVtZW50KTsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7
CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gYXdhaXQgVUlIZWxwZXIud2luZG93SXNLZXkoKTsK
KyAgICAgICAgICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRlc3RQYXNzZWQoYEJlY2FtZSBrZXkgd2luZG93
IGFmdGVyIHRhcHBpbmcgb24gJHtlbGVtZW50LnRhZ05hbWV9YCk7CisgICAgICAgICAgICBkb2N1
bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndh
aXRGb3JLZXlib2FyZFRvSGlkZSgpOworICAgICAgICAgICAgZWxlbWVudC5yZW1vdmUoKTsKKyAg
ICAgICAgfQorICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICB9KTsKKyAgICA8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InRpbnktZWRpdG9yIiBjb250ZW50ZWRpdGFi
bGU+PC9kaXY+CisgICAgPHRleHRhcmVhPkZpcnN0LCBjbGljayBoZXJlPC90ZXh0YXJlYT4KKyAg
ICA8YnV0dG9uPlRoZW4sIGNsaWNrIGhlcmU8L2J1dHRvbj4KKzwvYm9keT4KKzwvaHRtbD4KXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJj
ZXMvdWktaGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRl
eCBiZTA4NGEzMGE5NjY2NzY3ZThjMTMzMDQ4NDQ1ZmUyZWYwNGQzNjY2Li43ZDYwZjdkYmI1NmYy
MjQ3ODBhZmQwY2E0YzFkOGU0MzIzZGQ0ODIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNv
dXJjZXMvdWktaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIu
anMKQEAgLTExODgsNiArMTE4OCwyMCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBl
ciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyBzZXRXaW5kb3dJc0tleShpc0tl
eSkKKyAgICB7CisgICAgICAgIGNvbnN0IHNjcmlwdCA9IGB1aUNvbnRyb2xsZXIud2luZG93SXNL
ZXkgPSAke2lzS2V5fWA7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRl
c3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCByZXNvbHZlKSk7CisgICAgfQorCisgICAgc3Rh
dGljIHdpbmRvd0lzS2V5KCkKKyAgICB7CisgICAgICAgIGNvbnN0IHNjcmlwdCA9ICJ1aUNvbnRy
b2xsZXIudWlTY3JpcHRDb21wbGV0ZSh1aUNvbnRyb2xsZXIud2luZG93SXNLZXkpIjsKKyAgICAg
ICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVzdFJ1bm5lci5ydW5VSVNjcmlwdChz
Y3JpcHQsIChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgIHJlc29sdmUocmVzdWx0ID09PSAidHJ1
ZSIpOworICAgICAgICB9KSk7CisgICAgfQorCiAgICAgc3RhdGljIHdhaXRGb3JEb3VibGVUYXBE
ZWxheSgpCiAgICAgewogICAgICAgICBjb25zdCB1aVNjcmlwdCA9IGB1aUNvbnRyb2xsZXIuZG9B
ZnRlckRvdWJsZVRhcERlbGF5KCgpID0+IHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCIi
KSlgOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403598</attachid>
            <date>2020-07-06 09:08:27 -0700</date>
            <delta_ts>2020-07-06 12:45:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213985-20200706090826.patch</filename>
            <type>text/plain</type>
            <size>53007</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGZlODg1NTU1Nzk5MWU2OWY3
YTk1MDMwNGJiNmVjNTMyNTg3NThkMTMuLjNhZjFlMjVlMjlmMTM1MGEzNWU3Mzc2ZWU2NWE2ZjY1
OThhMTBmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEgQEAKKzIwMjAtMDctMDUgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lQYWRPU10gVW5hYmxl
IHRvIGNoYW5nZSBmb2N1cyBiZXR3ZWVuIEdvb2dsZSBEb2NzIHdpbmRvd3MgYnkgdGFwcGluZwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTg1Cisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzA4MzI2Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHB1dHRpbmcgdHdvIEdvb2dsZSBEb2NzIHdp
bmRvd3Mgc2lkZS1ieS1zaWRlIG9uIGlQYWQsIGl0J3MgY3VycmVudGx5IG5vdCBwb3NzaWJsZSB0
byBjaGFuZ2UgdGhlIHdpbmRvdyB0bworICAgICAgICB3aGljaCBrZXlib2FyZCBpbnB1dCBpcyBy
b3V0ZWQuIEluIG5hdGl2ZSB2aWV3cyAoZS5nLiB0d28gc2lkZS1ieS1zaWRlIE5vdGVzIHdpbmRv
d3MpLCB0aGlzIGlzIG5vcm1hbGx5IGhhbmRsZWQKKyAgICAgICAgYnkgYFVJVGV4dE11bHRpVGFw
UmVjb2duaXplcmAsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIGBVSVRleHRTZWxlY3Rpb25JbnRlcmFj
dGlvbmA7IHRhcHBpbmcgdG8gcGxhY2UgdGhlIHRleHQKKyAgICAgICAgc2VsZWN0aW9uIGNhbGxz
IGludG8gYC1bVUlUZXh0SW50ZXJhY3Rpb25Bc3Npc3RhbnQgc2V0Rmlyc3RSZXNwb25kZXJJZk5l
Y2Vzc2FyeUFjdGl2YXRpbmdTZWxlY3Rpb246XWAsIHdoaWNoCisgICAgICAgIHVwZGF0ZXMgdGhl
IGtleSB3aW5kb3cgaWYgbmVlZGVkLiBUaGlzIGRvZXNuJ3QgYXBwbHkgdG8gR29vZ2xlIERvY3Mg
YmVjYXVzZSB0aGV5IGluc3RlYWQgdXNlIHRvdWNoIGV2ZW50cyB0bworICAgICAgICBkcml2ZSB0
aGVpciBvd24gInRleHQgaW50ZXJhY3Rpb24iLWxpa2UgYmVoYXZpb3JzIGluc3RlYWQgb2YgcmVs
eWluZyBvbiBzeXN0ZW0gZ2VzdHVyZSByZWNvZ25pemVycywgd2hpY2ggd2UKKyAgICAgICAgc3Vw
cHJlc3MgZHVlIHRvIHRoZSBmYWN0IHRoYXQgdGhlIHNlbGVjdGlvbiBpcyB3aXRoaW4gYSBoaWRk
ZW4gY29udGVudGVkaXRhYmxlLgorCisgICAgICAgIEJ1dCBldmVuIGluIG5vbi1oaWRkZW4gZWRp
dGFibGUgYXJlYXMsIHRoZSBpbml0aWFsIHRhcCB0byBmb2N1cyBhbiBlZGl0YWJsZSBlbGVtZW50
IHN0aWxsIGRvZXNuJ3QgYXV0b21hdGljYWxseQorICAgICAgICBtYWtlIHRoZSB3aW5kb3cga2V5
LCBzaW5jZSB0aGUgZWRpdGFibGUgdGV4dCBpbnRlcmFjdGlvbiBnZXN0dXJlcyBhcmUgc3RpbGwg
aW5hY3RpdmUgd2hlbiB0YXBwaW5nIHRvIGZvY3VzIGFuCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnQuIFRoaXMgbWVhbnMgdHdvIHRhcHMgYXJlIGN1cnJlbnRseSByZXF1aXJlZCB0byBjaGFuZ2Ug
dGhlIGtleSB3aW5kb3cgd2hlbiBmb2N1c2luZyB0d28gU2FmYXJpCisgICAgICAgIHdpbmRvd3Mg
c2lkZS1ieS1zaWRlOiB0aGUgZmlyc3QgdGFwIHRvIGZvY3VzIHRoZSBlbGVtZW50ICh2aWEgdGhl
IHN5bnRoZXRpYyBjbGljayBnZXN0dXJlKSwgYW5kIHRoZSBzZWNvbmQgdGFwCisgICAgICAgIHRv
IHRyaWdnZXIgdGhlIGVkaXRhYmxlIHRleHQgaW50ZXJhY3Rpb24gdGFwIGdlc3R1cmUgdGhhdCBp
cyB1c2VkIHRvIHNldCB0aGUgc2VsZWN0aW9uLgorCisgICAgICAgIFRvIGZpeCBib3RoIG9mIHRo
ZXNlIGlzc3VlcywgbWFrZSBzb21lIG1pbm9yIGFkanVzdG1lbnRzIHRvIGNhbGwgYC1tYWtlS2V5
V2luZG93YCBmcm9tIFdlYktpdCB3aGVuIGZvY3VzaW5nCisgICAgICAgIGVkaXRhYmxlIGVsZW1l
bnRzLiBTZWUgYmVsb3cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1h
cmVhLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF93ZWJUb3VjaEV2ZW50c1JlY29nbml6
ZWQ6XSk6CisKKyAgICAgICAgRm9yIHRoZSBjYXNlIGluIEdvb2dsZSBEb2NzIHdoZXJlIGEgaGlk
ZGVuIGVkaXRhYmxlIGVsZW1lbnQgaXMgdXNlZCBhbmQgdGFwcGluZyBpbiB0aGUgcGFnZSBkb2Vz
IG5vdCByZXN1bHQgaW4KKyAgICAgICAgdGhlIGVsZW1lbnQgYmVpbmcgcmVmb2N1c2VkLCB3ZSBh
ZGRpdGlvbmFsbHkgbmVlZCB0byBtYWtlIHN1cmUgdGhhdCB3ZSBtYWtlIG91ciB3aW5kb3cga2V5
IGFueXdheXMuIExpbWl0IHRoaXMKKyAgICAgICAgaGFjayB0byB0YXAgZ2VzdHVyZXMsIGFuZCBv
bmx5IHdoZW4gdGhlcmUgaXMgYSBoaWRkZW4gZm9jdXNlZCBlZGl0YWJsZSBlbGVtZW50IHRvIGVt
dWxhdGUgcGxhdGZvcm0gYmVoYXZpb3Igb2YKKyAgICAgICAgdXBkYXRpbmcgdGhlIGtleSB3aW5k
b3cgYmFzZWQgb24gdGhlIHRleHQgdGFwIGdlc3R1cmUuCisKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBfZWxlbWVudERpZEZvY3VzOnVzZXJJc0ludGVyYWN0aW5nOmJsdXJQcmV2aW91c05vZGU6
YWN0aXZpdHlTdGF0ZUNoYW5nZXM6dXNlck9iamVjdDpdKToKKworICAgICAgICBNYWtlIHRoZSBj
b250ZW50IHZpZXcncyB3aW5kb3cga2V5IHdoZW4gZm9jdXNpbmcgYW4gZWRpdGFibGUgZWxlbWVu
dC4KKworICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGhhc0hpZGRlbkNvbnRlbnRFZGl0YWJsZV0p
OgorCisgICAgICAgIENvbnNpZGVyIHRoZSBzZWxlY3Rpb24gdG8gYmUgaW5zaWRlIGEgaGlkZGVu
IGVkaXRhYmxlIGFyZWEgaWYgdGhlIGBXZWJLaXQ6OkZvY3VzZWRFbGVtZW50SXNUb29TbWFsbGAg
ZmxhZyBpcyBzZXQKKyAgICAgICAgYXMgd2VsbC4gV2hpbGUgdGhpcyBkb2Vzbid0IGFmZmVjdCBH
b29nbGUgRG9jcywgaXQgZG9lcyBhZmZlY3Qgc29tZSBvdGhlciBjdXN0b20gZWRpdG9ycywgc3Vj
aCBhcyBRdWlwLgorCisgICAgICAgICgtW1dLQ29udGVudFZpZXcgbW91c2VHZXN0dXJlUmVjb2du
aXplckNoYW5nZWQ6XSk6CisKKyAgICAgICAgQWRkaXRpb25hbGx5IG1ha2UgdGhlIGN1cnJlbnQg
d2luZG93IGtleSB3aGVuIGNsaWNraW5nIGluIGEgaGlkZGVuIGVkaXRhYmxlIGFyZWEgd2l0aCBh
IHRyYWNrcGFkIG9uIGlPUy4KKwogMjAyMC0wNy0wNSAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjM5NjAu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCA3YjhiNWZmZDRiYjgzMDUwMDJiZDEyYmFkZjhhNTFhOGVlMDE1
NGU4Li42MWJkNWY0N2E5ODE4ZTVlNzU0ODMyZDE4OTZiNzUwOWUwN2IyZmUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KQEAgLTE0OTksNiArMTQ5OSw5IEBAIC0gKHZvaWQpX3dlYlRvdWNoRXZlbnRzUmVjb2du
aXplZDooVUlXZWJUb3VjaEV2ZW50c0dlc3R1cmVSZWNvZ25pemVyICopZ2VzdHVyZVJlCiAKICAg
ICAgICAgaWYgKCFfcGFnZS0+aXNTY3JvbGxpbmdPclpvb21pbmcoKSkKICAgICAgICAgICAgIFtz
ZWxmIF9yZXNldFBhbm5pbmdQcmV2ZW50aW9uRmxhZ3NdOworCisgICAgICAgIGlmIChuYXRpdmVX
ZWJUb3VjaEV2ZW50LmlzUG90ZW50aWFsVGFwKCkgJiYgc2VsZi5oYXNIaWRkZW5Db250ZW50RWRp
dGFibGUgJiYgc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgJiYgIXNlbGYud2luZG93LmtleVdpbmRv
dykKKyAgICAgICAgICAgIFtzZWxmLndpbmRvdyBtYWtlS2V5V2luZG93XTsKICAgICB9CiAjZW5k
aWYKIH0KQEAgLTU5ODQsOCArNTk4NywxMSBAQCAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNv
bnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdQogICAg
IFtzZWxmIHJlbG9hZElucHV0Vmlld3NdOwogI2VuZGlmCiAKLSAgICBpZiAoaXNTZWxlY3RhYmxl
KQorICAgIGlmIChpc1NlbGVjdGFibGUpIHsKICAgICAgICAgW3NlbGYgX3Nob3dLZXlib2FyZF07
CisgICAgICAgIGlmICghc2VsZi53aW5kb3cua2V5V2luZG93KQorICAgICAgICAgICAgW3NlbGYu
d2luZG93IG1ha2VLZXlXaW5kb3ddOworICAgIH0KIAogICAgIC8vIFRoZSBjdXN0b20gZml4ZWQg
cG9zaXRpb24gcmVjdCBiZWhhdmlvciBpcyBhZmZlY3RlZCBieSAtaXNGb2N1c2luZ0VsZW1lbnQs
IHNvIGlmIHRoYXQgY2hhbmdlcyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSByZWN0cy4KICAgICBpZiAo
ZWRpdGFibGVDaGFuZ2VkKQpAQCAtNjYyOCw3ICs2NjM0LDcgQEAgLSAoQk9PTClzdXBwb3J0c1Rl
eHRTZWxlY3Rpb25XaXRoQ2hhcmFjdGVyR3JhbnVsYXJpdHkKIAogLSAoQk9PTCloYXNIaWRkZW5D
b250ZW50RWRpdGFibGUKIHsKLSAgICByZXR1cm4gX3N1cHByZXNzU2VsZWN0aW9uQXNzaXN0YW50
UmVhc29ucy5jb250YWlucyhXZWJLaXQ6OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5
Q2xpcHBlZCk7CisgICAgcmV0dXJuIF9zdXBwcmVzc1NlbGVjdGlvbkFzc2lzdGFudFJlYXNvbnMu
Y29udGFpbnNBbnkoeyBXZWJLaXQ6OkVkaXRhYmxlUm9vdElzVHJhbnNwYXJlbnRPckZ1bGx5Q2xp
cHBlZCwgV2ViS2l0OjpGb2N1c2VkRWxlbWVudElzVG9vU21hbGwgfSk7CiB9CiAKIC0gKEJPT0wp
X3Nob3VsZFN1cHByZXNzU2VsZWN0aW9uQ29tbWFuZHMKQEAgLTg1NjEsNiArODU2Nyw5IEBAIC0g
KHZvaWQpbW91c2VHZXN0dXJlUmVjb2duaXplckNoYW5nZWQ6KFdLTW91c2VHZXN0dXJlUmVjb2du
aXplciAqKWdlc3R1cmVSZWNvZ25pCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gV2ViS2l0OjpX
ZWJFdmVudDo6TW91c2VEb3duKQogICAgICAgICBfbGF5ZXJUcmVlVHJhbnNhY3Rpb25JZEF0TGFz
dEludGVyYWN0aW9uU3RhcnQgPSBkb3duY2FzdDxXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk+KCpfcGFnZS0+ZHJhd2luZ0FyZWEoKSkubGFzdENvbW1pdHRlZExheWVyVHJl
ZVRyYW5zYWN0aW9uSUQoKTsKIAorICAgIGlmIChldmVudC0+dHlwZSgpID09IFdlYktpdDo6V2Vi
RXZlbnQ6Ok1vdXNlVXAgJiYgc2VsZi5oYXNIaWRkZW5Db250ZW50RWRpdGFibGUgJiYgc2VsZi5f
aGFzRm9jdXNlZEVsZW1lbnQgJiYgIXNlbGYud2luZG93LmtleVdpbmRvdykKKyAgICAgICAgW3Nl
bGYud2luZG93IG1ha2VLZXlXaW5kb3ddOworCiAgICAgX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQo
KmV2ZW50KTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IGI3ZWRiZDAwZjlhNGY0OGViOGRkNDkyYTEzOGMyMWU1MDBmMGJhYWQuLmMyOTEz
Yjc5ZDhhNzkzMjcyZDJiZjNjMWZlZDg5ODFmZDdlZDExMWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NyBAQAorMjAyMC0wNy0w
NSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaVBh
ZE9TXSBVbmFibGUgdG8gY2hhbmdlIGZvY3VzIGJldHdlZW4gR29vZ2xlIERvY3Mgd2luZG93cyBi
eSB0YXBwaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM5ODUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MDgzMjY3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBXZWJLaXRUZXN0UnVubmVy
IHN1cHBvcnQgZm9yIGJlaW5nIGFibGUgdG8gdmVyaWZ5IHRoYXQgYSB3ZWIgdmlldydzIHdpbmRv
dyBoYXMgYmVjb21lIHRoZSBrZXkgd2luZG93LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Q01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9VSVNj
cmlwdENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpzZXRXaW5kb3dJc0tleSk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6
d2luZG93SXNLZXkgY29uc3QpOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAg
ICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hh
cmVkLmNwcDogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAuCisKKyAgICAgICAgUmVuYW1lIGBVSVNjcmlwdENv
bnRyb2xsZXIuY3BwYCAoaW4gVGVzdFJ1bm5lclNoYXJlZCkgdG8gYFVJU2NyaXB0Q29udHJvbGxl
clNoYXJlZC5jcHBgLCBhbmQgaW50cm9kdWNlIG5ldworICAgICAgICBEdW1wUmVuZGVyVHJlZSBh
bmQgV2ViS2l0VGVzdFJ1bm5lciB2ZXJzaW9ucyBvZiBgVUlTY3JpcHRDb250cm9sbGVyLmNwcGAg
dG8gaG91c2UgRHVtcFJlbmRlclRyZWUgYW5kCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXItc3Bl
Y2lmaWMgVUlTY3JpcHRDb250cm9sbGVyIG1ldGhvZCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAg
ICAgRm9yIG5vdywgdGhlc2UgYXJlIGp1c3QgYHdpbmRvd0lzS2V5YCBhbmQgYHNldFdpbmRvd0lz
S2V5YCBiZWxvdywgd2hpY2ggcGx1bWIgaW50byB0aGVpciByZXNwZWN0aXZlIHBsYXRmb3JtLQor
ICAgICAgICBhZ25vc3RpYyBgUGxhdGZvcm1XZWJWaWV3YCBtZXRob2RzIGluIFdlYktpdFRlc3RS
dW5uZXIuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5j
cHA6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OndpbmRvd0lzS2V5
IGNvbnN0KToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tl
eSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL1dlYktpdFRlc3RSdW5uZXIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1Mu
bW06CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgYmVjb21lS2V5V2luZG93XSk6
CisgICAgICAgICgtW1dlYktpdFRlc3RSdW5uZXJXaW5kb3cgcmVzaWduS2V5V2luZG93XSk6CisK
KyAgICAgICAgVXBkYXRlIHRoZXNlIHR3byBtZXRob2RzIHRvIHVwZGF0ZSBgbV93aW5kb3dJc0tl
eWAgd2hlbiB0aGUgdGVzdCBydW5uZXIncyBgVUlXaW5kb3dgIGJlY29tZXMgdGhlIGtleSB3aW5k
b3cgKG9yCisgICAgICAgIHN0b3BzIGJlaW5nIHRoZSBrZXkgd2luZG93KS4gVGhpcyBpcyBpbnZv
a2VkIHdoZW4gYC1bVUlXaW5kb3cgbWFrZUtleVdpbmRvd11gIGlzIGNhbGxlZCAoZS5nLiBmcm9t
IHdpdGhpbiBXZWJLaXQKKyAgICAgICAgY29kZSB3aGVuIHRhcHBpbmcgb24gYW4gZWRpdGFibGUg
ZWxlbWVudCkuCisKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tl
eSk6CisKKyAgICAgICAgQXZvaWQgaW5maW5pdGVseSBsb29waW5nIHdoZW4gc2V0dGluZyB3aW5k
b3dJc0tleSB0byBgdHJ1ZWAsIGR1ZSB0byBgLWJlY29tZUtleVdpbmRvd2AgY2FsbGluZyBiYWNr
IGludG8KKyAgICAgICAgYHNldFdpbmRvd0lzS2V5YC4KKwogMjAyMC0wNy0wNSAgQ29tbWl0IFF1
ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2
ZXJ0aW5nIHIyNjM5NjAuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9DTWFrZUxp
c3RzLnR4dCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CmluZGV4IGQxODUz
ODBlOGZhYzgzOGYzZGM2NmVkZGExMjM0MzMxNDUxYjQ1YjguLjM2ZTNmZTg2Y2QxZTE5Mjk2NzI3
ZjY1Y2MwOThkODgwYzRjODBhMWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL0NNYWtlTGlzdHMudHh0CkBA
IC05LDcgKzksNyBAQCBzZXQoRHVtcFJlbmRlclRyZWVfU09VUkNFUwogICAgICR7V2ViS2l0VGVz
dFJ1bm5lcl9TSEFSRURfRElSfS9CaW5kaW5ncy9KU1dyYXBwZXIuY3BwCiAKICAgICAke1dlYktp
dFRlc3RSdW5uZXJfVUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRDb250ZXh0LmNwcAotICAg
ICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQVENPTlRFWFRfRElSfS9VSVNjcmlwdENvbnRyb2xs
ZXIuY3BwCisgICAgJHtXZWJLaXRUZXN0UnVubmVyX1VJU0NSSVBUQ09OVEVYVF9ESVJ9L1VJU2Ny
aXB0Q29udHJvbGxlclNoYXJlZC5jcHAKIAogICAgIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cAogICAgIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyLmNwcApAQCAtMjEsNiArMjEsNyBAQCBzZXQo
RHVtcFJlbmRlclRyZWVfU09VUkNFUwogICAgIFBpeGVsRHVtcFN1cHBvcnQuY3BwCiAgICAgVGVz
dE9wdGlvbnMuY3BwCiAgICAgVGVzdFJ1bm5lci5jcHAKKyAgICBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwCiAgICAgV29ya1F1ZXVlLmNwcAogKQogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvRHVtcFJlbmRlclRyZWUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRl
eCA0NTEyMDlkOWZhOWQ5MDMwMDQwYzEwODg4YzdiOTdmMDZhNWNiYTZmLi5hYzExNThkMzUzYTU1
YTJiOWMwYWFmNDU4MTA4NzcxMDFhNDZhMDY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9EdW1wUmVuZGVyVHJlZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTQ4LDcgKzQ4LDYgQEAKIC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTAw
RjA0ODU0MUEwQzNDOUEwMDAyNDREQiAvKiBVUkxSZWRpcmVjdC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwMEYwNDg1MzFBMEMzQzlBMDAwMjQ0REIg
LyogVVJMUmVkaXJlY3QuY3BwICovOyB9OwogCQkwRjE4RTZFQzFENkI5QzA3MDAyN0U1NDcgLyog
VUlTY3JpcHRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGMThFNkU4MUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3Bw
ICovOyB9OwotCQkwRjE4RTZFRDFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThF
NkVBMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQkw
RjE4RTcwNjFENkJBMDIzMDAyN0U1NDcgLyogSlNVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxOEU3MDQxRDZCQTAy
MzAwMjdFNTQ3IC8qIEpTVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJMEYxOEU3MEQx
RDZCQUM4QzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlcklPUy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMThFNzBDMUQ2QkFDOEMwMDI3RTU0
NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gKi87IH07CiAJCTBGMThFNzBGMUQ2QkFDQjYw
MDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTcwRTFENkJBQ0I2MDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250cm9sbGVyTWFjLm1tICovOyB9OwpAQCAtMTU3LDYgKzE1Niw4IEBACiAJCUMyM0VB
MjA4MUJDOUYwNTEwMEM5ODBCNyAvKiBGb250V2l0aEZlYXR1cmVzLm90ZiBpbiBDb3B5IEZvbnQg
RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIzRUEyMDYxQkM5RUFC
QTAwQzk4MEI3IC8qIEZvbnRXaXRoRmVhdHVyZXMub3RmICovOyB9OwogCQlDMjNFQTIwOTFCQzlG
MDUxMDBDOTgwQjcgLyogRm9udFdpdGhGZWF0dXJlcy50dGYgaW4gQ29weSBGb250IEZpbGVzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyM0VBMjA3MUJDOUVBQkEwMEM5ODBC
NyAvKiBGb250V2l0aEZlYXR1cmVzLnR0ZiAqLzsgfTsKIAkJRTFCNzgxNjUxMUFGMzFCNzAwN0Ux
QkMyIC8qIE1vY2tHZW9sb2NhdGlvblByb3ZpZGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFCNzgwODcxMUFGMTY2OTAwN0UxQkMyIC8qIE1vY2tH
ZW9sb2NhdGlvblByb3ZpZGVyLm1tICovOyB9OworCQlGNDQ1QzY4NjI0QjI3ODlEMDA3OTA0NDAg
LyogVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0MCAvKiBVSVNjcmlw
dENvbnRyb2xsZXJTaGFyZWQuY3BwICovOyB9OworCQlGNDQ1QzY4OTI0QjI3OEVDMDA3OTA0NDAg
LyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NDVDNjg4MjRCMjc4RUMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRy
b2xsZXIuY3BwICovOyB9OwogCQlGNDRBNTMxRDIxQjg5QTREMDBEQkI5OUMgLyogQ2xhc3NNZXRo
b2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NEE1MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICov
OyB9OwogCQlGNDRBNTMxRTIxQjg5QTUwMDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxl
ci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1
MzFDMjFCODlBNDUwMERCQjk5QyAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9Owog
CQlGNDg0QzIyMzIzN0IyN0Q2MDBCRjc3RDAgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDg0QzIyMjIz
N0IyN0Q2MDBCRjc3RDAgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gKi87IH07CkBAIC0y
NDYsNyArMjQ3LDYgQEAKIAkJMDBGMDQ4NTMxQTBDM0M5QTAwMDI0NERCIC8qIFVSTFJlZGlyZWN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVSTFJlZGlyZWN0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RTgxRDZCOUMwNzAwMjdFNTQ3
IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBVSVNjcmlwdENvbnRleHQuY3BwOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEYxOEU2RTkxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBVSVNjcmlwdENvbnRleHQuaDsgcGF0aCA9IC4u
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwRjE4RTZFQTFENkI5QzA3MDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IFVJU2NyaXB0Q29udHJvbGxlci5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQkwRjE4RTZFQjFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250cm9sbGVyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVJU2NyaXB0Q29udHJvbGxlci5oOyBw
YXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMThFNkYwMUQ2QjlDMjQwMDI3
RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFVJ
U2NyaXB0Q29udHJvbGxlci5pZGw7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwRjE4RTZGMTFENkI5QzY0MDAyN0U1NDcgLyogRGVyaXZlZFNvdXJjZXMu
bWFrZSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBEZXJpdmVkU291cmNlcy5tYWtlOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDI4LDYgKzQyOCw4IEBACiAJCUMyM0VBMjA3MUJDOUVBQkEwMEM5ODBCNyAvKiBGb250
V2l0aEZlYXR1cmVzLnR0ZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IGZpbGU7IG5hbWUgPSBGb250V2l0aEZlYXR1cmVzLnR0ZjsgcGF0aCA9IGZvbnRz
L0ZvbnRXaXRoRmVhdHVyZXMudHRmOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUI3
ODA4NTExQUYxNjQzMDA3RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTW9ja0dlb2xvY2F0aW9uUHJvdmlkZXIuaDsgcGF0
aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Qcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMUI3ODA4NzExQUYxNjY5MDA3RTFCQzIgLyogTW9ja0dlb2xvY2F0aW9uUHJvdmlk
ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBNb2NrR2VvbG9j
YXRpb25Qcm92aWRlci5tbTsgcGF0aCA9IG1hYy9Nb2NrR2VvbG9jYXRpb25Qcm92aWRlci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjQ0NUM2ODUyNEIyNzg4RjAwNzkwNDQwIC8q
IFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBVSVNjcmlw
dENvbnRyb2xsZXJTaGFyZWQuY3BwOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRjQ0NUM2ODgyNEIyNzhFQzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVSVNjcmlwdENvbnRyb2xsZXIuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRBNTMxOTIxQjg5QTQ0MDBEQkI5OUMgLyogSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1
MzFBMjFCODlBNDQwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMUIyMUI4OUE0NDAwREJCOTlDIC8qIENs
YXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xh
c3NNZXRob2RTd2l6emxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTMzLDgg
KzUzNSw5IEBACiAJCQkJMEY2QTBFMDAxRDZFMEY4QTAwRjFDOUE4IC8qIG1hYyAqLywKIAkJCQkw
RjE4RTZFODFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLywKIAkJCQkw
RjE4RTZFOTFENkI5QzA3MDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8sCi0JCQkJMEYx
OEU2RUExRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgKi8sCisJCQkJ
RjQ0NUM2ODgyNEIyNzhFQzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgKi8sCiAJ
CQkJMEYxOEU2RUIxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5oICovLAor
CQkJCUY0NDVDNjg1MjRCMjc4OEYwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFyZWQu
Y3BwICovLAogCQkJKTsKIAkJCW5hbWUgPSBVSVNjcmlwdENvbnRleHQ7CiAJCQlzb3VyY2VUcmVl
ID0gIjxncm91cD4iOwpAQCAtMTIzMCwxMCArMTIzMywxMSBAQAogCQkJCUJDQTE4QjQ5MEM5QjAy
QzQwMDExNDM2OSAvKiBUZXh0SW5wdXRDb250cm9sbGVyTWFjLm0gaW4gU291cmNlcyAqLywKIAkJ
CQlCQ0ExOEI2QTBDOUIwOEMyMDAxMTQzNjkgLyogVUlEZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTBGMThFNkVDMUQ2QjlDMDcwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRleHQuY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJMEYxOEU2RUQxRDZCOUMwNzAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlGNDQ1QzY4OTI0QjI3OEVDMDA3OTA0NDAg
LyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0ODRDMjIzMjM3
QjI3RDYwMEJGNzdEMCAvKiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTBGMThFNzBEMUQ2QkFDOEMwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJJT1Mu
bW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTcwRjFENkJBQ0I2MDAyN0U1NDcgLyogVUlTY3Jp
cHRDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjQ0NUM2ODYyNEIyNzg5RDAw
NzkwNDQwIC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlCQzlEOTAyNDBDOTc0NzJFMDA5OUE0QTMgLyogV29ya1F1ZXVlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDQTE4QjI2MEM5QjAxNUMwMDExNDM2OSAvKiBXb3JrUXVldWVJdGVtTWFjLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVUlT
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1VJU2NyaXB0Q29udHJv
bGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGEyNTRmZDMxZjVhYTI2Njk3Y2RkNTMyODc3NzBhMzAzOGRl
ODAxNQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1VJU2NyaXB0Q29u
dHJvbGxlci5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJVSVNjcmlwdENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7
CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaW5kb3dJc0tleShib29sKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjp3aW5kb3dJ
c0tleSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29u
dHJvbGxlci5pZGwKaW5kZXggOWQ5ZGJhYzRhY2U0YzU2NWZmNzBiNTBlZTJkNzUyMWUwOWJjM2Vm
YS4uOWZkNjdmZDY0Mjg4ZTE5YmFhYTI5ODhkZjJlNDViNDMxZWI0YzhhOCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCkBAIC0yNDEsNiArMjQxLDggQEAgaW50
ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xl
YW4gaXNTaG93aW5nS2V5Ym9hcmQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaGFz
SW5wdXRTZXNzaW9uOwogCisgICAgYXR0cmlidXRlIGJvb2xlYW4gd2luZG93SXNLZXk7CisKICAg
ICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNob3dNZW51Q2FsbGJhY2s7CiAgICAgYXR0cmlidXRlIG9i
amVjdCBkaWRIaWRlTWVudUNhbGxiYWNrOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFu
IGlzRGlzbWlzc2luZ01lbnU7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMmFjM2Q2NGViMzJmNTgwY2FjYTg1ODNmZmU3MDQ3Yjc5NjMxYWE3
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9U
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMjQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCi0KLSNpbmNsdWRlICJKU1VJ
U2NyaXB0Q29udHJvbGxlci5oIgotI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4dC5oIgotI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KLSNpbmNsdWRlIDxKYXZhU2NyaXB0Q29y
ZS9PcGFxdWVKU1N0cmluZy5oPgotCi1uYW1lc3BhY2UgV1RSIHsKLQotRGV2aWNlT3JpZW50YXRp
b24qIHRvRGV2aWNlT3JpZW50YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYg
dmFsdWUpCi17Ci0gICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uIHZhbHVlc1tdID0gewotICAg
ICAgICBEZXZpY2VPcmllbnRhdGlvbjo6UG9ydHJhaXQsCi0gICAgICAgIERldmljZU9yaWVudGF0
aW9uOjpQb3J0cmFpdFVwc2lkZURvd24sCi0gICAgICAgIERldmljZU9yaWVudGF0aW9uOjpMYW5k
c2NhcGVMZWZ0LAotICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNjYXBlUmlnaHQKLSAg
ICB9OwotCi0gICAgYXV0byBvcHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRl
eHQsIHZhbHVlLCBudWxscHRyKSk7Ci0gICAgaWYgKG9wdGlvbi5nZXQoKS0+c3RyaW5nKCkgPT0g
InBvcnRyYWl0IikKLSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMF07Ci0gICAgICAgIAotICAgIGlm
IChvcHRpb24uZ2V0KCktPnN0cmluZygpID09ICJwb3J0cmFpdC11cHNpZGVkb3duIikKLSAgICAg
ICAgcmV0dXJuICZ2YWx1ZXNbMV07Ci0gICAgICAgIAotICAgIGlmIChvcHRpb24uZ2V0KCktPnN0
cmluZygpID09ICJsYW5kc2NhcGUtbGVmdCIpCi0gICAgICAgIHJldHVybiAmdmFsdWVzWzJdOwot
ICAgICAgICAKLSAgICBpZiAob3B0aW9uLmdldCgpLT5zdHJpbmcoKSA9PSAibGFuZHNjYXBlLXJp
Z2h0IikKLSAgICAgICAgcmV0dXJuICZ2YWx1ZXNbM107Ci0gICAgICAgIAotICAgIHJldHVybiBu
dWxscHRyOwotfQotCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAh
UExBVEZPUk0oV0lOKSAmJiAhUExBVEZPUk0oV1BFKQotUmVmPFVJU2NyaXB0Q29udHJvbGxlcj4g
VUlTY3JpcHRDb250cm9sbGVyOjpjcmVhdGUoVUlTY3JpcHRDb250ZXh0JiBjb250ZXh0KQotewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFVJU2NyaXB0Q29udHJvbGxlcihjb250ZXh0KSk7Ci19
Ci0jZW5kaWYKLQotVUlTY3JpcHRDb250cm9sbGVyOjpVSVNjcmlwdENvbnRyb2xsZXIoVUlTY3Jp
cHRDb250ZXh0JiBjb250ZXh0KQotICAgIDogbV9jb250ZXh0KCZjb250ZXh0KQotewotfQotCi12
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgbV9jb250
ZXh0ID0gbnVsbHB0cjsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6Om1ha2VXaW5kb3dP
YmplY3QoSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHdpbmRvd09iamVjdCwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIHNldFByb3BlcnR5KGNvbnRleHQsIHdpbmRvd09i
amVjdCwgInVpQ29udHJvbGxlciIsIHRoaXMsIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUsIGV4Y2VwdGlvbik7Ci19Ci0KLUpTQ2xh
c3NSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3cmFwcGVyQ2xhc3MoKQotewotICAgIHJldHVybiBK
U1VJU2NyaXB0Q29udHJvbGxlcjo6dUlTY3JpcHRDb250cm9sbGVyQ2xhc3MoKTsKLX0KLQotdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3RlckNh
bGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rp
b24pOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU3RhcnRGb3JtQ29u
dHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQt
PmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlv
bik7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRFbmRGb3JtQ29udHJvbElu
dGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQt
PnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZEVuZEZvcm1Db250cm9s
SW50ZXJhY3Rpb24pOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRW5k
Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9j
b250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uKTsKLX0KLSAgICAKLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Q29u
dGV4dE1lbnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+
cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd0NvbnRleHRNZW51
KTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFNob3dDb250ZXh0TWVu
dUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJ
RChDYWxsYmFja1R5cGVEaWRTaG93Q29udGV4dE1lbnUpOwotfQotCi12b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6c2V0RGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxs
YmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxi
YWNrVHlwZURpZERpc21pc3NDb250ZXh0TWVudSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRD
b250cm9sbGVyOjpkaWREaXNtaXNzQ29udGV4dE1lbnVDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0Nv
bnRleHRNZW51KTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFdpbGxCZWdpblpv
b21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVn
aXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbEJlZ2luWm9vbWluZyk7Ci19
Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsQmVnaW5ab29taW5nQ2FsbGJh
Y2soKSBjb25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxi
YWNrVHlwZVdpbGxCZWdpblpvb21pbmcpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
c2V0RGlkRW5kWm9vbWluZ0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9j
b250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRFbmRab29t
aW5nKTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZFpvb21pbmdD
YWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQo
Q2FsbGJhY2tUeXBlRGlkRW5kWm9vbWluZyk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVy
OjpzZXRXaWxsQ3JlYXRlTmV3UGFnZUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0g
ICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVXaWxs
Q3JlYXRlTmV3UGFnZSk7Ci19Ci0KLUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxs
Q3JlYXRlTmV3UGFnZUNhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5j
YWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVXaWxsQ3JlYXRlTmV3UGFnZSk7Ci19Ci0KLXZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRFbmRTY3JvbGxpbmdDYWxsYmFjayhKU1ZhbHVlUmVm
IGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywg
Q2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nKTsKLX0KLQotSlNWYWx1ZVJlZiBVSVNjcmlwdENv
bnRyb2xsZXI6OmRpZEVuZFNjcm9sbGluZ0NhbGxiYWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRTY3JvbGxpbmcpOwot
fQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0tleWJvYXJkQ2FsbGJhY2so
SlNWYWx1ZVJlZiBjYWxsYmFjaykKLXsKLSAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2so
Y2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dLZXlib2FyZCk7Ci19Ci0KLUpTVmFsdWVSZWYg
VUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93S2V5Ym9hcmRDYWxsYmFjaygpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd0tl
eWJvYXJkKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZEhpZGVLZXlib2Fy
ZENhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3Rl
ckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlS2V5Ym9hcmQpOwotfQotCi1K
U1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZUtleWJvYXJkQ2FsbGJhY2soKSBj
b25zdAotewotICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlw
ZURpZEhpZGVLZXlib2FyZCk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRT
aG93TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5y
ZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRTaG93TWVudSk7Ci19Ci0K
LUpTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93TWVudUNhbGxiYWNrKCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVE
aWRTaG93TWVudSk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlTWVu
dUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCi17Ci0gICAgbV9jb250ZXh0LT5yZWdpc3Rl
ckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRIaWRlTWVudSk7Ci19Ci0KLUpTVmFs
dWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRIaWRlTWVudUNhbGxiYWNrKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRIaWRl
TWVudSk7Ci19Ci0KLXZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsUHJlc2VudFBvcG92
ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewotICAgIG1fY29udGV4dC0+cmVnaXN0
ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKLX0K
LQotSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OndpbGxQcmVzZW50UG9wb3ZlckNhbGxi
YWNrKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxs
YmFja1R5cGVXaWxsUHJlc2VudFBvcG92ZXIpOwotfQotCi12b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6c2V0RGlkRGlzbWlzc1BvcG92ZXJDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQotewot
ICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlk
RGlzbWlzc1BvcG92ZXIpOwotfQotCi1KU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlk
RGlzbWlzc1BvcG92ZXJDYWxsYmFjaygpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fY29udGV4dC0+
Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc1BvcG92ZXIpOwotfQotCi12b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6dWlTY3JpcHRDb21wbGV0ZShKU1N0cmluZ1JlZiByZXN1bHQp
Ci17Ci0gICAgbV9jb250ZXh0LT5yZXF1ZXN0VUlTY3JpcHRDb21wbGV0aW9uKHJlc3VsdCk7Ci0g
ICAgY2xlYXJBbGxDYWxsYmFja3MoKTsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmRp
c21pc3NNZW51KCkKLXsKLX0KLQotdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNob29zZU1lbnVB
Y3Rpb24oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpCi17Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmgKaW5kZXggNjA5M2VkNWEyNWEzMDA3OWU5NWE0ODJlNzZhZDY4YWVjZDU4NDgyNi4uOWZh
YTZkNjFjNGUwNThlNTRkMzBiMTY0ZmU3YWZhMTgwZTdlZmE5ZSAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysr
IGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmgKQEAgLTE4OCw2ICsxODgsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcGxh
Y2VUZXh0QXRSYW5nZShKU1N0cmluZ1JlZiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKSB7IG5v
dEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlQWxsRHluYW1pY0RpY3Rp
b25hcmllcygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgdmlydHVhbCBib29sIHdpbmRv
d0lzS2V5KCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd0lzS2V5KGJvb2wpOwor
CiAgICAgLy8gU3R5bHVzCiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bHVzRG93bkF0UG9pbnQobG9u
ZyB4LCBsb25nIHksIGZsb2F0IGF6aW11dGhBbmdsZSwgZmxvYXQgYWx0aXR1ZGVBbmdsZSwgZmxv
YXQgcHJlc3N1cmUsIEpTVmFsdWVSZWYgY2FsbGJhY2spIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250cm9sbGVyU2hhcmVkLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjNGI2ZDAy
YjU2MTYwMGJlMmNmZmYwMmQ4MzY4ZWFmY2U5OWM3MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJl
ZC5jcHAKQEAgLTAsMCArMSwyNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJKU1VJU2NyaXB0
Q29udHJvbGxlci5oIgorI2luY2x1ZGUgIlVJU2NyaXB0Q29udGV4dC5oIgorI2luY2x1ZGUgPEph
dmFTY3JpcHRDb3JlL0pTVmFsdWVSZWYuaD4KKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9PcGFx
dWVKU1N0cmluZy5oPgorCituYW1lc3BhY2UgV1RSIHsKKworRGV2aWNlT3JpZW50YXRpb24qIHRv
RGV2aWNlT3JpZW50YXRpb24oSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTVmFsdWVSZWYgdmFsdWUp
Cit7CisgICAgc3RhdGljIERldmljZU9yaWVudGF0aW9uIHZhbHVlc1tdID0geworICAgICAgICBE
ZXZpY2VPcmllbnRhdGlvbjo6UG9ydHJhaXQsCisgICAgICAgIERldmljZU9yaWVudGF0aW9uOjpQ
b3J0cmFpdFVwc2lkZURvd24sCisgICAgICAgIERldmljZU9yaWVudGF0aW9uOjpMYW5kc2NhcGVM
ZWZ0LAorICAgICAgICBEZXZpY2VPcmllbnRhdGlvbjo6TGFuZHNjYXBlUmlnaHQKKyAgICB9Owor
CisgICAgYXV0byBvcHRpb24gPSBhZG9wdChKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIHZh
bHVlLCBudWxscHRyKSk7CisgICAgaWYgKG9wdGlvbi0+c3RyaW5nKCkgPT0gInBvcnRyYWl0IikK
KyAgICAgICAgcmV0dXJuICZ2YWx1ZXNbMF07CisKKyAgICBpZiAob3B0aW9uLT5zdHJpbmcoKSA9
PSAicG9ydHJhaXQtdXBzaWRlZG93biIpCisgICAgICAgIHJldHVybiAmdmFsdWVzWzFdOworCisg
ICAgaWYgKG9wdGlvbi0+c3RyaW5nKCkgPT0gImxhbmRzY2FwZS1sZWZ0IikKKyAgICAgICAgcmV0
dXJuICZ2YWx1ZXNbMl07CisKKyAgICBpZiAob3B0aW9uLT5zdHJpbmcoKSA9PSAibGFuZHNjYXBl
LXJpZ2h0IikKKyAgICAgICAgcmV0dXJuICZ2YWx1ZXNbM107CisKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRG
T1JNKFdJTikgJiYgIVBMQVRGT1JNKFdQRSkKK1JlZjxVSVNjcmlwdENvbnRyb2xsZXI+IFVJU2Ny
aXB0Q29udHJvbGxlcjo6Y3JlYXRlKFVJU2NyaXB0Q29udGV4dCYgY29udGV4dCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBVSVNjcmlwdENvbnRyb2xsZXIoY29udGV4dCkpOworfQorI2Vu
ZGlmCisKK1VJU2NyaXB0Q29udHJvbGxlcjo6VUlTY3JpcHRDb250cm9sbGVyKFVJU2NyaXB0Q29u
dGV4dCYgY29udGV4dCkKKyAgICA6IG1fY29udGV4dCgmY29udGV4dCkKK3sKK30KKwordm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OmNvbnRleHREZXN0cm95ZWQoKQoreworICAgIG1fY29udGV4dCA9
IG51bGxwdHI7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjptYWtlV2luZG93T2JqZWN0
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB3aW5kb3dPYmplY3QsIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBzZXRQcm9wZXJ0eShjb250ZXh0LCB3aW5kb3dPYmplY3Qs
ICJ1aUNvbnRyb2xsZXIiLCB0aGlzLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlLCBleGNlcHRpb24pOworfQorCitKU0NsYXNzUmVm
IFVJU2NyaXB0Q29udHJvbGxlcjo6d3JhcHBlckNsYXNzKCkKK3sKKyAgICByZXR1cm4gSlNVSVNj
cmlwdENvbnRyb2xsZXI6OnVJU2NyaXB0Q29udHJvbGxlckNsYXNzKCk7Cit9CisKK3ZvaWQgVUlT
Y3JpcHRDb250cm9sbGVyOjpzZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFj
ayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxsYmFj
ayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsK
K30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZFN0YXJ0Rm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24pOwor
fQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFj
dGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdp
c3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZEZvcm1D
b250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4
dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlv
bik7Cit9CisgICAgCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0NvbnRleHRN
ZW51Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lz
dGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dDb250ZXh0TWVudSk7Cit9
CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Q29udGV4dE1lbnVDYWxs
YmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2Fs
bGJhY2tUeXBlRGlkU2hvd0NvbnRleHRNZW51KTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnNldERpZERpc21pc3NDb250ZXh0TWVudUNhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2sp
Cit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5
cGVEaWREaXNtaXNzQ29udGV4dE1lbnUpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJv
bGxlcjo6ZGlkRGlzbWlzc0NvbnRleHRNZW51Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVy
biBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NDb250ZXh0
TWVudSk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsQmVnaW5ab29taW5n
Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVy
Q2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZVdpbGxCZWdpblpvb21pbmcpOworfQorCitK
U1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5
cGVXaWxsQmVnaW5ab29taW5nKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERp
ZEVuZFpvb21pbmdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4
dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkRW5kWm9vbWluZyk7
Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRab29taW5nQ2FsbGJh
Y2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxi
YWNrVHlwZURpZEVuZFpvb21pbmcpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0
V2lsbENyZWF0ZU5ld1BhZ2VDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1f
Y29udGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlV2lsbENyZWF0
ZU5ld1BhZ2UpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6d2lsbENyZWF0
ZU5ld1BhZ2VDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJh
Y2tXaXRoSUQoQ2FsbGJhY2tUeXBlV2lsbENyZWF0ZU5ld1BhZ2UpOworfQorCit2b2lkIFVJU2Ny
aXB0Q29udHJvbGxlcjo6c2V0RGlkRW5kU2Nyb2xsaW5nQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxi
YWNrVHlwZURpZEVuZFNjcm9sbGluZyk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9s
bGVyOjpkaWRFbmRTY3JvbGxpbmdDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29u
dGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nKTsKK30KKwor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dLZXlib2FyZENhbGxiYWNrKEpTVmFs
dWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxi
YWNrLCBDYWxsYmFja1R5cGVEaWRTaG93S2V5Ym9hcmQpOworfQorCitKU1ZhbHVlUmVmIFVJU2Ny
aXB0Q29udHJvbGxlcjo6ZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJl
dHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFNob3dLZXlib2Fy
ZCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRIaWRlS2V5Ym9hcmRDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxs
YmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkSGlkZUtleWJvYXJkKTsKK30KKworSlNWYWx1
ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEhpZGVLZXlib2FyZENhbGxiYWNrKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRI
aWRlS2V5Ym9hcmQpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd01l
bnVDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0
ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd01lbnUpOworfQorCitKU1Zh
bHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd01lbnVDYWxsYmFjaygpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hv
d01lbnUpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkSGlkZU1lbnVDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxs
YmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUpOworfQorCitKU1ZhbHVlUmVm
IFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkSGlkZU1lbnVDYWxsYmFjaygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkSGlkZU1lbnUp
OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbFByZXNlbnRQb3BvdmVyQ2Fs
bGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQtPnJlZ2lzdGVyQ2Fs
bGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZVdpbGxQcmVzZW50UG9wb3Zlcik7Cit9CisKK0pT
VmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjp3aWxsUHJlc2VudFBvcG92ZXJDYWxsYmFjaygp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tU
eXBlV2lsbFByZXNlbnRQb3BvdmVyKTsKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNl
dERpZERpc21pc3NQb3BvdmVyQ2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBt
X2NvbnRleHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZERpc21p
c3NQb3BvdmVyKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZERpc21p
c3NQb3BvdmVyQ2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxi
YWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NQb3BvdmVyKTsKK30KKwordm9pZCBVSVNj
cmlwdENvbnRyb2xsZXI6OnVpU2NyaXB0Q29tcGxldGUoSlNTdHJpbmdSZWYgcmVzdWx0KQorewor
ICAgIG1fY29udGV4dC0+cmVxdWVzdFVJU2NyaXB0Q29tcGxldGlvbihyZXN1bHQpOworICAgIGNs
ZWFyQWxsQ2FsbGJhY2tzKCk7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpkaXNtaXNz
TWVudSgpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjaG9vc2VNZW51QWN0aW9u
KEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKQoreworfQorCit9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9D
TWFrZUxpc3RzLnR4dAppbmRleCA2ZDE2NDAwODViOTE2N2ViMDI1ODUxZTA1ODlkYmQ5NWJlM2Uz
OGYwLi5hM2QwNTFiOTYyZTgwOTk3ZDExNGI3ZjQxZDRmNWQxNmQ3ZDNlOWM3IDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvQ01ha2VMaXN0cy50eHQKQEAgLTEwLDcgKzEwLDcgQEAgc2V0KFdlYktpdFRl
c3RSdW5uZXJfU09VUkNFUwogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9CSU5ESU5HU19ESVJ9L0pT
V3JhcHBlci5jcHAKIAogICAgICR7V2ViS2l0VGVzdFJ1bm5lcl9VSVNDUklQVENPTlRFWFRfRElS
fS9VSVNjcmlwdENvbnRleHQuY3BwCi0gICAgJHtXZWJLaXRUZXN0UnVubmVyX1VJU0NSSVBUQ09O
VEVYVF9ESVJ9L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKyAgICAke1dlYktpdFRlc3RSdW5uZXJf
VUlTQ1JJUFRDT05URVhUX0RJUn0vVUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcAogCiAgICAg
Q3ljbGljUmVkdW5kYW5jeUNoZWNrLmNwcAogICAgIEdlb2xvY2F0aW9uUHJvdmlkZXJNb2NrLmNw
cApAQCAtMTksNiArMTksNyBAQCBzZXQoV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCiAgICAgVGVz
dENvbnRyb2xsZXIuY3BwCiAgICAgVGVzdEludm9jYXRpb24uY3BwCiAgICAgVGVzdE9wdGlvbnMu
Y3BwCisgICAgVUlTY3JpcHRDb250cm9sbGVyLmNwcAogICAgIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcAogICAgIFdvcmtRdWV1ZU1hbmFnZXIuY3BwCiApCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1VJU2NyaXB0Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2E5MDZjOTI1YjVjZDg1
ZWZmYzA2OGM0ZGExYWE3NjIxMjc1MjBlZgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDQ0IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlVJU2NyaXB0Q29udHJvbGxl
ci5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3LmgiCisjaW5jbHVkZSAiVGVzdENvbnRy
b2xsZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK2Jvb2wgVUlTY3JpcHRDb250cm9sbGVyOjp3
aW5kb3dJc0tleSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRlc3RDb250cm9sbGVyOjpzaW5nbGV0
b24oKS5tYWluV2ViVmlldygpLT53aW5kb3dJc0tleSgpOworfQorCit2b2lkIFVJU2NyaXB0Q29u
dHJvbGxlcjo6c2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKK3sKKyAgICBUZXN0Q29udHJvbGxl
cjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+c2V0V2luZG93SXNLZXkoaXNLZXkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
V2ViS2l0VGVzdFJ1bm5lci54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggMDIwZDZlZTM0NDhjODQ0YzFjMmE2NmM5YjQ3OGQzMzJiZDc1MGU3Ni4uNjBiY2ZiOGZhZjE3
MGI5Y2ZkOWFlY2ZiOGRkYWI0M2EzYTI3YjY4MSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9XZWJLaXRUZXN0UnVubmVyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKQEAgLTQ1LDcgKzQ1LDcgQEAKIAogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rp
b24gKi8KIAkJMEYxOEU2RTUxRDZCOUI5RTAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udGV4dC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERDFE
NkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLzsgfTsKLQkJMEYxOEU2RTYx
RDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcg
LyogVUlTY3JpcHRDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJMEYxOEU2RTYxRDZCOUJBMjAwMjdF
NTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyogVUlT
Y3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLzsgfTsKIAkJMEYxOEU3MTgxRDZCQzQ1NjAwMjdF
NTQ3IC8qIEpTV3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjE4RTcxNTFENkJDNDU2MDAyN0U1NDcgLyogSlNXcmFwcGVyLmNwcCAqLzsg
fTsKIAkJMEY0QjA4NzMxRDVCRTg4RDAwRUMxQjc4IC8qIExhdW5jaC5zdG9yeWJvYXJkIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjRCMDg3MjFENUJF
ODhEMDBFQzFCNzggLyogTGF1bmNoLnN0b3J5Ym9hcmQgKi87IH07CiAJCTBGNTE2OUNDMTQ0NTIy
MkQwMEUwQTlENyAvKiBXZWJLaXQuZnJhbWV3b3JrIGluIEZyYW1ld29ya3MgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1MTY5Q0ExNDQ1MjIyRDAwRTBBOUQ3IC8qIFdlYktp
dC5mcmFtZXdvcmsgKi87IH07CkBAIC0xNTIsNiArMTUyLDcgQEAKIAkJRTEzMkFBM0QxN0NFNzc2
RjAwNjExREYwIC8qIFdlYktpdFRlc3RSdW5uZXJFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEUxMzJBQTNCMTdDRTc3NkYwMDYxMURGMCAvKiBX
ZWJLaXRUZXN0UnVubmVyRXZlbnQubW0gKi87IH07CiAJCUUxQzY0MkMzMTdDQkNDNzMwMEQ2NkEz
QyAvKiBQb3NlQXNDbGFzcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEUxQzY0MkMxMTdDQkNDNzMwMEQ2NkEzQyAvKiBQb3NlQXNDbGFzcy5tbSAqLzsg
fTsKIAkJRTFDNjQyQzYxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJv
YXJkLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTFD
NjQyQzQxN0NCQ0Q0QzAwRDY2QTNDIC8qIFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLm1tICov
OyB9OworCQlGNDQ1QzY4QTI0QjI3QUNDMDA3OTA0NDAgLyogVUlTY3JpcHRDb250cm9sbGVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NDVDNjgz
MjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovOyB9OwogCQlGNDRB
NTMxNzIxQjg5OUUyMDBEQkI5OUMgLyogQ2xhc3NNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzE0MjFCODk5REEwMERC
Qjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNDRBNTMxODIxQjg5OUU1
MDBEQkI5OUMgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NEE1MzE2MjFCODk5REEwMERCQjk5QyAvKiBJ
bnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tICovOyB9OwogCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdC
MTYgLyogVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDYyNDBBRjIxNzAxMjgzMDA5MTdCMTYgLyogVUlTY3Jp
cHRDb250cm9sbGVyQ29jb2EubW0gKi87IH07CkBAIC0yMjEsNyArMjIyLDcgQEAKIC8qIEJlZ2lu
IFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCQkwRjE4RTZERDFENkI5QUFGMDAyN0U1NDcg
LyogVUlTY3JpcHRDb250ZXh0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFt
ZSA9IFVJU2NyaXB0Q29udGV4dC5jcHA7IHBhdGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkwRjE4RTZERTFENkI5QUFGMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFVJU2NyaXB0Q29udGV4dC5oOyBwYXRoID0gLi4v
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VUlTY3JpcHRDb250cm9sbGVyLmNwcDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXJTaGFy
ZWQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVUlTY3JpcHRDb250
cm9sbGVyU2hhcmVkLmNwcDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250
ZXh0L1VJU2NyaXB0Q29udHJvbGxlclNoYXJlZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGMThFNkUwMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVUlTY3JpcHRDb250cm9sbGVyLmg7IHBh
dGggPSAuLi9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxOEU2RTMxRDZCOUFCRjAwMjdF
NTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gVUlT
Y3JpcHRDb250cm9sbGVyLmlkbDsgcGF0aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBGMThFNzE0MUQ2QkM0NTYwMDI3RTU0NyAvKiBKU1dyYXBwYWJsZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dyYXBwYWJsZS5oOyBwYXRoID0gLi4v
VGVzdFJ1bm5lclNoYXJlZC9CaW5kaW5ncy9KU1dyYXBwYWJsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtNDEwLDYgKzQxMSw3IEBACiAJCUUxQzY0MkMyMTdDQkNDNzMwMEQ2NkEz
QyAvKiBQb3NlQXNDbGFzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQb3Nl
QXNDbGFzcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMUM2NDJDNDE3Q0JDRDRD
MDBENjZBM0MgLyogV2ViS2l0VGVzdFJ1bm5lclBhc3RlYm9hcmQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLaXRUZXN0UnVubmVyUGFzdGVib2FyZC5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTFDNjQyQzUxN0NCQ0Q0QzAwRDY2QTNDIC8q
IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYktpdFRlc3RSdW5uZXJQYXN0ZWJvYXJkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVUlTY3JpcHRDb250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMTMyMUI4OTlEQTAwREJCOTlDIC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSW5zdGFu
Y2VNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9JbnN0
YW5jZU1ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0NEE1
MzE0MjFCODk5REEwMERCQjk5QyAvKiBDbGFzc01ldGhvZFN3aXp6bGVyLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgcGF0
aCA9IC4uL1Rlc3RSdW5uZXJTaGFyZWQvY29jb2EvQ2xhc3NNZXRob2RTd2l6emxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0QTUzMTUyMUI4OTlEQTAwREJCOTlDIC8qIENs
YXNzTWV0aG9kU3dpenpsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQ2xh
c3NNZXRob2RTd2l6emxlci5oOyBwYXRoID0gLi4vVGVzdFJ1bm5lclNoYXJlZC9jb2NvYS9DbGFz
c01ldGhvZFN3aXp6bGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDMsNiAr
NTA1LDcgQEAKIAkJCQlCQ0Q3RDJGNjExOTIxMjc4MDA2REI3RUUgLyogVGVzdEludm9jYXRpb24u
aCAqLywKIAkJCQkwRjYyMkNFODFCQkIzQTFBMDA4MzhBRDMgLyogVGVzdE9wdGlvbnMuY3BwICov
LAogCQkJCTFBMzMyNjA1MUI3NTM5NjUwMEY4OUY2MiAvKiBUZXN0T3B0aW9ucy5oICovLAorCQkJ
CUY0NDVDNjgzMjRCMjc3RTMwMDc5MDQ0MCAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwICovLAog
CQkJCUJDMjUxQTE3MTFEMTY3NzQwMDJFQkMwMSAvKiBXZWJLaXRUZXN0UnVubmVyUHJlZml4Lmgg
Ki8sCiAJCQkJMzE2NEM4RUYxNUQxQURBMTAwRUYxRkUwIC8qIFdlYk5vdGlmaWNhdGlvblByb3Zp
ZGVyLmNwcCAqLywKIAkJCQkzMTEwQkUwRjE1QkEwMTE0MDBEMjE2QUMgLyogV2ViTm90aWZpY2F0
aW9uUHJvdmlkZXIuaCAqLywKQEAgLTU1Nyw4ICs1NjAsOCBAQAogCQkJCTJEQjYxODdGMUQ3RDU5
ODgwMDk3OEQxOSAvKiBzcGkgKi8sCiAJCQkJMEYxOEU2REQxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5jcHAgKi8sCiAJCQkJMEYxOEU2REUxRDZCOUFBRjAwMjdFNTQ3IC8qIFVJ
U2NyaXB0Q29udGV4dC5oICovLAotCQkJCTBGMThFNkRGMUQ2QjlBQUYwMDI3RTU0NyAvKiBVSVNj
cmlwdENvbnRyb2xsZXIuY3BwICovLAogCQkJCTBGMThFNkUwMUQ2QjlBQUYwMDI3RTU0NyAvKiBV
SVNjcmlwdENvbnRyb2xsZXIuaCAqLywKKwkJCQkwRjE4RTZERjFENkI5QUFGMDAyN0U1NDcgLyog
VUlTY3JpcHRDb250cm9sbGVyU2hhcmVkLmNwcCAqLywKIAkJCSk7CiAJCQluYW1lID0gVUlTY3Jp
cHRDb250ZXh0OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTExOTksOSArMTIwMiwx
MCBAQAogCQkJCTBGODdCNjE3MUJBQ0M0QzAwMDRFQzU3MiAvKiBUZXN0UnVubmVyV0tXZWJWaWV3
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFDNTM3OEUyMUYxMzQxNDAwOEIxRkFEIC8qIFRlc3RX
ZWJzaXRlRGF0YVN0b3JlRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjE4RTZFNTFE
NkI5QjlFMDAyN0U1NDcgLyogVUlTY3JpcHRDb250ZXh0LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTBGMThFNkU2MUQ2QjlCQTIwMDI3RTU0NyAvKiBVSVNjcmlwdENvbnRyb2xsZXIuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJRjQ0NUM2OEEyNEIyN0FDQzAwNzkwNDQwIC8qIFVJU2NyaXB0Q29udHJv
bGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGNDYyNDBCMTIxNzAxM0U1MDA5MTdCMTYgLyog
VUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRjczQjU1QzFC
QTg5MDQyMDA0QjNFRjQgLyogVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJMEYxOEU2RTYxRDZCOUJBMjAwMjdFNTQ3IC8qIFVJU2NyaXB0Q29udHJvbGxlclNoYXJl
ZC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMTg1MTA0MzFCOUFFMTQ1MDA3NDRBRUIgLyogV2Vi
Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTE4NTEwNDQxQjlB
RTE0QTAwNzQ0QUVCIC8qIFdvcmtRdWV1ZU1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3
SU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvUGxhdGZvcm1XZWJWaWV3SU9TLm1t
CmluZGV4IDAxZTI2ZjkyZmQ5ZTVjYTZmM2FmYjExMjdiZWY3N2U4YTFjYjAzNjMuLjg3OTBhNzhi
YzAwM2FhYzIyYjYzMThmOWVkN2M1MWQzNGQ3ZGI0YzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1BsYXRmb3JtV2ViVmlld0lPUy5tbQorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9QbGF0Zm9ybVdlYlZpZXdJT1MubW0KQEAgLTY3LDYgKzY3LDIyIEBAIC0g
KGlkKWluaXRXaXRoRnJhbWU6KENHUmVjdClmcmFtZQogICAgIHJldHVybiBzZWxmOwogfQogCist
ICh2b2lkKWJlY29tZUtleVdpbmRvdworeworICAgIFtzdXBlciBiZWNvbWVLZXlXaW5kb3ddOwor
CisgICAgaWYgKF9wbGF0Zm9ybVdlYlZpZXcpCisgICAgICAgIF9wbGF0Zm9ybVdlYlZpZXctPnNl
dFdpbmRvd0lzS2V5KHRydWUpOworfQorCistICh2b2lkKXJlc2lnbktleVdpbmRvdworeworICAg
IFtzdXBlciByZXNpZ25LZXlXaW5kb3ddOworCisgICAgaWYgKF9wbGF0Zm9ybVdlYlZpZXcpCisg
ICAgICAgIF9wbGF0Zm9ybVdlYlZpZXctPnNldFdpbmRvd0lzS2V5KGZhbHNlKTsKK30KKwogLSAo
dm9pZClkZWFsbG9jCiB7CiAgICAgYWxsV2luZG93cy5yZW1vdmVGaXJzdChzZWxmKTsKQEAgLTIx
Miw3ICsyMjgsNyBAQCBQbGF0Zm9ybVdpbmRvdyBQbGF0Zm9ybVdlYlZpZXc6OmtleVdpbmRvdygp
CiB2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCBpc0tleSkKIHsKICAg
ICBtX3dpbmRvd0lzS2V5ID0gaXNLZXk7Ci0gICAgaWYgKGlzS2V5KQorICAgIGlmIChpc0tleSAm
JiAhbV93aW5kb3cua2V5V2luZG93KQogICAgICAgICBbbV93aW5kb3cgbWFrZUtleVdpbmRvd107
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxN2QzMGUzZDc2NTc4ZjE5YmMyNmNhNTg4YTJiNmE2MWIwODI1MjU4Li5h
M2NiOWFkMDVhNGU2M2E2YjkzM2UwOGRhNTMyZDI1ZGUyNTA1YmExIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjEgQEAKKzIwMjAtMDctMDUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lQYWRPU10gVW5hYmxlIHRvIGNoYW5nZSBmb2N1cyBiZXR3ZWVuIEdvb2ds
ZSBEb2NzIHdpbmRvd3MgYnkgdGFwcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjEzOTg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzA4MzI2
Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBuZXcgbGF5b3V0IHRlc3QgdG8gdmVyaWZ5IHRoYXQgdGFwcGluZyB0byBmb2N1cyBhIHBsYWlu
IHRleHRhcmVhIGNhdXNlcyB0aGUgd2ViIHZpZXcncyB3aW5kb3cgdG8gYmVjb21lCisgICAgICAg
IHRoZSBrZXkgd2luZG93LCBhcyB3ZWxsIGFzIHRhcHBpbmcgdG8gZm9jdXMgYSBoaWRkZW4gY29u
dGVudGVkaXRhYmxlIGFyZWEsIG92ZXIgYSB0b3VjaCBoYW5kbGVyIHRoYXQgcHJldmVudHMKKyAg
ICAgICAgZGVmYXVsdC4KKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9iZWNvbWUt
a2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hl
bi1mb2N1c2luZy1lZGl0YWJsZS1hcmVhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHJlc291cmNl
cy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuc2V0V2luZG93SXNLZXkp
OgorICAgICAgICAod2luZG93LlVJSGVscGVyLndpbmRvd0lzS2V5KToKKwogMjAyMC0wNy0wMyAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWVkaWFSZWNvcmRl
ciBzaG91bGQgc3VwcG9ydCBwZWVyIGNvbm5lY3Rpb24gcmVtb3RlIHZpZGVvIHRyYWNrcwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2JlY29tZS1rZXktd2lu
ZG93LXdoZW4tZm9jdXNpbmctZWRpdGFibGUtYXJlYS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1l
ZGl0YWJsZS1hcmVhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNzE3MDA4MjAyZjQ4ZTRmODI5
YzI4MmZkNzQxYTNiY2U5ZWI1ZGE2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vaW9zL2JlY29tZS1rZXktd2luZG93LXdoZW4tZm9jdXNpbmctZWRpdGFi
bGUtYXJlYS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyB0ZXN0IHZlcmlmaWVz
IHRoYXQgZm9jdXNpbmcgZWRpdGFibGUgZWxlbWVudHMgdXBkYXRlcyB0aGUga2V5IHdpbmRvdy4g
VGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIEJlY2FtZSBrZXkgd2luZG93IGFmdGVyIHRhcHBpbmcgb24gVEVY
VEFSRUEKK1BBU1MgQmVjYW1lIGtleSB3aW5kb3cgYWZ0ZXIgdGFwcGluZyBvbiBCVVRUT04KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ct
d2hlbi1mb2N1c2luZy1lZGl0YWJsZS1hcmVhLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9pb3MvYmVjb21lLWtleS13aW5kb3ctd2hlbi1mb2N1c2luZy1lZGl0YWJsZS1hcmVh
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTNhOWZmYzU0ZmI0NDQ4MDA5YWRjYTM1Zjg2Nzc1YjQ2MjBlZDE4
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2lvcy9i
ZWNvbWUta2V5LXdpbmRvdy13aGVuLWZvY3VzaW5nLWVkaXRhYmxlLWFyZWEuaHRtbApAQCAtMCww
ICsxLDY0IEBACis8IURPQ1RZUEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VG
bGV4aWJsZVZpZXdwb3J0PXRydWUgXSAtLT4KKzxodG1sPgorPG1ldGEgbmFtZT0idmlld3BvcnQi
IGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxh
YmxlPW5vIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyIgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvdWktaGVscGVyLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorPGhl
YWQ+CisgICAgPHN0eWxlPgorICAgICN0aW55LWVkaXRvciB7CisgICAgICAgIHdpZHRoOiAwLjVw
eDsKKyAgICAgICAgaGVpZ2h0OiAwLjVweDsKKyAgICAgICAgcG9zaXRpb246IGFic29sdXRlOwor
ICAgICAgICB0b3A6IDA7CisgICAgICAgIGxlZnQ6IDA7CisgICAgICAgIG92ZXJmbG93OiBoaWRk
ZW47CisgICAgICAgIG91dGxpbmU6IG5vbmU7CisgICAgfQorCisgICAgdGV4dGFyZWEsIGJ1dHRv
biB7CisgICAgICAgIHdpZHRoOiAyODBweDsKKyAgICAgICAgaGVpZ2h0OiA1MHB4OworICAgICAg
ICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgZm9udC1zaXplOiAyMHB4OworICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxzY3JpcHQ+CisgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBh
ZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgZm9jdXNpbmcgZWRpdGFibGUgZWxlbWVudHMgdXBk
YXRlcyB0aGUga2V5IHdpbmRvdy4gVGhpcyB0ZXN0IHJlcXVpcmVzIFdlYktpdFRlc3RSdW5uZXIu
Iik7CisKKyAgICAgICAgY29uc3QgdGV4dGFyZWEgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJ0
ZXh0YXJlYSIpOworICAgICAgICBjb25zdCBidXR0b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9y
KCJidXR0b24iKTsKKworICAgICAgICBidXR0b24uYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFy
dCIsIChldmVudCkgPT4geworICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiI3Rp
bnktZWRpdG9yIikuZm9jdXMoKTsKKyAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7
CisgICAgICAgIH0pOworCisgICAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
ICAgICByZXR1cm47CisKKyAgICAgICAgZm9yIChsZXQgZWxlbWVudCBvZiBbdGV4dGFyZWEsIGJ1
dHRvbl0pIHsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLnNldFdpbmRvd0lzS2V5KGZhbHNl
KTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJ
bnB1dFNlc3Npb24oZWxlbWVudCk7CisgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgeworICAgICAg
ICAgICAgICAgIHJlc3VsdCA9IGF3YWl0IFVJSGVscGVyLndpbmRvd0lzS2V5KCk7CisgICAgICAg
ICAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICB0ZXN0UGFzc2VkKGBCZWNhbWUga2V5IHdpbmRvdyBhZnRlciB0
YXBwaW5nIG9uICR7ZWxlbWVudC50YWdOYW1lfWApOworICAgICAgICAgICAgZG9jdW1lbnQuYWN0
aXZlRWxlbWVudC5ibHVyKCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5
Ym9hcmRUb0hpZGUoKTsKKyAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlKCk7CisgICAgICAgIH0K
KyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJ0aW55LWVkaXRvciIgY29udGVudGVkaXRhYmxlPjwvZGl2
PgorICAgIDx0ZXh0YXJlYT5GaXJzdCwgY2xpY2sgaGVyZTwvdGV4dGFyZWE+CisgICAgPGJ1dHRv
bj5UaGVuLCBjbGljayBoZXJlPC9idXR0b24+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggYmUwODRh
MzBhOTY2Njc2N2U4YzEzMzA0ODQ0NWZlMmVmMDRkMzY2Ni4uN2Q2MGY3ZGJiNTZmMjI0NzgwYWZk
MGNhNGMxZDhlNDMyM2RkNDgyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3Vp
LWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0x
MTg4LDYgKzExODgsMjAgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAg
ICAgICB9KTsKICAgICB9CiAKKyAgICBzdGF0aWMgc2V0V2luZG93SXNLZXkoaXNLZXkpCisgICAg
eworICAgICAgICBjb25zdCBzY3JpcHQgPSBgdWlDb250cm9sbGVyLndpbmRvd0lzS2V5ID0gJHtp
c0tleX1gOworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KHNjcmlwdCwgcmVzb2x2ZSkpOworICAgIH0KKworICAgIHN0YXRpYyB3aW5k
b3dJc0tleSgpCisgICAgeworICAgICAgICBjb25zdCBzY3JpcHQgPSAidWlDb250cm9sbGVyLnVp
U2NyaXB0Q29tcGxldGUodWlDb250cm9sbGVyLndpbmRvd0lzS2V5KSI7CisgICAgICAgIHJldHVy
biBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCAo
cmVzdWx0KSA9PiB7CisgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCA9PT0gInRydWUiKTsKKyAg
ICAgICAgfSkpOworICAgIH0KKwogICAgIHN0YXRpYyB3YWl0Rm9yRG91YmxlVGFwRGVsYXkoKQog
ICAgIHsKICAgICAgICAgY29uc3QgdWlTY3JpcHQgPSBgdWlDb250cm9sbGVyLmRvQWZ0ZXJEb3Vi
bGVUYXBEZWxheSgoKSA9PiB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiIikpYDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>