<?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>201371</bug_id>
          
          <creation_ts>2019-08-30 18:07:31 -0700</creation_ts>
          <short_desc>Provide a prototype for AR QuickLook to trigger processing in the originating page</short_desc>
          <delta_ts>2019-09-23 09:31:23 -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>New Bugs</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>
          
          <blocked>202103</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>andersca</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jbedard</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1566914</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-30 18:07:31 -0700</bug_when>
    <thetext>Provide a prototype for AR QuickLook to trigger processing in the originating page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566915</commentid>
    <comment_count>1</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-30 18:16:13 -0700</bug_when>
    <thetext>&lt;rdar://54904781&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566916</commentid>
    <comment_count>2</comment_count>
      <attachid>377776</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-30 18:17:13 -0700</bug_when>
    <thetext>Created attachment 377776
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566991</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2019-08-31 09:51:29 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #2)
&gt; Created attachment 377776 [details]
&gt; Patch

Looks like iOS is broken.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1566999</commentid>
    <comment_count>4</comment_count>
      <attachid>377804</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-31 12:42:01 -0700</bug_when>
    <thetext>Created attachment 377804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567002</commentid>
    <comment_count>5</comment_count>
      <attachid>377806</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-08-31 13:52:42 -0700</bug_when>
    <thetext>Created attachment 377806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567007</commentid>
    <comment_count>6</comment_count>
      <attachid>377806</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-08-31 15:31:18 -0700</bug_when>
    <thetext>Comment on attachment 377806
Patch

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

&gt; Source/WebKit/ChangeLog:12
&gt; +        Provide a way for a Web page to know if a particular action in the AR scene
&gt; +        was performed, if and only if the system AR library calls a delegate with
&gt; +        particular parameters. Post a message to the window on the main frame
&gt; +        to indicate the action was triggered.

Why the mainframe? Can a AR QuickLook be triggered only from a mainframe?

&gt; Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:161
&gt; +        NSString *javaScriptString = [NSString stringWithFormat:@&quot;window.postMessage({_origin: &apos;_apple_ar_quicklook&apos; , action: &apos;buttonTapped&apos;}, window.location.origin);&quot;];
&gt; +        _previewController-&gt;page().runJavaScriptInMainFrame(javaScriptString, true, [](API::SerializedScriptValue*, bool, const WebCore::ExceptionDetails&amp;, WebKit::ScriptValueCallback::Error) { });
&gt; +    }

Is there any chance the page has navigated since quicklook started? It would be good to either defend agains that or assert that it didn&apos;t happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567009</commentid>
    <comment_count>7</comment_count>
      <attachid>377806</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-08-31 15:48:31 -0700</bug_when>
    <thetext>Comment on attachment 377806
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:73
&gt; +- (instancetype)initWithSystemPreviewController:(WebKit::SystemPreviewController*)previewController MIMEType:(NSString*)mimeType originatingPageURL:(URL)url

Nit - do we ever expect the previewController to be null? If not, perhaps this should take a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1567015</commentid>
    <comment_count>8</comment_count>
      <attachid>377806</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-08-31 17:03:41 -0700</bug_when>
    <thetext>Comment on attachment 377806
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:158
&gt; +    if ([[message[@&quot;callToAction&quot;] description] isEqualToString:@&quot;buttonTapped&quot;]) {

-description is generally used for debugging and might contain all kinds of junk (addresses, class names).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570078</commentid>
    <comment_count>9</comment_count>
      <attachid>378606</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-09-11 18:10:55 -0700</bug_when>
    <thetext>Created attachment 378606
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570660</commentid>
    <comment_count>10</comment_count>
      <attachid>378606</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-09-13 12:00:27 -0700</bug_when>
    <thetext>Comment on attachment 378606
Patch

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

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:489
&gt; +        systemPreviewInfo.globalFrameID.frameID = document().frame()-&gt;loader().client().frameID().valueOr(FrameIdentifier { });
&gt; +        systemPreviewInfo.globalFrameID.pageID = document().frame()-&gt;loader().client().pageID().valueOr(PageIdentifier { });

Weird flex but OK. Not sure why the PageIdentifier and FrameIdentifiers aren&apos;t on Page and Frame. Chris?

&gt; Source/WebCore/loader/FrameLoaderTypes.h:185
&gt; +    IntRect previewRect;

What coordinate system is this rect in?

&gt; Source/WebKit/UIProcess/SystemPreviewController.h:65
&gt; +    void triggerSystemPreviewActionWithTarget(uint64_t frameID, uint64_t pageID);

Maybe put &quot;ForTesting&quot; in the name</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570716</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2019-09-13 14:43:42 -0700</bug_when>
    <thetext>Committed r249855: &lt;https://trac.webkit.org/changeset/249855&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570754</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-09-13 16:44:34 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #11)
&gt; Committed r249855: &lt;https://trac.webkit.org/changeset/249855&gt;
TestWebKitAPI.WebKit.SystemPreviewTriggered (added with this change) is timing out on the iOS Simulator bots:
https://build.webkit.org/builders/Apple%20iOS%2012%20Simulator%20Release%20WK2%20(Tests)/builds/6364</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1570778</commentid>
    <comment_count>13</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-13 17:41:58 -0700</bug_when>
    <thetext>This breaks the iOS 13 OpenSource build...perhaps it needs &lt;https://trac.webkit.org/changeset/249859/webkit&gt;? Or an SPI declaration for ARQuickLookWebKitItemDelegate?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571560</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-17 09:22:38 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571561</commentid>
    <comment_count>15</comment_count>
      <attachid>378969</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-17 09:22:39 -0700</bug_when>
    <thetext>Created attachment 378969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1571563</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-09-17 09:25:38 -0700</bug_when>
    <thetext>Committed r249958: &lt;https://trac.webkit.org/changeset/249958&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1573326</commentid>
    <comment_count>17</comment_count>
      <attachid>378606</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-09-23 09:31:23 -0700</bug_when>
    <thetext>Comment on attachment 378606
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivate.h:508
&gt; +- (void)_triggerSystemPreviewActionOnFrame:(uint64_t)frameID page:(uint64_t)pageID WK_API_AVAILABLE(ios(13.0));

Should this be WK_IOS_TBA?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377776</attachid>
            <date>2019-08-30 18:17:13 -0700</date>
            <delta_ts>2019-08-31 12:41:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201371-20190831111711.patch</filename>
            <type>text/plain</type>
            <size>5510</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzNWRkMWMyMjljMzE1Njg2
YjIzNmFiYzg3OGI1ZGY1YTVlZDMyOGUuLjZmMGFiNzg5MTJkZWRiMTFkZDJkZjVjM2Y0YzlhNzVh
ZTYyZmFiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDgtMzAgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9y
IEFSIFF1aWNrTG9vayB0byB0cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBh
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM3
MQorICAgICAgICA8cmRhcjovLzU0OTA0NzgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGEgV2ViIHBhZ2UgdG8ga25v
dyBpZiBhIHBhcnRpY3VsYXIgYWN0aW9uIGluIHRoZSBBUiBzY2VuZQorICAgICAgICB3YXMgcGVy
Zm9ybWVkLCBpZiBhbmQgb25seSBpZiB0aGUgc3lzdGVtIEFSIGxpYnJhcnkgY2FsbHMgYSBkZWxl
Z2F0ZSB3aXRoCisgICAgICAgIHBhcnRpY3VsYXIgcGFyYW1ldGVycy4KKworICAgICAgICBUaGlz
IHdpbGwgbm90IGJlIHRoZSBmaW5hbCBzb2x1dGlvbiBhbmQgd2lsbCBuZXZlciBzaGlwIGVuYWJs
ZWQgaW4KKyAgICAgICAgdGhpcyBzdGF0ZS4gSXQncyBmb3IgaW50ZXJuYWwgdGVzdGluZyBvbmx5
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgICgtW19XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSBpbml0V2l0
aE1JTUVUeXBlOm9yaWdpbmF0aW5nUGFnZVVSTDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dL
UHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlIGluaXRXaXRoU3lzdGVtUHJldmlld0NvbnRyb2xs
ZXI6TUlNRVR5cGU6b3JpZ2luYXRpbmdQYWdlVVJMOik6IE5ldyBpbml0aWFsaXphdGlvbgorICAg
ICAgICBtZXRob2QgdGhhdCB0YWtlcyB0aGUgU3lzdGVtUHJldmlld0NvbnRyb2xsZXIgYXMgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChbX1dLUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlIHByZXZp
ZXdJdGVtOmRpZFJlY2VpdmVNZXNzYWdlOl0pOiBOZXcgZGVsZWdhdGUgdGhhdCB0cmlnZ2VycyB0
aGUKKyAgICAgICAgcHJlZGVmaW5lZCBhY3Rpb24uCisKIDIwMTktMDgtMjcgIEJhc3VrZSBTdXp1
a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtSZW1vdGVJbnNwZWN0b3Jd
W1NvY2tldF0gUmVzdHJ1Y3R1cmluZyB0aGUgY29tcG9uZW50cyBvZiBTb2NrZXQgaW1wbGVtZW50
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVBy
ZXZpZXdDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDhlMDFjYzVmYzM0ODMwOTBkNzRj
ZjMyZDU0MDFjNGE5YjYyZjFlMzcuLjQwNWE3NjY5ZWQ0YzY2M2M2ZDZhZWI3NzY2MWM1NzU5ZGU4
Mjk2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVBy
ZXZpZXdDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNDUsOSArNDUsMTMgQEAgU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFSS2l0KTsKIFNPRlRfTElOS19DTEFTUyhBUktpdCwg
QVJRdWlja0xvb2tQcmV2aWV3SXRlbSk7CiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNz
ZXRWaWV3ZXIpOwogU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktp
dEl0ZW0pOwotI2VuZGlmCiAKK0Bwcm90b2NvbCBBUlF1aWNrTG9va1dlYktpdEl0ZW1EZWxlZ2F0
ZTsKKworQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UgOiBOU09iamVj
dCA8UUxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UsIEFSUXVpY2tMb29rV2ViS2l0SXRlbURl
bGVnYXRlPiB7CisjZWxzZQogQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3Vy
Y2UgOiBOU09iamVjdCA8UUxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2U+IHsKKyNlbmRpZgog
ICAgIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gX2l0ZW1Qcm92aWRlcjsKICNpZiBIQVZFKEFS
S0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNKQogICAgIFJldGFpblB0cjxBUlF1aWNrTG9va1dl
YktpdEl0ZW0+IF9pdGVtOwpAQCAtNTYsNiArNjAsNyBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRW
aWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0SXRlbSk7CiAjZW5kaWYKICAgICBVUkwgX29yaWdpbmF0
aW5nUGFnZVVSTDsKICAgICBVUkwgX2Rvd25sb2FkZWRVUkw7CisgICAgV2ViS2l0OjpTeXN0ZW1Q
cmV2aWV3Q29udHJvbGxlciogX3ByZXZpZXdDb250cm9sbGVyOwogfTsKIAogQHByb3BlcnR5IChz
dHJvbmcpIE5TSXRlbVByb3ZpZGVyQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXI7
CkBAIC02NSwxMSArNzAsMTIgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNr
TG9va1dlYktpdEl0ZW0pOwogCiBAaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0NvbnRyb2xsZXJE
YXRhU291cmNlCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1JTUVUeXBlOihOU1N0cmluZyop
bWltZVR5cGUgb3JpZ2luYXRpbmdQYWdlVVJMOihVUkwpdXJsCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjooV2ViS2l0OjpTeXN0ZW1QcmV2aWV3Q29udHJv
bGxlciopcHJldmlld0NvbnRyb2xsZXIgTUlNRVR5cGU6KE5TU3RyaW5nKiltaW1lVHlwZSBvcmln
aW5hdGluZ1BhZ2VVUkw6KFVSTCl1cmwKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAorICAgIF9wcmV2aWV3Q29udHJvbGxlciA9IHByZXZp
ZXdDb250cm9sbGVyOwogICAgIF9vcmlnaW5hdGluZ1BhZ2VVUkwgPSB1cmw7CiAgICAgX21pbWVU
eXBlID0gW21pbWVUeXBlIGNvcHldOwogCkBAIC0xMDMsNiArMTA5LDcgQEAgU09GVF9MSU5LX0NM
QVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktpdEl0ZW0pOwogICAgIHByZXZpZXdJdGVt
LmNhbm9uaWNhbFdlYlBhZ2VVUkwgPSBfb3JpZ2luYXRpbmdQYWdlVVJMOwogCiAgICAgX2l0ZW0g
PSBbYWxsb2NBUlF1aWNrTG9va1dlYktpdEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoUHJldmlld0l0
ZW1Qcm92aWRlcjpfaXRlbVByb3ZpZGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIHBy
ZXZpZXdUaXRsZTpAIlByZXZpZXciIGZpbGVTaXplOkAoMCkgcHJldmlld0l0ZW06cHJldmlld0l0
ZW1dOworICAgIFtfaXRlbSBzZXREZWxlZ2F0ZTpzZWxmXTsKICNlbHNlCiAgICAgX2l0ZW0gPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUUxJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFByZXZpZXdJdGVtUHJv
dmlkZXI6X2l0ZW1Qcm92aWRlci5nZXQoKSBjb250ZW50VHlwZTpjb250ZW50VHlwZSBwcmV2aWV3
VGl0bGU6QCJQcmV2aWV3IiBmaWxlU2l6ZTpAKDApXSk7CiAjZW5kaWYKQEAgLTE0Miw2ICsxNDks
MTcgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktpdEl0ZW0p
OwogICAgICAgICBzZWxmLmNvbXBsZXRpb25IYW5kbGVyKG5pbCwgZXJyb3IpOwogfQogCistICh2
b2lkKXByZXZpZXdJdGVtOihBUlF1aWNrTG9va1dlYktpdEl0ZW0gKilwcmV2aWV3SXRlbSBkaWRS
ZWNlaXZlTWVzc2FnZTooTlNEaWN0aW9uYXJ5ICopbWVzc2FnZQoreworICAgIGlmICghX3ByZXZp
ZXdDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW1ttZXNzYWdlW0AiY2Fs
bFRvQWN0aW9uIl0gZGVzY3JpcHRpb25dIGlzRXF1YWxUb1N0cmluZzpAImJ1dHRvblRhcHBlZCJd
KSB7CisgICAgICAgIE5TU3RyaW5nICpqYXZhU2NyaXB0U3RyaW5nID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCIoZnVuY3Rpb24oKSB7IGxldCBoID0gd2luZG93Ll9hcHBsZV9hcl9xdWlj
a2xvb2tfYWN0aW9uX3RyaWdnZXJlZDsgaWYgKGggJiYgdHlwZW9mIGggPT0gJ2Z1bmN0aW9uJykg
eyBoKCk7IH19KSgpOyJdOworICAgICAgICBfcHJldmlld0NvbnRyb2xsZXItPnBhZ2UoKS5ydW5K
YXZhU2NyaXB0SW5NYWluRnJhbWUoamF2YVNjcmlwdFN0cmluZywgdHJ1ZSwgW10oQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqLCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxz
JiwgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvcikgeyB9KTsKKyAgICB9Cit9CisK
IEBlbmQKIAogQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRlbGVnYXRlIDogTlNPYmpl
Y3QgPFFMUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gewpAQCAtMjM0LDcgKzI1Miw3IEBAIHZv
aWQgU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnN0YXJ0KFVSTCBvcmlnaW5hdGluZ1BhZ2VVUkws
IGNvbnN0IFN0cmluZyYgbWltZVR5CiAgICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUg
PSBhZG9wdE5TKFtbX1dLUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhT
eXN0ZW1QcmV2aWV3Q29udHJvbGxlcjp0aGlzIGZyb21SZWN0OmZyb21SZWN0XSk7CiAgICAgW21f
cWxQcmV2aWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3FsUHJldmlld0NvbnRyb2xsZXJEZWxl
Z2F0ZS5nZXQoKV07CiAKLSAgICBtX3FsUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlID0gYWRv
cHROUyhbW19XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSBhbGxvY10gaW5pdFdpdGhNSU1F
VHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6b3JpZ2luYXRpbmdQYWdlVVJMXSk7Cisg
ICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3
Q29udHJvbGxlckRhdGFTb3VyY2UgYWxsb2NdIGluaXRXaXRoU3lzdGVtUHJldmlld0NvbnRyb2xs
ZXI6dGhpcyBNSU1FVHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6b3JpZ2luYXRpbmdQ
YWdlVVJMXSk7CiAgICAgW21fcWxQcmV2aWV3Q29udHJvbGxlciBzZXREYXRhU291cmNlOm1fcWxQ
cmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UuZ2V0KCldOwogCiAgICAgW3ByZXNlbnRpbmdWaWV3
Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6bV9xbFByZXZpZXdDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOm51bGxwdHJdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377804</attachid>
            <date>2019-08-31 12:42:01 -0700</date>
            <delta_ts>2019-08-31 13:52:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201371-20190901054200.patch</filename>
            <type>text/plain</type>
            <size>5510</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzNWRkMWMyMjljMzE1Njg2
YjIzNmFiYzg3OGI1ZGY1YTVlZDMyOGUuLjZmMGFiNzg5MTJkZWRiMTFkZDJkZjVjM2Y0YzlhNzVh
ZTYyZmFiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTktMDgtMzAgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9y
IEFSIFF1aWNrTG9vayB0byB0cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBh
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM3
MQorICAgICAgICA8cmRhcjovLzU0OTA0NzgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGEgV2ViIHBhZ2UgdG8ga25v
dyBpZiBhIHBhcnRpY3VsYXIgYWN0aW9uIGluIHRoZSBBUiBzY2VuZQorICAgICAgICB3YXMgcGVy
Zm9ybWVkLCBpZiBhbmQgb25seSBpZiB0aGUgc3lzdGVtIEFSIGxpYnJhcnkgY2FsbHMgYSBkZWxl
Z2F0ZSB3aXRoCisgICAgICAgIHBhcnRpY3VsYXIgcGFyYW1ldGVycy4KKworICAgICAgICBUaGlz
IHdpbGwgbm90IGJlIHRoZSBmaW5hbCBzb2x1dGlvbiBhbmQgd2lsbCBuZXZlciBzaGlwIGVuYWJs
ZWQgaW4KKyAgICAgICAgdGhpcyBzdGF0ZS4gSXQncyBmb3IgaW50ZXJuYWwgdGVzdGluZyBvbmx5
LgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgICgtW19XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSBpbml0V2l0
aE1JTUVUeXBlOm9yaWdpbmF0aW5nUGFnZVVSTDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bX1dL
UHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlIGluaXRXaXRoU3lzdGVtUHJldmlld0NvbnRyb2xs
ZXI6TUlNRVR5cGU6b3JpZ2luYXRpbmdQYWdlVVJMOik6IE5ldyBpbml0aWFsaXphdGlvbgorICAg
ICAgICBtZXRob2QgdGhhdCB0YWtlcyB0aGUgU3lzdGVtUHJldmlld0NvbnRyb2xsZXIgYXMgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChbX1dLUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlIHByZXZp
ZXdJdGVtOmRpZFJlY2VpdmVNZXNzYWdlOl0pOiBOZXcgZGVsZWdhdGUgdGhhdCB0cmlnZ2VycyB0
aGUKKyAgICAgICAgcHJlZGVmaW5lZCBhY3Rpb24uCisKIDIwMTktMDgtMjcgIEJhc3VrZSBTdXp1
a2kgIDxCYXN1a2UuU3V6dWtpQHNvbnkuY29tPgogCiAgICAgICAgIFtSZW1vdGVJbnNwZWN0b3Jd
W1NvY2tldF0gUmVzdHJ1Y3R1cmluZyB0aGUgY29tcG9uZW50cyBvZiBTb2NrZXQgaW1wbGVtZW50
YXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVBy
ZXZpZXdDb250cm9sbGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9T
eXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDhlMDFjYzVmYzM0ODMwOTBkNzRj
ZjMyZDU0MDFjNGE5YjYyZjFlMzcuLjQwNWE3NjY5ZWQ0YzY2M2M2ZDZhZWI3NzY2MWM1NzU5ZGU4
Mjk2ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1N5c3RlbVBy
ZXZpZXdDb250cm9sbGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNDUsOSArNDUsMTMgQEAgU09G
VF9MSU5LX1BSSVZBVEVfRlJBTUVXT1JLKEFSS2l0KTsKIFNPRlRfTElOS19DTEFTUyhBUktpdCwg
QVJRdWlja0xvb2tQcmV2aWV3SXRlbSk7CiBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQXNz
ZXRWaWV3ZXIpOwogU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktp
dEl0ZW0pOwotI2VuZGlmCiAKK0Bwcm90b2NvbCBBUlF1aWNrTG9va1dlYktpdEl0ZW1EZWxlZ2F0
ZTsKKworQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UgOiBOU09iamVj
dCA8UUxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UsIEFSUXVpY2tMb29rV2ViS2l0SXRlbURl
bGVnYXRlPiB7CisjZWxzZQogQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3Vy
Y2UgOiBOU09iamVjdCA8UUxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2U+IHsKKyNlbmRpZgog
ICAgIFJldGFpblB0cjxOU0l0ZW1Qcm92aWRlcj4gX2l0ZW1Qcm92aWRlcjsKICNpZiBIQVZFKEFS
S0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNKQogICAgIFJldGFpblB0cjxBUlF1aWNrTG9va1dl
YktpdEl0ZW0+IF9pdGVtOwpAQCAtNTYsNiArNjAsNyBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRW
aWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0SXRlbSk7CiAjZW5kaWYKICAgICBVUkwgX29yaWdpbmF0
aW5nUGFnZVVSTDsKICAgICBVUkwgX2Rvd25sb2FkZWRVUkw7CisgICAgV2ViS2l0OjpTeXN0ZW1Q
cmV2aWV3Q29udHJvbGxlciogX3ByZXZpZXdDb250cm9sbGVyOwogfTsKIAogQHByb3BlcnR5IChz
dHJvbmcpIE5TSXRlbVByb3ZpZGVyQ29tcGxldGlvbkhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXI7
CkBAIC02NSwxMSArNzAsMTIgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNr
TG9va1dlYktpdEl0ZW0pOwogCiBAaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0NvbnRyb2xsZXJE
YXRhU291cmNlCiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aE1JTUVUeXBlOihOU1N0cmluZyop
bWltZVR5cGUgb3JpZ2luYXRpbmdQYWdlVVJMOihVUkwpdXJsCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjooV2ViS2l0OjpTeXN0ZW1QcmV2aWV3Q29udHJv
bGxlciopcHJldmlld0NvbnRyb2xsZXIgTUlNRVR5cGU6KE5TU3RyaW5nKiltaW1lVHlwZSBvcmln
aW5hdGluZ1BhZ2VVUkw6KFVSTCl1cmwKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRd
KSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAorICAgIF9wcmV2aWV3Q29udHJvbGxlciA9IHByZXZp
ZXdDb250cm9sbGVyOwogICAgIF9vcmlnaW5hdGluZ1BhZ2VVUkwgPSB1cmw7CiAgICAgX21pbWVU
eXBlID0gW21pbWVUeXBlIGNvcHldOwogCkBAIC0xMDMsNiArMTA5LDcgQEAgU09GVF9MSU5LX0NM
QVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktpdEl0ZW0pOwogICAgIHByZXZpZXdJdGVt
LmNhbm9uaWNhbFdlYlBhZ2VVUkwgPSBfb3JpZ2luYXRpbmdQYWdlVVJMOwogCiAgICAgX2l0ZW0g
PSBbYWxsb2NBUlF1aWNrTG9va1dlYktpdEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoUHJldmlld0l0
ZW1Qcm92aWRlcjpfaXRlbVByb3ZpZGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIHBy
ZXZpZXdUaXRsZTpAIlByZXZpZXciIGZpbGVTaXplOkAoMCkgcHJldmlld0l0ZW06cHJldmlld0l0
ZW1dOworICAgIFtfaXRlbSBzZXREZWxlZ2F0ZTpzZWxmXTsKICNlbHNlCiAgICAgX2l0ZW0gPSBh
ZG9wdE5TKFtQQUw6OmFsbG9jUUxJdGVtSW5zdGFuY2UoKSBpbml0V2l0aFByZXZpZXdJdGVtUHJv
dmlkZXI6X2l0ZW1Qcm92aWRlci5nZXQoKSBjb250ZW50VHlwZTpjb250ZW50VHlwZSBwcmV2aWV3
VGl0bGU6QCJQcmV2aWV3IiBmaWxlU2l6ZTpAKDApXSk7CiAjZW5kaWYKQEAgLTE0Miw2ICsxNDks
MTcgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktpdEl0ZW0p
OwogICAgICAgICBzZWxmLmNvbXBsZXRpb25IYW5kbGVyKG5pbCwgZXJyb3IpOwogfQogCistICh2
b2lkKXByZXZpZXdJdGVtOihBUlF1aWNrTG9va1dlYktpdEl0ZW0gKilwcmV2aWV3SXRlbSBkaWRS
ZWNlaXZlTWVzc2FnZTooTlNEaWN0aW9uYXJ5ICopbWVzc2FnZQoreworICAgIGlmICghX3ByZXZp
ZXdDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoW1ttZXNzYWdlW0AiY2Fs
bFRvQWN0aW9uIl0gZGVzY3JpcHRpb25dIGlzRXF1YWxUb1N0cmluZzpAImJ1dHRvblRhcHBlZCJd
KSB7CisgICAgICAgIE5TU3RyaW5nICpqYXZhU2NyaXB0U3RyaW5nID0gW05TU3RyaW5nIHN0cmlu
Z1dpdGhGb3JtYXQ6QCIoZnVuY3Rpb24oKSB7IGxldCBoID0gd2luZG93Ll9hcHBsZV9hcl9xdWlj
a2xvb2tfYWN0aW9uX3RyaWdnZXJlZDsgaWYgKGggJiYgdHlwZW9mIGggPT0gJ2Z1bmN0aW9uJykg
eyBoKCk7IH19KSgpOyJdOworICAgICAgICBfcHJldmlld0NvbnRyb2xsZXItPnBhZ2UoKS5ydW5K
YXZhU2NyaXB0SW5NYWluRnJhbWUoamF2YVNjcmlwdFN0cmluZywgdHJ1ZSwgW10oQVBJOjpTZXJp
YWxpemVkU2NyaXB0VmFsdWUqLCBib29sLCBjb25zdCBXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxz
JiwgV2ViS2l0OjpTY3JpcHRWYWx1ZUNhbGxiYWNrOjpFcnJvcikgeyB9KTsKKyAgICB9Cit9CisK
IEBlbmQKIAogQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRlbGVnYXRlIDogTlNPYmpl
Y3QgPFFMUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gewpAQCAtMjM0LDcgKzI1Miw3IEBAIHZv
aWQgU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnN0YXJ0KFVSTCBvcmlnaW5hdGluZ1BhZ2VVUkws
IGNvbnN0IFN0cmluZyYgbWltZVR5CiAgICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUg
PSBhZG9wdE5TKFtbX1dLUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhT
eXN0ZW1QcmV2aWV3Q29udHJvbGxlcjp0aGlzIGZyb21SZWN0OmZyb21SZWN0XSk7CiAgICAgW21f
cWxQcmV2aWV3Q29udHJvbGxlciBzZXREZWxlZ2F0ZTptX3FsUHJldmlld0NvbnRyb2xsZXJEZWxl
Z2F0ZS5nZXQoKV07CiAKLSAgICBtX3FsUHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlID0gYWRv
cHROUyhbW19XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSBhbGxvY10gaW5pdFdpdGhNSU1F
VHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6b3JpZ2luYXRpbmdQYWdlVVJMXSk7Cisg
ICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3
Q29udHJvbGxlckRhdGFTb3VyY2UgYWxsb2NdIGluaXRXaXRoU3lzdGVtUHJldmlld0NvbnRyb2xs
ZXI6dGhpcyBNSU1FVHlwZTptaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6b3JpZ2luYXRpbmdQ
YWdlVVJMXSk7CiAgICAgW21fcWxQcmV2aWV3Q29udHJvbGxlciBzZXREYXRhU291cmNlOm1fcWxQ
cmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UuZ2V0KCldOwogCiAgICAgW3ByZXNlbnRpbmdWaWV3
Q29udHJvbGxlciBwcmVzZW50Vmlld0NvbnRyb2xsZXI6bV9xbFByZXZpZXdDb250cm9sbGVyLmdl
dCgpIGFuaW1hdGVkOllFUyBjb21wbGV0aW9uOm51bGxwdHJdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377806</attachid>
            <date>2019-08-31 13:52:42 -0700</date>
            <delta_ts>2019-09-11 18:10:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201371-20190901065240.patch</filename>
            <type>text/plain</type>
            <size>5496</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzNWRkMWMyMjljMzE1Njg2
YjIzNmFiYzg3OGI1ZGY1YTVlZDMyOGUuLjBjZjQ2YWQyMzU0OGIyYzQwM2FkODgwOThhOTIzNzU4
YjlhNTgzYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTktMDgtMzAgIERlYW4gSmFj
a3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9y
IEFSIFF1aWNrTG9vayB0byB0cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBh
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM3
MQorICAgICAgICA8cmRhcjovLzU0OTA0NzgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGEgV2ViIHBhZ2UgdG8ga25v
dyBpZiBhIHBhcnRpY3VsYXIgYWN0aW9uIGluIHRoZSBBUiBzY2VuZQorICAgICAgICB3YXMgcGVy
Zm9ybWVkLCBpZiBhbmQgb25seSBpZiB0aGUgc3lzdGVtIEFSIGxpYnJhcnkgY2FsbHMgYSBkZWxl
Z2F0ZSB3aXRoCisgICAgICAgIHBhcnRpY3VsYXIgcGFyYW1ldGVycy4gUG9zdCBhIG1lc3NhZ2Ug
dG8gdGhlIHdpbmRvdyBvbiB0aGUgbWFpbiBmcmFtZQorICAgICAgICB0byBpbmRpY2F0ZSB0aGUg
YWN0aW9uIHdhcyB0cmlnZ2VyZWQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvU3lzdGVt
UHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKC1bX1dLUHJldmlld0NvbnRyb2xs
ZXJEYXRhU291cmNlIGluaXRXaXRoTUlNRVR5cGU6b3JpZ2luYXRpbmdQYWdlVVJMOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UgaW5pdFdpdGhT
eXN0ZW1QcmV2aWV3Q29udHJvbGxlcjpNSU1FVHlwZTpvcmlnaW5hdGluZ1BhZ2VVUkw6KTogTmV3
IGluaXRpYWxpemF0aW9uCisgICAgICAgIG1ldGhvZCB0aGF0IHRha2VzIHRoZSBTeXN0ZW1QcmV2
aWV3Q29udHJvbGxlciBhcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFtfV0tQcmV2aWV3Q29udHJv
bGxlckRhdGFTb3VyY2UgcHJldmlld0l0ZW06ZGlkUmVjZWl2ZU1lc3NhZ2U6XSk6IE5ldyBkZWxl
Z2F0ZSB0aGF0IHBvc3RzCisgICAgICAgIGEgbWVzc2FnZS4KKwogMjAxOS0wOC0yNyAgQmFzdWtl
IFN1enVraSAgPEJhc3VrZS5TdXp1a2lAc29ueS5jb20+CiAKICAgICAgICAgW1JlbW90ZUluc3Bl
Y3Rvcl1bU29ja2V0XSBSZXN0cnVjdHVyaW5nIHRoZSBjb21wb25lbnRzIG9mIFNvY2tldCBpbXBs
ZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lz
dGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOGUwMWNjNWZjMzQ4MzA5
MGQ3NGNmMzJkNTQwMWM0YTliNjJmMWUzNy4uYmJmMTMwZTcxMzVjODZiMWU2ZDAwNmQ5ZjViYTBm
OWM2MDUwYjk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvU3lz
dGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCkBAIC00NSw5ICs0NSwxMyBA
QCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQVJLaXQpOwogU09GVF9MSU5LX0NMQVNTKEFS
S2l0LCBBUlF1aWNrTG9va1ByZXZpZXdJdGVtKTsKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09S
SyhBc3NldFZpZXdlcik7CiBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFSUXVpY2tMb29r
V2ViS2l0SXRlbSk7Ci0jZW5kaWYKIAorQHByb3RvY29sIEFSUXVpY2tMb29rV2ViS2l0SXRlbURl
bGVnYXRlOworCitAaW50ZXJmYWNlIF9XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSA6IE5T
T2JqZWN0IDxRTFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSwgQVJRdWlja0xvb2tXZWJLaXRJ
dGVtRGVsZWdhdGU+IHsKKyNlbHNlCiBAaW50ZXJmYWNlIF9XS1ByZXZpZXdDb250cm9sbGVyRGF0
YVNvdXJjZSA6IE5TT2JqZWN0IDxRTFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZT4geworI2Vu
ZGlmCiAgICAgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBfaXRlbVByb3ZpZGVyOwogI2lmIEhB
VkUoQVJLSVRfUVVJQ0tfTE9PS19QUkVWSUVXX0lURU0pCiAgICAgUmV0YWluUHRyPEFSUXVpY2tM
b29rV2ViS2l0SXRlbT4gX2l0ZW07CkBAIC01Niw2ICs2MCw3IEBAIFNPRlRfTElOS19DTEFTUyhB
c3NldFZpZXdlciwgQVJRdWlja0xvb2tXZWJLaXRJdGVtKTsKICNlbmRpZgogICAgIFVSTCBfb3Jp
Z2luYXRpbmdQYWdlVVJMOwogICAgIFVSTCBfZG93bmxvYWRlZFVSTDsKKyAgICBXZWJLaXQ6OlN5
c3RlbVByZXZpZXdDb250cm9sbGVyKiBfcHJldmlld0NvbnRyb2xsZXI7CiB9OwogCiBAcHJvcGVy
dHkgKHN0cm9uZykgTlNJdGVtUHJvdmlkZXJDb21wbGV0aW9uSGFuZGxlciBjb21wbGV0aW9uSGFu
ZGxlcjsKQEAgLTY1LDExICs3MCwxMiBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFS
UXVpY2tMb29rV2ViS2l0SXRlbSk7CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2aWV3Q29udHJv
bGxlckRhdGFTb3VyY2UKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTUlNRVR5cGU6KE5TU3Ry
aW5nKiltaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6KFVSTCl1cmwKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFN5c3RlbVByZXZpZXdDb250cm9sbGVyOihXZWJLaXQ6OlN5c3RlbVByZXZpZXdD
b250cm9sbGVyKilwcmV2aWV3Q29udHJvbGxlciBNSU1FVHlwZTooTlNTdHJpbmcqKW1pbWVUeXBl
IG9yaWdpbmF0aW5nUGFnZVVSTDooVVJMKXVybAogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIg
aW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgX3ByZXZpZXdDb250cm9sbGVyID0g
cHJldmlld0NvbnRyb2xsZXI7CiAgICAgX29yaWdpbmF0aW5nUGFnZVVSTCA9IHVybDsKICAgICBf
bWltZVR5cGUgPSBbbWltZVR5cGUgY29weV07CiAKQEAgLTEwMyw2ICsxMDksNyBAQCBTT0ZUX0xJ
TktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0SXRlbSk7CiAgICAgcHJldmll
d0l0ZW0uY2Fub25pY2FsV2ViUGFnZVVSTCA9IF9vcmlnaW5hdGluZ1BhZ2VVUkw7CiAKICAgICBf
aXRlbSA9IFthbGxvY0FSUXVpY2tMb29rV2ViS2l0SXRlbUluc3RhbmNlKCkgaW5pdFdpdGhQcmV2
aWV3SXRlbVByb3ZpZGVyOl9pdGVtUHJvdmlkZXIuZ2V0KCkgY29udGVudFR5cGU6Y29udGVudFR5
cGUgcHJldmlld1RpdGxlOkAiUHJldmlldyIgZmlsZVNpemU6QCgwKSBwcmV2aWV3SXRlbTpwcmV2
aWV3SXRlbV07CisgICAgW19pdGVtIHNldERlbGVnYXRlOnNlbGZdOwogI2Vsc2UKICAgICBfaXRl
bSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRoUHJldmlld0l0
ZW1Qcm92aWRlcjpfaXRlbVByb3ZpZGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRlbnRUeXBlIHBy
ZXZpZXdUaXRsZTpAIlByZXZpZXciIGZpbGVTaXplOkAoMCldKTsKICNlbmRpZgpAQCAtMTQyLDYg
KzE0OSwxOSBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0
SXRlbSk7CiAgICAgICAgIHNlbGYuY29tcGxldGlvbkhhbmRsZXIobmlsLCBlcnJvcik7CiB9CiAK
KyNpZiBIQVZFKEFSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNKQorLSAodm9pZClwcmV2aWV3
SXRlbTooQVJRdWlja0xvb2tXZWJLaXRJdGVtICopcHJldmlld0l0ZW0gZGlkUmVjZWl2ZU1lc3Nh
Z2U6KE5TRGljdGlvbmFyeSAqKW1lc3NhZ2UKK3sKKyAgICBpZiAoIV9wcmV2aWV3Q29udHJvbGxl
cikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFtbbWVzc2FnZVtAImNhbGxUb0FjdGlvbiJd
IGRlc2NyaXB0aW9uXSBpc0VxdWFsVG9TdHJpbmc6QCJidXR0b25UYXBwZWQiXSkgeworICAgICAg
ICBOU1N0cmluZyAqamF2YVNjcmlwdFN0cmluZyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OkAid2luZG93LnBvc3RNZXNzYWdlKHtfb3JpZ2luOiAnX2FwcGxlX2FyX3F1aWNrbG9vaycgLCBh
Y3Rpb246ICdidXR0b25UYXBwZWQnfSwgd2luZG93LmxvY2F0aW9uLm9yaWdpbik7Il07CisgICAg
ICAgIF9wcmV2aWV3Q29udHJvbGxlci0+cGFnZSgpLnJ1bkphdmFTY3JpcHRJbk1haW5GcmFtZShq
YXZhU2NyaXB0U3RyaW5nLCB0cnVlLCBbXShBUEk6OlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSosIGJv
b2wsIGNvbnN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRldGFpbHMmLCBXZWJLaXQ6OlNjcmlwdFZhbHVl
Q2FsbGJhY2s6OkVycm9yKSB7IH0pOworICAgIH0KK30KKyNlbmRpZgorCiBAZW5kCiAKIEBpbnRl
cmZhY2UgX1dLUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxRTFByZXZpZXdD
b250cm9sbGVyRGVsZWdhdGU+IHsKQEAgLTIzNCw3ICsyNTQsNyBAQCB2b2lkIFN5c3RlbVByZXZp
ZXdDb250cm9sbGVyOjpzdGFydChVUkwgb3JpZ2luYXRpbmdQYWdlVVJMLCBjb25zdCBTdHJpbmcm
IG1pbWVUeQogICAgIG1fcWxQcmV2aWV3Q29udHJvbGxlckRlbGVnYXRlID0gYWRvcHROUyhbW19X
S1ByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoU3lzdGVtUHJldmlld0Nv
bnRyb2xsZXI6dGhpcyBmcm9tUmVjdDpmcm9tUmVjdF0pOwogICAgIFttX3FsUHJldmlld0NvbnRy
b2xsZXIgc2V0RGVsZWdhdGU6bV9xbFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUuZ2V0KCldOwog
Ci0gICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSA9IGFkb3B0TlMoW1tfV0tQcmV2
aWV3Q29udHJvbGxlckRhdGFTb3VyY2UgYWxsb2NdIGluaXRXaXRoTUlNRVR5cGU6bWltZVR5cGUg
b3JpZ2luYXRpbmdQYWdlVVJMOm9yaWdpbmF0aW5nUGFnZVVSTF0pOworICAgIG1fcWxQcmV2aWV3
Q29udHJvbGxlckRhdGFTb3VyY2UgPSBhZG9wdE5TKFtbX1dLUHJldmlld0NvbnRyb2xsZXJEYXRh
U291cmNlIGFsbG9jXSBpbml0V2l0aFN5c3RlbVByZXZpZXdDb250cm9sbGVyOnRoaXMgTUlNRVR5
cGU6bWltZVR5cGUgb3JpZ2luYXRpbmdQYWdlVVJMOm9yaWdpbmF0aW5nUGFnZVVSTF0pOwogICAg
IFttX3FsUHJldmlld0NvbnRyb2xsZXIgc2V0RGF0YVNvdXJjZTptX3FsUHJldmlld0NvbnRyb2xs
ZXJEYXRhU291cmNlLmdldCgpXTsKIAogICAgIFtwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIgcHJl
c2VudFZpZXdDb250cm9sbGVyOm1fcWxQcmV2aWV3Q29udHJvbGxlci5nZXQoKSBhbmltYXRlZDpZ
RVMgY29tcGxldGlvbjpudWxscHRyXTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378606</attachid>
            <date>2019-09-11 18:10:55 -0700</date>
            <delta_ts>2019-09-17 09:22:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201371-20190912111053.patch</filename>
            <type>text/plain</type>
            <size>45071</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5NTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTViOWIwZjIyZmQxOTlh
YTE3Mjg3Y2M4MDA5MmRlZjZmMDY4NGIxMi4uNDQwMzc5M2VhZmM1NTg1ZWM5OTIyMzk5ZTcxYmNh
ODczNDI4YTRlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE5LTA5LTExICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBQcm92aWRlIGEgcHJvdG90eXBl
IGZvciBBUiBRdWlja0xvb2sgdG8gdHJpZ2dlciBwcm9jZXNzaW5nIGluIHRoZSBvcmlnaW5hdGlu
ZyBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDEzNzEKKyAgICAgICAgPHJkYXI6Ly81NDkwNDc4MT4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6ZGlzcGF0Y2hTeXN0ZW1QcmV2aWV3QWN0aW9uRXZlbnQpOiBDcmVh
dGUgYW5kIGRpc3BhdGNoIGEgTWVzc2FnZUV2ZW50LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5o
OgorCisgICAgICAgICogaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHA6IFNlbmQgYWxvbmcgdGhl
IHBhZ2UgYW5kIGZyYW1lIGlkZW50aWZpZXJzIGZvciB0aGlzCisgICAgICAgIG9iamVjdCB0byBl
bnN1cmUgdGhhdCBhbnkgcmVwbHkgZ29lcyB0byB0aGUgY29ycmVjdCBwbGFjZS4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisKKyAgICAgICAgKiBs
b2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oOiBVc2UgdGhlIG5ldyBTeXN0ZW1QcmV2aWV3SW5mbyB0
eXBlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdDo6aXNTeXN0ZW1QcmV2aWV3
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN5c3RlbVByZXZp
ZXdJbmZvIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Q6OnN5c3Rl
bVByZXZpZXdSZWN0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmxvYWRVUkwpOgorCisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaDogUHJvdmlkZSBlbmNvZGVycyBmb3IgdGhl
IHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpTeXN0ZW1QcmV2aWV3SW5mbzo6ZW5jb2RlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvOjpkZWNvZGUpOgorCisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcDogVXNlIHRoZSBu
ZXcgdHlwZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OmlzU3lzdGVt
UHJldmlldyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3RCYXNlOjpz
eXN0ZW1QcmV2aWV3SW5mbyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3RCYXNlOjpzZXRTeXN0ZW1QcmV2aWV3SW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3RCYXNlOjpzZXRTeXN0ZW1QcmV2aWV3KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnN5c3RlbVByZXZpZXdSZWN0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdEJhc2U6OnNldFN5c3RlbVByZXZp
ZXdSZWN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVx
dWVzdEJhc2UuaDoKKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDogRXhwb3NlIHRo
ZSBmcmFtZSBhbmQgcGFnZSBpZGVudGlmaWVycyB0byB0ZXN0aW5nLgorICAgICAgICAoV2ViQ29y
ZTo6SW50ZXJuYWxzOjpmcmFtZUlkZW50aWZpZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
SW50ZXJuYWxzOjpwYWdlSWRlbnRpZmllciBjb25zdCk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTktMDktMDYg
IFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtURkNdIFNl
dCBjb21wdXRlZCByb3cgd2lkdGguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmZjMzZmY2MmVkNDI2MzE4YmJjZDhj
Y2FmMjEyMTk0OTg3Zjc5YzEuLjUwM2M4OGYxODhiYjc2N2Y1ODJjYTkwNGIzZmQ3ZmU0ZGVlYWI3
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTktMDktMTEgIERlYW4gSmFja3NvbiAg
PGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYSBwcm90b3R5cGUgZm9yIEFSIFF1
aWNrTG9vayB0byB0cmlnZ2VyIHByb2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBhZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM3MQorICAg
ICAgICA8cmRhcjovLzU0OTA0NzgxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkgZm9yIGEgV2ViIHBhZ2UgdG8ga25vdyBpZiBh
biBhY3Rpb24gaW4gdGhlIEFSIHNjZW5lCisgICAgICAgIHdhcyBwZXJmb3JtZWQsIGlmIGFuZCBv
bmx5IGlmIHRoZSBzeXN0ZW0gQVIgbGlicmFyeSBjYWxscyBhIGRlbGVnYXRlIHdpdGgKKyAgICAg
ICAgcGFydGljdWxhciBwYXJhbWV0ZXJzLiBQb3N0IGEgbWVzc2FnZSB0byB0aGUgb3JpZ2luYXRp
bmcgZnJhbWUgc28KKyAgICAgICAgdGhlIHBhZ2UgY2FuIGRldGVjdCB0aGUgYWN0aW9uLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6IEluY2x1ZGUgdGhlIHJpZ2h0IGhl
YWRlciBmb3IgU3lzdGVtUHJldmlld0luZm8uCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcDogVXNlIFN5c3RlbVByZXZpZXdJbmZvLgorICAgICAgICAoSVBDOjpB
cmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFy
Z3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKToKKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3RyaWdn
ZXJTeXN0ZW1QcmV2aWV3QWN0aW9uT25GcmFtZTpwYWdlOl0pOiBOZXcgaGVscGVyL3Rlc3QgZnVu
Y3Rpb24KKyAgICAgICAgdG8gdHJpZ2dlciB0aGUgc3lzdGVtIHByZXZpZXcgYWN0aW9uLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL0Rvd25sb2FkQ2xpZW50Lm1tOiBVc2UgbmV3IHR5cGUuCisgICAg
ICAgIChXZWJLaXQ6OkRvd25sb2FkQ2xpZW50OjpkaWRTdGFydCk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbTogSW1wbGVtZW50IHRo
ZSBkZWxlZ2F0ZSBzbyB0aGF0CisgICAgICAgIHdlIGNhbiBkZXRlY3QgYW4gYWN0aW9uLiBXaGVu
IGl0IGhhcHBlbnMsIHRlbGwgdGhlIFdlYlBhZ2VQcm94eSB0byBzZW5kIGEgbWVzc2FnZS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oOiBVc2UgU3lzdGVt
UHJldmlld0luZm8gdHlwZS4KKyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eTo6c3lzdGVt
UHJldmlld0Rvd25sb2FkSW5mbyBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJv
eHk6OnN5c3RlbVByZXZpZXdEb3dubG9hZFJlY3QgY29uc3QpOiBEZWxldGVkLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmg6CisgICAgICAgIChXZWJLaXQ6
OlN5c3RlbVByZXZpZXdDb250cm9sbGVyOjpwcmV2aWV3SW5mbyBjb25zdCk6CisKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDogU2VuZCBpdCBvdmVyIHRvIHRoZSBXZWIgUHJv
Y2Vzcy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzeXN0ZW1QcmV2aWV3QWN0aW9u
VHJpZ2dlcmVkIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6IENoZWNrIHRoZSBkZXN0
aW5hdGlvbiBzdGlsbCBleGlzdHMsIGFuZCB0aGVuIHRhbGsKKyAgICAgICAgdG8gdGhlIERvY3Vt
ZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dl
cmVkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE5LTA5LTA2ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVw
cmVjYXRlIGFsbCBXS0Nvb2tpZU1hbmFnZXJSZWYgZnVuY3Rpb25zCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAppbmRleCBjODZhYTk5ZmU2NjVmZGQ0NGEwODE3Y2Q4MDNiYTA3NjIzZTk0NjMyLi44NWI5
ODk4MTU0YzBjZGFjMGJkNDEyMzYwMDE3NDhhYmQwNzRlNTYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKQEAgLTgyODcsNCArODI4NywxNCBAQCBNZXNzYWdlUG9ydENoYW5uZWxQcm92aWRlciYg
RG9jdW1lbnQ6Om1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCkKICAgICByZXR1cm4gTWVzc2Fn
ZVBvcnRDaGFubmVsUHJvdmlkZXI6OnNpbmdsZXRvbigpOwogfQogCisjaWYgVVNFKFNZU1RFTV9Q
UkVWSUVXKQordm9pZCBEb2N1bWVudDo6ZGlzcGF0Y2hTeXN0ZW1QcmV2aWV3QWN0aW9uRXZlbnQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIGF1dG8gZXZlbnQgPSBNZXNzYWdlRXZlbnQ6
OmNyZWF0ZShtZXNzYWdlLCBvcmlnaW4oKSk7CisgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2Vz
dHVyZUluZGljYXRvcihQcm9jZXNzaW5nVXNlckdlc3R1cmUsIHRoaXMpOworICAgIGRpc3BhdGNo
V2luZG93RXZlbnQoZXZlbnQsIGRvbVdpbmRvdygpKTsKK30KKyNlbmRpZgorCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODljNWM2ZDJmMjIwOTc3NTBm
NmNjOGM5MTM5NDQ3ZDJkY2VhNDhhNi4uM2MyZWI4NTQ4NWY0NzJkMzc3ZTc2ZWMwZTFmODFlMjJi
ZDFlZGJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTYzNSw3ICs2MzUsNyBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSgpIGNvbnN0
OwogICAgIHZvaWQgY2xlYXJBWE9iamVjdENhY2hlKCk7CiAKLSAgICBPcHRpb25hbDxQYWdlSWRl
bnRpZmllcj4gcGFnZUlEKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8UGFn
ZUlkZW50aWZpZXI+IHBhZ2VJRCgpIGNvbnN0OwogICAgIC8vIHRvIGdldCB2aXN1YWxseSBvcmRl
cmVkIGhlYnJldyBhbmQgYXJhYmljIHBhZ2VzIHJpZ2h0CiAgICAgdm9pZCBzZXRWaXN1YWxseU9y
ZGVyZWQoKTsKICAgICBib29sIHZpc3VhbGx5T3JkZXJlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlz
dWFsbHlPcmRlcmVkOyB9CkBAIC0xNTMyLDYgKzE1MzIsMTAgQEAgcHVibGljOgogCiAgICAgTWVz
c2FnZVBvcnRDaGFubmVsUHJvdmlkZXImIG1lc3NhZ2VQb3J0Q2hhbm5lbFByb3ZpZGVyKCk7CiAK
KyNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkaXNwYXRj
aFN5c3RlbVByZXZpZXdBY3Rpb25FdmVudChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworI2VuZGlm
CisKIHByb3RlY3RlZDoKICAgICBlbnVtIENvbnN0cnVjdGlvbkZsYWdzIHsgU3ludGhlc2l6ZWQg
PSAxLCBOb25SZW5kZXJlZFBsYWNlaG9sZGVyID0gMSA8PCAxIH07CiAgICAgRG9jdW1lbnQoUEFM
OjpTZXNzaW9uSUQsIEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1l
bnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggZDMyYzczOGIzNWFjMzFhYWRkZTMxNTUx
ZjFlMGUwMDc4NjYxMDczNi4uNTM1ZTBkY2YxMzZlMDNmYjE3OTRlOGJhYzY3MWVjZTg5Zjk5MWZl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTQ4Miwx
MSArNDgyLDEzIEBAIHZvaWQgSFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBl
dmVudCkKIAogICAgIFN5c3RlbVByZXZpZXdJbmZvIHN5c3RlbVByZXZpZXdJbmZvOwogI2lmIFVT
RShTWVNURU1fUFJFVklFVykKLSAgICBzeXN0ZW1QcmV2aWV3SW5mby5pc1N5c3RlbVByZXZpZXcg
PSBpc1N5c3RlbVByZXZpZXdMaW5rKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVk
RmVhdHVyZXMoKS5zeXN0ZW1QcmV2aWV3RW5hYmxlZCgpOworICAgIHN5c3RlbVByZXZpZXdJbmZv
LmlzUHJldmlldyA9IGlzU3lzdGVtUHJldmlld0xpbmsoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLnN5c3RlbVByZXZpZXdFbmFibGVkKCk7CiAKLSAgICBpZiAo
c3lzdGVtUHJldmlld0luZm8uaXNTeXN0ZW1QcmV2aWV3KSB7CisgICAgaWYgKHN5c3RlbVByZXZp
ZXdJbmZvLmlzUHJldmlldykgeworICAgICAgICBzeXN0ZW1QcmV2aWV3SW5mby5nbG9iYWxGcmFt
ZUlELmZyYW1lSUQgPSBkb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmNsaWVudCgpLmZyYW1l
SUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pOworICAgICAgICBzeXN0ZW1QcmV2aWV3
SW5mby5nbG9iYWxGcmFtZUlELnBhZ2VJRCA9IGRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVyKCku
Y2xpZW50KCkucGFnZUlEKCkudmFsdWVPcihQYWdlSWRlbnRpZmllciB7IH0pOwogICAgICAgICBp
ZiAoYXV0byogY2hpbGQgPSBmaXJzdEVsZW1lbnRDaGlsZCgpKQotICAgICAgICAgICAgc3lzdGVt
UHJldmlld0luZm8uc3lzdGVtUHJldmlld1JlY3QgPSBjaGlsZC0+Ym91bmRzSW5Sb290Vmlld1Nw
YWNlKCk7CisgICAgICAgICAgICBzeXN0ZW1QcmV2aWV3SW5mby5wcmV2aWV3UmVjdCA9IGNoaWxk
LT5ib3VuZHNJblJvb3RWaWV3U3BhY2UoKTsKICAgICB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRSZXF1ZXN0LmgKaW5kZXggMWQ4MWZlNDdhMzA0MThiOTIyNWQyN2Fi
MWI0OTc3ZDNkY2JmMDY5Ny4uNzlhNGJhMmIwOWIyM2QzYzhkMzdiMTljOTdhOTg5OTlmZWU3NGQ2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZFJlcXVlc3QuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkUmVxdWVzdC5oCkBAIC05MSw4ICs5
MSw4IEBAIHB1YmxpYzoKIAogICAgIEluaXRpYXRlZEJ5TWFpbkZyYW1lIGluaXRpYXRlZEJ5TWFp
bkZyYW1lKCkgY29uc3QgeyByZXR1cm4gbV9pbml0aWF0ZWRCeU1haW5GcmFtZTsgfQogCi0gICAg
Ym9vbCBpc1N5c3RlbVByZXZpZXcoKSBjb25zdCB7IHJldHVybiBtX3N5c3RlbVByZXZpZXdJbmZv
LmlzU3lzdGVtUHJldmlldzsgfQotICAgIGNvbnN0IEludFJlY3QmIHN5c3RlbVByZXZpZXdSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9zeXN0ZW1QcmV2aWV3SW5mby5zeXN0ZW1QcmV2aWV3UmVjdDsg
fQorICAgIGJvb2wgaXNTeXN0ZW1QcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gbV9zeXN0ZW1QcmV2
aWV3SW5mby5pc1ByZXZpZXc7IH0KKyAgICBjb25zdCBTeXN0ZW1QcmV2aWV3SW5mbyYgc3lzdGVt
UHJldmlld0luZm8oKSBjb25zdCB7IHJldHVybiBtX3N5c3RlbVByZXZpZXdJbmZvOyB9CiAKICAg
ICB2b2lkIHNldElzUmVxdWVzdEZyb21DbGllbnRPclVzZXJJbnB1dCgpIHsgbV9pc1JlcXVlc3RG
cm9tQ2xpZW50T3JVc2VySW5wdXQgPSB0cnVlOyB9CiAgICAgYm9vbCBpc1JlcXVlc3RGcm9tQ2xp
ZW50T3JVc2VySW5wdXQoKSBjb25zdCB7IHJldHVybiBtX2lzUmVxdWVzdEZyb21DbGllbnRPclVz
ZXJJbnB1dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMDAwODFj
Y2U1Y2Q1MWQwYTVkNDFhMTk1MTMwNTI4NjY0ZDE3Y2Q1OS4uMWZjZTRmYzVmMGZhNGEwMzM3NDk1
YzMwZjIyZTdmMTM5YzdkZGUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CkBAIC0xNDE0LDkgKzE0MTQsOCBAQCB2b2lkIEZyYW1lTG9hZGVyOjpsb2FkVVJMKEZyYW1lTG9h
ZFJlcXVlc3QmJiBmcmFtZUxvYWRSZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHJlZgogICAgIGJvb2wg
aXNSZWRpcmVjdCA9IG1fcXVpY2tSZWRpcmVjdENvbWluZzsKICNpZiBVU0UoU1lTVEVNX1BSRVZJ
RVcpCiAgICAgYm9vbCBpc1N5c3RlbVByZXZpZXcgPSBmcmFtZUxvYWRSZXF1ZXN0LmlzU3lzdGVt
UHJldmlldygpOwotICAgIHJlcXVlc3Quc2V0U3lzdGVtUHJldmlldyhpc1N5c3RlbVByZXZpZXcp
OwogICAgIGlmIChpc1N5c3RlbVByZXZpZXcpCi0gICAgICAgIHJlcXVlc3Quc2V0U3lzdGVtUHJl
dmlld1JlY3QoZnJhbWVMb2FkUmVxdWVzdC5zeXN0ZW1QcmV2aWV3UmVjdCgpKTsKKyAgICAgICAg
cmVxdWVzdC5zZXRTeXN0ZW1QcmV2aWV3SW5mbyhmcmFtZUxvYWRSZXF1ZXN0LnN5c3RlbVByZXZp
ZXdJbmZvKCkpOwogI2VuZGlmCiAgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3Qs
IFdURk1vdmUoYWN0aW9uKSwgbG9ja0hpc3RvcnksIG5ld0xvYWRUeXBlLCBXVEZNb3ZlKGZvcm1T
dGF0ZSksIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCwgZnJhbWVMb2FkUmVxdWVzdC5kb3du
bG9hZEF0dHJpYnV0ZSgpLCBbdGhpcywgaXNSZWRpcmVjdCwgc2FtZVVSTCwgbmV3TG9hZFR5cGUs
IHByb3RlY3RlZEZyYW1lID0gbWFrZVJlZihtX2ZyYW1lKSwgY29tcGxldGlvbkhhbmRsZXIgPSBj
b21wbGV0aW9uSGFuZGxlckNhbGxlci5yZWxlYXNlKCldICgpIG11dGFibGUgewogICAgICAgICBp
ZiAoaXNSZWRpcmVjdCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgK
aW5kZXggN2E0OGJjNjgxZmE2YjFlODllY2ExYjY0ZGQ1MGVhYjQ4YmU1OWEzMC4uNjhlM2JkMGNj
ZmYzNzQ2MDQ0NTM2MjYyMTExY2FkNjA1MTdmOWY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNwcmFnbWEgb25jZQogCisj
aW5jbHVkZSAiR2xvYmFsRnJhbWVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSW50UmVjdC5oIgog
I2luY2x1ZGUgIlByb2Nlc3NJZGVudGlmaWVyLmgiCiAKQEAgLTE4MCwxMCArMTgxLDQxIEBAIGVu
dW0gY2xhc3MgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIDogYm9vbCB7IE5vLCBZZXMgfTsK
IGVudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKIAogc3Ry
dWN0IFN5c3RlbVByZXZpZXdJbmZvIHsKLSAgICBJbnRSZWN0IHN5c3RlbVByZXZpZXdSZWN0Owot
ICAgIGJvb2wgaXNTeXN0ZW1QcmV2aWV3IHsgZmFsc2UgfTsKKyAgICBHbG9iYWxGcmFtZUlkZW50
aWZpZXIgZ2xvYmFsRnJhbWVJRDsKKyAgICBJbnRSZWN0IHByZXZpZXdSZWN0OworICAgIGJvb2wg
aXNQcmV2aWV3IHsgZmFsc2UgfTsKKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQg
ZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0
aWMgT3B0aW9uYWw8U3lzdGVtUHJldmlld0luZm8+IGRlY29kZShEZWNvZGVyJik7CiB9OwogCit0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBTeXN0ZW1QcmV2aWV3SW5mbzo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBnbG9iYWxGcmFtZUlEIDw8
IHByZXZpZXdSZWN0IDw8IGlzUHJldmlldzsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K09wdGlvbmFsPFN5c3RlbVByZXZpZXdJbmZvPiBTeXN0ZW1QcmV2aWV3SW5mbzo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgT3B0aW9uYWw8R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBn
bG9iYWxGcmFtZUlEOworICAgIGRlY29kZXIgPj4gZ2xvYmFsRnJhbWVJRDsKKyAgICBpZiAoIWds
b2JhbEZyYW1lSUQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBPcHRpb25h
bDxJbnRSZWN0PiBwcmV2aWV3UmVjdDsKKyAgICBkZWNvZGVyID4+IHByZXZpZXdSZWN0OworICAg
IGlmICghcHJldmlld1JlY3QpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICBP
cHRpb25hbDxib29sPiBpc1ByZXZpZXc7CisgICAgZGVjb2RlciA+PiBpc1ByZXZpZXc7CisgICAg
aWYgKCFpc1ByZXZpZXcpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisKKyAgICByZXR1
cm4geyB7IFdURk1vdmUoKmdsb2JhbEZyYW1lSUQpLCBXVEZNb3ZlKCpwcmV2aWV3UmVjdCksIFdU
Rk1vdmUoKmlzUHJldmlldykgfSB9OworfQorCiBlbnVtIGNsYXNzIExvYWRDb21wbGV0aW9uVHlw
ZSA6IHVpbnQ4X3QgewogICAgIEZpbmlzaCwKICAgICBDYW5jZWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuY3BwCmluZGV4
IDYxOWYwODQ3NDg1YzFjNWE1NGYzZTM0YzNlNTNhOWZlMGI1MWM0MDQuLjYwZmM5NDUzZmEzODEx
YzYwZWE5ODNjNDM4MzVkYzVjY2YwNDFhZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXF1ZXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RCYXNlLmNwcApAQCAtNjAzLDIyICs2
MDMsMTcgQEAgdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRIVFRQSGVhZGVyRmllbGRzKEhU
VFBIZWFkZXJNYXAgaGVhZGVyRmllbGRzKQogI2lmIFVTRShTWVNURU1fUFJFVklFVykKIGJvb2wg
UmVzb3VyY2VSZXF1ZXN0QmFzZTo6aXNTeXN0ZW1QcmV2aWV3KCkgY29uc3QKIHsKLSAgICByZXR1
cm4gbV9pc1N5c3RlbVByZXZpZXc7CisgICAgcmV0dXJuIG1fc3lzdGVtUHJldmlld0luZm8uaGFz
VmFsdWUoKTsKIH0KIAotdm9pZCBSZXNvdXJjZVJlcXVlc3RCYXNlOjpzZXRTeXN0ZW1QcmV2aWV3
KGJvb2wgcykKK1N5c3RlbVByZXZpZXdJbmZvIFJlc291cmNlUmVxdWVzdEJhc2U6OnN5c3RlbVBy
ZXZpZXdJbmZvKCkgY29uc3QKIHsKLSAgICBtX2lzU3lzdGVtUHJldmlldyA9IHM7CisgICAgcmV0
dXJuIG1fc3lzdGVtUHJldmlld0luZm8udmFsdWVPcihTeXN0ZW1QcmV2aWV3SW5mbyB7IH0pOwog
fQogCi1jb25zdCBJbnRSZWN0JiBSZXNvdXJjZVJlcXVlc3RCYXNlOjpzeXN0ZW1QcmV2aWV3UmVj
dCgpIGNvbnN0Cit2b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldFN5c3RlbVByZXZpZXdJbmZv
KGNvbnN0IFN5c3RlbVByZXZpZXdJbmZvJiBpbmZvKQogewotICAgIHJldHVybiBtX3N5c3RlbVBy
ZXZpZXdSZWN0OwotfQotCi12b2lkIFJlc291cmNlUmVxdWVzdEJhc2U6OnNldFN5c3RlbVByZXZp
ZXdSZWN0KGNvbnN0IEludFJlY3QmIHJlY3QpCi17Ci0gICAgbV9zeXN0ZW1QcmV2aWV3UmVjdCA9
IHJlY3Q7CisgICAgbV9zeXN0ZW1QcmV2aWV3SW5mbyA9IGluZm87CiB9CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlcXVlc3RC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJh
c2UuaAppbmRleCBkZDQ0NmE4OTBjZGI5ZGNlYTc3NzhiMWJjMjgxNTVhZjZmYjZjMDc5Li4wN2Jk
OWE4OTIzNjFkZThkYjBiNDliMzUzM2VjNTZkMmRiYjUwNWIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVxdWVzdEJhc2UuaApAQCAtMjks
NiArMjksNyBAQAogI2RlZmluZSBSZXNvdXJjZVJlcXVlc3RCYXNlX2gKIAogI2luY2x1ZGUgIkZv
cm1EYXRhLmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkZXJUeXBlcy5oIgogI2luY2x1ZGUgIkhUVFBI
ZWFkZXJNYXAuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2Fk
UHJpb3JpdHkuaCIKQEAgLTE4MSwxMCArMTgyLDkgQEAgcHVibGljOgogCiAjaWYgVVNFKFNZU1RF
TV9QUkVWSUVXKQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNTeXN0ZW1QcmV2aWV3KCkgY29u
c3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTeXN0ZW1QcmV2aWV3KGJvb2wpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgSW50UmVjdCYgc3lzdGVtUHJldmlld1JlY3QoKSBjb25z
dDsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN5c3RlbVByZXZpZXdSZWN0KGNvbnN0IElu
dFJlY3QmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBTeXN0ZW1QcmV2aWV3SW5mbyBzeXN0ZW1QcmV2
aWV3SW5mbygpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3lzdGVtUHJldmll
d0luZm8oY29uc3QgU3lzdGVtUHJldmlld0luZm8mKTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JN
KENPQ09BKQpAQCAtMjQ4LDggKzI0OCw3IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faGlkZGVu
RnJvbUluc3BlY3RvciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2lzVG9wU2l0ZSB7IGZhbHNlIH07
CiAjaWYgVVNFKFNZU1RFTV9QUkVWSUVXKQotICAgIGJvb2wgbV9pc1N5c3RlbVByZXZpZXcgeyBm
YWxzZSB9OwotICAgIEludFJlY3QgbV9zeXN0ZW1QcmV2aWV3UmVjdDsKKyAgICBPcHRpb25hbDxT
eXN0ZW1QcmV2aWV3SW5mbz4gbV9zeXN0ZW1QcmV2aWV3SW5mbzsKICNlbmRpZgogCiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGNiMDI0YzU1MDA0ZDM0NGIy
MTQ5N2RiNTM0ODUwNzcxMGNlNTgyZTIuLjJiMDY5MzkzNTBiZWI0OTI5ZjI3NmZjMDk2MDcwMDBk
YjQ3Yzg4YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTc4LDYgKzc4
LDcgQEAKICNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZ1bGxzY3JlZW5NYW5hZ2VyLmgiCiAj
aW5jbHVkZSAiR0NPYnNlcnZhdGlvbi5oIgpAQCAtMjQ2Nyw2ICsyNDY4LDE4IEBAIGJvb2wgSW50
ZXJuYWxzOjppc0RvY3VtZW50QWxpdmUodWludDY0X3QgZG9jdW1lbnRJZGVudGlmaWVyKSBjb25z
dAogICAgIHJldHVybiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzTWFwKCkuY29udGFpbnMobWFrZU9i
amVjdElkZW50aWZpZXI8RG9jdW1lbnRJZGVudGlmaWVyVHlwZT4oZG9jdW1lbnRJZGVudGlmaWVy
KSk7CiB9CiAKK3VpbnQ2NF90IEludGVybmFsczo6ZnJhbWVJZGVudGlmaWVyKGNvbnN0IERvY3Vt
ZW50JiBkb2N1bWVudCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKSkKKyAgICAgICAgcmV0dXJuIHBhZ2UtPm1haW5GcmFtZSgpLmxvYWRlcigpLmNsaWVudCgp
LmZyYW1lSUQoKS52YWx1ZU9yKEZyYW1lSWRlbnRpZmllciB7IH0pLnRvVUludDY0KCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK3VpbnQ2NF90IEludGVybmFsczo6cGFnZUlkZW50aWZpZXIoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZW50KSBjb25zdAoreworICAgIHJldHVybiBkb2N1bWVudC5wYWdlSUQo
KS52YWx1ZU9yKFBhZ2VJZGVudGlmaWVyIHsgfSkudG9VSW50NjQoKTsKK30KKwogYm9vbCBJbnRl
cm5hbHM6OmlzQW55V29ya2xldEdsb2JhbFNjb3BlQWxpdmUoKSBjb25zdAogewogI2lmIEVOQUJM
RShDU1NfUEFJTlRJTkdfQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMmQ3
OGQ4YTM4YTdiNjJkY2JlODc4NjcyZTdlNWZmNmIzZGUxNmJjOS4uM2Y2NGFhMzMwNjRkODEzZDIy
ODRkZDEyOTlhYWE0NWY0YTRhNWVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBA
IC00MDcsNiArNDA3LDkgQEAgcHVibGljOgogICAgIHVpbnQ2NF90IGRvY3VtZW50SWRlbnRpZmll
cihjb25zdCBEb2N1bWVudCYpIGNvbnN0OwogICAgIGJvb2wgaXNEb2N1bWVudEFsaXZlKHVpbnQ2
NF90IGRvY3VtZW50SWRlbnRpZmllcikgY29uc3Q7CiAKKyAgICB1aW50NjRfdCBmcmFtZUlkZW50
aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKKyAgICB1aW50NjRfdCBwYWdlSWRlbnRpZmll
cihjb25zdCBEb2N1bWVudCYpIGNvbnN0OworCiAgICAgYm9vbCBpc0FueVdvcmtsZXRHbG9iYWxT
Y29wZUFsaXZlKCkgY29uc3Q7CiAKICAgICBTdHJpbmcgc2VydmljZVdvcmtlckNsaWVudElkZW50
aWZpZXIoY29uc3QgRG9jdW1lbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAppbmRleCAzMWVmMWRlY2VmY2QwMTliMWEwYjFhYzkyNjMyMDVjNTQ2ODk5ZmUyLi4zNTk1
MjAzNTAzNzcyMzZlM2JlY2M3OTBkOTE0M2UzZDg1MWE3Mzg4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC03MTUsNiArNzE1LDkgQEAgZW51bSBDb21wb3NpdGluZ1BvbGlj
eSB7CiAgICAgdW5zaWduZWQgbG9uZyBsb25nIGRvY3VtZW50SWRlbnRpZmllcihEb2N1bWVudCBk
b2N1bWVudCk7CiAgICAgYm9vbGVhbiBpc0RvY3VtZW50QWxpdmUodW5zaWduZWQgbG9uZyBsb25n
IGRvY3VtZW50SWRlbnRpZmllcik7CiAKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgZnJhbWVJZGVu
dGlmaWVyKERvY3VtZW50IGRvY3VtZW50KTsKKyAgICB1bnNpZ25lZCBsb25nIGxvbmcgcGFnZUlk
ZW50aWZpZXIoRG9jdW1lbnQgZG9jdW1lbnQpOworCiAgICAgYm9vbGVhbiBpc0FueVdvcmtsZXRH
bG9iYWxTY29wZUFsaXZlKCk7CiAKICAgICBET01TdHJpbmcgc2VydmljZVdvcmtlckNsaWVudElk
ZW50aWZpZXIoRG9jdW1lbnQgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggNTZhY2I2NWNjYWJjNTVlODM1NjA1NGNmNGMyMjYyOTI2NTlhYzRi
MS4uZWM0MGQ0MzEzZWQzNDUwYzFlMTBmZmRkNzFiMjA2Yzg0MjZkZmM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC00NjcsNiArNDY3LDcgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJv
bXB0V2FzU2hvd24nOiBbJzxXZWJDb3JlL0RvY3VtZW50U3RvcmFnZUFjY2Vzcy5oPiddLAogICAg
ICAgICAnV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQnOiBbJzxXZWJDb3JlL0RvY3Vt
ZW50U3RvcmFnZUFjY2Vzcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6U3VwcG9ydGVkUGx1Z2lu
SWRlbnRpZmllcic6IFsnPFdlYkNvcmUvUGx1Z2luRGF0YS5oPiddLAorICAgICAgICAnV2ViQ29y
ZTo6U3lzdGVtUHJldmlld0luZm8nOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3REYXRhJzogWyc8V2ViQ29yZS9U
ZXh0Q2hlY2tpbmcuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRleHRDaGVja2luZ1Jlc3VsdCc6
IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlRl
eHRDaGVja2luZ1R5cGUnOiBbJzxXZWJDb3JlL1RleHRDaGVja2luZy5oPiddLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggOTc0YjUyYjU3
NTAzYTY1YzJjODE2YTgxZmU4NDczODQxNDM2NWRjMC4uMjczNTYxNzUzZDBmYmQzYTRhOWY1NWQ1
MThjNzJkYzRhYmIxYjg1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwCkBAIC0xMjI0LDcgKzEyMjQsNyBAQCB2b2lkIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VSZXF1ZXN0Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFJlc291cmNl
UmVxdQogI2lmIFVTRShTWVNURU1fUFJFVklFVykKICAgICBpZiAocmVzb3VyY2VSZXF1ZXN0Lmlz
U3lzdGVtUHJldmlldygpKSB7CiAgICAgICAgIGVuY29kZXIgPDwgdHJ1ZTsKLSAgICAgICAgZW5j
b2RlciA8PCByZXNvdXJjZVJlcXVlc3Quc3lzdGVtUHJldmlld1JlY3QoKTsKKyAgICAgICAgZW5j
b2RlciA8PCByZXNvdXJjZVJlcXVlc3Quc3lzdGVtUHJldmlld0luZm8oKTsKICAgICB9IGVsc2UK
ICAgICAgICAgZW5jb2RlciA8PCBmYWxzZTsKICNlbmRpZgpAQCAtMTI1NCwxMyArMTI1NCwxMiBA
QCBib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1ZXN0Pjo6ZGVjb2RlKERlY29kZXImIGRl
Y29kZXIsIFJlc291cmNlUmVxdWVzdCYgcgogICAgIGJvb2wgaXNTeXN0ZW1QcmV2aWV3OwogICAg
IGlmICghZGVjb2Rlci5kZWNvZGUoaXNTeXN0ZW1QcmV2aWV3KSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHJlc291cmNlUmVxdWVzdC5zZXRTeXN0ZW1QcmV2aWV3KGlzU3lzdGVtUHJldmll
dyk7CiAKICAgICBpZiAoaXNTeXN0ZW1QcmV2aWV3KSB7Ci0gICAgICAgIEludFJlY3Qgc3lzdGVt
UHJldmlld1JlY3Q7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3lzdGVtUHJldmlld1Jl
Y3QpKQorICAgICAgICBTeXN0ZW1QcmV2aWV3SW5mbyBzeXN0ZW1QcmV2aWV3SW5mbzsKKyAgICAg
ICAgaWYgKCFkZWNvZGVyLmRlY29kZShzeXN0ZW1QcmV2aWV3SW5mbykpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRTeXN0ZW1QcmV2aWV3UmVj
dChzeXN0ZW1QcmV2aWV3UmVjdCk7CisgICAgICAgIHJlc291cmNlUmVxdWVzdC5zZXRTeXN0ZW1Q
cmV2aWV3SW5mbyhzeXN0ZW1QcmV2aWV3SW5mbyk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDhmYTlmODY0
NDk3Y2U4ZWVmZjBhYjY3NzNhMDZmNGM3MDhiMzBmYzguLmM3NTlmZWU5YzgzNzEyNGQ2MmY2N2Yy
MmZjYWQxZWQyMjNlOTJiZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQpAQCAtNzQ0Miw4ICs3NDQyLDIwIEBAIHN0YXRpYyBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bihVSVNlCiAgICAgV2ViS2l0OjpVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCku
ZGVueU5leHRVc2VyTWVkaWFSZXF1ZXN0KCk7CiAjZW5kaWYKIH0KLUBlbmQKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCistICh2b2lkKV90cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlvbk9uRnJh
bWU6KHVpbnQ2NF90KWZyYW1lSUQgcGFnZToodWludDY0X3QpcGFnZUlECit7CisjaWYgVVNFKFNZ
U1RFTV9QUkVWSUVXKQorICAgIGlmIChfcGFnZSkgeworICAgICAgICBpZiAoYXV0byogcHJldmll
d0NvbnRyb2xsZXIgPSBfcGFnZS0+c3lzdGVtUHJldmlld0NvbnRyb2xsZXIoKSkKKyAgICAgICAg
ICAgIHByZXZpZXdDb250cm9sbGVyLT50cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlvbldpdGhUYXJn
ZXQoZnJhbWVJRCwgcGFnZUlEKTsKKyAgICB9CisjZW5kaWYKK30KKyNlbmRpZgorCitAZW5kCiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCmluZGV4IGJkNWViN2ZjNTI2MzAwN2YyMDA2M2Q2ODFiMjM4MTkzZWIwMGMzYjcuLmE5MDkz
MzE4NTM1ZDljNDI3MDVjMDMzOGI4OTJkOTVmMmQzYWJhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNTA1LDYg
KzUwNSw4IEBAIHR5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tSZWN0RWRnZSkgewog
LSAodm9pZClfYWNjZXNzaWJpbGl0eUNsZWFyU2VsZWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDExLjMpKTsKIC0gKFVJVmlldyAqKV9mdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3IFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEyLjApKTsKIAorLSAodm9pZClfdHJpZ2dlclN5c3RlbVByZXZpZXdBY3Rp
b25PbkZyYW1lOih1aW50NjRfdClmcmFtZUlEIHBhZ2U6KHVpbnQ2NF90KXBhZ2VJRCBXS19BUElf
QVZBSUxBQkxFKGlvcygxMy4wKSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfY29udGVudFZpZXdJc0ZpcnN0UmVzcG9uZGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEy
LjIpKTsKICNlbHNlCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvRG93bmxvYWRDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENsaWVudC5tbQppbmRleCAzNmVkZTcyNzVhZjM3OWM3ZTdk
ZWUwMTYyYmQzMGE2MTZmMGU0NjY1Li5iMzBkN2M2NmQ1OWJmZmZjZjEzOGVkNTU3NDYxOTZmMGI0
Mjc1M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9h
ZENsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Eb3dubG9hZENs
aWVudC5tbQpAQCAtNzEsNyArNzEsNyBAQCB2b2lkIERvd25sb2FkQ2xpZW50OjpkaWRTdGFydChX
ZWJQcm9jZXNzUG9vbCYsIERvd25sb2FkUHJveHkmIGRvd25sb2FkUHJveHkpCiAgICAgaWYgKGRv
d25sb2FkUHJveHkuaXNTeXN0ZW1QcmV2aWV3RG93bmxvYWQoKSkgewogICAgICAgICBpZiAoYXV0
byogd2ViUGFnZSA9IGRvd25sb2FkUHJveHkub3JpZ2luYXRpbmdQYWdlKCkpIHsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBVcGRhdGUgdGhlIE1JTUUtdHlwZSBvbmNlIGl0IGlzIGtub3duIGluIHRo
ZSBSZXNvdXJjZVJlc3BvbnNlLgotICAgICAgICAgICAgd2ViUGFnZS0+c3lzdGVtUHJldmlld0Nv
bnRyb2xsZXIoKS0+c3RhcnQoVVJMKFVSTCgpLCB3ZWJQYWdlLT5jdXJyZW50VVJMKCkpLCAiYXBw
bGljYXRpb24vb2N0ZXQtc3RyZWFtIl9zLCBkb3dubG9hZFByb3h5LnN5c3RlbVByZXZpZXdEb3du
bG9hZFJlY3QoKSk7CisgICAgICAgICAgICB3ZWJQYWdlLT5zeXN0ZW1QcmV2aWV3Q29udHJvbGxl
cigpLT5zdGFydChVUkwoVVJMKCksIHdlYlBhZ2UtPmN1cnJlbnRVUkwoKSksICJhcHBsaWNhdGlv
bi9vY3RldC1zdHJlYW0iX3MsIGRvd25sb2FkUHJveHkuc3lzdGVtUHJldmlld0Rvd25sb2FkSW5m
bygpKTsKICAgICAgICAgfQogICAgICAgICB0YWtlQWN0aXZpdHlUb2tlbihkb3dubG9hZFByb3h5
KTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1N5c3RlbVByZXZpZXdDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOGUwMWNj
NWZjMzQ4MzA5MGQ3NGNmMzJkNTQwMWM0YTliNjJmMWUzNy4uMjlkZGU2ZmEyZjg1YWZmMmZkMmRi
YmEyMDRmZTI1MDVhYmM2ZmEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvU3lzdGVtUHJldmlld0NvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlckNvY29hLm1tCkBAIC00NSw5
ICs0NSwxMyBAQCBTT0ZUX0xJTktfUFJJVkFURV9GUkFNRVdPUksoQVJLaXQpOwogU09GVF9MSU5L
X0NMQVNTKEFSS2l0LCBBUlF1aWNrTG9va1ByZXZpZXdJdGVtKTsKIFNPRlRfTElOS19QUklWQVRF
X0ZSQU1FV09SSyhBc3NldFZpZXdlcik7CiBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFS
UXVpY2tMb29rV2ViS2l0SXRlbSk7Ci0jZW5kaWYKIAorQHByb3RvY29sIEFSUXVpY2tMb29rV2Vi
S2l0SXRlbURlbGVnYXRlOworCitAaW50ZXJmYWNlIF9XS1ByZXZpZXdDb250cm9sbGVyRGF0YVNv
dXJjZSA6IE5TT2JqZWN0IDxRTFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSwgQVJRdWlja0xv
b2tXZWJLaXRJdGVtRGVsZWdhdGU+IHsKKyNlbHNlCiBAaW50ZXJmYWNlIF9XS1ByZXZpZXdDb250
cm9sbGVyRGF0YVNvdXJjZSA6IE5TT2JqZWN0IDxRTFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJj
ZT4geworI2VuZGlmCiAgICAgUmV0YWluUHRyPE5TSXRlbVByb3ZpZGVyPiBfaXRlbVByb3ZpZGVy
OwogI2lmIEhBVkUoQVJLSVRfUVVJQ0tfTE9PS19QUkVWSUVXX0lURU0pCiAgICAgUmV0YWluUHRy
PEFSUXVpY2tMb29rV2ViS2l0SXRlbT4gX2l0ZW07CkBAIC01Niw2ICs2MCw3IEBAIFNPRlRfTElO
S19DTEFTUyhBc3NldFZpZXdlciwgQVJRdWlja0xvb2tXZWJLaXRJdGVtKTsKICNlbmRpZgogICAg
IFVSTCBfb3JpZ2luYXRpbmdQYWdlVVJMOwogICAgIFVSTCBfZG93bmxvYWRlZFVSTDsKKyAgICBX
ZWJLaXQ6OlN5c3RlbVByZXZpZXdDb250cm9sbGVyKiBfcHJldmlld0NvbnRyb2xsZXI7CiB9Owog
CiBAcHJvcGVydHkgKHN0cm9uZykgTlNJdGVtUHJvdmlkZXJDb21wbGV0aW9uSGFuZGxlciBjb21w
bGV0aW9uSGFuZGxlcjsKQEAgLTY1LDExICs3MCwxMiBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRW
aWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0SXRlbSk7CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tQcmV2
aWV3Q29udHJvbGxlckRhdGFTb3VyY2UKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoTUlNRVR5
cGU6KE5TU3RyaW5nKiltaW1lVHlwZSBvcmlnaW5hdGluZ1BhZ2VVUkw6KFVSTCl1cmwKKy0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFN5c3RlbVByZXZpZXdDb250cm9sbGVyOihXZWJLaXQ6OlN5c3Rl
bVByZXZpZXdDb250cm9sbGVyKilwcmV2aWV3Q29udHJvbGxlciBNSU1FVHlwZTooTlNTdHJpbmcq
KW1pbWVUeXBlIG9yaWdpbmF0aW5nUGFnZVVSTDooVVJMKXVybAogewogICAgIGlmICghKHNlbGYg
PSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCisgICAgX3ByZXZpZXdDb250
cm9sbGVyID0gcHJldmlld0NvbnRyb2xsZXI7CiAgICAgX29yaWdpbmF0aW5nUGFnZVVSTCA9IHVy
bDsKICAgICBfbWltZVR5cGUgPSBbbWltZVR5cGUgY29weV07CiAKQEAgLTEwMyw2ICsxMDksNyBA
QCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFSUXVpY2tMb29rV2ViS2l0SXRlbSk7CiAg
ICAgcHJldmlld0l0ZW0uY2Fub25pY2FsV2ViUGFnZVVSTCA9IF9vcmlnaW5hdGluZ1BhZ2VVUkw7
CiAKICAgICBfaXRlbSA9IFthbGxvY0FSUXVpY2tMb29rV2ViS2l0SXRlbUluc3RhbmNlKCkgaW5p
dFdpdGhQcmV2aWV3SXRlbVByb3ZpZGVyOl9pdGVtUHJvdmlkZXIuZ2V0KCkgY29udGVudFR5cGU6
Y29udGVudFR5cGUgcHJldmlld1RpdGxlOkAiUHJldmlldyIgZmlsZVNpemU6QCgwKSBwcmV2aWV3
SXRlbTpwcmV2aWV3SXRlbV07CisgICAgW19pdGVtIHNldERlbGVnYXRlOnNlbGZdOwogI2Vsc2UK
ICAgICBfaXRlbSA9IGFkb3B0TlMoW1BBTDo6YWxsb2NRTEl0ZW1JbnN0YW5jZSgpIGluaXRXaXRo
UHJldmlld0l0ZW1Qcm92aWRlcjpfaXRlbVByb3ZpZGVyLmdldCgpIGNvbnRlbnRUeXBlOmNvbnRl
bnRUeXBlIHByZXZpZXdUaXRsZTpAIlByZXZpZXciIGZpbGVTaXplOkAoMCldKTsKICNlbmRpZgpA
QCAtMTQyLDYgKzE0OSwxNyBAQCBTT0ZUX0xJTktfQ0xBU1MoQXNzZXRWaWV3ZXIsIEFSUXVpY2tM
b29rV2ViS2l0SXRlbSk7CiAgICAgICAgIHNlbGYuY29tcGxldGlvbkhhbmRsZXIobmlsLCBlcnJv
cik7CiB9CiAKKyNpZiBIQVZFKEFSS0lUX1FVSUNLX0xPT0tfUFJFVklFV19JVEVNKQorLSAodm9p
ZClwcmV2aWV3SXRlbTooQVJRdWlja0xvb2tXZWJLaXRJdGVtICopcHJldmlld0l0ZW0gZGlkUmVj
ZWl2ZU1lc3NhZ2U6KE5TRGljdGlvbmFyeSAqKW1lc3NhZ2UKK3sKKyAgICBpZiAoIV9wcmV2aWV3
Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKFtbbWVzc2FnZVtAImNhbGxU
b0FjdGlvbiJdIHN0cmluZ1ZhbHVlXSBpc0VxdWFsVG9TdHJpbmc6QCJidXR0b25UYXBwZWQiXSkK
KyAgICAgICAgX3ByZXZpZXdDb250cm9sbGVyLT50cmlnZ2VyU3lzdGVtUHJldmlld0FjdGlvbigp
OworfQorI2VuZGlmCisKIEBlbmQKIAogQGludGVyZmFjZSBfV0tQcmV2aWV3Q29udHJvbGxlckRl
bGVnYXRlIDogTlNPYmplY3QgPFFMUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZT4gewpAQCAtMTUy
LDEzICsxNzAsMTIgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dl
YktpdEl0ZW0pOwogCiBAaW1wbGVtZW50YXRpb24gX1dLUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0
ZQogCi0tIChpZClpbml0V2l0aFN5c3RlbVByZXZpZXdDb250cm9sbGVyOihXZWJLaXQ6OlN5c3Rl
bVByZXZpZXdDb250cm9sbGVyKilwcmV2aWV3Q29udHJvbGxlciBmcm9tUmVjdDooV2ViQ29yZTo6
SW50UmVjdClyZWN0CistIChpZClpbml0V2l0aFN5c3RlbVByZXZpZXdDb250cm9sbGVyOihXZWJL
aXQ6OlN5c3RlbVByZXZpZXdDb250cm9sbGVyKilwcmV2aWV3Q29udHJvbGxlcgogewogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgX3By
ZXZpZXdDb250cm9sbGVyID0gcHJldmlld0NvbnRyb2xsZXI7Ci0gICAgX2xpbmtSZWN0ID0gcmVj
dDsKICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMTg1LDE2ICsyMDIsMTUgQEAgU09GVF9MSU5L
X0NMQVNTKEFzc2V0Vmlld2VyLCBBUlF1aWNrTG9va1dlYktpdEl0ZW0pOwogCiAgICAgKnZpZXcg
PSBwcmVzZW50aW5nVmlld0NvbnRyb2xsZXIudmlldzsKIAotICAgIGlmIChfbGlua1JlY3QuaXNF
bXB0eSgpKSB7Ci0gICAgICAgIENHUmVjdCBmcmFtZTsKLSAgICAgICAgZnJhbWUuc2l6ZS53aWR0
aCA9IHByZXNlbnRpbmdWaWV3Q29udHJvbGxlci52aWV3LmZyYW1lLnNpemUud2lkdGggLyAyLjA7
Ci0gICAgICAgIGZyYW1lLnNpemUuaGVpZ2h0ID0gcHJlc2VudGluZ1ZpZXdDb250cm9sbGVyLnZp
ZXcuZnJhbWUuc2l6ZS5oZWlnaHQgLyAyLjA7Ci0gICAgICAgIGZyYW1lLm9yaWdpbi54ID0gKHBy
ZXNlbnRpbmdWaWV3Q29udHJvbGxlci52aWV3LmZyYW1lLnNpemUud2lkdGggLSBmcmFtZS5zaXpl
LndpZHRoKSAvIDIuMDsKLSAgICAgICAgZnJhbWUub3JpZ2luLnkgPSAocHJlc2VudGluZ1ZpZXdD
b250cm9sbGVyLnZpZXcuZnJhbWUuc2l6ZS5oZWlnaHQgLSBmcmFtZS5zaXplLmhlaWdodCkgLyAy
LjA7Ci0gICAgICAgIHJldHVybiBmcmFtZTsKLSAgICB9CisgICAgaWYgKCFfcHJldmlld0NvbnRy
b2xsZXItPnByZXZpZXdJbmZvKCkucHJldmlld1JlY3QuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gX3ByZXZpZXdDb250cm9sbGVyLT5wYWdlKCkuc3luY1Jvb3RWaWV3VG9TY3JlZW4oX3ByZXZp
ZXdDb250cm9sbGVyLT5wcmV2aWV3SW5mbygpLnByZXZpZXdSZWN0KTsKIAotICAgIHJldHVybiBf
cHJldmlld0NvbnRyb2xsZXItPnBhZ2UoKS5zeW5jUm9vdFZpZXdUb1NjcmVlbihfbGlua1JlY3Qp
OworICAgIENHUmVjdCBmcmFtZTsKKyAgICBmcmFtZS5zaXplLndpZHRoID0gKCp2aWV3KS5mcmFt
ZS5zaXplLndpZHRoIC8gMi4wOworICAgIGZyYW1lLnNpemUuaGVpZ2h0ID0gKCp2aWV3KS5mcmFt
ZS5zaXplLmhlaWdodCAvIDIuMDsKKyAgICBmcmFtZS5vcmlnaW4ueCA9ICgoKnZpZXcpLmZyYW1l
LnNpemUud2lkdGggLSBmcmFtZS5zaXplLndpZHRoKSAvIDIuMDsKKyAgICBmcmFtZS5vcmlnaW4u
eSA9ICgoKnZpZXcpLmZyYW1lLnNpemUuaGVpZ2h0IC0gZnJhbWUuc2l6ZS5oZWlnaHQpIC8gMi4w
OworICAgIHJldHVybiBmcmFtZTsKIH0KIAogLSAoVUlJbWFnZSAqKXByZXZpZXdDb250cm9sbGVy
OihRTFByZXZpZXdDb250cm9sbGVyICopY29udHJvbGxlciB0cmFuc2l0aW9uSW1hZ2VGb3JQcmV2
aWV3SXRlbTooaWQgPFFMUHJldmlld0l0ZW0+KWl0ZW0gY29udGVudFJlY3Q6KENHUmVjdCAqKWNv
bnRlbnRSZWN0CkBAIC0yMTgsNyArMjM0LDcgQEAgU09GVF9MSU5LX0NMQVNTKEFzc2V0Vmlld2Vy
LCBBUlF1aWNrTG9va1dlYktpdEl0ZW0pOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBT
eXN0ZW1QcmV2aWV3Q29udHJvbGxlcjo6c3RhcnQoVVJMIG9yaWdpbmF0aW5nUGFnZVVSTCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZnJvbVJlY3QpCit2
b2lkIFN5c3RlbVByZXZpZXdDb250cm9sbGVyOjpzdGFydChVUkwgb3JpZ2luYXRpbmdQYWdlVVJM
LCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBjb25zdCBXZWJDb3JlOjpTeXN0ZW1QcmV2aWV3SW5m
byYgc3lzdGVtUHJldmlld0luZm8pCiB7CiAgICAgQVNTRVJUKCFtX3FsUHJldmlld0NvbnRyb2xs
ZXIpOwogICAgIGlmIChtX3FsUHJldmlld0NvbnRyb2xsZXIpCkBAIC0yMjksMTIgKzI0NSwxNCBA
QCB2b2lkIFN5c3RlbVByZXZpZXdDb250cm9sbGVyOjpzdGFydChVUkwgb3JpZ2luYXRpbmdQYWdl
VVJMLCBjb25zdCBTdHJpbmcmIG1pbWVUeQogICAgIGlmICghcHJlc2VudGluZ1ZpZXdDb250cm9s
bGVyKQogICAgICAgICByZXR1cm47CiAKKyAgICBtX3N5c3RlbVByZXZpZXdJbmZvID0gc3lzdGVt
UHJldmlld0luZm87CisKICAgICBtX3FsUHJldmlld0NvbnRyb2xsZXIgPSBhZG9wdE5TKFtQQUw6
OmFsbG9jUUxQcmV2aWV3Q29udHJvbGxlckluc3RhbmNlKCkgaW5pdF0pOwogCi0gICAgbV9xbFBy
ZXZpZXdDb250cm9sbGVyRGVsZWdhdGUgPSBhZG9wdE5TKFtbX1dLUHJldmlld0NvbnRyb2xsZXJE
ZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTeXN0ZW1QcmV2aWV3Q29udHJvbGxlcjp0aGlzIGZyb21S
ZWN0OmZyb21SZWN0XSk7CisgICAgbV9xbFByZXZpZXdDb250cm9sbGVyRGVsZWdhdGUgPSBhZG9w
dE5TKFtbX1dLUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTeXN0ZW1Q
cmV2aWV3Q29udHJvbGxlcjp0aGlzXSk7CiAgICAgW21fcWxQcmV2aWV3Q29udHJvbGxlciBzZXRE
ZWxlZ2F0ZTptX3FsUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZS5nZXQoKV07CiAKLSAgICBtX3Fs
UHJldmlld0NvbnRyb2xsZXJEYXRhU291cmNlID0gYWRvcHROUyhbW19XS1ByZXZpZXdDb250cm9s
bGVyRGF0YVNvdXJjZSBhbGxvY10gaW5pdFdpdGhNSU1FVHlwZTptaW1lVHlwZSBvcmlnaW5hdGlu
Z1BhZ2VVUkw6b3JpZ2luYXRpbmdQYWdlVVJMXSk7CisgICAgbV9xbFByZXZpZXdDb250cm9sbGVy
RGF0YVNvdXJjZSA9IGFkb3B0TlMoW1tfV0tQcmV2aWV3Q29udHJvbGxlckRhdGFTb3VyY2UgYWxs
b2NdIGluaXRXaXRoU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6dGhpcyBNSU1FVHlwZTptaW1lVHlw
ZSBvcmlnaW5hdGluZ1BhZ2VVUkw6b3JpZ2luYXRpbmdQYWdlVVJMXSk7CiAgICAgW21fcWxQcmV2
aWV3Q29udHJvbGxlciBzZXREYXRhU291cmNlOm1fcWxQcmV2aWV3Q29udHJvbGxlckRhdGFTb3Vy
Y2UuZ2V0KCldOwogCiAgICAgW3ByZXNlbnRpbmdWaWV3Q29udHJvbGxlciBwcmVzZW50Vmlld0Nv
bnRyb2xsZXI6bV9xbFByZXZpZXdDb250cm9sbGVyLmdldCgpIGFuaW1hdGVkOllFUyBjb21wbGV0
aW9uOm51bGxwdHJdOwpAQCAtMjY4LDYgKzI4NiwxOCBAQCB2b2lkIFN5c3RlbVByZXZpZXdDb250
cm9sbGVyOjpmYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAg
ICBbbV9xbFByZXZpZXdDb250cm9sbGVyRGF0YVNvdXJjZSBmYWlsV2l0aEVycm9yOmVycm9yLm5z
RXJyb3IoKV07CiB9CiAKK3ZvaWQgU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnRyaWdnZXJTeXN0
ZW1QcmV2aWV3QWN0aW9uKCkKK3sKKyAgICBwYWdlKCkuc3lzdGVtUHJldmlld0FjdGlvblRyaWdn
ZXJlZChtX3N5c3RlbVByZXZpZXdJbmZvLCAiX2FwcGxlX2FyX3F1aWNrbG9va19idXR0b25fdGFw
cGVkIik7Cit9CisKK3ZvaWQgU3lzdGVtUHJldmlld0NvbnRyb2xsZXI6OnRyaWdnZXJTeXN0ZW1Q
cmV2aWV3QWN0aW9uV2l0aFRhcmdldCh1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQp
Cit7CisgICAgbV9zeXN0ZW1QcmV2aWV3SW5mby5nbG9iYWxGcmFtZUlELmZyYW1lSUQgPSBtYWtl
T2JqZWN0SWRlbnRpZmllcjxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXJUeXBlPihmcmFtZUlEKTsK
KyAgICBtX3N5c3RlbVByZXZpZXdJbmZvLmdsb2JhbEZyYW1lSUQucGFnZUlEID0gbWFrZU9iamVj
dElkZW50aWZpZXI8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXJUeXBlPihwYWdlSUQpOworICAgIHRy
aWdnZXJTeXN0ZW1QcmV2aWV3QWN0aW9uKCk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAppbmRleCBmMjQw
NDk5NTdhMmU4YzI2ZDk3ZjViNThhZjA2NjE5MzU4ZmJmMjZmLi5hYTFmMzc3ZDc4ZWFiZDQ1OWMw
ODBmNGI5ZWY2NjU2NWFiZDYzMWRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKQEAgLTkxLDcgKzkxLDcgQEAgcHVibGljOgogCiAj
aWYgVVNFKFNZU1RFTV9QUkVWSUVXKQogICAgIGJvb2wgaXNTeXN0ZW1QcmV2aWV3RG93bmxvYWQo
KSBjb25zdCB7IHJldHVybiByZXF1ZXN0KCkuaXNTeXN0ZW1QcmV2aWV3KCk7IH0KLSAgICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBzeXN0ZW1QcmV2aWV3RG93bmxvYWRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gcmVxdWVzdCgpLnN5c3RlbVByZXZpZXdSZWN0KCk7IH0KKyAgICBXZWJDb3JlOjpTeXN0
ZW1QcmV2aWV3SW5mbyBzeXN0ZW1QcmV2aWV3RG93bmxvYWRJbmZvKCkgY29uc3QgeyByZXR1cm4g
cmVxdWVzdCgpLnN5c3RlbVByZXZpZXdJbmZvKCk7IH0KICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3lzdGVtUHJldmlld0NvbnRy
b2xsZXIuaAppbmRleCAyYjkwZTFiODljMGFhNWVlZWFmMDU0ZGU0MjhkZWVkNDBlNjNhOGJkLi5h
MDA0YWUzZDUxNTBiMzA0ZjVjYzY1MjkxZmZiYmIwN2MxOGVlMzc3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9TeXN0ZW1QcmV2aWV3Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1N5c3RlbVByZXZpZXdDb250cm9sbGVyLmgKQEAgLTI3LDYgKzI3
LDcgQEAKIAogI2lmIFVTRShTWVNURU1fUFJFVklFVykKIAorI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAg
LTQ5LDE2ICs1MCwyMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNhblByZXZpZXcoY29uc3QgU3Ry
aW5nJiBtaW1lVHlwZSkgY29uc3Q7CiAKLSAgICB2b2lkIHN0YXJ0KFVSTCBvcmlnaW5hdGluZ1Bh
Z2VVUkwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsK
KyAgICB2b2lkIHN0YXJ0KFVSTCBvcmlnaW5hdGluZ1BhZ2VVUkwsIGNvbnN0IFN0cmluZyYgbWlt
ZVR5cGUsIGNvbnN0IFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvJik7CiAgICAgdm9pZCB1cGRh
dGVQcm9ncmVzcyhmbG9hdCk7CiAgICAgdm9pZCBmaW5pc2goVVJMKTsKICAgICB2b2lkIGNhbmNl
bCgpOwogICAgIHZvaWQgZmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAKICAg
ICBXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiBtX3dlYlBhZ2VQcm94eTsgfQorICAgIGNv
bnN0IFdlYkNvcmU6OlN5c3RlbVByZXZpZXdJbmZvJiBwcmV2aWV3SW5mbygpIGNvbnN0IHsgcmV0
dXJuIG1fc3lzdGVtUHJldmlld0luZm87IH0KKworICAgIHZvaWQgdHJpZ2dlclN5c3RlbVByZXZp
ZXdBY3Rpb24oKTsKKworICAgIC8vIFVzZWQgZm9yIHRlc3Rpbmcgb25seS4KKyAgICB2b2lkIHRy
aWdnZXJTeXN0ZW1QcmV2aWV3QWN0aW9uV2l0aFRhcmdldCh1aW50NjRfdCBmcmFtZUlELCB1aW50
NjRfdCBwYWdlSUQpOwogCiBwcml2YXRlOgogICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlUHJv
eHk7CisgICAgV2ViQ29yZTo6U3lzdGVtUHJldmlld0luZm8gbV9zeXN0ZW1QcmV2aWV3SW5mbzsK
ICNpZiBVU0UoUVVJQ0tfTE9PSykKICAgICBSZXRhaW5QdHI8UUxQcmV2aWV3Q29udHJvbGxlcj4g
bV9xbFByZXZpZXdDb250cm9sbGVyOwogICAgIFJldGFpblB0cjxfV0tQcmV2aWV3Q29udHJvbGxl
ckRlbGVnYXRlPiBtX3FsUHJldmlld0NvbnRyb2xsZXJEZWxlZ2F0ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGZhNzU4ODFiZTZkMjJmNzNmMjZlMzY5MDEw
Y2IzZGM0MmVmNzA3M2QuLjgzNTY5YzhhOWQyNTcwNTFhZDA0NzcwZThkM2IzY2VhNzQ3ZDg4OTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtOTExOSw2ICs5
MTE5LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZW1vdmVEYXRhRGV0ZWN0ZWRMaW5rcyhDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IERhdGFEZXRlCiAKICNlbmRpZgogCisjaWYgVVNFKFNZ
U1RFTV9QUkVWSUVXKQordm9pZCBXZWJQYWdlUHJveHk6OnN5c3RlbVByZXZpZXdBY3Rpb25Ucmln
Z2VyZWQoY29uc3QgV2ViQ29yZTo6U3lzdGVtUHJldmlld0luZm8mIHByZXZpZXdJbmZvLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpIGNvbnN0Cit7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpTeXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKHByZXZpZXdJbmZvLCBtZXNz
YWdlKSwgbV93ZWJQYWdlSUQpOworfQorI2VuZGlmCisKIHZvaWQgV2ViUGFnZVByb3h5OjpkdW1w
QWRDbGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtQcm9jZXNzID0g
bV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLm5ldHdvcmtQcm9jZXNzKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggN2Q1YjU5YzdiYzJlYjc5MmY3YWQwNmI5Yzkz
N2ZlMjIzODExZmE1Zi4uOWVjNWRlMzI2ZjMyMjI3YTMwZDE1NTA4Y2NkZDEzYzBhNjFlZjQ1YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTQ4NSw2ICs0ODUsNyBA
QCBwdWJsaWM6CiAKICNpZiBVU0UoU1lTVEVNX1BSRVZJRVcpCiAgICAgU3lzdGVtUHJldmlld0Nv
bnRyb2xsZXIqIHN5c3RlbVByZXZpZXdDb250cm9sbGVyKCkgeyByZXR1cm4gbV9zeXN0ZW1QcmV2
aWV3Q29udHJvbGxlci5nZXQoKTsgfQorICAgIHZvaWQgc3lzdGVtUHJldmlld0FjdGlvblRyaWdn
ZXJlZChjb25zdCBXZWJDb3JlOjpTeXN0ZW1QcmV2aWV3SW5mbyYsIGNvbnN0IFN0cmluZyYpIGNv
bnN0OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggZWVhMGY0NjFmMjE1OTIyNGUy
MWJlMTQ4YTRjN2Q2Yjk3MjY2MTcwNC4uODFlMmU1M2YyZTcxYzJkODU1NjZiYThlNDcyNzc0YmE3
YjUzNzkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKQEAgLTY2MDUsNiArNjYwNSwyNSBAQCB2b2lkIFdlYlBhZ2U6OnNpbXVsYXRlRGV2aWNlT3Jp
ZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUgYmV0YSwgZG91YmxlCiAjZW5kaWYK
IH0KIAorI2lmIFVTRShTWVNURU1fUFJFVklFVykKK3ZvaWQgV2ViUGFnZTo6c3lzdGVtUHJldmll
d0FjdGlvblRyaWdnZXJlZChXZWJDb3JlOjpTeXN0ZW1QcmV2aWV3SW5mbyBwcmV2aWV3SW5mbywg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQoreworICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKHByZXZpZXdJbmZvLmdsb2JhbEZyYW1lSUQuZnJhbWVJ
RCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byogZG9jdW1l
bnQgPSBmcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkK
KyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBwYWdlSUQgPSBkb2N1bWVudC0+cGFnZUlEKCk7
CisgICAgaWYgKCFwYWdlSUQgfHwgcHJldmlld0luZm8uZ2xvYmFsRnJhbWVJRC5wYWdlSUQgIT0g
cGFnZUlELnZhbHVlKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGRvY3VtZW50LT5kaXNwYXRj
aFN5c3RlbVByZXZpZXdBY3Rpb25FdmVudChtZXNzYWdlKTsKK30KKyNlbmRpZgorCiAjaWYgRU5B
QkxFKFNQRUVDSF9TWU5USEVTSVMpCiB2b2lkIFdlYlBhZ2U6OnNwZWFraW5nRXJyb3JPY2N1cnJl
ZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
ZGYxYzgyNTljOGRkZmJkYTExYWEwNThlZDVjYWUxN2FhMmQxMjU4Ni4uOWI0Njg1OGU3MDU5M2Nj
NjQwMTYxYTM5NWQyOTA1Zjc0MDM5ZWYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTU4Niw2ICsxNTg2LDEwIEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHNpbXVsYXRlRGV2aWNlT3JpZW50YXRpb25DaGFuZ2UoZG91YmxlIGFscGhhLCBkb3VibGUg
YmV0YSwgZG91YmxlIGdhbW1hKTsKIAorI2lmIFVTRShTWVNURU1fUFJFVklFVykKKyAgICB2b2lk
IHN5c3RlbVByZXZpZXdBY3Rpb25UcmlnZ2VyZWQoV2ViQ29yZTo6U3lzdGVtUHJldmlld0luZm8s
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7CisjZW5kaWYKKwogI2lmIEVOQUJMRShTUEVFQ0hfU1lO
VEhFU0lTKQogICAgIHZvaWQgc3BlYWtpbmdFcnJvck9jY3VycmVkKCk7CiAgICAgdm9pZCBib3Vu
ZGFyeUV2ZW50T2NjdXJyZWQoYm9vbCB3b3JkQm91bmRhcnksIHVuc2lnbmVkIGNoYXJJbmRleCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNz
YWdlcy5pbgppbmRleCA1YjllMWUwN2ViN2Q4YjcwYjI1NWFlMmI3MmI2Njk1MDQ4OWNhZTM3Li40
NDhmOTMwNzY3MzRhZmRmOGYxOTk0ZTE0MzRjMTVmNDNmYzI1MDMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTU3
Miw0ICs1NzIsOSBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhf
dCBXZWJLaXQ6OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogI2lmIEVOQUJMRShSRVNPVVJD
RV9MT0FEX1NUQVRJU1RJQ1MpCiAgICAgV2FzTG9hZGVkV2l0aERhdGFUcmFuc2ZlckZyb21QcmV2
YWxlbnRSZXNvdXJjZSgpCiAjZW5kaWYKKworI2lmIFVTRShTWVNURU1fUFJFVklFVykKKyAgICBT
eXN0ZW1QcmV2aWV3QWN0aW9uVHJpZ2dlcmVkKHN0cnVjdCBXZWJDb3JlOjpTeXN0ZW1QcmV2aWV3
SW5mbyBwcmV2aWV3SW5mbywgU3RyaW5nIG1lc3NhZ2UpCisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQyMTRmM2VmMjU3OWFj
OTgyYTE3NzQ0NTdjMWFjMmY4ZDRjZjlkOTQuLmUzOGNlMWY1NWZjY2FjYzA5MDJiMDM5MTFmNjky
YTM3MTIxNTM1ZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOS0wOS0xMSAgRGVhbiBKYWNrc29uICA8ZGlub0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUHJvdmlkZSBhIHByb3RvdHlwZSBmb3IgQVIgUXVpY2tMb29r
IHRvIHRyaWdnZXIgcHJvY2Vzc2luZyBpbiB0aGUgb3JpZ2luYXRpbmcgcGFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMzcxCisgICAgICAgIDxy
ZGFyOi8vNTQ5MDQ3ODE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTmV3IHRlc3QuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3lzdGVtUHJldmlldy5tbToKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL3N5c3RlbS1wcmV2aWV3LXRy
aWdnZXIuaHRtbDogQWRkZWQuCisKIDIwMTktMDktMTAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIHNldHVwLWdpdC1jbG9uZSBpcyB1c2luZyBodHRwIG5vdCBodHRw
cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmYjExZGRlNTI1YjJlYmI0NjQ4MTliNjAzNmJi
MTQ1YzVhMzQyOTg0Li5lZmFmMjQ4YjNhYmMzODUwOWIwY2QyMjhmZWQzNGQ4ZTk5ZTAyMjFlIDEw
MDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc4LDYgKzE3OCw4IEBACiAJCTJFRkYwNkQ3MUQ4
QUYzNEEwMDA0QkIzMCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIz
MCAvKiBXS1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLzsgfTsKIAkJMzEzQzNBMDIyMUU1NjdD
MzAwREJBODZFIC8qIFN5c3RlbVByZXZpZXdCbG9iTmFtaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEzQzNBMDEyMUU1Njc3QTAw
REJBODZFIC8qIFN5c3RlbVByZXZpZXdCbG9iTmFtaW5nLmh0bWwgKi87IH07CiAJCTMxNTExODEw
MURCMUFFNDAwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxNTExODBGMURCMUFERDUwMDE3NjMwNCAvKiBF
eHRlbmRlZENvbG9yLmNwcCAqLzsgfTsKKwkJMzFCNzZFNDMyMzI5OEUyQzAwN0ZFRDJDIC8qIFN5
c3RlbVByZXZpZXcubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzMUI3NkU0MjIzMjk4RTJCMDA3RkVEMkMgLyogU3lzdGVtUHJldmlldy5tbSAqLzsgfTsK
KwkJMzFCNzZFNDUyMzI5OUJEQzAwN0ZFRDJDIC8qIHN5c3RlbS1wcmV2aWV3LXRyaWdnZXIuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
MUI3NkU0NDIzMjk5QkEzMDA3RkVEMkMgLyogc3lzdGVtLXByZXZpZXctdHJpZ2dlci5odG1sICov
OyB9OwogCQkzM0JFNUFGOTEzN0I1QUFFMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0ZXJDcmFzaF9C
dW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzNCRTVBRjgxMzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNw
cCAqLzsgfTsKIAkJMzNEQzg5MTIxNDE5NTVGRTAwNzQ3RUY3IC8qIHNpbXBsZS1pZnJhbWUuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
M0RDODkwRTE0MTk1MzkzMDA3NDdFRjcgLyogc2ltcGxlLWlmcmFtZS5odG1sICovOyB9OwogCQkz
M0RDODkxNDE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJSZWRpcmVjdENh
bGxiYWNrX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzM0RDODkxMzE0MTk1NzlGMDA3NDdFRjcgLyogTG9hZENhbmNlbGVkTm9TZXJ2ZXJS
ZWRpcmVjdENhbGxiYWNrX0J1bmRsZS5jcHAgKi87IH07CkBAIC0xNDAzLDYgKzE0MDUsNyBAQAog
CQkJCTlCRDZEM0EzMUY3QjIxODMwMEJENDk2MiAvKiBzdW5zZXQtaW4tY3VwZXJ0aW5vLTIwMHB4
LnBuZyBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5QkQ2RDNBNDFGN0IyMTgzMDBCRDQ5NjIg
Lyogc3Vuc2V0LWluLWN1cGVydGluby00MDBweC5naWYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJ
CQkJOUJENkQzQTUxRjdCMjE4MzAwQkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tNjAwcHgu
anBnIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTMxQjc2RTQ1MjMyOTlCREMwMDdGRUQyQyAv
KiBzeXN0ZW0tcHJldmlldy10cmlnZ2VyLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
MzEzQzNBMDIyMUU1NjdDMzAwREJBODZFIC8qIFN5c3RlbVByZXZpZXdCbG9iTmFtaW5nLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJQ0Q1OUY1MzUxOUU5MTEwRDAwQ0YxODM1IC8qIHRl
c3QtbXNlLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlDOTU5ODRGNzFFMzZCQ0VGMDAy
QzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAq
LywKQEAgLTE2MzQsNiArMTYzNyw4IEBACiAJCTJFRkYwNkQ2MUQ4QUYzNEEwMDA0QkIzMCAvKiBX
S1dlYlZpZXdDYW5kaWRhdGVUZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLV2ViVmlld0NhbmRpZGF0ZVRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTNDM0EwMTIxRTU2NzdBMDBEQkE4NkUgLyogU3lzdGVtUHJldmlld0Jsb2JO
YW1pbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IFN5c3RlbVByZXZpZXdCbG9i
TmFtaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxNTExODBGMURCMUFE
RDUwMDE3NjMwNCAvKiBFeHRlbmRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEV4dGVuZGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkzMUI3NkU0MjIzMjk4RTJCMDA3RkVEMkMgLyogU3lzdGVtUHJldmlldy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFN5c3RlbVByZXZpZXcubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTMxQjc2RTQ0MjMyOTlCQTMwMDdGRUQyQyAvKiBzeXN0
ZW0tcHJldmlldy10cmlnZ2VyLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAic3lzdGVtLXByZXZpZXctdHJpZ2dl
ci5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzMzQjlDRTExMjc3RjIzMTAw
RkVGQ0UzIC8qIFByZXZlbnRFbXB0eVVzZXJBZ2VudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBQcmV2ZW50RW1wdHlVc2VyQWdlbnQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkzM0JFNUFGNDEzN0I1QTZDMDA3MDU4MTMgLyogTW91c2VNb3ZlQWZ0
ZXJDcmFzaC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNb3VzZU1v
dmVBZnRlckNyYXNoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzNCRTVBRjgx
MzdCNUFBRTAwNzA1ODEzIC8qIE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vdXNlTW92ZUFmdGVyQ3Jhc2hfQnVuZGxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4NjcsNiArMjg3Miw3IEBACiAJ
CQkJNDE0QUQ2ODUyMjg1RDFCMDAwNzc3RjJEIC8qIFN0b3JhZ2VRdW90YS5tbSAqLywKIAkJCQk1
MTVCRTE3MDFENDI4QkQxMDBERDdDNjggLyogU3RvcmVCbG9iVGhlbkRlbGV0ZS5tbSAqLywKIAkJ
CQkxQzczNEI1MjIwNzg4QzQ4MDBGNDMwRUEgLyogU3lzdGVtQ29sb3JzLm1tICovLAorCQkJCTMx
Qjc2RTQyMjMyOThFMkIwMDdGRUQyQyAvKiBTeXN0ZW1QcmV2aWV3Lm1tICovLAogCQkJCTJENzAw
NTk1MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gKi8sCiAJCQkJNTc3NEFB
NjcyMUZCQkY3ODAwQUYyQTFCIC8qIFRlc3RTT0F1dGhvcml6YXRpb24ubW0gKi8sCiAJCQkJRjRD
RDc0QzcyMEZEQjQ5NjAwREUzNzk0IC8qIFRlc3RVUkxTY2hlbWVIYW5kbGVyLmggKi8sCkBAIC0z
MzIzLDYgKzMzMjksNyBAQAogCQkJCTlCRDZEM0EwMUY3QjIwMjAwMEJENDk2MiAvKiBzdW5zZXQt
aW4tY3VwZXJ0aW5vLTIwMHB4LnBuZyAqLywKIAkJCQk5QkQ2RDM5RjFGN0IyMDIwMDBCRDQ5NjIg
Lyogc3Vuc2V0LWluLWN1cGVydGluby00MDBweC5naWYgKi8sCiAJCQkJOUJENkQzOUUxRjdCMjAx
RTAwQkQ0OTYyIC8qIHN1bnNldC1pbi1jdXBlcnRpbm8tNjAwcHguanBnICovLAorCQkJCTMxQjc2
RTQ0MjMyOTlCQTMwMDdGRUQyQyAvKiBzeXN0ZW0tcHJldmlldy10cmlnZ2VyLmh0bWwgKi8sCiAJ
CQkJMzEzQzNBMDEyMUU1Njc3QTAwREJBODZFIC8qIFN5c3RlbVByZXZpZXdCbG9iTmFtaW5nLmh0
bWwgKi8sCiAJCQkJMkU5ODk2MTQxRDhGMDkyQjAwNzM5ODkyIC8qIHRleHQtYW5kLXBhc3N3b3Jk
LWlucHV0cy5odG1sICovLAogCQkJCUY0Q0Q3NEM1MjBGREFDRjUwMERFMzc5NCAvKiB0ZXh0LXdp
dGgtYXN5bmMtc2NyaXB0Lmh0bWwgKi8sCkBAIC00NzE1LDYgKzQ3MjIsNyBAQAogCQkJCTQ0MzNB
Mzk2MjA4MDQ0MTQwMDkxRUQ1NyAvKiBTeW5jaHJvbm91c1RpbWVvdXRUZXN0cy5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTdDQ0U3RUE4MUE0MTFBMTkwMDQ0N0M0QyAvKiBTeW50aGV0aWNCYWNraW5n
U2NhbGVGYWN0b3JXaW5kb3cubSBpbiBTb3VyY2VzICovLAogCQkJCTFDNzM0QjUzMjA3ODhDNDgw
MEY0MzBFQSAvKiBTeXN0ZW1Db2xvcnMubW0gaW4gU291cmNlcyAqLywKKwkJCQkzMUI3NkU0MzIz
Mjk4RTJDMDA3RkVEMkMgLyogU3lzdGVtUHJldmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
NzAwNTk2MjFFREEwQzYwMDM0NjNDQiAvKiBUYWJPdXRPZldlYlZpZXcubW0gaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0YxNjFBNDExQUU2MDA0NDdDNEMgLyogVGVybWluYXRlVHdpY2UuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTkxQTQxMUExRDAwNDQ3QzRDIC8qIFRlc3RCcm93c2lu
Z0NvbnRleHRMb2FkRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3lzdGVtUHJldmlldy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvU3lzdGVtUHJldmlldy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kMzA2ODg5ODFkMWUwZjVkNjhjOWMxYjA2NTBjYjA1MmYwYzQ5MTUzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9TeXN0ZW1QcmV2
aWV3Lm1tCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KworI2lmIFBMQVRGT1JNKElPUykgJiYgVVNFKFNZU1RFTV9QUkVWSUVXKQorCisjaW1wb3J0ICJU
ZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKKyNpbXBvcnQgIldLV2ViVmll
d0NvbmZpZ3VyYXRpb25FeHRyYXMuaCIKKyNpbXBvcnQgPFdlYktpdC9XS1ZpZXdQcml2YXRlLmg+
CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dl
YktpdC5oPgorCitzdGF0aWMgYm9vbCBpc0xvYWRlZDsKK3N0YXRpYyBib29sIGlzVHJpZ2dlcmVk
Oworc3RhdGljIHVpbnQ2NF90IGZyYW1lSUQ7CitzdGF0aWMgdWludDY0X3QgcGFnZUlEOworCitA
aW50ZXJmYWNlIFRlc3RTeXN0ZW1QcmV2aWV3VHJpZ2dlcmVkSGFuZGxlciA6IE5TT2JqZWN0IDxX
S1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gVGVzdFN5c3Rl
bVByZXZpZXdUcmlnZ2VyZWRIYW5kbGVyCisKKy0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVy
OihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNl
aXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQoreworICAgIGlmIChb
bWVzc2FnZS5ib2R5W0AibWVzc2FnZSJdIGlzRXF1YWxUb1N0cmluZzpAImxvYWRlZCJdKSB7Cisg
ICAgICAgIGZyYW1lSUQgPSBbbWVzc2FnZS5ib2R5W0AiZnJhbWVJRCJdIHVuc2lnbmVkSW50VmFs
dWVdOworICAgICAgICBwYWdlSUQgPSBbbWVzc2FnZS5ib2R5W0AicGFnZUlEIl0gdW5zaWduZWRJ
bnRWYWx1ZV07CisgICAgICAgIGlzTG9hZGVkID0gdHJ1ZTsKKyAgICB9IGVsc2UgaWYgKFttZXNz
YWdlLmJvZHlbQCJtZXNzYWdlIl0gaXNFcXVhbFRvU3RyaW5nOkAidHJpZ2dlcmVkIl0pIHsKKyAg
ICAgICAgRVhQRUNUX1RSVUUoW21lc3NhZ2UuYm9keVtAImFjdGlvbiJdIGlzRXF1YWxUb1N0cmlu
ZzpAIl9hcHBsZV9hcl9xdWlja2xvb2tfYnV0dG9uX3RhcHBlZCJdKTsKKyAgICAgICAgaXNUcmln
Z2VyZWQgPSB0cnVlOworICAgIH0KK30KKworQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQ
SSB7CisKK1RFU1QoV2ViS2l0LCBTeXN0ZW1QcmV2aWV3VHJpZ2dlcmVkKQoreworICAgIGF1dG8g
bWVzc2FnZUhhbmRsZXIgPSBhZG9wdE5TKFtbVGVzdFN5c3RlbVByZXZpZXdUcmlnZ2VyZWRIYW5k
bGVyIGFsbG9jXSBpbml0XSk7CisKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25maWd1
cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldpdGhU
ZXN0UGx1Z0luQ2xhc3NOYW1lOkAiV2ViUHJvY2Vzc1BsdWdJbldpdGhJbnRlcm5hbHMiXTsKKyAg
ICBbY29uZmlndXJhdGlvbi51c2VyQ29udGVudENvbnRyb2xsZXIgYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInRlc3RTeXN0ZW1QcmV2aWV3Il07CisK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpDR1JlY3RaZXJvIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOworICAgIFt3
ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInN5c3RlbS1wcmV2aWV3LXRyaWdnZXIiIHdp
dGhFeHRlbnNpb246QCJodG1sIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXV07CisgICAgVXRpbDo6cnVuKCZpc0xvYWRlZCk7CisKKyAgICBbd2ViVmlldyBfdHJpZ2dl
clN5c3RlbVByZXZpZXdBY3Rpb25PbkZyYW1lOmZyYW1lSUQgcGFnZTpwYWdlSURdOworICAgIFV0
aWw6OnJ1bigmaXNUcmlnZ2VyZWQpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Mp
ICYmIFVTRShTWVNURU1fUFJFVklFVykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2Evc3lzdGVtLXByZXZpZXctdHJpZ2dlci5odG1sIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9zeXN0ZW0tcHJldmlldy10cmlnZ2VyLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjZjNWJjNzlhMTNmNmYwMDFkMDM0NWFmZWMwNGQ1MWYxNzcyNzRiNQotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Evc3lz
dGVtLXByZXZpZXctdHJpZ2dlci5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGJvZHk+Cis8c2NyaXB0Pgord2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBm
dW5jdGlvbiAoZXZlbnQpIHsKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
U3lzdGVtUHJldmlldy5wb3N0TWVzc2FnZSh7IG1lc3NhZ2U6ICJ0cmlnZ2VyZWQiLCBhY3Rpb246
IGV2ZW50LmRhdGEgfSk7Cit9KTsKKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBm
dW5jdGlvbiAoKSB7CisgICAgbGV0IHBhZ2VJRCA9IGludGVybmFscy5wYWdlSWRlbnRpZmllcihk
b2N1bWVudCk7CisgICAgbGV0IGZyYW1lSUQgPSBpbnRlcm5hbHMuZnJhbWVJZGVudGlmaWVyKGRv
Y3VtZW50KTsKKyAgICBsZXQgbXNnID0geyBtZXNzYWdlOiAibG9hZGVkIiwgcGFnZUlELCBmcmFt
ZUlEIH07CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdFN5c3RlbVByZXZp
ZXcucG9zdE1lc3NhZ2UobXNnKTsKK30pOworCis8L3NjcmlwdD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>378969</attachid>
            <date>2019-09-17 09:22:39 -0700</date>
            <delta_ts>2019-09-17 09:22:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201371-20190917092238.patch</filename>
            <type>text/plain</type>
            <size>1358</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjQ5OTU3KQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDE5LTA5
LTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KKworICAgICAgICBGb2xs
b3ctdXA6IFByb3ZpZGUgYSBwcm90b3R5cGUgZm9yIEFSIFF1aWNrTG9vayB0byB0cmlnZ2VyIHBy
b2Nlc3NpbmcgaW4gdGhlIG9yaWdpbmF0aW5nIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwMTM3MQorCisgICAgICAgIFVucmV2aWV3ZWQgZm9s
bG93LXVwIGZpeC4KKworICAgICAgICAqIHBhbC9zcGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaDoK
KwogMjAxOS0wOS0xNiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAg
UHJvdmlkZSBhIHByb3RvdHlwZSBmb3IgQVIgUXVpY2tMb29rIHRvIHRyaWdnZXIgcHJvY2Vzc2lu
ZyBpbiB0aGUgb3JpZ2luYXRpbmcgcGFnZQpJbmRleDogU291cmNlL1dlYkNvcmUvUEFML3BhbC9z
cGkvaW9zL1N5c3RlbVByZXZpZXdTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9Q
QUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCShyZXZpc2lvbiAyNDk5NTcpCisrKyBT
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9pb3MvU3lzdGVtUHJldmlld1NQSS5oCSh3b3JraW5n
IGNvcHkpCkBAIC01OSw3ICs1OSw3IEBACiAKIEBpbnRlcmZhY2UgQVJRdWlja0xvb2tXZWJLaXRJ
dGVtIDogUUxJdGVtCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQcmV2aWV3SXRlbVByb3ZpZGVy
OihOU0l0ZW1Qcm92aWRlciAqKWl0ZW1Qcm92aWRlciBjb250ZW50VHlwZTooTlNTdHJpbmcgKilj
b250ZW50VHlwZSBwcmV2aWV3VGl0bGU6KE5TU3RyaW5nICopcHJldmlld1RpdGxlIGZpbGVTaXpl
OihOU051bWJlciAqKWZpbGVTaXplIHByZXZpZXdJdGVtOihBUlF1aWNrTG9va1ByZXZpZXdJdGVt
ICopcHJldmlld0l0ZW07Ci0tICh2b2lkKXNldERlbGVnYXRlOihBUlF1aWNrTG9va1dlYktpdEl0
ZW1EZWxlZ2F0ZSlkZWxlZ2F0ZTsKKy0gKHZvaWQpc2V0RGVsZWdhdGU6KGlkIDxBUlF1aWNrTG9v
a1dlYktpdEl0ZW1EZWxlZ2F0ZT4pZGVsZWdhdGU7CiBAZW5kCiAKICNlbmRpZgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>