<?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>157763</bug_id>
          
          <creation_ts>2016-05-16 15:51:17 -0700</creation_ts>
          <short_desc>Make handleAcceptedCandidate a public function</short_desc>
          <delta_ts>2016-05-17 16:24:29 -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>WebKit Misc.</component>
          <version>WebKit Local 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="Beth Dakin">bdakin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1193573</commentid>
    <comment_count>0</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-05-16 15:51:17 -0700</bug_when>
    <thetext>Make handleAcceptedCandidate a public function so that it can be called from another class. rdar://problem/26206397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193578</commentid>
    <comment_count>1</comment_count>
      <attachid>279057</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-05-16 15:57:24 -0700</bug_when>
    <thetext>Created attachment 279057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1193935</commentid>
    <comment_count>2</comment_count>
      <attachid>279057</attachid>
    <who name="Conrad Shultz">conrad_shultz</who>
    <bug_when>2016-05-17 12:43:13 -0700</bug_when>
    <thetext>Comment on attachment 279057
Patch

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

Looks good to me, but I&apos;m not a reviewer unfortunately.

&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1201
&gt;      [m_webView showCandidates:candidates forString:m_paragraphContextForCandidateRequest.get() inRect:rectForSelectionCandidates forSelectedRange:m_rangeForCandidates view:m_webView completionHandler:[weakEditor](NSTextCheckingResult *acceptedCandidate) {

Seems like weakEditor is no longer used.

&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1202
&gt; +        dispatch_async(dispatch_get_main_queue(), ^{ });

Why is this necessary? Can you pass nil as the completion handler (or, failing that, an empty block)?

&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1224
&gt;                  [(WebHTMLView *)view _setSoftSpaceRange:softSpaceRange];

Looks like you could declare softSpaceRange only in the case where the replacement ends in space.

Does this properly handle a case where a replacement ends in multiple spaces?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194036</commentid>
    <comment_count>3</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-05-17 15:57:43 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 279057 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=279057&amp;action=review
&gt; 
&gt; Looks good to me, but I&apos;m not a reviewer unfortunately.
&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1201
&gt; &gt;      [m_webView showCandidates:candidates forString:m_paragraphContextForCandidateRequest.get() inRect:rectForSelectionCandidates forSelectedRange:m_rangeForCandidates view:m_webView completionHandler:[weakEditor](NSTextCheckingResult *acceptedCandidate) {
&gt; 
&gt; Seems like weakEditor is no longer used.

Removed it.

&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1202
&gt; &gt; +        dispatch_async(dispatch_get_main_queue(), ^{ });
&gt; 
&gt; Why is this necessary? Can you pass nil as the completion handler (or,
&gt; failing that, an empty block)?
&gt; 

Nil does work.

&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:1224
&gt; &gt;                  [(WebHTMLView *)view _setSoftSpaceRange:softSpaceRange];
&gt; 
&gt; Looks like you could declare softSpaceRange only in the case where the
&gt; replacement ends in space.
&gt; 
&gt; Does this properly handle a case where a replacement ends in multiple spaces?

The current behavior matches NSTextView, so in that sense it does properly handle multiple spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194037</commentid>
    <comment_count>4</comment_count>
      <attachid>279176</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-05-17 15:58:05 -0700</bug_when>
    <thetext>Created attachment 279176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194043</commentid>
    <comment_count>5</comment_count>
      <attachid>279176</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-05-17 16:15:50 -0700</bug_when>
    <thetext>Comment on attachment 279176
Patch

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

&gt; Tools/TestWebKitAPI/Tests/mac/ViewWithEditableAreaLeak.mm:41
&gt; +@implementation DoNotLeakWebView

This name is global to the project (because ObjC) so you might want something that includes at least part of the name of your test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1194050</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2016-05-17 16:24:29 -0700</bug_when>
    <thetext>Thanks Tim!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279057</attachid>
            <date>2016-05-16 15:57:24 -0700</date>
            <delta_ts>2016-05-17 15:58:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>9470</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMDk3NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA1LTE2ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGhhbmRsZUFjY2VwdGVkQ2Fu
ZGlkYXRlIGEgcHVibGljIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTc3NjMKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8yNjIwNjM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhT
b2Z0U3BhY2VzIG9uIEVkaXRvckNsaWVudCBzbyB0aGF0IGl0IGNhbiAKKyAgICAgICAgYmUgaW52
b2tlZCBvbiBhbnkgRWRpdG9yQ2xpZW50LiAKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudDo6aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyk6CisKIDIw
MTYtMDUtMTYgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIHJvbGxvdXQgcjIwMDkyNC4gQ2F1c2VkIGpzL3JlZ3Jlc3Mvc3RyaW5nLXJl
cGxhY2UtZ2VuZXJpYy5odG1sIHRvIGZhaWwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCShyZXZpc2lvbiAyMDA5NDgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ2OCw2ICs0NjgsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpIG92ZXJyaWRlIHsgfQogICAg
IHZvaWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShSYW5nZSosIFZlY3RvcjxTdHJp
bmc+JiwgVmVjdG9yPFJlZlB0cjxTaGFyZWRCdWZmZXI+PiYpIG92ZXJyaWRlIHsgfQogICAgIHZv
aWQgcmVxdWVzdENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYp
IG92ZXJyaWRlIHsgfQorICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNw
YWNlcyhUZXh0Q2hlY2tpbmdSZXN1bHQpIG92ZXJyaWRlIHsgfQogCiAgICAgdm9pZCByZWdpc3Rl
clVuZG9TdGVwKFBhc3NSZWZQdHI8VW5kb1N0ZXA+KSBvdmVycmlkZTsKICAgICB2b2lkIHJlZ2lz
dGVyUmVkb1N0ZXAoUGFzc1JlZlB0cjxVbmRvU3RlcD4pIG92ZXJyaWRlOwpJbmRleDogU291cmNl
L1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCShyZXZpc2lvbiAyMDA5NDgpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wYWdlL0VkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNiArMTAwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0Q2xpZW50UGFzdGVib2FyZERhdGFGb3JSYW5nZShS
YW5nZSosIFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMsIFZlY3RvcjxSZWZQdHI8U2hh
cmVkQnVmZmVyPj4mIHBhc3RlYm9hcmREYXRhKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RDYW5kaWRhdGVzRm9yU2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyhUZXh0
Q2hlY2tpbmdSZXN1bHQpIHsgfQogCiAgICAgLy8gTm90aWZ5IGFuIGlucHV0IG1ldGhvZCB0aGF0
IGEgY29tcG9zaXRpb24gd2FzIHZvbHVudGFyaWx5IGRpc2NhcmRlZCBieSBXZWJDb3JlLCBzbyB0
aGF0IGl0IGNvdWxkIGNsZWFuIHVwIHRvby4KICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlzIG5vdCBj
YWxsZWQgd2hlbiBhIGNvbXBvc2l0aW9uIGlzIGNsb3NlZCBwZXIgYSByZXF1ZXN0IGZyb20gYW4g
aW5wdXQgbWV0aG9kLgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMjAwOTc1KQorKysgU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTYt
MDUtMTYgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgaGFu
ZGxlQWNjZXB0ZWRDYW5kaWRhdGUgYSBwdWJsaWMgZnVuY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1Nzc2MworICAgICAgICAtYW5kIGNvcnJl
c3BvbmRpbmctCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzI2MjA2Mzk3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBtYWtlcyBoYW5k
bGVBY2NlcHRlZENhbmRpZGF0ZSBhIHB1YmxpYyBtZW1iZXIgb2YgV2ViVmlld0ltcGwgCisgICAg
ICAgIGluc3RlYWQgb2YgYSBwcml2YXRlIG1lbWJlci4gCisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVX
ZWFrUHRyKToKKwogMjAxNi0wNS0xNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIFdLQSBleHRlbnNpb24gcG9pbnQgZm9yIFdLUHJlZmVyZW5j
ZXMgU1BJCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAkocmV2aXNpb24gMjAwOTQ4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw5ICs0NzgsMTIgQEAgcHVibGlj
OgogCiAgICAgYm9vbCB3aW5kb3dJc0Zyb250V2luZG93VW5kZXJNb3VzZShOU0V2ZW50ICopOwog
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAgJiYgVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTIwMCAKKyAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENoZWNraW5n
UmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSk7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
ICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9ucy5oPgogI2VuZGlm
CisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KQEAgLTUx
NCw3ICs1MTcsNiBAQCBwcml2YXRlOgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEyMDAKICAgICB2b2lkIGhhbmRsZVJlcXVlc3RlZENhbmRpZGF0ZXMoTlNJbnRl
Z2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+ICpjYW5k
aWRhdGVzKTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENoZWNraW5n
UmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSk7CiAjZW5kaWYKIAogICAgIE5TVmlldyA8V2ViVmll
d0ltcGxEZWxlZ2F0ZT4gKm1fdmlldzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIw
MDk3NSkKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDI0IEBACisyMDE2LTA1LTE2ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4K
KworICAgICAgICBNYWtlIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlIGEgcHVibGljIGZ1bmN0aW9u
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc3NjMK
KyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICByZGFyOi8vcHJvYmxlbS8yNjIw
NjM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmUtbmFtZXMgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUgdG8gCisgICAgICAgIGhh
bmRsZUFjY2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMuIFRoZSBmdW5jdGlvbiBub3cgdGFr
ZXMgYSAKKyAgICAgICAgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGluc3RlYWQgb2YgYW4g
TlNUZXh0Q2hlY2tpbmdSZXN1bHQgYW5kIGl0IGNhbiBiZSAKKyAgICAgICAgY2FsbGVkIGZyb20g
b3V0c2lkZSBvZiBXZWJFZGl0b3JDbGllbnQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZVJlcXVlc3RlZENhbmRpZGF0
ZXMpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdp
dGhTb2Z0U3BhY2VzKToKKyAgICAgICAgKHRleHRDaGVja2luZ1Jlc3VsdEZyb21OU1RleHRDaGVj
a2luZ1Jlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUFj
Y2VwdGVkQ2FuZGlkYXRlKTogRGVsZXRlZC4KKwogMjAxNi0wNS0xMyAgRW5yaWNhIENhc3VjY2kg
IDxlbnJpY2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgaW5pdGlhbGl6ZXIg
Zm9yIFdlYkV2ZW50IG9uIGlPUy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCShyZXZpc2lvbiAyMDA5NDgpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTcyLDcgKzE3Miw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKSAmJiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTIwMAogICAgIHZvaWQgcmVxdWVz
dENhbmRpZGF0ZXNGb3JTZWxlY3Rpb24oY29uc3QgV2ViQ29yZTo6VmlzaWJsZVNlbGVjdGlvbiYp
IG92ZXJyaWRlOwogICAgIHZvaWQgaGFuZGxlUmVxdWVzdGVkQ2FuZGlkYXRlcyhOU0ludGVnZXIs
IE5TQXJyYXk8TlNUZXh0Q2hlY2tpbmdSZXN1bHQgKj4gKik7Ci0gICAgdm9pZCBoYW5kbGVBY2Nl
cHRlZENhbmRpZGF0ZShOU1RleHRDaGVja2luZ1Jlc3VsdCAqKTsKKyAgICB2b2lkIGhhbmRsZUFj
Y2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMoV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0
KSBvdmVycmlkZTsKICNlbmRpZgogCiAgICAgdm9pZCByZWdpc3RlclVuZG9PclJlZG9TdGVwKFBh
c3NSZWZQdHI8V2ViQ29yZTo6VW5kb1N0ZXA+LCBib29sIGlzUmVkbyk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCShy
ZXZpc2lvbiAyMDA5NDgpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTExOTksNDIgKzExOTksMTIgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZVJlcXVlc3RlZENhbgogCiAgICAgYXV0byB3ZWFrRWRp
dG9yID0gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7CiAgICAgW21fd2ViVmlldyBz
aG93Q2FuZGlkYXRlczpjYW5kaWRhdGVzIGZvclN0cmluZzptX3BhcmFncmFwaENvbnRleHRGb3JD
YW5kaWRhdGVSZXF1ZXN0LmdldCgpIGluUmVjdDpyZWN0Rm9yU2VsZWN0aW9uQ2FuZGlkYXRlcyBm
b3JTZWxlY3RlZFJhbmdlOm1fcmFuZ2VGb3JDYW5kaWRhdGVzIHZpZXc6bV93ZWJWaWV3IGNvbXBs
ZXRpb25IYW5kbGVyOlt3ZWFrRWRpdG9yXShOU1RleHRDaGVja2luZ1Jlc3VsdCAqYWNjZXB0ZWRD
YW5kaWRhdGUpIHsKLSAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKLSAgICAgICAgICAgIGlmICghd2Vha0VkaXRvcikKLSAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICB3ZWFrRWRpdG9yLT5oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZShh
Y2NlcHRlZENhbmRpZGF0ZSk7Ci0gICAgICAgIH0pOworICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeeyB9KTsKICAgICB9XTsKIAogfQogCi1zdGF0aWMg
V2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IHRleHRDaGVja2luZ1Jlc3VsdEZyb21OU1RleHRD
aGVja2luZ1Jlc3VsdChOU1RleHRDaGVja2luZ1Jlc3VsdCAqbnNSZXN1bHQpCi17Ci0gICAgV2Vi
Q29yZTo6VGV4dENoZWNraW5nUmVzdWx0IHJlc3VsdDsKLQotICAgIHN3aXRjaCAoW25zUmVzdWx0
IHJlc3VsdFR5cGVdKSB7Ci0gICAgY2FzZSBOU1RleHRDaGVja2luZ1R5cGVTcGVsbGluZzoKLSAg
ICAgICAgcmVzdWx0LnR5cGUgPSBXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNUZXh0Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQ6Ci0g
ICAgICAgIHJlc3VsdC50eXBlID0gV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5TVGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb246
Ci0gICAgICAgIHJlc3VsdC50eXBlID0gV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZUNvcnJlY3Rp
b247Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJlc3VsdC50eXBlID0g
V2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU5vbmU7Ci0gICAgfQotCi0gICAgTlNSYW5nZSByZXN1
bHRSYW5nZSA9IFtuc1Jlc3VsdCByYW5nZV07Ci0gICAgcmVzdWx0LmxvY2F0aW9uID0gcmVzdWx0
UmFuZ2UubG9jYXRpb247Ci0gICAgcmVzdWx0Lmxlbmd0aCA9IHJlc3VsdFJhbmdlLmxlbmd0aDsK
LSAgICByZXN1bHQucmVwbGFjZW1lbnQgPSBbbnNSZXN1bHQgcmVwbGFjZW1lbnRTdHJpbmddOwot
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUFj
Y2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENoZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSkK
K3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3Bh
Y2VzKFRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRlZENhbmRpZGF0ZSkKIHsKICAgICBGcmFtZSog
ZnJhbWUgPSBjb3JlKFttX3dlYlZpZXcgX3NlbGVjdGVkT3JNYWluRnJhbWVdKTsKICAgICBpZiAo
IWZyYW1lKQpAQCAtMTI0NiwxNiArMTIxNiwxNiBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFu
ZGxlQWNjZXB0ZWRDYW5kCiAKICAgICBOU1ZpZXcgPFdlYkRvY3VtZW50Vmlldz4gKnZpZXcgPSBb
W1ttX3dlYlZpZXcgc2VsZWN0ZWRGcmFtZV0gZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAg
IGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7Ci0gICAgICAg
IE5TUmFuZ2UgcmFuZ2UgPSBbYWNjZXB0ZWRDYW5kaWRhdGUgcmFuZ2VdOwotICAgICAgICBpZiAo
YWNjZXB0ZWRDYW5kaWRhdGUucmVwbGFjZW1lbnRTdHJpbmcgJiYgW2FjY2VwdGVkQ2FuZGlkYXRl
LnJlcGxhY2VtZW50U3RyaW5nIGxlbmd0aF0gPiAwKSB7Ci0gICAgICAgICAgICBOU1JhbmdlIHJl
cGxhY2VkUmFuZ2UgPSBOU01ha2VSYW5nZShyYW5nZS5sb2NhdGlvbiwgW2FjY2VwdGVkQ2FuZGlk
YXRlLnJlcGxhY2VtZW50U3RyaW5nIGxlbmd0aF0pOworICAgICAgICB1bnNpZ25lZCByZXBsYWNl
bWVudExlbmd0aCA9IGFjY2VwdGVkQ2FuZGlkYXRlLnJlcGxhY2VtZW50Lmxlbmd0aCgpOworICAg
ICAgICBpZiAocmVwbGFjZW1lbnRMZW5ndGggPiAwKSB7CisgICAgICAgICAgICBOU1JhbmdlIHJl
cGxhY2VkUmFuZ2UgPSBOU01ha2VSYW5nZShhY2NlcHRlZENhbmRpZGF0ZS5sb2NhdGlvbiwgcmVw
bGFjZW1lbnRMZW5ndGgpOwogICAgICAgICAgICAgTlNSYW5nZSBzb2Z0U3BhY2VSYW5nZSA9IE5T
TWFrZVJhbmdlKE5TTWF4UmFuZ2UocmVwbGFjZWRSYW5nZSkgLSAxLCAxKTsKLSAgICAgICAgICAg
IGlmIChbYWNjZXB0ZWRDYW5kaWRhdGUucmVwbGFjZW1lbnRTdHJpbmcgaGFzU3VmZml4OkAiICJd
KQorICAgICAgICAgICAgaWYgKGFjY2VwdGVkQ2FuZGlkYXRlLnJlcGxhY2VtZW50LmVuZHNXaXRo
KCIgIikpCiAgICAgICAgICAgICAgICAgWyhXZWJIVE1MVmlldyAqKXZpZXcgX3NldFNvZnRTcGFj
ZVJhbmdlOnNvZnRTcGFjZVJhbmdlXTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGZyYW1lLT5l
ZGl0b3IoKS5oYW5kbGVBY2NlcHRlZENhbmRpZGF0ZSh0ZXh0Q2hlY2tpbmdSZXN1bHRGcm9tTlNU
ZXh0Q2hlY2tpbmdSZXN1bHQoYWNjZXB0ZWRDYW5kaWRhdGUpKTsKKyAgICBmcmFtZS0+ZWRpdG9y
KCkuaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoYWNjZXB0ZWRDYW5kaWRhdGUpOwogfQogI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEyMDAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>279176</attachid>
            <date>2016-05-17 15:58:05 -0700</date>
            <delta_ts>2016-05-17 16:15:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>21889</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTA1MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE2LTA1LTE3ICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGhhbmRsZUFjY2VwdGVkQ2Fu
ZGlkYXRlIGEgcHVibGljIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTc3NjMKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8yNjIwNjM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBoYW5kbGVBY2NlcHRlZENhbmRpZGF0ZVdpdGhT
b2Z0U3BhY2VzIG9uIEVkaXRvckNsaWVudCBzbyB0aGF0IGl0IGNhbiAKKyAgICAgICAgYmUgaW52
b2tlZCBvbiBhbnkgRWRpdG9yQ2xpZW50LiAKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRz
Lmg6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkVk
aXRvckNsaWVudDo6aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNwYWNlcyk6CisKIDIw
MTYtMDUtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVc2Ug
UmVuZGVyQ2hpbGRJdGVyYXRvciBtb3JlIGZvciB0cmF2ZXJzaW5nIGEgcmVuZGVyZXIncyBjaGls
ZHJlbgpJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAkocmV2aXNpb24gMjAx
MDUzKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NjgsNiArNDY4LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkV3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIGdldENsaWVudFBhc3RlYm9h
cmREYXRhRm9yUmFuZ2UoUmFuZ2UqLCBWZWN0b3I8U3RyaW5nPiYsIFZlY3RvcjxSZWZQdHI8U2hh
cmVkQnVmZmVyPj4mKSBvdmVycmlkZSB7IH0KICAgICB2b2lkIHJlcXVlc3RDYW5kaWRhdGVzRm9y
U2VsZWN0aW9uKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mKSBvdmVycmlkZSB7IH0KKyAgICB2b2lk
IGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMoVGV4dENoZWNraW5nUmVzdWx0
KSBvdmVycmlkZSB7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJVbmRvU3RlcChQYXNzUmVmUHRyPFVu
ZG9TdGVwPikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWdpc3RlclJlZG9TdGVwKFBhc3NSZWZQdHI8
VW5kb1N0ZXA+KSBvdmVycmlkZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xp
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAko
cmV2aXNpb24gMjAxMDUzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAko
d29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkV3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoUmFuZ2UqLCBWZWN0b3I8U3RyaW5nPiYg
cGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFNoYXJlZEJ1ZmZlcj4+JiBwYXN0ZWJvYXJk
RGF0YSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlv
bihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFj
Y2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMoVGV4dENoZWNraW5nUmVzdWx0KSB7IH0KIAog
ICAgIC8vIE5vdGlmeSBhbiBpbnB1dCBtZXRob2QgdGhhdCBhIGNvbXBvc2l0aW9uIHdhcyB2b2x1
bnRhcmlseSBkaXNjYXJkZWQgYnkgV2ViQ29yZSwgc28gdGhhdCBpdCBjb3VsZCBjbGVhbiB1cCB0
b28uCiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBub3QgY2FsbGVkIHdoZW4gYSBjb21wb3NpdGlv
biBpcyBjbG9zZWQgcGVyIGEgcmVxdWVzdCBmcm9tIGFuIGlucHV0IG1ldGhvZC4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHJldmlzaW9uIDIwMTA1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE2LTA1LTE3ICBCZXRoIERha2luICA8YmRh
a2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlIGEg
cHVibGljIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTc3NjMKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICByZGFy
Oi8vcHJvYmxlbS8yNjIwNjM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFRoaXMgcGF0Y2ggbWFrZXMgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUgYSBw
dWJsaWMgbWVtYmVyIG9mIFdlYlZpZXdJbXBsIAorICAgICAgICBpbnN0ZWFkIG9mIGEgcHJpdmF0
ZSBtZW1iZXIuIAorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisKIDIwMTYtMDUtMTcg
IERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBFUzZfR0VO
RVJBVE9SUyBmbGFnCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaAkocmV2aXNpb24gMjAxMDUzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3OCw5ICs0NzgsMTIgQEAg
cHVibGljOgogCiAgICAgYm9vbCB3aW5kb3dJc0Zyb250V2luZG93VW5kZXJNb3VzZShOU0V2ZW50
ICopOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAgJiYg
VVNFKEFQUExFX0lOVEVSTkFMX1NESykKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTIwMCAKKyAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENo
ZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSk7CisjaWYgVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKICNpbXBvcnQgPFdlYktpdEFkZGl0aW9ucy9XZWJWaWV3SW1wbEFkZGl0aW9ucy5oPgog
I2VuZGlmCisjZW5kaWYKIAogcHJpdmF0ZToKICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBjcmVh
dGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0K
QEAgLTUxNCw3ICs1MTcsNiBAQCBwcml2YXRlOgogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEyMDAKICAgICB2b2lkIGhhbmRsZVJlcXVlc3RlZENhbmRpZGF0ZXMo
TlNJbnRlZ2VyIHNlcXVlbmNlTnVtYmVyLCBOU0FycmF5PE5TVGV4dENoZWNraW5nUmVzdWx0ICo+
ICpjYW5kaWRhdGVzKTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENo
ZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSk7CiAjZW5kaWYKIAogICAgIE5TVmlldyA8
V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKm1fdmlldzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIwMTA1MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDI4IEBACisyMDE2LTA1LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxl
LmNvbT4KKworICAgICAgICBNYWtlIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlIGEgcHVibGljIGZ1
bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NTc3NjMKKyAgICAgICAgLWFuZCBjb3JyZXNwb25kaW5nLQorICAgICAgICByZGFyOi8vcHJvYmxl
bS8yNjIwNjM5NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRoaXMgcGF0Y2ggcmUtbmFtZXMgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUgdG8gCisgICAg
ICAgIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlV2l0aFNvZnRTcGFjZXMuIFRoZSBmdW5jdGlvbiBu
b3cgdGFrZXMgYSAKKyAgICAgICAgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IGluc3RlYWQg
b2YgYW4gTlNUZXh0Q2hlY2tpbmdSZXN1bHQgYW5kIGl0IGNhbiBiZSAKKyAgICAgICAgY2FsbGVk
IGZyb20gb3V0c2lkZSBvZiBXZWJFZGl0b3JDbGllbnQuCisKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZVJlcXVlc3RlZENh
bmRpZGF0ZXMpOgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVBY2NlcHRlZENhbmRp
ZGF0ZVdpdGhTb2Z0U3BhY2VzKToKKyAgICAgICAgKHRleHRDaGVja2luZ1Jlc3VsdEZyb21OU1Rl
eHRDaGVja2luZ1Jlc3VsdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6Omhh
bmRsZUFjY2VwdGVkQ2FuZGlkYXRlKTogRGVsZXRlZC4KKworICAgICAgICBNb3ZlIHNob3dDYW5k
aWRhdGVzIHRvIFdlYlZpZXdQcml2YXRlIHNvIHRoYXQgaXQgY2FuIGJlIG92ZXJyaWRkZW4gYnkg
YSB0ZXN0LgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3UHJpdmF0ZS5oOgorCiAyMDE2LTA1LTE3ICBEZWFuIEphY2tzb24gIDxk
aW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRVM2X0dFTkVSQVRPUlMgZmxhZwpJbmRl
eDogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmgJKHJldmlzaW9uIDIwMTA1MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDcgQEAg
cHJpdmF0ZToKICNpZiBQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMjAwCiAgICAgdm9pZCByZXF1ZXN0Q2FuZGlkYXRlc0ZvclNlbGVjdGlvbihj
b25zdCBXZWJDb3JlOjpWaXNpYmxlU2VsZWN0aW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBoYW5k
bGVSZXF1ZXN0ZWRDYW5kaWRhdGVzKE5TSW50ZWdlciwgTlNBcnJheTxOU1RleHRDaGVja2luZ1Jl
c3VsdCAqPiAqKTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENoZWNr
aW5nUmVzdWx0ICopOworICAgIHZvaWQgaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGVXaXRoU29mdFNw
YWNlcyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXN1bHQpIG92ZXJyaWRlOwogI2VuZGlmCiAKICAg
ICB2b2lkIHJlZ2lzdGVyVW5kb09yUmVkb1N0ZXAoUGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3Rl
cD4sIGJvb2wgaXNSZWRvKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0JKHJldmlzaW9uIDIwMTA1MykKKysrIFNvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTE5Nyw0NCArMTE5NywxMSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxl
UmVxdWVzdGVkQ2FuCiAgICAgaWYgKCFxdWFkcy5pc0VtcHR5KCkpCiAgICAgICAgIHJlY3RGb3JT
ZWxlY3Rpb25DYW5kaWRhdGVzID0gZnJhbWUtPnZpZXcoKS0+Y29udGVudHNUb1dpbmRvdyhxdWFk
c1swXS5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKTsKIAotICAgIGF1dG8gd2Vha0VkaXRvciA9IG1f
d2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOwotICAgIFttX3dlYlZpZXcgc2hvd0NhbmRp
ZGF0ZXM6Y2FuZGlkYXRlcyBmb3JTdHJpbmc6bV9wYXJhZ3JhcGhDb250ZXh0Rm9yQ2FuZGlkYXRl
UmVxdWVzdC5nZXQoKSBpblJlY3Q6cmVjdEZvclNlbGVjdGlvbkNhbmRpZGF0ZXMgZm9yU2VsZWN0
ZWRSYW5nZTptX3JhbmdlRm9yQ2FuZGlkYXRlcyB2aWV3Om1fd2ViVmlldyBjb21wbGV0aW9uSGFu
ZGxlcjpbd2Vha0VkaXRvcl0oTlNUZXh0Q2hlY2tpbmdSZXN1bHQgKmFjY2VwdGVkQ2FuZGlkYXRl
KSB7Ci0gICAgICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57
Ci0gICAgICAgICAgICBpZiAoIXdlYWtFZGl0b3IpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAgICAgd2Vha0VkaXRvci0+aGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoYWNjZXB0ZWRD
YW5kaWRhdGUpOwotICAgICAgICB9KTsKLSAgICB9XTsKKyAgICBbbV93ZWJWaWV3IHNob3dDYW5k
aWRhdGVzOmNhbmRpZGF0ZXMgZm9yU3RyaW5nOm1fcGFyYWdyYXBoQ29udGV4dEZvckNhbmRpZGF0
ZVJlcXVlc3QuZ2V0KCkgaW5SZWN0OnJlY3RGb3JTZWxlY3Rpb25DYW5kaWRhdGVzIGZvclNlbGVj
dGVkUmFuZ2U6bV9yYW5nZUZvckNhbmRpZGF0ZXMgdmlldzptX3dlYlZpZXcgY29tcGxldGlvbkhh
bmRsZXI6bmlsXTsKIAogfQogCi1zdGF0aWMgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IHRl
eHRDaGVja2luZ1Jlc3VsdEZyb21OU1RleHRDaGVja2luZ1Jlc3VsdChOU1RleHRDaGVja2luZ1Jl
c3VsdCAqbnNSZXN1bHQpCi17Ci0gICAgV2ViQ29yZTo6VGV4dENoZWNraW5nUmVzdWx0IHJlc3Vs
dDsKLQotICAgIHN3aXRjaCAoW25zUmVzdWx0IHJlc3VsdFR5cGVdKSB7Ci0gICAgY2FzZSBOU1Rl
eHRDaGVja2luZ1R5cGVTcGVsbGluZzoKLSAgICAgICAgcmVzdWx0LnR5cGUgPSBXZWJDb3JlOjpU
ZXh0Q2hlY2tpbmdUeXBlU3BlbGxpbmc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgTlNUZXh0
Q2hlY2tpbmdUeXBlUmVwbGFjZW1lbnQ6Ci0gICAgICAgIHJlc3VsdC50eXBlID0gV2ViQ29yZTo6
VGV4dENoZWNraW5nVHlwZVJlcGxhY2VtZW50OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIE5T
VGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb246Ci0gICAgICAgIHJlc3VsdC50eXBlID0gV2ViQ29y
ZTo6VGV4dENoZWNraW5nVHlwZUNvcnJlY3Rpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1
bHQ6Ci0gICAgICAgIHJlc3VsdC50eXBlID0gV2ViQ29yZTo6VGV4dENoZWNraW5nVHlwZU5vbmU7
Ci0gICAgfQotCi0gICAgTlNSYW5nZSByZXN1bHRSYW5nZSA9IFtuc1Jlc3VsdCByYW5nZV07Ci0g
ICAgcmVzdWx0LmxvY2F0aW9uID0gcmVzdWx0UmFuZ2UubG9jYXRpb247Ci0gICAgcmVzdWx0Lmxl
bmd0aCA9IHJlc3VsdFJhbmdlLmxlbmd0aDsKLSAgICByZXN1bHQucmVwbGFjZW1lbnQgPSBbbnNS
ZXN1bHQgcmVwbGFjZW1lbnRTdHJpbmddOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUFjY2VwdGVkQ2FuZGlkYXRlKE5TVGV4dENoZWNraW5n
UmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSkKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVB
Y2NlcHRlZENhbmRpZGF0ZVdpdGhTb2Z0U3BhY2VzKFRleHRDaGVja2luZ1Jlc3VsdCBhY2NlcHRl
ZENhbmRpZGF0ZSkKIHsKICAgICBGcmFtZSogZnJhbWUgPSBjb3JlKFttX3dlYlZpZXcgX3NlbGVj
dGVkT3JNYWluRnJhbWVdKTsKICAgICBpZiAoIWZyYW1lKQpAQCAtMTI0NiwxNiArMTIxMywxNiBA
QCB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlQWNjZXB0ZWRDYW5kCiAKICAgICBOU1ZpZXcg
PFdlYkRvY3VtZW50Vmlldz4gKnZpZXcgPSBbW1ttX3dlYlZpZXcgc2VsZWN0ZWRGcmFtZV0gZnJh
bWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgIGlmIChbdmlldyBpc0tpbmRPZkNsYXNzOltXZWJI
VE1MVmlldyBjbGFzc11dKSB7Ci0gICAgICAgIE5TUmFuZ2UgcmFuZ2UgPSBbYWNjZXB0ZWRDYW5k
aWRhdGUgcmFuZ2VdOwotICAgICAgICBpZiAoYWNjZXB0ZWRDYW5kaWRhdGUucmVwbGFjZW1lbnRT
dHJpbmcgJiYgW2FjY2VwdGVkQ2FuZGlkYXRlLnJlcGxhY2VtZW50U3RyaW5nIGxlbmd0aF0gPiAw
KSB7Ci0gICAgICAgICAgICBOU1JhbmdlIHJlcGxhY2VkUmFuZ2UgPSBOU01ha2VSYW5nZShyYW5n
ZS5sb2NhdGlvbiwgW2FjY2VwdGVkQ2FuZGlkYXRlLnJlcGxhY2VtZW50U3RyaW5nIGxlbmd0aF0p
OworICAgICAgICB1bnNpZ25lZCByZXBsYWNlbWVudExlbmd0aCA9IGFjY2VwdGVkQ2FuZGlkYXRl
LnJlcGxhY2VtZW50Lmxlbmd0aCgpOworICAgICAgICBpZiAocmVwbGFjZW1lbnRMZW5ndGggPiAw
KSB7CisgICAgICAgICAgICBOU1JhbmdlIHJlcGxhY2VkUmFuZ2UgPSBOU01ha2VSYW5nZShhY2Nl
cHRlZENhbmRpZGF0ZS5sb2NhdGlvbiwgcmVwbGFjZW1lbnRMZW5ndGgpOwogICAgICAgICAgICAg
TlNSYW5nZSBzb2Z0U3BhY2VSYW5nZSA9IE5TTWFrZVJhbmdlKE5TTWF4UmFuZ2UocmVwbGFjZWRS
YW5nZSkgLSAxLCAxKTsKLSAgICAgICAgICAgIGlmIChbYWNjZXB0ZWRDYW5kaWRhdGUucmVwbGFj
ZW1lbnRTdHJpbmcgaGFzU3VmZml4OkAiICJdKQorICAgICAgICAgICAgaWYgKGFjY2VwdGVkQ2Fu
ZGlkYXRlLnJlcGxhY2VtZW50LmVuZHNXaXRoKCIgIikpCiAgICAgICAgICAgICAgICAgWyhXZWJI
VE1MVmlldyAqKXZpZXcgX3NldFNvZnRTcGFjZVJhbmdlOnNvZnRTcGFjZVJhbmdlXTsKICAgICAg
ICAgfQogICAgIH0KIAotICAgIGZyYW1lLT5lZGl0b3IoKS5oYW5kbGVBY2NlcHRlZENhbmRpZGF0
ZSh0ZXh0Q2hlY2tpbmdSZXN1bHRGcm9tTlNUZXh0Q2hlY2tpbmdSZXN1bHQoYWNjZXB0ZWRDYW5k
aWRhdGUpKTsKKyAgICBmcmFtZS0+ZWRpdG9yKCkuaGFuZGxlQWNjZXB0ZWRDYW5kaWRhdGUoYWNj
ZXB0ZWRDYW5kaWRhdGUpOwogfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKIApJbmRleDogU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCShyZXZpc2lvbiAyMDEwNTMpCisrKyBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTcsNyArMjk3LDYgQEAgQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3T3RoZXJJbnRlcm5h
bAogCiBAaW50ZXJmYWNlIFdlYlZpZXcgKFdlYlVwZGF0ZVdlYlZpZXdBZGRpdGlvbnMpCiAtICh2
b2lkKXVwZGF0ZVdlYlZpZXdBZGRpdGlvbnM7Ci0tICh2b2lkKXNob3dDYW5kaWRhdGVzOihOU0Fy
cmF5ICopY2FuZGlkYXRlcyBmb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmVjdDooTlNS
ZWN0KXJlY3RPZlR5cGVkU3RyaW5nIGZvclNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugdmll
dzooTlNWaWV3ICopdmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNUZXh0Q2hlY2tp
bmdSZXN1bHQgKmFjY2VwdGVkQ2FuZGlkYXRlKSljb21wbGV0aW9uQmxvY2s7CiAtIChCT09MKXNo
b3VsZFJlcXVlc3RDYW5kaWRhdGVzOwogLSAodm9pZCl3ZWJWaWV3QWRkaXRpb25zV2lsbERlc3Ry
b3lWaWV3OwogQGVuZApJbmRleDogU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3UHJp
dmF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld1By
aXZhdGUuaAkocmV2aXNpb24gMjAxMDUzKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3UHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDY3LDYgKzEwNjcsMTAgQEAgQGlu
dGVyZmFjZSBOU09iamVjdCAoV2ViVmlld1Jlc291cmNlTG9hZAogLSAoTlNDYWNoZWRVUkxSZXNw
b25zZSAqKXdlYlZpZXc6KFdlYlZpZXcgKilzZW5kZXIgcmVzb3VyY2U6KGlkKWlkZW50aWZpZXIg
d2lsbENhY2hlUmVzcG9uc2U6KE5TQ2FjaGVkVVJMUmVzcG9uc2UgKilyZXNwb25zZSBmcm9tRGF0
YVNvdXJjZTooV2ViRGF0YVNvdXJjZSAqKWRhdGFTb3VyY2U7CiBAZW5kCiAKK0BpbnRlcmZhY2Ug
V2ViVmlldyAoV2ViU2hvd0NhbmRpZGF0ZXMpCistICh2b2lkKXNob3dDYW5kaWRhdGVzOihOU0Fy
cmF5ICopY2FuZGlkYXRlcyBmb3JTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIGluUmVjdDooTlNS
ZWN0KXJlY3RPZlR5cGVkU3RyaW5nIGZvclNlbGVjdGVkUmFuZ2U6KE5TUmFuZ2UpcmFuZ2Ugdmll
dzooTlNWaWV3ICopdmlldyBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNUZXh0Q2hlY2tp
bmdSZXN1bHQgKmFjY2VwdGVkQ2FuZGlkYXRlKSljb21wbGV0aW9uQmxvY2s7CitAZW5kCisKICNp
ZmRlZiBfX2NwbHVzcGx1cwogZXh0ZXJuICJDIiB7CiAjZW5kaWYKSW5kZXg6IFRvb2xzL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwMTA1MykKKysr
IFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTA1
LTE3ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIGhhbmRs
ZUFjY2VwdGVkQ2FuZGlkYXRlIGEgcHVibGljIGZ1bmN0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc3NjMKKyAgICAgICAgLWFuZCBjb3JyZXNw
b25kaW5nLQorICAgICAgICByZGFyOi8vcHJvYmxlbS8yNjIwNjM5NworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvYXV0b2ZvY3VzZWQtdGV4dC1pbnB1dC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9WaWV3V2l0aEVkaXRhYmxlQXJlYUxl
YWsubW06IEFkZGVkLgorICAgICAgICAoLVtEb05vdExlYWtXZWJWaWV3IGRlYWxsb2NdKToKKyAg
ICAgICAgKC1bRG9Ob3RMZWFrV2ViVmlldyBzaG93Q2FuZGlkYXRlczpmb3JTdHJpbmc6aW5SZWN0
OmZvclNlbGVjdGVkUmFuZ2U6dmlldzpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1b
RG9Ob3RMZWFrRnJhbWVMb2FkRGVsZWdhdGUgd2ViVmlldzpkaWRGaW5pc2hMb2FkRm9yRnJhbWU6
XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNi0wNS0xNyAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgdGVzdDI2MiBo
YXJuZXNzIHN1cHBvcnQgY29kZQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0
QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDIwMTA1MykKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOTksNiArMjk5LDggQEAKIAkJOTM2
RjcyODExQ0Q3RDlFQzAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IGluIENv
cHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNkY3MjdG
MUNEN0Q5RDAwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13aXRoLWF1ZGlvLm1wNCAqLzsgfTsKIAkJ
OTNBRjRFQ0UxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91
dEZvckltYWdlc19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTNBRjRFQ0QxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvckltYWdlc19CdW5kbGUuY3BwICovOyB9OwogCQk5M0FGNEVEMTE1MDZG
MTMwMDA3RkQ1N0UgLyogbG90cy1vZi1pbWFnZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0FGNEVDRjE1MDZGMTIzMDA3RkQ1N0Ug
LyogbG90cy1vZi1pbWFnZXMuaHRtbCAqLzsgfTsKKwkJOTNDRkE4NjcxQ0VCOUUzODAwMDU2NUE4
IC8qIGF1dG9mb2N1c2VkLXRleHQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0NGQTg2NjFDRUI5REUxMDAwNTY1QTggLyog
YXV0b2ZvY3VzZWQtdGV4dC1pbnB1dC5odG1sICovOyB9OworCQk5M0NGQTg2OTFDRUJDRkVEMDAw
NTY1QTggLyogVmlld1dpdGhFZGl0YWJsZUFyZWFMZWFrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDRkE4NjgxQ0VCQ0ZFRDAwMDU2NUE4IC8qIFZp
ZXdXaXRoRWRpdGFibGVBcmVhTGVhay5tbSAqLzsgfTsKIAkJOTNFOTQzRjIxQ0QzRTg3RTAwQUMw
OEMyIC8qIFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTNFOTQzRjExQ0QzRTg3RTAwQUMwOEMyIC8qIFZpZGVvQ29u
dHJvbHNNYW5hZ2VyLm1tICovOyB9OwogCQk5M0YxREIzNDE0REEyMDg3MDAyNEMzNjIgLyogTmV3
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0YxREIzMzE0REEyMDg3MDAyNEMzNjIgLyog
TmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0X0J1bmRsZS5jcHAgKi87IH07CiAJCTkzRjFE
QjU3MTREQjFCODQwMDI0QzM2MiAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGYWls
c19CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gOTNGMURCNTYxNERCMUI4NDAwMjRDMzYyIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxh
eW91dEZhaWxzX0J1bmRsZS5jcHAgKi87IH07CkBAIC00MjIsNiArNDI0LDcgQEAKIAkJCWRzdFBh
dGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3Owog
CQkJZmlsZXMgPSAoCisJCQkJOTNDRkE4NjcxQ0VCOUUzODAwMDU2NUE4IC8qIGF1dG9mb2N1c2Vk
LXRleHQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk5MzYyNUQyNzFDRDk3
NDFDMDA2REMxRjEgLyogbGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCTkzNkY3MjgwMUNEN0Q5RUMwMDY4QTBGQiAvKiBsYXJnZS12aWRlby13
aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJOTM2RjcyODExQ0Q3RDlF
QzAwNjhBMEZCIC8qIGxhcmdlLXZpZGVvLXdpdGgtYXVkaW8ubXA0IGluIENvcHkgUmVzb3VyY2Vz
ICovLApAQCAtNzQzLDYgKzc0Niw4IEBACiAJCTkzQUY0RUNBMTUwNkYwMzUwMDdGRDU3RSAvKiBO
ZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFnZXMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9y
SW1hZ2VzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNBRjRFQ0QxNTA2RjA2
NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckltYWdlc19CdW5k
bGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTkzQUY0RUNGMTUwNkYxMjMwMDdGRDU3RSAvKiBsb3RzLW9mLWltYWdlcy5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxvdHMtb2YtaW1hZ2VzLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5M0NGQTg2NjFDRUI5REUxMDAwNTY1QTggLyog
YXV0b2ZvY3VzZWQtdGV4dC1pbnB1dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0g
ImF1dG9mb2N1c2VkLXRleHQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTkzQ0ZBODY4MUNFQkNGRUQwMDA1NjVBOCAvKiBWaWV3V2l0aEVkaXRhYmxlQXJlYUxlYWsu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWV3V2l0aEVkaXRh
YmxlQXJlYUxlYWsubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRDNEMTlCMTdC
MUE3QjAwMEM3QzQxNSAvKiBhbGwtY29udGVudC1pbi1vbmUtaWZyYW1lLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiYWxsLWNvbnRlbnQtaW4tb25lLWlmcmFtZS5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNEM0QxOUQxN0IxQTg0MjAwQzdDNDE1IC8qIExh
eW91dE1pbGVzdG9uZXNXaXRoQWxsQ29udGVudEluRnJhbWUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0TWlsZXN0b25lc1dpdGhBbGxDb250ZW50SW5GcmFt
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzRTk0M0YxMUNEM0U4N0UwMEFD
MDhDMiAvKiBWaWRlb0NvbnRyb2xzTWFuYWdlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFZpZGVvQ29udHJvbHNNYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTE1Niw2ICsxMTYxLDcgQEAKIAkJCQk1MUJDRUU0RDFDODRGNTJDMDA0
MkM4MkUgLyogSW5kZXhlZERCTXVsdGlQcm9jZXNzLTIuaHRtbCAqLywKIAkJCQk1MUIxRUU5NDFD
ODBGQUREMDA2NEZCOTggLyogSW5kZXhlZERCUGVyc2lzdGVuY2UtMS5odG1sICovLAogCQkJCTUx
QjFFRTk1MUM4MEZBREQwMDY0RkI5OCAvKiBJbmRleGVkREJQZXJzaXN0ZW5jZS0yLmh0bWwgKi8s
CisJCQkJOTNDRkE4NjYxQ0VCOURFMTAwMDU2NUE4IC8qIGF1dG9mb2N1c2VkLXRleHQtaW5wdXQu
aHRtbCAqLywKIAkJCQk5MzZGNzI3RTFDRDdEOUQwMDA2OEEwRkIgLyogbGFyZ2UtdmlkZW8td2l0
aC1hdWRpby5odG1sICovLAogCQkJCTkzNkY3MjdGMUNEN0Q5RDAwMDY4QTBGQiAvKiBsYXJnZS12
aWRlby13aXRoLWF1ZGlvLm1wNCAqLywKIAkJCQk5MzYyNUQyNjFDRDk3M0FGMDA2REMxRjEgLyog
bGFyZ2UtdmlkZW8td2l0aG91dC1hdWRpby5odG1sICovLApAQCAtMTUxNyw2ICsxNTIzLDcgQEAK
IAkJCQk5MzlCRkUzOTE4RTU1NDg5MDA4ODMyNzUgLyogU3RyaW5nVHJ1bmNhdG9yLm1tICovLAog
CQkJCTM3QTY4OTVEMTQ4QTlCNTAwMDUxMDBGQSAvKiBTdWJyZXNvdXJjZUVycm9yQ3Jhc2gubW0g
Ki8sCiAJCQkJRTQ5MDI5NjcxNEUyRTNBNDAwMkJFREQxIC8qIFR5cGluZ1N0eWxlQ3Jhc2gubW0g
Ki8sCisJCQkJOTNDRkE4NjgxQ0VCQ0ZFRDAwMDU2NUE4IC8qIFZpZXdXaXRoRWRpdGFibGVBcmVh
TGVhay5tbSAqLywKIAkJCQk1MUZCQkI0QzE1MTNENEU5MDA4MjI3MzggLyogV2ViVmlld0NhblBh
c3RlVVJMLm1tICovLAogCQkJCUMyRUIyREQxMTZDQUM3QUMwMDlCNTJFRSAvKiBXZWJWaWV3RGlk
Q3JlYXRlSmF2YVNjcmlwdENvbnRleHQubW0gKi8sCiAJCQkJNTFCNDU0RUIxQjRFMjM2QjAwODVF
QUE2IC8qIFdlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbSAqLywKQEAg
LTIwMTMsNiArMjAyMCw3IEBACiAJCQkJNDE5NzNCNUIxQUYyMjg2QTAwNkM3QjM2IC8qIEZpbGVT
eXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0Q4OUQwM0ExQzRFREIyQTAwMDQwQTA0IC8q
IFdlYkNvcmVOU1VSTFNlc3Npb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk4M0I4OEEzNDFDODAw
NTZEMDBCQjI0MTggLyogSFRNTFBhcnNlcklkaW9tcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
M0NGQTg2OTFDRUJDRkVEMDAwNTY1QTggLyogVmlld1dpdGhFZGl0YWJsZUFyZWFMZWFrLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTFDNEZCNkUxQkFDQ0U1MDAwMzc0MkQwIC8qIFF1aWNrTG9vay5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTUxQjFFRThFMUM4MEY1ODgwMDY0RkI5OCAvKiBJbmRleGVk
REJQZXJzaXN0ZW5jZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdBNTYyMzExMUFENUFGM0UwMDk2
QjkyMCAvKiBNZW51VHlwZXNGb3JNb3VzZUV2ZW50cy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2F1dG9mb2N1c2VkLXRleHQt
aW5wdXQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9hdXRvZm9jdXNlZC10ZXh0LWlucHV0Lmh0bWwJKHJldmlzaW9uIDApCisrKyBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9hdXRvZm9jdXNlZC10ZXh0LWlucHV0
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzIEBACis8Ym9keT4KKzxpbnB1dCBpZD0i
aW5wdXQiIHR5cGU9InRleHQiIGF1dG9mb2N1cy8+Cis8L2JvZHk+CkluZGV4OiBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9WaWV3V2l0aEVkaXRhYmxlQXJlYUxlYWsubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvVmlld1dpdGhFZGl0YWJsZUFyZWFM
ZWFrLm1tCShyZXZpc2lvbiAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvVmll
d1dpdGhFZGl0YWJsZUFyZWFMZWFrLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOTAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPHd0
Zi9SZXRhaW5QdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEyMDAKKworc3RhdGljIGJvb2wgd2ViVmlld1dhc0RlYWxsb2Nh
dGVkID0gZmFsc2U7CitzdGF0aWMgYm9vbCBkaWRGaW5pc2hMb2FkID0gZmFsc2U7CitzdGF0aWMg
Ym9vbCBkaWRDYWxsU2hvd0NhbmRpZGF0ZXMgPSBmYWxzZTsKKworQGludGVyZmFjZSBEb05vdExl
YWtXZWJWaWV3IDogV2ViVmlldworQGVuZAorCitAaW1wbGVtZW50YXRpb24gRG9Ob3RMZWFrV2Vi
VmlldworCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICB3ZWJWaWV3V2FzRGVhbGxvY2F0ZWQgPSB0
cnVlOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAodm9pZClzaG93Q2FuZGlkYXRlczoo
TlNBcnJheSAqKWNhbmRpZGF0ZXMgZm9yU3RyaW5nOihOU1N0cmluZyAqKXN0cmluZyBpblJlY3Q6
KE5TUmVjdClyZWN0T2ZUeXBlZFN0cmluZyBmb3JTZWxlY3RlZFJhbmdlOihOU1JhbmdlKXJhbmdl
IHZpZXc6KE5TVmlldyAqKXZpZXcgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVGV4dENo
ZWNraW5nUmVzdWx0ICphY2NlcHRlZENhbmRpZGF0ZSkpY29tcGxldGlvbkJsb2NrCit7CisgICAg
W3N1cGVyIHNob3dDYW5kaWRhdGVzOmNhbmRpZGF0ZXMgZm9yU3RyaW5nOnN0cmluZyBpblJlY3Q6
cmVjdE9mVHlwZWRTdHJpbmcgZm9yU2VsZWN0ZWRSYW5nZTpyYW5nZSB2aWV3OnZpZXcgY29tcGxl
dGlvbkhhbmRsZXI6Y29tcGxldGlvbkJsb2NrXTsKKyAgICBkaWRDYWxsU2hvd0NhbmRpZGF0ZXMg
PSB0cnVlOworfQorCitAZW5kCisKK0BpbnRlcmZhY2UgRG9Ob3RMZWFrRnJhbWVMb2FkRGVsZWdh
dGUgOiBOU09iamVjdCA8V2ViRnJhbWVMb2FkRGVsZWdhdGU+IHsKK30KK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIERvTm90TGVha0ZyYW1lTG9hZERlbGVnYXRlCisKKy0gKHZvaWQpd2ViVmlldzoo
V2ViVmlldyAqKXNlbmRlciBkaWRGaW5pc2hMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUK
K3sKKyAgICBkaWRGaW5pc2hMb2FkID0gdHJ1ZTsKK30KKworQGVuZAorCituYW1lc3BhY2UgVGVz
dFdlYktpdEFQSSB7CisKK1RFU1QoRG9Ob3RMZWFrV2ViVmlldywgVmlld1RoYXRMb2Fkc0VkaXRh
YmxlQXJlYSkKK3sKKyAgICBEb05vdExlYWtXZWJWaWV3ICp3ZWJWaWV3ID0gW1tEb05vdExlYWtX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApXTsK
KyAgICBEb05vdExlYWtGcmFtZUxvYWREZWxlZ2F0ZSAqZGVsZWdhdGUgPSBbW0RvTm90TGVha0Zy
YW1lTG9hZERlbGVnYXRlIGFsbG9jXSBpbml0XTsKKyAgICBbd2ViVmlldyBzZXRGcmFtZUxvYWRE
ZWxlZ2F0ZTpkZWxlZ2F0ZV07CisgICAgCisgICAgTlNVUkwgKmNvbnRlbnRVUkwgPSBbW05TQnVu
ZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiYXV0b2ZvY3VzZWQtdGV4dC1pbnB1dCIg
d2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CisgICAgW1t3ZWJWaWV3IG1haW5GcmFtZV0gbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVz
dCByZXF1ZXN0V2l0aFVSTDpjb250ZW50VVJMXV07CisgICAgCisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZkaWRGaW5pc2hMb2FkKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JmRpZENhbGxTaG93Q2FuZGlkYXRlcyk7CisKKyAgICBbd2ViVmlldyByZWxlYXNlXTsKKyAgICBF
WFBFQ1RfVFJVRSh3ZWJWaWV3V2FzRGVhbGxvY2F0ZWQpOworfQorCit9CisKKyNlbmRpZiAvLyBQ
TEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAw
Cg==
</data>
<flag name="review"
          id="303238"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>