<?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>214042</bug_id>
          
          <creation_ts>2020-07-07 06:46:21 -0700</creation_ts>
          <short_desc>[iOS] Sharing an &lt;img&gt; element with a base64-encoded URL shares the URL as raw text instead of an image</short_desc>
          <delta_ts>2020-07-08 09:16:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</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="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>graouts</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>1669380</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 06:46:21 -0700</bug_when>
    <thetext>Sharing an &lt;img&gt; element with a base64-encoded URL shares the URL as raw text instead of an image</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669382</commentid>
    <comment_count>1</comment_count>
      <attachid>403683</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 06:54:22 -0700</bug_when>
    <thetext>Created attachment 403683
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669383</commentid>
    <comment_count>2</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 06:55:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/56669102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669386</commentid>
    <comment_count>3</comment_count>
      <attachid>403684</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 07:00:15 -0700</bug_when>
    <thetext>Created attachment 403684
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669440</commentid>
    <comment_count>4</comment_count>
      <attachid>403684</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-07 09:56:13 -0700</bug_when>
    <thetext>Comment on attachment 403684
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:831
&gt; +        if ([element.imageURL.scheme isEqualToString:@&quot;data&quot;] &amp;&amp; element.image &amp;&amp; [delegate respondsToSelector:@selector(actionSheetAssistant:shareElementWithImage:rect:)])

Does the &quot;scheme&quot; getter convert the text to lowercase? If not, then we should be checking in an ASCII case-insensitive way.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6917
&gt; +    shareData.files = { { &quot;Image.png&quot;, WebCore::SharedBuffer::create(UIImagePNGRepresentation(image)) } };

Is &quot;Image.png&quot; the best file name to use? Anything we can do better given the context? I’m not specifically suggesting this bug even &quot;SharedImage.png&quot; might be better? Or maybe lowercased &quot;image.png&quot;.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6918
&gt; +    [self _showShareSheet:shareData inRect: { [self convertRect:boundingRect toView:self.webView] } completionHandler:[] (bool success) { }];

This seems to be a pasted copy of a line of code from above; these small possible mistakes were copied:

Extra space here after &quot;inRect:&quot;. Not sure I understand those braces, it compiles, so OK. Don’t think we need the word &quot;success&quot; there in &quot;(bool success)&quot;. Can we pass null for the completion handler instead of a block?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669450</commentid>
    <comment_count>5</comment_count>
      <attachid>403684</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-07-07 10:09:04 -0700</bug_when>
    <thetext>Comment on attachment 403684
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6917
&gt;&gt; +    shareData.files = { { &quot;Image.png&quot;, WebCore::SharedBuffer::create(UIImagePNGRepresentation(image)) } };
&gt; 
&gt; Is &quot;Image.png&quot; the best file name to use? Anything we can do better given the context? I’m not specifically suggesting this bug even &quot;SharedImage.png&quot; might be better? Or maybe lowercased &quot;image.png&quot;.

Also, should it be localized? 😳</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669514</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 13:33:57 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #4)
&gt; Comment on attachment 403684 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403684&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:831
&gt; &gt; +        if ([element.imageURL.scheme isEqualToString:@&quot;data&quot;] &amp;&amp; element.image &amp;&amp; [delegate respondsToSelector:@selector(actionSheetAssistant:shareElementWithImage:rect:)])
&gt; 
&gt; Does the &quot;scheme&quot; getter convert the text to lowercase? If not, then we
&gt; should be checking in an ASCII case-insensitive way.

The `data` scheme is case-sensitive as far as I understand. At least a `DATA` URL in WebKit will not produce a valid image. I don&apos;t think we need to do this here.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6917
&gt; &gt; +    shareData.files = { { &quot;Image.png&quot;, WebCore::SharedBuffer::create(UIImagePNGRepresentation(image)) } };
&gt; 
&gt; Is &quot;Image.png&quot; the best file name to use? Anything we can do better given
&gt; the context? I’m not specifically suggesting this bug even &quot;SharedImage.png&quot;
&gt; might be better? Or maybe lowercased &quot;image.png&quot;.

On macOS, the sharing service in this scenario produces an image named &quot;Image 07-07-2020 at 21.43.png&quot;, which I believe is performed by the macOS sharing system. I think we should use a localized string that, in English, works out to &quot;Image.png&quot;.

&gt; &gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6918
&gt; &gt; +    [self _showShareSheet:shareData inRect: { [self convertRect:boundingRect toView:self.webView] } completionHandler:[] (bool success) { }];
&gt; 
&gt; This seems to be a pasted copy of a line of code from above; these small
&gt; possible mistakes were copied:
&gt; 
&gt; Extra space here after &quot;inRect:&quot;. Not sure I understand those braces, it
&gt; compiles, so OK.

This is because the expected type is a FloatRect so the braces are there to construct a FloatRect from the `CGRect`. The extra space can definitely go away though.

Don’t think we need the word &quot;success&quot; there in &quot;(bool
&gt; success)&quot;. Can we pass null for the completion handler instead of a block?

We can, should and will pass `nil`.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669538</commentid>
    <comment_count>7</comment_count>
      <attachid>403684</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-07-07 14:36:48 -0700</bug_when>
    <thetext>Comment on attachment 403684
Patch

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

&gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:831
&gt;&gt;&gt; +        if ([element.imageURL.scheme isEqualToString:@&quot;data&quot;] &amp;&amp; element.image &amp;&amp; [delegate respondsToSelector:@selector(actionSheetAssistant:shareElementWithImage:rect:)])
&gt;&gt; 
&gt;&gt; Does the &quot;scheme&quot; getter convert the text to lowercase? If not, then we should be checking in an ASCII case-insensitive way.
&gt; 
&gt; The `data` scheme is case-sensitive as far as I understand. At least a `DATA` URL in WebKit will not produce a valid image. I don&apos;t think we need to do this here.

You are incorrect. The scheme is *not* case-sensitive.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669582</commentid>
    <comment_count>8</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 16:14:50 -0700</bug_when>
    <thetext>(In reply to Antoine Quint from comment #6)
&gt; (In reply to Darin Adler from comment #4)
&gt; &gt; Extra space here after &quot;inRect:&quot;. Not sure I understand those braces, it
&gt; &gt; compiles, so OK.
&gt; 
&gt; This is because the expected type is a FloatRect so the braces are there to
&gt; construct a FloatRect from the `CGRect`. The extra space can definitely go
&gt; away though.

Incorrect, our style checker yells if you do :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669583</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 16:15:20 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 403684 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=403684&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/UIProcess/ios/WKActionSheetAssistant.mm:831
&gt; &gt;&gt;&gt; +        if ([element.imageURL.scheme isEqualToString:@&quot;data&quot;] &amp;&amp; element.image &amp;&amp; [delegate respondsToSelector:@selector(actionSheetAssistant:shareElementWithImage:rect:)])
&gt; &gt;&gt; 
&gt; &gt;&gt; Does the &quot;scheme&quot; getter convert the text to lowercase? If not, then we should be checking in an ASCII case-insensitive way.
&gt; &gt; 
&gt; &gt; The `data` scheme is case-sensitive as far as I understand. At least a `DATA` URL in WebKit will not produce a valid image. I don&apos;t think we need to do this here.
&gt; 
&gt; You are incorrect. The scheme is *not* case-sensitive.

OK. I guess we have some work to do to support that, but we can at least make this new code deal with that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669587</commentid>
    <comment_count>10</comment_count>
      <attachid>403742</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 16:25:17 -0700</bug_when>
    <thetext>Created attachment 403742
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669591</commentid>
    <comment_count>11</comment_count>
      <attachid>403743</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-07 16:31:54 -0700</bug_when>
    <thetext>Created attachment 403743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669762</commentid>
    <comment_count>12</comment_count>
      <attachid>403743</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-07-08 09:03:24 -0700</bug_when>
    <thetext>Comment on attachment 403743
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:6927
&gt; +    NSString *fileName = [NSString stringWithFormat:@&quot;%@.png&quot;, (NSString*)WEB_UI_STRING(&quot;Shared Image&quot;, &quot;Default name for the file created for a shared image with no explicit name.&quot;)];

Nit - space between NSString and *.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669769</commentid>
    <comment_count>13</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2020-07-08 09:16:51 -0700</bug_when>
    <thetext>Committed r264101: &lt;https://trac.webkit.org/changeset/264101&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403683</attachid>
            <date>2020-07-07 06:54:22 -0700</date>
            <delta_ts>2020-07-07 07:00:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214042-20200707155420.patch</filename>
            <type>text/plain</type>
            <size>4552</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYjgyMjAwOGM0YjJhMDcx
MmJkNmRlY2I3NzI1NWQyYjgxZjgwZTEuLjRkZmIzODkyMDRhZmJmN2MyYWUzNTc5MTRlMjY0MjVl
MDVlZWQyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDctMDcgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lPU10gU2hhcmluZyBhbiA8
aW1nPiBlbGVtZW50IHdpdGggYSBiYXNlNjQtZW5jb2RlZCBVUkwgc2hhcmVzIHRoZSBVUkwgYXMg
cmF3IHRleHQgaW5zdGVhZCBvZiBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjY2
OTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biB0aGUgY2FzZSB3aGVyZSB0aGUgPGltZz4gZWxlbWVudCB0aGF0IHdhcyB0aGUgdGFyZ2V0IHdo
ZW4gdGhlIHNoYXJlIHNoZWV0IHdhcyBicm91Z2h0IGhhcyBpdHMgZGF0YSBlbmNvZGVkCisgICAg
ICAgIGFzIGEgYmFzZTY0IFVSTCwgd2UgbmVlZCB0byBzaGFyZSB0aGUgVUlJbWFnZSB0aGF0IHdh
cyBjcmVhdGVkIGFzIGl0cyBzbmFwc2hvdCBhcyBhIGZpbGUgcmF0aGVyIHRoYW4gdGhlIFVSTAor
ICAgICAgICB0byBhdm9pZCBhIGJhc2U2NCBzdHJpbmcgdG8gYmUgc2hhcmVkIGluc3RlYWQgb2Yg
dGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQubW06CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFj
dGlvbldpdGhUeXBlOmVsZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6cmVjdDpd
KToKKwogMjAyMC0wNy0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBIaWdoIENQVSB1c2FnZSBvbiBTdGFzaCBzZWFyY2ggcmVzdWx0cyBwYWdlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Np
c3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50LmgKaW5kZXggMTU2ODdjNGI4N2UxYzYzZjRhYjE0ZjNmNjk5NmRiOGEyZGU0Njc4OC4uODQ4
YjYwZjU3ZTljOWYyYmI5MThjZmZkM2Q4ZTcyYzMyNTg2ZGViOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC03MCw2
ICs3MCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBl
KTsKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRG
b3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dDsKIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0
QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogI2VuZGlmCist
ICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50IHNoYXJlRWxlbWVudFdpdGhJbWFnZTooVUlJbWFnZSAqKWltYWdlIHJlY3Q6KENHUmVj
dClib3VuZGluZ1JlY3Q7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCA5YjExMGUyZTE1ZDFlMzEw
ODU5YjU4ZDcxNzJlMWU1M2RlMTM0NTgxLi4xNTczMTQwYzQ4ZmFiODU5ZTA2NjEzNjgzOWNhYzkz
OWQ3ZGEwZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rp
b25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtODI4LDcgKzgyOCwxMCBAQCAtICh2b2lkKWhhbmRs
ZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50
OihfV0tBY3RpdgogICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBw
ZXJmb3JtQWN0aW9uOldlYktpdDo6U2hlZXRBY3Rpb246OlNhdmVJbWFnZV07CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZToKLSAgICAgICAgW2RlbGVn
YXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hhcmVFbGVtZW50V2l0aFVSTDplbGVtZW50
LlVSTCA/OiBlbGVtZW50LmltYWdlVVJMIHJlY3Q6ZWxlbWVudC5ib3VuZGluZ1JlY3RdOworICAg
ICAgICBpZiAoW2VsZW1lbnQuaW1hZ2VVUkwuc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAImRhdGEi
XSAmJiBlbGVtZW50LmltYWdlICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNoYXJlRWxlbWVudFdpdGhJbWFnZTpyZWN0OildKQor
ICAgICAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hhcmVFbGVt
ZW50V2l0aEltYWdlOmVsZW1lbnQuaW1hZ2UgcmVjdDplbGVtZW50LmJvdW5kaW5nUmVjdF07Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpz
ZWxmIHNoYXJlRWxlbWVudFdpdGhVUkw6ZWxlbWVudC5VUkwgPzogZWxlbWVudC5pbWFnZVVSTCBy
ZWN0OmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA3MmRjNzgw
NWUyMjQ4NzZlN2ViNjI5ZDk1M2MxZjU2N2U5MmYwNmNhLi5iNGE0YmJiMWUzMmM3N2ViZTA5NDY3
ZjZjYzI3NTgwZGYyZWEzNGQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY5MTEsNiArNjkxMSwxNiBA
QCAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdAogICAgIFtzZWxmIF9zaG93U2hhcmVTaGVldDpzaGFy
ZURhdGEgaW5SZWN0OiB7IFtzZWxmIGNvbnZlcnRSZWN0OmJvdW5kaW5nUmVjdCB0b1ZpZXc6c2Vs
Zi53ZWJWaWV3XSB9IGNvbXBsZXRpb25IYW5kbGVyOltdIChib29sIHN1Y2Nlc3MpIHsgfV07CiB9
CiAKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDoo
Q0dSZWN0KWJvdW5kaW5nUmVjdAoreworICAgIFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
Ukwgc2hhcmVEYXRhOworICAgIFdlYkNvcmU6OlJhd0ZpbGUgZmlsZTsKKyAgICBmaWxlLmZpbGVO
YW1lID0gIkltYWdlLnBuZyI7CisgICAgZmlsZS5maWxlRGF0YSA9IFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKFVJSW1hZ2VQTkdSZXByZXNlbnRhdGlvbihpbWFnZSkpOworICAgIHNoYXJl
RGF0YS5maWxlcyA9IHsgZmlsZSB9OworICAgIFtzZWxmIF9zaG93U2hhcmVTaGVldDpzaGFyZURh
dGEgaW5SZWN0OiB7IFtzZWxmIGNvbnZlcnRSZWN0OmJvdW5kaW5nUmVjdCB0b1ZpZXc6c2VsZi53
ZWJWaWV3XSB9IGNvbXBsZXRpb25IYW5kbGVyOltdIChib29sIHN1Y2Nlc3MpIHsgfV07Cit9CisK
ICNpZiBIQVZFKEFQUF9MSU5LUykKIC0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0
aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25z
Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50CiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403684</attachid>
            <date>2020-07-07 07:00:15 -0700</date>
            <delta_ts>2020-07-07 16:25:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214042-20200707160014.patch</filename>
            <type>text/plain</type>
            <size>4480</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYjgyMjAwOGM0YjJhMDcx
MmJkNmRlY2I3NzI1NWQyYjgxZjgwZTEuLjRkZmIzODkyMDRhZmJmN2MyYWUzNTc5MTRlMjY0MjVl
MDVlZWQyZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDctMDcgIEFudG9pbmUg
UXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lPU10gU2hhcmluZyBhbiA8
aW1nPiBlbGVtZW50IHdpdGggYSBiYXNlNjQtZW5jb2RlZCBVUkwgc2hhcmVzIHRoZSBVUkwgYXMg
cmF3IHRleHQgaW5zdGVhZCBvZiBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjY2
OTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
biB0aGUgY2FzZSB3aGVyZSB0aGUgPGltZz4gZWxlbWVudCB0aGF0IHdhcyB0aGUgdGFyZ2V0IHdo
ZW4gdGhlIHNoYXJlIHNoZWV0IHdhcyBicm91Z2h0IGhhcyBpdHMgZGF0YSBlbmNvZGVkCisgICAg
ICAgIGFzIGEgYmFzZTY0IFVSTCwgd2UgbmVlZCB0byBzaGFyZSB0aGUgVUlJbWFnZSB0aGF0IHdh
cyBjcmVhdGVkIGFzIGl0cyBzbmFwc2hvdCBhcyBhIGZpbGUgcmF0aGVyIHRoYW4gdGhlIFVSTAor
ICAgICAgICB0byBhdm9pZCBhIGJhc2U2NCBzdHJpbmcgdG8gYmUgc2hhcmVkIGluc3RlYWQgb2Yg
dGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQubW06CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgaGFuZGxlRWxlbWVudEFj
dGlvbldpdGhUeXBlOmVsZW1lbnQ6bmVlZHNJbnRlcmFjdGlvbjpdKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250
ZW50VmlldyBhY3Rpb25TaGVldEFzc2lzdGFudDpzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6cmVjdDpd
KToKKwogMjAyMC0wNy0wNiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBIaWdoIENQVSB1c2FnZSBvbiBTdGFzaCBzZWFyY2ggcmVzdWx0cyBwYWdlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Np
c3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0
YW50LmgKaW5kZXggMTU2ODdjNGI4N2UxYzYzZjRhYjE0ZjNmNjk5NmRiOGEyZGU0Njc4OC4uODQ4
YjYwZjU3ZTljOWYyYmI5MThjZmZkM2Q4ZTcyYzMyNTg2ZGViOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCkBAIC03MCw2
ICs3MCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBl
KTsKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRlVGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRG
b3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFu
dDsKIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0
QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50OwogI2VuZGlmCist
ICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICopYXNz
aXN0YW50IHNoYXJlRWxlbWVudFdpdGhJbWFnZTooVUlJbWFnZSAqKWltYWdlIHJlY3Q6KENHUmVj
dClib3VuZGluZ1JlY3Q7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQppbmRleCA5YjExMGUyZTE1ZDFlMzEw
ODU5YjU4ZDcxNzJlMWU1M2RlMTM0NTgxLi4xNTczMTQwYzQ4ZmFiODU5ZTA2NjEzNjgzOWNhYzkz
OWQ3ZGEwZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rp
b25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtODI4LDcgKzgyOCwxMCBAQCAtICh2b2lkKWhhbmRs
ZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVudEFjdGlvblR5cGUpdHlwZSBlbGVtZW50
OihfV0tBY3RpdgogICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBw
ZXJmb3JtQWN0aW9uOldlYktpdDo6U2hlZXRBY3Rpb246OlNhdmVJbWFnZV07CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZToKLSAgICAgICAgW2RlbGVn
YXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hhcmVFbGVtZW50V2l0aFVSTDplbGVtZW50
LlVSTCA/OiBlbGVtZW50LmltYWdlVVJMIHJlY3Q6ZWxlbWVudC5ib3VuZGluZ1JlY3RdOworICAg
ICAgICBpZiAoW2VsZW1lbnQuaW1hZ2VVUkwuc2NoZW1lIGlzRXF1YWxUb1N0cmluZzpAImRhdGEi
XSAmJiBlbGVtZW50LmltYWdlICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGFjdGlvblNoZWV0QXNzaXN0YW50OnNoYXJlRWxlbWVudFdpdGhJbWFnZTpyZWN0OildKQor
ICAgICAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hhcmVFbGVt
ZW50V2l0aEltYWdlOmVsZW1lbnQuaW1hZ2UgcmVjdDplbGVtZW50LmJvdW5kaW5nUmVjdF07Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpz
ZWxmIHNoYXJlRWxlbWVudFdpdGhVUkw6ZWxlbWVudC5VUkwgPzogZWxlbWVudC5pbWFnZVVSTCBy
ZWN0OmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA3MmRjNzgw
NWUyMjQ4NzZlN2ViNjI5ZDk1M2MxZjU2N2U5MmYwNmNhLi5hMDQ3MTM0MDU1MWU2NGU1ODc4N2Nk
YmI4YTg0YTY1YmY3NjU5ODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY5MTEsNiArNjkxMSwxMyBA
QCAtICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50ICop
YXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdAogICAgIFtzZWxmIF9zaG93U2hhcmVTaGVldDpzaGFy
ZURhdGEgaW5SZWN0OiB7IFtzZWxmIGNvbnZlcnRSZWN0OmJvdW5kaW5nUmVjdCB0b1ZpZXc6c2Vs
Zi53ZWJWaWV3XSB9IGNvbXBsZXRpb25IYW5kbGVyOltdIChib29sIHN1Y2Nlc3MpIHsgfV07CiB9
CiAKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDoo
Q0dSZWN0KWJvdW5kaW5nUmVjdAoreworICAgIFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
Ukwgc2hhcmVEYXRhOworICAgIHNoYXJlRGF0YS5maWxlcyA9IHsgeyAiSW1hZ2UucG5nIiwgV2Vi
Q29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoVUlJbWFnZVBOR1JlcHJlc2VudGF0aW9uKGltYWdl
KSkgfSB9OworICAgIFtzZWxmIF9zaG93U2hhcmVTaGVldDpzaGFyZURhdGEgaW5SZWN0OiB7IFtz
ZWxmIGNvbnZlcnRSZWN0OmJvdW5kaW5nUmVjdCB0b1ZpZXc6c2VsZi53ZWJWaWV3XSB9IGNvbXBs
ZXRpb25IYW5kbGVyOltdIChib29sIHN1Y2Nlc3MpIHsgfV07Cit9CisKICNpZiBIQVZFKEFQUF9M
SU5LUykKIC0gKEJPT0wpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3Rh
bnQgKilhc3Npc3RhbnQgc2hvdWxkSW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50CiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403742</attachid>
            <date>2020-07-07 16:25:17 -0700</date>
            <delta_ts>2020-07-07 16:31:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214042-20200708012515.patch</filename>
            <type>text/plain</type>
            <size>21401</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1YzIyYzk1NmJiZmVl
YmY5NmQ1YmIzZmUxMDNmNDY2OGZiNTYzZi4uMmMwOGE3ODExMTM5MTM0YzFkNjY5OGFkMzRkNmMx
YzI0NmMzZTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtpT1NdIFNoYXJpbmcg
YW4gPGltZz4gZWxlbWVudCB3aXRoIGEgYmFzZTY0LWVuY29kZWQgVVJMIHNoYXJlcyB0aGUgVVJM
IGFzIHJhdyB0ZXh0IGluc3RlYWQgb2YgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY2NjkxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDIwLTA3LTA2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhpZ2ggQ1BVIHVzYWdl
IG9uIFN0YXNoIHNlYXJjaCByZXN1bHRzIHBhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYjgyMjAwOGM0YjJh
MDcxMmJkNmRlY2I3NzI1NWQyYjgxZjgwZTEuLjIzYzU3Nzc5YjM4ZWQzZmJkNjc1NjFiMTFlZWIx
YjgxYTNlYjcwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDctMDcgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lPU10gU2hhcmluZyBh
biA8aW1nPiBlbGVtZW50IHdpdGggYSBiYXNlNjQtZW5jb2RlZCBVUkwgc2hhcmVzIHRoZSBVUkwg
YXMgcmF3IHRleHQgaW5zdGVhZCBvZiBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NjY2OTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgPGltZz4gZWxlbWVudCB0aGF0IHdhcyB0aGUgdGFyZ2V0
IHdoZW4gdGhlIHNoYXJlIHNoZWV0IHdhcyBicm91Z2h0IGhhcyBpdHMgZGF0YSBlbmNvZGVkCisg
ICAgICAgIGFzIGEgYmFzZTY0IFVSTCwgd2UgbmVlZCB0byBzaGFyZSB0aGUgVUlJbWFnZSB0aGF0
IHdhcyBjcmVhdGVkIGFzIGl0cyBzbmFwc2hvdCBhcyBhIGZpbGUgcmF0aGVyIHRoYW4gdGhlIFVS
TAorICAgICAgICB0byBhdm9pZCBhIGJhc2U2NCBzdHJpbmcgdG8gYmUgc2hhcmVkIGluc3RlYWQg
b2YgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgVG8gc3VwcG9ydCB0ZXN0aW5nIG9mIHRoaXMs
IHdlIGFkZCBhIG5ldyBvcHRpb25hbCBXS1NoYXJlU2hlZXQgZGVsZWdhdGUgdG8gaW5kaWNhdGUg
dGhhdCB0aGUgc2hhcmUgc2hlZXQgd2lsbAorICAgICAgICBzaG93IGFuZCB0aGUgcHJvdmlkZWQg
YWN0aXZpdHkgaXRlbXMsIHdoaWNoIHdlIGZvcndhcmQgdG8gYSBuZXcgb3B0aW9uYWwgV0tVSURl
bGVnYXRlUHJpdmF0ZSBkZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgIEFQSSB0ZXN0cyBjYW4gdGh1
cyBiZSB3cml0dGVuIHRvIGNoZWNrIHRoZSBkYXRhIHByb3ZpZGVkIHRvIHRoZSBzaGFyZSBzaGVl
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0Lm1tOgorICAgICAgICAoLVtXS1NoYXJlU2hlZXQg
cHJlc2VudFdpdGhTaGFyZURhdGFBcnJheTppblJlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTplbGVtZW50Om5lZWRzSW50ZXJhY3Rpb246
XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hhcmVTaGVldDp3aWxsU2hvd0FjdGl2aXR5SXRl
bXM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hh
cmVFbGVtZW50V2l0aFVSTDpyZWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlv
blNoZWV0QXNzaXN0YW50OnNoYXJlRWxlbWVudFdpdGhJbWFnZTpyZWN0Ol0pOgorCiAyMDIwLTA3
LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhp
Z2ggQ1BVIHVzYWdlIG9uIFN0YXNoIHNlYXJjaCByZXN1bHRzIHBhZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNv
cmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxNjQ3ZDIzZmZhYWNmZDM4ZDQ1
MTJiM2ZmNDZiOTAwNGRkOTkzZmU1Li43NzNkODRmNGYwN2Q2ZTM3ZmEyNDY5YTAxNTNiMTk2Y2Q3
YzEwYTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MK
QEAgLTcxMiw2ICs3MTIsOSBAQAogLyogVGl0bGUgZm9yIFNoYXJlIGNvbnRleHQgbWVudSBpdGVt
LiAqLwogIlNoYXJlIiA9ICJTaGFyZSI7CiAKKy8qIERlZmF1bHQgbmFtZSBmb3IgdGhlIGZpbGUg
Y3JlYXRlZCBmb3IgYSBzaGFyZWQgaW1hZ2Ugd2l0aCBubyBleHBsaWNpdCBuYW1lLiAqLworIlNo
YXJlZCBJbWFnZSIgPSAiU2hhcmVkIEltYWdlIjsKKwogLyogVGl0bGUgZm9yIFNoYXJlIGFjdGlv
biBidXR0b24gKi8KICJTaGFyZeKApiIgPSAiU2hhcmXigKYiOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRl
eCA0ZGIxMDNhZDI4YTM5YmIxMjlhMGE3MGFmZWJkNTUzMzg5ODViMDY1Li42ZDBhNTcwZDU1YzZh
YjgyMGNmN2I5ZWJhMTUzNTQ4ZmIwNGFmNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE0Nyw2ICsx
NDcsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbnQg
d2l0aEZsYWdzOihfV0tBdXRvcGxheUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYWN0aXZp
dHlJdGVtcyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKICNpZiBUQVJHRVRf
T1NfSVBIT05FCiAKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxk
SW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaAppbmRleCBjMzQwZGI2OGVlZmE5OWNmNDc2Y2Vm
NWM4NTgxMmZiMGE4ZmEwZTg0Li5jOTdkYzRiNGRlYzRmYTU4MGQ0OTBmMWQ0Y2ZjODZjZGZjZTBi
Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hl
ZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaApA
QCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIEBwcm90b2Nv
bCBXS1NoYXJlU2hlZXREZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIC0gKHZvaWQpc2hh
cmVTaGVldERpZERpc21pc3M6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQ7CistICh2b2lkKXNo
YXJlU2hlZXQ6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQgd2lsbFNob3dBY3Rpdml0eUl0ZW1z
OihOU0FycmF5ICopYWN0aXZpdHlJdGVtczsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQubW0KaW5kZXggODFhY2NhYmEx
ZmQxM2E2MzE5ODQyODg5OTUzZWQwNjJlN2FlYWEyZC4uZjkyZTZjNzcyNDg3Njk2Yzk0MTg1ODY2
M2Y4NDI0NmE5NGFhNTExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tTaGFyZVNoZWV0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dL
U2hhcmVTaGVldC5tbQpAQCAtMTgzLDYgKzE4MywxMCBAQCAtICh2b2lkKXByZXNlbnRXaXRoU2hh
cmVEYXRhQXJyYXk6KE5TQXJyYXkgKilzaGFyaW5nSXRlbXMgaW5SZWN0OihXVEY6Ok9wdGlvbmFs
PAogICAgIH0gZWxzZQogICAgICAgICBwb3BvdmVyQ29udHJvbGxlci5fY2VudGVyc1BvcG92ZXJJ
ZlNvdXJjZVZpZXdOb3RTZXQgPSBZRVM7CiAgICAgCisKKyAgICBpZiAoW19kZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNoYXJlU2hlZXQ6d2lsbFNob3dBY3Rpdml0eUl0ZW1z
OildKQorICAgICAgICBbX2RlbGVnYXRlIHNoYXJlU2hlZXQ6c2VsZiB3aWxsU2hvd0FjdGl2aXR5
SXRlbXM6c2hhcmluZ0l0ZW1zXTsKKwogICAgIF9wcmVzZW50YXRpb25WaWV3Q29udHJvbGxlciA9
IFtVSVZpZXdDb250cm9sbGVyIF92aWV3Q29udHJvbGxlckZvckZ1bGxTY3JlZW5QcmVzZW50YXRp
b25Gcm9tVmlldzp3ZWJWaWV3XTsKICAgICBbX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyIHBy
ZXNlbnRWaWV3Q29udHJvbGxlcjpfc2hhcmVTaGVldFZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1h
dGVkOllFUyBjb21wbGV0aW9uOm5pbF07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCmluZGV4IDE1Njg3YzRiODdl
MWM2M2Y0YWIxNGYzZjY5OTZkYjhhMmRlNDY3ODguLjg0OGI2MGY1N2U5YzlmMmJiOTE4Y2ZmZDNk
OGU3MmMzMjU4NmRlYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtNzAsNiArNzAsNyBAQCB0eXBlZGVmIE5TX0VO
VU0oTlNJbnRlZ2VyLCBfV0tFbGVtZW50QWN0aW9uVHlwZSk7CiAtIChVSVRhcmdldGVkUHJldmll
dyAqKWNyZWF0ZVRhcmdldGVkQ29udGV4dE1lbnVIaW50Rm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6
KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQ7CiAtICh2b2lkKXJlbW92ZUNvbnRl
eHRNZW51Vmlld0lmUG9zc2libGVGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCAqKWFzc2lzdGFudDsKICNlbmRpZgorLSAodm9pZClhY3Rpb25TaGVldEFzc2lz
dGFudDooV0tBY3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaGFyZUVsZW1lbnRXaXRo
SW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSByZWN0OihDR1JlY3QpYm91bmRpbmdSZWN0OwogCiBAZW5k
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQubW0KaW5kZXggOWIxMTBlMmUxNWQxZTMxMDg1OWI1OGQ3MTcyZTFlNTNkZTEzNDU4
MS4uNDAyMTExYmEyMjc0MDJiYjgyZTAzZTQwY2U0YTYyMzc0YjAzOTljOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0K
QEAgLTgyOCw3ICs4MjgsMTAgQEAgLSAodm9pZCloYW5kbGVFbGVtZW50QWN0aW9uV2l0aFR5cGU6
KF9XS0VsZW1lbnRBY3Rpb25UeXBlKXR5cGUgZWxlbWVudDooX1dLQWN0aXYKICAgICAgICAgW2Rl
bGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgcGVyZm9ybUFjdGlvbjpXZWJLaXQ6OlNo
ZWV0QWN0aW9uOjpTYXZlSW1hZ2VdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIF9XS0VsZW1l
bnRBY3Rpb25UeXBlU2hhcmU6Ci0gICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmIHNoYXJlRWxlbWVudFdpdGhVUkw6ZWxlbWVudC5VUkwgPzogZWxlbWVudC5pbWFnZVVS
TCByZWN0OmVsZW1lbnQuYm91bmRpbmdSZWN0XTsKKyAgICAgICAgaWYgKFtlbGVtZW50LmltYWdl
VVJMLnNjaGVtZSBjYXNlSW5zZW5zaXRpdmVDb21wYXJlOkAiZGF0YSJdID09IE5TT3JkZXJlZFNh
bWUgJiYgZWxlbWVudC5pbWFnZSAmJiBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaGFyZUVsZW1lbnRXaXRoSW1hZ2U6cmVjdDopXSkK
KyAgICAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNoYXJlRWxl
bWVudFdpdGhJbWFnZTplbGVtZW50LmltYWdlIHJlY3Q6ZWxlbWVudC5ib3VuZGluZ1JlY3RdOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZiBzaGFyZUVsZW1lbnRXaXRoVVJMOmVsZW1lbnQuVVJMID86IGVsZW1lbnQuaW1hZ2VVUkwg
cmVjdDplbGVtZW50LmJvdW5kaW5nUmVjdF07CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNzJkYzc4
MDVlMjI0ODc2ZTdlYjYyOWQ5NTNjMWY1NjdlOTJmMDZjYS4uMTI4ODcxMWQ5ODcwZmM1YTdmZTE2
ZTlmMjZhMTA2ZjE4MWQ4NWJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC02NzkyLDYgKzY3OTIsMTYg
QEAgLSAodm9pZClzaGFyZVNoZWV0RGlkRGlzbWlzczooV0tTaGFyZVNoZWV0ICopc2hhcmVTaGVl
dAogICAgIFtfc2hhcmVTaGVldCBzZXREZWxlZ2F0ZTpuaWxdOwogICAgIF9zaGFyZVNoZWV0ID0g
bmlsOwogfQorCistICh2b2lkKXNoYXJlU2hlZXQ6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQg
d2lsbFNob3dBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYWN0aXZpdHlJdGVtcworeworICAgIEFT
U0VSVChfc2hhcmVTaGVldCA9PSBzaGFyZVNoZWV0KTsKKworICAgIGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPiB1aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+
PihbX3dlYlZpZXcgVUlEZWxlZ2F0ZV0pOworICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxTaGFyZUFjdGl2aXR5SXRlbXM6KV0pCisg
ICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OnNlbGYud2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0
eUl0ZW1zOmFjdGl2aXR5SXRlbXNdOworfQorCiAjZW5kaWYKIAogLSAoTlNTdHJpbmcgKilpbnB1
dExhYmVsVGV4dApAQCAtNjkwOCw3ICs2OTE4LDE1IEBAIC0gKHZvaWQpYWN0aW9uU2hlZXRBc3Np
c3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgKilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0
CiB7CiAgICAgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGE7CiAgICAg
c2hhcmVEYXRhLnVybCA9IHsgdXJsIH07Ci0gICAgW3NlbGYgX3Nob3dTaGFyZVNoZWV0OnNoYXJl
RGF0YSBpblJlY3Q6IHsgW3NlbGYgY29udmVydFJlY3Q6Ym91bmRpbmdSZWN0IHRvVmlldzpzZWxm
LndlYlZpZXddIH0gY29tcGxldGlvbkhhbmRsZXI6W10gKGJvb2wgc3VjY2VzcykgeyB9XTsKKyAg
ICBbc2VsZiBfc2hvd1NoYXJlU2hlZXQ6c2hhcmVEYXRhIGluUmVjdDogeyBbc2VsZiBjb252ZXJ0
UmVjdDpib3VuZGluZ1JlY3QgdG9WaWV3OnNlbGYud2ViVmlld10gfSBjb21wbGV0aW9uSGFuZGxl
cjpuaWxdOworfQorCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0
QXNzaXN0YW50ICopYXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdGhJbWFnZTooVUlJbWFnZSAqKWlt
YWdlIHJlY3Q6KENHUmVjdClib3VuZGluZ1JlY3QKK3sKKyAgICBXZWJDb3JlOjpTaGFyZURhdGFX
aXRoUGFyc2VkVVJMIHNoYXJlRGF0YTsKKyAgICBOU1N0cmluZyAqZmlsZU5hbWUgPSBbTlNTdHJp
bmcgc3RyaW5nV2l0aEZvcm1hdDpAIiVALnBuZyIsIChOU1N0cmluZyopV0VCX1VJX1NUUklORygi
U2hhcmVkIEltYWdlIiwgIkRlZmF1bHQgbmFtZSBmb3IgdGhlIGZpbGUgY3JlYXRlZCBmb3IgYSBz
aGFyZWQgaW1hZ2Ugd2l0aCBubyBleHBsaWNpdCBuYW1lLiIpXTsKKyAgICBzaGFyZURhdGEuZmls
ZXMgPSB7IHsgZmlsZU5hbWUsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKFVJSW1hZ2VQ
TkdSZXByZXNlbnRhdGlvbihpbWFnZSkpIH0gfTsKKyAgICBbc2VsZiBfc2hvd1NoYXJlU2hlZXQ6
c2hhcmVEYXRhIGluUmVjdDogeyBbc2VsZiBjb252ZXJ0UmVjdDpib3VuZGluZ1JlY3QgdG9WaWV3
OnNlbGYud2ViVmlld10gfSBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOwogfQogCiAjaWYgSEFWRShB
UFBfTElOS1MpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggNGQ0N2IxZjljYTJkYTdjZDVlMTgyMWFiZGMyM2E3MWM0YjMzZjc4Zi4uNjU3OTNjZjg2
OGU3YzMxZjVjMmMwZDIwYzY3MzMxZDZhOWJjYmMwZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTA3LTA3ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtpT1NdIFNoYXJp
bmcgYW4gPGltZz4gZWxlbWVudCB3aXRoIGEgYmFzZTY0LWVuY29kZWQgVVJMIHNoYXJlcyB0aGUg
VVJMIGFzIHJhdyB0ZXh0IGluc3RlYWQgb2YgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA0MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTY2NjkxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGEgdGVzdCB0aGF0IGxvYWRzIGEgcGFnZSB3aXRoIGFuIDxpbWc+IHdpdGggaXRz
IGRhdGEgZW5jb2RlZCBhcyBhIGJhc2U2NCBVUkwsIGJyaW5ncyB1cCB0aGUgc2hhcmUgc2hlZXQg
Zm9yIGl0CisgICAgICAgIGFuZCBjaGVja3MgYSBzaW5nbGUgTlNVUkwgb2JqZWN0IGlzIG1hZGUg
YXZhaWxhYmxlIGluIHRoZSBhY3Rpdml0eSBpdGVtcy4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1NoYXJlU2hlZXRUZXN0cy5tbTogQWRkZWQuCisgICAgICAg
ICgtW1NoYXJlU2hlZXRPYnNlcnZlciBfd2ViVmlldzphY3Rpb25zRm9yRWxlbWVudDpkZWZhdWx0
QWN0aW9uczpdKToKKyAgICAgICAgKC1bU2hhcmVTaGVldE9ic2VydmVyIF93ZWJWaWV3OndpbGxT
aGFyZUFjdGl2aXR5SXRlbXM6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpzaG93U2hhcmVT
aGVldCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9pbWctd2l0aC1iYXNlNjQtdXJsLmh0bWw6IEFkZGVkLgorCiAyMDIw
LTA3LTA3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFtHVEtdW01pbmlCcm93c2VyXSBvY2Nhc2lvbmFsIGNyYXNoZXMgd2hlbiBjbG9zaW5nIHdoaWxl
IGRvd25sb2FkIGluIHByb2dyZXNzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJlMjZjOGVl
ZWM2YmQ4YjE1ZjE2MTA2MmJhOGRjOWRlNTJhNWZiMzUuLjY0M2RmYTY5MTkzMmU1NjUwY2U0YTRi
ODkxNmU2OWQzMmFhNjJiYWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00ODgsNiArNDg4
LDggQEAKIAkJNkI5QUJFMTIyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZCOUFCRTExMjA4Njk1
MkYwMEQ3NURFNiAvKiBIVFRQUGFyc2Vycy5jcHAgKi87IH07CiAJCTZCRjRBNjgzMjM5RUQ0Q0Qw
MEUyRjQ1QiAvKiBMb2dnZWRJblN0YXR1cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2QkY0QTY4MjIzOUVENENEMDBFMkY0NUIgLyogTG9nZ2VkSW5T
dGF0dXMuY3BwICovOyB9OwogCQk2QkZEMjk0QzFENUU2QzFEMDA4RUM5NjggLyogSGFzaENvdW50
ZWRTZXQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
N0EzOEQ3RTUxQzc1MkQ1RjAwNEYxNTdEIC8qIEhhc2hDb3VudGVkU2V0LmNwcCAqLzsgfTsKKwkJ
NzFFODhDNDEyNEI1Mjk5QzAwNjY1MTYwIC8qIFNoYXJlU2hlZXRUZXN0cy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcxRTg4QzQwMjRCNTI5OUMwMDY2
NTE2MCAvKiBTaGFyZVNoZWV0VGVzdHMubW0gKi87IH07CisJCTcxRTg4QzQ1MjRCNTM0QjcwMDY2
NTE2MCAvKiBpbWctd2l0aC1iYXNlNjQtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFODhDNDMyNEI1MzNFQzAwNjY1MTYwIC8q
IGltZy13aXRoLWJhc2U2NC11cmwuaHRtbCAqLzsgfTsKIAkJNzI1QzNFRjMyMjA1OEE1QjAwN0Mz
NkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI1QzNFRjIyMjA1ODRCQTAw
N0MzNkZDIC8qIEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWwgKi87IH07CiAJCTcy
ODNBOUQwMjJGQTc1NDkwMEIyMUM3RCAvKiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4M0E5
Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCAqLzsgfTsK
IAkJNzI4M0E5RDIyMkZCMUUwNjAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBn
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcy
ODNBOUQxMjJGQjFEOTcwMEIyMUM3RCAvKiBleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyAqLzsg
fTsKQEAgLTEzOTQsNiArMTM5Niw3IEBACiAJCQkJRjRERUY2RUQxRTlCNERCNjAwNDhFRjYxIC8q
IGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
RjQ1QjYzRkIxRjE5N0Y0QTAwOUQzOEI5IC8qIGltYWdlLW1hcC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTMxMjhBODE1MjM3NjQxMzMwMEQ5MEQ0MCAvKiBpbWFnZS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTcxRTg4QzQ1MjRCNTM0QjcwMDY2NTE2MCAvKiBpbWctd2l0
aC1iYXNlNjQtdXJsLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNzI4M0E5RDAyMkZB
NzU0OTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQk0OTg5N0Q2QzI0MUZFOUU0MDBFQ0YxNTMgLyogaW4tYXBwLWJyb3dzZXIt
cHJpdmFjeS1sb2NhbC1maWxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNDk3MUIx
MTgyNDUxRjI5QTAwOTY5OTREIC8qIGluY29ycmVjdENyZWF0ZVRhYmxlU2NoZW1hLmRiIGluIENv
cHkgUmVzb3VyY2VzICovLApAQCAtMjE5NCw2ICsyMTk3LDggQEAKIAkJNkI0RTg2MUIyMjIwQTU1
MjAwMjJGMzg5IC8qIFJlZ2lzdHJhYmxlRG9tYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJl
Z2lzdHJhYmxlRG9tYWluLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkI5QUJF
MTEyMDg2OTUyRjAwRDc1REU2IC8qIEhUVFBQYXJzZXJzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEhUVFBQYXJzZXJzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkJGNEE2ODIy
MzlFRDRDRDAwRTJGNDVCIC8qIExvZ2dlZEluU3RhdHVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IExvZ2dlZEluU3RhdHVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzFFODhD
NDAyNEI1Mjk5QzAwNjY1MTYwIC8qIFNoYXJlU2hlZXRUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNoYXJlU2hlZXRUZXN0cy5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNzFFODhDNDMyNEI1MzNFQzAwNjY1MTYwIC8qIGltZy13aXRoLWJh
c2U2NC11cmwuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWctd2l0aC1iYXNl
NjQtdXJsLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjVDM0VGMjIyMDU4
NEJBMDA3QzM2RkMgLyogQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgcGF0aCA9IEFkZGl0aW9uYWxTdXBwb3J0ZWRJbWFnZVR5cGVzLmh0bWw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyODNBOUNFMjJGQTZCQkUwMEIyMUM3RCAv
KiBpbWctd2l0aC1yb3RhdGVkLWltYWdlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzI4M0E5RDEyMkZCMUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8u
anBnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1h
Z2UuanBlZzsgcGF0aCA9ICJleGlmLW9yaWVudGF0aW9uLTgtbGxvLmpwZyI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC0zNDYzLDYgKzM0NjgsNyBAQAogCQkJCTFDOTA0MjBCMjMyNkUw
M0MwMEJFRjkxRSAvKiBTZWxlY3Rpb25CeVdvcmQubW0gKi8sCiAJCQkJOUI0QjVFQTQyMkRFQkUx
OTAwMUUzRDVBIC8qIFNlbGVjdGlvbk1vZGlmeUJ5UGFyYWdyYXBoQm91bmRhcnkubW0gKi8sCiAJ
CQkJQ0U2RTgxOUYyMEE2OTM1RjAwRTJDODBGIC8qIFNldFRpbWVvdXRGdW5jdGlvbi5tbSAqLywK
KwkJCQk3MUU4OEM0MDI0QjUyOTlDMDA2NjUxNjAgLyogU2hhcmVTaGVldFRlc3RzLm1tICovLAog
CQkJCTQ0MzNBMzk1MjA4MDQ0MTMwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0cy5t
bSAqLywKIAkJCQlGNDVFMTU3NDIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUu
aCAqLywKIAkJCQlGNDVFMTU3NTIxMTJDRTYyMDAzMDdFODIgLyogVGVzdElucHV0RGVsZWdhdGUu
bW0gKi8sCkBAIC0zODA3LDYgKzM4MTMsNyBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMEYxNkJF
RDcyMzA0QTFEMTAwQjRBMTY3IC8qIGNvbXBvc2l0ZWQuaHRtbCAqLywKIAkJCQlDRURBMTI0MDI0
MzdDOUVBMDBDMjhBOUUgLyogZWRpdGFibGUtcmVnaW9uLWNvbXBvc2l0ZWQtYW5kLW5vbi1jb21w
b3NpdGVkLW92ZXJsYXAuaHRtbCAqLywKKwkJCQk3MUU4OEM0MzI0QjUzM0VDMDA2NjUxNjAgLyog
aW1nLXdpdGgtYmFzZTY0LXVybC5odG1sICovLAogCQkJCUNFNkQwRUUyMjQyNkI4RUQwMDJBRDkw
MSAvKiBpbnNlcnQtdGV4dC5odG1sICovLAogCQkJCUExMUU3RDlGMjRBMTY5RTIwMDAyNjc0NSAv
KiBsaW5rLXdpdGgtaG92ZXItbWVudS5odG1sICovLAogCQkJCTBGMzQwNzc3MjMwMzgyNTQwMDYw
QTFBMCAvKiBvdmVyZmxvdy1zY3JvbGwuaHRtbCAqLywKQEAgLTUyMTYsNiArNTIyMyw3IEBACiAJ
CQkJN0M4M0UwNTIxRDBBNjQxODAwRkVCQ0YzIC8qIFNoYXJlZEJ1ZmZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQlBMTc5OTE4ODFFMUM5OTRFMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTE3OTkxOEIxRTFDQTI0MTAwQTUwNUVEIC8qIFNoYXJlZEJ1ZmZl
clRlc3QuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNzFFODhDNDEyNEI1Mjk5QzAwNjY1MTYwIC8q
IFNoYXJlU2hlZXRUZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDQ0IxMEU0MjEzNDU3RTAw
MEFDNUFGMCAvKiBTaG91bGRHb1RvQmFja0ZvcndhcmRMaXN0SXRlbS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjE0MUE0MTFBRTYwMDQ0N0M0QyAvKiBTaG91bGRLZWVwQ3VycmVudEJhY2tG
b3J3YXJkTGlzdEl0ZW1Jbkxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdCQ0E2MUMxQjU5
NkJBOTAwMjAxMkNBIC8qIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNJbk5ld1dpbmRvd0FjdGlvbnMu
bW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL1NoYXJlU2hlZXRUZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1No
YXJlU2hlZXRUZXN0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjA3MmVlMTc2OTM3NmZkOTIzMmFhOTQzMzNh
ZWQzMGZmZDM3NDljCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvU2hhcmVTaGVldFRlc3RzLm1tCkBAIC0wLDAgKzEsMTA4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJUZXN0LmgiCisKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tV
SURlbGVnYXRlUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JU
ZXN0aW5nLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaD4KKyNp
bXBvcnQgPFdlYktpdC9fV0tFbGVtZW50QWN0aW9uLmg+CisjaW1wb3J0IDx3dGYvQmxvY2tQdHIu
aD4KKworQGludGVyZmFjZSBTaGFyZVNoZWV0T2JzZXJ2ZXIgOiBOU09iamVjdDxXS1VJRGVsZWdh
dGVQcml2YXRlPgorQHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPE5TQXJyYXkgKihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqLCBOU0FycmF5ICopPiBwcmVzZW50YXRpb25IYW5kbGVyOwor
QHByb3BlcnR5IChub25hdG9taWMpIEJsb2NrUHRyPHZvaWQoTlNBcnJheSAqKT4gYWN0aXZpdHlJ
dGVtc0hhbmRsZXI7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBTaGFyZVNoZWV0T2JzZXJ2ZXIK
KworLSAoTlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFjdGlvbnNGb3JF
bGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnQgZGVmYXVsdEFjdGlvbnM6
KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWRlZmF1bHRBY3Rpb25zCit7CisgICAgcmV0
dXJuIF9wcmVzZW50YXRpb25IYW5kbGVyID8gX3ByZXNlbnRhdGlvbkhhbmRsZXIoZWxlbWVudCwg
ZGVmYXVsdEFjdGlvbnMpIDogZGVmYXVsdEFjdGlvbnM7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFNoYXJlQWN0aXZpdHlJdGVtczooTlNBcnJheSAqKWFj
dGl2aXR5SXRlbXMKK3sKKyAgICBpZiAoX2FjdGl2aXR5SXRlbXNIYW5kbGVyKQorICAgICAgICBf
YWN0aXZpdHlJdGVtc0hhbmRsZXIoYWN0aXZpdHlJdGVtcyk7Cit9CisKK0BlbmQKKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9S
TShBUFBMRVRWKQorCitzdGF0aWMgdm9pZCBzaG93U2hhcmVTaGVldChXS1dlYlZpZXcgKndlYlZp
ZXcsIFNoYXJlU2hlZXRPYnNlcnZlciAqb2JzZXJ2ZXIsIENHUG9pbnQgbG9jYXRpb24pCit7Cisg
ICAgX19ibG9jayBSZXRhaW5QdHI8X1dLRWxlbWVudEFjdGlvbj4gY29weUFjdGlvbjsKKyAgICBf
X2Jsb2NrIFJldGFpblB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gY29weUVsZW1lbnQ7Cisg
ICAgX19ibG9jayBib29sIGRvbmUgPSBmYWxzZTsKKyAgICBbb2JzZXJ2ZXIgc2V0UHJlc2VudGF0
aW9uSGFuZGxlcjpeKF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICplbGVtZW50LCBOU0FycmF5ICph
Y3Rpb25zKSB7CisgICAgICAgIGNvcHlFbGVtZW50ID0gZWxlbWVudDsKKyAgICAgICAgZm9yIChf
V0tFbGVtZW50QWN0aW9uICphY3Rpb24gaW4gYWN0aW9ucykgeworICAgICAgICAgICAgaWYgKGFj
dGlvbi50eXBlID09IF9XS0VsZW1lbnRBY3Rpb25UeXBlU2hhcmUpCisgICAgICAgICAgICAgICAg
Y29weUFjdGlvbiA9IGFjdGlvbjsKKyAgICAgICAgfQorICAgICAgICBkb25lID0gdHJ1ZTsKKyAg
ICAgICAgcmV0dXJuIEBbIGNvcHlBY3Rpb24uZ2V0KCkgXTsKKyAgICB9XTsKKyAgICBbd2ViVmll
dyBfc2ltdWxhdGVMb25nUHJlc3NBY3Rpb25BdExvY2F0aW9uOmxvY2F0aW9uXTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworCisgICAgRVhQRUNUX1RSVUUoISFjb3B5QWN0
aW9uKTsKKyAgICBFWFBFQ1RfVFJVRSghIWNvcHlFbGVtZW50KTsKKyAgICBbY29weUFjdGlvbiBy
dW5BY3Rpb25XaXRoRWxlbWVudEluZm86Y29weUVsZW1lbnQuZ2V0KCldOworfQorCitURVNUKFNo
YXJlU2hlZXRUZXN0cywgU2hhcmVJbWdFbGVtZW50V2l0aEJhc2U2NFVSTCkKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIGF1dG8gb2JzZXJ2ZXIgPSBhZG9wdE5T
KFtbU2hhcmVTaGVldE9ic2VydmVyIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0VUlE
ZWxlZ2F0ZTpvYnNlcnZlci5nZXQoKV07CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRU
ZXN0UGFnZU5hbWVkOkAiaW1nLXdpdGgtYmFzZTY0LXVybCJdOworCisgICAgX19ibG9jayBib29s
IGRvbmUgPSBmYWxzZTsKKyAgICBbb2JzZXJ2ZXIgc2V0QWN0aXZpdHlJdGVtc0hhbmRsZXI6XihO
U0FycmF5ICphY3Rpdml0eUl0ZW1zKSB7CisgICAgICAgIEVYUEVDVF9FUSgxVUwsIGFjdGl2aXR5
SXRlbXMuY291bnQpOworICAgICAgICBOU1VSTCAqdXJsID0gW2FjdGl2aXR5SXRlbXMgb2JqZWN0
QXRJbmRleDowXTsKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJTaGFyZWQgSW1hZ2UucG5nIiwg
dXJsLmxhc3RQYXRoQ29tcG9uZW50KTsKKyAgICAgICAgZG9uZSA9IHRydWU7CisgICAgfV07CisK
KyAgICBzaG93U2hhcmVTaGVldCh3ZWJWaWV3LmdldCgpLCBvYnNlcnZlci5nZXQoKSwgQ0dQb2lu
dE1ha2UoMTAwLCAxMDApKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOwor
fQorCisjZW5kaWYgLy8gIVBMQVRGT1JNKFdBVENIT1MpICYmICFQTEFURk9STShBUFBMRVRWKQor
Cit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9pbWctd2l0aC1iYXNlNjQtdXJsLmh0bWwgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9pbWctd2l0aC1iYXNlNjQtdXJsLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZWU1NDU4OWM0OWI3ZWJkZjUyNDA4ZjBjMWYzZDI3NDE0NGNjNzM5OQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL2ltZy13aXRoLWJhc2U2NC11cmwuaHRt
bApAQCAtMCwwICsxLDExIEBACis8c2NyaXB0PgorCitjb25zdCBjYW52YXMgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJjYW52YXMiKTsKK2NhbnZhcy5nZXRDb250ZXh0KCIyZCIpLmZpbGxSZWN0
KDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisKK2NvbnN0IGltZyA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpOworaW1nLnNyYyA9IGNhbnZhcy50b0RhdGFVUkwoImlt
YWdlL3BuZyIpOworCitkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVk
IiwgKCkgPT4gZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpbWcpKTsKKworPC9zY3JpcHQ+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403743</attachid>
            <date>2020-07-07 16:31:54 -0700</date>
            <delta_ts>2020-07-08 09:03:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214042-20200708013152.patch</filename>
            <type>text/plain</type>
            <size>21448</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGE1YzIyYzk1NmJiZmVl
YmY5NmQ1YmIzZmUxMDNmNDY2OGZiNTYzZi4uMmMwOGE3ODExMTM5MTM0YzFkNjY5OGFkMzRkNmMx
YzI0NmMzZTIzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA3LTA3ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgorCisgICAgICAgIFtpT1NdIFNoYXJpbmcg
YW4gPGltZz4gZWxlbWVudCB3aXRoIGEgYmFzZTY0LWVuY29kZWQgVVJMIHNoYXJlcyB0aGUgVVJM
IGFzIHJhdyB0ZXh0IGluc3RlYWQgb2YgYW4gaW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDA0MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTY2NjkxMDI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBlbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCiAyMDIwLTA3LTA2ICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhpZ2ggQ1BVIHVzYWdl
IG9uIFN0YXNoIHNlYXJjaCByZXN1bHRzIHBhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDEwYjgyMjAwOGM0YjJh
MDcxMmJkNmRlY2I3NzI1NWQyYjgxZjgwZTEuLjIzYzU3Nzc5YjM4ZWQzZmJkNjc1NjFiMTFlZWIx
YjgxYTNlYjcwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDctMDcgIEFudG9p
bmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lPU10gU2hhcmluZyBh
biA8aW1nPiBlbGVtZW50IHdpdGggYSBiYXNlNjQtZW5jb2RlZCBVUkwgc2hhcmVzIHRoZSBVUkwg
YXMgcmF3IHRleHQgaW5zdGVhZCBvZiBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81
NjY2OTEwMj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbiB0aGUgY2FzZSB3aGVyZSB0aGUgPGltZz4gZWxlbWVudCB0aGF0IHdhcyB0aGUgdGFyZ2V0
IHdoZW4gdGhlIHNoYXJlIHNoZWV0IHdhcyBicm91Z2h0IGhhcyBpdHMgZGF0YSBlbmNvZGVkCisg
ICAgICAgIGFzIGEgYmFzZTY0IFVSTCwgd2UgbmVlZCB0byBzaGFyZSB0aGUgVUlJbWFnZSB0aGF0
IHdhcyBjcmVhdGVkIGFzIGl0cyBzbmFwc2hvdCBhcyBhIGZpbGUgcmF0aGVyIHRoYW4gdGhlIFVS
TAorICAgICAgICB0byBhdm9pZCBhIGJhc2U2NCBzdHJpbmcgdG8gYmUgc2hhcmVkIGluc3RlYWQg
b2YgdGhlIGltYWdlIGRhdGEuCisKKyAgICAgICAgVG8gc3VwcG9ydCB0ZXN0aW5nIG9mIHRoaXMs
IHdlIGFkZCBhIG5ldyBvcHRpb25hbCBXS1NoYXJlU2hlZXQgZGVsZWdhdGUgdG8gaW5kaWNhdGUg
dGhhdCB0aGUgc2hhcmUgc2hlZXQgd2lsbAorICAgICAgICBzaG93IGFuZCB0aGUgcHJvdmlkZWQg
YWN0aXZpdHkgaXRlbXMsIHdoaWNoIHdlIGZvcndhcmQgdG8gYSBuZXcgb3B0aW9uYWwgV0tVSURl
bGVnYXRlUHJpdmF0ZSBkZWxlZ2F0ZSBtZXRob2QuCisgICAgICAgIEFQSSB0ZXN0cyBjYW4gdGh1
cyBiZSB3cml0dGVuIHRvIGNoZWNrIHRoZSBkYXRhIHByb3ZpZGVkIHRvIHRoZSBzaGFyZSBzaGVl
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0Lm1tOgorICAgICAgICAoLVtXS1NoYXJlU2hlZXQg
cHJlc2VudFdpdGhTaGFyZURhdGFBcnJheTppblJlY3Q6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0
YW50IGhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTplbGVtZW50Om5lZWRzSW50ZXJhY3Rpb246
XSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06
CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgc2hhcmVTaGVldDp3aWxsU2hvd0FjdGl2aXR5SXRl
bXM6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hh
cmVFbGVtZW50V2l0aFVSTDpyZWN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGFjdGlv
blNoZWV0QXNzaXN0YW50OnNoYXJlRWxlbWVudFdpdGhJbWFnZTpyZWN0Ol0pOgorCiAyMDIwLTA3
LTA2ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEhp
Z2ggQ1BVIHVzYWdlIG9uIFN0YXNoIHNlYXJjaCByZXN1bHRzIHBhZ2VzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzIGIvU291cmNlL1dlYkNv
cmUvZW4ubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwppbmRleCAxNjQ3ZDIzZmZhYWNmZDM4ZDQ1
MTJiM2ZmNDZiOTAwNGRkOTkzZmU1Li43NzNkODRmNGYwN2Q2ZTM3ZmEyNDY5YTAxNTNiMTk2Y2Q3
YzEwYTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lbi5scHJvai9Mb2NhbGl6YWJsZS5z
dHJpbmdzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VuLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MK
QEAgLTcxMiw2ICs3MTIsOSBAQAogLyogVGl0bGUgZm9yIFNoYXJlIGNvbnRleHQgbWVudSBpdGVt
LiAqLwogIlNoYXJlIiA9ICJTaGFyZSI7CiAKKy8qIERlZmF1bHQgbmFtZSBmb3IgdGhlIGZpbGUg
Y3JlYXRlZCBmb3IgYSBzaGFyZWQgaW1hZ2Ugd2l0aCBubyBleHBsaWNpdCBuYW1lLiAqLworIlNo
YXJlZCBJbWFnZSIgPSAiU2hhcmVkIEltYWdlIjsKKwogLyogVGl0bGUgZm9yIFNoYXJlIGFjdGlv
biBidXR0b24gKi8KICJTaGFyZeKApiIgPSAiU2hhcmXigKYiOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRl
eCA0ZGIxMDNhZDI4YTM5YmIxMjlhMGE3MGFmZWJkNTUzMzg5ODViMDY1Li42ZDBhNTcwZDU1YzZh
YjgyMGNmN2I5ZWJhMTUzNTQ4ZmIwNGFmNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTE0Nyw2ICsx
NDcsOCBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGhhbmRsZUF1dG9wbGF5RXZlbnQ6KF9XS0F1dG9wbGF5RXZlbnQpZXZlbnQg
d2l0aEZsYWdzOihfV0tBdXRvcGxheUV2ZW50RmxhZ3MpZmxhZ3MgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYWN0aXZp
dHlJdGVtcyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisKICNpZiBUQVJHRVRf
T1NfSVBIT05FCiAKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxk
SW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8g
KillbGVtZW50IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV0tTaGFyZVNoZWV0LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaAppbmRleCBjMzQwZGI2OGVlZmE5OWNmNDc2Y2Vm
NWM4NTgxMmZiMGE4ZmEwZTg0Li5jOTdkYzRiNGRlYzRmYTU4MGQ0OTBmMWQ0Y2ZjODZjZGZjZTBi
Y2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hl
ZXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQuaApA
QCAtNDcsNiArNDcsNyBAQCBzdHJ1Y3QgU2hhcmVEYXRhV2l0aFBhcnNlZFVSTDsKIEBwcm90b2Nv
bCBXS1NoYXJlU2hlZXREZWxlZ2F0ZSA8TlNPYmplY3Q+CiBAb3B0aW9uYWwKIC0gKHZvaWQpc2hh
cmVTaGVldERpZERpc21pc3M6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQ7CistICh2b2lkKXNo
YXJlU2hlZXQ6KFdLU2hhcmVTaGVldCAqKXNoYXJlU2hlZXQgd2lsbFNob3dBY3Rpdml0eUl0ZW1z
OihOU0FycmF5ICopYWN0aXZpdHlJdGVtczsKIEBlbmQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XS1NoYXJlU2hlZXQubW0KaW5kZXggODFhY2NhYmEx
ZmQxM2E2MzE5ODQyODg5OTUzZWQwNjJlN2FlYWEyZC4uZWE5ZmMxN2FjNDI1ZjMzNTU2ZjIxZjNi
ODQ3ZGI0ZGIxNzA3YzJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV0tTaGFyZVNoZWV0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dL
U2hhcmVTaGVldC5tbQpAQCAtMTgyLDcgKzE4MiwxMCBAQCAtICh2b2lkKXByZXNlbnRXaXRoU2hh
cmVEYXRhQXJyYXk6KE5TQXJyYXkgKilzaGFyaW5nSXRlbXMgaW5SZWN0OihXVEY6Ok9wdGlvbmFs
PAogICAgICAgICBwb3BvdmVyQ29udHJvbGxlci5zb3VyY2VSZWN0ID0gKnJlY3Q7CiAgICAgfSBl
bHNlCiAgICAgICAgIHBvcG92ZXJDb250cm9sbGVyLl9jZW50ZXJzUG9wb3ZlcklmU291cmNlVmll
d05vdFNldCA9IFlFUzsKLSAgICAKKworICAgIGlmIChbX2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3Ioc2hhcmVTaGVldDp3aWxsU2hvd0FjdGl2aXR5SXRlbXM6KV0pCisgICAg
ICAgIFtfZGVsZWdhdGUgc2hhcmVTaGVldDpzZWxmIHdpbGxTaG93QWN0aXZpdHlJdGVtczpzaGFy
aW5nSXRlbXNdOworCiAgICAgX3ByZXNlbnRhdGlvblZpZXdDb250cm9sbGVyID0gW1VJVmlld0Nv
bnRyb2xsZXIgX3ZpZXdDb250cm9sbGVyRm9yRnVsbFNjcmVlblByZXNlbnRhdGlvbkZyb21WaWV3
OndlYlZpZXddOwogICAgIFtfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgcHJlc2VudFZpZXdD
b250cm9sbGVyOl9zaGFyZVNoZWV0Vmlld0NvbnRyb2xsZXIuZ2V0KCkgYW5pbWF0ZWQ6WUVTIGNv
bXBsZXRpb246bmlsXTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggMTU2ODdjNGI4N2UxYzYzZjRhYjE0
ZjNmNjk5NmRiOGEyZGU0Njc4OC4uODQ4YjYwZjU3ZTljOWYyYmI5MThjZmZkM2Q4ZTcyYzMyNTg2
ZGViOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXRBc3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25T
aGVldEFzc2lzdGFudC5oCkBAIC03MCw2ICs3MCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVn
ZXIsIF9XS0VsZW1lbnRBY3Rpb25UeXBlKTsKIC0gKFVJVGFyZ2V0ZWRQcmV2aWV3ICopY3JlYXRl
VGFyZ2V0ZWRDb250ZXh0TWVudUhpbnRGb3JBY3Rpb25TaGVldEFzc2lzdGFudDooV0tBY3Rpb25T
aGVldEFzc2lzdGFudCAqKWFzc2lzdGFudDsKIC0gKHZvaWQpcmVtb3ZlQ29udGV4dE1lbnVWaWV3
SWZQb3NzaWJsZUZvckFjdGlvblNoZWV0QXNzaXN0YW50OihXS0FjdGlvblNoZWV0QXNzaXN0YW50
ICopYXNzaXN0YW50OwogI2VuZGlmCistICh2b2lkKWFjdGlvblNoZWV0QXNzaXN0YW50OihXS0Fj
dGlvblNoZWV0QXNzaXN0YW50ICopYXNzaXN0YW50IHNoYXJlRWxlbWVudFdpdGhJbWFnZTooVUlJ
bWFnZSAqKWltYWdlIHJlY3Q6KENHUmVjdClib3VuZGluZ1JlY3Q7CiAKIEBlbmQKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5t
bQppbmRleCA5YjExMGUyZTE1ZDFlMzEwODU5YjU4ZDcxNzJlMWU1M2RlMTM0NTgxLi40MDIxMTFi
YTIyNzQwMmJiODJlMDNlNDBjZTRhNjIzNzRiMDM5OWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQpAQCAtODI4LDcg
KzgyOCwxMCBAQCAtICh2b2lkKWhhbmRsZUVsZW1lbnRBY3Rpb25XaXRoVHlwZTooX1dLRWxlbWVu
dEFjdGlvblR5cGUpdHlwZSBlbGVtZW50OihfV0tBY3RpdgogICAgICAgICBbZGVsZWdhdGUgYWN0
aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBwZXJmb3JtQWN0aW9uOldlYktpdDo6U2hlZXRBY3Rpb246
OlNhdmVJbWFnZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgX1dLRWxlbWVudEFjdGlvblR5
cGVTaGFyZToKLSAgICAgICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hh
cmVFbGVtZW50V2l0aFVSTDplbGVtZW50LlVSTCA/OiBlbGVtZW50LmltYWdlVVJMIHJlY3Q6ZWxl
bWVudC5ib3VuZGluZ1JlY3RdOworICAgICAgICBpZiAoW2VsZW1lbnQuaW1hZ2VVUkwuc2NoZW1l
IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJkYXRhIl0gPT0gTlNPcmRlcmVkU2FtZSAmJiBlbGVt
ZW50LmltYWdlICYmIFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFjdGlv
blNoZWV0QXNzaXN0YW50OnNoYXJlRWxlbWVudFdpdGhJbWFnZTpyZWN0OildKQorICAgICAgICAg
ICAgW2RlbGVnYXRlIGFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGYgc2hhcmVFbGVtZW50V2l0aElt
YWdlOmVsZW1lbnQuaW1hZ2UgcmVjdDplbGVtZW50LmJvdW5kaW5nUmVjdF07CisgICAgICAgIGVs
c2UKKyAgICAgICAgICAgIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNoYXJl
RWxlbWVudFdpdGhVUkw6ZWxlbWVudC5VUkwgPzogZWxlbWVudC5pbWFnZVVSTCByZWN0OmVsZW1l
bnQuYm91bmRpbmdSZWN0XTsKICAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA3MmRjNzgwNWUyMjQ4NzZl
N2ViNjI5ZDk1M2MxZjU2N2U5MmYwNmNhLi4xMjg4NzExZDk4NzBmYzVhN2ZlMTZlOWYyNmExMDZm
MTgxZDg1YmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTY3OTIsNiArNjc5MiwxNiBAQCAtICh2b2lk
KXNoYXJlU2hlZXREaWREaXNtaXNzOihXS1NoYXJlU2hlZXQgKilzaGFyZVNoZWV0CiAgICAgW19z
aGFyZVNoZWV0IHNldERlbGVnYXRlOm5pbF07CiAgICAgX3NoYXJlU2hlZXQgPSBuaWw7CiB9CisK
Ky0gKHZvaWQpc2hhcmVTaGVldDooV0tTaGFyZVNoZWV0ICopc2hhcmVTaGVldCB3aWxsU2hvd0Fj
dGl2aXR5SXRlbXM6KE5TQXJyYXkgKilhY3Rpdml0eUl0ZW1zCit7CisgICAgQVNTRVJUKF9zaGFy
ZVNoZWV0ID09IHNoYXJlU2hlZXQpOworCisgICAgaWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+IHVp
RGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+KFtfd2ViVmll
dyBVSURlbGVnYXRlXSk7CisgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoX3dlYlZpZXc6d2lsbFNoYXJlQWN0aXZpdHlJdGVtczopXSkKKyAgICAgICAgW3Vp
RGVsZWdhdGUgX3dlYlZpZXc6c2VsZi53ZWJWaWV3IHdpbGxTaGFyZUFjdGl2aXR5SXRlbXM6YWN0
aXZpdHlJdGVtc107Cit9CisKICNlbmRpZgogCiAtIChOU1N0cmluZyAqKWlucHV0TGFiZWxUZXh0
CkBAIC02OTA4LDcgKzY5MTgsMTUgQEAgLSAodm9pZClhY3Rpb25TaGVldEFzc2lzdGFudDooV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCAqKWFzc2lzdGFudCBzaGFyZUVsZW1lbnRXaXQKIHsKICAgICBX
ZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNoYXJlRGF0YTsKICAgICBzaGFyZURhdGEu
dXJsID0geyB1cmwgfTsKLSAgICBbc2VsZiBfc2hvd1NoYXJlU2hlZXQ6c2hhcmVEYXRhIGluUmVj
dDogeyBbc2VsZiBjb252ZXJ0UmVjdDpib3VuZGluZ1JlY3QgdG9WaWV3OnNlbGYud2ViVmlld10g
fSBjb21wbGV0aW9uSGFuZGxlcjpbXSAoYm9vbCBzdWNjZXNzKSB7IH1dOworICAgIFtzZWxmIF9z
aG93U2hhcmVTaGVldDpzaGFyZURhdGEgaW5SZWN0OiB7IFtzZWxmIGNvbnZlcnRSZWN0OmJvdW5k
aW5nUmVjdCB0b1ZpZXc6c2VsZi53ZWJWaWV3XSB9IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07Cit9
CisKKy0gKHZvaWQpYWN0aW9uU2hlZXRBc3Npc3RhbnQ6KFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
Kilhc3Npc3RhbnQgc2hhcmVFbGVtZW50V2l0aEltYWdlOihVSUltYWdlICopaW1hZ2UgcmVjdDoo
Q0dSZWN0KWJvdW5kaW5nUmVjdAoreworICAgIFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRV
Ukwgc2hhcmVEYXRhOworICAgIE5TU3RyaW5nICpmaWxlTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdX
aXRoRm9ybWF0OkAiJUAucG5nIiwgKE5TU3RyaW5nKilXRUJfVUlfU1RSSU5HKCJTaGFyZWQgSW1h
Z2UiLCAiRGVmYXVsdCBuYW1lIGZvciB0aGUgZmlsZSBjcmVhdGVkIGZvciBhIHNoYXJlZCBpbWFn
ZSB3aXRoIG5vIGV4cGxpY2l0IG5hbWUuIildOworICAgIHNoYXJlRGF0YS5maWxlcyA9IHsgeyBm
aWxlTmFtZSwgV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoVUlJbWFnZVBOR1JlcHJlc2Vu
dGF0aW9uKGltYWdlKSkgfSB9OworICAgIFtzZWxmIF9zaG93U2hhcmVTaGVldDpzaGFyZURhdGEg
aW5SZWN0OiB7IFtzZWxmIGNvbnZlcnRSZWN0OmJvdW5kaW5nUmVjdCB0b1ZpZXc6c2VsZi53ZWJW
aWV3XSB9IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CiB9CiAKICNpZiBIQVZFKEFQUF9MSU5LUykK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0ZDQ3
YjFmOWNhMmRhN2NkNWUxODIxYWJkYzIzYTcxYzRiMzNmNzhmLi42NTc5M2NmODY4ZTdjMzFmNWMy
YzBkMjBjNjczMzFkNmE5YmNiYzBkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDctMDcgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lPU10gU2hhcmluZyBhbiA8aW1n
PiBlbGVtZW50IHdpdGggYSBiYXNlNjQtZW5jb2RlZCBVUkwgc2hhcmVzIHRoZSBVUkwgYXMgcmF3
IHRleHQgaW5zdGVhZCBvZiBhbiBpbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MDQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NjY2OTEw
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSB0ZXN0IHRoYXQgbG9hZHMgYSBwYWdlIHdpdGggYW4gPGltZz4gd2l0aCBpdHMgZGF0YSBlbmNv
ZGVkIGFzIGEgYmFzZTY0IFVSTCwgYnJpbmdzIHVwIHRoZSBzaGFyZSBzaGVldCBmb3IgaXQKKyAg
ICAgICAgYW5kIGNoZWNrcyBhIHNpbmdsZSBOU1VSTCBvYmplY3QgaXMgbWFkZSBhdmFpbGFibGUg
aW4gdGhlIGFjdGl2aXR5IGl0ZW1zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvU2hhcmVTaGVldFRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bU2hhcmVT
aGVldE9ic2VydmVyIF93ZWJWaWV3OmFjdGlvbnNGb3JFbGVtZW50OmRlZmF1bHRBY3Rpb25zOl0p
OgorICAgICAgICAoLVtTaGFyZVNoZWV0T2JzZXJ2ZXIgX3dlYlZpZXc6d2lsbFNoYXJlQWN0aXZp
dHlJdGVtczpdKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OnNob3dTaGFyZVNoZWV0KToKKyAg
ICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvaW9zL2ltZy13aXRoLWJhc2U2NC11cmwuaHRtbDogQWRkZWQuCisKIDIwMjAtMDctMDcgIFl1
cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0dUS11bTWlu
aUJyb3dzZXJdIG9jY2FzaW9uYWwgY3Jhc2hlcyB3aGVuIGNsb3Npbmcgd2hpbGUgZG93bmxvYWQg
aW4gcHJvZ3Jlc3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMmUyNmM4ZWVlYzZiZDhiMTVm
MTYxMDYyYmE4ZGM5ZGU1MmE1ZmIzNS4uNjQzZGZhNjkxOTMyZTU2NTBjZTRhNGI4OTE2ZTY5ZDMy
YWE2MmJhYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4OCw2ICs0ODgsOCBAQAogCQk2
QjlBQkUxMjIwODY5NTJGMDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkI5QUJFMTEyMDg2OTUyRjAwRDc1REU2
IC8qIEhUVFBQYXJzZXJzLmNwcCAqLzsgfTsKIAkJNkJGNEE2ODMyMzlFRDRDRDAwRTJGNDVCIC8q
IExvZ2dlZEluU3RhdHVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZCRjRBNjgyMjM5RUQ0Q0QwMEUyRjQ1QiAvKiBMb2dnZWRJblN0YXR1cy5jcHAg
Ki87IH07CiAJCTZCRkQyOTRDMUQ1RTZDMUQwMDhFQzk2OCAvKiBIYXNoQ291bnRlZFNldC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3QTM4RDdFNTFD
NzUyRDVGMDA0RjE1N0QgLyogSGFzaENvdW50ZWRTZXQuY3BwICovOyB9OworCQk3MUU4OEM0MTI0
QjUyOTlDMDA2NjUxNjAgLyogU2hhcmVTaGVldFRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzFFODhDNDAyNEI1Mjk5QzAwNjY1MTYwIC8qIFNo
YXJlU2hlZXRUZXN0cy5tbSAqLzsgfTsKKwkJNzFFODhDNDUyNEI1MzRCNzAwNjY1MTYwIC8qIGlt
Zy13aXRoLWJhc2U2NC11cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MUU4OEM0MzI0QjUzM0VDMDA2NjUxNjAgLyogaW1nLXdpdGgt
YmFzZTY0LXVybC5odG1sICovOyB9OwogCQk3MjVDM0VGMzIyMDU4QTVCMDA3QzM2RkMgLyogQWRk
aXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjVDM0VGMjIyMDU4NEJBMDA3QzM2RkMgLyog
QWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbCAqLzsgfTsKIAkJNzI4M0E5RDAyMkZB
NzU0OTAwQjIxQzdEIC8qIGltZy13aXRoLXJvdGF0ZWQtaW1hZ2UuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3MjgzQTlDRTIyRkE2QkJF
MDBCMjFDN0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sICovOyB9OwogCQk3MjgzQTlE
MjIyRkIxRTA2MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgaW4gQ29weSBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI4M0E5RDEyMkZC
MUQ5NzAwQjIxQzdEIC8qIGV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnICovOyB9OwpAQCAtMTM5
NCw2ICsxMzk2LDcgQEAKIAkJCQlGNERFRjZFRDFFOUI0REI2MDA0OEVGNjEgLyogaW1hZ2UtaW4t
bGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDVCNjNGQjFG
MTk3RjRBMDA5RDM4QjkgLyogaW1hZ2UtbWFwLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJMzEyOEE4MTUyMzc2NDEzMzAwRDkwRDQwIC8qIGltYWdlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCisJCQkJNzFFODhDNDUyNEI1MzRCNzAwNjY1MTYwIC8qIGltZy13aXRoLWJhc2U2NC11
cmwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3MjgzQTlEMDIyRkE3NTQ5MDBCMjFD
N0QgLyogaW1nLXdpdGgtcm90YXRlZC1pbWFnZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAog
CQkJCTQ5ODk3RDZDMjQxRkU5RTQwMEVDRjE1MyAvKiBpbi1hcHAtYnJvd3Nlci1wcml2YWN5LWxv
Y2FsLWZpbGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk0OTcxQjExODI0NTFGMjlB
MDA5Njk5NEQgLyogaW5jb3JyZWN0Q3JlYXRlVGFibGVTY2hlbWEuZGIgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0yMTk0LDYgKzIxOTcsOCBAQAogCQk2QjRFODYxQjIyMjBBNTUyMDAyMkYzODkg
LyogUmVnaXN0cmFibGVEb21haW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVnaXN0cmFibGVE
b21haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QjlBQkUxMTIwODY5NTJG
MDBENzVERTYgLyogSFRUUFBhcnNlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRUUFBhcnNl
cnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2QkY0QTY4MjIzOUVENENEMDBF
MkY0NUIgLyogTG9nZ2VkSW5TdGF0dXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9nZ2VkSW5T
dGF0dXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MUU4OEM0MDI0QjUyOTlD
MDA2NjUxNjAgLyogU2hhcmVTaGVldFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gU2hhcmVTaGVldFRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk3MUU4OEM0MzI0QjUzM0VDMDA2NjUxNjAgLyogaW1nLXdpdGgtYmFzZTY0LXVybC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImltZy13aXRoLWJhc2U2NC11cmwuaHRt
bCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyNUMzRUYyMjIwNTg0QkEwMDdDMzZG
QyAvKiBBZGRpdGlvbmFsU3VwcG9ydGVkSW1hZ2VUeXBlcy5odG1sICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5o
dG1sOyBwYXRoID0gQWRkaXRpb25hbFN1cHBvcnRlZEltYWdlVHlwZXMuaHRtbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI4M0E5Q0UyMkZBNkJCRTAwQjIxQzdEIC8qIGltZy13aXRo
LXJvdGF0ZWQtaW1hZ2UuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWctd2l0
aC1yb3RhdGVkLWltYWdlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjgz
QTlEMTIyRkIxRDk3MDBCMjFDN0QgLyogZXhpZi1vcmllbnRhdGlvbi04LWxsby5qcGcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5qcGVnOyBw
YXRoID0gImV4aWYtb3JpZW50YXRpb24tOC1sbG8uanBnIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTM0NjMsNiArMzQ2OCw3IEBACiAJCQkJMUM5MDQyMEIyMzI2RTAzQzAwQkVGOTFF
IC8qIFNlbGVjdGlvbkJ5V29yZC5tbSAqLywKIAkJCQk5QjRCNUVBNDIyREVCRTE5MDAxRTNENUEg
LyogU2VsZWN0aW9uTW9kaWZ5QnlQYXJhZ3JhcGhCb3VuZGFyeS5tbSAqLywKIAkJCQlDRTZFODE5
RjIwQTY5MzVGMDBFMkM4MEYgLyogU2V0VGltZW91dEZ1bmN0aW9uLm1tICovLAorCQkJCTcxRTg4
QzQwMjRCNTI5OUMwMDY2NTE2MCAvKiBTaGFyZVNoZWV0VGVzdHMubW0gKi8sCiAJCQkJNDQzM0Ez
OTUyMDgwNDQxMzAwOTFFRDU3IC8qIFN5bmNocm9ub3VzVGltZW91dFRlc3RzLm1tICovLAogCQkJ
CUY0NUUxNTc0MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5oICovLAogCQkJ
CUY0NUUxNTc1MjExMkNFNjIwMDMwN0U4MiAvKiBUZXN0SW5wdXREZWxlZ2F0ZS5tbSAqLywKQEAg
LTM4MDcsNiArMzgxMyw3IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQkwRjE2QkVENzIzMDRBMUQx
MDBCNEExNjcgLyogY29tcG9zaXRlZC5odG1sICovLAogCQkJCUNFREExMjQwMjQzN0M5RUEwMEMy
OEE5RSAvKiBlZGl0YWJsZS1yZWdpb24tY29tcG9zaXRlZC1hbmQtbm9uLWNvbXBvc2l0ZWQtb3Zl
cmxhcC5odG1sICovLAorCQkJCTcxRTg4QzQzMjRCNTMzRUMwMDY2NTE2MCAvKiBpbWctd2l0aC1i
YXNlNjQtdXJsLmh0bWwgKi8sCiAJCQkJQ0U2RDBFRTIyNDI2QjhFRDAwMkFEOTAxIC8qIGluc2Vy
dC10ZXh0Lmh0bWwgKi8sCiAJCQkJQTExRTdEOUYyNEExNjlFMjAwMDI2NzQ1IC8qIGxpbmstd2l0
aC1ob3Zlci1tZW51Lmh0bWwgKi8sCiAJCQkJMEYzNDA3NzcyMzAzODI1NDAwNjBBMUEwIC8qIG92
ZXJmbG93LXNjcm9sbC5odG1sICovLApAQCAtNTIxNiw2ICs1MjIzLDcgQEAKIAkJCQk3QzgzRTA1
MjFEMEE2NDE4MDBGRUJDRjMgLyogU2hhcmVkQnVmZmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUExNzk5MTg4MUUxQzk5NEUwMEE1MDVFRCAvKiBTaGFyZWRCdWZmZXIubW0gaW4gU291cmNlcyAq
LywKIAkJCQlBMTc5OTE4QjFFMUNBMjQxMDBBNTA1RUQgLyogU2hhcmVkQnVmZmVyVGVzdC5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk3MUU4OEM0MTI0QjUyOTlDMDA2NjUxNjAgLyogU2hhcmVTaGVl
dFRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUNDQjEwRTQyMTM0NTdFMDAwQUM1QUYwIC8q
IFNob3VsZEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdGMTQxQTQxMUFFNjAwNDQ3QzRDIC8qIFNob3VsZEtlZXBDdXJyZW50QmFja0ZvcndhcmRMaXN0
SXRlbUluTGlzdC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkzN0JDQTYxQzFCNTk2QkE5MDAyMDEy
Q0EgLyogU2hvdWxkT3BlbkV4dGVybmFsVVJMc0luTmV3V2luZG93QWN0aW9ucy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2hhcmVT
aGVldFRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvU2hhcmVTaGVldFRl
c3RzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjAyMDcyZWUxNzY5Mzc2ZmQ5MjMyYWE5NDMzM2FlZDMwZmZkMzc0
OWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9TaGFy
ZVNoZWV0VGVzdHMubW0KQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIlRlc3QuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKKworI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRpZXMuaCIK
KyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQ
cml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaD4K
KyNpbXBvcnQgPFdlYktpdC9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oPgorI2ltcG9ydCA8V2Vi
S2l0L19XS0VsZW1lbnRBY3Rpb24uaD4KKyNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorCitAaW50
ZXJmYWNlIFNoYXJlU2hlZXRPYnNlcnZlciA6IE5TT2JqZWN0PFdLVUlEZWxlZ2F0ZVByaXZhdGU+
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQmxvY2tQdHI8TlNBcnJheSAqKF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICosIE5TQXJyYXkgKik+IHByZXNlbnRhdGlvbkhhbmRsZXI7CitAcHJvcGVydHkg
KG5vbmF0b21pYykgQmxvY2tQdHI8dm9pZChOU0FycmF5ICopPiBhY3Rpdml0eUl0ZW1zSGFuZGxl
cjsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFNoYXJlU2hlZXRPYnNlcnZlcgorCistIChOU0Fy
cmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWN0aW9uc0ZvckVsZW1lbnQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxf
V0tFbGVtZW50QWN0aW9uICo+ICopZGVmYXVsdEFjdGlvbnMKK3sKKyAgICByZXR1cm4gX3ByZXNl
bnRhdGlvbkhhbmRsZXIgPyBfcHJlc2VudGF0aW9uSGFuZGxlcihlbGVtZW50LCBkZWZhdWx0QWN0
aW9ucykgOiBkZWZhdWx0QWN0aW9uczsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyB3aWxsU2hhcmVBY3Rpdml0eUl0ZW1zOihOU0FycmF5ICopYWN0aXZpdHlJdGVt
cworeworICAgIGlmIChfYWN0aXZpdHlJdGVtc0hhbmRsZXIpCisgICAgICAgIF9hY3Rpdml0eUl0
ZW1zSGFuZGxlcihhY3Rpdml0eUl0ZW1zKTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdl
YktpdEFQSSB7CisKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
CisKK3N0YXRpYyB2b2lkIHNob3dTaGFyZVNoZWV0KFdLV2ViVmlldyAqd2ViVmlldywgU2hhcmVT
aGVldE9ic2VydmVyICpvYnNlcnZlciwgQ0dQb2ludCBsb2NhdGlvbikKK3sKKyAgICBfX2Jsb2Nr
IFJldGFpblB0cjxfV0tFbGVtZW50QWN0aW9uPiBjb3B5QWN0aW9uOworICAgIF9fYmxvY2sgUmV0
YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvPiBjb3B5RWxlbWVudDsKKyAgICBfX2Jsb2Nr
IGJvb2wgZG9uZSA9IGZhbHNlOworICAgIFtvYnNlcnZlciBzZXRQcmVzZW50YXRpb25IYW5kbGVy
Ol4oX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKmVsZW1lbnQsIE5TQXJyYXkgKmFjdGlvbnMpIHsK
KyAgICAgICAgY29weUVsZW1lbnQgPSBlbGVtZW50OworICAgICAgICBmb3IgKF9XS0VsZW1lbnRB
Y3Rpb24gKmFjdGlvbiBpbiBhY3Rpb25zKSB7CisgICAgICAgICAgICBpZiAoYWN0aW9uLnR5cGUg
PT0gX1dLRWxlbWVudEFjdGlvblR5cGVTaGFyZSkKKyAgICAgICAgICAgICAgICBjb3B5QWN0aW9u
ID0gYWN0aW9uOworICAgICAgICB9CisgICAgICAgIGRvbmUgPSB0cnVlOworICAgICAgICByZXR1
cm4gQFsgY29weUFjdGlvbi5nZXQoKSBdOworICAgIH1dOworICAgIFt3ZWJWaWV3IF9zaW11bGF0
ZUxvbmdQcmVzc0FjdGlvbkF0TG9jYXRpb246bG9jYXRpb25dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmZG9uZSk7CisKKyAgICBFWFBFQ1RfVFJVRSghIWNvcHlBY3Rpb24pOworICAg
IEVYUEVDVF9UUlVFKCEhY29weUVsZW1lbnQpOworICAgIFtjb3B5QWN0aW9uIHJ1bkFjdGlvbldp
dGhFbGVtZW50SW5mbzpjb3B5RWxlbWVudC5nZXQoKV07Cit9CisKK1RFU1QoU2hhcmVTaGVldFRl
c3RzLCBTaGFyZUltZ0VsZW1lbnRXaXRoQmFzZTY0VVJMKQoreworICAgIGF1dG8gd2ViVmlldyA9
IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2Uo
MCwgMCwgMzIwLCA1MDApXSk7CisgICAgYXV0byBvYnNlcnZlciA9IGFkb3B0TlMoW1tTaGFyZVNo
ZWV0T2JzZXJ2ZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlldyBzZXRVSURlbGVnYXRlOm9i
c2VydmVyLmdldCgpXTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6QCJpbWctd2l0aC1iYXNlNjQtdXJsIl07CisKKyAgICBfX2Jsb2NrIGJvb2wgZG9uZSA9IGZh
bHNlOworICAgIFtvYnNlcnZlciBzZXRBY3Rpdml0eUl0ZW1zSGFuZGxlcjpeKE5TQXJyYXkgKmFj
dGl2aXR5SXRlbXMpIHsKKyAgICAgICAgRVhQRUNUX0VRKDFVTCwgYWN0aXZpdHlJdGVtcy5jb3Vu
dCk7CisgICAgICAgIE5TVVJMICp1cmwgPSBbYWN0aXZpdHlJdGVtcyBvYmplY3RBdEluZGV4OjBd
OworICAgICAgICBFWFBFQ1RfV0tfU1RSRVEoIlNoYXJlZCBJbWFnZS5wbmciLCB1cmwubGFzdFBh
dGhDb21wb25lbnQpOworICAgICAgICBkb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIHNob3dT
aGFyZVNoZWV0KHdlYlZpZXcuZ2V0KCksIG9ic2VydmVyLmdldCgpLCBDR1BvaW50TWFrZSgxMDAs
IDEwMCkpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZG9uZSk7Cit9CisKKyNlbmRp
ZiAvLyAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYpCisKK30gLy8gbmFt
ZXNwYWNlIFRlc3RXZWJLaXRBUEkKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpICYm
ICFQTEFURk9STShNQUNDQVRBTFlTVCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL2ltZy13aXRoLWJhc2U2NC11cmwuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvaW9zL2ltZy13aXRoLWJhc2U2NC11cmwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZTU0NTg5YzQ5
YjdlYmRmNTI0MDhmMGMxZjNkMjc0MTQ0Y2M3Mzk5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvaW1nLXdpdGgtYmFzZTY0LXVybC5odG1sCkBAIC0wLDAg
KzEsMTEgQEAKKzxzY3JpcHQ+CisKK2NvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImNhbnZhcyIpOworY2FudmFzLmdldENvbnRleHQoIjJkIikuZmlsbFJlY3QoMCwgMCwgY2Fu
dmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKworY29uc3QgaW1nID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiaW1nIik7CitpbWcuc3JjID0gY2FudmFzLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7
CisKK2RvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCAoKSA9PiBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGltZykpOworCis8L3NjcmlwdD4KXCBObyBuZXdsaW5l
IGF0IGVuZCBvZiBmaWxlCg==
</data>
<flag name="review"
          id="419119"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>