<?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>92132</bug_id>
          
          <creation_ts>2012-07-24 09:34:27 -0700</creation_ts>
          <short_desc>Add an overlay play button to media controls on android</short_desc>
          <delta_ts>2012-07-28 12:24:15 -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>New Bugs</component>
          <version>528+ (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>
          <dependson>92572</dependson>
          <blocked>66687</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Min Qin">qinmin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dpranke</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>peter</cc>
    
    <cc>pkasting</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>676913</commentid>
    <comment_count>0</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-24 09:34:27 -0700</bug_when>
    <thetext>Add an overlay play button to media controls on android</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>676921</commentid>
    <comment_count>1</comment_count>
      <attachid>154087</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-24 09:46:31 -0700</bug_when>
    <thetext>Created attachment 154087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>677039</commentid>
    <comment_count>2</comment_count>
      <attachid>154087</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-07-24 11:06:49 -0700</bug_when>
    <thetext>Comment on attachment 154087
Patch

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

&gt; Source/WebCore/css/mediaControls.css:86
&gt; +    display: -webkit-box;

Shouldn&apos;t this be display:none, and then each port that wants to display it can override?

&gt; Source/WebCore/html/shadow/MediaControlElements.h:283
&gt; +    MediaControlOverlayPlayButtonElement(Document*);

All single-argument constructors should be marked &quot;explicit&quot; so the compiler doesn&apos;t try to implicitly create a MediaControlCromiumEnclosureElement from a Document*.

&gt; Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp:78
&gt; +#if ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)
&gt; +MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement(Document* document)
&gt; +    : MediaControlChromiumEnclosureElement(document)
&gt; +{
&gt; +}
&gt; +

Is there any reason to not do this by subclassing MediaControlRootElementChromium instead of adding compile flags?

&gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:116
&gt; +#if ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)
&gt; +static bool paintMediaOverlayPlayButton(RenderObject* object, const PaintInfo&amp; paintInfo, const IntRect&amp; rect)
&gt; +{

Again, is there any reason to not do this by subclassing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678507</commentid>
    <comment_count>3</comment_count>
      <attachid>154452</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-25 14:53:56 -0700</bug_when>
    <thetext>Created attachment 154452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>678510</commentid>
    <comment_count>4</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-25 15:01:35 -0700</bug_when>
    <thetext>Removed the ENABLE(MEDIA_OVERLAY_PLAY_BUTTON) flag, PTAL.

(In reply to comment #2)
&gt; (From update of attachment 154087 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154087&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/mediaControls.css:86
&gt; &gt; +    display: -webkit-box;
&gt; 
&gt; Shouldn&apos;t this be display:none, and then each port that wants to display it can override?

Done. 

&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlElements.h:283
&gt; &gt; +    MediaControlOverlayPlayButtonElement(Document*);
&gt; 
&gt; All single-argument constructors should be marked &quot;explicit&quot; so the compiler doesn&apos;t try to implicitly create a MediaControlCromiumEnclosureElement from a Document*.
&gt; 
&gt; &gt; Source/WebCore/html/shadow/MediaControlRootElementChromium.cpp:78
&gt; &gt; +#if ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)
&gt; &gt; +MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement(Document* document)
&gt; &gt; +    : MediaControlChromiumEnclosureElement(document)
&gt; &gt; +{
&gt; &gt; +}
&gt; &gt; +
&gt; 
&gt; Is there any reason to not do this by subclassing MediaControlRootElementChromium instead of adding compile flags?

Refactored MediaControlRootElementChromium and added a subclass MediaControlRootElementChromiumAndroid to implement the functionality of  the overlay play button.

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderMediaControlsChromium.cpp:116
&gt; &gt; +#if ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)
&gt; &gt; +static bool paintMediaOverlayPlayButton(RenderObject* object, const PaintInfo&amp; paintInfo, const IntRect&amp; rect)
&gt; &gt; +{
&gt; 
&gt; Again, is there any reason to not do this by subclassing?

This class is full of static functions. So subclassing it does not help too much. I removed the &quot;#if ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)&quot; in the file, the code will only be hit in the android port (called from RenderThemeChromiumAndroid)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679259</commentid>
    <comment_count>5</comment_count>
      <attachid>154452</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2012-07-26 06:22:30 -0700</bug_when>
    <thetext>Comment on attachment 154452
Patch

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

This looks great with the minor nit noted. Thank you for taking the time to change your approach and then refactor, this is a huge improvement!

&gt; Source/WebCore/css/mediaControlsChromiumAndroid.css:113
&gt; +audio::-webkit-media-controls-overlay-play-button {
&gt; +    display: none;
&gt; +}

This should be unnecessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679418</commentid>
    <comment_count>6</comment_count>
      <attachid>154668</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-26 09:27:51 -0700</bug_when>
    <thetext>Created attachment 154668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679421</commentid>
    <comment_count>7</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-26 09:28:57 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 154452 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154452&amp;action=review
&gt; 
&gt; This looks great with the minor nit noted. Thank you for taking the time to change your approach and then refactor, this is a huge improvement!
&gt; 
&gt; &gt; Source/WebCore/css/mediaControlsChromiumAndroid.css:113
&gt; &gt; +audio::-webkit-media-controls-overlay-play-button {
&gt; &gt; +    display: none;
&gt; &gt; +}
&gt; 
&gt; This should be unnecessary.

Done, removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680161</commentid>
    <comment_count>8</comment_count>
      <attachid>154668</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-26 23:32:23 -0700</bug_when>
    <thetext>Comment on attachment 154668
Patch

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

&gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:92
&gt; +#if ENABLE(VIDEO) &amp;&amp; ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)

I thought you removed ENABLE(MEDIA_OVERLAY_PLAY_BUTTON) ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680178</commentid>
    <comment_count>9</comment_count>
      <attachid>154858</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-26 23:59:23 -0700</bug_when>
    <thetext>Created attachment 154858
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680180</commentid>
    <comment_count>10</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-27 00:02:12 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 154668 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=154668&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderThemeChromiumAndroid.cpp:92
&gt; &gt; +#if ENABLE(VIDEO) &amp;&amp; ENABLE(MEDIA_OVERLAY_PLAY_BUTTON)
&gt; 
&gt; I thought you removed ENABLE(MEDIA_OVERLAY_PLAY_BUTTON) ?

Sorry, missed it. 
Yes, ENABLE(MEDIA_OVERLAY_PLAY_BUTTON) was removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680187</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-27 00:17:35 -0700</bug_when>
    <thetext>Looks like your latest patch doesn&apos;t apply cleanly to top-of-tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680875</commentid>
    <comment_count>12</comment_count>
      <attachid>154998</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-27 11:39:52 -0700</bug_when>
    <thetext>Created attachment 154998
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680879</commentid>
    <comment_count>13</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-27 11:41:27 -0700</bug_when>
    <thetext>Rebased the patch to the top of the tree, resolved some of the conflicts there.

(In reply to comment #11)
&gt; Looks like your latest patch doesn&apos;t apply cleanly to top-of-tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680890</commentid>
    <comment_count>14</comment_count>
      <attachid>154998</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-27 11:52:02 -0700</bug_when>
    <thetext>Comment on attachment 154998
Patch

Thanks.  R+ based on my (limited) understanding of this code and Eric&apos;s Comment #5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680971</commentid>
    <comment_count>15</comment_count>
      <attachid>154998</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 12:38:52 -0700</bug_when>
    <thetext>Comment on attachment 154998
Patch

Clearing flags on attachment: 154998

Committed r123908: &lt;http://trac.webkit.org/changeset/123908&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680972</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 12:38:58 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681336</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-27 22:34:37 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 92572</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681338</commentid>
    <comment_count>18</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2012-07-27 22:46:04 -0700</bug_when>
    <thetext>This broke the Chromium-Linux canary compile.  Sample build log available at http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux%20%28dbg%29/builds/9510/steps/compile/logs/stdio .

The relevant info is:

out/Debug/../../third_party/gold/gold64: error: out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a(out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../webcore_html/third_party/WebKit/Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.o): multiple definition of &apos;WebCore::MediaControls::create(WebCore::Document*)&apos;
out/Debug/../../third_party/gold/gold64: out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a(out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../webcore_html/third_party/WebKit/Source/WebCore/html/shadow/MediaControlRootElementChromium.o): previous definition here

Looks to me like the newly-added MediaControlRootElementChromiumAndroid.cpp file is not getting properly excluded from the Linux build.

Rolling this out on bug 92572.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681372</commentid>
    <comment_count>19</comment_count>
      <attachid>155118</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-28 01:02:33 -0700</bug_when>
    <thetext>Created attachment 155118
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681373</commentid>
    <comment_count>20</comment_count>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-28 01:06:41 -0700</bug_when>
    <thetext>html/ happens to be one of the directory that *Android.cpp files are not excluded.  So that&apos;s why my android build works fine while the linux build is broken.

Updated the webcore.gyp file to exclude all the *Android.cpp files from html/ directory for non-android build.


(In reply to comment #18)
&gt; This broke the Chromium-Linux canary compile.  Sample build log available at http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux%20%28dbg%29/builds/9510/steps/compile/logs/stdio .
&gt; 
&gt; The relevant info is:
&gt; 
&gt; out/Debug/../../third_party/gold/gold64: error: out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a(out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../webcore_html/third_party/WebKit/Source/WebCore/html/shadow/MediaControlRootElementChromiumAndroid.o): multiple definition of &apos;WebCore::MediaControls::create(WebCore::Document*)&apos;
&gt; out/Debug/../../third_party/gold/gold64: out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/libwebcore_html.a(out/Debug/obj.target/third_party/WebKit/Source/WebCore/WebCore.gyp/../../../../../webcore_html/third_party/WebKit/Source/WebCore/html/shadow/MediaControlRootElementChromium.o): previous definition here
&gt; 
&gt; Looks to me like the newly-added MediaControlRootElementChromiumAndroid.cpp file is not getting properly excluded from the Linux build.
&gt; 
&gt; Rolling this out on bug 92572.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681374</commentid>
    <comment_count>21</comment_count>
      <attachid>155119</attachid>
    <who name="Min Qin">qinmin</who>
    <bug_when>2012-07-28 01:11:34 -0700</bug_when>
    <thetext>Created attachment 155119
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681456</commentid>
    <comment_count>22</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-28 11:46:50 -0700</bug_when>
    <thetext>@dpranke: This comments above explain the problems you were having with the component build too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681461</commentid>
    <comment_count>23</comment_count>
      <attachid>155119</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-28 12:24:09 -0700</bug_when>
    <thetext>Comment on attachment 155119
Patch

Clearing flags on attachment: 155119

Committed r123969: &lt;http://trac.webkit.org/changeset/123969&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>681462</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-28 12:24:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154087</attachid>
            <date>2012-07-24 09:46:31 -0700</date>
            <delta_ts>2012-07-25 14:53:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120724094623.patch</filename>
            <type>text/plain</type>
            <size>26577</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmZmNmYzA0MGQ4NjY5
MGI1MjgxNzY0NGYwN2Q3NjljNWU4Y2I4Zi4uZjYzYTZmZThhYjYwNzNhNDUwNWIwY2FkYzM2ZDlh
ODVhOGJkNDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA3LTI0ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMu
Y3NzOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRv
bik6CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzOgorICAg
ICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAo
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbik6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAo
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJs
YXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRN
ZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVU
eXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhT3Zl
cmxheVBsYXlCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5oOgorCiAyMDEyLTA3LTIzICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgUmVmLWNvdW50IEF0b21pY0hUTUxUb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZwppbmRleCA3ODg1Y2Q4MDZhZmUyNWY3YTY1ZDQwZjcxYjFlYjBiOWQ3MjQ5Y2U3
Li40YTNiZDY4YWJkN2NlYjM2YTJiMTY1ZmJlMjY3N2JiYThlMzcyZjU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEyLTA3LTI0ICBNaW4gUWluICA8cWlu
bWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5IGJ1dHRvbiB0
byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGluZyBhIGZsYWcgdG8gYmUgdXNlZCBieSBhbmRyb2lkIHRv
IGFkZCB0aGUgbWVkaWEgb3ZlcmxheSBwbGF5IGJ1dHRvbgorCisgICAgICAgICogZmVhdHVyZXMu
Z3lwaToKKwogMjAxMi0wNy0yMyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBQYXJ0IDIgb2Y6IEltcGxlbWVudCBzdGlja3kgcG9zaXRpb25pbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGE4
OGY0OWNkYWQ0ZDQxNDk1NmJmMWFkMGViNjVjYTE1YzVlYmYzODkuLmQ1MDI3NWJmMWQ0NWMxYTBh
OTI5OWQxZjhiMTAxMTQ1OTM4Y2QyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIHRlbXBsYXRlPD4gaW5s
aW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQog
ICAgICAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVNZWRpYVBsYXlCdXR0b247CiAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUu
aWRlbnQgPSBDU1NWYWx1ZU1lZGlhT3ZlcmxheVBsYXlCdXR0b247CisgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1
ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFNdXRlQnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDZlMGRiMjhmNzI2NzZkZjYy
Yjc2NjQ0NmYyNTEyODUzNjcyMjExYzguLmI2MzUwNzIyYjhmNzQyMjI2NDU4OTY0NDAzZmNhMjFh
MTdkMzdmOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC02NDQs
NiArNjQ0LDcgQEAgbWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyCiBtZWRpYS1mdWxsc2Ny
ZWVuLXZvbHVtZS1zbGlkZXItdGh1bWIKIG1lZGlhLW11dGUtYnV0dG9uCiBtZWRpYS1wbGF5LWJ1
dHRvbgorbWVkaWEtb3ZlcmxheS1wbGF5LWJ1dHRvbgogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbgog
bWVkaWEtc2Vlay1mb3J3YXJkLWJ1dHRvbgogbWVkaWEtcmV3aW5kLWJ1dHRvbgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHMuY3NzCmluZGV4IGRhMWU2YzgzMmVlYTA4YmJkMjM1OGRiMzhmMzdl
Y2RiMGY1MDllYTcuLmFmZTAyMDM1ZDQ5ZmM0MzFhOTMyYzFhZGIyZTM4YzNkODZmN2M0MWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MKQEAgLTgxLDYgKzgxLDE3IEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1tdXRlLWJ1CiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Vi
a2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5j
ZTogbWVkaWEtb3ZlcmxheS1wbGF5LWJ1dHRvbjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsK
KyAgICB3aWR0aDogMTZweDsKKyAgICBoZWlnaHQ6IDE2cHg7CisgICAgYmFja2dyb3VuZC1jb2xv
cjogaW5pdGlhbDsKKyAgICBib3JkZXI6IGluaXRpYWw7CisgICAgY29sb3I6IGluaGVyaXQ7Cit9
CisKKwogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjot
d2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lZGlhLXBsYXktYnV0dG9uOwogICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3Nz
IGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzCmlu
ZGV4IDIxYjY0N2MzODMxNDYxMWJhN2JlNzQ0OGZhYzFkNWU3OGFhYzA1ZjAuLjc4MGYwYjA0ZjUy
MzM0NmJlNWNkOWE1ODViZDhlM2Y3NDE3Njg3NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNzcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MKQEAgLTc1LDYgKzc1LDIyIEBA
IHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSB7CiAgICAgaGVpZ2h0OiAz
NXB4OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3Vy
ZSB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJv
bHMtb3ZlcmxheS1lbmNsb3N1cmUgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13
ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1wYWNrOmNlbnRl
cjsKKyAgICAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtZmxleDox
OworICAgIHdpZHRoOiAxMDAlOworICAgIG1heC13aWR0aDogODAwcHg7CisgICAgdGV4dC1pbmRl
bnQ6IDA7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKK30KKwogYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LW11dGUtYnV0dG9uIHsKICAgICBkaXNwbGF5OiBub25lOwogfQpAQCAtOTIsNiArMTA4LDIxIEBA
IGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1wbGF5LWJ1CiAgICAgcGFkZGluZzogMDsKIH0KIAorYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiB7CisgICAgZGlzcGxheTog
bm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1
dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jbGljay10by1wbGF5LWJ1dHRv
bjsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIGRpc3BsYXk6IGlubGluZTsK
KyAgICBib3JkZXI6IG5vbmU7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICB3aWR0
aDogMTAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKKyAgICBwYWRkaW5nOiAwOworfQorCiBhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCiBhdWRpbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDc0ZjY3ODhhMjNj
NGIwMTQ2NzgzMzdhMDUyMDgzNWYxOWQzOTQ2MjEuLjViOGRjZWE0ODMzYjk5NWZjNjk1OTQ4MDBk
MzFmOTQ3NGVjN2Q0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYwOCw2ICs2MDgsNDYgQEAgY29uc3QgQXRvbWlj
U3RyaW5nJiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBj
b25zdAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2lubGluZSBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVs
ZW1lbnQoZG9jdW1lbnQsIE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pCit7Cit9CisKK1Bhc3NSZWZQ
dHI8TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVy
bGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
UmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkp
OworICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOworICAgIGJ1dHRvbi0+c2V0VHlw
ZSgiYnV0dG9uIik7CisgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgTWVk
aWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xp
Y2tFdmVudCAmJiBtZWRpYUNvbnRyb2xsZXIoKS0+Y2FuUGxheSgpKSB7CisgICAgICAgIG1lZGlh
Q29udHJvbGxlcigpLT5wbGF5KCk7CisgICAgICAgIHVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAg
ICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0KKyAgICBIVE1MSW5wdXRFbGVt
ZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKK3sKKyAgICBpZiAo
bWVkaWFDb250cm9sbGVyKCktPmNhblBsYXkoKSkgeworICAgICAgICBzaG93KCk7CisgICAgICAg
IHNldERpc3BsYXlUeXBlKE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOworICAgIH0gZWxzZQorICAg
ICAgICBoaWRlKCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5F
X1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMt
b3ZlcmxheS1wbGF5LWJ1dHRvbiIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KKwogaW5saW5lIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVt
ZW50OjpNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQogICAgIDogTWVkaWFDb250cm9sSW5w
dXRFbGVtZW50KGRvY3VtZW50LCBkaXNwbGF5VHlwZSkKICAgICAsIG1fYWN0aW9uT25TdG9wKE5v
dGhpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaAppbmRleCBlZmRiMjFmMGRhYTAwZGQ3NjA1NDAwYzIzNTRhZjViN2JjNjcyYmQyLi45
OGViMjU2YzI4MDEyN2YwNDhjY2JjYjg3NmZjOWY0MDM3NmJiOTdlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTc0LDYgKzc0
LDcgQEAgZW51bSBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSB7CiAgICAgTWVkaWFUZXh0VHJhY2tE
aXNwbGF5Q29udGFpbmVyLAogICAgIE1lZGlhVGV4dFRyYWNrRGlzcGxheSwKICAgICBNZWRpYUV4
aXRGdWxsc2NyZWVuQnV0dG9uLAorICAgIE1lZGlhT3ZlcmxheVBsYXlCdXR0b24sCiB9OwogCiBI
VE1MTWVkaWFFbGVtZW50KiB0b1BhcmVudE1lZGlhRWxlbWVudChOb2RlKik7CkBAIC0yNzEsNiAr
MjcyLDIwIEBAIHByaXZhdGU6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAor
Y2xhc3MgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50IDogcHVibGljIE1lZGlh
Q29udHJvbElucHV0RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVk
aWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCk7CisKK3ByaXZhdGU6CisgICAgTWVkaWFDb250cm9s
T3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKK307CisKKy8vIC0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50
IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHAKaW5kZXggOWYwZThjNjJlMWQxNWI3MzE1ZmM1YjJlOTM5ZTBjZDdjNWMzOWM4Zi4uZWU0
ZWZjNjQ5ODA2OWQyM2E4YjQwMDEyYjRkN2ZkY2ViMTM4ZGU1NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bS5jcHAKQEAgLTU0LDE3ICs1NCw0MCBAQCBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bQog
ewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudD4g
TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRv
Y3VtZW50KQorTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250
cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KQogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7
CiB9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50Ojpj
cmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVk
aWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Cit9CisKK2NvbnN0IEF0
b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlk
LCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIikpOwogICAgIHJldHVybiBpZDsK
IH0KIAorI2lmIEVOQUJMRShNRURJQV9PVkVSTEFZX1BMQVlfQlVUVE9OKQorTWVkaWFDb250cm9s
T3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9z
dXJlRWxlbWVudChkb2N1bWVudCkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVy
bGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitjb25z
dCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFk
b3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJp
bmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiKSk7Cisg
ICAgcmV0dXJuIGlkOworfQorI2VuZGlmCisKIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW06Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgIDogTWVkaWFDb250cm9scyhkb2N1bWVudCkKICAgICAsIG1fbWVkaWFDb250cm9sbGVyKDAp
CkBAIC03Nyw2ICsxMDAsMTAgQEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KICAgICAsIG1fZnVs
bHNjcmVlbkJ1dHRvbigwKQogICAgICwgbV9wYW5lbCgwKQogICAgICwgbV9lbmNsb3N1cmUoMCkK
KyNpZiBFTkFCTEUoTUVESUFfT1ZFUkxBWV9QTEFZX0JVVFRPTikKKyAgICAsIG1fb3ZlcmxheVBs
YXlCdXR0b24oMCkKKyAgICAsIG1fb3ZlcmxheUVuY2xvc3VyZSgwKQorI2VuZGlmCiAjaWYgRU5B
QkxFKFZJREVPX1RSQUNLKQogICAgICwgbV90ZXh0RGlzcGxheUNvbnRhaW5lcigwKQogI2VuZGlm
CkBAIC05OSw3ICsxMjYsNyBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKGRvY3VtZW50KSk7CiAKICAgICAvLyBDcmVh
dGUgYW4gZW5jbG9zaW5nIGVsZW1lbnQgZm9yIHRoZSBwYW5lbCBzbyB3ZSBjYW4gdmlzdWFsbHkg
b2Zmc2V0IHRoZSBjb250cm9scyBjb3JyZWN0bHkuCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudD4gZW5jbG9zdXJlID0gTWVkaWFDb250cm9sQ2hyb21pdW1F
bmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVkaWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQpOwogCkBAIC0xNTQsNiArMTgxLDIwIEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3Jl
CiAgICAgaWYgKGVjKQogICAgICAgICByZXR1cm4gMDsKIAorI2lmIEVOQUJMRShNRURJQV9PVkVS
TEFZX1BMQVlfQlVUVE9OKQorICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudD4gb3ZlcmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5
UGxheUJ1dHRvbkVsZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0gTWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX292
ZXJsYXlQbGF5QnV0dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0KCk7CisgICAgb3ZlcmxheUVu
Y2xvc3VyZS0+YXBwZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX292
ZXJsYXlFbmNsb3N1cmUgPSBvdmVybGF5RW5jbG9zdXJlLmdldCgpOworICAgIGNvbnRyb2xzLT5h
cHBlbmRDaGlsZChvdmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlm
IChlYykKKyAgICAgICAgcmV0dXJuIDA7CisjZW5kaWYKKwogICAgIGNvbnRyb2xzLT5tX2VuY2xv
c3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKICAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQoZW5jbG9z
dXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKQEAgLTE5MCw2ICsyMzEsMTMg
QEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xs
ZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWMKICAgICBpZiAobV90ZXh0RGlzcGxheUNvbnRhaW5l
cikKICAgICAgICAgbV90ZXh0RGlzcGxheUNvbnRhaW5lci0+c2V0TWVkaWFDb250cm9sbGVyKGNv
bnRyb2xsZXIpOwogI2VuZGlmCisjaWYgRU5BQkxFKE1FRElBX09WRVJMQVlfUExBWV9CVVRUT04p
CisgICAgaWYgKG1fb3ZlcmxheVBsYXlCdXR0b24pCisgICAgICAgIG1fb3ZlcmxheVBsYXlCdXR0
b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKKyAgICBpZiAobV9vdmVybGF5RW5j
bG9zdXJlKQorICAgICAgICBtX292ZXJsYXlFbmNsb3N1cmUtPnNldE1lZGlhQ29udHJvbGxlcihj
b250cm9sbGVyKTsKKyNlbmRpZgorCiAgICAgcmVzZXQoKTsKIH0KIApAQCAtMjU0LDYgKzMwMiw5
IEBAIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cmVzZXQoKQogdm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQoKQogewogICAg
IG1fcGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKKyNpZiBFTkFCTEUoTUVESUFfT1ZF
UkxBWV9QTEFZX0JVVFRPTikKKyAgICBtX292ZXJsYXlQbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5
VHlwZSgpOworI2VuZGlmCiAgICAgbV90aW1lbGluZS0+c2V0UG9zaXRpb24obV9tZWRpYUNvbnRy
b2xsZXItPmN1cnJlbnRUaW1lKCkpOwogICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5zaG93KCk7
CiAgICAgbV9kdXJhdGlvbkRpc3BsYXktPmhpZGUoKTsKQEAgLTI3NSw2ICszMjYsOSBAQCB2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrUHJvZ3Jlc3NlZCgpCiB2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCgpCiB7
CiAgICAgbV9wbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOworI2lmIEVOQUJMRShNRURJ
QV9PVkVSTEFZX1BMQVlfQlVUVE9OKQorICAgIG1fb3ZlcmxheVBsYXlCdXR0b24tPnVwZGF0ZURp
c3BsYXlUeXBlKCk7CisjZW5kaWYKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlh
Q29udHJvbGxlci0+Y3VycmVudFRpbWUoKSk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKICAg
ICBtYWtlT3BhcXVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKaW5kZXggMmZiNGMzY2ZlOWUz
YTQ5ZmYzMWVmNTMwYTY4NzBlNjVlNzA2NDEyYi4uYjE5ODQ2MmM5NWZjODhkM2M4MGY2MTRhYmVl
YTM0MjJhNGExNGI3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaApAQCAtNTMsNiArNTMsMTAg
QEAgY2xhc3MgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OwogY2xhc3MgTWVk
aWFDb250cm9sbGVySW50ZXJmYWNlOwogY2xhc3MgTWVkaWFQbGF5ZXI7CiAKKyNpZiBFTkFCTEUo
TUVESUFfT1ZFUkxBWV9QTEFZX0JVVFRPTikKK2NsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5
QnV0dG9uRWxlbWVudDsKKyNlbmRpZgorCiBjbGFzcyBSZW5kZXJCb3g7CiBjbGFzcyBSZW5kZXJN
ZWRpYTsKIApAQCAtNjMsMTAgKzY3LDYgQEAgY2xhc3MgTWVkaWFDb250cm9sVGV4dFRyYWNrRGlz
cGxheUVsZW1lbnQ7CiAKIGNsYXNzIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVu
dCA6IHB1YmxpYyBIVE1MRGl2RWxlbWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQq
KTsKLQotICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNv
bnN0OwotCiAgICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlKiBjb250cm9sbGVyKSB7IG1fbWVkaWFDb250cm9sbGVyID0gY29udHJvbGxlcjsgfQogICAg
IE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbWVkaWFDb250cm9sbGVyKCkgY29uc3QgeyByZXR1
cm4gbV9tZWRpYUNvbnRyb2xsZXI7IH0KIApAQCAtNzUsMTAgKzc1LDI5IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgaXNNZWRpYUNvbnRyb2xFbGVtZW50KCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtX21l
ZGlhQ29udHJvbGxlcjsKIH07CiAKK2NsYXNzIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxl
bWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcm
IHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CisKK3ByaXZhdGU6CisgICAgTWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7Cit9OworCisjaWYgRU5BQkxFKE1FRElBX09W
RVJMQVlfUExBWV9CVVRUT04pCitjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxl
bWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQgeworcHVi
bGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBNZWRpYUNvbnRyb2xP
dmVybGF5RW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOworfTsKKyNlbmRpZgorCiBjbGFzcyBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtIDogcHVibGljIE1lZGlhQ29udHJvbHMgewog
cHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0+IGNyZWF0ZShEb2N1bWVudCopOwpAQCAtMTQ0LDcgKzE2MywxMiBAQCBwcml2YXRlOgog
ICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQqIG1fdm9sdW1lU2xpZGVyOwogICAg
IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50KiBtX2Z1bGxzY3JlZW5CdXR0b247
CiAgICAgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50KiBtX3BhbmVsOwotICAgIE1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudCogbV9lbmNsb3N1cmU7CisgICAgTWVkaWFDb250cm9s
UGFuZWxFbmNsb3N1cmVFbGVtZW50KiBtX2VuY2xvc3VyZTsKKyNpZiBFTkFCTEUoTUVESUFfT1ZF
UkxBWV9QTEFZX0JVVFRPTikKKyAgICBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQqIG1fb3ZlcmxheVBsYXlCdXR0b247CisgICAgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3Vy
ZUVsZW1lbnQqIG1fb3ZlcmxheUVuY2xvc3VyZTsKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFZJREVP
X1RSQUNLKQogICAgIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQqIG1fdGV4
dERpc3BsYXlDb250YWluZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMu
aAppbmRleCAxMjA4YTlhMmVlNTY2MzA4ZGNiMjRiZDIyMzhlMDdmZDRlMDA1NjY4Li44ZWY2YjIz
NzU0ZmUwYjFhNjM0N2Q1YmM4MmM0NzcyZjExODU5OGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
VGhlbWVUeXBlcy5oCkBAIC00OCw4ICs0OCw4IEBAIHR5cGVkZWYgdW5zaWduZWQgQ29udHJvbFN0
YXRlczsKIGVudW0gQ29udHJvbFBhcnQgewogICAgIE5vQ29udHJvbFBhcnQsIENoZWNrYm94UGFy
dCwgUmFkaW9QYXJ0LCBQdXNoQnV0dG9uUGFydCwgU3F1YXJlQnV0dG9uUGFydCwgQnV0dG9uUGFy
dCwKICAgICBCdXR0b25CZXZlbFBhcnQsIERlZmF1bHRCdXR0b25QYXJ0LCBJbm5lclNwaW5CdXR0
b25QYXJ0LCBJbnB1dFNwZWVjaEJ1dHRvblBhcnQsIExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQs
Ci0gICAgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0LCBNZWRpYUV4aXRGdWxsc2NyZWVu
QnV0dG9uUGFydCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCwgTWVkaWFGdWxsU2Ny
ZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYU11dGVCdXR0b25QYXJ0LCBNZWRpYVBsYXlC
dXR0b25QYXJ0LCBNZWRpYVNlZWtCYWNrQnV0dG9uUGFydCwgCi0gICAgTWVkaWFTZWVrRm9yd2Fy
ZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5kQnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1l
QnV0dG9uUGFydCwgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCisgICAgTWVk
aWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0LCBNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uUGFy
dCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyUGFydCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1l
U2xpZGVyVGh1bWJQYXJ0LCBNZWRpYU11dGVCdXR0b25QYXJ0LCBNZWRpYVBsYXlCdXR0b25QYXJ0
LAorICAgIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0LCBNZWRpYVNlZWtCYWNrQnV0dG9uUGFy
dCwgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5kQnV0dG9uUGFydCwgTWVk
aWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydCwgTWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1
dHRvblBhcnQsCiAgICAgTWVkaWFTbGlkZXJQYXJ0LCBNZWRpYVNsaWRlclRodW1iUGFydCwgTWVk
aWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclBhcnQsIE1lZGlh
Vm9sdW1lU2xpZGVyVGh1bWJQYXJ0LAogICAgIE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBh
cnQsIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFydCwgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5C
YWNrZ3JvdW5kUGFydCwgTWVkaWFDdXJyZW50VGltZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1Bh
cnQsCiAgICAgTWVudWxpc3RQYXJ0LCBNZW51bGlzdEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBh
cnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgTWV0ZXJQYXJ0LCBQcm9ncmVzc0JhclBhcnQsIFBy
b2dyZXNzQmFyVmFsdWVQYXJ0LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAppbmRleCBlZmEwNTE4NmQ5YzM4YmUw
ZTI5ODNiODM3NzNkNWYwNTc4ZmJiYTAwLi5lNzBhMjNlYzk2ODkzNmQ0YTAwMzliOWVkODQyYzZh
MWQyYjk0NDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApAQCAtMTExLDYgKzExMSwyMSBAQCBzdGF0aWMg
Ym9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFp
bnRJbmZvJiBwYWludEluZgogICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5j
b250ZXh0LCByZWN0LCBtZWRpYUVsZW1lbnQtPmNhblBsYXkoKSA/IG1lZGlhUGxheSA6IG1lZGlh
UGF1c2UpOwogfQogCisjaWYgRU5BQkxFKE1FRElBX09WRVJMQVlfUExBWV9CVVRUT04pCitzdGF0
aWMgYm9vbCBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAg
IEhUTUxNZWRpYUVsZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KG9i
amVjdCk7CisgICAgaWYgKCFtZWRpYUVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGlmICghaGFzU291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxlbWVudC0+Y2FuUGxh
eSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhT3Zl
cmxheVBsYXkgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllck92ZXJsYXlQbGF5Iik7Cisg
ICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlh
T3ZlcmxheVBsYXkpOworfQorI2VuZGlmCisKIHN0YXRpYyBJbWFnZSogZ2V0TWVkaWFTbGlkZXJU
aHVtYigpCiB7CiAgICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxhdGZvcm1S
ZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlkZXJUaHVtYiIpOwpAQCAtMzM4LDYgKzM1MywxMCBAQCBi
b29sIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChN
ZWRpYUNvbnRyb2xFbGVtZW50VHlwZQogICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0
b246CiAgICAgY2FzZSBNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uOgogICAgICAgICByZXR1cm4g
cGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24ob2JqZWN0LCBwYWludEluZm8sIHJlY3QpOworICAg
IGNhc2UgTWVkaWFPdmVybGF5UGxheUJ1dHRvbjoKKyNpZiBFTkFCTEUoTUVESUFfT1ZFUkxBWV9Q
TEFZX0JVVFRPTikKKyAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihv
YmplY3QsIHBhaW50SW5mbywgcmVjdCk7CisjZW5kaWYKICAgICBjYXNlIE1lZGlhVm9sdW1lU2xp
ZGVyTXV0ZUJ1dHRvbjoKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0b246CiAgICAgY2FzZSBN
ZWRpYVNlZWtGb3J3YXJkQnV0dG9uOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5jcHAKaW5kZXggZjg5NjczMjM3ZDY2MWNhNWYzMjNhYzBkYTI0MjAzYWE5NjIwZDQ1My4uZjE2
NjE3MjJlNzMzNjgwMzRjNzZmNmQ2ZGJlZDc2NzFiODM3ZmY5MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0zMjksNiArMzI5LDggQEAgYm9vbCBSZW5kZXJU
aGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UmUKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhRnVsbHNjcmVlbkJ1dHRv
bihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhUGxheUJ1dHRvblBhcnQ6CiAg
ICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVBsYXlCdXR0b24obywgcGFpbnRJbmZvLCByKTsK
KyAgICAgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFydDoKKyAgICAgICAgICAgIHJl
dHVybiBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24obywgcGFpbnRJbmZvLCByKTsKICAgICAg
ICAgY2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgogICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVk
aWFNdXRlQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVkaWFTZWVrQmFj
a0J1dHRvblBhcnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDYy
OTgzNGJjODBlZmQyNGU3ZTFhMjMwYWU5YmFhNzUyNWQ5MWI4NmQuLjNkMzk3NjI2NmJmNWE3YTcw
YTI0NGQwNTk0ZWQyYzYwMjUyOGUxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCkBAIC0zMTgsNiArMzE4LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBh
ZGp1c3RNZWRpYUNvbnRyb2xTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVt
ZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9u
KFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9i
amVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9
CisgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lZGlhU2Vla0JhY2tCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFp
bnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRNZWRpYVNlZWtGb3J3YXJkQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcAppbmRl
eCA1NDA0ZTQ3ZjgyZjRkM2U3MGZhOTZkMzgxNTU0NmE4YTUzYzFiNGJiLi4yOTE2MWUxYjJkYTEx
OWZlMjBhZWJjNTI1ZTRmNjg5YWE0YjZhNTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKQEAgLTg3LDYgKzg3
LDE4IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmFkanVzdElubmVyU3BpbkJ1
dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kCiAgICAgfQogfQogCitib29sIFJlbmRlclRo
ZW1lQ2hyb21pdW1BbmRyb2lkOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24oUmVuZGVyT2Jq
ZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiBy
ZWN0KQoreworI2lmIEVOQUJMRShWSURFTykgJiYgRU5BQkxFKE1FRElBX09WRVJMQVlfUExBWV9C
VVRUT04pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6cGFpbnRNZWRp
YUNvbnRyb2xzUGFydChNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLCBvYmplY3QsIHBhaW50SW5mbywg
cmVjdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVOVVNFRF9QQVJB
TShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKyAgICByZXR1cm4gZmFsc2U7
CisjZW5kaWYKK30KKwogaW50IFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjptZW51TGlzdEFy
cm93UGFkZGluZygpIGNvbnN0CiB7CiAgICAgLy8gV2UgY2Fubm90IHVzZSB0aGUgc2Nyb2xsYmFy
IHRoaWNrbmVzcyBoZXJlLCBhcyBpdCdzIHdpZHRoIGlzIDAgb24gQW5kcm9pZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgK
aW5kZXggYzNlNGI4YmVkMWFmODk3NWJmMmM0NjQ4ODVkYTMyMTExZDllNmY4NC4uMDI3NjI4ZTgx
YWUxMmNmMWZiNzhkMTQyMWQxM2NhMDFjZjYyOTkwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKQEAgLTQxLDYgKzQx
LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRlbGVnYXRlc01lbnVMaXN0UmVuZGVy
aW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludElu
Zm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAg
dmlydHVhbCBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIE9WRVJSSURFOwog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL2ZlYXR1cmVzLmd5cGkKaW5kZXggMzQzMjM0MmE5ODFj
N2VmYzk2ZTllYjM3MDFmMGZmNmE5NmE0NGJiNy4uMGE3Y2IxODJiODhiZGNhYmRkODU2ZTE1YWYw
NDc1NGYwYTZkN2UzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9mZWF0dXJl
cy5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vZmVhdHVyZXMuZ3lwaQpAQCAtMTUy
LDYgKzE1Miw3IEBACiAgICAgICAgICAgJ0VOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUz0wJywK
ICAgICAgICAgICAnRU5BQkxFX01FRElBX0NBUFRVUkU9MScsCiAgICAgICAgICAgJ0VOQUJMRV9N
RURJQV9TVFJFQU09MCcsCisgICAgICAgICAgJ0VOQUJMRV9NRURJQV9PVkVSTEFZX1BMQVlfQlVU
VE9OPTEnLAogICAgICAgICAgICdFTkFCTEVfTk9USUZJQ0FUSU9OUz0wJywKICAgICAgICAgICAn
RU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUz0xJywKICAgICAgICAgICAnRU5BQkxFX09WRVJGTE9X
X1NDUk9MTElORz0xJywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154452</attachid>
            <date>2012-07-25 14:53:56 -0700</date>
            <delta_ts>2012-07-26 09:27:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120725145346.patch</filename>
            <type>text/plain</type>
            <size>34555</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmZmNmYzA0MGQ4NjY5
MGI1MjgxNzY0NGYwN2Q3NjljNWU4Y2I4Zi4uZjYzYTZmZThhYjYwNzNhNDUwNWIwY2FkYzM2ZDlh
ODVhOGJkNDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA3LTI0ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMu
Y3NzOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRv
bik6CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzOgorICAg
ICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAo
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbik6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAo
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJs
YXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRN
ZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVU
eXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhT3Zl
cmxheVBsYXlCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5oOgorCiAyMDEyLTA3LTIzICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgUmVmLWNvdW50IEF0b21pY0hUTUxUb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGJlZGQ0NDA0MGU4ZjZlMmFjZDIxYzU5MjBhZjFjOTgzYzZhMjFlYjQuLjA1OTY1YmE2
ZjVmNWY1MjczN2UwZWIxODJjOTJhYmNhNjk0MjA1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU3
MjMsNiArNTcyMyw4IEBACiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oJywKICAgICAgICAg
ICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhODhmNDljZGFkNGQ0MTQ5NTZiZjFhZDBl
YjY1Y2ExNWM1ZWJmMzg5Li5kNTAyNzViZjFkNDVjMWEwYTkyOTlkMWY4YjEwMTE0NTkzOGNkMjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
QEAgLTM4Myw2ICszODMsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBNZWRpYVBsYXlC
dXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFQbGF5
QnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFPdmVybGF5UGxh
eUJ1dHRvblBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYU92
ZXJsYXlQbGF5QnV0dG9uOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFN
dXRlQnV0dG9uUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlh
TXV0ZUJ1dHRvbjsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCA2ZTBkYjI4ZjcyNjc2ZGY2MmI3NjY0NDZmMjUxMjg1MzY3MjIxMWM4
Li5iNjM1MDcyMmI4Zjc0MjIyNjQ1ODk2NDQwM2ZjYTIxYTE3ZDM3ZjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNjQ0LDYgKzY0NCw3IEBAIG1lZGlhLWZ1bGxz
Y3JlZW4tdm9sdW1lLXNsaWRlcgogbWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyLXRodW1i
CiBtZWRpYS1tdXRlLWJ1dHRvbgogbWVkaWEtcGxheS1idXR0b24KK21lZGlhLW92ZXJsYXktcGxh
eS1idXR0b24KIG1lZGlhLXNlZWstYmFjay1idXR0b24KIG1lZGlhLXNlZWstZm9yd2FyZC1idXR0
b24KIG1lZGlhLXJld2luZC1idXR0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpp
bmRleCBkYTFlNmM4MzJlZWEwOGJiZDIzNThkYjM4ZjM3ZWNkYjBmNTA5ZWE3Li45ZDgyMjFlNDdm
YzVhOTFjM2FlNTZmYzAyYWI0YWIzZGY4OWM2MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHMuY3NzCkBAIC04MSw2ICs4MSwxMCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idQogICAg
IGNvbG9yOiBpbmhlcml0OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBs
YXktYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CiAg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MKaW5kZXggMjFiNjQ3YzM4MzE0NjExYmE3YmU3
NDQ4ZmFjMWQ1ZTc4YWFjMDVmMC4uMGJlNTliYzgzNWJiODEwMzlmYTNmMmRjNmQ5YjU1OTM1N2Zk
ZDA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1
bUFuZHJvaWQuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21p
dW1BbmRyb2lkLmNzcwpAQCAtNzUsNiArNzUsMjIgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZW5jbG9zdXJlIHsKICAgICBoZWlnaHQ6IDM1cHg7CiB9CiAKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIHsKKyAgICBkaXNwbGF5OiBub25lOwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSB7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9u
dGFsOworICAgIC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOworICAgIC13ZWJraXQtYm94LWFsaWdu
OmNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1mbGV4OjE7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
bWF4LXdpZHRoOiA4MDBweDsKKyAgICB0ZXh0LWluZGVudDogMDsKKyAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIGRpc3Bs
YXk6IG5vbmU7CiB9CkBAIC05Miw2ICsxMDgsMjIgQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnUK
ICAgICBwYWRkaW5nOiAwOwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtp
dC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVh
cmFuY2U6IG1lZGlhLW92ZXJsYXktcGxheS1idXR0b247CisgICAgLXdlYmtpdC1ib3gtYWxpZ246
IGNlbnRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICBib3JkZXI6IG5vbmU7Cisg
ICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3Bh
cmVudDsKKyAgICB3aWR0aDogODBweDsKKyAgICBoZWlnaHQ6IDgwcHg7CisgICAgcGFkZGluZzog
MDsKK30KKwogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3Bs
YXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LAog
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlk
ZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CiAgICAg
LXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRl
eCA3NGY2Nzg4YTIzYzRiMDE0Njc4MzM3YTA1MjA4MzVmMTlkMzk0NjIxLi41YjhkY2VhNDgzM2I5
OTVmYzY5NTk0ODAwZDMxZjk0NzRlYzdkNDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC02MDgsNiArNjA4LDQ2IEBA
IGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRv
d1BzZXVkb0lkKCkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitp
bmxpbmUgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFD
b250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKQorewor
fQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gTWVk
aWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3Vt
ZW50KQoreworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+
IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKKyAgICBi
dXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOworICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOwor
fQorCit2b2lkIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLmNsaWNrRXZlbnQgJiYgbWVkaWFDb250cm9sbGVyKCktPmNhblBsYXkoKSkgewor
ICAgICAgICBtZWRpYUNvbnRyb2xsZXIoKS0+cGxheSgpOworICAgICAgICB1cGRhdGVEaXNwbGF5
VHlwZSgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9CisgICAg
SFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQg
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgp
Cit7CisgICAgaWYgKG1lZGlhQ29udHJvbGxlcigpLT5jYW5QbGF5KCkpIHsKKyAgICAgICAgc2hv
dygpOworICAgICAgICBzZXREaXNwbGF5VHlwZShNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKTsKKyAg
ICB9IGVsc2UKKyAgICAgICAgaGlkZSgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlh
Q29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAor
eworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iKSk7CisgICAgcmV0dXJuIGlkOworfQor
CisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGlubGluZSBNZWRpYUNvbnRyb2xT
ZWVrQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKICAgICA6IE1l
ZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAgLCBtX2Fj
dGlvbk9uU3RvcChOb3RoaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZWZkYjIxZjBkYWEwMGRkNzYwNTQwMGMyMzU0YWY1
YjdiYzY3MmJkMi4uYzE1MTRlMjMxN2QwYjg5NDllZTgwMTFjOWM3MGIwOTFjOWMwODI5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5o
CkBAIC03NCw2ICs3NCw3IEBAIGVudW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewogICAgIE1l
ZGlhVGV4dFRyYWNrRGlzcGxheUNvbnRhaW5lciwKICAgICBNZWRpYVRleHRUcmFja0Rpc3BsYXks
CiAgICAgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbiwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0
dG9uLAogfTsKIAogSFRNTE1lZGlhRWxlbWVudCogdG9QYXJlbnRNZWRpYUVsZW1lbnQoTm9kZSop
OwpAQCAtMjcxLDYgKzI3MiwyMCBAQCBwcml2YXRlOgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCA6
IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERv
Y3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCop
OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOworCitwcml2YXRlOgorICAg
IGV4cGxpY2l0IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCop
OworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29u
c3Q7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBjbGFzcyBNZWRpYUNv
bnRyb2xTZWVrQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQg
ewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IDlmMGU4YzYyZTFkMTViNzMxNWZjNWIy
ZTkzOWUwY2Q3YzVjMzljOGYuLjljODQ0MDkwODYzOWVkODk2NDgwYTY4MTE5ODNmYjVmMjBmZGVh
MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC01NCwxMiArNTQsMTcgQEAgTWVk
aWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVu
Y2xvc3VyZUVsZW1lbnQoRG9jdW0KIHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJv
bWl1bUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVu
dDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK01lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJl
RWxlbWVudDo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVu
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9z
dXJlRWxlbWVudChkb2N1bWVudCkpOwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFBh
bmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChkb2N1
bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9z
dXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3Vy
ZSIpKTsKICAgICByZXR1cm4gaWQ7CkBAIC04NiwxMCArOTEsMTMgQEAgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVu
dCogZG9jdW0KIHsKIH0KIAorLy8gTWVkaWFDb250cm9sczo6Y3JlYXRlKCkgZm9yIEFuZHJvaWQg
aXMgZGVmaW5lZCBpbiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAu
CisjaWYgIU9TKEFORFJPSUQpCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJv
bHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZShkb2N1bWVudCk7CiB9CisjZW5kaWYKIAogUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewpAQCAtOTgsNjgg
KzEwNiw3NiBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQpKTsKIAorICAgIGlmIChjb250cm9scy0+
aW5pdGlhbGl6ZUNvbnRyb2xzKGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xzLnJl
bGVhc2UoKTsKKworICAgIHJldHVybiAwOworfQorCitib29sIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCit7CiAg
ICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2Fu
IHZpc3VhbGx5IG9mZnNldCB0aGUgY29udHJvbHMgY29ycmVjdGx5LgotICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJv
bENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWZQdHI8
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRy
b2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBSZWZQdHI8
TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVu
dDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRy
b2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9w
bGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKKyAgICBtX3BsYXlCdXR0b24gPSBwbGF5QnV0
dG9uLmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVs
aW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRy
b2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwor
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFD
b250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fdGlt
ZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUu
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1l
RGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fY3Vy
cmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGNvbnRyb2xz
LT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5
ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5o
aWRlKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3Bs
YXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlz
cGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZHVyYXRpb25E
aXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOworICAgIG1fZHVyYXRpb25EaXNwbGF5ID0g
ZHVyYXRpb25EaXNwbGF5LmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRp
c3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0
ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNv
bnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9u
ID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0
aGlzKTsKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAg
ICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNv
bnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICBjb250cm9scy0+bV92
b2x1bWVTbGlkZXItPnNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAgICBt
X3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Q2xl
YXJNdXRlZE9uVXNlckludGVyYWN0aW9uKHRydWUpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChz
bGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxz
Y3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNj
cmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAg
IGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgpOwor
ICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNjcmVl
bkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQsIHRoaXMpOworICAgIG1fZnVsbHNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24u
Z2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBt
X3BhbmVsID0gcGFuZWwuZ2V0KCk7CiAgICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5lbC5y
ZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250cm9scy0+bV9lbmNsb3N1cmUgPSBlbmNsb3N1
cmUuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCks
IGVjLCB0cnVlKTsKKyAgICBtX2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKKyAgICBhcHBl
bmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAg
ICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvbnRy
b2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlKiBjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IDJmYjRjM2Nm
ZTllM2E0OWZmMzFlZjUzMGE2ODcwZTY1ZTcwNjQxMmIuLjMzNDU0ZDJkYWRjMzY5N2U0MDUzZjg3
OTEzYzk4NmYyYzBkMjE4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKQEAgLTYzLDI4ICs2
MywzMiBAQCBjbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudDsKIAogY2xh
c3MgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50IDogcHVibGljIEhUTUxEaXZF
bGVtZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJv
bWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBj
b25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNl
dE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpIHsg
bV9tZWRpYUNvbnRyb2xsZXIgPSBjb250cm9sbGVyOyB9CiAgICAgTWVkaWFDb250cm9sbGVySW50
ZXJmYWNlKiBtZWRpYUNvbnRyb2xsZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbGxl
cjsgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVt
ZW50KERvY3VtZW50Kik7CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1
cmVFbGVtZW50KERvY3VtZW50Kik7CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVk
aWFDb250cm9sRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KLQogICAgIE1lZGlhQ29u
dHJvbGxlckludGVyZmFjZSogbV9tZWRpYUNvbnRyb2xsZXI7CiB9OwogCitjbGFzcyBNZWRpYUNv
bnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sQ2hyb21pdW1F
bmNsb3N1cmVFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZpcnR1
YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2YXRl
OgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVu
dCopOworfTsKKwogY2xhc3MgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSA6IHB1Ymxp
YyBNZWRpYUNvbnRyb2xzIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtPiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIC8vIE1l
ZGlhQ29udHJvbHMgaW1wbGVtZW50YXRpb24uCi0gICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIo
TWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CisgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29u
dHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqKTsKIAogICAgIHZvaWQgc2hvdygpOwog
ICAgIHZvaWQgaGlkZSgpOwpAQCAtOTMsOSArOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJl
c2V0KCk7CiAKLSAgICB2b2lkIHBsYXliYWNrUHJvZ3Jlc3NlZCgpOwotICAgIHZvaWQgcGxheWJh
Y2tTdGFydGVkKCk7Ci0gICAgdm9pZCBwbGF5YmFja1N0b3BwZWQoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgcGxheWJhY2tQcm9ncmVzc2VkKCk7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRl
ZCgpOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0b3BwZWQoKTsKIAogICAgIHZvaWQgY2hh
bmdlZE11dGUoKTsKICAgICB2b2lkIGNoYW5nZWRWb2x1bWUoKTsKQEAgLTEyMiw5ICsxMjYsMTMg
QEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZEhpZGVDb250cm9scygpOwogCi1w
cml2YXRlOgotICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqKTsK
K3Byb3RlY3RlZDoKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
KERvY3VtZW50Kik7CisgCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIG90aGVy
d2lzZSByZXR1cm4gZmFsc2UuCisgICAgYm9vbCBpbml0aWFsaXplQ29udHJvbHMoRG9jdW1lbnQq
KTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVu
dCopOwogICAgIHZvaWQgaGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQoVGltZXI8TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4qKTsKICAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxz
Y3JlZW5Db250cm9sc1RpbWVyKCk7CkBAIC0xNDQsNyArMTUyLDggQEAgcHJpdmF0ZToKICAgICBN
ZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRp
YUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCogbV9mdWxsc2NyZWVuQnV0dG9uOwogICAg
IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCogbV9wYW5lbDsKLSAgICBNZWRpYUNvbnRyb2xDaHJv
bWl1bUVuY2xvc3VyZUVsZW1lbnQqIG1fZW5jbG9zdXJlOworICAgIE1lZGlhQ29udHJvbFBhbmVs
RW5jbG9zdXJlRWxlbWVudCogbV9lbmNsb3N1cmU7CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
CiAgICAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVudCogbV90ZXh0RGlzcGxh
eUNvbnRhaW5lcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQ1NjM0YTg0NzZkZThlNGM3OGYwM2M4NTkzODUwMjU2MmFkZmZlMzIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAi
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaCIKKworI2luY2x1ZGUgIk1l
ZGlhQ29udHJvbEVsZW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFDb250
cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbENocm9taXVtRW5j
bG9zdXJlRWxlbWVudChkb2N1bWVudCkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xP
dmVybGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1l
bnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50Ojpz
aGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNT
dHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiKSk7
CisgICAgcmV0dXJuIGlkOworfQorCitNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5k
cm9pZDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoRG9jdW1lbnQqIGRv
Y3VtZW50KQorICAgIDogTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShkb2N1bWVudCkK
KyAgICAsIG1fb3ZlcmxheVBsYXlCdXR0b24oMCkKKyAgICAsIG1fb3ZlcmxheUVuY2xvc3VyZSgw
KQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0
ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW1BbmRyb2lkOjpjcmVhdGUoZG9jdW1lbnQpOworfQorCitQYXNzUmVmUHRyPE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkPiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBp
ZiAoIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkPiBjb250cm9scyA9IGFkb3B0UmVm
KG5ldyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZChkb2N1bWVudCkpOwor
CisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5
RW5jbG9zdXJlRWxlbWVudD4gb3ZlcmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0gTWVkaWFDb250
cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRy
b2xzLT5tX292ZXJsYXlQbGF5QnV0dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0KCk7CisgICAg
b3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgp
LCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnRy
b2xzLT5tX292ZXJsYXlFbmNsb3N1cmUgPSBvdmVybGF5RW5jbG9zdXJlLmdldCgpOworICAgIGNv
bnRyb2xzLT5hcHBlbmRDaGlsZChvdmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUp
OworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBpZiAoY29udHJvbHMtPmlu
aXRpYWxpemVDb250cm9scyhkb2N1bWVudCkpCisgICAgICAgIHJldHVybiBjb250cm9scy5yZWxl
YXNlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVy
ZmFjZSogY29udHJvbGxlcikKK3sKKyAgICBpZiAobV9vdmVybGF5UGxheUJ1dHRvbikKKyAgICAg
ICAgbV9vdmVybGF5UGxheUJ1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOwor
ICAgIGlmIChtX292ZXJsYXlFbmNsb3N1cmUpCisgICAgICAgIG1fb3ZlcmxheUVuY2xvc3VyZS0+
c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVkKCkK
K3sKKyAgICBtX292ZXJsYXlQbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOworICAgIE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RhcnRlZCgpOworfQorCit2
b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpwbGF5YmFja1N0b3Bw
ZWQoKQoreworICAgIG1fb3ZlcmxheVBsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7Cisg
ICAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdG9wcGVkKCk7Cit9
CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4zMmU3MDJiNThhMDdjNjkyZDZjMGFkMmE0MzlkZGMzMmU2ZGY2ZDNmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZF9oCisjZGVmaW5lIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkX2gKKworI2lmIEVOQUJMRShWSURFTykK
KworI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQ7CisKK2NsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50IDogcHVibGlj
IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0
ZShEb2N1bWVudCopOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1
ZG9JZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbE92ZXJs
YXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7Cit9OworCitjbGFzcyBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtQW5kcm9pZD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOwor
ICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxh
eWJhY2tTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoRG9jdW1lbnQqKTsKKworICAgIE1lZGlhQ29udHJvbE92
ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCogbV9vdmVybGF5UGxheUJ1dHRvbjsKKyAgICBNZWRpYUNv
bnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCogbV9vdmVybGF5RW5jbG9zdXJlOworfTsKKwor
fQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9UaGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKaW5k
ZXggMTIwOGE5YTJlZTU2NjMwOGRjYjI0YmQyMjM4ZTA3ZmQ0ZTAwNTY2OC4uOGVmNmIyMzc1NGZl
MGIxYTYzNDdkNWJjODJjNDc3MmYxMTg1OThlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1l
VHlwZXMuaApAQCAtNDgsOCArNDgsOCBAQCB0eXBlZGVmIHVuc2lnbmVkIENvbnRyb2xTdGF0ZXM7
CiBlbnVtIENvbnRyb2xQYXJ0IHsKICAgICBOb0NvbnRyb2xQYXJ0LCBDaGVja2JveFBhcnQsIFJh
ZGlvUGFydCwgUHVzaEJ1dHRvblBhcnQsIFNxdWFyZUJ1dHRvblBhcnQsIEJ1dHRvblBhcnQsCiAg
ICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9uUGFy
dCwgSW5wdXRTcGVlY2hCdXR0b25QYXJ0LCBMaXN0Ym94UGFydCwgTGlzdEl0ZW1QYXJ0LAotICAg
IE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRv
blBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZv
bHVtZVNsaWRlclRodW1iUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9u
UGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIAotICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0
b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRv
blBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAorICAgIE1lZGlhRW50
ZXJGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1l
ZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRl
clRodW1iUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwKKyAg
ICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIE1l
ZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0
dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25Q
YXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9s
dW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVt
ZVNsaWRlclRodW1iUGFydCwKICAgICBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0LCBN
ZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dy
b3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAog
ICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBN
ZW51bGlzdFRleHRGaWVsZFBhcnQsIE1ldGVyUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LCBQcm9ncmVz
c0JhclZhbHVlUGFydCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggZWZhMDUxODZkOWMzOGJlMGUyOTgz
YjgzNzczZDVmMDU3OGZiYmEwMC4uN2Q3YjE3NWRmNjBhYWY0ZWEzMDE5NWMyYjRlOTkzNjllN2U1
MzYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29u
dHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
ZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTExMSw2ICsxMTEsMTkgQEAgc3RhdGljIGJvb2wg
cGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmYKICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4
dCwgcmVjdCwgbWVkaWFFbGVtZW50LT5jYW5QbGF5KCkgPyBtZWRpYVBsYXkgOiBtZWRpYVBhdXNl
KTsKIH0KIAorc3RhdGljIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9i
amVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYg
cmVjdCkKK3sKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1l
ZGlhRWxlbWVudChvYmplY3QpOworICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpIHx8ICFtZWRpYUVs
ZW1lbnQtPmNhblBsYXkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGljIElt
YWdlKiBtZWRpYU92ZXJsYXlQbGF5ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJPdmVy
bGF5UGxheSIpOworICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0
LCByZWN0LCBtZWRpYU92ZXJsYXlQbGF5KTsKK30KKwogc3RhdGljIEltYWdlKiBnZXRNZWRpYVNs
aWRlclRodW1iKCkKIHsKICAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0
Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CkBAIC0zMzgsNiArMzUxLDgg
QEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1Bh
cnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVu
QnV0dG9uOgogICAgIGNhc2UgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjoKICAgICAgICAgcmV0
dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsK
KyAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b246CisgICAgICAgIHJldHVybiBwYWludE1l
ZGlhT3ZlcmxheVBsYXlCdXR0b24ob2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogICAgIGNhc2Ug
TWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uOgogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRv
bjoKICAgICBjYXNlIE1lZGlhU2Vla0ZvcndhcmRCdXR0b246CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBmODk2NzMyMzdkNjYxY2E1ZjMyM2FjMGRhMjQyMDNh
YTk2MjBkNDUzLi5mMTY2MTcyMmU3MzM2ODAzNGM3NmY2ZDZkYmVkNzY3MWI4MzdmZjkyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAgLTMyOSw2ICszMjksOCBA
QCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZQogICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFG
dWxsc2NyZWVuQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVkaWFQbGF5
QnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhUGxheUJ1dHRvbihvLCBw
YWludEluZm8sIHIpOworICAgICAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0Ogor
ICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihvLCBwYWludElu
Zm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBy
ZXR1cm4gcGFpbnRNZWRpYU11dGVCdXR0b24obywgcGFpbnRJbmZvLCByKTsKICAgICAgICAgY2Fz
ZSBNZWRpYVNlZWtCYWNrQnV0dG9uUGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lLmgKaW5kZXggNjI5ODM0YmM4MGVmZDI0ZTdlMWEyMzBhZTliYWE3NTI1ZDkxYjg2ZC4uM2Qz
OTc2MjY2YmY1YTdhNzBhMjQ0ZDA1OTRlZDJjNjAyNTI4ZTEzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAg
dmlydHVhbCB2b2lkIGFkanVzdE1lZGlhQ29udHJvbFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5k
ZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1
bGxzY3JlZW5CdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50
UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlC
dXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0
dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJl
dHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRl
ck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVl
OyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTZWVrQmFja0J1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVuZGVyT2JqZWN0
KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5k
cm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQuY3BwCmluZGV4IDU0MDRlNDdmODJmNGQzZTcwZmE5NmQzODE1NTQ2YThhNTNjMWI0YmIu
LjI5MTYxZTFiMmRhMTE5ZmUyMGFlYmM1MjVlNGY2ODlhYTRiNmE1MGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNw
cApAQCAtODcsNiArODcsMTggQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YWRq
dXN0SW5uZXJTcGluQnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmQKICAgICB9CiB9CiAK
K2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OnBhaW50TWVkaWFPdmVybGF5UGxheUJ1
dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNv
bnN0IEludFJlY3QmIHJlY3QpCit7CisjaWYgRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFf
T1ZFUkxBWV9QTEFZX0JVVFRPTikKKyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9t
aXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhT3ZlcmxheVBsYXlCdXR0b24sIG9iamVj
dCwgcGFpbnRJbmZvLCByZWN0KTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7Cisg
ICAgVU5VU0VEX1BBUkFNKHBhaW50SW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOworICAg
IHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBpbnQgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJv
aWQ6Om1lbnVMaXN0QXJyb3dQYWRkaW5nKCkgY29uc3QKIHsKICAgICAvLyBXZSBjYW5ub3QgdXNl
IHRoZSBzY3JvbGxiYXIgdGhpY2tuZXNzIGhlcmUsIGFzIGl0J3Mgd2lkdGggaXMgMCBvbiBBbmRy
b2lkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQuaAppbmRleCBjM2U0YjhiZWQxYWY4OTc1YmYyYzQ2NDg4NWRhMzIxMTFkOWU2
Zjg0Li43ZjNiM2U2NWEyMDY3NzliZDc1OTY4ZWRlOTcxYTgwMzRkZDQxMmYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQu
aApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZWdhdGVz
TWVudUxpc3RSZW5kZXJpbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKKyAg
ICBib29sIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIE9WRVJS
SURFOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154668</attachid>
            <date>2012-07-26 09:27:51 -0700</date>
            <delta_ts>2012-07-26 23:59:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120726092740.patch</filename>
            <type>text/plain</type>
            <size>34477</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmZmNmYzA0MGQ4NjY5
MGI1MjgxNzY0NGYwN2Q3NjljNWU4Y2I4Zi4uZjYzYTZmZThhYjYwNzNhNDUwNWIwY2FkYzM2ZDlh
ODVhOGJkNDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA3LTI0ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMu
Y3NzOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRv
bik6CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzOgorICAg
ICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAo
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbik6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAo
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJs
YXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRN
ZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVU
eXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhT3Zl
cmxheVBsYXlCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5oOgorCiAyMDEyLTA3LTIzICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgUmVmLWNvdW50IEF0b21pY0hUTUxUb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGJlZGQ0NDA0MGU4ZjZlMmFjZDIxYzU5MjBhZjFjOTgzYzZhMjFlYjQuLjA1OTY1YmE2
ZjVmNWY1MjczN2UwZWIxODJjOTJhYmNhNjk0MjA1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU3
MjMsNiArNTcyMyw4IEBACiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oJywKICAgICAgICAg
ICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhODhmNDljZGFkNGQ0MTQ5NTZiZjFhZDBl
YjY1Y2ExNWM1ZWJmMzg5Li5kNTAyNzViZjFkNDVjMWEwYTkyOTlkMWY4YjEwMTE0NTkzOGNkMjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
QEAgLTM4Myw2ICszODMsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBNZWRpYVBsYXlC
dXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFQbGF5
QnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFPdmVybGF5UGxh
eUJ1dHRvblBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYU92
ZXJsYXlQbGF5QnV0dG9uOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFN
dXRlQnV0dG9uUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlh
TXV0ZUJ1dHRvbjsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCA2ZTBkYjI4ZjcyNjc2ZGY2MmI3NjY0NDZmMjUxMjg1MzY3MjIxMWM4
Li5iNjM1MDcyMmI4Zjc0MjIyNjQ1ODk2NDQwM2ZjYTIxYTE3ZDM3ZjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNjQ0LDYgKzY0NCw3IEBAIG1lZGlhLWZ1bGxz
Y3JlZW4tdm9sdW1lLXNsaWRlcgogbWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyLXRodW1i
CiBtZWRpYS1tdXRlLWJ1dHRvbgogbWVkaWEtcGxheS1idXR0b24KK21lZGlhLW92ZXJsYXktcGxh
eS1idXR0b24KIG1lZGlhLXNlZWstYmFjay1idXR0b24KIG1lZGlhLXNlZWstZm9yd2FyZC1idXR0
b24KIG1lZGlhLXJld2luZC1idXR0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpp
bmRleCBkYTFlNmM4MzJlZWEwOGJiZDIzNThkYjM4ZjM3ZWNkYjBmNTA5ZWE3Li45ZDgyMjFlNDdm
YzVhOTFjM2FlNTZmYzAyYWI0YWIzZGY4OWM2MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHMuY3NzCkBAIC04MSw2ICs4MSwxMCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idQogICAg
IGNvbG9yOiBpbmhlcml0OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBs
YXktYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CiAg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MKaW5kZXggMjFiNjQ3YzM4MzE0NjExYmE3YmU3
NDQ4ZmFjMWQ1ZTc4YWFjMDVmMC4uMTBmN2YxZTY0MzNjZmNjMzM1YzA3ODg2MDRmMzlkN2NlYTVm
MDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1
bUFuZHJvaWQuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21p
dW1BbmRyb2lkLmNzcwpAQCAtNzUsNiArNzUsMjIgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZW5jbG9zdXJlIHsKICAgICBoZWlnaHQ6IDM1cHg7CiB9CiAKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIHsKKyAgICBkaXNwbGF5OiBub25lOwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSB7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9u
dGFsOworICAgIC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOworICAgIC13ZWJraXQtYm94LWFsaWdu
OmNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1mbGV4OjE7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
bWF4LXdpZHRoOiA4MDBweDsKKyAgICB0ZXh0LWluZGVudDogMDsKKyAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIGRpc3Bs
YXk6IG5vbmU7CiB9CkBAIC05Miw2ICsxMDgsMTggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnUK
ICAgICBwYWRkaW5nOiAwOwogfQogCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW92ZXJsYXkt
cGxheS1idXR0b247CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgYm94LXNpemluZzogYm9yZGVy
LWJveDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICB3aWR0aDogODBw
eDsKKyAgICBoZWlnaHQ6IDgwcHg7CisgICAgcGFkZGluZzogMDsKK30KKwogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LAogYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA3NGY2Nzg4YTIzYzRiMDE0Njc4
MzM3YTA1MjA4MzVmMTlkMzk0NjIxLi41YjhkY2VhNDgzM2I5OTVmYzY5NTk0ODAwZDMxZjk0NzRl
YzdkNDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCkBAIC02MDgsNiArNjA4LDQ2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitpbmxpbmUgTWVkaWFDb250cm9sT3Zl
cmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRv
Y3VtZW50LCBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5l
dyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBi
dXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKKyAgICBidXR0b24tPnNldFR5cGUoImJ1dHRv
biIpOworICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOworfQorCit2b2lkIE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZl
bnQpCit7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQg
JiYgbWVkaWFDb250cm9sbGVyKCktPmNhblBsYXkoKSkgeworICAgICAgICBtZWRpYUNvbnRyb2xs
ZXIoKS0+cGxheSgpOworICAgICAgICB1cGRhdGVEaXNwbGF5VHlwZSgpOworICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9CisgICAgSFRNTElucHV0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBs
YXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCit7CisgICAgaWYgKG1lZGlhQ29u
dHJvbGxlcigpLT5jYW5QbGF5KCkpIHsKKyAgICAgICAgc2hvdygpOworICAgICAgICBzZXREaXNw
bGF5VHlwZShNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaGlk
ZSgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXkt
cGxheS1idXR0b24iKSk7CisgICAgcmV0dXJuIGlkOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIGlubGluZSBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6TWVk
aWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAgLCBtX2FjdGlvbk9uU3RvcChOb3RoaW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgK
aW5kZXggZWZkYjIxZjBkYWEwMGRkNzYwNTQwMGMyMzU0YWY1YjdiYzY3MmJkMi4uYzE1MTRlMjMx
N2QwYjg5NDllZTgwMTFjOWM3MGIwOTFjOWMwODI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC03NCw2ICs3NCw3IEBAIGVu
dW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewogICAgIE1lZGlhVGV4dFRyYWNrRGlzcGxheUNv
bnRhaW5lciwKICAgICBNZWRpYVRleHRUcmFja0Rpc3BsYXksCiAgICAgTWVkaWFFeGl0RnVsbHNj
cmVlbkJ1dHRvbiwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLAogfTsKIAogSFRNTE1lZGlh
RWxlbWVudCogdG9QYXJlbnRNZWRpYUVsZW1lbnQoTm9kZSopOwpAQCAtMjcxLDYgKzI3MiwyMCBA
QCBwcml2YXRlOgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVEaXNwbGF5VHlwZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCopOworCisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7Cit9OworCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVu
dCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwCmluZGV4IDlmMGU4YzYyZTFkMTViNzMxNWZjNWIyZTkzOWUwY2Q3YzVjMzljOGYuLjlj
ODQ0MDkwODYzOWVkODk2NDgwYTY4MTE5ODNmYjVmMjBmZGVhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW0uY3BwCkBAIC01NCwxMiArNTQsMTcgQEAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW0K
IHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+
IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK01lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250cm9s
UGFuZWxFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkp
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJl
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIpKTsKICAgICByZXR1cm4gaWQ7
CkBAIC04NiwxMCArOTEsMTMgQEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KIHsKIH0KIAorLy8g
TWVkaWFDb250cm9sczo6Y3JlYXRlKCkgZm9yIEFuZHJvaWQgaXMgZGVmaW5lZCBpbiBNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAuCisjaWYgIU9TKEFORFJPSUQpCiBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OmNyZWF0ZShkb2N1bWVudCk7CiB9CisjZW5kaWYKIAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewpAQCAtOTgsNjggKzEwNiw3NiBAQCBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0oZG9jdW1lbnQpKTsKIAorICAgIGlmIChjb250cm9scy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRv
Y3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKworICAgIHJldHVy
biAwOworfQorCitib29sIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxp
emVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCit7CiAgICAgLy8gQ3JlYXRlIGFuIGVuY2xv
c2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3VhbGx5IG9mZnNldCB0aGUg
Y29udHJvbHMgY29ycmVjdGx5LgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVt
ZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRv
bi5nZXQoKTsKKyAgICBtX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwogICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250
cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQo
KTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJl
bnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3Vy
cmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxh
eS0+aGlkZSgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5
LmdldCgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5oaWRlKCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBp
ZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBkdXJhdGlvbkRp
c3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNw
bGF5LmdldCgpOworICAgIG1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgp
OwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBh
bmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1
dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFu
ZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKKyAgICBtX3BhbmVsTXV0
ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
cGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRl
ciA9IHNsaWRlci5nZXQoKTsKLSAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXItPnNldENsZWFy
TXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAgICBtX3ZvbHVtZVNsaWRlciA9IHNsaWRl
ci5nZXQoKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0
aW9uKHRydWUpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBm
dWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3Jl
ZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1f
ZnVsbHNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYg
KGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29u
dHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBtX3BhbmVsID0gcGFuZWwuZ2V0KCk7
CiAgICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBjb250cm9scy0+bV9lbmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7Ci0gICAgY29udHJv
bHMtPmFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBtX2Vu
Y2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKKyAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVs
ZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpz
ZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBjb250cm9sbGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IDJmYjRjM2NmZTllM2E0OWZmMzFlZjUzMGE2ODcw
ZTY1ZTcwNjQxMmIuLjMzNDU0ZDJkYWRjMzY5N2U0MDUzZjg3OTEzYzk4NmYyYzBkMjE4YmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmgKQEAgLTYzLDI4ICs2MywzMiBAQCBjbGFzcyBNZWRpYUNv
bnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudDsKIAogY2xhc3MgTWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpIHsgbV9tZWRpYUNvbnRyb2xsZXIgPSBj
b250cm9sbGVyOyB9CiAgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtZWRpYUNvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbGxlcjsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CisgICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLQogICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbV9t
ZWRpYUNvbnRyb2xsZXI7CiB9OwogCitjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlh
Q29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOworfTsKKwogY2xhc3MgTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtPiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50
YXRpb24uCi0gICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlKik7CisgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xs
ZXJJbnRlcmZhY2UqKTsKIAogICAgIHZvaWQgc2hvdygpOwogICAgIHZvaWQgaGlkZSgpOwpAQCAt
OTMsOSArOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICB2b2lkIHBs
YXliYWNrUHJvZ3Jlc3NlZCgpOwotICAgIHZvaWQgcGxheWJhY2tTdGFydGVkKCk7Ci0gICAgdm9p
ZCBwbGF5YmFja1N0b3BwZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tQcm9ncmVzc2Vk
KCk7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1N0b3BwZWQoKTsKIAogICAgIHZvaWQgY2hhbmdlZE11dGUoKTsKICAgICB2b2lk
IGNoYW5nZWRWb2x1bWUoKTsKQEAgLTEyMiw5ICsxMjYsMTMgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZEhpZGVDb250cm9scygpOwogCi1wcml2YXRlOgotICAgIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqKTsKK3Byb3RlY3RlZDoKKyAgICBleHBs
aWNpdCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKERvY3VtZW50Kik7CisgCisgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisg
ICAgYm9vbCBpbml0aWFsaXplQ29udHJvbHMoRG9jdW1lbnQqKTsKIAorcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZvaWQgaGlkZUZ1
bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQoVGltZXI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bT4qKTsKICAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CkBAIC0xNDQsNyArMTUyLDggQEAgcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0
dG9uRWxlbWVudCogbV9mdWxsc2NyZWVuQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudCogbV9wYW5lbDsKLSAgICBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQq
IG1fZW5jbG9zdXJlOworICAgIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCogbV9l
bmNsb3N1cmU7CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudCogbV90ZXh0RGlzcGxheUNvbnRhaW5lcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NjM0
YTg0NzZkZThlNGM3OGYwM2M4NTkzODUwMjU2MmFkZmZlMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
QW5kcm9pZC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQuaCIKKworI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVu
dCkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVu
dD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5
RW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiKSk7CisgICAgcmV0dXJuIGlkOworfQor
CitNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShkb2N1bWVudCkKKyAgICAsIG1fb3ZlcmxheVBsYXlC
dXR0b24oMCkKKyAgICAsIG1fb3ZlcmxheUVuY2xvc3VyZSgwKQoreworfQorCitQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpj
cmVhdGUoZG9jdW1lbnQpOworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtQW5kcm9pZChkb2N1bWVudCkpOworCisgICAgRXhjZXB0aW9uQ29kZSBl
YzsKKworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gb3Zl
cmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlQbGF5QnV0
dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0KCk7CisgICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBw
ZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYg
KGVjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlFbmNsb3N1
cmUgPSBvdmVybGF5RW5jbG9zdXJlLmdldCgpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChv
dmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBpZiAoY29udHJvbHMtPmluaXRpYWxpemVDb250cm9scyhkb2N1
bWVudCkpCisgICAgICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisKKyAgICByZXR1cm4g
MDsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6c2V0
TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29udHJvbGxlcikKK3sK
KyAgICBpZiAobV9vdmVybGF5UGxheUJ1dHRvbikKKyAgICAgICAgbV9vdmVybGF5UGxheUJ1dHRv
bi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgIGlmIChtX292ZXJsYXlFbmNs
b3N1cmUpCisgICAgICAgIG1fb3ZlcmxheUVuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVyKGNv
bnRyb2xsZXIpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlh
Q29udHJvbGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVkKCkKK3sKKyAgICBtX292ZXJsYXlQbGF5
QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW06OnBsYXliYWNrU3RhcnRlZCgpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW1BbmRyb2lkOjpwbGF5YmFja1N0b3BwZWQoKQoreworICAgIG1fb3Zlcmxh
eVBsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdG9wcGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmU3MDJiNThhMDdj
NjkyZDZjMGFkMmE0MzlkZGMzMmU2ZGY2ZDNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZF9oCisjZGVmaW5lIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW1BbmRyb2lkX2gKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ7CisKK2NsYXNzIE1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbENocm9taXVt
RW5jbG9zdXJlRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERv
Y3VtZW50Kik7Cit9OworCitjbGFzcyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5k
cm9pZCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5k
cm9pZD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250
cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9pZCBwbGF5
YmFja1N0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdG9wcGVkKCk7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJv
aWQoRG9jdW1lbnQqKTsKKworICAgIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dCogbV9vdmVybGF5UGxheUJ1dHRvbjsKKyAgICBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudCogbV9vdmVybGF5RW5jbG9zdXJlOworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKaW5kZXggMTIwOGE5YTJlZTU2NjMwOGRj
YjI0YmQyMjM4ZTA3ZmQ0ZTAwNTY2OC4uOGVmNmIyMzc1NGZlMGIxYTYzNDdkNWJjODJjNDc3MmYx
MTg1OThlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtNDgsOCArNDgs
OCBAQCB0eXBlZGVmIHVuc2lnbmVkIENvbnRyb2xTdGF0ZXM7CiBlbnVtIENvbnRyb2xQYXJ0IHsK
ICAgICBOb0NvbnRyb2xQYXJ0LCBDaGVja2JveFBhcnQsIFJhZGlvUGFydCwgUHVzaEJ1dHRvblBh
cnQsIFNxdWFyZUJ1dHRvblBhcnQsIEJ1dHRvblBhcnQsCiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBE
ZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9uUGFydCwgSW5wdXRTcGVlY2hCdXR0b25Q
YXJ0LCBMaXN0Ym94UGFydCwgTGlzdEl0ZW1QYXJ0LAotICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVu
QnV0dG9uUGFydCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwg
TWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1
dHRvblBhcnQsIAotICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1
dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAorICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFy
dCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNs
aWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwgTWVkaWFNdXRl
QnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0
dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25Q
YXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBh
cnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVy
UGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAg
ICBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0LCBNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZFBhcnQsIE1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVu
dFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVu
dWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQs
IE1ldGVyUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LCBQcm9ncmVzc0JhclZhbHVlUGFydCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJv
bWl1bS5jcHAKaW5kZXggZWZhMDUxODZkOWMzOGJlMGUyOTgzYjgzNzczZDVmMDU3OGZiYmEwMC4u
N2Q3YjE3NWRmNjBhYWY0ZWEzMDE5NWMyYjRlOTkzNjllN2U1MzYwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHAKQEAgLTExMSw2ICsxMTEsMTkgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24o
UmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICByZXR1
cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50
LT5jYW5QbGF5KCkgPyBtZWRpYVBsYXkgOiBtZWRpYVBhdXNlKTsKIH0KIAorc3RhdGljIGJvb2wg
cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwor
ICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpIHx8ICFtZWRpYUVsZW1lbnQtPmNhblBsYXkoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGljIEltYWdlKiBtZWRpYU92ZXJsYXlQbGF5
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJPdmVybGF5UGxheSIpOworICAgIHJldHVy
biBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYU92ZXJsYXlQ
bGF5KTsKK30KKwogc3RhdGljIEltYWdlKiBnZXRNZWRpYVNsaWRlclRodW1iKCkKIHsKICAgICBz
dGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBs
YXllclNsaWRlclRodW1iIik7CkBAIC0zMzgsNiArMzUxLDggQEAgYm9vbCBSZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVu
dFR5cGUKICAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOgogICAgIGNhc2UgTWVk
aWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjoKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKKyAgICBjYXNlIE1lZGlhT3Zlcmxh
eVBsYXlCdXR0b246CisgICAgICAgIHJldHVybiBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24o
b2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uOgogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvbjoKICAgICBjYXNlIE1lZGlhU2Vl
a0ZvcndhcmRCdXR0b246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApp
bmRleCBmODk2NzMyMzdkNjYxY2E1ZjMyM2FjMGRhMjQyMDNhYTk2MjBkNDUzLi5mMTY2MTcyMmU3
MzM2ODAzNGM3NmY2ZDZkYmVkNzY3MWI4MzdmZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAKQEAgLTMyOSw2ICszMjksOCBAQCBib29sIFJlbmRlclRoZW1lOjpw
YWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRSZQogICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG8sIHBh
aW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9uUGFydDoKICAgICAgICAg
ICAgIHJldHVybiBwYWludE1lZGlhUGxheUJ1dHRvbihvLCBwYWludEluZm8sIHIpOworICAgICAg
ICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBh
aW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNl
IE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYU11dGVC
dXR0b24obywgcGFpbnRJbmZvLCByKTsKICAgICAgICAgY2FzZSBNZWRpYVNlZWtCYWNrQnV0dG9u
UGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggNjI5ODM0YmM4
MGVmZDI0ZTdlMWEyMzBhZTliYWE3NTI1ZDkxYjg2ZC4uM2QzOTc2MjY2YmY1YTdhNzBhMjQ0ZDA1
OTRlZDJjNjAyNTI4ZTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
QEAgLTMxOCw2ICszMTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1l
ZGlhQ29udHJvbFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFTZWVrQmFja0J1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IDU0MDRl
NDdmODJmNGQzZTcwZmE5NmQzODE1NTQ2YThhNTNjMWI0YmIuLjI5MTYxZTFiMmRhMTE5ZmUyMGFl
YmM1MjVlNGY2ODlhYTRiNmE1MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcApAQCAtODcsNiArODcsMTggQEAg
dm9pZCBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5
bGUoU3R5bGVSZXNvbHZlciosIFJlbmQKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQ6OnBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisjaWYgRU5BQkxFKFZJREVPKSAmJiBFTkFCTEUoTUVESUFfT1ZFUkxBWV9QTEFZX0JVVFRPTikK
KyAgICByZXR1cm4gUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJv
bHNQYXJ0KE1lZGlhT3ZlcmxheVBsYXlCdXR0b24sIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsK
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHBhaW50
SW5mbyk7CisgICAgVU5VU0VEX1BBUkFNKHJlY3QpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCiBpbnQgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6Om1lbnVMaXN0QXJyb3dQYWRk
aW5nKCkgY29uc3QKIHsKICAgICAvLyBXZSBjYW5ub3QgdXNlIHRoZSBzY3JvbGxiYXIgdGhpY2tu
ZXNzIGhlcmUsIGFzIGl0J3Mgd2lkdGggaXMgMCBvbiBBbmRyb2lkLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaAppbmRleCBj
M2U0YjhiZWQxYWY4OTc1YmYyYzQ2NDg4NWRhMzIxMTFkOWU2Zjg0Li43ZjNiM2U2NWEyMDY3Nzli
ZDc1OTY4ZWRlOTcxYTgwMzRkZDQxMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaApAQCAtNDEsNiArNDEsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgZGVsZWdhdGVzTWVudUxpc3RSZW5kZXJpbmcoKSBj
b25zdCBPVkVSUklERSB7IHJldHVybiB0cnVlOyB9CiAKKyAgICBib29sIHBhaW50TWVkaWFPdmVy
bGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRS
ZWN0JikgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCBTdHJpbmcg
ZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIE9WRVJSSURFOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154858</attachid>
            <date>2012-07-26 23:59:23 -0700</date>
            <delta_ts>2012-07-27 11:39:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120726235911.patch</filename>
            <type>text/plain</type>
            <size>34440</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTNmZmNmYzA0MGQ4NjY5
MGI1MjgxNzY0NGYwN2Q3NjljNWU4Y2I4Zi4uZjYzYTZmZThhYjYwNzNhNDUwNWIwY2FkYzM2ZDlh
ODVhOGJkNDFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTA3LTI0ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpDU1NQcmltaXRpdmVWYWx1ZSk6CisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHMu
Y3NzOgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5
LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRv
bik6CisgICAgICAgICogY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzOgorICAg
ICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUpOgor
ICAgICAgICAodmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUp
OgorICAgICAgICAoYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uKToKKyAgICAgICAgKGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAo
dmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbik6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sT3Zlcmxh
eVBsYXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKToK
KyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oOgorICAgICAgICAo
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50
OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OnNoYWRvd1BzZXVkb0lkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJs
YXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpzZXRN
ZWRpYUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bTo6cGxheWJhY2tTdGFydGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCk6CisgICAgICAgICogaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oOgorICAgICAgICAoV2Vi
Q29yZSk6CisgICAgICAgIChNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQpOgorICAg
ICAgICAoTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQpOgorICAgICAgICAoTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSk6CisgICAgICAgICogcGxhdGZvcm0vVGhlbWVU
eXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpwYWludE1lZGlhT3Zl
cmxheVBsYXlCdXR0b24pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVkaWFDb250cm9sc0No
cm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6OnBhaW50KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5oOgorCiAyMDEyLTA3LTIzICBLd2FuZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEw
MC5uZXQ+CiAKICAgICAgICAgUmVmLWNvdW50IEF0b21pY0hUTUxUb2tlbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CmluZGV4IGJlZGQ0NDA0MGU4ZjZlMmFjZDIxYzU5MjBhZjFjOTgzYzZhMjFlYjQuLjA1OTY1YmE2
ZjVmNWY1MjczN2UwZWIxODJjOTJhYmNhNjk0MjA1NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU3
MjMsNiArNTcyMyw4IEBACiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxl
bWVudHMuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bS5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW0uaCcsCisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oJywKICAgICAgICAg
ICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdo
dG1sL3NoYWRvdy9NZXRlclNoYWRvd0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFk
b3cvUHJvZ3Jlc3NTaGFkb3dFbGVtZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAppbmRleCBhODhmNDljZGFkNGQ0MTQ5NTZiZjFhZDBl
YjY1Y2ExNWM1ZWJmMzg5Li5kNTAyNzViZjFkNDVjMWEwYTkyOTlkMWY4YjEwMTE0NTkzOGNkMjA0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgK
QEAgLTM4Myw2ICszODMsOSBAQCB0ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6
Q1NTUHJpbWl0aXZlVmFsdWUoQ29udHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBNZWRpYVBsYXlC
dXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFQbGF5
QnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFPdmVybGF5UGxh
eUJ1dHRvblBhcnQ6CisgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYU92
ZXJsYXlQbGF5QnV0dG9uOworICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFN
dXRlQnV0dG9uUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlh
TXV0ZUJ1dHRvbjsKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVL
ZXl3b3Jkcy5pbgppbmRleCA2ZTBkYjI4ZjcyNjc2ZGY2MmI3NjY0NDZmMjUxMjg1MzY3MjIxMWM4
Li5iNjM1MDcyMmI4Zjc0MjIyNjQ1ODk2NDQwM2ZjYTIxYTE3ZDM3ZjhiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtNjQ0LDYgKzY0NCw3IEBAIG1lZGlhLWZ1bGxz
Y3JlZW4tdm9sdW1lLXNsaWRlcgogbWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyLXRodW1i
CiBtZWRpYS1tdXRlLWJ1dHRvbgogbWVkaWEtcGxheS1idXR0b24KK21lZGlhLW92ZXJsYXktcGxh
eS1idXR0b24KIG1lZGlhLXNlZWstYmFjay1idXR0b24KIG1lZGlhLXNlZWstZm9yd2FyZC1idXR0
b24KIG1lZGlhLXJld2luZC1idXR0b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpp
bmRleCBkYTFlNmM4MzJlZWEwOGJiZDIzNThkYjM4ZjM3ZWNkYjBmNTA5ZWE3Li45ZDgyMjFlNDdm
YzVhOTFjM2FlNTZmYzAyYWI0YWIzZGY4OWM2MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWVkaWFDb250cm9scy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29u
dHJvbHMuY3NzCkBAIC04MSw2ICs4MSwxMCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idQogICAg
IGNvbG9yOiBpbmhlcml0OwogfQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBs
YXktYnV0dG9uIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idXR0b24gewogICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CiAg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MKaW5kZXggMjFiNjQ3YzM4MzE0NjExYmE3YmU3
NDQ4ZmFjMWQ1ZTc4YWFjMDVmMC4uMTBmN2YxZTY0MzNjZmNjMzM1YzA3ODg2MDRmMzlkN2NlYTVm
MDc3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1
bUFuZHJvaWQuY3NzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21p
dW1BbmRyb2lkLmNzcwpAQCAtNzUsNiArNzUsMjIgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtZW5jbG9zdXJlIHsKICAgICBoZWlnaHQ6IDM1cHg7CiB9CiAKK2F1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIHsKKyAgICBkaXNwbGF5OiBub25lOwor
fQorCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSB7Cisg
ICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9u
dGFsOworICAgIC13ZWJraXQtYm94LXBhY2s6Y2VudGVyOworICAgIC13ZWJraXQtYm94LWFsaWdu
OmNlbnRlcjsKKyAgICAtd2Via2l0LWJveC1mbGV4OjE7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
bWF4LXdpZHRoOiA4MDBweDsKKyAgICB0ZXh0LWluZGVudDogMDsKKyAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIGRpc3Bs
YXk6IG5vbmU7CiB9CkBAIC05Miw2ICsxMDgsMTggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnUK
ICAgICBwYWRkaW5nOiAwOwogfQogCit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVy
bGF5LXBsYXktYnV0dG9uIHsKKyAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW92ZXJsYXkt
cGxheS1idXR0b247CisgICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICBkaXNwbGF5
OiAtd2Via2l0LWJveDsKKyAgICBib3JkZXI6IG5vbmU7CisgICAgYm94LXNpemluZzogYm9yZGVy
LWJveDsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICB3aWR0aDogODBw
eDsKKyAgICBoZWlnaHQ6IDgwcHg7CisgICAgcGFkZGluZzogMDsKK30KKwogYXVkaW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5LAogYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29u
dHJvbHMtdGltZS1yZW1haW5pbmctZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBt
ZWRpYS1jdXJyZW50LXRpbWUtZGlzcGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcAppbmRleCA3NGY2Nzg4YTIzYzRiMDE0Njc4
MzM3YTA1MjA4MzVmMTlkMzk0NjIxLi41YjhkY2VhNDgzM2I5OTVmYzY5NTk0ODAwZDMxZjk0NzRl
YzdkNDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sRWxlbWVudHMuY3BwCkBAIC02MDgsNiArNjA4LDQ2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYg
TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCitpbmxpbmUgTWVkaWFDb250cm9sT3Zl
cmxheVBsYXlCdXR0b25FbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRv
Y3VtZW50LCBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlC
dXR0b25FbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5l
dyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBi
dXR0b24tPmNyZWF0ZVNoYWRvd1N1YnRyZWUoKTsKKyAgICBidXR0b24tPnNldFR5cGUoImJ1dHRv
biIpOworICAgIHJldHVybiBidXR0b24ucmVsZWFzZSgpOworfQorCit2b2lkIE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZl
bnQpCit7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQg
JiYgbWVkaWFDb250cm9sbGVyKCktPmNhblBsYXkoKSkgeworICAgICAgICBtZWRpYUNvbnRyb2xs
ZXIoKS0+cGxheSgpOworICAgICAgICB1cGRhdGVEaXNwbGF5VHlwZSgpOworICAgICAgICBldmVu
dC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICB9CisgICAgSFRNTElucHV0RWxlbWVudDo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihldmVudCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBs
YXlCdXR0b25FbGVtZW50Ojp1cGRhdGVEaXNwbGF5VHlwZSgpCit7CisgICAgaWYgKG1lZGlhQ29u
dHJvbGxlcigpLT5jYW5QbGF5KCkpIHsKKyAgICAgICAgc2hvdygpOworICAgICAgICBzZXREaXNw
bGF5VHlwZShNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaGlk
ZSgpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNf
TE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXkt
cGxheS1idXR0b24iKSk7CisgICAgcmV0dXJuIGlkOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCisKIGlubGluZSBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6TWVk
aWFDb250cm9sU2Vla0J1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRy
b2xFbGVtZW50VHlwZSBkaXNwbGF5VHlwZSkKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVu
dChkb2N1bWVudCwgZGlzcGxheVR5cGUpCiAgICAgLCBtX2FjdGlvbk9uU3RvcChOb3RoaW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgK
aW5kZXggZWZkYjIxZjBkYWEwMGRkNzYwNTQwMGMyMzU0YWY1YjdiYzY3MmJkMi4uYzE1MTRlMjMx
N2QwYjg5NDllZTgwMTFjOWM3MGIwOTFjOWMwODI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCkBAIC03NCw2ICs3NCw3IEBAIGVu
dW0gTWVkaWFDb250cm9sRWxlbWVudFR5cGUgewogICAgIE1lZGlhVGV4dFRyYWNrRGlzcGxheUNv
bnRhaW5lciwKICAgICBNZWRpYVRleHRUcmFja0Rpc3BsYXksCiAgICAgTWVkaWFFeGl0RnVsbHNj
cmVlbkJ1dHRvbiwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLAogfTsKIAogSFRNTE1lZGlh
RWxlbWVudCogdG9QYXJlbnRNZWRpYUVsZW1lbnQoTm9kZSopOwpAQCAtMjcxLDYgKzI3MiwyMCBA
QCBwcml2YXRlOgogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJ
bnB1dEVsZW1lbnQgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVEaXNwbGF5VHlwZSgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJv
bE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChEb2N1bWVudCopOworCisgICAgdmlydHVhbCBjb25z
dCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7Cit9OworCisvLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVu
dCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uY3BwCmluZGV4IDlmMGU4YzYyZTFkMTViNzMxNWZjNWIyZTkzOWUwY2Q3YzVjMzljOGYuLjlj
ODQ0MDkwODYzOWVkODk2NDgwYTY4MTE5ODNmYjVmMjBmZGVhMjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW0uY3BwCkBAIC01NCwxMiArNTQsMTcgQEAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW0K
IHsKIH0KIAotUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+
IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBk
b2N1bWVudCkKK01lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250cm9s
UGFuZWxFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkKIHsKLSAgICByZXR1cm4gYWRv
cHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkp
OwogfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJl
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1l
ZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitjb25zdCBB
dG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIpKTsKICAgICByZXR1cm4gaWQ7
CkBAIC04NiwxMCArOTEsMTMgQEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6TWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KIHsKIH0KIAorLy8g
TWVkaWFDb250cm9sczo6Y3JlYXRlKCkgZm9yIEFuZHJvaWQgaXMgZGVmaW5lZCBpbiBNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAuCisjaWYgIU9TKEFORFJPSUQpCiBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06
OmNyZWF0ZShkb2N1bWVudCk7CiB9CisjZW5kaWYKIAogUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewpAQCAtOTgsNjggKzEwNiw3NiBAQCBQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0oZG9jdW1lbnQpKTsKIAorICAgIGlmIChjb250cm9scy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRv
Y3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKworICAgIHJldHVy
biAwOworfQorCitib29sIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxp
emVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCit7CiAgICAgLy8gQ3JlYXRlIGFuIGVuY2xv
c2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2UgY2FuIHZpc3VhbGx5IG9mZnNldCB0aGUg
Y29udHJvbHMgY29ycmVjdGx5LgotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxFbGVt
ZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
IAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1
dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6
Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRv
bi5nZXQoKTsKKyAgICBtX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOwogICAgIHBhbmVs
LT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChl
YykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0
cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGlt
ZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250
cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQo
KTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxpbmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJl
bnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJlbnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3Vy
cmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxh
eS0+aGlkZSgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5
LmdldCgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5LT5oaWRlKCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBp
ZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50PiBkdXJhdGlvbkRp
c3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNw
bGF5LmdldCgpOworICAgIG1fZHVyYXRpb25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgp
OwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlvbkRpc3BsYXkucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBh
bmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1
dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUGFu
ZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0gTWVkaWFDb250cm9sUGFuZWxN
dXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKKyAgICBtX3BhbmVsTXV0
ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQo
cGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNv
bnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIgPSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRl
ciA9IHNsaWRlci5nZXQoKTsKLSAgICBjb250cm9scy0+bV92b2x1bWVTbGlkZXItPnNldENsZWFy
TXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAgICBtX3ZvbHVtZVNsaWRlciA9IHNsaWRl
ci5nZXQoKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0
aW9uKHRydWUpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChzbGlkZXIucmVsZWFzZSgpLCBlYywg
dHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50PiBm
dWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3Jl
ZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgpOworICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJv
bEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1f
ZnVsbHNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYg
KGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgY29u
dHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAgICBtX3BhbmVsID0gcGFuZWwuZ2V0KCk7
CiAgICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5lbC5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBjb250cm9scy0+bV9lbmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7Ci0gICAgY29udHJv
bHMtPmFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBtX2Vu
Y2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKKyAgICBhcHBlbmRDaGlsZChlbmNsb3N1cmUucmVs
ZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKyAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpz
ZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBjb250cm9sbGVyKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IDJmYjRjM2NmZTllM2E0OWZmMzFlZjUzMGE2ODcw
ZTY1ZTcwNjQxMmIuLjMzNDU0ZDJkYWRjMzY5N2U0MDUzZjg3OTEzYzk4NmYyYzBkMjE4YmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmgKQEAgLTYzLDI4ICs2MywzMiBAQCBjbGFzcyBNZWRpYUNv
bnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudDsKIAogY2xhc3MgTWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50IDogcHVibGljIEhUTUxEaXZFbGVtZW50IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+
IGNyZWF0ZShEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNo
YWRvd1BzZXVkb0lkKCkgY29uc3Q7Ci0KICAgICB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRp
YUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpIHsgbV9tZWRpYUNvbnRyb2xsZXIgPSBj
b250cm9sbGVyOyB9CiAgICAgTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBtZWRpYUNvbnRyb2xs
ZXIoKSBjb25zdCB7IHJldHVybiBtX21lZGlhQ29udHJvbGxlcjsgfQogCiBwcm90ZWN0ZWQ6Ci0g
ICAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CisgICAg
ZXhwbGljaXQgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7
CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzTWVkaWFDb250cm9sRWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KLQogICAgIE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogbV9t
ZWRpYUNvbnRyb2xsZXI7CiB9OwogCitjbGFzcyBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50IHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVs
ZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5n
JiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlh
Q29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOworfTsKKwogY2xhc3MgTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bSA6IHB1YmxpYyBNZWRpYUNvbnRyb2xzIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtPiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50
YXRpb24uCi0gICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJm
YWNlKik7CisgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xs
ZXJJbnRlcmZhY2UqKTsKIAogICAgIHZvaWQgc2hvdygpOwogICAgIHZvaWQgaGlkZSgpOwpAQCAt
OTMsOSArOTcsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICB2b2lkIHBs
YXliYWNrUHJvZ3Jlc3NlZCgpOwotICAgIHZvaWQgcGxheWJhY2tTdGFydGVkKCk7Ci0gICAgdm9p
ZCBwbGF5YmFja1N0b3BwZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tQcm9ncmVzc2Vk
KCk7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1N0b3BwZWQoKTsKIAogICAgIHZvaWQgY2hhbmdlZE11dGUoKTsKICAgICB2b2lk
IGNoYW5nZWRWb2x1bWUoKTsKQEAgLTEyMiw5ICsxMjYsMTMgQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZEhpZGVDb250cm9scygpOwogCi1wcml2YXRlOgotICAgIE1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqKTsKK3Byb3RlY3RlZDoKKyAgICBleHBs
aWNpdCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKERvY3VtZW50Kik7CisgCisgICAg
Ly8gUmV0dXJucyB0cnVlIGlmIHN1Y2Nlc3NmdWwsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisg
ICAgYm9vbCBpbml0aWFsaXplQ29udHJvbHMoRG9jdW1lbnQqKTsKIAorcHJpdmF0ZToKICAgICB2
aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZvaWQgaGlkZUZ1
bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQoVGltZXI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bT4qKTsKICAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CkBAIC0xNDQsNyArMTUyLDggQEAgcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlk
ZXJFbGVtZW50KiBtX3ZvbHVtZVNsaWRlcjsKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0
dG9uRWxlbWVudCogbV9mdWxsc2NyZWVuQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudCogbV9wYW5lbDsKLSAgICBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQq
IG1fZW5jbG9zdXJlOworICAgIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCogbV9l
bmNsb3N1cmU7CisKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgTWVkaWFDb250cm9sVGV4
dFRyYWNrQ29udGFpbmVyRWxlbWVudCogbV90ZXh0RGlzcGxheUNvbnRhaW5lcjsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NjM0
YTg0NzZkZThlNGM3OGYwM2M4NTkzODUwMjU2MmFkZmZlMzIKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
QW5kcm9pZC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisKKyNpZiBFTkFCTEUoVklERU8pCisjaW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQuaCIKKworI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgi
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVu
dCkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVu
dD4gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5
RW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1l
ZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQt
bWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUiKSk7CisgICAgcmV0dXJuIGlkOworfQor
CitNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFD
b250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShkb2N1bWVudCkKKyAgICAsIG1fb3ZlcmxheVBsYXlC
dXR0b24oMCkKKyAgICAsIG1fb3ZlcmxheUVuY2xvc3VyZSgwKQoreworfQorCitQYXNzUmVmUHRy
PE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
Cit7CisgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpj
cmVhdGUoZG9jdW1lbnQpOworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6
Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtQW5kcm9pZChkb2N1bWVudCkpOworCisgICAgRXhjZXB0aW9uQ29kZSBl
YzsKKworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gb3Zl
cmxheUVuY2xvc3VyZSA9IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVh
dGUoZG9jdW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ+IG92ZXJsYXlQbGF5QnV0dG9uID0gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlQbGF5QnV0
dG9uID0gb3ZlcmxheVBsYXlCdXR0b24uZ2V0KCk7CisgICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBw
ZW5kQ2hpbGQob3ZlcmxheVBsYXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYg
KGVjKQorICAgICAgICByZXR1cm4gMDsKKworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlFbmNsb3N1
cmUgPSBvdmVybGF5RW5jbG9zdXJlLmdldCgpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChv
dmVybGF5RW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAg
ICAgcmV0dXJuIDA7CisKKyAgICBpZiAoY29udHJvbHMtPmluaXRpYWxpemVDb250cm9scyhkb2N1
bWVudCkpCisgICAgICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisKKyAgICByZXR1cm4g
MDsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6c2V0
TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29udHJvbGxlcikKK3sK
KyAgICBpZiAobV9vdmVybGF5UGxheUJ1dHRvbikKKyAgICAgICAgbV9vdmVybGF5UGxheUJ1dHRv
bi0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgIGlmIChtX292ZXJsYXlFbmNs
b3N1cmUpCisgICAgICAgIG1fb3ZlcmxheUVuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVyKGNv
bnRyb2xsZXIpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlh
Q29udHJvbGxlcihjb250cm9sbGVyKTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVkKCkKK3sKKyAgICBtX292ZXJsYXlQbGF5
QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW06OnBsYXliYWNrU3RhcnRlZCgpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW1BbmRyb2lkOjpwbGF5YmFja1N0b3BwZWQoKQoreworICAgIG1fb3Zlcmxh
eVBsYXlCdXR0b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bTo6cGxheWJhY2tTdG9wcGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmU3MDJiNThhMDdj
NjkyZDZjMGFkMmE0MzlkZGMzMmU2ZGY2ZDNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQu
aApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZF9oCisjZGVmaW5lIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW1BbmRyb2lkX2gKKworI2lmIEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ7CisKK2NsYXNzIE1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbENocm9taXVt
RW5jbG9zdXJlRWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworICAgIHZp
cnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERv
Y3VtZW50Kik7Cit9OworCitjbGFzcyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5k
cm9pZCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtIHsKK3B1YmxpYzoK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5k
cm9pZD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250
cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9pZCBwbGF5
YmFja1N0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdG9wcGVkKCk7CisKK3By
aXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJv
aWQoRG9jdW1lbnQqKTsKKworICAgIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dCogbV9vdmVybGF5UGxheUJ1dHRvbjsKKyAgICBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudCogbV9vdmVybGF5RW5jbG9zdXJlOworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKaW5kZXggMTIwOGE5YTJlZTU2NjMwOGRj
YjI0YmQyMjM4ZTA3ZmQ0ZTAwNTY2OC4uOGVmNmIyMzc1NGZlMGIxYTYzNDdkNWJjODJjNDc3MmYx
MTg1OThlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtNDgsOCArNDgs
OCBAQCB0eXBlZGVmIHVuc2lnbmVkIENvbnRyb2xTdGF0ZXM7CiBlbnVtIENvbnRyb2xQYXJ0IHsK
ICAgICBOb0NvbnRyb2xQYXJ0LCBDaGVja2JveFBhcnQsIFJhZGlvUGFydCwgUHVzaEJ1dHRvblBh
cnQsIFNxdWFyZUJ1dHRvblBhcnQsIEJ1dHRvblBhcnQsCiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBE
ZWZhdWx0QnV0dG9uUGFydCwgSW5uZXJTcGluQnV0dG9uUGFydCwgSW5wdXRTcGVlY2hCdXR0b25Q
YXJ0LCBMaXN0Ym94UGFydCwgTGlzdEl0ZW1QYXJ0LAotICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVu
QnV0dG9uUGFydCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVl
blZvbHVtZVNsaWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwg
TWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1
dHRvblBhcnQsIAotICAgIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1
dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xv
c2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAorICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFy
dCwgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNs
aWRlclBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwgTWVkaWFNdXRl
QnV0dG9uUGFydCwgTWVkaWFQbGF5QnV0dG9uUGFydCwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0
dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25Q
YXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBh
cnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVy
UGFydCwgTWVkaWFTbGlkZXJUaHVtYlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFy
dCwgTWVkaWFWb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAg
ICBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0b25QYXJ0LCBNZWRpYUNvbnRyb2xzQmFja2dyb3Vu
ZFBhcnQsIE1lZGlhQ29udHJvbHNGdWxsc2NyZWVuQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVu
dFRpbWVQYXJ0LCBNZWRpYVRpbWVSZW1haW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVu
dWxpc3RCdXR0b25QYXJ0LCBNZW51bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQs
IE1ldGVyUGFydCwgUHJvZ3Jlc3NCYXJQYXJ0LCBQcm9ncmVzc0JhclZhbHVlUGFydCwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJv
bWl1bS5jcHAKaW5kZXggZWZhMDUxODZkOWMzOGJlMGUyOTgzYjgzNzczZDVmMDU3OGZiYmEwMC4u
N2Q3YjE3NWRmNjBhYWY0ZWEzMDE5NWMyYjRlOTkzNjllN2U1MzYwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHAKQEAgLTExMSw2ICsxMTEsMTkgQEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24o
UmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICByZXR1
cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50
LT5jYW5QbGF5KCkgPyBtZWRpYVBsYXkgOiBtZWRpYVBhdXNlKTsKIH0KIAorc3RhdGljIGJvb2wg
cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQ
YWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBIVE1MTWVk
aWFFbGVtZW50KiBtZWRpYUVsZW1lbnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOwor
ICAgIGlmICghbWVkaWFFbGVtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAo
IWhhc1NvdXJjZShtZWRpYUVsZW1lbnQpIHx8ICFtZWRpYUVsZW1lbnQtPmNhblBsYXkoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgc3RhdGljIEltYWdlKiBtZWRpYU92ZXJsYXlQbGF5
ID0gcGxhdGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJPdmVybGF5UGxheSIpOworICAgIHJldHVy
biBwYWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYU92ZXJsYXlQ
bGF5KTsKK30KKwogc3RhdGljIEltYWdlKiBnZXRNZWRpYVNsaWRlclRodW1iKCkKIHsKICAgICBz
dGF0aWMgSW1hZ2UqIG1lZGlhU2xpZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBs
YXllclNsaWRlclRodW1iIik7CkBAIC0zMzgsNiArMzUxLDggQEAgYm9vbCBSZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVu
dFR5cGUKICAgICBjYXNlIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uOgogICAgIGNhc2UgTWVk
aWFFeGl0RnVsbHNjcmVlbkJ1dHRvbjoKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2Ny
ZWVuQnV0dG9uKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKKyAgICBjYXNlIE1lZGlhT3Zlcmxh
eVBsYXlCdXR0b246CisgICAgICAgIHJldHVybiBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24o
b2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRl
QnV0dG9uOgogICAgIGNhc2UgTWVkaWFTZWVrQmFja0J1dHRvbjoKICAgICBjYXNlIE1lZGlhU2Vl
a0ZvcndhcmRCdXR0b246CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApp
bmRleCBmODk2NzMyMzdkNjYxY2E1ZjMyM2FjMGRhMjQyMDNhYTk2MjBkNDUzLi5mMTY2MTcyMmU3
MzM2ODAzNGM3NmY2ZDZkYmVkNzY3MWI4MzdmZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZS5jcHAKQEAgLTMyOSw2ICszMjksOCBAQCBib29sIFJlbmRlclRoZW1lOjpw
YWludChSZW5kZXJPYmplY3QqIG8sIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJ
bnRSZQogICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG8sIHBh
aW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9uUGFydDoKICAgICAgICAg
ICAgIHJldHVybiBwYWludE1lZGlhUGxheUJ1dHRvbihvLCBwYWludEluZm8sIHIpOworICAgICAg
ICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBh
aW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNl
IE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYU11dGVC
dXR0b24obywgcGFpbnRJbmZvLCByKTsKICAgICAgICAgY2FzZSBNZWRpYVNlZWtCYWNrQnV0dG9u
UGFydDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggNjI5ODM0YmM4
MGVmZDI0ZTdlMWEyMzBhZTliYWE3NTI1ZDkxYjg2ZC4uM2QzOTc2MjY2YmY1YTdhNzBhMjQ0ZDA1
OTRlZDJjNjAyNTI4ZTEzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgK
QEAgLTMxOCw2ICszMTgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1l
ZGlhQ29udHJvbFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBj
b25zdDsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVy
T2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7
IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0Kiwg
Y29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNv
bnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmly
dHVhbCBib29sIHBhaW50TWVkaWFNdXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50
SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29s
IHBhaW50TWVkaWFTZWVrQmFja0J1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8m
LCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWlu
dE1lZGlhU2Vla0ZvcndhcmRCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwg
Y29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IDU0MDRl
NDdmODJmNGQzZTcwZmE5NmQzODE1NTQ2YThhNTNjMWI0YmIuLjhkZWNhNWU4OWI5ZDBiMzA2OTE5
Nzc2YzAxNTJkODJhOTU1ZWU2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcApAQCAtODcsNiArODcsMTggQEAg
dm9pZCBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5
bGUoU3R5bGVSZXNvbHZlciosIFJlbmQKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQ6OnBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9i
amVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7
CisjaWYgRU5BQkxFKFZJREVPKQorICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21p
dW06OnBhaW50TWVkaWFDb250cm9sc1BhcnQoTWVkaWFPdmVybGF5UGxheUJ1dHRvbiwgb2JqZWN0
LCBwYWludEluZm8sIHJlY3QpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAg
ICBVTlVTRURfUEFSQU0ocGFpbnRJbmZvKTsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CisgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGludCBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9p
ZDo6bWVudUxpc3RBcnJvd1BhZGRpbmcoKSBjb25zdAogewogICAgIC8vIFdlIGNhbm5vdCB1c2Ug
dGhlIHNjcm9sbGJhciB0aGlja25lc3MgaGVyZSwgYXMgaXQncyB3aWR0aCBpcyAwIG9uIEFuZHJv
aWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJv
bWl1bUFuZHJvaWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9t
aXVtQW5kcm9pZC5oCmluZGV4IGMzZTRiOGJlZDFhZjg5NzViZjJjNDY0ODg1ZGEzMjExMWQ5ZTZm
ODQuLjdmM2IzZTY1YTIwNjc3OWJkNzU5NjhlZGU5NzFhODAzNGRkNDEyZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5o
CkBAIC00MSw2ICs0MSw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBkZWxlZ2F0ZXNN
ZW51TGlzdFJlbmRlcmluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAorICAg
IGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBPVkVSUklERTsKKwogI2lmIEVOQUJMRShWSURFTykK
ICAgICB2aXJ0dWFsIFN0cmluZyBleHRyYU1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgT1ZFUlJJ
REU7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154998</attachid>
            <date>2012-07-27 11:39:52 -0700</date>
            <delta_ts>2012-07-28 01:02:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120727113937.patch</filename>
            <type>text/plain</type>
            <size>34812</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVjODQzNmI1NTkwYWI4
ZjM1NDhmM2I3MmU4NzM2NGE0YTQyYzYwMC4uMmYwNGU0MTc1MWYzNjE3ZDExZmNmNzBkYjc2OWRj
NDExMjhmOWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA3LTI3ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xz
Q2hyb21pdW1BbmRyb2lkLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5
LWJ1dHRvbik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5
LXBsYXktYnV0dG9uKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQ
bGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9s
cyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5oOgorICAgICAgICAoTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVt
ZW50KToKKyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1B
bmRyb2lkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQ6OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRy
b2lkOjpwbGF5YmFja1N0b3BwZWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6CisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCk6CisgICAgICAgICogcGxh
dGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtQW5kcm9pZC5oOgorCiAyMDEyLTA3LTI3ICBUaGlhZ28gTWFyY29zIFAuIFNh
bnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEy
Mzg1Nik6IEJyZWFrcyB0aGUgYnVpbGQgd2hlbiBkaXNhYmxpbmcgaW5zcGVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkKaW5kZXggODM3YmJhOWY2MDkzOTUwZWQ3ZDEyMTMxYjZkMTQ0MjMzNzM3NzU2OS4uM2Vj
ODRmNGI1MjY4YThjMmM0MTA2YjBhMTQ2YzVmODBmOWNlMTNmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtNTc0MCw2ICs1NzQwLDggQEAKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xFbGVtZW50cy5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oJywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAnLAorICAgICAgICAgICAgJ2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmgnLAogICAg
ICAgICAgICAgJ2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5jcHAnLAogICAgICAgICAg
ICAgJ2h0bWwvc2hhZG93L01ldGVyU2hhZG93RWxlbWVudC5oJywKICAgICAgICAgICAgICdodG1s
L3NoYWRvdy9Qcm9ncmVzc1NoYWRvd0VsZW1lbnQuY3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCmluZGV4IGE4OGY0OWNkYWQ0ZDQxNDk1NmJm
MWFkMGViNjVjYTE1YzVlYmYzODkuLmQ1MDI3NWJmMWQ0NWMxYTBhOTI5OWQxZjhiMTAxMTQ1OTM4
Y2QyMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1h
cHBpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaApAQCAtMzgzLDYgKzM4Myw5IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZh
bHVlOjpDU1NQcmltaXRpdmVWYWx1ZShDb250cm9sUGFydCBlKQogICAgICAgICBjYXNlIE1lZGlh
UGxheUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRp
YVBsYXlCdXR0b247CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBNZWRpYU92ZXJs
YXlQbGF5QnV0dG9uUGFydDoKKyAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1l
ZGlhT3ZlcmxheVBsYXlCdXR0b247CisgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBN
ZWRpYU11dGVCdXR0b25QYXJ0OgogICAgICAgICAgICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVl
TWVkaWFNdXRlQnV0dG9uOwogICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCmluZGV4IDZlMGRiMjhmNzI2NzZkZjYyYjc2NjQ0NmYyNTEyODUzNjcy
MjExYzguLmI2MzUwNzIyYjhmNzQyMjI2NDU4OTY0NDAzZmNhMjFhMTdkMzdmOGIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBAIC02NDQsNiArNjQ0LDcgQEAgbWVkaWEt
ZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyCiBtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIt
dGh1bWIKIG1lZGlhLW11dGUtYnV0dG9uCiBtZWRpYS1wbGF5LWJ1dHRvbgorbWVkaWEtb3Zlcmxh
eS1wbGF5LWJ1dHRvbgogbWVkaWEtc2Vlay1iYWNrLWJ1dHRvbgogbWVkaWEtc2Vlay1mb3J3YXJk
LWJ1dHRvbgogbWVkaWEtcmV3aW5kLWJ1dHRvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL21lZGlhQ29udHJvbHMuY3NzIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMu
Y3NzCmluZGV4IGRhMWU2YzgzMmVlYTA4YmJkMjM1OGRiMzhmMzdlY2RiMGY1MDllYTcuLjlkODIy
MWU0N2ZjNWE5MWMzYWU1NmZjMDJhYjRhYjNkZjg5YzYwMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVk
aWFDb250cm9scy5jc3MKQEAgLTgxLDYgKzgxLDEwIEBAIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW11dGUtYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1
CiAgICAgY29sb3I6IGluaGVyaXQ7CiB9CiAKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LW92ZXJsYXktcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJs
YXktcGxheS1idXR0b24geworICAgIGRpc3BsYXk6IG5vbmU7Cit9CisKIGF1ZGlvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9s
cy1wbGF5LWJ1dHRvbiB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1wbGF5LWJ1dHRv
bjsKICAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNzcyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNzcwppbmRleCAyMWI2NDdjMzgzMTQ2MTFi
YTdiZTc0NDhmYWMxZDVlNzhhYWMwNWYwLi4xMGY3ZjFlNjQzM2NmY2MzMzVjMDc4ODYwNGYzOWQ3
Y2VhNWYwNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0No
cm9taXVtQW5kcm9pZC5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHND
aHJvbWl1bUFuZHJvaWQuY3NzCkBAIC03NSw2ICs3NSwyMiBAQCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1lbmNsb3N1cmUgewogICAgIGhlaWdodDogMzVweDsKIH0KIAorYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtb3ZlcmxheS1lbmNsb3N1cmUgeworICAgIGRpc3BsYXk6IG5v
bmU7Cit9CisKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJl
IHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICAtd2Via2l0LWJveC1vcmllbnQ6IGhv
cml6b250YWw7CisgICAgLXdlYmtpdC1ib3gtcGFjazpjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gt
YWxpZ246Y2VudGVyOworICAgIC13ZWJraXQtYm94LWZsZXg6MTsKKyAgICB3aWR0aDogMTAwJTsK
KyAgICBtYXgtd2lkdGg6IDgwMHB4OworICAgIHRleHQtaW5kZW50OiAwOworICAgIGJveC1zaXpp
bmc6IGJvcmRlci1ib3g7Cit9CisKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUt
YnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiB7CiAgICAg
ZGlzcGxheTogbm9uZTsKIH0KQEAgLTkyLDYgKzEwOCwxOCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxh
eS1idQogICAgIHBhZGRpbmc6IDA7CiB9CiAKK3ZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xz
LW92ZXJsYXktcGxheS1idXR0b24geworICAgIC13ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtb3Zl
cmxheS1wbGF5LWJ1dHRvbjsKKyAgICAtd2Via2l0LWJveC1hbGlnbjogY2VudGVyOworICAgIGRp
c3BsYXk6IC13ZWJraXQtYm94OworICAgIGJvcmRlcjogbm9uZTsKKyAgICBib3gtc2l6aW5nOiBi
b3JkZXItYm94OworICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50OworICAgIHdpZHRo
OiA4MHB4OworICAgIGhlaWdodDogODBweDsKKyAgICBwYWRkaW5nOiAwOworfQorCiBhdWRpbzo6
LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwgdmlkZW86Oi13ZWJr
aXQtbWVkaWEtY29udHJvbHMtY3VycmVudC10aW1lLWRpc3BsYXksCiBhdWRpbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5LCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy10aW1lLXJlbWFpbmluZy1kaXNwbGF5IHsKICAgICAtd2Via2l0LWFwcGVhcmFu
Y2U6IG1lZGlhLWN1cnJlbnQtdGltZS1kaXNwbGF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCmluZGV4IDczMTQ0OTYxMDc2NTIz
YTQwNjlmNGIyNDE1MWQwYjU2MmNhMGQ4MmIuLjJjNGJkOWU5MTlkZTA5YzI1MjYxNmY1YjVhNmRk
M2IzNjU1ZTA2ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlh
Q29udHJvbEVsZW1lbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5jcHAKQEAgLTYxMiw2ICs2MTIsNDYgQEAgY29uc3QgQXRvbWljU3Ry
aW5nJiBNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25z
dAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2lubGluZSBNZWRpYUNvbnRy
b2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9u
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xJbnB1dEVsZW1l
bnQoZG9jdW1lbnQsIE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pCit7Cit9CisKK1Bhc3NSZWZQdHI8
TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBNZWRpYUNvbnRyb2xPdmVybGF5
UGxheUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgUmVm
UHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudD4gYnV0dG9uID0gYWRvcHRS
ZWYobmV3IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudChkb2N1bWVudCkpOwor
ICAgIGJ1dHRvbi0+Y3JlYXRlU2hhZG93U3VidHJlZSgpOworICAgIGJ1dHRvbi0+c2V0VHlwZSgi
YnV0dG9uIik7CisgICAgcmV0dXJuIGJ1dHRvbi5yZWxlYXNlKCk7Cit9CisKK3ZvaWQgTWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
KiBldmVudCkKK3sKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkuY2xpY2tF
dmVudCAmJiBtZWRpYUNvbnRyb2xsZXIoKS0+Y2FuUGxheSgpKSB7CisgICAgICAgIG1lZGlhQ29u
dHJvbGxlcigpLT5wbGF5KCk7CisgICAgICAgIHVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIH0KKyAgICBIVE1MSW5wdXRFbGVtZW50
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKGV2ZW50KTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xPdmVy
bGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBlKCkKK3sKKyAgICBpZiAobWVk
aWFDb250cm9sbGVyKCktPmNhblBsYXkoKSkgeworICAgICAgICBzaG93KCk7CisgICAgICAgIHNl
dERpc3BsYXlUeXBlKE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOworICAgIH0gZWxzZQorICAgICAg
ICBoaWRlKCk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sT3ZlcmxheVBs
YXlCdXR0b25FbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zl
cmxheS1wbGF5LWJ1dHRvbiIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKKy8vIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKwogaW5saW5lIE1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQsIE1lZGlh
Q29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKQogICAgIDogTWVkaWFDb250cm9sSW5wdXRF
bGVtZW50KGRvY3VtZW50LCBkaXNwbGF5VHlwZSkKICAgICAsIG1fYWN0aW9uT25TdG9wKE5vdGhp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xF
bGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVu
dHMuaAppbmRleCBlZmRiMjFmMGRhYTAwZGQ3NjA1NDAwYzIzNTRhZjViN2JjNjcyYmQyLi5jMTUx
NGUyMzE3ZDBiODk0OWVlODAxMWM5YzcwYjA5MWM5YzA4Mjk5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKQEAgLTc0LDYgKzc0LDcg
QEAgZW51bSBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSB7CiAgICAgTWVkaWFUZXh0VHJhY2tEaXNw
bGF5Q29udGFpbmVyLAogICAgIE1lZGlhVGV4dFRyYWNrRGlzcGxheSwKICAgICBNZWRpYUV4aXRG
dWxsc2NyZWVuQnV0dG9uLAorICAgIE1lZGlhT3ZlcmxheVBsYXlCdXR0b24sCiB9OwogCiBIVE1M
TWVkaWFFbGVtZW50KiB0b1BhcmVudE1lZGlhRWxlbWVudChOb2RlKik7CkBAIC0yNzEsNiArMjcy
LDIwIEBAIHByaXZhdGU6CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorY2xh
c3MgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50IDogcHVibGljIE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAg
IHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZURpc3BsYXlUeXBlKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFD
b250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKK307CisKKy8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIGNsYXNzIE1lZGlhQ29udHJvbFNlZWtCdXR0b25F
bGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbElucHV0RWxlbWVudCB7CiBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bS5jcHAKaW5kZXggZmJkM2ZmY2E4MTFmZDFhMzU0ZmU4ZGM2ZDNlNDM2M2QwM2I0NjE2
Zi4uNjJmOWU4NTk5MDQwMDUwYWM0NDFhY2NiN2ZjOThkYThmYjRiZDNhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5jcHAKQEAgLTUzLDE5ICs1MywyMyBAQCBNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChE
b2N1bQogewogfQogCi1QYXNzUmVmUHRyPE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxl
bWVudD4gTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Ci19Ci0KIE1lZGlhQ29udHJvbEVsZW1l
bnRUeXBlIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6ZGlzcGxheVR5cGUo
KSBjb25zdAogewogICAgIC8vIE1hcHBpbmcgb250byBzYW1lIE1lZGlhQ29udHJvbEVsZW1lbnRU
eXBlIGFzIHBhbmVsIGVsZW1lbnQsIHNpbmNlIGl0IGhhcyBzaW1pbGFyIHByb3BlcnRpZXMuCiAg
ICAgcmV0dXJuIE1lZGlhQ29udHJvbHNQYW5lbDsKIH0KIAorTWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQq
IGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRv
Y3VtZW50KQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxl
bWVudD4gTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUGFuZWxF
bmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Cit9CiAKLWNvbnN0IEF0b21pY1N0cmluZyYgTWVk
aWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
Citjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSIpKTsKICAgICBy
ZXR1cm4gaWQ7CkBAIC05MiwxMCArOTYsMTMgQEAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCogZG9jdW0KIHsK
IH0KIAorLy8gTWVkaWFDb250cm9sczo6Y3JlYXRlKCkgZm9yIEFuZHJvaWQgaXMgZGVmaW5lZCBp
biBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAuCisjaWYgIU9TKEFO
RFJPSUQpCiBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlhQ29udHJvbHM6OmNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgcmV0dXJuIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW06OmNyZWF0ZShkb2N1bWVudCk7CiB9CisjZW5kaWYKIAogUGFzc1JlZlB0cjxNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewpAQCAtMTA0LDY4ICsxMTEsNzYgQEAg
UGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtPiBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpjcmUKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtPiBjb250cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtKGRvY3VtZW50KSk7CiAKKyAgICBpZiAoY29udHJvbHMtPmluaXRpYWxpemVD
b250cm9scyhkb2N1bWVudCkpCisgICAgICAgIHJldHVybiBjb250cm9scy5yZWxlYXNlKCk7CisK
KyAgICByZXR1cm4gMDsKK30KKworYm9vbCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
Ojppbml0aWFsaXplQ29udHJvbHMoRG9jdW1lbnQqIGRvY3VtZW50KQorewogICAgIC8vIENyZWF0
ZSBhbiBlbmNsb3NpbmcgZWxlbWVudCBmb3IgdGhlIHBhbmVsIHNvIHdlIGNhbiB2aXN1YWxseSBv
ZmZzZXQgdGhlIGNvbnRyb2xzIGNvcnJlY3RseS4KLSAgICBSZWZQdHI8TWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xDaHJvbWl1bUVu
Y2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gZW5jbG9zdXJlID0gTWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJv
bFBhbmVsRWxlbWVudD4gcGFuZWwgPSBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CiAKICAgICBFeGNlcHRpb25Db2RlIGVjOwogCiAgICAgUmVmUHRyPE1lZGlhQ29u
dHJvbFBsYXlCdXR0b25FbGVtZW50PiBwbGF5QnV0dG9uID0gTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fcGxheUJ1dHRvbiA9
IHBsYXlCdXR0b24uZ2V0KCk7CisgICAgbV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsK
ICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsK
ICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlh
Q29udHJvbFRpbWVsaW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250cm9scy5nZXQoKSk7
Ci0gICAgY29udHJvbHMtPm1fdGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKKyAgICBSZWZQdHI8
TWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50PiB0aW1lbGluZSA9IE1lZGlhQ29udHJvbFRpbWVs
aW5lRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlzKTsKKyAgICBtX3RpbWVsaW5lID0gdGlt
ZWxpbmUuZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHRpbWVsaW5lLnJlbGVhc2UoKSwg
ZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlFbGVt
ZW50PiBjdXJyZW50VGltZURpc3BsYXkgPSBNZWRpYUNvbnRyb2xDdXJyZW50VGltZURpc3BsYXlF
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2N1cnJlbnRUaW1lRGlz
cGxheSA9IGN1cnJlbnRUaW1lRGlzcGxheS5nZXQoKTsKLSAgICBjb250cm9scy0+bV9jdXJyZW50
VGltZURpc3BsYXktPmhpZGUoKTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheSA9IGN1cnJlbnRU
aW1lRGlzcGxheS5nZXQoKTsKKyAgICBtX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOwogICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChjdXJyZW50VGltZURpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1
ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudD4g
ZHVyYXRpb25EaXNwbGF5ID0gTWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rpc3BsYXlFbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQpOwotICAgIGNvbnRyb2xzLT5tX2R1cmF0aW9uRGlzcGxheSA9IGR1
cmF0aW9uRGlzcGxheS5nZXQoKTsKKyAgICBtX2R1cmF0aW9uRGlzcGxheSA9IGR1cmF0aW9uRGlz
cGxheS5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZHVyYXRpb25EaXNwbGF5LnJlbGVh
c2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25F
bGVtZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVt
ZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV9w
YW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7CisgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbFBhbmVsTXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7CisgICAg
bV9wYW5lbE11dGVCdXR0b24gPSBwYW5lbE11dGVCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKHBhbmVsTXV0ZUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAo
ZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudD4gc2xpZGVyID0gTWVkaWFDb250cm9s
Vm9sdW1lU2xpZGVyRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+bV92
b2x1bWVTbGlkZXIgPSBzbGlkZXIuZ2V0KCk7Ci0gICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVy
LT5zZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7CisgICAgbV92b2x1bWVTbGlk
ZXIgPSBzbGlkZXIuZ2V0KCk7CisgICAgbV92b2x1bWVTbGlkZXItPnNldENsZWFyTXV0ZWRPblVz
ZXJJbnRlcmFjdGlvbih0cnVlKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoc2xpZGVyLnJlbGVh
c2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9u
RWxlbWVudD4gZnVsbHNjcmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNvbnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+
bV9mdWxsc2NyZWVuQnV0dG9uID0gZnVsbHNjcmVlbkJ1dHRvbi5nZXQoKTsKKyAgICBSZWZQdHI8
TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxzY3JlZW5CdXR0b24gPSBN
ZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCB0aGlz
KTsKKyAgICBtX2Z1bGxzY3JlZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgpOwogICAg
IHBhbmVsLT5hcHBlbmRDaGlsZChmdWxsc2NyZWVuQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRydWUp
OwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIGNvbnRyb2xzLT5tX3BhbmVsID0gcGFuZWwuZ2V0KCk7CisgICAgbV9wYW5lbCA9IHBh
bmVsLmdldCgpOwogICAgIGVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQocGFuZWwucmVsZWFzZSgpLCBl
YywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IGZhbHNlOwogCi0gICAgY29udHJvbHMtPm1fZW5jbG9zdXJlID0gZW5jbG9zdXJlLmdldCgpOwot
ICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7
CisgICAgbV9lbmNsb3N1cmUgPSBlbmNsb3N1cmUuZ2V0KCk7CisgICAgYXBwZW5kQ2hpbGQoZW5j
bG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBjb250cm9scy5yZWxlYXNl
KCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKIHZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bTo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSogY29u
dHJvbGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaAppbmRleCBkNjgzMzk5M2QwODljMTBhZmQx
OWZjNmM4MzRhNDQzMmY1MTFiNDQyLi5hODI3ZjExMTZlYWVhZTY5NTVkZjE3NDMzMzcxNWQ3NGVh
ZWJmNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCkBAIC02MywxMyArNjMsMTkgQEAgY2xh
c3MgTWVkaWFDb250cm9sVGV4dFRyYWNrRGlzcGxheUVsZW1lbnQ7CiAjZW5kaWYKIAogY2xhc3Mg
TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJv
bEVsZW1lbnQgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbENo
cm9taXVtRW5jbG9zdXJlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7Ci0KLXByaXZhdGU6Citw
cm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVt
ZW50KERvY3VtZW50Kik7CiAKK3ByaXZhdGU6CiAgICAgdmlydHVhbCBNZWRpYUNvbnRyb2xFbGVt
ZW50VHlwZSBkaXNwbGF5VHlwZSgpIGNvbnN0OworfTsKKworY2xhc3MgTWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJl
RWxlbWVudCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBjb25zdDsKIH07
CiAKQEAgLTc4LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNyZWF0ZShEb2N1bWVudCopOwogCiAgICAgLy8g
TWVkaWFDb250cm9scyBpbXBsZW1lbnRhdGlvbi4KLSAgICB2b2lkIHNldE1lZGlhQ29udHJvbGxl
cihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFD
b250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOwogCiAgICAgdm9pZCBzaG93KCk7
CiAgICAgdm9pZCBoaWRlKCk7CkBAIC04Nyw5ICs5Myw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
cmVzZXQoKTsKIAotICAgIHZvaWQgcGxheWJhY2tQcm9ncmVzc2VkKCk7Ci0gICAgdm9pZCBwbGF5
YmFja1N0YXJ0ZWQoKTsKLSAgICB2b2lkIHBsYXliYWNrU3RvcHBlZCgpOworICAgIHZpcnR1YWwg
dm9pZCBwbGF5YmFja1Byb2dyZXNzZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGFy
dGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RvcHBlZCgpOwogCiAgICAgdm9pZCBj
aGFuZ2VkTXV0ZSgpOwogICAgIHZvaWQgY2hhbmdlZFZvbHVtZSgpOwpAQCAtMTE2LDkgKzEyMiwx
MyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSGlkZUNvbnRyb2xzKCk7CiAK
LXByaXZhdGU6Ci0gICAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCop
OworcHJvdGVjdGVkOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0oRG9jdW1lbnQqKTsKIAorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBzdWNjZXNzZnVsLCBvdGhl
cndpc2UgcmV0dXJuIGZhbHNlLgorICAgIGJvb2wgaW5pdGlhbGl6ZUNvbnRyb2xzKERvY3VtZW50
Kik7CisKK3ByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQqKTsKICAgICB2b2lkIGhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPE1l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+Kik7CiAgICAgdm9pZCBzdGFydEhpZGVGdWxs
c2NyZWVuQ29udHJvbHNUaW1lcigpOwpAQCAtMTM4LDcgKzE0OCw4IEBAIHByaXZhdGU6CiAgICAg
TWVkaWFDb250cm9sVm9sdW1lU2xpZGVyRWxlbWVudCogbV92b2x1bWVTbGlkZXI7CiAgICAgTWVk
aWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQqIG1fZnVsbHNjcmVlbkJ1dHRvbjsKICAg
ICBNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQqIG1fcGFuZWw7Ci0gICAgTWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50KiBtX2VuY2xvc3VyZTsKKyAgICBNZWRpYUNvbnRyb2xQYW5l
bEVuY2xvc3VyZUVsZW1lbnQqIG1fZW5jbG9zdXJlOworCiAjaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQogICAgIE1lZGlhQ29udHJvbFRleHRUcmFja0NvbnRhaW5lckVsZW1lbnQqIG1fdGV4dERpc3Bs
YXlDb250YWluZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lk
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NTYzNGE4NDc2ZGU4ZTRjNzhmMDNjODU5Mzg1MDI1NjJhZGZmZTMy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuY3BwCkBAIC0wLDAgKzEsMTEzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRF
UiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVS
LCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgRU5BQkxFKFZJREVPKQorI2luY2x1ZGUg
Ik1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmgiCisKKyNpbmNsdWRlICJN
ZWRpYUNvbnRyb2xFbGVtZW50cy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xDaHJvbWl1bUVu
Y2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9s
T3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKK30KKwor
Y29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6
c2hhZG93UHNldWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWlj
U3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlIikp
OworICAgIHJldHVybiBpZDsKK30KKworTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFu
ZHJvaWQ6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkKERvY3VtZW50KiBk
b2N1bWVudCkKKyAgICA6IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQp
CisgICAgLCBtX292ZXJsYXlQbGF5QnV0dG9uKDApCisgICAgLCBtX292ZXJsYXlFbmNsb3N1cmUo
MCkKK3sKK30KKworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIHJldHVybiBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZDo6Y3JlYXRlKGRvY3VtZW50KTsKK30KKworUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZD4gTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAg
aWYgKCFkb2N1bWVudC0+cGFnZSgpKQorICAgICAgICByZXR1cm4gMDsKKworICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZD4gY29udHJvbHMgPSBhZG9wdFJl
ZihuZXcgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoZG9jdW1lbnQpKTsK
KworICAgIEV4Y2VwdGlvbkNvZGUgZWM7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sT3Zlcmxh
eUVuY2xvc3VyZUVsZW1lbnQ+IG92ZXJsYXlFbmNsb3N1cmUgPSBNZWRpYUNvbnRyb2xPdmVybGF5
RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWZQdHI8TWVkaWFDb250
cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBvdmVybGF5UGxheUJ1dHRvbiA9IE1lZGlhQ29u
dHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBjb250
cm9scy0+bV9vdmVybGF5UGxheUJ1dHRvbiA9IG92ZXJsYXlQbGF5QnV0dG9uLmdldCgpOworICAg
IG92ZXJsYXlFbmNsb3N1cmUtPmFwcGVuZENoaWxkKG92ZXJsYXlQbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBjb250
cm9scy0+bV9vdmVybGF5RW5jbG9zdXJlID0gb3ZlcmxheUVuY2xvc3VyZS5nZXQoKTsKKyAgICBj
b250cm9scy0+YXBwZW5kQ2hpbGQob3ZlcmxheUVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKKyAgICBpZiAoZWMpCisgICAgICAgIHJldHVybiAwOworCisgICAgaWYgKGNvbnRyb2xzLT5p
bml0aWFsaXplQ29udHJvbHMoZG9jdW1lbnQpKQorICAgICAgICByZXR1cm4gY29udHJvbHMucmVs
ZWFzZSgpOworCisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQ6OnNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRl
cmZhY2UqIGNvbnRyb2xsZXIpCit7CisgICAgaWYgKG1fb3ZlcmxheVBsYXlCdXR0b24pCisgICAg
ICAgIG1fb3ZlcmxheVBsYXlCdXR0b24tPnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsK
KyAgICBpZiAobV9vdmVybGF5RW5jbG9zdXJlKQorICAgICAgICBtX292ZXJsYXlFbmNsb3N1cmUt
PnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVyKTsKKyAgICBNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7Cit9CisKK3ZvaWQg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQ6OnBsYXliYWNrU3RhcnRlZCgp
Cit7CisgICAgbV9vdmVybGF5UGxheUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKKyAgICBN
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpwbGF5YmFja1N0YXJ0ZWQoKTsKK30KKwor
dm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdG9w
cGVkKCkKK3sKKyAgICBtX292ZXJsYXlQbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5VHlwZSgpOwor
ICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3RvcHBlZCgpOwor
fQorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOWM3NzQ4M2Y5OGUyMjg2MGMzNzVhODU4NDc1MDBlNjFhODQ0YzdjZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW1BbmRyb2lkLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWRfaAorI2RlZmluZSBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZF9oCisKKyNpZiBFTkFCTEUoVklERU8p
CisKKyNpbmNsdWRlICJNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVt
ZW50OworCitjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCA6IHB1Ymxp
YyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBjcmVh
dGUoRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xPdmVy
bGF5RW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOworICAgIHZpcnR1YWwgY29uc3QgQXRvbWlj
U3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0OworfTsKKworY2xhc3MgTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQgOiBwdWJsaWMgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bSB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQ+IGNyZWF0ZShEb2N1bWVudCopOworCisgICAgdmly
dHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdGFydGVkKCk7CisgICAgdmlydHVhbCB2b2lkIHBs
YXliYWNrU3RvcHBlZCgpOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkKERvY3VtZW50Kik7CisKKyAgICBNZWRpYUNvbnRyb2xP
dmVybGF5UGxheUJ1dHRvbkVsZW1lbnQqIG1fb3ZlcmxheVBsYXlCdXR0b247CisgICAgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQqIG1fb3ZlcmxheUVuY2xvc3VyZTsKK307CisK
K30KKworI2VuZGlmCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vVGhlbWVUeXBlcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCmlu
ZGV4IDEyMDhhOWEyZWU1NjYzMDhkY2IyNGJkMjIzOGUwN2ZkNGUwMDU2NjguLjhlZjZiMjM3NTRm
ZTBiMWE2MzQ3ZDViYzgyYzQ3NzJmMTE4NTk4ZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVt
ZVR5cGVzLmgKQEAgLTQ4LDggKzQ4LDggQEAgdHlwZWRlZiB1bnNpZ25lZCBDb250cm9sU3RhdGVz
OwogZW51bSBDb250cm9sUGFydCB7CiAgICAgTm9Db250cm9sUGFydCwgQ2hlY2tib3hQYXJ0LCBS
YWRpb1BhcnQsIFB1c2hCdXR0b25QYXJ0LCBTcXVhcmVCdXR0b25QYXJ0LCBCdXR0b25QYXJ0LAog
ICAgIEJ1dHRvbkJldmVsUGFydCwgRGVmYXVsdEJ1dHRvblBhcnQsIElubmVyU3BpbkJ1dHRvblBh
cnQsIElucHV0U3BlZWNoQnV0dG9uUGFydCwgTGlzdGJveFBhcnQsIExpc3RJdGVtUGFydCwKLSAg
ICBNZWRpYUVudGVyRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0
b25QYXJ0LCBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYUZ1bGxTY3JlZW5W
b2x1bWVTbGlkZXJUaHVtYlBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlhUGxheUJ1dHRv
blBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0LCAKLSAgICBNZWRpYVNlZWtGb3J3YXJkQnV0
dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJldHVyblRvUmVhbHRpbWVCdXR0
b25QYXJ0LCBNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9uUGFydCwKKyAgICBNZWRpYUVu
dGVyRnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b25QYXJ0LCBN
ZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlkZXJQYXJ0LCBNZWRpYUZ1bGxTY3JlZW5Wb2x1bWVTbGlk
ZXJUaHVtYlBhcnQsIE1lZGlhTXV0ZUJ1dHRvblBhcnQsIE1lZGlhUGxheUJ1dHRvblBhcnQsCisg
ICAgTWVkaWFPdmVybGF5UGxheUJ1dHRvblBhcnQsIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0LCBN
ZWRpYVNlZWtGb3J3YXJkQnV0dG9uUGFydCwgTWVkaWFSZXdpbmRCdXR0b25QYXJ0LCBNZWRpYVJl
dHVyblRvUmVhbHRpbWVCdXR0b25QYXJ0LCBNZWRpYVRvZ2dsZUNsb3NlZENhcHRpb25zQnV0dG9u
UGFydCwKICAgICBNZWRpYVNsaWRlclBhcnQsIE1lZGlhU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYVZv
bHVtZVNsaWRlckNvbnRhaW5lclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyUGFydCwgTWVkaWFWb2x1
bWVTbGlkZXJUaHVtYlBhcnQsCiAgICAgTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uUGFydCwg
TWVkaWFDb250cm9sc0JhY2tncm91bmRQYXJ0LCBNZWRpYUNvbnRyb2xzRnVsbHNjcmVlbkJhY2tn
cm91bmRQYXJ0LCBNZWRpYUN1cnJlbnRUaW1lUGFydCwgTWVkaWFUaW1lUmVtYWluaW5nUGFydCwK
ICAgICBNZW51bGlzdFBhcnQsIE1lbnVsaXN0QnV0dG9uUGFydCwgTWVudWxpc3RUZXh0UGFydCwg
TWVudWxpc3RUZXh0RmllbGRQYXJ0LCBNZXRlclBhcnQsIFByb2dyZXNzQmFyUGFydCwgUHJvZ3Jl
c3NCYXJWYWx1ZVBhcnQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCmluZGV4IGIzYjgyOTgyYzk5ZmE5NWJlNGI5
OTZkMzQyNDVjZmNmMTA0YzEyMzMuLmQyOTU0ZGMzYWJmOTlhZGZiMjY3NGQ4NTRhMzlhMTM4NWFl
MDg4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYUNv
bnRyb2xzQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwCkBAIC0xMTEsNiArMTExLDE5IEBAIHN0YXRpYyBib29s
IHBhaW50TWVkaWFQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mCiAgICAgcmV0dXJuIHBhaW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRl
eHQsIHJlY3QsIG1lZGlhRWxlbWVudC0+Y2FuUGxheSgpID8gbWVkaWFQbGF5IDogbWVkaWFQYXVz
ZSk7CiB9CiAKK3N0YXRpYyBib29sIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJP
YmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJlY3Qm
IHJlY3QpCit7CisgICAgSFRNTE1lZGlhRWxlbWVudCogbWVkaWFFbGVtZW50ID0gdG9QYXJlbnRN
ZWRpYUVsZW1lbnQob2JqZWN0KTsKKyAgICBpZiAoIW1lZGlhRWxlbWVudCkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgaWYgKCFoYXNTb3VyY2UobWVkaWFFbGVtZW50KSB8fCAhbWVkaWFF
bGVtZW50LT5jYW5QbGF5KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHN0YXRpYyBJ
bWFnZSogbWVkaWFPdmVybGF5UGxheSA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVyT3Zl
cmxheVBsYXkiKTsKKyAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihwYWludEluZm8uY29udGV4
dCwgcmVjdCwgbWVkaWFPdmVybGF5UGxheSk7Cit9CisKIHN0YXRpYyBJbWFnZSogZ2V0TWVkaWFT
bGlkZXJUaHVtYigpCiB7CiAgICAgc3RhdGljIEltYWdlKiBtZWRpYVNsaWRlclRodW1iID0gcGxh
dGZvcm1SZXNvdXJjZSgibWVkaWFwbGF5ZXJTbGlkZXJUaHVtYiIpOwpAQCAtMzM0LDYgKzM0Nyw4
IEBAIGJvb2wgUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQ
YXJ0KE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlCiAgICAgY2FzZSBNZWRpYUVudGVyRnVsbHNjcmVl
bkJ1dHRvbjoKICAgICBjYXNlIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b246CiAgICAgICAgIHJl
dHVybiBwYWludE1lZGlhRnVsbHNjcmVlbkJ1dHRvbihvYmplY3QsIHBhaW50SW5mbywgcmVjdCk7
CisgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uOgorICAgICAgICByZXR1cm4gcGFpbnRN
ZWRpYU92ZXJsYXlQbGF5QnV0dG9uKG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKICAgICBjYXNl
IE1lZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvbjoKICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0
b246CiAgICAgY2FzZSBNZWRpYVNlZWtGb3J3YXJkQnV0dG9uOgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAKaW5kZXggZjg5NjczMjM3ZDY2MWNhNWYzMjNhYzBkYTI0MjAz
YWE5NjIwZDQ1My4uZjE2NjE3MjJlNzMzNjgwMzRjNzZmNmQ2ZGJlZDc2NzFiODM3ZmY5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCkBAIC0zMjksNiArMzI5LDgg
QEAgYm9vbCBSZW5kZXJUaGVtZTo6cGFpbnQoUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgSW50UmUKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlh
RnVsbHNjcmVlbkJ1dHRvbihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhUGxh
eUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYVBsYXlCdXR0b24obywg
cGFpbnRJbmZvLCByKTsKKyAgICAgICAgY2FzZSBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFydDoK
KyAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24obywgcGFpbnRJ
bmZvLCByKTsKICAgICAgICAgY2FzZSBNZWRpYU11dGVCdXR0b25QYXJ0OgogICAgICAgICAgICAg
cmV0dXJuIHBhaW50TWVkaWFNdXRlQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNh
c2UgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5oCmluZGV4IDYyOTgzNGJjODBlZmQyNGU3ZTFhMjMwYWU5YmFhNzUyNWQ5MWI4NmQuLjNk
Mzk3NjI2NmJmNWE3YTcwYTI0NGQwNTk0ZWQyYzYwMjUyOGUxMzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0zMTgsNiArMzE4LDcgQEAgcHJvdGVjdGVkOgogICAg
IHZpcnR1YWwgdm9pZCBhZGp1c3RNZWRpYUNvbnRyb2xTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVu
ZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFG
dWxsc2NyZWVuQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IElu
dFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFQbGF5
QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7
IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1
dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhTXV0ZUJ1dHRvbihSZW5k
ZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0JhY2tCdXR0b24oUmVuZGVyT2Jq
ZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYVNlZWtGb3J3YXJkQnV0dG9uKFJlbmRlck9iamVj
dCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFu
ZHJvaWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkLmNwcAppbmRleCA5MjQwZGYzNGNjODdlZmNmMTUyMDRiNDUyOGQwMGU3YzQ5NDQ4ZjI0
Li5iZTM3MDE5MTM5YWZjNWU0MmY3OGUyNDM0NDc2NTExMzQ1YTY5OGJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5j
cHAKQEAgLTg4LDYgKzg4LDE4IEBAIHZvaWQgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OmFk
anVzdElubmVyU3BpbkJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kCiAgICAgfQogfQog
Citib29sIFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpwYWludE1lZGlhT3ZlcmxheVBsYXlC
dXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBJbnRSZWN0JiByZWN0KQoreworI2lmIEVOQUJMRShWSURFTykKKyAgICByZXR1cm4gUmVu
ZGVyTWVkaWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KE1lZGlhT3Zl
cmxheVBsYXlCdXR0b24sIG9iamVjdCwgcGFpbnRJbmZvLCByZWN0KTsKKyNlbHNlCisgICAgVU5V
U0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHBhaW50SW5mbyk7CisgICAgVU5V
U0VEX1BBUkFNKHJlY3QpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiBpbnQgUmVu
ZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6Om1lbnVMaXN0QXJyb3dQYWRkaW5nKCkgY29uc3QKIHsK
ICAgICAvLyBXZSBjYW5ub3QgdXNlIHRoZSBzY3JvbGxiYXIgdGhpY2tuZXNzIGhlcmUsIGFzIGl0
J3Mgd2lkdGggaXMgMCBvbiBBbmRyb2lkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaAppbmRleCBjM2U0YjhiZWQxYWY4OTc1
YmYyYzQ2NDg4NWRhMzIxMTFkOWU2Zjg0Li4wMjc2MjhlODFhZTEyY2YxZmI3OGQxNDIxZDEzY2Ew
MWNmNjI5OTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVDaHJvbWl1bUFuZHJvaWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQuaApAQCAtNDEsNiArNDEsOCBAQCBwdWJsaWM6CiAKICAgICB2
aXJ0dWFsIGJvb2wgZGVsZWdhdGVzTWVudUxpc3RSZW5kZXJpbmcoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSBP
VkVSUklERTsKKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIFN0cmluZyBleHRyYU1l
ZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgT1ZFUlJJREU7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155118</attachid>
            <date>2012-07-28 01:02:33 -0700</date>
            <delta_ts>2012-07-28 01:11:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120728010220.patch</filename>
            <type>text/plain</type>
            <size>35396</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVjODQzNmI1NTkwYWI4
ZjM1NDhmM2I3MmU4NzM2NGE0YTQyYzYwMC4uMmYwNGU0MTc1MWYzNjE3ZDExZmNmNzBkYjc2OWRj
NDExMjhmOWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA3LTI3ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xz
Q2hyb21pdW1BbmRyb2lkLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5
LWJ1dHRvbik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5
LXBsYXktYnV0dG9uKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQ
bGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9s
cyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5oOgorICAgICAgICAoTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVt
ZW50KToKKyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1B
bmRyb2lkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQ6OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRy
b2lkOjpwbGF5YmFja1N0b3BwZWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6CisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCk6CisgICAgICAgICogcGxh
dGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtQW5kcm9pZC5oOgorCiAyMDEyLTA3LTI3ICBUaGlhZ28gTWFyY29zIFAuIFNh
bnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEy
Mzg1Nik6IEJyZWFrcyB0aGUgYnVpbGQgd2hlbiBkaXNhYmxpbmcgaW5zcGVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGNhY2I4OTYyMTk3YTEzNzQ4ZjQwY2M3
ZmFkZmU5YjczZWY2ZDUzYjYuLjI0MWFiZTBhZjJlOTg1NGQzZmM2YmVkOTk1Njg4ZjlmZWExNDdl
YmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0xNTM5LDYgKzE1
MzksMTMgQEAKICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgWydleGNsdWRlJywgJ0FsbElu
T25lXFwuY3BwJCddLAogICAgICAgXSwKKyAgICAgICdjb25kaXRpb25zJzogWworICAgICAgICBb
J09TIT0iQU5EUk9JRCInLCB7CisgICAgICAgICAgJ3NvdXJjZXMvJzogWworICAgICAgICAgICAg
WydleGNsdWRlJywgJ0FuZHJvaWRcXC5jcHAkJ10sCisgICAgICAgICAgXSwKKyAgICAgICAgfV0s
CisgICAgICBdLAogICAgIH0sCiAgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ3dlYmNvcmVf
c3ZnJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4MzdiYmE5ZjYwOTM5NTBlZDdkMTIxMzFiNmQxNDQy
MzM3Mzc3NTY5Li4zZWM4NGY0YjUyNjhhOGMyYzQxMDZiMGExNDZjNWY4MGY5Y2UxM2ZhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCkBAIC01NzQwLDYgKzU3NDAsOCBAQAogICAgICAgICAgICAgJ2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgnLAogICAgICAgICAgICAgJ2h0bWwvc2hhZG93L01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdodG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgnLAorICAgICAgICAgICAgJ2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNwcCcsCisg
ICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFu
ZHJvaWQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmNw
cCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWV0ZXJTaGFkb3dFbGVtZW50LmgnLAogICAg
ICAgICAgICAgJ2h0bWwvc2hhZG93L1Byb2dyZXNzU2hhZG93RWxlbWVudC5jcHAnLApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKaW5kZXggYTg4ZjQ5
Y2RhZDRkNDE0OTU2YmYxYWQwZWI2NWNhMTVjNWViZjM4OS4uZDUwMjc1YmYxZDQ1YzFhMGE5Mjk5
ZDFmOGIxMDExNDU5MzhjZDIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1By
aW1pdGl2ZVZhbHVlTWFwcGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oCkBAIC0zODMsNiArMzgzLDkgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKENvbnRyb2xQYXJ0IGUpCiAgICAg
ICAgIGNhc2UgTWVkaWFQbGF5QnV0dG9uUGFydDoKICAgICAgICAgICAgIG1fdmFsdWUuaWRlbnQg
PSBDU1NWYWx1ZU1lZGlhUGxheUJ1dHRvbjsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25QYXJ0OgorICAgICAgICAgICAgbV92YWx1ZS5pZGVu
dCA9IENTU1ZhbHVlTWVkaWFPdmVybGF5UGxheUJ1dHRvbjsKKyAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6CiAgICAgICAgICAgICBtX3ZhbHVlLmlk
ZW50ID0gQ1NTVmFsdWVNZWRpYU11dGVCdXR0b247CiAgICAgICAgICAgICBicmVhazsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggNmUwZGIyOGY3MjY3NmRmNjJiNzY2
NDQ2ZjI1MTI4NTM2NzIyMTFjOC4uYjYzNTA3MjJiOGY3NDIyMjY0NTg5NjQ0MDNmY2EyMWExN2Qz
N2Y4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4K
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTY0NCw2ICs2
NDQsNyBAQCBtZWRpYS1mdWxsc2NyZWVuLXZvbHVtZS1zbGlkZXIKIG1lZGlhLWZ1bGxzY3JlZW4t
dm9sdW1lLXNsaWRlci10aHVtYgogbWVkaWEtbXV0ZS1idXR0b24KIG1lZGlhLXBsYXktYnV0dG9u
CittZWRpYS1vdmVybGF5LXBsYXktYnV0dG9uCiBtZWRpYS1zZWVrLWJhY2stYnV0dG9uCiBtZWRp
YS1zZWVrLWZvcndhcmQtYnV0dG9uCiBtZWRpYS1yZXdpbmQtYnV0dG9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9scy5jc3MKaW5kZXggZGExZTZjODMyZWVhMDhiYmQyMzU4ZGIzOGYzN2VjZGIw
ZjUwOWVhNy4uOWQ4MjIxZTQ3ZmM1YTkxYzNhZTU2ZmMwMmFiNGFiM2RmODljNjAzNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwpAQCAtODEsNiArODEsMTAgQEAgYXVkaW86Oi13
ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW11dGUtYnUKICAgICBjb2xvcjogaW5oZXJpdDsKIH0KIAorYXVkaW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiB7CisgICAgZGlzcGxheTogbm9uZTsKK30KKwog
YXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0
LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uIHsKICAgICAtd2Via2l0LWFwcGVhcmFuY2U6IG1l
ZGlhLXBsYXktYnV0dG9uOwogICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzIGIvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzCmluZGV4IDIx
YjY0N2MzODMxNDYxMWJhN2JlNzQ0OGZhYzFkNWU3OGFhYzA1ZjAuLjEwZjdmMWU2NDMzY2ZjYzMz
NWMwNzg4NjA0ZjM5ZDdjZWE1ZjA3N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
ZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWVkaWFDb250cm9sc0Nocm9taXVtQW5kcm9pZC5jc3MKQEAgLTc1LDYgKzc1LDIyIEBAIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWVuY2xvc3VyZSB7CiAgICAgaGVpZ2h0OiAzNXB4Owog
fQogCithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSB7Cisg
ICAgZGlzcGxheTogbm9uZTsKK30KKwordmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zl
cmxheS1lbmNsb3N1cmUgeworICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OworICAgIC13ZWJraXQt
Ym94LW9yaWVudDogaG9yaXpvbnRhbDsKKyAgICAtd2Via2l0LWJveC1wYWNrOmNlbnRlcjsKKyAg
ICAtd2Via2l0LWJveC1hbGlnbjpjZW50ZXI7CisgICAgLXdlYmtpdC1ib3gtZmxleDoxOworICAg
IHdpZHRoOiAxMDAlOworICAgIG1heC13aWR0aDogODAwcHg7CisgICAgdGV4dC1pbmRlbnQ6IDA7
CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKK30KKwogYXVkaW86Oi13ZWJraXQtbWVkaWEt
Y29udHJvbHMtbXV0ZS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW11dGUt
YnV0dG9uIHsKICAgICBkaXNwbGF5OiBub25lOwogfQpAQCAtOTIsNiArMTA4LDE4IEBAIGF1ZGlv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRp
YS1jb250cm9scy1wbGF5LWJ1CiAgICAgcGFkZGluZzogMDsKIH0KIAordmlkZW86Oi13ZWJraXQt
bWVkaWEtY29udHJvbHMtb3ZlcmxheS1wbGF5LWJ1dHRvbiB7CisgICAgLXdlYmtpdC1hcHBlYXJh
bmNlOiBtZWRpYS1vdmVybGF5LXBsYXktYnV0dG9uOworICAgIC13ZWJraXQtYm94LWFsaWduOiBj
ZW50ZXI7CisgICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CisgICAgYm9yZGVyOiBub25lOworICAg
IGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJl
bnQ7CisgICAgd2lkdGg6IDgwcHg7CisgICAgaGVpZ2h0OiA4MHB4OworICAgIHBhZGRpbmc6IDA7
Cit9CisKIGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQtdGltZS1kaXNwbGF5
LCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1jdXJyZW50LXRpbWUtZGlzcGxheSwKIGF1
ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXksIHZpZGVv
Ojotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXRpbWUtcmVtYWluaW5nLWRpc3BsYXkgewogICAgIC13
ZWJraXQtYXBwZWFyYW5jZTogbWVkaWEtY3VycmVudC10aW1lLWRpc3BsYXk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKaW5kZXgg
NzMxNDQ5NjEwNzY1MjNhNDA2OWY0YjI0MTUxZDBiNTYyY2EwZDgyYi4uMmM0YmQ5ZTkxOWRlMDlj
MjUyNjE2ZjViNWE2ZGQzYjM2NTVlMDZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmNwcApAQCAtNjEyLDYgKzYxMiw0NiBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpzaGFkb3dQ
c2V1ZG9JZCgpIGNvbnN0CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAoraW5s
aW5lIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sT3Zl
cmxheVBsYXlCdXR0b25FbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgTWVkaWFPdmVybGF5UGxheUJ1dHRvbikKK3sKK30K
KworUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IE1lZGlh
Q29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkKK3sKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50PiBi
dXR0b24gPSBhZG9wdFJlZihuZXcgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50
KGRvY3VtZW50KSk7CisgICAgYnV0dG9uLT5jcmVhdGVTaGFkb3dTdWJ0cmVlKCk7CisgICAgYnV0
dG9uLT5zZXRUeXBlKCJidXR0b24iKTsKKyAgICByZXR1cm4gYnV0dG9uLnJlbGVhc2UoKTsKK30K
Kwordm9pZCBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQqIGV2ZW50KQoreworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50
TmFtZXMoKS5jbGlja0V2ZW50ICYmIG1lZGlhQ29udHJvbGxlcigpLT5jYW5QbGF5KCkpIHsKKyAg
ICAgICAgbWVkaWFDb250cm9sbGVyKCktPnBsYXkoKTsKKyAgICAgICAgdXBkYXRlRGlzcGxheVR5
cGUoKTsKKyAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgfQorICAgIEhU
TUxJbnB1dEVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoZXZlbnQpOworfQorCit2b2lkIE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6dXBkYXRlRGlzcGxheVR5cGUoKQor
eworICAgIGlmIChtZWRpYUNvbnRyb2xsZXIoKS0+Y2FuUGxheSgpKSB7CisgICAgICAgIHNob3co
KTsKKyAgICAgICAgc2V0RGlzcGxheVR5cGUoTWVkaWFPdmVybGF5UGxheUJ1dHRvbik7CisgICAg
fSBlbHNlCisgICAgICAgIGhpZGUoKTsKK30KKworY29uc3QgQXRvbWljU3RyaW5nJiBNZWRpYUNv
bnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIikpOworICAgIHJldHVybiBpZDsKK30KKwor
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCiBpbmxpbmUgTWVkaWFDb250cm9sU2Vl
a0J1dHRvbkVsZW1lbnQ6Ok1lZGlhQ29udHJvbFNlZWtCdXR0b25FbGVtZW50KERvY3VtZW50KiBk
b2N1bWVudCwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUpCiAgICAgOiBNZWRp
YUNvbnRyb2xJbnB1dEVsZW1lbnQoZG9jdW1lbnQsIGRpc3BsYXlUeXBlKQogICAgICwgbV9hY3Rp
b25PblN0b3AoTm90aGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbEVsZW1lbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xFbGVtZW50cy5oCmluZGV4IGVmZGIyMWYwZGFhMDBkZDc2MDU0MDBjMjM1NGFmNWI3
YmM2NzJiZDIuLmMxNTE0ZTIzMTdkMGI4OTQ5ZWU4MDExYzljNzBiMDkxYzljMDgyOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaApA
QCAtNzQsNiArNzQsNyBAQCBlbnVtIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlIHsKICAgICBNZWRp
YVRleHRUcmFja0Rpc3BsYXlDb250YWluZXIsCiAgICAgTWVkaWFUZXh0VHJhY2tEaXNwbGF5LAog
ICAgIE1lZGlhRXhpdEZ1bGxzY3JlZW5CdXR0b24sCisgICAgTWVkaWFPdmVybGF5UGxheUJ1dHRv
biwKIH07CiAKIEhUTUxNZWRpYUVsZW1lbnQqIHRvUGFyZW50TWVkaWFFbGVtZW50KE5vZGUqKTsK
QEAgLTI3MSw2ICsyNzIsMjAgQEAgcHJpdmF0ZToKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCitjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQgOiBw
dWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFz
c1JlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IGNyZWF0ZShEb2N1
bWVudCopOworCisgICAgdmlydHVhbCB2b2lkIGRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQqKTsK
KyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRGlzcGxheVR5cGUoKTsKKworcHJpdmF0ZToKKyAgICBl
eHBsaWNpdCBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqKTsK
KworICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0
OworfTsKKworLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogY2xhc3MgTWVkaWFDb250
cm9sU2Vla0J1dHRvbkVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sSW5wdXRFbGVtZW50IHsK
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCopOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVs
ZW1lbnRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtLmNwcAppbmRleCBmYmQzZmZjYTgxMWZkMWEzNTRmZThkYzZk
M2U0MzYzZDAzYjQ2MTZmLi42MmY5ZTg1OTkwNDAwNTBhYzQ0MWFjY2I3ZmM5OGRhOGZiNGJkM2Ey
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcApAQCAtNTMsMTkgKzUzLDIzIEBAIE1lZGlh
Q29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50KERvY3VtCiB7CiB9CiAKLVBhc3NSZWZQdHI8TWVkaWFDb250cm9sQ2hyb21p
dW1FbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6
OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKLX0KLQogTWVk
aWFDb250cm9sRWxlbWVudFR5cGUgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50
OjpkaXNwbGF5VHlwZSgpIGNvbnN0CiB7CiAgICAgLy8gTWFwcGluZyBvbnRvIHNhbWUgTWVkaWFD
b250cm9sRWxlbWVudFR5cGUgYXMgcGFuZWwgZWxlbWVudCwgc2luY2UgaXQgaGFzIHNpbWlsYXIg
cHJvcGVydGllcy4KICAgICByZXR1cm4gTWVkaWFDb250cm9sc1BhbmVsOwogfQogCitNZWRpYUNv
bnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxl
bWVudChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xv
c3VyZUVsZW1lbnQoZG9jdW1lbnQpCit7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sUGFu
ZWxFbmNsb3N1cmVFbGVtZW50PiBNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNy
ZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBNZWRp
YUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQoZG9jdW1lbnQpKTsKK30KIAotY29uc3QgQXRv
bWljU3RyaW5nJiBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1Bz
ZXVkb0lkKCkgY29uc3QKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGFuZWxFbmNs
b3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0CiB7CiAgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9z
dXJlIikpOwogICAgIHJldHVybiBpZDsKQEAgLTkyLDEwICs5NiwxMyBAQCBNZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtOjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKERvY3Vt
ZW50KiBkb2N1bQogewogfQogCisvLyBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoKSBmb3IgQW5kcm9p
ZCBpcyBkZWZpbmVkIGluIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNw
cC4KKyNpZiAhT1MoQU5EUk9JRCkKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9scz4gTWVkaWFDb250
cm9sczo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAgICByZXR1cm4gTWVkaWFDb250
cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKGRvY3VtZW50KTsKIH0KKyNlbmRpZgogCiBQ
YXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IE1lZGlhQ29udHJvbFJv
b3RFbGVtZW50Q2hyb21pdW06OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CkBAIC0xMDQs
NjggKzExMSw3NiBAQCBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmNyZQogCiAgICAgUmVmUHRyPE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0oZG9jdW1lbnQpKTsKIAorICAgIGlmIChjb250cm9s
cy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRvY3VtZW50KSkKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xz
LnJlbGVhc2UoKTsKKworICAgIHJldHVybiAwOworfQorCitib29sIE1lZGlhQ29udHJvbFJvb3RF
bGVtZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCogZG9jdW1lbnQpCit7
CiAgICAgLy8gQ3JlYXRlIGFuIGVuY2xvc2luZyBlbGVtZW50IGZvciB0aGUgcGFuZWwgc28gd2Ug
Y2FuIHZpc3VhbGx5IG9mZnNldCB0aGUgY29udHJvbHMgY29ycmVjdGx5LgotICAgIFJlZlB0cjxN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGVuY2xvc3VyZSA9IE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKKyAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50PiBlbmNsb3N1cmUgPSBNZWRpYUNv
bnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7CiAKICAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxFbGVtZW50PiBwYW5lbCA9IE1lZGlhQ29udHJvbFBhbmVsRWxl
bWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKIAogICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAKICAgICBS
ZWZQdHI8TWVkaWFDb250cm9sUGxheUJ1dHRvbkVsZW1lbnQ+IHBsYXlCdXR0b24gPSBNZWRpYUNv
bnRyb2xQbGF5QnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBjb250cm9scy0+
bV9wbGF5QnV0dG9uID0gcGxheUJ1dHRvbi5nZXQoKTsKKyAgICBtX3BsYXlCdXR0b24gPSBwbGF5
QnV0dG9uLmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwbGF5QnV0dG9uLnJlbGVhc2Uo
KSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRp
bWVsaW5lID0gTWVkaWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIGNv
bnRyb2xzLmdldCgpKTsKLSAgICBjb250cm9scy0+bV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgp
OworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ+IHRpbWVsaW5lID0gTWVk
aWFDb250cm9sVGltZWxpbmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1f
dGltZWxpbmUgPSB0aW1lbGluZS5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQodGltZWxp
bmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbEN1cnJlbnRU
aW1lRGlzcGxheUVsZW1lbnQ+IGN1cnJlbnRUaW1lRGlzcGxheSA9IE1lZGlhQ29udHJvbEN1cnJl
bnRUaW1lRGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1f
Y3VycmVudFRpbWVEaXNwbGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOwotICAgIGNvbnRy
b2xzLT5tX2N1cnJlbnRUaW1lRGlzcGxheS0+aGlkZSgpOworICAgIG1fY3VycmVudFRpbWVEaXNw
bGF5ID0gY3VycmVudFRpbWVEaXNwbGF5LmdldCgpOworICAgIG1fY3VycmVudFRpbWVEaXNwbGF5
LT5oaWRlKCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGN1cnJlbnRUaW1lRGlzcGxheS5yZWxl
YXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVkaWFDb250cm9sVGltZVJlbWFpbmluZ0Rp
c3BsYXlFbGVtZW50PiBkdXJhdGlvbkRpc3BsYXkgPSBNZWRpYUNvbnRyb2xUaW1lUmVtYWluaW5n
RGlzcGxheUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fZHVyYXRp
b25EaXNwbGF5ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOworICAgIG1fZHVyYXRpb25EaXNwbGF5
ID0gZHVyYXRpb25EaXNwbGF5LmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChkdXJhdGlv
bkRpc3BsYXkucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFBh
bmVsTXV0ZUJ1dHRvbkVsZW1lbnQ+IHBhbmVsTXV0ZUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBhbmVs
TXV0ZUJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAg
IGNvbnRyb2xzLT5tX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsKKyAg
ICBSZWZQdHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0
dG9uID0gTWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50
LCB0aGlzKTsKKyAgICBtX3BhbmVsTXV0ZUJ1dHRvbiA9IHBhbmVsTXV0ZUJ1dHRvbi5nZXQoKTsK
ICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQocGFuZWxNdXRlQnV0dG9uLnJlbGVhc2UoKSwgZWMsIHRy
dWUpOwogICAgIGlmIChlYykKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50PiBzbGlkZXIg
PSBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwotICAg
IGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKLSAgICBjb250cm9scy0+
bV92b2x1bWVTbGlkZXItPnNldENsZWFyTXV0ZWRPblVzZXJJbnRlcmFjdGlvbih0cnVlKTsKKyAg
ICBtX3ZvbHVtZVNsaWRlciA9IHNsaWRlci5nZXQoKTsKKyAgICBtX3ZvbHVtZVNsaWRlci0+c2V0
Q2xlYXJNdXRlZE9uVXNlckludGVyYWN0aW9uKHRydWUpOwogICAgIHBhbmVsLT5hcHBlbmRDaGls
ZChzbGlkZXIucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1
bGxzY3JlZW5CdXR0b25FbGVtZW50PiBmdWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVs
bHNjcmVlbkJ1dHRvbkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwot
ICAgIGNvbnRyb2xzLT5tX2Z1bGxzY3JlZW5CdXR0b24gPSBmdWxsc2NyZWVuQnV0dG9uLmdldCgp
OworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudD4gZnVsbHNj
cmVlbkJ1dHRvbiA9IE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25FbGVtZW50OjpjcmVhdGUo
ZG9jdW1lbnQsIHRoaXMpOworICAgIG1fZnVsbHNjcmVlbkJ1dHRvbiA9IGZ1bGxzY3JlZW5CdXR0
b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKGZ1bGxzY3JlZW5CdXR0b24ucmVsZWFz
ZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgY29udHJvbHMtPm1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKKyAg
ICBtX3BhbmVsID0gcGFuZWwuZ2V0KCk7CiAgICAgZW5jbG9zdXJlLT5hcHBlbmRDaGlsZChwYW5l
bC5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250cm9scy0+bV9lbmNsb3N1cmUgPSBlbmNs
b3N1cmUuZ2V0KCk7Ci0gICAgY29udHJvbHMtPmFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNl
KCksIGVjLCB0cnVlKTsKKyAgICBtX2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKKyAgICBh
cHBlbmRDaGlsZChlbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIGNv
bnRyb2xzLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogdm9pZCBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtOjpzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVy
SW50ZXJmYWNlKiBjb250cm9sbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9z
aGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCmluZGV4IGQ2ODMz
OTkzZDA4OWMxMGFmZDE5ZmM2YzgzNGE0NDMyZjUxMWI0NDIuLmE4MjdmMTExNmVhZWFlNjk1NWRm
MTc0MzMzNzE1ZDc0ZWFlYmY0YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgKQEAgLTYzLDEz
ICs2MywxOSBAQCBjbGFzcyBNZWRpYUNvbnRyb2xUZXh0VHJhY2tEaXNwbGF5RWxlbWVudDsKICNl
bmRpZgogCiBjbGFzcyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQgOiBwdWJs
aWMgTWVkaWFDb250cm9sRWxlbWVudCB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
TWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsK
LQotcHJpdmF0ZToKK3Byb3RlY3RlZDoKICAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqKTsKIAorcHJpdmF0ZToKICAgICB2aXJ0dWFsIE1l
ZGlhQ29udHJvbEVsZW1lbnRUeXBlIGRpc3BsYXlUeXBlKCkgY29uc3Q7Cit9OworCitjbGFzcyBN
ZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sQ2hy
b21pdW1FbmNsb3N1cmVFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCitw
cml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChE
b2N1bWVudCopOwogICAgIHZpcnR1YWwgY29uc3QgQXRvbWljU3RyaW5nJiBzaGFkb3dQc2V1ZG9J
ZCgpIGNvbnN0OwogfTsKIApAQCAtNzgsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gY3JlYXRlKERvY3VtZW50
Kik7CiAKICAgICAvLyBNZWRpYUNvbnRyb2xzIGltcGxlbWVudGF0aW9uLgotICAgIHZvaWQgc2V0
TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxlckludGVyZmFjZSopOworICAgIHZpcnR1YWwg
dm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CiAKICAg
ICB2b2lkIHNob3coKTsKICAgICB2b2lkIGhpZGUoKTsKQEAgLTg3LDkgKzkzLDkgQEAgcHVibGlj
OgogCiAgICAgdm9pZCByZXNldCgpOwogCi0gICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzZWQoKTsK
LSAgICB2b2lkIHBsYXliYWNrU3RhcnRlZCgpOwotICAgIHZvaWQgcGxheWJhY2tTdG9wcGVkKCk7
CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrUHJvZ3Jlc3NlZCgpOworICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1N0YXJ0ZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tTdG9wcGVkKCk7
CiAKICAgICB2b2lkIGNoYW5nZWRNdXRlKCk7CiAgICAgdm9pZCBjaGFuZ2VkVm9sdW1lKCk7CkBA
IC0xMTYsOSArMTIyLDEzIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIaWRl
Q29udHJvbHMoKTsKIAotcHJpdmF0ZToKLSAgICBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtKERvY3VtZW50Kik7Citwcm90ZWN0ZWQ6CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bShEb2N1bWVudCopOwogCisgICAgLy8gUmV0dXJucyB0cnVlIGlmIHN1
Y2Nlc3NmdWwsIG90aGVyd2lzZSByZXR1cm4gZmFsc2UuCisgICAgYm9vbCBpbml0aWFsaXplQ29u
dHJvbHMoRG9jdW1lbnQqKTsKKworcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2
ZW50SGFuZGxlcihFdmVudCopOwogICAgIHZvaWQgaGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVy
RmlyZWQoVGltZXI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4qKTsKICAgICB2b2lk
IHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CkBAIC0xMzgsNyArMTQ4LDggQEAg
cHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xWb2x1bWVTbGlkZXJFbGVtZW50KiBtX3ZvbHVtZVNs
aWRlcjsKICAgICBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudCogbV9mdWxsc2Ny
ZWVuQnV0dG9uOwogICAgIE1lZGlhQ29udHJvbFBhbmVsRWxlbWVudCogbV9wYW5lbDsKLSAgICBN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQqIG1fZW5jbG9zdXJlOworICAgIE1l
ZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCogbV9lbmNsb3N1cmU7CisKICNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCiAgICAgTWVkaWFDb250cm9sVGV4dFRyYWNrQ29udGFpbmVyRWxlbWVu
dCogbV90ZXh0RGlzcGxheUNvbnRhaW5lcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bUFuZHJvaWQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NjM0YTg0NzZkZThlNGM3OGYwM2M4NTkz
ODUwMjU2MmFkZmZlMzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAKQEAgLTAsMCAr
MSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoVklE
RU8pCisjaW5jbHVkZSAiTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaCIK
KworI2luY2x1ZGUgIk1lZGlhQ29udHJvbEVsZW1lbnRzLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbE92
ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkKK3sKK30KKworUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gTWVkaWFDb250cm9sT3Zlcmxh
eUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudChkb2N1
bWVudCkpOworfQorCitjb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNs
b3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCgpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJ
Q19MT0NBTChBdG9taWNTdHJpbmcsIGlkLCAoIi13ZWJraXQtbWVkaWEtY29udHJvbHMtb3Zlcmxh
eS1lbmNsb3N1cmUiKSk7CisgICAgcmV0dXJuIGlkOworfQorCitNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJv
aWQoRG9jdW1lbnQqIGRvY3VtZW50KQorICAgIDogTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bShkb2N1bWVudCkKKyAgICAsIG1fb3ZlcmxheVBsYXlCdXR0b24oMCkKKyAgICAsIG1fb3Zl
cmxheUVuY2xvc3VyZSgwKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbHM+IE1lZGlh
Q29udHJvbHM6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCit7CisgICAgcmV0dXJuIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpjcmVhdGUoZG9jdW1lbnQpOworfQor
CitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkPiBNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICBpZiAoIWRvY3VtZW50LT5wYWdlKCkpCisgICAgICAgIHJldHVybiAwOwor
CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkPiBjb250
cm9scyA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9p
ZChkb2N1bWVudCkpOworCisgICAgRXhjZXB0aW9uQ29kZSBlYzsKKworICAgIFJlZlB0cjxNZWRp
YUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gb3ZlcmxheUVuY2xvc3VyZSA9IE1lZGlh
Q29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOworICAgIFJl
ZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ+IG92ZXJsYXlQbGF5QnV0
dG9uID0gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1l
bnQpOworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlQbGF5QnV0dG9uID0gb3ZlcmxheVBsYXlCdXR0
b24uZ2V0KCk7CisgICAgb3ZlcmxheUVuY2xvc3VyZS0+YXBwZW5kQ2hpbGQob3ZlcmxheVBsYXlC
dXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIGNvbnRyb2xzLT5tX292ZXJsYXlFbmNsb3N1cmUgPSBvdmVybGF5RW5jbG9zdXJl
LmdldCgpOworICAgIGNvbnRyb2xzLT5hcHBlbmRDaGlsZChvdmVybGF5RW5jbG9zdXJlLnJlbGVh
c2UoKSwgZWMsIHRydWUpOworICAgIGlmIChlYykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBp
ZiAoY29udHJvbHMtPmluaXRpYWxpemVDb250cm9scyhkb2N1bWVudCkpCisgICAgICAgIHJldHVy
biBjb250cm9scy5yZWxlYXNlKCk7CisKKyAgICByZXR1cm4gMDsKK30KKwordm9pZCBNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6c2V0TWVkaWFDb250cm9sbGVyKE1lZGlh
Q29udHJvbGxlckludGVyZmFjZSogY29udHJvbGxlcikKK3sKKyAgICBpZiAobV9vdmVybGF5UGxh
eUJ1dHRvbikKKyAgICAgICAgbV9vdmVybGF5UGxheUJ1dHRvbi0+c2V0TWVkaWFDb250cm9sbGVy
KGNvbnRyb2xsZXIpOworICAgIGlmIChtX292ZXJsYXlFbmNsb3N1cmUpCisgICAgICAgIG1fb3Zl
cmxheUVuY2xvc3VyZS0+c2V0TWVkaWFDb250cm9sbGVyKGNvbnRyb2xsZXIpOworICAgIE1lZGlh
Q29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxlcihjb250cm9sbGVy
KTsKK30KKwordm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxh
eWJhY2tTdGFydGVkKCkKK3sKKyAgICBtX292ZXJsYXlQbGF5QnV0dG9uLT51cGRhdGVEaXNwbGF5
VHlwZSgpOworICAgIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnBsYXliYWNrU3Rh
cnRlZCgpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lk
OjpwbGF5YmFja1N0b3BwZWQoKQoreworICAgIG1fb3ZlcmxheVBsYXlCdXR0b24tPnVwZGF0ZURp
c3BsYXlUeXBlKCk7CisgICAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6cGxheWJh
Y2tTdG9wcGVkKCk7Cit9CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bUFuZHJvaWQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Yzc3NDgzZjk4ZTIyODYwYzM3NWE4NTg0NzUwMGU2MWE4
NDRjN2NkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVk
aWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQuaApAQCAtMCwwICsxLDY1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01Q
VVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBV
VEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZF9o
CisjZGVmaW5lIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkX2gKKworI2lm
IEVOQUJMRShWSURFTykKKworI2luY2x1ZGUgIk1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21p
dW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBNZWRpYUNvbnRyb2xPdmVybGF5
UGxheUJ1dHRvbkVsZW1lbnQ7CisKK2NsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVF
bGVtZW50IDogcHVibGljIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudCB7Citw
dWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3Vy
ZUVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CisgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7Cit9OworCitjbGFz
cyBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCA6IHB1YmxpYyBNZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtIHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZD4gY3JlYXRlKERvY3VtZW50
Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWVkaWFDb250cm9sbGVyKE1lZGlhQ29udHJvbGxl
ckludGVyZmFjZSopOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0YXJ0ZWQoKTsKKyAgICB2
aXJ0dWFsIHZvaWQgcGxheWJhY2tTdG9wcGVkKCk7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQoRG9jdW1lbnQqKTsKKworICAg
IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCogbV9vdmVybGF5UGxheUJ1dHRv
bjsKKyAgICBNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCogbV9vdmVybGF5RW5j
bG9zdXJlOworfTsKKworfQorCisjZW5kaWYKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aGVtZVR5cGVzLmgKaW5kZXggMTIwOGE5YTJlZTU2NjMwOGRjYjI0YmQyMjM4ZTA3ZmQ0ZTAwNTY2
OC4uOGVmNmIyMzc1NGZlMGIxYTYzNDdkNWJjODJjNDc3MmYxMTg1OThlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RoZW1lVHlwZXMuaApAQCAtNDgsOCArNDgsOCBAQCB0eXBlZGVmIHVuc2lnbmVk
IENvbnRyb2xTdGF0ZXM7CiBlbnVtIENvbnRyb2xQYXJ0IHsKICAgICBOb0NvbnRyb2xQYXJ0LCBD
aGVja2JveFBhcnQsIFJhZGlvUGFydCwgUHVzaEJ1dHRvblBhcnQsIFNxdWFyZUJ1dHRvblBhcnQs
IEJ1dHRvblBhcnQsCiAgICAgQnV0dG9uQmV2ZWxQYXJ0LCBEZWZhdWx0QnV0dG9uUGFydCwgSW5u
ZXJTcGluQnV0dG9uUGFydCwgSW5wdXRTcGVlY2hCdXR0b25QYXJ0LCBMaXN0Ym94UGFydCwgTGlz
dEl0ZW1QYXJ0LAotICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFFeGl0
RnVsbHNjcmVlbkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQsIE1l
ZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwg
TWVkaWFQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFja0J1dHRvblBhcnQsIAotICAgIE1lZGlh
U2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRvblBhcnQsIE1lZGlhUmV0dXJu
VG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2VkQ2FwdGlvbnNCdXR0b25QYXJ0
LAorICAgIE1lZGlhRW50ZXJGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFFeGl0RnVsbHNjcmVl
bkJ1dHRvblBhcnQsIE1lZGlhRnVsbFNjcmVlblZvbHVtZVNsaWRlclBhcnQsIE1lZGlhRnVsbFNj
cmVlblZvbHVtZVNsaWRlclRodW1iUGFydCwgTWVkaWFNdXRlQnV0dG9uUGFydCwgTWVkaWFQbGF5
QnV0dG9uUGFydCwKKyAgICBNZWRpYU92ZXJsYXlQbGF5QnV0dG9uUGFydCwgTWVkaWFTZWVrQmFj
a0J1dHRvblBhcnQsIE1lZGlhU2Vla0ZvcndhcmRCdXR0b25QYXJ0LCBNZWRpYVJld2luZEJ1dHRv
blBhcnQsIE1lZGlhUmV0dXJuVG9SZWFsdGltZUJ1dHRvblBhcnQsIE1lZGlhVG9nZ2xlQ2xvc2Vk
Q2FwdGlvbnNCdXR0b25QYXJ0LAogICAgIE1lZGlhU2xpZGVyUGFydCwgTWVkaWFTbGlkZXJUaHVt
YlBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyQ29udGFpbmVyUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJQ
YXJ0LCBNZWRpYVZvbHVtZVNsaWRlclRodW1iUGFydCwKICAgICBNZWRpYVZvbHVtZVNsaWRlck11
dGVCdXR0b25QYXJ0LCBNZWRpYUNvbnRyb2xzQmFja2dyb3VuZFBhcnQsIE1lZGlhQ29udHJvbHNG
dWxsc2NyZWVuQmFja2dyb3VuZFBhcnQsIE1lZGlhQ3VycmVudFRpbWVQYXJ0LCBNZWRpYVRpbWVS
ZW1haW5pbmdQYXJ0LAogICAgIE1lbnVsaXN0UGFydCwgTWVudWxpc3RCdXR0b25QYXJ0LCBNZW51
bGlzdFRleHRQYXJ0LCBNZW51bGlzdFRleHRGaWVsZFBhcnQsIE1ldGVyUGFydCwgUHJvZ3Jlc3NC
YXJQYXJ0LCBQcm9ncmVzc0JhclZhbHVlUGFydCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKaW5kZXggYjNiODI5
ODJjOTlmYTk1YmU0Yjk5NmQzNDI0NWNmY2YxMDRjMTIzMy4uZDI5NTRkYzNhYmY5OWFkZmIyNjc0
ZDg1NGEzOWExMzg1YWUwODg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5jcHAKQEAgLTExMSw2ICsxMTEsMTkg
QEAgc3RhdGljIGJvb2wgcGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3Qs
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmYKICAgICByZXR1cm4gcGFpbnRNZWRpYUJ1dHRvbihw
YWludEluZm8uY29udGV4dCwgcmVjdCwgbWVkaWFFbGVtZW50LT5jYW5QbGF5KCkgPyBtZWRpYVBs
YXkgOiBtZWRpYVBhdXNlKTsKIH0KIAorc3RhdGljIGJvb2wgcGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBIVE1MTWVkaWFFbGVtZW50KiBtZWRpYUVsZW1l
bnQgPSB0b1BhcmVudE1lZGlhRWxlbWVudChvYmplY3QpOworICAgIGlmICghbWVkaWFFbGVtZW50
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc1NvdXJjZShtZWRpYUVsZW1l
bnQpIHx8ICFtZWRpYUVsZW1lbnQtPmNhblBsYXkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgc3RhdGljIEltYWdlKiBtZWRpYU92ZXJsYXlQbGF5ID0gcGxhdGZvcm1SZXNvdXJjZSgi
bWVkaWFwbGF5ZXJPdmVybGF5UGxheSIpOworICAgIHJldHVybiBwYWludE1lZGlhQnV0dG9uKHBh
aW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYU92ZXJsYXlQbGF5KTsKK30KKwogc3RhdGljIElt
YWdlKiBnZXRNZWRpYVNsaWRlclRodW1iKCkKIHsKICAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhU2xp
ZGVyVGh1bWIgPSBwbGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllclNsaWRlclRodW1iIik7CkBA
IC0zMzQsNiArMzQ3LDggQEAgYm9vbCBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50
TWVkaWFDb250cm9sc1BhcnQoTWVkaWFDb250cm9sRWxlbWVudFR5cGUKICAgICBjYXNlIE1lZGlh
RW50ZXJGdWxsc2NyZWVuQnV0dG9uOgogICAgIGNhc2UgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRv
bjoKICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG9iamVjdCwgcGFp
bnRJbmZvLCByZWN0KTsKKyAgICBjYXNlIE1lZGlhT3ZlcmxheVBsYXlCdXR0b246CisgICAgICAg
IHJldHVybiBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24ob2JqZWN0LCBwYWludEluZm8sIHJl
Y3QpOwogICAgIGNhc2UgTWVkaWFWb2x1bWVTbGlkZXJNdXRlQnV0dG9uOgogICAgIGNhc2UgTWVk
aWFTZWVrQmFja0J1dHRvbjoKICAgICBjYXNlIE1lZGlhU2Vla0ZvcndhcmRCdXR0b246CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcAppbmRleCBmODk2NzMyMzdkNjYxY2E1
ZjMyM2FjMGRhMjQyMDNhYTk2MjBkNDUzLi5mMTY2MTcyMmU3MzM2ODAzNGM3NmY2ZDZkYmVkNzY3
MWI4MzdmZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKQEAg
LTMyOSw2ICszMjksOCBAQCBib29sIFJlbmRlclRoZW1lOjpwYWludChSZW5kZXJPYmplY3QqIG8s
IGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZQogICAgICAgICAgICAgcmV0
dXJuIHBhaW50TWVkaWFGdWxsc2NyZWVuQnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAg
IGNhc2UgTWVkaWFQbGF5QnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlh
UGxheUJ1dHRvbihvLCBwYWludEluZm8sIHIpOworICAgICAgICBjYXNlIE1lZGlhT3ZlcmxheVBs
YXlCdXR0b25QYXJ0OgorICAgICAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1
dHRvbihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhTXV0ZUJ1dHRvblBhcnQ6
CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYU11dGVCdXR0b24obywgcGFpbnRJbmZvLCBy
KTsKICAgICAgICAgY2FzZSBNZWRpYVNlZWtCYWNrQnV0dG9uUGFydDoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lLmgKaW5kZXggNjI5ODM0YmM4MGVmZDI0ZTdlMWEyMzBhZTliYWE3
NTI1ZDkxYjg2ZC4uM2QzOTc2MjY2YmY1YTdhNzBhMjQ0ZDA1OTRlZDJjNjAyNTI4ZTEzMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmgKQEAgLTMxOCw2ICszMTgsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lZGlhQ29udHJvbFN0eWxlKFN0eWxl
UmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdDsKICAgICB2aXJ0dWFsIGJv
b2wgcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJ
bmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZWRpYVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZWRp
YU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0
IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFN
dXRlQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3Qm
KSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVkaWFTZWVrQmFja0J1
dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhU2Vla0ZvcndhcmRCdXR0
b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0
dXJuIHRydWU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCmluZGV4IDkyNDBkZjM0Y2M4N2VmY2YxNTIwNGI0NTI4
ZDAwZTdjNDk0NDhmMjQuLmJlMzcwMTkxMzlhZmM1ZTQyZjc4ZTI0MzQ0NzY1MTEzNDVhNjk4YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hy
b21pdW1BbmRyb2lkLmNwcApAQCAtODgsNiArODgsMTggQEAgdm9pZCBSZW5kZXJUaGVtZUNocm9t
aXVtQW5kcm9pZDo6YWRqdXN0SW5uZXJTcGluQnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJl
bmQKICAgICB9CiB9CiAKK2Jvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQ6OnBhaW50TWVk
aWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBwYWludEluZm8sIGNvbnN0IEludFJlY3QmIHJlY3QpCit7CisjaWYgRU5BQkxFKFZJREVPKQor
ICAgIHJldHVybiBSZW5kZXJNZWRpYUNvbnRyb2xzQ2hyb21pdW06OnBhaW50TWVkaWFDb250cm9s
c1BhcnQoTWVkaWFPdmVybGF5UGxheUJ1dHRvbiwgb2JqZWN0LCBwYWludEluZm8sIHJlY3QpOwor
I2Vsc2UKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ocGFpbnRJ
bmZvKTsKKyAgICBVTlVTRURfUEFSQU0ocmVjdCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKIGludCBSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6bWVudUxpc3RBcnJvd1BhZGRp
bmcoKSBjb25zdAogewogICAgIC8vIFdlIGNhbm5vdCB1c2UgdGhlIHNjcm9sbGJhciB0aGlja25l
c3MgaGVyZSwgYXMgaXQncyB3aWR0aCBpcyAwIG9uIEFuZHJvaWQuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCmluZGV4IGMz
ZTRiOGJlZDFhZjg5NzViZjJjNDY0ODg1ZGEzMjExMWQ5ZTZmODQuLjAyNzYyOGU4MWFlMTJjZjFm
Yjc4ZDE0MjFkMTNjYTAxY2Y2Mjk5MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5oCkBAIC00MSw2ICs0MSw4IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBkZWxlZ2F0ZXNNZW51TGlzdFJlbmRlcmluZygpIGNv
bnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBwYWludE1l
ZGlhT3ZlcmxheVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZvJiwgY29u
c3QgSW50UmVjdCYpIE9WRVJSSURFOworCiAjaWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwg
U3RyaW5nIGV4dHJhTWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKSBPVkVSUklERTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>155119</attachid>
            <date>2012-07-28 01:11:34 -0700</date>
            <delta_ts>2012-07-28 12:24:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92132-20120728011121.patch</filename>
            <type>text/plain</type>
            <size>35869</size>
            <attacher name="Min Qin">qinmin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzODc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVjODQzNmI1NTkwYWI4
ZjM1NDhmM2I3MmU4NzM2NGE0YTQyYzYwMC4uMmYwNGU0MTc1MWYzNjE3ZDExZmNmNzBkYjc2OWRj
NDExMjhmOWJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDEyLTA3LTI3ICBNaW4g
UWluICA8cWlubWluQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgYW4gb3ZlcmxheSBwbGF5
IGJ1dHRvbiB0byBtZWRpYSBjb250cm9scyBvbiBhbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MjEzMgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgYW4gb3ZlcmxheSBw
bGF5IGJ1dHRvbiB0byB0aGUgbWVkaWEgY29udHJvbHMgZm9yIGFuZHJvaWQuCisgICAgICAgIE5v
IHRlc3RzIGZvciBub3cgYXMgdGhpcyBzZXR0aW5nIGlzIG5vdCBiZWluZyB1c2VkIGJ5IG90aGVy
IHBvcnQuCisgICAgICAgIFdpbGwgYWRkIGEgdGVzdCBhbmQgYWRqdXN0IGFsbCB0aGUgdGVzdCBl
eHBlY3RhdGlvbnMgd2hlbiB3ZSB1cHN0cmVhbSB0aGUgbGF5b3V0IHRlc3RzIGZvciBhbmRyb2lk
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVW
YWx1ZU1hcHBpbmdzLmg6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
UHJpbWl0aXZlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdvcmRzLmluOgorICAg
ICAgICAqIGNzcy9tZWRpYUNvbnRyb2xzLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1l
ZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24sIHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24pOgorICAgICAgICAqIGNzcy9tZWRpYUNvbnRyb2xz
Q2hyb21pdW1BbmRyb2lkLmNzczoKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRy
b2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKHZpZGVvOjotd2Via2l0LW1lZGlhLWNv
bnRyb2xzLW92ZXJsYXktZW5jbG9zdXJlKToKKyAgICAgICAgKGF1ZGlvOjotd2Via2l0LW1lZGlh
LWNvbnRyb2xzLXBsYXktYnV0dG9uLCB2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5
LWJ1dHRvbik6CisgICAgICAgICh2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5
LXBsYXktYnV0dG9uKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVs
ZW1lbnQ6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudCk6CisgICAgICAgIChX
ZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9u
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQ
bGF5QnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQ6OnVwZGF0ZURpc3BsYXlUeXBl
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmg6CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQ
YW5lbEVuY2xvc3VyZUVsZW1lbnQ6Ok1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6c2hhZG93UHNldWRvSWQpOgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OmluaXRpYWxpemVDb250cm9s
cyk6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bS5oOgorICAgICAgICAoTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KToKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVt
ZW50KToKKyAgICAgICAgKE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0pOgorICAgICAg
ICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmNw
cDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJl
RWxlbWVudDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbE92ZXJsYXlF
bmNsb3N1cmVFbGVtZW50OjpzaGFkb3dQc2V1ZG9JZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRp
YUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sczo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1B
bmRyb2lkOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQ6OnNldE1lZGlhQ29udHJvbGxlcik6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZDo6cGxheWJhY2tTdGFydGVk
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRy
b2lkOjpwbGF5YmFja1N0b3BwZWQpOgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudCk6CisgICAgICAg
IChNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZCk6CisgICAgICAgICogcGxh
dGZvcm0vVGhlbWVUeXBlcy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZWRpYUNvbnRy
b2xzQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTWVk
aWFDb250cm9sc0Nocm9taXVtOjpwYWludE1lZGlhQ29udHJvbHNQYXJ0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWU6
OnBhaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRoZW1lOjpwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24pOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5
QnV0dG9uKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
aGVtZUNocm9taXVtQW5kcm9pZC5oOgorCiAyMDEyLTA3LTI3ICBUaGlhZ28gTWFyY29zIFAuIFNh
bnRvcyAgPHRoaWFnby5zYW50b3NAaW50ZWwuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjEy
Mzg1Nik6IEJyZWFrcyB0aGUgYnVpbGQgd2hlbiBkaXNhYmxpbmcgaW5zcGVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cC9XZWJDb3JlLmd5cCBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCmluZGV4IGNhY2I4OTYyMTk3YTEzNzQ4ZjQwY2M3
ZmFkZmU5YjczZWY2ZDUzYjYuLjQwNzA3NjZlOWJjZTIzZmI1ZThlNWU3M2ExZWE4YjRiODI2NTc2
ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwL1dlYkNvcmUuZ3lwCkBAIC0xNTM5LDYgKzE1
MzksMTMgQEAKICAgICAgICdzb3VyY2VzLyc6IFsKICAgICAgICAgWydleGNsdWRlJywgJ0FsbElu
T25lXFwuY3BwJCddLAogICAgICAgXSwKKyAgICAgICdjb25kaXRpb25zJzogWworICAgICAgICBb
J09TIT0iYW5kcm9pZCInLCB7CisgICAgICAgICAgJ3NvdXJjZXMvJzogWworICAgICAgICAgICAg
WydleGNsdWRlJywgJ0FuZHJvaWRcXC5jcHAkJ10sCisgICAgICAgICAgXSwKKyAgICAgICAgfV0s
CisgICAgICBdLAogICAgIH0sCiAgICAgewogICAgICAgJ3RhcmdldF9uYW1lJzogJ3dlYmNvcmVf
c3ZnJywKQEAgLTE2MjcsNyArMTYzNCw2IEBACiAgICAgICAgICAgJ3NvdXJjZXMvJzogWwogICAg
ICAgICAgICAgWydleGNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6XFwuY3BwJCddLAogICAgICAgICAgICAgWydleGNsdWRlJywg
J3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2tpYVxcLmNwcCQnXSwKLQogICAg
ICAgICAgICAgWydpbmNsdWRlJywgJ3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L25nL0hhcmZC
dXp6TkdGYWNlXFwuKGNwcHxoKSQnXSwKICAgICAgICAgICAgIFsnaW5jbHVkZScsICdwbGF0Zm9y
bS9ncmFwaGljcy9oYXJmYnV6ei9uZy9IYXJmQnV6ek5HRmFjZVNraWFcXC5jcHAkJ10sCiAgICAg
ICAgICAgICBbJ2luY2x1ZGUnLCAncGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmcvSGFyZkJ1
enpTaGFwZXJcXC4oY3BwfGgpJCddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDgzN2JiYTlmNjA5Mzk1
MGVkN2QxMjEzMWI2ZDE0NDIzMzczNzc1NjkuLjNlYzg0ZjRiNTI2OGE4YzJjNDEwNmIwYTE0NmM1
ZjgwZjljZTEzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTU3NDAsNiArNTc0MCw4IEBACiAgICAg
ICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCcsCiAgICAgICAgICAg
ICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5jcHAnLAogICAg
ICAgICAgICAgJ2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uaCcs
CisgICAgICAgICAgICAnaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bUFuZHJvaWQuY3BwJywKKyAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudENocm9taXVtQW5kcm9pZC5oJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRl
clNoYWRvd0VsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdodG1sL3NoYWRvdy9NZXRlclNoYWRv
d0VsZW1lbnQuaCcsCiAgICAgICAgICAgICAnaHRtbC9zaGFkb3cvUHJvZ3Jlc3NTaGFkb3dFbGVt
ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFs
dWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlTWFwcGlu
Z3MuaAppbmRleCBhODhmNDljZGFkNGQ0MTQ5NTZiZjFhZDBlYjY1Y2ExNWM1ZWJmMzg5Li5kNTAy
NzViZjFkNDVjMWEwYTkyOTlkMWY4YjEwMTE0NTkzOGNkMjA0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTM4Myw2ICszODMsOSBAQCB0
ZW1wbGF0ZTw+IGlubGluZSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTUHJpbWl0aXZlVmFsdWUoQ29u
dHJvbFBhcnQgZSkKICAgICAgICAgY2FzZSBNZWRpYVBsYXlCdXR0b25QYXJ0OgogICAgICAgICAg
ICAgbV92YWx1ZS5pZGVudCA9IENTU1ZhbHVlTWVkaWFQbGF5QnV0dG9uOwogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgTWVkaWFPdmVybGF5UGxheUJ1dHRvblBhcnQ6CisgICAgICAg
ICAgICBtX3ZhbHVlLmlkZW50ID0gQ1NTVmFsdWVNZWRpYU92ZXJsYXlQbGF5QnV0dG9uOworICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTWVkaWFNdXRlQnV0dG9uUGFydDoKICAgICAg
ICAgICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZU1lZGlhTXV0ZUJ1dHRvbjsKICAgICAgICAg
ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA2ZTBk
YjI4ZjcyNjc2ZGY2MmI3NjY0NDZmMjUxMjg1MzY3MjIxMWM4Li5iNjM1MDcyMmI4Zjc0MjIyNjQ1
ODk2NDQwM2ZjYTIxYTE3ZDM3ZjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgpAQCAtNjQ0LDYgKzY0NCw3IEBAIG1lZGlhLWZ1bGxzY3JlZW4tdm9sdW1lLXNsaWRlcgog
bWVkaWEtZnVsbHNjcmVlbi12b2x1bWUtc2xpZGVyLXRodW1iCiBtZWRpYS1tdXRlLWJ1dHRvbgog
bWVkaWEtcGxheS1idXR0b24KK21lZGlhLW92ZXJsYXktcGxheS1idXR0b24KIG1lZGlhLXNlZWst
YmFjay1idXR0b24KIG1lZGlhLXNlZWstZm9yd2FyZC1idXR0b24KIG1lZGlhLXJld2luZC1idXR0
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzLmNzcwppbmRleCBkYTFlNmM4MzJlZWEwOGJi
ZDIzNThkYjM4ZjM3ZWNkYjBmNTA5ZWE3Li45ZDgyMjFlNDdmYzVhOTFjM2FlNTZmYzAyYWI0YWIz
ZGY4OWM2MDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9scy5j
c3MKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHMuY3NzCkBAIC04MSw2ICs4
MSwxMCBAQCBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86
Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtbXV0ZS1idQogICAgIGNvbG9yOiBpbmhlcml0OwogfQog
CithdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uLCB2aWRl
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIHsKKyAgICBkaXNw
bGF5OiBub25lOworfQorCiBhdWRpbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1wbGF5LWJ1dHRv
biwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24gewogICAgIC13ZWJr
aXQtYXBwZWFyYW5jZTogbWVkaWEtcGxheS1idXR0b247CiAgICAgZGlzcGxheTogLXdlYmtpdC1i
b3g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVt
QW5kcm9pZC5jc3MgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWVkaWFDb250cm9sc0Nocm9taXVtQW5k
cm9pZC5jc3MKaW5kZXggMjFiNjQ3YzM4MzE0NjExYmE3YmU3NDQ4ZmFjMWQ1ZTc4YWFjMDVmMC4u
MTBmN2YxZTY0MzNjZmNjMzM1YzA3ODg2MDRmMzlkN2NlYTVmMDc3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL21lZGlhQ29udHJvbHNDaHJvbWl1bUFuZHJvaWQuY3NzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9tZWRpYUNvbnRyb2xzQ2hyb21pdW1BbmRyb2lkLmNzcwpAQCAtNzUs
NiArNzUsMjIgQEAgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtZW5jbG9zdXJlIHsKICAg
ICBoZWlnaHQ6IDM1cHg7CiB9CiAKK2F1ZGlvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJs
YXktZW5jbG9zdXJlIHsKKyAgICBkaXNwbGF5OiBub25lOworfQorCit2aWRlbzo6LXdlYmtpdC1t
ZWRpYS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSB7CisgICAgZGlzcGxheTogLXdlYmtpdC1i
b3g7CisgICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOworICAgIC13ZWJraXQtYm94
LXBhY2s6Y2VudGVyOworICAgIC13ZWJraXQtYm94LWFsaWduOmNlbnRlcjsKKyAgICAtd2Via2l0
LWJveC1mbGV4OjE7CisgICAgd2lkdGg6IDEwMCU7CisgICAgbWF4LXdpZHRoOiA4MDBweDsKKyAg
ICB0ZXh0LWluZGVudDogMDsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworfQorCiBhdWRp
bzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1tdXRlLWJ1dHRvbiwgdmlkZW86Oi13ZWJraXQtbWVk
aWEtY29udHJvbHMtbXV0ZS1idXR0b24gewogICAgIGRpc3BsYXk6IG5vbmU7CiB9CkBAIC05Miw2
ICsxMDgsMTggQEAgYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtcGxheS1idXR0b24sIHZp
ZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLXBsYXktYnUKICAgICBwYWRkaW5nOiAwOwogfQog
Cit2aWRlbzo6LXdlYmtpdC1tZWRpYS1jb250cm9scy1vdmVybGF5LXBsYXktYnV0dG9uIHsKKyAg
ICAtd2Via2l0LWFwcGVhcmFuY2U6IG1lZGlhLW92ZXJsYXktcGxheS1idXR0b247CisgICAgLXdl
YmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKKyAgICBi
b3JkZXI6IG5vbmU7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgICB3aWR0aDogODBweDsKKyAgICBoZWlnaHQ6IDgwcHg7
CisgICAgcGFkZGluZzogMDsKK30KKwogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtY3Vy
cmVudC10aW1lLWRpc3BsYXksIHZpZGVvOjotd2Via2l0LW1lZGlhLWNvbnRyb2xzLWN1cnJlbnQt
dGltZS1kaXNwbGF5LAogYXVkaW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5p
bmctZGlzcGxheSwgdmlkZW86Oi13ZWJraXQtbWVkaWEtY29udHJvbHMtdGltZS1yZW1haW5pbmct
ZGlzcGxheSB7CiAgICAgLXdlYmtpdC1hcHBlYXJhbmNlOiBtZWRpYS1jdXJyZW50LXRpbWUtZGlz
cGxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bEVsZW1lbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVs
ZW1lbnRzLmNwcAppbmRleCA3MzE0NDk2MTA3NjUyM2E0MDY5ZjRiMjQxNTFkMGI1NjJjYTBkODJi
Li4yYzRiZDllOTE5ZGUwOWMyNTI2MTZmNWI1YTZkZDNiMzY1NWUwNmQyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xFbGVtZW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuY3BwCkBAIC02
MTIsNiArNjEyLDQ2IEBAIGNvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFDb250cm9sUGxheUJ1dHRv
bkVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIAogLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCitpbmxpbmUgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50
OjpNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogTWVkaWFDb250cm9sSW5wdXRFbGVtZW50KGRvY3VtZW50LCBNZWRpYU92ZXJsYXlQ
bGF5QnV0dG9uKQoreworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0
dG9uRWxlbWVudD4gTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUo
RG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xPdmVybGF5UGxh
eUJ1dHRvbkVsZW1lbnQ+IGJ1dHRvbiA9IGFkb3B0UmVmKG5ldyBNZWRpYUNvbnRyb2xPdmVybGF5
UGxheUJ1dHRvbkVsZW1lbnQoZG9jdW1lbnQpKTsKKyAgICBidXR0b24tPmNyZWF0ZVNoYWRvd1N1
YnRyZWUoKTsKKyAgICBidXR0b24tPnNldFR5cGUoImJ1dHRvbiIpOworICAgIHJldHVybiBidXR0
b24ucmVsZWFzZSgpOworfQorCit2b2lkIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxl
bWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCit7CisgICAgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmNsaWNrRXZlbnQgJiYgbWVkaWFDb250cm9sbGVyKCkt
PmNhblBsYXkoKSkgeworICAgICAgICBtZWRpYUNvbnRyb2xsZXIoKS0+cGxheSgpOworICAgICAg
ICB1cGRhdGVEaXNwbGF5VHlwZSgpOworICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQo
KTsKKyAgICB9CisgICAgSFRNTElucHV0RWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihldmVu
dCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50Ojp1cGRh
dGVEaXNwbGF5VHlwZSgpCit7CisgICAgaWYgKG1lZGlhQ29udHJvbGxlcigpLT5jYW5QbGF5KCkp
IHsKKyAgICAgICAgc2hvdygpOworICAgICAgICBzZXREaXNwbGF5VHlwZShNZWRpYU92ZXJsYXlQ
bGF5QnV0dG9uKTsKKyAgICB9IGVsc2UKKyAgICAgICAgaGlkZSgpOworfQorCitjb25zdCBBdG9t
aWNTdHJpbmcmIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDo6c2hhZG93UHNl
dWRvSWQoKSBjb25zdAoreworICAgIERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBp
ZCwgKCItd2Via2l0LW1lZGlhLWNvbnRyb2xzLW92ZXJsYXktcGxheS1idXR0b24iKSk7CisgICAg
cmV0dXJuIGlkOworfQorCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKIGlubGlu
ZSBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudDo6TWVkaWFDb250cm9sU2Vla0J1dHRvbkVs
ZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBkaXNwbGF5
VHlwZSkKICAgICA6IE1lZGlhQ29udHJvbElucHV0RWxlbWVudChkb2N1bWVudCwgZGlzcGxheVR5
cGUpCiAgICAgLCBtX2FjdGlvbk9uU3RvcChOb3RoaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbEVsZW1lbnRzLmgKaW5kZXggZWZkYjIxZjBkYWEwMGRk
NzYwNTQwMGMyMzU0YWY1YjdiYzY3MmJkMi4uYzE1MTRlMjMxN2QwYjg5NDllZTgwMTFjOWM3MGIw
OTFjOWMwODI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sRWxlbWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xFbGVtZW50cy5oCkBAIC03NCw2ICs3NCw3IEBAIGVudW0gTWVkaWFDb250cm9sRWxlbWVu
dFR5cGUgewogICAgIE1lZGlhVGV4dFRyYWNrRGlzcGxheUNvbnRhaW5lciwKICAgICBNZWRpYVRl
eHRUcmFja0Rpc3BsYXksCiAgICAgTWVkaWFFeGl0RnVsbHNjcmVlbkJ1dHRvbiwKKyAgICBNZWRp
YU92ZXJsYXlQbGF5QnV0dG9uLAogfTsKIAogSFRNTE1lZGlhRWxlbWVudCogdG9QYXJlbnRNZWRp
YUVsZW1lbnQoTm9kZSopOwpAQCAtMjcxLDYgKzI3MiwyMCBAQCBwcml2YXRlOgogCiAvLyAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKK2NsYXNzIE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5
QnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xJbnB1dEVsZW1lbnQgeworcHVibGlj
OgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxl
bWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCopOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVEaXNwbGF5VHlwZSgpOwor
Citwcml2YXRlOgorICAgIGV4cGxpY2l0IE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxl
bWVudChEb2N1bWVudCopOworCisgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJpbmcmIHNoYWRv
d1BzZXVkb0lkKCkgY29uc3Q7Cit9OworCisvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBjbGFzcyBNZWRpYUNvbnRyb2xTZWVrQnV0dG9uRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRy
b2xJbnB1dEVsZW1lbnQgewogcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkZWZhdWx0RXZlbnRI
YW5kbGVyKEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9N
ZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCmluZGV4IGZiZDNmZmNh
ODExZmQxYTM1NGZlOGRjNmQzZTQzNjNkMDNiNDYxNmYuLjYyZjllODU5OTA0MDA1MGFjNDQxYWNj
YjdmYzk4ZGE4ZmI0YmQzYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0uY3BwCkBAIC01Mywx
OSArNTMsMjMgQEAgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpNZWRpYUNv
bnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQoRG9jdW0KIHsKIH0KIAotUGFzc1JlZlB0cjxN
ZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbENocm9taXVt
RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1
bWVudCkpOwotfQotCiBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBNZWRpYUNvbnRyb2xDaHJvbWl1
bUVuY2xvc3VyZUVsZW1lbnQ6OmRpc3BsYXlUeXBlKCkgY29uc3QKIHsKICAgICAvLyBNYXBwaW5n
IG9udG8gc2FtZSBNZWRpYUNvbnRyb2xFbGVtZW50VHlwZSBhcyBwYW5lbCBlbGVtZW50LCBzaW5j
ZSBpdCBoYXMgc2ltaWxhciBwcm9wZXJ0aWVzLgogICAgIHJldHVybiBNZWRpYUNvbnRyb2xzUGFu
ZWw7CiB9CiAKK01lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6TWVkaWFDb250cm9s
UGFuZWxFbmNsb3N1cmVFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IE1lZGlhQ29u
dHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkKK3sKK30KKworUGFzc1JlZlB0
cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IE1lZGlhQ29udHJvbFBhbmVsRW5j
bG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudChkb2N1bWVudCkp
OworfQogCi1jb25zdCBBdG9taWNTdHJpbmcmIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJl
RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAorY29uc3QgQXRvbWljU3RyaW5nJiBNZWRp
YUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKIHsK
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1lbmNsb3N1cmUiKSk7CiAgICAgcmV0dXJuIGlkOwpAQCAtOTIsMTAgKzk2LDEz
IEBAIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06Ok1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW0oRG9jdW1lbnQqIGRvY3VtCiB7CiB9CiAKKy8vIE1lZGlhQ29udHJvbHM6OmNy
ZWF0ZSgpIGZvciBBbmRyb2lkIGlzIGRlZmluZWQgaW4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRD
aHJvbWl1bUFuZHJvaWQuY3BwLgorI2lmICFPUyhBTkRST0lEKQogUGFzc1JlZlB0cjxNZWRpYUNv
bnRyb2xzPiBNZWRpYUNvbnRyb2xzOjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQogewogICAg
IHJldHVybiBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtOjpjcmVhdGUoZG9jdW1lbnQp
OwogfQorI2VuZGlmCiAKIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bT4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKIHsKQEAgLTEwNCw2OCArMTExLDc2IEBAIFBhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9v
dEVsZW1lbnRDaHJvbWl1bT4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6Y3JlCiAK
ICAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bT4gY29udHJvbHMgPSBh
ZG9wdFJlZihuZXcgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bShkb2N1bWVudCkpOwog
CisgICAgaWYgKGNvbnRyb2xzLT5pbml0aWFsaXplQ29udHJvbHMoZG9jdW1lbnQpKQorICAgICAg
ICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworCisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wg
TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6aW5pdGlhbGl6ZUNvbnRyb2xzKERvY3Vt
ZW50KiBkb2N1bWVudCkKK3sKICAgICAvLyBDcmVhdGUgYW4gZW5jbG9zaW5nIGVsZW1lbnQgZm9y
IHRoZSBwYW5lbCBzbyB3ZSBjYW4gdmlzdWFsbHkgb2Zmc2V0IHRoZSBjb250cm9scyBjb3JyZWN0
bHkuCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudD4gZW5j
bG9zdXJlID0gTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50OjpjcmVhdGUoZG9j
dW1lbnQpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVuY2xvc3VyZUVsZW1lbnQ+IGVu
Y2xvc3VyZSA9IE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKGRvY3Vt
ZW50KTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbEVsZW1lbnQ+IHBhbmVsID0gTWVk
aWFDb250cm9sUGFuZWxFbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQpOwogCiAgICAgRXhjZXB0aW9u
Q29kZSBlYzsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQbGF5QnV0dG9uRWxlbWVudD4gcGxh
eUJ1dHRvbiA9IE1lZGlhQ29udHJvbFBsYXlCdXR0b25FbGVtZW50OjpjcmVhdGUoZG9jdW1lbnQp
OwotICAgIGNvbnRyb2xzLT5tX3BsYXlCdXR0b24gPSBwbGF5QnV0dG9uLmdldCgpOworICAgIG1f
cGxheUJ1dHRvbiA9IHBsYXlCdXR0b24uZ2V0KCk7CiAgICAgcGFuZWwtPmFwcGVuZENoaWxkKHBs
YXlCdXR0b24ucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1
cm4gMDsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgUmVmUHRyPE1lZGlhQ29udHJvbFRp
bWVsaW5lRWxlbWVudD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNy
ZWF0ZShkb2N1bWVudCwgY29udHJvbHMuZ2V0KCkpOwotICAgIGNvbnRyb2xzLT5tX3RpbWVsaW5l
ID0gdGltZWxpbmUuZ2V0KCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbFRpbWVsaW5lRWxlbWVu
dD4gdGltZWxpbmUgPSBNZWRpYUNvbnRyb2xUaW1lbGluZUVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVu
dCwgdGhpcyk7CisgICAgbV90aW1lbGluZSA9IHRpbWVsaW5lLmdldCgpOwogICAgIHBhbmVsLT5h
cHBlbmRDaGlsZCh0aW1lbGluZS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZWZQdHI8TWVk
aWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudD4gY3VycmVudFRpbWVEaXNwbGF5ID0g
TWVkaWFDb250cm9sQ3VycmVudFRpbWVEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsK
LSAgICBjb250cm9scy0+bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXku
Z2V0KCk7Ci0gICAgY29udHJvbHMtPm1fY3VycmVudFRpbWVEaXNwbGF5LT5oaWRlKCk7CisgICAg
bV9jdXJyZW50VGltZURpc3BsYXkgPSBjdXJyZW50VGltZURpc3BsYXkuZ2V0KCk7CisgICAgbV9j
dXJyZW50VGltZURpc3BsYXktPmhpZGUoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoY3VycmVu
dFRpbWVEaXNwbGF5LnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAgICAgICAg
cmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxNZWRpYUNvbnRy
b2xUaW1lUmVtYWluaW5nRGlzcGxheUVsZW1lbnQ+IGR1cmF0aW9uRGlzcGxheSA9IE1lZGlhQ29u
dHJvbFRpbWVSZW1haW5pbmdEaXNwbGF5RWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50KTsKLSAgICBj
b250cm9scy0+bV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CisgICAg
bV9kdXJhdGlvbkRpc3BsYXkgPSBkdXJhdGlvbkRpc3BsYXkuZ2V0KCk7CiAgICAgcGFuZWwtPmFw
cGVuZENoaWxkKGR1cmF0aW9uRGlzcGxheS5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAo
ZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudD4gcGFuZWxNdXRlQnV0dG9uID0g
TWVkaWFDb250cm9sUGFuZWxNdXRlQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBjb250
cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxNdXRl
QnV0dG9uLmdldCgpOworICAgIFJlZlB0cjxNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVt
ZW50PiBwYW5lbE11dGVCdXR0b24gPSBNZWRpYUNvbnRyb2xQYW5lbE11dGVCdXR0b25FbGVtZW50
OjpjcmVhdGUoZG9jdW1lbnQsIHRoaXMpOworICAgIG1fcGFuZWxNdXRlQnV0dG9uID0gcGFuZWxN
dXRlQnV0dG9uLmdldCgpOwogICAgIHBhbmVsLT5hcHBlbmRDaGlsZChwYW5lbE11dGVCdXR0b24u
cmVsZWFzZSgpLCBlYywgdHJ1ZSk7CiAgICAgaWYgKGVjKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVmUHRyPE1lZGlhQ29udHJvbFZvbHVtZVNsaWRl
ckVsZW1lbnQ+IHNsaWRlciA9IE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVsZW1lbnQ6OmNyZWF0
ZShkb2N1bWVudCk7Ci0gICAgY29udHJvbHMtPm1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgp
OwotICAgIGNvbnRyb2xzLT5tX3ZvbHVtZVNsaWRlci0+c2V0Q2xlYXJNdXRlZE9uVXNlckludGVy
YWN0aW9uKHRydWUpOworICAgIG1fdm9sdW1lU2xpZGVyID0gc2xpZGVyLmdldCgpOworICAgIG1f
dm9sdW1lU2xpZGVyLT5zZXRDbGVhck11dGVkT25Vc2VySW50ZXJhY3Rpb24odHJ1ZSk7CiAgICAg
cGFuZWwtPmFwcGVuZENoaWxkKHNsaWRlci5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAo
ZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBSZWZQ
dHI8TWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRvbkVsZW1lbnQ+IGZ1bGxzY3JlZW5CdXR0b24g
PSBNZWRpYUNvbnRyb2xGdWxsc2NyZWVuQnV0dG9uRWxlbWVudDo6Y3JlYXRlKGRvY3VtZW50LCBj
b250cm9scy5nZXQoKSk7Ci0gICAgY29udHJvbHMtPm1fZnVsbHNjcmVlbkJ1dHRvbiA9IGZ1bGxz
Y3JlZW5CdXR0b24uZ2V0KCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0
b25FbGVtZW50PiBmdWxsc2NyZWVuQnV0dG9uID0gTWVkaWFDb250cm9sRnVsbHNjcmVlbkJ1dHRv
bkVsZW1lbnQ6OmNyZWF0ZShkb2N1bWVudCwgdGhpcyk7CisgICAgbV9mdWxsc2NyZWVuQnV0dG9u
ID0gZnVsbHNjcmVlbkJ1dHRvbi5nZXQoKTsKICAgICBwYW5lbC0+YXBwZW5kQ2hpbGQoZnVsbHNj
cmVlbkJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjb250cm9scy0+bV9wYW5lbCA9
IHBhbmVsLmdldCgpOworICAgIG1fcGFuZWwgPSBwYW5lbC5nZXQoKTsKICAgICBlbmNsb3N1cmUt
PmFwcGVuZENoaWxkKHBhbmVsLnJlbGVhc2UoKSwgZWMsIHRydWUpOwogICAgIGlmIChlYykKLSAg
ICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGNvbnRyb2xzLT5t
X2VuY2xvc3VyZSA9IGVuY2xvc3VyZS5nZXQoKTsKLSAgICBjb250cm9scy0+YXBwZW5kQ2hpbGQo
ZW5jbG9zdXJlLnJlbGVhc2UoKSwgZWMsIHRydWUpOworICAgIG1fZW5jbG9zdXJlID0gZW5jbG9z
dXJlLmdldCgpOworICAgIGFwcGVuZENoaWxkKGVuY2xvc3VyZS5yZWxlYXNlKCksIGVjLCB0cnVl
KTsKICAgICBpZiAoZWMpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICByZXR1cm4gY29udHJvbHMucmVsZWFzZSgpOworICAgIHJldHVybiB0cnVlOwogfQog
CiB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW06OnNldE1lZGlhQ29udHJvbGxl
cihNZWRpYUNvbnRyb2xsZXJJbnRlcmZhY2UqIGNvbnRyb2xsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtLmgKaW5kZXggZDY4MzM5OTNkMDg5YzEwYWZkMTlmYzZjODM0YTQ0MzJmNTExYjQ0Mi4uYTgy
N2YxMTE2ZWFlYWU2OTU1ZGYxNzQzMzM3MTVkNzRlYWViZjRiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW0uaApAQCAtNjMsMTMgKzYzLDE5IEBAIGNsYXNzIE1lZGlhQ29udHJvbFRleHRUcmFja0Rp
c3BsYXlFbGVtZW50OwogI2VuZGlmCiAKIGNsYXNzIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9z
dXJlRWxlbWVudCA6IHB1YmxpYyBNZWRpYUNvbnRyb2xFbGVtZW50IHsKLXB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQ+IGNy
ZWF0ZShEb2N1bWVudCopOwotCi1wcml2YXRlOgorcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IE1l
ZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudChEb2N1bWVudCopOwogCitwcml2YXRl
OgogICAgIHZpcnR1YWwgTWVkaWFDb250cm9sRWxlbWVudFR5cGUgZGlzcGxheVR5cGUoKSBjb25z
dDsKK307CisKK2NsYXNzIE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudCA6IHB1Ymxp
YyBNZWRpYUNvbnRyb2xDaHJvbWl1bUVuY2xvc3VyZUVsZW1lbnQgeworcHVibGljOgorICAgIHN0
YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFBhbmVsRW5jbG9zdXJlRWxlbWVudD4gY3JlYXRl
KERvY3VtZW50Kik7CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sUGFuZWxF
bmNsb3N1cmVFbGVtZW50KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCBjb25zdCBBdG9taWNTdHJp
bmcmIHNoYWRvd1BzZXVkb0lkKCkgY29uc3Q7CiB9OwogCkBAIC03OCw3ICs4NCw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVt
PiBjcmVhdGUoRG9jdW1lbnQqKTsKIAogICAgIC8vIE1lZGlhQ29udHJvbHMgaW1wbGVtZW50YXRp
b24uCi0gICAgdm9pZCBzZXRNZWRpYUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNl
Kik7CisgICAgdmlydHVhbCB2b2lkIHNldE1lZGlhQ29udHJvbGxlcihNZWRpYUNvbnRyb2xsZXJJ
bnRlcmZhY2UqKTsKIAogICAgIHZvaWQgc2hvdygpOwogICAgIHZvaWQgaGlkZSgpOwpAQCAtODcs
OSArOTMsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHJlc2V0KCk7CiAKLSAgICB2b2lkIHBsYXli
YWNrUHJvZ3Jlc3NlZCgpOwotICAgIHZvaWQgcGxheWJhY2tTdGFydGVkKCk7Ci0gICAgdm9pZCBw
bGF5YmFja1N0b3BwZWQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tQcm9ncmVzc2VkKCk7
CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrU3RhcnRlZCgpOworICAgIHZpcnR1YWwgdm9pZCBw
bGF5YmFja1N0b3BwZWQoKTsKIAogICAgIHZvaWQgY2hhbmdlZE11dGUoKTsKICAgICB2b2lkIGNo
YW5nZWRWb2x1bWUoKTsKQEAgLTExNiw5ICsxMjIsMTMgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBib29sIHNob3VsZEhpZGVDb250cm9scygpOwogCi1wcml2YXRlOgotICAgIE1lZGlhQ29udHJv
bFJvb3RFbGVtZW50Q2hyb21pdW0oRG9jdW1lbnQqKTsKK3Byb3RlY3RlZDoKKyAgICBleHBsaWNp
dCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtKERvY3VtZW50Kik7CiAKKyAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlIHJldHVybiBmYWxzZS4KKyAgICBi
b29sIGluaXRpYWxpemVDb250cm9scyhEb2N1bWVudCopOworCitwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50Kik7CiAgICAgdm9pZCBoaWRlRnVsbHNj
cmVlbkNvbnRyb2xzVGltZXJGaXJlZChUaW1lcjxNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9t
aXVtPiopOwogICAgIHZvaWQgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKQEAg
LTEzOCw3ICsxNDgsOCBAQCBwcml2YXRlOgogICAgIE1lZGlhQ29udHJvbFZvbHVtZVNsaWRlckVs
ZW1lbnQqIG1fdm9sdW1lU2xpZGVyOwogICAgIE1lZGlhQ29udHJvbEZ1bGxzY3JlZW5CdXR0b25F
bGVtZW50KiBtX2Z1bGxzY3JlZW5CdXR0b247CiAgICAgTWVkaWFDb250cm9sUGFuZWxFbGVtZW50
KiBtX3BhbmVsOwotICAgIE1lZGlhQ29udHJvbENocm9taXVtRW5jbG9zdXJlRWxlbWVudCogbV9l
bmNsb3N1cmU7CisgICAgTWVkaWFDb250cm9sUGFuZWxFbmNsb3N1cmVFbGVtZW50KiBtX2VuY2xv
c3VyZTsKKwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBNZWRpYUNvbnRyb2xUZXh0VHJh
Y2tDb250YWluZXJFbGVtZW50KiBtX3RleHREaXNwbGF5Q29udGFpbmVyOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtQW5kcm9pZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNv
bnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDU2MzRhODQ3
NmRlOGU0Yzc4ZjAzYzg1OTM4NTAyNTYyYWRmZmUzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRy
b2lkLmNwcApAQCAtMCwwICsxLDExMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIEVOQUJMRShWSURFTykKKyNpbmNsdWRlICJNZWRpYUNvbnRyb2xSb290RWxlbWVudENo
cm9taXVtQW5kcm9pZC5oIgorCisjaW5jbHVkZSAiTWVkaWFDb250cm9sRWxlbWVudHMuaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitNZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVu
dDo6TWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50
KQorICAgIDogTWVkaWFDb250cm9sQ2hyb21pdW1FbmNsb3N1cmVFbGVtZW50KGRvY3VtZW50KQor
eworfQorCitQYXNzUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBN
ZWRpYUNvbnRyb2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1
bWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbE92ZXJsYXlFbmNs
b3N1cmVFbGVtZW50KGRvY3VtZW50KSk7Cit9CisKK2NvbnN0IEF0b21pY1N0cmluZyYgTWVkaWFD
b250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OnNoYWRvd1BzZXVkb0lkKCkgY29uc3QKK3sK
KyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKEF0b21pY1N0cmluZywgaWQsICgiLXdlYmtpdC1tZWRp
YS1jb250cm9scy1vdmVybGF5LWVuY2xvc3VyZSIpKTsKKyAgICByZXR1cm4gaWQ7Cit9CisKK01l
ZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpNZWRpYUNvbnRyb2xSb290RWxl
bWVudENocm9taXVtQW5kcm9pZChEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBNZWRpYUNvbnRy
b2xSb290RWxlbWVudENocm9taXVtKGRvY3VtZW50KQorICAgICwgbV9vdmVybGF5UGxheUJ1dHRv
bigwKQorICAgICwgbV9vdmVybGF5RW5jbG9zdXJlKDApCit7Cit9CisKK1Bhc3NSZWZQdHI8TWVk
aWFDb250cm9scz4gTWVkaWFDb250cm9sczo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKK3sK
KyAgICByZXR1cm4gTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bUFuZHJvaWQ6OmNyZWF0
ZShkb2N1bWVudCk7Cit9CisKK1Bhc3NSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bUFuZHJvaWQ+IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQoreworICAgIGlmICghZG9jdW1lbnQtPnBhZ2UoKSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8TWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bUFuZHJvaWQ+IGNvbnRyb2xzID0gYWRvcHRSZWYobmV3IE1lZGlhQ29udHJvbFJvb3RFbGVt
ZW50Q2hyb21pdW1BbmRyb2lkKGRvY3VtZW50KSk7CisKKyAgICBFeGNlcHRpb25Db2RlIGVjOwor
CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVtZW50PiBvdmVybGF5
RW5jbG9zdXJlID0gTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQ6OmNyZWF0ZShk
b2N1bWVudCk7CisgICAgUmVmUHRyPE1lZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVu
dD4gb3ZlcmxheVBsYXlCdXR0b24gPSBNZWRpYUNvbnRyb2xPdmVybGF5UGxheUJ1dHRvbkVsZW1l
bnQ6OmNyZWF0ZShkb2N1bWVudCk7CisgICAgY29udHJvbHMtPm1fb3ZlcmxheVBsYXlCdXR0b24g
PSBvdmVybGF5UGxheUJ1dHRvbi5nZXQoKTsKKyAgICBvdmVybGF5RW5jbG9zdXJlLT5hcHBlbmRD
aGlsZChvdmVybGF5UGxheUJ1dHRvbi5yZWxlYXNlKCksIGVjLCB0cnVlKTsKKyAgICBpZiAoZWMp
CisgICAgICAgIHJldHVybiAwOworCisgICAgY29udHJvbHMtPm1fb3ZlcmxheUVuY2xvc3VyZSA9
IG92ZXJsYXlFbmNsb3N1cmUuZ2V0KCk7CisgICAgY29udHJvbHMtPmFwcGVuZENoaWxkKG92ZXJs
YXlFbmNsb3N1cmUucmVsZWFzZSgpLCBlYywgdHJ1ZSk7CisgICAgaWYgKGVjKQorICAgICAgICBy
ZXR1cm4gMDsKKworICAgIGlmIChjb250cm9scy0+aW5pdGlhbGl6ZUNvbnRyb2xzKGRvY3VtZW50
KSkKKyAgICAgICAgcmV0dXJuIGNvbnRyb2xzLnJlbGVhc2UoKTsKKworICAgIHJldHVybiAwOwor
fQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lkOjpzZXRNZWRp
YUNvbnRyb2xsZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKiBjb250cm9sbGVyKQoreworICAg
IGlmIChtX292ZXJsYXlQbGF5QnV0dG9uKQorICAgICAgICBtX292ZXJsYXlQbGF5QnV0dG9uLT5z
ZXRNZWRpYUNvbnRyb2xsZXIoY29udHJvbGxlcik7CisgICAgaWYgKG1fb3ZlcmxheUVuY2xvc3Vy
ZSkKKyAgICAgICAgbV9vdmVybGF5RW5jbG9zdXJlLT5zZXRNZWRpYUNvbnRyb2xsZXIoY29udHJv
bGxlcik7CisgICAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1bTo6c2V0TWVkaWFDb250
cm9sbGVyKGNvbnRyb2xsZXIpOworfQorCit2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW1BbmRyb2lkOjpwbGF5YmFja1N0YXJ0ZWQoKQoreworICAgIG1fb3ZlcmxheVBsYXlCdXR0
b24tPnVwZGF0ZURpc3BsYXlUeXBlKCk7CisgICAgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJv
bWl1bTo6cGxheWJhY2tTdGFydGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFDb250cm9sUm9vdEVsZW1l
bnRDaHJvbWl1bUFuZHJvaWQ6OnBsYXliYWNrU3RvcHBlZCgpCit7CisgICAgbV9vdmVybGF5UGxh
eUJ1dHRvbi0+dXBkYXRlRGlzcGxheVR5cGUoKTsKKyAgICBNZWRpYUNvbnRyb2xSb290RWxlbWVu
dENocm9taXVtOjpwbGF5YmFja1N0b3BwZWQoKTsKK30KKworfQorCisjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hy
b21pdW1BbmRyb2lkLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xS
b290RWxlbWVudENocm9taXVtQW5kcm9pZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjljNzc0ODNmOThlMjI4NjBj
Mzc1YTg1ODQ3NTAwZTYxYTg0NGM3Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZC5oCkBA
IC0wLDAgKzEsNjUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50
Q2hyb21pdW1BbmRyb2lkX2gKKyNkZWZpbmUgTWVkaWFDb250cm9sUm9vdEVsZW1lbnRDaHJvbWl1
bUFuZHJvaWRfaAorCisjaWYgRU5BQkxFKFZJREVPKQorCisjaW5jbHVkZSAiTWVkaWFDb250cm9s
Um9vdEVsZW1lbnRDaHJvbWl1bS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE1l
ZGlhQ29udHJvbE92ZXJsYXlQbGF5QnV0dG9uRWxlbWVudDsKKworY2xhc3MgTWVkaWFDb250cm9s
T3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQgOiBwdWJsaWMgTWVkaWFDb250cm9sQ2hyb21pdW1FbmNs
b3N1cmVFbGVtZW50IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxNZWRpYUNvbnRy
b2xPdmVybGF5RW5jbG9zdXJlRWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CisKK3ByaXZhdGU6
CisgICAgZXhwbGljaXQgTWVkaWFDb250cm9sT3ZlcmxheUVuY2xvc3VyZUVsZW1lbnQoRG9jdW1l
bnQqKTsKKyAgICB2aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgc2hhZG93UHNldWRvSWQoKSBj
b25zdDsKK307CisKK2NsYXNzIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lk
IDogcHVibGljIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW0geworcHVibGljOgorICAg
IHN0YXRpYyBQYXNzUmVmUHRyPE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Q2hyb21pdW1BbmRyb2lk
PiBjcmVhdGUoRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9pZCBzZXRNZWRpYUNvbnRyb2xs
ZXIoTWVkaWFDb250cm9sbGVySW50ZXJmYWNlKik7CisgICAgdmlydHVhbCB2b2lkIHBsYXliYWNr
U3RhcnRlZCgpOworICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1N0b3BwZWQoKTsKKworcHJpdmF0
ZToKKyAgICBleHBsaWNpdCBNZWRpYUNvbnRyb2xSb290RWxlbWVudENocm9taXVtQW5kcm9pZChE
b2N1bWVudCopOworCisgICAgTWVkaWFDb250cm9sT3ZlcmxheVBsYXlCdXR0b25FbGVtZW50KiBt
X292ZXJsYXlQbGF5QnV0dG9uOworICAgIE1lZGlhQ29udHJvbE92ZXJsYXlFbmNsb3N1cmVFbGVt
ZW50KiBtX292ZXJsYXlFbmNsb3N1cmU7Cit9OworCit9CisKKyNlbmRpZgorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1RoZW1lVHlwZXMuaAppbmRleCAxMjA4YTlhMmVlNTY2MzA4ZGNiMjRi
ZDIyMzhlMDdmZDRlMDA1NjY4Li44ZWY2YjIzNzU0ZmUwYjFhNjM0N2Q1YmM4MmM0NzcyZjExODU5
OGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaGVtZVR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oCkBAIC00OCw4ICs0OCw4IEBA
IHR5cGVkZWYgdW5zaWduZWQgQ29udHJvbFN0YXRlczsKIGVudW0gQ29udHJvbFBhcnQgewogICAg
IE5vQ29udHJvbFBhcnQsIENoZWNrYm94UGFydCwgUmFkaW9QYXJ0LCBQdXNoQnV0dG9uUGFydCwg
U3F1YXJlQnV0dG9uUGFydCwgQnV0dG9uUGFydCwKICAgICBCdXR0b25CZXZlbFBhcnQsIERlZmF1
bHRCdXR0b25QYXJ0LCBJbm5lclNwaW5CdXR0b25QYXJ0LCBJbnB1dFNwZWVjaEJ1dHRvblBhcnQs
IExpc3Rib3hQYXJ0LCBMaXN0SXRlbVBhcnQsCi0gICAgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0
b25QYXJ0LCBNZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFGdWxsU2NyZWVuVm9s
dW1lU2xpZGVyUGFydCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LCBNZWRp
YU11dGVCdXR0b25QYXJ0LCBNZWRpYVBsYXlCdXR0b25QYXJ0LCBNZWRpYVNlZWtCYWNrQnV0dG9u
UGFydCwgCi0gICAgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQsIE1lZGlhUmV3aW5kQnV0dG9u
UGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydCwgTWVkaWFUb2dnbGVDbG9zZWRD
YXB0aW9uc0J1dHRvblBhcnQsCisgICAgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b25QYXJ0LCBN
ZWRpYUV4aXRGdWxsc2NyZWVuQnV0dG9uUGFydCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVy
UGFydCwgTWVkaWFGdWxsU2NyZWVuVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LCBNZWRpYU11dGVCdXR0
b25QYXJ0LCBNZWRpYVBsYXlCdXR0b25QYXJ0LAorICAgIE1lZGlhT3ZlcmxheVBsYXlCdXR0b25Q
YXJ0LCBNZWRpYVNlZWtCYWNrQnV0dG9uUGFydCwgTWVkaWFTZWVrRm9yd2FyZEJ1dHRvblBhcnQs
IE1lZGlhUmV3aW5kQnV0dG9uUGFydCwgTWVkaWFSZXR1cm5Ub1JlYWx0aW1lQnV0dG9uUGFydCwg
TWVkaWFUb2dnbGVDbG9zZWRDYXB0aW9uc0J1dHRvblBhcnQsCiAgICAgTWVkaWFTbGlkZXJQYXJ0
LCBNZWRpYVNsaWRlclRodW1iUGFydCwgTWVkaWFWb2x1bWVTbGlkZXJDb250YWluZXJQYXJ0LCBN
ZWRpYVZvbHVtZVNsaWRlclBhcnQsIE1lZGlhVm9sdW1lU2xpZGVyVGh1bWJQYXJ0LAogICAgIE1l
ZGlhVm9sdW1lU2xpZGVyTXV0ZUJ1dHRvblBhcnQsIE1lZGlhQ29udHJvbHNCYWNrZ3JvdW5kUGFy
dCwgTWVkaWFDb250cm9sc0Z1bGxzY3JlZW5CYWNrZ3JvdW5kUGFydCwgTWVkaWFDdXJyZW50VGlt
ZVBhcnQsIE1lZGlhVGltZVJlbWFpbmluZ1BhcnQsCiAgICAgTWVudWxpc3RQYXJ0LCBNZW51bGlz
dEJ1dHRvblBhcnQsIE1lbnVsaXN0VGV4dFBhcnQsIE1lbnVsaXN0VGV4dEZpZWxkUGFydCwgTWV0
ZXJQYXJ0LCBQcm9ncmVzc0JhclBhcnQsIFByb2dyZXNzQmFyVmFsdWVQYXJ0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVt
LmNwcAppbmRleCBiM2I4Mjk4MmM5OWZhOTViZTRiOTk2ZDM0MjQ1Y2ZjZjEwNGMxMjMzLi5kMjk1
NGRjM2FiZjk5YWRmYjI2NzRkODU0YTM5YTEzODVhZTA4ODU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWFDb250cm9sc0Nocm9taXVtLmNwcApA
QCAtMTExLDYgKzExMSwxOSBAQCBzdGF0aWMgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5k
ZXJPYmplY3QqIG9iamVjdCwgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZgogICAgIHJldHVybiBw
YWludE1lZGlhQnV0dG9uKHBhaW50SW5mby5jb250ZXh0LCByZWN0LCBtZWRpYUVsZW1lbnQtPmNh
blBsYXkoKSA/IG1lZGlhUGxheSA6IG1lZGlhUGF1c2UpOwogfQogCitzdGF0aWMgYm9vbCBwYWlu
dE1lZGlhT3ZlcmxheVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IFBhaW50
SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEhUTUxNZWRpYUVs
ZW1lbnQqIG1lZGlhRWxlbWVudCA9IHRvUGFyZW50TWVkaWFFbGVtZW50KG9iamVjdCk7CisgICAg
aWYgKCFtZWRpYUVsZW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghaGFz
U291cmNlKG1lZGlhRWxlbWVudCkgfHwgIW1lZGlhRWxlbWVudC0+Y2FuUGxheSgpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBzdGF0aWMgSW1hZ2UqIG1lZGlhT3ZlcmxheVBsYXkgPSBw
bGF0Zm9ybVJlc291cmNlKCJtZWRpYXBsYXllck92ZXJsYXlQbGF5Iik7CisgICAgcmV0dXJuIHBh
aW50TWVkaWFCdXR0b24ocGFpbnRJbmZvLmNvbnRleHQsIHJlY3QsIG1lZGlhT3ZlcmxheVBsYXkp
OworfQorCiBzdGF0aWMgSW1hZ2UqIGdldE1lZGlhU2xpZGVyVGh1bWIoKQogewogICAgIHN0YXRp
YyBJbWFnZSogbWVkaWFTbGlkZXJUaHVtYiA9IHBsYXRmb3JtUmVzb3VyY2UoIm1lZGlhcGxheWVy
U2xpZGVyVGh1bWIiKTsKQEAgLTMzNCw2ICszNDcsOCBAQCBib29sIFJlbmRlck1lZGlhQ29udHJv
bHNDaHJvbWl1bTo6cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYUNvbnRyb2xFbGVtZW50VHlw
ZQogICAgIGNhc2UgTWVkaWFFbnRlckZ1bGxzY3JlZW5CdXR0b246CiAgICAgY2FzZSBNZWRpYUV4
aXRGdWxsc2NyZWVuQnV0dG9uOgogICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUZ1bGxzY3JlZW5C
dXR0b24ob2JqZWN0LCBwYWludEluZm8sIHJlY3QpOworICAgIGNhc2UgTWVkaWFPdmVybGF5UGxh
eUJ1dHRvbjoKKyAgICAgICAgcmV0dXJuIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihvYmpl
Y3QsIHBhaW50SW5mbywgcmVjdCk7CiAgICAgY2FzZSBNZWRpYVZvbHVtZVNsaWRlck11dGVCdXR0
b246CiAgICAgY2FzZSBNZWRpYVNlZWtCYWNrQnV0dG9uOgogICAgIGNhc2UgTWVkaWFTZWVrRm9y
d2FyZEJ1dHRvbjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuY3BwCmluZGV4
IGY4OTY3MzIzN2Q2NjFjYTVmMzIzYWMwZGEyNDIwM2FhOTYyMGQ0NTMuLmYxNjYxNzIyZTczMzY4
MDM0Yzc2ZjZkNmRiZWQ3NjcxYjgzN2ZmOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lLmNwcApAQCAtMzI5LDYgKzMyOSw4IEBAIGJvb2wgUmVuZGVyVGhlbWU6OnBhaW50
KFJlbmRlck9iamVjdCogbywgY29uc3QgUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IEludFJl
CiAgICAgICAgICAgICByZXR1cm4gcGFpbnRNZWRpYUZ1bGxzY3JlZW5CdXR0b24obywgcGFpbnRJ
bmZvLCByKTsKICAgICAgICAgY2FzZSBNZWRpYVBsYXlCdXR0b25QYXJ0OgogICAgICAgICAgICAg
cmV0dXJuIHBhaW50TWVkaWFQbGF5QnV0dG9uKG8sIHBhaW50SW5mbywgcik7CisgICAgICAgIGNh
c2UgTWVkaWFPdmVybGF5UGxheUJ1dHRvblBhcnQ6CisgICAgICAgICAgICByZXR1cm4gcGFpbnRN
ZWRpYU92ZXJsYXlQbGF5QnV0dG9uKG8sIHBhaW50SW5mbywgcik7CiAgICAgICAgIGNhc2UgTWVk
aWFNdXRlQnV0dG9uUGFydDoKICAgICAgICAgICAgIHJldHVybiBwYWludE1lZGlhTXV0ZUJ1dHRv
bihvLCBwYWludEluZm8sIHIpOwogICAgICAgICBjYXNlIE1lZGlhU2Vla0JhY2tCdXR0b25QYXJ0
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaAppbmRleCA2Mjk4MzRiYzgwZWZk
MjRlN2UxYTIzMGFlOWJhYTc1MjVkOTFiODZkLi4zZDM5NzYyNjZiZjVhN2E3MGEyNDRkMDU5NGVk
MmM2MDI1MjhlMTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaApAQCAt
MzE4LDYgKzMxOCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVkaWFD
b250cm9sU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhRnVsbHNjcmVlbkJ1dHRvbihSZW5kZXJPYmpl
Y3QqLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQog
ICAgIHZpcnR1YWwgYm9vbCBwYWludE1lZGlhUGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZpcnR1
YWwgYm9vbCBwYWludE1lZGlhT3ZlcmxheVBsYXlCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3Qg
UGFpbnRJbmZvJiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRNZWRpYU11dGVCdXR0b24oUmVuZGVyT2JqZWN0KiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgSW50UmVjdCYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFp
bnRNZWRpYVNlZWtCYWNrQnV0dG9uKFJlbmRlck9iamVjdCosIGNvbnN0IFBhaW50SW5mbyYsIGNv
bnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVk
aWFTZWVrRm9yd2FyZEJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25zdCBQYWludEluZm8mLCBjb25z
dCBJbnRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtQW5kcm9pZC5jcHAKaW5kZXggOTI0MGRmMzRj
Yzg3ZWZjZjE1MjA0YjQ1MjhkMDBlN2M0OTQ0OGYyNC4uYmUzNzAxOTEzOWFmYzVlNDJmNzhlMjQz
NDQ3NjUxMTM0NWE2OThiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bUFuZHJvaWQuY3BwCkBAIC04OCw2ICs4OCwxOCBAQCB2b2lk
IFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjphZGp1c3RJbm5lclNwaW5CdXR0b25TdHlsZShT
dHlsZVJlc29sdmVyKiwgUmVuZAogICAgIH0KIH0KIAorYm9vbCBSZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZDo6cGFpbnRNZWRpYU92ZXJsYXlQbGF5QnV0dG9uKFJlbmRlck9iamVjdCogb2JqZWN0
LCBjb25zdCBQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyNp
ZiBFTkFCTEUoVklERU8pCisgICAgcmV0dXJuIFJlbmRlck1lZGlhQ29udHJvbHNDaHJvbWl1bTo6
cGFpbnRNZWRpYUNvbnRyb2xzUGFydChNZWRpYU92ZXJsYXlQbGF5QnV0dG9uLCBvYmplY3QsIHBh
aW50SW5mbywgcmVjdCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworICAgIFVO
VVNFRF9QQVJBTShwYWludEluZm8pOworICAgIFVOVVNFRF9QQVJBTShyZWN0KTsKKyAgICByZXR1
cm4gZmFsc2U7CisjZW5kaWYKK30KKwogaW50IFJlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkOjpt
ZW51TGlzdEFycm93UGFkZGluZygpIGNvbnN0CiB7CiAgICAgLy8gV2UgY2Fubm90IHVzZSB0aGUg
c2Nyb2xsYmFyIHRoaWNrbmVzcyBoZXJlLCBhcyBpdCdzIHdpZHRoIGlzIDAgb24gQW5kcm9pZC4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
QW5kcm9pZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1B
bmRyb2lkLmgKaW5kZXggYzNlNGI4YmVkMWFmODk3NWJmMmM0NjQ4ODVkYTMyMTExZDllNmY4NC4u
MDI3NjI4ZTgxYWUxMmNmMWZiNzhkMTQyMWQxM2NhMDFjZjYyOTkwYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1BbmRyb2lkLmgKQEAg
LTQxLDYgKzQxLDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGRlbGVnYXRlc01lbnVM
aXN0UmVuZGVyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gdHJ1ZTsgfQogCisgICAgdmly
dHVhbCBib29sIHBhaW50TWVkaWFPdmVybGF5UGxheUJ1dHRvbihSZW5kZXJPYmplY3QqLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBJbnRSZWN0JikgT1ZFUlJJREU7CisKICNpZiBFTkFCTEUoVklE
RU8pCiAgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFNZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIE9W
RVJSSURFOwogI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>