<?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>136870</bug_id>
          
          <creation_ts>2014-09-16 14:41:22 -0700</creation_ts>
          <short_desc>Improve fullscreen video rotation animation.</short_desc>
          <delta_ts>2014-09-19 11:26:44 -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>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>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1035592</commentid>
    <comment_count>0</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-16 14:41:22 -0700</bug_when>
    <thetext>Improve fullscreen video rotation animation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035596</commentid>
    <comment_count>1</comment_count>
      <attachid>238213</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-16 14:55:40 -0700</bug_when>
    <thetext>Created attachment 238213
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035599</commentid>
    <comment_count>2</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-16 14:58:15 -0700</bug_when>
    <thetext>rdar://problem/17950149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035612</commentid>
    <comment_count>3</comment_count>
      <attachid>238213</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-16 15:42:16 -0700</bug_when>
    <thetext>Comment on attachment 238213
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:486
&gt; +    RetainPtr&lt;CALayer&gt; _videoSublayer;

WebAVVideoLayer has a videoSublayer? Needs some comments so we know which layers are which.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:538
&gt; +    [CATransaction setAnimationDuration:[self animationForKey:@&quot;bounds&quot;].duration ?:0.0001];

?:0.0001 is weird, both the magic number and the ?: This needs an explanatory comment.

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:539
&gt; +    [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];

Do you want to explicitly end the transaction after setting the properties?

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:116
&gt; +    WKCAContextSetFencePort(m_context.get(), fencePort);

I don&apos;t see WKCAContextSetFencePort anywhere. I assume this depends on other changes?

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:43
&gt; +SOFT_LINK_FRAMEWORK(UIKit)
&gt; +SOFT_LINK_CLASS(UIKit, UIWindow)

WebKit2 doesn&apos;t need to soft link with UIKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035761</commentid>
    <comment_count>4</comment_count>
      <attachid>238263</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 13:55:14 -0700</bug_when>
    <thetext>Created attachment 238263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035764</commentid>
    <comment_count>5</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 13:58:01 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 238213 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238213&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:486
&gt; &gt; +    RetainPtr&lt;CALayer&gt; _videoSublayer;
&gt; 
&gt; WebAVVideoLayer has a videoSublayer? Needs some comments so we know which layers are which.

Not sure what to say here. This just formalized the relationship that already existed. See the change from addSublayer: to setVideoSublayer:

&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:538
&gt; &gt; +    [CATransaction setAnimationDuration:[self animationForKey:@&quot;bounds&quot;].duration ?:0.0001];
&gt; 
&gt; ?:0.0001 is weird, both the magic number and the ?: This needs an explanatory comment.
&gt; 

Comment added.

&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:539
&gt; &gt; +    [CATransaction setAnimationTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
&gt; 
&gt; Do you want to explicitly end the transaction after setting the properties?

Added transaction begin/commit.

&gt; 
&gt; &gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:116
&gt; &gt; +    WKCAContextSetFencePort(m_context.get(), fencePort);
&gt; 
&gt; I don&apos;t see WKCAContextSetFencePort anywhere. I assume this depends on other changes?

I removed this and moved LayerHostingContext off of WKCAContext per AVSystemInterface guidelines.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:43
&gt; &gt; +SOFT_LINK_FRAMEWORK(UIKit)
&gt; &gt; +SOFT_LINK_CLASS(UIKit, UIWindow)
&gt; 
&gt; WebKit2 doesn&apos;t need to soft link with UIKit.

Removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035767</commentid>
    <comment_count>6</comment_count>
      <attachid>238263</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-17 14:05:58 -0700</bug_when>
    <thetext>Comment on attachment 238263
Patch

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

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:51
&gt; +    layerHostingContext-&gt;m_context = (CAContext*)WKCAContextMakeRemoteWithServerPort(serverPort);

CAContext *

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:86
&gt; +    return [m_context setLayer:rootLayer];

no return.

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:102
&gt; +    return [m_context invalidate];

no return

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:107
&gt; +    return [m_context setColorSpace:colorSpace];

no return

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:37
&gt; +#include &lt;UIKit/UIWindow_Private.h&gt;

This will annoy dbates who is trying to make us build with the public SDK. You should do the platform/spi thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035823</commentid>
    <comment_count>7</comment_count>
      <attachid>238283</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 19:57:47 -0700</bug_when>
    <thetext>Created attachment 238283
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035824</commentid>
    <comment_count>8</comment_count>
      <attachid>238283</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-17 20:07:57 -0700</bug_when>
    <thetext>Comment on attachment 238283
Patch

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

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:41
&gt; +@interface CAContext : NSObject (Details)
&gt; +- (void)invalidate;
&gt; +@property (readonly) uint32_t contextId;
&gt; +@property (strong) CALayer *layer;
&gt; +@property CGColorSpaceRef colorSpace;
&gt; +- (void)setFencePort:(mach_port_t)port;
&gt;  + (CAContext *)remoteContextWithOptions:(NSDictionary *)dict;
&gt;  @end

This should really go into its own spi header, but that can happen in a later commit.

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:88
&gt; +    return [m_context setLayer:rootLayer];

No return.

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:104
&gt; +    return [m_context invalidate];

No return.

&gt; Source/WebKit2/Platform/mac/LayerHostingContext.mm:109
&gt; +    return [m_context setColorSpace:colorSpace];

No return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035825</commentid>
    <comment_count>9</comment_count>
      <attachid>238284</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 20:24:27 -0700</bug_when>
    <thetext>Created attachment 238284
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035827</commentid>
    <comment_count>10</comment_count>
      <attachid>238284</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-17 20:31:21 -0700</bug_when>
    <thetext>Comment on attachment 238284
Patch

Patch doesn&apos;t apply to TOT!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035829</commentid>
    <comment_count>11</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 21:05:46 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 238284 [details])
&gt; Patch doesn&apos;t apply to TOT!

dbates backed out his changes for platform/spi. So I&apos;m removing mine also.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035831</commentid>
    <comment_count>12</comment_count>
      <attachid>238285</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-17 21:17:18 -0700</bug_when>
    <thetext>Created attachment 238285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035966</commentid>
    <comment_count>13</comment_count>
      <attachid>238318</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-18 12:14:25 -0700</bug_when>
    <thetext>Created attachment 238318
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1035976</commentid>
    <comment_count>14</comment_count>
      <attachid>238318</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-18 13:17:23 -0700</bug_when>
    <thetext>Comment on attachment 238318
Patch

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

&gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:540
&gt; +    if (animationDuration == 0.0) // a duration of 0 for CA means 0.25. This is a way to approximate 0.

We normally write this as if (!animationDuration)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036009</commentid>
    <comment_count>15</comment_count>
      <attachid>238330</attachid>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-18 15:58:05 -0700</bug_when>
    <thetext>Created attachment 238330
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036010</commentid>
    <comment_count>16</comment_count>
    <who name="Jeremy Jones">jeremyj-wk</who>
    <bug_when>2014-09-18 16:09:13 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 238318 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=238318&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/ios/WebVideoFullscreenInterfaceAVKit.mm:540
&gt; &gt; +    if (animationDuration == 0.0) // a duration of 0 for CA means 0.25. This is a way to approximate 0.
&gt; 
&gt; We normally write this as if (!animationDuration)

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036018</commentid>
    <comment_count>17</comment_count>
      <attachid>238330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-09-18 16:40:55 -0700</bug_when>
    <thetext>Comment on attachment 238330
Patch for landing.

Clearing flags on attachment: 238330

Committed r173741: &lt;http://trac.webkit.org/changeset/173741&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036139</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-19 09:44:12 -0700</bug_when>
    <thetext>I get the following build error after this change (but the bots seem fine):
Source/WebKit2/Platform/mac/LayerHostingContext.mm:121:16: error: instance method &apos;-setFencePort:&apos; not found (return type defaults to &apos;id&apos;) [-Werror,-Wobjc-method-access]
    [m_context setFencePort:fencePort];
               ^~~~~~~~~~~~

Anyone knows what I am missing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036161</commentid>
    <comment_count>19</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-09-19 11:05:40 -0700</bug_when>
    <thetext>Mac build fixed in https://trac.webkit.org/r173762.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1036168</commentid>
    <comment_count>20</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-09-19 11:26:44 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; Mac build fixed in https://trac.webkit.org/r173762.

You rock Simon :) Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238213</attachid>
            <date>2014-09-16 14:55:40 -0700</date>
            <delta_ts>2014-09-17 13:55:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140916145538.patch</filename>
            <type>text/plain</type>
            <size>13028</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTI1MjE4OWU3YmRlNWVm
Y2RjMWQzZGE4YWY3MzE5OTBlN2IzMzYyZi4uNWNjMTY0Mjk5ODAwYjMxNTBiZDZhMWNjNzEyOTEx
MTY4MDQ2MmE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE2ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQKKyAgICAgICAgd2l0aCB0aGUgcmVz
dCBvZiB0aGUgYW5pbWF0aW9uLgorCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJBVlZpZGVvTGF5ZXIgc2V0
VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHZpZGVv
U3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xheWVyIHNldEJvdW5kczpd
KTogc2V0IHBvc2l0aW9uIGFuZCBib3VuZHMgaW5zdGVhZCBvZiBmcmFtZQorICAgICAgICAoV2Vi
VmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbik6IHVzZSBzZXRW
aWRlb1N1YmxheWVyCisgICAgICAgICogcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsVmlkZW9FbGVtZW50Lm1tOgorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRl
b0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKTogc2V0IGJvdW5kcyBhbmQgYW5jaG9y
UG9pbnQgaW5zdGVhZCBvZiBmcmFtZQorICAgICAgICAoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxW
aWRlb0VsZW1lbnQ6OnNldFZpZGVvTGF5ZXJGcmFtZSk6IHNldCBib3VuZHMgaW5zdGVhZCBvZiBm
cmFtZQorCiAyMDE0LTA5LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgQXZvaWQgcmVkdW5kYW50IGlzRWxlbWVudE5vZGUoKSBjaGVja3MgaW4gVHJhdmVyc2Fs
PEhUTUwqRWxlbWVudD4gLyBUcmF2ZXJzYWw8U1ZHKkVsZW1lbnQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTdk
ODViZDcwZjI0NGVjNmIxMWQ2ZjhjZmI3MWYwYTBhYjQyM2E4MC4uMjFmNzYwYTk4OWU1ZDAzNThm
YzkxOTFmYjg0Y2Y1YTdkOWRmOWY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE0
LTA5LTE2ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXBy
b3ZlIGZ1bGxzY3JlZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBm
cmFtZSBvbiB0aGUgdmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRl
bHkuIFRoaXMgYWxsb3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQKKyAgICAgICAg
d2l0aCB0aGUgcmVzdCBvZiB0aGUgYW5pbWF0aW9uLiBBbHNvIHVzZSBhIGZlbmNlUG9ydCB0byBz
eW5jIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKworICAgICAgICAqIFBsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lmg6CisgICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9z
dGluZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNl
dEZlbmNlUG9ydCk6IGFkZGVkCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckZyYW1lKTogYWRkZWQuIFVzZSBhIGZlbmNlUG9y
dCB0byBzeW5jIGFuaW1hdGlvbi4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmg6IGFkZGVkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZAorICAgICAg
ICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46
IGRpdHRvCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0
dXBGdWxsc2NyZWVuKTogY2VudGVyIHZpZGVvIGxheWVyIGluIGhvc3QgbGF5ZXIuCisgICAgICAg
IChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZl
bmNlZCk6IGFkZGVkLiBVc2UgZmVuY2VQb3J0IHRvIHN5bmMgYW5pbWF0aW9uLgorCiAyMDE0LTA5
LTEzICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAg
IFNob3VsZCBjYWxsIFtCS1NQcm9jZXNzQXNzZXJ0aW9uIGludmFsaWRhdGVdCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNl
QVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
SW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZGViYmM5YzA4MWU3ODlmZTAwNDQwOWQ0OTgwZTllOTNk
ZTBlNjE2NS4uYjcxZjA5MTUzNjhiMGQ1YjEzNjc1M2RkOWViZjQzMDYwZTk3YzIyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVy
ZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAtNDc2LDEyICs0NzYsMTQgQEAgU09GVF9MSU5L
X0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0
eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0OwogLSAodm9pZClzZXRQbGF5ZXJWaWV3Q29u
dHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxlciAqKXBsYXllclZpZXdDb250cm9sbGVyOwog
LSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihBVlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJD
b250cm9sbGVyOworQHByb3BlcnR5IChub25hdG9taWMsIHJldGFpbikgQ0FMYXllciogdmlkZW9T
dWJsYXllcjsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFdlYkFWVmlkZW9MYXllcgogewogICAg
IFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xsZXI+IF9hdlBsYXllckNvbnRyb2xsZXI7CiAg
ICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRyb2xsZXI+IF9hdlBsYXllclZpZXdDb250cm9s
bGVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBfdmlkZW9TdWJsYXllcjsKICAgICBBVlZpZGVv
TGF5ZXJHcmF2aXR5IF92aWRlb0xheWVyR3Jhdml0eTsKIH0KIApAQCAtNTExLDYgKzUxMywxNyBA
QCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1l
KQogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVyID0gcGxheWVyVmlld0NvbnRyb2xsZXI7CiB9
CiAKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjooQ0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sK
KyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3VibGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5
ZXI6dmlkZW9TdWJsYXllcl07Cit9CisKKy0gKENBTGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAg
ICByZXR1cm4gX3ZpZGVvU3VibGF5ZXIuZ2V0KCk7Cit9CisKIC0gKHZvaWQpc2V0Qm91bmRzOihD
R1JlY3QpYm91bmRzCiB7CiAgICAgW3N1cGVyIHNldEJvdW5kczpib3VuZHNdOwpAQCAtNTIxLDE0
ICs1MzQsMTcgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5p
dGUsIENNVGltZSkKICAgICBVSVZpZXcqIHJvb3RWaWV3ID0gW1tfYXZQbGF5ZXJWaWV3Q29udHJv
bGxlciB2aWV3XSB3aW5kb3ddOwogICAgIGlmICghcm9vdFZpZXcpCiAgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjpbc2VsZiBhbmlt
YXRpb25Gb3JLZXk6QCJib3VuZHMiXS5kdXJhdGlvbiA/OjAuMDAwMV07CisgICAgW0NBVHJhbnNh
Y3Rpb24gc2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVkaWFUaW1pbmdGdW5jdGlvbiBm
dW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25FYXNlSW5FYXNlT3V0XV07CiAK
ICAgICBGbG9hdFJlY3Qgcm9vdEJvdW5kcyA9IFtyb290VmlldyBib3VuZHNdOwogICAgIFtfYXZQ
bGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXllckZyYW1lKHJvb3RCb3VuZHMp
OwogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJh
dGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8gQ0dSZWN0R2V0SGVpZ2h0KGJv
dW5kcyksIHJvb3RCb3VuZHMpOwogICAgIENBVHJhbnNmb3JtM0QgdHJhbnNmb3JtID0gQ0FUcmFu
c2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNvdXJjZUJvdW5kcy53aWR0aCgp
LCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVpZ2h0KCksIDEpOwotICAgIHRy
YW5zZm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNmb3JtLCBib3VuZHMub3JpZ2lu
LnggLSBzb3VyY2VCb3VuZHMueCgpLCBib3VuZHMub3JpZ2luLnkgLSBzb3VyY2VCb3VuZHMueSgp
LCAwKTsKLSAgICBbc2VsZiBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtf
dmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShDR1JlY3RHZXRNaWRYKGJvdW5k
cyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRTdWJs
YXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOwogfQogCiAtICh2b2lkKXNldFZpZGVvTGF5ZXJHcmF2
aXR5OihBVlZpZGVvTGF5ZXJHcmF2aXR5KXZpZGVvTGF5ZXJHcmF2aXR5CkBAIC03NjAsNyArNzc2
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2Ny
ZWVuKFBsYXRmb3JtTGF5ZXImIHZpZGVvTGF5ZXIKICAgICAgICAgCiAgICAgICAgIG1fdmlkZW9M
YXllckNvbnRhaW5lciA9IFtXZWJBVlZpZGVvTGF5ZXIgdmlkZW9MYXllcl07CiAgICAgICAgIFtt
X3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0SGlkZGVuOnBsYXllckNvbnRyb2xsZXIoKS5leHRlcm5h
bFBsYXliYWNrQWN0aXZlXTsKLSAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBhZGRTdWJs
YXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOworICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVy
IHNldFZpZGVvU3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpXTsKICAgICAgICAgCiAgICAgICAg
IENHU2l6ZSB2aWRlb1NpemUgPSBwbGF5ZXJDb250cm9sbGVyKCkuY29udGVudERpbWVuc2lvbnM7
CiAgICAgICAgIENHUmVjdCB2aWRlb1JlY3QgPSBDR1JlY3RNYWtlKDAsIDAsIHZpZGVvU2l6ZS53
aWR0aCwgdmlkZW9TaXplLmhlaWdodCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQu
bW0KaW5kZXggNGQ4OGM5YWUzNGIxMjhhOGQ0N2Q0MjE4NDRiYzUyOGNiNjU5OGFhZC4uOGM0NjE3
YTQxNzAxOTYwYzc5MzJiY2U5ODU5NGUzNDY1ODQxOTAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5tbQpAQCAtMTUyLDcgKzE1Miw4IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKFBsYXRmb3JtTGF5
ZXIqCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBtX3ZpZGVvRnVsbHNjcmVlbkxheWVyID0g
dmlkZW9MYXllcjsKLSAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRGcmFtZTptX3ZpZGVv
RnJhbWVdOworICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEFuY2hvclBvaW50OkNHUG9p
bnRNYWtlKDAuNSwgMC41KV07CisgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0Qm91bmRz
Om1fdmlkZW9GcmFtZV07CiAgICAgCiAgICAgX19ibG9jayBSZWZQdHI8V2ViVmlkZW9GdWxsc2Ny
ZWVuTW9kZWxWaWRlb0VsZW1lbnQ+IHByb3RlY3QodGhpcyk7CiAgICAgV2ViVGhyZWFkUnVuKF57
CkBAIC0yNzgsNyArMjc5LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6cmVxdWVzdEV4aXRGdWxsc2NyZWVuKCkKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9k
ZWxWaWRlb0VsZW1lbnQ6OnNldFZpZGVvTGF5ZXJGcmFtZShGbG9hdFJlY3QgcmVjdCkKIHsKICAg
ICBtX3ZpZGVvRnJhbWUgPSByZWN0OwotICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEZy
YW1lOkNHUmVjdChyZWN0KV07CisgICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0Qm91bmRz
OkNHUmVjdChyZWN0KV07CiAgICAgbV92aWRlb0VsZW1lbnQtPnNldFZpZGVvRnVsbHNjcmVlbkZy
YW1lKHJlY3QpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMv
TGF5ZXJIb3N0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVy
SG9zdGluZ0NvbnRleHQuaAppbmRleCBiYjkxMDRlNDc2MDJkYzVkNmFkNjA0ZWNlOTA4MzEyZTcz
MjdlMjA2Li4zNTg5NWZkYjkwZTUyMzhlNGJmZjIzMzFlYWNhNWE2Mjk5Y2UxNDI0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKQEAg
LTU3LDYgKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRDb2xvclNwYWNlKENHQ29sb3JT
cGFjZVJlZik7CiAgICAgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UoKSBjb25zdDsKKyAgICAK
KyAgICB2b2lkIHNldEZlbmNlUG9ydChtYWNoX3BvcnRfdCk7CiAKIHByaXZhdGU6CiAgICAgTGF5
ZXJIb3N0aW5nTW9kZSBtX2xheWVySG9zdGluZ01vZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCmluZGV4IDEzZjc0MDlkZDBjNDEx
ZDdjZWJhNTQzNmQ0NjU2OWM3NmEzYjg4NDYuLmMwZTFjM2ZkNmU2ZTM1NTRiY2RmZmYwYzYwNzkw
MDgzYmI2MzliNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXll
ckhvc3RpbmdDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXll
ckhvc3RpbmdDb250ZXh0Lm1tCkBAIC0xMTEsNCArMTExLDkgQEAgQ0dDb2xvclNwYWNlUmVmIExh
eWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yU3BhY2UoKSBjb25zdAogICAgIHJldHVybiBXS0NBQ29u
dGV4dEdldENvbG9yU3BhY2UobV9jb250ZXh0LmdldCgpKTsKIH0KIAordm9pZCBMYXllckhvc3Rp
bmdDb250ZXh0OjpzZXRGZW5jZVBvcnQobWFjaF9wb3J0X3QgZmVuY2VQb3J0KQoreworICAgIFdL
Q0FDb250ZXh0U2V0RmVuY2VQb3J0KG1fY29udGV4dC5nZXQoKSwgZmVuY2VQb3J0KTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDU3
ZGI5MjAxZjVjNzJkYmE1OGJhNmMzNGU3Yjg3OTAxNDBhNGM2MGQuLmM3MzNkMDg0YzM3OGIwNGVi
NjI5NDRlNWVjZTNiOWE3OGE2YTRkYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBA
IC0zNCw4ICszNCwxMyBAQAogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW5jbHVkZSA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8VUlLaXQvVUlXaW5kb3dfUHJpdmF0ZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Rp
bWVSYW5nZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworU09GVF9M
SU5LX0ZSQU1FV09SSyhVSUtpdCkKK1NPRlRfTElOS19DTEFTUyhVSUtpdCwgVUlXaW5kb3cpCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xODIsNyArMTg3LDggQEAgdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVuZFNjYW5uaW5nKCkKIAogdm9pZCBXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9h
dFJlY3QgZnJhbWUpCiB7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xheWVyRnJhbWUoZnJhbWUpLCBtX3BhZ2UtPnBhZ2VJRCgp
KTsKKyAgICBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KFtnZXRVSVdpbmRvd0NsYXNzKCkgX3N5
bmNocm9uaXplRHJhd2luZ0Fjcm9zc1Byb2Nlc3Nlc10sIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5E
KTsKKyAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6
OlNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChmcmFtZSwgZmVuY2VQb3J0KSwgbV9wYWdlLT5wYWdl
SUQoKSk7CiB9CiAKIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRl
b0xheWVyR3Jhdml0eShXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2
aXR5IGdyYXZpdHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNmVmMDM2MTg1YWZiNGNkZTI4YjU2
NjY2Y2RiZmM1OGU1NDg5MzgzMy4uNDBlOWI1NDhiY2JkYjkzYzcwOTVhMTliOTFmYjk1M2YzOGJl
Y2ZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OwogY2xhc3Mg
Q29ubmVjdGlvbjsKIGNsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVzc2FnZVJlY2VpdmVy
OwpAQCAtODMsNiArODQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRG
dWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCk7CisgICAg
dm9pZCBzZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywg
SVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwog
ICAgIFJlZlB0cjxXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50PiBtX3ZpZGVvRWxlbWVudDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDhiNGQ4ZWY1YjgxOGI4NGUy
NjMyMDBlNzdlNjhjMzc5N2ZjOTZlMTMuLjM5MzYxMjI5MjZkZmM1NTc4MjM0ODU0Y2U4MzljZWFk
OGE4ZGFhNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzcs
NyArMzcsNyBAQCBtZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBE
aWRFeGl0RnVsbHNjcmVlbigpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKCkKICAgICBEaWRDbGVh
bnVwRnVsbHNjcmVlbigpCi0gICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHMpCisgICAgU2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVj
dCBib3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAgICAgU2V0VmlkZW9MYXllckdy
YXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiAgICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1
aW50NjRfdCBpbmRleCkKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5k
ZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlci5tbQppbmRleCBkMjNmYWFjYzMzNmRjYTQ2YWE1MzVlY2ZlNzc3
MzMwYWM1ZjA4NDAzLi5hZmRiNmQxYmZkMDI3MjhjYjMxNGFkYTFlNTc4NzIyYTMwOGY3NzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXIubW0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JNKElP
UykKIAorI2ltcG9ydCAiQXR0YWNobWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAjaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCkBAIC00
NSw2ICs0Niw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1RpbWVSYW5nZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgor
I2ltcG9ydCA8bWFjaC9tYWNoX3BvcnQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
QEAgLTE3NSw2ICsxNzcsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNl
dHVwRnVsbHNjcmVlbigpCiAKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJh
bnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKKyAgICBbdmlkZW9MYXllciBzZXRQb3Np
dGlvbjpDR1BvaW50TWFrZSgwLCAwKV07CiAgICAgW3ZpZGVvTGF5ZXIgc2V0QmFja2dyb3VuZENv
bG9yOmNhY2hlZENHQ29sb3IoV2ViQ29yZTo6Q29sb3I6OnRyYW5zcGFyZW50LCBXZWJDb3JlOjpD
b2xvclNwYWNlRGV2aWNlUkdCKV07CiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRSb290
TGF5ZXIodmlkZW9MYXllcik7CiAgICAgc2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIodmlkZW9MYXll
cik7CkBAIC0yMzMsNiArMjM2LDEzIEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
c2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkIGdyYXZpdHkpCiB7CiAgICAgc2V0Vmlk
ZW9MYXllckdyYXZpdHkoKFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpZ3Jh
dml0eSk7CiB9CisgICAgCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVv
TGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1l
bnQgZmVuY2VQb3J0KQoreworICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0
KGZlbmNlUG9ydC5wb3J0KCkpOworICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOworICAg
IG1hY2hfcG9ydF9kZWFsbG9jYXRlKG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkp
OworfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238263</attachid>
            <date>2014-09-17 13:55:14 -0700</date>
            <delta_ts>2014-09-17 19:57:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140917135511.patch</filename>
            <type>text/plain</type>
            <size>15949</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY3NmY0Y2EwZjhhZjVh
YzUyM2RlYTdkNTUxOTM0NTdhNjI0ZWQ2Ny4uZGQyNDA5ZDU2MTUxMDk5ZTg1YzYzYmExZTUwZThj
ODlkMjliOGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YW5pbWF0aW9uLgorICAgICAgICBXaGVuIHVzaW5nIGEgZmVuY2VQb3J0IHRvIHN5bmNocm9uaXpl
IGFuaW1hdGlvbnMsIGlmIHRoZSBmZW5jZSB0aW1lcyBvdXQsIHBpdm90aW5nIGFyb3VuZCB0aGUg
Y2VudGVyIHByb3ZpZGVzIGEgYmV0dGVyIGZhbGxiYWNrLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJB
VlZpZGVvTGF5ZXIgc2V0VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHZpZGVvU3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xh
eWVyIHNldEJvdW5kczpdKTogIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIGluc3RlZCBvZiBmcmFt
ZS4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOiB1c2Ugc2V0VmlkZW9TdWJsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IHNldCBi
b3VuZHMgYW5kIGFuY2hvclBvaW50IGluc3RlYWQgb2YgZnJhbWUKKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZXQgYm91
bmRzIGluc3RlYWQgb2YgZnJhbWUuCisKIDIwMTQtMDktMTcgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHBhcnNpbmcgZm9yIDpudGgtY2hpbGQo
QW4rQiBvZiBzZWxlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNmNhOTRkYTkxZDZjOTFjYTc2NjQxYjli
YjA3ODVlN2M3ZjQ4NTIwLi5mNzFjZmE0NWQ4NWMzMzE2MGEwNzAyMmJlODlhYmU1YWQwZjg5OTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDktMTcgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZnVsbHNjcmVlbiB2aWRlbyBy
b3RhdGlvbiBhbmltYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgV0tDQUNvbnRleHQgZnJvbSBMYXllckhvc3RpbmdDb250ZXh0IGFu
ZCB1c2UgYSBmZW5jZVBvcnQgdG8gc3luY2hyb25pemUgYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vz
c2VzLgorCisgICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaDogYWRk
IHNldEZlbmNlUG9ydC4gUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0OjpjcmVhdGVGb3JQb3J0KTogUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAoV2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNz
KTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4
dElEKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldENv
bG9yU3BhY2UpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpj
b2xvclNwYWNlKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6
c2V0RmVuY2VQb3J0KTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUpOiAKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogYWRkIGZlbmNlIHBv
cnQgcGFyYW1ldGVyCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKTogZGl0dG8KKwog
MjAxNC0wOS0xNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBd2F5cyBoYXZlIGEgUGFnZVRocm90dGxlciAoc29tZXRpbWVzIGhhdmUgYSBVc2Vy
QWN0aXZpdHk6OkltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZmUzNzU2
NWNmNjJiZmRjOGJiOTQ3NDI5MGJlZjcwZGM1ZTEwM2I4OC4uNDE3NmE1NDViNGJhMzY1MDNkMDA0
Y2M5MGE4YzNjNGUxMjJhNjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAt
NDc1LDEyICs0NzUsMTQgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0
OwogLSAodm9pZClzZXRQbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKXBsYXllclZpZXdDb250cm9sbGVyOwogLSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihB
VlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgQ0FMYXllciogdmlkZW9TdWJsYXllcjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkFWVmlkZW9MYXllcgogewogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xs
ZXI+IF9hdlBsYXllckNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRy
b2xsZXI+IF9hdlBsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBf
dmlkZW9TdWJsYXllcjsKICAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5IF92aWRlb0xheWVyR3Jhdml0
eTsKIH0KIApAQCAtNTEwLDYgKzUxMiwxNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVy
ID0gcGxheWVyVmlld0NvbnRyb2xsZXI7CiB9CiAKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjoo
Q0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3Vi
bGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllcl07Cit9CisKKy0gKENB
TGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXIuZ2V0KCk7
Cit9CisKIC0gKHZvaWQpc2V0Qm91bmRzOihDR1JlY3QpYm91bmRzCiB7CiAgICAgW3N1cGVyIHNl
dEJvdW5kczpib3VuZHNdOwpAQCAtNTIwLDE0ICs1MzMsMjIgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBVSVZpZXcqIHJvb3RW
aWV3ID0gW1tfYXZQbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSB3aW5kb3ddOwogICAgIGlmICgh
cm9vdFZpZXcpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbc2VsZiBhbmltYXRp
b25Gb3JLZXk6QCJib3VuZHMiXS5kdXJhdGlvbjsKKyAgICBpZiAoYW5pbWF0aW9uRHVyYXRpb24g
PT0gMC4wKSAvLyBhIGR1cmF0aW9uIG9mIDAgZm9yIENBIG1lYW5zIDAuMjUuIFRoaXMgaXMgYSB3
YXkgdG8gYXBwcm94aW1hdGUgMC4KKyAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSAwLjAwMTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjphbmltYXRpb25EdXJhdGlv
bl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25F
YXNlSW5FYXNlT3V0XV07CiAKICAgICBGbG9hdFJlY3Qgcm9vdEJvdW5kcyA9IFtyb290VmlldyBi
b3VuZHNdOwogICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXll
ckZyYW1lKHJvb3RCb3VuZHMpOwogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdl
c3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8g
Q0dSZWN0R2V0SGVpZ2h0KGJvdW5kcyksIHJvb3RCb3VuZHMpOwogICAgIENBVHJhbnNmb3JtM0Qg
dHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNv
dXJjZUJvdW5kcy53aWR0aCgpLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVp
Z2h0KCksIDEpOwotICAgIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNm
b3JtLCBib3VuZHMub3JpZ2luLnggLSBzb3VyY2VCb3VuZHMueCgpLCBib3VuZHMub3JpZ2luLnkg
LSBzb3VyY2VCb3VuZHMueSgpLCAwKTsKLSAgICBbc2VsZiBzZXRTdWJsYXllclRyYW5zZm9ybTp0
cmFuc2Zvcm1dOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShD
R1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07CiB9CiAKIC0gKHZvaWQpc2V0VmlkZW9MYXllckdyYXZpdHk6KEFWVmlk
ZW9MYXllckdyYXZpdHkpdmlkZW9MYXllckdyYXZpdHkKQEAgLTc1OSw3ICs3ODAsNyBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICAKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFp
bmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAgICAgICAgW21fdmlkZW9MYXll
ckNvbnRhaW5lciBzZXRIaWRkZW46cGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tB
Y3RpdmVdOwotICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIGFkZFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9T
dWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAgQ0dTaXplIHZp
ZGVvU2l6ZSA9IHBsYXllckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsKICAgICAgICAg
Q0dSZWN0IHZpZGVvUmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgdmlkZW9TaXplLndpZHRoLCB2aWRl
b1NpemUuaGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCA0
ZDg4YzlhZTM0YjEyOGE4ZDQ3ZDQyMTg0NGJjNTI4Y2I2NTk4YWFkLi44YzQ2MTdhNDE3MDE5NjBj
NzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xNTIsNyArMTUyLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcioKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSB2aWRlb0xheWVy
OwotICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEZyYW1lOm1fdmlkZW9GcmFtZV07Cisg
ICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41
LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6bV92aWRlb0Zy
YW1lXTsKICAgICAKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKQEAgLTI3OCw3
ICsyNzksNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpyZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAgIG1fdmlkZW9G
cmFtZSA9IHJlY3Q7Ci0gICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0RnJhbWU6Q0dSZWN0
KHJlY3QpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6Q0dSZWN0KHJl
Y3QpXTsKICAgICBtX3ZpZGVvRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oCmluZGV4IGJiOTEwNGU0NzYwMmRjNWQ2YWQ2MDRlY2U5MDgzMTJlNzMyN2UyMDYuLmU3
YTM0ZGZhM2ZiZGE0ZGFhMDJhNWU2MjlmYzdjMGY0NTM4NjdlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaApAQCAtMzIsNyArMzIs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBDQUxheWVyOwot
dHlwZWRlZiBzdHJ1Y3QgX19XS0NBQ29udGV4dFJlZiAqV0tDQUNvbnRleHRSZWY7CitPQkpDX0NM
QVNTIENBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU3LDEwICs1NywxMiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsKICAg
ICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0
RmVuY2VQb3J0KG1hY2hfcG9ydF90KTsKIAogcHJpdmF0ZToKICAgICBMYXllckhvc3RpbmdNb2Rl
IG1fbGF5ZXJIb3N0aW5nTW9kZTsKLSAgICBSZXRhaW5QdHI8V0tDQUNvbnRleHRSZWY+IG1fY29u
dGV4dDsKKyAgICBSZXRhaW5QdHI8Q0FDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9M
YXllckhvc3RpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVy
SG9zdGluZ0NvbnRleHQubW0KaW5kZXggMTNmNzQwOWRkMGM0MTFkN2NlYmE1NDM2ZDQ2NTY5Yzc2
YTNiODg0Ni4uNGU2ZTkxNTMyMzEwNzAwOWI4MDJmODA5MmYyNjk0MjVhOWJhODgzMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
QEAgLTQ4LDcgKzQ4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IExh
eWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQobWFjaF9wb3IKICAgICBhdXRvIGxheWVy
SG9zdGluZ0NvbnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPExheWVySG9zdGluZ0NvbnRleHQ+KCk7
CiAKICAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2xheWVySG9zdGluZ01vZGUgPSBMYXllckhv
c3RpbmdNb2RlOjpJblByb2Nlc3M7Ci0gICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0
ID0gV0tDQUNvbnRleHRNYWtlUmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CisgICAg
bGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gKENBQ29udGV4dCopV0tDQUNvbnRleHRN
YWtlUmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CiAKICAgICByZXR1cm4gbGF5ZXJI
b3N0aW5nQ29udGV4dDsKIH0KQEAgLTYyLDExICs2MiwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGF5
ZXJIb3N0aW5nQ29udGV4dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxI
b3N0aQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgYSB2ZXJ5IGxhcmdlIGRpc3BsYXkg
SUQgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRleHQgaXMgbmV2ZXIgcHV0IG9uLXNjcmVlbiAKICAg
ICAvLyB3aXRob3V0IGJlaW5nIGV4cGxpY2l0bHkgcGFyZW50ZWQuIFNlZSA8cmRhcjovL3Byb2Js
ZW0vMTYwODkyNjc+IGZvciBkZXRhaWxzLgotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29u
dGV4dCA9IChXS0NBQ29udGV4dFJlZilbQ0FDb250ZXh0IHJlbW90ZUNvbnRleHRXaXRoT3B0aW9u
czpAeworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFtDQUNvbnRleHQgcmVt
b3RlQ29udGV4dFdpdGhPcHRpb25zOkB7CiAgICAgICAgIGtDQUNvbnRleHRJZ25vcmVzSGl0VGVz
dCA6IEBZRVMsCiAgICAgICAgIGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAgfV07CiAjZWxz
ZQotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFdLQ0FDb250ZXh0TWFrZVJl
bW90ZUZvcldpbmRvd1NlcnZlcigpOworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4
dCA9IChDQUNvbnRleHQqKVdLQ0FDb250ZXh0TWFrZVJlbW90ZUZvcldpbmRvd1NlcnZlcigpOwog
I2VuZGlmCiAgICAgCiAgICAgcmV0dXJuIGxheWVySG9zdGluZ0NvbnRleHQ7CkBAIC04MywzMiAr
ODMsMzggQEAgTGF5ZXJIb3N0aW5nQ29udGV4dDo6fkxheWVySG9zdGluZ0NvbnRleHQoKQogCiB2
b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNldFJvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIp
CiB7Ci0gICAgV0tDQUNvbnRleHRTZXRMYXllcihtX2NvbnRleHQuZ2V0KCksIHJvb3RMYXllcik7
CisgICAgcmV0dXJuIFttX2NvbnRleHQgc2V0TGF5ZXI6cm9vdExheWVyXTsKIH0KIAogQ0FMYXll
ciAqTGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
V0tDQUNvbnRleHRHZXRMYXllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250
ZXh0IGxheWVyXTsKIH0KIAogdWludDMyX3QgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4dElE
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb250ZXh0SWQobV9jb250ZXh0
LmdldCgpKTsKKyAgICByZXR1cm4gW21fY29udGV4dCBjb250ZXh0SWRdOworCiB9CiAKIHZvaWQg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgV0tDQUNvbnRleHRJbnZh
bGlkYXRlKG1fY29udGV4dC5nZXQoKSk7CisgICAgcmV0dXJuIFttX2NvbnRleHQgaW52YWxpZGF0
ZV07CiB9CiAKIHZvaWQgTGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JTcGFjZShDR0NvbG9y
U3BhY2VSZWYgY29sb3JTcGFjZSkKIHsKLSAgICBXS0NBQ29udGV4dFNldENvbG9yU3BhY2UobV9j
b250ZXh0LmdldCgpLCBjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gW21fY29udGV4dCBzZXRDb2xv
clNwYWNlOmNvbG9yU3BhY2VdOwogfQogCiBDR0NvbG9yU3BhY2VSZWYgTGF5ZXJIb3N0aW5nQ29u
dGV4dDo6Y29sb3JTcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdLQ0FDb250ZXh0R2V0Q29s
b3JTcGFjZShtX2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250ZXh0IGNvbG9yU3Bh
Y2VdOworfQorCit2b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNldEZlbmNlUG9ydChtYWNoX3Bv
cnRfdCBmZW5jZVBvcnQpCit7CisgICAgW21fY29udGV4dCBzZXRGZW5jZVBvcnQ6ZmVuY2VQb3J0
XTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1t
CmluZGV4IDU3ZGI5MjAxZjVjNzJkYmE1OGJhNmMzNGU3Yjg3OTAxNDBhNGM2MGQuLjUyYmNkY2E0
MjU2NWMxYzU1Mzc3NGMxYzg3MGIzMGZjZGVlY2NiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tCkBAIC0zNCw4ICszNCw5IEBACiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxVSUtpdC9VSVdpbmRvd19Q
cml2YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CisjaW5jbHVkZSA8V2Vi
S2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0x
ODIsNyArMTgzLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVuZFNj
YW5uaW5nKCkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVv
TGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgZnJhbWUpCiB7Ci0gICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xheWVyRnJhbWUo
ZnJhbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0
KFtVSVdpbmRvdyBfc3luY2hyb25pemVEcmF3aW5nQWNyb3NzUHJvY2Vzc2VzXSwgTUFDSF9NU0df
VFlQRV9NT1ZFX1NFTkQpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKGZyYW1lLCBmZW5jZVBvcnQp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
UHJveHk6OnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1v
ZGVsOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA2ZWYwMzYx
ODVhZmI0Y2RlMjhiNTY2NjZjZGJmYzU4ZTU0ODkzODMzLi40MGU5YjU0OGJjYmRiOTNjNzA5NWEx
OWI5MWZiOTUzZjM4YmVjZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0zNiw2ICszNiw3IEBA
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFj
aG1lbnQ7CiBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBN
ZXNzYWdlUmVjZWl2ZXI7CkBAIC04Myw2ICs4NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFs
IHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1
bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVu
c2lnbmVkKTsKKyAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9h
dFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICAKICAgICBXZWJQ
YWdlKiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+IG1fdmlk
ZW9FbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggOGI0
ZDhlZjViODE4Yjg0ZTI2MzIwMGU3N2U2OGMzNzk3ZmM5NmUxMy4uMzkzNjEyMjkyNmRmYzU1Nzgy
MzQ4NTRjZTgzOWNlYWQ4YThkYWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluCkBAIC0zNyw3ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIgewogICAgIERpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4o
KQogICAgIERpZENsZWFudXBGdWxsc2NyZWVuKCkKLSAgICBTZXRWaWRlb0xheWVyRnJhbWUoV2Vi
Q29yZTo6RmxvYXRSZWN0IGJvdW5kcykKKyAgICBTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2Vi
Q29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKICAgICBT
ZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKICAgICBTZWxlY3RBdWRp
b01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIFNlbGVjdExlZ2libGVNZWRpYU9wdGlv
bih1aW50NjRfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGQyM2ZhYWNjMzM2ZGNh
NDZhYTUzNWVjZmU3NzczMzBhYzVmMDg0MDMuLmFmZGI2ZDFiZmQwMjcyOGNiMzE0YWRhMWU1Nzg3
MjJhMzA4Zjc3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjcsNiArMjcsNyBAQAogCiAj
aWYgUExBVEZPUk0oSU9TKQogCisjaW1wb3J0ICJBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJXZWJD
b3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlBy
b2Nlc3MuaCIKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
VGhyZWFkUnVuLmg+CisjaW1wb3J0IDxtYWNoL21hY2hfcG9ydC5oPgogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIApAQCAtMTc1LDYgKzE3Nyw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKIAogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2lu
XTsKICAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFt2aWRl
b0xheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDApXTsKICAgICBbdmlkZW9MYXllciBz
ZXRCYWNrZ3JvdW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihXZWJDb3JlOjpDb2xvcjo6dHJhbnNwYXJl
bnQsIFdlYkNvcmU6OkNvbG9yU3BhY2VEZXZpY2VSR0IpXTsKICAgICBtX2xheWVySG9zdGluZ0Nv
bnRleHQtPnNldFJvb3RMYXllcih2aWRlb0xheWVyKTsKICAgICBzZXRWaWRlb0Z1bGxzY3JlZW5M
YXllcih2aWRlb0xheWVyKTsKQEAgLTIzMyw2ICsyMzYsMTMgQEAgdm9pZCBXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkK
IHsKICAgICBzZXRWaWRlb0xheWVyR3Jhdml0eSgoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZp
ZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMs
IElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0
LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnBvcnQoKSk7CisgICAgc2V0VmlkZW9MYXllckZyYW1l
KGJvdW5kcyk7CisgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgZmVu
Y2VQb3J0LnBvcnQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238283</attachid>
            <date>2014-09-17 19:57:47 -0700</date>
            <delta_ts>2014-09-17 20:24:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140917195744.patch</filename>
            <type>text/plain</type>
            <size>16624</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY3NmY0Y2EwZjhhZjVh
YzUyM2RlYTdkNTUxOTM0NTdhNjI0ZWQ2Ny4uZGQyNDA5ZDU2MTUxMDk5ZTg1YzYzYmExZTUwZThj
ODlkMjliOGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YW5pbWF0aW9uLgorICAgICAgICBXaGVuIHVzaW5nIGEgZmVuY2VQb3J0IHRvIHN5bmNocm9uaXpl
IGFuaW1hdGlvbnMsIGlmIHRoZSBmZW5jZSB0aW1lcyBvdXQsIHBpdm90aW5nIGFyb3VuZCB0aGUg
Y2VudGVyIHByb3ZpZGVzIGEgYmV0dGVyIGZhbGxiYWNrLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJB
VlZpZGVvTGF5ZXIgc2V0VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHZpZGVvU3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xh
eWVyIHNldEJvdW5kczpdKTogIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIGluc3RlZCBvZiBmcmFt
ZS4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOiB1c2Ugc2V0VmlkZW9TdWJsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IHNldCBi
b3VuZHMgYW5kIGFuY2hvclBvaW50IGluc3RlYWQgb2YgZnJhbWUKKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZXQgYm91
bmRzIGluc3RlYWQgb2YgZnJhbWUuCisKIDIwMTQtMDktMTcgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHBhcnNpbmcgZm9yIDpudGgtY2hpbGQo
QW4rQiBvZiBzZWxlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNmNhOTRkYTkxZDZjOTFjYTc2NjQxYjli
YjA3ODVlN2M3ZjQ4NTIwLi5mNzFjZmE0NWQ4NWMzMzE2MGEwNzAyMmJlODlhYmU1YWQwZjg5OTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDktMTcgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZnVsbHNjcmVlbiB2aWRlbyBy
b3RhdGlvbiBhbmltYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgV0tDQUNvbnRleHQgZnJvbSBMYXllckhvc3RpbmdDb250ZXh0IGFu
ZCB1c2UgYSBmZW5jZVBvcnQgdG8gc3luY2hyb25pemUgYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vz
c2VzLgorCisgICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaDogYWRk
IHNldEZlbmNlUG9ydC4gUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0OjpjcmVhdGVGb3JQb3J0KTogUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAoV2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNz
KTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4
dElEKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldENv
bG9yU3BhY2UpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpj
b2xvclNwYWNlKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6
c2V0RmVuY2VQb3J0KTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUpOiAKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogYWRkIGZlbmNlIHBv
cnQgcGFyYW1ldGVyCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKTogZGl0dG8KKwog
MjAxNC0wOS0xNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBd2F5cyBoYXZlIGEgUGFnZVRocm90dGxlciAoc29tZXRpbWVzIGhhdmUgYSBVc2Vy
QWN0aXZpdHk6OkltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZmUzNzU2
NWNmNjJiZmRjOGJiOTQ3NDI5MGJlZjcwZGM1ZTEwM2I4OC4uNDE3NmE1NDViNGJhMzY1MDNkMDA0
Y2M5MGE4YzNjNGUxMjJhNjI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAt
NDc1LDEyICs0NzUsMTQgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0
OwogLSAodm9pZClzZXRQbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKXBsYXllclZpZXdDb250cm9sbGVyOwogLSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihB
VlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgQ0FMYXllciogdmlkZW9TdWJsYXllcjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkFWVmlkZW9MYXllcgogewogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xs
ZXI+IF9hdlBsYXllckNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRy
b2xsZXI+IF9hdlBsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBf
dmlkZW9TdWJsYXllcjsKICAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5IF92aWRlb0xheWVyR3Jhdml0
eTsKIH0KIApAQCAtNTEwLDYgKzUxMiwxNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVy
ID0gcGxheWVyVmlld0NvbnRyb2xsZXI7CiB9CiAKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjoo
Q0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3Vi
bGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllcl07Cit9CisKKy0gKENB
TGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXIuZ2V0KCk7
Cit9CisKIC0gKHZvaWQpc2V0Qm91bmRzOihDR1JlY3QpYm91bmRzCiB7CiAgICAgW3N1cGVyIHNl
dEJvdW5kczpib3VuZHNdOwpAQCAtNTIwLDE0ICs1MzMsMjIgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBVSVZpZXcqIHJvb3RW
aWV3ID0gW1tfYXZQbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSB3aW5kb3ddOwogICAgIGlmICgh
cm9vdFZpZXcpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbc2VsZiBhbmltYXRp
b25Gb3JLZXk6QCJib3VuZHMiXS5kdXJhdGlvbjsKKyAgICBpZiAoYW5pbWF0aW9uRHVyYXRpb24g
PT0gMC4wKSAvLyBhIGR1cmF0aW9uIG9mIDAgZm9yIENBIG1lYW5zIDAuMjUuIFRoaXMgaXMgYSB3
YXkgdG8gYXBwcm94aW1hdGUgMC4KKyAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSAwLjAwMTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjphbmltYXRpb25EdXJhdGlv
bl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25F
YXNlSW5FYXNlT3V0XV07CiAKICAgICBGbG9hdFJlY3Qgcm9vdEJvdW5kcyA9IFtyb290VmlldyBi
b3VuZHNdOwogICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXll
ckZyYW1lKHJvb3RCb3VuZHMpOwogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdl
c3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8g
Q0dSZWN0R2V0SGVpZ2h0KGJvdW5kcyksIHJvb3RCb3VuZHMpOwogICAgIENBVHJhbnNmb3JtM0Qg
dHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNv
dXJjZUJvdW5kcy53aWR0aCgpLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVp
Z2h0KCksIDEpOwotICAgIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNm
b3JtLCBib3VuZHMub3JpZ2luLnggLSBzb3VyY2VCb3VuZHMueCgpLCBib3VuZHMub3JpZ2luLnkg
LSBzb3VyY2VCb3VuZHMueSgpLCAwKTsKLSAgICBbc2VsZiBzZXRTdWJsYXllclRyYW5zZm9ybTp0
cmFuc2Zvcm1dOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShD
R1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07CiB9CiAKIC0gKHZvaWQpc2V0VmlkZW9MYXllckdyYXZpdHk6KEFWVmlk
ZW9MYXllckdyYXZpdHkpdmlkZW9MYXllckdyYXZpdHkKQEAgLTc1OSw3ICs3ODAsNyBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICAKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFp
bmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAgICAgICAgW21fdmlkZW9MYXll
ckNvbnRhaW5lciBzZXRIaWRkZW46cGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tB
Y3RpdmVdOwotICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIGFkZFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9T
dWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAgQ0dTaXplIHZp
ZGVvU2l6ZSA9IHBsYXllckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsKICAgICAgICAg
Q0dSZWN0IHZpZGVvUmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgdmlkZW9TaXplLndpZHRoLCB2aWRl
b1NpemUuaGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCA0
ZDg4YzlhZTM0YjEyOGE4ZDQ3ZDQyMTg0NGJjNTI4Y2I2NTk4YWFkLi44YzQ2MTdhNDE3MDE5NjBj
NzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xNTIsNyArMTUyLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcioKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSB2aWRlb0xheWVy
OwotICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEZyYW1lOm1fdmlkZW9GcmFtZV07Cisg
ICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41
LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6bV92aWRlb0Zy
YW1lXTsKICAgICAKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKQEAgLTI3OCw3
ICsyNzksNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpyZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAgIG1fdmlkZW9G
cmFtZSA9IHJlY3Q7Ci0gICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0RnJhbWU6Q0dSZWN0
KHJlY3QpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6Q0dSZWN0KHJl
Y3QpXTsKICAgICBtX3ZpZGVvRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oCmluZGV4IGJiOTEwNGU0NzYwMmRjNWQ2YWQ2MDRlY2U5MDgzMTJlNzMyN2UyMDYuLmU3
YTM0ZGZhM2ZiZGE0ZGFhMDJhNWU2MjlmYzdjMGY0NTM4NjdlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaApAQCAtMzIsNyArMzIs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBDQUxheWVyOwot
dHlwZWRlZiBzdHJ1Y3QgX19XS0NBQ29udGV4dFJlZiAqV0tDQUNvbnRleHRSZWY7CitPQkpDX0NM
QVNTIENBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU3LDEwICs1NywxMiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsKICAg
ICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0
RmVuY2VQb3J0KG1hY2hfcG9ydF90KTsKIAogcHJpdmF0ZToKICAgICBMYXllckhvc3RpbmdNb2Rl
IG1fbGF5ZXJIb3N0aW5nTW9kZTsKLSAgICBSZXRhaW5QdHI8V0tDQUNvbnRleHRSZWY+IG1fY29u
dGV4dDsKKyAgICBSZXRhaW5QdHI8Q0FDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9M
YXllckhvc3RpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVy
SG9zdGluZ0NvbnRleHQubW0KaW5kZXggMTNmNzQwOWRkMGM0MTFkN2NlYmE1NDM2ZDQ2NTY5Yzc2
YTNiODg0Ni4uMWQ1NDk4Yjc4Njk2MzU3Mjc3NGFkOTY3OWE2YmQ2Y2RjMzBiMGQ2OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
QEAgLTI4LDE2ICsyOCwxOCBAQAogCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
IAotI2lmIF9faGFzX2luY2x1ZGUoPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZVByaXZhdGUuaD4pCi0j
aW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmVQcml2YXRlLmg+CisjaWYgX19oYXNfaW5jbHVk
ZSg8UXVhcnR6Q29yZS9DQUNvbnRleHQuaD4pCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4
dC5oPgogI2Vsc2UKLUBpbnRlcmZhY2UgQ0FDb250ZXh0IDogTlNPYmplY3QKLUBlbmQKLSNlbmRp
ZgotCi1AaW50ZXJmYWNlIENBQ29udGV4dCAoRGV0YWlscykKK0BpbnRlcmZhY2UgQ0FDb250ZXh0
IDogTlNPYmplY3QgKERldGFpbHMpCistICh2b2lkKWludmFsaWRhdGU7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSB1aW50MzJfdCBjb250ZXh0SWQ7CitAcHJvcGVydHkgKHN0cm9uZykgQ0FMYXllciAq
bGF5ZXI7CitAcHJvcGVydHkgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2U7CistICh2b2lkKXNl
dEZlbmNlUG9ydDoobWFjaF9wb3J0X3QpcG9ydDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNvbnRl
eHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKIEBlbmQKKyNlbmRpZgogCiBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBrQ0FDb250ZXh0SWdub3Jlc0hpdFRlc3Q7CiAKQEAgLTQ4LDcg
KzUwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IExheWVySG9zdGlu
Z0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQobWFjaF9wb3IKICAgICBhdXRvIGxheWVySG9zdGluZ0Nv
bnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPExheWVySG9zdGluZ0NvbnRleHQ+KCk7CiAKICAgICBs
YXllckhvc3RpbmdDb250ZXh0LT5tX2xheWVySG9zdGluZ01vZGUgPSBMYXllckhvc3RpbmdNb2Rl
OjpJblByb2Nlc3M7Ci0gICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gV0tDQUNv
bnRleHRNYWtlUmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CisgICAgbGF5ZXJIb3N0
aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gKENBQ29udGV4dCopV0tDQUNvbnRleHRNYWtlUmVtb3Rl
V2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CiAKICAgICByZXR1cm4gbGF5ZXJIb3N0aW5nQ29u
dGV4dDsKIH0KQEAgLTYyLDExICs2NCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5n
Q29udGV4dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aQogI2lm
IFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgYSB2ZXJ5IGxhcmdlIGRpc3BsYXkgSUQgdG8gZW5z
dXJlIHRoYXQgdGhlIGNvbnRleHQgaXMgbmV2ZXIgcHV0IG9uLXNjcmVlbiAKICAgICAvLyB3aXRo
b3V0IGJlaW5nIGV4cGxpY2l0bHkgcGFyZW50ZWQuIFNlZSA8cmRhcjovL3Byb2JsZW0vMTYwODky
Njc+IGZvciBkZXRhaWxzLgotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IChX
S0NBQ29udGV4dFJlZilbQ0FDb250ZXh0IHJlbW90ZUNvbnRleHRXaXRoT3B0aW9uczpAeworICAg
IGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFtDQUNvbnRleHQgcmVtb3RlQ29udGV4
dFdpdGhPcHRpb25zOkB7CiAgICAgICAgIGtDQUNvbnRleHRJZ25vcmVzSGl0VGVzdCA6IEBZRVMs
CiAgICAgICAgIGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAgfV07CiAjZWxzZQotICAgIGxh
eWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFdLQ0FDb250ZXh0TWFrZVJlbW90ZUZvcldp
bmRvd1NlcnZlcigpOworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IChDQUNv
bnRleHQqKVdLQ0FDb250ZXh0TWFrZVJlbW90ZUZvcldpbmRvd1NlcnZlcigpOwogI2VuZGlmCiAg
ICAgCiAgICAgcmV0dXJuIGxheWVySG9zdGluZ0NvbnRleHQ7CkBAIC04MywzMiArODUsMzggQEAg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6fkxheWVySG9zdGluZ0NvbnRleHQoKQogCiB2b2lkIExheWVy
SG9zdGluZ0NvbnRleHQ6OnNldFJvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIpCiB7Ci0gICAg
V0tDQUNvbnRleHRTZXRMYXllcihtX2NvbnRleHQuZ2V0KCksIHJvb3RMYXllcik7CisgICAgcmV0
dXJuIFttX2NvbnRleHQgc2V0TGF5ZXI6cm9vdExheWVyXTsKIH0KIAogQ0FMYXllciAqTGF5ZXJI
b3N0aW5nQ29udGV4dDo6cm9vdExheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tDQUNvbnRl
eHRHZXRMYXllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250ZXh0IGxheWVy
XTsKIH0KIAogdWludDMyX3QgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4dElEKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb250ZXh0SWQobV9jb250ZXh0LmdldCgpKTsK
KyAgICByZXR1cm4gW21fY29udGV4dCBjb250ZXh0SWRdOworCiB9CiAKIHZvaWQgTGF5ZXJIb3N0
aW5nQ29udGV4dDo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgV0tDQUNvbnRleHRJbnZhbGlkYXRlKG1f
Y29udGV4dC5nZXQoKSk7CisgICAgcmV0dXJuIFttX2NvbnRleHQgaW52YWxpZGF0ZV07CiB9CiAK
IHZvaWQgTGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JTcGFjZShDR0NvbG9yU3BhY2VSZWYg
Y29sb3JTcGFjZSkKIHsKLSAgICBXS0NBQ29udGV4dFNldENvbG9yU3BhY2UobV9jb250ZXh0Lmdl
dCgpLCBjb2xvclNwYWNlKTsKKyAgICByZXR1cm4gW21fY29udGV4dCBzZXRDb2xvclNwYWNlOmNv
bG9yU3BhY2VdOwogfQogCiBDR0NvbG9yU3BhY2VSZWYgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29s
b3JTcGFjZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdLQ0FDb250ZXh0R2V0Q29sb3JTcGFjZSht
X2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250ZXh0IGNvbG9yU3BhY2VdOworfQor
Cit2b2lkIExheWVySG9zdGluZ0NvbnRleHQ6OnNldEZlbmNlUG9ydChtYWNoX3BvcnRfdCBmZW5j
ZVBvcnQpCit7CisgICAgW21fY29udGV4dCBzZXRGZW5jZVBvcnQ6ZmVuY2VQb3J0XTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDU3
ZGI5MjAxZjVjNzJkYmE1OGJhNmMzNGU3Yjg3OTAxNDBhNGM2MGQuLjUyYmNkY2E0MjU2NWMxYzU1
Mzc3NGMxYzg3MGIzMGZjZGVlY2NiMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBA
IC0zNCw4ICszNCw5IEBACiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMu
aCIKICNpbmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbmNsdWRlIDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKyNpbmNsdWRlIDxVSUtpdC9VSVdpbmRvd19Qcml2YXRlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CisjaW5jbHVkZSA8V2ViS2l0U3lzdGVt
SW50ZXJmYWNlLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xODIsNyArMTgz
LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVuZFNjYW5uaW5nKCkK
IAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJGcmFt
ZShXZWJDb3JlOjpGbG9hdFJlY3QgZnJhbWUpCiB7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xheWVyRnJhbWUoZnJhbWUpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KFtVSVdpbmRv
dyBfc3luY2hyb25pemVEcmF3aW5nQWNyb3NzUHJvY2Vzc2VzXSwgTUFDSF9NU0dfVFlQRV9NT1ZF
X1NFTkQpOworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6U2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKGZyYW1lLCBmZW5jZVBvcnQpLCBtX3BhZ2Ut
PnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNl
dFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRl
b0dyYXZpdHkgZ3Jhdml0eSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAppbmRleCA2ZWYwMzYxODVhZmI0Y2Rl
MjhiNTY2NjZjZGJmYzU4ZTU0ODkzODMzLi40MGU5YjU0OGJjYmRiOTNjNzA5NWExOWI5MWZiOTUz
ZjM4YmVjZmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7CiBj
bGFzcyBDb25uZWN0aW9uOwogY2xhc3MgTWVzc2FnZURlY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVj
ZWl2ZXI7CkBAIC04Myw2ICs4NCw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlk
RXhpdEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4o
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsK
KyAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91
bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KTsKICAgICAKICAgICBXZWJQYWdlKiBtX3Bh
Z2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQ+IG1fdmlkZW9FbGVtZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggOGI0ZDhlZjViODE4
Yjg0ZTI2MzIwMGU3N2U2OGMzNzk3ZmM5NmUxMy4uMzkzNjEyMjkyNmRmYzU1NzgyMzQ4NTRjZTgz
OWNlYWQ4YThkYWE2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBA
IC0zNyw3ICszNyw3IEBAIG1lc3NhZ2VzIC0+IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewog
ICAgIERpZEV4aXRGdWxsc2NyZWVuKCkKICAgICBEaWRFbnRlckZ1bGxzY3JlZW4oKQogICAgIERp
ZENsZWFudXBGdWxsc2NyZWVuKCkKLSAgICBTZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6Rmxv
YXRSZWN0IGJvdW5kcykKKyAgICBTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6Rmxv
YXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkKICAgICBTZXRWaWRlb0xh
eWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKICAgICBTZWxlY3RBdWRpb01lZGlhT3B0
aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIFNlbGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRf
dCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCmluZGV4IGQyM2ZhYWNjMzM2ZGNhNDZhYTUzNWVj
ZmU3NzczMzBhYzVmMDg0MDMuLmFmZGI2ZDFiZmQwMjcyOGNiMzE0YWRhMWU1Nzg3MjJhMzA4Zjc3
M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgUExBVEZP
Uk0oSU9TKQogCisjaW1wb3J0ICJBdHRhY2htZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIK
QEAgLTQ1LDYgKzQ2LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQg
PFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVu
Lmg+CisjaW1wb3J0IDxtYWNoL21hY2hfcG9ydC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtMTc1LDYgKzE3Nyw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
ZGlkU2V0dXBGdWxsc2NyZWVuKCkKIAogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICBb
Q0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworICAgIFt2aWRlb0xheWVyIHNl
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDApXTsKICAgICBbdmlkZW9MYXllciBzZXRCYWNrZ3Jv
dW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihXZWJDb3JlOjpDb2xvcjo6dHJhbnNwYXJlbnQsIFdlYkNv
cmU6OkNvbG9yU3BhY2VEZXZpY2VSR0IpXTsKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNl
dFJvb3RMYXllcih2aWRlb0xheWVyKTsKICAgICBzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcih2aWRl
b0xheWVyKTsKQEAgLTIzMyw2ICsyMzYsMTMgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0eSkKIHsKICAgICBz
ZXRWaWRlb0xheWVyR3Jhdml0eSgoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0
eSlncmF2aXR5KTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0
VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0
YWNobWVudCBmZW5jZVBvcnQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5j
ZVBvcnQoZmVuY2VQb3J0LnBvcnQoKSk7CisgICAgc2V0VmlkZW9MYXllckZyYW1lKGJvdW5kcyk7
CisgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwgZmVuY2VQb3J0LnBv
cnQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238284</attachid>
            <date>2014-09-17 20:24:27 -0700</date>
            <delta_ts>2014-09-17 21:17:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140917202425.patch</filename>
            <type>text/plain</type>
            <size>25611</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNjk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjY3NmY0Y2EwZjhhZjVh
YzUyM2RlYTdkNTUxOTM0NTdhNjI0ZWQ2Ny4uZGQyNDA5ZDU2MTUxMDk5ZTg1YzYzYmExZTUwZThj
ODlkMjliOGRiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YW5pbWF0aW9uLgorICAgICAgICBXaGVuIHVzaW5nIGEgZmVuY2VQb3J0IHRvIHN5bmNocm9uaXpl
IGFuaW1hdGlvbnMsIGlmIHRoZSBmZW5jZSB0aW1lcyBvdXQsIHBpdm90aW5nIGFyb3VuZCB0aGUg
Y2VudGVyIHByb3ZpZGVzIGEgYmV0dGVyIGZhbGxiYWNrLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJB
VlZpZGVvTGF5ZXIgc2V0VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHZpZGVvU3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xh
eWVyIHNldEJvdW5kczpdKTogIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIGluc3RlZCBvZiBmcmFt
ZS4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOiB1c2Ugc2V0VmlkZW9TdWJsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IHNldCBi
b3VuZHMgYW5kIGFuY2hvclBvaW50IGluc3RlYWQgb2YgZnJhbWUKKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZXQgYm91
bmRzIGluc3RlYWQgb2YgZnJhbWUuCisKIDIwMTQtMDktMTcgIEJlbmphbWluIFBvdWxhaW4gIDxi
cG91bGFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHBhcnNpbmcgZm9yIDpudGgtY2hpbGQo
QW4rQiBvZiBzZWxlY3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAwNmNhOTRkYTkxZDZjOTFjYTc2NjQxYjli
YjA3ODVlN2M3ZjQ4NTIwLi5mNzFjZmE0NWQ4NWMzMzE2MGEwNzAyMmJlODlhYmU1YWQwZjg5OTM4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTQtMDktMTcgIEplcmVteSBKb25lcyAg
PGplcmVteWpAYXBwbGUuY29tPgorCisgICAgICAgIEltcHJvdmUgZnVsbHNjcmVlbiB2aWRlbyBy
b3RhdGlvbiBhbmltYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzY4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmUgV0tDQUNvbnRleHQgZnJvbSBMYXllckhvc3RpbmdDb250ZXh0IGFu
ZCB1c2UgYSBmZW5jZVBvcnQgdG8gc3luY2hyb25pemUgYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vz
c2VzLgorCisgICAgICAgICogUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaDogYWRk
IHNldEZlbmNlUG9ydC4gUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAqIFBsYXRmb3JtL21h
Yy9MYXllckhvc3RpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdD
b250ZXh0OjpjcmVhdGVGb3JQb3J0KTogUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAoV2Vi
S2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNz
KTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExh
eWVyKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4
dElEKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6aW52YWxp
ZGF0ZSk6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldENv
bG9yU3BhY2UpOiBkaXR0bworICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpj
b2xvclNwYWNlKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6
c2V0RmVuY2VQb3J0KTogYWRkZWQKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUpOiAKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogYWRkIGZlbmNlIHBv
cnQgcGFyYW1ldGVyCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKTogZGl0dG8KKwog
MjAxNC0wOS0xNyAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJhY2xvdWdoQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBd2F5cyBoYXZlIGEgUGFnZVRocm90dGxlciAoc29tZXRpbWVzIGhhdmUgYSBVc2Vy
QWN0aXZpdHk6OkltcGwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggOGFlNmJhMmNjMTk5MzczNjBhNGZlOTA1YzhmZmFmMTAxN2Jk
NGQ1Yy4uMTVjNjgzMDY2YTFiZmJjMjAyOThlNjczODVmNzk0YTk1OTQ0MzEzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTM2
MSw2ICsxMzYxLDggQEAKIAkJM0ZCQzRBRUMxODk4ODEwRTAwNDZFRTM4IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZCQzRBRUIxODk4ODEwRTAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTNGQkM0QUYzMTg5ODgxNTYwMDQ2RUUzOCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDNGQkM0QUYxMTg5ODgxNTYwMDQ2RUUzOCAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VB
VktpdC5tbSAqLzsgfTsKIAkJM0ZCQzRBRjQxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVs
bHNjcmVlbkludGVyZmFjZUFWS2l0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAzRkJDNEFGMjE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2Ny
ZWVuSW50ZXJmYWNlQVZLaXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQkzRkJEQzI0OTE5Q0E4MzRCMDBFQkREREUgLyogQ0FDb250ZXh0U1BJLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzRkJEQzI0ODE5
Q0E4MzRCMDBFQkREREUgLyogQ0FDb250ZXh0U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJM0ZCREMyNEIxOUNBODUxNDAwRUJERERFIC8qIFVJ
V2luZG93U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzRkJEQzI0QTE5Q0E4NTE0MDBFQkREREUgLyogVUlXaW5kb3dTUEkuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkzRkZGRjlBODE1OUQ5QTU1MDAy
MEJCRDUgLyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGRkZGOUE2MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJL
aXRDU1NWaWV3cG9ydFJ1bGUuY3BwICovOyB9OwogCQkzRkZGRjlBOTE1OUQ5QTU1MDAyMEJCRDUg
LyogV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzRkZGRjlBNzE1OUQ5QTU1MDAyMEJCRDUgLyogV2ViS2l0Q1NTVmll
d3BvcnRSdWxlLmggKi87IH07CiAJCTNGRkZGOUFEMTU5RDlCMDYwMDIwQkJENSAvKiBWaWV3cG9y
dFN0eWxlUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gM0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZl
ci5jcHAgKi87IH07CkBAIC04NDAwLDYgKzg0MDIsOCBAQAogCQkzRkJDNEFFQjE4OTg4MTBFMDA0
NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOyBwYXRoID0gaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkzRkJDNEFGMTE4OTg4MTU2MDA0NkVFMzggLyogV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbTsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5JbnRlcmZhY2VBVktpdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZC
QzRBRjIxODk4ODE1NjAwNDZFRTM4IC8qIFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbklu
dGVyZmFjZUFWS2l0Lmg7IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZL
aXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0ZCREMyNDgxOUNBODM0QjAwRUJE
RERFIC8qIENBQ29udGV4dFNQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
QUNvbnRleHRTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJM0ZCREMyNEExOUNB
ODUxNDAwRUJERERFIC8qIFVJV2luZG93U1BJLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFVJV2luZG93U1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGRkZG
OUE2MTU5RDlBNTUwMDIwQkJENSAvKiBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0Q1NTVmlld3BvcnRSdWxlLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0ZGRkY5QTcxNTlEOUE1NTAwMjBCQkQ1IC8q
IFdlYktpdENTU1ZpZXdwb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJLaXRDU1NWaWV3cG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
M0ZGRkY5QUIxNTlEOUIwNjAwMjBCQkQ1IC8qIFZpZXdwb3J0U3R5bGVSZXNvbHZlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWaWV3cG9ydFN0eWxlUmVzb2x2ZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE2MzksNiArMjE2NDMsNyBAQAog
CQlDRTRGNkQzMTE5Qjc3NEY2MDBCRkM2NEEgLyogY2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTNGQkRDMjQ4MTlDQTgzNEIwMEVCRERERSAvKiBDQUNv
bnRleHRTUEkuaCAqLywKIAkJCQlDRTRGNkQzMjE5Qjc3NEY2MDBCRkM2NEEgLyogQ0FMYXllclNQ
SS5oICovLAogCQkJCUNFNEY2RDMzMTlCNzc0RjYwMEJGQzY0QSAvKiBDQVRpbGVkTGF5ZXJTUEku
aCAqLywKIAkJCSk7CkBAIC0yMTY3Niw2ICsyMTY4MSw3IEBACiAJCQkJQ0U0RjZENTMxOUI3NzU3
QjAwQkZDNjRBIC8qIE1QQVZSb3V0aW5nQ29udHJvbGxlclNQSS5oICovLAogCQkJCUNFNEY2RDU1
MTlCNzc1N0IwMEJGQzY0QSAvKiBRTFByZXZpZXdDb252ZXJ0ZXJTUEkuaCAqLywKIAkJCQlDRTRG
NkQ1NjE5Qjc3NTdCMDBCRkM2NEEgLyogUXVpY2tMb29rU1BJLmggKi8sCisJCQkJM0ZCREMyNEEx
OUNBODUxNDAwRUJERERFIC8qIFVJV2luZG93U1BJLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlv
czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNDYwNSw2ICsyNDYxMSw3IEBACiAJ
CQkJNTEyM0FGMTkxODkwQTRDQTAwMzFDREM5IC8qIElEQktleVJhbmdlRGF0YS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNTFENzE5RTQxODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MUFCQjVCOTE4NkQwRUQxMDA4MzkxQTEgLyogSURCT2JqZWN0
U3RvcmVNZXRhZGF0YS5oIGluIEhlYWRlcnMgKi8sCisJCQkJM0ZCREMyNDkxOUNBODM0QjAwRUJE
RERFIC8qIENBQ29udGV4dFNQSS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFENzE5RTcxODExMDZF
MDAwMTZEQzUxIC8qIElEQk9wZW5EQlJlcXVlc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkVB
OUJFMTgyMDI4NTcwMDFEMDFFMCAvKiBJREJPcGVyYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxQjA3QTQ0MTgyMzI0OEIwMEFBOEQxQSAvKiBJREJQZW5kaW5nRGVsZXRlQ2FsbC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0yNjIyMSw2ICsyNjIyOCw3IEBACiAJCQkJQjIyMjc5RTMwRDAwQkYyMjAw
NzFCNzgyIC8qIFNWR0ZFRnVuY0JFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlF
NjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVGdW5jR0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUIyMjI3OUU5MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNSRWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJM0ZCREMyNEIxOUNBODUxNDAwRUJERERFIC8qIFVJV2luZG93U1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlFQzBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVHYXVz
c2lhbkJsdXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjU1OTk4NTBEMDBEOEJBMDBC
QjgyNUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5RUYwRDAwQkYy
MjAwNzFCNzgyIC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBmZTM3NTY1Y2Y2MmJmZGM4YmI5NDc0MjkwYmVmNzBk
YzVlMTAzYjg4Li40MTc2YTU0NWI0YmEzNjUwM2QwMDRjYzkwYThjM2M0ZTEyMmE2MjkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50
ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC00NzUsMTIgKzQ3NSwxNCBAQCBTT0ZUX0xJ
TktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogQHByb3Bl
cnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb1JlY3Q7CiAtICh2b2lkKXNldFBsYXllclZpZXdD
b250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICopcGxheWVyVmlld0NvbnRyb2xsZXI7
CiAtICh2b2lkKXNldFBsYXllckNvbnRyb2xsZXI6KEFWUGxheWVyQ29udHJvbGxlciAqKXBsYXll
ckNvbnRyb2xsZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluKSBDQUxheWVyKiB2aWRl
b1N1YmxheWVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViQVZWaWRlb0xheWVyCiB7CiAg
ICAgUmV0YWluUHRyPFdlYkFWUGxheWVyQ29udHJvbGxlcj4gX2F2UGxheWVyQ29udHJvbGxlcjsK
ICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxlcj4gX2F2UGxheWVyVmlld0NvbnRy
b2xsZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF92aWRlb1N1YmxheWVyOwogICAgIEFWVmlk
ZW9MYXllckdyYXZpdHkgX3ZpZGVvTGF5ZXJHcmF2aXR5OwogfQogCkBAIC01MTAsNiArNTEyLDE3
IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtDTVRpbWVJbmRlZmluaXRlLCBDTVRp
bWUpCiAgICAgX2F2UGxheWVyVmlld0NvbnRyb2xsZXIgPSBwbGF5ZXJWaWV3Q29udHJvbGxlcjsK
IH0KIAorLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxheWVyICopdmlkZW9TdWJsYXllcgor
eworICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXllcjsKKyAgICBbc2VsZiBhZGRTdWJs
YXllcjp2aWRlb1N1YmxheWVyXTsKK30KKworLSAoQ0FMYXllciopdmlkZW9TdWJsYXllcgorewor
ICAgIHJldHVybiBfdmlkZW9TdWJsYXllci5nZXQoKTsKK30KKwogLSAodm9pZClzZXRCb3VuZHM6
KENHUmVjdClib3VuZHMKIHsKICAgICBbc3VwZXIgc2V0Qm91bmRzOmJvdW5kc107CkBAIC01MjAs
MTQgKzUzMywyMiBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZp
bml0ZSwgQ01UaW1lKQogICAgIFVJVmlldyogcm9vdFZpZXcgPSBbW19hdlBsYXllclZpZXdDb250
cm9sbGVyIHZpZXddIHdpbmRvd107CiAgICAgaWYgKCFyb290VmlldykKICAgICAgICAgcmV0dXJu
OworICAgIAorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKKyAgICBOU1RpbWVJbnRlcnZhbCBh
bmltYXRpb25EdXJhdGlvbiA9IFtzZWxmIGFuaW1hdGlvbkZvcktleTpAImJvdW5kcyJdLmR1cmF0
aW9uOworICAgIGlmIChhbmltYXRpb25EdXJhdGlvbiA9PSAwLjApIC8vIGEgZHVyYXRpb24gb2Yg
MCBmb3IgQ0EgbWVhbnMgMC4yNS4gVGhpcyBpcyBhIHdheSB0byBhcHByb3hpbWF0ZSAwLgorICAg
ICAgICBhbmltYXRpb25EdXJhdGlvbiA9IDAuMDAxOworICAgIFtDQVRyYW5zYWN0aW9uIHNldEFu
aW1hdGlvbkR1cmF0aW9uOmFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBz
ZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1bmN0aW9uIGZ1bmN0aW9u
V2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVhc2VJbkVhc2VPdXRdXTsKIAogICAgIEZs
b2F0UmVjdCByb290Qm91bmRzID0gW3Jvb3RWaWV3IGJvdW5kc107CiAgICAgW19hdlBsYXllckNv
bnRyb2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xheWVyRnJhbWUocm9vdEJvdW5kcyk7CiAKICAg
ICBGbG9hdFJlY3Qgc291cmNlQm91bmRzID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNp
ZGVSZWN0KENHUmVjdEdldFdpZHRoKGJvdW5kcykgLyBDR1JlY3RHZXRIZWlnaHQoYm91bmRzKSwg
cm9vdEJvdW5kcyk7CiAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0gPSBDQVRyYW5zZm9ybTNE
TWFrZVNjYWxlKGJvdW5kcy5zaXplLndpZHRoIC8gc291cmNlQm91bmRzLndpZHRoKCksIGJvdW5k
cy5zaXplLmhlaWdodCAvIHNvdXJjZUJvdW5kcy5oZWlnaHQoKSwgMSk7Ci0gICAgdHJhbnNmb3Jt
ID0gQ0FUcmFuc2Zvcm0zRFRyYW5zbGF0ZSh0cmFuc2Zvcm0sIGJvdW5kcy5vcmlnaW4ueCAtIHNv
dXJjZUJvdW5kcy54KCksIGJvdW5kcy5vcmlnaW4ueSAtIHNvdXJjZUJvdW5kcy55KCksIDApOwot
ICAgIFtzZWxmIHNldFN1YmxheWVyVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW192aWRlb1N1
YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1pZFgoYm91bmRzKSwgQ0dS
ZWN0R2V0TWlkWShib3VuZHMpKV07CisgICAgW192aWRlb1N1YmxheWVyIHNldFN1YmxheWVyVHJh
bnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIAogLSAo
dm9pZClzZXRWaWRlb0xheWVyR3Jhdml0eTooQVZWaWRlb0xheWVyR3Jhdml0eSl2aWRlb0xheWVy
R3Jhdml0eQpAQCAtNzU5LDcgKzc4MCw3IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJm
YWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2aWRlb0xheWVyCiAgICAg
ICAgIAogICAgICAgICBtX3ZpZGVvTGF5ZXJDb250YWluZXIgPSBbV2ViQVZWaWRlb0xheWVyIHZp
ZGVvTGF5ZXJdOwogICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIHNldEhpZGRlbjpwbGF5
ZXJDb250cm9sbGVyKCkuZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZV07Ci0gICAgICAgIFttX3ZpZGVv
TGF5ZXJDb250YWluZXIgYWRkU3VibGF5ZXI6bV92aWRlb0xheWVyLmdldCgpXTsKKyAgICAgICAg
W21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRWaWRlb1N1YmxheWVyOm1fdmlkZW9MYXllci5nZXQo
KV07CiAgICAgICAgIAogICAgICAgICBDR1NpemUgdmlkZW9TaXplID0gcGxheWVyQ29udHJvbGxl
cigpLmNvbnRlbnREaW1lbnNpb25zOwogICAgICAgICBDR1JlY3QgdmlkZW9SZWN0ID0gQ0dSZWN0
TWFrZSgwLCAwLCB2aWRlb1NpemUud2lkdGgsIHZpZGVvU2l6ZS5oZWlnaHQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlk
ZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4IDRkODhjOWFlMzRiMTI4YThkNDdkNDIxODQ0
YmM1MjhjYjY1OThhYWQuLjhjNDYxN2E0MTcwMTk2MGM3OTMyYmNlOTg1OTRlMzQ2NTg0MTkwMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAgLTE1Miw3ICsxNTIsOCBA
QCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxz
Y3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKgogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgbV92
aWRlb0Z1bGxzY3JlZW5MYXllciA9IHZpZGVvTGF5ZXI7Ci0gICAgW21fdmlkZW9GdWxsc2NyZWVu
TGF5ZXIgc2V0RnJhbWU6bV92aWRlb0ZyYW1lXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXll
ciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSldOworICAgIFttX3ZpZGVvRnVs
bHNjcmVlbkxheWVyIHNldEJvdW5kczptX3ZpZGVvRnJhbWVdOwogICAgIAogICAgIF9fYmxvY2sg
UmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50PiBwcm90ZWN0KHRoaXMp
OwogICAgIFdlYlRocmVhZFJ1biheewpAQCAtMjc4LDcgKzI3OSw3IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnJlcXVlc3RFeGl0RnVsbHNjcmVlbigpCiB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUo
RmxvYXRSZWN0IHJlY3QpCiB7CiAgICAgbV92aWRlb0ZyYW1lID0gcmVjdDsKLSAgICBbbV92aWRl
b0Z1bGxzY3JlZW5MYXllciBzZXRGcmFtZTpDR1JlY3QocmVjdCldOworICAgIFttX3ZpZGVvRnVs
bHNjcmVlbkxheWVyIHNldEJvdW5kczpDR1JlY3QocmVjdCldOwogICAgIG1fdmlkZW9FbGVtZW50
LT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NhL0NBQ29udGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NhL0NBQ29udGV4dFNQSS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk1OThhMjExYTNmNTE0
OTcwYzEzZDk1ZDFjMWVkZmU1YmQyMDVkYzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9zcGkvY2EvQ0FDb250ZXh0U1BJLmgKQEAgLTAsMCArMSwzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZiBfX2hhc19pbmNs
dWRlKDxRdWFydHpDb3JlL0NBQ29udGV4dC5oPikKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FDb250
ZXh0Lmg+CisjZWxzZQorQGludGVyZmFjZSBDQUNvbnRleHQgOiBOU09iamVjdCAoRGV0YWlscykK
Ky0gKHZvaWQpaW52YWxpZGF0ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVpbnQzMl90IGNvbnRl
eHRJZDsKK0Bwcm9wZXJ0eSAoc3Ryb25nKSBDQUxheWVyICpsYXllcjsKK0Bwcm9wZXJ0eSBDR0Nv
bG9yU3BhY2VSZWYgY29sb3JTcGFjZTsKKy0gKHZvaWQpc2V0RmVuY2VQb3J0OihtYWNoX3BvcnRf
dClwb3J0OworKyAoQ0FDb250ZXh0ICopcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zOihOU0RpY3Rp
b25hcnkgKilkaWN0OworQGVuZAorI2VuZGlmCisKK2V4dGVybiBOU1N0cmluZyAqIGNvbnN0IGtD
QUNvbnRleHRJZ25vcmVzSGl0VGVzdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9pb3MvVUlXaW5kb3dTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9p
b3MvVUlXaW5kb3dTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjY5N2M4M2VhY2FlMDEzMGNmMmVkNzRkNjM2
N2Y0YzljZGVhM2RmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
c3BpL2lvcy9VSVdpbmRvd1NQSS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxVSUtpdC9VSVdpbmRvdy5oPgor
CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpbXBvcnQgPFVJS2l0L1VJV2luZG93X1By
aXZhdGUuaD4KKyNlbHNlCitAaW50ZXJmYWNlIFVJV2luZG93IChEZXRhaWxzKQorKyAobWFjaF9w
b3J0X3QpX3N5bmNocm9uaXplRHJhd2luZ0Fjcm9zc1Byb2Nlc3NlczsKK0BlbmQKKyNlbmRpZgor
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQu
aAppbmRleCBiYjkxMDRlNDc2MDJkYzVkNmFkNjA0ZWNlOTA4MzEyZTczMjdlMjA2Li5lN2EzNGRm
YTNmYmRhNGRhYTAyYTVlNjI5ZmM3YzBmNDUzODY3ZWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKQEAgLTMyLDcgKzMyLDcgQEAK
ICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKLXR5cGVk
ZWYgc3RydWN0IF9fV0tDQUNvbnRleHRSZWYgKldLQ0FDb250ZXh0UmVmOworT0JKQ19DTEFTUyBD
QUNvbnRleHQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCkBAIC01NywxMCArNTcsMTIgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBzZXRDb2xvclNwYWNlKENHQ29sb3JTcGFjZVJlZik7CiAgICAgQ0dD
b2xvclNwYWNlUmVmIGNvbG9yU3BhY2UoKSBjb25zdDsKKyAgICAKKyAgICB2b2lkIHNldEZlbmNl
UG9ydChtYWNoX3BvcnRfdCk7CiAKIHByaXZhdGU6CiAgICAgTGF5ZXJIb3N0aW5nTW9kZSBtX2xh
eWVySG9zdGluZ01vZGU7Ci0gICAgUmV0YWluUHRyPFdLQ0FDb250ZXh0UmVmPiBtX2NvbnRleHQ7
CisgICAgUmV0YWluUHRyPENBQ29udGV4dD4gbV9jb250ZXh0OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJI
b3N0aW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0Lm1tCmluZGV4IDEzZjc0MDlkZDBjNDExZDdjZWJhNTQzNmQ0NjU2OWM3NmEzYjg4
NDYuLmFjNjBiMDBiNzkzMDA5NjczYzdhNDJlY2I2YzM0N2NlNTcyZjQ4ZmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lm1tCkBAIC0y
NiwyMSArMjYsOSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJMYXllckhvc3RpbmdD
b250ZXh0LmgiCiAKKyNpbXBvcnQgPFdlYkNvcmUvQ0FDb250ZXh0U1BJLmg+CiAjaW1wb3J0IDxX
ZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAotI2lmIF9faGFzX2luY2x1ZGUoPFF1YXJ0ekNvcmUv
UXVhcnR6Q29yZVByaXZhdGUuaD4pCi0jaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmVQcml2
YXRlLmg+Ci0jZWxzZQotQGludGVyZmFjZSBDQUNvbnRleHQgOiBOU09iamVjdAotQGVuZAotI2Vu
ZGlmCi0KLUBpbnRlcmZhY2UgQ0FDb250ZXh0IChEZXRhaWxzKQotKyAoQ0FDb250ZXh0ICopcmVt
b3RlQ29udGV4dFdpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkgKilkaWN0OwotQGVuZAotCi1leHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBrQ0FDb250ZXh0SWdub3Jlc0hpdFRlc3Q7Ci0KIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gTGF5ZXJI
b3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChtYWNoX3BvcnRfdCBzZXJ2ZXJQb3J0KQpAQCAt
NDgsNyArMzYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gTGF5ZXJI
b3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChtYWNoX3BvcgogICAgIGF1dG8gbGF5ZXJIb3N0
aW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5ZXJIb3N0aW5nQ29udGV4dD4oKTsKIAog
ICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fbGF5ZXJIb3N0aW5nTW9kZSA9IExheWVySG9zdGlu
Z01vZGU6OkluUHJvY2VzczsKLSAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSBX
S0NBQ29udGV4dE1ha2VSZW1vdGVXaXRoU2VydmVyUG9ydChzZXJ2ZXJQb3J0KTsKKyAgICBsYXll
ckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSAoQ0FDb250ZXh0ICopV0tDQUNvbnRleHRNYWtl
UmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CiAKICAgICByZXR1cm4gbGF5ZXJIb3N0
aW5nQ29udGV4dDsKIH0KQEAgLTYyLDExICs1MCwxMSBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJI
b3N0aW5nQ29udGV4dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0
aQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgYSB2ZXJ5IGxhcmdlIGRpc3BsYXkgSUQg
dG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRleHQgaXMgbmV2ZXIgcHV0IG9uLXNjcmVlbiAKICAgICAv
LyB3aXRob3V0IGJlaW5nIGV4cGxpY2l0bHkgcGFyZW50ZWQuIFNlZSA8cmRhcjovL3Byb2JsZW0v
MTYwODkyNjc+IGZvciBkZXRhaWxzLgotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4
dCA9IChXS0NBQ29udGV4dFJlZilbQ0FDb250ZXh0IHJlbW90ZUNvbnRleHRXaXRoT3B0aW9uczpA
eworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFtDQUNvbnRleHQgcmVtb3Rl
Q29udGV4dFdpdGhPcHRpb25zOkB7CiAgICAgICAgIGtDQUNvbnRleHRJZ25vcmVzSGl0VGVzdCA6
IEBZRVMsCiAgICAgICAgIGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAgfV07CiAjZWxzZQot
ICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFdLQ0FDb250ZXh0TWFrZVJlbW90
ZUZvcldpbmRvd1NlcnZlcigpOworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9
IChDQUNvbnRleHQgKilXS0NBQ29udGV4dE1ha2VSZW1vdGVGb3JXaW5kb3dTZXJ2ZXIoKTsKICNl
bmRpZgogICAgIAogICAgIHJldHVybiBsYXllckhvc3RpbmdDb250ZXh0OwpAQCAtODMsMzIgKzcx
LDM3IEBAIExheWVySG9zdGluZ0NvbnRleHQ6On5MYXllckhvc3RpbmdDb250ZXh0KCkKIAogdm9p
ZCBMYXllckhvc3RpbmdDb250ZXh0OjpzZXRSb290TGF5ZXIoQ0FMYXllciAqcm9vdExheWVyKQog
ewotICAgIFdLQ0FDb250ZXh0U2V0TGF5ZXIobV9jb250ZXh0LmdldCgpLCByb290TGF5ZXIpOwor
ICAgIFttX2NvbnRleHQgc2V0TGF5ZXI6cm9vdExheWVyXTsKIH0KIAogQ0FMYXllciAqTGF5ZXJI
b3N0aW5nQ29udGV4dDo6cm9vdExheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tDQUNvbnRl
eHRHZXRMYXllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250ZXh0IGxheWVy
XTsKIH0KIAogdWludDMyX3QgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4dElEKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb250ZXh0SWQobV9jb250ZXh0LmdldCgpKTsK
KyAgICByZXR1cm4gW21fY29udGV4dCBjb250ZXh0SWRdOwogfQogCiB2b2lkIExheWVySG9zdGlu
Z0NvbnRleHQ6OmludmFsaWRhdGUoKQogewotICAgIFdLQ0FDb250ZXh0SW52YWxpZGF0ZShtX2Nv
bnRleHQuZ2V0KCkpOworICAgIFttX2NvbnRleHQgaW52YWxpZGF0ZV07CiB9CiAKIHZvaWQgTGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JTcGFjZShDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFj
ZSkKIHsKLSAgICBXS0NBQ29udGV4dFNldENvbG9yU3BhY2UobV9jb250ZXh0LmdldCgpLCBjb2xv
clNwYWNlKTsKKyAgICBbbV9jb250ZXh0IHNldENvbG9yU3BhY2U6Y29sb3JTcGFjZV07CiB9CiAK
IENHQ29sb3JTcGFjZVJlZiBMYXllckhvc3RpbmdDb250ZXh0Ojpjb2xvclNwYWNlKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb2xvclNwYWNlKG1fY29udGV4dC5nZXQoKSk7
CisgICAgcmV0dXJuIFttX2NvbnRleHQgY29sb3JTcGFjZV07Cit9CisKK3ZvaWQgTGF5ZXJIb3N0
aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0KG1hY2hfcG9ydF90IGZlbmNlUG9ydCkKK3sKKyAgICBb
bV9jb250ZXh0IHNldEZlbmNlUG9ydDpmZW5jZVBvcnRdOwogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggNTdkYjkyMDFmNWM3MmRiYTU4
YmE2YzM0ZTdiODc5MDE0MGE0YzYwZC4uMzA3N2I3ZGI0MWRmYmMyMjU5YWZmOGM3NzMyYzM2ZjRk
ZjQ2MTBkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTM0LDggKzM0LDkgQEAK
ICNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgPFF1
YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgotI2luY2x1ZGUgPFdlYktpdFN5c3RlbUludGVyZmFj
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
VUlXaW5kb3dTUEkuaD4KKyNpbmNsdWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KIAogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE4Miw3ICsxODMsOCBAQCB2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW5kU2Nhbm5pbmcoKQogCiB2b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVj
dCBmcmFtZSkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXI6OlNldFZpZGVvTGF5ZXJGcmFtZShmcmFtZSksIG1fcGFnZS0+cGFnZUlEKCkpOwor
ICAgIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQoW1VJV2luZG93IF9zeW5jaHJvbml6ZURyYXdp
bmdBY3Jvc3NQcm9jZXNzZXNdLCBNQUNIX01TR19UWVBFX01PVkVfU0VORCk7CisgICAgbV9wYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZXRWaWRlb0xheWVy
RnJhbWVGZW5jZWQoZnJhbWUsIGZlbmNlUG9ydCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckdyYXZpdHko
V2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZpZGVvR3Jhdml0eSBncmF2aXR5KQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlci5oCmluZGV4IDZlZjAzNjE4NWFmYjRjZGUyOGI1NjY2NmNkYmZjNThlNTQ4
OTM4MzMuLjQwZTliNTQ4YmNiZGI5M2M3MDk1YTE5YjkxZmI5NTNmMzhiZWNmZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAK
IG5hbWVzcGFjZSBJUEMgeworY2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbm5lY3Rpb247CiBj
bGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VSZWNlaXZlcjsKQEAgLTgzLDYgKzg0
LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbigpOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQpOworICAgIHZvaWQgc2V0VmlkZW9M
YXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQQzo6QXR0YWNobWVu
dCBmZW5jZVBvcnQpOwogICAgIAogICAgIFdlYlBhZ2UqIG1fcGFnZTsKICAgICBSZWZQdHI8V2Vi
Q29yZTo6SFRNTFZpZGVvRWxlbWVudD4gbV92aWRlb0VsZW1lbnQ7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA4YjRkOGVmNWI4MThiODRlMjYzMjAwZTc3ZTY4YzM3
OTdmYzk2ZTEzLi4zOTM2MTIyOTI2ZGZjNTU3ODIzNDg1NGNlODM5Y2VhZDhhOGRhYTY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTM3LDcgKzM3LDcgQEAgbWVz
c2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7CiAgICAgRGlkRXhpdEZ1bGxzY3Jl
ZW4oKQogICAgIERpZEVudGVyRnVsbHNjcmVlbigpCiAgICAgRGlkQ2xlYW51cEZ1bGxzY3JlZW4o
KQotICAgIFNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzKQorICAg
IFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6
OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogICAgIFNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNp
Z25lZCBncmF2aXR5KQogICAgIFNlbGVjdEF1ZGlvTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgp
CiAgICAgU2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KaW5kZXggZDIzZmFhY2MzMzZkY2E0NmFhNTM1ZWNmZTc3NzMzMGFjNWYwODQwMy4u
YWZkYjZkMWJmZDAyNzI4Y2IzMTRhZGExZTU3ODcyMmEzMDhmNzczYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFURk9STShJT1MpCiAKKyNpbXBvcnQg
IkF0dGFjaG1lbnQuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2ltcG9y
dCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgpAQCAtNDUsNiArNDYsNyBAQAog
I2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2Vz
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRSdW4uaD4KKyNpbXBvcnQgPG1hY2gv
bWFjaF9wb3J0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNzUsNiArMTc3
LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpkaWRTZXR1cEZ1bGxzY3JlZW4o
KQogCiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERp
c2FibGVBY3Rpb25zOllFU107CisgICAgW3ZpZGVvTGF5ZXIgc2V0UG9zaXRpb246Q0dQb2ludE1h
a2UoMCwgMCldOwogICAgIFt2aWRlb0xheWVyIHNldEJhY2tncm91bmRDb2xvcjpjYWNoZWRDR0Nv
bG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2ViQ29yZTo6Q29sb3JTcGFjZURldmlj
ZVJHQildOwogICAgIG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0Um9vdExheWVyKHZpZGVvTGF5
ZXIpOwogICAgIHNldFZpZGVvRnVsbHNjcmVlbkxheWVyKHZpZGVvTGF5ZXIpOwpAQCAtMjMzLDYg
KzIzNiwxMyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJH
cmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogewogICAgIHNldFZpZGVvTGF5ZXJHcmF2aXR5
KChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5KWdyYXZpdHkpOwogfQorICAg
IAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyRnJhbWVGZW5j
ZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydCkK
K3sKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldEZlbmNlUG9ydChmZW5jZVBvcnQucG9y
dCgpKTsKKyAgICBzZXRWaWRlb0xheWVyRnJhbWUoYm91bmRzKTsKKyAgICBtYWNoX3BvcnRfZGVh
bGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBmZW5jZVBvcnQucG9ydCgpKTsKK30KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238285</attachid>
            <date>2014-09-17 21:17:18 -0700</date>
            <delta_ts>2014-09-18 12:14:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140917211716.patch</filename>
            <type>text/plain</type>
            <size>17339</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5ZjUxMDIzMGExNTky
ZTA4MzRjNGY0ZTE3Nzc2ODY1NzY2MzUxMC4uM2RkYzNjOTNiNGFkYTM0NDA0YTJjNzM1ZDFkMWM0
MDM3Zjc5MDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YW5pbWF0aW9uLgorICAgICAgICBXaGVuIHVzaW5nIGEgZmVuY2VQb3J0IHRvIHN5bmNocm9uaXpl
IGFuaW1hdGlvbnMsIGlmIHRoZSBmZW5jZSB0aW1lcyBvdXQsIHBpdm90aW5nIGFyb3VuZCB0aGUg
Y2VudGVyIHByb3ZpZGVzIGEgYmV0dGVyIGZhbGxiYWNrLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJB
VlZpZGVvTGF5ZXIgc2V0VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHZpZGVvU3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xh
eWVyIHNldEJvdW5kczpdKTogIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIGluc3RlZCBvZiBmcmFt
ZS4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOiB1c2Ugc2V0VmlkZW9TdWJsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IHNldCBi
b3VuZHMgYW5kIGFuY2hvclBvaW50IGluc3RlYWQgb2YgZnJhbWUKKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZXQgYm91
bmRzIGluc3RlYWQgb2YgZnJhbWUuCisKIDIwMTQtMDktMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzM2OTUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMjM0NGJjYTBhZGYyYjJjNmM4N2I4ZjIzNzZhZmYwMzk0ZjQxNThiYy4u
OGU5NmU5ZWZkNWQ2MWZmOGVkNWZiYTVkYTJhODJkYTk2MjEzNWJkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMxIEBACisyMDE0LTA5LTE3ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3JlZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IFdLQ0FDb250ZXh0IGZyb20gTGF5ZXJIb3N0aW5nQ29udGV4dCBhbmQgdXNlIGEgZmVuY2VQb3J0
IHRvIHN5bmNocm9uaXplIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKworICAgICAgICAq
IFBsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lmg6IGFkZCBzZXRGZW5jZVBvcnQuIFJl
bW92ZSBXS0NBQ29udGV4dC4KKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
UG9ydCk6IFJlbW92ZSBXS0NBQ29udGV4dC4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6IGRpdHRvCisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldFJvb3RMYXllcik6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnJvb3RMYXllcik6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbnRleHRJRCk6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmludmFsaWRhdGUpOiBkaXR0bworICAg
ICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpzZXRDb2xvclNwYWNlKTogZGl0dG8K
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29sb3JTcGFjZSk6IGRpdHRv
CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldEZlbmNlUG9ydCk6IGFk
ZGVkCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0VmlkZW9MYXllckZyYW1lKTogCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IGFkZCBmZW5jZSBwb3J0IHBhcmFtZXRlcgorICAg
ICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06IGRpdHRv
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVs
bHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZCk6IGRpdHRvCisKIDIwMTQtMDktMTcgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxNzM2OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZGViYmM5
YzA4MWU3ODlmZTAwNDQwOWQ0OTgwZTllOTNkZTBlNjE2NS4uZjA1MWQwNzY1ZTFjYmRjMDdkOWEw
MzExNzExZTcwMzQ0YTMwZDBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAt
NDc2LDEyICs0NzYsMTQgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0
OwogLSAodm9pZClzZXRQbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKXBsYXllclZpZXdDb250cm9sbGVyOwogLSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihB
VlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgQ0FMYXllciogdmlkZW9TdWJsYXllcjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkFWVmlkZW9MYXllcgogewogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xs
ZXI+IF9hdlBsYXllckNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRy
b2xsZXI+IF9hdlBsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBf
dmlkZW9TdWJsYXllcjsKICAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5IF92aWRlb0xheWVyR3Jhdml0
eTsKIH0KIApAQCAtNTExLDYgKzUxMywxNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVy
ID0gcGxheWVyVmlld0NvbnRyb2xsZXI7CiB9CiAKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjoo
Q0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3Vi
bGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllcl07Cit9CisKKy0gKENB
TGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXIuZ2V0KCk7
Cit9CisKIC0gKHZvaWQpc2V0Qm91bmRzOihDR1JlY3QpYm91bmRzCiB7CiAgICAgW3N1cGVyIHNl
dEJvdW5kczpib3VuZHNdOwpAQCAtNTIxLDE0ICs1MzQsMjIgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBVSVZpZXcqIHJvb3RW
aWV3ID0gW1tfYXZQbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSB3aW5kb3ddOwogICAgIGlmICgh
cm9vdFZpZXcpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbc2VsZiBhbmltYXRp
b25Gb3JLZXk6QCJib3VuZHMiXS5kdXJhdGlvbjsKKyAgICBpZiAoYW5pbWF0aW9uRHVyYXRpb24g
PT0gMC4wKSAvLyBhIGR1cmF0aW9uIG9mIDAgZm9yIENBIG1lYW5zIDAuMjUuIFRoaXMgaXMgYSB3
YXkgdG8gYXBwcm94aW1hdGUgMC4KKyAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSAwLjAwMTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjphbmltYXRpb25EdXJhdGlv
bl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25F
YXNlSW5FYXNlT3V0XV07CiAKICAgICBGbG9hdFJlY3Qgcm9vdEJvdW5kcyA9IFtyb290VmlldyBi
b3VuZHNdOwogICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXll
ckZyYW1lKHJvb3RCb3VuZHMpOwogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdl
c3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8g
Q0dSZWN0R2V0SGVpZ2h0KGJvdW5kcyksIHJvb3RCb3VuZHMpOwogICAgIENBVHJhbnNmb3JtM0Qg
dHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNv
dXJjZUJvdW5kcy53aWR0aCgpLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVp
Z2h0KCksIDEpOwotICAgIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNm
b3JtLCBib3VuZHMub3JpZ2luLnggLSBzb3VyY2VCb3VuZHMueCgpLCBib3VuZHMub3JpZ2luLnkg
LSBzb3VyY2VCb3VuZHMueSgpLCAwKTsKLSAgICBbc2VsZiBzZXRTdWJsYXllclRyYW5zZm9ybTp0
cmFuc2Zvcm1dOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShD
R1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07CiB9CiAKIC0gKHZvaWQpc2V0VmlkZW9MYXllckdyYXZpdHk6KEFWVmlk
ZW9MYXllckdyYXZpdHkpdmlkZW9MYXllckdyYXZpdHkKQEAgLTc2MCw3ICs3ODEsNyBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICAKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFp
bmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAgICAgICAgW21fdmlkZW9MYXll
ckNvbnRhaW5lciBzZXRIaWRkZW46cGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tB
Y3RpdmVdOwotICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIGFkZFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9T
dWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAgQ0dTaXplIHZp
ZGVvU2l6ZSA9IHBsYXllckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsKICAgICAgICAg
Q0dSZWN0IHZpZGVvUmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgdmlkZW9TaXplLndpZHRoLCB2aWRl
b1NpemUuaGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCA0
ZDg4YzlhZTM0YjEyOGE4ZDQ3ZDQyMTg0NGJjNTI4Y2I2NTk4YWFkLi44YzQ2MTdhNDE3MDE5NjBj
NzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xNTIsNyArMTUyLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcioKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSB2aWRlb0xheWVy
OwotICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEZyYW1lOm1fdmlkZW9GcmFtZV07Cisg
ICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41
LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6bV92aWRlb0Zy
YW1lXTsKICAgICAKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKQEAgLTI3OCw3
ICsyNzksNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpyZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAgIG1fdmlkZW9G
cmFtZSA9IHJlY3Q7Ci0gICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0RnJhbWU6Q0dSZWN0
KHJlY3QpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6Q0dSZWN0KHJl
Y3QpXTsKICAgICBtX3ZpZGVvRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oCmluZGV4IGJiOTEwNGU0NzYwMmRjNWQ2YWQ2MDRlY2U5MDgzMTJlNzMyN2UyMDYuLmU3
YTM0ZGZhM2ZiZGE0ZGFhMDJhNWU2MjlmYzdjMGY0NTM4NjdlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaApAQCAtMzIsNyArMzIs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBDQUxheWVyOwot
dHlwZWRlZiBzdHJ1Y3QgX19XS0NBQ29udGV4dFJlZiAqV0tDQUNvbnRleHRSZWY7CitPQkpDX0NM
QVNTIENBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU3LDEwICs1NywxMiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsKICAg
ICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0
RmVuY2VQb3J0KG1hY2hfcG9ydF90KTsKIAogcHJpdmF0ZToKICAgICBMYXllckhvc3RpbmdNb2Rl
IG1fbGF5ZXJIb3N0aW5nTW9kZTsKLSAgICBSZXRhaW5QdHI8V0tDQUNvbnRleHRSZWY+IG1fY29u
dGV4dDsKKyAgICBSZXRhaW5QdHI8Q0FDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9M
YXllckhvc3RpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVy
SG9zdGluZ0NvbnRleHQubW0KaW5kZXggMTNmNzQwOWRkMGM0MTFkN2NlYmE1NDM2ZDQ2NTY5Yzc2
YTNiODg0Ni4uNWNkMTMzZThhODA5OTRmYmVjYThiOTVmNzkwYmRkN2JhYTc5YzBjMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
QEAgLTI4LDE2ICsyOCwxOCBAQAogCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
IAotI2lmIF9faGFzX2luY2x1ZGUoPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZVByaXZhdGUuaD4pCi0j
aW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmVQcml2YXRlLmg+CisjaWYgX19oYXNfaW5jbHVk
ZSg8UXVhcnR6Q29yZS9DQUNvbnRleHQuaD4pCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4
dC5oPgogI2Vsc2UKLUBpbnRlcmZhY2UgQ0FDb250ZXh0IDogTlNPYmplY3QKLUBlbmQKLSNlbmRp
ZgotCi1AaW50ZXJmYWNlIENBQ29udGV4dCAoRGV0YWlscykKK0BpbnRlcmZhY2UgQ0FDb250ZXh0
IDogTlNPYmplY3QgKERldGFpbHMpCistICh2b2lkKWludmFsaWRhdGU7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSB1aW50MzJfdCBjb250ZXh0SWQ7CitAcHJvcGVydHkgKHN0cm9uZykgQ0FMYXllciAq
bGF5ZXI7CitAcHJvcGVydHkgQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2U7CistICh2b2lkKXNl
dEZlbmNlUG9ydDoobWFjaF9wb3J0X3QpcG9ydDsKICsgKENBQ29udGV4dCAqKXJlbW90ZUNvbnRl
eHRXaXRoT3B0aW9uczooTlNEaWN0aW9uYXJ5ICopZGljdDsKIEBlbmQKKyNlbmRpZgogCiBleHRl
cm4gTlNTdHJpbmcgKiBjb25zdCBrQ0FDb250ZXh0SWdub3Jlc0hpdFRlc3Q7CiAKQEAgLTQ4LDcg
KzUwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IExheWVySG9zdGlu
Z0NvbnRleHQ6OmNyZWF0ZUZvclBvcnQobWFjaF9wb3IKICAgICBhdXRvIGxheWVySG9zdGluZ0Nv
bnRleHQgPSBzdGQ6Om1ha2VfdW5pcXVlPExheWVySG9zdGluZ0NvbnRleHQ+KCk7CiAKICAgICBs
YXllckhvc3RpbmdDb250ZXh0LT5tX2xheWVySG9zdGluZ01vZGUgPSBMYXllckhvc3RpbmdNb2Rl
OjpJblByb2Nlc3M7Ci0gICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gV0tDQUNv
bnRleHRNYWtlUmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CisgICAgbGF5ZXJIb3N0
aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gKENBQ29udGV4dCAqKVdLQ0FDb250ZXh0TWFrZVJlbW90
ZVdpdGhTZXJ2ZXJQb3J0KHNlcnZlclBvcnQpOwogCiAgICAgcmV0dXJuIGxheWVySG9zdGluZ0Nv
bnRleHQ7CiB9CkBAIC02MiwxMSArNjQsMTEgQEAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGlu
Z0NvbnRleHQ+IExheWVySG9zdGluZ0NvbnRleHQ6OmNyZWF0ZUZvckV4dGVybmFsSG9zdGkKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgLy8gVXNlIGEgdmVyeSBsYXJnZSBkaXNwbGF5IElEIHRvIGVu
c3VyZSB0aGF0IHRoZSBjb250ZXh0IGlzIG5ldmVyIHB1dCBvbi1zY3JlZW4gCiAgICAgLy8gd2l0
aG91dCBiZWluZyBleHBsaWNpdGx5IHBhcmVudGVkLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE2MDg5
MjY3PiBmb3IgZGV0YWlscy4KLSAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSAo
V0tDQUNvbnRleHRSZWYpW0NBQ29udGV4dCByZW1vdGVDb250ZXh0V2l0aE9wdGlvbnM6QHsKKyAg
ICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSBbQ0FDb250ZXh0IHJlbW90ZUNvbnRl
eHRXaXRoT3B0aW9uczpAewogICAgICAgICBrQ0FDb250ZXh0SWdub3Jlc0hpdFRlc3QgOiBAWUVT
LAogICAgICAgICBrQ0FDb250ZXh0RGlzcGxheUlkIDogQDEwMDAwIH1dOwogI2Vsc2UKLSAgICBs
YXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSBXS0NBQ29udGV4dE1ha2VSZW1vdGVGb3JX
aW5kb3dTZXJ2ZXIoKTsKKyAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSAoQ0FD
b250ZXh0ICopV0tDQUNvbnRleHRNYWtlUmVtb3RlRm9yV2luZG93U2VydmVyKCk7CiAjZW5kaWYK
ICAgICAKICAgICByZXR1cm4gbGF5ZXJIb3N0aW5nQ29udGV4dDsKQEAgLTgzLDMyICs4NSwzNyBA
QCBMYXllckhvc3RpbmdDb250ZXh0Ojp+TGF5ZXJIb3N0aW5nQ29udGV4dCgpCiAKIHZvaWQgTGF5
ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExheWVyKENBTGF5ZXIgKnJvb3RMYXllcikKIHsKLSAg
ICBXS0NBQ29udGV4dFNldExheWVyKG1fY29udGV4dC5nZXQoKSwgcm9vdExheWVyKTsKKyAgICBb
bV9jb250ZXh0IHNldExheWVyOnJvb3RMYXllcl07CiB9CiAKIENBTGF5ZXIgKkxheWVySG9zdGlu
Z0NvbnRleHQ6OnJvb3RMYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdLQ0FDb250ZXh0R2V0
TGF5ZXIobV9jb250ZXh0LmdldCgpKTsKKyAgICByZXR1cm4gW21fY29udGV4dCBsYXllcl07CiB9
CiAKIHVpbnQzMl90IExheWVySG9zdGluZ0NvbnRleHQ6OmNvbnRleHRJRCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdLQ0FDb250ZXh0R2V0Q29udGV4dElkKG1fY29udGV4dC5nZXQoKSk7CisgICAg
cmV0dXJuIFttX2NvbnRleHQgY29udGV4dElkXTsKIH0KIAogdm9pZCBMYXllckhvc3RpbmdDb250
ZXh0OjppbnZhbGlkYXRlKCkKIHsKLSAgICBXS0NBQ29udGV4dEludmFsaWRhdGUobV9jb250ZXh0
LmdldCgpKTsKKyAgICBbbV9jb250ZXh0IGludmFsaWRhdGVdOwogfQogCiB2b2lkIExheWVySG9z
dGluZ0NvbnRleHQ6OnNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmIGNvbG9yU3BhY2UpCiB7
Ci0gICAgV0tDQUNvbnRleHRTZXRDb2xvclNwYWNlKG1fY29udGV4dC5nZXQoKSwgY29sb3JTcGFj
ZSk7CisgICAgW21fY29udGV4dCBzZXRDb2xvclNwYWNlOmNvbG9yU3BhY2VdOwogfQogCiBDR0Nv
bG9yU3BhY2VSZWYgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29sb3JTcGFjZSgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdLQ0FDb250ZXh0R2V0Q29sb3JTcGFjZShtX2NvbnRleHQuZ2V0KCkpOworICAg
IHJldHVybiBbbV9jb250ZXh0IGNvbG9yU3BhY2VdOworfQorCit2b2lkIExheWVySG9zdGluZ0Nv
bnRleHQ6OnNldEZlbmNlUG9ydChtYWNoX3BvcnRfdCBmZW5jZVBvcnQpCit7CisgICAgW21fY29u
dGV4dCBzZXRGZW5jZVBvcnQ6ZmVuY2VQb3J0XTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCmluZGV4IDgzNTM4MTUxNWJmMTE1MTZhNzRjMTdh
YTEwMTMwNmRlNDRiZmEwYjYuLmNkODZiNGIxM2EwYWFmMTM5ODBhYTAyYzcwODZhZjEwOWE1ZGNi
ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tCkBAIC0yMywxOSArMjMsMjkgQEAKICAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmgiCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgog
CiAjaWYgUExBVEZPUk0oSU9TKQogCi0jaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5oIgotI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgotI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5o
IgotI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCi0j
aW5jbHVkZSA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViS2l0U3lz
dGVtSW50ZXJmYWNlLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CisjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2ltcG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+
CisjaW1wb3J0IDxVSUtpdC9VSVdpbmRvdy5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2Vz
Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1VJV2luZG93U1BJLmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxV
SUtpdC9VSVdpbmRvd19Qcml2YXRlLmg+CisjZWxzZQorQGludGVyZmFjZSBVSVdpbmRvdyAoRGV0
YWlscykKKysgKG1hY2hfcG9ydF90KV9zeW5jaHJvbml6ZURyYXdpbmdBY3Jvc3NQcm9jZXNzZXM7
CitAZW5kCisjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE4OCw3ICsx
OTgsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW5kU2Nhbm5pbmco
KQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllckZy
YW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBmcmFtZSkKIHsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNldFZpZGVvTGF5ZXJGcmFtZShmcmFtZSks
IG1fcGFnZS0+cGFnZUlEKCkpOworICAgIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQoW1VJV2lu
ZG93IF9zeW5jaHJvbml6ZURyYXdpbmdBY3Jvc3NQcm9jZXNzZXNdLCBNQUNIX01TR19UWVBFX01P
VkVfU0VORCk7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyOjpTZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoZnJhbWUsIGZlbmNlUG9ydCksIG1fcGFn
ZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0VmlkZW9MYXllckdyYXZpdHkoV2ViQ29yZTo6V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6OlZp
ZGVvR3Jhdml0eSBncmF2aXR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oCmluZGV4IDZlZjAzNjE4NWFmYjRj
ZGUyOGI1NjY2NmNkYmZjNThlNTQ4OTM4MzMuLjQwZTliNTQ4YmNiZGI5M2M3MDk1YTE5YjkxZmI5
NTNmMzhiZWNmZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBJUEMgeworY2xhc3MgQXR0YWNobWVudDsK
IGNsYXNzIENvbm5lY3Rpb247CiBjbGFzcyBNZXNzYWdlRGVjb2RlcjsKIGNsYXNzIE1lc3NhZ2VS
ZWNlaXZlcjsKQEAgLTgzLDYgKzg0LDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBk
aWRFeGl0RnVsbHNjcmVlbigpOwogICAgIHZpcnR1YWwgdm9pZCBkaWRDbGVhbnVwRnVsbHNjcmVl
bigpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQp
OworICAgIHZvaWQgc2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBi
b3VuZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpOwogICAgIAogICAgIFdlYlBhZ2UqIG1f
cGFnZTsKICAgICBSZWZQdHI8V2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudD4gbV92aWRlb0VsZW1l
bnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9p
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCA4YjRkOGVmNWI4
MThiODRlMjYzMjAwZTc3ZTY4YzM3OTdmYzk2ZTEzLi4zOTM2MTIyOTI2ZGZjNTU3ODIzNDg1NGNl
ODM5Y2VhZDhhOGRhYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4K
QEAgLTM3LDcgKzM3LDcgQEAgbWVzc2FnZXMgLT4gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlciB7
CiAgICAgRGlkRXhpdEZ1bGxzY3JlZW4oKQogICAgIERpZEVudGVyRnVsbHNjcmVlbigpCiAgICAg
RGlkQ2xlYW51cEZ1bGxzY3JlZW4oKQotICAgIFNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpG
bG9hdFJlY3QgYm91bmRzKQorICAgIFNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJDb3JlOjpG
bG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQogICAgIFNldFZpZGVv
TGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogICAgIFNlbGVjdEF1ZGlvTWVkaWFP
cHRpb24odWludDY0X3QgaW5kZXgpCiAgICAgU2VsZWN0TGVnaWJsZU1lZGlhT3B0aW9uKHVpbnQ2
NF90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KaW5kZXggMmY2YWQ4ZTc2ZDZjOTdhMTBhMzcx
OWY2MTU0NTA4MDVlOGZkYmIwNC4uZWM0ZGYzMDljMjA4ZWRjYzNlNTkzYWI3ODA1ZDFiYjI2MDVk
ZjY3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBQTEFU
Rk9STShJT1MpCiAKKyNpbXBvcnQgIkF0dGFjaG1lbnQuaCIKICNpbXBvcnQgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogI2ltcG9ydCAiV2ViUGFnZS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5o
IgpAQCAtNDUsNiArNDYsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVUaHJlYWRS
dW4uaD4KKyNpbXBvcnQgPG1hY2gvbWFjaF9wb3J0Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCkBAIC0xNzYsNiArMTc4LDcgQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpkaWRTZXR1cEZ1bGxzY3JlZW4oKQogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICBb
Q0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOwogCisgICAgW3ZpZGVvTGF5ZXIg
c2V0UG9zaXRpb246Q0dQb2ludE1ha2UoMCwgMCldOwogICAgIFt2aWRlb0xheWVyIHNldEJhY2tn
cm91bmRDb2xvcjpjYWNoZWRDR0NvbG9yKFdlYkNvcmU6OkNvbG9yOjp0cmFuc3BhcmVudCwgV2Vi
Q29yZTo6Q29sb3JTcGFjZURldmljZVJHQildOwogCiAgICAgLy8gU2V0IGEgc2NhbGUgZmFjdG9y
IGhlcmUgdG8gbWFrZSBjb252ZXJ0UmVjdDp0b0xheWVyOm5pbCB0YWtlIHNjYWxlIGZhY3RvciBp
bnRvIGFjY291bnQuIDxyZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4uCkBAIC0yNDEsNiArMjQ0LDEz
IEBAIHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6c2V0VmlkZW9MYXllckdyYXZpdHlF
bnVtKHVuc2lnbmVkIGdyYXZpdHkpCiB7CiAgICAgc2V0VmlkZW9MYXllckdyYXZpdHkoKFdlYlZp
ZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkpZ3Jhdml0eSk7CiB9CisgICAgCit2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZChXZWJD
b3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQb3J0KQoreworICAg
IG1fbGF5ZXJIb3N0aW5nQ29udGV4dC0+c2V0RmVuY2VQb3J0KGZlbmNlUG9ydC5wb3J0KCkpOwor
ICAgIHNldFZpZGVvTGF5ZXJGcmFtZShib3VuZHMpOworICAgIG1hY2hfcG9ydF9kZWFsbG9jYXRl
KG1hY2hfdGFza19zZWxmKCksIGZlbmNlUG9ydC5wb3J0KCkpOworfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238318</attachid>
            <date>2014-09-18 12:14:25 -0700</date>
            <delta_ts>2014-09-18 13:17:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-136870-20140918121422.patch</filename>
            <type>text/plain</type>
            <size>17263</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5ZjUxMDIzMGExNTky
ZTA4MzRjNGY0ZTE3Nzc2ODY1NzY2MzUxMC4uM2RkYzNjOTNiNGFkYTM0NDA0YTJjNzM1ZDFkMWM0
MDM3Zjc5MDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW5zdGVhZCBvZiBzZXR0aW5nIHRoZSBmcmFtZSBvbiB0aGUg
dmlkZW8gbGF5ZXIsIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIHNlcGFyYXRlbHkuIFRoaXMgYWxs
b3dzIHRoZSBwb3NpdGlvbiB0byBiZSBzeW5jaHJvbml6ZWQgd2l0aCB0aGUgcmVzdCBvZiB0aGUg
YW5pbWF0aW9uLgorICAgICAgICBXaGVuIHVzaW5nIGEgZmVuY2VQb3J0IHRvIHN5bmNocm9uaXpl
IGFuaW1hdGlvbnMsIGlmIHRoZSBmZW5jZSB0aW1lcyBvdXQsIHBpdm90aW5nIGFyb3VuZCB0aGUg
Y2VudGVyIHByb3ZpZGVzIGEgYmV0dGVyIGZhbGxiYWNrLgorCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tOgorICAgICAgICAoLVtXZWJB
VlZpZGVvTGF5ZXIgc2V0VmlkZW9TdWJsYXllcjpdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHZpZGVvU3VibGF5ZXJdKTogYWRkZWQKKyAgICAgICAgKC1bV2ViQVZWaWRlb0xh
eWVyIHNldEJvdW5kczpdKTogIHNldCBwb3NpdGlvbiBhbmQgYm91bmRzIGluc3RlZCBvZiBmcmFt
ZS4KKyAgICAgICAgKFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxz
Y3JlZW4pOiB1c2Ugc2V0VmlkZW9TdWJsYXllcgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbToKKyAgICAgICAgKFdlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcik6IHNldCBi
b3VuZHMgYW5kIGFuY2hvclBvaW50IGluc3RlYWQgb2YgZnJhbWUKKyAgICAgICAgKFdlYlZpZGVv
RnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRWaWRlb0xheWVyRnJhbWUpOiBzZXQgYm91
bmRzIGluc3RlYWQgb2YgZnJhbWUuCisKIDIwMTQtMDktMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxNzM2OTUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKaW5kZXggMjM0NGJjYTBhZGYyYjJjNmM4N2I4ZjIzNzZhZmYwMzk0ZjQxNThiYy4u
OGU5NmU5ZWZkNWQ2MWZmOGVkNWZiYTVkYTJhODJkYTk2MjEzNWJkNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDMxIEBACisyMDE0LTA5LTE3ICBKZXJlbXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNv
bT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3JlZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9u
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3Zl
IFdLQ0FDb250ZXh0IGZyb20gTGF5ZXJIb3N0aW5nQ29udGV4dCBhbmQgdXNlIGEgZmVuY2VQb3J0
IHRvIHN5bmNocm9uaXplIGFuaW1hdGlvbiBiZXR3ZWVuIHByb2Nlc3Nlcy4KKworICAgICAgICAq
IFBsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0Lmg6IGFkZCBzZXRGZW5jZVBvcnQuIFJl
bW92ZSBXS0NBQ29udGV4dC4KKyAgICAgICAgKiBQbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5tbToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9y
UG9ydCk6IFJlbW92ZSBXS0NBQ29udGV4dC4KKyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5n
Q29udGV4dDo6Y3JlYXRlRm9yRXh0ZXJuYWxIb3N0aW5nUHJvY2Vzcyk6IGRpdHRvCisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldFJvb3RMYXllcik6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnJvb3RMYXllcik6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmNvbnRleHRJRCk6IGRpdHRvCisgICAg
ICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OmludmFsaWRhdGUpOiBkaXR0bworICAg
ICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpzZXRDb2xvclNwYWNlKTogZGl0dG8K
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29sb3JTcGFjZSk6IGRpdHRv
CisgICAgICAgIChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldEZlbmNlUG9ydCk6IGFk
ZGVkCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6
c2V0VmlkZW9MYXllckZyYW1lKTogCisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW46IGFkZCBmZW5jZSBwb3J0IHBhcmFtZXRlcgorICAg
ICAgICAqIFdlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW06IGRpdHRv
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVs
bHNjcmVlbik6IGRpdHRvCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXI6OnNldFZpZGVvTGF5ZXJGcmFtZUZlbmNlZCk6IGRpdHRvCisKIDIwMTQtMDktMTcgIERhbmll
bCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxp
bmcgb3V0IHIxNzM2OTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KaW5kZXggZGViYmM5
YzA4MWU3ODlmZTAwNDQwOWQ0OTgwZTllOTNkZTBlNjE2NS4uZjA1MWQwNzY1ZTFjYmRjMDdkOWEw
MzExNzExZTcwMzQ0YTMwZDBhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQpAQCAt
NDc2LDEyICs0NzYsMTQgQEAgU09GVF9MSU5LX0NPTlNUQU5UKENvcmVNZWRpYSwga0NNVGltZUlu
ZGVmaW5pdGUsIENNVGltZSkKIEBwcm9wZXJ0eSAobm9uYXRvbWljKSBDR1JlY3QgdmlkZW9SZWN0
OwogLSAodm9pZClzZXRQbGF5ZXJWaWV3Q29udHJvbGxlcjooQVZQbGF5ZXJWaWV3Q29udHJvbGxl
ciAqKXBsYXllclZpZXdDb250cm9sbGVyOwogLSAodm9pZClzZXRQbGF5ZXJDb250cm9sbGVyOihB
VlBsYXllckNvbnRyb2xsZXIgKilwbGF5ZXJDb250cm9sbGVyOworQHByb3BlcnR5IChub25hdG9t
aWMsIHJldGFpbikgQ0FMYXllciogdmlkZW9TdWJsYXllcjsKIEBlbmQKIAogQGltcGxlbWVudGF0
aW9uIFdlYkFWVmlkZW9MYXllcgogewogICAgIFJldGFpblB0cjxXZWJBVlBsYXllckNvbnRyb2xs
ZXI+IF9hdlBsYXllckNvbnRyb2xsZXI7CiAgICAgUmV0YWluUHRyPEFWUGxheWVyVmlld0NvbnRy
b2xsZXI+IF9hdlBsYXllclZpZXdDb250cm9sbGVyOworICAgIFJldGFpblB0cjxDQUxheWVyPiBf
dmlkZW9TdWJsYXllcjsKICAgICBBVlZpZGVvTGF5ZXJHcmF2aXR5IF92aWRlb0xheWVyR3Jhdml0
eTsKIH0KIApAQCAtNTExLDYgKzUxMywxNyBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlh
LCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIF9hdlBsYXllclZpZXdDb250cm9sbGVy
ID0gcGxheWVyVmlld0NvbnRyb2xsZXI7CiB9CiAKKy0gKHZvaWQpc2V0VmlkZW9TdWJsYXllcjoo
Q0FMYXllciAqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICBfdmlkZW9TdWJsYXllciA9IHZpZGVvU3Vi
bGF5ZXI7CisgICAgW3NlbGYgYWRkU3VibGF5ZXI6dmlkZW9TdWJsYXllcl07Cit9CisKKy0gKENB
TGF5ZXIqKXZpZGVvU3VibGF5ZXIKK3sKKyAgICByZXR1cm4gX3ZpZGVvU3VibGF5ZXIuZ2V0KCk7
Cit9CisKIC0gKHZvaWQpc2V0Qm91bmRzOihDR1JlY3QpYm91bmRzCiB7CiAgICAgW3N1cGVyIHNl
dEJvdW5kczpib3VuZHNdOwpAQCAtNTIxLDE0ICs1MzQsMjIgQEAgU09GVF9MSU5LX0NPTlNUQU5U
KENvcmVNZWRpYSwga0NNVGltZUluZGVmaW5pdGUsIENNVGltZSkKICAgICBVSVZpZXcqIHJvb3RW
aWV3ID0gW1tfYXZQbGF5ZXJWaWV3Q29udHJvbGxlciB2aWV3XSB3aW5kb3ddOwogICAgIGlmICgh
cm9vdFZpZXcpCiAgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07CisgICAgTlNUaW1lSW50ZXJ2YWwgYW5pbWF0aW9uRHVyYXRpb24gPSBbc2VsZiBhbmltYXRp
b25Gb3JLZXk6QCJib3VuZHMiXS5kdXJhdGlvbjsKKyAgICBpZiAoYW5pbWF0aW9uRHVyYXRpb24g
PT0gMC4wKSAvLyBhIGR1cmF0aW9uIG9mIDAgZm9yIENBIG1lYW5zIDAuMjUuIFRoaXMgaXMgYSB3
YXkgdG8gYXBwcm94aW1hdGUgMC4KKyAgICAgICAgYW5pbWF0aW9uRHVyYXRpb24gPSAwLjAwMTsK
KyAgICBbQ0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25EdXJhdGlvbjphbmltYXRpb25EdXJhdGlv
bl07CisgICAgW0NBVHJhbnNhY3Rpb24gc2V0QW5pbWF0aW9uVGltaW5nRnVuY3Rpb246W0NBTWVk
aWFUaW1pbmdGdW5jdGlvbiBmdW5jdGlvbldpdGhOYW1lOmtDQU1lZGlhVGltaW5nRnVuY3Rpb25F
YXNlSW5FYXNlT3V0XV07CiAKICAgICBGbG9hdFJlY3Qgcm9vdEJvdW5kcyA9IFtyb290VmlldyBi
b3VuZHNdOwogICAgIFtfYXZQbGF5ZXJDb250cm9sbGVyIGRlbGVnYXRlXS0+c2V0VmlkZW9MYXll
ckZyYW1lKHJvb3RCb3VuZHMpOwogCiAgICAgRmxvYXRSZWN0IHNvdXJjZUJvdW5kcyA9IGxhcmdl
c3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChDR1JlY3RHZXRXaWR0aChib3VuZHMpIC8g
Q0dSZWN0R2V0SGVpZ2h0KGJvdW5kcyksIHJvb3RCb3VuZHMpOwogICAgIENBVHJhbnNmb3JtM0Qg
dHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRE1ha2VTY2FsZShib3VuZHMuc2l6ZS53aWR0aCAvIHNv
dXJjZUJvdW5kcy53aWR0aCgpLCBib3VuZHMuc2l6ZS5oZWlnaHQgLyBzb3VyY2VCb3VuZHMuaGVp
Z2h0KCksIDEpOwotICAgIHRyYW5zZm9ybSA9IENBVHJhbnNmb3JtM0RUcmFuc2xhdGUodHJhbnNm
b3JtLCBib3VuZHMub3JpZ2luLnggLSBzb3VyY2VCb3VuZHMueCgpLCBib3VuZHMub3JpZ2luLnkg
LSBzb3VyY2VCb3VuZHMueSgpLCAwKTsKLSAgICBbc2VsZiBzZXRTdWJsYXllclRyYW5zZm9ybTp0
cmFuc2Zvcm1dOworICAgIFtfdmlkZW9TdWJsYXllciBzZXRQb3NpdGlvbjpDR1BvaW50TWFrZShD
R1JlY3RHZXRNaWRYKGJvdW5kcyksIENHUmVjdEdldE1pZFkoYm91bmRzKSldOworICAgIFtfdmlk
ZW9TdWJsYXllciBzZXRTdWJsYXllclRyYW5zZm9ybTp0cmFuc2Zvcm1dOworICAgIFtDQVRyYW5z
YWN0aW9uIGNvbW1pdF07CiB9CiAKIC0gKHZvaWQpc2V0VmlkZW9MYXllckdyYXZpdHk6KEFWVmlk
ZW9MYXllckdyYXZpdHkpdmlkZW9MYXllckdyYXZpdHkKQEAgLTc2MCw3ICs3ODEsNyBAQCB2b2lk
IFdlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0OjpzZXR1cEZ1bGxzY3JlZW4oUGxhdGZv
cm1MYXllciYgdmlkZW9MYXllcgogICAgICAgICAKICAgICAgICAgbV92aWRlb0xheWVyQ29udGFp
bmVyID0gW1dlYkFWVmlkZW9MYXllciB2aWRlb0xheWVyXTsKICAgICAgICAgW21fdmlkZW9MYXll
ckNvbnRhaW5lciBzZXRIaWRkZW46cGxheWVyQ29udHJvbGxlcigpLmV4dGVybmFsUGxheWJhY2tB
Y3RpdmVdOwotICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVyIGFkZFN1YmxheWVyOm1fdmlk
ZW9MYXllci5nZXQoKV07CisgICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgc2V0VmlkZW9T
dWJsYXllcjptX3ZpZGVvTGF5ZXIuZ2V0KCldOwogICAgICAgICAKICAgICAgICAgQ0dTaXplIHZp
ZGVvU2l6ZSA9IHBsYXllckNvbnRyb2xsZXIoKS5jb250ZW50RGltZW5zaW9uczsKICAgICAgICAg
Q0dSZWN0IHZpZGVvUmVjdCA9IENHUmVjdE1ha2UoMCwgMCwgdmlkZW9TaXplLndpZHRoLCB2aWRl
b1NpemUuaGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQppbmRleCA0
ZDg4YzlhZTM0YjEyOGE4ZDQ3ZDQyMTg0NGJjNTI4Y2I2NTk4YWFkLi44YzQ2MTdhNDE3MDE5NjBj
NzkzMmJjZTk4NTk0ZTM0NjU4NDE5MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVt
ZW50Lm1tCkBAIC0xNTIsNyArMTUyLDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIoUGxhdGZvcm1MYXllcioKICAgICAg
ICAgcmV0dXJuOwogICAgIAogICAgIG1fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgPSB2aWRlb0xheWVy
OwotICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEZyYW1lOm1fdmlkZW9GcmFtZV07Cisg
ICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0QW5jaG9yUG9pbnQ6Q0dQb2ludE1ha2UoMC41
LCAwLjUpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6bV92aWRlb0Zy
YW1lXTsKICAgICAKICAgICBfX2Jsb2NrIFJlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZp
ZGVvRWxlbWVudD4gcHJvdGVjdCh0aGlzKTsKICAgICBXZWJUaHJlYWRSdW4oXnsKQEAgLTI3OCw3
ICsyNzksNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpyZXF1
ZXN0RXhpdEZ1bGxzY3JlZW4oKQogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxl
bWVudDo6c2V0VmlkZW9MYXllckZyYW1lKEZsb2F0UmVjdCByZWN0KQogewogICAgIG1fdmlkZW9G
cmFtZSA9IHJlY3Q7Ci0gICAgW21fdmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0RnJhbWU6Q0dSZWN0
KHJlY3QpXTsKKyAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRCb3VuZHM6Q0dSZWN0KHJl
Y3QpXTsKICAgICBtX3ZpZGVvRWxlbWVudC0+c2V0VmlkZW9GdWxsc2NyZWVuRnJhbWUocmVjdCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3Rp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5oCmluZGV4IGJiOTEwNGU0NzYwMmRjNWQ2YWQ2MDRlY2U5MDgzMTJlNzMyN2UyMDYuLmU3
YTM0ZGZhM2ZiZGE0ZGFhMDJhNWU2MjlmYzdjMGY0NTM4NjdlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaApAQCAtMzIsNyArMzIs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBDQUxheWVyOwot
dHlwZWRlZiBzdHJ1Y3QgX19XS0NBQ29udGV4dFJlZiAqV0tDQUNvbnRleHRSZWY7CitPQkpDX0NM
QVNTIENBQ29udGV4dDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU3LDEwICs1NywxMiBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIHNldENvbG9yU3BhY2UoQ0dDb2xvclNwYWNlUmVmKTsKICAg
ICBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFjZSgpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0
RmVuY2VQb3J0KG1hY2hfcG9ydF90KTsKIAogcHJpdmF0ZToKICAgICBMYXllckhvc3RpbmdNb2Rl
IG1fbGF5ZXJIb3N0aW5nTW9kZTsKLSAgICBSZXRhaW5QdHI8V0tDQUNvbnRleHRSZWY+IG1fY29u
dGV4dDsKKyAgICBSZXRhaW5QdHI8Q0FDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9M
YXllckhvc3RpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVy
SG9zdGluZ0NvbnRleHQubW0KaW5kZXggMTNmNzQwOWRkMGM0MTFkN2NlYmE1NDM2ZDQ2NTY5Yzc2
YTNiODg0Ni4uMGQ4MTU5NDhkZjI5OWI1MGQ4ZDk2ZWMwMWY1ZDlkZTk1YWVmYzljZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
KysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQubW0K
QEAgLTI4LDE2ICsyOCwyMSBAQAogCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4K
IAotI2lmIF9faGFzX2luY2x1ZGUoPFF1YXJ0ekNvcmUvUXVhcnR6Q29yZVByaXZhdGUuaD4pCi0j
aW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmVQcml2YXRlLmg+CisjaWYgX19oYXNfaW5jbHVk
ZSg8UXVhcnR6Q29yZS9DQUNvbnRleHQuaD4pCisjaW1wb3J0IDxRdWFydHpDb3JlL0NBQ29udGV4
dC5oPgogI2Vsc2UKIEBpbnRlcmZhY2UgQ0FDb250ZXh0IDogTlNPYmplY3QKIEBlbmQKLSNlbmRp
ZgogCiBAaW50ZXJmYWNlIENBQ29udGV4dCAoRGV0YWlscykKKy0gKHZvaWQpaW52YWxpZGF0ZTsK
K0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVpbnQzMl90IGNvbnRleHRJZDsKK0Bwcm9wZXJ0eSAoc3Ry
b25nKSBDQUxheWVyICpsYXllcjsKK0Bwcm9wZXJ0eSBDR0NvbG9yU3BhY2VSZWYgY29sb3JTcGFj
ZTsKKy0gKHZvaWQpc2V0RmVuY2VQb3J0OihtYWNoX3BvcnRfdClwb3J0OwogKyAoQ0FDb250ZXh0
ICopcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zOihOU0RpY3Rpb25hcnkgKilkaWN0OwogQGVuZAor
I2VuZGlmCiAKIGV4dGVybiBOU1N0cmluZyAqIGNvbnN0IGtDQUNvbnRleHRJZ25vcmVzSGl0VGVz
dDsKIApAQCAtNDgsNyArNTMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8TGF5ZXJIb3N0aW5nQ29udGV4
dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yUG9ydChtYWNoX3BvcgogICAgIGF1dG8g
bGF5ZXJIb3N0aW5nQ29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TGF5ZXJIb3N0aW5nQ29udGV4
dD4oKTsKIAogICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fbGF5ZXJIb3N0aW5nTW9kZSA9IExh
eWVySG9zdGluZ01vZGU6OkluUHJvY2VzczsKLSAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2Nv
bnRleHQgPSBXS0NBQ29udGV4dE1ha2VSZW1vdGVXaXRoU2VydmVyUG9ydChzZXJ2ZXJQb3J0KTsK
KyAgICBsYXllckhvc3RpbmdDb250ZXh0LT5tX2NvbnRleHQgPSAoQ0FDb250ZXh0ICopV0tDQUNv
bnRleHRNYWtlUmVtb3RlV2l0aFNlcnZlclBvcnQoc2VydmVyUG9ydCk7CiAKICAgICByZXR1cm4g
bGF5ZXJIb3N0aW5nQ29udGV4dDsKIH0KQEAgLTYyLDExICs2NywxMSBAQCBzdGQ6OnVuaXF1ZV9w
dHI8TGF5ZXJIb3N0aW5nQ29udGV4dD4gTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y3JlYXRlRm9yRXh0
ZXJuYWxIb3N0aQogI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBVc2UgYSB2ZXJ5IGxhcmdlIGRp
c3BsYXkgSUQgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRleHQgaXMgbmV2ZXIgcHV0IG9uLXNjcmVl
biAKICAgICAvLyB3aXRob3V0IGJlaW5nIGV4cGxpY2l0bHkgcGFyZW50ZWQuIFNlZSA8cmRhcjov
L3Byb2JsZW0vMTYwODkyNjc+IGZvciBkZXRhaWxzLgotICAgIGxheWVySG9zdGluZ0NvbnRleHQt
Pm1fY29udGV4dCA9IChXS0NBQ29udGV4dFJlZilbQ0FDb250ZXh0IHJlbW90ZUNvbnRleHRXaXRo
T3B0aW9uczpAeworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFtDQUNvbnRl
eHQgcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zOkB7CiAgICAgICAgIGtDQUNvbnRleHRJZ25vcmVz
SGl0VGVzdCA6IEBZRVMsCiAgICAgICAgIGtDQUNvbnRleHREaXNwbGF5SWQgOiBAMTAwMDAgfV07
CiAjZWxzZQotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFdLQ0FDb250ZXh0
TWFrZVJlbW90ZUZvcldpbmRvd1NlcnZlcigpOworICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1f
Y29udGV4dCA9IChDQUNvbnRleHQgKilXS0NBQ29udGV4dE1ha2VSZW1vdGVGb3JXaW5kb3dTZXJ2
ZXIoKTsKICNlbmRpZgogICAgIAogICAgIHJldHVybiBsYXllckhvc3RpbmdDb250ZXh0OwpAQCAt
ODMsMzIgKzg4LDM3IEBAIExheWVySG9zdGluZ0NvbnRleHQ6On5MYXllckhvc3RpbmdDb250ZXh0
KCkKIAogdm9pZCBMYXllckhvc3RpbmdDb250ZXh0OjpzZXRSb290TGF5ZXIoQ0FMYXllciAqcm9v
dExheWVyKQogewotICAgIFdLQ0FDb250ZXh0U2V0TGF5ZXIobV9jb250ZXh0LmdldCgpLCByb290
TGF5ZXIpOworICAgIFttX2NvbnRleHQgc2V0TGF5ZXI6cm9vdExheWVyXTsKIH0KIAogQ0FMYXll
ciAqTGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExheWVyKCkgY29uc3QKIHsKLSAgICByZXR1cm4g
V0tDQUNvbnRleHRHZXRMYXllcihtX2NvbnRleHQuZ2V0KCkpOworICAgIHJldHVybiBbbV9jb250
ZXh0IGxheWVyXTsKIH0KIAogdWludDMyX3QgTGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4dElE
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb250ZXh0SWQobV9jb250ZXh0
LmdldCgpKTsKKyAgICByZXR1cm4gW21fY29udGV4dCBjb250ZXh0SWRdOwogfQogCiB2b2lkIExh
eWVySG9zdGluZ0NvbnRleHQ6OmludmFsaWRhdGUoKQogewotICAgIFdLQ0FDb250ZXh0SW52YWxp
ZGF0ZShtX2NvbnRleHQuZ2V0KCkpOworICAgIFttX2NvbnRleHQgaW52YWxpZGF0ZV07CiB9CiAK
IHZvaWQgTGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Q29sb3JTcGFjZShDR0NvbG9yU3BhY2VSZWYg
Y29sb3JTcGFjZSkKIHsKLSAgICBXS0NBQ29udGV4dFNldENvbG9yU3BhY2UobV9jb250ZXh0Lmdl
dCgpLCBjb2xvclNwYWNlKTsKKyAgICBbbV9jb250ZXh0IHNldENvbG9yU3BhY2U6Y29sb3JTcGFj
ZV07CiB9CiAKIENHQ29sb3JTcGFjZVJlZiBMYXllckhvc3RpbmdDb250ZXh0Ojpjb2xvclNwYWNl
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gV0tDQUNvbnRleHRHZXRDb2xvclNwYWNlKG1fY29udGV4
dC5nZXQoKSk7CisgICAgcmV0dXJuIFttX2NvbnRleHQgY29sb3JTcGFjZV07Cit9CisKK3ZvaWQg
TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0KG1hY2hfcG9ydF90IGZlbmNlUG9ydCkK
K3sKKyAgICBbbV9jb250ZXh0IHNldEZlbmNlUG9ydDpmZW5jZVBvcnRdOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KaW5kZXggODM1MzgxNTE1
YmYxMTUxNmE3NGMxN2FhMTAxMzA2ZGU0NGJmYTBiNi4uNmFlMWIwMmMzZWE3MGFlZjVmOWI3Yzk1
NDJkY2MwZTcyZDNlMTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTIzLDE5
ICsyMywyOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaCIKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5LmgiCiAKICNpZiBQTEFURk9STShJT1MpCiAKLSNpbmNsdWRlICJSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0jaW5j
bHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
TWVzc2FnZXMuaCIKLSNpbmNsdWRlIDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KLSNpbmNs
dWRlIDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1RpbWVSYW5n
ZXMuaD4KKyNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKKyNpbXBv
cnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0
ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbXBvcnQgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW1wb3J0IDxRdWFydHpDb3JlL0Nv
cmVBbmltYXRpb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgorI2ltcG9ydCA8
V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKKyNpZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQor
I2ltcG9ydCA8VUlLaXQvVUlXaW5kb3dfUHJpdmF0ZS5oPgorI2Vsc2UKKyNpbXBvcnQgPFVJS2l0
L1VJV2luZG93Lmg+CitAaW50ZXJmYWNlIFVJV2luZG93IChEZXRhaWxzKQorKyAobWFjaF9wb3J0
X3QpX3N5bmNocm9uaXplRHJhd2luZ0Fjcm9zc1Byb2Nlc3NlczsKK0BlbmQKKyNlbmRpZgogCiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTg4LDcgKzE5Nyw4IEBAIHZvaWQgV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjplbmRTY2FubmluZygpCiAKIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6RmxvYXRS
ZWN0IGZyYW1lKQogewotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckZyYW1lKGZyYW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7
CisgICAgSVBDOjpBdHRhY2htZW50IGZlbmNlUG9ydChbVUlXaW5kb3cgX3N5bmNocm9uaXplRHJh
d2luZ0Fjcm9zc1Byb2Nlc3Nlc10sIE1BQ0hfTVNHX1RZUEVfTU9WRV9TRU5EKTsKKyAgICBtX3Bh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlNldFZpZGVvTGF5
ZXJGcmFtZUZlbmNlZChmcmFtZSwgZmVuY2VQb3J0KSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAK
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRWaWRlb0xheWVyR3Jhdml0
eShXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2aXR5IGdyYXZpdHkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLmgKaW5kZXggNmVmMDM2MTg1YWZiNGNkZTI4YjU2NjY2Y2RiZmM1OGU1
NDg5MzgzMy4uNDBlOWI1NDhiY2JkYjkzYzcwOTVhMTliOTFmYjk1M2YzOGJlY2ZmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29ubmVjdGlvbjsK
IGNsYXNzIE1lc3NhZ2VEZWNvZGVyOwogY2xhc3MgTWVzc2FnZVJlY2VpdmVyOwpAQCAtODMsNiAr
ODQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKCk7
CiAgICAgdmlydHVhbCB2b2lkIGRpZENsZWFudXBGdWxsc2NyZWVuKCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCk7CisgICAgdm9pZCBzZXRWaWRl
b0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2ht
ZW50IGZlbmNlUG9ydCk7CiAgICAgCiAgICAgV2ViUGFnZSogbV9wYWdlOwogICAgIFJlZlB0cjxX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50PiBtX3ZpZGVvRWxlbWVudDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDhiNGQ4ZWY1YjgxOGI4NGUyNjMyMDBlNzdlNjhj
Mzc5N2ZjOTZlMTMuLjM5MzYxMjI5MjZkZmM1NTc4MjM0ODU0Y2U4MzljZWFkOGE4ZGFhNjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzcsNyArMzcsNyBAQCBt
ZXNzYWdlcyAtPiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyIHsKICAgICBEaWRFeGl0RnVsbHNj
cmVlbigpCiAgICAgRGlkRW50ZXJGdWxsc2NyZWVuKCkKICAgICBEaWRDbGVhbnVwRnVsbHNjcmVl
bigpCi0gICAgU2V0VmlkZW9MYXllckZyYW1lKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMpCisg
ICAgU2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHMsIElQ
Qzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCiAgICAgU2V0VmlkZW9MYXllckdyYXZpdHlFbnVtKHVu
c2lnbmVkIGdyYXZpdHkpCiAgICAgU2VsZWN0QXVkaW9NZWRpYU9wdGlvbih1aW50NjRfdCBpbmRl
eCkKICAgICBTZWxlY3RMZWdpYmxlTWVkaWFPcHRpb24odWludDY0X3QgaW5kZXgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlci5tbQppbmRleCAyZjZhZDhlNzZkNmM5N2ExMGEzNzE5ZjYxNTQ1MDgwNWU4ZmRiYjA0
Li5lYzRkZjMwOWMyMDhlZGNjM2U1OTNhYjc4MDVkMWJiMjYwNWRmNjdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIubW0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPUykKIAorI2ltcG9y
dCAiQXR0YWNobWVudC5oIgogI2ltcG9ydCAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW1w
b3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCkBAIC00NSw2ICs0Niw3IEBA
CiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RpbWVSYW5n
ZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZVRocmVhZFJ1bi5oPgorI2ltcG9ydCA8bWFj
aC9tYWNoX3BvcnQuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKQEAgLTE3Niw2ICsx
NzgsNyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXI6OmRpZFNldHVwRnVsbHNjcmVl
bigpCiAgICAgW0NBVHJhbnNhY3Rpb24gYmVnaW5dOwogICAgIFtDQVRyYW5zYWN0aW9uIHNldERp
c2FibGVBY3Rpb25zOllFU107CiAKKyAgICBbdmlkZW9MYXllciBzZXRQb3NpdGlvbjpDR1BvaW50
TWFrZSgwLCAwKV07CiAgICAgW3ZpZGVvTGF5ZXIgc2V0QmFja2dyb3VuZENvbG9yOmNhY2hlZENH
Q29sb3IoV2ViQ29yZTo6Q29sb3I6OnRyYW5zcGFyZW50LCBXZWJDb3JlOjpDb2xvclNwYWNlRGV2
aWNlUkdCKV07CiAKICAgICAvLyBTZXQgYSBzY2FsZSBmYWN0b3IgaGVyZSB0byBtYWtlIGNvbnZl
cnRSZWN0OnRvTGF5ZXI6bmlsIHRha2Ugc2NhbGUgZmFjdG9yIGludG8gYWNjb3VudC4gPHJkYXI6
Ly9wcm9ibGVtLzE4MzE2NTQyPi4KQEAgLTI0MSw2ICsyNDQsMTMgQEAgdm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyOjpzZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jhdml0
eSkKIHsKICAgICBzZXRWaWRlb0xheWVyR3Jhdml0eSgoV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWw6
OlZpZGVvR3Jhdml0eSlncmF2aXR5KTsKIH0KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBib3Vu
ZHMsIElQQzo6QXR0YWNobWVudCBmZW5jZVBvcnQpCit7CisgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnBvcnQoKSk7CisgICAgc2V0VmlkZW9MYXllckZy
YW1lKGJvdW5kcyk7CisgICAgbWFjaF9wb3J0X2RlYWxsb2NhdGUobWFjaF90YXNrX3NlbGYoKSwg
ZmVuY2VQb3J0LnBvcnQoKSk7Cit9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCg==
</data>
<flag name="review"
          id="263073"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>238330</attachid>
            <date>2014-09-18 15:58:05 -0700</date>
            <delta_ts>2014-09-18 16:40:55 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>bug-136870-20140918155803.patch</filename>
            <type>text/plain</type>
            <size>17253</size>
            <attacher name="Jeremy Jones">jeremyj-wk</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTczNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTU5ZjUxMDIzMGExNTky
ZTA4MzRjNGY0ZTE3Nzc2ODY1NzY2MzUxMC4uYmQ3Y2NiNzNmMWU0MzhlMWYwYWQ3MDYyZjc5Zjk2
MThhODYzMmY3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA5LTE3ICBKZXJl
bXkgSm9uZXMgIDxqZXJlbXlqQGFwcGxlLmNvbT4KKworICAgICAgICBJbXByb3ZlIGZ1bGxzY3Jl
ZW4gdmlkZW8gcm90YXRpb24gYW5pbWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM2ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24g
RnJhc2VyLgorCisgICAgICAgIEluc3RlYWQgb2Ygc2V0dGluZyB0aGUgZnJhbWUgb24gdGhlIHZp
ZGVvIGxheWVyLCBzZXQgcG9zaXRpb24gYW5kIGJvdW5kcyBzZXBhcmF0ZWx5LiBUaGlzIGFsbG93
cyB0aGUgcG9zaXRpb24gdG8gYmUgc3luY2hyb25pemVkIHdpdGggdGhlIHJlc3Qgb2YgdGhlIGFu
aW1hdGlvbi4KKyAgICAgICAgV2hlbiB1c2luZyBhIGZlbmNlUG9ydCB0byBzeW5jaHJvbml6ZSBh
bmltYXRpb25zLCBpZiB0aGUgZmVuY2UgdGltZXMgb3V0LCBwaXZvdGluZyBhcm91bmQgdGhlIGNl
bnRlciBwcm92aWRlcyBhIGJldHRlciBmYWxsYmFjay4KKworICAgICAgICAqIHBsYXRmb3JtL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbToKKyAgICAgICAgKC1bV2ViQVZW
aWRlb0xheWVyIHNldFZpZGVvU3VibGF5ZXI6XSk6IGFkZGVkCisgICAgICAgICgtW1dlYkFWVmlk
ZW9MYXllciB2aWRlb1N1YmxheWVyXSk6IGFkZGVkCisgICAgICAgICgtW1dlYkFWVmlkZW9MYXll
ciBzZXRCb3VuZHM6XSk6ICBzZXQgcG9zaXRpb24gYW5kIGJvdW5kcyBpbnN0ZWQgb2YgZnJhbWUu
CisgICAgICAgIChXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6c2V0dXBGdWxsc2Ny
ZWVuKTogdXNlIHNldFZpZGVvU3VibGF5ZXIKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvV2ViVmlk
ZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW06CisgICAgICAgIChXZWJWaWRlb0Z1bGxz
Y3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIpOiBzZXQgYm91
bmRzIGFuZCBhbmNob3JQb2ludCBpbnN0ZWFkIG9mIGZyYW1lCisgICAgICAgIChXZWJWaWRlb0Z1
bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudDo6c2V0VmlkZW9MYXllckZyYW1lKTogc2V0IGJvdW5k
cyBpbnN0ZWFkIG9mIGZyYW1lLgorCiAyMDE0LTA5LTE3ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTczNjk1Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCmluZGV4IDIzNDRiY2EwYWRmMmIyYzZjODdiOGYyMzc2YWZmMDM5NGY0MTU4YmMuLjBi
ZjE2ODRkNDc1N2VhMzNmNWU5NmY1YWNlNGMwYTg1ODdhOWZiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzMSBAQAorMjAxNC0wOS0xNyAgSmVyZW15IEpvbmVzICA8amVyZW15akBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wcm92ZSBmdWxsc2NyZWVuIHZpZGVvIHJvdGF0aW9uIGFuaW1hdGlvbi4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg3MAor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBSZW1vdmUgV0tD
QUNvbnRleHQgZnJvbSBMYXllckhvc3RpbmdDb250ZXh0IGFuZCB1c2UgYSBmZW5jZVBvcnQgdG8g
c3luY2hyb25pemUgYW5pbWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzLgorCisgICAgICAgICogUGxh
dGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaDogYWRkIHNldEZlbmNlUG9ydC4gUmVtb3Zl
IFdLQ0FDb250ZXh0LgorICAgICAgICAqIFBsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0
Lm1tOgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JQb3J0
KTogUmVtb3ZlIFdLQ0FDb250ZXh0LgorICAgICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250
ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3RpbmdQcm9jZXNzKTogZGl0dG8KKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0Um9vdExheWVyKTogZGl0dG8KKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6cm9vdExheWVyKTogZGl0dG8KKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6Y29udGV4dElEKTogZGl0dG8KKyAgICAgICAg
KFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6aW52YWxpZGF0ZSk6IGRpdHRvCisgICAgICAg
IChXZWJLaXQ6OkxheWVySG9zdGluZ0NvbnRleHQ6OnNldENvbG9yU3BhY2UpOiBkaXR0bworICAg
ICAgICAoV2ViS2l0OjpMYXllckhvc3RpbmdDb250ZXh0Ojpjb2xvclNwYWNlKTogZGl0dG8KKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJIb3N0aW5nQ29udGV4dDo6c2V0RmVuY2VQb3J0KTogYWRkZWQK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZXRW
aWRlb0xheWVyRnJhbWUpOiAKKyAgICAgICAgKiBXZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlci5tZXNzYWdlcy5pbjogYWRkIGZlbmNlIHBvcnQgcGFyYW1ldGVyCisgICAgICAg
ICogV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbTogZGl0dG8KKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2Ny
ZWVuKTogZGl0dG8KKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
c2V0VmlkZW9MYXllckZyYW1lRmVuY2VkKTogZGl0dG8KKwogMjAxNC0wOS0xNyAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBv
dXQgcjE3MzY5NS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJW
aWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdC5tbQppbmRleCBkZWJiYzljMDgx
ZTc4OWZlMDA0NDA5ZDQ5ODBlOWU5M2RlMGU2MTY1Li45NWU3MGI1ODZiNzUzMWUzNThjMDRmOGVk
NmUwODkxMTI2YmQxNGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViVmlkZW9GdWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVsbHNjcmVlbkludGVyZmFjZUFWS2l0Lm1tCkBAIC00NzYs
MTIgKzQ3NiwxNCBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29yZU1lZGlhLCBrQ01UaW1lSW5kZWZp
bml0ZSwgQ01UaW1lKQogQHByb3BlcnR5IChub25hdG9taWMpIENHUmVjdCB2aWRlb1JlY3Q7CiAt
ICh2b2lkKXNldFBsYXllclZpZXdDb250cm9sbGVyOihBVlBsYXllclZpZXdDb250cm9sbGVyICop
cGxheWVyVmlld0NvbnRyb2xsZXI7CiAtICh2b2lkKXNldFBsYXllckNvbnRyb2xsZXI6KEFWUGxh
eWVyQ29udHJvbGxlciAqKXBsYXllckNvbnRyb2xsZXI7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmV0YWluKSBDQUxheWVyKiB2aWRlb1N1YmxheWVyOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
V2ViQVZWaWRlb0xheWVyCiB7CiAgICAgUmV0YWluUHRyPFdlYkFWUGxheWVyQ29udHJvbGxlcj4g
X2F2UGxheWVyQ29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8QVZQbGF5ZXJWaWV3Q29udHJvbGxl
cj4gX2F2UGxheWVyVmlld0NvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPENBTGF5ZXI+IF92aWRl
b1N1YmxheWVyOwogICAgIEFWVmlkZW9MYXllckdyYXZpdHkgX3ZpZGVvTGF5ZXJHcmF2aXR5Owog
fQogCkBAIC01MTEsNiArNTEzLDE3IEBAIFNPRlRfTElOS19DT05TVEFOVChDb3JlTWVkaWEsIGtD
TVRpbWVJbmRlZmluaXRlLCBDTVRpbWUpCiAgICAgX2F2UGxheWVyVmlld0NvbnRyb2xsZXIgPSBw
bGF5ZXJWaWV3Q29udHJvbGxlcjsKIH0KIAorLSAodm9pZClzZXRWaWRlb1N1YmxheWVyOihDQUxh
eWVyICopdmlkZW9TdWJsYXllcgoreworICAgIF92aWRlb1N1YmxheWVyID0gdmlkZW9TdWJsYXll
cjsKKyAgICBbc2VsZiBhZGRTdWJsYXllcjp2aWRlb1N1YmxheWVyXTsKK30KKworLSAoQ0FMYXll
ciopdmlkZW9TdWJsYXllcgoreworICAgIHJldHVybiBfdmlkZW9TdWJsYXllci5nZXQoKTsKK30K
KwogLSAodm9pZClzZXRCb3VuZHM6KENHUmVjdClib3VuZHMKIHsKICAgICBbc3VwZXIgc2V0Qm91
bmRzOmJvdW5kc107CkBAIC01MjEsMTQgKzUzNCwyMiBAQCBTT0ZUX0xJTktfQ09OU1RBTlQoQ29y
ZU1lZGlhLCBrQ01UaW1lSW5kZWZpbml0ZSwgQ01UaW1lKQogICAgIFVJVmlldyogcm9vdFZpZXcg
PSBbW19hdlBsYXllclZpZXdDb250cm9sbGVyIHZpZXddIHdpbmRvd107CiAgICAgaWYgKCFyb290
VmlldykKICAgICAgICAgcmV0dXJuOworICAgIAorICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsK
KyAgICBOU1RpbWVJbnRlcnZhbCBhbmltYXRpb25EdXJhdGlvbiA9IFtzZWxmIGFuaW1hdGlvbkZv
cktleTpAImJvdW5kcyJdLmR1cmF0aW9uOworICAgIGlmICghYW5pbWF0aW9uRHVyYXRpb24pIC8v
IGEgZHVyYXRpb24gb2YgMCBmb3IgQ0EgbWVhbnMgMC4yNS4gVGhpcyBpcyBhIHdheSB0byBhcHBy
b3hpbWF0ZSAwLgorICAgICAgICBhbmltYXRpb25EdXJhdGlvbiA9IDAuMDAxOworICAgIFtDQVRy
YW5zYWN0aW9uIHNldEFuaW1hdGlvbkR1cmF0aW9uOmFuaW1hdGlvbkR1cmF0aW9uXTsKKyAgICBb
Q0FUcmFuc2FjdGlvbiBzZXRBbmltYXRpb25UaW1pbmdGdW5jdGlvbjpbQ0FNZWRpYVRpbWluZ0Z1
bmN0aW9uIGZ1bmN0aW9uV2l0aE5hbWU6a0NBTWVkaWFUaW1pbmdGdW5jdGlvbkVhc2VJbkVhc2VP
dXRdXTsKIAogICAgIEZsb2F0UmVjdCByb290Qm91bmRzID0gW3Jvb3RWaWV3IGJvdW5kc107CiAg
ICAgW19hdlBsYXllckNvbnRyb2xsZXIgZGVsZWdhdGVdLT5zZXRWaWRlb0xheWVyRnJhbWUocm9v
dEJvdW5kcyk7CiAKICAgICBGbG9hdFJlY3Qgc291cmNlQm91bmRzID0gbGFyZ2VzdFJlY3RXaXRo
QXNwZWN0UmF0aW9JbnNpZGVSZWN0KENHUmVjdEdldFdpZHRoKGJvdW5kcykgLyBDR1JlY3RHZXRI
ZWlnaHQoYm91bmRzKSwgcm9vdEJvdW5kcyk7CiAgICAgQ0FUcmFuc2Zvcm0zRCB0cmFuc2Zvcm0g
PSBDQVRyYW5zZm9ybTNETWFrZVNjYWxlKGJvdW5kcy5zaXplLndpZHRoIC8gc291cmNlQm91bmRz
LndpZHRoKCksIGJvdW5kcy5zaXplLmhlaWdodCAvIHNvdXJjZUJvdW5kcy5oZWlnaHQoKSwgMSk7
Ci0gICAgdHJhbnNmb3JtID0gQ0FUcmFuc2Zvcm0zRFRyYW5zbGF0ZSh0cmFuc2Zvcm0sIGJvdW5k
cy5vcmlnaW4ueCAtIHNvdXJjZUJvdW5kcy54KCksIGJvdW5kcy5vcmlnaW4ueSAtIHNvdXJjZUJv
dW5kcy55KCksIDApOwotICAgIFtzZWxmIHNldFN1YmxheWVyVHJhbnNmb3JtOnRyYW5zZm9ybV07
CisgICAgW192aWRlb1N1YmxheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKENHUmVjdEdldE1p
ZFgoYm91bmRzKSwgQ0dSZWN0R2V0TWlkWShib3VuZHMpKV07CisgICAgW192aWRlb1N1YmxheWVy
IHNldFN1YmxheWVyVHJhbnNmb3JtOnRyYW5zZm9ybV07CisgICAgW0NBVHJhbnNhY3Rpb24gY29t
bWl0XTsKIH0KIAogLSAodm9pZClzZXRWaWRlb0xheWVyR3Jhdml0eTooQVZWaWRlb0xheWVyR3Jh
dml0eSl2aWRlb0xheWVyR3Jhdml0eQpAQCAtNzYwLDcgKzc4MSw3IEBAIHZvaWQgV2ViVmlkZW9G
dWxsc2NyZWVuSW50ZXJmYWNlQVZLaXQ6OnNldHVwRnVsbHNjcmVlbihQbGF0Zm9ybUxheWVyJiB2
aWRlb0xheWVyCiAgICAgICAgIAogICAgICAgICBtX3ZpZGVvTGF5ZXJDb250YWluZXIgPSBbV2Vi
QVZWaWRlb0xheWVyIHZpZGVvTGF5ZXJdOwogICAgICAgICBbbV92aWRlb0xheWVyQ29udGFpbmVy
IHNldEhpZGRlbjpwbGF5ZXJDb250cm9sbGVyKCkuZXh0ZXJuYWxQbGF5YmFja0FjdGl2ZV07Ci0g
ICAgICAgIFttX3ZpZGVvTGF5ZXJDb250YWluZXIgYWRkU3VibGF5ZXI6bV92aWRlb0xheWVyLmdl
dCgpXTsKKyAgICAgICAgW21fdmlkZW9MYXllckNvbnRhaW5lciBzZXRWaWRlb1N1YmxheWVyOm1f
dmlkZW9MYXllci5nZXQoKV07CiAgICAgICAgIAogICAgICAgICBDR1NpemUgdmlkZW9TaXplID0g
cGxheWVyQ29udHJvbGxlcigpLmNvbnRlbnREaW1lbnNpb25zOwogICAgICAgICBDR1JlY3Qgdmlk
ZW9SZWN0ID0gQ0dSZWN0TWFrZSgwLCAwLCB2aWRlb1NpemUud2lkdGgsIHZpZGVvU2l6ZS5oZWln
aHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYlZpZGVvRnVs
bHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tCmluZGV4IDRkODhjOWFlMzRi
MTI4YThkNDdkNDIxODQ0YmM1MjhjYjY1OThhYWQuLjhjNDYxN2E0MTcwMTk2MGM3OTMyYmNlOTg1
OTRlMzQ2NTg0MTkwMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9X
ZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbFZpZGVvRWxlbWVudC5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQubW0KQEAg
LTE1Miw3ICsxNTIsOCBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
OjpzZXRWaWRlb0Z1bGxzY3JlZW5MYXllcihQbGF0Zm9ybUxheWVyKgogICAgICAgICByZXR1cm47
CiAgICAgCiAgICAgbV92aWRlb0Z1bGxzY3JlZW5MYXllciA9IHZpZGVvTGF5ZXI7Ci0gICAgW21f
dmlkZW9GdWxsc2NyZWVuTGF5ZXIgc2V0RnJhbWU6bV92aWRlb0ZyYW1lXTsKKyAgICBbbV92aWRl
b0Z1bGxzY3JlZW5MYXllciBzZXRBbmNob3JQb2ludDpDR1BvaW50TWFrZSgwLjUsIDAuNSldOwor
ICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEJvdW5kczptX3ZpZGVvRnJhbWVdOwogICAg
IAogICAgIF9fYmxvY2sgUmVmUHRyPFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50
PiBwcm90ZWN0KHRoaXMpOwogICAgIFdlYlRocmVhZFJ1biheewpAQCAtMjc4LDcgKzI3OSw3IEBA
IHZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTW9kZWxWaWRlb0VsZW1lbnQ6OnJlcXVlc3RFeGl0RnVs
bHNjcmVlbigpCiB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50OjpzZXRW
aWRlb0xheWVyRnJhbWUoRmxvYXRSZWN0IHJlY3QpCiB7CiAgICAgbV92aWRlb0ZyYW1lID0gcmVj
dDsKLSAgICBbbV92aWRlb0Z1bGxzY3JlZW5MYXllciBzZXRGcmFtZTpDR1JlY3QocmVjdCldOwor
ICAgIFttX3ZpZGVvRnVsbHNjcmVlbkxheWVyIHNldEJvdW5kczpDR1JlY3QocmVjdCldOwogICAg
IG1fdmlkZW9FbGVtZW50LT5zZXRWaWRlb0Z1bGxzY3JlZW5GcmFtZShyZWN0KTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL21hYy9MYXllckhvc3RpbmdDb250ZXh0LmgKaW5k
ZXggYmI5MTA0ZTQ3NjAyZGM1ZDZhZDYwNGVjZTkwODMxMmU3MzI3ZTIwNi4uZTdhMzRkZmEzZmJk
YTRkYWEwMmE1ZTYyOWZjN2MwZjQ1Mzg2N2ViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vbWFjL0xheWVySG9zdGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9Q
bGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7Ci10eXBlZGVmIHN0
cnVjdCBfX1dLQ0FDb250ZXh0UmVmICpXS0NBQ29udGV4dFJlZjsKK09CSkNfQ0xBU1MgQ0FDb250
ZXh0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNTcsMTAgKzU3LDEyIEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgc2V0Q29sb3JTcGFjZShDR0NvbG9yU3BhY2VSZWYpOwogICAgIENHQ29sb3JT
cGFjZVJlZiBjb2xvclNwYWNlKCkgY29uc3Q7CisgICAgCisgICAgdm9pZCBzZXRGZW5jZVBvcnQo
bWFjaF9wb3J0X3QpOwogCiBwcml2YXRlOgogICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhv
c3RpbmdNb2RlOwotICAgIFJldGFpblB0cjxXS0NBQ29udGV4dFJlZj4gbV9jb250ZXh0OworICAg
IFJldGFpblB0cjxDQUNvbnRleHQ+IG1fY29udGV4dDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vbWFjL0xheWVySG9zdGlu
Z0NvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29u
dGV4dC5tbQppbmRleCAxM2Y3NDA5ZGQwYzQxMWQ3Y2ViYTU0MzZkNDY1NjljNzZhM2I4ODQ2Li4w
ZDgxNTk0OGRmMjk5YjUwZDhkOTZlYzAxZjVkOWRlOTVhZWZjOWNkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybS9tYWMvTGF5ZXJIb3N0aW5nQ29udGV4dC5tbQpAQCAtMjgsMTYg
KzI4LDIxIEBACiAKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgogCi0jaWYgX19o
YXNfaW5jbHVkZSg8UXVhcnR6Q29yZS9RdWFydHpDb3JlUHJpdmF0ZS5oPikKLSNpbXBvcnQgPFF1
YXJ0ekNvcmUvUXVhcnR6Q29yZVByaXZhdGUuaD4KKyNpZiBfX2hhc19pbmNsdWRlKDxRdWFydHpD
b3JlL0NBQ29udGV4dC5oPikKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FDb250ZXh0Lmg+CiAjZWxz
ZQogQGludGVyZmFjZSBDQUNvbnRleHQgOiBOU09iamVjdAogQGVuZAotI2VuZGlmCiAKIEBpbnRl
cmZhY2UgQ0FDb250ZXh0IChEZXRhaWxzKQorLSAodm9pZClpbnZhbGlkYXRlOworQHByb3BlcnR5
IChyZWFkb25seSkgdWludDMyX3QgY29udGV4dElkOworQHByb3BlcnR5IChzdHJvbmcpIENBTGF5
ZXIgKmxheWVyOworQHByb3BlcnR5IENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNlOworLSAodm9p
ZClzZXRGZW5jZVBvcnQ6KG1hY2hfcG9ydF90KXBvcnQ7CiArIChDQUNvbnRleHQgKilyZW1vdGVD
b250ZXh0V2l0aE9wdGlvbnM6KE5TRGljdGlvbmFyeSAqKWRpY3Q7CiBAZW5kCisjZW5kaWYKIAog
ZXh0ZXJuIE5TU3RyaW5nICogY29uc3Qga0NBQ29udGV4dElnbm9yZXNIaXRUZXN0OwogCkBAIC00
OCw3ICs1Myw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBMYXllckhv
c3RpbmdDb250ZXh0OjpjcmVhdGVGb3JQb3J0KG1hY2hfcG9yCiAgICAgYXV0byBsYXllckhvc3Rp
bmdDb250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxMYXllckhvc3RpbmdDb250ZXh0PigpOwogCiAg
ICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9sYXllckhvc3RpbmdNb2RlID0gTGF5ZXJIb3N0aW5n
TW9kZTo6SW5Qcm9jZXNzOwotICAgIGxheWVySG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IFdL
Q0FDb250ZXh0TWFrZVJlbW90ZVdpdGhTZXJ2ZXJQb3J0KHNlcnZlclBvcnQpOworICAgIGxheWVy
SG9zdGluZ0NvbnRleHQtPm1fY29udGV4dCA9IChDQUNvbnRleHQgKilXS0NBQ29udGV4dE1ha2VS
ZW1vdGVXaXRoU2VydmVyUG9ydChzZXJ2ZXJQb3J0KTsKIAogICAgIHJldHVybiBsYXllckhvc3Rp
bmdDb250ZXh0OwogfQpAQCAtNjIsMTEgKzY3LDExIEBAIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhv
c3RpbmdDb250ZXh0PiBMYXllckhvc3RpbmdDb250ZXh0OjpjcmVhdGVGb3JFeHRlcm5hbEhvc3Rp
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIFVzZSBhIHZlcnkgbGFyZ2UgZGlzcGxheSBJRCB0
byBlbnN1cmUgdGhhdCB0aGUgY29udGV4dCBpcyBuZXZlciBwdXQgb24tc2NyZWVuIAogICAgIC8v
IHdpdGhvdXQgYmVpbmcgZXhwbGljaXRseSBwYXJlbnRlZC4gU2VlIDxyZGFyOi8vcHJvYmxlbS8x
NjA4OTI2Nz4gZm9yIGRldGFpbHMuCi0gICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0
ID0gKFdLQ0FDb250ZXh0UmVmKVtDQUNvbnRleHQgcmVtb3RlQ29udGV4dFdpdGhPcHRpb25zOkB7
CisgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gW0NBQ29udGV4dCByZW1vdGVD
b250ZXh0V2l0aE9wdGlvbnM6QHsKICAgICAgICAga0NBQ29udGV4dElnbm9yZXNIaXRUZXN0IDog
QFlFUywKICAgICAgICAga0NBQ29udGV4dERpc3BsYXlJZCA6IEAxMDAwMCB9XTsKICNlbHNlCi0g
ICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0gV0tDQUNvbnRleHRNYWtlUmVtb3Rl
Rm9yV2luZG93U2VydmVyKCk7CisgICAgbGF5ZXJIb3N0aW5nQ29udGV4dC0+bV9jb250ZXh0ID0g
KENBQ29udGV4dCAqKVdLQ0FDb250ZXh0TWFrZVJlbW90ZUZvcldpbmRvd1NlcnZlcigpOwogI2Vu
ZGlmCiAgICAgCiAgICAgcmV0dXJuIGxheWVySG9zdGluZ0NvbnRleHQ7CkBAIC04MywzMiArODgs
MzcgQEAgTGF5ZXJIb3N0aW5nQ29udGV4dDo6fkxheWVySG9zdGluZ0NvbnRleHQoKQogCiB2b2lk
IExheWVySG9zdGluZ0NvbnRleHQ6OnNldFJvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIpCiB7
Ci0gICAgV0tDQUNvbnRleHRTZXRMYXllcihtX2NvbnRleHQuZ2V0KCksIHJvb3RMYXllcik7Cisg
ICAgW21fY29udGV4dCBzZXRMYXllcjpyb290TGF5ZXJdOwogfQogCiBDQUxheWVyICpMYXllckhv
c3RpbmdDb250ZXh0Ojpyb290TGF5ZXIoKSBjb25zdAogewotICAgIHJldHVybiBXS0NBQ29udGV4
dEdldExheWVyKG1fY29udGV4dC5nZXQoKSk7CisgICAgcmV0dXJuIFttX2NvbnRleHQgbGF5ZXJd
OwogfQogCiB1aW50MzJfdCBMYXllckhvc3RpbmdDb250ZXh0Ojpjb250ZXh0SUQoKSBjb25zdAog
ewotICAgIHJldHVybiBXS0NBQ29udGV4dEdldENvbnRleHRJZChtX2NvbnRleHQuZ2V0KCkpOwor
ICAgIHJldHVybiBbbV9jb250ZXh0IGNvbnRleHRJZF07CiB9CiAKIHZvaWQgTGF5ZXJIb3N0aW5n
Q29udGV4dDo6aW52YWxpZGF0ZSgpCiB7Ci0gICAgV0tDQUNvbnRleHRJbnZhbGlkYXRlKG1fY29u
dGV4dC5nZXQoKSk7CisgICAgW21fY29udGV4dCBpbnZhbGlkYXRlXTsKIH0KIAogdm9pZCBMYXll
ckhvc3RpbmdDb250ZXh0OjpzZXRDb2xvclNwYWNlKENHQ29sb3JTcGFjZVJlZiBjb2xvclNwYWNl
KQogewotICAgIFdLQ0FDb250ZXh0U2V0Q29sb3JTcGFjZShtX2NvbnRleHQuZ2V0KCksIGNvbG9y
U3BhY2UpOworICAgIFttX2NvbnRleHQgc2V0Q29sb3JTcGFjZTpjb2xvclNwYWNlXTsKIH0KIAog
Q0dDb2xvclNwYWNlUmVmIExheWVySG9zdGluZ0NvbnRleHQ6OmNvbG9yU3BhY2UoKSBjb25zdAog
ewotICAgIHJldHVybiBXS0NBQ29udGV4dEdldENvbG9yU3BhY2UobV9jb250ZXh0LmdldCgpKTsK
KyAgICByZXR1cm4gW21fY29udGV4dCBjb2xvclNwYWNlXTsKK30KKwordm9pZCBMYXllckhvc3Rp
bmdDb250ZXh0OjpzZXRGZW5jZVBvcnQobWFjaF9wb3J0X3QgZmVuY2VQb3J0KQoreworICAgIFtt
X2NvbnRleHQgc2V0RmVuY2VQb3J0OmZlbmNlUG9ydF07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQppbmRleCA4MzUzODE1MTViZjExNTE2YTc0
YzE3YWExMDEzMDZkZTQ0YmZhMGI2Li42YWUxYjAyYzNlYTcwYWVmNWY5YjdjOTU0MmRjYzBlNzJk
M2UxOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbQpAQCAtMjMsMTkgKzIzLDI4IEBA
CiAgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oIgorI2lt
cG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aCIKIAogI2lmIFBMQVRGT1JNKElPUykKIAotI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKLSNpbmNsdWRlICJXZWJQ
cm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyTWVzc2Fn
ZXMuaCIKLSNpbmNsdWRlICJXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5o
IgotI2luY2x1ZGUgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgotI2luY2x1ZGUgPFdlYktp
dFN5c3RlbUludGVyZmFjZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgorI2lt
cG9ydCAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgorI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oIgorI2ltcG9ydCAiV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlv
bi5oPgorI2ltcG9ydCA8V2ViQ29yZS9UaW1lUmFuZ2VzLmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0
ZW1JbnRlcmZhY2UuaD4KKworI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisjaW1wb3J0IDxV
SUtpdC9VSVdpbmRvd19Qcml2YXRlLmg+CisjZWxzZQorI2ltcG9ydCA8VUlLaXQvVUlXaW5kb3cu
aD4KK0BpbnRlcmZhY2UgVUlXaW5kb3cgKERldGFpbHMpCisrIChtYWNoX3BvcnRfdClfc3luY2hy
b25pemVEcmF3aW5nQWNyb3NzUHJvY2Vzc2VzOworQGVuZAorI2VuZGlmCiAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCkBAIC0xODgsNyArMTk3LDggQEAgdm9pZCBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHk6OmVuZFNjYW5uaW5nKCkKIAogdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJGcmFtZShXZWJDb3JlOjpGbG9hdFJlY3QgZnJhbWUp
CiB7Ci0gICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2Vy
OjpTZXRWaWRlb0xheWVyRnJhbWUoZnJhbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICBJUEM6
OkF0dGFjaG1lbnQgZmVuY2VQb3J0KFtVSVdpbmRvdyBfc3luY2hyb25pemVEcmF3aW5nQWNyb3Nz
UHJvY2Vzc2VzXSwgTUFDSF9NU0dfVFlQRV9NT1ZFX1NFTkQpOworICAgIG1fcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6U2V0VmlkZW9MYXllckZyYW1lRmVu
Y2VkKGZyYW1lLCBmZW5jZVBvcnQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNldFZpZGVvTGF5ZXJHcmF2aXR5KFdlYkNvcmU6
OldlYlZpZGVvRnVsbHNjcmVlbk1vZGVsOjpWaWRlb0dyYXZpdHkgZ3Jhdml0eSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXIuaAppbmRleCA2ZWYwMzYxODVhZmI0Y2RlMjhiNTY2NjZjZGJmYzU4ZTU0ODkzODMzLi40
MGU5YjU0OGJjYmRiOTNjNzA5NWExOWI5MWZiOTUzZjM4YmVjZmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
ci5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb25uZWN0aW9uOwogY2xhc3MgTWVz
c2FnZURlY29kZXI7CiBjbGFzcyBNZXNzYWdlUmVjZWl2ZXI7CkBAIC04Myw2ICs4NCw3IEBAIHBy
b3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2xlYW51cEZ1bGxzY3JlZW4oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlk
ZW9MYXllckdyYXZpdHlFbnVtKHVuc2lnbmVkKTsKKyAgICB2b2lkIHNldFZpZGVvTGF5ZXJGcmFt
ZUZlbmNlZChXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzLCBJUEM6OkF0dGFjaG1lbnQgZmVuY2VQ
b3J0KTsKICAgICAKICAgICBXZWJQYWdlKiBtX3BhZ2U7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQ+IG1fdmlkZW9FbGVtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIu
bWVzc2FnZXMuaW4KaW5kZXggOGI0ZDhlZjViODE4Yjg0ZTI2MzIwMGU3N2U2OGMzNzk3ZmM5NmUx
My4uMzkzNjEyMjkyNmRmYzU1NzgyMzQ4NTRjZTgzOWNlYWQ4YThkYWE2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNyw3ICszNyw3IEBAIG1lc3NhZ2VzIC0+
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIgewogICAgIERpZEV4aXRGdWxsc2NyZWVuKCkKICAg
ICBEaWRFbnRlckZ1bGxzY3JlZW4oKQogICAgIERpZENsZWFudXBGdWxsc2NyZWVuKCkKLSAgICBT
ZXRWaWRlb0xheWVyRnJhbWUoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcykKKyAgICBTZXRWaWRl
b0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpBdHRhY2ht
ZW50IGZlbmNlUG9ydCkKICAgICBTZXRWaWRlb0xheWVyR3Jhdml0eUVudW0odW5zaWduZWQgZ3Jh
dml0eSkKICAgICBTZWxlY3RBdWRpb01lZGlhT3B0aW9uKHVpbnQ2NF90IGluZGV4KQogICAgIFNl
bGVjdExlZ2libGVNZWRpYU9wdGlvbih1aW50NjRfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0gYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1t
CmluZGV4IDJmNmFkOGU3NmQ2Yzk3YTEwYTM3MTlmNjE1NDUwODA1ZThmZGJiMDQuLmVjNGRmMzA5
YzIwOGVkY2MzZTU5M2FiNzgwNWQxYmIyNjA1ZGY2N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9pb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tbQpA
QCAtMjcsNiArMjcsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TKQogCisjaW1wb3J0ICJBdHRhY2ht
ZW50LmgiCiAjaW1wb3J0ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbXBvcnQgIldlYlBh
Z2UuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGltZVJhbmdlcy5oPgogI2lt
cG9ydCA8V2ViQ29yZS9XZWJDb3JlVGhyZWFkUnVuLmg+CisjaW1wb3J0IDxtYWNoL21hY2hfcG9y
dC5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTc2LDYgKzE3OCw3IEBAIHZv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6ZGlkU2V0dXBGdWxsc2NyZWVuKCkKICAgICBb
Q0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlv
bnM6WUVTXTsKIAorICAgIFt2aWRlb0xheWVyIHNldFBvc2l0aW9uOkNHUG9pbnRNYWtlKDAsIDAp
XTsKICAgICBbdmlkZW9MYXllciBzZXRCYWNrZ3JvdW5kQ29sb3I6Y2FjaGVkQ0dDb2xvcihXZWJD
b3JlOjpDb2xvcjo6dHJhbnNwYXJlbnQsIFdlYkNvcmU6OkNvbG9yU3BhY2VEZXZpY2VSR0IpXTsK
IAogICAgIC8vIFNldCBhIHNjYWxlIGZhY3RvciBoZXJlIHRvIG1ha2UgY29udmVydFJlY3Q6dG9M
YXllcjpuaWwgdGFrZSBzY2FsZSBmYWN0b3IgaW50byBhY2NvdW50LiA8cmRhcjovL3Byb2JsZW0v
MTgzMTY1NDI+LgpAQCAtMjQxLDYgKzI0NCwxMyBAQCB2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OnNldFZpZGVvTGF5ZXJHcmF2aXR5RW51bSh1bnNpZ25lZCBncmF2aXR5KQogewogICAg
IHNldFZpZGVvTGF5ZXJHcmF2aXR5KChXZWJWaWRlb0Z1bGxzY3JlZW5Nb2RlbDo6VmlkZW9HcmF2
aXR5KWdyYXZpdHkpOwogfQorICAgIAordm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpz
ZXRWaWRlb0xheWVyRnJhbWVGZW5jZWQoV2ViQ29yZTo6RmxvYXRSZWN0IGJvdW5kcywgSVBDOjpB
dHRhY2htZW50IGZlbmNlUG9ydCkKK3sKKyAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNldEZl
bmNlUG9ydChmZW5jZVBvcnQucG9ydCgpKTsKKyAgICBzZXRWaWRlb0xheWVyRnJhbWUoYm91bmRz
KTsKKyAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBmZW5jZVBvcnQu
cG9ydCgpKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>