<?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>128564</bug_id>
          
          <creation_ts>2014-02-10 16:23:43 -0800</creation_ts>
          <short_desc>WK2 AVKit fullscreen doesn&apos;t display video.</short_desc>
          <delta_ts>2014-02-24 16:34:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>128573</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jeremy Jones">jeremyj-wk</reporter>
          <assigned_to name="Jeremy Jones">jeremyj-wk</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>979130</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-10 16:23:43 -0800</bug_when>
    <thetext>Need to find a way to get the video PlatformLayer from WebPageProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980921</commentid>
    <comment_count>1</comment_count>
      <attachid>224244</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-14 12:53:36 -0800</bug_when>
    <thetext>Created attachment 224244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980954</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-14 13:48:24 -0800</bug_when>
    <thetext>Simon, there are a couple interesting changes here.
1) There is already mechanism for getting a PlatformCALayer from a PlatformLayer. I hooked this up to work with PlatformCALayerRemoteCustom.
2) RemoteLayerTreeTransaction has a new flag. It doesn&apos;t seem elegant. Do you have a suggestion for how to make it more generally useful?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980959</commentid>
    <comment_count>3</comment_count>
      <attachid>224244</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-14 13:56:46 -0800</bug_when>
    <thetext>Comment on attachment 224244
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * WebCore.exp.in:

A short summary of the change should go here.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * Shared/mac/RemoteLayerTreeTransaction.h:

Ditto

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:287
&gt; +    if ([videoLayer isKindOfClass:[classAVPlayerLayer class]])
&gt; +        avPlayerLayer = (CALayer&lt;AVPlayerLayer&gt;*)videoLayer;
&gt; +    else

Why do we need to handle both cases here? Do they occur in different scenarios? A comment would be nice.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:290
&gt; +        avPlayerLayer = [[[WebAVPlayerLayer alloc] init] autorelease];

[WebAVPlayerLayer layer] ?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:97
&gt; +    m_videoFullscreenInterface-&gt;setVideoLayer(m_mediaElement-&gt;platformLayer());

I hate the name &quot;interface&quot;. Is it human interface, or a an interface class?

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:176
&gt; +    bool videoLayerUnparented() const { return m_videoLayerUnparented; }

videoLayerIsUnparented

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; +    bool m_videoLayerUnparented;

This doesn&apos;t seem to expand to &gt; 1 video layer (yeah, I know you can only take one fullscreen at a time, but even so...)

I think this data should be the layerID for a going-fullscreen video layer.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:73
&gt; +    m_expectVideoLayerUnparentedTransaction = true;

This is confusing. Didn&apos;t you just get it? Or are you waiting for the next unparenting?

Might be clearer with a state machine with enum states.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:49
&gt; +    void enterFullscreen() override;

virtual

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:55
&gt; +    virtual void setVideoLayerID(WebCore::GraphicsLayer::PlatformLayerID);

override?

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:208
&gt; +    void buildTransaction(RemoteLayerTreeTransaction&amp;);

willCommitLayerTree

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:68
&gt; +    [m_platformLayer setValue:[NSValue valueWithPointer:nullptr] forKey:platformCALayerPointer];

setValue:nil

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:60
&gt; +    void buildTransaction(RemoteLayerTreeTransaction&amp;);

willCommitLayerTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980988</commentid>
    <comment_count>4</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-14 14:22:39 -0800</bug_when>
    <thetext>A few quick responses:

(In reply to comment #3)
&gt; (From update of attachment 224244 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224244&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        * WebCore.exp.in:
&gt; 
&gt; A short summary of the change should go here.
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Reviewed by NOBODY (OOPS!).
&gt; &gt; +
&gt; &gt; +        * Shared/mac/RemoteLayerTreeTransaction.h:
&gt; 
&gt; Ditto
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:287
&gt; &gt; +    if ([videoLayer isKindOfClass:[classAVPlayerLayer class]])
&gt; &gt; +        avPlayerLayer = (CALayer&lt;AVPlayerLayer&gt;*)videoLayer;
&gt; &gt; +    else
&gt; 
&gt; Why do we need to handle both cases here? Do they occur in different scenarios? A comment would be nice.

Yes, this is used both by WebKit and WebKit2.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:290
&gt; &gt; +        avPlayerLayer = [[[WebAVPlayerLayer alloc] init] autorelease];
&gt; 
&gt; [WebAVPlayerLayer layer] ?
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:97
&gt; &gt; +    m_videoFullscreenInterface-&gt;setVideoLayer(m_mediaElement-&gt;platformLayer());
&gt; 
&gt; I hate the name &quot;interface&quot;. Is it human interface, or a an interface class?

I filed https://bugs.webkit.org/show_bug.cgi?id=128843

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:176
&gt; &gt; +    bool videoLayerUnparented() const { return m_videoLayerUnparented; }
&gt; 
&gt; videoLayerIsUnparented
&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; &gt; +    bool m_videoLayerUnparented;
&gt; 
&gt; This doesn&apos;t seem to expand to &gt; 1 video layer (yeah, I know you can only take one fullscreen at a time, but even so...)
&gt; 
&gt; I think this data should be the layerID for a going-fullscreen video layer.
&gt; 

So, I&apos;ll replace this with an array of PlatformLayerIDs

&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:73
&gt; &gt; +    m_expectVideoLayerUnparentedTransaction = true;
&gt; 
&gt; This is confusing. Didn&apos;t you just get it? Or are you waiting for the next unparenting?
&gt; 
&gt; Might be clearer with a state machine with enum states.

We get the ID before it is unparented to make sure it doesn&apos;t go away and so we will be ready to look for the transaction that unparents it. Why I have now isn&apos;t that great. I have a bug to make it more explicit:

https://bugs.webkit.org/show_bug.cgi?id=128844

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:49
&gt; &gt; +    void enterFullscreen() override;
&gt; 
&gt; virtual
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:55
&gt; &gt; +    virtual void setVideoLayerID(WebCore::GraphicsLayer::PlatformLayerID);
&gt; 
&gt; override?

This is not an override. This function comes from messages.in, it isn&apos;t in the other interfaces.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:208
&gt; &gt; +    void buildTransaction(RemoteLayerTreeTransaction&amp;);
&gt; 
&gt; willCommitLayerTree
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:68
&gt; &gt; +    [m_platformLayer setValue:[NSValue valueWithPointer:nullptr] forKey:platformCALayerPointer];
&gt; 
&gt; setValue:nil
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:60
&gt; &gt; +    void buildTransaction(RemoteLayerTreeTransaction&amp;);
&gt; 
&gt; willCommitLayerTree</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981301</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-16 15:32:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/16080367&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982567</commentid>
    <comment_count>6</comment_count>
      <attachid>224684</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-19 15:04:11 -0800</bug_when>
    <thetext>Created attachment 224684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982574</commentid>
    <comment_count>7</comment_count>
      <attachid>224684</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-19 15:17:38 -0800</bug_when>
    <thetext>Comment on attachment 224684
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:305
&gt; +    else if (videoLayer)
&gt; +    {

Brace on previous line.

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; +    Vector&lt;WebCore::GraphicsLayer::PlatformLayerID&gt; m_unparentedVideoLayerIDs;

This could be a HashSet.

It&apos;s not clear why the &quot;unparented&quot; is important here. Maybe isVideoLayersPendingFullscreen or something?

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm:405
&gt; +    for (auto layerID : result.m_unparentedVideoLayerIDs) {
&gt; +        if (!layerID)
&gt; +            return false;
&gt; +    }

Not sure why you need this check.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:71
&gt; +    RemoteLayerTreeDrawingAreaProxy* remoteDrawingAreaProxy = toRemoteLayerTreeDrawingAreaProxy(drawingAreaProxy);

toRemoteLayerTreeDrawingAreaProxy(m_page-&gt;drawingArea()) and remove the previous line.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:67
&gt; +    bool m_enterFullscreenAfterVideoLayerUnparentedTransaction;
&gt; +    WebCore::GraphicsLayer::PlatformLayerID m_videoLayerID;

Both these should be initialized in the constructor.

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:81
&gt; +    RefPtr&lt;WebCore::PlatformCALayer&gt; m_platformCALayer;
&gt; +    bool m_sendUnparentVideoLayerTransaction;

Also need initializing in the constructor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983267</commentid>
    <comment_count>8</comment_count>
      <attachid>224885</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-21 11:38:55 -0800</bug_when>
    <thetext>Created attachment 224885
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983273</commentid>
    <comment_count>9</comment_count>
      <attachid>224885</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-21 11:45:44 -0800</bug_when>
    <thetext>Comment on attachment 224885
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:212
&gt; +@property (nonatomic, readwrite, getter = isReadyForDisplay) BOOL readyForDisplay;
&gt; +@property (nonatomic, readwrite) CGRect videoRect;

No need to specify readwrite

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; +    Vector&lt;WebCore::GraphicsLayer::PlatformLayerID&gt; m_videoLayerIDsPendingFullscreen;

HashSet?

&gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:68
&gt; +    [m_platformLayer setValue:[NSValue valueWithPointer:nil] forKey:platformCALayerPointer];

setValue:nil?

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.cpp:114
&gt; +    m_platformCALayer = PlatformCALayer::platformCALayer(videoLayer);

Should this use ::create()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983274</commentid>
    <comment_count>10</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-21 11:49:04 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 224684 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224684&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:305
&gt; &gt; +    else if (videoLayer)
&gt; &gt; +    {
&gt; 
&gt; Brace on previous line.

Done

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; &gt; +    Vector&lt;WebCore::GraphicsLayer::PlatformLayerID&gt; m_unparentedVideoLayerIDs;
&gt; 
&gt; This could be a HashSet.

Agreed. But, there is no encoder/decoder for a HashSet, and since we expect this to have 0 or 1 entries in the common case, I don&apos;t expect HashSet to provide a speed advantage, and it might have a space disadvantage.

I&apos;ll make the change or write a bug if you think it is worth it.

&gt; 
&gt; It&apos;s not clear why the &quot;unparented&quot; is important here. Maybe isVideoLayersPendingFullscreen or something?

How about: 
isVideoLayerIDPendingFullscreen()
addVideoLayerIDPendingFullscreen()
m_videoLayerIDsPendingFullscreen

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.mm:405
&gt; &gt; +    for (auto layerID : result.m_unparentedVideoLayerIDs) {
&gt; &gt; +        if (!layerID)
&gt; &gt; +            return false;
&gt; &gt; +    }
&gt; 
&gt; Not sure why you need this check.

Removed. I was following the pattern used by the other arrays of IDs.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.cpp:71
&gt; &gt; +    RemoteLayerTreeDrawingAreaProxy* remoteDrawingAreaProxy = toRemoteLayerTreeDrawingAreaProxy(drawingAreaProxy);
&gt; 
&gt; toRemoteLayerTreeDrawingAreaProxy(m_page-&gt;drawingArea()) and remove the previous line.

Done.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:67
&gt; &gt; +    bool m_enterFullscreenAfterVideoLayerUnparentedTransaction;
&gt; &gt; +    WebCore::GraphicsLayer::PlatformLayerID m_videoLayerID;
&gt; 
&gt; Both these should be initialized in the constructor.

Done.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:81
&gt; &gt; +    RefPtr&lt;WebCore::PlatformCALayer&gt; m_platformCALayer;
&gt; &gt; +    bool m_sendUnparentVideoLayerTransaction;
&gt; 
&gt; Also need initializing in the constructor.

m_sendUnparentVideoLayerTransaction : done.
m_platformCALayer : I expect this to be default constructed to nullptr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983283</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-21 12:13:40 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 224885 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=224885&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:212
&gt; &gt; +@property (nonatomic, readwrite, getter = isReadyForDisplay) BOOL readyForDisplay;
&gt; &gt; +@property (nonatomic, readwrite) CGRect videoRect;
&gt; 
&gt; No need to specify readwrite

Done.

&gt; 
&gt; &gt; Source/WebKit2/Shared/mac/RemoteLayerTreeTransaction.h:190
&gt; &gt; +    Vector&lt;WebCore::GraphicsLayer::PlatformLayerID&gt; m_videoLayerIDsPendingFullscreen;
&gt; 
&gt; HashSet?

See previous comment.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/mac/PlatformCALayerRemoteCustom.mm:68
&gt; &gt; +    [m_platformLayer setValue:[NSValue valueWithPointer:nil] forKey:platformCALayerPointer];
&gt; 
&gt; setValue:nil?

Done. This follows the pattern in PlatformCALayerMac. Should I update that code too?

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.cpp:114
&gt; &gt; +    m_platformCALayer = PlatformCALayer::platformCALayer(videoLayer);
&gt; 
&gt; Should this use ::create()?

This is not a create. This is getting the associated object. 

i.e.
    platformCALayer = static_cast&lt;PlatformCALayer*&gt;([[static_cast&lt;CALayer*&gt;(platformLayer) valueForKey:platformCALayerPointer] pointerValue]);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983287</commentid>
    <comment_count>12</comment_count>
      <attachid>224889</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-21 12:17:29 -0800</bug_when>
    <thetext>Created attachment 224889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983994</commentid>
    <comment_count>13</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-24 12:21:34 -0800</bug_when>
    <thetext>Adding #if PLATFORM(COCOA) to fix gtk and elf builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983997</commentid>
    <comment_count>14</comment_count>
      <attachid>225081</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-02-24 12:23:24 -0800</bug_when>
    <thetext>Created attachment 225081
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984098</commentid>
    <comment_count>15</comment_count>
      <attachid>225081</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-24 16:03:41 -0800</bug_when>
    <thetext>Comment on attachment 225081
Patch

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

&gt; Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h:81
&gt; +    bool m_sendUnparentVideoLayerTransaction;

Hard to parse. And you don&apos;t really send a transaction, you set a flag as part of one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984106</commentid>
    <comment_count>16</comment_count>
      <attachid>225081</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 16:34:41 -0800</bug_when>
    <thetext>Comment on attachment 225081
Patch

Clearing flags on attachment: 225081

Committed r164617: &lt;http://trac.webkit.org/changeset/164617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>984107</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 16:34:45 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224244</attachid>
            <date>2014-02-14 12:53:36 -0800</date>
            <delta_ts>2014-02-19 15:04:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128564-20140214125336.patch</filename>
            <type>text/plain</type>
            <size>26766</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBmMWJmMjMxZTFkMTdm
NzczNTA1ZGEyNTg0MzYzOGI5NWMxMzFjMS4uNGQ0Y2I4ODVlMWZkNmRiMmVlOWM4ZGU0M2EzMGU3
MTA2MmY5M2M0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0LTAyLTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNj
cmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICAqIHBsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgUmVtb3ZlIFNl
dFZpZGVvTGF5ZXJJRCgpLiAKKworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0OjpzZXRWaWRlb0xheWVyKToKKyAgICAgICAgV3JhcCBtYWtlIHZpZGVvIGxheWVy
IGxvb2sgbGlrZSBhbiBBVkFWUGxheWVyTGF5ZXIgd2l0aCBXZWJBVlBsYXllckxheWVyCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQu
bW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVk
aWFFbGVtZW50KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgdmlkZW9MYXllciBiZWZvcmUgYm9y
cm93aW5nIGl0IHNvIHRoZSBpbnRlcmZhY2Ugd2lsbCBiZSByZWFkeSB0bworICAgICAgICBjYXRj
aCB0aGUgdHJhbnNhY3Rpb24gdGhhdCByZW1vdmVzIGl0LgorCiAyMDE0LTAyLTEwICBSb2dlciBG
b25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dpbmRvd3NdIFVucmV2aWV3
ZWQgdGVzdCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWI3MzIxNGZlODM0NjgyMzNjYTNmYWJkMWY3OWI2
ZWI2ZTVkOGYxYy4uMTBhMTIyZmY5MmJlZTA1MjZmNjI5N2EwZjhmNzMzYjBhMjU3M2ExZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTAyLTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJl
bXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNjcmVlbiBkb2Vzbid0IGRp
c3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnZpZGVvTGF5ZXJVbnBhcmVudGVk
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OnNldFZpZGVv
TGF5ZXJVbnBhcmVudGVkKToKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgdW5wYXJlbnRpbmcuCisKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OmRlY29kZSk6CisgICAgICAgIEVuY29kZSBhbmQgZGVjb2RlIHRoZSB2aWRlb0xheWVyVW5w
YXJlbnRlZCBwcm9wZXJ0eS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExheWVyVHJl
ZSk6CisgICAgICAgIExldCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgc2VlIHRoZSBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUpOgorICAgICAgICBM
b29rIGZvciB2aWRlb0xheWVyVW5wYXJlbnRlZCBvbiB0aGUgdHJhbnNhY3Rpb24gdG8gaW5pdGlh
dGUKKyAgICAgICAgZnVsbHNjcmVlbi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRCk6CisgICAgICAgIFN0YXJ0IGxvb2tp
bmcgZm9yIHRoZSB2aWRlb0xheWVyVW5wYXJlbnRlZCBwcm9wZXJ0eSBvbiB0aGUgdHJhbnNhY3Rp
b24uCisKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpl
bnRlckZ1bGxzY3JlZW4pOgorICAgICAgICBPdmVycmlkZSB0byBwcmV2ZW50IGZ1bGxzY3JlZW4g
ZnJvbSBoYXBwZW5pbmcgYmVmb3JlIHRoZSBsYXllcgorICAgICAgICBpcyB1bnBhcmVudGVkLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgUGFzcyBhIG1vcmUgc3BlY2lmaWMgdmlkZW9MYXllcklE
IGluIFNldFZpZGVvTGF5ZXJJRCwKKyAgICAgICAgaS5lLiBXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmJ1aWxkVHJhbnNhY3Rpb24pOgorICAg
ICAgICBNb3ZlIHdlYlBhZ2Ugc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRpbmcgaGVyZSwgaW5j
bHVkaW5nLAorICAgICAgICBnaXZpbmcgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciBhIGNoYW5j
ZSB0byBtb2RpZnkgdGhlIHRyYW5zYWN0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgQWRkIGJ1aWxkVHJhbnNhY3Rpb24oKTsKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1t
OgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b20pOgorICAgICAgICAoUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjp+UGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKToKKyAgICAgICAgTWFrZSBhbmQgYnJlYWsgdGhlIGNv
bm5lY3Rpb24gZnJvbSBDQUxheWVyIHRvIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSwKKyAg
ICAgICAgdGhlIHNhbWUgd2F5IGl0IGlzIGRvbmUgZm9yIFBsYXRmb3JtQ0FMYXllck1hYy4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVz
aExheWVycyk6CisgICAgICAgIE1vdmUgV2ViUGFnZSBzcGVjaWZpYyB0cmFuc2FjdGlvbiBidWls
ZGluZyBpbnRvIFdlYlBhZ2U6OmJ1aWxkVHJhbnNhY3Rpb24uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6YnVpbGRUcmFuc2FjdGlvbik6CisgICAgICAgIHNl
dFZpZGVvTGF5ZXJVbnBhcmVudGVkIG9uIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uIHdoZW4g
bmVlZGVkLgorCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNl
dFZpZGVvTGF5ZXIpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSByZWFseSBsYXllcklELgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOgorICAg
ICAgICBBZGQgYnVsZFRyYW5zYWN0aW9uKCkgYW5kIHJlbW92ZSBzZXRWaWRlb0xheWVySUQoKS4K
KyAgICAgICAgQWRkIGEgbWVtYmVyIHRvIHJldGFpbiB0aGUgdW5wYXJlbnRlZCBQbGF0Zm9ybUNB
TGF5ZXIuCisKIDIwMTQtMDItMTAgIE1hcnRpbiBIb2NrICA8bWhvY2tAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBBUEkgZm9yIGFjY2Vzc2luZyBzZXNzaW9uIGVwaGVtZXJhbGl0eSBmcm9tIGEg
cGFnZSBidW5kbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggZTkxMzNlZjAxMDQzNzhlODRmMGZi
YjVmZGI3MzI1NzVjYjdlMWRjMi4uNzQyMzk5ZGIyYWMxYTJkYmRmODdhMzNhNmYxOWM4ODNiY2Jh
ZDM0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTU4NCw2ICs1ODQsNyBAQCBfX1pON1dlYkNv
cmUxNUhpdFRlc3RMb2NhdGlvbkQxRXYKIF9fWk43V2ViQ29yZTE1SlNET01XaW5kb3dCYXNlOGNv
bW1vblZNRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlQzFFdgogX19aTjdXZWJDb3Jl
MTVQYXN0ZWJvYXJkSW1hZ2VEMUV2CitfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllcjE1cGxh
dGZvcm1DQUxheWVyRVB2CiBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckMyRU5TMF85TGF5
ZXJUeXBlRVBOU18yMVBsYXRmb3JtQ0FMYXllckNsaWVudEUKIF9fWk43V2ViQ29yZTE1UGxhdGZv
cm1DQUxheWVyRDJFdgogX19aTjdXZWJDb3JlMTVQcm90ZWN0aW9uU3BhY2VDMUVSS04zV1RGNlN0
cmluZ0VpTlNfMjVQcm90ZWN0aW9uU3BhY2VTZXJ2ZXJUeXBlRVM0X05TXzM1UHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmgKaW5kZXggZDY0MTVmZTY0
OTMxOTFlMTBmMTJiZjJlNmViOGMzZTQzMGJmNTA4Ni4uNTgzZDJiMjk5OWFmYzE4ZDA0MTY4YzBm
OTM3OGI4NTI4YjQ2ZTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaApAQCAtNDEsNyArNDEsNiBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGZsb2F0IHBs
YXliYWNrUmF0ZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVuc2lvbnMoYm9v
bCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1
bGxzY3JlZW4oKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgPSAwOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKaW5kZXggNmI4YjhjNjdjZGNiNTJlN2JkYWZh
MTY5ZWExNTYwYWYzNGVmNjYyYS4uYjA5ZWNlYmU1MTc0ZTIxNDViNGE5YmQ1NTEyZDQ2MjFkMDc1
ZTc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmgKQEAgLTY0LDcgKzY0LDYgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRl
KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBm
bG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBvdmVycmlkZTsKICAgICB2b2lkIHNldFZpZGVvTGF5
ZXIoUGxhdGZvcm1MYXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0VmlkZW9MYXllcklEKHVp
bnQzMl90KSBvdmVycmlkZSB7IH07CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKICAgICB2b2lkIGVudGVyRnVsbHNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1
bmN0aW9uPHZvaWQoKT4pOwogICAgIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAyYmZhNTdkOTMxOWYwYThmODJiMjUwNDBi
ZTg5NThhYzQ5YzcxOGVjLi43Yzg1NjYzYThhNWQxMzBkODA4OTRjYzNkY2E2MmM4Mjk3ZmZmNDUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC02OCw2ICs2OCw5IEBAIFNPRlRf
TElOSyhDb3JlTWVkaWEsIENNVGltZUdldFNlY29uZHMsIEZsb2F0NjQsIChDTVRpbWUgdGltZSks
ICh0aW1lKSkKIEBlbmQKIAogQHByb3RvY29sIEFWUGxheWVyTGF5ZXIKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCBjb3B5KSBOU1N0cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBnZXR0ZXIgPSBpc1JlYWR5Rm9yRGlzcGxheSkgQk9PTCByZWFkeUZvckRp
c3BsYXk7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCB2aWRlb1JlY3Q7
CiBAZW5kCiAKIEBpbnRlcmZhY2UgQVZQbGF5ZXJDb250cm9sbGVyIDogVUlSZXNwb25kZXIKQEAg
LTIwMiw2ICsyMDUsMTUgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgQVZQbGF5ZXJDb250
cm9sbGVyU3RhdHVzKSB7CiAKIEBlbmQKIAorQGludGVyZmFjZSBXZWJBVlBsYXllckxheWVyIDog
Q0FMYXllciA8QVZQbGF5ZXJMYXllcj4KK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBOU1N0
cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgZ2V0
dGVyID0gaXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWR3cml0ZSkgQ0dSZWN0IHZpZGVvUmVjdDsKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdlYkFWUGxheWVyTGF5ZXIKK0BlbmQKKwogV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KCkKICAgICA6IG1f
dmlkZW9GdWxsc2NyZWVuTW9kZWwobnVsbHB0cikKIHsKQEAgLTI2NywxMCArMjc5LDE5IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIoUGxhdGZv
cm1MYXllciogdmlkZW9MYXllcikKIHsKICAgICBbbV9wbGF5ZXJDb250cm9sbGVyLmdldCgpLnBs
YXllckxheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBbdmlkZW9MYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07Ci0gICAgQVNTRVJUKCF2aWRlb0xheWVyCi0gICAgICAgIHx8IFt2aWRl
b0xheWVyIGlzS2luZE9mQ2xhc3M6W2NsYXNzQVZQbGF5ZXJMYXllciBjbGFzc11dCi0gICAgICAg
IHx8IChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOltDQUxheWVyIGNsYXNzXV0gJiYgW3ZpZGVv
TGF5ZXIgY29uZm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChBVlBsYXllckxheWVyKV0pKTsKLSAg
ICBtX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkucGxheWVyTGF5ZXIgPSAoQ0FMYXllcjxBVlBsYXll
ckxheWVyPiopdmlkZW9MYXllcjsKKyAgICAKKyAgICBDQUxheWVyPEFWUGxheWVyTGF5ZXI+ICph
dlBsYXllckxheWVyID0gbmlsOworICAgIAorICAgIGlmIChbdmlkZW9MYXllciBpc0tpbmRPZkNs
YXNzOltjbGFzc0FWUGxheWVyTGF5ZXIgY2xhc3NdXSkKKyAgICAgICAgYXZQbGF5ZXJMYXllciA9
IChDQUxheWVyPEFWUGxheWVyTGF5ZXI+Kil2aWRlb0xheWVyOworICAgIGVsc2UKKyAgICB7Cisg
ICAgICAgIEFTU0VSVChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOltDQUxheWVyIGNsYXNzXV0p
OworICAgICAgICBhdlBsYXllckxheWVyID0gW1tbV2ViQVZQbGF5ZXJMYXllciBhbGxvY10gaW5p
dF0gYXV0b3JlbGVhc2VdOworICAgICAgICBbYXZQbGF5ZXJMYXllciBhZGRTdWJsYXllcjp2aWRl
b0xheWVyXTsKKyAgICB9CisKKyAgICBtX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkucGxheWVyTGF5
ZXIgPSBhdlBsYXllckxheWVyOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjplbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlv
bjx2b2lkKCk+IGNvbXBsZXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0K
aW5kZXggY2Y4NWYwZjJlZTMzMjY1YzI1NmFhNTgyZTkzYmU3MjNlM2E5ODZlYy4uNWFiZGU1NzE5
NjlkMmY1MTA3NzQ3YmIyZWI4ZWY1MzUxMmNhZjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudC5tbQpAQCAtOTQsOCArOTQsOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaQog
ICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXREdXJhdGlvbihtX21lZGlhRWxlbWVu
dC0+ZHVyYXRpb24oKSk7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFJhdGUo
bV9tZWRpYUVsZW1lbnQtPmlzUGxheWluZygpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRl
KCkpOwogCisgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFZpZGVvTGF5ZXIobV9t
ZWRpYUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSk7CisKICAgICBtX2JvcnJvd2VkVmlkZW9MYXll
ciA9IG1fbWVkaWFFbGVtZW50LT5ib3Jyb3dQbGF0Zm9ybUxheWVyKCk7Ci0gICAgbV92aWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UtPnNldFZpZGVvTGF5ZXIobV9ib3Jyb3dlZFZpZGVvTGF5ZXIuZ2V0
KCkpOwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1f
bWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9d
IHN5c3RlbVVwdGltZV0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFj
L1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggNDQ1NTBlY2NiMzNjZjFmNzQ3YTNk
ZGRiN2MyOGI3ZmNkMjA2ODlkYi4uNTU4YmQ4NTUxOTg0MTMyNjg4YTU1NTFmMzY3OGU0NDE0ZTYx
MmNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMTcyLDYgKzE3Miw5IEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgYWxsb3dzVXNlclNjYWxpbmcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1VzZXJTY2FsaW5n
OyB9CiAgICAgdm9pZCBzZXRBbGxvd3NVc2VyU2NhbGluZyhib29sIGFsbG93c1VzZXJTY2FsaW5n
KSB7IG1fYWxsb3dzVXNlclNjYWxpbmcgPSBhbGxvd3NVc2VyU2NhbGluZzsgfQorICAgIAorICAg
IGJvb2wgdmlkZW9MYXllclVucGFyZW50ZWQoKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvTGF5ZXJV
bnBhcmVudGVkOyB9CisgICAgdm9pZCBzZXRWaWRlb0xheWVyVW5wYXJlbnRlZChib29sIHZpZGVv
TGF5ZXJVbnBhcmVudGVkKSB7IG1fdmlkZW9MYXllclVucGFyZW50ZWQgPSB2aWRlb0xheWVyVW5w
YXJlbnRlZDsgfQogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCBtX3Jvb3RMYXllcklEOwpAQCAtMTg0LDYgKzE4Nyw3IEBAIHByaXZhdGU6CiAg
ICAgZG91YmxlIG1fbWluaW11bVNjYWxlRmFjdG9yOwogICAgIGRvdWJsZSBtX21heGltdW1TY2Fs
ZUZhY3RvcjsKICAgICBib29sIG1fYWxsb3dzVXNlclNjYWxpbmc7CisgICAgYm9vbCBtX3ZpZGVv
TGF5ZXJVbnBhcmVudGVkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5t
bQppbmRleCA1MTJjNDBmZTE5NDA0NDEwZmY2MzJiOWRjYzZkNTVlNjEwMGE5NzAzLi5iM2QxOGRm
ZjBjMTIyMjBjYTUwOTM3N2MyODA4MjkxN2VjYTI4Njc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KQEAgLTM1
NCw2ICszNTQsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjplbmNvZGUoSVBD
OjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgZW5jb2RlciA8PCBtX21heGlt
dW1TY2FsZUZhY3RvcjsKICAgICBlbmNvZGVyIDw8IG1fYWxsb3dzVXNlclNjYWxpbmc7CiAgICAg
ZW5jb2RlciA8PCBtX3JlbmRlclRyZWVTaXplOworICAgIGVuY29kZXIgPDwgbV92aWRlb0xheWVy
VW5wYXJlbnRlZDsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
biYgcmVzdWx0KQpAQCAtMzk1LDYgKzM5Niw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5CiAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9yZW5kZXJUcmVlU2l6ZSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdmlkZW9M
YXllclVucGFyZW50ZWQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbQppbmRleCAwMDYzOGE0YWQ3MmVjMjhmN2I2ZThmODEzNzA5ZDJlNjM5ZWFmMWE4Li45ZDU4
N2U1NjY4NGE5NjBjZmUxZTE0OWQyNGI2OTQ3M2MzYTAyYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQpAQCAtMzIsOSArMzIsMTAgQEAK
ICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFjZUlPUy5oIgogI2ltcG9ydCAiV2ViUGFnZU1l
c3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hh
cmVkQnVmZmVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogCiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIApAQCAtMjM3LDYgKzIzOCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpz
ZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVtTGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJlZVRyYW5zYWN0aW9uKQogewogICAg
IG1fcGFnZUNsaWVudC5kaWRDb21taXRMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24pOwor
ICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCisgICAgICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci0+ZGlkQ29tbWl0TGF5ZXJUcmVlKGxheWVyVHJlZVRyYW5zYWN0aW9uKTsKIH0K
IAogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdFdpdGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIHVpbnQz
Ml90IGdlc3R1cmVUeXBlLCB1aW50MzJfdCBnZXN0dXJlU3RhdGUsIFBhc3NSZWZQdHI8R2VzdHVy
ZUNhbGxiYWNrPiBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcAppbmRleCBh
OTJkZjI4ZjhjYzgxZjBjNzdiOTJjYTM3NjM4OWI4YWU4ZWQyN2VjLi40NWMwNjJiZTA2ODg0YTVh
MzE0ZjQ5NzhkNjU1ZTI2MjI0MjI1NTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yOCw2ICsyOCw5IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oIgorI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAi
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCkBAIC01NCwxMiArNTcsMjYgQEAg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5KCkKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFt
ZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCit2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFuc2FjdGlvbikKIHsKLSAgICAv
LyBUT0RPOiBmaW5kIGEgcmVhbCB2aWRlbyBsYXllciBvciBtYWtlIG9uZSB0aGF0IG1lZXRzIHRo
ZSBuZWNlc3NhcnkgcmVxdWlyZW1lbnRzLgotICAgIHNldFZpZGVvTGF5ZXIobnVsbHB0cik7Cisg
ICAgaWYgKG1fZXhwZWN0VmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiAmJiBsYXllclRy
ZWVUcmFuc2FjdGlvbi52aWRlb0xheWVyVW5wYXJlbnRlZCgpKSB7CisgICAgICAgIG1fZXhwZWN0
VmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IGZhbHNlOworICAgICAgICBXZWJDb3Jl
OjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCk7Cisg
ICAgfQogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9M
YXllcklEKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCB2aWRlb0xheWVySUQpCit7Cisg
ICAgRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWFQcm94eSA9IG1fcGFnZS0+ZHJhd2luZ0Fy
ZWEoKTsKKyAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KiByZW1vdGVEcmF3aW5n
QXJlYVByb3h5ID0gdG9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KGRyYXdpbmdBcmVh
UHJveHkpOworICAgIHNldFZpZGVvTGF5ZXIocmVtb3RlRHJhd2luZ0FyZWFQcm94eS0+cmVtb3Rl
TGF5ZXJUcmVlSG9zdCgpLmdldExheWVyKHZpZGVvTGF5ZXJJRCkpOworICAgIG1fZXhwZWN0Vmlk
ZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IHRydWU7Cit9CisKK3ZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4oKQoreworfQorICAgIAogdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbigp
CiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaAppbmRleCBhZjFkMTg1Y2VmOTA2MmIzNzRkNjkyZGUwMzczNDYxNWJmNWIw
ODdmLi45N2JjY2Y5NmI5YWQ3OGM3MjE3NGQ0NTlmNzJmNDNlOGE4NTFiNjYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgKQEAgLTM4LDE3ICszOCwyMSBAQAogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OwogCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBwdWJsaWMgV2ViQ29y
ZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQsIHB1YmxpYyBXZWJDb3JlOjpXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
PiBjcmVhdGUoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5KCk7CiAKKyAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYpOworICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3Zl
cnJpZGU7CisgICAgCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQpOwogICAgIAogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxT
Y3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgcGxheSgpIG92ZXJyaWRlOwpAQCAt
NTgsNiArNjIsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVl
bigpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CisgICAgYm9vbCBtX2V4
cGVjdFZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb247CiB9OwogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IDA2ZDE1NzJjNmRiMDAwZjg2OTM0NjM1NTIyODk5NWI0MzA3ZjBhNzEuLmYwN2QzZTA5
ZTVmNWJkNTI5ODAzMmVkMzY0MGM2ZDVjMGUxNzJmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0o
SU9TKQogbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBT
ZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBob3N0VGltZSkKLSAgICBT
ZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9MYXllcklEKQorICAgIFNldFZpZGVvTGF5ZXJJ
RChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgdmlkZW9MYXllcklEKQog
ICAgIFNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5z
aWduZWQgaGVpZ2h0KQogICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRS
YXRlKGJvb2wgaXNQbGF5aW5nLCBkb3VibGUgcmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA3ODQ3ZGI2NTNhZGJhMzFkN2U5YWM2ZmNk
YWQ3ZjNiMGYxNWQ0MjQwLi42ZDBiMGFhZGUzYmYyZjk0MTEyNzhlYzFiNDlmYmI5ZjBmYzUxMzNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVn
aW5WaWV3LmgiCiAjaW5jbHVkZSAiUHJpbnRJbmZvLmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJT
aGFyZWFibGVCaXRtYXAuaCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKQEAgLTI1ODUs
NiArMjU4NiwyMSBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVm
ZXJlbmNlcyhzdG9yZSk7CiB9CiAKK3ZvaWQgV2ViUGFnZTo6YnVpbGRUcmFuc2FjdGlvbihSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUcmFuc2FjdGlvbikKK3sKKyAgICBsYXllclRy
YW5zYWN0aW9uLnNldENvbnRlbnRzU2l6ZShjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCkt
PmNvbnRlbnRzU2l6ZSgpKTsKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldFBhZ2VTY2FsZUZhY3Rv
cihjb3JlUGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgbGF5ZXJUcmFuc2FjdGlvbi5z
ZXRSZW5kZXJUcmVlU2l6ZShjb3JlUGFnZSgpLT5yZW5kZXJUcmVlU2l6ZSgpKTsKKyNpZiBQTEFU
Rk9STShJT1MpCisgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRNaW5pbXVtU2NhbGVGYWN0b3IobWlu
aW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldE1heGltdW1T
Y2FsZUZhY3RvcihtYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGxheWVyVHJhbnNhY3Rp
b24uc2V0QWxsb3dzVXNlclNjYWxpbmcoYWxsb3dzVXNlclNjYWxpbmcoKSk7CisgICAgaWYgKG1f
dmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
LT5idWlsZFRyYW5zYWN0aW9uKGxheWVyVHJhbnNhY3Rpb24pOworI2VuZGlmCit9CisKKyAgICAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogV2ViSW5zcGVjdG9yKiBXZWJQYWdlOjppbnNwZWN0b3Io
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
M2ZiZmZhM2M1ODYwYmJiZDMyNmYxZWI3YjkyZjNjYTYyMTAwNzc5Yi4uZTExODk1NTkzZWY3MmI4
NmUzMzFjN2QxYmFhZDhlNTgzMmI5NGU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzgsNiArMTM4LDcgQEAgY2xhc3MgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUGFnZUJhbm5lcjsKIGNsYXNzIFBhZ2VP
dmVybGF5OwogY2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOwogY2xhc3MgU2Vzc2lvblN0YXRlOwogY2xhc3MgV2ViQ29sb3JDaG9vc2VyOwogY2xhc3Mg
V2ViQ29udGV4dE1lbnU7CkBAIC0yMDMsNiArMjA0LDggQEAgcHVibGljOgogICAgIGJvb2wgc2Ny
b2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0
eSk7CiAKICAgICB2b2lkIGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICAKKyAg
ICB2b2lkIGJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAog
I2lmIEVOQUJMRShJTlNQRUNUT1IpCiAgICAgV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggZGVlYzlmNGM1M2JiODE1
OWI1NzlkZTI2MGE0ZjBlMjkyZmNhMWIwYS4uODYyMGFjMzJiM2VmYzdhNjE2NGVlYTQ1MWZiMTEx
ODhkODIzYTUxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KQEAg
LTM5LDYgKzM5LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKIAorc3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1DQUxheWVyUG9pbnRl
ciA9IEAiV0tQbGF0Zm9ybUNBTGF5ZXIiOwogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBs
YXRmb3JtQ0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRl
eHQpCiAgICAgOiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlQ3VzdG9tLCBvd25lciwg
Y29udGV4dCkKIHsKQEAgLTU0LDYgKzU1LDcgQEAgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9t
OjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGEKICAg
ICB9CiAKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihjdXN0b21MYXll
cik7CisgICAgW2N1c3RvbUxheWVyIHNldFZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aFBvaW50ZXI6
dGhpc10gZm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOwogCiAgICAgbV9wbGF0Zm9ybUxh
eWVyID0gY3VzdG9tTGF5ZXI7CiAgICAgW2N1c3RvbUxheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9u
c107CkBAIC02Myw2ICs2NSw3IEBAIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxhCiAKIFBsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSgpCiB7Cisg
ICAgW21fcGxhdGZvcm1MYXllciBzZXRWYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhQb2ludGVyOm51
bGxwdHJdIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyXTsKIH0KIAogdWludDMyX3QgUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpob3N0aW5nQ29udGV4dElEKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDMyMGE0OGFkM2IxOTA2YWJiYmU1YjRmOTUz
NDNlY2QyZTIzNjQ1ZDQuLmE2YmIwYTU1YTNhODA5ZGMwMzBiY2JkY2I1YjY4ODdiOTUzYmY0NTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAtMzIxLDE0ICszMjEs
NyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCiAgICAg
Ly8gRklYTUU6IG1pbml6ZSB0aGVzZSB0cmFuc2FjdGlvbnMgaWYgbm90aGluZyBjaGFuZ2VkLgog
ICAgIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uIGxheWVyVHJhbnNhY3Rpb247CiAgICAgbV9y
ZW1vdGVMYXllclRyZWVDb250ZXh0LT5idWlsZFRyYW5zYWN0aW9uKGxheWVyVHJhbnNhY3Rpb24s
ICptX3Jvb3RMYXllcik7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRDb250ZW50c1NpemUobV93
ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzU2l6ZSgpKTsK
LSAgICBsYXllclRyYW5zYWN0aW9uLnNldFBhZ2VTY2FsZUZhY3RvcihtX3dlYlBhZ2UtPmNvcmVQ
YWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBsYXllclRyYW5zYWN0aW9uLnNldFJlbmRl
clRyZWVTaXplKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVuZGVyVHJlZVNpemUoKSk7Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWluaW11bVNjYWxlRmFjdG9y
KG1fd2ViUGFnZS0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBsYXllclRyYW5zYWN0
aW9uLnNldE1heGltdW1TY2FsZUZhY3RvcihtX3dlYlBhZ2UtPm1heGltdW1QYWdlU2NhbGVGYWN0
b3IoKSk7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRBbGxvd3NVc2VyU2NhbGluZyhtX3dlYlBh
Z2UtPmFsbG93c1VzZXJTY2FsaW5nKCkpOwotI2VuZGlmCisgICAgbV93ZWJQYWdlLT5idWlsZFRy
YW5zYWN0aW9uKGxheWVyVHJhbnNhY3Rpb24pOwogCiAgICAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbiBzY3JvbGxpbmdUcmFuc2FjdGlvbjsKICNpZiBFTkFCTEUoQVNZTkNf
U0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBmZGVkZjFhYjVkYTIwMWJmZmVi
ZjU3OGExM2Y5MTZkOWYwNDIyMDlmLi4xOTI3OWQzZjhkZjRiZmExMjIwZjAwNmIzM2M4MDJiODEz
YmJiMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
UExBVEZPUk0oSU9TKQogCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIK
ICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUg
IldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgpAQCAtMzUsNiArMzYsNyBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSFRNTFZp
ZGVvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNpbmNsdWRlIDxX
ZWJjb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApA
QCAtNTcsNiArNTksMTQgQEAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIoKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2Vp
dmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpidWlsZFRyYW5zYWN0aW9uKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbikKK3sKKyAgICBpZiAobV9zZW5kVW5wYXJlbnRWaWRlb0xheWVyVHJhbnNhY3Rp
b24pIHsKKyAgICAgICAgdHJhbnNhY3Rpb24uc2V0VmlkZW9MYXllclVucGFyZW50ZWQodHJ1ZSk7
CisgICAgICAgIG1fc2VuZFVucGFyZW50VmlkZW9MYXllclRyYW5zYWN0aW9uID0gZmFsc2U7Cisg
ICAgfQorfQorICAgIAogYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1
bGxzY3JlZW4oY29uc3QgTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIVNldHRpbmdzOjph
dktpdEVuYWJsZWQoKSkKQEAgLTk4LDE1ICsxMDgsMTIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgs
IGYKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6U2V0VmlkZW9EaW1lbnNpb25zKGhhc1ZpZGVvLCB3aWR0aCwgaGVpZ2h0KSwgbV9wYWdl
LT5wYWdlSUQoKSk7CiB9CiAgICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNl
dFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9MYXllcikKIHsKLSAgICAvLyBU
T0RPOiBpbXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxheWVyIElELgotICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQo
MCksIG1fcGFnZS0+cGFnZUlEKCkpOwotfQorICAgIG1fcGxhdGZvcm1DQUxheWVyID0gUGxhdGZv
cm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodmlkZW9MYXllcik7CisgICAgbV9zZW5kVW5wYXJl
bnRWaWRlb0xheWVyVHJhbnNhY3Rpb24gPSAhIW1fcGxhdGZvcm1DQUxheWVyOwogICAgIAotdm9p
ZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVySUQodWludDMyX3Qgdmlk
ZW9MYXllcklEKQotewotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQodmlkZW9MYXllcklEKSwgbV9wYWdlLT5w
YWdlSUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRChtX3BsYXRmb3JtQ0FMYXllciA/IG1fcGxhdGZv
cm1DQUxheWVyLT5sYXllcklEKCkgOiAwKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaAppbmRleCBlNTM3Yzk5NjUzNjAwNGYyZjMwZjFkZjFjNjdiZjEyMTZhMzU5YjAwLi4yNjY2
MzE0ZDNjYzMxZmRhMTFlYWQ0NGYwODI5NzlhMTMzMWVmZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5o
CkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3Jt
Q0FMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00Nyw2ICs0OCw3IEBAIGNsYXNz
IE5vZGU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
IDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LCBw
dWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLCBwcml2YXRlIElQQzo6
TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKQEAgLTU1LDYgKzU3LDggQEAgcHVibGljOgogICAg
IAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNz
YWdlRGVjb2RlciYpOwogICAgIAorICAgIHZvaWQgYnVpbGRUcmFuc2FjdGlvbihSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiYpOworCiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3Qg
V2ViQ29yZTo6Tm9kZSopIGNvbnN0OwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShX
ZWJDb3JlOjpOb2RlKik7CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6
Tm9kZSopOwpAQCAtNjgsMTIgKzcyLDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xh
eWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9M
YXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2Rl
PiBtX25vZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gbV9wbGF0Zm9y
bUNBTGF5ZXI7CisgICAgYm9vbCBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbjsK
IH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224684</attachid>
            <date>2014-02-19 15:04:11 -0800</date>
            <delta_ts>2014-02-21 11:38:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128564-20140219150410.patch</filename>
            <type>text/plain</type>
            <size>27906</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFhZTZmMGNlZjBlOGUy
MzQ2OGVmYTBiMjNjMTNlZTBmZDhlNGE0Ny4uYTgwYTU3MzM5ODZjOWFjODMxYTA4OWY0MGNkMDlk
YTgxNjAzOGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAyLTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNj
cmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBFeHBvcnQgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICBSZW1v
dmUgU2V0VmlkZW9MYXllcklEKCkuIAorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICBXcmFwIG1ha2UgdmlkZW8g
bGF5ZXIgbG9vayBsaWtlIGFuIEFWQVZQbGF5ZXJMYXllciB3aXRoIFdlYkFWUGxheWVyTGF5ZXIK
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSB2aWRlb0xheWVyIGJlZm9y
ZSBib3Jyb3dpbmcgaXQgc28gdGhlIGludGVyZmFjZSB3aWxsIGJlIHJlYWR5IHRvCisgICAgICAg
IGNhdGNoIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHJlbW92ZXMgaXQuCisKIDIwMTQtMDItMTcgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBm
YXN0IG1hcHBpbmcgZnJvbSBTdHJpbmdJbXBsIHRvIEpTU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDVj
OTI3NDc1ZGMxYTI4MGJkOWZlODlkNjhkNWVkZGJjZDIyYWI5Zi4uMTBlOWJiYWUyNTBmMDQ0ODNi
Mzg5ZjRkMzUyOWRmOTY2Y2NjMTcwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0
LTAyLTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIg
QVZLaXQgZnVsbHNjcmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgdW5wYXJlbnRpbmcuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJh
bnNhY3Rpb246OmlzVW5wYXJlbnRlZFZpZGVvTGF5ZXJJRCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjphZGRVbnBhcmVudGVkVmlkZW9MYXllcklEKToKKyAg
ICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8gbGF5ZXIgdW5wYXJlbnRpbmcuCisK
KyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29kZSk6CisgICAgICAg
IEVuY29kZSBhbmQgZGVjb2RlIG1fdW5wYXJlbnRlZFZpZGVvTGF5ZXJJRHMuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpkaWRDb21taXRMYXllclRyZWUpOgorICAgICAgICBMZXQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5IHNlZSB0aGUgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlk
Q29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgTG9vayBmb3IgdW5wYXJlbnRlZCB2aWRlbyBsYXll
ciBvbiB0aGUgdHJhbnNhY3Rpb24gdG8gaW5pdGlhdGUKKyAgICAgICAgZnVsbHNjcmVlbi4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVv
TGF5ZXJJRCk6CisgICAgICAgIFN0YXJ0IGxvb2tpbmcgZm9yIHRoZSB1bnBhcmVudGVkIHZpZGVv
IGxheWVyIGluIHRoZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIE92ZXJyaWRl
IHRvIHByZXZlbnQgZnVsbHNjcmVlbiBmcm9tIGhhcHBlbmluZyBiZWZvcmUgdGhlIGxheWVyCisg
ICAgICAgIGlzIHVucGFyZW50ZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICBQYXNzIGEgbW9y
ZSBzcGVjaWZpYyB2aWRlb0xheWVySUQgaW4gU2V0VmlkZW9MYXllcklELAorICAgICAgICBpLmUu
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRC4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
d2lsbENvbW1pdExheWVyVHJlZSk6CisgICAgICAgIE1vdmUgd2ViUGFnZSBzcGVjaWZpYyB0cmFu
c2FjdGlvbiBidWlsZGluZyBoZXJlLCBpbmNsdWRpbmcsCisgICAgICAgIGdpdmluZyBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyIGEgY2hhbmNlIHRvIG1vZGlmeSB0aGUgdHJhbnNhY3Rpb24uCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICBBZGQgd2ls
bENvbW1pdExheWVyVHJlZSgpOworCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW06CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJS
ZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6CisgICAgICAgIChQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206On5QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20pOgor
ICAgICAgICBNYWtlIGFuZCBicmVhayB0aGUgY29ubmVjdGlvbiBmcm9tIENBTGF5ZXIgdG8gUGxh
dGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLAorICAgICAgICB0aGUgc2FtZSB3YXkgaXQgaXMgZG9u
ZSBmb3IgUGxhdGZvcm1DQUxheWVyTWFjLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgTW92ZSBXZWJQ
YWdlIHNwZWNpZmljIHRyYW5zYWN0aW9uIGJ1aWxkaW5nIGludG8gV2ViUGFnZTo6d2lsbENvbW1p
dExheWVyVHJlZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgYWRkVW5wYXJlbnRlZFZpZGVvTGF5ZXJJ
RCBvbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB3aGVuIG5lZWRlZC4KKworICAgICAgICAo
V2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyKToKKyAgICAg
ICAgUGFzcyBhbG9uZyB0aGUgcmVhbHkgbGF5ZXJJRC4KKworICAgICAgICAqIFdlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHdpbGxDb21taXRM
YXllclRyZWUoKSBhbmQgcmVtb3ZlIHNldFZpZGVvTGF5ZXJJRCgpLgorICAgICAgICBBZGQgYSBt
ZW1iZXIgdG8gcmV0YWluIHRoZSB1bnBhcmVudGVkIFBsYXRmb3JtQ0FMYXllci4KKwogMjAxNC0w
Mi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBD
bGVhbiB1cCBXS0NvbnRlbnRWaWV3IGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmlu
ZGV4IDUxOWIxZTNjNjAyMTg2NWU2NDRhOGI0Nzk3OWJjNDRhNTliM2RjMTkuLjBhNDEwZmM5YjNk
OTQ0NzBmZjE5MTBiZTM5OGE0MTZhOGZhMWNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC01
ODgsNiArNTg4LDcgQEAgX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb25EMUV2CiBfX1pON1dl
YkNvcmUxNUpTRE9NV2luZG93QmFzZThjb21tb25WTUV2CiBfX1pON1dlYkNvcmUxNVBhc3RlYm9h
cmRJbWFnZUMxRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlRDFFdgorX19aTjdXZWJD
b3JlMTVQbGF0Zm9ybUNBTGF5ZXIxNXBsYXRmb3JtQ0FMYXllckVQdgogX19aTjdXZWJDb3JlMTVQ
bGF0Zm9ybUNBTGF5ZXJDMkVOUzBfOUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNBTGF5ZXJDbGll
bnRFCiBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckQyRXYKIF9fWk43V2ViQ29yZTE1UHJv
dGVjdGlvblNwYWNlQzFFUktOM1dURjZTdHJpbmdFaU5TXzI1UHJvdGVjdGlvblNwYWNlU2VydmVy
VHlwZUVTNF9OU18zNVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZS5oCmluZGV4IGQ2NDE1ZmU2NDkzMTkxZTEwZjEyYmYyZTZlYjhjM2U0MzBiZjUwODYu
LjU4M2QyYjI5OTlhZmMxOGQwNDE2OGMwZjkzNzhiODUyOGI0NmUyZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRl
KGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
KikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBleGl0RnVsbHNjcmVlbigpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCmlu
ZGV4IGY0ZTZjMWZiNmI4Y2NlOWQ0NzZjMDQxMDFiOTE1OGU5ZmUwYzE4YjAuLjBmMjgwMmNlNjk1
NjM0YjE0M2YyZjEzYzE3MmZmZGU2ZTgwODE3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktp
dC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhdGUoYm9vbCBpc1Bs
YXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0Rp
bWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGUgeyB9OwogICAgIHZvaWQg
ZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5XaXRo
Q29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2b2lkIGV4aXRG
dWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXgg
MDhmNWQ4ZGM4NTczZjg4MTcxODEyNWQzYTYxODJkNzYwZjc1ZGQ5Ny4uNjFmYTI3OTUxNWVhYzUz
NzdiMDc0YjBkZTIyZDkyZjllMjgzOWMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5t
bQpAQCAtNjgsNiArNjgsOSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVHZXRTZWNvbmRz
LCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAZW5kCiAKIEBwcm90b2NvbCBBVlBs
YXllckxheWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcgKnZpZGVvR3Jh
dml0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyID0gaXNSZWFkeUZv
ckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBDR1JlY3QgdmlkZW9SZWN0OwogQGVuZAogCiBAaW50ZXJmYWNlIEFWUGxheWVyQ29u
dHJvbGxlciA6IFVJUmVzcG9uZGVyCkBAIC0yMDIsNiArMjA1LDIwIEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIEFWUGxheWVyQ29udHJvbGxlclN0YXR1cykgewogCiBAZW5kCiAKK0BpbnRl
cmZhY2UgV2ViQVZQbGF5ZXJMYXllciA6IENBTGF5ZXIgPEFWUGxheWVyTGF5ZXI+CisrKFdlYkFW
UGxheWVyTGF5ZXIgKilwbGF5ZXJMYXllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSBO
U1N0cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
Z2V0dGVyID0gaXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3Bl
cnR5IChub25hdG9taWMsIHJlYWR3cml0ZSkgQ0dSZWN0IHZpZGVvUmVjdDsKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFdlYkFWUGxheWVyTGF5ZXIKKysoV2ViQVZQbGF5ZXJMYXllciAqKXBsYXll
ckxheWVyCit7CisgICAgcmV0dXJuIFtbW1dlYkFWUGxheWVyTGF5ZXIgYWxsb2NdIGluaXRdIGF1
dG9yZWxlYXNlXTsKK30KK0BlbmQKKwogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KCkKICAgICA6IG1fdmlkZW9GdWxsc2Ny
ZWVuTW9kZWwobnVsbHB0cikKIHsKQEAgLTI3OCwxMCArMjk1LDIwIEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciogdmlk
ZW9MYXllcikKIHsKICAgICBbcGxheWVyQ29udHJvbGxlcigpLnBsYXllckxheWVyIHJlbW92ZUZy
b21TdXBlcmxheWVyXTsKICAgICBbdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Ci0g
ICAgQVNTRVJUKCF2aWRlb0xheWVyCi0gICAgICAgIHx8IFt2aWRlb0xheWVyIGlzS2luZE9mQ2xh
c3M6W2NsYXNzQVZQbGF5ZXJMYXllciBjbGFzc11dCi0gICAgICAgIHx8IChbdmlkZW9MYXllciBp
c0tpbmRPZkNsYXNzOltDQUxheWVyIGNsYXNzXV0gJiYgW3ZpZGVvTGF5ZXIgY29uZm9ybXNUb1By
b3RvY29sOkBwcm90b2NvbChBVlBsYXllckxheWVyKV0pKTsKLSAgICBwbGF5ZXJDb250cm9sbGVy
KCkucGxheWVyTGF5ZXIgPSAoQ0FMYXllcjxBVlBsYXllckxheWVyPiopdmlkZW9MYXllcjsKKyAg
ICAKKyAgICBDQUxheWVyPEFWUGxheWVyTGF5ZXI+ICphdlBsYXllckxheWVyID0gbmlsOworICAg
IAorICAgIC8vIFdlYktpdCBwcm92aWRlcyBhIEFWUGxheWVyTGF5ZXIuIFdlYktpdDIgcHJvdmll
cyBhIGhvc3RlZCBsYXllci4KKyAgICBpZiAoW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZDbGFzczpbY2xh
c3NBVlBsYXllckxheWVyIGNsYXNzXV0pCisgICAgICAgIGF2UGxheWVyTGF5ZXIgPSAoQ0FMYXll
cjxBVlBsYXllckxheWVyPiopdmlkZW9MYXllcjsKKyAgICBlbHNlIGlmICh2aWRlb0xheWVyKQor
ICAgIHsKKyAgICAgICAgQVNTRVJUKFt2aWRlb0xheWVyIGlzS2luZE9mQ2xhc3M6W0NBTGF5ZXIg
Y2xhc3NdXSk7CisgICAgICAgIGF2UGxheWVyTGF5ZXIgPSBbV2ViQVZQbGF5ZXJMYXllciBwbGF5
ZXJMYXllcl07CisgICAgICAgIFthdlBsYXllckxheWVyIGFkZFN1YmxheWVyOnZpZGVvTGF5ZXJd
OworICAgIH0KKworICAgIG1fcGxheWVyQ29udHJvbGxlci5nZXQoKS5wbGF5ZXJMYXllciA9IGF2
UGxheWVyTGF5ZXI7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6
OmVudGVyRnVsbHNjcmVlbldpdGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0aW9uPHZvaWQo
KT4gY29tcGxldGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBj
Zjg1ZjBmMmVlMzMyNjVjMjU2YWE1ODJlOTNiZTcyM2UzYTk4NmVjLi41YWJkZTU3MTk2OWQyZjUx
MDc3NDdiYjJlYjhlZjUzNTEyY2FmNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVt
ZW50Lm1tCkBAIC05NCw4ICs5NCw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRp
YUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgbV92
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJh
dGlvbigpKTsKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZShtX21lZGlh
RWxlbWVudC0+aXNQbGF5aW5nKCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7CiAK
KyAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0VmlkZW9MYXllcihtX21lZGlhRWxl
bWVudC0+cGxhdGZvcm1MYXllcigpKTsKKwogICAgIG1fYm9ycm93ZWRWaWRlb0xheWVyID0gbV9t
ZWRpYUVsZW1lbnQtPmJvcnJvd1BsYXRmb3JtTGF5ZXIoKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZS0+c2V0VmlkZW9MYXllcihtX2JvcnJvd2VkVmlkZW9MYXllci5nZXQoKSk7CiAK
ICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Q3VycmVudFRpbWUobV9tZWRpYUVs
ZW1lbnQtPmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVt
VXB0aW1lXSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA0NDU1MGVjY2IzM2NmMWY3NDdhM2RkZGI3YzI4
YjdmY2QyMDY4OWRiLi4xMmVjMzUxN2ZmY2NhYTc1NmM2MWQ5NGQ5ZDcyNDgyZDBlYmY2MWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oCkBAIC0xNzIsNiArMTcyLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBhbGxv
d3NVc2VyU2NhbGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzVXNlclNjYWxpbmc7IH0KICAg
ICB2b2lkIHNldEFsbG93c1VzZXJTY2FsaW5nKGJvb2wgYWxsb3dzVXNlclNjYWxpbmcpIHsgbV9h
bGxvd3NVc2VyU2NhbGluZyA9IGFsbG93c1VzZXJTY2FsaW5nOyB9CisgICAgCisgICAgYm9vbCBp
c1VucGFyZW50ZWRWaWRlb0xheWVySUQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklEIGxheWVySUQpIGNvbnN0IHsgcmV0dXJuIHN0ZDo6ZmluZChtX3VucGFyZW50ZWRWaWRl
b0xheWVySURzLmJlZ2luKCksIG1fdW5wYXJlbnRlZFZpZGVvTGF5ZXJJRHMuZW5kKCksIGxheWVy
SUQpICE9IG1fdW5wYXJlbnRlZFZpZGVvTGF5ZXJJRHMuZW5kKCk7IH0KKyAgICB2b2lkIGFkZFVu
cGFyZW50ZWRWaWRlb0xheWVySUQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXll
cklEIGxheWVySUQpIHsgbV91bnBhcmVudGVkVmlkZW9MYXllcklEcy5hcHBlbmQobGF5ZXJJRCk7
IH0KIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVy
SUQgbV9yb290TGF5ZXJJRDsKQEAgLTE4NCw2ICsxODcsNyBAQCBwcml2YXRlOgogICAgIGRvdWJs
ZSBtX21pbmltdW1TY2FsZUZhY3RvcjsKICAgICBkb3VibGUgbV9tYXhpbXVtU2NhbGVGYWN0b3I7
CiAgICAgYm9vbCBtX2FsbG93c1VzZXJTY2FsaW5nOworICAgIFZlY3RvcjxXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IG1fdW5wYXJlbnRlZFZpZGVvTGF5ZXJJRHM7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCmluZGV4IDUxMmM0MGZlMTk0
MDQ0MTBmZjYzMmI5ZGNjNmQ1NWU2MTAwYTk3MDMuLjQ3MzQ4OWFjOWUxMjdlMDdkNWI0NzlmZDE2
YzFkMDc2OTE0OGI2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVt
b3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtMzU0LDYgKzM1NCw3IEBAIHZvaWQg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmVuY29kZShJUEM6OkFyZ3VtZW50RW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fbWF4aW11bVNjYWxlRmFjdG9yOwogICAg
IGVuY29kZXIgPDwgbV9hbGxvd3NVc2VyU2NhbGluZzsKICAgICBlbmNvZGVyIDw8IG1fcmVuZGVy
VHJlZVNpemU7CisgICAgZW5jb2RlciA8PCBtX3VucGFyZW50ZWRWaWRlb0xheWVySURzOwogfQog
CiBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpBcmd1bWVudERl
Y29kZXImIGRlY29kZXIsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiByZXN1bHQpCkBAIC0z
OTQsNiArMzk1LDE0IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmRlY29kZShJ
UEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVtb3RlTGF5CiAgICAgCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQubV9yZW5kZXJUcmVlU2l6ZSkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3VucGFyZW50ZWRW
aWRlb0xheWVySURzKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgZm9yIChhdXRvIGxh
eWVySUQgOiByZXN1bHQubV91bnBhcmVudGVkVmlkZW9MYXllcklEcykgeworICAgICAgICBpZiAo
IWxheWVySUQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tCmluZGV4IDAwNjM4YTRhZDcyZWMyOGY3YjZlOGY4MTM3MDlkMmU2MzllYWYxYTguLjlk
NTg3ZTU2Njg0YTk2MGNmZTFlMTQ5ZDI0YjY5NDczYzNhMDJhZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0zMiw5ICszMiwxMCBA
QAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgiCiAjaW1wb3J0ICJXZWJQYWdl
TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9T
aGFyZWRCdWZmZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVXNlckFnZW50Lmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMzcsNiArMjM4LDggQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNvcmU6
OkludFMKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24pCiB7CiAg
ICAgbV9wYWdlQ2xpZW50LmRpZENvbW1pdExheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbik7
CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLT5kaWRDb21taXRMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24pOwog
fQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgdWlu
dDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgUGFzc1JlZlB0cjxHZXN0
dXJlQ2FsbGJhY2s+IGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmluZGV4
IGE5MmRmMjhmOGNjODFmMGM3N2I5MmNhMzc2Mzg5YjhhZThlZDI3ZWMuLmEzYmQ3NDZkMGEwNjNj
MDQ3ZmFkZjYxM2JkNmU4ZWUyMjdiMGJkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5j
cHAKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2luY2x1ZGUgIkRy
YXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTU0LDEyICs1NywyNyBA
QCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkoKQogICAgIG1fcGFnZS0+cHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCkKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJlZVRyYW5zYWN0aW9uKQogewotICAg
IC8vIFRPRE86IGZpbmQgYSByZWFsIHZpZGVvIGxheWVyIG9yIG1ha2Ugb25lIHRoYXQgbWVldHMg
dGhlIG5lY2Vzc2FyeSByZXF1aXJlbWVudHMuCi0gICAgc2V0VmlkZW9MYXllcihudWxscHRyKTsK
KyAgICBpZiAobV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNh
Y3Rpb24gJiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uaXNVbnBhcmVudGVkVmlkZW9MYXllcklEKG1f
dmlkZW9MYXllcklEKSkgeworICAgICAgICBtX2VudGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9MYXll
clVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IGZhbHNlOworICAgICAgICBXZWJDb3JlOjpXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCk7CisgICAgfQogfQog
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKEdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCB2aWRlb0xheWVySUQpCit7CisgICAgRHJhd2lu
Z0FyZWFQcm94eSogZHJhd2luZ0FyZWFQcm94eSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKTsKKyAg
ICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KiByZW1vdGVEcmF3aW5nQXJlYVByb3h5
ID0gdG9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KGRyYXdpbmdBcmVhUHJveHkpOwor
ICAgIHNldFZpZGVvTGF5ZXIocmVtb3RlRHJhd2luZ0FyZWFQcm94eS0+cmVtb3RlTGF5ZXJUcmVl
SG9zdCgpLmdldExheWVyKHZpZGVvTGF5ZXJJRCkpOworICAgIG1fdmlkZW9MYXllcklEID0gdmlk
ZW9MYXllcklEOworICAgIG1fZW50ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRl
ZFRyYW5zYWN0aW9uID0gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OmVudGVyRnVsbHNjcmVlbigpCit7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkKIHsKICAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCmlu
ZGV4IGFmMWQxODVjZWY5MDYyYjM3NGQ2OTJkZTAzNzM0NjE1YmY1YjA4N2YuLmY2Mzc5ZWZiZGU3
NDRhNDk2ZTBjY2Q5MjUzMzFhNGM4MDYxMjZlMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aApAQCAtMjksNiArMjksNyBAQAogI2lmIFBMQVRGT1JNKElPUykKIAogI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NMYXllci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KQEAgLTM4LDE3ICszOSwyMSBAQAogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IFdlYlBhZ2VQcm94eTsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCiBjbGFz
cyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6V2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQsIHB1YmxpYyBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbCwgcHJpdmF0ZSBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5PiBjcmVhdGUo
V2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5KCk7CiAKKyAgICB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbiYpOworICAgIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5Jik7CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiosIElQQzo6TWVzc2FnZURlY29kZXImKSBv
dmVycmlkZTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllcjo6UGxhdGZvcm1MYXllcklEKTsKKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RFeGl0RnVsbFNj
cmVlbigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBwbGF5KCkgb3ZlcnJpZGU7CkBAIC01
OCw2ICs2Myw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVu
KCkgb3ZlcnJpZGU7CiAKICAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKKyAgICBib29sIG1fZW50
ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRlZFRyYW5zYWN0aW9uOworICAgIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBtX3ZpZGVvTGF5ZXJJRDsKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KaW5kZXggMDZkMTU3MmM2ZGIwMDBmODY5MzQ2MzU1MjI4OTk1YjQz
MDdmMGE3MS4uZjA3ZDNlMDllNWY1YmQ1Mjk4MDMyZWQzNjQwYzZkNWMwZTE3MmZlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTI0LDcgKzI0LDcg
QEAKICNpZiBQTEFURk9STShJT1MpCiBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHkgewogICAgIFNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91Ymxl
IGhvc3RUaW1lKQotICAgIFNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCisg
ICAgU2V0VmlkZW9MYXllcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCB2aWRlb0xheWVySUQpCiAgICAgU2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIHVu
c2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1
cmF0aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGI4NjIyNjcx
Nzk5NTg2ODNmYzdkOGFhNzY4NTA0MTAzNzA1NmU2ZTEuLmQ2NWQ1OWNhYmYwODYzNzk1MzgyOTg5
NjA1MTUwYjQ1NGI0YWFhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJQbHVnaW5Qcm94eS5o
IgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmludEluZm8uaCIKKyNpbmNs
dWRlICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNlc3Npb25TdGF0
ZS5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2luY2x1ZGUgIldLU2hhcmVkQVBJ
Q2FzdC5oIgpAQCAtMjYwOSw2ICsyNjEwLDIxIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgICAgIG1fZHJhd2lu
Z0FyZWEtPnVwZGF0ZVByZWZlcmVuY2VzKHN0b3JlKTsKIH0KIAordm9pZCBXZWJQYWdlOjp3aWxs
Q29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyYW5zYWN0
aW9uKQoreworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0Q29udGVudHNTaXplKGNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLnZpZXcoKS0+Y29udGVudHNTaXplKCkpOworICAgIGxheWVyVHJhbnNhY3Rp
b24uc2V0UGFnZVNjYWxlRmFjdG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAg
ICBsYXllclRyYW5zYWN0aW9uLnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCktPnJlbmRlclRy
ZWVTaXplKCkpOworI2lmIFBMQVRGT1JNKElPUykKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldE1p
bmltdW1TY2FsZUZhY3RvcihtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0TWF4aW11bVNjYWxlRmFjdG9yKG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7
CisgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRBbGxvd3NVc2VyU2NhbGluZyhhbGxvd3NVc2VyU2Nh
bGluZygpKTsKKyAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbk1hbmFnZXItPndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlv
bik7CisjZW5kaWYKK30KKworICAgIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiBXZWJJbnNwZWN0
b3IqIFdlYlBhZ2U6Omluc3BlY3RvcigpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA1MDVmMjdjNTM3ODI1YjQ0NGRhZGU5NWM1Yzk5N2MxOGFm
YjJiZmQxLi44MDRjYTI4NzAwMmZkZTAxYzhmMjk1MDVjMTFhNDcwZGQ4OGMzNzczIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0Miw2ICsxNDIs
NyBAQCBjbGFzcyBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiBjbGFzcyBQ
YWdlQmFubmVyOwogY2xhc3MgUGFnZU92ZXJsYXk7CiBjbGFzcyBQbHVnaW5WaWV3OworY2xhc3Mg
UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiBjbGFzcyBTZXNzaW9uU3RhdGU7CiBjbGFzcyBX
ZWJDb2xvckNob29zZXI7CiBjbGFzcyBXZWJDb250ZXh0TWVudTsKQEAgLTIwNyw2ICsyMDgsOCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBzY3JvbGxCeSh1aW50MzJfdCBzY3JvbGxEaXJlY3Rpb24sIHVp
bnQzMl90IHNjcm9sbEdyYW51bGFyaXR5KTsKIAogICAgIHZvaWQgY2VudGVyU2VsZWN0aW9uSW5W
aXNpYmxlQXJlYSgpOworICAgIAorICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbiYpOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBXZWJJ
bnNwZWN0b3IqIGluc3BlY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbQppbmRleCBkZWVjOWY0YzUzYmI4MTU5YjU3OWRlMjYwYTRmMGUyOTJmY2ExYjBhLi43YmY5
NzQwODMwNDdkMjNkYzg3MThlNzkyMWU3OGZjYjBiYjAxMDg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3Rv
bS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3Jt
Q0FMYXllclJlbW90ZUN1c3RvbS5tbQpAQCAtMzksNiArMzksNyBAQAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCitzdGF0aWMgTlNTdHJpbmcgKiBj
b25zdCBwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyID0gQCJXS1BsYXRmb3JtQ0FMYXllciI7CiBQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0
Zm9ybUxheWVyKiBjdXN0b21MYXllciwgUGxhdGZvcm1DQUxheWVyQ2xpZW50KiBvd25lciwgUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dCogY29udGV4dCkKICAgICA6IFBsYXRmb3JtQ0FMYXllclJlbW90
ZShMYXllclR5cGVDdXN0b20sIG93bmVyLCBjb250ZXh0KQogewpAQCAtNTQsNiArNTUsNyBAQCBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQ
bGF0Zm9ybUxheWVyKiBjdXN0b21MYQogICAgIH0KIAogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4
dC0+c2V0Um9vdExheWVyKGN1c3RvbUxheWVyKTsKKyAgICBbY3VzdG9tTGF5ZXIgc2V0VmFsdWU6
W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRlcjp0aGlzXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9p
bnRlcl07CiAKICAgICBtX3BsYXRmb3JtTGF5ZXIgPSBjdXN0b21MYXllcjsKICAgICBbY3VzdG9t
TGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKQEAgLTYzLDYgKzY1LDcgQEAgUGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1M
YXllciogY3VzdG9tTGEKIAogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjp+UGxhdGZvcm1D
QUxheWVyUmVtb3RlQ3VzdG9tKCkKIHsKKyAgICBbbV9wbGF0Zm9ybUxheWVyIHNldFZhbHVlOltO
U1ZhbHVlIHZhbHVlV2l0aFBvaW50ZXI6bmlsXSBmb3JLZXk6cGxhdGZvcm1DQUxheWVyUG9pbnRl
cl07CiB9CiAKIHVpbnQzMl90IFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6aG9zdGluZ0Nv
bnRleHRJRCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
bWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQppbmRleCAyNjFi
YmZiZGQyM2QzMTE5NmQyODlmZGQ4ZDA3MGVkOGJmMGFiMjNkLi44NTc5ODBmYzI3ZmExN2YxMzg2
NmUzNDkyMGMwMWI2NmEzMjI3NDVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0KQEAgLTMyMSwxNCArMzIxLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6Zmx1c2hMYXllcnMoKQogICAgIC8vIEZJWE1FOiBtaW5pemUgdGhlc2UgdHJhbnNhY3Rpb25z
IGlmIG5vdGhpbmcgY2hhbmdlZC4KICAgICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiBsYXll
clRyYW5zYWN0aW9uOwogICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+YnVpbGRUcmFuc2Fj
dGlvbihsYXllclRyYW5zYWN0aW9uLCAqbV9yb290TGF5ZXIpOwotICAgIGxheWVyVHJhbnNhY3Rp
b24uc2V0Q29udGVudHNTaXplKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkudmll
dygpLT5jb250ZW50c1NpemUoKSk7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRQYWdlU2NhbGVG
YWN0b3IobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAgbGF5
ZXJUcmFuc2FjdGlvbi5zZXRSZW5kZXJUcmVlU2l6ZShtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPnJl
bmRlclRyZWVTaXplKCkpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICBsYXllclRyYW5zYWN0aW9u
LnNldE1pbmltdW1TY2FsZUZhY3RvcihtX3dlYlBhZ2UtPm1pbmltdW1QYWdlU2NhbGVGYWN0b3Io
KSk7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRNYXhpbXVtU2NhbGVGYWN0b3IobV93ZWJQYWdl
LT5tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkpOwotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0QWxs
b3dzVXNlclNjYWxpbmcobV93ZWJQYWdlLT5hbGxvd3NVc2VyU2NhbGluZygpKTsKLSNlbmRpZgor
ICAgIG1fd2ViUGFnZS0+d2lsbENvbW1pdExheWVyVHJlZShsYXllclRyYW5zYWN0aW9uKTsKIAog
ICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24gc2Nyb2xsaW5nVHJhbnNh
Y3Rpb247CiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
aW5kZXggZmRlZGYxYWI1ZGEyMDFiZmZlYmY1NzhhMTNmOTE2ZDlmMDQyMjA5Zi4uYzQxNjQ2Y2Q5
ZGNlYjY4ZjIzMWQ4MjUwNzljNzllNWQ3Zjg1YTBiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaCIKQEAgLTM1LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0hUTUxWaWRlb0VsZW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+CisjaW5jbHVkZSA8V2ViY29yZS9QbGF0Zm9ybUNBTGF5ZXIuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTU3LDYgKzU5LDE0IEBAIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKCkKICAgICBXZWJQcm9jZXNz
OjpzaGFyZWQoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9
CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6d2lsbENvbW1pdExheWVyVHJlZShS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCit7CisgICAgaWYgKG1fc2Vu
ZFVucGFyZW50VmlkZW9MYXllclRyYW5zYWN0aW9uKSB7CisgICAgICAgIHRyYW5zYWN0aW9uLmFk
ZFVucGFyZW50ZWRWaWRlb0xheWVySUQobV9wbGF0Zm9ybUNBTGF5ZXItPmxheWVySUQoKSk7Cisg
ICAgICAgIG1fc2VuZFVucGFyZW50VmlkZW9MYXllclRyYW5zYWN0aW9uID0gZmFsc2U7CisgICAg
fQorfQorICAgIAogYm9vbCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxz
Y3JlZW4oY29uc3QgTm9kZSogbm9kZSkgY29uc3QKIHsKICAgICBpZiAoIVNldHRpbmdzOjphdktp
dEVuYWJsZWQoKSkKQEAgLTk4LDE1ICsxMDgsMTIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGYK
ICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6U2V0VmlkZW9EaW1lbnNpb25zKGhhc1ZpZGVvLCB3aWR0aCwgaGVpZ2h0KSwgbV9wYWdlLT5w
YWdlSUQoKSk7CiB9CiAgICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZp
ZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciogdmlkZW9MYXllcikKIHsKLSAgICAvLyBUT0RP
OiBpbXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxheWVyIElELgotICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQoMCks
IG1fcGFnZS0+cGFnZUlEKCkpOwotfQorICAgIG1fcGxhdGZvcm1DQUxheWVyID0gUGxhdGZvcm1D
QUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodmlkZW9MYXllcik7CisgICAgbV9zZW5kVW5wYXJlbnRW
aWRlb0xheWVyVHJhbnNhY3Rpb24gPSAhIW1fcGxhdGZvcm1DQUxheWVyOwogICAgIAotdm9pZCBX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9M
YXllcklEKQotewotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQodmlkZW9MYXllcklEKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRChtX3BsYXRmb3JtQ0FMYXllciA/IG1fcGxhdGZvcm1D
QUxheWVyLT5sYXllcklEKCkgOiAwKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50ZXJGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
aAppbmRleCBlNTM3Yzk5NjUzNjAwNGYyZjMwZjFkZjFjNjdiZjEyMTZhMzU5YjAwLi44ZTNiOGEz
ZDc2NzRmMjQ2ZWFlMjM2ZGM2MjBkNjRlNWFhYTNlNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBA
IC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FM
YXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5o
PgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBAIC00Nyw2ICs0OCw3IEBAIGNsYXNzIE5v
ZGU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZTsKK2NsYXNzIFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOwogCiBjbGFzcyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIDog
cHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LCBwdWJs
aWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLCBwcml2YXRlIElQQzo6TWVz
c2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKQEAgLTU1LDYgKzU3LDggQEAgcHVibGljOgogICAgIAog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdl
RGVjb2RlciYpOwogICAgIAorICAgIHZvaWQgd2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiYpOworCiAgICAgYm9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3Qg
V2ViQ29yZTo6Tm9kZSopIGNvbnN0OwogICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShX
ZWJDb3JlOjpOb2RlKik7CiAgICAgdm9pZCBleGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6
Tm9kZSopOwpAQCAtNjgsMTIgKzcyLDEzIEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQg
c2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xh
eWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9M
YXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2Ny
ZWVuKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJp
ZGU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2Rl
PiBtX25vZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBsYXRmb3JtQ0FMYXllcj4gbV9wbGF0Zm9y
bUNBTGF5ZXI7CisgICAgYm9vbCBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbjsK
IH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224885</attachid>
            <date>2014-02-21 11:38:55 -0800</date>
            <delta_ts>2014-02-21 12:17:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128564-20140221113854.patch</filename>
            <type>text/plain</type>
            <size>28677</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFhZTZmMGNlZjBlOGUy
MzQ2OGVmYTBiMjNjMTNlZTBmZDhlNGE0Ny4uYTgwYTU3MzM5ODZjOWFjODMxYTA4OWY0MGNkMDlk
YTgxNjAzOGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAyLTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNj
cmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBFeHBvcnQgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICBSZW1v
dmUgU2V0VmlkZW9MYXllcklEKCkuIAorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICBXcmFwIG1ha2UgdmlkZW8g
bGF5ZXIgbG9vayBsaWtlIGFuIEFWQVZQbGF5ZXJMYXllciB3aXRoIFdlYkFWUGxheWVyTGF5ZXIK
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSB2aWRlb0xheWVyIGJlZm9y
ZSBib3Jyb3dpbmcgaXQgc28gdGhlIGludGVyZmFjZSB3aWxsIGJlIHJlYWR5IHRvCisgICAgICAg
IGNhdGNoIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHJlbW92ZXMgaXQuCisKIDIwMTQtMDItMTcgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBm
YXN0IG1hcHBpbmcgZnJvbSBTdHJpbmdJbXBsIHRvIEpTU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDVj
OTI3NDc1ZGMxYTI4MGJkOWZlODlkNjhkNWVkZGJjZDIyYWI5Zi4uYjIyMDQxZTc4MmEwODAyODYw
YzdjNjA5NDFmYjU0ZDU0ZDljMWQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0
LTAyLTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIg
QVZLaXQgZnVsbHNjcmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjppc1ZpZGVvTGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmFkZFZpZGVvTGF5ZXJJRFBl
bmRpbmdGdWxsc2NyZWVuKToKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpkZWNvZGUpOgorICAgICAgICBFbmNvZGUgYW5kIGRlY29kZSBtX3ZpZGVvTGF5
ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExh
eWVyVHJlZSk6CisgICAgICAgIExldCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgc2Vl
IHRoZSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUpOgorICAg
ICAgICBMb29rIGZvciB2aWRlbyBsYXllciBwZW5kaW5nIGZ1bGxzY3JlZW4gb24gdGhlIHRyYW5z
YWN0aW9uIHRvIGluaXRpYXRlCisgICAgICAgIGZ1bGxzY3JlZW4uCisKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVySUQpOgorICAg
ICAgICBTdGFydCBsb29raW5nIGZvciB0aGUgdmlkZW8gbGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVu
IGluIHRoZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIE92ZXJyaWRlIHRvIHBy
ZXZlbnQgZnVsbHNjcmVlbiBmcm9tIGhhcHBlbmluZyBiZWZvcmUgdGhlIGxheWVyCisgICAgICAg
IGlzIHBlbmRpbmcgZnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3MgYSBt
b3JlIHNwZWNpZmljIHZpZGVvTGF5ZXJJRCBpbiBTZXRWaWRlb0xheWVySUQsCisgICAgICAgIGku
ZS4gV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgTW92ZSB3ZWJQYWdlIHNwZWNpZmljIHRy
YW5zYWN0aW9uIGJ1aWxkaW5nIGhlcmUsIGluY2x1ZGluZywKKyAgICAgICAgZ2l2aW5nIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIgYSBjaGFuY2UgdG8gbW9kaWZ5IHRoZSB0cmFuc2FjdGlvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIEFkZCB3
aWxsQ29tbWl0TGF5ZXJUcmVlKCk7CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIE1ha2UgYW5kIGJyZWFrIHRoZSBjb25uZWN0aW9uIGZyb20gQ0FMYXllciB0byBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20sCisgICAgICAgIHRoZSBzYW1lIHdheSBpdCBpcyBk
b25lIGZvciBQbGF0Zm9ybUNBTGF5ZXJNYWMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICBNb3ZlIFdl
YlBhZ2Ugc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRpbmcgaW50byBXZWJQYWdlOjp3aWxsQ29t
bWl0TGF5ZXJUcmVlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OndpbGxDb21taXRMYXllclRyZWUpOgorICAgICAgICBhZGRWaWRlb0xheWVySURQZW5kaW5n
RnVsbHNjcmVlbiBvbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB3aGVuIG5lZWRlZC4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVy
KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgdmlkZW8gbGF5ZXJJRC4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHdp
bGxDb21taXRMYXllclRyZWUoKSBhbmQgcmVtb3ZlIHNldFZpZGVvTGF5ZXJJRCgpLgorICAgICAg
ICBBZGQgYSBtZW1iZXIgdG8gcmV0YWluIHRoZSB1bnBhcmVudGVkIFBsYXRmb3JtQ0FMYXllci4K
KwogMjAxNC0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDbGVhbiB1cCBXS0NvbnRlbnRWaWV3IGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDUxOWIxZTNjNjAyMTg2NWU2NDRhOGI0Nzk3OWJjNDRhNTliM2RjMTkuLjBh
NDEwZmM5YjNkOTQ0NzBmZjE5MTBiZTM5OGE0MTZhOGZhMWNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC01ODgsNiArNTg4LDcgQEAgX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb25EMUV2
CiBfX1pON1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZThjb21tb25WTUV2CiBfX1pON1dlYkNvcmUx
NVBhc3RlYm9hcmRJbWFnZUMxRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlRDFFdgor
X19aTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXIxNXBsYXRmb3JtQ0FMYXllckVQdgogX19aTjdX
ZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJDMkVOUzBfOUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNB
TGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckQyRXYKIF9fWk43V2Vi
Q29yZTE1UHJvdGVjdGlvblNwYWNlQzFFUktOM1dURjZTdHJpbmdFaU5TXzI1UHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZUVTNF9OU18zNVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZS5oCmluZGV4IGQ2NDE1ZmU2NDkzMTkxZTEwZjEyYmYyZTZlYjhjM2U0
MzBiZjUwODYuLjU4M2QyYjI5OTlhZmMxOGQwNDE2OGMwZjkzNzhiODUyOGI0NmUyZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0
Zm9ybUxheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMy
X3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGY0ZTZjMWZiNmI4Y2NlOWQ0NzZjMDQxMDFiOTE1OGU5ZmUwYzE4YjAuLjBm
MjgwMmNlNjk1NjM0YjE0M2YyZjEzYzE3MmZmZGU2ZTgwODE3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhdGUo
Ym9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGUgeyB9Owog
ICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
bW0KaW5kZXggMDhmNWQ4ZGM4NTczZjg4MTcxODEyNWQzYTYxODJkNzYwZjc1ZGQ5Ny4uMmQ3NGYy
NzM2MWIxNDMyZTZmOTk1OGFkOTc2ZmU0YTU2MTY2ZjExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQpAQCAtNjgsNiArNjgsOSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVH
ZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAZW5kCiAKIEBwcm90
b2NvbCBBVlBsYXllckxheWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcg
KnZpZGVvR3Jhdml0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyID0g
aXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlkZW9SZWN0OwogQGVuZAogCiBAaW50ZXJmYWNlIEFW
UGxheWVyQ29udHJvbGxlciA6IFVJUmVzcG9uZGVyCkBAIC0yMDIsNiArMjA1LDIwIEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIEFWUGxheWVyQ29udHJvbGxlclN0YXR1cykgewogCiBAZW5k
CiAKK0BpbnRlcmZhY2UgV2ViQVZQbGF5ZXJMYXllciA6IENBTGF5ZXIgPEFWUGxheWVyTGF5ZXI+
CisrKFdlYkFWUGxheWVyTGF5ZXIgKilwbGF5ZXJMYXllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWR3cml0ZSwgZ2V0dGVyID0gaXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSkgQ0dSZWN0IHZpZGVvUmVjdDsKK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdlYkFWUGxheWVyTGF5ZXIKKysoV2ViQVZQbGF5ZXJMYXll
ciAqKXBsYXllckxheWVyCit7CisgICAgcmV0dXJuIFtbW1dlYkFWUGxheWVyTGF5ZXIgYWxsb2Nd
IGluaXRdIGF1dG9yZWxlYXNlXTsKK30KK0BlbmQKKwogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0KCkKICAgICA6IG1fdmlk
ZW9GdWxsc2NyZWVuTW9kZWwobnVsbHB0cikKIHsKQEAgLTI3OCwxMCArMjk1LDE5IEBAIHZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1M
YXllciogdmlkZW9MYXllcikKIHsKICAgICBbcGxheWVyQ29udHJvbGxlcigpLnBsYXllckxheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBbdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJs
YXllcl07Ci0gICAgQVNTRVJUKCF2aWRlb0xheWVyCi0gICAgICAgIHx8IFt2aWRlb0xheWVyIGlz
S2luZE9mQ2xhc3M6W2NsYXNzQVZQbGF5ZXJMYXllciBjbGFzc11dCi0gICAgICAgIHx8IChbdmlk
ZW9MYXllciBpc0tpbmRPZkNsYXNzOltDQUxheWVyIGNsYXNzXV0gJiYgW3ZpZGVvTGF5ZXIgY29u
Zm9ybXNUb1Byb3RvY29sOkBwcm90b2NvbChBVlBsYXllckxheWVyKV0pKTsKLSAgICBwbGF5ZXJD
b250cm9sbGVyKCkucGxheWVyTGF5ZXIgPSAoQ0FMYXllcjxBVlBsYXllckxheWVyPiopdmlkZW9M
YXllcjsKKyAgICAKKyAgICBDQUxheWVyPEFWUGxheWVyTGF5ZXI+ICphdlBsYXllckxheWVyID0g
bmlsOworICAgIAorICAgIC8vIFdlYktpdCBwcm92aWRlcyBhIEFWUGxheWVyTGF5ZXIuIFdlYktp
dDIgcHJvdmllcyBhIGhvc3RlZCBsYXllci4KKyAgICBpZiAoW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZD
bGFzczpbY2xhc3NBVlBsYXllckxheWVyIGNsYXNzXV0pCisgICAgICAgIGF2UGxheWVyTGF5ZXIg
PSAoQ0FMYXllcjxBVlBsYXllckxheWVyPiopdmlkZW9MYXllcjsKKyAgICBlbHNlIGlmICh2aWRl
b0xheWVyKSB7CisgICAgICAgIEFTU0VSVChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOltDQUxh
eWVyIGNsYXNzXV0pOworICAgICAgICBhdlBsYXllckxheWVyID0gW1dlYkFWUGxheWVyTGF5ZXIg
cGxheWVyTGF5ZXJdOworICAgICAgICBbYXZQbGF5ZXJMYXllciBhZGRTdWJsYXllcjp2aWRlb0xh
eWVyXTsKKyAgICB9CisKKyAgICBtX3BsYXllckNvbnRyb2xsZXIuZ2V0KCkucGxheWVyTGF5ZXIg
PSBhdlBsYXllckxheWVyOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFW
S2l0OjplbnRlckZ1bGxzY3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2
b2lkKCk+IGNvbXBsZXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KaW5k
ZXggY2Y4NWYwZjJlZTMzMjY1YzI1NmFhNTgyZTkzYmU3MjNlM2E5ODZlYy4uNWFiZGU1NzE5Njlk
MmY1MTA3NzQ3YmIyZWI4ZWY1MzUxMmNhZjQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudC5tbQpAQCAtOTQsOCArOTQsOSBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVudCogbWVkaQogICAg
IG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXREdXJhdGlvbihtX21lZGlhRWxlbWVudC0+
ZHVyYXRpb24oKSk7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFJhdGUobV9t
ZWRpYUVsZW1lbnQtPmlzUGxheWluZygpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRlKCkp
OwogCisgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFZpZGVvTGF5ZXIobV9tZWRp
YUVsZW1lbnQtPnBsYXRmb3JtTGF5ZXIoKSk7CisKICAgICBtX2JvcnJvd2VkVmlkZW9MYXllciA9
IG1fbWVkaWFFbGVtZW50LT5ib3Jyb3dQbGF0Zm9ybUxheWVyKCk7Ci0gICAgbV92aWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2UtPnNldFZpZGVvTGF5ZXIobV9ib3Jyb3dlZFZpZGVvTGF5ZXIuZ2V0KCkp
OwogCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1fbWVk
aWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5
c3RlbVVwdGltZV0pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKaW5kZXggNDQ1NTBlY2NiMzNjZjFmNzQ3YTNkZGRi
N2MyOGI3ZmNkMjA2ODlkYi4uMjE1NWI0ZDc5NmVlM2UyNTk4ZGYxZDgyODBkMjBiOTc2MzlhMDU2
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaApAQCAtMTcyLDYgKzE3Miw5IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
YWxsb3dzVXNlclNjYWxpbmcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c1VzZXJTY2FsaW5nOyB9
CiAgICAgdm9pZCBzZXRBbGxvd3NVc2VyU2NhbGluZyhib29sIGFsbG93c1VzZXJTY2FsaW5nKSB7
IG1fYWxsb3dzVXNlclNjYWxpbmcgPSBhbGxvd3NVc2VyU2NhbGluZzsgfQorICAgIAorICAgIGJv
b2wgaXNWaWRlb0xheWVySURQZW5kaW5nRnVsbHNjcmVlbihXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0xheWVySURz
UGVuZGluZ0Z1bGxzY3JlZW4uY29udGFpbnMobGF5ZXJJRCk7IH0KKyAgICB2b2lkIGFkZFZpZGVv
TGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCBsYXllcklEKSB7IG1fdmlkZW9MYXllcklEc1BlbmRpbmdGdWxsc2NyZWVuLmFwcGVu
ZChsYXllcklEKTsgfQogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBs
YXRmb3JtTGF5ZXJJRCBtX3Jvb3RMYXllcklEOwpAQCAtMTg0LDYgKzE4Nyw3IEBAIHByaXZhdGU6
CiAgICAgZG91YmxlIG1fbWluaW11bVNjYWxlRmFjdG9yOwogICAgIGRvdWJsZSBtX21heGltdW1T
Y2FsZUZhY3RvcjsKICAgICBib29sIG1fYWxsb3dzVXNlclNjYWxpbmc7CisgICAgVmVjdG9yPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV92aWRlb0xheWVySURzUGVu
ZGluZ0Z1bGxzY3JlZW47CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1t
CmluZGV4IDUxMmM0MGZlMTk0MDQ0MTBmZjYzMmI5ZGNjNmQ1NWU2MTAwYTk3MDMuLmQ3NTFlYTAx
MDBlMTI2NzJmMzRkYjA2ZDY2OGNjY2U2OGIwYzhmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbQpAQCAtMzU0
LDYgKzM1NCw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmVuY29kZShJUEM6
OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IG1fbWF4aW11
bVNjYWxlRmFjdG9yOwogICAgIGVuY29kZXIgPDwgbV9hbGxvd3NVc2VyU2NhbGluZzsKICAgICBl
bmNvZGVyIDw8IG1fcmVuZGVyVHJlZVNpemU7CisgICAgZW5jb2RlciA8PCBtX3ZpZGVvTGF5ZXJJ
RHNQZW5kaW5nRnVsbHNjcmVlbjsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6ZGVjb2RlKElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbiYgcmVzdWx0KQpAQCAtMzk0LDYgKzM5NSw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OmRlY29kZShJUEM6OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgUmVt
b3RlTGF5CiAgICAgCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9yZW5kZXJUcmVl
U2l6ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKHJlc3VsdC5tX3ZpZGVvTGF5ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbikpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1MubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQppbmRleCAwMDYzOGE0YWQ3MmVjMjhmN2I2
ZThmODEzNzA5ZDJlNjM5ZWFmMWE4Li45ZDU4N2U1NjY4NGE5NjBjZmUxZTE0OWQyNGI2OTQ3M2Mz
YTAyYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94
eUlPUy5tbQpAQCAtMzIsOSArMzIsMTAgQEAKICNpbXBvcnQgIldlYktpdFN5c3RlbUludGVyZmFj
ZUlPUy5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgogI2lt
cG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotI2ltcG9ydCA8V2ViQ29yZS9Vc2VyQWdl
bnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L1VzZXJBZ2VudC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMjM3LDYgKzIz
OCw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRWaWV3cG9ydENvbmZpZ3VyYXRpb25NaW5pbXVt
TGF5b3V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTCiB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29t
bWl0TGF5ZXJUcmVlKGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxh
eWVyVHJlZVRyYW5zYWN0aW9uKQogewogICAgIG1fcGFnZUNsaWVudC5kaWRDb21taXRMYXllclRy
ZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24pOworICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIpCisgICAgICAgIG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlci0+ZGlkQ29tbWl0TGF5ZXJUcmVl
KGxheWVyVHJlZVRyYW5zYWN0aW9uKTsKIH0KIAogdm9pZCBXZWJQYWdlUHJveHk6OnNlbGVjdFdp
dGhHZXN0dXJlKGNvbnN0IFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBXZWJDb3JlOjpUZXh0R3Jh
bnVsYXJpdHkgZ3JhbnVsYXJpdHksIHVpbnQzMl90IGdlc3R1cmVUeXBlLCB1aW50MzJfdCBnZXN0
dXJlU3RhdGUsIFBhc3NSZWZQdHI8R2VzdHVyZUNhbGxiYWNrPiBjYWxsYmFjaykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmNwcAppbmRleCBhOTJkZjI4ZjhjYzgxZjBjNzdiOTJjYTM3NjM4OWI4
YWU4ZWQyN2VjLi4xNjY3OTc0ZjU1N2FjOWY0MDAyNzJiOGNlYmUzMmI3NWFmYjhkZGY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwCkBAIC0yOCw2ICsyOCw5IEBACiAKICNpZiBQTEFU
Rk9STShJT1MpCiAKKyNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCisjaW5jbHVkZSAiUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3Nh
Z2VzLmgiCkBAIC00NCw2ICs0Nyw4IEBAIFBhc3NSZWZQdHI8V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5PiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmNyZWF0CiAKIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
KFdlYlBhZ2VQcm94eSYgcGFnZSkKICAgICA6IG1fcGFnZSgmcGFnZSkKKyAgICAsIG1fZW50ZXJG
dWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRlZFRyYW5zYWN0aW9uKGZhbHNlKQorICAg
ICwgbV92aWRlb0xheWVySUQoMCkKIHsKICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CiAgICAgc2V0V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWwodGhpcyk7CkBAIC01NCwxMiArNTksMjYgQEAgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Ojp+V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KCkKICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKIH0KIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCit2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6ZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uJiBsYXllclRyZWVUcmFuc2FjdGlvbikKIHsKLSAgICAvLyBUT0RPOiBmaW5k
IGEgcmVhbCB2aWRlbyBsYXllciBvciBtYWtlIG9uZSB0aGF0IG1lZXRzIHRoZSBuZWNlc3Nhcnkg
cmVxdWlyZW1lbnRzLgotICAgIHNldFZpZGVvTGF5ZXIobnVsbHB0cik7CisgICAgaWYgKG1fZW50
ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRlZFRyYW5zYWN0aW9uICYmIGxheWVy
VHJlZVRyYW5zYWN0aW9uLmlzVmlkZW9MYXllcklEUGVuZGluZ0Z1bGxzY3JlZW4obV92aWRlb0xh
eWVySUQpKSB7CisgICAgICAgIG1fZW50ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJl
bnRlZFRyYW5zYWN0aW9uID0gZmFsc2U7CisgICAgICAgIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oKTsKKyAgICB9CiB9CiAKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVySUQoR3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEIHZpZGVvTGF5ZXJJRCkKK3sKKyAgICBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5KiByZW1vdGVEcmF3aW5nQXJlYVByb3h5ID0gdG9SZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5KG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSk7CisgICAgc2V0Vmlk
ZW9MYXllcihyZW1vdGVEcmF3aW5nQXJlYVByb3h5LT5yZW1vdGVMYXllclRyZWVIb3N0KCkuZ2V0
TGF5ZXIodmlkZW9MYXllcklEKSk7CisgICAgbV92aWRlb0xheWVySUQgPSB2aWRlb0xheWVySUQ7
CisgICAgbV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rp
b24gPSB0cnVlOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW50
ZXJGdWxsc2NyZWVuKCkKK3sKK30KKyAgICAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKQogewogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UmVxdWVzdEV4aXRGdWxsU2NyZWVuKCks
IG1fcGFnZS0+cGFnZUlEKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggYWYxZDE4
NWNlZjkwNjJiMzc0ZDY5MmRlMDM3MzQ2MTViZjViMDg3Zi4uZjYzNzllZmJkZTc0NGE0OTZlMGNj
ZDkyNTMzMWE0YzgwNjEyNmUzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC0yOSw2
ICsyOSw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVy
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpA
QCAtMzgsMTcgKzM5LDIxIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZVBy
b3h5OworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiAKIGNsYXNzIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eSA6IHB1YmxpYyBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdCwgcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
LCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IGNyZWF0ZShXZWJQYWdlUHJv
eHkmKTsKICAgICB2aXJ0dWFsIH5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKTsKIAor
ICAgIHZvaWQgZGlkQ29tbWl0TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uJik7CisgICAgCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2UoSVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpIG92ZXJyaWRlOwog
Ci0gICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQpOworICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVy
cmlkZTsKICAgICAKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4aXRGdWxsU2NyZWVuKCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHBsYXkoKSBvdmVycmlkZTsKQEAgLTU4LDYgKzYzLDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlk
ZTsKIAogICAgIFdlYlBhZ2VQcm94eSogbV9wYWdlOworICAgIGJvb2wgbV9lbnRlckZ1bGxzY3Jl
ZW5BZnRlclZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb247CisgICAgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1fdmlkZW9MYXllcklEOwogfTsKICAgICAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNz
YWdlcy5pbgppbmRleCAwNmQxNTcyYzZkYjAwMGY4NjkzNDYzNTUyMjg5OTViNDMwN2YwYTcxLi5m
MDdkM2UwOWU1ZjViZDUyOTgwMzJlZDM2NDBjNmQ1YzBlMTcyZmVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjQsNyArMjQsNyBAQAogI2lmIFBM
QVRGT1JNKElPUykKIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSB7
CiAgICAgU2V0Q3VycmVudFRpbWUoZG91YmxlIGN1cnJlbnRUaW1lLCBkb3VibGUgaG9zdFRpbWUp
Ci0gICAgU2V0VmlkZW9MYXllcklEKHVpbnQzMl90IHZpZGVvTGF5ZXJJRCkKKyAgICBTZXRWaWRl
b0xheWVySUQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHZpZGVvTGF5
ZXJJRCkKICAgICBTZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgdW5zaWduZWQgd2lk
dGgsIHVuc2lnbmVkIGhlaWdodCkKICAgICBTZXREdXJhdGlvbihkb3VibGUgZHVyYXRpb24pCiAg
ICAgU2V0UmF0ZShib29sIGlzUGxheWluZywgZG91YmxlIHJhdGUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjg2MjI2NzE3OTk1ODY4M2Zj
N2Q4YWE3Njg1MDQxMDM3MDU2ZTZlMS4uZDY1ZDU5Y2FiZjA4NjM3OTUzODI5ODk2MDUxNTBiNDU0
YjRhYWFlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlBsdWdpblByb3h5LmgiCiAjaW5jbHVk
ZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlByaW50SW5mby5oIgorI2luY2x1ZGUgIlJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCiAjaW5j
bHVkZSAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCkBA
IC0yNjA5LDYgKzI2MTAsMjEgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25z
dCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dXBk
YXRlUHJlZmVyZW5jZXMoc3RvcmUpOwogfQogCit2b2lkIFdlYlBhZ2U6OndpbGxDb21taXRMYXll
clRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJhbnNhY3Rpb24pCit7Cisg
ICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRDb250ZW50c1NpemUoY29yZVBhZ2UoKS0+bWFpbkZyYW1l
KCkudmlldygpLT5jb250ZW50c1NpemUoKSk7CisgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRQYWdl
U2NhbGVGYWN0b3IoY29yZVBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0UmVuZGVyVHJlZVNpemUoY29yZVBhZ2UoKS0+cmVuZGVyVHJlZVNpemUoKSk7
CisjaWYgUExBVEZPUk0oSU9TKQorICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWluaW11bVNjYWxl
RmFjdG9yKG1pbmltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgbGF5ZXJUcmFuc2FjdGlvbi5z
ZXRNYXhpbXVtU2NhbGVGYWN0b3IobWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBsYXll
clRyYW5zYWN0aW9uLnNldEFsbG93c1VzZXJTY2FsaW5nKGFsbG93c1VzZXJTY2FsaW5nKCkpOwor
ICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbk1hbmFnZXIpCisgICAgICAgIG1fdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci0+d2lsbENvbW1pdExheWVyVHJlZShsYXllclRyYW5zYWN0aW9uKTsKKyNlbmRp
ZgorfQorCisgICAgCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIFdlYkluc3BlY3RvciogV2ViUGFn
ZTo6aW5zcGVjdG9yKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDUwNWYyN2M1Mzc4MjViNDQ0ZGFkZTk1YzVjOTk3YzE4YWZiMmJmZDEuLjgw
NGNhMjg3MDAyZmRlMDFjOGYyOTUwNWMxMWE0NzBkZDg4YzM3NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQyLDYgKzE0Miw3IEBAIGNsYXNz
IE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcjsKIGNsYXNzIFBhZ2VCYW5uZXI7
CiBjbGFzcyBQYWdlT3ZlcmxheTsKIGNsYXNzIFBsdWdpblZpZXc7CitjbGFzcyBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjsKIGNsYXNzIFNlc3Npb25TdGF0ZTsKIGNsYXNzIFdlYkNvbG9yQ2hv
b3NlcjsKIGNsYXNzIFdlYkNvbnRleHRNZW51OwpAQCAtMjA3LDYgKzIwOCw4IEBAIHB1YmxpYzoK
ICAgICBib29sIHNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Ny
b2xsR3JhbnVsYXJpdHkpOwogCiAgICAgdm9pZCBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVh
KCk7CisgICAgCisgICAgdm9pZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uJik7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIFdlYkluc3BlY3Rvciog
aW5zcGVjdG9yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCmluZGV4
IGRlZWM5ZjRjNTNiYjgxNTliNTc5ZGUyNjBhNGYwZTI5MmZjYTFiMGEuLjdiZjk3NDA4MzA0N2Qy
M2RjODcxOGU3OTIxZTc4ZmNiMGJiMDEwODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLm1tCkBAIC0zOSw2ICszOSw3IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKK3N0YXRpYyBOU1N0cmluZyAqIGNvbnN0IHBsYXRm
b3JtQ0FMYXllclBvaW50ZXIgPSBAIldLUGxhdGZvcm1DQUxheWVyIjsKIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIq
IGN1c3RvbUxheWVyLCBQbGF0Zm9ybUNBTGF5ZXJDbGllbnQqIG93bmVyLCBSZW1vdGVMYXllclRy
ZWVDb250ZXh0KiBjb250ZXh0KQogICAgIDogUGxhdGZvcm1DQUxheWVyUmVtb3RlKExheWVyVHlw
ZUN1c3RvbSwgb3duZXIsIGNvbnRleHQpCiB7CkBAIC01NCw2ICs1NSw3IEBAIFBsYXRmb3JtQ0FM
YXllclJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5
ZXIqIGN1c3RvbUxhCiAgICAgfQogCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290
TGF5ZXIoY3VzdG9tTGF5ZXIpOworICAgIFtjdXN0b21MYXllciBzZXRWYWx1ZTpbTlNWYWx1ZSB2
YWx1ZVdpdGhQb2ludGVyOnRoaXNdIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyXTsKIAog
ICAgIG1fcGxhdGZvcm1MYXllciA9IGN1c3RvbUxheWVyOwogICAgIFtjdXN0b21MYXllciB3ZWJf
ZGlzYWJsZUFsbEFjdGlvbnNdOwpAQCAtNjMsNiArNjUsNyBAQCBQbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b206OlBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbShQbGF0Zm9ybUxheWVyKiBjdXN0
b21MYQogCiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206On5QbGF0Zm9ybUNBTGF5ZXJSZW1v
dGVDdXN0b20oKQogeworICAgIFttX3BsYXRmb3JtTGF5ZXIgc2V0VmFsdWU6W05TVmFsdWUgdmFs
dWVXaXRoUG9pbnRlcjpuaWxdIGZvcktleTpwbGF0Zm9ybUNBTGF5ZXJQb2ludGVyXTsKIH0KIAog
dWludDMyX3QgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpob3N0aW5nQ29udGV4dElEKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IDI2MWJiZmJkZDIzZDMx
MTk2ZDI4OWZkZDhkMDcwZWQ4YmYwYWIyM2QuLjg1Nzk4MGZjMjdmYTE3ZjEzODY2ZTM0OTIwYzAx
YjY2YTMyMjc0NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQpAQCAt
MzIxLDE0ICszMjEsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExh
eWVycygpCiAgICAgLy8gRklYTUU6IG1pbml6ZSB0aGVzZSB0cmFuc2FjdGlvbnMgaWYgbm90aGlu
ZyBjaGFuZ2VkLgogICAgIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uIGxheWVyVHJhbnNhY3Rp
b247CiAgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5idWlsZFRyYW5zYWN0aW9uKGxheWVy
VHJhbnNhY3Rpb24sICptX3Jvb3RMYXllcik7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRDb250
ZW50c1NpemUobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRl
bnRzU2l6ZSgpKTsKLSAgICBsYXllclRyYW5zYWN0aW9uLnNldFBhZ2VTY2FsZUZhY3RvcihtX3dl
YlBhZ2UtPmNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBsYXllclRyYW5zYWN0
aW9uLnNldFJlbmRlclRyZWVTaXplKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cmVuZGVyVHJlZVNp
emUoKSk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWluaW11
bVNjYWxlRmFjdG9yKG1fd2ViUGFnZS0+bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBs
YXllclRyYW5zYWN0aW9uLnNldE1heGltdW1TY2FsZUZhY3RvcihtX3dlYlBhZ2UtPm1heGltdW1Q
YWdlU2NhbGVGYWN0b3IoKSk7Ci0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRBbGxvd3NVc2VyU2Nh
bGluZyhtX3dlYlBhZ2UtPmFsbG93c1VzZXJTY2FsaW5nKCkpOwotI2VuZGlmCisgICAgbV93ZWJQ
YWdlLT53aWxsQ29tbWl0TGF5ZXJUcmVlKGxheWVyVHJhbnNhY3Rpb24pOwogCiAgICAgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuc2FjdGlvbiBzY3JvbGxpbmdUcmFuc2FjdGlvbjsKICNp
ZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAppbmRleCBmZGVk
ZjFhYjVkYTIwMWJmZmViZjU3OGExM2Y5MTZkOWYwNDIyMDlmLi5hNWNmNDUzMGI1NmZmM2U2MWIy
M2NiZWQwZTJkYmNjMWYzYjM5ZjE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcApAQCAtMjcsNiAr
MjcsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24uaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgpAQCAt
MzUsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSFRNTFZpZGVvRWxlbWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKyNpbmNsdWRlIDxXZWJjb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtNDcsNiArNDksNyBAQCBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmNyZWF0ZShQYXNzUmVmUAog
CiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKFBh
c3NSZWZQdHI8V2ViUGFnZT4gcGFnZSkKICAgICA6IG1fcGFnZShwYWdlLmdldCgpKQorICAgICwg
bV9zZW5kVW5wYXJlbnRWaWRlb0xheWVyVHJhbnNhY3Rpb24oZmFsc2UpCiB7CiAgICAgc2V0V2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlKHRoaXMpOwogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgp
LmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBwYWdlLT5wYWdlSUQoKSwgKnRoaXMpOwpAQCAtNTcsNiAr
NjAsMTQgQEAgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6fldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoKQogICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGlvbikKK3sKKyAgICBpZiAobV9zZW5kVW5wYXJlbnRWaWRlb0xheWVyVHJhbnNhY3Rpb24pIHsK
KyAgICAgICAgdHJhbnNhY3Rpb24uYWRkVmlkZW9MYXllcklEUGVuZGluZ0Z1bGxzY3JlZW4obV9w
bGF0Zm9ybUNBTGF5ZXItPmxheWVySUQoKSk7CisgICAgICAgIG1fc2VuZFVucGFyZW50VmlkZW9M
YXllclRyYW5zYWN0aW9uID0gZmFsc2U7CisgICAgfQorfQorICAgIAogYm9vbCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3QgTm9kZSogbm9kZSkgY29u
c3QKIHsKICAgICBpZiAoIVNldHRpbmdzOjphdktpdEVuYWJsZWQoKSkKQEAgLTk4LDE1ICsxMDks
MTIgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0RpbWVuc2lvbnMo
Ym9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGYKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0VmlkZW9EaW1lbnNpb25zKGhhc1Zp
ZGVvLCB3aWR0aCwgaGVpZ2h0KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAgICAgCi12b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXll
ciogdmlkZW9MYXllcikKIHsKLSAgICAvLyBUT0RPOiBpbXBsZW1lbnQgd2l0aCBjb3JyZWN0IGxh
eWVyIElELgotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpTZXRWaWRlb0xheWVySUQoMCksIG1fcGFnZS0+cGFnZUlEKCkpOwotfQorICAg
IG1fcGxhdGZvcm1DQUxheWVyID0gUGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIodmlk
ZW9MYXllcik7CisgICAgbV9zZW5kVW5wYXJlbnRWaWRlb0xheWVyVHJhbnNhY3Rpb24gPSAhIW1f
cGxhdGZvcm1DQUxheWVyOwogICAgIAotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpz
ZXRWaWRlb0xheWVySUQodWludDMyX3QgdmlkZW9MYXllcklEKQotewotICAgIG1fcGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0xheWVy
SUQodmlkZW9MYXllcklEKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAgbV9wYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRCht
X3BsYXRmb3JtQ0FMYXllciA/IG1fcGxhdGZvcm1DQUxheWVyLT5sYXllcklEKCkgOiAwKSwgbV9w
YWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZW50
ZXJGdWxsc2NyZWVuKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCBlNTM3Yzk5NjUzNjAwNGYyZjMw
ZjFkZjFjNjdiZjEyMTZhMzU5YjAwLi44ZTNiOGEzZDc2NzRmMjQ2ZWFlMjM2ZGM2MjBkNjRlNWFh
YTNlNDkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0yOSw2ICsyOSw3IEBACiAKICNpbmNsdWRl
ICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TGlzdGVuZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkBAIC00Nyw2ICs0OCw3IEBAIGNsYXNzIE5vZGU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
Y2xhc3MgV2ViUGFnZTsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCiBjbGFz
cyBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LCBwdWJsaWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLCBwcml2YXRlIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKQEAg
LTU1LDYgKzU3LDggQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uKiwgSVBDOjpNZXNzYWdlRGVjb2RlciYpOwogICAgIAorICAgIHZvaWQg
d2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpOworCiAgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxzY3JlZW4oY29uc3QgV2ViQ29yZTo6Tm9kZSopIGNvbnN0OwogICAg
IHZvaWQgZW50ZXJGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CiAgICAgdm9pZCBl
eGl0RnVsbHNjcmVlbkZvck5vZGUoV2ViQ29yZTo6Tm9kZSopOwpAQCAtNjgsMTIgKzcyLDEzIEBA
IHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmF0ZShib29sIGlzUGxheWluZywgZmxv
YXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1l
bnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgV2ViUGFnZSogbV9w
YWdlOwogICAgIFJlZlB0cjxXZWJDb3JlOjpOb2RlPiBtX25vZGU7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlBsYXRmb3JtQ0FMYXllcj4gbV9wbGF0Zm9ybUNBTGF5ZXI7CisgICAgYm9vbCBtX3NlbmRV
bnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbjsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224889</attachid>
            <date>2014-02-21 12:17:29 -0800</date>
            <delta_ts>2014-02-24 12:23:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128564-20140221121728.patch</filename>
            <type>text/plain</type>
            <size>28628</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFhZTZmMGNlZjBlOGUy
MzQ2OGVmYTBiMjNjMTNlZTBmZDhlNGE0Ny4uYTgwYTU3MzM5ODZjOWFjODMxYTA4OWY0MGNkMDlk
YTgxNjAzOGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAyLTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNj
cmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBFeHBvcnQgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICBSZW1v
dmUgU2V0VmlkZW9MYXllcklEKCkuIAorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICBXcmFwIG1ha2UgdmlkZW8g
bGF5ZXIgbG9vayBsaWtlIGFuIEFWQVZQbGF5ZXJMYXllciB3aXRoIFdlYkFWUGxheWVyTGF5ZXIK
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSB2aWRlb0xheWVyIGJlZm9y
ZSBib3Jyb3dpbmcgaXQgc28gdGhlIGludGVyZmFjZSB3aWxsIGJlIHJlYWR5IHRvCisgICAgICAg
IGNhdGNoIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHJlbW92ZXMgaXQuCisKIDIwMTQtMDItMTcgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBm
YXN0IG1hcHBpbmcgZnJvbSBTdHJpbmdJbXBsIHRvIEpTU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDVj
OTI3NDc1ZGMxYTI4MGJkOWZlODlkNjhkNWVkZGJjZDIyYWI5Zi4uYjIyMDQxZTc4MmEwODAyODYw
YzdjNjA5NDFmYjU0ZDU0ZDljMWQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0
LTAyLTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIg
QVZLaXQgZnVsbHNjcmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjppc1ZpZGVvTGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmFkZFZpZGVvTGF5ZXJJRFBl
bmRpbmdGdWxsc2NyZWVuKToKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpkZWNvZGUpOgorICAgICAgICBFbmNvZGUgYW5kIGRlY29kZSBtX3ZpZGVvTGF5
ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExh
eWVyVHJlZSk6CisgICAgICAgIExldCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgc2Vl
IHRoZSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUpOgorICAg
ICAgICBMb29rIGZvciB2aWRlbyBsYXllciBwZW5kaW5nIGZ1bGxzY3JlZW4gb24gdGhlIHRyYW5z
YWN0aW9uIHRvIGluaXRpYXRlCisgICAgICAgIGZ1bGxzY3JlZW4uCisKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVySUQpOgorICAg
ICAgICBTdGFydCBsb29raW5nIGZvciB0aGUgdmlkZW8gbGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVu
IGluIHRoZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIE92ZXJyaWRlIHRvIHBy
ZXZlbnQgZnVsbHNjcmVlbiBmcm9tIGhhcHBlbmluZyBiZWZvcmUgdGhlIGxheWVyCisgICAgICAg
IGlzIHBlbmRpbmcgZnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3MgYSBt
b3JlIHNwZWNpZmljIHZpZGVvTGF5ZXJJRCBpbiBTZXRWaWRlb0xheWVySUQsCisgICAgICAgIGku
ZS4gV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgTW92ZSB3ZWJQYWdlIHNwZWNpZmljIHRy
YW5zYWN0aW9uIGJ1aWxkaW5nIGhlcmUsIGluY2x1ZGluZywKKyAgICAgICAgZ2l2aW5nIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIgYSBjaGFuY2UgdG8gbW9kaWZ5IHRoZSB0cmFuc2FjdGlvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIEFkZCB3
aWxsQ29tbWl0TGF5ZXJUcmVlKCk7CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIE1ha2UgYW5kIGJyZWFrIHRoZSBjb25uZWN0aW9uIGZyb20gQ0FMYXllciB0byBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20sCisgICAgICAgIHRoZSBzYW1lIHdheSBpdCBpcyBk
b25lIGZvciBQbGF0Zm9ybUNBTGF5ZXJNYWMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICBNb3ZlIFdl
YlBhZ2Ugc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRpbmcgaW50byBXZWJQYWdlOjp3aWxsQ29t
bWl0TGF5ZXJUcmVlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OndpbGxDb21taXRMYXllclRyZWUpOgorICAgICAgICBhZGRWaWRlb0xheWVySURQZW5kaW5n
RnVsbHNjcmVlbiBvbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB3aGVuIG5lZWRlZC4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVy
KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgdmlkZW8gbGF5ZXJJRC4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHdp
bGxDb21taXRMYXllclRyZWUoKSBhbmQgcmVtb3ZlIHNldFZpZGVvTGF5ZXJJRCgpLgorICAgICAg
ICBBZGQgYSBtZW1iZXIgdG8gcmV0YWluIHRoZSB1bnBhcmVudGVkIFBsYXRmb3JtQ0FMYXllci4K
KwogMjAxNC0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDbGVhbiB1cCBXS0NvbnRlbnRWaWV3IGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDUxOWIxZTNjNjAyMTg2NWU2NDRhOGI0Nzk3OWJjNDRhNTliM2RjMTkuLjBh
NDEwZmM5YjNkOTQ0NzBmZjE5MTBiZTM5OGE0MTZhOGZhMWNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC01ODgsNiArNTg4LDcgQEAgX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb25EMUV2
CiBfX1pON1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZThjb21tb25WTUV2CiBfX1pON1dlYkNvcmUx
NVBhc3RlYm9hcmRJbWFnZUMxRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlRDFFdgor
X19aTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXIxNXBsYXRmb3JtQ0FMYXllckVQdgogX19aTjdX
ZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJDMkVOUzBfOUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNB
TGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckQyRXYKIF9fWk43V2Vi
Q29yZTE1UHJvdGVjdGlvblNwYWNlQzFFUktOM1dURjZTdHJpbmdFaU5TXzI1UHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZUVTNF9OU18zNVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZS5oCmluZGV4IGQ2NDE1ZmU2NDkzMTkxZTEwZjEyYmYyZTZlYjhjM2U0
MzBiZjUwODYuLjU4M2QyYjI5OTlhZmMxOGQwNDE2OGMwZjkzNzhiODUyOGI0NmUyZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0
Zm9ybUxheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMy
X3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGY0ZTZjMWZiNmI4Y2NlOWQ0NzZjMDQxMDFiOTE1OGU5ZmUwYzE4YjAuLjBm
MjgwMmNlNjk1NjM0YjE0M2YyZjEzYzE3MmZmZGU2ZTgwODE3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhdGUo
Ym9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGUgeyB9Owog
ICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
bW0KaW5kZXggMDhmNWQ4ZGM4NTczZjg4MTcxODEyNWQzYTYxODJkNzYwZjc1ZGQ5Ny4uYzhlYTk0
MjY2ZmMyMmUwODQ0YjgxY2ViZGE2MDZkOWZjNGQyYjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQpAQCAtNjgsNiArNjgsOSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVH
ZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAZW5kCiAKIEBwcm90
b2NvbCBBVlBsYXllckxheWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcg
KnZpZGVvR3Jhdml0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyID0g
aXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlkZW9SZWN0OwogQGVuZAogCiBAaW50ZXJmYWNlIEFW
UGxheWVyQ29udHJvbGxlciA6IFVJUmVzcG9uZGVyCkBAIC0yMDIsNiArMjA1LDIwIEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIEFWUGxheWVyQ29udHJvbGxlclN0YXR1cykgewogCiBAZW5k
CiAKK0BpbnRlcmZhY2UgV2ViQVZQbGF5ZXJMYXllciA6IENBTGF5ZXIgPEFWUGxheWVyTGF5ZXI+
CisrKFdlYkFWUGxheWVyTGF5ZXIgKilwbGF5ZXJMYXllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9taWMsIGdl
dHRlciA9IGlzUmVhZHlGb3JEaXNwbGF5KSBCT09MIHJlYWR5Rm9yRGlzcGxheTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V2ViQVZQbGF5ZXJMYXllcgorKyhXZWJBVlBsYXllckxheWVyICopcGxheWVyTGF5ZXIKK3sKKyAg
ICByZXR1cm4gW1tbV2ViQVZQbGF5ZXJMYXllciBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwor
fQorQGVuZAorCiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQoKQogICAgIDogbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxs
cHRyKQogewpAQCAtMjc4LDEwICsyOTUsMTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQogewog
ICAgIFtwbGF5ZXJDb250cm9sbGVyKCkucGxheWVyTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJd
OwogICAgIFt2aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICBBU1NFUlQoIXZp
ZGVvTGF5ZXIKLSAgICAgICAgfHwgW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZDbGFzczpbY2xhc3NBVlBs
YXllckxheWVyIGNsYXNzXV0KLSAgICAgICAgfHwgKFt2aWRlb0xheWVyIGlzS2luZE9mQ2xhc3M6
W0NBTGF5ZXIgY2xhc3NdXSAmJiBbdmlkZW9MYXllciBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3Rv
Y29sKEFWUGxheWVyTGF5ZXIpXSkpOwotICAgIHBsYXllckNvbnRyb2xsZXIoKS5wbGF5ZXJMYXll
ciA9IChDQUxheWVyPEFWUGxheWVyTGF5ZXI+Kil2aWRlb0xheWVyOworICAgIAorICAgIENBTGF5
ZXI8QVZQbGF5ZXJMYXllcj4gKmF2UGxheWVyTGF5ZXIgPSBuaWw7CisgICAgCisgICAgLy8gV2Vi
S2l0IHByb3ZpZGVzIGEgQVZQbGF5ZXJMYXllci4gV2ViS2l0MiBwcm92aWVzIGEgaG9zdGVkIGxh
eWVyLgorICAgIGlmIChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOltjbGFzc0FWUGxheWVyTGF5
ZXIgY2xhc3NdXSkKKyAgICAgICAgYXZQbGF5ZXJMYXllciA9IChDQUxheWVyPEFWUGxheWVyTGF5
ZXI+Kil2aWRlb0xheWVyOworICAgIGVsc2UgaWYgKHZpZGVvTGF5ZXIpIHsKKyAgICAgICAgQVNT
RVJUKFt2aWRlb0xheWVyIGlzS2luZE9mQ2xhc3M6W0NBTGF5ZXIgY2xhc3NdXSk7CisgICAgICAg
IGF2UGxheWVyTGF5ZXIgPSBbV2ViQVZQbGF5ZXJMYXllciBwbGF5ZXJMYXllcl07CisgICAgICAg
IFthdlBsYXllckxheWVyIGFkZFN1YmxheWVyOnZpZGVvTGF5ZXJdOworICAgIH0KKworICAgIG1f
cGxheWVyQ29udHJvbGxlci5nZXQoKS5wbGF5ZXJMYXllciA9IGF2UGxheWVyTGF5ZXI7CiB9CiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbldp
dGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBjZjg1ZjBmMmVlMzMyNjVjMjU2
YWE1ODJlOTNiZTcyM2UzYTk4NmVjLi41YWJkZTU3MTk2OWQyZjUxMDc3NDdiYjJlYjhlZjUzNTEy
Y2FmNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC05NCw4ICs5
NCw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlh
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UtPnNldER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKTsKICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZShtX21lZGlhRWxlbWVudC0+aXNQbGF5aW5n
KCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7CiAKKyAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0VmlkZW9MYXllcihtX21lZGlhRWxlbWVudC0+cGxhdGZvcm1MYXll
cigpKTsKKwogICAgIG1fYm9ycm93ZWRWaWRlb0xheWVyID0gbV9tZWRpYUVsZW1lbnQtPmJvcnJv
d1BsYXRmb3JtTGF5ZXIoKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Vmlk
ZW9MYXllcihtX2JvcnJvd2VkVmlkZW9MYXllci5nZXQoKSk7CiAKICAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0Q3VycmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1l
KCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24uaAppbmRleCA0NDU1MGVjY2IzM2NmMWY3NDdhM2RkZGI3YzI4YjdmY2QyMDY4OWRiLi4yMTU1
YjRkNzk2ZWUzZTI1OThkZjFkODI4MGQyMGI5NzYzOWEwNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBAIC0x
NzIsNiArMTcyLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBhbGxvd3NVc2VyU2NhbGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dzVXNlclNjYWxpbmc7IH0KICAgICB2b2lkIHNldEFsbG93c1Vz
ZXJTY2FsaW5nKGJvb2wgYWxsb3dzVXNlclNjYWxpbmcpIHsgbV9hbGxvd3NVc2VyU2NhbGluZyA9
IGFsbG93c1VzZXJTY2FsaW5nOyB9CisgICAgCisgICAgYm9vbCBpc1ZpZGVvTGF5ZXJJRFBlbmRp
bmdGdWxsc2NyZWVuKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklEKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvTGF5ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbi5jb250
YWlucyhsYXllcklEKTsgfQorICAgIHZvaWQgYWRkVmlkZW9MYXllcklEUGVuZGluZ0Z1bGxzY3Jl
ZW4oV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQpIHsgbV92
aWRlb0xheWVySURzUGVuZGluZ0Z1bGxzY3JlZW4uYXBwZW5kKGxheWVySUQpOyB9CiAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1fcm9vdExh
eWVySUQ7CkBAIC0xODQsNiArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9taW5pbXVt
U2NhbGVGYWN0b3I7CiAgICAgZG91YmxlIG1fbWF4aW11bVNjYWxlRmFjdG9yOwogICAgIGJvb2wg
bV9hbGxvd3NVc2VyU2NhbGluZzsKKyAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklEPiBtX3ZpZGVvTGF5ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggNTEyYzQwZmUxOTQwNDQx
MGZmNjMyYjlkY2M2ZDU1ZTYxMDBhOTcwMy4uZDc1MWVhMDEwMGUxMjY3MmYzNGRiMDZkNjY4Y2Nj
ZTY4YjBjOGZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC0zNTQsNiArMzU0LDcgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5j
b2RlciA8PCBtX2FsbG93c1VzZXJTY2FsaW5nOwogICAgIGVuY29kZXIgPDwgbV9yZW5kZXJUcmVl
U2l6ZTsKKyAgICBlbmNvZGVyIDw8IG1fdmlkZW9MYXllcklEc1BlbmRpbmdGdWxsc2NyZWVuOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiByZXN1bHQpCkBA
IC0zOTQsNiArMzk1LDkgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXkKICAgICAKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3JlbmRlclRyZWVTaXplKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdmlkZW9MYXll
cklEc1BlbmRpbmdGdWxsc2NyZWVuKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCmluZGV4IDAwNjM4YTRhZDcyZWMyOGY3YjZlOGY4MTM3MDlkMmU2MzllYWYxYTgu
LjlkNTg3ZTU2Njg0YTk2MGNmZTFlMTQ5ZDI0YjY5NDczYzNhMDJhZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0zMiw5ICszMiwx
MCBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVXNlckFnZW50Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMzcsNiArMjM4LDggQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFMKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24pCiB7
CiAgICAgbV9wYWdlQ2xpZW50LmRpZENvbW1pdExheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlv
bik7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLT5kaWRDb21taXRMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24p
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwg
dWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgUGFzc1JlZlB0cjxH
ZXN0dXJlQ2FsbGJhY2s+IGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmlu
ZGV4IGE5MmRmMjhmOGNjODFmMGM3N2I5MmNhMzc2Mzg5YjhhZThlZDI3ZWMuLjE2Njc5NzRmNTU3
YWM5ZjQwMDI3MmI4Y2ViZTMyYjc1YWZiOGRkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5jcHAKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNs
dWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTQ0LDYgKzQ3LDgg
QEAgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXQKIAogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQog
ICAgIDogbV9wYWdlKCZwYWdlKQorICAgICwgbV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5
ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24oZmFsc2UpCisgICAgLCBtX3ZpZGVvTGF5ZXJJRCgwKQog
ewogICAgIG1fcGFnZS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFn
ZS0+cGFnZUlEKCksICp0aGlzKTsKICAgICBzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCh0aGlz
KTsKQEAgLTU0LDEyICs1OSwyNiBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKQogICAgIG1fcGFnZS0+cHJvY2VzcygpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCi12b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKHVpbnQzMl90
IHZpZGVvTGF5ZXJJRCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRD
b21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJl
ZVRyYW5zYWN0aW9uKQogewotICAgIC8vIFRPRE86IGZpbmQgYSByZWFsIHZpZGVvIGxheWVyIG9y
IG1ha2Ugb25lIHRoYXQgbWVldHMgdGhlIG5lY2Vzc2FyeSByZXF1aXJlbWVudHMuCi0gICAgc2V0
VmlkZW9MYXllcihudWxscHRyKTsKKyAgICBpZiAobV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVv
TGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24gJiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uaXNWaWRl
b0xheWVySURQZW5kaW5nRnVsbHNjcmVlbihtX3ZpZGVvTGF5ZXJJRCkpIHsKKyAgICAgICAgbV9l
bnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24gPSBmYWxz
ZTsKKyAgICAgICAgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVu
dGVyRnVsbHNjcmVlbigpOworICAgIH0KIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRChHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
dmlkZW9MYXllcklEKQoreworICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqIHJl
bW90ZURyYXdpbmdBcmVhUHJveHkgPSB0b1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHko
bV9wYWdlLT5kcmF3aW5nQXJlYSgpKTsKKyAgICBzZXRWaWRlb0xheWVyKHJlbW90ZURyYXdpbmdB
cmVhUHJveHktPnJlbW90ZUxheWVyVHJlZUhvc3QoKS5nZXRMYXllcih2aWRlb0xheWVySUQpKTsK
KyAgICBtX3ZpZGVvTGF5ZXJJRCA9IHZpZGVvTGF5ZXJJRDsKKyAgICBtX2VudGVyRnVsbHNjcmVl
bkFmdGVyVmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IHRydWU7Cit9CisKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4oKQoreworfQor
ICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBhZjFkMTg1Y2VmOTA2MmIzNzRkNjkyZGUwMzcz
NDYxNWJmNWIwODdmLi5mNjM3OWVmYmRlNzQ0YTQ5NmUwY2NkOTI1MzMxYTRjODA2MTI2ZTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9S
TShJT1MpCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zOCwxNyArMzksMjEgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjsKIAogY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
IDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LCBwdWJs
aWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwsIHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgfldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpOwogCisgICAgdm9pZCBkaWRDb21taXRMYXll
clRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKKyAgICAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24q
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9MYXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CisgICAg
dmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcGxheSgpIG92ZXJyaWRlOwpAQCAtNTgsNiArNjMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5
KiBtX3BhZ2U7CisgICAgYm9vbCBtX2VudGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9MYXllclVucGFy
ZW50ZWRUcmFuc2FjdGlvbjsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQgbV92aWRlb0xheWVySUQ7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA2ZDE1NzJj
NmRiMDAwZjg2OTM0NjM1NTIyODk5NWI0MzA3ZjBhNzEuLmYwN2QzZTA5ZTVmNWJkNTI5ODAzMmVk
MzY0MGM2ZDVjMGUxNzJmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogbWVzc2FnZXMg
LT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRDdXJyZW50VGltZShk
b3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBob3N0VGltZSkKLSAgICBTZXRWaWRlb0xheWVySUQo
dWludDMyX3QgdmlkZW9MYXllcklEKQorICAgIFNldFZpZGVvTGF5ZXJJRChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgdmlkZW9MYXllcklEKQogICAgIFNldFZpZGVvRGlt
ZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQog
ICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5
aW5nLCBkb3VibGUgcmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBiODYyMjY3MTc5OTU4NjgzZmM3ZDhhYTc2ODUwNDEwMzcwNTZlNmUx
Li5kNjVkNTljYWJmMDg2Mzc5NTM4Mjk4OTYwNTE1MGI0NTRiNGFhYWVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00OSw2ICs0OSw3IEBA
CiAjaW5jbHVkZSAiUGx1Z2luUHJveHkuaCIKICNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5j
bHVkZSAiUHJpbnRJbmZvLmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24u
aCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAu
aCIKICNpbmNsdWRlICJXS1NoYXJlZEFQSUNhc3QuaCIKQEAgLTI2MDksNiArMjYxMCwyMSBAQCB2
b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUm
IHN0b3JlKQogICAgICAgICBtX2RyYXdpbmdBcmVhLT51cGRhdGVQcmVmZXJlbmNlcyhzdG9yZSk7
CiB9CiAKK3ZvaWQgV2ViUGFnZTo6d2lsbENvbW1pdExheWVyVHJlZShSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbiYgbGF5ZXJUcmFuc2FjdGlvbikKK3sKKyAgICBsYXllclRyYW5zYWN0aW9uLnNl
dENvbnRlbnRzU2l6ZShjb3JlUGFnZSgpLT5tYWluRnJhbWUoKS52aWV3KCktPmNvbnRlbnRzU2l6
ZSgpKTsKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldFBhZ2VTY2FsZUZhY3Rvcihjb3JlUGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRSZW5kZXJUcmVl
U2l6ZShjb3JlUGFnZSgpLT5yZW5kZXJUcmVlU2l6ZSgpKTsKKyNpZiBQTEFURk9STShJT1MpCisg
ICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRNaW5pbXVtU2NhbGVGYWN0b3IobWluaW11bVBhZ2VTY2Fs
ZUZhY3RvcigpKTsKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldE1heGltdW1TY2FsZUZhY3Rvciht
YXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0QWxsb3dz
VXNlclNjYWxpbmcoYWxsb3dzVXNlclNjYWxpbmcoKSk7CisgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLT53aWxsQ29tbWl0
TGF5ZXJUcmVlKGxheWVyVHJhbnNhY3Rpb24pOworI2VuZGlmCit9CisKKyAgICAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogV2ViSW5zcGVjdG9yKiBXZWJQYWdlOjppbnNwZWN0b3IoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggNTA1ZjI3YzUz
NzgyNWI0NDRkYWRlOTVjNWM5OTdjMThhZmIyYmZkMS4uODA0Y2EyODcwMDJmZGUwMWM4ZjI5NTA1
YzExYTQ3MGRkODhjMzc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCkBAIC0xNDIsNiArMTQyLDcgQEAgY2xhc3MgTm90aWZpY2F0aW9uUGVybWlzc2lv
blJlcXVlc3RNYW5hZ2VyOwogY2xhc3MgUGFnZUJhbm5lcjsKIGNsYXNzIFBhZ2VPdmVybGF5Owog
Y2xhc3MgUGx1Z2luVmlldzsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xh
c3MgU2Vzc2lvblN0YXRlOwogY2xhc3MgV2ViQ29sb3JDaG9vc2VyOwogY2xhc3MgV2ViQ29udGV4
dE1lbnU7CkBAIC0yMDcsNiArMjA4LDggQEAgcHVibGljOgogICAgIGJvb2wgc2Nyb2xsQnkodWlu
dDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSk7CiAKICAg
ICB2b2lkIGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICAKKyAgICB2b2lkIHdp
bGxDb21taXRMYXllclRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKIAogI2lmIEVO
QUJMRShJTlNQRUNUT1IpCiAgICAgV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggZGVlYzlmNGM1M2JiODE1OWI1Nzlk
ZTI2MGE0ZjBlMjkyZmNhMWIwYS4uOWRiODc0Y2JjYmJkOTEwNmQ2Yzk1NTAyNjg2YThkZjVlMDQx
NzQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KQEAgLTM5LDYg
KzM5LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIAorc3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1DQUxheWVyUG9pbnRlciA9IEAi
V0tQbGF0Zm9ybUNBTGF5ZXIiOwogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBsYXRmb3Jt
Q0FMYXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAg
ICAgOiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlQ3VzdG9tLCBvd25lciwgY29udGV4
dCkKIHsKQEAgLTU0LDYgKzU1LDcgQEAgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGEKICAgICB9CiAK
ICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihjdXN0b21MYXllcik7Cisg
ICAgW2N1c3RvbUxheWVyIHNldFZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aFBvaW50ZXI6dGhpc10g
Zm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOwogCiAgICAgbV9wbGF0Zm9ybUxheWVyID0g
Y3VzdG9tTGF5ZXI7CiAgICAgW2N1c3RvbUxheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CkBA
IC02Myw2ICs2NSw3IEBAIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxh
eWVyUmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxhCiAKIFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSgpCiB7CisgICAgW21f
cGxhdGZvcm1MYXllciBzZXRWYWx1ZTpuaWwgZm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJd
OwogfQogCiB1aW50MzJfdCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206Omhvc3RpbmdDb250
ZXh0SUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMjYxYmJm
YmRkMjNkMzExOTZkMjg5ZmRkOGQwNzBlZDhiZjBhYjIzZC4uODU3OTgwZmMyN2ZhMTdmMTM4NjZl
MzQ5MjBjMDFiNjZhMzIyNzQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tCkBAIC0zMjEsMTQgKzMyMSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmZsdXNoTGF5ZXJzKCkKICAgICAvLyBGSVhNRTogbWluaXplIHRoZXNlIHRyYW5zYWN0aW9ucyBp
ZiBub3RoaW5nIGNoYW5nZWQuCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24gbGF5ZXJU
cmFuc2FjdGlvbjsKICAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPmJ1aWxkVHJhbnNhY3Rp
b24obGF5ZXJUcmFuc2FjdGlvbiwgKm1fcm9vdExheWVyKTsKLSAgICBsYXllclRyYW5zYWN0aW9u
LnNldENvbnRlbnRzU2l6ZShtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXco
KS0+Y29udGVudHNTaXplKCkpOwotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFj
dG9yKG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwotICAgIGxheWVy
VHJhbnNhY3Rpb24uc2V0UmVuZGVyVHJlZVNpemUobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5yZW5k
ZXJUcmVlU2l6ZSgpKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgbGF5ZXJUcmFuc2FjdGlvbi5z
ZXRNaW5pbXVtU2NhbGVGYWN0b3IobV93ZWJQYWdlLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkp
OwotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWF4aW11bVNjYWxlRmFjdG9yKG1fd2ViUGFnZS0+
bWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBsYXllclRyYW5zYWN0aW9uLnNldEFsbG93
c1VzZXJTY2FsaW5nKG1fd2ViUGFnZS0+YWxsb3dzVXNlclNjYWxpbmcoKSk7Ci0jZW5kaWYKKyAg
ICBtX3dlYlBhZ2UtPndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAKICAg
ICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uIHNjcm9sbGluZ1RyYW5zYWN0
aW9uOwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmlu
ZGV4IGZkZWRmMWFiNWRhMjAxYmZmZWJmNTc4YTEzZjkxNmQ5ZjA0MjIwOWYuLmE1Y2Y0NTMwYjU2
ZmYzZTYxYjIzY2JlZDBlMmRiY2MxZjNiMzlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbmNsdWRlICJSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2Vz
LmgiCkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgorI2luY2x1ZGUgPFdlYmNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw2ICs0OSw3IEBAIFBhc3NSZWZQdHI8V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcj4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBh
c3NSZWZQCiAKIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UuZ2V0KCkp
CisgICAgLCBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbihmYWxzZSkKIHsKICAg
ICBzZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6
c2hhcmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CkBA
IC01Nyw2ICs2MCwxNCBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcigpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2
ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OndpbGxDb21taXRMYXllclRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uKQoreworICAgIGlmIChtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2Fj
dGlvbikgeworICAgICAgICB0cmFuc2FjdGlvbi5hZGRWaWRlb0xheWVySURQZW5kaW5nRnVsbHNj
cmVlbihtX3BsYXRmb3JtQ0FMYXllci0+bGF5ZXJJRCgpKTsKKyAgICAgICAgbV9zZW5kVW5wYXJl
bnRWaWRlb0xheWVyVHJhbnNhY3Rpb24gPSBmYWxzZTsKKyAgICB9Cit9CisgICAgCiBib29sIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzRnVsbHNjcmVlbihjb25zdCBOb2RlKiBu
b2RlKSBjb25zdAogewogICAgIGlmICghU2V0dGluZ3M6OmF2S2l0RW5hYmxlZCgpKQpAQCAtOTgs
MTUgKzEwOSwxMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvRGlt
ZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZgogICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lv
bnMoaGFzVmlkZW8sIHdpZHRoLCBoZWlnaHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KICAgICAK
LXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxh
eWVyKikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0
Zm9ybUxheWVyKiB2aWRlb0xheWVyKQogewotICAgIC8vIFRPRE86IGltcGxlbWVudCB3aXRoIGNv
cnJlY3QgbGF5ZXIgSUQuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRCgwKSwgbV9wYWdlLT5wYWdlSUQoKSk7
Ci19CisgICAgbV9wbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FM
YXllcih2aWRlb0xheWVyKTsKKyAgICBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlv
biA9ICEhbV9wbGF0Zm9ybUNBTGF5ZXI7CiAgICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCi17Ci0gICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZp
ZGVvTGF5ZXJJRCh2aWRlb0xheWVySUQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0VmlkZW9M
YXllcklEKG1fcGxhdGZvcm1DQUxheWVyID8gbV9wbGF0Zm9ybUNBTGF5ZXItPmxheWVySUQoKSA6
IDApLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjplbnRlckZ1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGU1MzdjOTk2NTM2
MDA0ZjJmMzBmMWRmMWM2N2JmMTIxNmEzNTliMDAuLjhlM2I4YTNkNzY3NGYyNDZlYWUyMzZkYzYy
MGQ2NGU1YWFhM2U0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0
ZW5lci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAgY2xhc3MgTm9kZTsKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBXZWJQYWdlOworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247
CiAKIGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6V2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQsIHB1YmxpYyBXZWJDb3JlOjpXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2UsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVi
bGljOgpAQCAtNTUsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZl
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCisg
ICAgdm9pZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7
CisKICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbihjb25zdCBXZWJDb3JlOjpOb2RlKikgY29u
c3Q7CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKICAg
ICB2b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CkBAIC02OCwxMiAr
NzIsMTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5
aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciop
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICAKICAgICBXZWJQ
YWdlKiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fbm9kZTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBtX3BsYXRmb3JtQ0FMYXllcjsKKyAgICBib29s
IG1fc2VuZFVucGFyZW50VmlkZW9MYXllclRyYW5zYWN0aW9uOwogfTsKICAgICAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225081</attachid>
            <date>2014-02-24 12:23:24 -0800</date>
            <delta_ts>2014-02-24 16:34:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128564-20140224122323.patch</filename>
            <type>text/plain</type>
            <size>28625</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDFhZTZmMGNlZjBlOGUy
MzQ2OGVmYTBiMjNjMTNlZTBmZDhlNGE0Ny4uYTgwYTU3MzM5ODZjOWFjODMxYTA4OWY0MGNkMDlk
YTgxNjAzOGFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE0LTAyLTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIgQVZLaXQgZnVsbHNj
cmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgorICAgICAgICBFeHBvcnQgV2Vi
Q29yZTo6UGxhdGZvcm1DQUxheWVyOjpwbGF0Zm9ybUNBTGF5ZXIoKQorCisgICAgICAgICogcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5oOgorICAgICAgICBSZW1v
dmUgU2V0VmlkZW9MYXllcklEKCkuIAorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQ6OnNldFZpZGVvTGF5ZXIpOgorICAgICAgICBXcmFwIG1ha2UgdmlkZW8g
bGF5ZXIgbG9vayBsaWtlIGFuIEFWQVZQbGF5ZXJMYXllciB3aXRoIFdlYkFWUGxheWVyTGF5ZXIK
KworICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Ojpz
ZXRNZWRpYUVsZW1lbnQpOgorICAgICAgICBQYXNzIGFsb25nIHRoZSB2aWRlb0xheWVyIGJlZm9y
ZSBib3Jyb3dpbmcgaXQgc28gdGhlIGludGVyZmFjZSB3aWxsIGJlIHJlYWR5IHRvCisgICAgICAg
IGNhdGNoIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHJlbW92ZXMgaXQuCisKIDIwMTQtMDItMTcgIEdh
dmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBm
YXN0IG1hcHBpbmcgZnJvbSBTdHJpbmdJbXBsIHRvIEpTU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDVj
OTI3NDc1ZGMxYTI4MGJkOWZlODlkNjhkNWVkZGJjZDIyYWI5Zi4uYjIyMDQxZTc4MmEwODAyODYw
YzdjNjA5NDFmYjU0ZDU0ZDljMWQyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0
LTAyLTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBXSzIg
QVZLaXQgZnVsbHNjcmVlbiBkb2Vzbid0IGRpc3BsYXkgdmlkZW8uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjg1NjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9tYWMvUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZVRyYW5zYWN0aW9uOjppc1ZpZGVvTGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OmFkZFZpZGVvTGF5ZXJJRFBl
bmRpbmdGdWxsc2NyZWVuKToKKyAgICAgICAgQWRkIGEgcHJvcGVydHkgdG8gdHJhY2sgdmlkZW8g
bGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVuLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpkZWNvZGUpOgorICAgICAgICBFbmNvZGUgYW5kIGRlY29kZSBtX3ZpZGVvTGF5
ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFn
ZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZENvbW1pdExh
eWVyVHJlZSk6CisgICAgICAgIExldCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgc2Vl
IHRoZSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUpOgorICAg
ICAgICBMb29rIGZvciB2aWRlbyBsYXllciBwZW5kaW5nIGZ1bGxzY3JlZW4gb24gdGhlIHRyYW5z
YWN0aW9uIHRvIGluaXRpYXRlCisgICAgICAgIGZ1bGxzY3JlZW4uCisKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVySUQpOgorICAg
ICAgICBTdGFydCBsb29raW5nIGZvciB0aGUgdmlkZW8gbGF5ZXIgcGVuZGluZyBmdWxsc2NyZWVu
IGluIHRoZSB0cmFuc2FjdGlvbi4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVlbik6CisgICAgICAgIE92ZXJyaWRlIHRvIHBy
ZXZlbnQgZnVsbHNjcmVlbiBmcm9tIGhhcHBlbmluZyBiZWZvcmUgdGhlIGxheWVyCisgICAgICAg
IGlzIHBlbmRpbmcgZnVsbHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIFBhc3MgYSBt
b3JlIHNwZWNpZmljIHZpZGVvTGF5ZXJJRCBpbiBTZXRWaWRlb0xheWVySUQsCisgICAgICAgIGku
ZS4gV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
Ojp3aWxsQ29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgTW92ZSB3ZWJQYWdlIHNwZWNpZmljIHRy
YW5zYWN0aW9uIGJ1aWxkaW5nIGhlcmUsIGluY2x1ZGluZywKKyAgICAgICAgZ2l2aW5nIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIgYSBjaGFuY2UgdG8gbW9kaWZ5IHRoZSB0cmFuc2FjdGlvbi4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIEFkZCB3
aWxsQ29tbWl0TGF5ZXJUcmVlKCk7CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFj
L1BsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbS5tbToKKyAgICAgICAgKFBsYXRmb3JtQ0FMYXll
clJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tKToKKyAgICAgICAgKFBs
YXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSk6
CisgICAgICAgIE1ha2UgYW5kIGJyZWFrIHRoZSBjb25uZWN0aW9uIGZyb20gQ0FMYXllciB0byBQ
bGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20sCisgICAgICAgIHRoZSBzYW1lIHdheSBpdCBpcyBk
b25lIGZvciBQbGF0Zm9ybUNBTGF5ZXJNYWMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOgorICAgICAgICBNb3ZlIFdl
YlBhZ2Ugc3BlY2lmaWMgdHJhbnNhY3Rpb24gYnVpbGRpbmcgaW50byBXZWJQYWdlOjp3aWxsQ29t
bWl0TGF5ZXJUcmVlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OndpbGxDb21taXRMYXllclRyZWUpOgorICAgICAgICBhZGRWaWRlb0xheWVySURQZW5kaW5n
RnVsbHNjcmVlbiBvbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiB3aGVuIG5lZWRlZC4KKwor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVy
KToKKyAgICAgICAgUGFzcyBhbG9uZyB0aGUgdmlkZW8gbGF5ZXJJRC4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHdp
bGxDb21taXRMYXllclRyZWUoKSBhbmQgcmVtb3ZlIHNldFZpZGVvTGF5ZXJJRCgpLgorICAgICAg
ICBBZGQgYSBtZW1iZXIgdG8gcmV0YWluIHRoZSB1bnBhcmVudGVkIFBsYXRmb3JtQ0FMYXllci4K
KwogMjAxNC0wMi0xOCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDbGVhbiB1cCBXS0NvbnRlbnRWaWV3IGluaXRpYWxpemF0aW9uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
ZXhwLmluCmluZGV4IDUxOWIxZTNjNjAyMTg2NWU2NDRhOGI0Nzk3OWJjNDRhNTliM2RjMTkuLjBh
NDEwZmM5YjNkOTQ0NzBmZjE5MTBiZTM5OGE0MTZhOGZhMWNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhw
LmluCkBAIC01ODgsNiArNTg4LDcgQEAgX19aTjdXZWJDb3JlMTVIaXRUZXN0TG9jYXRpb25EMUV2
CiBfX1pON1dlYkNvcmUxNUpTRE9NV2luZG93QmFzZThjb21tb25WTUV2CiBfX1pON1dlYkNvcmUx
NVBhc3RlYm9hcmRJbWFnZUMxRXYKIF9fWk43V2ViQ29yZTE1UGFzdGVib2FyZEltYWdlRDFFdgor
X19aTjdXZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXIxNXBsYXRmb3JtQ0FMYXllckVQdgogX19aTjdX
ZWJDb3JlMTVQbGF0Zm9ybUNBTGF5ZXJDMkVOUzBfOUxheWVyVHlwZUVQTlNfMjFQbGF0Zm9ybUNB
TGF5ZXJDbGllbnRFCiBfX1pON1dlYkNvcmUxNVBsYXRmb3JtQ0FMYXllckQyRXYKIF9fWk43V2Vi
Q29yZTE1UHJvdGVjdGlvblNwYWNlQzFFUktOM1dURjZTdHJpbmdFaU5TXzI1UHJvdGVjdGlvblNw
YWNlU2VydmVyVHlwZUVTNF9OU18zNVByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1l
RQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZS5oCmluZGV4IGQ2NDE1ZmU2NDkzMTkxZTEwZjEyYmYyZTZlYjhjM2U0
MzBiZjUwODYuLjU4M2QyYjI5OTlhZmMxOGQwNDE2OGMwZjkzNzhiODUyOGI0NmUyZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlLmgKQEAgLTQxLDcgKzQxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllcihQbGF0
Zm9ybUxheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMy
X3QpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpID0gMDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5oCmluZGV4IGY0ZTZjMWZiNmI4Y2NlOWQ0NzZjMDQxMDFiOTE1OGU5ZmUwYzE4YjAuLjBm
MjgwMmNlNjk1NjM0YjE0M2YyZjEzYzE3MmZmZGU2ZTgwODE3ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdC5oCkBAIC02Niw3ICs2Niw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJhdGUo
Ym9vbCBpc1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
ZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRWaWRlb0xheWVyKFBsYXRmb3JtTGF5ZXIqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCkgb3ZlcnJpZGUgeyB9Owog
ICAgIHZvaWQgZW50ZXJGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBlbnRlckZ1bGxz
Y3JlZW5XaXRoQ29tcGxldGlvbkhhbmRsZXIoc3RkOjpmdW5jdGlvbjx2b2lkKCk+KTsKICAgICB2
b2lkIGV4aXRGdWxsc2NyZWVuKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQu
bW0KaW5kZXggMDhmNWQ4ZGM4NTczZjg4MTcxODEyNWQzYTYxODJkNzYwZjc1ZGQ5Ny4uYzhlYTk0
MjY2ZmMyMmUwODQ0YjgxY2ViZGE2MDZkOWZjNGQyYjQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbQpAQCAtNjgsNiArNjgsOSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVH
ZXRTZWNvbmRzLCBGbG9hdDY0LCAoQ01UaW1lIHRpbWUpLCAodGltZSkpCiBAZW5kCiAKIEBwcm90
b2NvbCBBVlBsYXllckxheWVyCitAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgTlNTdHJpbmcg
KnZpZGVvR3Jhdml0eTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyID0g
aXNSZWFkeUZvckRpc3BsYXkpIEJPT0wgcmVhZHlGb3JEaXNwbGF5OworQHByb3BlcnR5IChub25h
dG9taWMsIHJlYWRvbmx5KSBDR1JlY3QgdmlkZW9SZWN0OwogQGVuZAogCiBAaW50ZXJmYWNlIEFW
UGxheWVyQ29udHJvbGxlciA6IFVJUmVzcG9uZGVyCkBAIC0yMDIsNiArMjA1LDIwIEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIEFWUGxheWVyQ29udHJvbGxlclN0YXR1cykgewogCiBAZW5k
CiAKK0BpbnRlcmZhY2UgV2ViQVZQbGF5ZXJMYXllciA6IENBTGF5ZXIgPEFWUGxheWVyTGF5ZXI+
CisrKFdlYkFWUGxheWVyTGF5ZXIgKilwbGF5ZXJMYXllcjsKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
LCBjb3B5KSBOU1N0cmluZyAqdmlkZW9HcmF2aXR5OworQHByb3BlcnR5IChub25hdG9taWMsIGdl
dHRlciA9IGlzUmVhZHlGb3JEaXNwbGF5KSBCT09MIHJlYWR5Rm9yRGlzcGxheTsKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0OworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V2ViQVZQbGF5ZXJMYXllcgorKyhXZWJBVlBsYXllckxheWVyICopcGxheWVyTGF5ZXIKK3sKKyAg
ICByZXR1cm4gW1tbV2ViQVZQbGF5ZXJMYXllciBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOwor
fQorQGVuZAorCiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlQVZLaXQoKQogICAgIDogbV92aWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxs
cHRyKQogewpAQCAtMjc4LDEwICsyOTUsMTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVyKiB2aWRlb0xheWVyKQogewog
ICAgIFtwbGF5ZXJDb250cm9sbGVyKCkucGxheWVyTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJd
OwogICAgIFt2aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLSAgICBBU1NFUlQoIXZp
ZGVvTGF5ZXIKLSAgICAgICAgfHwgW3ZpZGVvTGF5ZXIgaXNLaW5kT2ZDbGFzczpbY2xhc3NBVlBs
YXllckxheWVyIGNsYXNzXV0KLSAgICAgICAgfHwgKFt2aWRlb0xheWVyIGlzS2luZE9mQ2xhc3M6
W0NBTGF5ZXIgY2xhc3NdXSAmJiBbdmlkZW9MYXllciBjb25mb3Jtc1RvUHJvdG9jb2w6QHByb3Rv
Y29sKEFWUGxheWVyTGF5ZXIpXSkpOwotICAgIHBsYXllckNvbnRyb2xsZXIoKS5wbGF5ZXJMYXll
ciA9IChDQUxheWVyPEFWUGxheWVyTGF5ZXI+Kil2aWRlb0xheWVyOworICAgIAorICAgIENBTGF5
ZXI8QVZQbGF5ZXJMYXllcj4gKmF2UGxheWVyTGF5ZXIgPSBuaWw7CisgICAgCisgICAgLy8gV2Vi
S2l0IHByb3ZpZGVzIGEgQVZQbGF5ZXJMYXllci4gV2ViS2l0MiBwcm92aWVzIGEgaG9zdGVkIGxh
eWVyLgorICAgIGlmIChbdmlkZW9MYXllciBpc0tpbmRPZkNsYXNzOltjbGFzc0FWUGxheWVyTGF5
ZXIgY2xhc3NdXSkKKyAgICAgICAgYXZQbGF5ZXJMYXllciA9IChDQUxheWVyPEFWUGxheWVyTGF5
ZXI+Kil2aWRlb0xheWVyOworICAgIGVsc2UgaWYgKHZpZGVvTGF5ZXIpIHsKKyAgICAgICAgQVNT
RVJUKFt2aWRlb0xheWVyIGlzS2luZE9mQ2xhc3M6W0NBTGF5ZXIgY2xhc3NdXSk7CisgICAgICAg
IGF2UGxheWVyTGF5ZXIgPSBbV2ViQVZQbGF5ZXJMYXllciBwbGF5ZXJMYXllcl07CisgICAgICAg
IFthdlBsYXllckxheWVyIGFkZFN1YmxheWVyOnZpZGVvTGF5ZXJdOworICAgIH0KKworICAgIG1f
cGxheWVyQ29udHJvbGxlci5nZXQoKS5wbGF5ZXJMYXllciA9IGF2UGxheWVyTGF5ZXI7CiB9CiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbldp
dGhDb21wbGV0aW9uSGFuZGxlcihzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQppbmRleCBjZjg1ZjBmMmVlMzMyNjVjMjU2
YWE1ODJlOTNiZTcyM2UzYTk4NmVjLi41YWJkZTU3MTk2OWQyZjUxMDc3NDdiYjJlYjhlZjUzNTEy
Y2FmNDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC05NCw4ICs5
NCw5IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlh
RWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2UtPnNldER1cmF0aW9uKG1fbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpKTsKICAgICBtX3Zp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0UmF0ZShtX21lZGlhRWxlbWVudC0+aXNQbGF5aW5n
KCksIG1fbWVkaWFFbGVtZW50LT5wbGF5YmFja1JhdGUoKSk7CiAKKyAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0VmlkZW9MYXllcihtX21lZGlhRWxlbWVudC0+cGxhdGZvcm1MYXll
cigpKTsKKwogICAgIG1fYm9ycm93ZWRWaWRlb0xheWVyID0gbV9tZWRpYUVsZW1lbnQtPmJvcnJv
d1BsYXRmb3JtTGF5ZXIoKTsKLSAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0Vmlk
ZW9MYXllcihtX2JvcnJvd2VkVmlkZW9MYXllci5nZXQoKSk7CiAKICAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0Q3VycmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1l
KCksIFtbTlNQcm9jZXNzSW5mbyBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24uaAppbmRleCA0NDU1MGVjY2IzM2NmMWY3NDdhM2RkZGI3YzI4YjdmY2QyMDY4OWRiLi4yMTU1
YjRkNzk2ZWUzZTI1OThkZjFkODI4MGQyMGI5NzYzOWEwNTZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCkBAIC0x
NzIsNiArMTcyLDkgQEAgcHVibGljOgogCiAgICAgYm9vbCBhbGxvd3NVc2VyU2NhbGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fYWxsb3dzVXNlclNjYWxpbmc7IH0KICAgICB2b2lkIHNldEFsbG93c1Vz
ZXJTY2FsaW5nKGJvb2wgYWxsb3dzVXNlclNjYWxpbmcpIHsgbV9hbGxvd3NVc2VyU2NhbGluZyA9
IGFsbG93c1VzZXJTY2FsaW5nOyB9CisgICAgCisgICAgYm9vbCBpc1ZpZGVvTGF5ZXJJRFBlbmRp
bmdGdWxsc2NyZWVuKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklEKSBjb25zdCB7IHJldHVybiBtX3ZpZGVvTGF5ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbi5jb250
YWlucyhsYXllcklEKTsgfQorICAgIHZvaWQgYWRkVmlkZW9MYXllcklEUGVuZGluZ0Z1bGxzY3Jl
ZW4oV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQpIHsgbV92
aWRlb0xheWVySURzUGVuZGluZ0Z1bGxzY3JlZW4uYXBwZW5kKGxheWVySUQpOyB9CiAKIHByaXZh
dGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1fcm9vdExh
eWVySUQ7CkBAIC0xODQsNiArMTg3LDcgQEAgcHJpdmF0ZToKICAgICBkb3VibGUgbV9taW5pbXVt
U2NhbGVGYWN0b3I7CiAgICAgZG91YmxlIG1fbWF4aW11bVNjYWxlRmFjdG9yOwogICAgIGJvb2wg
bV9hbGxvd3NVc2VyU2NhbGluZzsKKyAgICBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklEPiBtX3ZpZGVvTGF5ZXJJRHNQZW5kaW5nRnVsbHNjcmVlbjsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L21hYy9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9tYWMvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24ubW0KaW5kZXggNTEyYzQwZmUxOTQwNDQx
MGZmNjMyYjlkY2M2ZDU1ZTYxMDBhOTcwMy4uZDc1MWVhMDEwMGUxMjY3MmYzNGRiMDZkNjY4Y2Nj
ZTY4YjBjOGZlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL21hYy9SZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLm1tCkBAIC0zNTQsNiArMzU0LDcgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlKElQQzo6QXJndW1lbnRFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogICAgIGVuY29kZXIgPDwgbV9tYXhpbXVtU2NhbGVGYWN0b3I7CiAgICAgZW5j
b2RlciA8PCBtX2FsbG93c1VzZXJTY2FsaW5nOwogICAgIGVuY29kZXIgPDwgbV9yZW5kZXJUcmVl
U2l6ZTsKKyAgICBlbmNvZGVyIDw8IG1fdmlkZW9MYXllcklEc1BlbmRpbmdGdWxsc2NyZWVuOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpkZWNvZGUoSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiByZXN1bHQpCkBA
IC0zOTQsNiArMzk1LDkgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZGVjb2Rl
KElQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBSZW1vdGVMYXkKICAgICAKICAgICBpZiAo
IWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3JlbmRlclRyZWVTaXplKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIAorICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lm1fdmlkZW9MYXll
cklEc1BlbmRpbmdGdWxsc2NyZWVuKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCmluZGV4IDAwNjM4YTRhZDcyZWMyOGY3YjZlOGY4MTM3MDlkMmU2MzllYWYxYTgu
LjlkNTg3ZTU2Njg0YTk2MGNmZTFlMTQ5ZDI0YjY5NDczYzNhMDJhZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC0zMiw5ICszMiwx
MCBAQAogI2ltcG9ydCAiV2ViS2l0U3lzdGVtSW50ZXJmYWNlSU9TLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCiAjaW1wb3J0IDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1VzZXJBZ2VudC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVXNlckFnZW50Lmg+CiAKIHVzaW5n
IG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0yMzcsNiArMjM4LDggQEAgdm9pZCBXZWJQYWdlUHJv
eHk6OnNldFZpZXdwb3J0Q29uZmlndXJhdGlvbk1pbmltdW1MYXlvdXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFMKIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDb21taXRMYXllclRyZWUoY29uc3QgV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24pCiB7
CiAgICAgbV9wYWdlQ2xpZW50LmRpZENvbW1pdExheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlv
bik7CisgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTWFuYWdlcikKKyAgICAgICAgbV92aWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLT5kaWRDb21taXRMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24p
OwogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2VsZWN0V2l0aEdlc3R1cmUoY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQgcG9pbnQsIFdlYkNvcmU6OlRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwg
dWludDMyX3QgZ2VzdHVyZVR5cGUsIHVpbnQzMl90IGdlc3R1cmVTdGF0ZSwgUGFzc1JlZlB0cjxH
ZXN0dXJlQ2FsbGJhY2s+IGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwCmlu
ZGV4IGE5MmRmMjhmOGNjODFmMGM3N2I5MmNhMzc2Mzg5YjhhZThlZDI3ZWMuLjE2Njc5NzRmNTU3
YWM5ZjQwMDI3MmI4Y2ViZTMyYjc1YWZiOGRkZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5jcHAKQEAgLTI4LDYgKzI4LDkgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNs
dWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKQEAgLTQ0LDYgKzQ3LDgg
QEAgUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXQKIAogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoV2ViUGFnZVByb3h5JiBwYWdlKQog
ICAgIDogbV9wYWdlKCZwYWdlKQorICAgICwgbV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5
ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24oZmFsc2UpCisgICAgLCBtX3ZpZGVvTGF5ZXJJRCgwKQog
ewogICAgIG1fcGFnZS0+cHJvY2VzcygpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFn
ZS0+cGFnZUlEKCksICp0aGlzKTsKICAgICBzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCh0aGlz
KTsKQEAgLTU0LDEyICs1OSwyNiBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkoKQogICAgIG1fcGFnZS0+cHJvY2VzcygpLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCi12b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKHVpbnQzMl90
IHZpZGVvTGF5ZXJJRCkKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRD
b21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVyVHJl
ZVRyYW5zYWN0aW9uKQogewotICAgIC8vIFRPRE86IGZpbmQgYSByZWFsIHZpZGVvIGxheWVyIG9y
IG1ha2Ugb25lIHRoYXQgbWVldHMgdGhlIG5lY2Vzc2FyeSByZXF1aXJlbWVudHMuCi0gICAgc2V0
VmlkZW9MYXllcihudWxscHRyKTsKKyAgICBpZiAobV9lbnRlckZ1bGxzY3JlZW5BZnRlclZpZGVv
TGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24gJiYgbGF5ZXJUcmVlVHJhbnNhY3Rpb24uaXNWaWRl
b0xheWVySURQZW5kaW5nRnVsbHNjcmVlbihtX3ZpZGVvTGF5ZXJJRCkpIHsKKyAgICAgICAgbV9l
bnRlckZ1bGxzY3JlZW5BZnRlclZpZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24gPSBmYWxz
ZTsKKyAgICAgICAgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVu
dGVyRnVsbHNjcmVlbigpOworICAgIH0KIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHk6OnNldFZpZGVvTGF5ZXJJRChHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
dmlkZW9MYXllcklEKQoreworICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqIHJl
bW90ZURyYXdpbmdBcmVhUHJveHkgPSB0b1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHko
bV9wYWdlLT5kcmF3aW5nQXJlYSgpKTsKKyAgICBzZXRWaWRlb0xheWVyKHJlbW90ZURyYXdpbmdB
cmVhUHJveHktPnJlbW90ZUxheWVyVHJlZUhvc3QoKS5nZXRMYXllcih2aWRlb0xheWVySUQpKTsK
KyAgICBtX3ZpZGVvTGF5ZXJJRCA9IHZpZGVvTGF5ZXJJRDsKKyAgICBtX2VudGVyRnVsbHNjcmVl
bkFmdGVyVmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IHRydWU7Cit9CisKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4oKQoreworfQor
ICAgIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVs
bFNjcmVlbigpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyOjpSZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBhZjFkMTg1Y2VmOTA2MmIzNzRkNjkyZGUwMzcz
NDYxNWJmNWIwODdmLi5mNjM3OWVmYmRlNzQ0YTQ5NmUwY2NkOTI1MzMxYTRjODA2MTI2ZTM5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9S
TShJT1MpCiAKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CkBAIC0zOCwxNyArMzksMjEgQEAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjsKIAogY2xhc3MgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
IDogcHVibGljIFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LCBwdWJs
aWMgV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwsIHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgfldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpOwogCisgICAgdm9pZCBkaWRDb21taXRMYXll
clRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKTsKKyAgICAKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94
eSYpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24q
LCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
VmlkZW9MYXllcklEKHVpbnQzMl90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CisgICAg
dmlydHVhbCB2b2lkIGVudGVyRnVsbHNjcmVlbigpIG92ZXJyaWRlOwogICAgIAogICAgIHZpcnR1
YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxTY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgcGxheSgpIG92ZXJyaWRlOwpAQCAtNTgsNiArNjMsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5
KiBtX3BhZ2U7CisgICAgYm9vbCBtX2VudGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9MYXllclVucGFy
ZW50ZWRUcmFuc2FjdGlvbjsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQgbV92aWRlb0xheWVySUQ7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDA2ZDE1NzJj
NmRiMDAwZjg2OTM0NjM1NTIyODk5NWI0MzA3ZjBhNzEuLmYwN2QzZTA5ZTVmNWJkNTI5ODAzMmVk
MzY0MGM2ZDVjMGUxNzJmZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluCkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgUExBVEZPUk0oSU9TKQogbWVzc2FnZXMg
LT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRDdXJyZW50VGltZShk
b3VibGUgY3VycmVudFRpbWUsIGRvdWJsZSBob3N0VGltZSkKLSAgICBTZXRWaWRlb0xheWVySUQo
dWludDMyX3QgdmlkZW9MYXllcklEKQorICAgIFNldFZpZGVvTGF5ZXJJRChXZWJDb3JlOjpHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgdmlkZW9MYXllcklEKQogICAgIFNldFZpZGVvRGlt
ZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVpZ2h0KQog
ICAgIFNldER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5
aW5nLCBkb3VibGUgcmF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAppbmRleCBiODYyMjY3MTc5OTU4NjgzZmM3ZDhhYTc2ODUwNDEwMzcwNTZlNmUx
Li5lMzQ1NTU0YWFlMjk2ODk4ZjBiODY5ODEyNmI1OTVmNzUyNjhhYTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xNzAsNiArMTcwLDcg
QEAKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2luY2x1ZGUgIlBERlBsdWdpbi5oIgorI2luY2x1
ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdh
Y3lXZWJBcmNoaXZlLmg+CiAjZW5kaWYKIApAQCAtMjYwOSw2ICsyNjEwLDIzIEBAIHZvaWQgV2Vi
UGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUp
CiAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnVwZGF0ZVByZWZlcmVuY2VzKHN0b3JlKTsKIH0KIAor
I2lmIFBMQVRGT1JNKENPQ09BKQordm9pZCBXZWJQYWdlOjp3aWxsQ29tbWl0TGF5ZXJUcmVlKFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiBsYXllclRyYW5zYWN0aW9uKQoreworICAgIGxheWVy
VHJhbnNhY3Rpb24uc2V0Q29udGVudHNTaXplKGNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXco
KS0+Y29udGVudHNTaXplKCkpOworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFj
dG9yKGNvcmVQYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpKTsKKyAgICBsYXllclRyYW5zYWN0aW9u
LnNldFJlbmRlclRyZWVTaXplKGNvcmVQYWdlKCktPnJlbmRlclRyZWVTaXplKCkpOworI2lmIFBM
QVRGT1JNKElPUykKKyAgICBsYXllclRyYW5zYWN0aW9uLnNldE1pbmltdW1TY2FsZUZhY3Rvciht
aW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpOworICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWF4aW11
bVNjYWxlRmFjdG9yKG1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisgICAgbGF5ZXJUcmFuc2Fj
dGlvbi5zZXRBbGxvd3NVc2VyU2NhbGluZyhhbGxvd3NVc2VyU2NhbGluZygpKTsKKyAgICBpZiAo
bV92aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyKQorICAgICAgICBtX3ZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXItPndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CisjZW5kaWYKK30KKyNl
bmRpZgorCisgICAgCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKIFdlYkluc3BlY3RvciogV2ViUGFn
ZTo6aW5zcGVjdG9yKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oCmluZGV4IDUwNWYyN2M1Mzc4MjViNDQ0ZGFkZTk1YzVjOTk3YzE4YWZiMmJmZDEuLmIw
YzhmZjZiNDRkYzUyNmRlY2U0YzU5YmVjNjYwMDhmOTNlNDg2ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTY3LDYgKzE2NywxMCBAQCBzdHJ1
Y3QgUHJpbnRJbmZvOwogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZTsKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorY2xhc3MgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb247CisjZW5kaWYKKwogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CiBjbGFzcyBXZWJUb3VjaEV2ZW50OwogI2VuZGlmCkBAIC0yMDcsNiArMjExLDEwIEBAIHB1Ymxp
YzoKICAgICBib29sIHNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qg
c2Nyb2xsR3JhbnVsYXJpdHkpOwogCiAgICAgdm9pZCBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVB
cmVhKCk7CisgICAgCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgdm9pZCB3aWxsQ29tbWl0TGF5
ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CisjZW5kaWYKIAogI2lmIEVOQUJM
RShJTlNQRUNUT1IpCiAgICAgV2ViSW5zcGVjdG9yKiBpbnNwZWN0b3IoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlQ3VzdG9tLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KaW5kZXggZGVlYzlmNGM1M2JiODE1OWI1NzlkZTI2
MGE0ZjBlMjkyZmNhMWIwYS4uOWRiODc0Y2JjYmJkOTEwNmQ2Yzk1NTAyNjg2YThkZjVlMDQxNzQ2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9QbGF0
Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL21hYy9QbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b20ubW0KQEAgLTM5LDYgKzM5
LDcgQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAorc3RhdGljIE5TU3RyaW5nICogY29uc3QgcGxhdGZvcm1DQUxheWVyUG9pbnRlciA9IEAiV0tQ
bGF0Zm9ybUNBTGF5ZXIiOwogUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9ybUNB
TGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGF5ZXIsIFBsYXRmb3JtQ0FM
YXllckNsaWVudCogb3duZXIsIFJlbW90ZUxheWVyVHJlZUNvbnRleHQqIGNvbnRleHQpCiAgICAg
OiBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUoTGF5ZXJUeXBlQ3VzdG9tLCBvd25lciwgY29udGV4dCkK
IHsKQEAgLTU0LDYgKzU1LDcgQEAgUGxhdGZvcm1DQUxheWVyUmVtb3RlQ3VzdG9tOjpQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGVDdXN0b20oUGxhdGZvcm1MYXllciogY3VzdG9tTGEKICAgICB9CiAKICAg
ICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldFJvb3RMYXllcihjdXN0b21MYXllcik7CisgICAg
W2N1c3RvbUxheWVyIHNldFZhbHVlOltOU1ZhbHVlIHZhbHVlV2l0aFBvaW50ZXI6dGhpc10gZm9y
S2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOwogCiAgICAgbV9wbGF0Zm9ybUxheWVyID0gY3Vz
dG9tTGF5ZXI7CiAgICAgW2N1c3RvbUxheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107CkBAIC02
Myw2ICs2NSw3IEBAIFBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbTo6UGxhdGZvcm1DQUxheWVy
UmVtb3RlQ3VzdG9tKFBsYXRmb3JtTGF5ZXIqIGN1c3RvbUxhCiAKIFBsYXRmb3JtQ0FMYXllclJl
bW90ZUN1c3RvbTo6flBsYXRmb3JtQ0FMYXllclJlbW90ZUN1c3RvbSgpCiB7CisgICAgW21fcGxh
dGZvcm1MYXllciBzZXRWYWx1ZTpuaWwgZm9yS2V5OnBsYXRmb3JtQ0FMYXllclBvaW50ZXJdOwog
fQogCiB1aW50MzJfdCBQbGF0Zm9ybUNBTGF5ZXJSZW1vdGVDdXN0b206Omhvc3RpbmdDb250ZXh0
SUQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KaW5kZXggMjYxYmJmYmRk
MjNkMzExOTZkMjg5ZmRkOGQwNzBlZDhiZjBhYjIzZC4uODU3OTgwZmMyN2ZhMTdmMTM4NjZlMzQ5
MjBjMDFiNjZhMzIyNzQ1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
CkBAIC0zMjEsMTQgKzMyMSw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZs
dXNoTGF5ZXJzKCkKICAgICAvLyBGSVhNRTogbWluaXplIHRoZXNlIHRyYW5zYWN0aW9ucyBpZiBu
b3RoaW5nIGNoYW5nZWQuCiAgICAgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24gbGF5ZXJUcmFu
c2FjdGlvbjsKICAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPmJ1aWxkVHJhbnNhY3Rpb24o
bGF5ZXJUcmFuc2FjdGlvbiwgKm1fcm9vdExheWVyKTsKLSAgICBsYXllclRyYW5zYWN0aW9uLnNl
dENvbnRlbnRzU2l6ZShtX3dlYlBhZ2UtPmNvcmVQYWdlKCktPm1haW5GcmFtZSgpLnZpZXcoKS0+
Y29udGVudHNTaXplKCkpOwotICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0UGFnZVNjYWxlRmFjdG9y
KG1fd2ViUGFnZS0+Y29yZVBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCkpOwotICAgIGxheWVyVHJh
bnNhY3Rpb24uc2V0UmVuZGVyVHJlZVNpemUobV93ZWJQYWdlLT5jb3JlUGFnZSgpLT5yZW5kZXJU
cmVlU2l6ZSgpKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRN
aW5pbXVtU2NhbGVGYWN0b3IobV93ZWJQYWdlLT5taW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkpOwot
ICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0TWF4aW11bVNjYWxlRmFjdG9yKG1fd2ViUGFnZS0+bWF4
aW11bVBhZ2VTY2FsZUZhY3RvcigpKTsKLSAgICBsYXllclRyYW5zYWN0aW9uLnNldEFsbG93c1Vz
ZXJTY2FsaW5nKG1fd2ViUGFnZS0+YWxsb3dzVXNlclNjYWxpbmcoKSk7Ci0jZW5kaWYKKyAgICBt
X3dlYlBhZ2UtPndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAKICAgICBS
ZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uIHNjcm9sbGluZ1RyYW5zYWN0aW9u
OwogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCmluZGV4
IGZkZWRmMWFiNWRhMjAxYmZmZWJmNTc4YTEzZjkxNmQ5ZjA0MjIwOWYuLmE1Y2Y0NTMwYjU2ZmYz
ZTYxYjIzY2JlZDBlMmRiY2MxZjNiMzlmMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbmNsdWRlICJSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQ
cm9jZXNzLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgi
CkBAIC0zNSw2ICszNiw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9IVE1MVmlkZW9FbGVtZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0
aW5ncy5oPgorI2luY2x1ZGUgPFdlYmNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCkBAIC00Nyw2ICs0OSw3IEBAIFBhc3NSZWZQdHI8V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlcj4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6Y3JlYXRlKFBhc3NS
ZWZQCiAKIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIoUGFzc1JlZlB0cjxXZWJQYWdlPiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UuZ2V0KCkpCisg
ICAgLCBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbihmYWxzZSkKIHsKICAgICBz
ZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UodGhpcyk7CiAgICAgV2ViUHJvY2Vzczo6c2hh
cmVkKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIHBhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7CkBAIC01
Nyw2ICs2MCwxNCBAQCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjp+V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcigpCiAgICAgV2ViUHJvY2Vzczo6c2hhcmVkKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OndpbGxDb21taXRMYXllclRyZWUoUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aW9uKQoreworICAgIGlmIChtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlv
bikgeworICAgICAgICB0cmFuc2FjdGlvbi5hZGRWaWRlb0xheWVySURQZW5kaW5nRnVsbHNjcmVl
bihtX3BsYXRmb3JtQ0FMYXllci0+bGF5ZXJJRCgpKTsKKyAgICAgICAgbV9zZW5kVW5wYXJlbnRW
aWRlb0xheWVyVHJhbnNhY3Rpb24gPSBmYWxzZTsKKyAgICB9Cit9CisgICAgCiBib29sIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnN1cHBvcnRzRnVsbHNjcmVlbihjb25zdCBOb2RlKiBub2Rl
KSBjb25zdAogewogICAgIGlmICghU2V0dGluZ3M6OmF2S2l0RW5hYmxlZCgpKQpAQCAtOTgsMTUg
KzEwOSwxMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvRGltZW5z
aW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZgogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRWaWRlb0RpbWVuc2lvbnMo
aGFzVmlkZW8sIHdpZHRoLCBoZWlnaHQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KICAgICAKLXZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0Zm9ybUxheWVy
KikKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllcihQbGF0Zm9y
bUxheWVyKiB2aWRlb0xheWVyKQogewotICAgIC8vIFRPRE86IGltcGxlbWVudCB3aXRoIGNvcnJl
Y3QgbGF5ZXIgSUQuCi0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVvTGF5ZXJJRCgwKSwgbV9wYWdlLT5wYWdlSUQoKSk7Ci19
CisgICAgbV9wbGF0Zm9ybUNBTGF5ZXIgPSBQbGF0Zm9ybUNBTGF5ZXI6OnBsYXRmb3JtQ0FMYXll
cih2aWRlb0xheWVyKTsKKyAgICBtX3NlbmRVbnBhcmVudFZpZGVvTGF5ZXJUcmFuc2FjdGlvbiA9
ICEhbV9wbGF0Zm9ybUNBTGF5ZXI7CiAgICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OnNldFZpZGVvTGF5ZXJJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCi17Ci0gICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OlNldFZpZGVv
TGF5ZXJJRCh2aWRlb0xheWVySUQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0VmlkZW9MYXll
cklEKG1fcGxhdGZvcm1DQUxheWVyID8gbV9wbGF0Zm9ybUNBTGF5ZXItPmxheWVySUQoKSA6IDAp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjplbnRlckZ1bGxzY3JlZW4oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IGU1MzdjOTk2NTM2MDA0
ZjJmMzBmMWRmMWM2N2JmMTIxNmEzNTliMDAuLjhlM2I4YTNkNzY3NGYyNDZlYWUyMzZkYzYyMGQ2
NGU1YWFhM2U0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRMaXN0ZW5l
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1DQUxheWVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KQEAgLTQ3LDYgKzQ4LDcgQEAgY2xhc3MgTm9kZTsKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJQYWdlOworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb247CiAK
IGNsYXNzIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgOiBwdWJsaWMgV2ViQ29yZTo6V2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQsIHB1YmxpYyBXZWJDb3JlOjpXZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2UsIHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGlj
OgpAQCAtNTUsNiArNTcsOCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24qLCBJUEM6Ok1lc3NhZ2VEZWNvZGVyJik7CiAgICAgCisgICAg
dm9pZCB3aWxsQ29tbWl0TGF5ZXJUcmVlKFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJik7CisK
ICAgICBib29sIHN1cHBvcnRzRnVsbHNjcmVlbihjb25zdCBXZWJDb3JlOjpOb2RlKikgY29uc3Q7
CiAgICAgdm9pZCBlbnRlckZ1bGxzY3JlZW5Gb3JOb2RlKFdlYkNvcmU6Ok5vZGUqKTsKICAgICB2
b2lkIGV4aXRGdWxsc2NyZWVuRm9yTm9kZShXZWJDb3JlOjpOb2RlKik7CkBAIC02OCwxMiArNzIs
MTMgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5n
LCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXIoUGxhdGZvcm1MYXllciopIG92
ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVySUQodWludDMyX3QpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgZXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICAKICAgICBXZWJQYWdl
KiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6Ok5vZGU+IG1fbm9kZTsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6UGxhdGZvcm1DQUxheWVyPiBtX3BsYXRmb3JtQ0FMYXllcjsKKyAgICBib29sIG1f
c2VuZFVucGFyZW50VmlkZW9MYXllclRyYW5zYWN0aW9uOwogfTsKICAgICAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>