<?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>179787</bug_id>
          
          <creation_ts>2017-11-16 11:18:20 -0800</creation_ts>
          <short_desc>[WebKit2] Format &gt; Bold and Format &gt; Italic don&apos;t toggle between bold and italic style</short_desc>
          <delta_ts>2018-10-02 15:53:50 -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>HTML Editing</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mitz</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1372726</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-11-16 11:18:20 -0800</bug_when>
    <thetext>Steps to reproduce:

1. Open MiniBrowser
2. Choose File &gt; New WebKit2 Editor
3. Click inside the new window and type some text
4. Select some of the text
5. Choose Format &gt; Font &gt; Bold or Italic or Bigger

Results:
The font doesn’t change

Further steps:
6. Choose Format &gt; Font &gt; Show Fonts
7. Repeat step 5

Results:
The font changes

Further steps:
8. Choose some other font (different size and typeface) in the Fonts panel and close it
9. Open a new WebKit2 Editor window and repeat steps 3-5

Results:
The font changes but takes on properties of the font last selected in the now-closed Fonts panel

Notes:
-[WKWebView changeFont:] seems to be all about the Font panel, whereas -[WebView changeFont:] seems to rely more on the font manager.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1372728</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2017-11-16 11:19:30 -0800</bug_when>
    <thetext>&lt;rdar://problem/35593389&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465543</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-02 07:28:37 -0700</bug_when>
    <thetext>r235748 addresses most of this. Before r235748, all of the font-modifying menu items were no-ops; after r235748, B/I/U menu items work the first time, but fail to toggle B/I/U state.

I&apos;ll use this to track a followup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465545</commentid>
    <comment_count>3</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-02 07:35:28 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #2)
&gt; r235748 addresses most of this. Before r235748, all of the font-modifying
&gt; menu items were no-ops; after r235748, B/I/U menu items work the first time,
&gt; but fail to toggle B/I/U state.

Correction: the problem is relevant to bold and italic, but underline works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465622</commentid>
    <comment_count>4</comment_count>
      <attachid>351404</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-02 09:57:20 -0700</bug_when>
    <thetext>Created attachment 351404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465631</commentid>
    <comment_count>5</comment_count>
      <attachid>351404</attachid>
    <who name="">mitz</who>
    <bug_when>2018-10-02 10:07:18 -0700</bug_when>
    <thetext>Comment on attachment 351404
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2796
&gt; +    if (m_page-&gt;isEditable() || (NSFontPanel.sharedFontPanelExists &amp;&amp; NSFontPanel.sharedFontPanel.visible)) {

Can you explain the m_page-&gt;isEditable() test here? It seems like it might help with the steps in comment 0, but we’d still have the bug in a MiniBrowser window navigated to data:text/html,&lt;div contenteditable&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465648</commentid>
    <comment_count>6</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-02 10:21:10 -0700</bug_when>
    <thetext>(In reply to mitz from comment #5)
&gt; Comment on attachment 351404 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=351404&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2796
&gt; &gt; +    if (m_page-&gt;isEditable() || (NSFontPanel.sharedFontPanelExists &amp;&amp; NSFontPanel.sharedFontPanel.visible)) {
&gt; 
&gt; Can you explain the m_page-&gt;isEditable() test here? It seems like it might
&gt; help with the steps in comment 0, but we’d still have the bug in a
&gt; MiniBrowser window navigated to data:text/html,&lt;div contenteditable&gt;.

Yeah, this patch isn&apos;t intended fix the bug for a stock WKWebView; only one that&apos;s been made editable via SPI, à la Mail.

I&apos;m using the check for editability here as a cue that we should be aggressive in keeping NSFontManager up to date. An alternate solution I&apos;d considered was just checking if we&apos;re in a richly editable area instead, which would fix this for a normal WKWebView as well.

Would you suggest this second approach?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465662</commentid>
    <comment_count>7</comment_count>
    <who name="">mitz</who>
    <bug_when>2018-10-02 10:31:40 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #6)
&gt; (In reply to mitz from comment #5)
&gt; &gt; Comment on attachment 351404 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=351404&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm:2796
&gt; &gt; &gt; +    if (m_page-&gt;isEditable() || (NSFontPanel.sharedFontPanelExists &amp;&amp; NSFontPanel.sharedFontPanel.visible)) {
&gt; &gt; 
&gt; &gt; Can you explain the m_page-&gt;isEditable() test here? It seems like it might
&gt; &gt; help with the steps in comment 0, but we’d still have the bug in a
&gt; &gt; MiniBrowser window navigated to data:text/html,&lt;div contenteditable&gt;.
&gt; 
&gt; Yeah, this patch isn&apos;t intended fix the bug for a stock WKWebView; only one
&gt; that&apos;s been made editable via SPI, à la Mail.
&gt; 
&gt; I&apos;m using the check for editability here as a cue that we should be
&gt; aggressive in keeping NSFontManager up to date. An alternate solution I&apos;d
&gt; considered was just checking if we&apos;re in a richly editable area instead,
&gt; which would fix this for a normal WKWebView as well.
&gt; 
&gt; Would you suggest this second approach?

Assuming it makes WKWebView behave as well as WebView does, it seems reasonable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465703</commentid>
    <comment_count>8</comment_count>
      <attachid>351423</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2018-10-02 11:51:06 -0700</bug_when>
    <thetext>Created attachment 351423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465799</commentid>
    <comment_count>9</comment_count>
      <attachid>351423</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 15:53:48 -0700</bug_when>
    <thetext>Comment on attachment 351423
Patch

Clearing flags on attachment: 351423

Committed r236770: &lt;https://trac.webkit.org/changeset/236770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1465800</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-02 15:53:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351404</attachid>
            <date>2018-10-02 09:57:20 -0700</date>
            <delta_ts>2018-10-02 10:35:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179787-20181002095719.patch</filename>
            <type>text/plain</type>
            <size>8508</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0MjVkYzk4YWE5OGIyNDZi
OWRhYWM1MTIwYjg0YWFlMjVlMjFhZTIuLmIzZmI3Mjg2OGM1MGNjOTYxZjQ2NGRjNTI1OTJlOTE2
Y2IwZDdhZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTgtMTAtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIEZvcm1h
dCA+IEJvbGQgYW5kIEZvcm1hdCA+IEl0YWxpYyBkb24ndCB0b2dnbGUgYmV0d2VlbiBib2xkIGFu
ZCBpdGFsaWMgc3R5bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTc4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU1OTMzODk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgdGhlIGJ1ZyBi
eSByZWxheGluZyBvdXIgcG9saWN5IGluIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250TWFuYWdlcklm
TmVlZGVkLiBJbnN0ZWFkIG9mIHVwZGF0aW5nIG9ubHkgd2hlbgorICAgICAgICB0aGUgZm9udCBw
YW5lbCBpcyB2aXNpYmxlLCB1cGRhdGUgd2hlbiBlaXRoZXIgdGhlIGZvbnQgcGFuZWwgaXMgdmlz
aWJsZSwgb3IgdGhlIHdlYiBwYWdlIGhhcyBiZWVuIG1hZGUgZWRpdGFibGUKKyAgICAgICAgdmlh
IFNQSS4KKworICAgICAgICBUZXN0OiBGb250TWFuYWdlclRlc3RzLlRvZ2dsZUJvbGRBbmRJdGFs
aWNXaXRoTWVudUl0ZW1zCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgICgt
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmpl
Y3Q6Y2hhbmdlOmNvbnRleHQ6XSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxl
Y3Rpb25EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9u
dE1hbmFnZXJJZk5lZWRlZCk6CisKKyAgICAgICAgUmVuYW1lIHVwZGF0ZUZvbnRQYW5lbElmTmVl
ZGVkIHRvIHVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQsIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhh
dmlvci4KKworICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEF0dHJpYnV0
ZXNGcm9tU2VuZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNoYW5nZUZvbnRG
cm9tRm9udE1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9u
dFBhbmVsSWZOZWVkZWQpOiBEZWxldGVkLgorCiAyMDE4LTEwLTAyICBBbnR0aSBLb2l2aXN0byAg
PGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQ
cm9jZXNzIGNsZWFudXBzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAppbmRleCA1MWI1YTc4ODRhMjk1MzJhYzc1ZGY0MDA3MDBmZTQzM2QzODUzYzBkLi4zMjgy
N2ZlMTEzM2JjNTQzMDgxOWJkNGM0MTFhOWZjZWIyYzY0ZTRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTMyMyw3ICszMjMsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKTsKICAgICAKICAgICB2b2lkIGRpZEJlY29t
ZUVkaXRhYmxlKCk7Ci0gICAgdm9pZCB1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpOworICAgIHZv
aWQgdXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpOwogICAgIHZvaWQgY2hhbmdlRm9udEZyb21G
b250TWFuYWdlcigpOwogICAgIHZvaWQgY2hhbmdlRm9udEF0dHJpYnV0ZXNGcm9tU2VuZGVyKGlk
KTsKICAgICB2b2lkIGNoYW5nZUZvbnRDb2xvckZyb21TZW5kZXIoaWQpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA3YmY3MmRkZWMxOTFkZmVh
YWIyN2FhMmMyMmQ1ZDUzZWMxMTlhMWUxLi40ZGU5N2M1ZGU5MjE4YjQ5NWU5NjJlZjlkNWM0NzY5
MGY0NzgzN2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtMzc0LDcgKzM3NCw3IEBAIC0gKHZvaWQpb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDoo
TlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hhbmdlOihOCiAgICAgfQog
CiAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInZpc2libGUiXSAmJiBbTlNGb250
UGFuZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBvYmplY3QgPT0gW05TRm9udFBhbmVsIHNo
YXJlZEZvbnRQYW5lbF0pIHsKLSAgICAgICAgX2ltcGwtPnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVk
KCk7CisgICAgICAgIF9pbXBsLT51cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAgICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImNvbnRl
bnRMYXlvdXRSZWN0Il0gfHwgW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAidGl0bGViYXJBcHBl
YXJzVHJhbnNwYXJlbnQiXSkKQEAgLTI3MzYsNyArMjczNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZWxl
Y3Rpb25EaWRDaGFuZ2UoKQogewotICAgIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7CisgICAg
dXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpOwogICAgIGlmICghbV9pc0hhbmRsaW5nQWNjZXB0
ZWRDYW5kaWRhdGUpCiAgICAgICAgIG1fc29mdFNwYWNlUmFuZ2UgPSBOU01ha2VSYW5nZShOU05v
dEZvdW5kLCAwKTsKICNpZiBIQVZFKFRPVUNIX0JBUikKQEAgLTI3ODcsMTIgKzI3ODcsMTMgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQmVjb21lRWRpdGFibGUoKQogICAgIH0pOwogfQogCi12b2lk
IFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCit2b2lkIFdlYlZpZXdJbXBs
Ojp1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKCkKIHsKICAgICBjb25zdCBFZGl0b3JTdGF0ZSYg
ZWRpdG9yU3RhdGUgPSBtX3BhZ2UtPmVkaXRvclN0YXRlKCk7CiAgICAgaWYgKGVkaXRvclN0YXRl
LnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUpCiAgICAg
ICAgIHJldHVybjsKLSAgICBpZiAoW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10g
JiYgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIGlzVmlzaWJsZV0pIHsKKworICAgIGlm
IChtX3BhZ2UtPmlzRWRpdGFibGUoKSB8fCAoTlNGb250UGFuZWwuc2hhcmVkRm9udFBhbmVsRXhp
c3RzICYmIE5TRm9udFBhbmVsLnNoYXJlZEZvbnRQYW5lbC52aXNpYmxlKSkgewogICAgICAgICBt
X3BhZ2UtPmZvbnRBdFNlbGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUg
Zm9udFNpemUsIGJvb2wgc2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250
IGZvbnRXaXRoTmFtZTpmb250TmFtZSBzaXplOmZvbnRTaXplXTsKICAgICAgICAgICAgIGlmIChm
b250KQpAQCAtMjg0NSw3ICsyODQ2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEF0
dHJpYnV0ZXNGcm9tU2VuZGVyKGlkIHNlbmRlcikKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9w
YWdlLT5jaGFuZ2VGb250QXR0cmlidXRlcyhXZWJDb3JlOjpjb21wdXRlZEZvbnRBdHRyaWJ1dGVD
aGFuZ2VzKE5TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXIsIHNlbmRlcikpOwotICAgIHVw
ZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7CisgICAgdXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgp
OwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpjaGFuZ2VGb250RnJvbUZvbnRNYW5hZ2VyKCkKQEAg
LTI4NTUsNyArMjg1Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYW5nZUZvbnRGcm9tRm9udE1h
bmFnZXIoKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3BhZ2UtPmNoYW5nZUZvbnQoV2ViQ29y
ZTo6Y29tcHV0ZWRGb250Q2hhbmdlcyhOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRNYW5hZ2VyKSk7
Ci0gICAgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKyAgICB1cGRhdGVGb250TWFuYWdlcklm
TmVlZGVkKCk7CiB9CiAKIHN0YXRpYyBOU01lbnVJdGVtICptZW51SXRlbShpZCA8TlNWYWxpZGF0
ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXRlbSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4YWExMWNjYmY0ZjUyMDJkYTk3NDExNTUyMjUyMWYyMmQ5
ZmFlOTk3Li40NzdmMjE1YzIzNjUxZjIzZDljYjM1MzcwYjdiNzkwYmExNDgxZjFhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMTgtMTAtMDIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgW1dlYktpdDJdIEZvcm1hdCA+IEJvbGQgYW5kIEZvcm1hdCA+IEl0YWxpYyBkb24n
dCB0b2dnbGUgYmV0d2VlbiBib2xkIGFuZCBpdGFsaWMgc3R5bGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3OTc4NworICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzU1OTMzODk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCBOU0ZvbnRNYW5hZ2VyJ3Mgc2VsZWN0
ZWQgZm9udCBpcyB1cGRhdGVkIHdoZW4gYXBwbHlpbmcgaXRhbGljIGFuZCBib2xkIHN0eWxlcyB1
c2luZworICAgICAgICBtZW51IGl0ZW1zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbToKKyAgICAgICAgKHdlYlZpZXdGb3JGb250TWFuYWdl
clRlc3RpbmcpOgorICAgICAgICAobWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbik6CisgICAgICAg
IChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxOC0xMC0wMiAgVGhpYmF1bHQgU2F1bmllciAg
PHRzYXVuaWVyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0ZsYXRwYWtdIFVzZSBvdXIgb3duIGNo
ZWNrIG9mIGZsYXRwYWsgcmVwb3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9Gb250TWFuYWdlclRlc3RzLm1tCmluZGV4IDNlMTNhMTE0ODA5N2U5MTdmNTZhY2FjYmVlYTM5
ODgyZTgzNTczNTUuLjcwNjE2NzNlY2UwNjExZjMxYTk0NTRjYzEyZmIwODIyYmQ1ZDdmYzkgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5t
bQpAQCAtMTIwLDIxICsxMjAsNDkgQEAgc3RhdGljIFJldGFpblB0cjxGb250TWFuYWdlclRlc3RX
S1dlYlZpZXc+IHdlYlZpZXdGb3JGb250TWFuYWdlclRlc3RpbmcoTlNGb250TWEKICAgICAgICAg
IjxzcGFuIGlkPSdmb28nPmZvbzwvc3Bhbj4gPHNwYW4gaWQ9J2Jhcic+YmFyPC9zcGFuPiA8c3Bh
biBpZD0nYmF6Jz5iYXo8L3NwYW4+IgogICAgICAgICAiPC9ib2R5PjxzY3JpcHQ+ZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCdpbnB1dCcsIGV2ZW50ID0+IGxhc3RJbnB1dEV2ZW50ID0g
ZXZlbnQpPC9zY3JpcHQ+Il07CiAgICAgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNj
cmlwdDpAImRvY3VtZW50LmJvZHkuZm9jdXMoKSJdOworICAgIFt3ZWJWaWV3IF9zZXRFZGl0YWJs
ZTpZRVNdOwogICAgIGZvbnRNYW5hZ2VyLnRhcmdldCA9IHdlYlZpZXcuZ2V0KCk7CiAgICAgcmV0
dXJuIHdlYlZpZXc7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8TlNNZW51SXRlbUNlbGw+IG1lbnVJ
dGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNGb250QWN0aW9uIGFjdGlvbikKK3N0YXRpYyBSZXRhaW5Q
dHI8TlNNZW51SXRlbUNlbGw+IG1lbnVJdGVtQ2VsbEZvckZvbnRBY3Rpb24oTlNVSW50ZWdlciB0
YWcpCiB7CiAgICAgYXV0byBtZW51SXRlbSA9IGFkb3B0TlMoW1tOU01lbnVJdGVtIGFsbG9jXSBp
bml0XSk7CiAgICAgYXV0byBtZW51SXRlbUNlbGwgPSBhZG9wdE5TKFtbTlNNZW51SXRlbUNlbGwg
YWxsb2NdIGluaXRdKTsKICAgICBbbWVudUl0ZW1DZWxsIHNldE1lbnVJdGVtOm1lbnVJdGVtLmdl
dCgpXTsKLSAgICBbbWVudUl0ZW1DZWxsIHNldFRhZzphY3Rpb25dOworICAgIFttZW51SXRlbUNl
bGwgc2V0VGFnOnRhZ107CiAgICAgcmV0dXJuIG1lbnVJdGVtQ2VsbDsKIH0KIAogbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkgewogCitURVNUKEZvbnRNYW5hZ2VyVGVzdHMsIFRvZ2dsZUJvbGRBbmRJ
dGFsaWNXaXRoTWVudUl0ZW1zKQoreworICAgIE5TRm9udE1hbmFnZXIgKmZvbnRNYW5hZ2VyID0g
TlNGb250TWFuYWdlci5zaGFyZWRGb250TWFuYWdlcjsKKyAgICBhdXRvIHdlYlZpZXcgPSB3ZWJW
aWV3Rm9yRm9udE1hbmFnZXJUZXN0aW5nKGZvbnRNYW5hZ2VyKTsKKworICAgIFt3ZWJWaWV3IHNl
bGVjdFdvcmQ6bmlsXTsKKyAgICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2Vs
bEZvckZvbnRBY3Rpb24oTlNCb2xkRm9udE1hc2spLmF1dG9yZWxlYXNlKCldOworICAgIEVYUEVD
VF9XS19TVFJFUSgiYm9sZCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvblN0YXJ0
OkAiZm9udC13ZWlnaHQiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJib2xkIiwgW3dlYlZpZXcg
c3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9udC13ZWlnaHQiXSk7CisgICAgRVhQRUNU
X1dLX1NUUkVRKCJUaW1lcy1Cb2xkIiwgW2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5h
bWUpOworCisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250
QWN0aW9uKE5TVW5ib2xkRm9udE1hc2spLmF1dG9yZWxlYXNlKCldOworICAgIEVYUEVDVF9XS19T
VFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJm
b250LXdlaWdodCJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0
eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAImZvbnQtd2VpZ2h0Il0pOworICAgIEVYUEVDVF9X
S19TVFJFUSgiVGltZXMtUm9tYW4iLCBbZm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5mb250TmFt
ZSk7CisKKyAgICBbZm9udE1hbmFnZXIgYWRkRm9udFRyYWl0Om1lbnVJdGVtQ2VsbEZvckZvbnRB
Y3Rpb24oTlNJdGFsaWNGb250TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgRVhQRUNUX1dLX1NU
UkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZv
bnQtc3R5bGUiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJpdGFsaWMiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250LXN0eWxlIl0pOworICAgIEVYUEVDVF9XS19T
VFJFUSgiVGltZXMtSXRhbGljIiwgW2ZvbnRNYW5hZ2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUp
OworCisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0
aW9uKE5TVW5pdGFsaWNGb250TWFzaykuYXV0b3JlbGVhc2UoKV07CisgICAgRVhQRUNUX1dLX1NU
UkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZv
bnQtc3R5bGUiXSk7CisgICAgRVhQRUNUX1dLX1NUUkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250LXN0eWxlIl0pOworICAgIEVYUEVDVF9XS19T
VFJFUSgiVGltZXMtUm9tYW4iLCBbZm9udE1hbmFnZXIgc2VsZWN0ZWRGb250XS5mb250TmFtZSk7
Cit9CisKIFRFU1QoRm9udE1hbmFnZXJUZXN0cywgQ2hhbmdlRm9udFNpemVXaXRoTWVudUl0ZW1z
KQogewogICAgIE5TRm9udE1hbmFnZXIgKmZvbnRNYW5hZ2VyID0gTlNGb250TWFuYWdlci5zaGFy
ZWRGb250TWFuYWdlcjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>351423</attachid>
            <date>2018-10-02 11:51:06 -0700</date>
            <delta_ts>2018-10-02 15:53:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-179787-20181002115105.patch</filename>
            <type>text/plain</type>
            <size>9331</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NzQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE0MjVkYzk4YWE5OGIyNDZi
OWRhYWM1MTIwYjg0YWFlMjVlMjFhZTIuLjRhMzhlMzA5ZGNiNzc3ZGRlZTE2OTBiNWU2ZmE3MmNh
YThhYWQ4YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTgtMTAtMDIgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYktpdDJdIEZvcm1h
dCA+IEJvbGQgYW5kIEZvcm1hdCA+IEl0YWxpYyBkb24ndCB0b2dnbGUgYmV0d2VlbiBib2xkIGFu
ZCBpdGFsaWMgc3R5bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTc4NworICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzU1OTMzODk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRml4ZXMgdGhlIGJ1ZyBi
eSByZWxheGluZyBvdXIgcG9saWN5IGluIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250TWFuYWdlcklm
TmVlZGVkLiBJbnN0ZWFkIG9mIHVwZGF0aW5nIG9ubHkgd2hlbgorICAgICAgICB0aGUgZm9udCBw
YW5lbCBpcyB2aXNpYmxlLCB1cGRhdGUgd2hlbiBlaXRoZXIgdGhlIGZvbnQgcGFuZWwgaXMgdmlz
aWJsZSwgb3IgdGhlIHNlbGVjdGlvbiBpcyBpbiBhIHJpY2hseQorICAgICAgICBlZGl0YWJsZSBh
cmVhLiBJbiB0aGUgbGF0dGVyIGNhc2UsIGFuIHVwLXRvLWRhdGUgTlNGb250TWFuYWdlciBzdGF0
ZSBpcyBuZWVkZWQgaW4gb3JkZXIgZm9yIGNlcnRhaW4gZm9udAorICAgICAgICBmb3JtYXR0aW5n
IG1lbnUgaXRlbXMsIHN1Y2ggYXMgYm9sZCBhbmQgaXRhbGljLCB0byBjb3JyZWN0bHkgdG9nZ2xl
IHN0YXRlLgorCisgICAgICAgIFRlc3Q6IEZvbnRNYW5hZ2VyVGVzdHMuVG9nZ2xlQm9sZEFuZEl0
YWxpY1dpdGhNZW51SXRlbXMKKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9i
amVjdDpjaGFuZ2U6Y29udGV4dDpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
bGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVG
b250TWFuYWdlcklmTmVlZGVkKToKKworICAgICAgICBSZW5hbWUgdXBkYXRlRm9udFBhbmVsSWZO
ZWVkZWQgdG8gdXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCwgdG8gcmVmbGVjdCB0aGUgbmV3IGJl
aGF2aW9yLgorCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFuZ2VGb250QXR0cmli
dXRlc0Zyb21TZW5kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlRm9u
dEZyb21Gb250TWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVG
b250UGFuZWxJZk5lZWRlZCk6IERlbGV0ZWQuCisKIDIwMTgtMTAtMDIgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dl
YlByb2Nlc3MgY2xlYW51cHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCmluZGV4IDUxYjVhNzg4NGEyOTUzMmFjNzVkZjQwMDcwMGZlNDMzZDM4NTNjMGQuLjMy
ODI3ZmUxMTMzYmM1NDMwODE5YmQ0YzQxMWE5ZmNlYjJjNjRlNGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMzIzLDcgKzMyMyw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpOwogICAgIAogICAgIHZvaWQgZGlkQmVj
b21lRWRpdGFibGUoKTsKLSAgICB2b2lkIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7CisgICAg
dm9pZCB1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKCk7CiAgICAgdm9pZCBjaGFuZ2VGb250RnJv
bUZvbnRNYW5hZ2VyKCk7CiAgICAgdm9pZCBjaGFuZ2VGb250QXR0cmlidXRlc0Zyb21TZW5kZXIo
aWQpOwogICAgIHZvaWQgY2hhbmdlRm9udENvbG9yRnJvbVNlbmRlcihpZCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDdiZjcyZGRlYzE5MWRm
ZWFhYjI3YWEyYzIyZDVkNTNlYzExOWExZTEuLjVhYWRjZjY3ZDE1ZTBmZjRhNzc0MWI4NWU5ZGUy
N2E0OTcyMjI5ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCkBAIC0zNzQsNyArMzc0LDcgQEAgLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRo
OihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE4KICAgICB9
CiAKICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAidmlzaWJsZSJdICYmIFtOU0Zv
bnRQYW5lbCBzaGFyZWRGb250UGFuZWxFeGlzdHNdICYmIG9iamVjdCA9PSBbTlNGb250UGFuZWwg
c2hhcmVkRm9udFBhbmVsXSkgewotICAgICAgICBfaW1wbC0+dXBkYXRlRm9udFBhbmVsSWZOZWVk
ZWQoKTsKKyAgICAgICAgX2ltcGwtPnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY29u
dGVudExheW91dFJlY3QiXSB8fCBba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aXRsZWJhckFw
cGVhcnNUcmFuc3BhcmVudCJdKQpAQCAtMjczNiw3ICsyNzM2LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNl
bGVjdGlvbkRpZENoYW5nZSgpCiB7Ci0gICAgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKyAg
ICB1cGRhdGVGb250TWFuYWdlcklmTmVlZGVkKCk7CiAgICAgaWYgKCFtX2lzSGFuZGxpbmdBY2Nl
cHRlZENhbmRpZGF0ZSkKICAgICAgICAgbV9zb2Z0U3BhY2VSYW5nZSA9IE5TTWFrZVJhbmdlKE5T
Tm90Rm91bmQsIDApOwogI2lmIEhBVkUoVE9VQ0hfQkFSKQpAQCAtMjc4NywxOCArMjc4NywxNiBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRCZWNvbWVFZGl0YWJsZSgpCiAgICAgfSk7CiB9CiAKLXZv
aWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCkKK3ZvaWQgV2ViVmlld0lt
cGw6OnVwZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKQogewotICAgIGNvbnN0IEVkaXRvclN0YXRl
JiBlZGl0b3JTdGF0ZSA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKTsKLSAgICBpZiAoZWRpdG9yU3Rh
dGUuc2VsZWN0aW9uSXNOb25lIHx8ICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyAg
ICBCT09MIGZvbnRQYW5lbElzVmlzaWJsZSA9IE5TRm9udFBhbmVsLnNoYXJlZEZvbnRQYW5lbEV4
aXN0cyAmJiBOU0ZvbnRQYW5lbC5zaGFyZWRGb250UGFuZWwudmlzaWJsZTsKKyAgICBpZiAoIWZv
bnRQYW5lbElzVmlzaWJsZSAmJiAhbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudFJpY2hs
eUVkaXRhYmxlKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKFtOU0ZvbnRQYW5lbCBzaGFyZWRG
b250UGFuZWxFeGlzdHNdICYmIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBpc1Zpc2li
bGVdKSB7Ci0gICAgICAgIG1fcGFnZS0+Zm9udEF0U2VsZWN0aW9uKFtdKGNvbnN0IFN0cmluZyYg
Zm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwgYm9vbCBzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRz
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgICAgIE5TRm9u
dCAqZm9udCA9IFtOU0ZvbnQgZm9udFdpdGhOYW1lOmZvbnROYW1lIHNpemU6Zm9udFNpemVdOwot
ICAgICAgICAgICAgaWYgKGZvbnQpCi0gICAgICAgICAgICAgICAgW1tOU0ZvbnRNYW5hZ2VyIHNo
YXJlZEZvbnRNYW5hZ2VyXSBzZXRTZWxlY3RlZEZvbnQ6Zm9udCBpc011bHRpcGxlOnNlbGVjdGlv
bkhhc011bHRpcGxlRm9udHNdOwotICAgICAgICB9KTsKLSAgICB9CisKKyAgICBtX3BhZ2UtPmZv
bnRBdFNlbGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUs
IGJvb2wgc2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yIGVycm9yKSB7CisgICAgICAgIGlmIChOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRo
TmFtZTpmb250TmFtZSBzaXplOmZvbnRTaXplXSkKKyAgICAgICAgICAgIFtOU0ZvbnRNYW5hZ2Vy
LnNoYXJlZEZvbnRNYW5hZ2VyIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlwbGU6c2VsZWN0
aW9uSGFzTXVsdGlwbGVGb250c107CisgICAgfSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnR5
cGluZ0F0dHJpYnV0ZXNXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheY29tcGxldGlvbikoTlNE
aWN0aW9uYXJ5PE5TU3RyaW5nICosIGlkPiAqKSkKQEAgLTI4NDUsNyArMjg0Myw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OmNoYW5nZUZvbnRBdHRyaWJ1dGVzRnJvbVNlbmRlcihpZCBzZW5kZXIpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIG1fcGFnZS0+Y2hhbmdlRm9udEF0dHJpYnV0ZXMoV2ViQ29y
ZTo6Y29tcHV0ZWRGb250QXR0cmlidXRlQ2hhbmdlcyhOU0ZvbnRNYW5hZ2VyLnNoYXJlZEZvbnRN
YW5hZ2VyLCBzZW5kZXIpKTsKLSAgICB1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpOworICAgIHVw
ZGF0ZUZvbnRNYW5hZ2VySWZOZWVkZWQoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6Y2hhbmdl
Rm9udEZyb21Gb250TWFuYWdlcigpCkBAIC0yODU1LDcgKzI4NTMsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpjaGFuZ2VGb250RnJvbUZvbnRNYW5hZ2VyKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9wYWdlLT5jaGFuZ2VGb250KFdlYkNvcmU6OmNvbXB1dGVkRm9udENoYW5nZXMoTlNGb250TWFu
YWdlci5zaGFyZWRGb250TWFuYWdlcikpOwotICAgIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7
CisgICAgdXBkYXRlRm9udE1hbmFnZXJJZk5lZWRlZCgpOwogfQogCiBzdGF0aWMgTlNNZW51SXRl
bSAqbWVudUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGFhMTFjY2Jm
NGY1MjAyZGE5NzQxMTU1MjI1MjFmMjJkOWZhZTk5Ny4uNDc3ZjIxNWMyMzY1MWYyM2Q5Y2IzNTM3
MGI3Yjc5MGJhMTQ4MWYxYSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE4LTEwLTAyICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJLaXQyXSBGb3JtYXQgPiBCb2xk
IGFuZCBGb3JtYXQgPiBJdGFsaWMgZG9uJ3QgdG9nZ2xlIGJldHdlZW4gYm9sZCBhbmQgaXRhbGlj
IHN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Nzk3ODcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM1NTkzMzg5PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3QgdG8gdmVyaWZ5IHRo
YXQgTlNGb250TWFuYWdlcidzIHNlbGVjdGVkIGZvbnQgaXMgdXBkYXRlZCB3aGVuIGFwcGx5aW5n
IGl0YWxpYyBhbmQgYm9sZCBzdHlsZXMgdXNpbmcKKyAgICAgICAgbWVudSBpdGVtcy4KKworICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW06CisgICAg
ICAgICh3ZWJWaWV3Rm9yRm9udE1hbmFnZXJUZXN0aW5nKToKKyAgICAgICAgKG1lbnVJdGVtQ2Vs
bEZvckZvbnRBY3Rpb24pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTgt
MTAtMDIgIFRoaWJhdWx0IFNhdW5pZXIgIDx0c2F1bmllckBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtGbGF0cGFrXSBVc2Ugb3VyIG93biBjaGVjayBvZiBmbGF0cGFrIHJlcG9zCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRm9udE1hbmFnZXJUZXN0cy5tbQppbmRleCAzZTEz
YTExNDgwOTdlOTE3ZjU2YWNhY2JlZWEzOTg4MmU4MzU3MzU1Li43MDYxNjczZWNlMDYxMWYzMWE5
NDU0Y2MxMmZiMDgyMmJkNWQ3ZmM5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9Gb250TWFuYWdlclRlc3RzLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvbWFjL0ZvbnRNYW5hZ2VyVGVzdHMubW0KQEAgLTEyMCwyMSArMTIwLDQ5IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8Rm9udE1hbmFnZXJUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3Rm9yRm9udE1hbmFnZXJU
ZXN0aW5nKE5TRm9udE1hCiAgICAgICAgICI8c3BhbiBpZD0nZm9vJz5mb288L3NwYW4+IDxzcGFu
IGlkPSdiYXInPmJhcjwvc3Bhbj4gPHNwYW4gaWQ9J2Jheic+YmF6PC9zcGFuPiIKICAgICAgICAg
IjwvYm9keT48c2NyaXB0PmRvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignaW5wdXQnLCBl
dmVudCA9PiBsYXN0SW5wdXRFdmVudCA9IGV2ZW50KTwvc2NyaXB0PiJdOwogICAgIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5ib2R5LmZvY3VzKCkiXTsK
KyAgICBbd2ViVmlldyBfc2V0RWRpdGFibGU6WUVTXTsKICAgICBmb250TWFuYWdlci50YXJnZXQg
PSB3ZWJWaWV3LmdldCgpOwogICAgIHJldHVybiB3ZWJWaWV3OwogfQogCi1zdGF0aWMgUmV0YWlu
UHRyPE5TTWVudUl0ZW1DZWxsPiBtZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TRm9udEFjdGlv
biBhY3Rpb24pCitzdGF0aWMgUmV0YWluUHRyPE5TTWVudUl0ZW1DZWxsPiBtZW51SXRlbUNlbGxG
b3JGb250QWN0aW9uKE5TVUludGVnZXIgdGFnKQogewogICAgIGF1dG8gbWVudUl0ZW0gPSBhZG9w
dE5TKFtbTlNNZW51SXRlbSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8gbWVudUl0ZW1DZWxsID0g
YWRvcHROUyhbW05TTWVudUl0ZW1DZWxsIGFsbG9jXSBpbml0XSk7CiAgICAgW21lbnVJdGVtQ2Vs
bCBzZXRNZW51SXRlbTptZW51SXRlbS5nZXQoKV07Ci0gICAgW21lbnVJdGVtQ2VsbCBzZXRUYWc6
YWN0aW9uXTsKKyAgICBbbWVudUl0ZW1DZWxsIHNldFRhZzp0YWddOwogICAgIHJldHVybiBtZW51
SXRlbUNlbGw7CiB9CiAKIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIAorVEVTVChGb250TWFu
YWdlclRlc3RzLCBUb2dnbGVCb2xkQW5kSXRhbGljV2l0aE1lbnVJdGVtcykKK3sKKyAgICBOU0Zv
bnRNYW5hZ2VyICpmb250TWFuYWdlciA9IE5TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXI7
CisgICAgYXV0byB3ZWJWaWV3ID0gd2ViVmlld0ZvckZvbnRNYW5hZ2VyVGVzdGluZyhmb250TWFu
YWdlcik7CisKKyAgICBbd2ViVmlldyBzZWxlY3RXb3JkOm5pbF07CisgICAgW2ZvbnRNYW5hZ2Vy
IGFkZEZvbnRUcmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TQm9sZEZvbnRNYXNrKS5h
dXRvcmVsZWFzZSgpXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoImJvbGQiLCBbd2ViVmlldyBzdHls
ZVByb3BlcnR5QXRTZWxlY3Rpb25TdGFydDpAImZvbnQtd2VpZ2h0Il0pOworICAgIEVYUEVDVF9X
S19TVFJFUSgiYm9sZCIsIFt3ZWJWaWV3IHN0eWxlUHJvcGVydHlBdFNlbGVjdGlvbkVuZDpAImZv
bnQtd2VpZ2h0Il0pOworICAgIEVYUEVDVF9XS19TVFJFUSgiVGltZXMtQm9sZCIsIFtmb250TWFu
YWdlciBzZWxlY3RlZEZvbnRdLmZvbnROYW1lKTsKKworICAgIFtmb250TWFuYWdlciBhZGRGb250
VHJhaXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU1VuYm9sZEZvbnRNYXNrKS5hdXRvcmVs
ZWFzZSgpXTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIm5vcm1hbCIsIFt3ZWJWaWV3IHN0eWxlUHJv
cGVydHlBdFNlbGVjdGlvblN0YXJ0OkAiZm9udC13ZWlnaHQiXSk7CisgICAgRVhQRUNUX1dLX1NU
UkVRKCJub3JtYWwiLCBbd2ViVmlldyBzdHlsZVByb3BlcnR5QXRTZWxlY3Rpb25FbmQ6QCJmb250
LXdlaWdodCJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLVJvbWFuIiwgW2ZvbnRNYW5h
Z2VyIHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOworCisgICAgW2ZvbnRNYW5hZ2VyIGFkZEZvbnRU
cmFpdDptZW51SXRlbUNlbGxGb3JGb250QWN0aW9uKE5TSXRhbGljRm9udE1hc2spLmF1dG9yZWxl
YXNlKCldOworICAgIEVYUEVDVF9XS19TVFJFUSgiaXRhbGljIiwgW3dlYlZpZXcgc3R5bGVQcm9w
ZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXN0eWxlIl0pOworICAgIEVYUEVDVF9XS19TVFJF
USgiaXRhbGljIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9udC1z
dHlsZSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLUl0YWxpYyIsIFtmb250TWFuYWdl
ciBzZWxlY3RlZEZvbnRdLmZvbnROYW1lKTsKKworICAgIFtmb250TWFuYWdlciBhZGRGb250VHJh
aXQ6bWVudUl0ZW1DZWxsRm9yRm9udEFjdGlvbihOU1VuaXRhbGljRm9udE1hc2spLmF1dG9yZWxl
YXNlKCldOworICAgIEVYUEVDVF9XS19TVFJFUSgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9w
ZXJ0eUF0U2VsZWN0aW9uU3RhcnQ6QCJmb250LXN0eWxlIl0pOworICAgIEVYUEVDVF9XS19TVFJF
USgibm9ybWFsIiwgW3dlYlZpZXcgc3R5bGVQcm9wZXJ0eUF0U2VsZWN0aW9uRW5kOkAiZm9udC1z
dHlsZSJdKTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlRpbWVzLVJvbWFuIiwgW2ZvbnRNYW5hZ2Vy
IHNlbGVjdGVkRm9udF0uZm9udE5hbWUpOworfQorCiBURVNUKEZvbnRNYW5hZ2VyVGVzdHMsIENo
YW5nZUZvbnRTaXplV2l0aE1lbnVJdGVtcykKIHsKICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFu
YWdlciA9IE5TRm9udE1hbmFnZXIuc2hhcmVkRm9udE1hbmFnZXI7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>