<?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>193049</bug_id>
          
          <creation_ts>2018-12-28 12:12:08 -0800</creation_ts>
          <short_desc>Move WKEditCommandObjC and WKEditorUndoTargetObjC into a separate file</short_desc>
          <delta_ts>2018-12-28 22:25:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>HTML Editing</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1490945</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 12:12:08 -0800</bug_when>
    <thetext>The interfaces and implementations for these two Objective-C objects are currently in both PageClientIOS and WebViewImpl, with nearly identical code. We should de-duplicate this logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490948</commentid>
    <comment_count>1</comment_count>
      <attachid>358121</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 13:03:20 -0800</bug_when>
    <thetext>Created attachment 358121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490954</commentid>
    <comment_count>2</comment_count>
      <attachid>358121</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2018-12-28 17:12:04 -0800</bug_when>
    <thetext>Comment on attachment 358121
Patch

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

&gt; Source/WebKit/ChangeLog:15
&gt; +        Rename WKEditCommandObjC to WKEditCommand, and WKEditorUndoTarget to WKEditorUndoTargetObjC. The ObjC suffix in

Looks like you have this phrase backwards: &quot;WKEditorUndoTarget to WKEditorUndoTargetObjC&quot;.

&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:36
&gt; +    RefPtr&lt;WebKit::WebEditCommandProxy&gt; m_command;

This member should go in the implementation file.

&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:38
&gt; +- (instancetype)initWithWebEditCommandProxy:(Ref&lt;WebKit::WebEditCommandProxy&gt;&amp;&amp;)command;

I think you probably also want something like:
- (instancetype)init NS_UNAVAILABLE;

&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:39
&gt; +- (WebKit::WebEditCommandProxy*)command;

Can this ever be null? If not, return a reference?

&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:45
&gt; +@interface WKEditorUndoTarget : NSObject
&gt; +- (void)undoEditing:(id)sender;
&gt; +- (void)redoEditing:(id)sender;
&gt; +@end

My instinct is that this should have it&apos;s own file, but it is very closely tied to WKEditCommand. Perhaps a comment explaining why it&apos;s here would help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490973</commentid>
    <comment_count>3</comment_count>
      <attachid>358121</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 19:43:27 -0800</bug_when>
    <thetext>Comment on attachment 358121
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:15
&gt;&gt; +        Rename WKEditCommandObjC to WKEditCommand, and WKEditorUndoTarget to WKEditorUndoTargetObjC. The ObjC suffix in
&gt; 
&gt; Looks like you have this phrase backwards: &quot;WKEditorUndoTarget to WKEditorUndoTargetObjC&quot;.

Oops, that&apos;s right. Fixed!

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:36
&gt;&gt; +    RefPtr&lt;WebKit::WebEditCommandProxy&gt; m_command;
&gt; 
&gt; This member should go in the implementation file.

Moved to the @implementation.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:38
&gt;&gt; +- (instancetype)initWithWebEditCommandProxy:(Ref&lt;WebKit::WebEditCommandProxy&gt;&amp;&amp;)command;
&gt; 
&gt; I think you probably also want something like:
&gt; - (instancetype)init NS_UNAVAILABLE;

Marked -init as unavailable.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:39
&gt;&gt; +- (WebKit::WebEditCommandProxy*)command;
&gt; 
&gt; Can this ever be null? If not, return a reference?

Good catch, this should always be nonnull. Made this a WebEditCommandProxy&amp;, and updated the call sites.

&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:45
&gt;&gt; +@end
&gt; 
&gt; My instinct is that this should have it&apos;s own file, but it is very closely tied to WKEditCommand. Perhaps a comment explaining why it&apos;s here would help.

Sounds good, I&apos;ll clarify this with a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490976</commentid>
    <comment_count>4</comment_count>
      <attachid>358130</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 19:59:04 -0800</bug_when>
    <thetext>Created attachment 358130
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490977</commentid>
    <comment_count>5</comment_count>
      <attachid>358121</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 20:21:42 -0800</bug_when>
    <thetext>Comment on attachment 358121
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/Cocoa/WKEditCommand.h:36
&gt;&gt;&gt; +    RefPtr&lt;WebKit::WebEditCommandProxy&gt; m_command;
&gt;&gt; 
&gt;&gt; This member should go in the implementation file.
&gt; 
&gt; Moved to the @implementation.

On second thought, this seems to break the 32-bit build :(

I&apos;ll move it back to the @interface { } for now, but at least added a @private so that nothing can access the ivar directly using -&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490981</commentid>
    <comment_count>6</comment_count>
      <attachid>358131</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-12-28 20:26:01 -0800</bug_when>
    <thetext>Created attachment 358131
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490982</commentid>
    <comment_count>7</comment_count>
      <attachid>358131</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-12-28 21:50:13 -0800</bug_when>
    <thetext>Comment on attachment 358131
Patch for EWS

Clearing flags on attachment: 358131

Committed r239558: &lt;https://trac.webkit.org/changeset/239558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1490983</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-28 22:25:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/46975343&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358121</attachid>
            <date>2018-12-28 13:03:20 -0800</date>
            <delta_ts>2018-12-28 17:12:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-193049-20181228130319.patch</filename>
            <type>text/plain</type>
            <size>20460</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE3NmFkZjQyNjc1NTRkZTZl
Y2RhNGI4NzUwZjZlNzc0YjVkZDIxNWEuLmFkMDNlOGI2ZjUyNjNmYjgxZTU3MDQ3ZjRiMDQxNjNm
MDA5MTljZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTgtMTItMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBXS0VkaXRDb21t
YW5kT2JqQyBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBpbnRvIGEgc2VwYXJhdGUgZmlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHVsbCBjb21t
b24gY29kZSAoV0tFZGl0Q29tbWFuZE9iakMgYW5kIFdLRWRpdG9yVW5kb1RhcmdldE9iakMpIG9u
IGlPUyBhbmQgbWFjT1Mgb3V0IGludG8gYSBzZXBhcmF0ZSBmaWxlLiBObworICAgICAgICBjaGFu
Z2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tOiBBZGRlZC4KKworICAgICAgICBSZW5hbWUgV0tF
ZGl0Q29tbWFuZE9iakMgdG8gV0tFZGl0Q29tbWFuZCwgYW5kIFdLRWRpdG9yVW5kb1RhcmdldCB0
byBXS0VkaXRvclVuZG9UYXJnZXRPYmpDLiBUaGUgT2JqQyBzdWZmaXggaW4KKyAgICAgICAgdGhl
IG5hbWUgc2VlbXMgdG8gZGl2ZXJnZSBmcm9tIHRoZSBjb21tb24gbmFtaW5nIHNjaGVtZSBpbiBv
dGhlciBwYXJ0cyBvZiBXZWJLaXQsIHdoZXJlIG1vc3QgV0stIGFuZCBfV0stCisgICAgICAgIHBy
ZWZpeGVkIG5hbWVzIGFscmVhZHkgcmVmZXIgdG8gT2JqZWN0aXZlLUMgb2JqZWN0cy4KKworICAg
ICAgICAoLVtXS0VkaXRDb21tYW5kIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKToKKwor
ICAgICAgICBNYWtlIHRoZSByZXR1cm4gdHlwZSBpbnN0YW5jZXR5cGUgaW5zdGVhZCBvZiBpZCwg
YW5kIGFsc28gbWFrZSB0aGlzIHRha2UgYSBSZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBpbnN0
ZWFkCisgICAgICAgIG9mIGEgUmVmUHRyLgorCisgICAgICAgICgtW1dLRWRpdENvbW1hbmQgY29t
bWFuZF0pOgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXQgdW5kb0VkaXRpbmc6XSk6Cisg
ICAgICAgICgtW1dLRWRpdG9yVW5kb1RhcmdldCByZWRvRWRpdGluZzpdKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1w
bCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToK
KworICAgICAgICBVc2UgV1RGTW92ZSBpbnN0ZWFkIG9mIGNvcHlpbmcgdGhlIFJlZiB3aGVuIGNy
ZWF0aW5nIGEgV0tFZGl0Q29tbWFuZC4KKworICAgICAgICAoLVtXS0VkaXRDb21tYW5kT2JqQyBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRp
dENvbW1hbmRPYmpDIGNvbW1hbmRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tFZGl0b3JVbmRv
VGFyZ2V0T2JqQyB1bmRvRWRpdGluZzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tFZGl0b3JV
bmRvVGFyZ2V0T2JqQyByZWRvRWRpdGluZzpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9QYWdl
Q2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OlBhZ2VD
bGllbnRJbXBsKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRp
dENvbW1hbmQpOgorCisgICAgICAgIFVzZSBXVEZNb3ZlIGluc3RlYWQgb2YgY3JlYXRpbmcgYSBu
ZXcgUmVmUHRyIHdoZW4gY3JlYXRpbmcgYSBXS0VkaXRDb21tYW5kLgorCisgICAgICAgICgtW1dL
RWRpdENvbW1hbmRPYmpDIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMgY29tbWFuZF0pOiBEZWxldGVkLgorICAgICAg
ICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHJlZG9FZGl0aW5nOl0pOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaDoKKyAgICAgICAgKiBX
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOC0xMi0yNiAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Ig
dXNpbmcgdGhlIGN1cnJlbnQgdGV4dCBzZWxlY3Rpb24gYXMgdGhlIGZpbmQgc3RyaW5nIG9uIGlP
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dl
YktpdC9Tb3VyY2VzQ29jb2EudHh0CmluZGV4IDMyMDE3M2ZhN2IxMjYwZjJiNGNjY2MzNjlkMTlm
NzQ3Y2E0MjM0YTkuLjU2ZjNjNDVjNDExOWU3ZGNmYzhkYjRiMDllNTNkMmIwMDU4MDFlN2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NvdXJjZXNDb2NvYS50eHQKQEAgLTMzOSw2ICszMzksNyBAQCBVSVByb2Nlc3MvQ29jb2Ev
V2ViUHJvY2Vzc1Bvb2xDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCiBVSVByb2Nlc3MvQ29jb2EvV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KK1VJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5k
Lm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLm1tCiBVSVBy
b2Nlc3MvQ29jb2EvV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0KIFVJUHJv
Y2Vzcy9Db2NvYS9XS1dlYlZpZXdDb250ZW50UHJvdmlkZXJSZWdpc3RyeS5tbQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg2NDg0
NzZmZTRjYzZjYzUzYzEwMWEzMGM2YmI0ZGM2MzVkMThiNDEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLmgKQEAgLTAsMCArMSw0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JlZi5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJF
ZGl0Q29tbWFuZFByb3h5OworfQorCitAaW50ZXJmYWNlIFdLRWRpdENvbW1hbmQgOiBOU09iamVj
dCB7CisgICAgUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5kOwor
fQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmPFdlYktp
dDo6V2ViRWRpdENvbW1hbmRQcm94eT4mJiljb21tYW5kOworLSAoV2ViS2l0OjpXZWJFZGl0Q29t
bWFuZFByb3h5Kiljb21tYW5kOworQGVuZAorCitAaW50ZXJmYWNlIFdLRWRpdG9yVW5kb1Rhcmdl
dCA6IE5TT2JqZWN0CistICh2b2lkKXVuZG9FZGl0aW5nOihpZClzZW5kZXI7CistICh2b2lkKXJl
ZG9FZGl0aW5nOihpZClzZW5kZXI7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV0tFZGl0Q29tbWFuZC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTljYmVmZWYzZTc0NjcwYmZhMzgy
Mjg5N2IwNmQ2MDcyZTliNGE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5tbQpAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0VkaXRDb21tYW5kLmgiCisKKyNpbXBv
cnQgIldlYkVkaXRDb21tYW5kUHJveHkuaCIKKworQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1h
bmQKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmPFdl
YktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4mJiljb21tYW5kCit7CisgICAgc2VsZiA9IFtzdXBl
ciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBtX2Nv
bW1hbmQgPSBXVEZNb3ZlKGNvbW1hbmQpOworICAgIHJldHVybiBzZWxmOworfQorCistIChXZWJL
aXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQKK3sKKyAgICByZXR1cm4gbV9jb21tYW5k
LmdldCgpOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0VkaXRvclVuZG9UYXJnZXQK
KworLSAodm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyCit7CisgICAgQVNTRVJUKFtzZW5kZXIg
aXNLaW5kT2ZDbGFzczpXS0VkaXRDb21tYW5kLmNsYXNzXSk7CisgICAgW3NlbmRlciBjb21tYW5k
XS0+dW5hcHBseSgpOworfQorCistICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXIKK3sKKyAg
ICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOldLRWRpdENvbW1hbmQuY2xhc3NdKTsKKyAg
ICBbc2VuZGVyIGNvbW1hbmRdLT5yZWFwcGx5KCk7Cit9CisKK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDAyODAzN2NjNTk4NzMwNzlkN2Jh
MDI0MjBlOTA3YWU2ZmZhOGM0ZjIuLmY3NTdkODcyNGYyNjdmZDkxYTAwMDI0OGY0OGQ0MjkxYjMy
MzUxN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNTAsNyArNTAsNyBAQCBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4dDsKIE9CSkNfQ0xB
U1MgTlNWaWV3OwogT0JKQ19DTEFTUyBXS0FjY2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyOwog
T0JKQ19DTEFTUyBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7Ci1PQkpDX0NMQVNTIFdLRWRp
dG9yVW5kb1RhcmdldE9iakM7CitPQkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldDsKIE9CSkNf
Q0xBU1MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyOwogT0JKQ19DTEFTUyBXS1NhZmVCcm93c2luZ1dhcm5pbmc7CkBA
IC03MDYsNyArNzA2LDcgQEAgcHJpdmF0ZToKICAgICBDR1NpemUgbV9sYXN0UmVxdWVzdGVkRml4
ZWRMYXlvdXRTaXplIHsgMCwgMCB9OwogCiAgICAgYm9vbCBtX2luU2VjdXJlSW5wdXRTdGF0ZSB7
IGZhbHNlIH07Ci0gICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1Rh
cmdldDsKKyAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0PiBtX3VuZG9UYXJnZXQ7CiAK
ICAgICBWYWxpZGF0aW9uTWFwIG1fdmFsaWRhdGlvbk1hcDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAxMDYxMjg5Y2ZkMjRmNzdlYWU2OThl
NTcyYjRlNTFlMjUzZGY2NjEyLi40NWI2NGRlYjJlMGI4Mjk0ODVjMmRjOTE2YTRiZjEwMmFiOTBj
NDU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpA
QCAtNTYsNiArNTYsNyBAQAogI2ltcG9ydCAiVW5kb09yUmVkby5oIgogI2ltcG9ydCAiVmlld0dl
c3R1cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJ
bnRlcm5hbC5oIgorI2ltcG9ydCAiV0tFZGl0Q29tbWFuZC5oIgogI2ltcG9ydCAiV0tFcnJvcklu
dGVybmFsLmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCiAjaW1w
b3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCIKQEAgLTQwMyw1MyArNDA0LDYgQEAg
LSAodm9pZClfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0
aW9uCiAKIEBlbmQKIAotQGludGVyZmFjZSBXS0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0IHsK
LSAgICBSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiBtX2NvbW1hbmQ7Ci19Ci0t
IChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRD
b21tYW5kUHJveHk+KWNvbW1hbmQ7Ci0tIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNv
bW1hbmQ7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyA6IE5TT2Jq
ZWN0Ci0tICh2b2lkKXVuZG9FZGl0aW5nOihpZClzZW5kZXI7Ci0tICh2b2lkKXJlZG9FZGl0aW5n
OihpZClzZW5kZXI7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0VkaXRDb21tYW5kT2JqQwot
Ci0tIChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk+KWNvbW1hbmQKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAg
IGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIG1fY29tbWFuZCA9IGNvbW1h
bmQ7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94
eSopY29tbWFuZAotewotICAgIHJldHVybiBtX2NvbW1hbmQuZ2V0KCk7Ci19Ci0KLUBlbmQKLQot
QGltcGxlbWVudGF0aW9uIFdLRWRpdG9yVW5kb1RhcmdldE9iakMKLQotLSAodm9pZCl1bmRvRWRp
dGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpbV0tF
ZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5kXS0+dW5hcHBseSgp
OwotfQotCi0tICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQoW3Nl
bmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRDb21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBbc2Vu
ZGVyIGNvbW1hbmRdLT5yZWFwcGx5KCk7Ci19Ci0KLUBlbmQKLQogQGludGVyZmFjZSBXS0ZsaXBw
ZWRWaWV3IDogTlNWaWV3CiBAZW5kCiAKQEAgLTEzODYsNyArMTM0MCw3IEBAIFdlYlZpZXdJbXBs
OjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXS1dlYlZp
ZXcgKm91dGVyV2ViCiAgICAgLCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyht
X3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKSkKICAgICAsIG1faW50cmluc2lj
Q29udGVudFNpemUoQ0dTaXplTWFrZShOU1ZpZXdOb0ludHJpbnNpY01ldHJpYywgTlNWaWV3Tm9J
bnRyaW5zaWNNZXRyaWMpKQogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3Ry
YXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOip0
aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXSkKLSAgICAsIG1fdW5kb1RhcmdldChhZG9w
dE5TKFtbV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBhbGxvY10gaW5pdF0pKQorICAgICwgbV91bmRv
VGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXQgYWxsb2NdIGluaXRdKSkKICAgICAs
IG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1wbDoqdGhpc10pKQogICAgICwgbV9h
Y2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlcihhZG9wdE5TKFtbV0tBY2Nlc3NpYmlsaXR5U2V0
dGluZ3NPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhJbXBsOip0aGlzXSkpCiAgICAgLCBtX3ByaW1h
cnlUcmFja2luZ0FyZWEoYWRvcHROUyhbW05TVHJhY2tpbmdBcmVhIGFsbG9jXSBpbml0V2l0aFJl
Y3Q6dmlldy5mcmFtZSBvcHRpb25zOnRyYWNraW5nQXJlYU9wdGlvbnMoKSBvd25lcjp2aWV3IHVz
ZXJJbmZvOm5pbF0pKQpAQCAtMjcyMyw4ICsyNjc3LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZXhl
Y3V0ZUVkaXRDb21tYW5kRm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yLCBjb25zdCBTdHJpbmcmIGFy
Z3UKIAogdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChSZWY8V2ViRWRpdENv
bW1hbmRQcm94eT4mJiBjb21tYW5kLCBVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgUmV0
YWluUHRyPFdLRWRpdENvbW1hbmRPYmpDPiBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRD
b21tYW5kT2JqQyBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OmNvbW1hbmQucHRy
KCldKTsKLSAgICBTdHJpbmcgYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVG
b3JFZGl0QWN0aW9uKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBhY3Rpb25OYW1l
ID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFj
dGlvbigpKTsKKyAgICBhdXRvIGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENvbW1hbmQg
YWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpXVEZNb3ZlKGNvbW1hbmQpXSk7CiAK
ICAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9IFttX3ZpZXcgdW5kb01hbmFnZXJdOwog
ICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQo
KSBzZWxlY3RvcjooKHVuZG9PclJlZG8gPT0gVW5kb09yUmVkbzo6VW5kbykgPyBAc2VsZWN0b3Io
dW5kb0VkaXRpbmc6KSA6IEBzZWxlY3RvcihyZWRvRWRpdGluZzopKSBvYmplY3Q6Y29tbWFuZE9i
akMuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudElt
cGxJT1MuaAppbmRleCBhOGUxZDZhMzYwOTRhM2Q4ZTIwNWYzYTdkZmRhNDY3ODdmYmJhYjhjLi5k
ZTc0MWM3MjJhYmU2YzA4ZTUwODE2MjJjODBmNDc4YTNiZDYwODk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaApAQCAtMzIsNyArMzIsNyBA
QAogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIFdLQ29udGVudFZpZXc7
Ci1PQkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldE9iakM7CitPQkpDX0NMQVNTIFdLRWRpdG9y
VW5kb1RhcmdldDsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IFByb21pc2VkQXR0YWNo
bWVudEluZm87CkBAIC0yMjksNyArMjI5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZpbmlz
aFByb2Nlc3NpbmdBbGxQZW5kaW5nTW91c2VFdmVudHMoKSBmaW5hbCB7IH0KIAogICAgIFdLQ29u
dGVudFZpZXcgKm1fY29udGVudFZpZXc7Ci0gICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1Rhcmdl
dE9iakM+IG1fdW5kb1RhcmdldDsKKyAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0PiBt
X3VuZG9UYXJnZXQ7CiB9OwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCBlOTI5ZTIwZGMx
NmU1YmI1ZjYzNTY2YWZkZDFjNjljYTg5YzYzYTYyLi40MjE1MjFiNzQ4M2JlYzFkZDkxOThhM2Iw
YmI1ZWVkMTU0ZDY1NzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJWaWV3U25hcHNo
b3RTdG9yZS5oIgogI2ltcG9ydCAiV0tDb250ZW50Vmlldy5oIgogI2ltcG9ydCAiV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLmgiCisjaW1wb3J0ICJXS0VkaXRDb21tYW5kLmgiCiAjaW1wb3J0ICJX
S0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MuaCIKICNpbXBvcnQgIldLUGFzc3dvcmRWaWV3LmgiCiAj
aW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCIKQEAgLTY0LDYxICs2NSwxMyBAQAogCiAj
ZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0
aW9uLCBtX3dlYlZpZXcuZ2V0KCktPl9wYWdlLT5wcm9jZXNzKCkuY29ubmVjdGlvbigpKQogCi1A
aW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3QKLXsKLSAgICBSZWZQdHI8V2Vi
S2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiBtX2NvbW1hbmQ7Ci19Ci0tIChpZClpbml0V2l0aFdl
YkVkaXRDb21tYW5kUHJveHk6KFJlZjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+JiYpY29t
bWFuZDsKLS0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29tbWFuZDsKLUBlbmQKLQot
QGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJnZXRPYmpDIDogTlNPYmplY3QKLS0gKHZvaWQpdW5k
b0VkaXRpbmc6KGlkKXNlbmRlcjsKLS0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcjsKLUBl
bmQKLQotQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1hbmRPYmpDCi0KLS0gKGlkKWluaXRXaXRo
V2ViRWRpdENvbW1hbmRQcm94eTooUmVmPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4mJilj
b21tYW5kCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYpCi0gICAg
ICAgIHJldHVybiBuaWw7Ci0gICAgCi0gICAgbV9jb21tYW5kID0gV1RGTW92ZShjb21tYW5kKTsK
LSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5ICop
Y29tbWFuZAotewotICAgIHJldHVybiBtX2NvbW1hbmQuZ2V0KCk7Ci19Ci0KLUBlbmQKLQotQGlt
cGxlbWVudGF0aW9uIFdLRWRpdG9yVW5kb1RhcmdldE9iakMKLQotLSAodm9pZCl1bmRvRWRpdGlu
ZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpbV0tFZGl0
Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5kXS0+dW5hcHBseSgpOwot
fQotCi0tICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQoW3NlbmRl
ciBpc0tpbmRPZkNsYXNzOltXS0VkaXRDb21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBbc2VuZGVy
IGNvbW1hbmRdLT5yZWFwcGx5KCk7Ci19Ci0KLUBlbmQKLQogbmFtZXNwYWNlIFdlYktpdCB7CiB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBs
KFdLQ29udGVudFZpZXcgKmNvbnRlbnRWaWV3LCBXS1dlYlZpZXcgKndlYlZpZXcpCiAgICAgOiBQ
YWdlQ2xpZW50SW1wbENvY29hKHdlYlZpZXcpCiAgICAgLCBtX2NvbnRlbnRWaWV3KGNvbnRlbnRW
aWV3KQotICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXRPYmpD
IGFsbG9jXSBpbml0XSkpCisgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5k
b1RhcmdldCBhbGxvY10gaW5pdF0pKQogewogfQogCkBAIC0zMTIsOCArMjY1LDggQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFZpZXdwb3J0
QXR0cmlidXRlcyYpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQo
UmVmPFdlYkVkaXRDb21tYW5kUHJveHk+JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRv
KQogewotICAgIFJldGFpblB0cjxXS0VkaXRDb21tYW5kT2JqQz4gY29tbWFuZE9iakMgPSBhZG9w
dE5TKFtbV0tFZGl0Q29tbWFuZE9iakMgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94
eTpjb21tYW5kLmNvcHlSZWYoKV0pOwotICAgIFN0cmluZyBhY3Rpb25OYW1lID0gV2ViRWRpdENv
bW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAg
ICBhdXRvIGFjdGlvbk5hbWUgPSBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlv
bihjb21tYW5kLT5lZGl0QWN0aW9uKCkpOworICAgIGF1dG8gY29tbWFuZE9iakMgPSBhZG9wdE5T
KFtbV0tFZGl0Q29tbWFuZCBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OldURk1v
dmUoY29tbWFuZCldKTsKICAgICAKICAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9IFtt
X2NvbnRlbnRWaWV3IHVuZG9NYW5hZ2VyXTsKICAgICBbdW5kb01hbmFnZXIgcmVnaXN0ZXJVbmRv
V2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KCh1bmRvT3JSZWRvID09IFVu
ZG9PclJlZG86OlVuZG8pID8gQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IocmVk
b0VkaXRpbmc6KSkgb2JqZWN0OmNvbW1hbmRPYmpDLmdldCgpXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmgKaW5kZXggNDkxZWE0ODZhYTQyZjQ3
Njg2NDM1ZWExYjI5YWQ4NTUzODVkNjQxYi4uNGQ4N2M5MDUzZTIxODYwMTM2OTJhYjRlYTk1NzFh
OWMyOTQwOGZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsTWFjLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbmNsdWRlICJXZWJGdWxsU2NyZWVuTWFu
YWdlclByb3h5LmgiCiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1AY2xhc3MgV0tFZGl0
b3JVbmRvVGFyZ2V0T2JqQzsKK0BjbGFzcyBXS0VkaXRvclVuZG9UYXJnZXQ7CiBAY2xhc3MgV0tW
aWV3OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjYjIyNTIwNjVkNDViZjRiM2M1M2MxNWI5Njk5
OWZkZDBhMjNkNGZiLi43NDNkMDEyODUzNzI1YzhjYTllN2I1ZDAwYmNiZDVkM2Y0NGRhOTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTczOCw2ICs3MzgsNyBAQAogCQkyRUE3QjNEMTIwMjZDRUY4MDA5Q0U1QUMgLyogV0tOdW1iZXJQ
YWRWaWV3Q29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkVBN0IzQ0YyMDI2Q0VGODAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlld0NvbnRy
b2xsZXIuaCAqLzsgfTsKIAkJMkVBN0IzRDUyMDI2Q0YyMzAwOUNFNUFDIC8qIFdLTnVtYmVyUGFk
Vmlldy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVB
N0IzRDMyMDI2Q0YyMzAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlldy5oICovOyB9OwogCQkyRUI2
RkMwMTIwMzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQjZGQkZGMjAzMDIx
OTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oICovOyB9OworCQkyRUNG
NjZDRTIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVDRjY2Q0MyMUQ2Qjc3RTAwOUU1QzNGIC8q
IFdLRWRpdENvbW1hbmQuaCAqLzsgfTsKIAkJMkY4MzM2ODYxRkExMzlERjAwQzZFMDgwIC8qIFRv
dWNoQmFyTWVudURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJGRDQzQjkxMUZBMDA2QTEwMDgzRjUxQyAvKiBUb3VjaEJhck1lbnVEYXRhLmggKi87
IH07CiAJCTMxMDk5OUM3MTQ2QzlFM0QwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTY4
MTQ2QzcxRjUwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJMzEy
QzBDNEExNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEw
MDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4MjAsNiArMjgyMSw4IEBACiAJCTJFQTdC
M0Q0MjAyNkNGMjMwMDlDRTVBQyAvKiBXS051bWJlclBhZFZpZXcubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IG5hbWUgPSBXS051bWJlclBhZFZpZXcubW07IHBhdGggPSBpb3MvZm9ybXMvV0tOdW1iZXJQYWRW
aWV3Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI2RkJGRjIwMzAyMTk2MDAx
N0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaDsgcGF0aCA9IGlvcy9mb3Jtcy9XS1RpbWVQaWNrZXJW
aWV3Q29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRUI2RkMwMDIw
MzAyMTk2MDAxN0U2MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5tbTsgcGF0aCA9IGlvcy9m
b3Jtcy9XS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMkVDRjY2Q0MyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tFZGl0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQkyRUNGNjZDRDIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdLRWRpdENvbW1hbmQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTJGODA5REQ1MUZCRDFCQzkwMDVGRTYzQSAvKiBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUb3VjaEJhck1lbnVJdGVtRGF0YS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJGODA5REQ5MUZCRDFCRjIwMDVGRTYzQSAvKiBUb3VjaEJhck1l
bnVJdGVtRGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUb3VjaEJhck1lbnVJdGVtRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyogVG91
Y2hCYXJNZW51RGF0YS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUb3VjaEJh
ck1lbnVEYXRhLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MzQ0LDYgKzUzNDcs
OCBAQAogCQkJCTUxRDEyNDMyMUU2REU1MjEwMDJCMjgyMCAvKiBXZWJVUkxTY2hlbWVIYW5kbGVy
Q29jb2EubW0gKi8sCiAJCQkJMkRGQzdEQjkxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBs
LmggKi8sCiAJCQkJMkRGQzdEQkExQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tICov
LAorCQkJCTJFQ0Y2NkNDMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLmggKi8sCisJ
CQkJMkVDRjY2Q0QyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQubW0gKi8sCiAJCQkJ
RTFBRUEyMkQxNDY4N0JEQjAwODA0NTY5IC8qIFdLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5o
ICovLAogCQkJCUUxQUVBMjJFMTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vz
c1dhdGNoZXIubW0gKi8sCiAJCQkJMUFEMDFCQ0IxOTA1RDU0OTAwQzlDNDVGIC8qIFdLUmVsb2Fk
RnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLmggKi8sCkBAIC05NjU4LDYgKzk2NjMsNyBAQAog
CQkJCTYzNzI4MUEyMjFBREM3NDQwMDlFMERFNiAvKiBXS0Rvd25sb2FkUHJvZ3Jlc3MuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUY0MDlCQTE4MUU2RTY0QkMwMDlEQTI4RSAvKiBXS0RyYWdEZXN0aW5h
dGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRDMThGQUQyMTg5MTA0OTAwMjVBODhE
IC8qIFdLRHJhd2luZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAorCQkJCTJFQ0Y2NkNFMjFENkI3N0Uw
MDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY0NTkyRjE5
NDY0QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNGRDU0OEMx
MzJEODI2ODAwNTVEODE2IC8qIFdLRXJyb3JDRi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzdCNTA0
NTIxOUVFRjMxMzAwQ0UyQ0Y4IC8qIFdLRXJyb3JQcml2YXRlLmggaW4gSGVhZGVycyAqLywK
</data>
<flag name="review"
          id="374980"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358130</attachid>
            <date>2018-12-28 19:59:04 -0800</date>
            <delta_ts>2018-12-28 20:21:52 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-193049-20181228195904.patch</filename>
            <type>text/plain</type>
            <size>20851</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBj
NTQ1YTNkOWE4YzM3OTgyOTExMDkxYzEuLjFiZmMwNjE2YjdhMDBhOWFkYmMyYmEwYTM5MzY0ZWYz
ODIwMzA0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTgtMTItMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBXS0VkaXRDb21t
YW5kT2JqQyBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBpbnRvIGEgc2VwYXJhdGUgZmlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBQdWxsIGNvbW1vbiBj
b2RlIChXS0VkaXRDb21tYW5kT2JqQyBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQykgb24gaU9T
IGFuZCBtYWNPUyBvdXQgaW50byBhIHNlcGFyYXRlIGZpbGUuIE5vCisgICAgICAgIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dLRWRpdENvbW1hbmQubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBXS0VkaXRD
b21tYW5kT2JqQyB0byBXS0VkaXRDb21tYW5kLCBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyB0
byBXS0VkaXRvclVuZG9UYXJnZXQuIFRoZSBPYmpDIHN1ZmZpeCBpbgorICAgICAgICB0aGUgbmFt
ZSBzZWVtcyB0byBkaXZlcmdlIGZyb20gdGhlIGNvbW1vbiBuYW1pbmcgc2NoZW1lIGluIG90aGVy
IHBhcnRzIG9mIFdlYktpdCwgd2hlcmUgbW9zdCBXSy0gYW5kIF9XSy0KKyAgICAgICAgcHJlZml4
ZWQgbmFtZXMgYWxyZWFkeSByZWZlciB0byBPYmplY3RpdmUtQyBvYmplY3RzLiBBZGRpdGlvbmFs
bHksIG1hcmsgLVtXS0VkaXRDb21tYW5kIGluaXRdIGFzIHVuYXZhaWxhYmxlLgorCisgICAgICAg
ICgtW1dLRWRpdENvbW1hbmQgaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0pOgorCisgICAg
ICAgIE1ha2UgdGhlIHJldHVybiB0eXBlIGluc3RhbmNldHlwZSBpbnN0ZWFkIG9mIGlkLCBhbmQg
YWxzbyBtYWtlIHRoaXMgdGFrZSBhIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGluc3RlYWQK
KyAgICAgICAgb2YgYSBSZWZQdHIuCisKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZCBjb21tYW5k
XSk6CisKKyAgICAgICAgTWFrZSB0aGlzIHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgV2ViRWRp
dENvbW1hbmRQcm94eSwgcmF0aGVyIHRoYW4gYSBwb2ludGVyLCBzaW5jZSB0aGUgV2ViRWRpdENv
bW1hbmRQcm94eQorICAgICAgICBzaG91bGQgYWx3YXlzIGJlIG5vbi1udWxsLgorCisgICAgICAg
ICgtW1dLRWRpdG9yVW5kb1RhcmdldCB1bmRvRWRpdGluZzpdKToKKyAgICAgICAgKC1bV0tFZGl0
b3JVbmRvVGFyZ2V0IHJlZG9FZGl0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorCisgICAgICAgIFVzZSBX
VEZNb3ZlIGluc3RlYWQgb2YgY29weWluZyB0aGUgUmVmIHdoZW4gY3JlYXRpbmcgYSBXS0VkaXRD
b21tYW5kLgorCisgICAgICAgICgtW1dLRWRpdENvbW1hbmRPYmpDIGluaXRXaXRoV2ViRWRpdENv
bW1hbmRQcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMgY29t
bWFuZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHVuZG9F
ZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHJl
ZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisKKyAg
ICAgICAgVXNlIFdURk1vdmUgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBSZWZQdHIgd2hlbiBj
cmVhdGluZyBhIFdLRWRpdENvbW1hbmQuCisKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMg
aW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Vk
aXRDb21tYW5kT2JqQyBjb21tYW5kXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9yVW5k
b1RhcmdldE9iakMgdW5kb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9y
VW5kb1RhcmdldE9iakMgcmVkb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDE4LTEyLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGVk
aXRpbmcgU1BJIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS80NjA0NzU0Nj4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCA5ZDdjYzVjYzZjNGU3MWM0YmM2M2NkMWZiZjM0MjRkZjQ3YTNmYzRjLi44NDU5
NzUwZGEzNGE2Mjc0YWRjYTg5NDkwMTU2OTg5MDlkZTU1ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC0zMzgsNiArMzM4LDcgQEAgVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQogVUlQcm9jZXNz
L0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCitVSVByb2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5tbQogVUlQcm9jZXNzL0Nv
Y29hL1dLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbQogVUlQcm9jZXNzL0NvY29hL1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJW
aWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dLRWRpdENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZTQzOGM1MzAyZjRhZGNkZjVjZGVh
NTMwZGVjNDQxZmM0NzczNGEyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsK
K30KKworQGludGVyZmFjZSBXS0VkaXRDb21tYW5kIDogTlNPYmplY3QKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6KFJlZjxXZWJLaXQ6OldlYkVkaXRDb21tYW5k
UHJveHk+JiYpY29tbWFuZDsKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxBQkxFOwor
LSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Jiljb21tYW5kOworQGVuZAorCisvLyBXS0Vk
aXRvclVuZG9UYXJnZXQgc2VydmVzIGFzIHRoZSB0YXJnZXQgd2hlbiByZWdpc3RlcmluZyB3aXRo
IHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIsCisvLyBhbmQgaXMgb25seSB1c2VkIGluIGNvbmp1
bmN0aW9uIHdpdGggV0tFZGl0Q29tbWFuZC4KK0BpbnRlcmZhY2UgV0tFZGl0b3JVbmRvVGFyZ2V0
IDogTlNPYmplY3QKKy0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKKy0gKHZvaWQpcmVk
b0VkaXRpbmc6KGlkKXNlbmRlcjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XS0VkaXRDb21tYW5kLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg3YzZlYjFiZjA3NjcxNzI2NWIxMTUx
ODZmYmFhMzk1N2ExODIwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLRWRpdENvbW1hbmQuaCIKKworI2ltcG9y
dCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgorCitAaW1wbGVtZW50YXRpb24gV0tFZGl0Q29tbWFu
ZCB7CisgICAgUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5kOwor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihSZWY8V2Vi
S2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiYmKWNvbW1hbmQKK3sKKyAgICBzZWxmID0gW3N1cGVy
IGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIG1fY29t
bWFuZCA9IFdURk1vdmUoY29tbWFuZCk7CisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKFdlYktp
dDo6V2ViRWRpdENvbW1hbmRQcm94eSYpY29tbWFuZAoreworICAgIHJldHVybiAqbV9jb21tYW5k
OworfQorCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS0VkaXRvclVuZG9UYXJnZXQKKworLSAo
dm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyCit7CisgICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5k
T2ZDbGFzczpXS0VkaXRDb21tYW5kLmNsYXNzXSk7CisgICAgW3NlbmRlciBjb21tYW5kXS51bmFw
cGx5KCk7Cit9CisKKy0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgoreworICAgIEFTU0VS
VChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6V0tFZGl0Q29tbWFuZC5jbGFzc10pOworICAgIFtzZW5k
ZXIgY29tbWFuZF0ucmVhcHBseSgpOworfQorCitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAwMjgwMzdjYzU5ODczMDc5ZDdiYTAyNDIwZTkw
N2FlNmZmYThjNGYyLi5mNzU3ZDg3MjRmMjY3ZmQ5MWEwMDAyNDhmNDhkNDI5MWIzMjM1MTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTUwLDcg
KzUwLDcgQEAgT0JKQ19DTEFTUyBOU1RleHRJbnB1dENvbnRleHQ7CiBPQkpDX0NMQVNTIE5TVmll
dzsKIE9CSkNfQ0xBU1MgV0tBY2Nlc3NpYmlsaXR5U2V0dGluZ3NPYnNlcnZlcjsKIE9CSkNfQ0xB
U1MgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyOwotT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9U
YXJnZXRPYmpDOworT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXQ7CiBPQkpDX0NMQVNTIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tTYWZlQnJvd3NpbmdXYXJuaW5nOwpAQCAtNzA2LDcg
KzcwNiw3IEBAIHByaXZhdGU6CiAgICAgQ0dTaXplIG1fbGFzdFJlcXVlc3RlZEZpeGVkTGF5b3V0
U2l6ZSB7IDAsIDAgfTsKIAogICAgIGJvb2wgbV9pblNlY3VyZUlucHV0U3RhdGUgeyBmYWxzZSB9
OwotICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7Cisg
ICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldD4gbV91bmRvVGFyZ2V0OwogCiAgICAgVmFs
aWRhdGlvbk1hcCBtX3ZhbGlkYXRpb25NYXA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMTA2MTI4OWNmZDI0Zjc3ZWFlNjk4ZTU3MmI0ZTUx
ZTI1M2RmNjYxMi4uNDViNjRkZWIyZTBiODI5NDg1YzJkYzkxNmE0YmYxMDJhYjkwYzQ1OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTU2LDYg
KzU2LDcgQEAKICNpbXBvcnQgIlVuZG9PclJlZG8uaCIKICNpbXBvcnQgIlZpZXdHZXN0dXJlQ29u
dHJvbGxlci5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwu
aCIKKyNpbXBvcnQgIldLRWRpdENvbW1hbmQuaCIKICNpbXBvcnQgIldLRXJyb3JJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgiCkBAIC00MDMsNTMgKzQwNCw2IEBAIC0gKHZvaWQp
X2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgogCiBA
ZW5kCiAKLUBpbnRlcmZhY2UgV0tFZGl0Q29tbWFuZE9iakMgOiBOU09iamVjdCB7Ci0gICAgUmVm
UHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5kOwotfQotLSAoaWQpaW5p
dFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFBy
b3h5Piljb21tYW5kOwotLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5kOwot
QGVuZAotCi1AaW50ZXJmYWNlIFdLRWRpdG9yVW5kb1RhcmdldE9iakMgOiBOU09iamVjdAotLSAo
dm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyOwotLSAodm9pZClyZWRvRWRpdGluZzooaWQpc2Vu
ZGVyOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tFZGl0Q29tbWFuZE9iakMKLQotLSAoaWQp
aW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFu
ZFByb3h5Piljb21tYW5kCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNl
bGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBtX2NvbW1hbmQgPSBjb21tYW5kOwotICAg
IHJldHVybiBzZWxmOwotfQotCi0tIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1h
bmQKLXsKLSAgICByZXR1cm4gbV9jb21tYW5kLmdldCgpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1l
bnRhdGlvbiBXS0VkaXRvclVuZG9UYXJnZXRPYmpDCi0KLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlk
KXNlbmRlcgotewotICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1h
bmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIgY29tbWFuZF0tPnVuYXBwbHkoKTsKLX0KLQot
LSAodm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNL
aW5kT2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21t
YW5kXS0+cmVhcHBseSgpOwotfQotCi1AZW5kCi0KIEBpbnRlcmZhY2UgV0tGbGlwcGVkVmlldyA6
IE5TVmlldwogQGVuZAogCkBAIC0xMzg2LDcgKzEzNDAsNyBAQCBXZWJWaWV3SW1wbDo6V2ViVmll
d0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRl
cldlYgogICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMobV9wYWdlLT5w
cmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2ludHJpbnNpY0NvbnRlbnRT
aXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnRyaW5zaWNNZXRyaWMsIE5TVmlld05vSW50cmluc2lj
TWV0cmljKSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxh
eW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6dmlldyB2aWV3SW1wbDoqdGhpcyBtb2Rl
OmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCi0gICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dL
RWRpdG9yVW5kb1RhcmdldE9iakMgYWxsb2NdIGluaXRdKSkKKyAgICAsIG1fdW5kb1RhcmdldChh
ZG9wdE5TKFtbV0tFZGl0b3JVbmRvVGFyZ2V0IGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlcihhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIg
YWxsb2NdIGluaXRXaXRoVmlldzp2aWV3IGltcGw6KnRoaXNdKSkKICAgICAsIG1fYWNjZXNzaWJp
bGl0eVNldHRpbmdzT2JzZXJ2ZXIoYWRvcHROUyhbW1dLQWNjZXNzaWJpbGl0eVNldHRpbmdzT2Jz
ZXJ2ZXIgYWxsb2NdIGluaXRXaXRoSW1wbDoqdGhpc10pKQogICAgICwgbV9wcmltYXJ5VHJhY2tp
bmdBcmVhKGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBhbGxvY10gaW5pdFdpdGhSZWN0OnZpZXcu
ZnJhbWUgb3B0aW9uczp0cmFja2luZ0FyZWFPcHRpb25zKCkgb3duZXI6dmlldyB1c2VySW5mbzpu
aWxdKSkKQEAgLTI3MjMsOCArMjY3Nyw4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0
Q29tbWFuZEZvclNlbGVjdG9yKFNFTCBzZWxlY3RvciwgY29uc3QgU3RyaW5nJiBhcmd1CiAKIHZv
aWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmPFdlYkVkaXRDb21tYW5kUHJv
eHk+JiYgY29tbWFuZCwgVW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIFJldGFpblB0cjxX
S0VkaXRDb21tYW5kT2JqQz4gY29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZE9i
akMgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpjb21tYW5kLnB0cigpXSk7Ci0g
ICAgU3RyaW5nIGFjdGlvbk5hbWUgPSBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFj
dGlvbihjb21tYW5kLT5lZGl0QWN0aW9uKCkpOworICAgIGF1dG8gYWN0aW9uTmFtZSA9IFdlYkVk
aXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7
CisgICAgYXV0byBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kIGFsbG9jXSBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6V1RGTW92ZShjb21tYW5kKV0pOwogCiAgICAgTlNV
bmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV92aWV3IHVuZG9NYW5hZ2VyXTsKICAgICBbdW5k
b01hbmFnZXIgcmVnaXN0ZXJVbmRvV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0
b3I6KCh1bmRvT3JSZWRvID09IFVuZG9PclJlZG86OlVuZG8pID8gQHNlbGVjdG9yKHVuZG9FZGl0
aW5nOikgOiBAc2VsZWN0b3IocmVkb0VkaXRpbmc6KSkgb2JqZWN0OmNvbW1hbmRPYmpDLmdldCgp
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgK
aW5kZXggYThlMWQ2YTM2MDk0YTNkOGUyMDVmM2E3ZGZkYTQ2Nzg3ZmJiYWI4Yy4uZGU3NDFjNzIy
YWJlNmMwOGU1MDgxNjIyYzgwZjQ3OGEzYmQ2MDg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLmgKQEAgLTMyLDcgKzMyLDcgQEAKICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBXS0NvbnRlbnRWaWV3OwotT0JKQ19D
TEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOworT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJn
ZXQ7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBQcm9taXNlZEF0dGFjaG1lbnRJbmZv
OwpAQCAtMjI5LDcgKzIyOSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRGaW5pc2hQcm9jZXNz
aW5nQWxsUGVuZGluZ01vdXNlRXZlbnRzKCkgZmluYWwgeyB9CiAKICAgICBXS0NvbnRlbnRWaWV3
ICptX2NvbnRlbnRWaWV3OwotICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBt
X3VuZG9UYXJnZXQ7CisgICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldD4gbV91bmRvVGFy
Z2V0OwogfTsKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KaW5kZXggZTkyOWUyMGRjMTZlNWJiNWY2
MzU2NmFmZGQxYzY5Y2E4OWM2M2E2Mi4uNDIxNTIxYjc0ODNiZWMxZGQ5MTk4YTNiMGJiNWVlZDE1
NGQ2NTc0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGll
bnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5tbQpAQCAtNDEsNiArNDEsNyBAQAogI2ltcG9ydCAiVmlld1NuYXBzaG90U3RvcmUu
aCIKICNpbXBvcnQgIldLQ29udGVudFZpZXcuaCIKICNpbXBvcnQgIldLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oIgorI2ltcG9ydCAiV0tFZGl0Q29tbWFuZC5oIgogI2ltcG9ydCAiV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TLmgiCiAjaW1wb3J0ICJXS1Bhc3N3b3JkVmlldy5oIgogI2ltcG9ydCAi
V0tQcm9jZXNzUG9vbEludGVybmFsLmgiCkBAIC02NCw2MSArNjUsMTMgQEAKIAogI2RlZmluZSBN
RVNTQUdFX0NIRUNLKGFzc2VydGlvbikgTUVTU0FHRV9DSEVDS19CQVNFKGFzc2VydGlvbiwgbV93
ZWJWaWV3LmdldCgpLT5fcGFnZS0+cHJvY2VzcygpLmNvbm5lY3Rpb24oKSkKIAotQGludGVyZmFj
ZSBXS0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0Ci17Ci0gICAgUmVmUHRyPFdlYktpdDo6V2Vi
RWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5kOwotfQotLSAoaWQpaW5pdFdpdGhXZWJFZGl0Q29t
bWFuZFByb3h5OihSZWY8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiYmKWNvbW1hbmQ7Ci0t
IChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQ7Ci1AZW5kCi0KLUBpbnRlcmZh
Y2UgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyA6IE5TT2JqZWN0Ci0tICh2b2lkKXVuZG9FZGl0aW5n
OihpZClzZW5kZXI7Ci0tICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXI7Ci1AZW5kCi0KLUBp
bXBsZW1lbnRhdGlvbiBXS0VkaXRDb21tYW5kT2JqQwotCi0tIChpZClpbml0V2l0aFdlYkVkaXRD
b21tYW5kUHJveHk6KFJlZjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+JiYpY29tbWFuZAot
ewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAgaWYgKCFzZWxmKQotICAgICAgICByZXR1
cm4gbmlsOwotICAgIAotICAgIG1fY29tbWFuZCA9IFdURk1vdmUoY29tbWFuZCk7Ci0gICAgcmV0
dXJuIHNlbGY7Ci19Ci0KLS0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSAqKWNvbW1hbmQK
LXsKLSAgICByZXR1cm4gbV9jb21tYW5kLmdldCgpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1lbnRh
dGlvbiBXS0VkaXRvclVuZG9UYXJnZXRPYmpDCi0KLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNl
bmRlcgotewotICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRP
YmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIgY29tbWFuZF0tPnVuYXBwbHkoKTsKLX0KLQotLSAo
dm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5k
T2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5k
XS0+cmVhcHBseSgpOwotfQotCi1AZW5kCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS0NvbnRl
bnRWaWV3ICpjb250ZW50VmlldywgV0tXZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogUGFnZUNsaWVu
dEltcGxDb2NvYSh3ZWJWaWV3KQogICAgICwgbV9jb250ZW50Vmlldyhjb250ZW50VmlldykKLSAg
ICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBhbGxvY10g
aW5pdF0pKQorICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXQg
YWxsb2NdIGluaXRdKSkKIHsKIH0KIApAQCAtMzEyLDggKzI2NSw4IEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBWaWV3cG9ydEF0dHJpYnV0
ZXMmKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFJlZjxXZWJF
ZGl0Q29tbWFuZFByb3h5PiYmIGNvbW1hbmQsIFVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAg
ICBSZXRhaW5QdHI8V0tFZGl0Q29tbWFuZE9iakM+IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dL
RWRpdENvbW1hbmRPYmpDIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFu
ZC5jb3B5UmVmKCldKTsKLSAgICBTdHJpbmcgYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJv
eHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBh
Y3Rpb25OYW1lID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFu
ZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRp
dENvbW1hbmQgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpXVEZNb3ZlKGNvbW1h
bmQpXSk7CiAgICAgCiAgICAgTlNVbmRvTWFuYWdlciAqdW5kb01hbmFnZXIgPSBbbV9jb250ZW50
VmlldyB1bmRvTWFuYWdlcl07CiAgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJn
ZXQ6bV91bmRvVGFyZ2V0LmdldCgpIHNlbGVjdG9yOigodW5kb09yUmVkbyA9PSBVbmRvT3JSZWRv
OjpVbmRvKSA/IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopIDogQHNlbGVjdG9yKHJlZG9FZGl0aW5n
OikpIG9iamVjdDpjb21tYW5kT2JqQy5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oCmluZGV4IDQ5MWVhNDg2YWE0MmY0NzY4NjQzNWVh
MWIyOWFkODU1Mzg1ZDY0MWIuLjRkODdjOTA1M2UyMTg2MDEzNjkyYWI0ZWE5NTcxYTljMjk0MDhm
YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bE1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1h
Yy5oCkBAIC0zMiw3ICszMiw3IEBACiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eS5oIgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotQGNsYXNzIFdLRWRpdG9yVW5kb1Rh
cmdldE9iakM7CitAY2xhc3MgV0tFZGl0b3JVbmRvVGFyZ2V0OwogQGNsYXNzIFdLVmlldzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNGRhMDJmYWI1MTI3YTFmNDY3N2Y5ZTIyMGUzMTIzMDEwMzQ1
YTM3YS4uMjIzYTdiZjhmYjZlMDM0YzZhYjk3ZmM1NjcyYmIxOTMzZjZjZmIzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC03MzgsNiAr
NzM4LDcgQEAKIAkJMkVBN0IzRDEyMDI2Q0VGODAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlld0Nv
bnRyb2xsZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFQTdCM0NGMjAyNkNFRjgwMDlDRTVBQyAvKiBXS051bWJlclBhZFZpZXdDb250cm9sbGVyLmgg
Ki87IH07CiAJCTJFQTdCM0Q1MjAyNkNGMjMwMDlDRTVBQyAvKiBXS051bWJlclBhZFZpZXcuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQTdCM0QzMjAy
NkNGMjMwMDlDRTVBQyAvKiBXS051bWJlclBhZFZpZXcuaCAqLzsgfTsKIAkJMkVCNkZDMDEyMDMw
MjE5NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUI2RkJGRjIwMzAyMTk2MDAxN0U2
MTkgLyogV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKKwkJMkVDRjY2Q0UyMUQ2
Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFQ0Y2NkNDMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRD
b21tYW5kLmggKi87IH07CiAJCTJGODMzNjg2MUZBMTM5REYwMEM2RTA4MCAvKiBUb3VjaEJhck1l
bnVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAy
RkQ0M0I5MTFGQTAwNkExMDA4M0Y1MUMgLyogVG91Y2hCYXJNZW51RGF0YS5oICovOyB9OwogCQkz
MTA5OTlDNzE0NkM5RTNEMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2ODE0NkM3MUY1
MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi87IH07CiAJCTMxMkMwQzRBMTQ2
RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEg
LyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CkBAIC0yODE4LDYgKzI4MTksOCBAQAogCQkyRUE3QjNENDIwMjZD
RjIzMDA5Q0U1QUMgLyogV0tOdW1iZXJQYWRWaWV3Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0g
V0tOdW1iZXJQYWRWaWV3Lm1tOyBwYXRoID0gaW9zL2Zvcm1zL1dLTnVtYmVyUGFkVmlldy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVCNkZCRkYyMDMwMjE5NjAwMTdFNjE5IC8q
IFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLVGltZVBpY2tl
clZpZXdDb250cm9sbGVyLmg7IHBhdGggPSBpb3MvZm9ybXMvV0tUaW1lUGlja2VyVmlld0NvbnRy
b2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkVCNkZDMDAyMDMwMjE5NjAw
MTdFNjE5IC8qIFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBu
YW1lID0gV0tUaW1lUGlja2VyVmlld0NvbnRyb2xsZXIubW07IHBhdGggPSBpb3MvZm9ybXMvV0tU
aW1lUGlja2VyVmlld0NvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJFQ0Y2NkNDMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLRWRpdENvbW1hbmQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkVDRjY2
Q0QyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXS0VkaXRDb21tYW5kLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRjgw
OURENTFGQkQxQkM5MDA1RkU2M0EgLyogVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVG91Y2hCYXJNZW51SXRlbURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRjgwOUREOTFGQkQxQkYyMDA1RkU2M0EgLyogVG91Y2hCYXJNZW51SXRlbURh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVG91Y2hCYXJNZW51SXRlbURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkZENDNCOTExRkEwMDZBMTAwODNGNTFDIC8qIFRvdWNoQmFyTWVu
dURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG91Y2hCYXJNZW51RGF0
YS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTM0MCw2ICs1MzQzLDggQEAKIAkJ
CQk1MUQxMjQzMjFFNkRFNTIxMDAyQjI4MjAgLyogV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLm1t
ICovLAogCQkJCTJERkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovLAog
CQkJCTJERkM3REJBMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKKwkJCQky
RUNGNjZDQzIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oICovLAorCQkJCTJFQ0Y2
NkNEMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLm1tICovLAogCQkJCUUxQUVBMjJE
MTQ2ODdCREIwMDgwNDU2OSAvKiBXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNoZXIuaCAqLywKIAkJ
CQlFMUFFQTIyRTE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVy
Lm1tICovLAogCQkJCTFBRDAxQkNCMTkwNUQ1NDkwMEM5QzQ1RiAvKiBXS1JlbG9hZEZyYW1lRXJy
b3JSZWNvdmVyeUF0dGVtcHRlci5oICovLApAQCAtOTY1NCw2ICs5NjU5LDcgQEAKIAkJCQk2Mzcy
ODFBMjIxQURDNzQ0MDA5RTBERTYgLyogV0tEb3dubG9hZFByb2dyZXNzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGNDA5QkExODFFNkU2NEJDMDA5REEyOEUgLyogV0tEcmFnRGVzdGluYXRpb25BY3Rp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTJEQzE4RkFEMjE4OTEwNDkwMDI1QTg4RCAvKiBXS0Ry
YXdpbmdWaWV3LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRUNGNjZDRTIxRDZCNzdFMDA5RTVDM0Yg
LyogV0tFZGl0Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNDU5MkYxOTQ2NEIyMDAw
RjlENEEyIC8qIFdLRXJyb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRkQ1NDhDMTMyRDgyNjgw
MDU1RDgxNiAvKiBXS0Vycm9yQ0YuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3QjUwNDUyMTlFRUYz
MTMwMENFMkNGOCAvKiBXS0Vycm9yUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>358131</attachid>
            <date>2018-12-28 20:26:01 -0800</date>
            <delta_ts>2018-12-28 21:50:13 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-193049-20181228202600.patch</filename>
            <type>text/plain</type>
            <size>20858</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5NTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmZmFjNzI0NzYxNjE0NTBj
NTQ1YTNkOWE4YzM3OTgyOTExMDkxYzEuLjFiZmMwNjE2YjdhMDBhOWFkYmMyYmEwYTM5MzY0ZWYz
ODIwMzA0OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTgtMTItMjggIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBXS0VkaXRDb21t
YW5kT2JqQyBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBpbnRvIGEgc2VwYXJhdGUgZmlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkzMDQ5CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5pZy4KKworICAgICAgICBQdWxsIGNvbW1vbiBj
b2RlIChXS0VkaXRDb21tYW5kT2JqQyBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQykgb24gaU9T
IGFuZCBtYWNPUyBvdXQgaW50byBhIHNlcGFyYXRlIGZpbGUuIE5vCisgICAgICAgIGNoYW5nZSBp
biBiZWhhdmlvci4KKworICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dLRWRpdENvbW1hbmQubW06IEFkZGVkLgorCisgICAgICAgIFJlbmFtZSBXS0VkaXRD
b21tYW5kT2JqQyB0byBXS0VkaXRDb21tYW5kLCBhbmQgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyB0
byBXS0VkaXRvclVuZG9UYXJnZXQuIFRoZSBPYmpDIHN1ZmZpeCBpbgorICAgICAgICB0aGUgbmFt
ZSBzZWVtcyB0byBkaXZlcmdlIGZyb20gdGhlIGNvbW1vbiBuYW1pbmcgc2NoZW1lIGluIG90aGVy
IHBhcnRzIG9mIFdlYktpdCwgd2hlcmUgbW9zdCBXSy0gYW5kIF9XSy0KKyAgICAgICAgcHJlZml4
ZWQgbmFtZXMgYWxyZWFkeSByZWZlciB0byBPYmplY3RpdmUtQyBvYmplY3RzLiBBZGRpdGlvbmFs
bHksIG1hcmsgLVtXS0VkaXRDb21tYW5kIGluaXRdIGFzIHVuYXZhaWxhYmxlLgorCisgICAgICAg
ICgtW1dLRWRpdENvbW1hbmQgaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0pOgorCisgICAg
ICAgIE1ha2UgdGhlIHJldHVybiB0eXBlIGluc3RhbmNldHlwZSBpbnN0ZWFkIG9mIGlkLCBhbmQg
YWxzbyBtYWtlIHRoaXMgdGFrZSBhIFJlZjxXZWJFZGl0Q29tbWFuZFByb3h5PiYmIGluc3RlYWQK
KyAgICAgICAgb2YgYSBSZWZQdHIuCisKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZCBjb21tYW5k
XSk6CisKKyAgICAgICAgTWFrZSB0aGlzIHJldHVybiBhIHJlZmVyZW5jZSB0byB0aGUgV2ViRWRp
dENvbW1hbmRQcm94eSwgcmF0aGVyIHRoYW4gYSBwb2ludGVyLCBzaW5jZSB0aGUgV2ViRWRpdENv
bW1hbmRQcm94eQorICAgICAgICBzaG91bGQgYWx3YXlzIGJlIG5vbi1udWxsLgorCisgICAgICAg
ICgtW1dLRWRpdG9yVW5kb1RhcmdldCB1bmRvRWRpdGluZzpdKToKKyAgICAgICAgKC1bV0tFZGl0
b3JVbmRvVGFyZ2V0IHJlZG9FZGl0aW5nOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorCisgICAgICAgIFVzZSBX
VEZNb3ZlIGluc3RlYWQgb2YgY29weWluZyB0aGUgUmVmIHdoZW4gY3JlYXRpbmcgYSBXS0VkaXRD
b21tYW5kLgorCisgICAgICAgICgtW1dLRWRpdENvbW1hbmRPYmpDIGluaXRXaXRoV2ViRWRpdENv
bW1hbmRQcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMgY29t
bWFuZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHVuZG9F
ZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHJl
ZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisKKyAg
ICAgICAgVXNlIFdURk1vdmUgaW5zdGVhZCBvZiBjcmVhdGluZyBhIG5ldyBSZWZQdHIgd2hlbiBj
cmVhdGluZyBhIFdLRWRpdENvbW1hbmQuCisKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMg
aW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Vk
aXRDb21tYW5kT2JqQyBjb21tYW5kXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9yVW5k
b1RhcmdldE9iakMgdW5kb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9y
VW5kb1RhcmdldE9iakMgcmVkb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbE1hYy5oOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCiAyMDE4LTEyLTIzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNp
ZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJlbW92ZSBzb21lIHVubmVjZXNzYXJ5IGVk
aXRpbmcgU1BJIGFmdGVyIDxyZGFyOi8vcHJvYmxlbS80NjA0NzU0Nj4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dAppbmRleCA5ZDdjYzVjYzZjNGU3MWM0YmM2M2NkMWZiZjM0MjRkZjQ3YTNmYzRjLi44NDU5
NzUwZGEzNGE2Mjc0YWRjYTg5NDkwMTU2OTg5MDlkZTU1ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0CkBAIC0zMzgsNiArMzM4LDcgQEAgVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQb29sQ29j
b2EubW0KIFVJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQogVUlQcm9jZXNz
L0NvY29hL1dlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5tbQogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCitVSVByb2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5tbQogVUlQcm9jZXNzL0Nv
Y29hL1dLRnVsbEtleWJvYXJkQWNjZXNzV2F0Y2hlci5tbQogVUlQcm9jZXNzL0NvY29hL1dLUmVs
b2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tCiBVSVByb2Nlc3MvQ29jb2EvV0tXZWJW
aWV3Q29udGVudFByb3ZpZGVyUmVnaXN0cnkubW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dLRWRpdENvbW1hbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDQxOWFkNjhjNmMzNjQzZTYwMGY1
NmNkM2NjMzg5ODU1Y2JiOTdlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV0tFZGl0Q29tbWFuZC5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9SZWYuaD4KKyNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsK
K30KKworQGludGVyZmFjZSBXS0VkaXRDb21tYW5kIDogTlNPYmplY3QgeworQHByaXZhdGUKKyAg
ICBSZWZQdHI8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiBfY29tbWFuZDsKK30KKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6KFJlZjxXZWJLaXQ6OldlYkVk
aXRDb21tYW5kUHJveHk+JiYpY29tbWFuZDsKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZB
SUxBQkxFOworLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Jiljb21tYW5kOworQGVuZAor
CisvLyBXS0VkaXRvclVuZG9UYXJnZXQgc2VydmVzIGFzIHRoZSB0YXJnZXQgd2hlbiByZWdpc3Rl
cmluZyB3aXRoIHRoZSBwbGF0Zm9ybSB1bmRvIG1hbmFnZXIsCisvLyBhbmQgaXMgb25seSB1c2Vk
IGluIGNvbmp1bmN0aW9uIHdpdGggV0tFZGl0Q29tbWFuZC4KK0BpbnRlcmZhY2UgV0tFZGl0b3JV
bmRvVGFyZ2V0IDogTlNPYmplY3QKKy0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKKy0g
KHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dLRWRpdENvbW1hbmQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEyOWE4NzRkNzEyN2Y0
MGViMjU3ODVmZDFkYTRlMjgzZTEwMjEyOGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XS0VkaXRDb21tYW5kLm1tCkBAIC0wLDAgKzEsNjQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIldLRWRpdENvbW1hbmQuaCIK
KworI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgorCitAaW1wbGVtZW50YXRpb24gV0tF
ZGl0Q29tbWFuZAorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5
OihSZWY8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiYmKWNvbW1hbmQKK3sKKyAgICBzZWxm
ID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIF9jb21tYW5kID0gV1RGTW92ZShjb21tYW5kKTsKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
LSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Jiljb21tYW5kCit7CisgICAgcmV0dXJuICpf
Y29tbWFuZDsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0
CisKKy0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcgoreworICAgIEFTU0VSVChbc2VuZGVy
IGlzS2luZE9mQ2xhc3M6V0tFZGl0Q29tbWFuZC5jbGFzc10pOworICAgIFtzZW5kZXIgY29tbWFu
ZF0udW5hcHBseSgpOworfQorCistICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXIKK3sKKyAg
ICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOldLRWRpdENvbW1hbmQuY2xhc3NdKTsKKyAg
ICBbc2VuZGVyIGNvbW1hbmRdLnJlYXBwbHkoKTsKK30KKworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggMDI4MDM3Y2M1OTg3MzA3OWQ3YmEw
MjQyMGU5MDdhZTZmZmE4YzRmMi4uZjc1N2Q4NzI0ZjI2N2ZkOTFhMDAwMjQ4ZjQ4ZDQyOTFiMzIz
NTE3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBA
IC01MCw3ICs1MCw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0SW5wdXRDb250ZXh0OwogT0JKQ19DTEFT
UyBOU1ZpZXc7CiBPQkpDX0NMQVNTIFdLQWNjZXNzaWJpbGl0eVNldHRpbmdzT2JzZXJ2ZXI7CiBP
QkpDX0NMQVNTIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsKLU9CSkNfQ0xBU1MgV0tFZGl0
b3JVbmRvVGFyZ2V0T2JqQzsKK09CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0OwogT0JKQ19D
TEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JKQ19DTEFTUyBXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdLU2FmZUJyb3dzaW5nV2FybmluZzsKQEAg
LTcwNiw3ICs3MDYsNyBAQCBwcml2YXRlOgogICAgIENHU2l6ZSBtX2xhc3RSZXF1ZXN0ZWRGaXhl
ZExheW91dFNpemUgeyAwLCAwIH07CiAKICAgICBib29sIG1faW5TZWN1cmVJbnB1dFN0YXRlIHsg
ZmFsc2UgfTsKLSAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFy
Z2V0OworICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXQ+IG1fdW5kb1RhcmdldDsKIAog
ICAgIFZhbGlkYXRpb25NYXAgbV92YWxpZGF0aW9uTWFwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDEwNjEyODljZmQyNGY3N2VhZTY5OGU1
NzJiNGU1MWUyNTNkZjY2MTIuLjQ1YjY0ZGViMmUwYjgyOTQ4NWMyZGM5MTZhNGJmMTAyYWI5MGM0
NTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC01Niw2ICs1Niw3IEBACiAjaW1wb3J0ICJVbmRvT3JSZWRvLmgiCiAjaW1wb3J0ICJWaWV3R2Vz
dHVyZUNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcklu
dGVybmFsLmgiCisjaW1wb3J0ICJXS0VkaXRDb21tYW5kLmgiCiAjaW1wb3J0ICJXS0Vycm9ySW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBv
cnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgpAQCAtNDAzLDUzICs0MDQsNiBAQCAt
ICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KIAogQGVuZAogCi1AaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3Qgewot
ICAgIFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+IG1fY29tbWFuZDsKLX0KLS0g
KGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRpdENv
bW1hbmRQcm94eT4pY29tbWFuZDsKLS0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29t
bWFuZDsKLUBlbmQKLQotQGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJnZXRPYmpDIDogTlNPYmpl
Y3QKLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKLS0gKHZvaWQpcmVkb0VkaXRpbmc6
KGlkKXNlbmRlcjsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1hbmRPYmpDCi0K
LS0gKGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRp
dENvbW1hbmRQcm94eT4pY29tbWFuZAotewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07Ci0gICAg
aWYgKCFzZWxmKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgbV9jb21tYW5kID0gY29tbWFu
ZDsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5
Kiljb21tYW5kCi17Ci0gICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsKLX0KLQotQGVuZAotCi1A
aW1wbGVtZW50YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQwotCi0tICh2b2lkKXVuZG9FZGl0
aW5nOihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0Vk
aXRDb21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBbc2VuZGVyIGNvbW1hbmRdLT51bmFwcGx5KCk7
Ci19Ci0KLS0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgotewotICAgIEFTU0VSVChbc2Vu
ZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5k
ZXIgY29tbWFuZF0tPnJlYXBwbHkoKTsKLX0KLQotQGVuZAotCiBAaW50ZXJmYWNlIFdLRmxpcHBl
ZFZpZXcgOiBOU1ZpZXcKIEBlbmQKIApAQCAtMTM4Niw3ICsxMzQwLDcgQEAgV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdLV2ViVmll
dyAqb3V0ZXJXZWIKICAgICAsIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1f
cGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWND
b250ZW50U2l6ZShDR1NpemVNYWtlKE5TVmlld05vSW50cmluc2ljTWV0cmljLCBOU1ZpZXdOb0lu
dHJpbnNpY01ldHJpYykpCiAgICAgLCBtX2xheW91dFN0cmF0ZWd5KFtXS1ZpZXdMYXlvdXRTdHJh
dGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6KnRo
aXMgbW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQotICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0
TlMoW1tXS0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkpCisgICAgLCBtX3VuZG9U
YXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldCBhbGxvY10gaW5pdF0pKQogICAgICwg
bV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9i
c2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiAgICAgLCBtX2Fj
Y2Vzc2liaWxpdHlTZXR0aW5nc09ic2VydmVyKGFkb3B0TlMoW1tXS0FjY2Vzc2liaWxpdHlTZXR0
aW5nc09ic2VydmVyIGFsbG9jXSBpbml0V2l0aEltcGw6KnRoaXNdKSkKICAgICAsIG1fcHJpbWFy
eVRyYWNraW5nQXJlYShhZG9wdE5TKFtbTlNUcmFja2luZ0FyZWEgYWxsb2NdIGluaXRXaXRoUmVj
dDp2aWV3LmZyYW1lIG9wdGlvbnM6dHJhY2tpbmdBcmVhT3B0aW9ucygpIG93bmVyOnZpZXcgdXNl
ckluZm86bmlsXSkpCkBAIC0yNzIzLDggKzI2NzcsOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpleGVj
dXRlRWRpdENvbW1hbmRGb3JTZWxlY3RvcihTRUwgc2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgYXJn
dQogCiB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFJlZjxXZWJFZGl0Q29t
bWFuZFByb3h5PiYmIGNvbW1hbmQsIFVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBSZXRh
aW5QdHI8V0tFZGl0Q29tbWFuZE9iakM+IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENv
bW1hbmRPYmpDIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFuZC5wdHIo
KV0pOwotICAgIFN0cmluZyBhY3Rpb25OYW1lID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZv
ckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKyAgICBhdXRvIGFjdGlvbk5hbWUg
PSBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbihjb21tYW5kLT5lZGl0QWN0
aW9uKCkpOworICAgIGF1dG8gY29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tFZGl0Q29tbWFuZCBh
bGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OldURk1vdmUoY29tbWFuZCldKTsKIAog
ICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fdmlldyB1bmRvTWFuYWdlcl07CiAg
ICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgp
IHNlbGVjdG9yOigodW5kb09yUmVkbyA9PSBVbmRvT3JSZWRvOjpVbmRvKSA/IEBzZWxlY3Rvcih1
bmRvRWRpdGluZzopIDogQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikpIG9iamVjdDpjb21tYW5kT2Jq
Qy5nZXQoKV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNs
aWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5oCmluZGV4IGE4ZTFkNmEzNjA5NGEzZDhlMjA1ZjNhN2RmZGE0Njc4N2ZiYmFiOGMuLmRl
NzQxYzcyMmFiZTZjMDhlNTA4MTYyMmM4MGY0NzhhM2JkNjA4OTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0zMiw3ICszMiw3IEBA
CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgV0tDb250ZW50VmlldzsK
LU9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKK09CSkNfQ0xBU1MgV0tFZGl0b3JV
bmRvVGFyZ2V0OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUHJvbWlzZWRBdHRhY2ht
ZW50SW5mbzsKQEAgLTIyOSw3ICsyMjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkRmluaXNo
UHJvY2Vzc2luZ0FsbFBlbmRpbmdNb3VzZUV2ZW50cygpIGZpbmFsIHsgfQogCiAgICAgV0tDb250
ZW50VmlldyAqbV9jb250ZW50VmlldzsKLSAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0
T2JqQz4gbV91bmRvVGFyZ2V0OworICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXQ+IG1f
dW5kb1RhcmdldDsKIH07CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IGU5MjllMjBkYzE2
ZTViYjVmNjM1NjZhZmRkMWM2OWNhODljNjNhNjIuLjQyMTUyMWI3NDgzYmVjMWRkOTE5OGEzYjBi
YjVlZWQxNTRkNjU3NGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
YWdlQ2xpZW50SW1wbElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIlZpZXdTbmFwc2hv
dFN0b3JlLmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRWaWV3LmgiCiAjaW1wb3J0ICJXS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaCIKKyNpbXBvcnQgIldLRWRpdENvbW1hbmQuaCIKICNpbXBvcnQgIldL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5oIgogI2ltcG9ydCAiV0tQYXNzd29yZFZpZXcuaCIKICNp
bXBvcnQgIldLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oIgpAQCAtNjQsNjEgKzY1LDEzIEBACiAKICNk
ZWZpbmUgTUVTU0FHRV9DSEVDSyhhc3NlcnRpb24pIE1FU1NBR0VfQ0hFQ0tfQkFTRShhc3NlcnRp
b24sIG1fd2ViVmlldy5nZXQoKS0+X3BhZ2UtPnByb2Nlc3MoKS5jb25uZWN0aW9uKCkpCiAKLUBp
bnRlcmZhY2UgV0tFZGl0Q29tbWFuZE9iakMgOiBOU09iamVjdAotewotICAgIFJlZlB0cjxXZWJL
aXQ6OldlYkVkaXRDb21tYW5kUHJveHk+IG1fY29tbWFuZDsKLX0KLS0gKGlkKWluaXRXaXRoV2Vi
RWRpdENvbW1hbmRQcm94eTooUmVmPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4mJiljb21t
YW5kOwotLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5kOwotQGVuZAotCi1A
aW50ZXJmYWNlIFdLRWRpdG9yVW5kb1RhcmdldE9iakMgOiBOU09iamVjdAotLSAodm9pZCl1bmRv
RWRpdGluZzooaWQpc2VuZGVyOwotLSAodm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVyOwotQGVu
ZAotCi1AaW1wbGVtZW50YXRpb24gV0tFZGl0Q29tbWFuZE9iakMKLQotLSAoaWQpaW5pdFdpdGhX
ZWJFZGl0Q29tbWFuZFByb3h5OihSZWY8V2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5PiYmKWNv
bW1hbmQKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlmICghc2VsZikKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLSAgICAKLSAgICBtX2NvbW1hbmQgPSBXVEZNb3ZlKGNvbW1hbmQpOwot
ICAgIHJldHVybiBzZWxmOwotfQotCi0tIChXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkgKilj
b21tYW5kCi17Ci0gICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsKLX0KLQotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQwotCi0tICh2b2lkKXVuZG9FZGl0aW5n
OihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRD
b21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBbc2VuZGVyIGNvbW1hbmRdLT51bmFwcGx5KCk7Ci19
Ci0KLS0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgotewotICAgIEFTU0VSVChbc2VuZGVy
IGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIg
Y29tbWFuZF0tPnJlYXBwbHkoKTsKLX0KLQotQGVuZAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwo
V0tDb250ZW50VmlldyAqY29udGVudFZpZXcsIFdLV2ViVmlldyAqd2ViVmlldykKICAgICA6IFBh
Z2VDbGllbnRJbXBsQ29jb2Eod2ViVmlldykKICAgICAsIG1fY29udGVudFZpZXcoY29udGVudFZp
ZXcpCi0gICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldE9iakMg
YWxsb2NdIGluaXRdKSkKKyAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JVbmRv
VGFyZ2V0IGFsbG9jXSBpbml0XSkpCiB7CiB9CiAKQEAgLTMxMiw4ICsyNjUsOCBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgVmlld3BvcnRB
dHRyaWJ1dGVzJikKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChS
ZWY8V2ViRWRpdENvbW1hbmRQcm94eT4mJiBjb21tYW5kLCBVbmRvT3JSZWRvIHVuZG9PclJlZG8p
CiB7Ci0gICAgUmV0YWluUHRyPFdLRWRpdENvbW1hbmRPYmpDPiBjb21tYW5kT2JqQyA9IGFkb3B0
TlMoW1tXS0VkaXRDb21tYW5kT2JqQyBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5
OmNvbW1hbmQuY29weVJlZigpXSk7Ci0gICAgU3RyaW5nIGFjdGlvbk5hbWUgPSBXZWJFZGl0Q29t
bWFuZFByb3h5OjpuYW1lRm9yRWRpdEFjdGlvbihjb21tYW5kLT5lZGl0QWN0aW9uKCkpOworICAg
IGF1dG8gYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9u
KGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7CisgICAgYXV0byBjb21tYW5kT2JqQyA9IGFkb3B0TlMo
W1tXS0VkaXRDb21tYW5kIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6V1RGTW92
ZShjb21tYW5kKV0pOwogICAgIAogICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21f
Y29udGVudFZpZXcgdW5kb01hbmFnZXJdOwogICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9X
aXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3RvcjooKHVuZG9PclJlZG8gPT0gVW5k
b09yUmVkbzo6VW5kbykgPyBAc2VsZWN0b3IodW5kb0VkaXRpbmc6KSA6IEBzZWxlY3RvcihyZWRv
RWRpdGluZzopKSBvYmplY3Q6Y29tbWFuZE9iakMuZ2V0KCldOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsTWFjLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGxNYWMuaAppbmRleCA0OTFlYTQ4NmFhNDJmNDc2
ODY0MzVlYTFiMjlhZDg1NTM4NWQ2NDFiLi40ZDg3YzkwNTNlMjE4NjAxMzY5MmFiNGVhOTU3MWE5
YzI5NDA4ZmFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGxNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGxNYWMuaApAQCAtMzIsNyArMzIsNyBAQAogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKLUBjbGFzcyBXS0VkaXRv
clVuZG9UYXJnZXRPYmpDOworQGNsYXNzIFdLRWRpdG9yVW5kb1RhcmdldDsKIEBjbGFzcyBXS1Zp
ZXc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRkYTAyZmFiNTEyN2ExZjQ2NzdmOWUyMjBlMzEy
MzAxMDM0NWEzN2EuLjIyM2E3YmY4ZmI2ZTAzNGM2YWI5N2ZjNTY3MmJiMTkzM2Y2Y2ZiMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
NzM4LDYgKzczOCw3IEBACiAJCTJFQTdCM0QxMjAyNkNFRjgwMDlDRTVBQyAvKiBXS051bWJlclBh
ZFZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAyRUE3QjNDRjIwMjZDRUY4MDA5Q0U1QUMgLyogV0tOdW1iZXJQYWRWaWV3Q29udHJv
bGxlci5oICovOyB9OwogCQkyRUE3QjNENTIwMjZDRjIzMDA5Q0U1QUMgLyogV0tOdW1iZXJQYWRW
aWV3LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUE3
QjNEMzIwMjZDRjIzMDA5Q0U1QUMgLyogV0tOdW1iZXJQYWRWaWV3LmggKi87IH07CiAJCTJFQjZG
QzAxMjAzMDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkVCNkZCRkYyMDMwMjE5
NjAwMTdFNjE5IC8qIFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLmggKi87IH07CisJCTJFQ0Y2
NkNFMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRUNGNjZDQzIxRDZCNzdFMDA5RTVDM0YgLyog
V0tFZGl0Q29tbWFuZC5oICovOyB9OwogCQkyRjgzMzY4NjFGQTEzOURGMDBDNkUwODAgLyogVG91
Y2hCYXJNZW51RGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMkZENDNCOTExRkEwMDZBMTAwODNGNTFDIC8qIFRvdWNoQmFyTWVudURhdGEuaCAqLzsg
fTsKIAkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5Njgx
NDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICovOyB9OwogCQkzMTJD
MEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBDNDkxNDZEREM4QTAw
MTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjgxOCw2ICsyODE5LDggQEAKIAkJMkVBN0Iz
RDQyMDI2Q0YyMzAwOUNFNUFDIC8qIFdLTnVtYmVyUGFkVmlldy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFdLTnVtYmVyUGFkVmlldy5tbTsgcGF0aCA9IGlvcy9mb3Jtcy9XS051bWJlclBhZFZp
ZXcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQjZGQkZGMjAzMDIxOTYwMDE3
RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1Rp
bWVQaWNrZXJWaWV3Q29udHJvbGxlci5oOyBwYXRoID0gaW9zL2Zvcm1zL1dLVGltZVBpY2tlclZp
ZXdDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJFQjZGQzAwMjAz
MDIxOTYwMDE3RTYxOSAvKiBXS1RpbWVQaWNrZXJWaWV3Q29udHJvbGxlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLm1tOyBwYXRoID0gaW9zL2Zv
cm1zL1dLVGltZVBpY2tlclZpZXdDb250cm9sbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQkyRUNGNjZDQzIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0VkaXRDb21tYW5kLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTJFQ0Y2NkNEMjFENkI3N0UwMDlFNUMzRiAvKiBXS0VkaXRDb21tYW5kLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tFZGl0Q29tbWFuZC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkY4MDlERDUxRkJEMUJDOTAwNUZFNjNBIC8qIFRvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFRvdWNoQmFyTWVudUl0ZW1EYXRhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkY4MDlERDkxRkJEMUJGMjAwNUZFNjNBIC8qIFRvdWNoQmFyTWVu
dUl0ZW1EYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRvdWNoQmFyTWVudUl0ZW1EYXRhLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJGRDQzQjkxMUZBMDA2QTEwMDgzRjUxQyAvKiBUb3Vj
aEJhck1lbnVEYXRhLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRvdWNoQmFy
TWVudURhdGEuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTUzNDAsNiArNTM0Myw4
IEBACiAJCQkJNTFEMTI0MzIxRTZERTUyMTAwMkIyODIwIC8qIFdlYlVSTFNjaGVtZUhhbmRsZXJD
b2NvYS5tbSAqLywKIAkJCQkyREZDN0RCOTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwu
aCAqLywKIAkJCQkyREZDN0RCQTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwubW0gKi8s
CisJCQkJMkVDRjY2Q0MyMUQ2Qjc3RTAwOUU1QzNGIC8qIFdLRWRpdENvbW1hbmQuaCAqLywKKwkJ
CQkyRUNGNjZDRDIxRDZCNzdFMDA5RTVDM0YgLyogV0tFZGl0Q29tbWFuZC5tbSAqLywKIAkJCQlF
MUFFQTIyRDE0Njg3QkRCMDA4MDQ1NjkgLyogV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRjaGVyLmgg
Ki8sCiAJCQkJRTFBRUEyMkUxNDY4N0JEQjAwODA0NTY5IC8qIFdLRnVsbEtleWJvYXJkQWNjZXNz
V2F0Y2hlci5tbSAqLywKIAkJCQkxQUQwMUJDQjE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxvYWRG
cmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIuaCAqLywKQEAgLTk2NTQsNiArOTY1OSw3IEBACiAJ
CQkJNjM3MjgxQTIyMUFEQzc0NDAwOUUwREU2IC8qIFdLRG93bmxvYWRQcm9ncmVzcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJRjQwOUJBMTgxRTZFNjRCQzAwOURBMjhFIC8qIFdLRHJhZ0Rlc3RpbmF0
aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREMxOEZBRDIxODkxMDQ5MDAyNUE4OEQg
LyogV0tEcmF3aW5nVmlldy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkVDRjY2Q0UyMUQ2Qjc3RTAw
OUU1QzNGIC8qIFdLRWRpdENvbW1hbmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRjQ1OTJGMTk0
NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0ZENTQ4QzEz
MkQ4MjY4MDA1NUQ4MTYgLyogV0tFcnJvckNGLmggaW4gSGVhZGVycyAqLywKIAkJCQkzN0I1MDQ1
MjE5RUVGMzEzMDBDRTJDRjggLyogV0tFcnJvclByaXZhdGUuaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>