<?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>134919</bug_id>
          
          <creation_ts>2014-07-14 23:38:48 -0700</creation_ts>
          <short_desc>Decrease flicker when enter and exit fullscreen.</short_desc>
          <delta_ts>2014-07-30 07:43:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>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>InRadar</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>calvaris</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mitz</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1022420</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-14 23:38:48 -0700</bug_when>
    <thetext>Decrease flicker when enter and exit fullscreen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022421</commentid>
    <comment_count>1</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-14 23:39:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/17351830&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022423</commentid>
    <comment_count>2</comment_count>
      <attachid>234908</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-15 00:09:07 -0700</bug_when>
    <thetext>Created attachment 234908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022472</commentid>
    <comment_count>3</comment_count>
      <attachid>234908</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-07-15 07:29:52 -0700</bug_when>
    <thetext>Comment on attachment 234908
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:964
&gt;      if (m_videoFullscreenLayer &amp;&amp; m_videoLayer) {
&gt; -        CGRect frame = CGRectMake(0, 0, m_videoFullscreenFrame.width(), m_videoFullscreenFrame.height());
&gt; -        [m_videoLayer setFrame:frame];
&gt; +        [CATransaction begin];
&gt; +        [CATransaction setDisableActions:YES];
&gt; +        [m_videoLayer setFrame:[m_videoFullscreenLayer bounds]];
&gt; +        [m_videoLayer removeFromSuperlayer];
&gt;          [m_videoFullscreenLayer insertSublayer:m_videoLayer.get() atIndex:0];
&gt; -    }
&gt; +        [CATransaction commit];
&gt; +    } else if (m_videoInlineLayer &amp;&amp; m_videoLayer) {
&gt; +        [CATransaction begin];
&gt; +        [CATransaction setDisableActions:YES];
&gt; +        [m_videoLayer setFrame:[m_videoInlineLayer bounds]];
&gt; +        [m_videoLayer removeFromSuperlayer];
&gt; +        [m_videoInlineLayer insertSublayer:m_videoLayer.get() atIndex:0];
&gt; +        [CATransaction commit];
&gt; +    } else if (m_videoLayer)
&gt; +        [m_videoLayer removeFromSuperlayer];

Nit: You could just wrap this block with [CATransaction begin] ... [CATransaction commit]

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:179
&gt; +// HELP! Where should I put this? It is also declared in MediaPlayerPrivateAVFoundationObjC.mm

Oops, this shouldn&apos;t be here.

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:185
&gt; +@interface WebVideoContainerLayer : CALayer
&gt; +@end
&gt; +
&gt;  PlatformCALayer::LayerType PlatformCALayerMac::layerTypeForPlatformLayer(PlatformLayer* layer)
&gt;  {
&gt; -    if ([layer isKindOfClass:getAVPlayerLayerClass()])
&gt; +    if ([layer isKindOfClass:getAVPlayerLayerClass()] || [layer isKindOfClass:[WebVideoContainerLayer class]])

This is ugly... object_getClassName() isn&apos;t a lot better, but at least you don&apos;t have to declare the interface here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1022533</commentid>
    <comment_count>4</comment_count>
      <attachid>234908</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-07-15 12:10:42 -0700</bug_when>
    <thetext>Comment on attachment 234908
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        is as easy as adding and removig it from a containter layer; no need to do a layout.

removig

&gt; Source/WebCore/ChangeLog:11
&gt; +        Make sure fullscreen layers are transpreant before moving moving the AVPlayerLayer

transpreant

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Change the sequence of teartdown and use transparency to prevent flicker when entering and exiting fullscreen.

teartdown

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:89
&gt; +@interface WebVideoContainerLayer : CALayer { }

I don&apos;t think you need the { }

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:93
&gt; +-(void)setBounds:(CGRect)bounds {

Space after the @implementation line. { on a new line.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:96
&gt; +    for (CALayer* l in self.sublayers)
&gt; +        l.frame = bounds;

Please don&apos;t abbreviate layer to l.

&gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:624
&gt;      m_videoLayer = 0;
&gt; +    m_videoInlineLayer = 0;

These should be nil

&gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:181
&gt; +@interface WebVideoContainerLayer : CALayer
&gt; +@end

Nor should this.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:36
&gt; +#import &lt;WebCore/WAKWindow.h&gt;

Why this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023564</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-20 15:48:54 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 234908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234908&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:964
&gt; &gt;      if (m_videoFullscreenLayer &amp;&amp; m_videoLayer) {
&gt; &gt; -        CGRect frame = CGRectMake(0, 0, m_videoFullscreenFrame.width(), m_videoFullscreenFrame.height());
&gt; &gt; -        [m_videoLayer setFrame:frame];
&gt; &gt; +        [CATransaction begin];
&gt; &gt; +        [CATransaction setDisableActions:YES];
&gt; &gt; +        [m_videoLayer setFrame:[m_videoFullscreenLayer bounds]];
&gt; &gt; +        [m_videoLayer removeFromSuperlayer];
&gt; &gt;          [m_videoFullscreenLayer insertSublayer:m_videoLayer.get() atIndex:0];
&gt; &gt; -    }
&gt; &gt; +        [CATransaction commit];
&gt; &gt; +    } else if (m_videoInlineLayer &amp;&amp; m_videoLayer) {
&gt; &gt; +        [CATransaction begin];
&gt; &gt; +        [CATransaction setDisableActions:YES];
&gt; &gt; +        [m_videoLayer setFrame:[m_videoInlineLayer bounds]];
&gt; &gt; +        [m_videoLayer removeFromSuperlayer];
&gt; &gt; +        [m_videoInlineLayer insertSublayer:m_videoLayer.get() atIndex:0];
&gt; &gt; +        [CATransaction commit];
&gt; &gt; +    } else if (m_videoLayer)
&gt; &gt; +        [m_videoLayer removeFromSuperlayer];
&gt; 
&gt; Nit: You could just wrap this block with [CATransaction begin] ... [CATransaction commit]

Done.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:179
&gt; &gt; +// HELP! Where should I put this? It is also declared in MediaPlayerPrivateAVFoundationObjC.mm
&gt; 
&gt; Oops, this shouldn&apos;t be here.

Removed.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:185
&gt; &gt; +@interface WebVideoContainerLayer : CALayer
&gt; &gt; +@end
&gt; &gt; +
&gt; &gt;  PlatformCALayer::LayerType PlatformCALayerMac::layerTypeForPlatformLayer(PlatformLayer* layer)
&gt; &gt;  {
&gt; &gt; -    if ([layer isKindOfClass:getAVPlayerLayerClass()])
&gt; &gt; +    if ([layer isKindOfClass:getAVPlayerLayerClass()] || [layer isKindOfClass:[WebVideoContainerLayer class]])
&gt; 
&gt; This is ugly... object_getClassName() isn&apos;t a lot better, but at least you don&apos;t have to declare the interface here.

Ok, removed declaration and switched to objc_getClass()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023565</commentid>
    <comment_count>6</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-20 15:56:57 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 234908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=234908&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        is as easy as adding and removig it from a containter layer; no need to do a layout.
&gt; 
&gt; removig

-&gt; removing

&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        Make sure fullscreen layers are transpreant before moving moving the AVPlayerLayer
&gt; 
&gt; transpreant

-&gt; transparent

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:8
&gt; &gt; +        Change the sequence of teartdown and use transparency to prevent flicker when entering and exiting fullscreen.
&gt; 
&gt; teartdown

-&gt; tear down

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:89
&gt; &gt; +@interface WebVideoContainerLayer : CALayer { }
&gt; 
&gt; I don&apos;t think you need the { }

Removed.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:93
&gt; &gt; +-(void)setBounds:(CGRect)bounds {
&gt; 
&gt; Space after the @implementation line. { on a new line.

New lines added.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:96
&gt; &gt; +    for (CALayer* l in self.sublayers)
&gt; &gt; +        l.frame = bounds;
&gt; 
&gt; Please don&apos;t abbreviate layer to l.

l -&gt; layer

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:624
&gt; &gt;      m_videoLayer = 0;
&gt; &gt; +    m_videoInlineLayer = 0;
&gt; 
&gt; These should be nil

Changed to nil.

&gt; 
&gt; &gt; Source/WebCore/platform/graphics/ca/mac/PlatformCALayerMac.mm:181
&gt; &gt; +@interface WebVideoContainerLayer : CALayer
&gt; &gt; +@end
&gt; 
&gt; Nor should this.

Deleted.

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenControllerAVKit.mm:36
&gt; &gt; +#import &lt;WebCore/WAKWindow.h&gt;
&gt; 
&gt; Why this?

Deleted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023567</commentid>
    <comment_count>7</comment_count>
      <attachid>235192</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-20 16:33:41 -0700</bug_when>
    <thetext>Created attachment 235192
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023581</commentid>
    <comment_count>8</comment_count>
      <attachid>235192</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-20 17:51:48 -0700</bug_when>
    <thetext>Comment on attachment 235192
Patch for landing.

Rejecting attachment 235192 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-02&apos;, &apos;validate-changelog&apos;, &apos;--check-oops&apos;, &apos;--non-interactive&apos;, 235192, &apos;--port=mac&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

ChangeLog entry in Source/WebCore/ChangeLog contains OOPS!.

Full output: http://webkit-queues.appspot.com/results/5222228933214208</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023591</commentid>
    <comment_count>9</comment_count>
      <attachid>235198</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-07-20 18:51:45 -0700</bug_when>
    <thetext>Created attachment 235198
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023594</commentid>
    <comment_count>10</comment_count>
      <attachid>235198</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-07-20 19:30:45 -0700</bug_when>
    <thetext>Comment on attachment 235198
Patch for landing.

Clearing flags on attachment: 235198

Committed r171286: &lt;http://trac.webkit.org/changeset/171286&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>234908</attachid>
            <date>2014-07-15 00:09:07 -0700</date>
            <delta_ts>2014-07-15 12:10:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-134919-20140715000829.patch</filename>
            <type>text/plain</type>
            <size>16107</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNDdlOTg5ZWYxZmQy
ZGYwMDlkYjE4Y2FlYzEyMWY1ZDMxYTkxZS4uOWI3Yjg5N2QzOTAwOGQ0ZTM3ZDdlZDMxODU3ZWZh
YjBhYTcyYWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE0LTA3LTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAorICAgICAgICBEZWNyZWFzZSBmbGlja2Vy
IHdoZW4gZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1dCBBVlBsYXllckxheWVyIGluIGEgY29udGFpbmVy
IGxheWVyIHNvIG1vdmluZyBpdCBiZXR3ZWVuIGlubGluZSBhbmQgZnVsbHNjcmVlbgorICAgICAg
ICBpcyBhcyBlYXN5IGFzIGFkZGluZyBhbmQgcmVtb3ZpZyBpdCBmcm9tIGEgY29udGFpbnRlciBs
YXllcjsgbm8gbmVlZCB0byBkbyBhIGxheW91dC4KKworICAgICAgICBNYWtlIHN1cmUgZnVsbHNj
cmVlbiBsYXllcnMgYXJlIHRyYW5zcHJlYW50IGJlZm9yZSBtb3ZpbmcgbW92aW5nIHRoZSBBVlBs
YXllckxheWVyCisgICAgICAgIGJldHdlZW4gaW5saW5lIGFuZCBmdWxsc2NyZWVuIHNvIHlvdSBk
b24ndCBicmllZmx5IHNlZSB0aGUgZW1wdHkgZnVsbHNjcmVlbiBsYXllcnMuCisKKyAgICAgICAg
KiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6cGxhdGZvcm1MYXllcik6IHJlbW92ZSBmdWxsc2NyZWVuIHNwZWNpYWwgY2FzZS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKTogbm8gbmVlZCB0byByZWNhbGMgc3R5bGUKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmg6
IGFkZCBpbmxpbmUgY29udGFpbmVyIGxheWVyCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbTog
CisgICAgICAgIGFkZCBXZWJWaWRlb0NvbnRhaW5lckxheWVyIHRvIGNvbnRhaW4gQVZQbGF5ZXJM
YXllciBhbmQga2VlcCBsYXlvdXQgY29ycmVjdC4KKyAgICAgICAgKC1bV2ViVmlkZW9Db250YWlu
ZXJMYXllciBzZXRCb3VuZHM6XSk6IGZvcndhcmQgc2V0Ym91bmRzIHRvIHNldCBjaGlsZCBmcmFt
ZS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6
OmNyZWF0ZUFWUGxheWVyTGF5ZXIpOiBjcmVhdGUgdGhlIHZpZGVvIGNvbnRhaW5lciBsYXllcgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6ZGVz
dHJveVZpZGVvTGF5ZXIpOiBkZXN0cm95IHRoZSB2aWRlbyBjb250YWluZXIgbGF5ZXIKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3Jt
TGF5ZXIpOiB1c2UgY29udGFpbmVyIGxheWVyIGluc3RlYWQgb2YgdmlkZW8gbGF5ZXIKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKTogdXNlIHRyYW5zYWN0aW9ucyB0byBwcmV2ZW50IHVud2FudGVkIGFu
aW1hdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnNldFZpZGVvRnVsbHNjcmVlbkZyYW1lKTogZGl0dG8KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tOgorICAgICAgICAoUGxhdGZv
cm1DQUxheWVyTWFjOjpsYXllclR5cGVGb3JQbGF0Zm9ybUxheWVyKTogV2ViVmlkZW9Db250YWlu
ZXJMYXllciBpcyBhIGtpbmQgb2YgQVZQbGF5ZXJMYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW06CisgICAgICAgICgtW1dlYlZp
ZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXIgZGlkQ2xlYW51cEZ1bGxzY3JlZW5dKTogcmVtb3ZlIHZp
ZGVvIGZ1bGxzY3JlZW4gbGF5ZXIgZmlyc3QKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2NyZWVuKTogbWFrZSBiYWNrZ3JvdW5kIHRyYW5z
cGFyZW50IGR1cmluZyB0cmFuc2l0aW9uLgorICAgICAgICAgICBkaXNwYXRjaF9hc3luYyB0byBh
bGxvdyBDQVRyYW5zYWN0aW9uIHRvIGNvbXBsZXRlIGJlZm9yZSBjYWxsaW5nIGRpZFNldHVwRnVs
bHNjcmVlbigpCisKKzIwMTQtMDctMTQgIEplcmVteSBKb25lcyAgPGplcmVteWpAYXBwbGUuY29t
PgorCiAgICAgICAgIEZpeCBjcmFzaCBvbiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkg
Y29uc3RydWN0aW9uLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTM0OTA5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkYTNkYTVlM2YzYzYzMTgwMTgzNTVmY2ZlODhl
NTU1MTlhOGFjOTQxLi5mNzVmMWU3NzU5ODVjNzM2NTc1YmZhMWJjOWRiOWI0ODg3ZGY3M2Q0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTQtMDctMTQgIEplcmVteSBKb25lcyAgPGpl
cmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIERlY3JlYXNlIGZsaWNrZXIgd2hlbiBlbnRlciBh
bmQgZXhpdCBmdWxsc2NyZWVuLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTM0OTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQ2hhbmdlIHRoZSBzZXF1ZW5jZSBvZiB0ZWFydGRvd24gYW5kIHVzZSB0cmFu
c3BhcmVuY3kgdG8gcHJldmVudCBmbGlja2VyIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmcgZnVs
bHNjcmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lm1tOiB3YWl0IHRvIHJlbW92ZSBsYXllckhvc3QgdW50aWwgZGlkQ2xlYW51cEZ1
bGxzY3JlZW4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpkaWRFeGl0RnVsbHNjcmVlbik6IHJlbW92ZWQgZnJvbSBoZXJlCisgICAgICAgIChXZWJLaXQ6
OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOiBh
ZGRlZCBoZXJlCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlk
U2V0dXBGdWxsc2NyZWVuKTogdXNlIHRyYW5zcGFyZW50IGJhY2tncm91bmQgZHVyaW5nIHRyYW5z
aXRpb24KKwogMjAxNC0wNy0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29t
PgogCiAgICAgICAgIFtDb2NvYV0gX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIGxlYWtzIE5TU3Ry
aW5nIGl2YXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDVj
MGVkZWEzYjZhM2M0NTMxMWJmNzU0NmU5ZWE1YzZhNGNjMmUzMTguLjZkY2IyZjk0NWQ5YjdlMmNj
NWU3ZWFjY2EwM2NhMTExOTk2M2JiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcApAQCAtNDk0NiwxMCArNDk0Niw2IEBAIFBsYXRmb3JtTWVkaWEgSFRNTE1lZGlh
RWxlbWVudDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAKIFBsYXRmb3JtTGF5ZXIqIEhUTUxNZWRp
YUVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKElPUykKLSAg
ICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0j
ZW5kaWYKICAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1MYXllcigpIDog
bnVsbHB0cjsKIH0KIApAQCAtNDk2MSw3ICs0OTU3LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKQog
ICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV9wbGF5ZXItPnNldFZpZGVvRnVsbHNjcmVlbkxh
eWVyKHBsYXRmb3JtTGF5ZXIpOwotICAgIHNldE5lZWRzU3R5bGVSZWNhbGMoU3ludGhldGljU3R5
bGVDaGFuZ2UpOwogI2lmIEVOQUJMRShWSURFT19UUkFDSykKICAgICBpZiAoUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQog
ICAgICAgICB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKaW5k
ZXggMzQ5M2VjZjhhY2Y0OTljOThjMDkyODIxMjBiZjg1OTM1NTYwZDJiOS4uZGRjNDNhOTQyNzE5
ZmJhM2MyNmExNjgxY2EzNzdlYmFkYWFlNDY2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaApAQCAt
MjY5LDYgKzI2OSw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPEFWUGxheWVyPiBtX2F2UGxh
eWVyOwogICAgIFJldGFpblB0cjxBVlBsYXllckl0ZW0+IG1fYXZQbGF5ZXJJdGVtOwogICAgIFJl
dGFpblB0cjxBVlBsYXllckxheWVyPiBtX3ZpZGVvTGF5ZXI7CisgICAgUmV0YWluUHRyPFBsYXRm
b3JtTGF5ZXI+IG1fdmlkZW9JbmxpbmVMYXllcjsKICNpZiBQTEFURk9STShJT1MpCiAgICAgUmV0
YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXI7CiAgICAgRmxvYXRS
ZWN0IG1fdmlkZW9GdWxsc2NyZWVuRnJhbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQppbmRleCA5
ODQ4ZDk5OGZhMjhiY2VjN2RlNmY4MDE1MWM2MDI3YjE0YjdkNTRhLi45NzYwZjI5YmFjMzIxZjFl
NTQ4MmM1MGZlODY4N2JlODA0ODZmY2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KQEAgLTg2
LDYgKzg2LDE3IEBACiAjaW1wb3J0IDxWaWRlb1Rvb2xib3gvVmlkZW9Ub29sYm94Lmg+CiAjZW5k
aWYKIAorQGludGVyZmFjZSBXZWJWaWRlb0NvbnRhaW5lckxheWVyIDogQ0FMYXllciB7IH0KK0Bl
bmQKKworQGltcGxlbWVudGF0aW9uIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIKKy0odm9pZClzZXRC
b3VuZHM6KENHUmVjdClib3VuZHMgeworICAgIFtzdXBlciBzZXRCb3VuZHM6Ym91bmRzXTsKKyAg
ICBmb3IgKENBTGF5ZXIqIGwgaW4gc2VsZi5zdWJsYXllcnMpCisgICAgICAgIGwuZnJhbWUgPSBi
b3VuZHM7Cit9CitAZW5kCisKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogLy8gTm90ZTogVGhp
cyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIG91ciBTT0ZUX0xJTksgbWFjcm9zOgogQGNsYXNzIEFW
TWVkaWFTZWxlY3Rpb25PcHRpb247CkBAIC01NzIsMjEgKzU4MywyNiBAQCB2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIoKQogICAgIG1f
dmlkZW9MYXllciA9IGFkb3B0TlMoW1tBVlBsYXllckxheWVyIGFsbG9jXSBpbml0XSk7CiAgICAg
W21fdmlkZW9MYXllciBzZXRQbGF5ZXI6bV9hdlBsYXllci5nZXQoKV07CiAgICAgW21fdmlkZW9M
YXllciBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9y
U3BhY2VEZXZpY2VSR0IpXTsKKyAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBhZG9wdE5TKFtbV2Vi
VmlkZW9Db250YWluZXJMYXllciBhbGxvY10gaW5pdF0pOwogI2lmbmRlZiBOREVCVUcKICAgICBb
bV92aWRlb0xheWVyIHNldE5hbWU6QCJNZWRpYVBsYXllclByaXZhdGUgQVZQbGF5ZXJMYXllciJd
OwogI2VuZGlmCiAgICAgW21fdmlkZW9MYXllciBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5n
ZXQoKSBmb3JLZXlQYXRoOkAicmVhZHlGb3JEaXNwbGF5IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNl
cnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2Jz
ZXJ2YXRpb25Db250ZXh0QVZQbGF5ZXJMYXllcl07CiAgICAgdXBkYXRlVmlkZW9MYXllckdyYXZp
dHkoKTsKICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0gcGxheWVyKCktPm1lZGlhUGxheWVyQ2xp
ZW50KCkgPyBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDb250ZW50
Qm94UmVjdCgpLnBpeGVsU25hcHBlZFNpemUoKSA6IEludFNpemUoKTsKLSAgICBbbV92aWRlb0xh
eWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZGVmYXVsdFNpemUud2lkdGgoKSwgZGVmYXVs
dFNpemUuaGVpZ2h0KCkpXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZyYW1lOkNHUmVj
dE1ha2UoMCwgMCwgZGVmYXVsdFNpemUud2lkdGgoKSwgZGVmYXVsdFNpemUuaGVpZ2h0KCkpXTsK
ICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVh
dGVWaWRlb0xheWVyKCVwKSAtIHJldHVybmluZyAlcCIsIHRoaXMsIG1fdmlkZW9MYXllci5nZXQo
KSk7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIp
IHsKLSAgICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlk
ZW9GdWxsc2NyZWVuRnJhbWUud2lkdGgoKSwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQo
KSldOworICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOlttX3ZpZGVvRnVsbHNjcmVlbkxh
eWVyIGJvdW5kc11dOwogICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJs
YXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsKLSAgICB9CisgICAgfSBlbHNlCiAj
ZW5kaWYKKyAgICB7CisgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgaW5zZXJ0U3VibGF5ZXI6
bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0
RnJhbWU6bV92aWRlb0lubGluZUxheWVyLmdldCgpLmJvdW5kc107CisgICAgfQogfQogCiB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb0xheWVyKCkK
QEAgLTYwNSw2ICs2MjEsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OmRlc3Ryb3lWaWRlb0xheWVyKCkKICNlbmRpZgogCiAgICAgbV92aWRlb0xheWVyID0gMDsK
KyAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSAwOwogfQogCiBib29sIE1lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbk9iakM6Omhhc0F2YWlsYWJsZVZpZGVvRnJhbWUoKSBjb25zdApAQCAtOTE4
LDcgKzkzNSw3IEBAIFBsYXRmb3JtTWVkaWEgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAKIFBsYXRmb3JtTGF5ZXIqIE1lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotICAgIHJl
dHVybiBtX2hhdmVCZWVuQXNrZWRUb0NyZWF0ZUxheWVyID8gbV92aWRlb0xheWVyLmdldCgpIDog
bnVsbHB0cjsKKyAgICByZXR1cm4gbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXllciA/IG1fdmlk
ZW9JbmxpbmVMYXllci5nZXQoKSA6IG51bGxwdHI7CiB9CiAKICNpZiBQTEFURk9STShJT1MpCkBA
IC05MjcsMTYgKzk0NCwyNCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9i
akM6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5ZXIqCiAgICAgaWYgKG1fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXIgPT0gdmlkZW9GdWxsc2NyZWVuTGF5ZXIpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKQotICAgICAgIFttX3ZpZGVvTGF5
ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllciA9
IHZpZGVvRnVsbHNjcmVlbkxheWVyOwogCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
JiYgbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIENHUmVjdCBmcmFtZSA9IENHUmVjdE1ha2UoMCwg
MCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1l
LmhlaWdodCgpKTsKLSAgICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFtZTpmcmFtZV07CisgICAg
ICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlz
YWJsZUFjdGlvbnM6WUVTXTsKKyAgICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFtZTpbbV92aWRl
b0Z1bGxzY3JlZW5MYXllciBib3VuZHNdXTsKKyAgICAgICAgW21fdmlkZW9MYXllciByZW1vdmVG
cm9tU3VwZXJsYXllcl07CiAgICAgICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGluc2VydFN1
YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOwotICAgIH0KKyAgICAgICAgW0NB
VHJhbnNhY3Rpb24gY29tbWl0XTsKKyAgICB9IGVsc2UgaWYgKG1fdmlkZW9JbmxpbmVMYXllciAm
JiBtX3ZpZGVvTGF5ZXIpIHsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgICAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgICAgICBbbV92aWRl
b0xheWVyIHNldEZyYW1lOlttX3ZpZGVvSW5saW5lTGF5ZXIgYm91bmRzXV07CisgICAgICAgIFtt
X3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworICAgICAgICBbbV92aWRlb0lubGlu
ZUxheWVyIGluc2VydFN1YmxheWVyOm1fdmlkZW9MYXllci5nZXQoKSBhdEluZGV4OjBdOworICAg
ICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworICAgIH0gZWxzZSBpZiAobV92aWRlb0xheWVy
KQorICAgICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKIAogICAgIGlm
IChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXll
cikgewogICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CkBAIC05NTMsOSArOTc4LDEyIEBA
IHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2Ny
ZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lCiAgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVy
KQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0xheWVyKQorICAgIGlmIChtX3Zp
ZGVvTGF5ZXIpIHsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgICAgICBbQ0FU
cmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogICAgICAgICBbbV92aWRlb0xheWVy
IHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZnJhbWUud2lkdGgoKSwgZnJhbWUuaGVpZ2h0KCkp
XTsKLQorICAgICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworICAgIH0KICAgICBzeW5jVGV4
dFRyYWNrQm91bmRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDllOGNl
ODMzNGYzMzc2ZDU1YTEwMmE5ZWMxZWQ3M2EyNjg1NGI0NjMuLjc0NGI0YzM2NzMwNjdkZjk5ZDg1
YTQ0NTg5MTJkZDcwODdkZDFiOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMTc2
LDkgKzE3NiwxMyBAQCBzdGF0aWMgTlNTdHJpbmcgKnRvQ0FGaWx0ZXJUeXBlKFBsYXRmb3JtQ0FM
YXllcjo6RmlsdGVyVHlwZSB0eXBlKQogICAgIH0KIH0KIAorLy8gSEVMUCEgV2hlcmUgc2hvdWxk
IEkgcHV0IHRoaXM/IEl0IGlzIGFsc28gZGVjbGFyZWQgaW4gTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbQorQGludGVyZmFjZSBXZWJWaWRlb0NvbnRhaW5lckxheWVyIDogQ0FM
YXllcgorQGVuZAorCiBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZSBQbGF0Zm9ybUNBTGF5ZXJN
YWM6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIoUGxhdGZvcm1MYXllciogbGF5ZXIpCiB7Ci0g
ICAgaWYgKFtsYXllciBpc0tpbmRPZkNsYXNzOmdldEFWUGxheWVyTGF5ZXJDbGFzcygpXSkKKyAg
ICBpZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6Z2V0QVZQbGF5ZXJMYXllckNsYXNzKCldIHx8IFts
YXllciBpc0tpbmRPZkNsYXNzOltXZWJWaWRlb0NvbnRhaW5lckxheWVyIGNsYXNzXV0pCiAgICAg
ICAgIHJldHVybiBMYXllclR5cGVBVlBsYXllckxheWVyOwogCiAgICAgaWYgKFtsYXllciBpc0tp
bmRPZkNsYXNzOltXZWJHTExheWVyIGNsYXNzXV0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktp
dC5tbQppbmRleCBkZTdhNmEyOTgzNmQ1Y2NmYmVlNTVjYWY2YjE1OGMzMGFkMzRmZTk1Li5iYTIy
MWUyZTgwMjIzNGM2ODQ2YWJiZWJkNGE3N2Q2NDhmMWI5N2UzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0LmgiCiAjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbE1l
ZGlhRWxlbWVudC5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1dBS1dpbmRvdy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFk
UnVuLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtMTYxLDkgKzE2Miw5IEBAIHB1
YmxpYzoKIC0gKHZvaWQpZGlkQ2xlYW51cEZ1bGxzY3JlZW4KIHsKICAgICBXZWJUaHJlYWRSdW4o
XnsKKyAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihuaWwpOwogICAgICAg
ICBfaW50ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxscHRyKTsKICAgICAg
ICAgX21vZGVsLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cik7Ci0gICAg
ICAgIF9tb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsKTsKICAgICAgICAgX21vZGVs
LT5zZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7CiAgICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZp
ZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKG51bGxwdHIpOwogICAgICAgICBfbW9kZWwgPSBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGViYjAxNDFlOWMzZWE0
ZGY5YzhjZTNiMGZlYThkMWU5YThmN2U2NmYuLmU1NzRkYzZkYjBlODk4ZDJjMTg2YzhiZTI0NzUw
ZGM4YmU1ODdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTc3NCwxNSAr
Nzc0LDE4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVs
bHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAgIFttX3ZpZXdDb250cm9s
bGVyIGFkZENoaWxkVmlld0NvbnRyb2xsZXI6bV9wbGF5ZXJWaWV3Q29udHJvbGxlci5nZXQoKV07
CiAgICAgICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSBhZGRTdWJ2aWV3OlttX3BsYXllclZp
ZXdDb250cm9sbGVyIHZpZXddXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmll
d10uZnJhbWUgPSBpbml0aWFsUmVjdDsKKyAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVy
IHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl1d
OwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBkaWRNb3ZlVG9QYXJlbnRWaWV3Q29u
dHJvbGxlcjptX3ZpZXdDb250cm9sbGVyLmdldCgpXTsKICAgICAgICAgW1ttX3BsYXllclZpZXdD
b250cm9sbGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKIAogICAgICAgICBbQ0FUcmFuc2FjdGlv
biBjb21taXRdOwotICAgICAgICAKLSAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2Vy
dmVyKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVs
bHNjcmVlbigpOwotICAgICAgICAKLSAgICAgICAgcHJvdGVjdC5jbGVhcigpOworCisgICAgICAg
IGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgICAg
ICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgbV9mdWxs
c2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVlbigpOworICAgICAgICAgICAg
CisgICAgICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDc1MzcyNDhiY2QyMDNkOTZjZWRmMDAx
NWUyMjk5NDM3YmFlOTA1OTkuLjQ5YWI3YTEzMjJmYzY4MGUzYzQ5MjM4NDE1ZGVkM2MzNDQzNTVm
YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0xMDksMTIgKzEwOSwxMiBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVu
KCkKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVl
bigpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpEaWRFeGl0RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKLSAgICBbbV9sYXll
ckhvc3QgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9
CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKQogeworICAgIFttX2xheWVySG9zdCByZW1vdmVGcm9tU3VwZXJsYXllcl07Cisg
ICAgbV9sYXllckhvc3QuY2xlYXIoKTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFudXBGdWxsc2NyZWVuKCksIG1fcGFnZS0+cGFn
ZUlEKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBlMGQzM2NiNGJlZjdmNjVjZDU2
ZGQxMDZhNDlhMWIzNzc1YTRmYjkzLi5kZDVkYTE5Yzk2NGYzNjVmODQ1ZDI3MGY4MjdjZTY2Zjk4
Y2UwMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
IldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29y
ZUFuaW1hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9FdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0ZyYW1lVmlldy5oPgpAQCAtMTY2LDkgKzE2NywxMyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAjaWZuZGVmIE5ERUJVRwogICAgIFt2
aWRlb0xheWVyIHNldE5hbWU6QCJXZWIgdmlkZW8gZnVsbHNjcmVlbiBtYW5hZ2VyIGxheWVyIl07
CiAjZW5kaWYKLSAgICAKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFu
c2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFt2aWRlb0xheWVyIHNldEJhY2tn
cm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2Vi
Q29yZTo6Q29sb3JTcGFjZURldmljZVJHQildOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+
c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIpOwogICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZp
ZGVvTGF5ZXIpOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVl
bigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KICAgICAK
</data>
<flag name="review"
          id="259446"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="259478"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235192</attachid>
            <date>2014-07-20 16:33:41 -0700</date>
            <delta_ts>2014-07-20 18:52:11 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-134919-20140720163321.patch</filename>
            <type>text/plain</type>
            <size>15669</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNDdlOTg5ZWYxZmQy
ZGYwMDlkYjE4Y2FlYzEyMWY1ZDMxYTkxZS4uOTRjMzIxODAxOTc0ZDhhMWY2MmI0ODg5OTUyNGUy
ZTIwNzQ4Njg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE0LTA3LTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAorICAgICAgICBEZWNyZWFzZSBmbGlja2Vy
IHdoZW4gZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFB1dCBBVlBsYXllckxheWVyIGluIGEgY29udGFpbmVy
IGxheWVyIHNvIG1vdmluZyBpdCBiZXR3ZWVuIGlubGluZSBhbmQgZnVsbHNjcmVlbgorICAgICAg
ICBpcyBhcyBlYXN5IGFzIGFkZGluZyBhbmQgcmVtb3ZpbmcgaXQgZnJvbSBhIGNvbnRhaW50ZXIg
bGF5ZXI7IG5vIG5lZWQgdG8gZG8gYSBsYXlvdXQuCisKKyAgICAgICAgTWFrZSBzdXJlIGZ1bGxz
Y3JlZW4gbGF5ZXJzIGFyZSB0cmFuc3BhcmVudCBiZWZvcmUgbW92aW5nIG1vdmluZyB0aGUgQVZQ
bGF5ZXJMYXllcgorICAgICAgICBiZXR3ZWVuIGlubGluZSBhbmQgZnVsbHNjcmVlbiBzbyB5b3Ug
ZG9uJ3QgYnJpZWZseSBzZWUgdGhlIGVtcHR5IGZ1bGxzY3JlZW4gbGF5ZXJzLgorCisgICAgICAg
ICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OnBsYXRmb3JtTGF5ZXIpOiByZW1vdmUgZnVsbHNjcmVlbiBzcGVjaWFsIGNhc2Uu
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcik6IG5vIG5lZWQgdG8gcmVjYWxjIHN0eWxlCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5o
OiBhZGQgaW5saW5lIGNvbnRhaW5lciBsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW06
IAorICAgICAgICBhZGQgV2ViVmlkZW9Db250YWluZXJMYXllciB0byBjb250YWluIEFWUGxheWVy
TGF5ZXIgYW5kIGtlZXAgbGF5b3V0IGNvcnJlY3QuCisgICAgICAgICgtW1dlYlZpZGVvQ29udGFp
bmVyTGF5ZXIgc2V0Qm91bmRzOl0pOiBmb3J3YXJkIHNldGJvdW5kcyB0byBzZXQgY2hpbGQgZnJh
bWUuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
OjpjcmVhdGVBVlBsYXllckxheWVyKTogY3JlYXRlIHRoZSB2aWRlbyBjb250YWluZXIgbGF5ZXIK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRl
c3Ryb3lWaWRlb0xheWVyKTogZGVzdHJveSB0aGUgdmlkZW8gY29udGFpbmVyIGxheWVyCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9y
bUxheWVyKTogdXNlIGNvbnRhaW5lciBsYXllciBpbnN0ZWFkIG9mIHZpZGVvIGxheWVyCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRl
b0Z1bGxzY3JlZW5MYXllcik6IHVzZSB0cmFuc2FjdGlvbnMgdG8gcHJldmVudCB1bndhbnRlZCBh
bmltYXRpb24uCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZSk6IGRpdHRvCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbToKKyAgICAgICAgKFBsYXRm
b3JtQ0FMYXllck1hYzo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcik6IFdlYlZpZGVvQ29udGFp
bmVyTGF5ZXIgaXMgYSBraW5kIG9mIEFWUGxheWVyTGF5ZXIKKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyIGRpZENsZWFudXBGdWxsc2NyZWVuXSk6IHJlbW92ZSB2
aWRlbyBmdWxsc2NyZWVuIGxheWVyIGZpcnN0CisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbik6IG1ha2UgYmFja2dyb3VuZCB0cmFu
c3BhcmVudCBkdXJpbmcgdHJhbnNpdGlvbi4KKyAgICAgICAgICAgZGlzcGF0Y2hfYXN5bmMgdG8g
YWxsb3cgQ0FUcmFuc2FjdGlvbiB0byBjb21wbGV0ZSBiZWZvcmUgY2FsbGluZyBkaWRTZXR1cEZ1
bGxzY3JlZW4oKQorCisyMDE0LTA3LTE0ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNv
bT4KKwogICAgICAgICBGaXggY3Jhc2ggb24gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
IGNvbnN0cnVjdGlvbi4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEzNDkwOQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGEzZGE1ZTNmM2M2MzE4MDE4MzU1ZmNmZTg4
ZTU1NTE5YThhYzk0MS4uYmYzNjkzODRjN2YxOTVkODMwYzg3N2Y3NTg2MjIxODFjNmU4MjU4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTA3LTE0ICBKZXJlbXkgSm9uZXMgIDxq
ZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBEZWNyZWFzZSBmbGlja2VyIHdoZW4gZW50ZXIg
YW5kIGV4aXQgZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEzNDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIENoYW5nZSB0aGUgc2VxdWVuY2Ugb2YgdGVhciBkb3duIGFuZCB1c2UgdHJh
bnNwYXJlbmN5IHRvIHByZXZlbnQgZmxpY2tlciB3aGVuIGVudGVyaW5nIGFuZCBleGl0aW5nIGZ1
bGxzY3JlZW4uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbTogd2FpdCB0byByZW1vdmUgbGF5ZXJIb3N0IHVudGlsIGRpZENsZWFudXBG
dWxsc2NyZWVuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6ZGlkRXhpdEZ1bGxzY3JlZW4pOiByZW1vdmVkIGZyb20gaGVyZQorICAgICAgICAoV2ViS2l0
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENsZWFudXBGdWxsc2NyZWVuKTog
YWRkZWQgaGVyZQorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRp
ZFNldHVwRnVsbHNjcmVlbik6IHVzZSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGR1cmluZyB0cmFu
c2l0aW9uCisKIDIwMTQtMDctMTQgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNv
bT4KIAogICAgICAgICBbQ29jb2FdIF9XS1JlbW90ZU9iamVjdEludGVyZmFjZSBsZWFrcyBOU1N0
cmluZyBpdmFyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAppbmRleCA1
YzBlZGVhM2I2YTNjNDUzMTFiZjc1NDZlOWVhNWM2YTRjYzJlMzE4Li42ZGNiMmY5NDVkOWI3ZTJj
YzVlN2VhY2NhMDNjYTExMTk5NjNiYjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlh
RWxlbWVudC5jcHAKQEAgLTQ5NDYsMTAgKzQ5NDYsNiBAQCBQbGF0Zm9ybU1lZGlhIEhUTUxNZWRp
YUVsZW1lbnQ6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAogCiBQbGF0Zm9ybUxheWVyKiBIVE1MTWVk
aWFFbGVtZW50OjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
I2VuZGlmCiAgICAgcmV0dXJuIG1fcGxheWVyID8gbV9wbGF5ZXItPnBsYXRmb3JtTGF5ZXIoKSA6
IG51bGxwdHI7CiB9CiAKQEAgLTQ5NjEsNyArNDk1Nyw2IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIG1fcGxheWVyLT5zZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihwbGF0Zm9ybUxheWVyKTsKLSAgICBzZXROZWVkc1N0eWxlUmVjYWxjKFN5bnRoZXRpY1N0
eWxlQ2hhbmdlKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSkK
ICAgICAgICAgdXBkYXRlVGV4dFRyYWNrRGlzcGxheSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmlu
ZGV4IDM0OTNlY2Y4YWNmNDk5Yzk4YzA5MjgyMTIwYmY4NTkzNTU2MGQyYjkuLmRkYzQzYTk0Mjcx
OWZiYTNjMjZhMTY4MWNhMzc3ZWJhZGFhZTQ2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAg
LTI2OSw2ICsyNjksNyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBs
YXllcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsKICAgICBS
ZXRhaW5QdHI8QVZQbGF5ZXJMYXllcj4gbV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0
Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5lTGF5ZXI7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJl
dGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyOwogICAgIEZsb2F0
UmVjdCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZG
b3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXgg
OTg0OGQ5OThmYTI4YmNlYzdkZTZmODAxNTFjNjAyN2IxNGI3ZDU0YS4uYzhlYTYwZjkwNmRhMzU1
MmQ4MGM4ZDlhOWM3MDg5OTE3Mzg3OTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3Vu
ZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC04
Niw2ICs4NiwxOSBAQAogI2ltcG9ydCA8VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgogI2Vu
ZGlmCiAKK0BpbnRlcmZhY2UgV2ViVmlkZW9Db250YWluZXJMYXllciA6IENBTGF5ZXIKK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIKKworLSAodm9pZClzZXRC
b3VuZHM6KENHUmVjdClib3VuZHMKK3sKKyAgICBbc3VwZXIgc2V0Qm91bmRzOmJvdW5kc107Cisg
ICAgZm9yIChDQUxheWVyKiBsYXllciBpbiBzZWxmLnN1YmxheWVycykKKyAgICAgICAgbGF5ZXIu
ZnJhbWUgPSBib3VuZHM7Cit9CitAZW5kCisKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogLy8g
Tm90ZTogVGhpcyBtdXN0IGJlIGRlZmluZWQgYmVmb3JlIG91ciBTT0ZUX0xJTksgbWFjcm9zOgog
QGNsYXNzIEFWTWVkaWFTZWxlY3Rpb25PcHRpb247CkBAIC01NzIsMjEgKzU4NSwyNiBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIo
KQogICAgIG1fdmlkZW9MYXllciA9IGFkb3B0TlMoW1tBVlBsYXllckxheWVyIGFsbG9jXSBpbml0
XSk7CiAgICAgW21fdmlkZW9MYXllciBzZXRQbGF5ZXI6bV9hdlBsYXllci5nZXQoKV07CiAgICAg
W21fdmlkZW9MYXllciBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihDb2xvcjo6Ymxh
Y2ssIENvbG9yU3BhY2VEZXZpY2VSR0IpXTsKKyAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBhZG9w
dE5TKFtbV2ViVmlkZW9Db250YWluZXJMYXllciBhbGxvY10gaW5pdF0pOwogI2lmbmRlZiBOREVC
VUcKICAgICBbbV92aWRlb0xheWVyIHNldE5hbWU6QCJNZWRpYVBsYXllclByaXZhdGUgQVZQbGF5
ZXJMYXllciJdOwogI2VuZGlmCiAgICAgW21fdmlkZW9MYXllciBhZGRPYnNlcnZlcjptX29iamNP
YnNlcnZlci5nZXQoKSBmb3JLZXlQYXRoOkAicmVhZHlGb3JEaXNwbGF5IiBvcHRpb25zOk5TS2V5
VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcgY29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3Vu
ZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0QVZQbGF5ZXJMYXllcl07CiAgICAgdXBkYXRlVmlkZW9M
YXllckdyYXZpdHkoKTsKICAgICBJbnRTaXplIGRlZmF1bHRTaXplID0gcGxheWVyKCktPm1lZGlh
UGxheWVyQ2xpZW50KCkgPyBwbGF5ZXIoKS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5
ZXJDb250ZW50Qm94UmVjdCgpLnBpeGVsU25hcHBlZFNpemUoKSA6IEludFNpemUoKTsKLSAgICBb
bV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZGVmYXVsdFNpemUud2lkdGgo
KSwgZGVmYXVsdFNpemUuaGVpZ2h0KCkpXTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgZGVmYXVsdFNpemUud2lkdGgoKSwgZGVmYXVsdFNpemUuaGVp
Z2h0KCkpXTsKICAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpjcmVhdGVWaWRlb0xheWVyKCVwKSAtIHJldHVybmluZyAlcCIsIHRoaXMsIG1fdmlkZW9M
YXllci5nZXQoKSk7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fdmlkZW9GdWxsc2Ny
ZWVuTGF5ZXIpIHsKLSAgICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJhbWUud2lkdGgoKSwgbV92aWRlb0Z1bGxzY3JlZW5GcmFt
ZS5oZWlnaHQoKSldOworICAgICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOlttX3ZpZGVvRnVs
bHNjcmVlbkxheWVyIGJvdW5kc11dOwogICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBp
bnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsKLSAgICB9CisgICAg
fSBlbHNlCiAjZW5kaWYKKyAgICB7CisgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgaW5zZXJ0
U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CisgICAgICAgIFttX3ZpZGVv
TGF5ZXIgc2V0RnJhbWU6bV92aWRlb0lubGluZUxheWVyLmdldCgpLmJvdW5kc107CisgICAgfQog
fQogCiB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRl
b0xheWVyKCkKQEAgLTYwNCw3ICs2MjIsOCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb0xheWVyKCkKICAgICAgICAgW21fdmlkZW9MYXllciBy
ZW1vdmVGcm9tU3VwZXJsYXllcl07CiAjZW5kaWYKIAotICAgIG1fdmlkZW9MYXllciA9IDA7Cisg
ICAgbV92aWRlb0xheWVyID0gbmlsOworICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IG5pbDsKIH0K
IAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVW
aWRlb0ZyYW1lKCkgY29uc3QKQEAgLTkxOCw3ICs5MzcsNyBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAogCiBQ
bGF0Zm9ybUxheWVyKiBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9y
bUxheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXll
ciA/IG1fdmlkZW9MYXllci5nZXQoKSA6IG51bGxwdHI7CisgICAgcmV0dXJuIG1faGF2ZUJlZW5B
c2tlZFRvQ3JlYXRlTGF5ZXIgPyBtX3ZpZGVvSW5saW5lTGF5ZXIuZ2V0KCkgOiBudWxscHRyOwog
fQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTI3LDE2ICs5NDYsMjMgQEAgdm9pZCBNZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0
Zm9ybUxheWVyKgogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID09IHZpZGVvRnVsbHNj
cmVlbkxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5M
YXllcikKLSAgICAgICBbbV92aWRlb0xheWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLQogICAg
IG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSB2aWRlb0Z1bGxzY3JlZW5MYXllcjsKIAorICAgIFtD
QVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9u
czpZRVNdOworCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV92aWRlb0xheWVy
KSB7Ci0gICAgICAgIENHUmVjdCBmcmFtZSA9IENHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxz
Y3JlZW5GcmFtZS53aWR0aCgpLCBtX3ZpZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKTsKLSAg
ICAgICAgW21fdmlkZW9MYXllciBzZXRGcmFtZTpmcmFtZV07CisgICAgICAgIFttX3ZpZGVvTGF5
ZXIgc2V0RnJhbWU6W21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgYm91bmRzXV07CisgICAgICAgIFtt
X3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgICAgICBbbV92aWRlb0Z1bGxz
Y3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsK
LSAgICB9CisgICAgfSBlbHNlIGlmIChtX3ZpZGVvSW5saW5lTGF5ZXIgJiYgbV92aWRlb0xheWVy
KSB7CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6W21fdmlkZW9JbmxpbmVMYXllciBi
b3VuZHNdXTsKKyAgICAgICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07Cisg
ICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdl
dCgpIGF0SW5kZXg6MF07CisgICAgfSBlbHNlIGlmIChtX3ZpZGVvTGF5ZXIpCisgICAgICAgIFtt
X3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOworCisgICAgW0NBVHJhbnNhY3Rpb24g
Y29tbWl0XTsKIAogICAgIGlmIChtX3ZpZGVvRnVsbHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNr
UmVwcmVzZW50YXRpb25MYXllcikgewogICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CkBA
IC05NTMsOSArOTc5LDEyIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2Jq
Qzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUoRmxvYXRSZWN0IGZyYW1lCiAgICAgaWYgKCFtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0xh
eWVyKQorICAgIGlmIChtX3ZpZGVvTGF5ZXIpIHsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gYmVn
aW5dOworICAgICAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogICAg
ICAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZnJhbWUud2lkdGgo
KSwgZnJhbWUuaGVpZ2h0KCkpXTsKLQorICAgICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwor
ICAgIH0KICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVy
TWFjLm1tCmluZGV4IDllOGNlODMzNGYzMzc2ZDU1YTEwMmE5ZWMxZWQ3M2EyNjg1NGI0NjMuLjUz
MmY5ZjA3ZWVhN2E4NTIyNGNlNmM1NGNiYWM0YjMzMzIwNWY0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FM
YXllck1hYy5tbQpAQCAtMTc4LDcgKzE3OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqdG9DQUZpbHRl
clR5cGUoUGxhdGZvcm1DQUxheWVyOjpGaWx0ZXJUeXBlIHR5cGUpCiAKIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlIFBsYXRmb3JtQ0FMYXllck1hYzo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXll
cihQbGF0Zm9ybUxheWVyKiBsYXllcikKIHsKLSAgICBpZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6
Z2V0QVZQbGF5ZXJMYXllckNsYXNzKCldKQorICAgIGlmIChbbGF5ZXIgaXNLaW5kT2ZDbGFzczpn
ZXRBVlBsYXllckxheWVyQ2xhc3MoKV0gfHwgW2xheWVyIGlzS2luZE9mQ2xhc3M6b2JqY19nZXRD
bGFzcygiV2ViVmlkZW9Db250YWluZXJMYXllciIpXSkKICAgICAgICAgcmV0dXJuIExheWVyVHlw
ZUFWUGxheWVyTGF5ZXI7CiAKICAgICBpZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6W1dlYkdMTGF5
ZXIgY2xhc3NdXSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuQ29udHJvbGxlckFWS2l0Lm1tCmluZGV4IGRlN2E2YTI5
ODM2ZDVjY2ZiZWU1NWNhZjZiMTU4YzMwYWQzNGZlOTUuLmNlZjZiYTMzNzBlZjQwMGM4OTdhZDJl
ZjgxMzExNGYwNzY1OWVmZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAt
MTYxLDkgKzE2MSw5IEBAIHB1YmxpYzoKIC0gKHZvaWQpZGlkQ2xlYW51cEZ1bGxzY3JlZW4KIHsK
ICAgICBXZWJUaHJlYWRSdW4oXnsKKyAgICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcihuaWwpOwogICAgICAgICBfaW50ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bChudWxscHRyKTsKICAgICAgICAgX21vZGVsLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2UobnVsbHB0cik7Ci0gICAgICAgIF9tb2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmls
KTsKICAgICAgICAgX21vZGVsLT5zZXRNZWRpYUVsZW1lbnQobnVsbHB0cik7CiAgICAgICAgIF9p
bnRlcmZhY2UtPnNldFdlYlZpZGVvRnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKG51bGxwdHIpOwog
ICAgICAgICBfbW9kZWwgPSBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmlu
ZGV4IGViYjAxNDFlOWMzZWE0ZGY5YzhjZTNiMGZlYThkMWU5YThmN2U2NmYuLmU1NzRkYzZkYjBl
ODk4ZDJjMTg2YzhiZTI0NzUwZGM4YmU1ODdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQubW0KQEAgLTc3NCwxNSArNzc0LDE4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAg
ICAgIFttX3ZpZXdDb250cm9sbGVyIGFkZENoaWxkVmlld0NvbnRyb2xsZXI6bV9wbGF5ZXJWaWV3
Q29udHJvbGxlci5nZXQoKV07CiAgICAgICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSBhZGRT
dWJ2aWV3OlttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddXTsKICAgICAgICAgW21fcGxheWVy
Vmlld0NvbnRyb2xsZXIgdmlld10uZnJhbWUgPSBpbml0aWFsUmVjdDsKKyAgICAgICAgW1ttX3Bs
YXllclZpZXdDb250cm9sbGVyIHZpZXddIHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNs
YXNzKCkgY2xlYXJDb2xvcl1dOwogICAgICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBkaWRN
b3ZlVG9QYXJlbnRWaWV3Q29udHJvbGxlcjptX3ZpZXdDb250cm9sbGVyLmdldCgpXTsKICAgICAg
ICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKIAogICAg
ICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwotICAgICAgICAKLSAgICAgICAgaWYgKG1fZnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyKQotICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2Jz
ZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVlbigpOwotICAgICAgICAKLSAgICAgICAgcHJvdGVjdC5j
bGVhcigpOworCisgICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVl
KCksIF57CisgICAgICAgICAgICBpZiAobV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAg
ICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVl
bigpOworICAgICAgICAgICAgCisgICAgICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgICAg
IH0pOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDc1Mzcy
NDhiY2QyMDNkOTZjZWRmMDAxNWUyMjk5NDM3YmFlOTA1OTkuLjQ5YWI3YTEzMjJmYzY4MGUzYzQ5
MjM4NDE1ZGVkM2MzNDQzNTVmYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0x
MDksMTIgKzEwOSwxMiBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVx
dWVzdEV4aXRGdWxsc2NyZWVuKCkKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
OjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpEaWRFeGl0RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKLSAgICBbbV9sYXllckhvc3QgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotICAgIG1fbGF5
ZXJIb3N0LmNsZWFyKCk7CiB9CiAgICAgCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQogeworICAgIFttX2xheWVySG9zdCByZW1vdmVG
cm9tU3VwZXJsYXllcl07CisgICAgbV9sYXllckhvc3QuY2xlYXIoKTsKICAgICBtX3BhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OkRpZENsZWFudXBGdWxsc2Ny
ZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBl
MGQzM2NiNGJlZjdmNjVjZDU2ZGQxMDZhNDlhMWIzNzc1YTRmYjkzLi5kZDVkYTE5Yzk2NGYzNjVm
ODQ1ZDI3MGY4MjdjZTY2Zjk4Y2UwMzFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTMzLDYg
KzMzLDcgQEAKICNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgog
I2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBv
cnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0ZyYW1lVmlldy5oPgpAQCAtMTY2LDkgKzE2NywxMyBAQCB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAjaWZu
ZGVmIE5ERUJVRwogICAgIFt2aWRlb0xheWVyIHNldE5hbWU6QCJXZWIgdmlkZW8gZnVsbHNjcmVl
biBtYW5hZ2VyIGxheWVyIl07CiAjZW5kaWYKLSAgICAKKworICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFt2
aWRlb0xheWVyIHNldEJhY2tncm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9y
Ojp0cmFuc3BhcmVudCwgV2ViQ29yZTo6Q29sb3JTcGFjZURldmljZVJHQildOwogICAgIG1fbGF5
ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvTGF5ZXIpOwogICAgIHNldFZpZGVv
RnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIpOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07
CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHk6OkVudGVyRnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KICAgICAK
</data>
<flag name="commit-queue"
          id="259752"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235198</attachid>
            <date>2014-07-20 18:51:45 -0700</date>
            <delta_ts>2014-07-20 19:30:45 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-134919-20140720185121.patch</filename>
            <type>text/plain</type>
            <size>15303</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcxMDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODYyNDdlOTg5ZWYxZmQy
ZGYwMDlkYjE4Y2FlYzEyMWY1ZDMxYTkxZS4uZjMzMzU3NzFmYWM4ZGY0YjdlOWI2NjA4NmI1ZTlm
MTFmMGNhZTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM4IEBACiAyMDE0LTA3LTE0ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KIAorICAgICAgICBEZWNyZWFzZSBmbGlja2Vy
IHdoZW4gZW50ZXIgYW5kIGV4aXQgZnVsbHNjcmVlbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNDkxOQorCisgICAgICAgIFJldmlld2VkIGJ5IFNp
bW9uIEZyYXNlci4KKworICAgICAgICBQdXQgQVZQbGF5ZXJMYXllciBpbiBhIGNvbnRhaW5lciBs
YXllciBzbyBtb3ZpbmcgaXQgYmV0d2VlbiBpbmxpbmUgYW5kIGZ1bGxzY3JlZW4KKyAgICAgICAg
aXMgYXMgZWFzeSBhcyBhZGRpbmcgYW5kIHJlbW92aW5nIGl0IGZyb20gYSBjb250YWludGVyIGxh
eWVyOyBubyBuZWVkIHRvIGRvIGEgbGF5b3V0LgorCisgICAgICAgIE1ha2Ugc3VyZSBmdWxsc2Ny
ZWVuIGxheWVycyBhcmUgdHJhbnNwYXJlbnQgYmVmb3JlIG1vdmluZyBtb3ZpbmcgdGhlIEFWUGxh
eWVyTGF5ZXIKKyAgICAgICAgYmV0d2VlbiBpbmxpbmUgYW5kIGZ1bGxzY3JlZW4gc28geW91IGRv
bid0IGJyaWVmbHkgc2VlIHRoZSBlbXB0eSBmdWxsc2NyZWVuIGxheWVycy4KKworICAgICAgICAq
IGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50OjpwbGF0Zm9ybUxheWVyKTogcmVtb3ZlIGZ1bGxzY3JlZW4gc3BlY2lhbCBjYXNlLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5
ZXIpOiBubyBuZWVkIHRvIHJlY2FsYyBzdHlsZQorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaDog
YWRkIGlubGluZSBjb250YWluZXIgbGF5ZXIKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tOiAK
KyAgICAgICAgYWRkIFdlYlZpZGVvQ29udGFpbmVyTGF5ZXIgdG8gY29udGFpbiBBVlBsYXllckxh
eWVyIGFuZCBrZWVwIGxheW91dCBjb3JyZWN0LgorICAgICAgICAoLVtXZWJWaWRlb0NvbnRhaW5l
ckxheWVyIHNldEJvdW5kczpdKTogZm9yd2FyZCBzZXRib3VuZHMgdG8gc2V0IGNoaWxkIGZyYW1l
LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6
Y3JlYXRlQVZQbGF5ZXJMYXllcik6IGNyZWF0ZSB0aGUgdmlkZW8gY29udGFpbmVyIGxheWVyCisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpkZXN0
cm95VmlkZW9MYXllcik6IGRlc3Ryb3kgdGhlIHZpZGVvIGNvbnRhaW5lciBsYXllcgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6cGxhdGZvcm1M
YXllcik6IHVzZSBjb250YWluZXIgbGF5ZXIgaW5zdGVhZCBvZiB2aWRlbyBsYXllcgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9G
dWxsc2NyZWVuTGF5ZXIpOiB1c2UgdHJhbnNhY3Rpb25zIHRvIHByZXZlbnQgdW53YW50ZWQgYW5p
bWF0aW9uLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUpOiBkaXR0bworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW06CisgICAgICAgIChQbGF0Zm9y
bUNBTGF5ZXJNYWM6OmxheWVyVHlwZUZvclBsYXRmb3JtTGF5ZXIpOiBXZWJWaWRlb0NvbnRhaW5l
ckxheWVyIGlzIGEga2luZCBvZiBBVlBsYXllckxheWVyCisgICAgICAgICogcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbToKKyAgICAgICAgKC1bV2ViVmlk
ZW9GdWxsc2NyZWVuQ29udHJvbGxlciBkaWRDbGVhbnVwRnVsbHNjcmVlbl0pOiByZW1vdmUgdmlk
ZW8gZnVsbHNjcmVlbiBsYXllciBmaXJzdAorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVl
bkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4pOiBtYWtlIGJhY2tncm91bmQgdHJhbnNw
YXJlbnQgZHVyaW5nIHRyYW5zaXRpb24uCisgICAgICAgICAgIGRpc3BhdGNoX2FzeW5jIHRvIGFs
bG93IENBVHJhbnNhY3Rpb24gdG8gY29tcGxldGUgYmVmb3JlIGNhbGxpbmcgZGlkU2V0dXBGdWxs
c2NyZWVuKCkKKworMjAxNC0wNy0xNCAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+
CisKICAgICAgICAgRml4IGNyYXNoIG9uIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSBj
b25zdHJ1Y3Rpb24uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMzQ5MDkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGRhM2RhNWUzZjNjNjMxODAxODM1NWZjZmU4OGU1
NTUxOWE4YWM5NDEuLjU3YTNjNjFiODY1MDlkOTYzMTU5NTA4YmU0NWNiMmU3NTZhOTJkN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNC0wNy0xNCAgSmVyZW15IEpvbmVzICA8amVy
ZW15akBhcHBsZS5jb20+CisKKyAgICAgICAgRGVjcmVhc2UgZmxpY2tlciB3aGVuIGVudGVyIGFu
ZCBleGl0IGZ1bGxzY3JlZW4uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzQ5MTkKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgQ2hhbmdlIHRoZSBzZXF1ZW5jZSBvZiB0ZWFyIGRvd24gYW5kIHVzZSB0cmFuc3Bh
cmVuY3kgdG8gcHJldmVudCBmbGlja2VyIHdoZW4gZW50ZXJpbmcgYW5kIGV4aXRpbmcgZnVsbHNj
cmVlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1tOiB3YWl0IHRvIHJlbW92ZSBsYXllckhvc3QgdW50aWwgZGlkQ2xlYW51cEZ1bGxz
Y3JlZW4KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpk
aWRFeGl0RnVsbHNjcmVlbik6IHJlbW92ZWQgZnJvbSBoZXJlCisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3JlZW4pOiBhZGRl
ZCBoZXJlCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0
dXBGdWxsc2NyZWVuKTogdXNlIHRyYW5zcGFyZW50IGJhY2tncm91bmQgZHVyaW5nIHRyYW5zaXRp
b24KKwogMjAxNC0wNy0xNCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFtDb2NvYV0gX1dLUmVtb3RlT2JqZWN0SW50ZXJmYWNlIGxlYWtzIE5TU3RyaW5n
IGl2YXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDVjMGVk
ZWEzYjZhM2M0NTMxMWJmNzU0NmU5ZWE1YzZhNGNjMmUzMTguLmRkZDJkYWIzMzczNWY1OTExMzZk
YTcwZjFjZWUxYmMwMTU0MjUzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcApAQCAtNDk0NiwxMCArNDk0Niw2IEBAIFBsYXRmb3JtTWVkaWEgSFRNTE1lZGlhRWxl
bWVudDo6cGxhdGZvcm1NZWRpYSgpIGNvbnN0CiAKIFBsYXRmb3JtTGF5ZXIqIEhUTUxNZWRpYUVs
ZW1lbnQ6OnBsYXRmb3JtTGF5ZXIoKSBjb25zdAogewotI2lmIFBMQVRGT1JNKElPUykKLSAgICBp
ZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllcikKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0jZW5k
aWYKICAgICByZXR1cm4gbV9wbGF5ZXIgPyBtX3BsYXllci0+cGxhdGZvcm1MYXllcigpIDogbnVs
bHB0cjsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5oCmluZGV4IDM0OTNlY2Y4YWNmNDk5Yzk4YzA5
MjgyMTIwYmY4NTkzNTU2MGQyYjkuLmRkYzQzYTk0MjcxOWZiYTNjMjZhMTY4MWNhMzc3ZWJhZGFh
ZTQ2NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLmgKQEAgLTI2OSw2ICsyNjksNyBAQCBwcml2YXRl
OgogICAgIFJldGFpblB0cjxBVlBsYXllcj4gbV9hdlBsYXllcjsKICAgICBSZXRhaW5QdHI8QVZQ
bGF5ZXJJdGVtPiBtX2F2UGxheWVySXRlbTsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJMYXllcj4g
bV92aWRlb0xheWVyOworICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBtX3ZpZGVvSW5saW5l
TGF5ZXI7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIFJldGFpblB0cjxQbGF0Zm9ybUxheWVyPiBt
X3ZpZGVvRnVsbHNjcmVlbkxheWVyOwogICAgIEZsb2F0UmVjdCBtX3ZpZGVvRnVsbHNjcmVlbkZy
YW1lOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbk9iakMubW0KaW5kZXggOTg0OGQ5OThmYTI4YmNlYzdkZTZmODAx
NTFjNjAyN2IxNGI3ZDU0YS4uYzhlYTYwZjkwNmRhMzU1MmQ4MGM4ZDlhOWM3MDg5OTE3Mzg3OTE2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCkBAIC04Niw2ICs4NiwxOSBAQAogI2ltcG9ydCA8
VmlkZW9Ub29sYm94L1ZpZGVvVG9vbGJveC5oPgogI2VuZGlmCiAKK0BpbnRlcmZhY2UgV2ViVmlk
ZW9Db250YWluZXJMYXllciA6IENBTGF5ZXIKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdlYlZp
ZGVvQ29udGFpbmVyTGF5ZXIKKworLSAodm9pZClzZXRCb3VuZHM6KENHUmVjdClib3VuZHMKK3sK
KyAgICBbc3VwZXIgc2V0Qm91bmRzOmJvdW5kc107CisgICAgZm9yIChDQUxheWVyKiBsYXllciBp
biBzZWxmLnN1YmxheWVycykKKyAgICAgICAgbGF5ZXIuZnJhbWUgPSBib3VuZHM7Cit9CitAZW5k
CisKICNpZiBFTkFCTEUoQVZGX0NBUFRJT05TKQogLy8gTm90ZTogVGhpcyBtdXN0IGJlIGRlZmlu
ZWQgYmVmb3JlIG91ciBTT0ZUX0xJTksgbWFjcm9zOgogQGNsYXNzIEFWTWVkaWFTZWxlY3Rpb25P
cHRpb247CkBAIC01NzIsMjEgKzU4NSwyNiBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbk9iakM6OmNyZWF0ZUFWUGxheWVyTGF5ZXIoKQogICAgIG1fdmlkZW9MYXllciA9IGFk
b3B0TlMoW1tBVlBsYXllckxheWVyIGFsbG9jXSBpbml0XSk7CiAgICAgW21fdmlkZW9MYXllciBz
ZXRQbGF5ZXI6bV9hdlBsYXllci5nZXQoKV07CiAgICAgW21fdmlkZW9MYXllciBzZXRCYWNrZ3Jv
dW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihDb2xvcjo6YmxhY2ssIENvbG9yU3BhY2VEZXZpY2VSR0Ip
XTsKKyAgICBtX3ZpZGVvSW5saW5lTGF5ZXIgPSBhZG9wdE5TKFtbV2ViVmlkZW9Db250YWluZXJM
YXllciBhbGxvY10gaW5pdF0pOwogI2lmbmRlZiBOREVCVUcKICAgICBbbV92aWRlb0xheWVyIHNl
dE5hbWU6QCJNZWRpYVBsYXllclByaXZhdGUgQVZQbGF5ZXJMYXllciJdOwogI2VuZGlmCiAgICAg
W21fdmlkZW9MYXllciBhZGRPYnNlcnZlcjptX29iamNPYnNlcnZlci5nZXQoKSBmb3JLZXlQYXRo
OkAicmVhZHlGb3JEaXNwbGF5IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25OZXcg
Y29udGV4dDoodm9pZCAqKU1lZGlhUGxheWVyQVZGb3VuZGF0aW9uT2JzZXJ2YXRpb25Db250ZXh0
QVZQbGF5ZXJMYXllcl07CiAgICAgdXBkYXRlVmlkZW9MYXllckdyYXZpdHkoKTsKICAgICBJbnRT
aXplIGRlZmF1bHRTaXplID0gcGxheWVyKCktPm1lZGlhUGxheWVyQ2xpZW50KCkgPyBwbGF5ZXIo
KS0+bWVkaWFQbGF5ZXJDbGllbnQoKS0+bWVkaWFQbGF5ZXJDb250ZW50Qm94UmVjdCgpLnBpeGVs
U25hcHBlZFNpemUoKSA6IEludFNpemUoKTsKLSAgICBbbV92aWRlb0xheWVyIHNldEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgZGVmYXVsdFNpemUud2lkdGgoKSwgZGVmYXVsdFNpemUuaGVpZ2h0KCkp
XTsKKyAgICBbbV92aWRlb0lubGluZUxheWVyIHNldEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgZGVm
YXVsdFNpemUud2lkdGgoKSwgZGVmYXVsdFNpemUuaGVpZ2h0KCkpXTsKICAgICBMT0coTWVkaWEs
ICJNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpjcmVhdGVWaWRlb0xheWVyKCVw
KSAtIHJldHVybmluZyAlcCIsIHRoaXMsIG1fdmlkZW9MYXllci5nZXQoKSk7CiAKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgaWYgKG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIpIHsKLSAgICAgICAgW21f
dmlkZW9MYXllciBzZXRGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIG1fdmlkZW9GdWxsc2NyZWVuRnJh
bWUud2lkdGgoKSwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS5oZWlnaHQoKSldOworICAgICAgICBb
bV92aWRlb0xheWVyIHNldEZyYW1lOlttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIGJvdW5kc11dOwog
ICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXllcjptX3ZpZGVvTGF5
ZXIuZ2V0KCkgYXRJbmRleDowXTsKLSAgICB9CisgICAgfSBlbHNlCiAjZW5kaWYKKyAgICB7Cisg
ICAgICAgIFttX3ZpZGVvSW5saW5lTGF5ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdl
dCgpIGF0SW5kZXg6MF07CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0lu
bGluZUxheWVyLmdldCgpLmJvdW5kc107CisgICAgfQogfQogCiB2b2lkIE1lZGlhUGxheWVyUHJp
dmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRlb0xheWVyKCkKQEAgLTYwNCw3ICs2MjIs
OCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakM6OmRlc3Ryb3lWaWRl
b0xheWVyKCkKICAgICAgICAgW21fdmlkZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAj
ZW5kaWYKIAotICAgIG1fdmlkZW9MYXllciA9IDA7CisgICAgbV92aWRlb0xheWVyID0gbmlsOwor
ICAgIG1fdmlkZW9JbmxpbmVMYXllciA9IG5pbDsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb25PYmpDOjpoYXNBdmFpbGFibGVWaWRlb0ZyYW1lKCkgY29uc3QKQEAgLTkx
OCw3ICs5MzcsNyBAQCBQbGF0Zm9ybU1lZGlhIE1lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakM6OnBsYXRmb3JtTWVkaWEoKSBjb25zdAogCiBQbGF0Zm9ybUxheWVyKiBNZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDOjpwbGF0Zm9ybUxheWVyKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9oYXZlQmVlbkFza2VkVG9DcmVhdGVMYXllciA/IG1fdmlkZW9MYXllci5nZXQoKSA6
IG51bGxwdHI7CisgICAgcmV0dXJuIG1faGF2ZUJlZW5Bc2tlZFRvQ3JlYXRlTGF5ZXIgPyBtX3Zp
ZGVvSW5saW5lTGF5ZXIuZ2V0KCkgOiBudWxscHRyOwogfQogCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtOTI3LDE2ICs5NDYsMjMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25P
YmpDOjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKgogICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyID09IHZpZGVvRnVsbHNjcmVlbkxheWVyKQogICAgICAgICByZXR1
cm47CiAKLSAgICBpZiAobV92aWRlb0Z1bGxzY3JlZW5MYXllcikKLSAgICAgICBbbV92aWRlb0xh
eWVyIHJlbW92ZUZyb21TdXBlcmxheWVyXTsKLQogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIg
PSB2aWRlb0Z1bGxzY3JlZW5MYXllcjsKIAorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAg
ICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCiAgICAgaWYgKG1fdmlk
ZW9GdWxsc2NyZWVuTGF5ZXIgJiYgbV92aWRlb0xheWVyKSB7Ci0gICAgICAgIENHUmVjdCBmcmFt
ZSA9IENHUmVjdE1ha2UoMCwgMCwgbV92aWRlb0Z1bGxzY3JlZW5GcmFtZS53aWR0aCgpLCBtX3Zp
ZGVvRnVsbHNjcmVlbkZyYW1lLmhlaWdodCgpKTsKLSAgICAgICAgW21fdmlkZW9MYXllciBzZXRG
cmFtZTpmcmFtZV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgc2V0RnJhbWU6W21fdmlkZW9GdWxs
c2NyZWVuTGF5ZXIgYm91bmRzXV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1
cGVybGF5ZXJdOwogICAgICAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBpbnNlcnRTdWJsYXll
cjptX3ZpZGVvTGF5ZXIuZ2V0KCkgYXRJbmRleDowXTsKLSAgICB9CisgICAgfSBlbHNlIGlmICht
X3ZpZGVvSW5saW5lTGF5ZXIgJiYgbV92aWRlb0xheWVyKSB7CisgICAgICAgIFttX3ZpZGVvTGF5
ZXIgc2V0RnJhbWU6W21fdmlkZW9JbmxpbmVMYXllciBib3VuZHNdXTsKKyAgICAgICAgW21fdmlk
ZW9MYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgICAgIFttX3ZpZGVvSW5saW5lTGF5
ZXIgaW5zZXJ0U3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpIGF0SW5kZXg6MF07CisgICAgfSBl
bHNlIGlmIChtX3ZpZGVvTGF5ZXIpCisgICAgICAgIFttX3ZpZGVvTGF5ZXIgcmVtb3ZlRnJvbVN1
cGVybGF5ZXJdOworCisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIAogICAgIGlmIChtX3Zp
ZGVvRnVsbHNjcmVlbkxheWVyICYmIG1fdGV4dFRyYWNrUmVwcmVzZW50YXRpb25MYXllcikgewog
ICAgICAgICBzeW5jVGV4dFRyYWNrQm91bmRzKCk7CkBAIC05NTMsOSArOTc5LDEyIEBAIHZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uT2JqQzo6c2V0VmlkZW9GdWxsc2NyZWVuRnJh
bWUoRmxvYXRSZWN0IGZyYW1lCiAgICAgaWYgKCFtX3ZpZGVvRnVsbHNjcmVlbkxheWVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAobV92aWRlb0xheWVyKQorICAgIGlmIChtX3ZpZGVvTGF5
ZXIpIHsKKyAgICAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOworICAgICAgICBbQ0FUcmFuc2Fj
dGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogICAgICAgICBbbV92aWRlb0xheWVyIHNldEZy
YW1lOkNHUmVjdE1ha2UoMCwgMCwgZnJhbWUud2lkdGgoKSwgZnJhbWUuaGVpZ2h0KCkpXTsKLQor
ICAgICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOworICAgIH0KICAgICBzeW5jVGV4dFRyYWNr
Qm91bmRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9tYWMvUGxhdGZvcm1DQUxheWVyTWFjLm1tCmluZGV4IDllOGNlODMzNGYz
Mzc2ZDU1YTEwMmE5ZWMxZWQ3M2EyNjg1NGI0NjMuLjUzMmY5ZjA3ZWVhN2E4NTIyNGNlNmM1NGNi
YWM0YjMzMzIwNWY0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL21hYy9QbGF0Zm9ybUNBTGF5ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1BsYXRmb3JtQ0FMYXllck1hYy5tbQpAQCAtMTc4LDcgKzE3
OCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqdG9DQUZpbHRlclR5cGUoUGxhdGZvcm1DQUxheWVyOjpG
aWx0ZXJUeXBlIHR5cGUpCiAKIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlIFBsYXRmb3JtQ0FM
YXllck1hYzo6bGF5ZXJUeXBlRm9yUGxhdGZvcm1MYXllcihQbGF0Zm9ybUxheWVyKiBsYXllcikK
IHsKLSAgICBpZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6Z2V0QVZQbGF5ZXJMYXllckNsYXNzKCld
KQorICAgIGlmIChbbGF5ZXIgaXNLaW5kT2ZDbGFzczpnZXRBVlBsYXllckxheWVyQ2xhc3MoKV0g
fHwgW2xheWVyIGlzS2luZE9mQ2xhc3M6b2JqY19nZXRDbGFzcygiV2ViVmlkZW9Db250YWluZXJM
YXllciIpXSkKICAgICAgICAgcmV0dXJuIExheWVyVHlwZUFWUGxheWVyTGF5ZXI7CiAKICAgICBp
ZiAoW2xheWVyIGlzS2luZE9mQ2xhc3M6W1dlYkdMTGF5ZXIgY2xhc3NdXSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250cm9sbGVy
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
Q29udHJvbGxlckFWS2l0Lm1tCmluZGV4IGRlN2E2YTI5ODM2ZDVjY2ZiZWU1NWNhZjZiMTU4YzMw
YWQzNGZlOTUuLmNlZjZiYTMzNzBlZjQwMGM4OTdhZDJlZjgxMzExNGYwNzY1OWVmZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Db250
cm9sbGVyQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkNvbnRyb2xsZXJBVktpdC5tbQpAQCAtMTYxLDkgKzE2MSw5IEBAIHB1YmxpYzoK
IC0gKHZvaWQpZGlkQ2xlYW51cEZ1bGxzY3JlZW4KIHsKICAgICBXZWJUaHJlYWRSdW4oXnsKKyAg
ICAgICAgX21vZGVsLT5zZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihuaWwpOwogICAgICAgICBfaW50
ZXJmYWNlLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbChudWxscHRyKTsKICAgICAgICAgX21v
ZGVsLT5zZXRXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2UobnVsbHB0cik7Ci0gICAgICAgIF9t
b2RlbC0+c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIobmlsKTsKICAgICAgICAgX21vZGVsLT5zZXRN
ZWRpYUVsZW1lbnQobnVsbHB0cik7CiAgICAgICAgIF9pbnRlcmZhY2UtPnNldFdlYlZpZGVvRnVs
bHNjcmVlbkNoYW5nZU9ic2VydmVyKG51bGxwdHIpOwogICAgICAgICBfbW9kZWwgPSBudWxscHRy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbkludGVyZmFjZUFWS2l0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCmluZGV4IGViYjAxNDFlOWMzZWE0ZGY5Yzhj
ZTNiMGZlYThkMWU5YThmN2U2NmYuLmU1NzRkYzZkYjBlODk4ZDJjMTg2YzhiZTI0NzUwZGM4YmU1
ODdjYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KQEAgLTc3NCwxNSArNzc0LDE4
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVl
bihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAgICAgIFttX3ZpZXdDb250cm9sbGVyIGFk
ZENoaWxkVmlld0NvbnRyb2xsZXI6bV9wbGF5ZXJWaWV3Q29udHJvbGxlci5nZXQoKV07CiAgICAg
ICAgIFtbbV92aWV3Q29udHJvbGxlciB2aWV3XSBhZGRTdWJ2aWV3OlttX3BsYXllclZpZXdDb250
cm9sbGVyIHZpZXddXTsKICAgICAgICAgW21fcGxheWVyVmlld0NvbnRyb2xsZXIgdmlld10uZnJh
bWUgPSBpbml0aWFsUmVjdDsKKyAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9sbGVyIHZpZXdd
IHNldEJhY2tncm91bmRDb2xvcjpbZ2V0VUlDb2xvckNsYXNzKCkgY2xlYXJDb2xvcl1dOwogICAg
ICAgICBbbV9wbGF5ZXJWaWV3Q29udHJvbGxlciBkaWRNb3ZlVG9QYXJlbnRWaWV3Q29udHJvbGxl
cjptX3ZpZXdDb250cm9sbGVyLmdldCgpXTsKICAgICAgICAgW1ttX3BsYXllclZpZXdDb250cm9s
bGVyIHZpZXddIGxheW91dElmTmVlZGVkXTsKIAogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwotICAgICAgICAKLSAgICAgICAgaWYgKG1fZnVsbHNjcmVlbkNoYW5nZU9ic2VydmVyKQot
ICAgICAgICAgICAgbV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVl
bigpOwotICAgICAgICAKLSAgICAgICAgcHJvdGVjdC5jbGVhcigpOworCisgICAgICAgIGRpc3Bh
dGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57CisgICAgICAgICAgICBpZiAo
bV9mdWxsc2NyZWVuQ2hhbmdlT2JzZXJ2ZXIpCisgICAgICAgICAgICAgICAgbV9mdWxsc2NyZWVu
Q2hhbmdlT2JzZXJ2ZXItPmRpZFNldHVwRnVsbHNjcmVlbigpOworICAgICAgICAgICAgCisgICAg
ICAgICAgICBwcm90ZWN0LmNsZWFyKCk7CisgICAgICAgIH0pOwogICAgIH0pOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDc1MzcyNDhiY2QyMDNkOTZjZWRmMDAxNWUyMjk5
NDM3YmFlOTA1OTkuLjQ5YWI3YTEzMjJmYzY4MGUzYzQ5MjM4NDE1ZGVkM2MzNDQzNTVmYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0xMDksMTIgKzEwOSwxMiBAQCB2b2lkIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbigpCiB7
CiAgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpE
aWRFeGl0RnVsbHNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKLSAgICBbbV9sYXllckhvc3Qg
cmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwotICAgIG1fbGF5ZXJIb3N0LmNsZWFyKCk7CiB9CiAgICAg
CiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkQ2xlYW51cEZ1bGxzY3Jl
ZW4oKQogeworICAgIFttX2xheWVySG9zdCByZW1vdmVGcm9tU3VwZXJsYXllcl07CisgICAgbV9s
YXllckhvc3QuY2xlYXIoKTsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXI6OkRpZENsZWFudXBGdWxsc2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBlMGQzM2NiNGJlZjdmNjVjZDU2ZGQxMDZh
NDlhMWIzNzc1YTRmYjkzLi5kZDVkYTE5Yzk2NGYzNjVmODQ1ZDI3MGY4MjdjZTY2Zjk4Y2UwMzFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1h
dGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVu
dC5oPgogI2ltcG9ydCA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zy
YW1lVmlldy5oPgpAQCAtMTY2LDkgKzE2NywxMyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OmRpZFNldHVwRnVsbHNjcmVlbigpCiAjaWZuZGVmIE5ERUJVRwogICAgIFt2aWRlb0xh
eWVyIHNldE5hbWU6QCJXZWIgdmlkZW8gZnVsbHNjcmVlbiBtYW5hZ2VyIGxheWVyIl07CiAjZW5k
aWYKLSAgICAKKworICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBbQ0FUcmFuc2FjdGlv
biBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFt2aWRlb0xheWVyIHNldEJhY2tncm91bmRD
b2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2ViQ29yZTo6
Q29sb3JTcGFjZURldmljZVJHQildOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9v
dExheWVyKHZpZGVvTGF5ZXIpOwogICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5
ZXIpOworICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiAgICAgbV9wYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OkVudGVyRnVsbHNjcmVlbigpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKIH0KICAgICAK
</data>

          </attachment>
      

    </bug>

</bugzilla>