<?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>209008</bug_id>
          
          <creation_ts>2020-03-12 12:17:12 -0700</creation_ts>
          <short_desc>Cleanup RenderMediaControls.cpp and RenderMediaControlElements.cpp</short_desc>
          <delta_ts>2020-03-14 12:20:03 -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>Media</component>
          <version>Safari 13</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Peng Liu">peng.liu6</reporter>
          <assigned_to name="Peng Liu">peng.liu6</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1629301</commentid>
    <comment_count>0</comment_count>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-03-12 12:17:12 -0700</bug_when>
    <thetext>Now RenderMediaControls.cpp is for windows only. We need to merge them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1629931</commentid>
    <comment_count>1</comment_count>
      <attachid>393554</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-03-13 16:33:08 -0700</bug_when>
    <thetext>Created attachment 393554
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630030</commentid>
    <comment_count>2</comment_count>
      <attachid>393554</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-14 00:09:06 -0700</bug_when>
    <thetext>Comment on attachment 393554
Patch

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

&gt; Source/WebCore/rendering/RenderMediaControls.cpp:75
&gt; +static const int minWidthToDisplayTimeDisplays = 45 + 100 + 45;

Ok as-is. No change needed. Optimal solution is to make constexpr.

&gt; Source/WebCore/rendering/RenderMediaControls.cpp:88
&gt;  void RenderMediaControls::adjustMediaSliderThumbSize(RenderStyle&amp; style)

This patch OK as-is. The optimal clean up would break out each class into its own named file and remove this file. The former because:

1. Makes it easy to find these classes since each class is in its own file.
2. Because of (1) can remove the need for ------- comments

 The latter because:
1. This function does nothing meaningful  (It crashes in debug!).
2. Because of (1), it can be removed.
3. Because of (2), this file is empty of impl

&gt; LayoutTests/media/track/track-cue-rendering-rtl.html:-24
&gt; -        function testCueStyle()

This ok as-is. No change needed. The optimal patch would break this diff out into its own bug because:

1. Keeps patch focused on one thing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630059</commentid>
    <comment_count>3</comment_count>
      <attachid>393554</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-03-14 11:11:54 -0700</bug_when>
    <thetext>Comment on attachment 393554
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderMediaControls.cpp:75
&gt;&gt; +static const int minWidthToDisplayTimeDisplays = 45 + 100 + 45;
&gt; 
&gt; Ok as-is. No change needed. Optimal solution is to make constexpr.

Agree, thanks!

&gt;&gt; Source/WebCore/rendering/RenderMediaControls.cpp:88
&gt;&gt;  void RenderMediaControls::adjustMediaSliderThumbSize(RenderStyle&amp; style)
&gt; 
&gt; This patch OK as-is. The optimal clean up would break out each class into its own named file and remove this file. The former because:
&gt; 
&gt; 1. Makes it easy to find these classes since each class is in its own file.
&gt; 2. Because of (1) can remove the need for ------- comments
&gt; 
&gt;  The latter because:
&gt; 1. This function does nothing meaningful  (It crashes in debug!).
&gt; 2. Because of (1), it can be removed.
&gt; 3. Because of (2), this file is empty of impl

Right, thanks!

&gt;&gt; LayoutTests/media/track/track-cue-rendering-rtl.html:-24
&gt;&gt; -        function testCueStyle()
&gt; 
&gt; This ok as-is. No change needed. The optimal patch would break this diff out into its own bug because:
&gt; 
&gt; 1. Keeps patch focused on one thing

Absolutely correct!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630071</commentid>
    <comment_count>4</comment_count>
      <attachid>393554</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-14 12:19:20 -0700</bug_when>
    <thetext>Comment on attachment 393554
Patch

Clearing flags on attachment: 393554

Committed r258469: &lt;https://trac.webkit.org/changeset/258469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1630072</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-14 12:19:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>393554</attachid>
            <date>2020-03-13 16:33:08 -0700</date>
            <delta_ts>2020-03-14 12:19:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209008-20200313163308.patch</filename>
            <type>text/plain</type>
            <size>24830</size>
            <attacher name="Peng Liu">peng.liu6</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4NDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDViOGY4ZjYwN2JjODMz
NjZkNmY4NDc4NDY2ZWIzYjA2YzQ5NzI3OS4uZWFhNWJhZmQ2ZjhiNGUwNDEyNWFmZTEwZDNmOWVj
MWU1MGU4N2Y3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTAzLTEzICBQZW5n
IExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CisKKyAgICAgICAgQ2xlYW51cCBSZW5kZXJNZWRp
YUNvbnRyb2xzLmNwcCBhbmQgUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDkwMDgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZXJnZSBSZW5kZXJNZWRp
YUNvbnRyb2xzLltofGNwcF0gYW5kIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLltofGNwcF0u
CisgICAgICAgIFJlbW92ZSBjbGFzcyBSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lciBi
ZWNhdXNlIHdlIGNhbiB1c2UgUmVuZGVyQmxvY2tGbG93CisgICAgICAgIHRvIHJlbmRlciBNZWRp
YUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gZnVuY3Rpb25hbCBjaGFuZ2UuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcDoKKyAgICAgICAgKiBodG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRy
b2xUZXh0VHJhY2tDb250YWluZXJFbGVtZW50OjpjcmVhdGVFbGVtZW50UmVuZGVyZXIpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA6IFJlbW92ZWQu
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmg6IFJlbW92
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXI6OlJlbmRlck1lZGlh
Vm9sdW1lU2xpZGVyQ29udGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWFDb250cm9sVGltZWxpbmVDb250YWluZXI6OlJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29u
dGFpbmVyOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xz
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tOgorCiAyMDIwLTAzLTEz
ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIHNvbWV0
aW1lcyBjcmFzaGVzIHdoZW4gc3dpdGNoIHZpZGVvIGludG8gUGlQIG1vZGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
aW5kZXggYjA3NmMyMzQwMDE3OTc4NjYwNGZhYWY2MGM2ZmZmN2VmZDNkNDhkNS4uNzc4MjYzZTRh
MGIzMTczMWUzYjVmNjQ4MTA4OWMxZDBlMzE4NTQ4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxNTks
NyArMjE1OSw2IEBAIHJlbmRlcmluZy9SZW5kZXJMaXN0SXRlbS5jcHAKIHJlbmRlcmluZy9SZW5k
ZXJMaXN0TWFya2VyLmNwcAogcmVuZGVyaW5nL1JlbmRlck1hcnF1ZWUuY3BwCiByZW5kZXJpbmcv
UmVuZGVyTWVkaWEuY3BwCi1yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3Bw
CiByZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKIHJlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKIHJlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA2ZTE5NzFiNWUyZmU3OWI5
ZDUyYTJkNGNlYTU0YmFhMmIxYzc1ODVkLi43M2YzYTlmOGI2NWUzZDE3ZDk4Y2RhMmZkZmQyMDI2
ZjVlMjA5MTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCkBAIC00NTYwLDcgKzQ1NjAsNyBAQAogCQlERTVGODY1OTFGQTJBRjI0MDA2
REI2M0EgLyogVW5pZmllZFNvdXJjZTYwLW1tLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gREU1Rjg2M0ExRkEyQUYwNzAwNkRCNjNBIC8qIFVuaWZpZWRT
b3VyY2U2MC1tbS5tbSAqLzsgfTsKIAkJREU1Rjg2NTkxRkEyQUYyNDAwNkRCNjNCIC8qIFVuaWZp
ZWRTb3VyY2U2MS1tbS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERFNUY4NjNBMUZBMkFGMDcwMDZEQjYzQiAvKiBVbmlmaWVkU291cmNlNjEtbW0ubW0g
Ki87IH07CiAJCURFNzcxMDg2MUZBMkYwRDYwMDQ2MDAxNiAvKiBXZWJBcmNoaXZlRHVtcFN1cHBv
cnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTc2
M0YzQzFFMjA1MjM0MDAxRDU4REUgLyogV2ViQXJjaGl2ZUR1bXBTdXBwb3J0Lm1tICovOyB9Owot
CQlERUJDQ0REMjE2NjQ2RTgyMDBBNDUyRTEgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERFNDlCMzA4
MTY1RjJGRTEwMDEwMzM4RCAvKiBSZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oICovOyB9Owor
CQlERUJDQ0REMjE2NjQ2RTgyMDBBNDUyRTEgLyogUmVuZGVyTWVkaWFDb250cm9scy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDgxNjVGMkZF
MTAwMTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCAqLzsgfTsKIAkJREVCQ0NERDQxNjY0
NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDAxNjVGMkZDNjAwMTAzMzhE
IC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oICovOyB9OwogCQlERUNBN0Q5MzFGOUU2N0I1
MDBFM0I2NjEgLyogVW5pZmllZFNvdXJjZTEzMS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERUNBN0Q2RDFGOUU2MUNGMDBFM0I2NjEgLyogVW5pZmll
ZFNvdXJjZTEzMS5jcHAgKi87IH07CiAJCURFQ0E3RDk0MUY5RTY3QjUwMEUzQjY2MSAvKiBVbmlm
aWVkU291cmNlMTMyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IERFQ0E3RDdFMUY5RTYxRTMwMEUzQjY2MSAvKiBVbmlmaWVkU291cmNlMTMyLmNwcCAq
LzsgfTsKQEAgLTE0NTA4LDggKzE0NTA4LDggQEAKIAkJREQ3NjNCQjEwOTkyQzJDOTAwNzQwQjhF
IC8qIGxpYnhtbDIuZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmR5bGliIjsgbmFtZSA9IGxpYnhtbDIuZHlsaWI7
IHBhdGggPSAvdXNyL2xpYi9saWJ4bWwyLmR5bGliOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4i
OyB9OwogCQlERTQ5QjJGRjE2NUYyRkM2MDAxMDMzOEQgLyogTWVkaWFDb250cm9sRWxlbWVudFR5
cGVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1lZGlhQ29udHJv
bEVsZW1lbnRUeXBlcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCURFNDlCMzAw
MTY1RjJGQzYwMDEwMzM4RCAvKiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCURFNDlCMzA3MTY1RjJGRTEwMDEwMzM4RCAvKiBSZW5k
ZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCURFNDlCMzA4MTY1RjJGRTEwMDEwMzM4RCAvKiBSZW5kZXJNZWRpYUNvbnRy
b2xFbGVtZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJNZWRp
YUNvbnRyb2xFbGVtZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlERTQ5QjMw
NzE2NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9scy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJREU0OUIzMDgxNjVGMkZFMTAwMTAzMzhEIC8qIFJlbmRl
ck1lZGlhQ29udHJvbHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVy
TWVkaWFDb250cm9scy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlERTVGODNCMjFG
QTE4Njc2MDA2REI2M0EgLyogVW5pZmllZFNvdXJjZTMwMS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBVbmlmaWVkU291cmNlMzAxLmNwcDsgcGF0aCA9ICJEZXJpdmVk
U291cmNlcy9XZWJDb3JlL3VuaWZpZWQtc291cmNlcy9VbmlmaWVkU291cmNlMzAxLmNwcCI7IHNv
dXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCURFNUY4M0IzMUZBMTg2NzcwMDZE
QjYzQSAvKiBVbmlmaWVkU291cmNlMzU1LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFVuaWZpZWRTb3VyY2UzNTUuY3BwOyBwYXRoID0gIkRlcml2ZWRTb3VyY2VzL1dl
YkNvcmUvdW5pZmllZC1zb3VyY2VzL1VuaWZpZWRTb3VyY2UzNTUuY3BwIjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJREU1RjgzQjQxRkExODY3ODAwNkRCNjNBIC8qIFVu
aWZpZWRTb3VyY2UzNzguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VW5pZmllZFNvdXJjZTM3OC5jcHA7IHBhdGggPSAiRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS91bmlm
aWVkLXNvdXJjZXMvVW5pZmllZFNvdXJjZTM3OC5jcHAiOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJP
RFVDVFNfRElSOyB9OwpAQCAtMjc5MTYsOCArMjc5MTYsOCBAQAogCQkJCTBGNTYwMjhEMEU0Qjc2
NTgwMDY1QjAzOCAvKiBSZW5kZXJNYXJxdWVlLmggKi8sCiAJCQkJRTRDMjc5NTYwQ0Y5NzQxOTAw
RTk3Qjk4IC8qIFJlbmRlck1lZGlhLmNwcCAqLywKIAkJCQlFNEMyNzk1NzBDRjk3NDE5MDBFOTdC
OTggLyogUmVuZGVyTWVkaWEuaCAqLywKLQkJCQlERTQ5QjMwNzE2NUYyRkUxMDAxMDMzOEQgLyog
UmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwICovLAotCQkJCURFNDlCMzA4MTY1RjJGRTEw
MDEwMzM4RCAvKiBSZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oICovLAorCQkJCURFNDlCMzA3
MTY1RjJGRTEwMDEwMzM4RCAvKiBSZW5kZXJNZWRpYUNvbnRyb2xzLmNwcCAqLywKKwkJCQlERTQ5
QjMwODE2NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9scy5oICovLAogCQkJCUFC
RERGRTczMEE1QzZFNkYwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5jcHAgKi8sCiAJCQkJQUJE
REZFNzQwQTVDNkU3MDAwQTNFMTFEIC8qIFJlbmRlck1lbnVMaXN0LmggKi8sCiAJCQkJQTQ1NDQy
NEMxMTlCMzY4NzAwOUJFOTEyIC8qIFJlbmRlck1ldGVyLmNwcCAqLywKQEAgLTMxMTc4LDcgKzMx
MTc4LDYgQEAKIAkJCQlCMkZBM0Q1NzBBQjc1QTZGMDAwRTVBQzQgLyogSlNTVkdBbmltYXRpb25F
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1OTBBQjc1QTZGMDAwRTVBQzQgLyog
SlNTVkdDaXJjbGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkZBM0Q1QjBBQjc1QTZG
MDAwRTVBQzQgLyogSlNTVkdDbGlwUGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0
NUE2Qzc3MjQxN0JBNTkwMDZFNENENSAvKiBQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNENUYwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHQ29t
cG9uZW50VHJhbnNmZXJGdW5jdGlvbkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEz
RDYxMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0N1cnNvckVsZW1lbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUIyRkEzRDYzMEFCNzVBNkYwMDBFNUFDNCAvKiBKU1NWR0RlZnNFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTMxOTg3LDYgKzMxOTg2LDcgQEAKIAkJCQkzNzJBREEzODE5N0Y0N0I5
MDBGQzUwMUUgLyogUHJvdGVjdGlvblNwYWNlQ29jb2EuaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
QTA1MjU2MTA1ODg3NDAwMENDOUU5NSAvKiBQcm90ZWN0aW9uU3BhY2VIYXNoLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkxQUY4RTExQTEyNTY1OTI2MDAyMzBGRjcgLyogUHJveHlTZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovLAorCQkJCUU0NUE2Qzc3MjQxN0JBNTkwMDZFNENENSAvKiBQc2V1ZG9DbGFzc0No
YW5nZUludmFsaWRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkY5NDVFQ0MxNjFGN0YzNjAw
OTcxQkM4IC8qIFBzZXVkb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTU3RDg0NjJFMUZF
QUY2OTkwMENBMzY4MiAvKiBQdWJsaWNLZXlDcmVkZW50aWFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1NzMwM0JFOTIwMDk3NDhEMDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMjExNiw3ICszMjExNiw3IEBACiAJCQkJNDM5
MDQ2RUMxMkRBMjVFODAwQUY4MEE5IC8qIFJlbmRlck1hdGhNTFRva2VuLmggaW4gSGVhZGVycyAq
LywKIAkJCQk0MzkwNDZFQTEyREEyNUU4MDBBRjgwQTIgLyogUmVuZGVyTWF0aE1MVW5kZXJPdmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEMyNzk1OTBDRjk3NDE5MDBFOTdCOTggLyogUmVuZGVy
TWVkaWEuaCBpbiBIZWFkZXJzICovLAotCQkJCURFQkNDREQyMTY2NDZFODIwMEE0NTJFMSAvKiBS
ZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIGluIEhlYWRlcnMgKi8sCisJCQkJREVCQ0NERDIx
NjY0NkU4MjAwQTQ1MkUxIC8qIFJlbmRlck1lZGlhQ29udHJvbHMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUFCRERGRTdBMEE1QzZFNzAwMEEzRTExRCAvKiBSZW5kZXJNZW51TGlzdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTQ1NDQyNEYxMTlCMzY4NzAwOUJFOTEyIC8qIFJlbmRlck1ldGVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTM1ODZFMDE1MjY0QzQ1MDAyMkE2NTkgLyogUmVuZGVyTXVsdGlD
b2x1bW5GbG93LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50VHlwZXMuY3BwCmluZGV4IDI2YWFhMTUzZWFl
MzdmZjg0ZTViMTkxOGNhOTM4MDU2ZjA4YjA0OGYuLjNhYjgyYTE4MDAxMzIwNjk3YjAyY2FkOTYy
ZThlYjE4NjUyNGJhZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudFR5cGVzLmNwcApAQCAtMzcsNyArMzcsNyBAQAogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJSZW5k
ZXJNZWRpYS5oIgotI2luY2x1ZGUgIlJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCisjaW5j
bHVkZSAiUmVuZGVyTWVkaWFDb250cm9scy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydGllcy5o
IgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCBjYTYwMmUz
M2YyODQwOGE2NDZmNGFlZGYyMDcyMWYzMTc0YzZlMTYyLi4zMmI0YjRjYjY0YWViZTIxNGI5Mjgx
NWEwNmQ3ZGFiOTM4ODA1MDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC01Miw3ICs1Miw3IEBACiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVyLmgi
Ci0jaW5jbHVkZSAiUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCIKKyNpbmNsdWRlICJSZW5k
ZXJNZWRpYUNvbnRyb2xzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5jbHVkZSAi
UmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJSZW5kZXJWaWRlby5oIgpAQCAtMTEwNiw3ICsxMTA2
LDcgQEAgUmVmPE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ+IE1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQKIAogUmVuZGVyUHRyPFJlbmRlckVsZW1lbnQ+
IE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQ6OmNyZWF0ZUVsZW1lbnRSZW5k
ZXJlcihSZW5kZXJTdHlsZSYmIHN0eWxlLCBjb25zdCBSZW5kZXJUcmVlUG9zaXRpb24mKQogewot
ICAgIHJldHVybiBjcmVhdGVSZW5kZXJlcjxSZW5kZXJNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250
YWluZXI+KCp0aGlzLCBXVEZNb3ZlKHN0eWxlKSk7CisgICAgcmV0dXJuIGNyZWF0ZVJlbmRlcmVy
PFJlbmRlckJsb2NrRmxvdz4oKnRoaXMsIFdURk1vdmUoc3R5bGUpKTsKIH0KIAogc3RhdGljIGJv
b2wgY29tcGFyZUN1ZUludGVydmFsRm9yRGlzcGxheShjb25zdCBDdWVJbnRlcnZhbCYgb25lLCBj
b25zdCBDdWVJbnRlcnZhbCYgdHdvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDg5N2FiY2YyZTRkNTk2ZWYxYWZjODllODIyMDAyOTI4ZjhjMjZkMDguLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgL2Rldi9udWxsCkBA
IC0xLDExNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAy
MDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAx
MiBHb29nbGUgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaWYgRU5B
QkxFKFZJREVPKQotI2luY2x1ZGUgIlJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCi0KLSNp
bmNsdWRlICJNZWRpYUNvbnRyb2xFbGVtZW50cy5oIgotI2luY2x1ZGUgIlJlbmRlckxheW91dFN0
YXRlLmgiCi0jaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKLSNpbmNsdWRlICJSZW5kZXJWaWV3Lmgi
Ci0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1XVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJD
b250YWluZXIpOwotV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKFJlbmRlck1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyKTsKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1XVEZfTUFLRV9J
U09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyKTsK
LSNlbmRpZgotCi1SZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjo6UmVuZGVyTWVkaWFW
b2x1bWVTbGlkZXJDb250YWluZXIoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyU3R5bGUmJiBzdHls
ZSkKLSAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLXsKLX0K
LQotdm9pZCBSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjo6bGF5b3V0KCkKLXsKLSAg
ICBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dCgpOwotCi0gICAgaWYgKHN0eWxlKCkuZGlzcGxheSgp
ID09IERpc3BsYXlUeXBlOjpOb25lIHx8ICFpczxSZW5kZXJCb3g+KG5leHRTaWJsaW5nKCkpKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBSZW5kZXJCb3gmIGJ1dHRvbkJveCA9IGRvd25jYXN0PFJl
bmRlckJveD4oKm5leHRTaWJsaW5nKCkpOwotICAgIGludCBhYnNvbHV0ZU9mZnNldFRvcCA9IGJ1
dHRvbkJveC5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgwLCAtc2l6ZSgpLmhlaWdodCgpKSku
eSgpOwotCi0gICAgTGF5b3V0U3RhdGVEaXNhYmxlciBsYXlvdXRTdGF0ZURpc2FibGVyKHZpZXco
KS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkpOwotCi0gICAgLy8gSWYgdGhlIHNsaWRlciB3
b3VsZCBiZSByZW5kZXJlZCBvdXRzaWRlIHRoZSBwYWdlLCBpdCBzaG91bGQgYmUgbW92ZWQgYmVs
b3cgdGhlIGNvbnRyb2xzLgotICAgIGlmIChVTkxJS0VMWShhYnNvbHV0ZU9mZnNldFRvcCA8IDAp
KQotICAgICAgICBzZXRZKGJ1dHRvbkJveC5vZmZzZXRUb3AoKSArIHRoZW1lKCkudm9sdW1lU2xp
ZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oYnV0dG9uQm94LCBzaXplKCkpLnkoKSk7Ci19Ci0KLS8v
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotUmVuZGVyTWVkaWFDb250cm9sVGltZWxp
bmVDb250YWluZXI6OlJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyKEVsZW1lbnQm
IGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAgOiBSZW5kZXJGbGV4aWJsZUJveChl
bGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKLXsKLX0KLQotLy8gV2Ugd2FudCB0aGUgdGltZWxpbmUg
c2xpZGVyIHRvIGJlIGF0IGxlYXN0IDEwMCBwaXhlbHMgd2lkZS4KLS8vIEZJWE1FOiBFbGltaW5h
dGUgaGFyZC1jb2RlZCB3aWR0aHMgYWx0b2dldGhlci4KLXN0YXRpYyBjb25zdCBpbnQgbWluV2lk
dGhUb0Rpc3BsYXlUaW1lRGlzcGxheXMgPSA0NSArIDEwMCArIDQ1OwotCi12b2lkIFJlbmRlck1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyOjpsYXlvdXQoKQotewotICAgIFJlbmRlckZsZXhp
YmxlQm94OjpsYXlvdXQoKTsKLQotICAgIExheW91dFN0YXRlRGlzYWJsZXIgbGF5b3V0U3RhdGVE
aXNhYmxlcih2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpKTsKLSAgICBNZWRpYUNv
bnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQqIGNvbnRhaW5lciA9IHN0YXRpY19jYXN0PE1l
ZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudCo+KGVsZW1lbnQoKSk7Ci0gICAgY29u
dGFpbmVyLT5zZXRUaW1lRGlzcGxheXNIaWRkZW4od2lkdGgoKS50b0ludCgpIDwgbWluV2lkdGhU
b0Rpc3BsYXlUaW1lRGlzcGxheXMpOwotfQotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0KLVJlbmRlck1lZGlhQ29udHJvbFRleHRU
cmFja0NvbnRhaW5lcjo6UmVuZGVyTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyKEVsZW1l
bnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCi0gICAgOiBSZW5kZXJCbG9ja0Zsb3co
ZWxlbWVudCwgV1RGTW92ZShzdHlsZSkpCi17Ci19Ci0KLXZvaWQgUmVuZGVyTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyOjpsYXlvdXQoKQotewotICAgIFJlbmRlckJsb2NrRmxvdzo6bGF5
b3V0KCk7Ci0gICAgaWYgKHN0eWxlKCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpOb25lKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBBU1NFUlQobWVkaWFDb250cm9sRWxlbWVudFR5cGUoZWxl
bWVudCgpKSA9PSBNZWRpYVRleHRUcmFja0Rpc3BsYXlDb250YWluZXIpOwotCi0gICAgTGF5b3V0
U3RhdGVEaXNhYmxlciBsYXlvdXRTdGF0ZURpc2FibGVyKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlv
dXRDb250ZXh0KCkpOwotfQotCi0jZW5kaWYgLy8gRU5BQkxFKFZJREVPX1RSQUNLKQotCi19IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCi0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xFbGVtZW50cy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxYmYxYjMxNmZhMWQ2M2VjNDIyNGEzNzk3
YmU3MTQ4NDA1MGI4NmMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRz
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
IENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLgotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpZiBFTkFCTEUoVklERU8pCi0KLSNpbmNsdWRlICJSZW5kZXJCbG9ja0Zsb3cuaCIKLSNp
bmNsdWRlICJSZW5kZXJGbGV4aWJsZUJveC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNs
YXNzIFJlbmRlck1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyIGZpbmFsIDogcHVibGljIFJlbmRl
ckJsb2NrRmxvdyB7Ci0gICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSZW5kZXJNZWRpYVZvbHVt
ZVNsaWRlckNvbnRhaW5lcik7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJD
b250YWluZXIoRWxlbWVudCYsIFJlbmRlclN0eWxlJiYpOwotCi1wcml2YXRlOgotICAgIHZvaWQg
bGF5b3V0KCkgb3ZlcnJpZGU7Ci19OwotCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci0KLWNsYXNzIFJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyIGZpbmFsIDogcHVi
bGljIFJlbmRlckZsZXhpYmxlQm94IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJlbmRl
ck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyKTsKLXB1YmxpYzoKLSAgICBSZW5kZXJNZWRp
YUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7Ci0KLXBy
aXZhdGU6Ci0gICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKLSAgICBib29sIGlzRmxleGlibGVC
b3hJbXBsKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQotfTsKLQotLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotCi1jbGFz
cyBSZW5kZXJNZWRpYUNvbnRyb2xUZXh0VHJhY2tDb250YWluZXIgZmluYWwgOiBwdWJsaWMgUmVu
ZGVyQmxvY2tGbG93IHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJlbmRlck1lZGlhQ29u
dHJvbFRleHRUcmFja0NvbnRhaW5lcik7Ci1wdWJsaWM6Ci0gICAgUmVuZGVyTWVkaWFDb250cm9s
VGV4dFRyYWNrQ29udGFpbmVyKEVsZW1lbnQmLCBSZW5kZXJTdHlsZSYmKTsKLQotcHJpdmF0ZToK
LSAgICB2b2lkIGxheW91dCgpIG92ZXJyaWRlOwotfTsKLQotI2VuZGlmIC8vIEVOQUJMRShWSURF
T19UUkFDSykKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jZW5kaWYgLy8gRU5BQkxFKFZJ
REVPKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29u
dHJvbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMu
Y3BwCmluZGV4IGE1MGMxYmU5Y2FmZTI1MGE2OGU5YjQ0MTZjZTNmNmFhYTZjNTdhMTEuLjg2OTY2
MzYwZGI5YTllOGYxOTdiMjFmNjA5MzFjODY1YWRiNjgwOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5jcHAKQEAgLTEsNSArMSw3IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA5LTIwMTcgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4LCAyMDA5LCAyMDEwLCAyMDExIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLgor
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjAsMjEgKzIyLDc3IEBACiAgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJSZW5kZXJNZWRpYUNvbnRyb2xzLmgiCiAKLSNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQorI2lmIEVOQUJMRShWSURFTykKKworI2lu
Y2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCisjaW5jbHVkZSAiUmVuZGVyTGF5b3V0U3Rh
dGUuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIK
KyNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK1dURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNv
bnRhaW5lcik7CitXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoUmVuZGVyTWVkaWFDb250cm9s
VGltZWxpbmVDb250YWluZXIpOworCitSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjo6
UmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVy
U3R5bGUmJiBzdHlsZSkKKyAgICA6IFJlbmRlckJsb2NrRmxvdyhlbGVtZW50LCBXVEZNb3ZlKHN0
eWxlKSkKK3sKK30KKwordm9pZCBSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRhaW5lcjo6bGF5
b3V0KCkKK3sKKyAgICBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dCgpOworCisgICAgaWYgKHN0eWxl
KCkuZGlzcGxheSgpID09IERpc3BsYXlUeXBlOjpOb25lIHx8ICFpczxSZW5kZXJCb3g+KG5leHRT
aWJsaW5nKCkpKQorICAgICAgICByZXR1cm47CisKKyAgICBSZW5kZXJCb3gmIGJ1dHRvbkJveCA9
IGRvd25jYXN0PFJlbmRlckJveD4oKm5leHRTaWJsaW5nKCkpOworICAgIGludCBhYnNvbHV0ZU9m
ZnNldFRvcCA9IGJ1dHRvbkJveC5sb2NhbFRvQWJzb2x1dGUoRmxvYXRQb2ludCgwLCAtc2l6ZSgp
LmhlaWdodCgpKSkueSgpOworCisgICAgTGF5b3V0U3RhdGVEaXNhYmxlciBsYXlvdXRTdGF0ZURp
c2FibGVyKHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkpOworCisgICAgLy8gSWYg
dGhlIHNsaWRlciB3b3VsZCBiZSByZW5kZXJlZCBvdXRzaWRlIHRoZSBwYWdlLCBpdCBzaG91bGQg
YmUgbW92ZWQgYmVsb3cgdGhlIGNvbnRyb2xzLgorICAgIGlmIChVTkxJS0VMWShhYnNvbHV0ZU9m
ZnNldFRvcCA8IDApKQorICAgICAgICBzZXRZKGJ1dHRvbkJveC5vZmZzZXRUb3AoKSArIHRoZW1l
KCkudm9sdW1lU2xpZGVyT2Zmc2V0RnJvbU11dGVCdXR0b24oYnV0dG9uQm94LCBzaXplKCkpLnko
KSk7Cit9CisKKy8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworUmVuZGVyTWVkaWFD
b250cm9sVGltZWxpbmVDb250YWluZXI6OlJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFp
bmVyKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlclN0eWxlJiYgc3R5bGUpCisgICAgOiBSZW5kZXJG
bGV4aWJsZUJveChlbGVtZW50LCBXVEZNb3ZlKHN0eWxlKSkKK3sKK30KKworLy8gV2Ugd2FudCB0
aGUgdGltZWxpbmUgc2xpZGVyIHRvIGJlIGF0IGxlYXN0IDEwMCBwaXhlbHMgd2lkZS4KKy8vIEZJ
WE1FOiBFbGltaW5hdGUgaGFyZC1jb2RlZCB3aWR0aHMgYWx0b2dldGhlci4KK3N0YXRpYyBjb25z
dCBpbnQgbWluV2lkdGhUb0Rpc3BsYXlUaW1lRGlzcGxheXMgPSA0NSArIDEwMCArIDQ1OworCit2
b2lkIFJlbmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyOjpsYXlvdXQoKQoreworICAg
IFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXQoKTsKKworICAgIExheW91dFN0YXRlRGlzYWJsZXIg
bGF5b3V0U3RhdGVEaXNhYmxlcih2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpKTsK
KyAgICBNZWRpYUNvbnRyb2xUaW1lbGluZUNvbnRhaW5lckVsZW1lbnQqIGNvbnRhaW5lciA9IHN0
YXRpY19jYXN0PE1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyRWxlbWVudCo+KGVsZW1lbnQo
KSk7CisgICAgY29udGFpbmVyLT5zZXRUaW1lRGlzcGxheXNIaWRkZW4od2lkdGgoKS50b0ludCgp
IDwgbWluV2lkdGhUb0Rpc3BsYXlUaW1lRGlzcGxheXMpOworfQorCisjaWYgUExBVEZPUk0oV0lO
KSAmJiBVU0UoQ0cpCisKIHZvaWQgUmVuZGVyTWVkaWFDb250cm9sczo6YWRqdXN0TWVkaWFTbGlk
ZXJUaHVtYlNpemUoUmVuZGVyU3R5bGUmIHN0eWxlKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogfQogCi19CisjZW5kaWYgLy8gUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShWSURFTykKIAotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHMuaAppbmRleCBk
NDE3OTM5MDJmYTU4NGU5ZTVlNzQ3ZTlhMjJmMzlhYTQzOWJiY2Q1Li45ZjYxMTM2MDE3ZDA5MjE3
YWQ4NGM1MjRhNmMyY2IwZWE2YzFjOWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVkaWFDb250cm9scy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNZWRpYUNvbnRyb2xzLmgKQEAgLTEsNSArMSw3IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA5IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOCwgMjAwOSwgMjAxMCwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4KKyAqIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTIwLDIyICsyMiw0OCBAQAog
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQogICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCiAgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShWSURFTykg
JiYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQ0cpCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVk
ZSAiUmVuZGVyQmxvY2tGbG93LmgiCisjaW5jbHVkZSAiUmVuZGVyRmxleGlibGVCb3guaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBSZW5kZXJTdHlsZTsKK2NsYXNzIFJlbmRlck1l
ZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyIGZpbmFsIDogcHVibGljIFJlbmRlckJsb2NrRmxvdyB7
CisgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChSZW5kZXJNZWRpYVZvbHVtZVNsaWRlckNvbnRh
aW5lcik7CitwdWJsaWM6CisgICAgUmVuZGVyTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXIoRWxl
bWVudCYsIFJlbmRlclN0eWxlJiYpOworCitwcml2YXRlOgorICAgIHZvaWQgbGF5b3V0KCkgb3Zl
cnJpZGU7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2NsYXNzIFJl
bmRlck1lZGlhQ29udHJvbFRpbWVsaW5lQ29udGFpbmVyIGZpbmFsIDogcHVibGljIFJlbmRlckZs
ZXhpYmxlQm94IHsKKyAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFJlbmRlck1lZGlhQ29udHJv
bFRpbWVsaW5lQ29udGFpbmVyKTsKK3B1YmxpYzoKKyAgICBSZW5kZXJNZWRpYUNvbnRyb2xUaW1l
bGluZUNvbnRhaW5lcihFbGVtZW50JiwgUmVuZGVyU3R5bGUmJik7CisKK3ByaXZhdGU6CisgICAg
dm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKKyAgICBib29sIGlzRmxleGlibGVCb3hJbXBsKCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorfTsKKworI2lmIFBMQVRGT1JNKFdJTikgJiYg
VVNFKENHKQogCiBjbGFzcyBSZW5kZXJNZWRpYUNvbnRyb2xzIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBhZGp1c3RNZWRpYVNsaWRlclRodW1iU2l6ZShSZW5kZXJTdHlsZSYpOwogfTsKIAor
I2VuZGlmIC8vIFBMQVRGT1JNKFdJTikgJiYgVVNFKENHKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pICYmIFBMQVRGT1JNKFdJTikgJiYgVVNFKENH
KQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQppbmRleCBjNjI0YjUyYTZhNjkxZTNhNWE5YTQ0ZjE1NzYyZDQ1MWUxY2M2
OTZhLi4zMThlYjgyZDlhZDU3ZDdkNDM1YTVjMTc5Nzk2OGQzZWU3NmI5ZmRjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC01NSw3ICs1NSw3IEBACiAj
aW1wb3J0ICJSZW5kZXJBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJSZW5kZXJMYXllci5oIgogI2lt
cG9ydCAiUmVuZGVyTWVkaWEuaCIKLSNpbXBvcnQgIlJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRz
LmgiCisjaW1wb3J0ICJSZW5kZXJNZWRpYUNvbnRyb2xzLmgiCiAjaW1wb3J0ICJSZW5kZXJQcm9n
cmVzcy5oIgogI2ltcG9ydCAiUmVuZGVyU2xpZGVyLmgiCiAjaW1wb3J0ICJSZW5kZXJTbmFwc2hv
dHRlZFBsdWdJbi5oIgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDY0MTVhYjYxNDU2OTljMmM4MmYwNGQ5MDJhYTUyZTc2MTUz
MmQ2ZjIuLmMwOWNmZmJkNTljZmRiMzM3YTUyZjI2ODI4NTUxMDE5MDY4MzUyZjUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNCBAQAorMjAyMC0wMy0xMyAgUGVuZyBMaXUgIDxwZW5nLmxpdTZAYXBwbGUuY29t
PgorCisgICAgICAgIENsZWFudXAgUmVuZGVyTWVkaWFDb250cm9scy5jcHAgYW5kIFJlbmRlck1l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjA5MDA4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmVtb3ZlIHVudXNlZCBjb2RlIGluIGEgdGVzdC4KKworICAgICAgICAq
IG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctcnRsLmh0bWw6CisKIDIwMjAtMDMtMTMg
IEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgWyBp
T1MgYW5kIE1hYyB3azIgXSBodHRwL3Rlc3RzL2luLWFwcC1icm93c2VyLXByaXZhY3kvIHRlc3Rz
IGZhaWxpbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1y
ZW5kZXJpbmctcnRsLmh0bWwgYi9MYXlvdXRUZXN0cy9tZWRpYS90cmFjay90cmFjay1jdWUtcmVu
ZGVyaW5nLXJ0bC5odG1sCmluZGV4IDIzNjkzNDQ1MGEzYTgwODZhMjIxYzc0OTU4NGQ0ZmJlZWE5
MGE0ZDguLjdiMzE1MmZlYzIxYjFhZTI4Nzk1NTRjMWVhY2E4MDQzNTFlYTU3MTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL21lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctcnRsLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ydGwuaHRt
bApAQCAtMjEsMTEgKzIxLDYgQEAKICAgICAgICAgICAgICAgICAgICAgIjsxMjM02KrYrNix2KjY
qSIsCiAgICAgICAgICAgICAgICAgICAgICJcdOClpuClp+ClqOClqeClquClq+ClrOClreClruCl
ryAgXHQiXTsKIAotICAgICAgICBmdW5jdGlvbiB0ZXN0Q3VlU3R5bGUoKQotICAgICAgICB7Ci0g
ICAgICAgICAgICBlbmRUZXN0KCk7Ci0gICAgICAgIH0KLQogICAgICAgICBmdW5jdGlvbiBzZWVr
ZWQoKQogICAgICAgICB7CiAgICAgICAgICAgICB0ZXN0Q3VlRGlzcGxheUJveCA9IHRleHRUcmFj
a0Rpc3BsYXlFbGVtZW50KHZpZGVvLCAnZGlzcGxheScpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>