<?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>131069</bug_id>
          
          <creation_ts>2014-04-01 15:07:05 -0700</creation_ts>
          <short_desc>Enable fullscreen captions selection</short_desc>
          <delta_ts>2014-05-02 10:31:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>996475</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-01 15:07:05 -0700</bug_when>
    <thetext>Enable captions button in fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996481</commentid>
    <comment_count>1</comment_count>
      <attachid>228327</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-01 15:19:47 -0700</bug_when>
    <thetext>Created attachment 228327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996778</commentid>
    <comment_count>2</comment_count>
      <attachid>228327</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-02 12:19:03 -0700</bug_when>
    <thetext>Comment on attachment 228327
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterface.h:52
&gt; +    

Nit: extra blank line.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:290
&gt; +    

Can&apos;t you return here if option is nil?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:299
&gt; +        self.delegate-&gt;selectAudioMediaOption(index != NSNotFound ? index : UINT64_MAX);

index can&apos;t be NSNotFound.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:323
&gt; +    [_currentLegibleMediaSelectionOption release];
&gt; +    _currentLegibleMediaSelectionOption = [option retain];
&gt; +    
&gt; +    ASSERT(self.delegate);
&gt; +    
&gt; +    NSInteger index = NSNotFound;
&gt; +    
&gt; +    if (option &amp;&amp; self.legibleMediaSelectionOptions)
&gt; +        index = [self.legibleMediaSelectionOptions indexOfObject:option];
&gt; +    
&gt; +    if (index != NSNotFound)
&gt; +        self.delegate-&gt;selectLegibleMediaOption(index != NSNotFound ? index : UINT64_MAX);

Ditto the comments about setCurrentAudioMediaSelectionOption.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:488
&gt; +    NSMutableArray* webOptions = [NSMutableArray array];

Nit: you can optimize this slightly by allocating the number of elements you will need.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:509
&gt; +    NSMutableArray* webOptions = [NSMutableArray array];
&gt; +    for (auto&amp; name : options) {
&gt; +        RetainPtr&lt;WebAVMediaSelectionOption&gt; webOption = adoptNS([[WebAVMediaSelectionOption alloc] init]);
&gt; +        RetainPtr&lt;NSString&gt; nameString = adoptNS([[NSString alloc] initWithUTF8String:name.utf8().data()]);
&gt; +        [webOption setLocalizedDisplayName:nameString.get()];
&gt; +        [webOptions addObject:webOption.get()];
&gt; +    }

Instead of duplicating this code here and in setAudioMediaSelectionOptions, why don&apos;t you put it into a shared function?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h:70
&gt; +    

Nit: extra blank line.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:89
&gt; +    

Nit: extra spaces (hint: enable trimming &quot;whitespace-only lines&quot; in Xcode editing prefs).

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:208
&gt; +void WebVideoFullscreenModelMediaElement::selectAudioMediaOption(uint64_t)
&gt; +{
&gt; +}

This needs a FIXME.

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:71
&gt; +    virtual void selectAudioMediaOption(uint64_t index) override;
&gt; +    virtual void selectLegibleMediaOption(uint64_t index) override;

Nit: &quot;index&quot; doesn&apos;t add anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997661</commentid>
    <comment_count>3</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-04 12:12:10 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 228327 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228327&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterface.h:52
&gt; &gt; +    
&gt; 
&gt; Nit: extra blank line.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:290
&gt; &gt; +    
&gt; 
&gt; Can&apos;t you return here if option is nil?

No, because we still need to inform the delegate of the change.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:299
&gt; &gt; +        self.delegate-&gt;selectAudioMediaOption(index != NSNotFound ? index : UINT64_MAX);
&gt; 
&gt; index can&apos;t be NSNotFound.

Fixed.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:323
&gt; &gt; +    [_currentLegibleMediaSelectionOption release];
&gt; &gt; +    _currentLegibleMediaSelectionOption = [option retain];
&gt; &gt; +    
&gt; &gt; +    ASSERT(self.delegate);
&gt; &gt; +    
&gt; &gt; +    NSInteger index = NSNotFound;
&gt; &gt; +    
&gt; &gt; +    if (option &amp;&amp; self.legibleMediaSelectionOptions)
&gt; &gt; +        index = [self.legibleMediaSelectionOptions indexOfObject:option];
&gt; &gt; +    
&gt; &gt; +    if (index != NSNotFound)
&gt; &gt; +        self.delegate-&gt;selectLegibleMediaOption(index != NSNotFound ? index : UINT64_MAX);
&gt; 
&gt; Ditto the comments about setCurrentAudioMediaSelectionOption.

Ditto.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:488
&gt; &gt; +    NSMutableArray* webOptions = [NSMutableArray array];
&gt; 
&gt; Nit: you can optimize this slightly by allocating the number of elements you will need.

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:509
&gt; &gt; +    NSMutableArray* webOptions = [NSMutableArray array];
&gt; &gt; +    for (auto&amp; name : options) {
&gt; &gt; +        RetainPtr&lt;WebAVMediaSelectionOption&gt; webOption = adoptNS([[WebAVMediaSelectionOption alloc] init]);
&gt; &gt; +        RetainPtr&lt;NSString&gt; nameString = adoptNS([[NSString alloc] initWithUTF8String:name.utf8().data()]);
&gt; &gt; +        [webOption setLocalizedDisplayName:nameString.get()];
&gt; &gt; +        [webOptions addObject:webOption.get()];
&gt; &gt; +    }
&gt; 
&gt; Instead of duplicating this code here and in setAudioMediaSelectionOptions, why don&apos;t you put it into a shared function?

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h:70
&gt; &gt; +    
&gt; 
&gt; Nit: extra blank line.

Deleted.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:89
&gt; &gt; +    
&gt; 
&gt; Nit: extra spaces (hint: enable trimming &quot;whitespace-only lines&quot; in Xcode editing prefs).

Done and done.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:208
&gt; &gt; +void WebVideoFullscreenModelMediaElement::selectAudioMediaOption(uint64_t)
&gt; &gt; +{
&gt; &gt; +}
&gt; 
&gt; This needs a FIXME.

Added // FIXME: 131236 Implement audio track selection

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.h:71
&gt; &gt; +    virtual void selectAudioMediaOption(uint64_t index) override;
&gt; &gt; +    virtual void selectLegibleMediaOption(uint64_t index) override;
&gt; 
&gt; Nit: &quot;index&quot; doesn&apos;t add anything.

Deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997688</commentid>
    <comment_count>4</comment_count>
      <attachid>228618</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-04 14:50:45 -0700</bug_when>
    <thetext>Created attachment 228618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>997715</commentid>
    <comment_count>5</comment_count>
      <attachid>228618</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-04-04 15:41:31 -0700</bug_when>
    <thetext>Comment on attachment 228618
Patch

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

The WebCore changes look OK to me modulo my comments, which can be addressed in a follow up. I am not a WK2 reviewer so I won&apos;t mark this r+.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:93
&gt; +        legibleOptions.append(textTrack-&gt;label());

This is wrong, not all tracks have a label but every menu item needs to have a label. We calculate the display name in CaptionPreferences::displayNameForTrack. Probably the right thing to do here is to add a displayName method to PlatformTextTrack and have TextTrack::platformTextTrack call CaptionPreferences::displayNameForTrack.

I think this can be done in a follow-up bug.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:216
&gt; +        platformTrack = m_mediaElement-&gt;platformTextTracks()[static_cast&lt;size_t&gt;(index)];

I should have noticed this before, but why pass a uint64_t when we need a size_t?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998210</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-07 12:37:54 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 228618 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228618&amp;action=review
&gt; 
&gt; The WebCore changes look OK to me modulo my comments, which can be addressed in a follow up. I am not a WK2 reviewer so I won&apos;t mark this r+.
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:93
&gt; &gt; +        legibleOptions.append(textTrack-&gt;label());
&gt; 
&gt; This is wrong, not all tracks have a label but every menu item needs to have a label. We calculate the display name in CaptionPreferences::displayNameForTrack. Probably the right thing to do here is to add a displayName method to PlatformTextTrack and have TextTrack::platformTextTrack call CaptionPreferences::displayNameForTrack.
&gt; 
&gt; I think this can be done in a follow-up bug.

Filed:
https://bugs.webkit.org/show_bug.cgi?id=131311
Use displayNameForTrack instead of textTrack-&gt;label() for captions.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm:216
&gt; &gt; +        platformTrack = m_mediaElement-&gt;platformTextTracks()[static_cast&lt;size_t&gt;(index)];
&gt; 
&gt; I should have noticed this before, but why pass a uint64_t when we need a size_t?

I tried size_t first. It is unprecedented and has no encoder/decoder. My hypothesis is that it is not used because web process and UI process aren&apos;t required to be the same architecture. In theory, there could be a 32-bit UI process talking to a 64-bit web process. They would disagree on how this value is serialized. So it makes sense to require more explicit data sizes. Just a hypothesis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>998223</commentid>
    <comment_count>7</comment_count>
      <attachid>228618</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-04-07 13:25:02 -0700</bug_when>
    <thetext>Comment on attachment 228618
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:106
&gt; +@property (retain) NSArray *audioMediaSelectionOptions; // readonly

what’s up with the // readonly?

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:250
&gt; +    return ([self hasAudioMediaSelectionOptions] || [self hasLegibleMediaSelectionOptions]);

no need for parens

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:260
&gt; +    return ([[self audioMediaSelectionOptions] count] &gt; 0);

nor here nor in a few other places.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:484
&gt; +static NSMutableArray* mediaSelectionOptions(const Vector&lt;String&gt;&amp; options)

all of the ObjC stars are on the wrong side!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999073</commentid>
    <comment_count>8</comment_count>
      <attachid>228937</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-08 22:40:08 -0700</bug_when>
    <thetext>Created attachment 228937
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999074</commentid>
    <comment_count>9</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-08 22:40:42 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 228618 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=228618&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:106
&gt; &gt; +@property (retain) NSArray *audioMediaSelectionOptions; // readonly
&gt; 
&gt; what’s up with the // readonly?

Deleted

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:250
&gt; &gt; +    return ([self hasAudioMediaSelectionOptions] || [self hasLegibleMediaSelectionOptions]);
&gt; 
&gt; no need for parens

Deleted.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:260
&gt; &gt; +    return ([[self audioMediaSelectionOptions] count] &gt; 0);
&gt; 
&gt; nor here nor in a few other places.

Deleted. 

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:484
&gt; &gt; +static NSMutableArray* mediaSelectionOptions(const Vector&lt;String&gt;&amp; options)
&gt; 
&gt; all of the ObjC stars are on the wrong side!

Moved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999230</commentid>
    <comment_count>10</comment_count>
      <attachid>228937</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 10:57:39 -0700</bug_when>
    <thetext>Comment on attachment 228937
Patch

Rejecting attachment 228937 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.appspot.com&apos;, &apos;--bot-id=webkit-cq-03&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 228937, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
VideoFullscreenManagerProxy.messages.in
patching file Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm
patching file Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.h
patching file Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.messages.in
patching file Source/WebKit2/WebProcess/ios/WebVideoFullscreenManager.mm

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Eric Carlson&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.appspot.com/results/5561260254953472</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999306</commentid>
    <comment_count>11</comment_count>
      <attachid>228986</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-04-09 14:50:52 -0700</bug_when>
    <thetext>Created attachment 228986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>999335</commentid>
    <comment_count>12</comment_count>
      <attachid>228986</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-04-09 15:33:56 -0700</bug_when>
    <thetext>Comment on attachment 228986
Patch

Clearing flags on attachment: 228986

Committed r167044: &lt;http://trac.webkit.org/changeset/167044&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228327</attachid>
            <date>2014-04-01 15:19:47 -0700</date>
            <delta_ts>2014-04-04 14:50:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131069-20140401151930.patch</filename>
            <type>text/plain</type>
            <size>24503</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhiZjhjOThhOTNhNmFl
MWYwMTllNDJmNDBmNDA1NDJhM2VhOTUzYy4uN2U0N2QwMWE4ZmE2NjBhNGRhODhiODEwY2RkYmQ0
OTA1NzBjOTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA0LTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgZnVsbHNjcmVl
biBjYXB0aW9ucyBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBtZWRpYSBzZWxlY3Rpb24gb3B0aW9ucyBmcm9tIGZ1bGxzY3Jl
ZW4uIGkuZS4gY2FwdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
QWRkIGV4cG9ydHMgZm9yIAorICAgICAgICBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucwor
ICAgICAgICBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCisgICAgICAgIHNlbGVjdEF1
ZGlvTWVkaWFPcHRpb24KKyAgICAgICAgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg6CisgICAgICAg
IEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
L3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgQWRkIHNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMK
KworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAo
LVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zXSk6CisgICAg
ICAgICgrW1dlYkFWUGxheWVyQ29udHJvbGxlciBrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hh
c01lZGlhU2VsZWN0aW9uT3B0aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xs
ZXIgaGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzQXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGhhc0xlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgY3VycmVudEF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb25dKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNl
dEN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOl0pOgorICAgICAgICAoLVtXZWJBVlBs
YXllckNvbnRyb2xsZXIgY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbl0pOgorICAg
ICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgc2V0Q3VycmVudExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbjpdKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6CisgICAgICAg
IEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRpYU9wdGlvbgorCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgIEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRp
YU9wdGlvbgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICBBZGQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbi9zZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudCk6CisgICAgICAgIFNlbmQgaW5pdGlhbCBtZWRp
YSBzZWxlY3Rpb24gb3B0aW9ucy4KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOgorICAgICAgICBXaWxsIGJlIGlt
cGxlbWVudGVkIHdoZW4gYXVkaW8gdHJhY2sgc2xlY3Rpb24gaXMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24pOgorICAgICAgICBTZWxlY3QgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIG9u
IEhUTUxNZWRpYUVsZW1lbnQuCisKIDIwMTQtMDMtMjYgIEFudG9uaW8gR29tZXMgIDxhMS5nb21l
c0BzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtCaW5kaW5nc10gY29uc3RhbnRzIGFyZSBh
bHdheXMgdHlwZWQgdG8gJ2ludCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxY2RhN2E4MmFlYzAzODc0Zjg4OTJi
YWY5YWZkNmMyZmEyNjk0NWE5Li41YzY0MDdlMGM3MThhNzg3ZTkyOGJjNTEwNTIxZjg2NDczMzBj
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTQtMDQtMDEgIEplcmVteSBKb25l
cyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBmdWxsc2NyZWVuIGNhcHRp
b25zIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRW5hYmxlIG1lZGlhIHNlbGVjdGlvbiBpbiBmdWxsc2NyZWVuLgorICAgICAgICBzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
IHByb3ZpZGUgYSBsaXN0IG9mIG9wdGlvbnMuCisgICAgICAgIHNlbGVjdEF1ZGlvTWVkaWFPcHRp
b24vc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uIGNoYW5nZSB0aGUgc2VsZWN0ZWQgb3B0aW9uLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24vc2VsZWN0TGVnaWJsZU1lZGlh
T3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24v
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKToKKyAgICAgICAg
QWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6CisgICAgICAg
IEFkZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAqIFdlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgIEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIEFkZCBzZXRB
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMpOgorICAgICAg
ICBBZGQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucworCiAyMDE0LTAzLTI4ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dU
S10gUnVubmluZyBtaW5pYnJvd3NlciB3aXRoIHVybCBjcmFzaGVzIGluIGRlYnVnIGJ1aWxkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGI1MzM0NWYyYjNjOGY1Y2Q1NzJiNTc1NzE3NGQ3ZmNjM2Uw
YTFlMTAuLjQzZmE4NTg4NmU2NDFiYTExMzhiNDZiNDk4YzYzZWU3ZDJkMDNhZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0zMjYzLDcgKzMyNjMsOSBAQCBfX1pON1dlYkNvcmUzNVdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgogX19aTjdXZWJD
b3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE4c2V0VmlkZW9MYXllckZy
YW1lRU5TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50MjBzZXRWaWRlb0xheWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsMTJWaWRlb0dyYXZpdHlFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzVX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDIyc2VsZWN0QXVkaW9NZWRpYU9wdGlv
bkV5CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MjNz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyNHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbkV5CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50NHBsYXlFdgog
X19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDVwYXVzZUV2
CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50QzJFdgpA
QCAtMzI4Miw2ICszMjg0LDggQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRVI3Q0FMYXllcgogX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRp
bWVSYW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZmCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQyOXNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5T
MV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUV5CitfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzFzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUV5CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzVz
ZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckVQTlNfMzJXZWJWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlckUKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ3c2V0UmF0ZUViZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdEMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAppbmRleCA4ODQxMjczNjhjOGE1NmUzZmJm
NzA5MTVlYzFkNmNkZWVkNzY0ODEzLi4xOGQ2YmRjZTczYzBkZmVjYzg4NjhiODNkNDkwNDUwNGI1
ZTRiYTJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBAIC0yOSw2ICsyOSwxMiBAQAogCiAjaWYgUExB
VEZPUk0oSU9TKQogCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsK
K2NsYXNzIFN0cmluZzsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgVGlt
ZVJhbmdlczsKQEAgLTQxLDYgKzQ3LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRS
YXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3Qg
VGltZVJhbmdlcyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVk
SW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRl
eCkgPSAwOworICAgIAogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCA3
NmQxZjc3OTNiOWIyYjc4ODdkNDQ3MDg3Yjk0ODEzMjcxOTYyNjk1Li4xYzQ3ZWI2MWY1NGZkZTMx
MjYzZGEyNDU0YTMwNDgxMWNjYjViN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApA
QCAtODEsNyArODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBp
c1BsYXlpbmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lk
IHNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVp
Z2h0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3Qg
VGltZVJhbmdlcyYpIG92ZXJyaWRlOwotCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBz
ZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qg
c2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CisgICAgICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbnRl
ckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNj
cmVlbigpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAzMGVjNjBkODdi
NzRjZDRkYjhkNWI0ZWVjNTA0NjA1MDQwMzcyZGRjLi5mNjc0MjIwNjY2ZjZhNjU1NGVlYWMwZDM1
ZTQ5NDY3NTg4YzQyNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC03Miw3
ICs3MiwxMyBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVuZCwgQ01UaW1l
LCAoQ01UaW1lUmFuZ2UgcmFuZ2UpLCAocmFuZ2UpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01U
aW1lUmFuZ2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0aW9u
KSwgKHN0YXJ0LCBkdXJhdGlvbikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFj
dCwgQ01UaW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKSwgKG1pbnVlbmQs
IHN1YnRyYWhlbmQpKQogCitAY2xhc3MgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogQGlu
dGVyZmFjZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29u
dHJvbGxlckRlbGVnYXRlPgoreworICAgIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKl9jdXJy
ZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbjsKKyAgICBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0
aW9uICpfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKK30KIAogQHByb3BlcnR5
KHJldGFpbikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CiBAcHJv
cGVydHkoYXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdhdGU7CkBAIC05NSw2
ICsxMDEsMTQgQEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwg
KENNVGltZSBtaW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKIEBwcm9wZXJ0eShyZXRhaW4pIEFW
VmFsdWVUaW1pbmcgKnRpbWluZzsKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxl
VGltZVJhbmdlczsKIAorQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlv
bk9wdGlvbnM7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKmF1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zOyAvLyByZWFkb25seQorQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFTZWxl
Y3Rpb25PcHRpb24gKmN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOworQHByb3BlcnR5
IChyZWFkb25seSkgQk9PTCBoYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zOworQHByb3Bl
cnR5IChyZXRhaW4pIE5TQXJyYXkgKmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnM7IC8vIHJl
YWRvbmx5CitAcHJvcGVydHkgKHJldGFpbikgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAqY3Vy
cmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogLSAoQk9PTClwbGF5ZXJWaWV3Q29u
dHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNo
b3VsZERpc21pc3NXaXRoUmVhc29uOihBVlBsYXllclZpZXdDb250cm9sbGVyRGlzbWlzc2FsUmVh
c29uKXJlYXNvbjsKIEBlbmQKIApAQCAtMTE2LDYgKzEzMCwxMCBAQCBTT0ZUX0xJTksoQ29yZU1l
ZGlhLCBDTVRpbWVTdWJ0cmFjdCwgQ01UaW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0
cmFoZW5kKQogICAgIFtfbG9hZGVkVGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3NlZWthYmxl
VGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3RpbWluZyByZWxlYXNlXTsKKyAgICBbX2F1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb25zIHJlbGVhc2VdOworICAgIFtfbGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyByZWxlYXNlXTsKKyAgICBbX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0
aW9uIHJlbGVhc2VdOworICAgIFtfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbiBy
ZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTIyNyw2ICsyNDUsOTEgQEAg
U09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGltZSBtaW51
ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKICAgICAgICAgW3NlbGYgc2Vla1RvVGltZTp0aW1lQXRF
bmRPZlNlZWthYmxlVGltZVJhbmdlc107CiB9CiAKKy0gKEJPT0wpaGFzTWVkaWFTZWxlY3Rpb25P
cHRpb25zCit7CisgICAgcmV0dXJuIChbc2VsZiBoYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9u
c10gfHwgW3NlbGYgaGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc10pOworfQorCisrIChO
U1NldCAqKWtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTWVkaWFTZWxlY3Rpb25PcHRpb25z
Cit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0czpAImhhc0F1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zIiwgQCJoYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zIiwgbmlsXTsK
K30KKworLSAoQk9PTCloYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworeworICAgIHJldHVy
biAoW1tzZWxmIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zXSBjb3VudF0gPiAwKTsKK30KKwor
KyAoTlNTZXQgKilrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hhc0F1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zCit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0OkAiYXVkaW9NZWRp
YVNlbGVjdGlvbk9wdGlvbnMiXTsKK30KKworLSAoQk9PTCloYXNMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zCit7CisgICAgcmV0dXJuIChbW3NlbGYgbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uc10gY291bnRdID4gMCk7Cit9CisKKysgKE5TU2V0ICopa2V5UGF0aHNGb3JWYWx1ZXNBZmZl
Y3RpbmdIYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCit7CisgICAgcmV0dXJuIFtOU1Nl
dCBzZXRXaXRoT2JqZWN0OkAibGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyJdOworfQorCist
IChXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKiljdXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9w
dGlvbgoreworICAgIHJldHVybiBfY3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb247Cit9
CisKKy0gKHZvaWQpc2V0Q3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb246KFdlYkFWTWVk
aWFTZWxlY3Rpb25PcHRpb24qKW9wdGlvbgoreworICAgIGlmIChvcHRpb24gPT0gX2N1cnJlbnRB
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW19j
dXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbiByZWxlYXNlXTsKKyAgICBfY3VycmVudEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24gPSBbb3B0aW9uIHJldGFpbl07CisgICAgCisgICAgQVNT
RVJUKHNlbGYuZGVsZWdhdGUpOworICAgIAorICAgIE5TSW50ZWdlciBpbmRleCA9IE5TTm90Rm91
bmQ7CisgICAgCisgICAgaWYgKG9wdGlvbiAmJiBzZWxmLmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zKQorICAgICAgICBpbmRleCA9IFtzZWxmLmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zIGlu
ZGV4T2ZPYmplY3Q6b3B0aW9uXTsKKyAgICAKKyAgICBpZiAoaW5kZXggIT0gTlNOb3RGb3VuZCkK
KyAgICAgICAgc2VsZi5kZWxlZ2F0ZS0+c2VsZWN0QXVkaW9NZWRpYU9wdGlvbihpbmRleCAhPSBO
U05vdEZvdW5kID8gaW5kZXggOiBVSU5UNjRfTUFYKTsKK30KKworLSAoV2ViQVZNZWRpYVNlbGVj
dGlvbk9wdGlvbiopY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbgoreworICAgIHJl
dHVybiBfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKK30KKworLSAodm9pZClz
ZXRDdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uOihXZWJBVk1lZGlhU2VsZWN0aW9u
T3B0aW9uKilvcHRpb24KK3sKKyAgICBpZiAob3B0aW9uID09IF9jdXJyZW50TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9uKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW19jdXJyZW50TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOworICAgIF9jdXJyZW50TGVnaWJsZU1l
ZGlhU2VsZWN0aW9uT3B0aW9uID0gW29wdGlvbiByZXRhaW5dOworICAgIAorICAgIEFTU0VSVChz
ZWxmLmRlbGVnYXRlKTsKKyAgICAKKyAgICBOU0ludGVnZXIgaW5kZXggPSBOU05vdEZvdW5kOwor
ICAgIAorICAgIGlmIChvcHRpb24gJiYgc2VsZi5sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25z
KQorICAgICAgICBpbmRleCA9IFtzZWxmLmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMgaW5k
ZXhPZk9iamVjdDpvcHRpb25dOworICAgIAorICAgIGlmIChpbmRleCAhPSBOU05vdEZvdW5kKQor
ICAgICAgICBzZWxmLmRlbGVnYXRlLT5zZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24oaW5kZXggIT0g
TlNOb3RGb3VuZCA/IGluZGV4IDogVUlOVDY0X01BWCk7Cit9CisKK0BlbmQKKworQGludGVyZmFj
ZSBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIDogTlNPYmplY3QKK0Bwcm9wZXJ0eSAocmV0YWlu
KSBOU1N0cmluZyogbG9jYWxpemVkRGlzcGxheU5hbWU7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlv
biBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uCiBAZW5kCiAKIEBpbnRlcmZhY2UgV2ViQVZWaWRl
b0xheWVyIDogQ0FMYXllciA8QVZWaWRlb0xheWVyPgpAQCAtMzgwLDYgKzQ4MywzNiBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRTZWVrYWJsZVJhbmdlcyhjb25z
dCBUaW1lUmFuZ2VzJiB0aW1lUgogICAgIHBsYXllckNvbnRyb2xsZXIoKS5zZWVrYWJsZVRpbWVS
YW5nZXMgPSBzZWVrYWJsZVJhbmdlczsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDo6c2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpCit7CisgICAgTlNNdXRhYmxl
QXJyYXkqIHdlYk9wdGlvbnMgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAoYXV0
byYgbmFtZSA6IG9wdGlvbnMpIHsKKyAgICAgICAgUmV0YWluUHRyPFdlYkFWTWVkaWFTZWxlY3Rp
b25PcHRpb24+IHdlYk9wdGlvbiA9IGFkb3B0TlMoW1tXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9u
IGFsbG9jXSBpbml0XSk7CisgICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gbmFtZVN0cmluZyA9
IGFkb3B0TlMoW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhVVEY4U3RyaW5nOm5hbWUudXRmOCgp
LmRhdGEoKV0pOworICAgICAgICBbd2ViT3B0aW9uIHNldExvY2FsaXplZERpc3BsYXlOYW1lOm5h
bWVTdHJpbmcuZ2V0KCldOworICAgICAgICBbd2ViT3B0aW9ucyBhZGRPYmplY3Q6d2ViT3B0aW9u
LmdldCgpXTsKKyAgICB9CisgICAgICAgIAorICAgIHBsYXllckNvbnRyb2xsZXIoKS5hdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9ucyA9IHdlYk9wdGlvbnM7CisgICAgaWYgKHNlbGVjdGVkSW5kZXgg
PCB3ZWJPcHRpb25zLmNvdW50KQorICAgICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY3VycmVudEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24gPSB3ZWJPcHRpb25zWyhzaXplX3Qpc2VsZWN0ZWRJbmRl
eF07Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldExlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVp
bnQ2NF90IHNlbGVjdGVkSW5kZXgpCit7CisgICAgTlNNdXRhYmxlQXJyYXkqIHdlYk9wdGlvbnMg
PSBbTlNNdXRhYmxlQXJyYXkgYXJyYXldOworICAgIGZvciAoYXV0byYgbmFtZSA6IG9wdGlvbnMp
IHsKKyAgICAgICAgUmV0YWluUHRyPFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24+IHdlYk9wdGlv
biA9IGFkb3B0TlMoW1tXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uIGFsbG9jXSBpbml0XSk7Cisg
ICAgICAgIFJldGFpblB0cjxOU1N0cmluZz4gbmFtZVN0cmluZyA9IGFkb3B0TlMoW1tOU1N0cmlu
ZyBhbGxvY10gaW5pdFdpdGhVVEY4U3RyaW5nOm5hbWUudXRmOCgpLmRhdGEoKV0pOworICAgICAg
ICBbd2ViT3B0aW9uIHNldExvY2FsaXplZERpc3BsYXlOYW1lOm5hbWVTdHJpbmcuZ2V0KCldOwor
ICAgICAgICBbd2ViT3B0aW9ucyBhZGRPYmplY3Q6d2ViT3B0aW9uLmdldCgpXTsKKyAgICB9Cisg
ICAgCisgICAgcGxheWVyQ29udHJvbGxlcigpLmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMg
PSB3ZWJPcHRpb25zOworICAgIGlmIChzZWxlY3RlZEluZGV4IDwgd2ViT3B0aW9ucy5jb3VudCkK
KyAgICAgICAgcGxheWVyQ29udHJvbGxlcigpLmN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb24gPSB3ZWJPcHRpb25zWyhzaXplX3Qpc2VsZWN0ZWRJbmRleF07Cit9CisKIHZvaWQgV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OmVudGVyRnVsbHNjcmVlbihQbGF0Zm9ybUxh
eWVyJiB2aWRlb0xheWVyKQogewogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0PiBwcm90ZWN0KHRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAppbmRleCA3OWI5MmQxNWRj
M2EwYzQ0MmNiMjFlZDk4ZGY2ODRmNjFkNzVlN2ViLi4yMTAyZWE4ZTFlNDcwZWFjYWZmZWMyOWE2
NjEyNzNjNTliNTZjNjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaApAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZShGbG9hdFJlY3QpID0gMDsKICAgICBl
bnVtIFZpZGVvR3Jhdml0eSB7IFZpZGVvR3Jhdml0eVJlc2l6ZSwgVmlkZW9HcmF2aXR5UmVzaXpl
QXNwZWN0LCBWaWRlb0dyYXZpdHlSZXNpemVBc3BlY3RGaWxsIH07CiAgICAgdmlydHVhbCB2b2lk
IHNldFZpZGVvTGF5ZXJHcmF2aXR5KFZpZGVvR3Jhdml0eSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaAppbmRleCBlMjY0NzA4MTAzMGQz
ODZmMmNlZjkzNmJkZjY1YTFkMTU3NWJjNzkwLi45ZWI1OTYxZDUwYzQ5NDVkOWUxMjlkMjIwNTZh
YmIzMzU2MzI2NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaApAQCAtNjUs
NyArNjUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RFeGl0RnVsbHNjcmVl
bigpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWUoRmxvYXRS
ZWN0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHkoV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSkgb3ZlcnJpZGU7Ci0KKyAgICB2aXJ0
dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRl
eCkgb3ZlcnJpZGU7CisgICAgCiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQubW0KaW5kZXggNjAwZDgxNWEyMjE0ZjBiOTRhZjhjMTAxMTdkNDdkYmEwMmRlNDk5OC4uOWRl
MmJiMTc3NWJiM2JiM2E5NjQwMjFlODkzNTBmNzZiOTMxMzU4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
b2RlbE1lZGlhRWxlbWVudC5tbQpAQCAtODYsNyArODYsMTQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0TWVkaWFFbGVtZW50KEhUTUxNZWRpYUVsZW1lbnQq
IG1lZGkKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0RHVyYXRpb24obV9tZWRp
YUVsZW1lbnQtPmR1cmF0aW9uKCkpOwogICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5z
ZXRTZWVrYWJsZVJhbmdlcygqbV9tZWRpYUVsZW1lbnQtPnNlZWthYmxlKCkpOwogICAgIG1fdmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRSYXRlKG1fbWVkaWFFbGVtZW50LT5pc1BsYXlpbmco
KSwgbV9tZWRpYUVsZW1lbnQtPnBsYXliYWNrUmF0ZSgpKTsKLQorICAgIAorICAgIFZlY3RvcjxT
dHJpbmc+IGxlZ2libGVPcHRpb25zOworICAgIAorICAgIGZvciAoYXV0byYgdGV4dFRyYWNrIDog
bV9tZWRpYUVsZW1lbnQtPnBsYXRmb3JtVGV4dFRyYWNrcygpKQorICAgICAgICBsZWdpYmxlT3B0
aW9ucy5hcHBlbmQodGV4dFRyYWNrLT5sYWJlbCgpKTsKKyAgICAKKyAgICBtX3ZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZS0+c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhsZWdpYmxlT3B0
aW9ucywgMCk7CisgICAgCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJl
bnRUaW1lKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJv
Y2Vzc0luZm9dIHN5c3RlbVVwdGltZV0pOwogCiAgICAgaWYgKGlzSFRNTFZpZGVvRWxlbWVudCht
X21lZGlhRWxlbWVudC5nZXQoKSkpIHsKQEAgLTE5Niw0ICsyMDMsMTggQEAgdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDo6c2V0VmlkZW9MYXllckdyYXZpdHkoV2ViVmlk
ZW9GdWxsc2NyZWUKICAgICBtX21lZGlhRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0
eSh2aWRlb0dyYXZpdHkpOwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFF
bGVtZW50OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KQoreworfQorCit2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFPcHRp
b24odWludDY0X3QgaW5kZXgpCit7CisgICAgUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPiBwbGF0
Zm9ybVRyYWNrOworICAgIAorICAgIGlmIChpbmRleCA8IG1fbWVkaWFFbGVtZW50LT5wbGF0Zm9y
bVRleHRUcmFja3MoKS5zaXplKCkpCisgICAgICAgIHBsYXRmb3JtVHJhY2sgPSBtX21lZGlhRWxl
bWVudC0+cGxhdGZvcm1UZXh0VHJhY2tzKClbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCldOwor
ICAgIAorICAgIG1fbWVkaWFFbGVtZW50LT5zZXRTZWxlY3RlZFRleHRUcmFjayhwbGF0Zm9ybVRy
YWNrKTsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBlOTYwYjZm
NmQ0MzE1NDY0Y2NlZjFhMGQ4OTliOWU0OTFkNjRiOWI0Li43MzM3OGY4NTA5ZmUwODBmZDdkZjdk
ZTkxZDU5ZDY2ZjBlOWFiY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTY3LDYg
KzY3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvVGltZShkb3VibGUpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6Rmxv
YXRSZWN0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHko
V2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAg
UmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fbGF5ZXJIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCBkM2UxNWY5ZjkyMGNkMzQzNGE5ZjAzNjg3
YzYwNGIwMjQwMDUxOTZjLi4zZGFiMzI5MzFmZDFiMjdmMzdjNmFlOTg4N2Y5ODYzZDI4MjQwMDI1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUs
NiArMjUsOCBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewog
ICAgIFNldEN1cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKQog
ICAgIFNldFZpZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5z
aWduZWQgaGVpZ2h0KQogICAgIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBh
aXI8ZG91YmxlLCBkb3VibGU+PiByYW5nZXMpOworICAgIFNldEF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zKFZlY3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwor
ICAgIFNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoVmVjdG9yPFN0cmluZz4gb3B0aW9u
cywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0
aW9uKQogICAgIFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQogICAgIEVudGVy
RnVsbHNjcmVlbldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tCmluZGV4IGY1ZGJkYjVmMjQ5ZjQ0MzZhOTU0MjY0NjAwYjRkNDQ1MjUyZDI3ODcu
LjljMDExNzZkNDBkYjgyM2RiM2Y0Yzk0NWZkNjc0NDk2OTE1YWNhZDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCkBAIC0xMjUsNiArMTI1LDE2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJWaWRlb0Z1
bGxzCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0oKHVuc2lnbmVkKWdyYXZpdHkpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQoreworICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2VsZWN0QXVkaW9NZWRp
YU9wdGlvbihpbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRf
dCBpbmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OlNlbGVjdExlZ2libGVNZWRpYU9wdGlvbihpbmRleCksIG1fcGFnZS0+cGFnZUlE
KCkpOworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4
IDM2NDVmMDAyMjlhZTUxYzBmZTU2NmEzMDcxZDRjZjQxOThkZTQxMjkuLjMxZTc4NzE1ZDg4MjIw
NWU0NjQ5N2MyNjA3YWZlYzA0Y2Y4NTQ1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcxLDYg
KzcxLDggQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5
aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRW
aWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKGNvbnN0IFdlYkNv
cmU6OlRpbWVSYW5nZXMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRp
YVNlbGVjdGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90
IHNlbGVjdGVkSW5kZXgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRf
dCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKICAgICAKICAgICAvLyBhZGRpdGlvbmFsIGluY29t
aW5nCiAgICAgdmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggNGZiZGUwZmJmNGRkNGE4OWNmYTE1NDEyYmQz
ZmI4ZWU3ZDdlMTJlNy4uY2RkZTRiNzNlYjIyYjFlMzgzM2ZlMTJjZjE5ODA5ZTczZDZlNzdlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMSw1ICszMSw3IEBA
IG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIERpZEVudGVyRnVs
bHNjcmVlbigpCiAgICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZHMpCiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCisgICAg
U2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKKyAgICBTZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CmluZGV4IDUyYmNmYTcxZmJkZTg4OWYzMTliOGEyODk5Yzc0NGY5MzNiNDUyYzAuLjYzM2Y5N2Fi
MzdiYTM1ODJjYjRmMzQ4MDVkYzk5MWZmZmU5NGQ5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMTM1LDYgKzEzNSwxNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFNl
ZWthYmxlUmFuZ2VzKGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmIHRpbQogICAgIG1fcGFnZS0+
c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRTZWVrYWJs
ZVJhbmdlc1ZlY3RvcihzdGQ6Om1vdmUocmFuZ2VzVmVjdG9yKSksIG1fcGFnZS0+cGFnZUlEKCkp
OwogfQogCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxl
Y3RlZEluZGV4KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpTZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhvcHRpb25zLCBz
ZWxlY3RlZEluZGV4KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0
b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhvcHRpb25zLCBzZWxlY3RlZEluZGV4KSwgbV9wYWdl
LT5wYWdlSUQoKSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZEVudGVyRnVsbHNjcmVlbigpCiB7CiAgICAgbV9pc0FuaW1hdGluZyA9IGZhbHNlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228618</attachid>
            <date>2014-04-04 14:50:45 -0700</date>
            <delta_ts>2014-04-07 13:25:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131069-20140404145027.patch</filename>
            <type>text/plain</type>
            <size>24209</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhiZjhjOThhOTNhNmFl
MWYwMTllNDJmNDBmNDA1NDJhM2VhOTUzYy4uN2U0N2QwMWE4ZmE2NjBhNGRhODhiODEwY2RkYmQ0
OTA1NzBjOTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA0LTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgZnVsbHNjcmVl
biBjYXB0aW9ucyBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBtZWRpYSBzZWxlY3Rpb24gb3B0aW9ucyBmcm9tIGZ1bGxzY3Jl
ZW4uIGkuZS4gY2FwdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
QWRkIGV4cG9ydHMgZm9yIAorICAgICAgICBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucwor
ICAgICAgICBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCisgICAgICAgIHNlbGVjdEF1
ZGlvTWVkaWFPcHRpb24KKyAgICAgICAgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg6CisgICAgICAg
IEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
L3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgQWRkIHNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMK
KworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAo
LVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zXSk6CisgICAg
ICAgICgrW1dlYkFWUGxheWVyQ29udHJvbGxlciBrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hh
c01lZGlhU2VsZWN0aW9uT3B0aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xs
ZXIgaGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzQXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGhhc0xlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgY3VycmVudEF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb25dKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNl
dEN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOl0pOgorICAgICAgICAoLVtXZWJBVlBs
YXllckNvbnRyb2xsZXIgY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbl0pOgorICAg
ICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgc2V0Q3VycmVudExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbjpdKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6CisgICAgICAg
IEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRpYU9wdGlvbgorCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgIEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRp
YU9wdGlvbgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICBBZGQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbi9zZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudCk6CisgICAgICAgIFNlbmQgaW5pdGlhbCBtZWRp
YSBzZWxlY3Rpb24gb3B0aW9ucy4KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOgorICAgICAgICBXaWxsIGJlIGlt
cGxlbWVudGVkIHdoZW4gYXVkaW8gdHJhY2sgc2xlY3Rpb24gaXMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24pOgorICAgICAgICBTZWxlY3QgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIG9u
IEhUTUxNZWRpYUVsZW1lbnQuCisKIDIwMTQtMDMtMjYgIEFudG9uaW8gR29tZXMgIDxhMS5nb21l
c0BzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtCaW5kaW5nc10gY29uc3RhbnRzIGFyZSBh
bHdheXMgdHlwZWQgdG8gJ2ludCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxY2RhN2E4MmFlYzAzODc0Zjg4OTJi
YWY5YWZkNmMyZmEyNjk0NWE5Li41YzY0MDdlMGM3MThhNzg3ZTkyOGJjNTEwNTIxZjg2NDczMzBj
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTQtMDQtMDEgIEplcmVteSBKb25l
cyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBmdWxsc2NyZWVuIGNhcHRp
b25zIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRW5hYmxlIG1lZGlhIHNlbGVjdGlvbiBpbiBmdWxsc2NyZWVuLgorICAgICAgICBzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
IHByb3ZpZGUgYSBsaXN0IG9mIG9wdGlvbnMuCisgICAgICAgIHNlbGVjdEF1ZGlvTWVkaWFPcHRp
b24vc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uIGNoYW5nZSB0aGUgc2VsZWN0ZWQgb3B0aW9uLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24vc2VsZWN0TGVnaWJsZU1lZGlh
T3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24v
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKToKKyAgICAgICAg
QWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6CisgICAgICAg
IEFkZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAqIFdlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgIEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIEFkZCBzZXRB
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMpOgorICAgICAg
ICBBZGQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucworCiAyMDE0LTAzLTI4ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dU
S10gUnVubmluZyBtaW5pYnJvd3NlciB3aXRoIHVybCBjcmFzaGVzIGluIGRlYnVnIGJ1aWxkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGI1MzM0NWYyYjNjOGY1Y2Q1NzJiNTc1NzE3NGQ3ZmNjM2Uw
YTFlMTAuLjQzZmE4NTg4NmU2NDFiYTExMzhiNDZiNDk4YzYzZWU3ZDJkMDNhZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0zMjYzLDcgKzMyNjMsOSBAQCBfX1pON1dlYkNvcmUzNVdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgogX19aTjdXZWJD
b3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE4c2V0VmlkZW9MYXllckZy
YW1lRU5TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50MjBzZXRWaWRlb0xheWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsMTJWaWRlb0dyYXZpdHlFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzVX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDIyc2VsZWN0QXVkaW9NZWRpYU9wdGlv
bkV5CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MjNz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyNHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbkV5CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50NHBsYXlFdgog
X19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDVwYXVzZUV2
CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50QzJFdgpA
QCAtMzI4Miw2ICszMjg0LDggQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRVI3Q0FMYXllcgogX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRp
bWVSYW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZmCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQyOXNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5T
MV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUV5CitfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzFzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUV5CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzVz
ZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckVQTlNfMzJXZWJWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlckUKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ3c2V0UmF0ZUViZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdEMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAppbmRleCA4ODQxMjczNjhjOGE1NmUzZmJm
NzA5MTVlYzFkNmNkZWVkNzY0ODEzLi40YmFjMWE0ZGM4ZjcxZjgyMzQ0ZjkwZGEyMjdhZWEzNWU0
M2Y1MTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBAIC0yOSw2ICsyOSwxMiBAQAogCiAjaWYgUExB
VEZPUk0oSU9TKQogCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsK
K2NsYXNzIFN0cmluZzsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgVGlt
ZVJhbmdlczsKQEAgLTQxLDYgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRS
YXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3Qg
VGltZVJhbmdlcyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVk
SW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRl
eCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCA3NmQxZjc3
OTNiOWIyYjc4ODdkNDQ3MDg3Yjk0ODEzMjcxOTYyNjk1Li4xYzQ3ZWI2MWY1NGZkZTMxMjYzZGEy
NDU0YTMwNDgxMWNjYjViN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODEs
NyArODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJh
bmdlcyYpIG92ZXJyaWRlOwotCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3Rl
ZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0
ZWRJbmRleCkgb3ZlcnJpZGU7CisgICAgICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxz
Y3JlZW4oUGxhdGZvcm1MYXllciYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAzMGVjNjBkODdiNzRjZDRk
YjhkNWI0ZWVjNTA0NjA1MDQwMzcyZGRjLi5iNjhmMmY4MjBjMWYyMGRmZGQzNjU1YjUzNjNkMmI4
MjI3MmMwMDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC03Miw3ICs3Miwx
MyBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVuZCwgQ01UaW1lLCAoQ01U
aW1lUmFuZ2UgcmFuZ2UpLCAocmFuZ2UpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lUmFu
Z2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0aW9uKSwgKHN0
YXJ0LCBkdXJhdGlvbikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFjdCwgQ01U
aW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKSwgKG1pbnVlbmQsIHN1YnRy
YWhlbmQpKQogCitAY2xhc3MgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogQGludGVyZmFj
ZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxl
ckRlbGVnYXRlPgoreworICAgIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKl9jdXJyZW50QXVk
aW9NZWRpYVNlbGVjdGlvbk9wdGlvbjsKKyAgICBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICpf
Y3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKK30KIAogQHByb3BlcnR5KHJldGFp
bikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CiBAcHJvcGVydHko
YXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdhdGU7CkBAIC05NSw2ICsxMDEs
MTQgQEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGlt
ZSBtaW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKIEBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVU
aW1pbmcgKnRpbWluZzsKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJh
bmdlczsKIAorQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlvbk9wdGlv
bnM7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zOyAvLyByZWFkb25seQorQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFTZWxlY3Rpb25P
cHRpb24gKmN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOworQHByb3BlcnR5IChyZWFk
b25seSkgQk9PTCBoYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zOworQHByb3BlcnR5IChy
ZXRhaW4pIE5TQXJyYXkgKmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnM7IC8vIHJlYWRvbmx5
CitAcHJvcGVydHkgKHJldGFpbikgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAqY3VycmVudExl
Z2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxl
cjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZERp
c21pc3NXaXRoUmVhc29uOihBVlBsYXllclZpZXdDb250cm9sbGVyRGlzbWlzc2FsUmVhc29uKXJl
YXNvbjsKIEBlbmQKIApAQCAtMTE2LDYgKzEzMCwxMCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBD
TVRpbWVTdWJ0cmFjdCwgQ01UaW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5k
KQogICAgIFtfbG9hZGVkVGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3NlZWthYmxlVGltZVJh
bmdlcyByZWxlYXNlXTsKICAgICBbX3RpbWluZyByZWxlYXNlXTsKKyAgICBbX2F1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb25zIHJlbGVhc2VdOworICAgIFtfbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9ucyByZWxlYXNlXTsKKyAgICBbX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uIHJl
bGVhc2VdOworICAgIFtfY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbiByZWxlYXNl
XTsKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKQEAgLTIyNyw2ICsyNDUsODkgQEAgU09GVF9M
SU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGltZSBtaW51ZW5kLCBD
TVRpbWUgc3VidHJhaGVuZCkKICAgICAgICAgW3NlbGYgc2Vla1RvVGltZTp0aW1lQXRFbmRPZlNl
ZWthYmxlVGltZVJhbmdlc107CiB9CiAKKy0gKEJPT0wpaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25z
Cit7CisgICAgcmV0dXJuIChbc2VsZiBoYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uc10gfHwg
W3NlbGYgaGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc10pOworfQorCisrIChOU1NldCAq
KWtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zCit7Cisg
ICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0czpAImhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zIiwgQCJoYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zIiwgbmlsXTsKK30KKwor
LSAoQk9PTCloYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworeworICAgIHJldHVybiAoW1tz
ZWxmIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zXSBjb3VudF0gPiAwKTsKK30KKworKyAoTlNT
ZXQgKilrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zCit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0OkAiYXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnMiXTsKK30KKworLSAoQk9PTCloYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zCit7CisgICAgcmV0dXJuIChbW3NlbGYgbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc10g
Y291bnRdID4gMCk7Cit9CisKKysgKE5TU2V0ICopa2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3RpbmdI
YXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRX
aXRoT2JqZWN0OkAibGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyJdOworfQorCistIChXZWJB
Vk1lZGlhU2VsZWN0aW9uT3B0aW9uKiljdXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbgor
eworICAgIHJldHVybiBfY3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb247Cit9CisKKy0g
KHZvaWQpc2V0Q3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb246KFdlYkFWTWVkaWFTZWxl
Y3Rpb25PcHRpb24qKW9wdGlvbgoreworICAgIGlmIChvcHRpb24gPT0gX2N1cnJlbnRBdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9uKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW19jdXJyZW50
QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbiByZWxlYXNlXTsKKyAgICBfY3VycmVudEF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb24gPSBbb3B0aW9uIHJldGFpbl07CisgICAgCisgICAgQVNTRVJUKHNl
bGYuZGVsZWdhdGUpOworICAgIAorICAgIE5TSW50ZWdlciBpbmRleCA9IE5TTm90Rm91bmQ7Cisg
ICAgCisgICAgaWYgKG9wdGlvbiAmJiBzZWxmLmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKQor
ICAgICAgICBpbmRleCA9IFtzZWxmLmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zIGluZGV4T2ZP
YmplY3Q6b3B0aW9uXTsKKyAgICAKKyAgICBzZWxmLmRlbGVnYXRlLT5zZWxlY3RBdWRpb01lZGlh
T3B0aW9uKGluZGV4ICE9IE5TTm90Rm91bmQgPyBpbmRleCA6IFVJTlQ2NF9NQVgpOworfQorCist
IChXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uKiljdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9u
T3B0aW9uCit7CisgICAgcmV0dXJuIF9jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9u
OworfQorCistICh2b2lkKXNldEN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb246KFdl
YkFWTWVkaWFTZWxlY3Rpb25PcHRpb24qKW9wdGlvbgoreworICAgIGlmIChvcHRpb24gPT0gX2N1
cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb24pCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBbX2N1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb24gcmVsZWFzZV07CisgICAg
X2N1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb24gPSBbb3B0aW9uIHJldGFpbl07Cisg
ICAgCisgICAgQVNTRVJUKHNlbGYuZGVsZWdhdGUpOworICAgIAorICAgIE5TSW50ZWdlciBpbmRl
eCA9IE5TTm90Rm91bmQ7CisgICAgCisgICAgaWYgKG9wdGlvbiAmJiBzZWxmLmxlZ2libGVNZWRp
YVNlbGVjdGlvbk9wdGlvbnMpCisgICAgICAgIGluZGV4ID0gW3NlbGYubGVnaWJsZU1lZGlhU2Vs
ZWN0aW9uT3B0aW9ucyBpbmRleE9mT2JqZWN0Om9wdGlvbl07CisgICAgCisgICAgc2VsZi5kZWxl
Z2F0ZS0+c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKGluZGV4ICE9IE5TTm90Rm91bmQgPyBpbmRl
eCA6IFVJTlQ2NF9NQVgpOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgV2ViQVZNZWRpYVNlbGVj
dGlvbk9wdGlvbiA6IE5TT2JqZWN0CitAcHJvcGVydHkgKHJldGFpbikgTlNTdHJpbmcqIGxvY2Fs
aXplZERpc3BsYXlOYW1lOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV2ViQVZNZWRpYVNlbGVj
dGlvbk9wdGlvbgogQGVuZAogCiBAaW50ZXJmYWNlIFdlYkFWVmlkZW9MYXllciA6IENBTGF5ZXIg
PEFWVmlkZW9MYXllcj4KQEAgLTM4MCw2ICs0ODEsMzQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJhbmdlcyYgdGlt
ZVIKICAgICBwbGF5ZXJDb250cm9sbGVyKCkuc2Vla2FibGVUaW1lUmFuZ2VzID0gc2Vla2FibGVS
YW5nZXM7CiB9CiAKK3N0YXRpYyBOU011dGFibGVBcnJheSogbWVkaWFTZWxlY3Rpb25PcHRpb25z
KGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zKQoreworICAgIE5TTXV0YWJsZUFycmF5KiB3
ZWJPcHRpb25zID0gW05TTXV0YWJsZUFycmF5IGFycmF5V2l0aENhcGFjaXR5Om9wdGlvbnMuc2l6
ZSgpXTsKKyAgICBmb3IgKGF1dG8mIG5hbWUgOiBvcHRpb25zKSB7CisgICAgICAgIFJldGFpblB0
cjxXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uPiB3ZWJPcHRpb24gPSBhZG9wdE5TKFtbV2ViQVZN
ZWRpYVNlbGVjdGlvbk9wdGlvbiBhbGxvY10gaW5pdF0pOworICAgICAgICBSZXRhaW5QdHI8TlNT
dHJpbmc+IG5hbWVTdHJpbmcgPSBhZG9wdE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoVVRG
OFN0cmluZzpuYW1lLnV0ZjgoKS5kYXRhKCldKTsKKyAgICAgICAgW3dlYk9wdGlvbiBzZXRMb2Nh
bGl6ZWREaXNwbGF5TmFtZTpuYW1lU3RyaW5nLmdldCgpXTsKKyAgICAgICAgW3dlYk9wdGlvbnMg
YWRkT2JqZWN0OndlYk9wdGlvbi5nZXQoKV07CisgICAgfQorICAgIHJldHVybiB3ZWJPcHRpb25z
OworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRBdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0
X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBOU011dGFibGVBcnJheSogd2ViT3B0aW9ucyA9IG1l
ZGlhU2VsZWN0aW9uT3B0aW9ucyhvcHRpb25zKTsKKyAgICBwbGF5ZXJDb250cm9sbGVyKCkuYXVk
aW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMgPSB3ZWJPcHRpb25zOworICAgIGlmIChzZWxlY3RlZElu
ZGV4IDwgd2ViT3B0aW9ucy5jb3VudCkKKyAgICAgICAgcGxheWVyQ29udHJvbGxlcigpLmN1cnJl
bnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uID0gd2ViT3B0aW9uc1soc2l6ZV90KXNlbGVjdGVk
SW5kZXhdOworfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25z
LCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KQoreworICAgIE5TTXV0YWJsZUFycmF5KiB3ZWJPcHRp
b25zID0gbWVkaWFTZWxlY3Rpb25PcHRpb25zKG9wdGlvbnMpOworICAgIHBsYXllckNvbnRyb2xs
ZXIoKS5sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zID0gd2ViT3B0aW9uczsKKyAgICBpZiAo
c2VsZWN0ZWRJbmRleCA8IHdlYk9wdGlvbnMuY291bnQpCisgICAgICAgIHBsYXllckNvbnRyb2xs
ZXIoKS5jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uID0gd2ViT3B0aW9uc1soc2l6
ZV90KXNlbGVjdGVkSW5kZXhdOworfQorCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFj
ZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4oUGxhdGZvcm1MYXllciYgdmlkZW9MYXllcikKIHsKICAg
ICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVj
dCh0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsLmgKaW5kZXggNzliOTJkMTVkYzNhMGM0NDJjYjIxZWQ5OGRmNjg0ZjYx
ZDc1ZTdlYi4uMjEwMmVhOGUxZTQ3MGVhY2FmZmVjMjlhNjYxMjczYzU5YjU2YzY3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsLmgKQEAgLTQ0LDYgKzQ0LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRl
b0xheWVyRnJhbWUoRmxvYXRSZWN0KSA9IDA7CiAgICAgZW51bSBWaWRlb0dyYXZpdHkgeyBWaWRl
b0dyYXZpdHlSZXNpemUsIFZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdCwgVmlkZW9HcmF2aXR5UmVz
aXplQXNwZWN0RmlsbCB9OwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShW
aWRlb0dyYXZpdHkpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlv
bih1aW50NjRfdCBpbmRleCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVk
aWFPcHRpb24odWludDY0X3QgaW5kZXgpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50LmgKaW5kZXggZTI2NDcwODEwMzBkMzg2ZjJjZWY5MzZiZGY2NWExZDE1NzVi
Yzc5MC4uOGM5ZTYxMDY1Yzk2ZDcwMGM4OGQxODMwMzFmZDIwMDFiNWE0MmViMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKQEAgLTY1LDcgKzY1LDggQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhpdEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpW
aWRlb0dyYXZpdHkpIG92ZXJyaWRlOwotCisgICAgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVk
aWFPcHRpb24odWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tCmluZGV4IDYwMGQ4MTVhMjIxNGYwYjk0
YWY4YzEwMTE3ZDQ3ZGJhMDJkZTQ5OTguLmYwNGY1MTg3NDU4OTdhZmUxNjYyNThjN2Y3YTU5M2Yy
NTc3OWY2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTg3LDYg
Kzg3LDEzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1l
ZGlhRWxlbWVudChIVE1MTWVkaWFFbGVtZW50KiBtZWRpCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UtPnNldFNlZWthYmxlUmFuZ2VzKCptX21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7
CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFJhdGUobV9tZWRpYUVsZW1lbnQt
PmlzUGxheWluZygpLCBtX21lZGlhRWxlbWVudC0+cGxheWJhY2tSYXRlKCkpOwogCisgICAgVmVj
dG9yPFN0cmluZz4gbGVnaWJsZU9wdGlvbnM7CisgICAgCisgICAgZm9yIChhdXRvJiB0ZXh0VHJh
Y2sgOiBtX21lZGlhRWxlbWVudC0+cGxhdGZvcm1UZXh0VHJhY2tzKCkpCisgICAgICAgIGxlZ2li
bGVPcHRpb25zLmFwcGVuZCh0ZXh0VHJhY2stPmxhYmVsKCkpOworICAgIAorICAgIG1fdmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKGxlZ2li
bGVPcHRpb25zLCAwKTsKKyAgICAKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0
Q3VycmVudFRpbWUobV9tZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCksIFtbTlNQcm9jZXNzSW5m
byBwcm9jZXNzSW5mb10gc3lzdGVtVXB0aW1lXSk7CiAKICAgICBpZiAoaXNIVE1MVmlkZW9FbGVt
ZW50KG1fbWVkaWFFbGVtZW50LmdldCgpKSkgewpAQCAtMTk2LDQgKzIwMywxOSBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRWaWRlb0xheWVyR3Jhdml0eShX
ZWJWaWRlb0Z1bGxzY3JlZQogICAgIG1fbWVkaWFFbGVtZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5H
cmF2aXR5KHZpZGVvR3Jhdml0eSk7CiB9CiAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpCit7CisgICAgLy8g
RklYTUU6IDEzMTIzNiBJbXBsZW1lbnQgYXVkaW8gdHJhY2sgc2VsZWN0aW9uLgorfQorCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxlTWVkaWFP
cHRpb24odWludDY0X3QgaW5kZXgpCit7CisgICAgUmVmUHRyPFBsYXRmb3JtVGV4dFRyYWNrPiBw
bGF0Zm9ybVRyYWNrOworICAgIAorICAgIGlmIChpbmRleCA8IG1fbWVkaWFFbGVtZW50LT5wbGF0
Zm9ybVRleHRUcmFja3MoKS5zaXplKCkpCisgICAgICAgIHBsYXRmb3JtVHJhY2sgPSBtX21lZGlh
RWxlbWVudC0+cGxhdGZvcm1UZXh0VHJhY2tzKClbc3RhdGljX2Nhc3Q8c2l6ZV90PihpbmRleCld
OworICAgIAorICAgIG1fbWVkaWFFbGVtZW50LT5zZXRTZWxlY3RlZFRleHRUcmFjayhwbGF0Zm9y
bVRyYWNrKTsKK30KKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaAppbmRleCBlOTYw
YjZmNmQ0MzE1NDY0Y2NlZjFhMGQ4OTliOWU0OTFkNjRiOWI0Li5jYjlmNTI4M2E0NGRkNWE5M2Ex
ZTliOTAzOWY0OWYwODZiNjUyNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgKQEAgLTY3
LDYgKzY3LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2Vla1RvVGltZShkb3VibGUp
IG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6
RmxvYXRSZWN0KSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZp
dHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0
X3QpIG92ZXJyaWRlOwogCiAgICAgV2ViUGFnZVByb3h5KiBtX3BhZ2U7CiAgICAgUmV0YWluUHRy
PFBsYXRmb3JtTGF5ZXI+IG1fbGF5ZXJIb3N0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4g
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCBkM2UxNWY5ZjkyMGNkMzQzNGE5ZjAzNjg3YzYwNGIwMjQw
MDUxOTZjLi4zZGFiMzI5MzFmZDFiMjdmMzdjNmFlOTg4N2Y5ODYzZDI4MjQwMDI1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjUsNiArMjUsOCBA
QCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkgewogICAgIFNldEN1
cnJlbnRUaW1lKGRvdWJsZSBjdXJyZW50VGltZSwgZG91YmxlIGhvc3RUaW1lKQogICAgIFNldFZp
ZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCB1bnNpZ25lZCB3aWR0aCwgdW5zaWduZWQgaGVp
Z2h0KQogICAgIFNldFNlZWthYmxlUmFuZ2VzVmVjdG9yKFZlY3RvcjxzdGQ6OnBhaXI8ZG91Ymxl
LCBkb3VibGU+PiByYW5nZXMpOworICAgIFNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKFZl
Y3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOworICAgIFNldExl
Z2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMoVmVjdG9yPFN0cmluZz4gb3B0aW9ucywgdWludDY0
X3Qgc2VsZWN0ZWRJbmRleCk7CiAgICAgU2V0RHVyYXRpb24oZG91YmxlIGR1cmF0aW9uKQogICAg
IFNldFJhdGUoYm9vbCBpc1BsYXlpbmcsIGRvdWJsZSByYXRlKQogICAgIEVudGVyRnVsbHNjcmVl
bldpdGhJRCh1aW50MzJfdCB2aWRlb0xheWVySUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CmluZGV4IGY1ZGJkYjVmMjQ5ZjQ0MzZhOTU0MjY0NjAwYjRkNDQ1MjUyZDI3ODcuLjljMDExNzZk
NDBkYjgyM2RiM2Y0Yzk0NWZkNjc0NDk2OTE1YWNhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tCkBAIC0xMjUsNiArMTI1LDE2IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpzZXRWaWRlb0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzCiB7CiAg
ICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRW
aWRlb0xheWVyR3Jhdml0eUVudW0oKHVuc2lnbmVkKWdyYXZpdHkpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RB
dWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2VsZWN0QXVkaW9NZWRpYU9wdGlvbihp
bmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkK
K3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OlNlbGVjdExlZ2libGVNZWRpYU9wdGlvbihpbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDM2NDVmMDAy
MjlhZTUxYzBmZTU2NmEzMDcxZDRjZjQxOThkZTQxMjkuLjMxZTc4NzE1ZDg4MjIwNWU0NjQ5N2My
NjA3YWZlYzA0Y2Y4NTQ1ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTcxLDYgKzcxLDggQEAg
cHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9h
dCBwbGF5YmFja1JhdGUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0RpbWVu
c2lvbnMoYm9vbCBoYXNWaWRlbywgZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNlZWthYmxlUmFuZ2VzKGNvbnN0IFdlYkNvcmU6OlRpbWVS
YW5nZXMmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVk
SW5kZXgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3Rl
ZEluZGV4KSBvdmVycmlkZTsKICAgICAKICAgICAvLyBhZGRpdGlvbmFsIGluY29taW5nCiAgICAg
dmlydHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggNGZiZGUwZmJmNGRkNGE4OWNmYTE1NDEyYmQzZmI4ZWU3ZDdl
MTJlNy4uY2RkZTRiNzNlYjIyYjFlMzgzM2ZlMTJjZjE5ODA5ZTczZDZlNzdlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMSw1ICszMSw3IEBAIG1lc3NhZ2Vz
IC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIERpZEVudGVyRnVsbHNjcmVlbigp
CiAgICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMpCiAgICAg
U2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCisgICAgU2VsZWN0QXVk
aW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKKyAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRp
b24odWludDY0X3QgaW5kZXgpCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IDUy
YmNmYTcxZmJkZTg4OWYzMTliOGEyODk5Yzc0NGY5MzNiNDUyYzAuLjYzM2Y5N2FiMzdiYTM1ODJj
YjRmMzQ4MDVkYzk5MWZmZmU5NGQ5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMTM1LDYg
KzEzNSwxNiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFNlZWthYmxlUmFu
Z2VzKGNvbnN0IFdlYkNvcmU6OlRpbWVSYW5nZXMmIHRpbQogICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpTZXRTZWVrYWJsZVJhbmdlc1Zl
Y3RvcihzdGQ6Om1vdmUocmFuZ2VzVmVjdG9yKSksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCit2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4
KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OjpTZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhvcHRpb25zLCBzZWxlY3RlZElu
ZGV4KSwgbV9wYWdlLT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQo
TWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9ucyhvcHRpb25zLCBzZWxlY3RlZEluZGV4KSwgbV9wYWdlLT5wYWdlSUQo
KSk7Cit9CisgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZEVudGVyRnVs
bHNjcmVlbigpCiB7CiAgICAgbV9pc0FuaW1hdGluZyA9IGZhbHNlOwo=
</data>
<flag name="review"
          id="252927"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228937</attachid>
            <date>2014-04-08 22:40:08 -0700</date>
            <delta_ts>2014-04-09 10:57:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131069-20140408223948.patch</filename>
            <type>text/plain</type>
            <size>24183</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjhiZjhjOThhOTNhNmFl
MWYwMTllNDJmNDBmNDA1NDJhM2VhOTUzYy4uN2U0N2QwMWE4ZmE2NjBhNGRhODhiODEwY2RkYmQ0
OTA1NzBjOTkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA0LTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgZnVsbHNjcmVl
biBjYXB0aW9ucyBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBtZWRpYSBzZWxlY3Rpb24gb3B0aW9ucyBmcm9tIGZ1bGxzY3Jl
ZW4uIGkuZS4gY2FwdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
QWRkIGV4cG9ydHMgZm9yIAorICAgICAgICBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucwor
ICAgICAgICBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCisgICAgICAgIHNlbGVjdEF1
ZGlvTWVkaWFPcHRpb24KKyAgICAgICAgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg6CisgICAgICAg
IEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
L3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgQWRkIHNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMK
KworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAo
LVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zXSk6CisgICAg
ICAgICgrW1dlYkFWUGxheWVyQ29udHJvbGxlciBrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hh
c01lZGlhU2VsZWN0aW9uT3B0aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xs
ZXIgaGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzQXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGhhc0xlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgY3VycmVudEF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb25dKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNl
dEN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOl0pOgorICAgICAgICAoLVtXZWJBVlBs
YXllckNvbnRyb2xsZXIgY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbl0pOgorICAg
ICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgc2V0Q3VycmVudExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbjpdKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6CisgICAgICAg
IEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRpYU9wdGlvbgorCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgIEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRp
YU9wdGlvbgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICBBZGQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbi9zZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudCk6CisgICAgICAgIFNlbmQgaW5pdGlhbCBtZWRp
YSBzZWxlY3Rpb24gb3B0aW9ucy4KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOgorICAgICAgICBXaWxsIGJlIGlt
cGxlbWVudGVkIHdoZW4gYXVkaW8gdHJhY2sgc2xlY3Rpb24gaXMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24pOgorICAgICAgICBTZWxlY3QgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIG9u
IEhUTUxNZWRpYUVsZW1lbnQuCisKIDIwMTQtMDMtMjYgIEFudG9uaW8gR29tZXMgIDxhMS5nb21l
c0BzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtCaW5kaW5nc10gY29uc3RhbnRzIGFyZSBh
bHdheXMgdHlwZWQgdG8gJ2ludCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAxY2RhN2E4MmFlYzAzODc0Zjg4OTJi
YWY5YWZkNmMyZmEyNjk0NWE5Li41YzY0MDdlMGM3MThhNzg3ZTkyOGJjNTEwNTIxZjg2NDczMzBj
YmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTQtMDQtMDEgIEplcmVteSBKb25l
cyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBmdWxsc2NyZWVuIGNhcHRp
b25zIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRW5hYmxlIG1lZGlhIHNlbGVjdGlvbiBpbiBmdWxsc2NyZWVuLgorICAgICAgICBzZXRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
IHByb3ZpZGUgYSBsaXN0IG9mIG9wdGlvbnMuCisgICAgICAgIHNlbGVjdEF1ZGlvTWVkaWFPcHRp
b24vc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uIGNoYW5nZSB0aGUgc2VsZWN0ZWQgb3B0aW9uLgor
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24vc2VsZWN0TGVnaWJsZU1lZGlh
T3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24v
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9uKToKKyAgICAgICAg
QWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlvbik6CisgICAgICAg
IEFkZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAqIFdlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAg
ICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
CisgICAgICAgIEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIEFkZCBzZXRB
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMpOgorICAgICAg
ICBBZGQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucworCiAyMDE0LTAzLTI4ICBNYXJp
byBTYW5jaGV6IFByYWRhICA8bWFyaW8ucHJhZGFAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0dU
S10gUnVubmluZyBtaW5pYnJvd3NlciB3aXRoIHVybCBjcmFzaGVzIGluIGRlYnVnIGJ1aWxkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IGI1MzM0NWYyYjNjOGY1Y2Q1NzJiNTc1NzE3NGQ3ZmNjM2Uw
YTFlMTAuLjQzZmE4NTg4NmU2NDFiYTExMzhiNDZiNDk4YzYzZWU3ZDJkMDNhZmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0zMjYzLDcgKzMyNjMsOSBAQCBfX1pON1dlYkNvcmUzNVdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgogX19aTjdXZWJD
b3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE4c2V0VmlkZW9MYXllckZy
YW1lRU5TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50MjBzZXRWaWRlb0xheWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsMTJWaWRlb0dyYXZpdHlFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsTWVkaWFFbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzVX
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDIyc2VsZWN0QXVkaW9NZWRpYU9wdGlv
bkV5CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MjNz
ZXRWaWRlb0Z1bGxzY3JlZW5MYXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyNHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbkV5CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50NHBsYXlFdgog
X19aTjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDVwYXVzZUV2
CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50QzJFdgpA
QCAtMzI4Miw2ICszMjg0LDggQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRVI3Q0FMYXllcgogX19aTjdXZWJDb3JlMzJXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRp
bWVSYW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
MThzZXRWaWRlb0RpbWVuc2lvbnNFYmZmCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRl
b0Z1bGxzY3JlZW5Nb2RlbEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQyOXNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5T
MV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUV5CitfX1pON1dlYkNvcmUzMldl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzFzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25P
cHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZs
b3dFRUV5CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzVz
ZXRXZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckVQTlNfMzJXZWJWaWRlb0Z1bGxzY3Jl
ZW5DaGFuZ2VPYnNlcnZlckUKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ3c2V0UmF0ZUViZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRl
cmZhY2VBVktpdEMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAppbmRleCA4ODQxMjczNjhjOGE1NmUzZmJm
NzA5MTVlYzFkNmNkZWVkNzY0ODEzLi40YmFjMWE0ZGM4ZjcxZjgyMzQ0ZjkwZGEyMjdhZWEzNWU0
M2Y1MTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBAIC0yOSw2ICsyOSwxMiBAQAogCiAjaWYgUExB
VEZPUk0oSU9TKQogCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsK
K2NsYXNzIFN0cmluZzsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgVGlt
ZVJhbmdlczsKQEAgLTQxLDYgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRS
YXRlKGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9h
dCBoZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3Qg
VGltZVJhbmdlcyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlv
bk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVk
SW5kZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRl
eCkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCA3NmQxZjc3
OTNiOWIyYjc4ODdkNDQ3MDg3Yjk0ODEzMjcxOTYyNjk1Li4xYzQ3ZWI2MWY1NGZkZTMxMjYzZGEy
NDU0YTMwNDgxMWNjYjViN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODEs
NyArODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlp
bmcsIGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZp
ZGVvRGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBv
dmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJh
bmdlcyYpIG92ZXJyaWRlOwotCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rp
b25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3Rl
ZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0
ZWRJbmRleCkgb3ZlcnJpZGU7CisgICAgICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxz
Y3JlZW4oUGxhdGZvcm1MYXllciYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigp
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCAzMGVjNjBkODdiNzRjZDRk
YjhkNWI0ZWVjNTA0NjA1MDQwMzcyZGRjLi41NWY4OTgxM2ZjY2ZlN2RkZTZiMGEyYjNjMGUzOGI2
NTg0MDU1ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC03Miw3ICs3Miwx
MyBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVuZCwgQ01UaW1lLCAoQ01U
aW1lUmFuZ2UgcmFuZ2UpLCAocmFuZ2UpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lUmFu
Z2VNYWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0aW9uKSwgKHN0
YXJ0LCBkdXJhdGlvbikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFjdCwgQ01U
aW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKSwgKG1pbnVlbmQsIHN1YnRy
YWhlbmQpKQogCitAY2xhc3MgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogQGludGVyZmFj
ZSBXZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxl
ckRlbGVnYXRlPgoreworICAgIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKl9jdXJyZW50QXVk
aW9NZWRpYVNlbGVjdGlvbk9wdGlvbjsKKyAgICBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICpf
Y3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKK30KIAogQHByb3BlcnR5KHJldGFp
bikgQVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CiBAcHJvcGVydHko
YXNzaWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdhdGU7CkBAIC05NSw2ICsxMDEs
MTQgQEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGlt
ZSBtaW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKIEBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVU
aW1pbmcgKnRpbWluZzsKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJh
bmdlczsKIAorQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlvbk9wdGlv
bnM7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zOworQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKmN1cnJl
bnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBo
YXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJy
YXkgKmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnM7CitAcHJvcGVydHkgKHJldGFpbikgV2Vi
QVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAqY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
bjsKKwogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZERpc21pc3NXaXRoUmVhc29uOihBVlBsYXll
clZpZXdDb250cm9sbGVyRGlzbWlzc2FsUmVhc29uKXJlYXNvbjsKIEBlbmQKIApAQCAtMTE2LDYg
KzEzMCwxMCBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFjdCwgQ01UaW1lLCAo
Q01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKQogICAgIFtfbG9hZGVkVGltZVJhbmdl
cyByZWxlYXNlXTsKICAgICBbX3NlZWthYmxlVGltZVJhbmdlcyByZWxlYXNlXTsKICAgICBbX3Rp
bWluZyByZWxlYXNlXTsKKyAgICBbX2F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zIHJlbGVhc2Vd
OworICAgIFtfbGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyByZWxlYXNlXTsKKyAgICBbX2N1
cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOworICAgIFtfY3VycmVudExl
Z2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbiByZWxlYXNlXTsKICAgICBbc3VwZXIgZGVhbGxvY107
CiB9CiAKQEAgLTIyNyw2ICsyNDUsODkgQEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3Vi
dHJhY3QsIENNVGltZSwgKENNVGltZSBtaW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKICAgICAg
ICAgW3NlbGYgc2Vla1RvVGltZTp0aW1lQXRFbmRPZlNlZWthYmxlVGltZVJhbmdlc107CiB9CiAK
Ky0gKEJPT0wpaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zCit7CisgICAgcmV0dXJuIFtzZWxmIGhh
c0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zXSB8fCBbc2VsZiBoYXNMZWdpYmxlTWVkaWFTZWxl
Y3Rpb25PcHRpb25zXTsKK30KKworKyAoTlNTZXQgKilrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGlu
Z0hhc01lZGlhU2VsZWN0aW9uT3B0aW9ucworeworICAgIHJldHVybiBbTlNTZXQgc2V0V2l0aE9i
amVjdHM6QCJoYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyIsIEAiaGFzTGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9ucyIsIG5pbF07Cit9CisKKy0gKEJPT0wpaGFzQXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnMKK3sKKyAgICByZXR1cm4gW1tzZWxmIGF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRp
b25zXSBjb3VudF0gPiAwOworfQorCisrIChOU1NldCAqKWtleVBhdGhzRm9yVmFsdWVzQWZmZWN0
aW5nSGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMKK3sKKyAgICByZXR1cm4gW05TU2V0IHNl
dFdpdGhPYmplY3Q6QCJhdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyJdOworfQorCistIChCT09M
KWhhc0xlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKK3sKKyAgICByZXR1cm4gW1tzZWxmIGxl
Z2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNdIGNvdW50XSA+IDA7Cit9CisKKysgKE5TU2V0ICop
a2V5UGF0aHNGb3JWYWx1ZXNBZmZlY3RpbmdIYXNMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25z
Cit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRoT2JqZWN0OkAibGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9ucyJdOworfQorCistIChXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICopY3VycmVu
dEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24KK3sKKyAgICByZXR1cm4gX2N1cnJlbnRBdWRpb01l
ZGlhU2VsZWN0aW9uT3B0aW9uOworfQorCistICh2b2lkKXNldEN1cnJlbnRBdWRpb01lZGlhU2Vs
ZWN0aW9uT3B0aW9uOihXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICopb3B0aW9uCit7CisgICAg
aWYgKG9wdGlvbiA9PSBfY3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24pCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBbX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uIHJl
bGVhc2VdOworICAgIF9jdXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbiA9IFtvcHRpb24g
cmV0YWluXTsKKyAgICAKKyAgICBBU1NFUlQoc2VsZi5kZWxlZ2F0ZSk7CisgICAgCisgICAgTlNJ
bnRlZ2VyIGluZGV4ID0gTlNOb3RGb3VuZDsKKyAgICAKKyAgICBpZiAob3B0aW9uICYmIHNlbGYu
YXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMpCisgICAgICAgIGluZGV4ID0gW3NlbGYuYXVkaW9N
ZWRpYVNlbGVjdGlvbk9wdGlvbnMgaW5kZXhPZk9iamVjdDpvcHRpb25dOworICAgIAorICAgIHNl
bGYuZGVsZWdhdGUtPnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24oaW5kZXggIT0gTlNOb3RGb3VuZCA/
IGluZGV4IDogVUlOVDY0X01BWCk7Cit9CisKKy0gKFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24g
KiljdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uCit7CisgICAgcmV0dXJuIF9jdXJy
ZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uOworfQorCistICh2b2lkKXNldEN1cnJlbnRM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb246KFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKilv
cHRpb24KK3sKKyAgICBpZiAob3B0aW9uID09IF9jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0aW9u
T3B0aW9uKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgW19jdXJyZW50TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOworICAgIF9jdXJyZW50TGVnaWJsZU1lZGlhU2VsZWN0
aW9uT3B0aW9uID0gW29wdGlvbiByZXRhaW5dOworICAgIAorICAgIEFTU0VSVChzZWxmLmRlbGVn
YXRlKTsKKyAgICAKKyAgICBOU0ludGVnZXIgaW5kZXggPSBOU05vdEZvdW5kOworICAgIAorICAg
IGlmIChvcHRpb24gJiYgc2VsZi5sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zKQorICAgICAg
ICBpbmRleCA9IFtzZWxmLmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMgaW5kZXhPZk9iamVj
dDpvcHRpb25dOworICAgIAorICAgIHNlbGYuZGVsZWdhdGUtPnNlbGVjdExlZ2libGVNZWRpYU9w
dGlvbihpbmRleCAhPSBOU05vdEZvdW5kID8gaW5kZXggOiBVSU5UNjRfTUFYKTsKK30KKworQGVu
ZAorCitAaW50ZXJmYWNlIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gOiBOU09iamVjdAorQHBy
b3BlcnR5IChyZXRhaW4pIE5TU3RyaW5nICpsb2NhbGl6ZWREaXNwbGF5TmFtZTsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24KIEBlbmQKIAogQGludGVy
ZmFjZSBXZWJBVlZpZGVvTGF5ZXIgOiBDQUxheWVyIDxBVlZpZGVvTGF5ZXI+CkBAIC0zODAsNiAr
NDgxLDM0IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldFNlZWth
YmxlUmFuZ2VzKGNvbnN0IFRpbWVSYW5nZXMmIHRpbWVSCiAgICAgcGxheWVyQ29udHJvbGxlcigp
LnNlZWthYmxlVGltZVJhbmdlcyA9IHNlZWthYmxlUmFuZ2VzOwogfQogCitzdGF0aWMgTlNNdXRh
YmxlQXJyYXkgKm1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0
aW9ucykKK3sKKyAgICBOU011dGFibGVBcnJheSAqd2ViT3B0aW9ucyA9IFtOU011dGFibGVBcnJh
eSBhcnJheVdpdGhDYXBhY2l0eTpvcHRpb25zLnNpemUoKV07CisgICAgZm9yIChhdXRvJiBuYW1l
IDogb3B0aW9ucykgeworICAgICAgICBSZXRhaW5QdHI8V2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlv
bj4gd2ViT3B0aW9uID0gYWRvcHROUyhbW1dlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBuYW1lU3RyaW5nID0gYWRvcHRO
UyhbW05TU3RyaW5nIGFsbG9jXSBpbml0V2l0aFVURjhTdHJpbmc6bmFtZS51dGY4KCkuZGF0YSgp
XSk7CisgICAgICAgIFt3ZWJPcHRpb24gc2V0TG9jYWxpemVkRGlzcGxheU5hbWU6bmFtZVN0cmlu
Zy5nZXQoKV07CisgICAgICAgIFt3ZWJPcHRpb25zIGFkZE9iamVjdDp3ZWJPcHRpb24uZ2V0KCld
OworICAgIH0KKyAgICByZXR1cm4gd2ViT3B0aW9uczsKK30KKwordm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpCit7CisgICAg
TlNNdXRhYmxlQXJyYXkgKndlYk9wdGlvbnMgPSBtZWRpYVNlbGVjdGlvbk9wdGlvbnMob3B0aW9u
cyk7CisgICAgcGxheWVyQ29udHJvbGxlcigpLmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zID0g
d2ViT3B0aW9uczsKKyAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IHdlYk9wdGlvbnMuY291bnQpCisg
ICAgICAgIHBsYXllckNvbnRyb2xsZXIoKS5jdXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlv
biA9IHdlYk9wdGlvbnNbKHNpemVfdClzZWxlY3RlZEluZGV4XTsKK30KKwordm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkK
K3sKKyAgICBOU011dGFibGVBcnJheSAqd2ViT3B0aW9ucyA9IG1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhvcHRpb25zKTsKKyAgICBwbGF5ZXJDb250cm9sbGVyKCkubGVnaWJsZU1lZGlhU2VsZWN0aW9u
T3B0aW9ucyA9IHdlYk9wdGlvbnM7CisgICAgaWYgKHNlbGVjdGVkSW5kZXggPCB3ZWJPcHRpb25z
LmNvdW50KQorICAgICAgICBwbGF5ZXJDb250cm9sbGVyKCkuY3VycmVudExlZ2libGVNZWRpYVNl
bGVjdGlvbk9wdGlvbiA9IHdlYk9wdGlvbnNbKHNpemVfdClzZWxlY3RlZEluZGV4XTsKK30KKwog
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKFBs
YXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIpCiB7CiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ+IHByb3RlY3QodGhpcyk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCmluZGV4IDc5
YjkyZDE1ZGMzYTBjNDQyY2IyMWVkOThkZjY4NGY2MWQ3NWU3ZWIuLjIxMDJlYThlMWU0NzBlYWNh
ZmZlYzI5YTY2MTI3M2M1OWI1NmM2N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oCkBAIC00NCw2ICs0NCw4IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCkgPSAw
OwogICAgIGVudW0gVmlkZW9HcmF2aXR5IHsgVmlkZW9HcmF2aXR5UmVzaXplLCBWaWRlb0dyYXZp
dHlSZXNpemVBc3BlY3QsIFZpZGVvR3Jhdml0eVJlc2l6ZUFzcGVjdEZpbGwgfTsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHkoVmlkZW9HcmF2aXR5KSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSA9
IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oCmluZGV4IGUyNjQ3
MDgxMDMwZDM4NmYyY2VmOTM2YmRmNjVhMWQxNTc1YmM3OTAuLjhjOWU2MTA2NWM5NmQ3MDBjODhk
MTgzMDMxZmQyMDAxYjVhNDJlYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5o
CkBAIC02NSw3ICs2NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdEV4aXRG
dWxsc2NyZWVuKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJGcmFt
ZShGbG9hdFJlY3QpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jh
dml0eShXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5KSBvdmVycmlkZTsKLQor
ICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2
NF90IGluZGV4KSBvdmVycmlkZTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbQppbmRleCA2MDBkODE1YTIyMTRmMGI5NGFmOGMxMDExN2Q0N2RiYTAyZGU0OTk4Li5m
MDRmNTE4NzQ1ODk3YWZlMTY2MjU4YzdmN2E1OTNmMjU3NzlmNmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1l
bnQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1vZGVsTWVkaWFFbGVtZW50Lm1tCkBAIC04Nyw2ICs4NywxMyBAQCB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZXRNZWRpYUVsZW1lbnQoSFRNTE1lZGlhRWxlbWVu
dCogbWVkaQogICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLT5zZXRTZWVrYWJsZVJhbmdl
cygqbV9tZWRpYUVsZW1lbnQtPnNlZWthYmxlKCkpOwogICAgIG1fdmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlLT5zZXRSYXRlKG1fbWVkaWFFbGVtZW50LT5pc1BsYXlpbmcoKSwgbV9tZWRpYUVsZW1l
bnQtPnBsYXliYWNrUmF0ZSgpKTsKIAorICAgIFZlY3RvcjxTdHJpbmc+IGxlZ2libGVPcHRpb25z
OworICAgIAorICAgIGZvciAoYXV0byYgdGV4dFRyYWNrIDogbV9tZWRpYUVsZW1lbnQtPnBsYXRm
b3JtVGV4dFRyYWNrcygpKQorICAgICAgICBsZWdpYmxlT3B0aW9ucy5hcHBlbmQodGV4dFRyYWNr
LT5sYWJlbCgpKTsKKyAgICAKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhsZWdpYmxlT3B0aW9ucywgMCk7CisgICAgCiAgICAg
bV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1fbWVkaWFFbGVtZW50
LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGlt
ZV0pOwogCiAgICAgaWYgKGlzSFRNTFZpZGVvRWxlbWVudChtX21lZGlhRWxlbWVudC5nZXQoKSkp
IHsKQEAgLTE5Niw0ICsyMDMsMTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudDo6c2V0VmlkZW9MYXllckdyYXZpdHkoV2ViVmlkZW9GdWxsc2NyZWUKICAgICBtX21l
ZGlhRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eSh2aWRlb0dyYXZpdHkpOwogfQog
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01l
ZGlhT3B0aW9uKHVpbnQ2NF90KQoreworICAgIC8vIEZJWE1FOiAxMzEyMzYgSW1wbGVtZW50IGF1
ZGlvIHRyYWNrIHNlbGVjdGlvbi4KK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQorewor
ICAgIFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4gcGxhdGZvcm1UcmFjazsKKyAgICAKKyAgICBp
ZiAoaW5kZXggPCBtX21lZGlhRWxlbWVudC0+cGxhdGZvcm1UZXh0VHJhY2tzKCkuc2l6ZSgpKQor
ICAgICAgICBwbGF0Zm9ybVRyYWNrID0gbV9tZWRpYUVsZW1lbnQtPnBsYXRmb3JtVGV4dFRyYWNr
cygpW3N0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpXTsKKyAgICAKKyAgICBtX21lZGlhRWxlbWVu
dC0+c2V0U2VsZWN0ZWRUZXh0VHJhY2socGxhdGZvcm1UcmFjayk7Cit9CisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggZTk2MGI2ZjZkNDMxNTQ2NGNjZWYxYTBkODk5Yjll
NDkxZDY0YjliNC4uY2I5ZjUyODNhNDRkZDVhOTNhMWU5YjkwMzlmNDlmMDg2YjY1MjZhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoZG91YmxlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKIAogICAgIFdlYlBh
Z2VQcm94eSogbV9wYWdlOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2xheWVySG9z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDNl
MTVmOWY5MjBjZDM0MzRhOWYwMzY4N2M2MDRiMDI0MDA1MTk2Yy4uM2RhYjMyOTMxZmQxYjI3ZjM3
YzZhZTk4ODdmOTg2M2QyODI0MDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDggQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRp
bWUsIGRvdWJsZSBob3N0VGltZSkKICAgICBTZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRl
bywgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKICAgICBTZXRTZWVrYWJsZVJhbmdl
c1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFuZ2VzKTsKKyAgICBT
ZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhWZWN0b3I8U3RyaW5nPiBvcHRpb25zLCB1aW50
NjRfdCBzZWxlY3RlZEluZGV4KTsKKyAgICBTZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25z
KFZlY3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwogICAgIFNl
dER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBk
b3VibGUgcmF0ZSkKICAgICBFbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXll
cklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBmNWRiZGI1ZjI0OWY0NDM2YTk1
NDI2NDYwMGI0ZDQ0NTI1MmQyNzg3Li45YzAxMTc2ZDQwZGI4MjNkYjNmNGM5NDVmZDY3NDQ5Njkx
NWFjYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMTI1LDYgKzEyNSwxNiBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckdyYXZp
dHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxscwogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKCh1bnNp
Z25lZClncmF2aXR5KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBp
bmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OlNlbGVjdEF1ZGlvTWVkaWFPcHRpb24oaW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
K30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RMZWdp
YmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24o
aW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaAppbmRleCAzNjQ1ZjAwMjI5YWU1MWMwZmU1NjZhMzA3MWQ0Y2Y0MTk4
ZGU0MTI5Li4zMWU3ODcxNWQ4ODIyMDVlNDY0OTdjMjYwN2FmZWMwNGNmODU0NWU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oCkBAIC03MSw2ICs3MSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVr
YWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgLy8gYWRkaXRpb25hbCBpbmNvbWluZwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxz
Y3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDRmYmRl
MGZiZjRkZDRhODljZmExNTQxMmJkM2ZiOGVlN2Q3ZTEyZTcuLmNkZGU0YjczZWIyMmIxZTM4MzNm
ZTEyY2YxOTgwOWU3M2Q2ZTc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzEsNSArMzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyIHsKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4oKQogICAgIFNldFZpZGVvTGF5ZXJGcmFtZShX
ZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzKQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1
bnNpZ25lZCBncmF2aXR5KQorICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5k
ZXgpCisgICAgU2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCA1MmJjZmE3MWZiZGU4ODlmMzE5YjhhMjg5OWM3
NDRmOTMzYjQ1MmMwLi42MzNmOTdhYjM3YmEzNTgyY2I0ZjM0ODA1ZGM5OTFmZmZlOTRkOTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTEzNSw2ICsxMzUsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFu
Z2VzJiB0aW0KICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6U2V0U2Vla2FibGVSYW5nZXNWZWN0b3Ioc3RkOjptb3ZlKHJhbmdlc1ZlY3Rv
cikpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
b3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0QXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnMob3B0aW9ucywgc2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOwor
fQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVj
dGVkSW5kZXgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OlNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMob3B0aW9ucywg
c2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewogICAgIG1faXNBbmlt
YXRpbmcgPSBmYWxzZTsK
</data>
<flag name="review"
          id="253277"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
    <flag name="commit-queue"
          id="253278"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228986</attachid>
            <date>2014-04-09 14:50:52 -0700</date>
            <delta_ts>2014-04-09 17:49:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-131069-20140409145031.patch</filename>
            <type>text/plain</type>
            <size>24183</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3MDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGQ4NTg3YWE3ODVmOGFk
YWYyY2U1ZGRlNGQzZmVmNTcwZGNhMDI0Zi4uNjE0MzUyZGVhNjRjYTU3ZTNkYjM1MmRhZGY3Yjgx
MjEyY2JiNTM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE0LTA0LTAxICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBFbmFibGUgZnVsbHNjcmVl
biBjYXB0aW9ucyBzZWxlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzMTA2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEVuYWJsZSBtZWRpYSBzZWxlY3Rpb24gb3B0aW9ucyBmcm9tIGZ1bGxzY3Jl
ZW4uIGkuZS4gY2FwdGlvbnMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAgICAgICAg
QWRkIGV4cG9ydHMgZm9yIAorICAgICAgICBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucwor
ICAgICAgICBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCisgICAgICAgIHNlbGVjdEF1
ZGlvTWVkaWFPcHRpb24KKyAgICAgICAgc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmg6CisgICAgICAg
IEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9zZXRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQuaDoKKyAgICAgICAgQWRkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
L3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMKKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgQWRkIHNldEF1
ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMK
KworICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgZGVhbGxvY10pOgorICAgICAgICAo
LVtXZWJBVlBsYXllckNvbnRyb2xsZXIgaGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zXSk6CisgICAg
ICAgICgrW1dlYkFWUGxheWVyQ29udHJvbGxlciBrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hh
c01lZGlhU2VsZWN0aW9uT3B0aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xs
ZXIgaGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5
ZXJDb250cm9sbGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzQXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnNdKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIGhhc0xlZ2li
bGVNZWRpYVNlbGVjdGlvbk9wdGlvbnNdKToKKyAgICAgICAgKCtbV2ViQVZQbGF5ZXJDb250cm9s
bGVyIGtleVBhdGhzRm9yVmFsdWVzQWZmZWN0aW5nSGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0
aW9uc10pOgorICAgICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgY3VycmVudEF1ZGlvTWVk
aWFTZWxlY3Rpb25PcHRpb25dKToKKyAgICAgICAgKC1bV2ViQVZQbGF5ZXJDb250cm9sbGVyIHNl
dEN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOl0pOgorICAgICAgICAoLVtXZWJBVlBs
YXllckNvbnRyb2xsZXIgY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbl0pOgorICAg
ICAgICAoLVtXZWJBVlBsYXllckNvbnRyb2xsZXIgc2V0Q3VycmVudExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbjpdKToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmg6CisgICAgICAg
IEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRpYU9wdGlvbgorCisg
ICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgIEFkZCBzZWxlY3RBdWRpb01lZGlhT3B0aW9uL3NlbGVjdExlZ2libGVNZWRp
YU9wdGlvbgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50Lm1tOgorICAgICAgICBBZGQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbi9zZWxl
Y3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudCk6CisgICAgICAgIFNlbmQgaW5pdGlhbCBtZWRp
YSBzZWxlY3Rpb24gb3B0aW9ucy4KKworICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxN
ZWRpYUVsZW1lbnQ6OnNlbGVjdEF1ZGlvTWVkaWFPcHRpb24pOgorICAgICAgICBXaWxsIGJlIGlt
cGxlbWVudGVkIHdoZW4gYXVkaW8gdHJhY2sgc2xlY3Rpb24gaXMgaW1wbGVtZW50ZWQuCisKKyAg
ICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RMZWdpYmxl
TWVkaWFPcHRpb24pOgorICAgICAgICBTZWxlY3QgY29ycmVzcG9uZGluZyB0ZXh0IHRyYWNrIG9u
IEhUTUxNZWRpYUVsZW1lbnQuCisKIDIwMTQtMDQtMDggIFNhbXVlbCBXaGl0ZSAgPHNhbXVlbF93
aGl0ZUBhcHBsZS5jb20+CiAKICAgICAgICAgQVg6IEluaXRpYWwgdGV4dCBzZWxlY3Rpb24gcG9p
bnQgc2hvdWxkIHJlc3BlY3QgZWxlbWVudCBmb2N1cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlZDM0YjQ3ZDdi
NWY0ZGUyNGI4MjI0ZjIwM2MwY2Q0M2VlYmQxNTlmLi42ZDIzNGIxYTVhYzE3N2M4NDc2ZDA4YTE5
MDlmZGJkN2ViNTAzZGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTQtMDQtMDEg
IEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEVuYWJsZSBmdWxs
c2NyZWVuIGNhcHRpb25zIHNlbGVjdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTMxMDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRW5hYmxlIG1lZGlhIHNlbGVjdGlvbiBpbiBmdWxsc2NyZWVuLgor
ICAgICAgICBzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldEF1ZGlvTWVkaWFTZWxl
Y3Rpb25PcHRpb25zIHByb3ZpZGUgYSBsaXN0IG9mIG9wdGlvbnMuCisgICAgICAgIHNlbGVjdEF1
ZGlvTWVkaWFPcHRpb24vc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uIGNoYW5nZSB0aGUgc2VsZWN0
ZWQgb3B0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaDoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24vc2VsZWN0
TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlv
TWVkaWFPcHRpb24vc2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RBdWRpb01lZGlhT3B0aW9u
KToKKyAgICAgICAgQWRkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24KKworICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlbGVjdExlZ2libGVNZWRpYU9wdGlv
bik6CisgICAgICAgIEFkZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24KKworICAgICAgICAqIFdl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaDoKKyAgICAgICAgQWRkIHNl
dEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zL3NldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
bnMKKworICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW46CisgICAgICAgIEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucy9z
ZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyk6CisgICAg
ICAgIEFkZCBzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworCisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
bnMpOgorICAgICAgICBBZGQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucworCiAyMDE0
LTA0LTA5ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBEb24n
dCBvZmZlciAiY29udGFjdCIgYWN0aW9ucyBpbiB0ZWxlcGhvbmUgbnVtYmVyIG1lbnVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCmluZGV4IDdjNDM2YTdiOTQ1MGVkYTgxZGEyODI2YzI2NGVhOWIyMzM2ZTA3
MmIuLmFmZTdiODhiMzRiY2UwMTAxZDZmNGNjOGE2ODUxNmRhNDhkMzUwNTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZXhwLmluCkBAIC0zMjgzLDcgKzMyODMsOSBAQCBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MTV0b2dnbGVQbGF5U3RhdGVFdgogX19aTjdXZWJDb3Jl
MzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDE4c2V0VmlkZW9MYXllckZyYW1l
RU5TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVk
aWFFbGVtZW50MjBzZXRWaWRlb0xheWVyR3Jhdml0eUVOU18yM1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsMTJWaWRlb0dyYXZpdHlFCiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVs
TWVkaWFFbGVtZW50MjFyZXF1ZXN0RXhpdEZ1bGxzY3JlZW5FdgorX19aTjdXZWJDb3JlMzVXZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDIyc2VsZWN0QXVkaW9NZWRpYU9wdGlvbkV5
CiBfX1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50MjNzZXRW
aWRlb0Z1bGxzY3JlZW5MYXllckVQN0NBTGF5ZXIKK19fWk43V2ViQ29yZTM1V2ViVmlkZW9GdWxs
c2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQyNHNlbGVjdExlZ2libGVNZWRpYU9wdGlvbkV5CiBfX1pO
N1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50NHBsYXlFdgogX19a
TjdXZWJDb3JlMzVXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudDVwYXVzZUV2CiBf
X1pON1dlYkNvcmUzNVdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50QzJFdgpAQCAt
MzMwMiw2ICszMzA0LDggQEAgX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDE1ZW50ZXJGdWxsc2NyZWVuRVI3Q0FMYXllcgogX19aTjdXZWJDb3JlMzJXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDE3c2V0U2Vla2FibGVSYW5nZXNFUktOU18xMFRpbWVS
YW5nZXNFCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MThz
ZXRWaWRlb0RpbWVuc2lvbnNFYmZmCiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0MjZzZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbEVQTlNfMjNXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbEUKK19fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQyOXNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zRVJLTjNXVEY2VmVjdG9ySU5TMV82
U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dFRUV5CitfX1pON1dlYkNvcmUzMldlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzFzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zRVJLTjNXVEY2VmVjdG9ySU5TMV82U3RyaW5nRUxtMEVOUzFfMTVDcmFzaE9uT3ZlcmZsb3dF
RUV5CiBfX1pON1dlYkNvcmUzMldlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0MzVzZXRX
ZWJWaWRlb0Z1bGxzY3JlZW5DaGFuZ2VPYnNlcnZlckVQTlNfMzJXZWJWaWRlb0Z1bGxzY3JlZW5D
aGFuZ2VPYnNlcnZlckUKIF9fWk43V2ViQ29yZTMyV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQ3c2V0UmF0ZUViZgogX19aTjdXZWJDb3JlMzJXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdEMyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UuaAppbmRleCA4ODQxMjczNjhjOGE1NmUzZmJmNzA5
MTVlYzFkNmNkZWVkNzY0ODEzLi40YmFjMWE0ZGM4ZjcxZjgyMzQ0ZjkwZGEyMjdhZWEzNWU0M2Y1
MTY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuSW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oCkBAIC0yOSw2ICsyOSwxMiBAQAogCiAjaWYgUExBVEZP
Uk0oSU9TKQogCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV1RGIHsKK2Ns
YXNzIFN0cmluZzsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgVGltZVJh
bmdlczsKQEAgLTQxLDYgKzQ3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSYXRl
KGJvb2wgaXNQbGF5aW5nLCBmbG9hdCBwbGF5YmFja1JhdGUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0IHdpZHRoLCBmbG9hdCBo
ZWlnaHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGlt
ZVJhbmdlcyYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QXVkaW9NZWRpYVNlbGVjdGlvbk9w
dGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5k
ZXgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9u
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkg
PSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAppbmRleCA3NmQxZjc3OTNi
OWIyYjc4ODdkNDQ3MDg3Yjk0ODEzMjcxOTYyNjk1Li4xYzQ3ZWI2MWY1NGZkZTMxMjYzZGEyNDU0
YTMwNDgxMWNjYjViN2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQuaApAQCAtODEsNyAr
ODEsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJhdGUoYm9vbCBpc1BsYXlpbmcs
IGZsb2F0IHBsYXliYWNrUmF0ZSkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVv
RGltZW5zaW9ucyhib29sIGhhc1ZpZGVvLCBmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBvdmVy
cmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vla2FibGVSYW5nZXMoY29uc3QgVGltZVJhbmdl
cyYpIG92ZXJyaWRlOwotCisgICAgdmlydHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25P
cHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZElu
ZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9u
T3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJ
bmRleCkgb3ZlcnJpZGU7CisgICAgICAgIAogICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxzY3Jl
ZW4oUGxhdGZvcm1MYXllciYpOwogICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbHNjcmVlbigpOwog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCA2YWM0ZjI0MWQ2NjVmOWFmNjkx
Y2I4OWM4ZDJkZjExMzZhNThhNjhhLi5kNDZjZTFkNGNiOGUzNzJkNmFiOGE3ZTEzMDg4Zjg1ZjQ1
ZDUzODM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC03Miw3ICs3MiwxMyBA
QCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVSYW5nZUdldEVuZCwgQ01UaW1lLCAoQ01UaW1l
UmFuZ2UgcmFuZ2UpLCAocmFuZ2UpKQogU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lUmFuZ2VN
YWtlLCBDTVRpbWVSYW5nZSwgKENNVGltZSBzdGFydCwgQ01UaW1lIGR1cmF0aW9uKSwgKHN0YXJ0
LCBkdXJhdGlvbikpCiBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVTdWJ0cmFjdCwgQ01UaW1l
LCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKSwgKG1pbnVlbmQsIHN1YnRyYWhl
bmQpKQogCitAY2xhc3MgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbjsKKwogQGludGVyZmFjZSBX
ZWJBVlBsYXllckNvbnRyb2xsZXIgOiBOU09iamVjdCA8QVZQbGF5ZXJWaWV3Q29udHJvbGxlckRl
bGVnYXRlPgoreworICAgIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKl9jdXJyZW50QXVkaW9N
ZWRpYVNlbGVjdGlvbk9wdGlvbjsKKyAgICBXZWJBVk1lZGlhU2VsZWN0aW9uT3B0aW9uICpfY3Vy
cmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsKK30KIAogQHByb3BlcnR5KHJldGFpbikg
QVZQbGF5ZXJDb250cm9sbGVyKiBwbGF5ZXJDb250cm9sbGVyUHJveHk7CiBAcHJvcGVydHkoYXNz
aWduKSBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbCogZGVsZWdhdGU7CkBAIC05NSw2ICsxMDEsMTQg
QEAgU09GVF9MSU5LKENvcmVNZWRpYSwgQ01UaW1lU3VidHJhY3QsIENNVGltZSwgKENNVGltZSBt
aW51ZW5kLCBDTVRpbWUgc3VidHJhaGVuZCkKIEBwcm9wZXJ0eShyZXRhaW4pIEFWVmFsdWVUaW1p
bmcgKnRpbWluZzsKIEBwcm9wZXJ0eShyZXRhaW4pIE5TQXJyYXkgKnNlZWthYmxlVGltZVJhbmdl
czsKIAorQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNNZWRpYVNlbGVjdGlvbk9wdGlvbnM7
CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
OworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkgKmF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25z
OworQHByb3BlcnR5IChyZXRhaW4pIFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKmN1cnJlbnRB
dWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uOworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCBoYXNM
ZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zOworQHByb3BlcnR5IChyZXRhaW4pIE5TQXJyYXkg
KmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnM7CitAcHJvcGVydHkgKHJldGFpbikgV2ViQVZN
ZWRpYVNlbGVjdGlvbk9wdGlvbiAqY3VycmVudExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjsK
KwogLSAoQk9PTClwbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAq
KXBsYXllclZpZXdDb250cm9sbGVyIHNob3VsZERpc21pc3NXaXRoUmVhc29uOihBVlBsYXllclZp
ZXdDb250cm9sbGVyRXhpdEZ1bGxTY3JlZW5SZWFzb24pcmVhc29uOwogQGVuZAogCkBAIC0xMTYs
NiArMTMwLDEwIEBAIFNPRlRfTElOSyhDb3JlTWVkaWEsIENNVGltZVN1YnRyYWN0LCBDTVRpbWUs
IChDTVRpbWUgbWludWVuZCwgQ01UaW1lIHN1YnRyYWhlbmQpCiAgICAgW19sb2FkZWRUaW1lUmFu
Z2VzIHJlbGVhc2VdOwogICAgIFtfc2Vla2FibGVUaW1lUmFuZ2VzIHJlbGVhc2VdOwogICAgIFtf
dGltaW5nIHJlbGVhc2VdOworICAgIFtfYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMgcmVsZWFz
ZV07CisgICAgW19sZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25zIHJlbGVhc2VdOworICAgIFtf
Y3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24gcmVsZWFzZV07CisgICAgW19jdXJyZW50
TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uIHJlbGVhc2VdOwogICAgIFtzdXBlciBkZWFsbG9j
XTsKIH0KIApAQCAtMjI3LDYgKzI0NSw4OSBAQCBTT0ZUX0xJTksoQ29yZU1lZGlhLCBDTVRpbWVT
dWJ0cmFjdCwgQ01UaW1lLCAoQ01UaW1lIG1pbnVlbmQsIENNVGltZSBzdWJ0cmFoZW5kKQogICAg
ICAgICBbc2VsZiBzZWVrVG9UaW1lOnRpbWVBdEVuZE9mU2Vla2FibGVUaW1lUmFuZ2VzXTsKIH0K
IAorLSAoQk9PTCloYXNNZWRpYVNlbGVjdGlvbk9wdGlvbnMKK3sKKyAgICByZXR1cm4gW3NlbGYg
aGFzQXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnNdIHx8IFtzZWxmIGhhc0xlZ2libGVNZWRpYVNl
bGVjdGlvbk9wdGlvbnNdOworfQorCisrIChOU1NldCAqKWtleVBhdGhzRm9yVmFsdWVzQWZmZWN0
aW5nSGFzTWVkaWFTZWxlY3Rpb25PcHRpb25zCit7CisgICAgcmV0dXJuIFtOU1NldCBzZXRXaXRo
T2JqZWN0czpAImhhc0F1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zIiwgQCJoYXNMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb25zIiwgbmlsXTsKK30KKworLSAoQk9PTCloYXNBdWRpb01lZGlhU2Vs
ZWN0aW9uT3B0aW9ucworeworICAgIHJldHVybiBbW3NlbGYgYXVkaW9NZWRpYVNlbGVjdGlvbk9w
dGlvbnNdIGNvdW50XSA+IDA7Cit9CisKKysgKE5TU2V0ICopa2V5UGF0aHNGb3JWYWx1ZXNBZmZl
Y3RpbmdIYXNBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucworeworICAgIHJldHVybiBbTlNTZXQg
c2V0V2l0aE9iamVjdDpAImF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zIl07Cit9CisKKy0gKEJP
T0wpaGFzTGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucworeworICAgIHJldHVybiBbW3NlbGYg
bGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9uc10gY291bnRdID4gMDsKK30KKworKyAoTlNTZXQg
KilrZXlQYXRoc0ZvclZhbHVlc0FmZmVjdGluZ0hhc0xlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlv
bnMKK3sKKyAgICByZXR1cm4gW05TU2V0IHNldFdpdGhPYmplY3Q6QCJsZWdpYmxlTWVkaWFTZWxl
Y3Rpb25PcHRpb25zIl07Cit9CisKKy0gKFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKiljdXJy
ZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbgoreworICAgIHJldHVybiBfY3VycmVudEF1ZGlv
TWVkaWFTZWxlY3Rpb25PcHRpb247Cit9CisKKy0gKHZvaWQpc2V0Q3VycmVudEF1ZGlvTWVkaWFT
ZWxlY3Rpb25PcHRpb246KFdlYkFWTWVkaWFTZWxlY3Rpb25PcHRpb24gKilvcHRpb24KK3sKKyAg
ICBpZiAob3B0aW9uID09IF9jdXJyZW50QXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbikKKyAgICAg
ICAgcmV0dXJuOworICAgIAorICAgIFtfY3VycmVudEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb24g
cmVsZWFzZV07CisgICAgX2N1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9uID0gW29wdGlv
biByZXRhaW5dOworICAgIAorICAgIEFTU0VSVChzZWxmLmRlbGVnYXRlKTsKKyAgICAKKyAgICBO
U0ludGVnZXIgaW5kZXggPSBOU05vdEZvdW5kOworICAgIAorICAgIGlmIChvcHRpb24gJiYgc2Vs
Zi5hdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucykKKyAgICAgICAgaW5kZXggPSBbc2VsZi5hdWRp
b01lZGlhU2VsZWN0aW9uT3B0aW9ucyBpbmRleE9mT2JqZWN0Om9wdGlvbl07CisgICAgCisgICAg
c2VsZi5kZWxlZ2F0ZS0+c2VsZWN0QXVkaW9NZWRpYU9wdGlvbihpbmRleCAhPSBOU05vdEZvdW5k
ID8gaW5kZXggOiBVSU5UNjRfTUFYKTsKK30KKworLSAoV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlv
biAqKWN1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb24KK3sKKyAgICByZXR1cm4gX2N1
cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb247Cit9CisKKy0gKHZvaWQpc2V0Q3VycmVu
dExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbjooV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiAq
KW9wdGlvbgoreworICAgIGlmIChvcHRpb24gPT0gX2N1cnJlbnRMZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb24pCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbX2N1cnJlbnRMZWdpYmxlTWVk
aWFTZWxlY3Rpb25PcHRpb24gcmVsZWFzZV07CisgICAgX2N1cnJlbnRMZWdpYmxlTWVkaWFTZWxl
Y3Rpb25PcHRpb24gPSBbb3B0aW9uIHJldGFpbl07CisgICAgCisgICAgQVNTRVJUKHNlbGYuZGVs
ZWdhdGUpOworICAgIAorICAgIE5TSW50ZWdlciBpbmRleCA9IE5TTm90Rm91bmQ7CisgICAgCisg
ICAgaWYgKG9wdGlvbiAmJiBzZWxmLmxlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMpCisgICAg
ICAgIGluZGV4ID0gW3NlbGYubGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyBpbmRleE9mT2Jq
ZWN0Om9wdGlvbl07CisgICAgCisgICAgc2VsZi5kZWxlZ2F0ZS0+c2VsZWN0TGVnaWJsZU1lZGlh
T3B0aW9uKGluZGV4ICE9IE5TTm90Rm91bmQgPyBpbmRleCA6IFVJTlQ2NF9NQVgpOworfQorCitA
ZW5kCisKK0BpbnRlcmZhY2UgV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiA6IE5TT2JqZWN0CitA
cHJvcGVydHkgKHJldGFpbikgTlNTdHJpbmcgKmxvY2FsaXplZERpc3BsYXlOYW1lOworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbgogQGVuZAogCiBAaW50
ZXJmYWNlIFdlYkFWVmlkZW9MYXllciA6IENBTGF5ZXIgPEFWVmlkZW9MYXllcj4KQEAgLTM4MCw2
ICs0ODEsMzQgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0U2Vl
a2FibGVSYW5nZXMoY29uc3QgVGltZVJhbmdlcyYgdGltZVIKICAgICBwbGF5ZXJDb250cm9sbGVy
KCkuc2Vla2FibGVUaW1lUmFuZ2VzID0gc2Vla2FibGVSYW5nZXM7CiB9CiAKK3N0YXRpYyBOU011
dGFibGVBcnJheSAqbWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBv
cHRpb25zKQoreworICAgIE5TTXV0YWJsZUFycmF5ICp3ZWJPcHRpb25zID0gW05TTXV0YWJsZUFy
cmF5IGFycmF5V2l0aENhcGFjaXR5Om9wdGlvbnMuc2l6ZSgpXTsKKyAgICBmb3IgKGF1dG8mIG5h
bWUgOiBvcHRpb25zKSB7CisgICAgICAgIFJldGFpblB0cjxXZWJBVk1lZGlhU2VsZWN0aW9uT3B0
aW9uPiB3ZWJPcHRpb24gPSBhZG9wdE5TKFtbV2ViQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiBhbGxv
Y10gaW5pdF0pOworICAgICAgICBSZXRhaW5QdHI8TlNTdHJpbmc+IG5hbWVTdHJpbmcgPSBhZG9w
dE5TKFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoVVRGOFN0cmluZzpuYW1lLnV0ZjgoKS5kYXRh
KCldKTsKKyAgICAgICAgW3dlYk9wdGlvbiBzZXRMb2NhbGl6ZWREaXNwbGF5TmFtZTpuYW1lU3Ry
aW5nLmdldCgpXTsKKyAgICAgICAgW3dlYk9wdGlvbnMgYWRkT2JqZWN0OndlYk9wdGlvbi5nZXQo
KV07CisgICAgfQorICAgIHJldHVybiB3ZWJPcHRpb25zOworfQorCit2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25z
dCBWZWN0b3I8U3RyaW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAg
ICBOU011dGFibGVBcnJheSAqd2ViT3B0aW9ucyA9IG1lZGlhU2VsZWN0aW9uT3B0aW9ucyhvcHRp
b25zKTsKKyAgICBwbGF5ZXJDb250cm9sbGVyKCkuYXVkaW9NZWRpYVNlbGVjdGlvbk9wdGlvbnMg
PSB3ZWJPcHRpb25zOworICAgIGlmIChzZWxlY3RlZEluZGV4IDwgd2ViT3B0aW9ucy5jb3VudCkK
KyAgICAgICAgcGxheWVyQ29udHJvbGxlcigpLmN1cnJlbnRBdWRpb01lZGlhU2VsZWN0aW9uT3B0
aW9uID0gd2ViT3B0aW9uc1soc2l6ZV90KXNlbGVjdGVkSW5kZXhdOworfQorCit2b2lkIFdlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRp
b25zKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4
KQoreworICAgIE5TTXV0YWJsZUFycmF5ICp3ZWJPcHRpb25zID0gbWVkaWFTZWxlY3Rpb25PcHRp
b25zKG9wdGlvbnMpOworICAgIHBsYXllckNvbnRyb2xsZXIoKS5sZWdpYmxlTWVkaWFTZWxlY3Rp
b25PcHRpb25zID0gd2ViT3B0aW9uczsKKyAgICBpZiAoc2VsZWN0ZWRJbmRleCA8IHdlYk9wdGlv
bnMuY291bnQpCisgICAgICAgIHBsYXllckNvbnRyb2xsZXIoKS5jdXJyZW50TGVnaWJsZU1lZGlh
U2VsZWN0aW9uT3B0aW9uID0gd2ViT3B0aW9uc1soc2l6ZV90KXNlbGVjdGVkSW5kZXhdOworfQor
CiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjplbnRlckZ1bGxzY3JlZW4o
UGxhdGZvcm1MYXllciYgdmlkZW9MYXllcikKIHsKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdD4gcHJvdGVjdCh0aGlzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKaW5kZXgg
NzliOTJkMTVkYzNhMGM0NDJjYjIxZWQ5OGRmNjg0ZjYxZDc1ZTdlYi4uMjEwMmVhOGUxZTQ3MGVh
Y2FmZmVjMjlhNjYxMjczYzU5YjU2YzY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsLmgKQEAgLTQ0LDYgKzQ0LDggQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyRnJhbWUoRmxvYXRSZWN0KSA9
IDA7CiAgICAgZW51bSBWaWRlb0dyYXZpdHkgeyBWaWRlb0dyYXZpdHlSZXNpemUsIFZpZGVvR3Jh
dml0eVJlc2l6ZUFzcGVjdCwgVmlkZW9HcmF2aXR5UmVzaXplQXNwZWN0RmlsbCB9OwogICAgIHZp
cnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eShWaWRlb0dyYXZpdHkpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgp
ID0gMDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKaW5kZXggZTI2
NDcwODEwMzBkMzg2ZjJjZWY5MzZiZGY2NWExZDE1NzViYzc5MC4uOGM5ZTYxMDY1Yzk2ZDcwMGM4
OGQxODMwMzFmZDIwMDFiNWE0MmViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50
LmgKQEAgLTY1LDcgKzY1LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RXhp
dEZ1bGxzY3JlZW4oKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckZy
YW1lKEZsb2F0UmVjdCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJH
cmF2aXR5KFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpIG92ZXJyaWRlOwot
CisgICAgdmlydHVhbCB2b2lkIHNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWlu
dDY0X3QgaW5kZXgpIG92ZXJyaWRlOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFF
bGVtZW50Lm1tCmluZGV4IGJhMmNmM2MwY2VmMWJmNzFmYmE2OGQ4NzBkNDg0MGQ4NjEwZWRiN2Eu
LjEyNjAzOWM4NDFhNzEwNmQ4NTliYTU2NjNhNDM5NTNhOTFmNjBmMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlhRWxl
bWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxNZWRpYUVsZW1lbnQubW0KQEAgLTg3LDYgKzg3LDEzIEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxNZWRpYUVsZW1lbnQ6OnNldE1lZGlhRWxlbWVudChIVE1MTWVkaWFFbGVt
ZW50KiBtZWRpCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldFNlZWthYmxlUmFu
Z2VzKCptX21lZGlhRWxlbWVudC0+c2Vla2FibGUoKSk7CiAgICAgbV92aWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2UtPnNldFJhdGUoIW1fbWVkaWFFbGVtZW50LT5wYXVzZWQoKSwgbV9tZWRpYUVsZW1l
bnQtPnBsYXliYWNrUmF0ZSgpKTsKIAorICAgIFZlY3RvcjxTdHJpbmc+IGxlZ2libGVPcHRpb25z
OworICAgIAorICAgIGZvciAoYXV0byYgdGV4dFRyYWNrIDogbV9tZWRpYUVsZW1lbnQtPnBsYXRm
b3JtVGV4dFRyYWNrcygpKQorICAgICAgICBsZWdpYmxlT3B0aW9ucy5hcHBlbmQodGV4dFRyYWNr
LT5sYWJlbCgpKTsKKyAgICAKKyAgICBtX3ZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS0+c2V0TGVn
aWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhsZWdpYmxlT3B0aW9ucywgMCk7CisgICAgCiAgICAg
bV92aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UtPnNldEN1cnJlbnRUaW1lKG1fbWVkaWFFbGVtZW50
LT5jdXJyZW50VGltZSgpLCBbW05TUHJvY2Vzc0luZm8gcHJvY2Vzc0luZm9dIHN5c3RlbVVwdGlt
ZV0pOwogCiAgICAgaWYgKGlzSFRNTFZpZGVvRWxlbWVudChtX21lZGlhRWxlbWVudC5nZXQoKSkp
IHsKQEAgLTE5Niw0ICsyMDMsMTkgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1lZGlh
RWxlbWVudDo6c2V0VmlkZW9MYXllckdyYXZpdHkoV2ViVmlkZW9GdWxsc2NyZWUKICAgICBtX21l
ZGlhRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuR3Jhdml0eSh2aWRlb0dyYXZpdHkpOwogfQog
Cit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsTWVkaWFFbGVtZW50OjpzZWxlY3RBdWRpb01l
ZGlhT3B0aW9uKHVpbnQ2NF90KQoreworICAgIC8vIEZJWE1FOiAxMzEyMzYgSW1wbGVtZW50IGF1
ZGlvIHRyYWNrIHNlbGVjdGlvbi4KK30KKwordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudDo6c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQorewor
ICAgIFJlZlB0cjxQbGF0Zm9ybVRleHRUcmFjaz4gcGxhdGZvcm1UcmFjazsKKyAgICAKKyAgICBp
ZiAoaW5kZXggPCBtX21lZGlhRWxlbWVudC0+cGxhdGZvcm1UZXh0VHJhY2tzKCkuc2l6ZSgpKQor
ICAgICAgICBwbGF0Zm9ybVRyYWNrID0gbV9tZWRpYUVsZW1lbnQtPnBsYXRmb3JtVGV4dFRyYWNr
cygpW3N0YXRpY19jYXN0PHNpemVfdD4oaW5kZXgpXTsKKyAgICAKKyAgICBtX21lZGlhRWxlbWVu
dC0+c2V0U2VsZWN0ZWRUZXh0VHJhY2socGxhdGZvcm1UcmFjayk7Cit9CisKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmgKaW5kZXggZTk2MGI2ZjZkNDMxNTQ2NGNjZWYxYTBkODk5Yjll
NDkxZDY0YjliNC4uY2I5ZjUyODNhNDRkZDVhOTNhMWU5YjkwMzlmNDlmMDg2YjY1MjZhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHByaXZhdGU6CiAgICAg
dmlydHVhbCB2b2lkIHNlZWtUb1RpbWUoZG91YmxlKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCkgb3ZlcnJpZGU7CiAgICAg
dmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZWxl
Y3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90KSBvdmVycmlkZTsKIAogICAgIFdlYlBh
Z2VQcm94eSogbV9wYWdlOwogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX2xheWVySG9z
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggZDNl
MTVmOWY5MjBjZDM0MzRhOWYwMzY4N2M2MDRiMDI0MDA1MTk2Yy4uM2RhYjMyOTMxZmQxYjI3ZjM3
YzZhZTk4ODdmOTg2M2QyODI0MDAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KQEAgLTI1LDYgKzI1LDggQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5IHsKICAgICBTZXRDdXJyZW50VGltZShkb3VibGUgY3VycmVudFRp
bWUsIGRvdWJsZSBob3N0VGltZSkKICAgICBTZXRWaWRlb0RpbWVuc2lvbnMoYm9vbCBoYXNWaWRl
bywgdW5zaWduZWQgd2lkdGgsIHVuc2lnbmVkIGhlaWdodCkKICAgICBTZXRTZWVrYWJsZVJhbmdl
c1ZlY3RvcihWZWN0b3I8c3RkOjpwYWlyPGRvdWJsZSwgZG91YmxlPj4gcmFuZ2VzKTsKKyAgICBT
ZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhWZWN0b3I8U3RyaW5nPiBvcHRpb25zLCB1aW50
NjRfdCBzZWxlY3RlZEluZGV4KTsKKyAgICBTZXRMZWdpYmxlTWVkaWFTZWxlY3Rpb25PcHRpb25z
KFZlY3RvcjxTdHJpbmc+IG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVjdGVkSW5kZXgpOwogICAgIFNl
dER1cmF0aW9uKGRvdWJsZSBkdXJhdGlvbikKICAgICBTZXRSYXRlKGJvb2wgaXNQbGF5aW5nLCBk
b3VibGUgcmF0ZSkKICAgICBFbnRlckZ1bGxzY3JlZW5XaXRoSUQodWludDMyX3QgdmlkZW9MYXll
cklEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCBmNWRiZGI1ZjI0OWY0NDM2YTk1
NDI2NDYwMGI0ZDQ0NTI1MmQyNzg3Li45YzAxMTc2ZDQwZGI4MjNkYjNmNGM5NDVmZDY3NDQ5Njkx
NWFjYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMTI1LDYgKzEyNSwxNiBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckdyYXZp
dHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxscwogewogICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKCh1bnNp
Z25lZClncmF2aXR5KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CisgICAgCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBp
bmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OlNlbGVjdEF1ZGlvTWVkaWFPcHRpb24oaW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsK
K30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWxlY3RMZWdp
YmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24o
aW5kZXgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIuaAppbmRleCAzNjQ1ZjAwMjI5YWU1MWMwZmU1NjZhMzA3MWQ0Y2Y0MTk4
ZGU0MTI5Li4zMWU3ODcxNWQ4ODIyMDVlNDY0OTdjMjYwN2FmZWMwNGNmODU0NWU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oCkBAIC03MSw2ICs3MSw4IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UmF0ZShib29sIGlzUGxheWluZywgZmxvYXQgcGxheWJhY2tSYXRlKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9EaW1lbnNpb25zKGJvb2wgaGFzVmlkZW8sIGZsb2F0
IHdpZHRoLCBmbG9hdCBoZWlnaHQpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZWVr
YWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFuZ2VzJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldEF1ZGlvTWVkaWFTZWxlY3Rpb25PcHRpb25zKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBvcHRpb25zLCB1aW50NjRfdCBzZWxlY3RlZEluZGV4KSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TGVnaWJsZU1lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYgb3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkgb3ZlcnJpZGU7CiAgICAgCiAg
ICAgLy8gYWRkaXRpb25hbCBpbmNvbWluZwogICAgIHZpcnR1YWwgdm9pZCBkaWRFbnRlckZ1bGxz
Y3JlZW4oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDRmYmRl
MGZiZjRkZDRhODljZmExNTQxMmJkM2ZiOGVlN2Q3ZTEyZTcuLmNkZGU0YjczZWIyMmIxZTM4MzNm
ZTEyY2YxOTgwOWU3M2Q2ZTc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzEsNSArMzEsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyIHsKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4oKQogICAgIFNldFZpZGVvTGF5ZXJGcmFtZShX
ZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzKQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1
bnNpZ25lZCBncmF2aXR5KQorICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5k
ZXgpCisgICAgU2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogfQogI2Vu
ZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCA1MmJjZmE3MWZiZGU4ODlmMzE5YjhhMjg5OWM3
NDRmOTMzYjQ1MmMwLi42MzNmOTdhYjM3YmEzNTgyY2I0ZjM0ODA1ZGM5OTFmZmZlOTRkOTcwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTEzNSw2ICsxMzUsMTYgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpzZXRTZWVrYWJsZVJhbmdlcyhjb25zdCBXZWJDb3JlOjpUaW1lUmFu
Z2VzJiB0aW0KICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eTo6U2V0U2Vla2FibGVSYW5nZXNWZWN0b3Ioc3RkOjptb3ZlKHJhbmdlc1ZlY3Rv
cikpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpzZXRBdWRpb01lZGlhU2VsZWN0aW9uT3B0aW9ucyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
b3B0aW9ucywgdWludDY0X3Qgc2VsZWN0ZWRJbmRleCkKK3sKKyAgICBtX3BhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6U2V0QXVkaW9NZWRpYVNlbGVj
dGlvbk9wdGlvbnMob3B0aW9ucywgc2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOwor
fQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldExlZ2libGVNZWRpYVNlbGVj
dGlvbk9wdGlvbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIG9wdGlvbnMsIHVpbnQ2NF90IHNlbGVj
dGVkSW5kZXgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OlNldExlZ2libGVNZWRpYVNlbGVjdGlvbk9wdGlvbnMob3B0aW9ucywg
c2VsZWN0ZWRJbmRleCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRFbnRlckZ1bGxzY3JlZW4oKQogewogICAgIG1faXNBbmlt
YXRpbmcgPSBmYWxzZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>