<?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>163406</bug_id>
          
          <creation_ts>2016-10-13 15:11:34 -0700</creation_ts>
          <short_desc>Add test and infrastructure for link popover</short_desc>
          <delta_ts>2016-10-17 18:11:11 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1239972</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-13 15:11:34 -0700</bug_when>
    <thetext>Add test and infrastructure for link popover</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239984</commentid>
    <comment_count>1</comment_count>
      <attachid>291526</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-13 15:30:45 -0700</bug_when>
    <thetext>Created attachment 291526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240000</commentid>
    <comment_count>2</comment_count>
      <attachid>291526</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-13 16:15:59 -0700</bug_when>
    <thetext>Comment on attachment 291526
Patch

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

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:26
&gt; +#pragma once

Don&apos;t add this, since Obj-C&apos;s #import already takes care of this.

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:274
&gt; +- (void)didShowForcePressPreview WK_API_AVAILABLE(ios(WK_IOS_TBA));
&gt; +- (void)didDismissForcePressPreview WK_API_AVAILABLE(ios(WK_IOS_TBA));

These should have leading underscores (&quot;_didShowForcePressPreview&quot;)  - the others need fixing too.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3851
&gt; +    if ([userInterfaceItem isEqualToString:@&quot;popoverContents&quot;]) {

Blank line above please.

&gt; Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:125
&gt; +    // Preview form handling

Maybe &quot;Force press preview handling&quot;

&gt; Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:26
&gt; +#pragma once

No need.

&gt; LayoutTests/ChangeLog:9
&gt; +        * fast/events/touch/ios/iphone7/force-press-on-link-expected.txt: Added.
&gt; +        * fast/events/touch/ios/iphone7/force-press-on-link.html: Added.

Does the popover go away when this test is complete?

&gt; LayoutTests/fast/events/touch/ios/iphone7/force-press-on-link.html:96
&gt; +    &lt;a href=&quot;http://www.apple.com&quot;&gt;Link Test&lt;/a&gt;

This should be a local URL, rather than loading a live web site.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241188</commentid>
    <comment_count>3</comment_count>
      <attachid>291882</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-17 15:07:54 -0700</bug_when>
    <thetext>Created attachment 291882
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241191</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 15:10:18 -0700</bug_when>
    <thetext>Attachment 291882 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241194</commentid>
    <comment_count>5</comment_count>
      <attachid>291882</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-17 15:14:15 -0700</bug_when>
    <thetext>Comment on attachment 291882
Patch

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

Good patch, but the test needs tweaking.

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3852
&gt; +    if ([userInterfaceItem isEqualToString:@&quot;popoverContents&quot;]) {

@&quot;popoverContents&quot; seems a bit too generic; I think it should be @&quot;linkPreviewPopoverURL&quot; or something.

&gt; LayoutTests/fast/events/touch/ios/iphone7/force-press-on-link.html:56
&gt; +                    uiController.uiScriptComplete(JSON.stringify(uiController.contentsOfUserInterfaceItem(&apos;popoverContents&apos;)));
&gt; +                    uiController.liftUpAtPoint(20,40,1,function() {});

This is racey. In the uiController.uiScriptComplete() callback, the web process does testRunner.notifyDone(), so may start moving onto the next test.

What you should do instead is have a second testRunner.runUIScript() below, have that fire the uiController.liftUpAtPoint(), and only notifyDone() when that second one completes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241259</commentid>
    <comment_count>6</comment_count>
      <attachid>291900</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-17 17:17:52 -0700</bug_when>
    <thetext>Created attachment 291900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241261</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 17:19:01 -0700</bug_when>
    <thetext>Attachment 291900 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241267</commentid>
    <comment_count>8</comment_count>
      <attachid>291900</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-17 17:28:56 -0700</bug_when>
    <thetext>Comment on attachment 291900
Patch

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

&gt; Source/WebKit2/UIProcess/ios/WKContentViewInteraction.mm:3854
&gt; +        return @{ userInterfaceItem: @{@&quot;pageURL&quot;: url}};

Perferred spacing here would be:
@{ userInterfaceItem: @{ @&quot;pageURL&quot;: url } };

&gt; LayoutTests/fast/events/touch/ios/iphone7/force-press-on-link.html:65
&gt; +                uiController.liftUpAtPoint(20,40,1,function() {

Spaces after commas please.

&gt; LayoutTests/fast/events/touch/ios/iphone7/force-press-on-link.html:87
&gt; +                        document.getElementById(&apos;target&apos;).innerHTML = output;

I think it&apos;s OK to do this before this testRunner.runUIScript() invocation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241275</commentid>
    <comment_count>9</comment_count>
      <attachid>291904</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2016-10-17 17:39:09 -0700</bug_when>
    <thetext>Created attachment 291904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241277</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 17:41:28 -0700</bug_when>
    <thetext>Attachment 291904 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/cocoa/TestRunnerWKWebView.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:0:  Use #pragma once header guard.  [build/header_guard] [5]
Total errors found: 2 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241291</commentid>
    <comment_count>11</comment_count>
      <attachid>291904</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 18:11:07 -0700</bug_when>
    <thetext>Comment on attachment 291904
Patch

Clearing flags on attachment: 291904

Committed r207447: &lt;http://trac.webkit.org/changeset/207447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241292</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-10-17 18:11:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291526</attachid>
            <date>2016-10-13 15:30:45 -0700</date>
            <delta_ts>2016-10-17 15:07:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163406-20161013152719.patch</filename>
            <type>text/plain</type>
            <size>20456</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTEzICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgYW5k
IGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBzZWUgd2hlbiBh
IGxpbmsgcG9wb3ZlciBhcHBlYXJzLCBhbmQgd2hhdCBVUkwgaXQgaGFzIGxvYWRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBk
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmVzZW50
ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcHJldmlld0l0ZW1Db250cm9sbGVyOmRpZERpc21pc3NQcmV2aWV3OmNv
bW1pdHRpbmc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3ByZXZpZXdJdGVtQ29udHJv
bGxlckRpZENhbmNlbFByZXZpZXc6XSk6CisKIDIwMTYtMTAtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIxOTc5NTMpOiBV
c2VyIGdlc3R1cmUgcmVxdWlyZWQgdG8gbG9hZCB2aWRlbyBpbiBpT1MgOS1idWlsdCBhcHBzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkocmV2aXNpb24gMjA3MTY2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1NDIsNiArNDU0MiwxNiBAQCAtICh2
b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24KICAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KIH0KIAorLSAodm9pZClkaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcKK3sKKyAg
ICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClkaWREaXNtaXNz
Rm9yY2VQcmVzc1ByZXZpZXcKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4K
K30KKwogLSAoTlNBcnJheTxVSVZpZXcgKj4gKilfdWlUZXh0U2VsZWN0aW9uUmVjdFZpZXdzCiB7
CiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgdmFsdWVGb3JLZXlQYXRoOkAiaW50ZXJhY3Rpb25B
c3Npc3RhbnQuc2VsZWN0aW9uVmlldy5yYW5nZVZpZXcubV9yZWN0Vmlld3MiXTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCShyZXZpc2lvbiAyMDcxNjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBA
QAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKyNwcmFnbWEgb25j
ZQorCiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Lmg+CiAKICNpZiBXS19BUElfRU5BQkxFRApA
QCAtMjY4LDYgKzI3MCw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0
ZUEKIC0gKHZvaWQpZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlv
biBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpZGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKKwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0FycmF5PFVJVmll
dyAqPiAqX3VpVGV4dFNlbGVjdGlvblJlY3RWaWV3cyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19J
T1NfVEJBKSk7CiAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHJldmlzaW9uIDIwNzE2
NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zODQ4LDYgKzM4NDgsMTAgQEAgLSAoTlNEaWN0aW9u
YXJ5ICopX2NvbnRlbnRzT2ZVc2VySW50ZXJmYQogewogICAgIGlmIChbdXNlckludGVyZmFjZUl0
ZW0gaXNFcXVhbFRvU3RyaW5nOkAiYWN0aW9uU2hlZXQiXSkKICAgICAgICAgcmV0dXJuIEB7IHVz
ZXJJbnRlcmZhY2VJdGVtOiBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGN1cnJlbnRBdmFpbGFibGVB
Y3Rpb25UaXRsZXNdIH07CisgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJp
bmc6QCJwb3BvdmVyQ29udGVudHMiXSkgeworICAgICAgICBOU1N0cmluZyAqdXJsID0gW19wcmV2
aWV3SXRlbUNvbnRyb2xsZXIgcHJldmlld0RhdGFdW1VJUHJldmlld0RhdGFMaW5rXTsKKyAgICAg
ICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAe0AicGFnZVVSTCI6IHVybH19OworICAg
IH0KICAgICAKICAgICByZXR1cm4gbmlsOwogfQpAQCAtNDAyMiw2ICs0MDI2LDggQEAgc3RhdGlj
IE5TU3RyaW5nICpwcmV2aWV3SWRlbnRpZmllckZvckVsZQogLSAoVUlWaWV3Q29udHJvbGxlciAq
KV9wcmVzZW50ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2
aWV3SXRlbUNvbnRyb2xsZXIgKiljb250cm9sbGVyCiB7CiAgICAgaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+IHVpRGVsZWdhdGUgPSBzdGF0aWNfY2FzdDxpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4+
KFtfd2ViVmlldyBVSURlbGVnYXRlXSk7CisgICAgCisgICAgW193ZWJWaWV3IGRpZFNob3dGb3Jj
ZVByZXNzUHJldmlld107CiAKICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gY29udHJvbGxlci5wcmV2
aWV3RGF0YVtVSVByZXZpZXdEYXRhTGlua107CiAgICAgVVJMIGNvcmVUYXJnZXRVUkwgPSB0YXJn
ZXRVUkw7CkBAIC00MTI4LDYgKzQxMzQsOCBAQCAtICh2b2lkKV9wcmV2aWV3SXRlbUNvbnRyb2xs
ZXI6KFVJUHJldmllCiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRpZERp
c21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgY29tbWl0dGluZzpjb21t
aXR0aW5nXTsKICAgICBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KV0pCiAgICAg
ICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0Nv
bnRyb2xsZXI6dmlld0NvbnRyb2xsZXJdOworICAgIAorICAgIFtfd2ViVmlldyBkaWREaXNtaXNz
Rm9yY2VQcmVzc1ByZXZpZXddOwogfQogCiAtIChVSUltYWdlICopX3ByZXNlbnRhdGlvblNuYXBz
aG90Rm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNv
bnRyb2xsZXIKQEAgLTQxNjEsNiArNDE2OSw4IEBAIC0gKE5TQXJyYXkgKilfcHJlc2VudGF0aW9u
UmVjdHNGb3JQcmV2aWUKIC0gKHZvaWQpX3ByZXZpZXdJdGVtQ29udHJvbGxlckRpZENhbmNlbFBy
ZXZpZXc6KFVJUHJldmlld0l0ZW1Db250cm9sbGVyICopY29udHJvbGxlcgogewogICAgIF9oaWdo
bGlnaHRMb25nUHJlc3NDYW5DbGljayA9IE5POworICAgIAorICAgIFtfd2ViVmlldyBkaWREaXNt
aXNzRm9yY2VQcmVzc1ByZXZpZXddOwogfQogCiBAZW5kCkluZGV4OiBUb29scy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMDczMTEpCisrKyBUb29s
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MSBAQAorMjAxNi0xMC0xMyAg
TWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCB0
ZXN0IGFuZCBpbmZyYXN0cnVjdHVyZSBmb3IgbGluayBwb3BvdmVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM0MDYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBmdW5jdGlvbmFsaXR5IHRlc3Qg
Zm9yIGxpbmsgcG9wb3ZlcnMuCisgICAgICAgIENhbiBxdWVyeSBmb3Igd2hhdCBVUkwgaXMgbG9h
ZGVkLCBhbmQgdGhhdCB0aGUgcG9wb3ZlciBoYXMgYXBwZWFyZWQgb3IgaGFzCisgICAgICAgIGJl
ZW4gZGlzbWlzc2VkLgorICAgICAgICBBZGRlZCBhIGxpbmsgcG9wb3ZlciB0ZXN0LgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAg
ICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZFNob3dGb3JjZVByZXNz
UHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdU
Ujo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50ZXJh
Y3Rpb25DYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBU
ZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaDoKKyAgICAg
ICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZFNob3dGb3JjZVBy
ZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpk
aWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0
Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpZERpc21pc3NGb3JjZVByZXNzUHJldmll
d0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNl
dERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3Jp
cHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxi
YWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRGb3JtQ29udHJv
bEludGVyYWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNr
KTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RSdW5uZXJXS1dlYlZpZXcubW06CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgZGVh
bGxvY10pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IGRpZFNob3dGb3JjZVByZXNz
UHJldmlld10pOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IGRpZERpc21pc3NGb3Jj
ZVByZXNzUHJldmlld10pOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVNldERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6
VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmll
d0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNl
dERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayk6IERlbGV0ZWQuCisKIDIwMTYt
MTAtMTMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBEaXNhYmxlIFVSTFBhcnNlciBmb3Igbm9uLVNhZmFyaSBpT1MgYW5kIE1hYyBhcHBzIGZv
ciBub3cKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJ
T1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUv
aW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtMTczLDYgKzE3
MywxNCBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRTCiB2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2soKQogewogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3Jt
U2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQoreworfQorCit2b2lkIFVJU2Ny
aXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjaygpCit7Cit9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldFdpbGxC
ZWdpblpvb21pbmdDYWxsYmFjaygpCiB7CkluZGV4OiBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJ
U2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuaAkocmV2aXNpb24g
MjA3MTY2KQorKysgVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250ZXh0LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDYgKzU2LDggQEAgdHlwZWRlZiBlbnVt
ICB7CiAgICAgQ2FsbGJhY2tUeXBlRGlkRW5kU2Nyb2xsaW5nLAogICAgIENhbGxiYWNrVHlwZURp
ZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbiwKICAgICBDYWxsYmFja1R5cGVEaWRFbmRGb3Jt
Q29udHJvbEludGVyYWN0aW9uLAorICAgIENhbGxiYWNrVHlwZURpZFNob3dGb3JjZVByZXNzUHJl
dmlldywKKyAgICBDYWxsYmFja1R5cGVEaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXcsCiAgICAg
Q2FsbGJhY2tUeXBlTm9uUGVyc2lzdGVudCA9IGZpcnN0Tm9uUGVyc2lzdGVudENhbGxiYWNrSUQK
IH0gQ2FsbGJhY2tUeXBlOwogCkluZGV4OiBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RS
dW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAJKHJldmlz
aW9uIDIwNzE2NikKKysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJ
U2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDI4IEBAIEpT
VmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRFbmRGb3IKIHsKICAgICByZXR1cm4gbV9j
b250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uKTsKIH0KKyAgICAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Rm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29u
dGV4dC0+cmVnaXN0ZXJDYWxsYmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkU2hvd0ZvcmNl
UHJlc3NQcmV2aWV3KTsKKyAgICBwbGF0Zm9ybVNldERpZFNob3dGb3JjZVByZXNzUHJldmlld0Nh
bGxiYWNrKCk7Cit9CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWRTaG93Rm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+
Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3KTsKK30K
Kwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmll
d0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgbV9jb250ZXh0LT5yZWdpc3Rl
ckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZp
ZXcpOworICAgIHBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2so
KTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZERpc21pc3NGb3JjZVBy
ZXNzUHJldmlld0NhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jb250ZXh0LT5jYWxs
YmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXcpOworfQog
CiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKEpT
VmFsdWVSZWYgY2FsbGJhY2spCiB7CkBAIC0yNTMsNiArMjc1LDE0IEBAIHZvaWQgVUlTY3JpcHRD
b250cm9sbGVyOjpwbGF0Zm9ybVNldERpZFMKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0
Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpCiB7CiB9CisgICAg
Cit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1By
ZXZpZXdDYWxsYmFjaygpCit7Cit9CisKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9y
bVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkKK3sKK30KIAogdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCkK
IHsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsMTIgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRE
aWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNW
YWx1ZVJlZiBkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKSBjb25zdDsKKyAg
ICAKKyAgICB2b2lkIHNldERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKEpTVmFsdWVS
ZWYpOworICAgIEpTVmFsdWVSZWYgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKSBj
b25zdDsKKyAgICAKKyAgICB2b2lkIHNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxi
YWNrKEpTVmFsdWVSZWYpOworICAgIEpTVmFsdWVSZWYgZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2
aWV3Q2FsbGJhY2soKSBjb25zdDsKIAogICAgIHZvaWQgc2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxi
YWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVSZWYgd2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNr
KCkgY29uc3Q7CkBAIC0xMTgsNiArMTI0LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZv
cm1TZXREaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpOwogICAgIHZvaWQg
cGxhdGZvcm1TZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKTsKKyAgICB2
b2lkIHBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKTsKKyAgICB2
b2lkIHBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKTsKICAg
ICB2b2lkIHBsYXRmb3JtU2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBw
bGF0Zm9ybVNldERpZEVuZFpvb21pbmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRE
aWRTaG93S2V5Ym9hcmRDYWxsYmFjaygpOwpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNj
cmlwdENvbnRyb2xsZXIuaWRsCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjIsNiArMTIyLDEwIEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRy
b2xsZXIgewogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0
aW9uQ2FsbGJhY2s7CiAgICAgYXR0cmlidXRlIG9iamVjdCBkaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uQ2FsbGJhY2s7CiAKKyAgICAvLyBQcmV2aWV3IGZvcm0gaGFuZGxpbmcKKyAgICBhdHRy
aWJ1dGUgb2JqZWN0IGRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrOworICAgIGF0dHJp
YnV0ZSBvYmplY3QgZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2s7CisKICAgICAv
LyA8c2VsZWN0PiBwaWNrZXIKICAgICB2b2lkIHNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3co
bG9uZyByb3dJbmRleCk7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dFJ1bm5lcldLV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcuaAkod29ya2luZyBjb3B5
KQpAQCAtMjMsNiArMjMsOCBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKKyNwcmFnbWEgb25jZQorCiAjaW1wb3J0IDxXZWJLaXQvV2ViS2l0Lmg+CiAKICNpZiBX
S19BUElfRU5BQkxFRApAQCAtMzMsNiArMzUsOCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgdm9pZCAoXmRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKSh2b2lk
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5kRm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbkNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2
b2lkICheZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spKHZvaWQpOworQHByb3BlcnR5
IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXndpbGxCZWdp
blpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9p
ZCAoXmRpZEVuZFpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
Y29weSkgdm9pZCAoXmRpZFNob3dLZXlib2FyZENhbGxiYWNrKSh2b2lkKTsKSW5kZXg6IFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcubW0J
KHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1
bm5lcldLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsOCBAQCAtICh2b2lk
KWRlYWxsb2MKIAogICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2sg
PSBuaWw7CisgICAgc2VsZi5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IG5pbDsK
KyAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gbmlsOwogICAg
IHNlbGYud2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkRW5kWm9v
bWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2sgPSBu
aWw7CkBAIC05OSw2ICsxMDEsMTggQEAgLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0
aW9uCiAgICAgICAgIHNlbGYuZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCk7
CiB9CiAKKy0gKHZvaWQpZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Cit7CisgICAgaWYgKHNlbGYu
ZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spCisgICAgICAgIHNlbGYuZGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKTsKK30KKworLSAodm9pZClkaWREaXNtaXNzRm9yY2VQ
cmVzc1ByZXZpZXcKK3sKKyAgICBpZiAoc2VsZi5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFj
aygpOworfQorCiAtICh2b2lkKXpvb21Ub1NjYWxlOihkb3VibGUpc2NhbGUgYW5pbWF0ZWQ6KEJP
T0wpYW5pbWF0ZWQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25I
YW5kbGVyCiB7CiAgICAgQVNTRVJUKCFzZWxmLnpvb21Ub1NjYWxlQ29tcGxldGlvbkhhbmRsZXIp
OwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbQkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zNjcsNiAr
MzY3LDI2IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEUKICAgICAg
ICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRyb2xJ
bnRlcmFjdGlvbik7CiAgICAgfTsKIH0KKyAgICAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpw
bGF0Zm9ybVNldERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkKK3sKKyAgICBUZXN0
UnVubmVyV0tXZWJWaWV3ICp3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1h
aW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOworICAgIHdlYlZpZXcuZGlkU2hvd0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2sgPSBeIHsKKyAgICAgICAgaWYgKCFtX2NvbnRleHQpCisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+ZmlyZUNhbGxiYWNrKENhbGxiYWNrVHlw
ZURpZFNob3dGb3JjZVByZXNzUHJldmlldyk7CisgICAgfTsKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2so
KQoreworICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6
c2luZ2xldG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CisgICAgd2ViVmlldy5k
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IF4geworICAgICAgICBpZiAoIW1f
Y29udGV4dCkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2Fs
bGJhY2soQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbik7CisgICAgfTsK
K30KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0V2lsbEJlZ2luWm9vbWlu
Z0NhbGxiYWNrKCkKIHsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzE2NikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE2LTEwLTEzICBN
ZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRl
c3QgYW5kIGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lw
aG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxpbmsuaHRtbDog
QWRkZWQuCisKIDIwMTYtMTAtMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBFbmFibGUgVVJMUGFyc2VyIGJ5IGRlZmF1bHQKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxp
bmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxpbmstZXhwZWN0ZWQudHh0CShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2ZvcmNl
LXByZXNzLW9uLWxpbmstZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEgQEAK
K1BBU1M6IGNvcnJlY3QgcGFnZSBsb2FkZWQgaW4gcG9wb3ZlcgpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2Zv
cmNlLXByZXNzLW9uLWxpbmsuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy90b3VjaC9pb3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5rLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSBdIC0tPgorCis8aHRtbD4KKzxo
ZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGdldFVJU2Ny
aXB0KCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICB2YXIgZXZlbnRTdHJlYW0gPSB7CisgICAgICAgICAg
ICAgICAgICAgIGV2ZW50cyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRlcnBvbGF0ZSA6ICJsaW5lYXIiLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHRpbWVzdGVwOiAwLjAyNSwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzdGFydEV2ZW50IDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1
dFR5cGUgOiAiaGFuZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVPZmZz
ZXQgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJmaW5nZXIiLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogImJlZ2FuIiwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBpZCA6IDEsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeCA6IDIwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHkgOiA0MCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwcmVzc3VyZSA6IDAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kRXZlbnQgOiB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZU9mZnNldCA6IDMuMCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdG91Y2hlcyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnB1dFR5
cGUgOiAiZmluZ2VyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
aGFzZSA6ICJzdGF0aW9uYXJ5IiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZCA6IDEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeCA6
IDIwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHkgOiA0MCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVzc3VyZSA6IDUwMAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgfTsK
KworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5zZW5kRXZlbnRTdHJlYW0oSlNPTi5zdHJp
bmdpZnkoZXZlbnRTdHJlYW0pLCBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICB9KTsKKyAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIuZGlkU2hvd0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2sgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgdWlD
b250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoSlNPTi5zdHJpbmdpZnkodWlDb250cm9sbGVyLmNv
bnRlbnRzT2ZVc2VySW50ZXJmYWNlSXRlbSgncG9wb3ZlckNvbnRlbnRzJykpKTsKKyAgICAgICAg
ICAgICAgICB9OworICAgICAgICAgICAgIAorICAgICAgICAgICAgfSkoKTtgCisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYg
KCF0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICAgICAgdmFyIG91dHB1dCA9ICcnOworICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAg
aWYgKHRlc3RSdW5uZXIucnVuVUlTY3JpcHQpIHsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
LnJ1blVJU2NyaXB0KGdldFVJU2NyaXB0KCksIGZ1bmN0aW9uKHJlc3VsdCkgeworICAgICAgICAg
ICAgICAgICAgICB2YXIgdWlDb250ZW50c0RpY3Rpb25hcnkgPSBKU09OLnBhcnNlKHJlc3VsdCk7
CisgICAgICAgICAgICAgICAgICAgIHZhciBwYWdlVVJMID0gdWlDb250ZW50c0RpY3Rpb25hcnku
cG9wb3ZlckNvbnRlbnRzLnBhZ2VVUkw7CisgICAgICAgICAgICAgICAgICAgIGlmIChwYWdlVVJM
ID0gJ2h0dHA6Ly93d3cuYXBwbGUuY29tJykKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnUEFTUzogY29ycmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyJzsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0
YXJnZXQnKS5pbm5lckhUTUwgPSBvdXRwdXQ7CisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAg
ICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3Qs
IGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICN0YXJnZXQgewor
ICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAg
ICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRhcmdldCI+CisgICAgPGEgaHJlZj0iaHR0cDov
L3d3dy5hcHBsZS5jb20iPkxpbmsgVGVzdDwvYT4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlT
Y3JpcHRDb250cm9sbGVyIHRvIHJ1bi4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291882</attachid>
            <date>2016-10-17 15:07:54 -0700</date>
            <delta_ts>2016-10-17 17:17:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163406-20161017150422.patch</filename>
            <type>text/plain</type>
            <size>20276</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTEzICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgYW5k
IGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBzZWUgd2hlbiBh
IGxpbmsgcG9wb3ZlciBhcHBlYXJzLCBhbmQgd2hhdCBVUkwgaXQgaGFzIGxvYWRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBk
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmVzZW50
ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcHJldmlld0l0ZW1Db250cm9sbGVyOmRpZERpc21pc3NQcmV2aWV3OmNv
bW1pdHRpbmc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3ByZXZpZXdJdGVtQ29udHJv
bGxlckRpZENhbmNlbFByZXZpZXc6XSk6CisKIDIwMTYtMTAtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIxOTc5NTMpOiBV
c2VyIGdlc3R1cmUgcmVxdWlyZWQgdG8gbG9hZCB2aWRlbyBpbiBpT1MgOS1idWlsdCBhcHBzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkocmV2aXNpb24gMjA3MTY2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1NDIsNiArNDU0MiwxNiBAQCAtICh2
b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24KICAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KIH0KIAorLSAodm9pZClkaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcKK3sKKyAg
ICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4KK30KKworLSAodm9pZClkaWREaXNtaXNz
Rm9yY2VQcmVzc1ByZXZpZXcKK3sKKyAgICAvLyBGb3Igc3ViY2xhc3NlcyB0byBvdmVycmlkZS4K
K30KKwogLSAoTlNBcnJheTxVSVZpZXcgKj4gKilfdWlUZXh0U2VsZWN0aW9uUmVjdFZpZXdzCiB7
CiAgICAgcmV0dXJuIFtfY29udGVudFZpZXcgdmFsdWVGb3JLZXlQYXRoOkAiaW50ZXJhY3Rpb25B
c3Npc3RhbnQuc2VsZWN0aW9uVmlldy5yYW5nZVZpZXcubV9yZWN0Vmlld3MiXTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCShyZXZpc2lvbiAyMDcxNjYpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjY4LDYgKzI2OCw5
IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUEKIC0gKHZvaWQpZGlk
U3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKTsKIC0gKHZvaWQpZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbiBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKHZvaWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmll
dyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CistICh2b2lkKV9kaWREaXNtaXNz
Rm9yY2VQcmVzc1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TQXJyYXk8VUlWaWV3ICo+ICpfdWlUZXh0
U2VsZWN0aW9uUmVjdFZpZXdzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAog
I2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjA3MTY2KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtp
bmcgY29weSkKQEAgLTM4NDksNiArMzg0OSwxMSBAQCAtIChOU0RpY3Rpb25hcnkgKilfY29udGVu
dHNPZlVzZXJJbnRlcmZhCiAgICAgaWYgKFt1c2VySW50ZXJmYWNlSXRlbSBpc0VxdWFsVG9TdHJp
bmc6QCJhY3Rpb25TaGVldCJdKQogICAgICAgICByZXR1cm4gQHsgdXNlckludGVyZmFjZUl0ZW06
IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlc10gfTsK
ICAgICAKKyAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlzRXF1YWxUb1N0cmluZzpAInBvcG92
ZXJDb250ZW50cyJdKSB7CisgICAgICAgIE5TU3RyaW5nICp1cmwgPSBbX3ByZXZpZXdJdGVtQ29u
dHJvbGxlciBwcmV2aWV3RGF0YV1bVUlQcmV2aWV3RGF0YUxpbmtdOworICAgICAgICByZXR1cm4g
QHsgdXNlckludGVyZmFjZUl0ZW06IEB7QCJwYWdlVVJMIjogdXJsfX07CisgICAgfQorICAgIAog
ICAgIHJldHVybiBuaWw7CiB9CiAKQEAgLTQwMjIsNiArNDAyNyw4IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcHJldmlld0lkZW50aWZpZXJGb3JFbGUKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2Vu
dGVkVmlld0NvbnRyb2xsZXJGb3JQcmV2aWV3SXRlbUNvbnRyb2xsZXI6KFVJUHJldmlld0l0ZW1D
b250cm9sbGVyICopY29udHJvbGxlcgogewogICAgIGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1
aURlbGVnYXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZp
ZXcgVUlEZWxlZ2F0ZV0pOworICAgIAorICAgIFtfd2ViVmlldyBfZGlkU2hvd0ZvcmNlUHJlc3NQ
cmV2aWV3XTsKIAogICAgIE5TVVJMICp0YXJnZXRVUkwgPSBjb250cm9sbGVyLnByZXZpZXdEYXRh
W1VJUHJldmlld0RhdGFMaW5rXTsKICAgICBVUkwgY29yZVRhcmdldFVSTCA9IHRhcmdldFVSTDsK
QEAgLTQxMjgsNiArNDEzNSw4IEBAIC0gKHZvaWQpX3ByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQ
cmV2aWUKICAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGlkRGlzbWlzc1By
ZXZpZXdWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlciBjb21taXR0aW5nOmNvbW1pdHRpbmdd
OwogICAgIGVsc2UgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjopXSkKICAgICAgICAgW3Vp
RGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxl
cjp2aWV3Q29udHJvbGxlcl07CisgICAgCisgICAgW193ZWJWaWV3IF9kaWREaXNtaXNzRm9yY2VQ
cmVzc1ByZXZpZXddOwogfQogCiAtIChVSUltYWdlICopX3ByZXNlbnRhdGlvblNuYXBzaG90Rm9y
UHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xs
ZXIKQEAgLTQxNjEsNiArNDE3MCw4IEBAIC0gKE5TQXJyYXkgKilfcHJlc2VudGF0aW9uUmVjdHNG
b3JQcmV2aWUKIC0gKHZvaWQpX3ByZXZpZXdJdGVtQ29udHJvbGxlckRpZENhbmNlbFByZXZpZXc6
KFVJUHJldmlld0l0ZW1Db250cm9sbGVyICopY29udHJvbGxlcgogewogICAgIF9oaWdobGlnaHRM
b25nUHJlc3NDYW5DbGljayA9IE5POworICAgIAorICAgIFtfd2ViVmlldyBfZGlkRGlzbWlzc0Zv
cmNlUHJlc3NQcmV2aWV3XTsKIH0KIAogQGVuZApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MzExKQorKysgVG9vbHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTYtMTAtMTMgIE1lZ2Fu
IEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGVzdCBh
bmQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGxpbmsgcG9wb3ZlcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgZnVuY3Rpb25hbGl0eSB0ZXN0IGZvciBs
aW5rIHBvcG92ZXJzLgorICAgICAgICBDYW4gcXVlcnkgZm9yIHdoYXQgVVJMIGlzIGxvYWRlZCwg
YW5kIHRoYXQgdGhlIHBvcG92ZXIgaGFzIGFwcGVhcmVkIG9yIGhhcworICAgICAgICBiZWVuIGRp
c21pc3NlZC4KKyAgICAgICAgQWRkZWQgYSBsaW5rIHBvcG92ZXIgdGVzdC4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChX
VFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZp
ZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1T
ZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0Lmg6CisgICAgICAgICog
VGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWRTaG93Rm9yY2VQcmVzc1By
ZXZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hv
d0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OnNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRT
aG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29u
dHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayk6
CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRW5kRm9ybUNvbnRyb2xJbnRl
cmFjdGlvbkNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9s
bGVyOjpwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayk6IERl
bGV0ZWQuCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3Jp
cHRDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVu
bmVyV0tXZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVu
bmVyV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtUZXN0UnVubmVyV0tXZWJWaWV3IGRlYWxsb2Nd
KToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBkaWRTaG93Rm9yY2VQcmVzc1ByZXZp
ZXddKToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2ViVmlldyBkaWREaXNtaXNzRm9yY2VQcmVz
c1ByZXZpZXddKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1T
ZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayk6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRF
bmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorCiAyMDE2LTEwLTEz
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
RGlzYWJsZSBVUkxQYXJzZXIgZm9yIG5vbi1TYWZhcmkgaU9TIGFuZCBNYWMgYXBwcyBmb3Igbm93
CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9VSVNjcmlwdENvbnRyb2xs
ZXJJT1MubW0JKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2lvcy9V
SVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsMTQg
QEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkUwogdm9pZCBVSVNjcmlw
dENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxi
YWNrKCkKIHsKIH0KKyAgICAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERp
ZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkKK3sKK30KKwordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2so
KQoreworfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVnaW5a
b29taW5nQ2FsbGJhY2soKQogewpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFJ1bm5l
clNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250ZXh0LmgJKHJldmlzaW9uIDIwNzE2
NikKKysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2ICs1Niw4IEBAIHR5cGVkZWYgZW51bSAgewog
ICAgIENhbGxiYWNrVHlwZURpZEVuZFNjcm9sbGluZywKICAgICBDYWxsYmFja1R5cGVEaWRTdGFy
dEZvcm1Db250cm9sSW50ZXJhY3Rpb24sCiAgICAgQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRy
b2xJbnRlcmFjdGlvbiwKKyAgICBDYWxsYmFja1R5cGVEaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcs
CisgICAgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3LAogICAgIENhbGxi
YWNrVHlwZU5vblBlcnNpc3RlbnQgPSBmaXJzdE5vblBlcnNpc3RlbnRDYWxsYmFja0lECiB9IENh
bGxiYWNrVHlwZTsKIApJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAy
MDcxNjYpCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlw
dENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSwyOCBAQCBKU1ZhbHVl
UmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRW5kRm9yCiB7CiAgICAgcmV0dXJuIG1fY29udGV4
dC0+Y2FsbGJhY2tXaXRoSUQoQ2FsbGJhY2tUeXBlRGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlv
bik7CiB9CisgICAgCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hvd0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQt
PnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZFNob3dGb3JjZVByZXNz
UHJldmlldyk7CisgICAgcGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFj
aygpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkU2hvd0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRleHQtPmNhbGxi
YWNrV2l0aElEKENhbGxiYWNrVHlwZURpZFNob3dGb3JjZVByZXNzUHJldmlldyk7Cit9CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjayhKU1ZhbHVlUmVmIGNhbGxiYWNrKQoreworICAgIG1fY29udGV4dC0+cmVnaXN0ZXJDYWxs
YmFjayhjYWxsYmFjaywgQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3KTsK
KyAgICBwbGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7Cit9
CisKK0pTVmFsdWVSZWYgVUlTY3JpcHRDb250cm9sbGVyOjpkaWREaXNtaXNzRm9yY2VQcmVzc1By
ZXZpZXdDYWxsYmFjaygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY29udGV4dC0+Y2FsbGJhY2tX
aXRoSUQoQ2FsbGJhY2tUeXBlRGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3KTsKK30KIAogdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhKU1ZhbHVl
UmVmIGNhbGxiYWNrKQogewpAQCAtMjUzLDYgKzI3NSwxNCBAQCB2b2lkIFVJU2NyaXB0Q29udHJv
bGxlcjo6cGxhdGZvcm1TZXREaWRTCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1T
ZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKQogewogfQorICAgIAordm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3
Q2FsbGJhY2soKQoreworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRE
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpCit7Cit9CiAKIHZvaWQgVUlTY3Jp
cHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjaygpCiB7Cklu
ZGV4OiBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRy
b2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTg1LDYgKzg1LDEyIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0RGlkRW5k
Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKEpTVmFsdWVSZWYpOwogICAgIEpTVmFsdWVS
ZWYgZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkgY29uc3Q7CisgICAgCisg
ICAgdm9pZCBzZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayhKU1ZhbHVlUmVmKTsK
KyAgICBKU1ZhbHVlUmVmIGRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkgY29uc3Q7
CisgICAgCisgICAgdm9pZCBzZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayhK
U1ZhbHVlUmVmKTsKKyAgICBKU1ZhbHVlUmVmIGRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0Nh
bGxiYWNrKCkgY29uc3Q7CiAKICAgICB2b2lkIHNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjayhK
U1ZhbHVlUmVmKTsKICAgICBKU1ZhbHVlUmVmIHdpbGxCZWdpblpvb21pbmdDYWxsYmFjaygpIGNv
bnN0OwpAQCAtMTE4LDYgKzEyNCw4IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3JtU2V0
RGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRm
b3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCk7CisgICAgdm9pZCBw
bGF0Zm9ybVNldERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7CisgICAgdm9pZCBw
bGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7CiAgICAgdm9p
ZCBwbGF0Zm9ybVNldFdpbGxCZWdpblpvb21pbmdDYWxsYmFjaygpOwogICAgIHZvaWQgcGxhdGZv
cm1TZXREaWRFbmRab29taW5nQ2FsbGJhY2soKTsKICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkU2hv
d0tleWJvYXJkQ2FsbGJhY2soKTsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbAkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTIyLDYgKzEyMiwxMCBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVy
IHsKICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNh
bGxiYWNrOwogICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlv
bkNhbGxiYWNrOwogCisgICAgLy8gRm9yY2UgcHJlc3MgcHJldmlldyBoYW5kbGluZworICAgIGF0
dHJpYnV0ZSBvYmplY3QgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2s7CisgICAgYXR0
cmlidXRlIG9iamVjdCBkaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjazsKKwogICAg
IC8vIDxzZWxlY3Q+IHBpY2tlcgogICAgIHZvaWQgc2VsZWN0Rm9ybUFjY2Vzc29yeVBpY2tlclJv
dyhsb25nIHJvd0luZGV4KTsKIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0UnVubmVyV0tXZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3LmgJKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw4IEBACiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2spKHZvaWQpOwogQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2spKHZvaWQpOworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWRT
aG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaykodm9pZCk7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKSh2b2lk
KTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkIChed2lsbEJlZ2luWm9vbWluZ0Nh
bGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5k
Wm9vbWluZ0NhbGxiYWNrKSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lk
ICheZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2spKHZvaWQpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQkocmV2aXNpb24g
MjA3MTY2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0UnVubmVyV0tXZWJW
aWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSw4IEBAIC0gKHZvaWQpZGVhbGxvYwog
CiAgICAgc2VsZi5kaWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsK
ICAgICBzZWxmLmRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayA9IG5pbDsKKyAg
ICBzZWxmLmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gbmlsOworICAgIHNlbGYu
ZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi53aWxs
QmVnaW5ab29taW5nQ2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRab29taW5nQ2FsbGJh
Y2sgPSBuaWw7CiAgICAgc2VsZi5kaWRTaG93S2V5Ym9hcmRDYWxsYmFjayA9IG5pbDsKQEAgLTk5
LDYgKzEwMSwxOCBAQCAtICh2b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24KICAgICAg
ICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJhY2soKTsKIH0KIAorLSAo
dm9pZClkaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcKK3sKKyAgICBpZiAoc2VsZi5kaWRTaG93Rm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjaykKKyAgICAgICAgc2VsZi5kaWRTaG93Rm9yY2VQcmVzc1By
ZXZpZXdDYWxsYmFjaygpOworfQorCistICh2b2lkKWRpZERpc21pc3NGb3JjZVByZXNzUHJldmll
dworeworICAgIGlmIChzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKQor
ICAgICAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7Cit9CisK
IC0gKHZvaWQpem9vbVRvU2NhbGU6KGRvdWJsZSlzY2FsZSBhbmltYXRlZDooQk9PTClhbmltYXRl
ZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKIHsK
ICAgICBBU1NFUlQoIXNlbGYuem9vbVRvU2NhbGVDb21wbGV0aW9uSGFuZGxlcik7CkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNj
cmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2Nyw2ICszNjcsMjYgQEAg
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRQogICAgICAgICBtX2NvbnRl
eHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9u
KTsKICAgICB9OwogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0
RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQoreworICAgIFRlc3RSdW5uZXJXS1dl
YlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9uKCkubWFpbldlYlZpZXco
KS0+cGxhdGZvcm1WaWV3KCk7CisgICAgd2ViVmlldy5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjayA9IF4geworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJhY2tUeXBlRGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3KTsKKyAgICB9OworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpCit7CisgICAg
VGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICB3ZWJWaWV3LmRpZERpc21pc3NG
b3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gXiB7CisgICAgICAgIGlmICghbV9jb250ZXh0KQor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxs
YmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKKyAgICB9OworfQogCiB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVnaW5ab29taW5nQ2FsbGJhY2so
KQogewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MTY2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTAtMTMgIE1lZ2FuIEdhcmRu
ZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgdGVzdCBhbmQgaW5m
cmFzdHJ1Y3R1cmUgZm9yIGxpbmsgcG9wb3ZlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9pb3MvaXBob25lNy9mb3Jj
ZS1wcmVzcy1vbi1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay5odG1sOiBBZGRlZC4KKwog
MjAxNi0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgog
CiAgICAgICAgIEVuYWJsZSBVUkxQYXJzZXIgYnkgZGVmYXVsdApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lw
aG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24t
bGluay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSBAQAorUEFTUzogY29y
cmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5rLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mt
b24tbGluay5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxpbmsuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMCwwICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxodG1sPgorPGhlYWQ+CisgICAg
PHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0VUlTY3JpcHQoKQorICAg
ICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAgKGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIHZhciBldmVudFN0cmVhbSA9IHsKKyAgICAgICAgICAgICAgICAgICAg
ZXZlbnRzIDogWworICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGludGVycG9sYXRlIDogImxpbmVhciIsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgdGltZXN0ZXA6IDAuMDI1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0
RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJo
YW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZU9mZnNldCA6IDAsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBbCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcGhhc2UgOiAiYmVnYW4iLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB4IDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
eSA6IDQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJl
IDogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRFdmVudCA6IHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0aW1lT2Zmc2V0IDogMy4wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlucHV0VHlwZSA6ICJmaW5n
ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBoYXNlIDogInN0
YXRpb25hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIDog
MSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4IDogMjAsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA6IDQwLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlIDogNTAwCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICB9OworCisgICAgICAg
ICAgICAgICAgdWlDb250cm9sbGVyLnNlbmRFdmVudFN0cmVhbShKU09OLnN0cmluZ2lmeShldmVu
dFN0cmVhbSksIGZ1bmN0aW9uKCkge30pOworICAgICAgICAgICAgIAorICAgICAgICAgICAgICAg
IHVpQ29udHJvbGxlci5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IGZ1bmN0aW9u
KCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZShK
U09OLnN0cmluZ2lmeSh1aUNvbnRyb2xsZXIuY29udGVudHNPZlVzZXJJbnRlcmZhY2VJdGVtKCdw
b3BvdmVyQ29udGVudHMnKSkpOworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIubGlm
dFVwQXRQb2ludCgyMCw0MCwxLGZ1bmN0aW9uKCkge30pOworICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgCisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIg
b3V0cHV0ID0gJyc7CisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
Z2V0VUlTY3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHZh
ciB1aUNvbnRlbnRzRGljdGlvbmFyeSA9IEpTT04ucGFyc2UocmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICAgICAgdmFyIHBhZ2VVUkwgPSB1aUNvbnRlbnRzRGljdGlvbmFyeS5wb3BvdmVyQ29udGVu
dHMucGFnZVVSTDsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHBhZ2VVUkwgPSAnaHR0cDovL2xv
Y2FsaG9zdDo1NDMyMScpCisgICAgICAgICAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1BBU1M6
IGNvcnJlY3QgcGFnZSBsb2FkZWQgaW4gcG9wb3Zlcic7CisgICAgICAgICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5u
ZXJIVE1MID0gb3V0cHV0OworICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCBmYWxzZSk7Cisg
ICAgPC9zY3JpcHQ+CisgICAgPHN0eWxlPgorICAgICAgICAjdGFyZ2V0IHsKKyAgICAgICAgICAg
IGhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgICAgICBi
YWNrZ3JvdW5kLWNvbG9yOiBzaWx2ZXI7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxt
ZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJpbml0aWFsLXNjYWxlPTEiPgorPC9oZWFkPgor
PGJvZHk+Cis8ZGl2IGlkPSJ0YXJnZXQiPgorICAgIDxhIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6
NTQzMjEiPkxpbmsgVGVzdDwvYT4KKyAgICBUaGlzIHRlc3QgcmVxdWlyZXMgVUlTY3JpcHRDb250
cm9sbGVyIHRvIHJ1bi4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291900</attachid>
            <date>2016-10-17 17:17:52 -0700</date>
            <delta_ts>2016-10-17 17:39:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163406-20161017171419.patch</filename>
            <type>text/plain</type>
            <size>20626</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTEzICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgYW5k
IGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBzZWUgd2hlbiBh
IGxpbmsgcG9wb3ZlciBhcHBlYXJzLCBhbmQgd2hhdCBVUkwgaXQgaGFzIGxvYWRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBk
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmVzZW50
ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcHJldmlld0l0ZW1Db250cm9sbGVyOmRpZERpc21pc3NQcmV2aWV3OmNv
bW1pdHRpbmc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3ByZXZpZXdJdGVtQ29udHJv
bGxlckRpZENhbmNlbFByZXZpZXc6XSk6CisKIDIwMTYtMTAtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIxOTc5NTMpOiBV
c2VyIGdlc3R1cmUgcmVxdWlyZWQgdG8gbG9hZCB2aWRlbyBpbiBpT1MgOS1idWlsdCBhcHBzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkocmV2aXNpb24gMjA3MTY2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1NDIsNiArNDU0MiwxNiBAQCAtICh2
b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24KICAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KIH0KIAorLSAodm9pZClfZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Cit7Cisg
ICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKKy0gKHZvaWQpX2RpZERpc21p
c3NGb3JjZVByZXNzUHJldmlldworeworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRl
LgorfQorCiAtIChOU0FycmF5PFVJVmlldyAqPiAqKV91aVRleHRTZWxlY3Rpb25SZWN0Vmlld3MK
IHsKICAgICByZXR1cm4gW19jb250ZW50VmlldyB2YWx1ZUZvcktleVBhdGg6QCJpbnRlcmFjdGlv
bkFzc2lzdGFudC5zZWxlY3Rpb25WaWV3LnJhbmdlVmlldy5tX3JlY3RWaWV3cyJdOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsNiArMjY4
LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAodm9pZClk
aWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfZGlkU2hvd0ZvcmNlUHJlc3NQcmV2
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2RpZERpc21p
c3NGb3JjZVByZXNzUHJldmlldyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxVSVZpZXcgKj4gKl91aVRl
eHRTZWxlY3Rpb25SZWN0Vmlld3MgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzg0OSw2ICszODQ5LDExIEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250
ZW50c09mVXNlckludGVyZmEKICAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlzRXF1YWxUb1N0
cmluZzpAImFjdGlvblNoZWV0Il0pCiAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRl
bTogW19hY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzXSB9
OwogICAgIAorICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAibGlu
a1ByZXZpZXdQb3BvdmVyQ29udGVudHMiXSkgeworICAgICAgICBOU1N0cmluZyAqdXJsID0gW19w
cmV2aWV3SXRlbUNvbnRyb2xsZXIgcHJldmlld0RhdGFdW1VJUHJldmlld0RhdGFMaW5rXTsKKyAg
ICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAe0AicGFnZVVSTCI6IHVybH19Owor
ICAgIH0KKyAgICAKICAgICByZXR1cm4gbmlsOwogfQogCkBAIC00MDIyLDYgKzQwMjcsOCBAQCBz
dGF0aWMgTlNTdHJpbmcgKnByZXZpZXdJZGVudGlmaWVyRm9yRWxlCiAtIChVSVZpZXdDb250cm9s
bGVyICopX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVyOihV
SVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIKIHsKICAgICBpZCA8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAKKyAgICBbX3dlYlZpZXcgX2RpZFNo
b3dGb3JjZVByZXNzUHJldmlld107CiAKICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gY29udHJvbGxl
ci5wcmV2aWV3RGF0YVtVSVByZXZpZXdEYXRhTGlua107CiAgICAgVVJMIGNvcmVUYXJnZXRVUkwg
PSB0YXJnZXRVUkw7CkBAIC00MTI4LDYgKzQxMzUsOCBAQCAtICh2b2lkKV9wcmV2aWV3SXRlbUNv
bnRyb2xsZXI6KFVJUHJldmllCiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3
IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgY29tbWl0dGlu
Zzpjb21taXR0aW5nXTsKICAgICBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KV0p
CiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3
Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXJdOworICAgIAorICAgIFtfd2ViVmlldyBfZGlk
RGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3XTsKIH0KIAogLSAoVUlJbWFnZSAqKV9wcmVzZW50YXRp
b25TbmFwc2hvdEZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWV3SXRlbUNvbnRyb2xs
ZXIgKiljb250cm9sbGVyCkBAIC00MTYxLDYgKzQxNzAsOCBAQCAtIChOU0FycmF5ICopX3ByZXNl
bnRhdGlvblJlY3RzRm9yUHJldmllCiAtICh2b2lkKV9wcmV2aWV3SXRlbUNvbnRyb2xsZXJEaWRD
YW5jZWxQcmV2aWV3OihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIKIHsKICAg
ICBfaGlnaGxpZ2h0TG9uZ1ByZXNzQ2FuQ2xpY2sgPSBOTzsKKyAgICAKKyAgICBbX3dlYlZpZXcg
X2RpZERpc21pc3NGb3JjZVByZXNzUHJldmlld107CiB9CiAKIEBlbmQKSW5kZXg6IFRvb2xzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzMxMSkK
KysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisyMDE2
LTEwLTEzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHRlc3QgYW5kIGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGZ1bmN0aW9uYWxp
dHkgdGVzdCBmb3IgbGluayBwb3BvdmVycy4KKyAgICAgICAgQ2FuIHF1ZXJ5IGZvciB3aGF0IFVS
TCBpcyBsb2FkZWQsIGFuZCB0aGF0IHRoZSBwb3BvdmVyIGhhcyBhcHBlYXJlZCBvciBoYXMKKyAg
ICAgICAgYmVlbiBkaXNtaXNzZWQuCisgICAgICAgIEFkZGVkIGEgbGluayBwb3BvdmVyIHRlc3Qu
CisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1t
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRy
b2xJbnRlcmFjdGlvbkNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAg
ICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5o
OgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkU2hv
d0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdUUjo6
VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFj
ayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlzc0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBs
YXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2
aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZEZv
cm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
Y29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldLV2Vi
VmlldyBkZWFsbG9jXSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgZGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgZGlkRGlz
bWlzc0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3Mv
VUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAg
ICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBs
YXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKTogRGVsZXRlZC4K
KwogMjAxNi0xMC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3Jn
PgogCiAgICAgICAgIERpc2FibGUgVVJMUGFyc2VyIGZvciBub24tU2FmYXJpIGlPUyBhbmQgTWFj
IGFwcHMgZm9yIG5vdwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0Q29u
dHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
NzMsNiArMTczLDE0IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZFMK
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50
ZXJhY3Rpb25DYWxsYmFjaygpCiB7CiB9CisgICAgCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6
cGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpCit7Cit9CisKK3Zv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNzUHJl
dmlld0NhbGxiYWNrKCkKK3sKK30KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3Jt
U2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCkKIHsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCShy
ZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsOCBAQCB0eXBl
ZGVmIGVudW0gIHsKICAgICBDYWxsYmFja1R5cGVEaWRFbmRTY3JvbGxpbmcsCiAgICAgQ2FsbGJh
Y2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uLAogICAgIENhbGxiYWNrVHlwZURp
ZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24sCisgICAgQ2FsbGJhY2tUeXBlRGlkU2hvd0ZvcmNl
UHJlc3NQcmV2aWV3LAorICAgIENhbGxiYWNrVHlwZURpZERpc21pc3NGb3JjZVByZXNzUHJldmll
dywKICAgICBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50ID0gZmlyc3ROb25QZXJzaXN0ZW50Q2Fs
bGJhY2tJRAogfSBDYWxsYmFja1R5cGU7CiAKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cAkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENv
bnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzks
MjggQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZEZvcgogewogICAgIHJl
dHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEVuZEZvcm1Db250
cm9sSW50ZXJhY3Rpb24pOwogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldERp
ZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7Cisg
ICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVEaWRT
aG93Rm9yY2VQcmVzc1ByZXZpZXcpOworICAgIHBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQ
cmV2aWV3Q2FsbGJhY2soKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRp
ZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9j
b250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93Rm9yY2VQcmVzc1ByZXZp
ZXcpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRleHQt
PnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZERpc21pc3NGb3JjZVBy
ZXNzUHJldmlldyk7CisgICAgcGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjaygpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlz
c0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2NvbnRl
eHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NGb3JjZVByZXNzUHJldmll
dyk7Cit9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsQmVnaW5ab29taW5nQ2Fs
bGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKQEAgLTI1Myw2ICsyNzUsMTQgQEAgdm9pZCBV
SVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkUwogdm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkKIHsK
IH0KKyAgICAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZFNob3dGb3Jj
ZVByZXNzUHJldmlld0NhbGxiYWNrKCkKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6
OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQoreworfQog
CiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVnaW5ab29taW5nQ2Fs
bGJhY2soKQogewpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFJ1bm5lclNoYXJl
ZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwNzE2NikK
KysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJv
bGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSwxMiBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVmKTsK
ICAgICBKU1ZhbHVlUmVmIGRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygpIGNv
bnN0OworICAgIAorICAgIHZvaWQgc2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2so
SlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjaygpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2
aWV3Q2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWREaXNtaXNzRm9yY2VQ
cmVzc1ByZXZpZXdDYWxsYmFjaygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRXaWxsQmVnaW5ab29t
aW5nQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiB3aWxsQmVnaW5ab29taW5n
Q2FsbGJhY2soKSBjb25zdDsKQEAgLTExOCw2ICsxMjQsOCBAQCBwcml2YXRlOgogCiAgICAgdm9p
ZCBwbGF0Zm9ybVNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCk7CiAg
ICAgdm9pZCBwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygp
OworICAgIHZvaWQgcGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaygp
OworICAgIHZvaWQgcGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFj
aygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRXaWxsQmVnaW5ab29taW5nQ2FsbGJhY2soKTsKICAg
ICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kWm9vbWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBwbGF0
Zm9ybVNldERpZFNob3dLZXlib2FyZENhbGxiYWNrKCk7CkluZGV4OiBUb29scy9UZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRp
bmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xzL1Rl
c3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxl
ci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw2ICsxMjIsMTAgQEAgaW50ZXJmYWNlIFVJU2Ny
aXB0Q29udHJvbGxlciB7CiAgICAgYXR0cmlidXRlIG9iamVjdCBkaWRTdGFydEZvcm1Db250cm9s
SW50ZXJhY3Rpb25DYWxsYmFjazsKICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEVuZEZvcm1Db250
cm9sSW50ZXJhY3Rpb25DYWxsYmFjazsKIAorICAgIC8vIEZvcmNlIHByZXNzIHByZXZpZXcgaGFu
ZGxpbmcKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxi
YWNrOworICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2Fs
bGJhY2s7CisKICAgICAvLyA8c2VsZWN0PiBwaWNrZXIKICAgICB2b2lkIHNlbGVjdEZvcm1BY2Nl
c3NvcnlQaWNrZXJSb3cobG9uZyByb3dJbmRleCk7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCShyZXZpc2lvbiAyMDcx
NjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
aAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKSh2
b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5kRm9ybUNvbnRy
b2xJbnRlcmFjdGlvbkNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5
KSB2b2lkICheZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spKHZvaWQpOworQHByb3Bl
cnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXndpbGxC
ZWdpblpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkg
dm9pZCAoXmRpZEVuZFpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgY29weSkgdm9pZCAoXmRpZFNob3dLZXlib2FyZENhbGxiYWNrKSh2b2lkKTsKSW5kZXg6IFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZpZXcu
bW0JKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVz
dFJ1bm5lcldLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsOCBAQCAtICh2
b2lkKWRlYWxsb2MKIAogICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2Fs
bGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2FsbGJh
Y2sgPSBuaWw7CisgICAgc2VsZi5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IG5p
bDsKKyAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gbmlsOwog
ICAgIHNlbGYud2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkRW5k
Wm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd0tleWJvYXJkQ2FsbGJhY2sg
PSBuaWw7CkBAIC05OSw2ICsxMDEsMTggQEAgLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVy
YWN0aW9uCiAgICAgICAgIHNlbGYuZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNr
KCk7CiB9CiAKKy0gKHZvaWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmlldworeworICAgIGlmIChz
ZWxmLmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKQorICAgICAgICBzZWxmLmRpZFNo
b3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2RpZERpc21pc3NG
b3JjZVByZXNzUHJldmlldworeworICAgIGlmIChzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJl
dmlld0NhbGxiYWNrKQorICAgICAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0Nh
bGxiYWNrKCk7Cit9CisKIC0gKHZvaWQpem9vbVRvU2NhbGU6KGRvdWJsZSlzY2FsZSBhbmltYXRl
ZDooQk9PTClhbmltYXRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXIKIHsKICAgICBBU1NFUlQoIXNlbGYuem9vbVRvU2NhbGVDb21wbGV0aW9uSGFu
ZGxlcik7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xs
ZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTM2
Nyw2ICszNjcsMjYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRQog
ICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29u
dHJvbEludGVyYWN0aW9uKTsKICAgICB9OwogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQoreworICAg
IFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xldG9u
KCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CisgICAgd2ViVmlldy5kaWRTaG93Rm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IF4geworICAgICAgICBpZiAoIW1fY29udGV4dCkKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2FsbGJh
Y2tUeXBlRGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3KTsKKyAgICB9OworfQorCit2b2lkIFVJU2Ny
aXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjaygpCit7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250cm9s
bGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICB3ZWJW
aWV3LmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gXiB7CisgICAgICAgIGlm
ICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPmZp
cmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsKKyAg
ICB9OworfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVnaW5a
b29taW5nQ2FsbGJhY2soKQogewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MTY2KQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYtMTAt
MTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgdGVzdCBhbmQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGxpbmsgcG9wb3ZlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDA2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3VjaC9p
b3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay5o
dG1sOiBBZGRlZC4KKwogMjAxNi0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJsZSBVUkxQYXJzZXIgYnkgZGVmYXVsdApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mt
b24tbGluay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcv
Zm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSBAQAorUEFTUzogY29ycmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5rLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9u
ZTcvZm9yY2UtcHJlc3Mtb24tbGluay5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxpbmsuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxodG1s
PgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gZ2V0
VUlTY3JpcHQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAgICAg
KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBldmVudFN0cmVhbSA9IHsKKyAgICAg
ICAgICAgICAgICAgICAgZXZlbnRzIDogWworICAgICAgICAgICAgICAgICAgICAgICAgeworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludGVycG9sYXRlIDogImxpbmVhciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgdGltZXN0ZXA6IDAuMDI1LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlt
ZU9mZnNldCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZXMgOiBb
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAiYmVnYW4iLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB4IDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeSA6IDQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHByZXNzdXJlIDogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRFdmVudCA6IHsKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lT2Zmc2V0IDogMy4wLAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
cHV0VHlwZSA6ICJmaW5nZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHBoYXNlIDogInN0YXRpb25hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB4IDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA6IDQw
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlIDogNTAw
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAg
ICB9OworCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNlbmRFdmVudFN0cmVhbShKU09O
LnN0cmluZ2lmeShldmVudFN0cmVhbSksIGZ1bmN0aW9uKCkge30pOworICAgICAgICAgICAgIAor
ICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIudWlT
Y3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1aUNvbnRyb2xsZXIuY29udGVudHNPZlVzZXJJ
bnRlcmZhY2VJdGVtKCdsaW5rUHJldmlld1BvcG92ZXJDb250ZW50cycpKSk7CisgICAgICAgICAg
ICAgICAgfTsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9Cisg
ICAgCisgICAgICAgIGZ1bmN0aW9uIGdldFVJRmluaXNoU2NyaXB0KCkKKyAgICAgICAgeworICAg
ICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAgICAg
ICAgICB1aUNvbnRyb2xsZXIubGlmdFVwQXRQb2ludCgyMCw0MCwxLGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7CisgICAgICAg
ICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAgICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIg
b3V0cHV0ID0gJyc7CisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGVzdFJ1bm5l
ci5ydW5VSVNjcmlwdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
Z2V0VUlTY3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAgICAgIHZh
ciB1aUNvbnRlbnRzRGljdGlvbmFyeSA9IEpTT04ucGFyc2UocmVzdWx0KTsKKyAgICAgICAgICAg
ICAgICAgICAgdmFyIHBhZ2VVUkwgPSB1aUNvbnRlbnRzRGljdGlvbmFyeS5saW5rUHJldmlld1Bv
cG92ZXJDb250ZW50cy5wYWdlVVJMOworICAgICAgICAgICAgICAgICAgICBpZiAocGFnZVVSTCA9
ICdodHRwOi8vbG9jYWxob3N0OjU0MzIxJykKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1
dCArPSAnUEFTUzogY29ycmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyJzsKKyAgICAgICAgICAg
ICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoZ2V0
VUlGaW5pc2hTY3JpcHQoKSwgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykuaW5uZXJIVE1MID0gb3V0cHV0OworICAg
ICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAg
ICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsIHJ1blRlc3QsIGZh
bHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgICAgICN0YXJnZXQgeworICAg
ICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAgICAgICAgfQorICAgIDwvc3R5bGU+
CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9ImluaXRpYWwtc2NhbGU9MSI+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRhcmdldCI+CisgICAgPGEgaHJlZj0iaHR0cDovL2xv
Y2FsaG9zdDo1NDMyMSI+TGluayBUZXN0PC9hPgorICAgIFRoaXMgdGVzdCByZXF1aXJlcyBVSVNj
cmlwdENvbnRyb2xsZXIgdG8gcnVuLgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291904</attachid>
            <date>2016-10-17 17:39:09 -0700</date>
            <delta_ts>2016-10-17 18:11:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163406-20161017173536.patch</filename>
            <type>text/plain</type>
            <size>20647</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTEwLTEzICBNZWdhbiBH
YXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHRlc3QgYW5k
IGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBpbmZyYXN0cnVjdHVyZSB0byBzZWUgd2hlbiBh
IGxpbmsgcG9wb3ZlciBhcHBlYXJzLCBhbmQgd2hhdCBVUkwgaXQgaGFzIGxvYWRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBk
aWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfY29udGVudHNP
ZlVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wcmVzZW50
ZWRWaWV3Q29udHJvbGxlckZvclByZXZpZXdJdGVtQ29udHJvbGxlcjpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfcHJldmlld0l0ZW1Db250cm9sbGVyOmRpZERpc21pc3NQcmV2aWV3OmNv
bW1pdHRpbmc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3ByZXZpZXdJdGVtQ29udHJv
bGxlckRpZENhbmNlbFByZXZpZXc6XSk6CisKIDIwMTYtMTAtMTEgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFJFR1JFU1NJT04gKHIxOTc5NTMpOiBV
c2VyIGdlc3R1cmUgcmVxdWlyZWQgdG8gbG9hZCB2aWRlbyBpbiBpT1MgOS1idWlsdCBhcHBzCklu
ZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkocmV2aXNpb24gMjA3MTY2KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTQ1NDIsNiArNDU0MiwxNiBAQCAtICh2
b2lkKWRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24KICAgICAvLyBGb3Igc3ViY2xhc3NlcyB0
byBvdmVycmlkZS4KIH0KIAorLSAodm9pZClfZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Cit7Cisg
ICAgLy8gRm9yIHN1YmNsYXNzZXMgdG8gb3ZlcnJpZGUuCit9CisKKy0gKHZvaWQpX2RpZERpc21p
c3NGb3JjZVByZXNzUHJldmlldworeworICAgIC8vIEZvciBzdWJjbGFzc2VzIHRvIG92ZXJyaWRl
LgorfQorCiAtIChOU0FycmF5PFVJVmlldyAqPiAqKV91aVRleHRTZWxlY3Rpb25SZWN0Vmlld3MK
IHsKICAgICByZXR1cm4gW19jb250ZW50VmlldyB2YWx1ZUZvcktleVBhdGg6QCJpbnRlcmFjdGlv
bkFzc2lzdGFudC5zZWxlY3Rpb25WaWV3LnJhbmdlVmlldy5tX3JlY3RWaWV3cyJdOwpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgJKHJldmlzaW9uIDIwNzE2NikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjgsNiArMjY4
LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRpYXRlQQogLSAodm9pZClk
aWRTdGFydEZvcm1Db250cm9sSW50ZXJhY3Rpb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9T
X1RCQSkpOwogLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAorLSAodm9pZClfZGlkU2hvd0ZvcmNlUHJlc3NQcmV2
aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX2RpZERpc21p
c3NGb3JjZVByZXNzUHJldmlldyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgTlNBcnJheTxVSVZpZXcgKj4gKl91aVRl
eHRTZWxlY3Rpb25SZWN0Vmlld3MgV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwog
CiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzg0OSw2ICszODQ5LDExIEBAIC0gKE5TRGljdGlvbmFyeSAqKV9jb250
ZW50c09mVXNlckludGVyZmEKICAgICBpZiAoW3VzZXJJbnRlcmZhY2VJdGVtIGlzRXF1YWxUb1N0
cmluZzpAImFjdGlvblNoZWV0Il0pCiAgICAgICAgIHJldHVybiBAeyB1c2VySW50ZXJmYWNlSXRl
bTogW19hY3Rpb25TaGVldEFzc2lzdGFudCBjdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzXSB9
OwogICAgIAorICAgIGlmIChbdXNlckludGVyZmFjZUl0ZW0gaXNFcXVhbFRvU3RyaW5nOkAibGlu
a1ByZXZpZXdQb3BvdmVyQ29udGVudHMiXSkgeworICAgICAgICBOU1N0cmluZyAqdXJsID0gW19w
cmV2aWV3SXRlbUNvbnRyb2xsZXIgcHJldmlld0RhdGFdW1VJUHJldmlld0RhdGFMaW5rXTsKKyAg
ICAgICAgcmV0dXJuIEB7IHVzZXJJbnRlcmZhY2VJdGVtOiBAeyBAInBhZ2VVUkwiOiB1cmwgfSB9
OworICAgIH0KKyAgICAKICAgICByZXR1cm4gbmlsOwogfQogCkBAIC00MDIyLDYgKzQwMjcsOCBA
QCBzdGF0aWMgTlNTdHJpbmcgKnByZXZpZXdJZGVudGlmaWVyRm9yRWxlCiAtIChVSVZpZXdDb250
cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250cm9sbGVyRm9yUHJldmlld0l0ZW1Db250cm9sbGVy
OihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIKIHsKICAgICBpZCA8V0tVSURl
bGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQ
cml2YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICAKKyAgICBbX3dlYlZpZXcgX2Rp
ZFNob3dGb3JjZVByZXNzUHJldmlld107CiAKICAgICBOU1VSTCAqdGFyZ2V0VVJMID0gY29udHJv
bGxlci5wcmV2aWV3RGF0YVtVSVByZXZpZXdEYXRhTGlua107CiAgICAgVVJMIGNvcmVUYXJnZXRV
UkwgPSB0YXJnZXRVUkw7CkBAIC00MTI4LDYgKzQxMzUsOCBAQCAtICh2b2lkKV9wcmV2aWV3SXRl
bUNvbnRyb2xsZXI6KFVJUHJldmllCiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJW
aWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXIgY29tbWl0
dGluZzpjb21taXR0aW5nXTsKICAgICBlbHNlIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6
KV0pCiAgICAgICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGRpZERpc21pc3NQcmV2
aWV3Vmlld0NvbnRyb2xsZXI6dmlld0NvbnRyb2xsZXJdOworICAgIAorICAgIFtfd2ViVmlldyBf
ZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3XTsKIH0KIAogLSAoVUlJbWFnZSAqKV9wcmVzZW50
YXRpb25TbmFwc2hvdEZvclByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWV3SXRlbUNvbnRy
b2xsZXIgKiljb250cm9sbGVyCkBAIC00MTYxLDYgKzQxNzAsOCBAQCAtIChOU0FycmF5ICopX3By
ZXNlbnRhdGlvblJlY3RzRm9yUHJldmllCiAtICh2b2lkKV9wcmV2aWV3SXRlbUNvbnRyb2xsZXJE
aWRDYW5jZWxQcmV2aWV3OihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIKIHsK
ICAgICBfaGlnaGxpZ2h0TG9uZ1ByZXNzQ2FuQ2xpY2sgPSBOTzsKKyAgICAKKyAgICBbX3dlYlZp
ZXcgX2RpZERpc21pc3NGb3JjZVByZXNzUHJldmlld107CiB9CiAKIEBlbmQKSW5kZXg6IFRvb2xz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwNzMx
MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQxIEBACisy
MDE2LTEwLTEzICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHRlc3QgYW5kIGluZnJhc3RydWN0dXJlIGZvciBsaW5rIHBvcG92ZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MzQwNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGZ1bmN0aW9u
YWxpdHkgdGVzdCBmb3IgbGluayBwb3BvdmVycy4KKyAgICAgICAgQ2FuIHF1ZXJ5IGZvciB3aGF0
IFVSTCBpcyBsb2FkZWQsIGFuZCB0aGF0IHRoZSBwb3BvdmVyIGhhcyBhcHBlYXJlZCBvciBoYXMK
KyAgICAgICAgYmVlbiBkaXNtaXNzZWQuCisgICAgICAgIEFkZGVkIGEgbGluayBwb3BvdmVyIHRl
c3QuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9T
Lm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkU2hv
d0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgor
ICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNv
bnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBUZXN0UnVubmVy
U2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgor
ICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4
dC5oOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlk
U2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXI6OmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKToKKyAgICAgICAgKFdU
Ujo6VUlTY3JpcHRDb250cm9sbGVyOjpzZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjayk6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlzbWlzc0ZvcmNl
UHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6
OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQ
cmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVu
ZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6
OlVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWRFbmRGb3JtQ29udHJvbEludGVyYWN0
aW9uQ2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbToKKyAgICAgICAgKC1bVGVzdFJ1bm5lcldL
V2ViVmlldyBkZWFsbG9jXSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgZGlkU2hv
d0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICgtW1Rlc3RSdW5uZXJXS1dlYlZpZXcgZGlk
RGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3XSk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9p
b3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNl
UHJlc3NQcmV2aWV3Q2FsbGJhY2spOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6
OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKTogRGVsZXRl
ZC4KKwogMjAxNi0xMC0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIERpc2FibGUgVVJMUGFyc2VyIGZvciBub24tU2FmYXJpIGlPUyBhbmQg
TWFjIGFwcHMgZm9yIG5vdwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvaW9zL1VJU2NyaXB0
Q29udHJvbGxlcklPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9pb3Mv
VUlTY3JpcHRDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzMsNiArMTczLDE0IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERp
ZFMKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9s
SW50ZXJhY3Rpb25DYWxsYmFjaygpCiB7CiB9CisgICAgCit2b2lkIFVJU2NyaXB0Q29udHJvbGxl
cjo6cGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpCit7Cit9CisK
K3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZERpc21pc3NGb3JjZVByZXNz
UHJldmlld0NhbGxiYWNrKCkKK3sKK30KIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRm
b3JtU2V0V2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrKCkKIHsKSW5kZXg6IFRvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5o
CShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29u
dGV4dC9VSVNjcmlwdENvbnRleHQuaAkod29ya2luZyBjb3B5KQpAQCAtNTYsNiArNTYsOCBAQCB0
eXBlZGVmIGVudW0gIHsKICAgICBDYWxsYmFja1R5cGVEaWRFbmRTY3JvbGxpbmcsCiAgICAgQ2Fs
bGJhY2tUeXBlRGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9uLAogICAgIENhbGxiYWNrVHlw
ZURpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb24sCisgICAgQ2FsbGJhY2tUeXBlRGlkU2hvd0Zv
cmNlUHJlc3NQcmV2aWV3LAorICAgIENhbGxiYWNrVHlwZURpZERpc21pc3NGb3JjZVByZXNzUHJl
dmlldywKICAgICBDYWxsYmFja1R5cGVOb25QZXJzaXN0ZW50ID0gZmlyc3ROb25QZXJzaXN0ZW50
Q2FsbGJhY2tJRAogfSBDYWxsYmFja1R5cGU7CiAKSW5kZXg6IFRvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gMjA3MTY2KQorKysgVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlw
dENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNiAr
NzksMjggQEAgSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6OmRpZEVuZEZvcgogewogICAg
IHJldHVybiBtX2NvbnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZEVuZEZvcm1D
b250cm9sSW50ZXJhY3Rpb24pOwogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNl
dERpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7
CisgICAgbV9jb250ZXh0LT5yZWdpc3RlckNhbGxiYWNrKGNhbGxiYWNrLCBDYWxsYmFja1R5cGVE
aWRTaG93Rm9yY2VQcmVzc1ByZXZpZXcpOworICAgIHBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJl
c3NQcmV2aWV3Q2FsbGJhY2soKTsKK30KKworSlNWYWx1ZVJlZiBVSVNjcmlwdENvbnRyb2xsZXI6
OmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
bV9jb250ZXh0LT5jYWxsYmFja1dpdGhJRChDYWxsYmFja1R5cGVEaWRTaG93Rm9yY2VQcmVzc1By
ZXZpZXcpOworfQorCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6c2V0RGlkRGlzbWlzc0ZvcmNl
UHJlc3NQcmV2aWV3Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnRl
eHQtPnJlZ2lzdGVyQ2FsbGJhY2soY2FsbGJhY2ssIENhbGxiYWNrVHlwZURpZERpc21pc3NGb3Jj
ZVByZXNzUHJldmlldyk7CisgICAgcGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZp
ZXdDYWxsYmFjaygpOworfQorCitKU1ZhbHVlUmVmIFVJU2NyaXB0Q29udHJvbGxlcjo6ZGlkRGlz
bWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKSBjb25zdAoreworICAgIHJldHVybiBtX2Nv
bnRleHQtPmNhbGxiYWNrV2l0aElEKENhbGxiYWNrVHlwZURpZERpc21pc3NGb3JjZVByZXNzUHJl
dmlldyk7Cit9CiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRXaWxsQmVnaW5ab29taW5n
Q2FsbGJhY2soSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKQEAgLTI1Myw2ICsyNzUsMTQgQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlkUwogdm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCkK
IHsKIH0KKyAgICAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpwbGF0Zm9ybVNldERpZFNob3dG
b3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCkKK3sKK30KKwordm9pZCBVSVNjcmlwdENvbnRyb2xs
ZXI6OnBsYXRmb3JtU2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQorewor
fQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVnaW5ab29taW5n
Q2FsbGJhY2soKQogewpJbmRleDogVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFJ1bm5lclNo
YXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgJKHJldmlzaW9uIDIwNzE2
NikKKysrIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSw2ICs4NSwxMiBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjayhKU1ZhbHVlUmVm
KTsKICAgICBKU1ZhbHVlUmVmIGRpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFjaygp
IGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJh
Y2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjaygpIGNvbnN0OworICAgIAorICAgIHZvaWQgc2V0RGlkRGlzbWlzc0ZvcmNlUHJlc3NQ
cmV2aWV3Q2FsbGJhY2soSlNWYWx1ZVJlZik7CisgICAgSlNWYWx1ZVJlZiBkaWREaXNtaXNzRm9y
Y2VQcmVzc1ByZXZpZXdDYWxsYmFjaygpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRXaWxsQmVnaW5a
b29taW5nQ2FsbGJhY2soSlNWYWx1ZVJlZik7CiAgICAgSlNWYWx1ZVJlZiB3aWxsQmVnaW5ab29t
aW5nQ2FsbGJhY2soKSBjb25zdDsKQEAgLTExOCw2ICsxMjQsOCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBwbGF0Zm9ybVNldERpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKCk7
CiAgICAgdm9pZCBwbGF0Zm9ybVNldERpZEVuZEZvcm1Db250cm9sSW50ZXJhY3Rpb25DYWxsYmFj
aygpOworICAgIHZvaWQgcGxhdGZvcm1TZXREaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFj
aygpOworICAgIHZvaWQgcGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdDYWxs
YmFjaygpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRXaWxsQmVnaW5ab29taW5nQ2FsbGJhY2soKTsK
ICAgICB2b2lkIHBsYXRmb3JtU2V0RGlkRW5kWm9vbWluZ0NhbGxiYWNrKCk7CiAgICAgdm9pZCBw
bGF0Zm9ybVNldERpZFNob3dLZXlib2FyZENhbGxiYWNrKCk7CkluZGV4OiBUb29scy9UZXN0UnVu
bmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0Jp
bmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJv
bGxlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTEyMiw2ICsxMjIsMTAgQEAgaW50ZXJmYWNlIFVJ
U2NyaXB0Q29udHJvbGxlciB7CiAgICAgYXR0cmlidXRlIG9iamVjdCBkaWRTdGFydEZvcm1Db250
cm9sSW50ZXJhY3Rpb25DYWxsYmFjazsKICAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZEVuZEZvcm1D
b250cm9sSW50ZXJhY3Rpb25DYWxsYmFjazsKIAorICAgIC8vIEZvcmNlIHByZXNzIHByZXZpZXcg
aGFuZGxpbmcKKyAgICBhdHRyaWJ1dGUgb2JqZWN0IGRpZFNob3dGb3JjZVByZXNzUHJldmlld0Nh
bGxiYWNrOworICAgIGF0dHJpYnV0ZSBvYmplY3QgZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3
Q2FsbGJhY2s7CisKICAgICAvLyA8c2VsZWN0PiBwaWNrZXIKICAgICB2b2lkIHNlbGVjdEZvcm1B
Y2Nlc3NvcnlQaWNrZXJSb3cobG9uZyByb3dJbmRleCk7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5oCShyZXZpc2lvbiAy
MDcxNjYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsOCBAQAogCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgdm9pZCAoXmRpZFN0YXJ0Rm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNr
KSh2b2lkKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5KSB2b2lkICheZGlkRW5kRm9ybUNv
bnRyb2xJbnRlcmFjdGlvbkNhbGxiYWNrKSh2b2lkKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBj
b3B5KSB2b2lkICheZGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2spKHZvaWQpOworQHBy
b3BlcnR5IChub25hdG9taWMsIGNvcHkpIHZvaWQgKF5kaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZp
ZXdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSkgdm9pZCAoXndp
bGxCZWdpblpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29w
eSkgdm9pZCAoXmRpZEVuZFpvb21pbmdDYWxsYmFjaykodm9pZCk7CiBAcHJvcGVydHkgKG5vbmF0
b21pYywgY29weSkgdm9pZCAoXmRpZFNob3dLZXlib2FyZENhbGxiYWNrKSh2b2lkKTsKSW5kZXg6
IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdFJ1bm5lcldLV2ViVmlldy5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RSdW5uZXJXS1dlYlZp
ZXcubW0JKHJldmlzaW9uIDIwNzE2NikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VGVzdFJ1bm5lcldLV2ViVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUsNiArNzUsOCBAQCAt
ICh2b2lkKWRlYWxsb2MKIAogICAgIHNlbGYuZGlkU3RhcnRGb3JtQ29udHJvbEludGVyYWN0aW9u
Q2FsbGJhY2sgPSBuaWw7CiAgICAgc2VsZi5kaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uQ2Fs
bGJhY2sgPSBuaWw7CisgICAgc2VsZi5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9
IG5pbDsKKyAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gbmls
OwogICAgIHNlbGYud2lsbEJlZ2luWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlk
RW5kWm9vbWluZ0NhbGxiYWNrID0gbmlsOwogICAgIHNlbGYuZGlkU2hvd0tleWJvYXJkQ2FsbGJh
Y2sgPSBuaWw7CkBAIC05OSw2ICsxMDEsMTggQEAgLSAodm9pZClkaWRFbmRGb3JtQ29udHJvbElu
dGVyYWN0aW9uCiAgICAgICAgIHNlbGYuZGlkRW5kRm9ybUNvbnRyb2xJbnRlcmFjdGlvbkNhbGxi
YWNrKCk7CiB9CiAKKy0gKHZvaWQpX2RpZFNob3dGb3JjZVByZXNzUHJldmlldworeworICAgIGlm
IChzZWxmLmRpZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKQorICAgICAgICBzZWxmLmRp
ZFNob3dGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrKCk7Cit9CisKKy0gKHZvaWQpX2RpZERpc21p
c3NGb3JjZVByZXNzUHJldmlldworeworICAgIGlmIChzZWxmLmRpZERpc21pc3NGb3JjZVByZXNz
UHJldmlld0NhbGxiYWNrKQorICAgICAgICBzZWxmLmRpZERpc21pc3NGb3JjZVByZXNzUHJldmll
d0NhbGxiYWNrKCk7Cit9CisKIC0gKHZvaWQpem9vbVRvU2NhbGU6KGRvdWJsZSlzY2FsZSBhbmlt
YXRlZDooQk9PTClhbmltYXRlZCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29t
cGxldGlvbkhhbmRsZXIKIHsKICAgICBBU1NFUlQoIXNlbGYuem9vbVRvU2NhbGVDb21wbGV0aW9u
SGFuZGxlcik7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRy
b2xsZXJJT1MubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlT
Y3JpcHRDb250cm9sbGVySU9TLm1tCShyZXZpc2lvbiAyMDcxNjYpCisrKyBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM2Nyw2ICszNjcsMjYgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnBsYXRmb3JtU2V0RGlk
RQogICAgICAgICBtX2NvbnRleHQtPmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRFbmRGb3Jt
Q29udHJvbEludGVyYWN0aW9uKTsKICAgICB9OwogfQorICAgIAordm9pZCBVSVNjcmlwdENvbnRy
b2xsZXI6OnBsYXRmb3JtU2V0RGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3Q2FsbGJhY2soKQorewor
ICAgIFRlc3RSdW5uZXJXS1dlYlZpZXcgKndlYlZpZXcgPSBUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkubWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7CisgICAgd2ViVmlldy5kaWRTaG93
Rm9yY2VQcmVzc1ByZXZpZXdDYWxsYmFjayA9IF4geworICAgICAgICBpZiAoIW1fY29udGV4dCkK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgbV9jb250ZXh0LT5maXJlQ2FsbGJhY2soQ2Fs
bGJhY2tUeXBlRGlkU2hvd0ZvcmNlUHJlc3NQcmV2aWV3KTsKKyAgICB9OworfQorCit2b2lkIFVJ
U2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXREaWREaXNtaXNzRm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjaygpCit7CisgICAgVGVzdFJ1bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IFRlc3RDb250
cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKyAgICB3
ZWJWaWV3LmRpZERpc21pc3NGb3JjZVByZXNzUHJldmlld0NhbGxiYWNrID0gXiB7CisgICAgICAg
IGlmICghbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQt
PmZpcmVDYWxsYmFjayhDYWxsYmFja1R5cGVEaWRFbmRGb3JtQ29udHJvbEludGVyYWN0aW9uKTsK
KyAgICB9OworfQogCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6cGxhdGZvcm1TZXRXaWxsQmVn
aW5ab29taW5nQ2FsbGJhY2soKQogewpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjA3MTY2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTYt
MTAtMTMgIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgdGVzdCBhbmQgaW5mcmFzdHJ1Y3R1cmUgZm9yIGxpbmsgcG9wb3ZlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYzNDA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9pb3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGlu
ay5odG1sOiBBZGRlZC4KKwogMjAxNi0xMC0xMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEVuYWJsZSBVUkxQYXJzZXIgYnkgZGVmYXVsdApJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJl
c3Mtb24tbGluay1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvaW9zL2lwaG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lwaG9u
ZTcvZm9yY2UtcHJlc3Mtb24tbGluay1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSBAQAorUEFTUzogY29ycmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3MvaXBob25lNy9mb3JjZS1wcmVzcy1vbi1saW5r
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL2lw
aG9uZTcvZm9yY2UtcHJlc3Mtb24tbGluay5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9pcGhvbmU3L2ZvcmNlLXByZXNzLW9uLWxpbmsuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDExMSBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9ydD10cnVlIF0gLS0+CisKKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24g
Z2V0VUlTY3JpcHQoKQorICAgICAgICB7CisgICAgICAgICAgICByZXR1cm4gYAorICAgICAgICAg
ICAgKGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIHZhciBldmVudFN0cmVhbSA9IHsKKyAg
ICAgICAgICAgICAgICAgICAgZXZlbnRzIDogWworICAgICAgICAgICAgICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVycG9sYXRlIDogImxpbmVhciIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGltZXN0ZXA6IDAuMDI1LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0YXJ0RXZlbnQgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGlucHV0VHlwZSA6ICJoYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZU9mZnNldCA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoZXMg
OiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImZpbmdlciIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGhhc2UgOiAiYmVnYW4iLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB4IDogMjAsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgeSA6IDQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHByZXNzdXJlIDogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmRFdmVudCA6IHsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRUeXBlIDogImhhbmQiLAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lT2Zmc2V0IDogMy4wLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB0b3VjaGVzIDogWworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGlucHV0VHlwZSA6ICJmaW5nZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHBoYXNlIDogInN0YXRpb25hcnkiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGlkIDogMSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB4IDogMjAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeSA6
IDQwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNzdXJlIDog
NTAwCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAg
ICAgICB9OworCisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnNlbmRFdmVudFN0cmVhbShK
U09OLnN0cmluZ2lmeShldmVudFN0cmVhbSksIGZ1bmN0aW9uKCkge30pOworICAgICAgICAgICAg
IAorICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci5kaWRTaG93Rm9yY2VQcmVzc1ByZXZpZXdD
YWxsYmFjayA9IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZShKU09OLnN0cmluZ2lmeSh1aUNvbnRyb2xsZXIuY29udGVudHNPZlVz
ZXJJbnRlcmZhY2VJdGVtKCdsaW5rUHJldmlld1BvcG92ZXJDb250ZW50cycpKSk7CisgICAgICAg
ICAgICAgICAgfTsKKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0pKCk7YAorICAgICAgICB9
CisgICAgCisgICAgICAgIGZ1bmN0aW9uIGdldFVJRmluaXNoU2NyaXB0KCkKKyAgICAgICAgewor
ICAgICAgICAgICAgcmV0dXJuIGAKKyAgICAgICAgICAgIChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICB1aUNvbnRyb2xsZXIubGlmdFVwQXRQb2ludCgyMCwgNDAsIDEsIGZ1bmN0aW9uKCkg
eworICAgICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7Cisg
ICAgICAgICAgICAgICAgfSk7CisgICAgICAgICAgICB9KSgpO2AKKyAgICAgICAgfQorCisgICAg
ICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBpZiAoIXRlc3RS
dW5uZXIucnVuVUlTY3JpcHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICB2YXIgb3V0cHV0ID0gJyc7CisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGVz
dFJ1bm5lci5ydW5VSVNjcmlwdCkgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlT
Y3JpcHQoZ2V0VUlTY3JpcHQoKSwgZnVuY3Rpb24ocmVzdWx0KSB7CisgICAgICAgICAgICAgICAg
ICAgIHZhciB1aUNvbnRlbnRzRGljdGlvbmFyeSA9IEpTT04ucGFyc2UocmVzdWx0KTsKKyAgICAg
ICAgICAgICAgICAgICAgdmFyIHBhZ2VVUkwgPSB1aUNvbnRlbnRzRGljdGlvbmFyeS5saW5rUHJl
dmlld1BvcG92ZXJDb250ZW50cy5wYWdlVVJMOworICAgICAgICAgICAgICAgICAgICBpZiAocGFn
ZVVSTCA9ICdodHRwOi8vbG9jYWxob3N0OjU0MzIxJykKKyAgICAgICAgICAgICAgICAgICAgICAg
IG91dHB1dCArPSAnUEFTUzogY29ycmVjdCBwYWdlIGxvYWRlZCBpbiBwb3BvdmVyJzsKKyAgICAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLmlubmVySFRN
TCA9IG91dHB1dDsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGdldFVJRmluaXNoU2NyaXB0
KCksIGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgICAgICAgICAgIH0pOworICAgICAgICAgICAgICAgfSk7Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cignbG9hZCcsIHJ1blRlc3QsIGZhbHNlKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+Cisg
ICAgICAgICN0YXJnZXQgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDBweDsKKyAgICAgICAgICAg
IHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHNpbHZlcjsKKyAg
ICAgICAgfQorICAgIDwvc3R5bGU+CisgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9
ImluaXRpYWwtc2NhbGU9MSI+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InRhcmdldCI+Cisg
ICAgPGEgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo1NDMyMSI+TGluayBUZXN0PC9hPgorICAgIFRo
aXMgdGVzdCByZXF1aXJlcyBVSVNjcmlwdENvbnRyb2xsZXIgdG8gcnVuLgorPC9kaXY+Cis8L2Jv
ZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>