<?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>208002</bug_id>
          
          <creation_ts>2020-02-20 05:10:40 -0800</creation_ts>
          <short_desc>[WPE] Use custom theme style for media controls</short_desc>
          <delta_ts>2020-02-21 03:05:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WPE WebKit</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>annulen</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>calvaris</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>joepeck</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1621167</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-20 05:10:40 -0800</bug_when>
    <thetext>Instead of using the base one we currently use.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621175</commentid>
    <comment_count>1</comment_count>
      <attachid>391280</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-20 05:45:08 -0800</bug_when>
    <thetext>Created attachment 391280
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621254</commentid>
    <comment_count>2</comment_count>
      <attachid>391280</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-02-20 09:28:51 -0800</bug_when>
    <thetext>Comment on attachment 391280
Patch

Why are you not using GTK ones and just extend the CSS to include the icons?

Another thing is that I am no CSS expert and there are probably several things there that can be improved (I see too many !important).

Code seems solid but the other approach seems more logical to me (bonus points would be collapsing base and gtk CSS and JS files in just one. You could name it WPE, actually).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621255</commentid>
    <comment_count>3</comment_count>
      <attachid>391280</attachid>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-02-20 09:31:41 -0800</bug_when>
    <thetext>Comment on attachment 391280
Patch

preventive r- because I would like some answers first</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621256</commentid>
    <comment_count>4</comment_count>
    <who name="Xabier Rodríguez Calvar">calvaris</who>
    <bug_when>2020-02-20 09:32:25 -0800</bug_when>
    <thetext>Another thing is that if you move to fullscreen, I see no controls (I tried http://camendesign.com/code/video_for_everybody/test.html ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621261</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-02-20 09:42:21 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; Comment on attachment 391280 [details]
&gt; Patch
&gt; 
&gt; Why are you not using GTK ones and just extend the CSS to include the icons?

The reason is that the plan is to switch GTK to also use the new theming
code which we are landing piecewise for WPE. There will be some PLATFORM(GTK)
guards for a few things like getting background/foreground/selection/etc.
colors and so on; but we would like to get rid of RenderThemeGTK at some
point (which is one of the trickiest “here be dragons” pieces of code of
the GTK port).

&gt; Another thing is that I am no CSS expert and there are probably several
&gt; things there that can be improved (I see too many !important).

So far its only copied with this minor to make sure things keep working
exactly the same once the GTK port starts using the same theming code as
the WPE port.

Improvements can be made later on, I&apos;d say.

&gt; Code seems solid but the other approach seems more logical to me (bonus
&gt; points would be collapsing base and gtk CSS and JS files in just one. You
&gt; could name it WPE, actually).

I think collapsing Base+Adwaita cannot be done because the PlayStation
port uses the Base ones without any additions, so we will need to keep
that split.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621576</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-20 23:02:21 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #2)
&gt; Comment on attachment 391280 [details]
&gt; Patch
&gt; 
&gt; Why are you not using GTK ones and just extend the CSS to include the icons?

Because the gtk one is going to die soon, so I copy-pasted them, added the icons and made some improvements.
 
&gt; Another thing is that I am no CSS expert and there are probably several
&gt; things there that can be improved (I see too many !important).

Sure, I have no idea about CSS, I copy-pasted the gtk css and followed what is there.

&gt; Code seems solid but the other approach seems more logical to me (bonus
&gt; points would be collapsing base and gtk CSS and JS files in just one. You
&gt; could name it WPE, actually).

GTK doesn&apos;t use the base css file, and WPE either. In the case of JS it makes sense to have a base impl, to avoid duplicating code and other ports are using only the base one, so we can&apos;t delete it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621577</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-20 23:03:40 -0800</bug_when>
    <thetext>(In reply to Xabier Rodríguez Calvar from comment #4)
&gt; Another thing is that if you move to fullscreen, I see no controls (I tried
&gt; http://camendesign.com/code/video_for_everybody/test.html ).

Worked here with https://www.w3.org/2010/05/video/mediaevents.html I&apos;ll try again, maybe I broke it somehow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621578</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-20 23:06:00 -0800</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #7)
&gt; (In reply to Xabier Rodríguez Calvar from comment #4)
&gt; &gt; Another thing is that if you move to fullscreen, I see no controls (I tried
&gt; &gt; http://camendesign.com/code/video_for_everybody/test.html ).
&gt; 
&gt; Worked here with https://www.w3.org/2010/05/video/mediaevents.html I&apos;ll try
&gt; again, maybe I broke it somehow.

It works for me in http://camendesign.com/code/video_for_everybody/test.html too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1621597</commentid>
    <comment_count>9</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-02-21 02:26:42 -0800</bug_when>
    <thetext>Committed r257131: &lt;https://trac.webkit.org/changeset/257131&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391280</attachid>
            <date>2020-02-20 05:45:08 -0800</date>
            <delta_ts>2020-02-21 03:05:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-media-controls.diff</filename>
            <type>text/plain</type>
            <size>42094</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NTgwYjFjNTVlZS4uNDVlZmRkMTA0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMDggQEAKKzIwMjAtMDItMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIFVzZSBjdXN0b20gdGhlbSBzdHlsZSBmb3IgbWVk
aWEgY29udHJvbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIwODAwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBtZWRpYUNvbnRyb2xzQWR3YWl0YS5jc3MgYW5kIG1lZGlhQ29udHJvbHNBZHdhaXRh
LmpzLiBUaGUgc3R5bGUgaXMgYmFzZWQgb24gR1RLIHBvcnQgd2l0aCBhIGZldyBkaWZmZXJlbmNl
czoKKworICAgICAgICAgIC0gQWR3YWl0YSBpY29ucyBhcmUgaW5jbHVkZWQgaW4gdGhlIGNzcy4K
KyAgICAgICAgICAtIEFsbCBidXR0b25zIGhhdmUgZWZmZWN0cyBmb3IgaG92ZXIsIHByZXNzZWQg
YW5kIGRpc2FibGVkIHN0YXRlcy4KKyAgICAgICAgICAtIE11dGUgYW5kIGZ1bGxzY3JlZW4gKG9u
bHkgZm9yIHZpZGVvcykgYnV0dG9ucyBhcmUgYWx3YXlzIHZpc2libGUsIGJ1dCBkaXNhYmxlZCB3
aGVuIG5vdCBhdmFpbGFibGUgdG8gYXZvaWQKKyAgICAgICAgICAgIHRoZSBkYW5jaW5nIHdoZW4g
dGhleSBhcmUgc2hvd24uCisgICAgICAgICAgLSBNZWRpYSBkdXJhdGlvbiBpcyBhbHdheXMgc2hv
d24gdG9vIChmb3Igbm9uLWxpdmUgc3RyZWFtcyksIGJlaW5nIDAwOjAwIGFuZCBkaXNhYmxlZCB3
aGVuIHVua25vd24sIGZvciB0aGUKKyAgICAgICAgICAgIHNhbWUgcmVhc29uLgorICAgICAgICAg
IC0gVGltZWxpbmUgYW5kIHZvbHVtZSBzbGlkZXJzIGFyZSBzbWFsbGVyIGFuZCB0aGVpciB0aHVt
YnMgYXJlIGNpcmNsZWQgaW5zdGVhZCBvZiByb3VuZGVkIHJlY3RhbmdsZXMuCisgICAgICAgICAg
LSBTbGlkZXIgdGh1bWJzIGFsc28gaGF2ZSBlZmZlY3RzIGZvciBob3ZlciwgcHJlc3NlZCBhbmQg
ZGlzYWJsZWQgc3RhdGVzLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlh
Q29udHJvbHNBZHdhaXRhLmNzczogQWRkZWQuCisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbC5oaWRkZW4sKToKKyAgICAgICAgKGJvZHk6LXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWEpOgorICAgICAgICAoYXVkaW8pOgorICAgICAgICAoYXVkaW86LXdlYmtpdC1mdWxs
LXBhZ2UtbWVkaWEsKToKKyAgICAgICAgKGF1ZGlvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLCk6CisgICAgICAgICg6Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9z
dXJlLCk6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwsKToKKyAgICAg
ICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsKToKKyAgICAgICAgKHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIGRpdi5tdXRlLWJveCwpOgorICAgICAgICAo
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgZGl2Lm11dGUtYm94LmhpZGRlbiwp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sKToK
KyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLm11dGVk
LCk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbiwp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24ucGF1
c2VkLCk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRp
bWUtZGlzcGxheSwpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3Vy
cmVudC10aW1lLWRpc3BsYXkubm8tZHVyYXRpb24sKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LmhpZGRlbiwpOgorICAgICAgICAo
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUsKToKKyAgICAgICAgKGlucHV0
W3R5cGU9InJhbmdlIl1bZGlzYWJsZWRdOjotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYiwpOgor
ICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZWxpbmUuaGlkZGVuLCk6
CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lciwpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1l
LXNsaWRlci1jb250YWluZXIuaGlkaW5nLCk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lci5kb3duLCk6CisgICAgICAgIChhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCAuaGlkaW5nLmRvd24sKToKKyAgICAgICAg
KGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXIsKToKKyAgICAgICAg
KGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyIGlu
cHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLWNvbnRhaW5lciA+IGRpdiwp
OgorICAgICAgICAoaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29u
dGFpbmVyKToKKyAgICAgICAgKGlucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xp
ZGVyLWNvbnRhaW5lciA+IGRpdik6CisgICAgICAgIChpbnB1dFt0eXBlPSJyYW5nZSJdOjotd2Vi
a2l0LW1lZGlhLXNsaWRlci10aHVtYik6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy10b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiwpOgorICAgICAgICAoYXVkaW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xlLWNsb3NlZC1jYXB0aW9ucy1idXR0b24uaGlk
ZGVuLCk6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtY29udGFpbmVyKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIub3V0KToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIuaGlkZGVuKToKKyAgICAg
ICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWlu
ZXIgaDMpOgorICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNh
cHRpb25zLWNvbnRhaW5lciB1bCk6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIGxpKToKKyAgICAgICAgKHZpZGVvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLWNsb3NlZC1jYXB0aW9ucy1jb250YWluZXIgbGkuc2VsZWN0ZWQp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0
b24sKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWZ1bGxzY3JlZW4t
YnV0dG9uLmhpZGRlbiwpOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
cGFuZWwgYnV0dG9uOmhvdmVyLCk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1wYW5lbCBidXR0b246YWN0aXZlLCk6CisgICAgICAgIChhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCBidXR0b25bZGlzYWJsZWRdLCk6CisgICAgICAgICogTW9kdWxlcy9t
ZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBZHdhaXRhLmpzOiBBZGRlZC4KKyAgICAgICAgKGNy
ZWF0ZUNvbnRyb2xzKToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhKToKKyAgICAgICAgKGNv
bnRhaW5zKToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnByb3RvdHlwZS5jcmVhdGVDb250
cm9scyk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUuY29uZmlndXJlSW5s
aW5lQ29udHJvbHMpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLnNob3Vs
ZEhhdmVDb250cm9scyk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUucmVj
b25uZWN0Q29udHJvbHMpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLnNl
dFN0YXR1c0hpZGRlbik6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUudXBk
YXRlVGltZSk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUuaGFuZGxlVGlt
ZVVwZGF0ZSk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUudXBkYXRlSGFz
QXVkaW8pOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLmhhbmRsZU11dGVC
dXR0b25Nb3VzZU92ZXIpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLmhh
bmRsZVZvbHVtZUJveE1vdXNlT3V0KToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnByb3Rv
dHlwZS5yZW1vdmVDb250cm9scyk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5
cGUuYWRkQ29udHJvbHMpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLnVw
ZGF0ZUZ1bGxzY3JlZW5CdXR0b24pOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90
eXBlLnVwZGF0ZVJlYWR5U3RhdGUpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90
eXBlLnVwZGF0ZUR1cmF0aW9uKToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnByb3RvdHlw
ZS5zZXRJc0xpdmUpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLnVwZGF0
ZVBsYXlpbmcpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLnVwZGF0ZVBy
b2dyZXNzKToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnByb3RvdHlwZS5oYW5kbGVDYXB0
aW9uQnV0dG9uQ2xpY2tlZCk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUu
YnVpbGRDYXB0aW9uTWVudSk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUu
ZGVzdHJveUNhcHRpb25NZW51KToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnByb3RvdHlw
ZS5zaG93Q2FwdGlvbk1lbnUpOgorICAgICAgICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBl
LmhpZGVDYXB0aW9uTWVudSk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUu
Y2FwdGlvbk1lbnVUcmFuc2l0aW9uRW5kKToKKyAgICAgICAgKENvbnRyb2xsZXJBZHdhaXRhLnBy
b3RvdHlwZS5oYW5kbGVDYXB0aW9uQnV0dG9uTW91c2VPdmVyKToKKyAgICAgICAgKENvbnRyb2xs
ZXJBZHdhaXRhLnByb3RvdHlwZS5oYW5kbGVDYXB0aW9uQnV0dG9uU2hvd01lbnUpOgorICAgICAg
ICAoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlLmhhbmRsZUNhcHRpb25CdXR0b25Nb3VzZU91
dCk6CisgICAgICAgIChDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUuaGFuZGxlQ2FwdGlvbk1v
dXNlT3V0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jh
c2UuanM6CisgICAgICAgICogUGxhdGZvcm1XUEUuY21ha2U6CisgICAgICAgICogcGxhdGZvcm0v
d3BlL1JlbmRlclRoZW1lV1BFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lV1BF
OjpleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU2NyaXB0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lV1BFOjpwYWludE1lZGlhU2xpZGVyVHJhY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVXUEU6OnBhaW50TWVkaWFWb2x1bWVTbGlkZXJUcmFjayk6CisgICAgICAgICogcGxh
dGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmg6CisKIDIwMjAtMDItMjAgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtXUEVdIFVzZSBjdXN0b20g
Y29sb3JzIGZvciB0ZXh0IGFuZCBsaXN0Ym94IHNlbGVjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBZHdhaXRhLmNzcyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQWR3YWl0
YS5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyZDYxMDk5NDU1
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L21lZGlhQ29udHJvbHNBZHdhaXRhLmNzcwpAQCAtMCwwICsxLDQ2MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgWmFuIERvYmVy
c2VrIDx6YW5kb2JlcnNla0BnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMjAg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qIFRoZXNlIGFyZSBi
YXNlZCBvbiB0aGUgQ2hyb21pdW0gbWVkaWEgY29udHJvbHMgYW5kIHVzaW5nIHRoZSBBZHdhaXRh
IGljb25zICovCisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLmhpZGRlbiwK
K3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLmhpZGRlbiB7CisgICAgZGlzcGxh
eTogbm9uZSAhaW1wb3J0YW50OworfQorCitib2R5Oi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsK
KyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMCwgMCwgMCk7Cit9CisKK2F1ZGlvIHsKKyAgICB3
aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAzMHB4OworfQorCithdWRpbzotd2Via2l0LWZ1bGwt
cGFnZS1tZWRpYSwKK3ZpZGVvOi13ZWJraXQtZnVsbC1wYWdlLW1lZGlhIHsKKyAgICBtYXgtaGVp
Z2h0OiAxMDAlOworICAgIG1heC13aWR0aDogMTAwJTsKK30KKworYXVkaW86LXdlYmtpdC1mdWxs
LXBhZ2UtbWVkaWE6Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwsCit2aWRlbzotd2Via2l0
LWZ1bGwtcGFnZS1tZWRpYTo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCB7CisgICAgYm90
dG9tOiAwcHg7Cit9CisKKzo6LXdlYmtpdC1tZWRpYS1jb250cm9scyB7CisgICAgZGlzcGxheTog
ZmxleDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOworICAgIGp1c3RpZnktY29udGVudDog
ZmxleC1lbmQ7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKK30KKworYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtZW5jbG9zdXJlLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
ZW5jbG9zdXJlIHsKKyAgICB3aWR0aDogMTAwJTsKKyAgICBtYXgtd2lkdGg6IDgwMHB4OworICAg
IGhlaWdodDogMzBweDsKKyAgICBib3R0b206IDA7CisgICAgdGV4dC1pbmRlbnQ6IDA7CisgICAg
cGFkZGluZzogMDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIG92ZXJmbG93OiB2
aXNpYmxlOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNsb3N1cmUgewor
ICAgIHBhZGRpbmc6IDVweDsKKyAgICBoZWlnaHQ6IDQwcHg7Cit9CisKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBhbmVsLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFu
ZWwgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKKyAgICBh
bGlnbi1pdGVtczogY2VudGVyOworICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDsKKyAg
ICBib3R0b206IGF1dG87CisgICAgaGVpZ2h0OiAzMHB4OworICAgIGJhY2tncm91bmQtY29sb3I6
IHJnYmEoMjAsIDIwLCAyMCwgMC44KTsKKyAgICBib3JkZXItcmFkaXVzOiA1cHg7CisgICAgb3Zl
cmZsb3c6IHZpc2libGU7CisgICAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjI1cyBsaW5lYXI7Cit9
CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIHsKKyAgICBvcGFjaXR5OiAw
OworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wYW5lbCwKK3ZpZGVvOi13ZWJr
aXQtZnVsbC1wYWdlLW1lZGlhOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsLm5vLXZpZGVv
LAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWw6aG92ZXIsCit2aWRlbzo6LXdl
YmtpdC1tZWRpYS1jb250cm9scy1wYW5lbC5zaG93LAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGFuZWwucGF1c2VkIHsKKyAgICBvcGFjaXR5OiAxOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wYW5lbCBkaXYubXV0ZS1ib3gsCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wYW5lbCBkaXYubXV0ZS1ib3ggeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAg
ZmxleDogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHdpZHRoOiAzMHB4
OworICAgIGhlaWdodDogMzBweDsKKyAgICBtYXJnaW46IDAgOXB4IDAgLTdweDsKK30KKworYXVk
aW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgZGl2Lm11dGUtYm94LmhpZGRlbiwKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIGRpdi5tdXRlLWJveC5oaWRkZW4gewor
ICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtbXV0ZS1idXR0b24sCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRl
LWJ1dHRvbiB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4OiBub25lOworICAgIGJvcmRl
cjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIHdpZHRoOiAzMHB4Owor
ICAgIGhlaWdodDogMzBweDsKKyAgICBsaW5lLWhlaWdodDogMzBweDsKKyAgICBvdXRsaW5lOiBu
b25lOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1w
b3NpdGlvbjogY2VudGVyIGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6
aW1hZ2Uvc3ZnK3htbDt1dGYtOCwgXAorICAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3Lncz
Lm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2Jz4gXAorICAgICAgICAgIDxnIGZp
bGw9JyNGRkZGRkYnPiBcCisgICAgICAgICAgICA8cGF0aCBkPSdNMCA1aDIuNDg0bDIuOTctM0g2
djEyaC0uNDc1bC0zLjA0LTNIMHonIHN0eWxlPSdtYXJrZXI6bm9uZScgY29sb3I9JyNiZWJlYmUn
IG92ZXJmbG93PSd2aXNpYmxlJy8+IFwKKyAgICAgICAgICAgIDxwYXRoIGQ9J00xNSA4YzAtMi44
MTQtMS01LjE3Mi0yLjU4Ni03SDExdjEuNDhDMTIuMjY1IDQgMTMgNS43IDEzIDhjMCAyLjMtLjc4
IDQtMiA1LjUyVjE1aDEuMzgxQzEzLjg0NyAxMy4zNiAxNSAxMC44MTQgMTUgOHonIHN0eWxlPSdt
YXJrZXI6bm9uZScgY29sb3I9JyMwMDAnIG92ZXJmbG93PSd2aXNpYmxlJy8+IFwKKyAgICAgICAg
ICAgIDxwYXRoIGQ9J00xMiA4YzAtMi4xNjYtLjczOS00LjAyLTItNUg5djJjLjYwNy43ODkgMSAx
Ljc2IDEgMyAwIDEuMjQxLS4zOTMgMi4yMi0xIDN2MmgxYzEuMjIzLS45OTUgMi0yLjg3MyAyLTV6
JyBzdHlsZT0nbWFya2VyOm5vbmUnIGNvbG9yPScjMDAwJyBvdmVyZmxvdz0ndmlzaWJsZScvPiBc
CisgICAgICAgICAgICA8cGF0aCBkPSdNOSA4YzAtMS4yNTctLjMxMi0yLjIxNi0xLTNIN3Y2aDFj
LjY3Mi0uODM3IDEtMS43NDIgMS0zeicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1hbDstaW5rc2Nh
cGUtZm9udC1zcGVjaWZpY2F0aW9uOlNhbnM7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0
O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTttYXJrZXI6bm9u
ZScgY29sb3I9JyMwMDAnIGZvbnQtd2VpZ2h0PSc0MDAnIGZvbnQtZmFtaWx5PSdTYW5zJyBvdmVy
Zmxvdz0ndmlzaWJsZScvPiBcCisgICAgICAgICAgPC9nPiBcCisgICAgICAgIDwvc3ZnPiIpOwor
fQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbi5tdXRlZCwKK3Zp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLm11dGVkIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGYtOCwgXAorICAgICAgICA8
c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9
JzE2Jz4gXAorICAgICAgICAgIDxnIGZpbGw9JyNGRkZGRkYnPiBcCisgICAgICAgICAgICA8cGF0
aCBkPSdNMTEgMTFoMS4zNzVsMS4xMjUgMS4wOTRMMTQuNTk0IDExSDE2djEuNDY5bC0xLjA5NCAx
LjA2MkwxNiAxNC41OTRWMTZoLTEuNDM4TDEzLjUgMTQuOTM3IDEyLjQzNyAxNkgxMXYtMS40MDZs
MS4wNjItMS4wNjNMMTEgMTIuNDd6TTAgNWgyLjQ4NGwyLjk3LTNINnYxMmgtLjQ3NWwtMy4wNC0z
SDB6JyBzdHlsZT0nbWFya2VyOm5vbmUnIGNvbG9yPScjYmViZWJlJyBvdmVyZmxvdz0ndmlzaWJs
ZScvPiBcCisgICAgICAgICAgICA8cGF0aCBkPSdNMTEgMXYxLjQ4QzEyLjI2NSA0IDEzIDUuNyAx
MyA4YzAgLjcyMy0uMDg1IDEuMzgyLS4yMjkgMmgyLjAzNGMuMTI0LS42NDUuMTk1LTEuMzE0LjE5
NS0yIDAtMi44MTQtMS01LjE3Mi0yLjU4Ni03eicgc3R5bGU9J21hcmtlcjpub25lJyBjb2xvcj0n
IzAwMCcgb3ZlcmZsb3c9J3Zpc2libGUnIG9wYWNpdHk9Jy4zNScvPiBcCisgICAgICAgICAgICA8
cGF0aCBkPSdNOSAzdjJjLjYwNy43ODkgMSAxLjc1OSAxIDNzLS4zOTMgMi4yMi0xIDN2Mmgxdi0z
aDEuNzVjLjE1OC0uNjI2LjI1LTEuMjk3LjI1LTIgMC0yLjE2Ny0uNzM5LTQuMDItMi01eicgc3R5
bGU9J21hcmtlcjpub25lJyBjb2xvcj0nIzAwMCcgb3ZlcmZsb3c9J3Zpc2libGUnIG9wYWNpdHk9
Jy4zNScvPiBcCisgICAgICAgICAgICA8cGF0aCBkPSdNOSA4YzAtMS4yNTctLjMxMi0yLjIxNi0x
LTNIN3Y2aDFjLjY3Mi0uODM3IDEtMS43NDIgMS0zeicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1h
bDstaW5rc2NhcGUtZm9udC1zcGVjaWZpY2F0aW9uOlNhbnM7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFs
aWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC10cmFuc2Zvcm06bm9uZTtt
YXJrZXI6bm9uZScgY29sb3I9JyMwMDAnIGZvbnQtd2VpZ2h0PSc0MDAnIGZvbnQtZmFtaWx5PSdT
YW5zJyBvdmVyZmxvdz0ndmlzaWJsZScgb3BhY2l0eT0nLjM1Jy8+IFwKKyAgICAgICAgICA8L2c+
IFwKKyAgICAgICAgPC9zdmc+Iik7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBsYXktYnV0dG9uLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24g
eworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgZmxleDogbm9uZTsKKyAgICBib3JkZXI6IG5vbmU7
CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICB3aWR0aDogMzBweDsKKyAgICBoZWln
aHQ6IDMwcHg7CisgICAgbGluZS1oZWlnaHQ6IDMwcHg7CisgICAgbWFyZ2luOiAwIDlweDsKKyAg
ICBvdXRsaW5lOiBub25lOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAg
YmFja2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGYtOCwgXAorICAgICAgICA8c3ZnIHhtbG5zPSdo
dHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2Jz4gXAorICAg
ICAgICAgIDxnIGNvbG9yPScjMDAwJyBmaWxsPScjRkZGRkZGJz4gXAorICAgICAgICAgICAgPHBh
dGggZD0nTTQuMDAyIDRoM3Y4aC0zek05LjAwMiA0aDN2OGgtM3onIHN0eWxlPSdtYXJrZXI6bm9u
ZScgb3ZlcmZsb3c9J3Zpc2libGUnLz4gXAorICAgICAgICAgIDwvZz4gXAorICAgICAgICA8L3N2
Zz4iKTsKK30KKworLyogUGF1c2VkIGNsYXNzZXMgZm9yIGF1ZGlvL3ZpZGVvIGNvbnRyb2xzIHNo
b3VsZCBiZSBkZWZpbmVkIHRvIG1ha2UgYSBkaWZmZXJlbmNlIGluIHN0eWxlIGZyb20gbm90IGhh
dmluZyB0aGlzIGNsYXNzLiBPdGhlcndpc2UgYSByZXBhaW50IHdvdWxkIG5vdCBoYXBwZW4uICov
CithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbi5wYXVzZWQsCit2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRvbi5wYXVzZWQgeworICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3Zn
K3htbDt1dGYtOCwgXAorICAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2Jz4gXAorICAgICAgICAgIDxnIGNvbG9yPScjMDAw
JyBmaWxsPScjRkZGRkZGJz4gXAorICAgICAgICAgICAgPHBhdGggZD0nTTUuMDIyIDNhMSAxIDAg
MCAwLTEuMDIgMXY4YTEgMSAwIDAgMCAxLjQ5Ni44N2w2Ljk5OS00YTEgMSAwIDAgMCAwLTEuNzRs
LTYuOTk5LTRBMSAxIDAgMCAwIDUuMDIyIDN6bS45OCAyLjcyNUw5Ljk4MiA4bC0zLjk4IDIuMjc1
eicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1h
bDtmb250LXZhcmlhbnQtcG9zaXRpb246bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1hbDtm
b250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWFsdGVybmF0ZXM6bm9ybWFs
O2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0
YXJ0O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlk
O3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtdHJhbnNmb3JtOm5vbmU7dGV4dC1vcmll
bnRhdGlvbjptaXhlZDtzaGFwZS1wYWRkaW5nOjA7aXNvbGF0aW9uOmF1dG87bWl4LWJsZW5kLW1v
ZGU6bm9ybWFsO21hcmtlcjpub25lJyBmb250LXdlaWdodD0nNDAwJyBmb250LWZhbWlseT0nc2Fu
cy1zZXJpZicgd2hpdGUtc3BhY2U9J25vcm1hbCcgb3ZlcmZsb3c9J3Zpc2libGUnLz4gXAorICAg
ICAgICAgICAgPHBhdGggZD0nTTUuMDAyIDEyaC0xdjFoMXpNNS4wMDIgM2gtMXYxaDF6TTUuMDAy
IDRMMTIgOGwtNi45OTggNHonIHN0eWxlPSdtYXJrZXI6bm9uZScgb3ZlcmZsb3c9J3Zpc2libGUn
Lz4gXAorICAgICAgICAgIDwvZz4gXAorICAgICAgICA8L3N2Zz4iKTsKK30KKworYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSB7CisgICAgLXdlYmtpdC11c2Vy
LXNlbGVjdDogbm9uZTsKKyAgICBmbGV4OiBub25lOworICAgIGRpc3BsYXk6IGJsb2NrOworICAg
IGJvcmRlcjogbm9uZTsKKyAgICBjdXJzb3I6IGRlZmF1bHQ7CisKKyAgICBoZWlnaHQ6IDMwcHg7
CisgICAgbWFyZ2luOiAwIDE1cHggMCAwOworCisgICAgbGluZS1oZWlnaHQ6IDMwcHg7CisgICAg
Zm9udC1mYW1pbHk6IC13ZWJraXQtc21hbGwtY29udHJvbDsKKyAgICBmb250LXNpemU6IDEzcHg7
CisgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKKyAgICBmb250LXN0eWxlOiBub3JtYWw7CisgICAg
Y29sb3I6IHdoaXRlOworCisgICAgbGV0dGVyLXNwYWNpbmc6IG5vcm1hbDsKKyAgICB3b3JkLXNw
YWNpbmc6IG5vcm1hbDsKKyAgICB0ZXh0LXRyYW5zZm9ybTogbm9uZTsKKyAgICB0ZXh0LWluZGVu
dDogMDsKKyAgICB0ZXh0LXNoYWRvdzogbm9uZTsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7
Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
Lm5vLWR1cmF0aW9uLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1l
LWRpc3BsYXkubm8tZHVyYXRpb24geworICAgIGZpbHRlcjogYnJpZ2h0bmVzcyg1MCUpOworfQor
CithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheS5oaWRk
ZW4sCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheS5o
aWRkZW4sCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNw
bGF5LmhpZGRlbiwKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5n
LWRpc3BsYXkuaGlkZGVuIHsKKyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWVsaW5lLAordmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtdGltZWxpbmUgeworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtc2xp
ZGVyICFpbXBvcnRhbnQ7CisgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OworICAgIGZsZXg6
IDEgMSBhdXRvICFpbXBvcnRhbnQ7CisgICAgaGVpZ2h0OiA0cHggIWltcG9ydGFudDsKKyAgICBt
YXJnaW46IDAgMTVweCAwIDFweCAhaW1wb3J0YW50OworICAgIHBhZGRpbmc6IDAgIWltcG9ydGFu
dDsKKyAgICBtaW4td2lkdGg6IDI1cHggIWltcG9ydGFudDsKKyAgICBvdXRsaW5lOiBub25lICFp
bXBvcnRhbnQ7Cit9CisKK2lucHV0W3R5cGU9InJhbmdlIl1bZGlzYWJsZWRdOjotd2Via2l0LW1l
ZGlhLXNsaWRlci10aHVtYiwKK2lucHV0W3R5cGU9InJhbmdlIl1bZGlzYWJsZWRdOjotd2Via2l0
LW1lZGlhLXNsaWRlci10aHVtYjpob3ZlciwKK2lucHV0W3R5cGU9InJhbmdlIl1bZGlzYWJsZWRd
Ojotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYjphY3RpdmUgeworICAgIGZpbHRlcjogYnJpZ2h0
bmVzcyg1MCUpOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS5o
aWRkZW4sCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10aW1lbGluZS5oaWRkZW4gewor
ICAgIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250YWluZXIsCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy12b2x1bWUtc2xpZGVyLWNvbnRhaW5lciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNl
OiBtZWRpYS12b2x1bWUtc2xpZGVyLWNvbnRhaW5lcjsKKyAgICBkaXNwbGF5OiBmbGV4OworICAg
IG92ZXJmbG93OiBoaWRkZW47CisgICAgcG9zaXRpb246IGFic29sdXRlOworICAgIHBhZGRpbmc6
IDA7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICB3aWR0aDogMzBweDsKKyAgICBib3R0b206IDMw
cHg7CisgICAgei1pbmRleDogMjsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwLCAyMCwg
MjAsIDAuOCk7CisgICAgYm9yZGVyLXJhZGl1czogNXB4IDVweCAwcHggMHB4OworICAgIHRyYW5z
aXRpb246IGhlaWdodCAwLjEwcyBsaW5lYXI7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLmhpZGluZywKK3ZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXZvbHVtZS1zbGlkZXItY29udGFpbmVyLmhpZGluZyB7CisgICAgaGVpZ2h0
OiAwOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy12b2x1bWUtc2xpZGVyLWNv
bnRhaW5lci5kb3duLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRl
ci1jb250YWluZXIuZG93biB7CisgICAgYm90dG9tOiAtMTAwcHg7CisgICAgYm9yZGVyLXJhZGl1
czogMHB4IDBweCA1cHggNXB4OworICAgIHRyYW5zaXRpb246IGhlaWdodCAwLjEwcyBsaW5lYXIs
IGJvdHRvbSAwLjEwcyBsaW5lYXI7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LXBhbmVsIC5oaWRpbmcuZG93biwKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVs
IC5oaWRpbmcuZG93biB7CisgICAgYm90dG9tOiAwOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy12b2x1bWUtc2xpZGVyLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMt
dm9sdW1lLXNsaWRlciB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS12b2x1bWUtc2xp
ZGVyICFpbXBvcnRhbnQ7CisgICAgZGlzcGxheTogZmxleCAhaW1wb3J0YW50OworICAgIGFsaWdu
LWl0ZW1zOiBjZW50ZXIgIWltcG9ydGFudDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uICFp
bXBvcnRhbnQ7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveCAhaW1wb3J0YW50OworICAgIGhl
aWdodDogODBweCAhaW1wb3J0YW50OworICAgIHdpZHRoOiA0cHggIWltcG9ydGFudDsKKyAgICBt
YXJnaW46IDEwcHggYXV0byAhaW1wb3J0YW50OworICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFu
dDsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVy
ID4gZGl2LAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdm9sdW1lLXNsaWRlci1jb250
YWluZXIgaW5wdXRbdHlwZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVy
ID4gZGl2IHsKKyAgICBtYXJnaW46IC03cHggMDsKK30KKworaW5wdXRbdHlwZT0icmFuZ2UiXTo6
LXdlYmtpdC1tZWRpYS1zbGlkZXItY29udGFpbmVyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAg
IGFsaWduLWl0ZW1zOiBjZW50ZXI7CisgICAgZmxleC1kaXJlY3Rpb246IHJvdzsgLyogVGhpcyBw
cm9wZXJ0eSBpcyB1cGRhdGVkIGJ5IEMrKyBjb2RlLiAqLworICAgIGJveC1zaXppbmc6IGJvcmRl
ci1ib3g7CisgICAgaGVpZ2h0OiAxMDAlOworICAgIHdpZHRoOiAxMDAlOworfQorCisvKiBUaGUg
bmVnYXRpdmUgcmlnaHQgbWFyZ2luIGNhdXNlcyB0aGUgdHJhY2sgdG8gb3ZlcmZsb3cgaXRzIGNv
bnRhaW5lci4gKi8KK2lucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQtbWVkaWEtc2xpZGVyLWNv
bnRhaW5lciA+IGRpdiB7CisgICAgbWFyZ2luLXJpZ2h0OiAtMTRweDsKK30KKworaW5wdXRbdHlw
ZT0icmFuZ2UiXTo6LXdlYmtpdC1tZWRpYS1zbGlkZXItdGh1bWIgeworICAgIC13ZWJraXQtYXBw
ZWFyYW5jZTogbm9uZSAhaW1wb3J0YW50OworICAgIHdpZHRoOiAxNHB4OworICAgIGhlaWdodDog
MTRweDsKKyAgICBib3JkZXItcmFkaXVzOiA3cHg7CisgICAgY29sb3I6IHdoaXRlOworICAgIG1h
cmdpbi1sZWZ0OiAtN3B4OworICAgIG1hcmdpbi1yaWdodDogLTdweDsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB3aGl0ZTsKK30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdG9nZ2xl
LWNsb3NlZC1jYXB0aW9ucy1idXR0b24sCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy10
b2dnbGUtY2xvc2VkLWNhcHRpb25zLWJ1dHRvbiB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBm
bGV4OiBub25lOworICAgIGJvcmRlcjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94
OworICAgIHdpZHRoOiAzMHB4OworICAgIGhlaWdodDogMzBweDsKKyAgICBsaW5lLWhlaWdodDog
MzBweDsKKyAgICBtYXJnaW46IDAgOXB4IDAgLTdweDsKKyAgICBvdXRsaW5lOiBub25lOworICAg
IGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFja2dyb3VuZC1wb3NpdGlvbjog
Y2VudGVyIGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3Zn
K3htbDt1dGYtOCwgXAorICAgICAgICA8c3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAw
L3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2Jz4gXAorICAgICAgICAgIDxwYXRoIGQ9J00zLjUg
MkEyLjQ5NSAyLjQ5NSAwIDAgMCAxIDQuNXY1YzAgMS4zODUgMS4xMTUgMi41MiAyLjUgMi41aDYu
Mzc1TDEzIDE1di0zLjA2M0EyLjQ4NiAyLjQ4NiAwIDAgMCAxNSA5LjV2LTVDMTUgMy4xMTUgMTMu
ODg1IDIgMTIuNSAyek0zIDdoNHYxSDN6bTUgMGg1djFIOHpNMyA5aDJ2MUgzem0zIDBoNXYxSDZ6
bTYgMGgxdjFoLTF6JyBmaWxsPScjRkZGRkZGJy8+IFwKKyAgICAgICAgPC9zdmc+Iik7Cit9CisK
K2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQtY2FwdGlvbnMtYnV0
dG9uLmhpZGRlbiwKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRvZ2dsZS1jbG9zZWQt
Y2FwdGlvbnMtYnV0dG9uLmhpZGRlbiB7CisgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFp
bmVyIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLWNsb3NlZC1jYXB0aW9ucy1jb250
YWluZXI7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
Ym90dG9tOiAzNXB4OworICAgIHotaW5kZXg6IDI7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdi
YSgyMCwgMjAsIDIwLCAwLjgpOworICAgIGJvcmRlci1yYWRpdXM6IDVweCA1cHggMHB4IDBweDsK
KyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIG1heC13aWR0aDogLXdlYmtpdC1jYWxjKDEwMCUg
LSA0OHB4KTsgLyogcmlnaHQgKyAxMHB4ICovCisgICAgbWF4LWhlaWdodDogLXdlYmtpdC1jYWxj
KDEwMCUgLSAzNXB4KTsgLyogYm90dG9tICsgMTBweCAqLworICAgIGN1cnNvcjogZGVmYXVsdDsK
KyAgICBmb250LWZhbWlseTogLXdlYmtpdC1zbWFsbC1jb250cm9sOworICAgIGZvbnQtc2l6ZTog
MTBwdDsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworICAgIGZvbnQtc3R5bGU6IG5vcm1hbDsK
KyAgICBjb2xvcjogd2hpdGU7CisgICAgLXdlYmtpdC11c2VyLXNlbGVjdDogbm9uZTsKKyAgICB0
cmFuc2l0aW9uOiBoZWlnaHQgMC4xMHMgbGluZWFyOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyLm91dCB7CisgICAgYm9yZGVyLXJh
ZGl1czogNXB4OworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2Fw
dGlvbnMtY29udGFpbmVyLmhpZGRlbiB7CisgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Owor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFp
bmVyIGgzIHsKKyAgICBwYWRkaW5nLXRvcDogOHB4OworICAgIG1hcmdpbjogMDsKKyAgICBwYWRk
aW5nLWxlZnQ6IDE3cHg7CisgICAgcGFkZGluZy1yaWdodDogMTVweDsKKyAgICBmb250LXNpemU6
IDEwcHQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7CisgICAgZm9udC1zdHlsZTogbm9ybWFsOwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFp
bmVyIHVsIHsKKyAgICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgICAgbWFyZ2luOiAwIDAgNHB4
IDA7CisgICAgcGFkZGluZzogNHB4IDAgMCAwOworfQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1j
b250cm9scy1jbG9zZWQtY2FwdGlvbnMtY29udGFpbmVyIGxpIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7CisgICAgY29sb3I6IHdoaXRlOworICAgIG1hcmdpbjogMDsKKyAgICBwYWRkaW5nLWxl
ZnQ6IDE3cHg7CisgICAgcGFkZGluZy1yaWdodDogMTVweDsKKyAgICBwYWRkaW5nLXRvcDogMC4x
NWVtOworICAgIHBhZGRpbmctYm90dG9tOiAwLjJlbTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXIt
Ym94OworICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgd2hpdGUtc3BhY2U6IG5vd3JhcDsKKyAg
ICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsKKyAgICBvdXRsaW5lOiBub25lOworfQordmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY2xvc2VkLWNhcHRpb25zLWNvbnRhaW5lciBsaS5zZWxl
Y3RlZCB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMzAsIDIzMCwgMjMwLCAwLjE1KTsK
K30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24sCit2
aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1mdWxsc2NyZWVuLWJ1dHRvbiB7CisgICAgZGlz
cGxheTogZmxleDsKKyAgICBmbGV4OiBub25lOworICAgIGJvcmRlcjogbm9uZTsKKyAgICBib3gt
c2l6aW5nOiBib3JkZXItYm94OworICAgIHdpZHRoOiAzMHB4OworICAgIGhlaWdodDogMzBweDsK
KyAgICBsaW5lLWhlaWdodDogMzBweDsKKyAgICBtYXJnaW46IDAgOXB4IDAgLTdweDsKKyAgICBv
dXRsaW5lOiBub25lOworICAgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7CisgICAgYmFj
a2dyb3VuZC1wb3NpdGlvbjogY2VudGVyIGNlbnRlcjsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1
cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbDt1dGYtOCwgXAorICAgICAgICA8c3ZnIHhtbG5zPSdodHRw
Oi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzE2JyBoZWlnaHQ9JzE2Jz4gXAorICAgICAg
ICAgIDxnIGNvbG9yPScjMDAwJyBmaWxsPScjRkZGRkZGJz4gXAorICAgICAgICAgICAgPHBhdGgg
ZD0nTTEuOTg0IDguOTg2QTEgMSAwIDAgMCAxIDEwdjRhMSAxIDAgMCAwIDEgMWg0YTEgMSAwIDEg
MCAwLTJIM3YtM2ExIDEgMCAwIDAtMS4wMTYtMS4wMTR6JyBzdHlsZT0nbGluZS1oZWlnaHQ6bm9y
bWFsO2ZvbnQtdmFyaWFudC1saWdhdHVyZXM6bm9ybWFsO2ZvbnQtdmFyaWFudC1wb3NpdGlvbjpu
b3JtYWw7Zm9udC12YXJpYW50LWNhcHM6bm9ybWFsO2ZvbnQtdmFyaWFudC1udW1lcmljOm5vcm1h
bDtmb250LXZhcmlhbnQtYWx0ZXJuYXRlczpub3JtYWw7Zm9udC1mZWF0dXJlLXNldHRpbmdzOm5v
cm1hbDt0ZXh0LWluZGVudDowO3RleHQtYWxpZ246c3RhcnQ7dGV4dC1kZWNvcmF0aW9uLWxpbmU6
bm9uZTt0ZXh0LWRlY29yYXRpb24tc3R5bGU6c29saWQ7dGV4dC1kZWNvcmF0aW9uLWNvbG9yOiMw
MDA7dGV4dC10cmFuc2Zvcm06bm9uZTt0ZXh0LW9yaWVudGF0aW9uOm1peGVkO3NoYXBlLXBhZGRp
bmc6MDtpc29sYXRpb246YXV0bzttaXgtYmxlbmQtbW9kZTpub3JtYWw7bWFya2VyOm5vbmUnIGZv
bnQtd2VpZ2h0PSc0MDAnIGZvbnQtZmFtaWx5PSdzYW5zLXNlcmlmJyB3aGl0ZS1zcGFjZT0nbm9y
bWFsJyBvdmVyZmxvdz0ndmlzaWJsZScvPiBcCisgICAgICAgICAgICA8cGF0aCBkPSdNNi40OCA4
LjQ5YTEgMSAwIDAgMC0uNjg3LjMwM2wtNC41IDQuNWExIDEgMCAxIDAgMS40MTQgMS40MTRsNC41
LTQuNUExIDEgMCAwIDAgNi40OCA4LjQ5eicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250
LXZhcmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtcG9zaXRpb246bm9ybWFsO2Zv
bnQtdmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12
YXJpYW50LWFsdGVybmF0ZXM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4
dC1pbmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4
dC1kZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQt
dHJhbnNmb3JtOm5vbmU7dGV4dC1vcmllbnRhdGlvbjptaXhlZDtzaGFwZS1wYWRkaW5nOjA7aXNv
bGF0aW9uOmF1dG87bWl4LWJsZW5kLW1vZGU6bm9ybWFsO21hcmtlcjpub25lJyBmb250LXdlaWdo
dD0nNDAwJyBmb250LWZhbWlseT0nc2Fucy1zZXJpZicgd2hpdGUtc3BhY2U9J25vcm1hbCcgb3Zl
cmZsb3c9J3Zpc2libGUnLz4gXAorICAgICAgICAgICAgPHBhdGggZD0nTTEgMTRoMXYxSDF6JyBz
dHlsZT0nbWFya2VyOm5vbmUnIG92ZXJmbG93PSd2aXNpYmxlJy8+IFwKKyAgICAgICAgICAgIDxw
YXRoIGQ9J00xMCAxYTEgMSAwIDEgMCAwIDJoM3YzYTEgMSAwIDEgMCAyIDBWMmExIDEgMCAwIDAt
MS0xeicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250LXZhcmlhbnQtbGlnYXR1cmVzOm5v
cm1hbDtmb250LXZhcmlhbnQtcG9zaXRpb246bm9ybWFsO2ZvbnQtdmFyaWFudC1jYXBzOm5vcm1h
bDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJpYW50LWFsdGVybmF0ZXM6bm9y
bWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1pbmRlbnQ6MDt0ZXh0LWFsaWdu
OnN0YXJ0O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1kZWNvcmF0aW9uLXN0eWxlOnNv
bGlkO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtdHJhbnNmb3JtOm5vbmU7dGV4dC1v
cmllbnRhdGlvbjptaXhlZDtzaGFwZS1wYWRkaW5nOjA7aXNvbGF0aW9uOmF1dG87bWl4LWJsZW5k
LW1vZGU6bm9ybWFsO21hcmtlcjpub25lJyBmb250LXdlaWdodD0nNDAwJyBmb250LWZhbWlseT0n
c2Fucy1zZXJpZicgd2hpdGUtc3BhY2U9J25vcm1hbCcgb3ZlcmZsb3c9J3Zpc2libGUnLz4gXAor
ICAgICAgICAgICAgPHBhdGggZD0nTTE0IDFoMXYxaC0xeicgc3R5bGU9J21hcmtlcjpub25lJyBv
dmVyZmxvdz0ndmlzaWJsZScvPiBcCisgICAgICAgICAgICA8cGF0aCBkPSdNMTMuOTg0Ljk5YTEg
MSAwIDAgMC0uNjkuMzAxbC00LjUgNC40NjlhMSAxIDAgMSAwIDEuNDExIDEuNDE4bDQuNS00LjQ2
OWExIDEgMCAwIDAtLjcyLTEuNzE5eicgc3R5bGU9J2xpbmUtaGVpZ2h0Om5vcm1hbDtmb250LXZh
cmlhbnQtbGlnYXR1cmVzOm5vcm1hbDtmb250LXZhcmlhbnQtcG9zaXRpb246bm9ybWFsO2ZvbnQt
dmFyaWFudC1jYXBzOm5vcm1hbDtmb250LXZhcmlhbnQtbnVtZXJpYzpub3JtYWw7Zm9udC12YXJp
YW50LWFsdGVybmF0ZXM6bm9ybWFsO2ZvbnQtZmVhdHVyZS1zZXR0aW5nczpub3JtYWw7dGV4dC1p
bmRlbnQ6MDt0ZXh0LWFsaWduOnN0YXJ0O3RleHQtZGVjb3JhdGlvbi1saW5lOm5vbmU7dGV4dC1k
ZWNvcmF0aW9uLXN0eWxlOnNvbGlkO3RleHQtZGVjb3JhdGlvbi1jb2xvcjojMDAwO3RleHQtdHJh
bnNmb3JtOm5vbmU7dGV4dC1vcmllbnRhdGlvbjptaXhlZDtzaGFwZS1wYWRkaW5nOjA7aXNvbGF0
aW9uOmF1dG87bWl4LWJsZW5kLW1vZGU6bm9ybWFsO21hcmtlcjpub25lJyBmb250LXdlaWdodD0n
NDAwJyBmb250LWZhbWlseT0nc2Fucy1zZXJpZicgd2hpdGUtc3BhY2U9J25vcm1hbCcgb3ZlcmZs
b3c9J3Zpc2libGUnLz4gXAorICAgICAgICAgICAgPHBhdGggZD0nTTEgOWgxdjFIMXpNNiAxNGgx
djFINnpNMTQgNmgxdjFoLTF6TTkgMWgxdjFIOXonIHN0eWxlPSdtYXJrZXI6bm9uZScgb3ZlcmZs
b3c9J3Zpc2libGUnLz4gXAorICAgICAgICAgIDwvZz4gXAorICAgICAgICA8L3N2Zz4iKTsKK30K
KworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24uaGlkZGVu
LAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZnVsbHNjcmVlbi1idXR0b24uaGlkZGVu
IHsKKyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7Cit9CisKK2F1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLXBhbmVsIGJ1dHRvbjpob3ZlciwKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLXBhbmVsIGJ1dHRvbjpob3ZlciwKK2lucHV0W3R5cGU9InJhbmdlIl06Oi13ZWJraXQt
bWVkaWEtc2xpZGVyLXRodW1iOmhvdmVyIHsKKyAgICBmaWx0ZXI6IGJyaWdodG5lc3MoOTAlKTsK
K30KKworYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGFuZWwgYnV0dG9uOmFjdGl2ZSwK
K3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBhbmVsIGJ1dHRvbjphY3RpdmUsCitpbnB1
dFt0eXBlPSJyYW5nZSJdOjotd2Via2l0LW1lZGlhLXNsaWRlci10aHVtYjphY3RpdmUgeworICAg
IGZpbHRlcjogYnJpZ2h0bmVzcyg4MCUpOworfQorCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250
cm9scy1wYW5lbCBidXR0b25bZGlzYWJsZWRdLAordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtcGFuZWwgYnV0dG9uW2Rpc2FibGVkXSB7CisgICAgZmlsdGVyOiBicmlnaHRuZXNzKDUwJSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVk
aWFDb250cm9sc0Fkd2FpdGEuanMgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvbWVkaWFDb250cm9sc0Fkd2FpdGEuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmIyYTc4MDVkZjRjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNBZHdhaXRhLmpzCkBAIC0wLDAgKzEs
MjU0IEBACitmdW5jdGlvbiBjcmVhdGVDb250cm9scyhyb290LCB2aWRlbywgaG9zdCkKK3sKKyAg
ICByZXR1cm4gbmV3IENvbnRyb2xsZXJBZHdhaXRhKHJvb3QsIHZpZGVvLCBob3N0KTsKK307CisK
K2Z1bmN0aW9uIENvbnRyb2xsZXJBZHdhaXRhKHJvb3QsIHZpZGVvLCBob3N0KQoreworICAgIENv
bnRyb2xsZXIuY2FsbCh0aGlzLCByb290LCB2aWRlbywgaG9zdCk7Cit9OworCitmdW5jdGlvbiBj
b250YWlucyhsaXN0LCBvYmopCit7CisgICAgdmFyIGkgPSBsaXN0Lmxlbmd0aDsKKyAgICB3aGls
ZSAoaS0tKQorICAgICAgICBpZiAobGlzdFtpXSA9PT0gb2JqKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgcmV0dXJuIGZhbHNlOworfTsKKworQ29udHJvbGxlckFkd2FpdGEucHJvdG90
eXBlID0geworCisgICAgY3JlYXRlQ29udHJvbHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IENvbnRyb2xsZXIucHJvdG90eXBlLmNyZWF0ZUNvbnRyb2xzLmFwcGx5KHRoaXMpOworCisgICAg
ICAgIHRoaXMuY29udHJvbHMudm9sdW1lQm94LmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVz
LmhpZGluZyk7CisgICAgICAgIHRoaXMuY29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbi5kaXNhYmxl
ZCA9IHRydWU7CisKKyAgICAgICAgdGhpcy5saXN0ZW5Gb3IodGhpcy5jb250cm9scy5tdXRlQm94
LCAnbW91c2VvdXQnLCB0aGlzLmhhbmRsZVZvbHVtZUJveE1vdXNlT3V0KTsKKyAgICAgICAgdGhp
cy5saXN0ZW5Gb3IodGhpcy5jb250cm9scy5tdXRlQnV0dG9uLCAnbW91c2VvdmVyJywgdGhpcy5o
YW5kbGVNdXRlQnV0dG9uTW91c2VPdmVyKTsKKyAgICAgICAgdGhpcy5saXN0ZW5Gb3IodGhpcy5j
b250cm9scy52b2x1bWVCb3gsICdtb3VzZW92ZXInLCB0aGlzLmhhbmRsZU11dGVCdXR0b25Nb3Vz
ZU92ZXIpOworICAgICAgICB0aGlzLmxpc3RlbkZvcih0aGlzLmNvbnRyb2xzLnZvbHVtZSwgJ21v
dXNlb3ZlcicsIHRoaXMuaGFuZGxlTXV0ZUJ1dHRvbk1vdXNlT3Zlcik7CisgICAgICAgIHRoaXMu
bGlzdGVuRm9yKHRoaXMuY29udHJvbHMuY2FwdGlvbkJ1dHRvbiwgJ21vdXNlb3ZlcicsIHRoaXMu
aGFuZGxlQ2FwdGlvbkJ1dHRvbk1vdXNlT3Zlcik7CisgICAgICAgIHRoaXMubGlzdGVuRm9yKHRo
aXMuY29udHJvbHMuY2FwdGlvbkJ1dHRvbiwgJ21vdXNlb3V0JywgdGhpcy5oYW5kbGVDYXB0aW9u
QnV0dG9uTW91c2VPdXQpOworCisgICAgICAgIHZhciBlbmNsb3N1cmUgPSB0aGlzLmNvbnRyb2xz
LmVuY2xvc3VyZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICBlbmNs
b3N1cmUuc2V0QXR0cmlidXRlKCdwc2V1ZG8nLCAnLXdlYmtpdC1tZWRpYS1jb250cm9scy1lbmNs
b3N1cmUnKTsKKyAgICB9LAorCisgICAgY29uZmlndXJlSW5saW5lQ29udHJvbHM6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIHRoaXMuY29udHJvbHMucGFuZWwuYXBwZW5kQ2hpbGQodGhpcy5j
b250cm9scy5wbGF5QnV0dG9uKTsKKyAgICAgICAgdGhpcy5jb250cm9scy5wYW5lbC5hcHBlbmRD
aGlsZCh0aGlzLmNvbnRyb2xzLnRpbWVsaW5lKTsKKyAgICAgICAgdGhpcy5jb250cm9scy5wYW5l
bC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLmN1cnJlbnRUaW1lKTsKKyAgICAgICAgdGhpcy5j
b250cm9scy5wYW5lbC5hcHBlbmRDaGlsZCh0aGlzLmNvbnRyb2xzLm11dGVCb3gpOworICAgICAg
ICB0aGlzLmNvbnRyb2xzLm11dGVCb3guYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5tdXRlQnV0
dG9uKTsKKyAgICAgICAgdGhpcy5jb250cm9scy5tdXRlQm94LmFwcGVuZENoaWxkKHRoaXMuY29u
dHJvbHMudm9sdW1lQm94KTsKKyAgICAgICAgdGhpcy5jb250cm9scy52b2x1bWVCb3guYXBwZW5k
Q2hpbGQodGhpcy5jb250cm9scy52b2x1bWUpOworICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVs
LmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMuY2FwdGlvbkJ1dHRvbik7CisgICAgICAgIGlmICgh
dGhpcy5pc0F1ZGlvKCkpCisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnBhbmVsLmFwcGVuZENo
aWxkKHRoaXMuY29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbik7CisgICAgICAgIHRoaXMuY29udHJv
bHMuZW5jbG9zdXJlLmFwcGVuZENoaWxkKHRoaXMuY29udHJvbHMucGFuZWwpOworICAgIH0sCisK
KyAgICBzaG91bGRIYXZlQ29udHJvbHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICgh
dGhpcy5pc0F1ZGlvKCkgJiYgIXRoaXMuaG9zdC5hbGxvd3NJbmxpbmVNZWRpYVBsYXliYWNrKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgcmV0dXJuIHRoaXMudmlkZW8uY29u
dHJvbHMgfHwgdGhpcy5pc0Z1bGxTY3JlZW4oKTsKKyAgICB9LAorCisgICAgcmVjb25uZWN0Q29u
dHJvbHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIENvbnRyb2xsZXIucHJvdG90eXBlLmRp
c2Nvbm5lY3RDb250cm9scy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgICAgIHRoaXMu
Y29uZmlndXJlSW5saW5lQ29udHJvbHMoKTsKKworICAgICAgICBpZiAodGhpcy5zaG91bGRIYXZl
Q29udHJvbHMoKSkKKyAgICAgICAgICAgIHRoaXMuYWRkQ29udHJvbHMoKTsKKyAgICB9LAorCisg
ICAgc2V0U3RhdHVzSGlkZGVuOiBmdW5jdGlvbihoaWRkZW4pCisgICAgeworICAgIH0sCisKKyAg
ICB1cGRhdGVUaW1lOiBmdW5jdGlvbihmb3JjZVVwZGF0ZSkKKyAgICB7CisgICAgICAgIGlmICgh
Zm9yY2VVcGRhdGUgJiYgdGhpcy5jb250cm9sc0FyZUhpZGRlbigpKQorICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgIHZhciBjdXJyZW50VGltZSA9IHRoaXMudmlkZW8uY3VycmVudFRpbWU7
CisgICAgICAgIHRoaXMuY29udHJvbHMudGltZWxpbmUudmFsdWUgPSBjdXJyZW50VGltZTsKKyAg
ICAgICAgdGhpcy5jb250cm9scy5jdXJyZW50VGltZS5pbm5lclRleHQgPSB0aGlzLmZvcm1hdFRp
bWUoY3VycmVudFRpbWUpOworICAgICAgICBpZiAoIXRoaXMuaXNMaXZlKSB7CisgICAgICAgICAg
ICB2YXIgZHVyYXRpb24gPSB0aGlzLnZpZGVvLmR1cmF0aW9uOworICAgICAgICAgICAgdGhpcy5j
b250cm9scy5jdXJyZW50VGltZS5pbm5lclRleHQgKz0gIiAvICIgKyB0aGlzLmZvcm1hdFRpbWUo
ZHVyYXRpb24pOworICAgICAgICAgICAgdGhpcy5jb250cm9scy5jdXJyZW50VGltZS5jbGFzc0xp
c3QudG9nZ2xlKHRoaXMuQ2xhc3NOYW1lcy5ub0R1cmF0aW9uLCAhZHVyYXRpb24pOworICAgICAg
ICAgICAgdGhpcy5jb250cm9scy50aW1lbGluZS5kaXNhYmxlZCA9ICFkdXJhdGlvbjsKKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICBoYW5kbGVUaW1lVXBkYXRlOiBmdW5jdGlvbihldmVudCkKKyAg
ICB7CisgICAgICAgIHRoaXMudXBkYXRlVGltZSgpOworICAgIH0sCisKKyAgICB1cGRhdGVIYXNB
dWRpbzogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5jb250cm9scy5tdXRlQnV0dG9u
LmRpc2FibGVkID0gdGhpcy52aWRlby5hdWRpb1RyYWNrcy5sZW5ndGggPT0gMDsKKyAgICB9LAor
CisgICAgaGFuZGxlTXV0ZUJ1dHRvbk1vdXNlT3ZlcjogZnVuY3Rpb24oZXZlbnQpCisgICAgewor
ICAgICAgICBpZiAodGhpcy52aWRlby5vZmZzZXRUb3AgKyB0aGlzLmNvbnRyb2xzLmVuY2xvc3Vy
ZS5vZmZzZXRUb3AgPCAxMDUpIHsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMudm9sdW1lQm94
LmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLmRvd24pOworICAgICAgICAgICAgdGhpcy5j
b250cm9scy5wYW5lbC5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5kb3duKTsKKyAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHRoaXMuY29udHJvbHMudm9sdW1lQm94LmNsYXNzTGlz
dC5yZW1vdmUodGhpcy5DbGFzc05hbWVzLmRvd24pOworICAgICAgICAgICAgdGhpcy5jb250cm9s
cy5wYW5lbC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMuQ2xhc3NOYW1lcy5kb3duKTsKKyAgICAgICAg
fQorICAgICAgICB0aGlzLmNvbnRyb2xzLnZvbHVtZUJveC5jbGFzc0xpc3QucmVtb3ZlKHRoaXMu
Q2xhc3NOYW1lcy5oaWRpbmcpOworCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0sCisKKyAg
ICBoYW5kbGVWb2x1bWVCb3hNb3VzZU91dDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAg
ICB0aGlzLmNvbnRyb2xzLnZvbHVtZUJveC5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xhc3NOYW1lcy5o
aWRpbmcpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgcmVtb3ZlQ29udHJv
bHM6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmNvbnRyb2xzLmVuY2xvc3Vy
ZS5wYXJlbnROb2RlKQorICAgICAgICAgICAgdGhpcy5jb250cm9scy5lbmNsb3N1cmUucGFyZW50
Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLmNvbnRyb2xzLmVuY2xvc3VyZSk7CisgICAgICAgIHRoaXMu
ZGVzdHJveUNhcHRpb25NZW51KCk7CisgICAgfSwKKworICAgIGFkZENvbnRyb2xzOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB0aGlzLmJhc2UuYXBwZW5kQ2hpbGQodGhpcy5jb250cm9scy5l
bmNsb3N1cmUpOworICAgIH0sCisKKyAgICB1cGRhdGVGdWxsc2NyZWVuQnV0dG9uOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBpZiAodGhpcy52aWRlby5yZWFkeVN0YXRlID4gSFRNTE1lZGlh
RWxlbWVudC5IQVZFX05PVEhJTkcgJiYgIXRoaXMuaGFzVmlzdWFsTWVkaWEpIHsKKyAgICAgICAg
ICAgIHRoaXMuY29udHJvbHMuZnVsbHNjcmVlbkJ1dHRvbi5jbGFzc0xpc3QuYWRkKHRoaXMuQ2xh
c3NOYW1lcy5oaWRkZW4pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAg
ICAgdGhpcy5jb250cm9scy5mdWxsc2NyZWVuQnV0dG9uLmRpc2FibGVkID0gIXRoaXMuaG9zdC5z
dXBwb3J0c0Z1bGxzY3JlZW47CisgICAgfSwKKworICAgIHVwZGF0ZVJlYWR5U3RhdGU6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMudXBkYXRlVm9sdW1lKCk7CisgICAgfSwKKworICAg
IHVwZGF0ZUR1cmF0aW9uOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICBDb250cm9sbGVyLnBy
b3RvdHlwZS51cGRhdGVEdXJhdGlvbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICBp
ZiAodGhpcy5pc0xpdmUpCisgICAgICAgICAgICB0aGlzLmNvbnRyb2xzLnRpbWVsaW5lLm1heCA9
IDA7CisgICAgfSwKKworICAgIHNldElzTGl2ZTogZnVuY3Rpb24obGl2ZSkKKyAgICB7CisgICAg
ICAgIENvbnRyb2xsZXIucHJvdG90eXBlLnNldElzTGl2ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMp
OworICAgICAgICB0aGlzLmNvbnRyb2xzLnRpbWVsaW5lLmRpc2FibGVkID0gdGhpcy5pc0xpdmU7
CisgICAgfSwKKworICAgIHVwZGF0ZVBsYXlpbmc6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IENvbnRyb2xsZXIucHJvdG90eXBlLnVwZGF0ZVBsYXlpbmcuYXBwbHkodGhpcywgYXJndW1lbnRz
KTsKKyAgICAgICAgaWYgKCF0aGlzLmNhblBsYXkoKSkKKyAgICAgICAgICAgIHRoaXMuc2hvd0Nv
bnRyb2xzKCk7CisgICAgfSwKKworICAgIHVwZGF0ZVByb2dyZXNzOiBmdW5jdGlvbihmb3JjZVVw
ZGF0ZSkKKyAgICB7CisgICAgfSwKKworICAgIGhhbmRsZUNhcHRpb25CdXR0b25DbGlja2VkOiBm
dW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHRoaXMuaGFuZGxlQ2FwdGlvbkJ1dHRvblNo
b3dNZW51KGV2ZW50KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9LAorCisgICAgYnVpbGRD
YXB0aW9uTWVudTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgQ29udHJvbGxlci5wcm90b3R5
cGUuYnVpbGRDYXB0aW9uTWVudS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgICAgIHRo
aXMubGlzdGVuRm9yKHRoaXMuY2FwdGlvbk1lbnUsICdtb3VzZW91dCcsIHRoaXMuaGFuZGxlQ2Fw
dGlvbk1vdXNlT3V0KTsKKyAgICAgICAgdGhpcy5saXN0ZW5Gb3IodGhpcy5jYXB0aW9uTWVudSwg
J3RyYW5zaXRpb25lbmQnLCB0aGlzLmNhcHRpb25NZW51VHJhbnNpdGlvbkVuZCk7CisKKyAgICAg
ICAgdGhpcy5jYXB0aW9uTWVudS5jYXB0aW9uTWVudVRyZWVFbGVtZW50cyA9IHRoaXMuY2FwdGlv
bk1lbnUuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIioiKTsKKworICAgICAgICAvLyBDYXB0aW9uIG1l
bnUgaGFzIHRvIGJlIGNlbnRlcmVkIHRvIHRoZSBjYXB0aW9uIGJ1dHRvbi4KKyAgICAgICAgdmFy
IGNhcHRpb25CdXR0b25DZW50ZXIgPSAgdGhpcy5jb250cm9scy5wYW5lbC5vZmZzZXRMZWZ0ICsg
dGhpcy5jb250cm9scy5jYXB0aW9uQnV0dG9uLm9mZnNldExlZnQgKworICAgICAgICAgICAgdGhp
cy5jb250cm9scy5jYXB0aW9uQnV0dG9uLm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNh
cHRpb25NZW51TGVmdCA9IChjYXB0aW9uQnV0dG9uQ2VudGVyIC0gdGhpcy5jYXB0aW9uTWVudS5v
ZmZzZXRXaWR0aCAvIDIpOworICAgICAgICBpZiAoY2FwdGlvbk1lbnVMZWZ0ICsgdGhpcy5jYXB0
aW9uTWVudS5vZmZzZXRXaWR0aCA+IHRoaXMuY29udHJvbHMucGFuZWwub2Zmc2V0TGVmdCArIHRo
aXMuY29udHJvbHMucGFuZWwub2Zmc2V0V2lkdGgpCisgICAgICAgICAgICB0aGlzLmNhcHRpb25N
ZW51LmNsYXNzTGlzdC5hZGQodGhpcy5DbGFzc05hbWVzLm91dCk7CisgICAgICAgIHRoaXMuY2Fw
dGlvbk1lbnUuc3R5bGUubGVmdCA9IGNhcHRpb25NZW51TGVmdCArICdweCc7CisgICAgICAgIC8v
IEFzIGhlaWdodCBpcyBub3QgaW4gdGhlIGNzcywgaXQgbmVlZHMgdG8gYmUgc3BlY2lmaWVkIHRv
IGFuaW1hdGUgaXQuCisgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUuaGVpZ2h0ID0gdGhpcy5jYXB0
aW9uTWVudS5vZmZzZXRIZWlnaHQ7CisgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUuc3R5bGUuaGVp
Z2h0ID0gMDsKKyAgICB9LAorCisgICAgZGVzdHJveUNhcHRpb25NZW51OiBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICB0aGlzLmhpZGVDYXB0aW9uTWVudSgpOworICAgIH0sCisKKyAgICBzaG93
Q2FwdGlvbk1lbnU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuY2FwdGlvbk1lbnUu
c3R5bGUuaGVpZ2h0ID0gdGhpcy5jYXB0aW9uTWVudS5oZWlnaHQgKyAncHgnOworICAgIH0sCisK
KyAgICBoaWRlQ2FwdGlvbk1lbnU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuY2Fw
dGlvbk1lbnUuc3R5bGUuaGVpZ2h0ID0gMDsKKyAgICB9LAorCisgICAgY2FwdGlvbk1lbnVUcmFu
c2l0aW9uRW5kOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIGlmICh0aGlzLmNhcHRp
b25NZW51Lm9mZnNldEhlaWdodCA9PT0gMCkKKyAgICAgICAgICAgIENvbnRyb2xsZXIucHJvdG90
eXBlLmRlc3Ryb3lDYXB0aW9uTWVudS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgIH0sCisK
KyAgICBoYW5kbGVDYXB0aW9uQnV0dG9uTW91c2VPdmVyOiBmdW5jdGlvbihldmVudCkKKyAgICB7
CisgICAgICAgIHRoaXMuaGFuZGxlQ2FwdGlvbkJ1dHRvblNob3dNZW51KGV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGhhbmRsZUNhcHRpb25CdXR0b25TaG93TWVu
dTogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuY2FwdGlvbk1lbnUp
CisgICAgICAgICAgICB0aGlzLmJ1aWxkQ2FwdGlvbk1lbnUoKTsKKyAgICAgICAgaWYgKCFjb250
YWlucyh0aGlzLmNhcHRpb25NZW51LmNhcHRpb25NZW51VHJlZUVsZW1lbnRzLCBldmVudC5yZWxh
dGVkVGFyZ2V0KSkKKyAgICAgICAgICAgIHRoaXMuc2hvd0NhcHRpb25NZW51KCk7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0sCisKKyAgICBoYW5kbGVDYXB0aW9uQnV0dG9uTW91c2VPdXQ6
IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgaWYgKHRoaXMuY2FwdGlvbk1lbnUgJiYg
IWNvbnRhaW5zKHRoaXMuY2FwdGlvbk1lbnUuY2FwdGlvbk1lbnVUcmVlRWxlbWVudHMsIGV2ZW50
LnJlbGF0ZWRUYXJnZXQpKQorICAgICAgICAgICAgdGhpcy5oaWRlQ2FwdGlvbk1lbnUoKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfSwKKworICAgIGhhbmRsZUNhcHRpb25Nb3VzZU91dDog
ZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICBpZiAoZXZlbnQucmVsYXRlZFRhcmdldCAh
PSB0aGlzLmNvbnRyb2xzLmNhcHRpb25CdXR0b24gJiYKKyAgICAgICAgICAgICFjb250YWlucyh0
aGlzLmNhcHRpb25NZW51LmNhcHRpb25NZW51VHJlZUVsZW1lbnRzLCBldmVudC5yZWxhdGVkVGFy
Z2V0KSkKKyAgICAgICAgICAgIHRoaXMuaGlkZUNhcHRpb25NZW51KCk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0sCit9OworCitPYmplY3QuY3JlYXRlKENvbnRyb2xsZXIucHJvdG90eXBl
KS5leHRlbmQoQ29udHJvbGxlckFkd2FpdGEucHJvdG90eXBlKTsKK09iamVjdC5kZWZpbmVQcm9w
ZXJ0eShDb250cm9sbGVyQWR3YWl0YS5wcm90b3R5cGUsICdjb25zdHJ1Y3RvcicsIHsgZW51bWVy
YWJsZTpmYWxzZSwgdmFsdWU6Q29udHJvbGxlckFkd2FpdGEgfSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMK
aW5kZXggZjc4Njk2ZDY0OTAuLmRjYjI5MTcwMzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvbWVkaWFDb250cm9sc0Jhc2UuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCkBAIC05
MSw2ICs5MSw3IEBAIENvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgICAgICB0aHVtYm5haWxU
cmFjazogJ3RodW1ibmFpbC10cmFjaycsCiAgICAgICAgIHZvbHVtZUJveDogJ3ZvbHVtZS1ib3gn
LAogICAgICAgICBub1ZpZGVvOiAnbm8tdmlkZW8nLAorICAgICAgICBub0R1cmF0aW9uOiAnbm8t
ZHVyYXRpb24nLAogICAgICAgICBkb3duOiAnZG93bicsCiAgICAgICAgIG91dDogJ291dCcsCiAg
ICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291
cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UKaW5kZXggMTg2ZTczNjUzOGIuLjY4OTg5M2Vm
NDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtNDAsMTIgKzQwLDEzIEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiBsaXN0KEFQUEVORCBX
ZWJDb3JlX1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCiAgICAgJHtXRUJDT1JFX0RJUn0vY3NzL3Ro
ZW1lQWR3YWl0YS5jc3MKLSAgICAke1dFQkNPUkVfRElSfS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
bWVkaWFDb250cm9sc0Jhc2UuY3NzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNBZHdhaXRhLmNzcwogKQogCiBzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKICAgICAke1dFQkNPUkVfRElSfS9lbi5scHJvai9tZWRpYUNvbnRyb2xzTG9j
YWxpemVkU3RyaW5ncy5qcwogICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9s
cy9tZWRpYUNvbnRyb2xzQmFzZS5qcworICAgICR7V0VCQ09SRV9ESVJ9L01vZHVsZXMvbWVkaWFj
b250cm9scy9tZWRpYUNvbnRyb2xzQWR3YWl0YS5qcwogKQogCiBzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3dwZS9SZW5k
ZXJUaGVtZVdQRS5jcHApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UmVuZGVyVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcAppbmRleCA5MDdkNTRlODk1Ni4uZTg0OTMwNmM3YWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMzAsNiArMzAsOCBA
QAogI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKICNpbmNsdWRlICJHcmFwaGljc0NvbnRl
eHQuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE1lZGlh
RWxlbWVudC5oIgorI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWludEluZm8uaCIKICNpbmNsdWRlICJSZW5k
ZXJCb3guaCIKQEAgLTM3LDYgKzM5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJQcm9ncmVzcy5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKyNpbmNsdWRl
ICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U2NyaXB0cy5oIgogI2luY2x1ZGUg
IlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgpAQCAtNjksNiArNzIsMTEgQEAgc3RhdGljIGNvbnN0IENvbG9yIHNsaWRlclRodW1iQm9y
ZGVyQ29sb3IgPSBtYWtlUkdCKDIwNSwgMTk5LCAxOTQpOwogc3RhdGljIGNvbnN0IENvbG9yIHNs
aWRlclRodW1iQmFja2dyb3VuZENvbG9yID0gbWFrZVJHQigyNDQsIDI0MiwgMjQxKTsKIHN0YXRp
YyBjb25zdCBDb2xvciBzbGlkZXJUaHVtYkJhY2tncm91bmRIb3ZlcmVkQ29sb3IgPSBtYWtlUkdC
KDI0OCwgMjQ4LCAyNDcpOwogc3RhdGljIGNvbnN0IENvbG9yIHNsaWRlclRodW1iQmFja2dyb3Vu
ZERpc2FibGVkQ29sb3IgPSBtYWtlUkdCKDI0NCwgMjQyLCAyNDEpOworI2lmIEVOQUJMRShWSURF
TykKK3N0YXRpYyBjb25zdCBDb2xvciBtZWRpYVNsaWRlclRyYWNrQmFja2dyb3VuZGNvbG9yID0g
bWFrZVJHQig3NywgNzcsIDc3KTsKK3N0YXRpYyBjb25zdCBDb2xvciBtZWRpYVNsaWRlclRyYWNr
QnVmZmVyZWRDb2xvciA9IG1ha2VSR0IoMTczLCAxNzMsIDE3Myk7CitzdGF0aWMgY29uc3QgQ29s
b3IgbWVkaWFTbGlkZXJUcmFja0FjdGl2ZUNvbG9yID0gbWFrZVJHQigyNTIsIDI1MiwgMjUyKTsK
KyNlbmRpZgogCiBSZW5kZXJUaGVtZSYgUmVuZGVyVGhlbWU6OnNpbmdsZXRvbigpCiB7CkBAIC0x
NTMsOSArMTYxLDkgQEAgU3RyaW5nIFJlbmRlclRoZW1lV1BFOjpleHRyYURlZmF1bHRTdHlsZVNo
ZWV0KCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKLVN0cmluZyBSZW5kZXJUaGVtZVdQRTo6bWVk
aWFDb250cm9sc1N0eWxlU2hlZXQoKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjpleHRyYU1lZGlh
Q29udHJvbHNTdHlsZVNoZWV0KCkKIHsKLSAgICByZXR1cm4gU3RyaW5nKG1lZGlhQ29udHJvbHNC
YXNlVXNlckFnZW50U3R5bGVTaGVldCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNCYXNlVXNlckFnZW50
U3R5bGVTaGVldCkpOworICAgIHJldHVybiBTdHJpbmcobWVkaWFDb250cm9sc0Fkd2FpdGFVc2Vy
QWdlbnRTdHlsZVNoZWV0LCBzaXplb2YobWVkaWFDb250cm9sc0Fkd2FpdGFVc2VyQWdlbnRTdHls
ZVNoZWV0KSk7CiB9CiAKIFN0cmluZyBSZW5kZXJUaGVtZVdQRTo6bWVkaWFDb250cm9sc1Njcmlw
dCgpCkBAIC0xNjMsNiArMTcxLDcgQEAgU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRy
b2xzU2NyaXB0KCkKICAgICBTdHJpbmdCdWlsZGVyIHNjcmlwdEJ1aWxkZXI7CiAgICAgc2NyaXB0
QnVpbGRlci5hcHBlbmRDaGFyYWN0ZXJzKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzSmF2
YVNjcmlwdCwgc2l6ZW9mKG1lZGlhQ29udHJvbHNMb2NhbGl6ZWRTdHJpbmdzSmF2YVNjcmlwdCkp
OwogICAgIHNjcmlwdEJ1aWxkZXIuYXBwZW5kQ2hhcmFjdGVycyhtZWRpYUNvbnRyb2xzQmFzZUph
dmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZENoYXJhY3RlcnMobWVkaWFDb250cm9sc0Fkd2FpdGFKYXZhU2NyaXB0
LCBzaXplb2YobWVkaWFDb250cm9sc0Fkd2FpdGFKYXZhU2NyaXB0KSk7CiAgICAgcmV0dXJuIHNj
cmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKIH0KICNlbmRpZgpAQCAtNDQ5LDQgKzQ1OCw4NCBAQCBi
b29sIFJlbmRlclRoZW1lV1BFOjpwYWludFNsaWRlclRodW1iKGNvbnN0IFJlbmRlck9iamVjdCYg
cmVuZGVyT2JqZWN0LCBjb25zdCBQYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorI2lmIEVOQUJM
RShWSURFTykKK2Jvb2wgUmVuZGVyVGhlbWVXUEU6OnBhaW50TWVkaWFTbGlkZXJUcmFjayhjb25z
dCBSZW5kZXJPYmplY3QmIHJlbmRlck9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8s
IGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisgICAgYXV0byBtZWRpYUVsZW1lbnQgPSBwYXJlbnRN
ZWRpYUVsZW1lbnQocmVuZGVyT2JqZWN0KTsKKyAgICBpZiAoIW1lZGlhRWxlbWVudCkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZ3JhcGhpY3NDb250ZXh0ID0gcGFpbnRJbmZv
LmNvbnRleHQoKTsKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoZ3Jh
cGhpY3NDb250ZXh0KTsKKworICAgIEZsb2F0UmVjdCB0cmFja1JlY3QgPSByZWN0OworICAgIEZs
b2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRl
ZFJlY3QodHJhY2tSZWN0LCBjb3JuZXIpOworICAgIGdyYXBoaWNzQ29udGV4dC5zZXRGaWxsQ29s
b3IobWVkaWFTbGlkZXJUcmFja0JhY2tncm91bmRjb2xvcik7CisgICAgZ3JhcGhpY3NDb250ZXh0
LmZpbGxQYXRoKHBhdGgpOworICAgIHBhdGguY2xlYXIoKTsKKworICAgIGdyYXBoaWNzQ29udGV4
dC5zZXRGaWxsQ29sb3IobWVkaWFTbGlkZXJUcmFja0J1ZmZlcmVkQ29sb3IpOworCisgICAgZmxv
YXQgbWVkaWFEdXJhdGlvbiA9IG1lZGlhRWxlbWVudC0+ZHVyYXRpb24oKTsKKyAgICBSZWZQdHI8
VGltZVJhbmdlcz4gdGltZVJhbmdlcyA9IG1lZGlhRWxlbWVudC0+YnVmZmVyZWQoKTsKKyAgICBm
b3IgKHVuc2lnbmVkIGluZGV4ID0gMDsgaW5kZXggPCB0aW1lUmFuZ2VzLT5sZW5ndGgoKTsgKytp
bmRleCkgeworICAgICAgICBmbG9hdCBzdGFydCA9IHRpbWVSYW5nZXMtPnN0YXJ0KGluZGV4KS5y
ZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgZmxvYXQgZW5kID0gdGltZVJhbmdlcy0+ZW5k
KGluZGV4KS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKKyAgICAgICAgZmxvYXQgc3RhcnRSYXRpbyA9
IHN0YXJ0IC8gbWVkaWFEdXJhdGlvbjsKKyAgICAgICAgZmxvYXQgbGVuZ3RoUmF0aW8gPSAoZW5k
IC0gc3RhcnQpIC8gbWVkaWFEdXJhdGlvbjsKKyAgICAgICAgaWYgKCFsZW5ndGhSYXRpbykKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEZsb2F0UmVjdCByYW5nZVJlY3QgPSByZWN0
OworICAgICAgICByYW5nZVJlY3Quc2V0V2lkdGgobGVuZ3RoUmF0aW8gKiByZWN0LndpZHRoKCkp
OworICAgICAgICBpZiAoaW5kZXgpCisgICAgICAgICAgICByYW5nZVJlY3QubW92ZShzdGFydFJh
dGlvICogcmVjdC53aWR0aCgpLCAwKTsKKworICAgICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJh
bmdlUmVjdCwgY29ybmVyKTsKKyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmZpbGxQYXRoKHBhdGgp
OworICAgICAgICBwYXRoLmNsZWFyKCk7CisgICAgfQorCisgICAgRmxvYXRSZWN0IHBsYXllZFJl
Y3QgPSByZWN0OworICAgIHBsYXllZFJlY3Quc2V0V2lkdGgoKG1lZGlhRWxlbWVudC0+Y3VycmVu
dFRpbWUoKSAvIG1lZGlhRHVyYXRpb24pICogcmVjdC53aWR0aCgpKTsKKyAgICBncmFwaGljc0Nv
bnRleHQuc2V0RmlsbENvbG9yKG1lZGlhU2xpZGVyVHJhY2tBY3RpdmVDb2xvcik7CisgICAgcGF0
aC5hZGRSb3VuZGVkUmVjdChwbGF5ZWRSZWN0LCBjb3JuZXIpOworICAgIGdyYXBoaWNzQ29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBSZW5kZXJU
aGVtZVdQRTo6cGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYg
cmVuZGVyT2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCkKK3sKKyAgICBhdXRvIG1lZGlhRWxlbWVudCA9IHBhcmVudE1lZGlhRWxlbWVudChyZW5k
ZXJPYmplY3QpOworICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBhdXRvJiBncmFwaGljc0NvbnRleHQgPSBwYWludEluZm8uY29udGV4dCgpOworICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihncmFwaGljc0NvbnRleHQpOwor
CisgICAgRmxvYXRSZWN0IHRyYWNrUmVjdCA9IHJlY3Q7CisgICAgRmxvYXRTaXplIGNvcm5lcigy
LCAyKTsKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdCh0cmFja1JlY3Qs
IGNvcm5lcik7CisgICAgZ3JhcGhpY3NDb250ZXh0LnNldEZpbGxDb2xvcihtZWRpYVNsaWRlclRy
YWNrQmFja2dyb3VuZGNvbG9yKTsKKyAgICBncmFwaGljc0NvbnRleHQuZmlsbFBhdGgocGF0aCk7
CisgICAgcGF0aC5jbGVhcigpOworCisgICAgZmxvYXQgdm9sdW1lID0gbWVkaWFFbGVtZW50LT5t
dXRlZCgpID8gMC4wZiA6IG1lZGlhRWxlbWVudC0+dm9sdW1lKCk7CisgICAgaWYgKHZvbHVtZSkg
eworICAgICAgICBGbG9hdFJlY3Qgdm9sdW1lUmVjdCA9IHJlY3Q7CisgICAgICAgIHZvbHVtZVJl
Y3Quc2V0SGVpZ2h0KHZvbHVtZVJlY3QuaGVpZ2h0KCkgKiB2b2x1bWUpOworICAgICAgICB2b2x1
bWVSZWN0Lm1vdmUoMCwgcmVjdC5oZWlnaHQoKSAtIHZvbHVtZVJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHZvbHVtZVJlY3QsIGNvcm5lcik7CisgICAgICAgIGdy
YXBoaWNzQ29udGV4dC5zZXRGaWxsQ29sb3IobWVkaWFTbGlkZXJUcmFja0FjdGl2ZUNvbG9yKTsK
KyAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmZpbGxQYXRoKHBhdGgpOworICAgIH0KKworICAgIHJl
dHVybiBmYWxzZTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJU
aGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmgK
aW5kZXggYTFiYTlhOWVjMWUuLjI5OThmZmIwOWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiAKICAg
ICBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpIG92ZXJyaWRlOwogI2lmIEVOQUJMRShW
SURFTykKLSAgICBTdHJpbmcgbWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyAg
ICBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIG92ZXJyaWRlOwogICAgIFN0
cmluZyBtZWRpYUNvbnRyb2xzU2NyaXB0KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApAQCAtNzcsNiAr
NzcsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHBhaW50U2xpZGVyVHJhY2soY29uc3QgUmVuZGVy
T2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAg
IHZvaWQgYWRqdXN0U2xpZGVyVGh1bWJTaXplKFJlbmRlclN0eWxlJiwgY29uc3QgRWxlbWVudCop
IGNvbnN0IG92ZXJyaWRlOwogICAgIGJvb2wgcGFpbnRTbGlkZXJUaHVtYihjb25zdCBSZW5kZXJP
YmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisKKyNp
ZiBFTkFCTEUoVklERU8pCisgICAgYm9vbCBwYWludE1lZGlhU2xpZGVyVHJhY2soY29uc3QgUmVu
ZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwor
ICAgIGJvb2wgcGFpbnRNZWRpYVZvbHVtZVNsaWRlclRyYWNrKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>