<?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>219177</bug_id>
          
          <creation_ts>2020-11-19 13:32:06 -0800</creation_ts>
          <short_desc>zero and rename boundingRect pointer in Font::platformBoundsForGlyph() to CTFontGetBoundingRectsForGlyphs()</short_desc>
          <delta_ts>2021-01-21 14:56:50 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julian Gonzalez">julian_a_gonzalez</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709261</commentid>
    <comment_count>0</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2020-11-19 13:32:06 -0800</bug_when>
    <thetext>Follow up to 218812 - zero out the CGRect structures on the stack from that change, so as not to pass uninitialized memory to CTFontGetBoundingRectsForGlyphs().

&lt;rdar://problem/71547171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709273</commentid>
    <comment_count>1</comment_count>
      <attachid>414618</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2020-11-19 14:10:35 -0800</bug_when>
    <thetext>Created attachment 414618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709299</commentid>
    <comment_count>2</comment_count>
      <attachid>414618</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-11-19 15:36:25 -0800</bug_when>
    <thetext>Comment on attachment 414618
Patch

Good to have the code match what the change log says. And it was my comment that led to this change.

But why does this need to be a zero rect rather than uninitialized? And why can’t we pass nullptr instead?

A little confused about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709323</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-11-19 16:29:34 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 414618 [details]
&gt; Patch
&gt; 
&gt; Good to have the code match what the change log says. And it was my comment
&gt; that led to this change.

Yeah, we should mention this in the change log.

&gt; But why does this need to be a zero rect rather than uninitialized? And why
&gt; can’t we pass nullptr instead?

So the person who maintains this function told us that passing nullptr will result in heap memory allocation so it&apos;s slightly more efficient to pass in a rect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719956</commentid>
    <comment_count>4</comment_count>
      <attachid>417721</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-15 12:41:23 -0800</bug_when>
    <thetext>Created attachment 417721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719966</commentid>
    <comment_count>5</comment_count>
      <attachid>417721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 13:02:20 -0800</bug_when>
    <thetext>Comment on attachment 417721
Patch

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

&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:703
&gt; +    CGRect zeroRect = { };
&gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(), platformData().orientation() == FontOrientation::Vertical ? kCTFontOrientationVertical : kCTFontOrientationHorizontal, &amp;glyph, &amp;zeroRect, 1);

After more research I now realize this is an *out* argument from CTFontGetBoundingRectsForGlyphs. So it must not be named &quot;emptyRect&quot; or &quot;zeroRect&quot;, since it will get a value and will not be empty or zero! Instead we should pass nullptr. The CTFontGetBoundingRectsForGlyphs documentation for this arguments says &quot;Can be NULL, in which case only the overall bounding rect is calculated.&quot; I suggest we use nullptr.

&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:748
&gt; +        CGRect zeroRect = { };
&gt; +        if (!CGRectIsEmpty(CTFontGetBoundingRectsForGlyphs(platformFont, kCTFontOrientationDefault, &amp;lowercaseAGlyph, &amp;zeroRect, 1)))

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719981</commentid>
    <comment_count>6</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-15 13:37:03 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 417721 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417721&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:703
&gt; &gt; +    CGRect zeroRect = { };
&gt; &gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(), platformData().orientation() == FontOrientation::Vertical ? kCTFontOrientationVertical : kCTFontOrientationHorizontal, &amp;glyph, &amp;zeroRect, 1);
&gt; 
&gt; After more research I now realize this is an *out* argument from
&gt; CTFontGetBoundingRectsForGlyphs. So it must not be named &quot;emptyRect&quot; or
&gt; &quot;zeroRect&quot;, since it will get a value and will not be empty or zero! Instead
&gt; we should pass nullptr. The CTFontGetBoundingRectsForGlyphs documentation
&gt; for this arguments says &quot;Can be NULL, in which case only the overall
&gt; bounding rect is calculated.&quot; I suggest we use nullptr.
&gt; 

Darin, the reason for 218812 was that passing nullptr is not as performant as passing stack-allocated memory, because a heap allocation is performed in that case.
This is what Ryosuke was getting at when he wrote:

&quot;So the person who maintains this function told us that passing nullptr will result in heap memory allocation so it&apos;s slightly more efficient to pass in a rect.&quot;

&gt; &gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:748
&gt; &gt; +        CGRect zeroRect = { };
&gt; &gt; +        if (!CGRectIsEmpty(CTFontGetBoundingRectsForGlyphs(platformFont, kCTFontOrientationDefault, &amp;lowercaseAGlyph, &amp;zeroRect, 1)))
&gt; 
&gt; Ditto.

If we want to ignore the recommendation and just use nullptr, then we should just revert 218812.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719988</commentid>
    <comment_count>7</comment_count>
      <attachid>417721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 13:48:31 -0800</bug_when>
    <thetext>Comment on attachment 417721
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:703
&gt;&gt;&gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(), platformData().orientation() == FontOrientation::Vertical ? kCTFontOrientationVertical : kCTFontOrientationHorizontal, &amp;glyph, &amp;zeroRect, 1);
&gt;&gt; 
&gt;&gt; After more research I now realize this is an *out* argument from CTFontGetBoundingRectsForGlyphs. So it must not be named &quot;emptyRect&quot; or &quot;zeroRect&quot;, since it will get a value and will not be empty or zero! Instead we should pass nullptr. The CTFontGetBoundingRectsForGlyphs documentation for this arguments says &quot;Can be NULL, in which case only the overall bounding rect is calculated.&quot; I suggest we use nullptr.
&gt; 
&gt; Darin, the reason for 218812 was that passing nullptr is not as performant as passing stack-allocated memory, because a heap allocation is performed in that case.
&gt; This is what Ryosuke was getting at when he wrote:
&gt; 
&gt; &quot;So the person who maintains this function told us that passing nullptr will result in heap memory allocation so it&apos;s slightly more efficient to pass in a rect.&quot;

Oops, forgot that. Then we should not name this &quot;zero rect&quot; but otherwise this is great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1719999</commentid>
    <comment_count>8</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-15 13:59:12 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 417721 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=417721&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:703
&gt; &gt;&gt;&gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(), platformData().orientation() == FontOrientation::Vertical ? kCTFontOrientationVertical : kCTFontOrientationHorizontal, &amp;glyph, &amp;zeroRect, 1);
&gt; &gt;&gt; 
&gt; &gt;&gt; After more research I now realize this is an *out* argument from CTFontGetBoundingRectsForGlyphs. So it must not be named &quot;emptyRect&quot; or &quot;zeroRect&quot;, since it will get a value and will not be empty or zero! Instead we should pass nullptr. The CTFontGetBoundingRectsForGlyphs documentation for this arguments says &quot;Can be NULL, in which case only the overall bounding rect is calculated.&quot; I suggest we use nullptr.
&gt; &gt; 
&gt; &gt; Darin, the reason for 218812 was that passing nullptr is not as performant as passing stack-allocated memory, because a heap allocation is performed in that case.
&gt; &gt; This is what Ryosuke was getting at when he wrote:
&gt; &gt; 
&gt; &gt; &quot;So the person who maintains this function told us that passing nullptr will result in heap memory allocation so it&apos;s slightly more efficient to pass in a rect.&quot;
&gt; 
&gt; Oops, forgot that. Then we should not name this &quot;zero rect&quot; but otherwise
&gt; this is great.

Sounds good. How does &apos;dummyRect&apos; sound? (possibly with a comment?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720003</commentid>
    <comment_count>9</comment_count>
      <attachid>417721</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 14:01:11 -0800</bug_when>
    <thetext>Comment on attachment 417721
Patch

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:703
&gt;&gt;&gt;&gt;&gt; +    boundingBox = CTFontGetBoundingRectsForGlyphs(m_platformData.ctFont(), platformData().orientation() == FontOrientation::Vertical ? kCTFontOrientationVertical : kCTFontOrientationHorizontal, &amp;glyph, &amp;zeroRect, 1);
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; After more research I now realize this is an *out* argument from CTFontGetBoundingRectsForGlyphs. So it must not be named &quot;emptyRect&quot; or &quot;zeroRect&quot;, since it will get a value and will not be empty or zero! Instead we should pass nullptr. The CTFontGetBoundingRectsForGlyphs documentation for this arguments says &quot;Can be NULL, in which case only the overall bounding rect is calculated.&quot; I suggest we use nullptr.
&gt;&gt;&gt; 
&gt;&gt;&gt; Darin, the reason for 218812 was that passing nullptr is not as performant as passing stack-allocated memory, because a heap allocation is performed in that case.
&gt;&gt;&gt; This is what Ryosuke was getting at when he wrote:
&gt;&gt;&gt; 
&gt;&gt;&gt; &quot;So the person who maintains this function told us that passing nullptr will result in heap memory allocation so it&apos;s slightly more efficient to pass in a rect.&quot;
&gt;&gt; 
&gt;&gt; Oops, forgot that. Then we should not name this &quot;zero rect&quot; but otherwise this is great.
&gt; 
&gt; Sounds good. How does &apos;dummyRect&apos; sound? (possibly with a comment?)

That’s fine. I might also suggest &quot;ignoredRect&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720042</commentid>
    <comment_count>10</comment_count>
      <attachid>417743</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-15 14:50:38 -0800</bug_when>
    <thetext>Created attachment 417743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720044</commentid>
    <comment_count>11</comment_count>
      <attachid>417743</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 14:57:46 -0800</bug_when>
    <thetext>Comment on attachment 417743
Patch

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

&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:702
&gt; +    CGRect ignoredRect = { };

No reason for the &quot;= { }&quot;. The name emptyRect confused me into thinking it was needed. So the only thing wrong was the name, the code was totally fine. This patch is OK as is, but also one that just ranges would be fine. And the bug could be retitled since this is just naming clarity, no need to zero anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720046</commentid>
    <comment_count>12</comment_count>
      <attachid>417743</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-01-15 14:58:10 -0800</bug_when>
    <thetext>Comment on attachment 417743
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:702
&gt;&gt; +    CGRect ignoredRect = { };
&gt; 
&gt; No reason for the &quot;= { }&quot;. The name emptyRect confused me into thinking it was needed. So the only thing wrong was the name, the code was totally fine. This patch is OK as is, but also one that just ranges would be fine. And the bug could be retitled since this is just naming clarity, no need to zero anything.

that just *renames*, not that just *ranges*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1720084</commentid>
    <comment_count>13</comment_count>
      <attachid>417743</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2021-01-15 17:16:22 -0800</bug_when>
    <thetext>Comment on attachment 417743
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/coretext/FontCoreText.cpp:702
&gt;&gt;&gt; +    CGRect ignoredRect = { };
&gt;&gt; 
&gt;&gt; No reason for the &quot;= { }&quot;. The name emptyRect confused me into thinking it was needed. So the only thing wrong was the name, the code was totally fine. This patch is OK as is, but also one that just ranges would be fine. And the bug could be retitled since this is just naming clarity, no need to zero anything.
&gt; 
&gt; that just *renames*, not that just *ranges*

It&apos;s probably still a good practice to zero it out so that there is no ambiguity we won&apos;t have indeterministic behavior here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721292</commentid>
    <comment_count>14</comment_count>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-21 12:56:29 -0800</bug_when>
    <thetext>OK - I&apos;ll rename the variable (keeping the zeroing as requested by Ryosuke) and retitle the bug here slightly to reflect the new plan. Thanks folks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721318</commentid>
    <comment_count>15</comment_count>
      <attachid>418080</attachid>
    <who name="Julian Gonzalez">julian_a_gonzalez</who>
    <bug_when>2021-01-21 13:42:17 -0800</bug_when>
    <thetext>Created attachment 418080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1721355</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-21 14:56:48 -0800</bug_when>
    <thetext>Committed r271715: &lt;https://trac.webkit.org/changeset/271715&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 418080.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414618</attachid>
            <date>2020-11-19 14:10:35 -0800</date>
            <delta_ts>2021-01-15 12:41:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219177-20201119141034.patch</filename>
            <type>text/plain</type>
            <size>2795</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmY5YjIzYWM5ZjVlYWI3
ZTU0NmMwMjljMWRmZDYwNTM3YzRmZmFhYS4uNTM3MDFkMmY0NDUzZjQ3NTAxYjRkMGRhMTBlZGFj
Y2QzZGUxZTgxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTExLTE5ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgemVy
byBib3VuZGluZ1JlY3QgcG9pbnRlciBpbiBGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKCkg
dG8gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocygpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY3R1YWxseSB6ZXJvIGEgQ0dSZWN0IHN0cnVj
dCBpbiB0d28gcGxhY2VzIHdoZXJlIHRoZSBjb3VudCBhcmd1bWVudAorICAgICAgICB0byBDVEZv
bnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKCkgaXMgYWxyZWFkeSAxLgorCisgICAgICAgIE5v
IG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6
OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMgY29uc3QpOgorCiAyMDIwLTExLTE4ICBB
bnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtXZWIgQW5pbWF0
aW9uc10gRW5zdXJlIHdlIGRvbid0IHNjaGVkdWxlIGFuaW1hdGlvbiB1ZHBhdGVzIHdoZW4gdGhl
cmUgYXJlIG5vIHN0eWxlcyB0byB1cGRhdGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q29yZVRleHQuY3BwCmluZGV4IDU5NDNh
NjFhYzZhMDE4MGU2YzdiNGIwMTFhYzFiOThhNDE1ZjNmMTAuLmUyMWVkNmZjMjNiNGU1NDI4ZjY2
MGQ0ZWMxZDIzMjBiYTM4NWI1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVUZXh0LmNwcApAQCAtNjk5LDggKzY5
OSw4IEBAIHZvaWQgRm9udDo6ZGV0ZXJtaW5lUGl0Y2goKQogRmxvYXRSZWN0IEZvbnQ6OnBsYXRm
b3JtQm91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiB7CiAgICAgRmxvYXRSZWN0IGJv
dW5kaW5nQm94OwotICAgIENHUmVjdCBlbXB0eVJlY3Q7Ci0gICAgYm91bmRpbmdCb3ggPSBDVEZv
bnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBwbGF0
Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmllbnRhdGlvbjo6VmVydGljYWwgPyBr
Q1RGb250T3JpZW50YXRpb25WZXJ0aWNhbCA6IGtDVEZvbnRPcmllbnRhdGlvbkhvcml6b250YWws
ICZnbHlwaCwgJmVtcHR5UmVjdCwgMSk7CisgICAgQ0dSZWN0IHplcm9SZWN0ID0geyB9OworICAg
IGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhtX3BsYXRmb3Jt
RGF0YS5jdEZvbnQoKSwgcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBGb250T3JpZW50
YXRpb246OlZlcnRpY2FsID8ga0NURm9udE9yaWVudGF0aW9uVmVydGljYWwgOiBrQ1RGb250T3Jp
ZW50YXRpb25Ib3Jpem9udGFsLCAmZ2x5cGgsICZ6ZXJvUmVjdCwgMSk7CiAgICAgYm91bmRpbmdC
b3guc2V0WSgtYm91bmRpbmdCb3gubWF4WSgpKTsKICAgICBpZiAobV9zeW50aGV0aWNCb2xkT2Zm
c2V0KQogICAgICAgICBib3VuZGluZ0JveC5zZXRXaWR0aChib3VuZGluZ0JveC53aWR0aCgpICsg
bV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKQEAgLTc0NCw4ICs3NDQsOCBAQCBib29sIEZvbnQ6Omlz
UHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMoKSBjb25zdAogICAgIFVuaUNoYXIgbG93ZXJj
YXNlQUNoYXJhY3RlciA9ICdhJzsKICAgICBDR0dseXBoIGxvd2VyY2FzZUFHbHlwaDsKICAgICBp
ZiAoQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhwbGF0Zm9ybUZvbnQsICZsb3dlcmNhc2VB
Q2hhcmFjdGVyLCAmbG93ZXJjYXNlQUdseXBoLCAxKSkgewotICAgICAgICBDR1JlY3QgZW1wdHlS
ZWN0OwotICAgICAgICBpZiAoIUNHUmVjdElzRW1wdHkoQ1RGb250R2V0Qm91bmRpbmdSZWN0c0Zv
ckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRPcmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNh
c2VBR2x5cGgsICZlbXB0eVJlY3QsIDEpKSkKKyAgICAgICAgQ0dSZWN0IHplcm9SZWN0ID0geyB9
OworICAgICAgICBpZiAoIUNHUmVjdElzRW1wdHkoQ1RGb250R2V0Qm91bmRpbmdSZWN0c0Zvckds
eXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRPcmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VB
R2x5cGgsICZ6ZXJvUmVjdCwgMSkpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417721</attachid>
            <date>2021-01-15 12:41:23 -0800</date>
            <delta_ts>2021-01-15 14:50:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219177-20210115124123.patch</filename>
            <type>text/plain</type>
            <size>2873</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA3ZmUyOTg1YTk2YjBl
ODVlNjNlNTQwN2I0ZjdiMjU1NjZiMzRmZS4uZmY4YmI0NDBlNzczMWFkYzA3ZmI0YWJhOTc2MjQ2
YjQyZGZjZGQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTE1ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgemVy
byBib3VuZGluZ1JlY3QgcG9pbnRlciBpbiBGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKCkg
dG8gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocygpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY3R1YWxseSB6ZXJvIGEgQ0dSZWN0IHN0cnVj
dCBpbiB0d28gcGxhY2VzIHdoZXJlIHRoZSBjb3VudCBhcmd1bWVudAorICAgICAgICB0byBDVEZv
bnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKCkgaXMgYWxyZWFkeSAxLgorICAgICAgICBUaGFu
a3MgdG8gRGFyaW4gQWRsZXIgZm9yIHBvaW50aW5nIG91dCB0aGF0IGJ1ZyAyMTg4MTIgcHJvdmlk
ZWQKKyAgICAgICAgYW4gdW5pbml0aWFsaXplZCBpbnN0ZWFkIG9mIHplcm8gQ0dSZWN0LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMgY29uc3QpOgorCiAyMDIx
LTAxLTA3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtXaW5DYWlyb10gV2ViR0wgaXNuJ3Qgc2hvd24gaW4gbm9uLUFDIG1vZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q29y
ZVRleHQuY3BwCmluZGV4IDU5NDNhNjFhYzZhMDE4MGU2YzdiNGIwMTFhYzFiOThhNDE1ZjNmMTAu
LmUyMWVkNmZjMjNiNGU1NDI4ZjY2MGQ0ZWMxZDIzMjBiYTM4NWI1N2YgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVU
ZXh0LmNwcApAQCAtNjk5LDggKzY5OSw4IEBAIHZvaWQgRm9udDo6ZGV0ZXJtaW5lUGl0Y2goKQog
RmxvYXRSZWN0IEZvbnQ6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CiB7CiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwotICAgIENHUmVjdCBlbXB0eVJlY3Q7Ci0g
ICAgYm91bmRpbmdCb3ggPSBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKG1fcGxhdGZv
cm1EYXRhLmN0Rm9udCgpLCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmll
bnRhdGlvbjo6VmVydGljYWwgPyBrQ1RGb250T3JpZW50YXRpb25WZXJ0aWNhbCA6IGtDVEZvbnRP
cmllbnRhdGlvbkhvcml6b250YWwsICZnbHlwaCwgJmVtcHR5UmVjdCwgMSk7CisgICAgQ0dSZWN0
IHplcm9SZWN0ID0geyB9OworICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0
c0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwgcGxhdGZvcm1EYXRhKCkub3JpZW50
YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsID8ga0NURm9udE9yaWVudGF0aW9u
VmVydGljYWwgOiBrQ1RGb250T3JpZW50YXRpb25Ib3Jpem9udGFsLCAmZ2x5cGgsICZ6ZXJvUmVj
dCwgMSk7CiAgICAgYm91bmRpbmdCb3guc2V0WSgtYm91bmRpbmdCb3gubWF4WSgpKTsKICAgICBp
ZiAobV9zeW50aGV0aWNCb2xkT2Zmc2V0KQogICAgICAgICBib3VuZGluZ0JveC5zZXRXaWR0aChi
b3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKQEAgLTc0NCw4ICs3
NDQsOCBAQCBib29sIEZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMoKSBjb25z
dAogICAgIFVuaUNoYXIgbG93ZXJjYXNlQUNoYXJhY3RlciA9ICdhJzsKICAgICBDR0dseXBoIGxv
d2VyY2FzZUFHbHlwaDsKICAgICBpZiAoQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVycyhwbGF0
Zm9ybUZvbnQsICZsb3dlcmNhc2VBQ2hhcmFjdGVyLCAmbG93ZXJjYXNlQUdseXBoLCAxKSkgewot
ICAgICAgICBDR1JlY3QgZW1wdHlSZWN0OwotICAgICAgICBpZiAoIUNHUmVjdElzRW1wdHkoQ1RG
b250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRPcmllbnRh
dGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsICZlbXB0eVJlY3QsIDEpKSkKKyAgICAgICAg
Q0dSZWN0IHplcm9SZWN0ID0geyB9OworICAgICAgICBpZiAoIUNHUmVjdElzRW1wdHkoQ1RGb250
R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRPcmllbnRhdGlv
bkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsICZ6ZXJvUmVjdCwgMSkpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417743</attachid>
            <date>2021-01-15 14:50:38 -0800</date>
            <delta_ts>2021-01-21 13:42:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219177-20210115145037.patch</filename>
            <type>text/plain</type>
            <size>2885</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA3ZmUyOTg1YTk2YjBl
ODVlNjNlNTQwN2I0ZjdiMjU1NjZiMzRmZS4uZmY4YmI0NDBlNzczMWFkYzA3ZmI0YWJhOTc2MjQ2
YjQyZGZjZGQ4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAxLTE1ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgemVy
byBib3VuZGluZ1JlY3QgcG9pbnRlciBpbiBGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKCkg
dG8gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocygpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTkxNzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBY3R1YWxseSB6ZXJvIGEgQ0dSZWN0IHN0cnVj
dCBpbiB0d28gcGxhY2VzIHdoZXJlIHRoZSBjb3VudCBhcmd1bWVudAorICAgICAgICB0byBDVEZv
bnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKCkgaXMgYWxyZWFkeSAxLgorICAgICAgICBUaGFu
a3MgdG8gRGFyaW4gQWRsZXIgZm9yIHBvaW50aW5nIG91dCB0aGF0IGJ1ZyAyMTg4MTIgcHJvdmlk
ZWQKKyAgICAgICAgYW4gdW5pbml0aWFsaXplZCBpbnN0ZWFkIG9mIHplcm8gQ0dSZWN0LgorCisg
ICAgICAgIE5vIG5ldyB0ZXN0cywgbm8gYmVoYXZpb3IgY2hhbmdlcy4KKworICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMgY29uc3QpOgorCiAyMDIx
LTAxLTA3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAg
ICAgIFtXaW5DYWlyb10gV2ViR0wgaXNuJ3Qgc2hvd24gaW4gbm9uLUFDIG1vZGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q29y
ZVRleHQuY3BwCmluZGV4IDU5NDNhNjFhYzZhMDE4MGU2YzdiNGIwMTFhYzFiOThhNDE1ZjNmMTAu
LmQxNzc1ZDQ0ZWU4N2IyNDlhMmQ3NWEzMGUzNTMzNDFhOTczYmIyMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRDb3JlVGV4dC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENvcmVU
ZXh0LmNwcApAQCAtNjk5LDggKzY5OSw4IEBAIHZvaWQgRm9udDo6ZGV0ZXJtaW5lUGl0Y2goKQog
RmxvYXRSZWN0IEZvbnQ6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CiB7CiAgICAgRmxvYXRSZWN0IGJvdW5kaW5nQm94OwotICAgIENHUmVjdCBlbXB0eVJlY3Q7Ci0g
ICAgYm91bmRpbmdCb3ggPSBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKG1fcGxhdGZv
cm1EYXRhLmN0Rm9udCgpLCBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IEZvbnRPcmll
bnRhdGlvbjo6VmVydGljYWwgPyBrQ1RGb250T3JpZW50YXRpb25WZXJ0aWNhbCA6IGtDVEZvbnRP
cmllbnRhdGlvbkhvcml6b250YWwsICZnbHlwaCwgJmVtcHR5UmVjdCwgMSk7CisgICAgQ0dSZWN0
IGlnbm9yZWRSZWN0ID0geyB9OworICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdS
ZWN0c0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwgcGxhdGZvcm1EYXRhKCkub3Jp
ZW50YXRpb24oKSA9PSBGb250T3JpZW50YXRpb246OlZlcnRpY2FsID8ga0NURm9udE9yaWVudGF0
aW9uVmVydGljYWwgOiBrQ1RGb250T3JpZW50YXRpb25Ib3Jpem9udGFsLCAmZ2x5cGgsICZpZ25v
cmVkUmVjdCwgMSk7CiAgICAgYm91bmRpbmdCb3guc2V0WSgtYm91bmRpbmdCb3gubWF4WSgpKTsK
ICAgICBpZiAobV9zeW50aGV0aWNCb2xkT2Zmc2V0KQogICAgICAgICBib3VuZGluZ0JveC5zZXRX
aWR0aChib3VuZGluZ0JveC53aWR0aCgpICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0KTsKQEAgLTc0
NCw4ICs3NDQsOCBAQCBib29sIEZvbnQ6OmlzUHJvYmFibHlPbmx5VXNlZFRvUmVuZGVySWNvbnMo
KSBjb25zdAogICAgIFVuaUNoYXIgbG93ZXJjYXNlQUNoYXJhY3RlciA9ICdhJzsKICAgICBDR0ds
eXBoIGxvd2VyY2FzZUFHbHlwaDsKICAgICBpZiAoQ1RGb250R2V0R2x5cGhzRm9yQ2hhcmFjdGVy
cyhwbGF0Zm9ybUZvbnQsICZsb3dlcmNhc2VBQ2hhcmFjdGVyLCAmbG93ZXJjYXNlQUdseXBoLCAx
KSkgewotICAgICAgICBDR1JlY3QgZW1wdHlSZWN0OwotICAgICAgICBpZiAoIUNHUmVjdElzRW1w
dHkoQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRP
cmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsICZlbXB0eVJlY3QsIDEpKSkKKyAg
ICAgICAgQ0dSZWN0IGlnbm9yZWRSZWN0ID0geyB9OworICAgICAgICBpZiAoIUNHUmVjdElzRW1w
dHkoQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyhwbGF0Zm9ybUZvbnQsIGtDVEZvbnRP
cmllbnRhdGlvbkRlZmF1bHQsICZsb3dlcmNhc2VBR2x5cGgsICZpZ25vcmVkUmVjdCwgMSkpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418080</attachid>
            <date>2021-01-21 13:42:17 -0800</date>
            <delta_ts>2021-01-21 14:56:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219177-20210121134216.patch</filename>
            <type>text/plain</type>
            <size>2835</size>
            <attacher name="Julian Gonzalez">julian_a_gonzalez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxMjU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA3ZmUyOTg1YTk2YjBl
ODVlNjNlNTQwN2I0ZjdiMjU1NjZiMzRmZS4uOGQyMWFhNzBmNDA0MjQ2ZjZlYWNmMjUxNzMyYzBl
NmFiNzBlYzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIxLTAxLTE1ICBKdWxp
YW4gR29uemFsZXogIDxqdWxpYW5fYV9nb256YWxlekBhcHBsZS5jb20+CisKKyAgICAgICAgemVy
byBhbmQgcmVuYW1lIGJvdW5kaW5nUmVjdCBwb2ludGVyIGluIEZvbnQ6OnBsYXRmb3JtQm91bmRz
Rm9yR2x5cGgoKSB0byBDVEZvbnRHZXRCb3VuZGluZ1JlY3RzRm9yR2x5cGhzKCkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxOTE3NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFplcm8gYW5kIHJlbmFtZSBh
IENHUmVjdCBzdHJ1Y3QgaW4gdHdvIHBsYWNlcyB3aGVyZSB0aGUgY291bnQgYXJndW1lbnQKKyAg
ICAgICAgdG8gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocygpIGlzIGFscmVhZHkgMS4K
KyAgICAgICAgVGhhbmtzIHRvIERhcmluIEFkbGVyIGZvciBwb2ludGluZyBvdXQgdGhpcyBpc3N1
ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIG5vIGJlaGF2aW9yIGNoYW5nZXMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q29yZVRleHQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udDo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpGb250Ojppc1Byb2JhYmx5T25seVVzZWRUb1JlbmRlckljb25zIGNvbnN0KToK
KwogMjAyMS0wMS0wNyAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4K
IAogICAgICAgICBbV2luQ2Fpcm9dIFdlYkdMIGlzbid0IHNob3duIGluIG5vbi1BQyBtb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250
Q29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQv
Rm9udENvcmVUZXh0LmNwcAppbmRleCA1OTQzYTYxYWM2YTAxODBlNmM3YjRiMDExYWMxYjk4YTQx
NWYzZjEwLi5kMTc3NWQ0NGVlODdiMjQ5YTJkNzVhMzBlMzUzMzQxYTk3M2JiMjJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JldGV4dC9Gb250Q29yZVRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0Zv
bnRDb3JlVGV4dC5jcHAKQEAgLTY5OSw4ICs2OTksOCBAQCB2b2lkIEZvbnQ6OmRldGVybWluZVBp
dGNoKCkKIEZsb2F0UmVjdCBGb250OjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBo
KSBjb25zdAogewogICAgIEZsb2F0UmVjdCBib3VuZGluZ0JveDsKLSAgICBDR1JlY3QgZW1wdHlS
ZWN0OwotICAgIGJvdW5kaW5nQm94ID0gQ1RGb250R2V0Qm91bmRpbmdSZWN0c0ZvckdseXBocyht
X3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwgcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24oKSA9PSBG
b250T3JpZW50YXRpb246OlZlcnRpY2FsID8ga0NURm9udE9yaWVudGF0aW9uVmVydGljYWwgOiBr
Q1RGb250T3JpZW50YXRpb25Ib3Jpem9udGFsLCAmZ2x5cGgsICZlbXB0eVJlY3QsIDEpOworICAg
IENHUmVjdCBpZ25vcmVkUmVjdCA9IHsgfTsKKyAgICBib3VuZGluZ0JveCA9IENURm9udEdldEJv
dW5kaW5nUmVjdHNGb3JHbHlwaHMobV9wbGF0Zm9ybURhdGEuY3RGb250KCksIHBsYXRmb3JtRGF0
YSgpLm9yaWVudGF0aW9uKCkgPT0gRm9udE9yaWVudGF0aW9uOjpWZXJ0aWNhbCA/IGtDVEZvbnRP
cmllbnRhdGlvblZlcnRpY2FsIDoga0NURm9udE9yaWVudGF0aW9uSG9yaXpvbnRhbCwgJmdseXBo
LCAmaWdub3JlZFJlY3QsIDEpOwogICAgIGJvdW5kaW5nQm94LnNldFkoLWJvdW5kaW5nQm94Lm1h
eFkoKSk7CiAgICAgaWYgKG1fc3ludGhldGljQm9sZE9mZnNldCkKICAgICAgICAgYm91bmRpbmdC
b3guc2V0V2lkdGgoYm91bmRpbmdCb3gud2lkdGgoKSArIG1fc3ludGhldGljQm9sZE9mZnNldCk7
CkBAIC03NDQsOCArNzQ0LDggQEAgYm9vbCBGb250Ojppc1Byb2JhYmx5T25seVVzZWRUb1JlbmRl
ckljb25zKCkgY29uc3QKICAgICBVbmlDaGFyIGxvd2VyY2FzZUFDaGFyYWN0ZXIgPSAnYSc7CiAg
ICAgQ0dHbHlwaCBsb3dlcmNhc2VBR2x5cGg7CiAgICAgaWYgKENURm9udEdldEdseXBoc0ZvckNo
YXJhY3RlcnMocGxhdGZvcm1Gb250LCAmbG93ZXJjYXNlQUNoYXJhY3RlciwgJmxvd2VyY2FzZUFH
bHlwaCwgMSkpIHsKLSAgICAgICAgQ0dSZWN0IGVtcHR5UmVjdDsKLSAgICAgICAgaWYgKCFDR1Jl
Y3RJc0VtcHR5KENURm9udEdldEJvdW5kaW5nUmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBr
Q1RGb250T3JpZW50YXRpb25EZWZhdWx0LCAmbG93ZXJjYXNlQUdseXBoLCAmZW1wdHlSZWN0LCAx
KSkpCisgICAgICAgIENHUmVjdCBpZ25vcmVkUmVjdCA9IHsgfTsKKyAgICAgICAgaWYgKCFDR1Jl
Y3RJc0VtcHR5KENURm9udEdldEJvdW5kaW5nUmVjdHNGb3JHbHlwaHMocGxhdGZvcm1Gb250LCBr
Q1RGb250T3JpZW50YXRpb25EZWZhdWx0LCAmbG93ZXJjYXNlQUdseXBoLCAmaWdub3JlZFJlY3Qs
IDEpKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>