<?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>145180</bug_id>
          
          <creation_ts>2015-05-19 13:40:34 -0700</creation_ts>
          <short_desc>[Mac] Font lookups are flakey due to caching</short_desc>
          <delta_ts>2015-05-19 15:52:48 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=145149</see_also>
          <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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1096024</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-19 13:40:34 -0700</bug_when>
    <thetext>Font lookups are flakey due to caching in fontWithFamily().

Radar: &lt;rdar://problem/21012406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096028</commentid>
    <comment_count>1</comment_count>
      <attachid>253395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-19 13:51:29 -0700</bug_when>
    <thetext>Created attachment 253395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096033</commentid>
    <comment_count>2</comment_count>
      <attachid>253395</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-19 14:01:11 -0700</bug_when>
    <thetext>Comment on attachment 253395
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        This patch now uses a std::pair as key containing both the &quot;desired
&gt; +        family&quot; and the &quot;desired traits&quot; for correctness. I also updated the
&gt; +        cache to use WTF types instead of NS types.

So now looking up a name in the cache requires converting an AtomicString to an NSString every time? That doesn’t seem like an improvement!

&gt; Source/WebCore/platform/graphics/mac/FontCacheMac.mm:159
&gt; +    familyMapping.add(std::make_pair(desiredFamily, desiredTraits), value);

Old code did the equivalent of HashMap::set, not HashMap::add. Is this a desirable change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096045</commentid>
    <comment_count>3</comment_count>
      <attachid>253395</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-19 14:21:51 -0700</bug_when>
    <thetext>Comment on attachment 253395
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:16
&gt;&gt; +        cache to use WTF types instead of NS types.
&gt; 
&gt; So now looking up a name in the cache requires converting an AtomicString to an NSString every time? That doesn’t seem like an improvement!

Converting an AtomicString into a NSString is relatively cheap. It ends up calling StringImpl::createCFString() which constructs a CFStringRef (later casted to a NSString*) *without* copying the characters.
The cost of converting an AtomicString into a NSString* is thus really small compared to calling [fontManager availableFontFamilies] + [fontManager availableFonts] and doing linear searches on those 2 lists.

There is a slight overhead when saving a mapping into the cache though because we need to construct an AtomicString for the NSString* of the availableFamily.

However, we already get the desiredFamily as an AtomicString so we no longer need to convert it to an NSString* when the cache is successful (I will re-upload an iteration with this optimization). Therefore, it is a win there and also HashMap usually performs better than NSDictionary.

&gt;&gt; Source/WebCore/platform/graphics/mac/FontCacheMac.mm:159
&gt;&gt; +    familyMapping.add(std::make_pair(desiredFamily, desiredTraits), value);
&gt; 
&gt; Old code did the equivalent of HashMap::set, not HashMap::add. Is this a desirable change?

We only call this function if the key is not already present so add() is slightly faster here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096046</commentid>
    <comment_count>4</comment_count>
      <attachid>253400</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-19 14:24:23 -0700</bug_when>
    <thetext>Created attachment 253400
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096047</commentid>
    <comment_count>5</comment_count>
      <attachid>253401</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-05-19 14:25:48 -0700</bug_when>
    <thetext>Created attachment 253401
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096078</commentid>
    <comment_count>6</comment_count>
      <attachid>253401</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 15:52:44 -0700</bug_when>
    <thetext>Comment on attachment 253401
Patch

Clearing flags on attachment: 253401

Committed r184599: &lt;http://trac.webkit.org/changeset/184599&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1096079</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 15:52:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253395</attachid>
            <date>2015-05-19 13:51:29 -0700</date>
            <delta_ts>2015-05-19 14:24:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145180-20150519135126.patch</filename>
            <type>text/plain</type>
            <size>13846</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyNzA0MjkzODY0YTAx
YjJiY2Y4NTU2Y2ZkZmI4MmVmZDczMzNlOS4uYWI3NWUzNjVkOGZmYWNiM2U5MWMyNzg2YjJmOTc4
MzA2MWM5ODNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gRm9udCBsb29rdXBz
IGFyZSBmbGFrZXkgZHVlIHRvIGNhY2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTE4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjEwMTI0
MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRm9u
dCBsb29rdXBzIHdlcmUgZmxha2V5IG9uIE1hYyBkdWUgdG8gdGhlIGNhY2hlIGluIGZvbnRXaXRo
RmFtaWx5KCkuCisgICAgICAgIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgImRlc2lyZWQgZmFtaWx5
IiB0byAiYXZhaWxhYmxlIGZhbWlseSIgbWFwcGluZworICAgICAgICBpcyBzb21ldGltZXMgZGVw
ZW5kZW50IG9uIHRoZSBkZXNpcmVkIHRyYWl0cy4gSG93ZXZlciwgb3VyIGNhY2hlIHdhcworICAg
ICAgICBvbmx5IHVzaW5nIHRoZSAiZGVzaXJlZCBmYW1pbHkiIGFzIGtleS4KKworICAgICAgICBU
aGlzIHBhdGNoIG5vdyB1c2VzIGEgc3RkOjpwYWlyIGFzIGtleSBjb250YWluaW5nIGJvdGggdGhl
ICJkZXNpcmVkCisgICAgICAgIGZhbWlseSIgYW5kIHRoZSAiZGVzaXJlZCB0cmFpdHMiIGZvciBj
b3JyZWN0bmVzcy4gSSBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICAgIGNhY2hlIHRvIHVzZSBXVEYg
dHlwZXMgaW5zdGVhZCBvZiBOUyB0eXBlcy4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMv
ZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRv
QXZhaWxhYmxlRmFtaWx5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0Rlc2lyZWRGYW1pbHlU
b0F2YWlsYWJsZUZhbWlseU1hcHBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVtZW1iZXJEZXNp
cmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmZv
bnRXaXRoRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OmludmFsaWRhdGVGb250Q2FjaGUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5RGljdGlvbmFy
eSk6IERlbGV0ZWQuCisKIDIwMTUtMDUtMTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBNZXJnZWQgYW5vbnltb3VzIGJsb2NrcyBzaG91bGQgaW52YWxpZGF0ZSBz
aW1wbGUgbGluZSBsYXlvdXQgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDcyNjllOGYzYTI3ZDBlZTNhY2Rl
ZWY5MzliZjFkNWQ4MWVkYmFhZDYuLjc4Nzg2NTlmOGE0YTI3ZDJhZDExOWQxMmE3YmYxNTM4ZWUx
YTkxM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDYWNoZU1hYy5tbQpAQCAtMTI5LDI5ICsxMjksMzQgQEAgc3RhdGljIGlubGluZSBGb250
VHJhaXRzTWFzayB0b1RyYWl0c01hc2soTlNGb250VHJhaXRNYXNrIGFwcEtpdFRyYWl0cywgTlNJ
bnRlZ2UKICAgICAgICAgICAgICAgICBGb250V2VpZ2h0OTAwTWFzaykpOwogfQogCi0vLyBLZWVw
IGEgY2FjaGUgZm9yIG1hcHBpbmcgZGVzaXJlZCBmb250IGZhbWlsaWVzIHRvIGZvbnQgZmFtaWxp
ZXMgYWN0dWFsbHkKLS8vIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4K
LXN0YXRpYyBOU011dGFibGVEaWN0aW9uYXJ5KiBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1p
bHlEaWN0aW9uYXJ5KCkKKyNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQorLy8gS2Vl
cCBhIGNhY2hlIGZvciBtYXBwaW5nIGRlc2lyZWQgZm9udCBmYW1pbGllcyB0byBmb250IGZhbWls
aWVzIGFjdHVhbGx5IGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KK3Vz
aW5nIEF2YWlsYWJsZUZhbWlseU1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPEF0b21pY1N0cmluZywg
TlNGb250VHJhaXRNYXNrPiwgQXRvbWljU3RyaW5nPjsKK3N0YXRpYyBBdmFpbGFibGVGYW1pbHlN
YXAmIGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKLSAgICBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdGlvbmFy
eSA9IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgcmV0dXJuIGRpY3Rp
b25hcnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF2YWlsYWJsZUZhbWlseU1hcD4gbWFw
OworICAgIHJldHVybiBtYXA7CiB9CiAKLSNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQ
KQotc3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVyRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFt
aWx5TWFwcGluZyhOU1N0cmluZyogZGVzaXJlZEZhbWlseSwgTlNTdHJpbmcqIGF2YWlsYWJsZUZh
bWlseSkKK3N0YXRpYyBib29sIGhhc0Rlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBp
bmcoY29uc3QgQXRvbWljU3RyaW5nJiBkZXNpcmVkRmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVz
aXJlZFRyYWl0cywgTlNTdHJpbmcqJiBhdmFpbGFibGVGYW1pbHkpCiB7Ci0gICAgc3RhdGljIGNv
bnN0IE5TVUludGVnZXIgbWF4Q2FjaGVTaXplID0gMTI4OwotICAgIE5TTXV0YWJsZURpY3Rpb25h
cnkgKmZhbWlseU1hcHBpbmcgPSBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlEaWN0aW9u
YXJ5KCk7Ci0gICAgQVNTRVJUKFtmYW1pbHlNYXBwaW5nIGNvdW50XSA8PSBtYXhDYWNoZVNpemUp
OwotICAgIGlmIChbZmFtaWx5TWFwcGluZyBjb3VudF0gPT0gbWF4Q2FjaGVTaXplKSB7Ci0gICAg
ICAgIGZvciAoTlNTdHJpbmcgKmtleSBpbiBmYW1pbHlNYXBwaW5nKSB7Ci0gICAgICAgICAgICBb
ZmFtaWx5TWFwcGluZyByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKLSAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICB9Ci0gICAgfQotICAgIGlkIHZhbHVlID0gYXZhaWxhYmxlRmFtaWx5ID8gYXZh
aWxhYmxlRmFtaWx5IDogW05TTnVsbCBudWxsXTsKLSAgICBbZmFtaWx5TWFwcGluZyBzZXRPYmpl
Y3Q6dmFsdWUgZm9yS2V5OmRlc2lyZWRGYW1pbHldOworICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9
IGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpLmdldChzdGQ6Om1ha2VfcGFpcihk
ZXNpcmVkRmFtaWx5LCBkZXNpcmVkVHJhaXRzKSk7CisgICAgYXZhaWxhYmxlRmFtaWx5ID0gdmFs
dWUuaXNFbXB0eSgpID8gbmlsIDogc3RhdGljX2Nhc3Q8TlNTdHJpbmcqPih2YWx1ZSk7CisgICAg
cmV0dXJuICF2YWx1ZS5pc051bGwoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVy
RGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGluZyhjb25zdCBBdG9taWNTdHJpbmcm
IGRlc2lyZWRGYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzLCBOU1N0cmluZyog
YXZhaWxhYmxlRmFtaWx5KQoreworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDYWNoZVNp
emUgPSAxMjg7CisgICAgYXV0byYgZmFtaWx5TWFwcGluZyA9IGRlc2lyZWRGYW1pbHlUb0F2YWls
YWJsZUZhbWlseU1hcCgpOworICAgIEFTU0VSVChmYW1pbHlNYXBwaW5nLnNpemUoKSA8PSBtYXhD
YWNoZVNpemUpOworICAgIGlmIChmYW1pbHlNYXBwaW5nLnNpemUoKSA+PSBtYXhDYWNoZVNpemUp
CisgICAgICAgIGZhbWlseU1hcHBpbmcucmVtb3ZlKGZhbWlseU1hcHBpbmcuYmVnaW4oKSk7CisK
KyAgICAvLyBTdG9yZSBuaWwgYXMgYW4gZW1wdHlBdG9tIHRvIGRpc3Rpbmd1aXNoIGZyb20gbWlz
c2luZyB2YWx1ZXMgKG51bGxBdG9tKS4KKyAgICBBdG9taWNTdHJpbmcgdmFsdWUgPSBhdmFpbGFi
bGVGYW1pbHkgPyBBdG9taWNTdHJpbmcoYXZhaWxhYmxlRmFtaWx5KSA6IGVtcHR5QXRvbTsKKyAg
ICBmYW1pbHlNYXBwaW5nLmFkZChzdGQ6Om1ha2VfcGFpcihkZXNpcmVkRmFtaWx5LCBkZXNpcmVk
VHJhaXRzKSwgdmFsdWUpOwogfQogCiAjZWxzZQpAQCAtMjgzLDEzICsyODgsMTQgQEAgc3RhdGlj
IE5TRm9udCAqZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9u
dFRyYWl0TWFzayBkZXNpcmUKIAogI2Vsc2UKIAotICAgIGlkIGNhY2hlZEF2YWlsYWJsZUZhbWls
eSA9IFtkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlEaWN0aW9uYXJ5KCkgb2JqZWN0Rm9y
S2V5OmRlc2lyZWRGYW1pbHldOwotICAgIGlmIChjYWNoZWRBdmFpbGFibGVGYW1pbHkgPT0gW05T
TnVsbCBudWxsXSkgewotICAgICAgICAvLyBXZSBhbHJlYWR5IGtub3cgdGhpcyBmb250IGlzIG5v
dCBhdmFpbGFibGUuCi0gICAgICAgIHJldHVybiBuaWw7CisgICAgTlNGb250VHJhaXRNYXNrIGRl
c2lyZWRUcmFpdHNGb3JOYW1lTWF0Y2ggPSBkZXNpcmVkVHJhaXRzIHwgKHdlaWdodCA+PSBGb250
V2VpZ2h0NjAwID8gTlNCb2xkRm9udE1hc2sgOiAwKTsKKyAgICBpZiAoaGFzRGVzaXJlZEZhbWls
eVRvQXZhaWxhYmxlRmFtaWx5TWFwcGluZyhmYW1pbHksIGRlc2lyZWRUcmFpdHNGb3JOYW1lTWF0
Y2gsIGF2YWlsYWJsZUZhbWlseSkpIHsKKyAgICAgICAgaWYgKCFhdmFpbGFibGVGYW1pbHkpIHsK
KyAgICAgICAgICAgIC8vIFdlIGFscmVhZHkga25vdyB0aGUgZGVzaXJlZCBmb250IGZhbWlseSBk
b2VzIG5vdCBtYXAgdG8gYW55IGF2YWlsYWJsZSBmb250IGZhbWlseS4KKyAgICAgICAgICAgIHJl
dHVybiBuaWw7CisgICAgICAgIH0KICAgICB9CiAKLSAgICBhdmFpbGFibGVGYW1pbHkgPSBjYWNo
ZWRBdmFpbGFibGVGYW1pbHk7CiAgICAgaWYgKCFhdmFpbGFibGVGYW1pbHkpIHsKICAgICAgICAg
Ly8gRG8gYSBzaW1wbGUgY2FzZSBpbnNlbnNpdGl2ZSBzZWFyY2ggZm9yIGEgbWF0Y2hpbmcgZm9u
dCBmYW1pbHkuCiAgICAgICAgIC8vIE5TRm9udE1hbmFnZXIgcmVxdWlyZXMgZXhhY3QgbmFtZSBt
YXRjaGVzLgpAQCAtMzAyLDcgKzMwOCw2IEBAIHN0YXRpYyBOU0ZvbnQgKmZvbnRXaXRoRmFtaWx5
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlCiAgICAg
ICAgIGlmICghYXZhaWxhYmxlRmFtaWx5KSB7CiAgICAgICAgICAgICAvLyBNYXRjaCBieSBQb3N0
U2NyaXB0IG5hbWUuCiAgICAgICAgICAgICBOU0ZvbnQgKm5hbWVNYXRjaGVkRm9udCA9IG5pbDsK
LSAgICAgICAgICAgIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzRm9yTmFtZU1hdGNoID0g
ZGVzaXJlZFRyYWl0cyB8ICh3ZWlnaHQgPj0gRm9udFdlaWdodDYwMCA/IE5TQm9sZEZvbnRNYXNr
IDogMCk7CiAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICphdmFpbGFibGVGb250IGluIFtmb250
TWFuYWdlciBhdmFpbGFibGVGb250c10pIHsKICAgICAgICAgICAgICAgICBpZiAoW2Rlc2lyZWRG
YW1pbHkgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTphdmFpbGFibGVGb250XSA9PSBOU09yZGVyZWRT
YW1lKSB7CiAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXRjaGVkRm9udCA9IFtOU0ZvbnQgZm9u
dFdpdGhOYW1lOmF2YWlsYWJsZUZvbnQgc2l6ZTpzaXplXTsKQEAgLTMyMiw3ICszMjcsNyBAQCBz
dGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwg
TlNGb250VHJhaXRNYXNrIGRlc2lyZQogICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgcmVtZW1iZXJEZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBwaW5nKGRlc2lyZWRG
YW1pbHksIGF2YWlsYWJsZUZhbWlseSk7CisgICAgICAgIHJlbWVtYmVyRGVzaXJlZEZhbWlseVRv
QXZhaWxhYmxlRmFtaWx5TWFwcGluZyhmYW1pbHksIGRlc2lyZWRUcmFpdHNGb3JOYW1lTWF0Y2gs
IGF2YWlsYWJsZUZhbWlseSk7CiAgICAgICAgIGlmICghYXZhaWxhYmxlRmFtaWx5KQogICAgICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC00MDYsNyArNDExLDEwIEBAIHN0YXRpYyB2b2lk
IGludmFsaWRhdGVGb250Q2FjaGUodm9pZCopCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Rm9udENhY2hlOjpzaW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7Ci0gICAgW2Rlc2lyZWRGYW1pbHlU
b0F2YWlsYWJsZUZhbWlseURpY3Rpb25hcnkoKSByZW1vdmVBbGxPYmplY3RzXTsKKworI2lmICFF
TkFCTEUoUExBVEZPUk1fRk9OVF9MT09LVVApCisgICAgZGVzaXJlZEZhbWlseVRvQXZhaWxhYmxl
RmFtaWx5TWFwKCkuY2xlYXIoKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9pZCBmb250Q2FjaGVS
ZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZOb3RpZmljYXRpb25D
ZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiBuYW1lLCBjb25zdCB2b2lkICos
IENGRGljdGlvbmFyeVJlZikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MDJkZmU0MWEzMWM0ZmU5Mjk4ODI0YzdiNjZjZjI2
Zjg3ZTA1Y2UzLi44OGZiZTVlM2RhZTE2NGQ4NTE3YzhkMGNmNWM2ZWUyZmI0NDgyOGVhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDUtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBbTWFjXSBGb250IGxvb2t1cHMgYXJlIGZsYWtleSBkdWUgdG8gY2Fj
aGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1
MTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTAxMjQwNj4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICBVbnNraXAgcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdo
dHMuaHRtbCBhcyBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgZmxha2V5IGFmdGVyIHRoaXMgY2hh
bmdlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IGFzIHRoZSBleHBlY3RlZCBy
ZXN1bHRzIHdlcmUgdGhvc2UgYmFzZWQgb24gdGhlCisgICAgICAgIGJhZCBjYWNoaW5nIGJlaGF2
aW9yLgorCiAyMDE1LTA1LTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgTWVyZ2VkIGFub255bW91cyBibG9ja3Mgc2hvdWxkIGludmFsaWRhdGUgc2ltcGxlIGxp
bmUgbGF5b3V0IHBhdGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IDY5ZjA5OGMwMTI1MzllNzdlMDEwYzdjZmNkNDM2Mjc0ZmQzYzJkYjMuLjZmNTZhZjRk
MTU1NDJiYzJiYjg1YTM0ZGUyZWM4NDdmNWJjMmIyNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjYyLDQgKzEyNjIsMyBAQCB3ZWJraXQub3JnL2Iv
MTcwMjIgWyBNb3VudGFpbkxpb24gTWF2ZXJpY2tzIF0gZmFzdC9pbWFnZXMvYW5pbWF0ZWQtcG5n
Lmh0bWwgWyBTawogd2Via2l0Lm9yZy9iLzE0MjU0OCBbIFlvc2VtaXRlKyBdIGVkaXRpbmcvc2Vs
ZWN0aW9uL2V4dGVuZC1ieS1jaGFyYWN0ZXItMDA3Lmh0bWwgWyBQYXNzIF0KIHdlYmtpdC5vcmcv
Yi8xNDE2NjEgWyBZb3NlbWl0ZSsgXSBmYXN0L3RleHQvZW1vamkuaHRtbCBbIFBhc3MgXQogCi13
ZWJraXQub3JnL2IvMTQ1MTQ5IHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZm9udC13ZWlnaHRzLmh0
bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhwZWN0ZWQudHh0CmluZGV4IGU5MDUzYWFh
YThmNTk4MDc2MGNhODg0ZWUyODM3YjE2YzQ2OWVjZDguLmIxMzcyZDYwM2NhZTk0ODE0YjRkNjE3
NDIxNzQxZjEyZjQ2NzBmMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L3RleHQvZm9udC13ZWlnaHRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy1leHBlY3RlZC50eHQKQEAgLTQ1MSwxNyAr
NDUxLDE3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDY3NDEKICAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdo
dDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyODM0
KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0
MDd4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDc6ICJGb250OiBIZWx2
ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiAyMDAgU3R5bGU6IGl0YWxpYyIKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CisgICAgICAgICAg
dGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxp
Z2h0SXRhbGljIFdlaWdodDogMjAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwyODUyKSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSA0MDd4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0
MDc6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiAzMDAgU3R5
bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcy
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0
aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogMzAwIFN0eWxlOiBpdGFsaWMiCiAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyODcwKSBzaXplIDc2OXgxOAotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MjR4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCA0MjQ6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMg
V2VpZ2h0OiA0MDAgU3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzcyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzcy
OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogNDAwIFN0eWxl
OiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyODg4KSBzaXplIDc2OXgx
OAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MjR4MTgKLSAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjQ6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVs
dHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiA1MDAgU3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdl
aWdodDogNTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwy
OTA2KSBzaXplIDc2OXgxOQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0NTV4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NTU6ICJGb250OiBI
ZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiA2MDAgU3R5bGU6IGl0YWxpYyIK
QEAgLTQ3NSw4ICs0NzUsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2NzQxCiAgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ1NXgxOQogICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDQ1NTogIkZvbnQ6IEhlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0
YWxpYyBXZWlnaHQ6IDkwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMjk4Mikgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgMzQzeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzQzOiAi
Rm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDEwMCBTdHlsZTogaXRhbGlj
IgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNzV4MTgKKyAgICAg
ICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzU6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxp
Z2h0SXRhbGljIFdlaWdodDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzMDAwKSBzaXplIDc2OXgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAzNzV4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAz
NzU6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogMjAwIFN0eWxlOiBp
dGFsaWMiCkBAIC00ODQsMTEgKzQ4NCwxMSBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2NzQx
CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3NXgxOAogICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3NTogIkZvbnQ6IEhlbHZldGljYU5ldWUtTGln
aHRJdGFsaWMgV2VpZ2h0OiAzMDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRlckJsb2NrIHtE
SVZ9IGF0ICgwLDMwMzYpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBh
dCAoMCwwKSBzaXplIDM5MHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM5
MDogIkZvbnQ6IEhlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA0MDAgU3R5bGU6IGl0
YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzc1eDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc1OiAiRm9udDogSGVsdmV0aWNhTmV1
ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDQwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMzA1NCkgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzkweDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzkwOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDUwMCBTdHls
ZTogaXRhbGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNzV4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzU6ICJGb250OiBIZWx2ZXRp
Y2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogNTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwzMDcyKSBzaXplIDc2OXgxOQogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MTh4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0MTg6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogNjAw
IFN0eWxlOiBpdGFsaWMiCkBAIC01MDIsMTQgKzUwMiwxNCBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXg2NzQxCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQxOHgx
OQogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQxODogIkZvbnQ6IEhlbHZldGlj
YU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA5MDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDMxNDgpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxM3gxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDMxMzogIkZvbnQ6IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDogMTAwIFN0eWxl
OiBpdGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1NXgx
OAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1NTogIkZvbnQ6IEhlbHZldGlj
YU5ldWUtSXRhbGljIFdlaWdodDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9j
ayB7RElWfSBhdCAoMCwzMTY2KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMCkgc2l6ZSAzNDF4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0
aCAzNDE6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDIwMCBTdHlsZTogaXRh
bGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNTV4MTgKKyAg
ICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNTU6ICJGb250OiBIZWx2ZXRpY2FOZXVl
LUl0YWxpYyBXZWlnaHQ6IDIwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMzE4NCkgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICgwLDApIHNpemUgMzQxeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzQx
OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1JdGFsaWMgV2VpZ2h0OiAzMDAgU3R5bGU6IGl0YWxpYyIK
KyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1eDE4CisgICAgICAg
ICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1JdGFs
aWMgV2VpZ2h0OiAzMDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0
ICgwLDMyMDIpIHNpemUgNzY5eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCww
KSBzaXplIDM1NXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1NTogIkZv
bnQ6IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDogNDAwIFN0eWxlOiBpdGFsaWMiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253400</attachid>
            <date>2015-05-19 14:24:23 -0700</date>
            <delta_ts>2015-05-19 14:25:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145180-20150519142421.patch</filename>
            <type>text/plain</type>
            <size>14881</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyNzA0MjkzODY0YTAx
YjJiY2Y4NTU2Y2ZkZmI4MmVmZDczMzNlOS4uNmYwZDkzNjQyM2ZhZjAxMzAxYjQ5NzNhOTBjMzg1
OTBlNTI5NmRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gRm9udCBsb29rdXBz
IGFyZSBmbGFrZXkgZHVlIHRvIGNhY2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTE4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjEwMTI0
MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRm9udCBs
b29rdXBzIHdlcmUgZmxha2V5IG9uIE1hYyBkdWUgdG8gdGhlIGNhY2hlIGluIGZvbnRXaXRoRmFt
aWx5KCkuCisgICAgICAgIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgImRlc2lyZWQgZmFtaWx5IiB0
byAiYXZhaWxhYmxlIGZhbWlseSIgbWFwcGluZworICAgICAgICBpcyBzb21ldGltZXMgZGVwZW5k
ZW50IG9uIHRoZSBkZXNpcmVkIHRyYWl0cy4gSG93ZXZlciwgb3VyIGNhY2hlIHdhcworICAgICAg
ICBvbmx5IHVzaW5nIHRoZSAiZGVzaXJlZCBmYW1pbHkiIGFzIGtleS4KKworICAgICAgICBUaGlz
IHBhdGNoIG5vdyB1c2VzIGEgc3RkOjpwYWlyIGFzIGtleSBjb250YWluaW5nIGJvdGggdGhlICJk
ZXNpcmVkCisgICAgICAgIGZhbWlseSIgYW5kIHRoZSAiZGVzaXJlZCB0cmFpdHMiIGZvciBjb3Jy
ZWN0bmVzcy4gSSBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICAgIGNhY2hlIHRvIHVzZSBXVEYgdHlw
ZXMgaW5zdGVhZCBvZiBOUyB0eXBlcy4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvZmFz
dC90ZXh0L2ZvbnQtd2VpZ2h0cy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRvQXZh
aWxhYmxlRmFtaWx5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0Rlc2lyZWRGYW1pbHlUb0F2
YWlsYWJsZUZhbWlseU1hcHBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVtZW1iZXJEZXNpcmVk
RmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRX
aXRoRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OmludmFsaWRhdGVGb250Q2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5RGljdGlvbmFyeSk6
IERlbGV0ZWQuCisKIDIwMTUtMDUtMTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBNZXJnZWQgYW5vbnltb3VzIGJsb2NrcyBzaG91bGQgaW52YWxpZGF0ZSBzaW1w
bGUgbGluZSBsYXlvdXQgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDcyNjllOGYzYTI3ZDBlZTNhY2RlZWY5
MzliZjFkNWQ4MWVkYmFhZDYuLjU2YThmMmVlOThkNDg2YWY3ZDQ5YzRmYWQ3N2Y4NjE4NzYzMTk2
ZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQpAQCAtMTI5LDI5ICsxMjksMzQgQEAgc3RhdGljIGlubGluZSBGb250VHJh
aXRzTWFzayB0b1RyYWl0c01hc2soTlNGb250VHJhaXRNYXNrIGFwcEtpdFRyYWl0cywgTlNJbnRl
Z2UKICAgICAgICAgICAgICAgICBGb250V2VpZ2h0OTAwTWFzaykpOwogfQogCi0vLyBLZWVwIGEg
Y2FjaGUgZm9yIG1hcHBpbmcgZGVzaXJlZCBmb250IGZhbWlsaWVzIHRvIGZvbnQgZmFtaWxpZXMg
YWN0dWFsbHkKLS8vIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KLXN0
YXRpYyBOU011dGFibGVEaWN0aW9uYXJ5KiBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlE
aWN0aW9uYXJ5KCkKKyNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQorLy8gS2VlcCBh
IGNhY2hlIGZvciBtYXBwaW5nIGRlc2lyZWQgZm9udCBmYW1pbGllcyB0byBmb250IGZhbWlsaWVz
IGFjdHVhbGx5IGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KK3VzaW5n
IEF2YWlsYWJsZUZhbWlseU1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPEF0b21pY1N0cmluZywgTlNG
b250VHJhaXRNYXNrPiwgQXRvbWljU3RyaW5nPjsKK3N0YXRpYyBBdmFpbGFibGVGYW1pbHlNYXAm
IGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9
IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgcmV0dXJuIGRpY3Rpb25h
cnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF2YWlsYWJsZUZhbWlseU1hcD4gbWFwOwor
ICAgIHJldHVybiBtYXA7CiB9CiAKLSNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQot
c3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVyRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5
TWFwcGluZyhOU1N0cmluZyogZGVzaXJlZEZhbWlseSwgTlNTdHJpbmcqIGF2YWlsYWJsZUZhbWls
eSkKK3N0YXRpYyBib29sIGhhc0Rlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmco
Y29uc3QgQXRvbWljU3RyaW5nJiBkZXNpcmVkRmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJl
ZFRyYWl0cywgTlNTdHJpbmcqJiBhdmFpbGFibGVGYW1pbHkpCiB7Ci0gICAgc3RhdGljIGNvbnN0
IE5TVUludGVnZXIgbWF4Q2FjaGVTaXplID0gMTI4OwotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KmZhbWlseU1hcHBpbmcgPSBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlEaWN0aW9uYXJ5
KCk7Ci0gICAgQVNTRVJUKFtmYW1pbHlNYXBwaW5nIGNvdW50XSA8PSBtYXhDYWNoZVNpemUpOwot
ICAgIGlmIChbZmFtaWx5TWFwcGluZyBjb3VudF0gPT0gbWF4Q2FjaGVTaXplKSB7Ci0gICAgICAg
IGZvciAoTlNTdHJpbmcgKmtleSBpbiBmYW1pbHlNYXBwaW5nKSB7Ci0gICAgICAgICAgICBbZmFt
aWx5TWFwcGluZyByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotICAgIGlkIHZhbHVlID0gYXZhaWxhYmxlRmFtaWx5ID8gYXZhaWxh
YmxlRmFtaWx5IDogW05TTnVsbCBudWxsXTsKLSAgICBbZmFtaWx5TWFwcGluZyBzZXRPYmplY3Q6
dmFsdWUgZm9yS2V5OmRlc2lyZWRGYW1pbHldOworICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9IGRl
c2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpLmdldChzdGQ6Om1ha2VfcGFpcihkZXNp
cmVkRmFtaWx5LCBkZXNpcmVkVHJhaXRzKSk7CisgICAgYXZhaWxhYmxlRmFtaWx5ID0gdmFsdWUu
aXNFbXB0eSgpID8gbmlsIDogc3RhdGljX2Nhc3Q8TlNTdHJpbmcqPih2YWx1ZSk7CisgICAgcmV0
dXJuICF2YWx1ZS5pc051bGwoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVyRGVz
aXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGluZyhjb25zdCBBdG9taWNTdHJpbmcmIGRl
c2lyZWRGYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzLCBOU1N0cmluZyogYXZh
aWxhYmxlRmFtaWx5KQoreworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDYWNoZVNpemUg
PSAxMjg7CisgICAgYXV0byYgZmFtaWx5TWFwcGluZyA9IGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJs
ZUZhbWlseU1hcCgpOworICAgIEFTU0VSVChmYW1pbHlNYXBwaW5nLnNpemUoKSA8PSBtYXhDYWNo
ZVNpemUpOworICAgIGlmIChmYW1pbHlNYXBwaW5nLnNpemUoKSA+PSBtYXhDYWNoZVNpemUpCisg
ICAgICAgIGZhbWlseU1hcHBpbmcucmVtb3ZlKGZhbWlseU1hcHBpbmcuYmVnaW4oKSk7CisKKyAg
ICAvLyBTdG9yZSBuaWwgYXMgYW4gZW1wdHlBdG9tIHRvIGRpc3Rpbmd1aXNoIGZyb20gbWlzc2lu
ZyB2YWx1ZXMgKG51bGxBdG9tKS4KKyAgICBBdG9taWNTdHJpbmcgdmFsdWUgPSBhdmFpbGFibGVG
YW1pbHkgPyBBdG9taWNTdHJpbmcoYXZhaWxhYmxlRmFtaWx5KSA6IGVtcHR5QXRvbTsKKyAgICBm
YW1pbHlNYXBwaW5nLmFkZChzdGQ6Om1ha2VfcGFpcihkZXNpcmVkRmFtaWx5LCBkZXNpcmVkVHJh
aXRzKSwgdmFsdWUpOwogfQogCiAjZWxzZQpAQCAtMjYyLDEzICsyNjcsMTEgQEAgc3RhdGljIE5T
Rm9udCAqZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRy
YWl0TWFzayBkZXNpcmUKICAgICAgICAgcmV0dXJuIHNwZWNpYWxDYXNlLnZhbHVlKCk7CiAKICAg
ICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRN
YW5hZ2VyXTsKLSAgICBOU1N0cmluZyAqZGVzaXJlZEZhbWlseSA9IGZhbWlseTsKICAgICBOU1N0
cmluZyAqYXZhaWxhYmxlRmFtaWx5OwogICAgIGludCBjaG9zZW5XZWlnaHQ7CiAgICAgTlNGb250
ICpmb250OwogCiAjaWYgRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQotCiAgICAgY29uc3Qg
YXV0byYgd2hpdGVsaXN0ID0gZm9udFdoaXRlbGlzdCgpOwogICAgIGlmICh3aGl0ZWxpc3Quc2l6
ZSgpICYmICF3aGl0ZWxpc3QuY29udGFpbnMoZmFtaWx5Lmxvd2VyKCkpKQogICAgICAgICByZXR1
cm4gbmlsOwpAQCAtMjc3LDIwICsyODAsMjUgQEAgc3RhdGljIE5TRm9udCAqZm9udFdpdGhGYW1p
bHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmUKICAg
ICAgICAgcmVxdWVzdGVkVHJhaXRzIHw9IGtDVEZvbnRJdGFsaWNUcmFpdDsKICAgICBpZiAod2Vp
Z2h0ID49IEZvbnRXZWlnaHQ2MDApCiAgICAgICAgIHJlcXVlc3RlZFRyYWl0cyB8PSBrQ1RGb250
Qm9sZFRyYWl0OworCisgICAgTlNTdHJpbmcgKmRlc2lyZWRGYW1pbHkgPSBmYW1pbHk7CiAgICAg
Zm9udCA9IENGQnJpZGdpbmdSZWxlYXNlKENURm9udENyZWF0ZUZvckNTUygoQ0ZTdHJpbmdSZWYp
ZGVzaXJlZEZhbWlseSwgdG9Db3JlVGV4dEZvbnRXZWlnaHQod2VpZ2h0KSwgcmVxdWVzdGVkVHJh
aXRzLCBzaXplKSk7CiAgICAgYXZhaWxhYmxlRmFtaWx5ID0gW2ZvbnQgZmFtaWx5TmFtZV07CiAg
ICAgY2hvc2VuV2VpZ2h0ID0gW2ZvbnRNYW5hZ2VyIHdlaWdodE9mRm9udDpmb250XTsKIAogI2Vs
c2UKIAotICAgIGlkIGNhY2hlZEF2YWlsYWJsZUZhbWlseSA9IFtkZXNpcmVkRmFtaWx5VG9BdmFp
bGFibGVGYW1pbHlEaWN0aW9uYXJ5KCkgb2JqZWN0Rm9yS2V5OmRlc2lyZWRGYW1pbHldOwotICAg
IGlmIChjYWNoZWRBdmFpbGFibGVGYW1pbHkgPT0gW05TTnVsbCBudWxsXSkgewotICAgICAgICAv
LyBXZSBhbHJlYWR5IGtub3cgdGhpcyBmb250IGlzIG5vdCBhdmFpbGFibGUuCi0gICAgICAgIHJl
dHVybiBuaWw7CisgICAgTlNGb250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHNGb3JOYW1lTWF0Y2gg
PSBkZXNpcmVkVHJhaXRzIHwgKHdlaWdodCA+PSBGb250V2VpZ2h0NjAwID8gTlNCb2xkRm9udE1h
c2sgOiAwKTsKKyAgICBpZiAoaGFzRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGlu
ZyhmYW1pbHksIGRlc2lyZWRUcmFpdHNGb3JOYW1lTWF0Y2gsIGF2YWlsYWJsZUZhbWlseSkpIHsK
KyAgICAgICAgaWYgKCFhdmFpbGFibGVGYW1pbHkpIHsKKyAgICAgICAgICAgIC8vIFdlIGFscmVh
ZHkga25vdyB0aGUgZGVzaXJlZCBmb250IGZhbWlseSBkb2VzIG5vdCBtYXAgdG8gYW55IGF2YWls
YWJsZSBmb250IGZhbWlseS4KKyAgICAgICAgICAgIHJldHVybiBuaWw7CisgICAgICAgIH0KICAg
ICB9CiAKLSAgICBhdmFpbGFibGVGYW1pbHkgPSBjYWNoZWRBdmFpbGFibGVGYW1pbHk7CiAgICAg
aWYgKCFhdmFpbGFibGVGYW1pbHkpIHsKKyAgICAgICAgTlNTdHJpbmcgKmRlc2lyZWRGYW1pbHkg
PSBmYW1pbHk7CisKICAgICAgICAgLy8gRG8gYSBzaW1wbGUgY2FzZSBpbnNlbnNpdGl2ZSBzZWFy
Y2ggZm9yIGEgbWF0Y2hpbmcgZm9udCBmYW1pbHkuCiAgICAgICAgIC8vIE5TRm9udE1hbmFnZXIg
cmVxdWlyZXMgZXhhY3QgbmFtZSBtYXRjaGVzLgogICAgICAgICAvLyBUaGlzIGFkZHJlc3NlcyB0
aGUgcHJvYmxlbSBvZiBtYXRjaGluZyBhcmlhbCB0byBBcmlhbCwgZXRjLiwgYnV0IHBlcmhhcHMg
bm90IGFsbCB0aGUgaXNzdWVzLgpAQCAtMzAyLDcgKzMxMCw2IEBAIHN0YXRpYyBOU0ZvbnQgKmZv
bnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sg
ZGVzaXJlCiAgICAgICAgIGlmICghYXZhaWxhYmxlRmFtaWx5KSB7CiAgICAgICAgICAgICAvLyBN
YXRjaCBieSBQb3N0U2NyaXB0IG5hbWUuCiAgICAgICAgICAgICBOU0ZvbnQgKm5hbWVNYXRjaGVk
Rm9udCA9IG5pbDsKLSAgICAgICAgICAgIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzRm9y
TmFtZU1hdGNoID0gZGVzaXJlZFRyYWl0cyB8ICh3ZWlnaHQgPj0gRm9udFdlaWdodDYwMCA/IE5T
Qm9sZEZvbnRNYXNrIDogMCk7CiAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICphdmFpbGFibGVG
b250IGluIFtmb250TWFuYWdlciBhdmFpbGFibGVGb250c10pIHsKICAgICAgICAgICAgICAgICBp
ZiAoW2Rlc2lyZWRGYW1pbHkgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTphdmFpbGFibGVGb250XSA9
PSBOU09yZGVyZWRTYW1lKSB7CiAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXRjaGVkRm9udCA9
IFtOU0ZvbnQgZm9udFdpdGhOYW1lOmF2YWlsYWJsZUZvbnQgc2l6ZTpzaXplXTsKQEAgLTMyMiw3
ICszMjksNyBAQCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJp
bmcmIGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAKLSAgICAgICAgcmVtZW1iZXJEZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBw
aW5nKGRlc2lyZWRGYW1pbHksIGF2YWlsYWJsZUZhbWlseSk7CisgICAgICAgIHJlbWVtYmVyRGVz
aXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGluZyhmYW1pbHksIGRlc2lyZWRUcmFpdHNG
b3JOYW1lTWF0Y2gsIGF2YWlsYWJsZUZhbWlseSk7CiAgICAgICAgIGlmICghYXZhaWxhYmxlRmFt
aWx5KQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICB9CkBAIC00MDYsNyArNDEzLDEwIEBA
IHN0YXRpYyB2b2lkIGludmFsaWRhdGVGb250Q2FjaGUodm9pZCopCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgRm9udENhY2hlOjpzaW5nbGV0b24oKS5pbnZhbGlkYXRlKCk7Ci0gICAgW2Rl
c2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseURpY3Rpb25hcnkoKSByZW1vdmVBbGxPYmplY3Rz
XTsKKworI2lmICFFTkFCTEUoUExBVEZPUk1fRk9OVF9MT09LVVApCisgICAgZGVzaXJlZEZhbWls
eVRvQXZhaWxhYmxlRmFtaWx5TWFwKCkuY2xlYXIoKTsKKyNlbmRpZgogfQogCiBzdGF0aWMgdm9p
ZCBmb250Q2FjaGVSZWdpc3RlcmVkRm9udHNDaGFuZ2VkTm90aWZpY2F0aW9uQ2FsbGJhY2soQ0ZO
b3RpZmljYXRpb25DZW50ZXJSZWYsIHZvaWQqIG9ic2VydmVyLCBDRlN0cmluZ1JlZiBuYW1lLCBj
b25zdCB2b2lkICosIENGRGljdGlvbmFyeVJlZikKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0No
YW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1MDJkZmU0MWEzMWM0ZmU5Mjk4
ODI0YzdiNjZjZjI2Zjg3ZTA1Y2UzLi5iYTZjNThlN2FlNTk2YjQ0NzkwNzNmMGI0YzRjYTg1NzRm
Zjc1ZTkwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTUtMDUtMTkgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbTWFjXSBGb250IGxvb2t1cHMgYXJlIGZsYWtl
eSBkdWUgdG8gY2FjaGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ1MTgwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMTAxMjQwNj4KKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICBVbnNraXAgcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9m
b250LXdlaWdodHMuaHRtbCBhcyBpdCBpcyBubyBsb25nZXIKKyAgICAgICAgZmxha2V5IGFmdGVy
IHRoaXMgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdl
aWdodHMtZXhwZWN0ZWQudHh0OgorICAgICAgICBSZWJhc2VsaW5lIHRoZSB0ZXN0IGFzIHRoZSBl
eHBlY3RlZCByZXN1bHRzIHdlcmUgdGhvc2UgYmFzZWQgb24gdGhlCisgICAgICAgIGJhZCBjYWNo
aW5nIGJlaGF2aW9yLgorCiAyMDE1LTA1LTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgTWVyZ2VkIGFub255bW91cyBibG9ja3Mgc2hvdWxkIGludmFsaWRhdGUg
c2ltcGxlIGxpbmUgbGF5b3V0IHBhdGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDY5ZjA5OGMwMTI1MzllNzdlMDEwYzdjZmNkNDM2Mjc0ZmQzYzJkYjMu
LjZmNTZhZjRkMTU1NDJiYzJiYjg1YTM0ZGUyZWM4NDdmNWJjMmIyNWEgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjYyLDQgKzEyNjIsMyBAQCB3ZWJr
aXQub3JnL2IvMTcwMjIgWyBNb3VudGFpbkxpb24gTWF2ZXJpY2tzIF0gZmFzdC9pbWFnZXMvYW5p
bWF0ZWQtcG5nLmh0bWwgWyBTawogd2Via2l0Lm9yZy9iLzE0MjU0OCBbIFlvc2VtaXRlKyBdIGVk
aXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1ieS1jaGFyYWN0ZXItMDA3Lmh0bWwgWyBQYXNzIF0KIHdl
YmtpdC5vcmcvYi8xNDE2NjEgWyBZb3NlbWl0ZSsgXSBmYXN0L3RleHQvZW1vamkuaHRtbCBbIFBh
c3MgXQogCi13ZWJraXQub3JnL2IvMTQ1MTQ5IHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZm9udC13
ZWlnaHRzLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhwZWN0ZWQudHh0CmluZGV4
IGU5MDUzYWFhYThmNTk4MDc2MGNhODg0ZWUyODM3YjE2YzQ2OWVjZDguLmIxMzcyZDYwM2NhZTk0
ODE0YjRkNjE3NDIxNzQxZjEyZjQ2NzBmMWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3RleHQvZm9udC13ZWlnaHRzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy1leHBlY3RlZC50eHQKQEAg
LTQ1MSwxNyArNDUxLDE3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgNzg1eDY3NDEKICAgICAgICAg
UmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CiAgICAgICAgICAgdGV4dCBy
dW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRh
bGljIFdlaWdodDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBh
dCAoMCwyODM0KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAs
MCkgc2l6ZSA0MDd4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MDc6ICJG
b250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiAyMDAgU3R5bGU6IGl0
YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4Cisg
ICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1
ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogMjAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwyODUyKSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MDd4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCA0MDc6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0
OiAzMDAgU3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgMzcyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9u
dDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogMzAwIFN0eWxlOiBpdGFs
aWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyODcwKSBzaXplIDc2OXgxOAotICAg
ICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MjR4MTgKLSAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjQ6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGln
aHRJdGFsaWMgV2VpZ2h0OiA0MDAgU3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDog
NDAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwyODg4KSBz
aXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MjR4
MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MjQ6ICJGb250OiBIZWx2ZXRp
Y2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiA1MDAgU3R5bGU6IGl0YWxpYyIKKyAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzcyeDE4CisgICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggMzcyOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0
SXRhbGljIFdlaWdodDogNTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7RElW
fSBhdCAoMCwyOTA2KSBzaXplIDc2OXgxOQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQg
KDAsMCkgc2l6ZSA0NTV4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NTU6
ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJhTGlnaHRJdGFsaWMgV2VpZ2h0OiA2MDAgU3R5bGU6
IGl0YWxpYyIKQEAgLTQ3NSw4ICs0NzUsOCBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2NzQx
CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ1NXgxOQogICAgICAg
ICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQ1NTogIkZvbnQ6IEhlbHZldGljYU5ldWUtVWx0
cmFMaWdodEl0YWxpYyBXZWlnaHQ6IDkwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxv
Y2sge0RJVn0gYXQgKDAsMjk4Mikgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzQzeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lk
dGggMzQzOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDEwMCBTdHls
ZTogaXRhbGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNzV4
MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzU6ICJGb250OiBIZWx2ZXRp
Y2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5k
ZXJCbG9jayB7RElWfSBhdCAoMCwzMDAwKSBzaXplIDc2OXgxOAogICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNzV4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCww
KSB3aWR0aCAzNzU6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogMjAw
IFN0eWxlOiBpdGFsaWMiCkBAIC00ODQsMTEgKzQ4NCwxMSBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDc4NXg2NzQxCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3NXgx
OAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3NTogIkZvbnQ6IEhlbHZldGlj
YU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiAzMDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRl
ckJsb2NrIHtESVZ9IGF0ICgwLDMwMzYpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRleHQg
eyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5MHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDAp
IHdpZHRoIDM5MDogIkZvbnQ6IEhlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA0MDAg
U3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
Mzc1eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc1OiAiRm9udDogSGVs
dmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDQwMCBTdHlsZTogaXRhbGljIgogICAgICAg
UmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzA1NCkgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVy
VGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzkweDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQg
KDAsMCkgd2lkdGggMzkwOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6
IDUwMCBTdHlsZTogaXRhbGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkg
c2l6ZSAzNzV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzU6ICJGb250
OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogNTAwIFN0eWxlOiBpdGFsaWMiCiAg
ICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzMDcyKSBzaXplIDc2OXgxOQogICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0MTh4MTkKICAgICAgICAgICB0ZXh0IHJ1
biBhdCAoMCwwKSB3aWR0aCA0MTg6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdl
aWdodDogNjAwIFN0eWxlOiBpdGFsaWMiCkBAIC01MDIsMTQgKzUwMiwxNCBAQCBsYXllciBhdCAo
MCwwKSBzaXplIDc4NXg2NzQxCiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDQxOHgxOQogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDQxODogIkZvbnQ6
IEhlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA5MDAgU3R5bGU6IGl0YWxpYyIKICAg
ICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDMxNDgpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDMxM3gxOAotICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDMxMzogIkZvbnQ6IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDog
MTAwIFN0eWxlOiBpdGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDM1NXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1NTogIkZvbnQ6
IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDogMTAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBS
ZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzMTY2KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNDF4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAzNDE6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDIwMCBT
dHlsZTogaXRhbGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAz
NTV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNTU6ICJGb250OiBIZWx2
ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDIwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzE4NCkgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMzQxeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMzQxOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1JdGFsaWMgV2VpZ2h0OiAzMDAgU3R5bGU6
IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1eDE4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiRm9udDogSGVsdmV0aWNh
TmV1ZS1JdGFsaWMgV2VpZ2h0OiAzMDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDMyMDIpIHNpemUgNzY5eDE4CiAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM1NXgxOAogICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDM1NTogIkZvbnQ6IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDogNDAwIFN0eWxlOiBpdGFs
aWMiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253401</attachid>
            <date>2015-05-19 14:25:48 -0700</date>
            <delta_ts>2015-05-19 15:52:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145180-20150519142545.patch</filename>
            <type>text/plain</type>
            <size>14708</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg0NTc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjgyNzA0MjkzODY0YTAx
YjJiY2Y4NTU2Y2ZkZmI4MmVmZDczMzNlOS4uNmYwZDkzNjQyM2ZhZjAxMzAxYjQ5NzNhOTBjMzg1
OTBlNTI5NmRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE1LTA1LTE5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gRm9udCBsb29rdXBz
IGFyZSBmbGFrZXkgZHVlIHRvIGNhY2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE0NTE4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjEwMTI0
MDY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgRm9udCBs
b29rdXBzIHdlcmUgZmxha2V5IG9uIE1hYyBkdWUgdG8gdGhlIGNhY2hlIGluIGZvbnRXaXRoRmFt
aWx5KCkuCisgICAgICAgIFRoZSByZWFzb24gaXMgdGhhdCB0aGUgImRlc2lyZWQgZmFtaWx5IiB0
byAiYXZhaWxhYmxlIGZhbWlseSIgbWFwcGluZworICAgICAgICBpcyBzb21ldGltZXMgZGVwZW5k
ZW50IG9uIHRoZSBkZXNpcmVkIHRyYWl0cy4gSG93ZXZlciwgb3VyIGNhY2hlIHdhcworICAgICAg
ICBvbmx5IHVzaW5nIHRoZSAiZGVzaXJlZCBmYW1pbHkiIGFzIGtleS4KKworICAgICAgICBUaGlz
IHBhdGNoIG5vdyB1c2VzIGEgc3RkOjpwYWlyIGFzIGtleSBjb250YWluaW5nIGJvdGggdGhlICJk
ZXNpcmVkCisgICAgICAgIGZhbWlseSIgYW5kIHRoZSAiZGVzaXJlZCB0cmFpdHMiIGZvciBjb3Jy
ZWN0bmVzcy4gSSBhbHNvIHVwZGF0ZWQgdGhlCisgICAgICAgIGNhY2hlIHRvIHVzZSBXVEYgdHlw
ZXMgaW5zdGVhZCBvZiBOUyB0eXBlcy4KKworICAgICAgICBUZXN0OiBwbGF0Zm9ybS9tYWMvZmFz
dC90ZXh0L2ZvbnQtd2VpZ2h0cy5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udENhY2hlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRvQXZh
aWxhYmxlRmFtaWx5TWFwKToKKyAgICAgICAgKFdlYkNvcmU6Omhhc0Rlc2lyZWRGYW1pbHlUb0F2
YWlsYWJsZUZhbWlseU1hcHBpbmcpOgorICAgICAgICAoV2ViQ29yZTo6cmVtZW1iZXJEZXNpcmVk
RmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBwaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OmZvbnRX
aXRoRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OmludmFsaWRhdGVGb250Q2FjaGUpOgorICAg
ICAgICAoV2ViQ29yZTo6ZGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5RGljdGlvbmFyeSk6
IERlbGV0ZWQuCisKIDIwMTUtMDUtMTkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4K
IAogICAgICAgICBNZXJnZWQgYW5vbnltb3VzIGJsb2NrcyBzaG91bGQgaW52YWxpZGF0ZSBzaW1w
bGUgbGluZSBsYXlvdXQgcGF0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDcyNjllOGYzYTI3ZDBlZTNhY2RlZWY5
MzliZjFkNWQ4MWVkYmFhZDYuLjdmYWU5M2JhYzhmYjE5ZGFlZDc2ZDVhNDkyYTY2YzczODM0OTY5
N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDYWNoZU1hYy5tbQpAQCAtMTI5LDI5ICsxMjksMzQgQEAgc3RhdGljIGlubGluZSBGb250VHJh
aXRzTWFzayB0b1RyYWl0c01hc2soTlNGb250VHJhaXRNYXNrIGFwcEtpdFRyYWl0cywgTlNJbnRl
Z2UKICAgICAgICAgICAgICAgICBGb250V2VpZ2h0OTAwTWFzaykpOwogfQogCi0vLyBLZWVwIGEg
Y2FjaGUgZm9yIG1hcHBpbmcgZGVzaXJlZCBmb250IGZhbWlsaWVzIHRvIGZvbnQgZmFtaWxpZXMg
YWN0dWFsbHkKLS8vIGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KLXN0
YXRpYyBOU011dGFibGVEaWN0aW9uYXJ5KiBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlE
aWN0aW9uYXJ5KCkKKyNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQorLy8gS2VlcCBh
IGNhY2hlIGZvciBtYXBwaW5nIGRlc2lyZWQgZm9udCBmYW1pbGllcyB0byBmb250IGZhbWlsaWVz
IGFjdHVhbGx5IGF2YWlsYWJsZSBvbiB0aGUgc3lzdGVtIGZvciBwZXJmb3JtYW5jZS4KK3VzaW5n
IEF2YWlsYWJsZUZhbWlseU1hcCA9IEhhc2hNYXA8c3RkOjpwYWlyPEF0b21pY1N0cmluZywgTlNG
b250VHJhaXRNYXNrPiwgQXRvbWljU3RyaW5nPjsKK3N0YXRpYyBBdmFpbGFibGVGYW1pbHlNYXAm
IGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKLSAgICBzdGF0aWMgTlNNdXRhYmxlRGljdGlvbmFyeSAqZGljdGlvbmFyeSA9
IFtbTlNNdXRhYmxlRGljdGlvbmFyeSBhbGxvY10gaW5pdF07Ci0gICAgcmV0dXJuIGRpY3Rpb25h
cnk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF2YWlsYWJsZUZhbWlseU1hcD4gbWFwOwor
ICAgIHJldHVybiBtYXA7CiB9CiAKLSNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQot
c3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVyRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5
TWFwcGluZyhOU1N0cmluZyogZGVzaXJlZEZhbWlseSwgTlNTdHJpbmcqIGF2YWlsYWJsZUZhbWls
eSkKK3N0YXRpYyBib29sIGhhc0Rlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmco
Y29uc3QgQXRvbWljU3RyaW5nJiBkZXNpcmVkRmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJl
ZFRyYWl0cywgTlNTdHJpbmcqJiBhdmFpbGFibGVGYW1pbHkpCiB7Ci0gICAgc3RhdGljIGNvbnN0
IE5TVUludGVnZXIgbWF4Q2FjaGVTaXplID0gMTI4OwotICAgIE5TTXV0YWJsZURpY3Rpb25hcnkg
KmZhbWlseU1hcHBpbmcgPSBkZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlEaWN0aW9uYXJ5
KCk7Ci0gICAgQVNTRVJUKFtmYW1pbHlNYXBwaW5nIGNvdW50XSA8PSBtYXhDYWNoZVNpemUpOwot
ICAgIGlmIChbZmFtaWx5TWFwcGluZyBjb3VudF0gPT0gbWF4Q2FjaGVTaXplKSB7Ci0gICAgICAg
IGZvciAoTlNTdHJpbmcgKmtleSBpbiBmYW1pbHlNYXBwaW5nKSB7Ci0gICAgICAgICAgICBbZmFt
aWx5TWFwcGluZyByZW1vdmVPYmplY3RGb3JLZXk6a2V5XTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotICAgIGlkIHZhbHVlID0gYXZhaWxhYmxlRmFtaWx5ID8gYXZhaWxh
YmxlRmFtaWx5IDogW05TTnVsbCBudWxsXTsKLSAgICBbZmFtaWx5TWFwcGluZyBzZXRPYmplY3Q6
dmFsdWUgZm9yS2V5OmRlc2lyZWRGYW1pbHldOworICAgIEF0b21pY1N0cmluZyB2YWx1ZSA9IGRl
c2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcCgpLmdldChzdGQ6Om1ha2VfcGFpcihkZXNp
cmVkRmFtaWx5LCBkZXNpcmVkVHJhaXRzKSk7CisgICAgYXZhaWxhYmxlRmFtaWx5ID0gdmFsdWUu
aXNFbXB0eSgpID8gbmlsIDogc3RhdGljX2Nhc3Q8TlNTdHJpbmcqPih2YWx1ZSk7CisgICAgcmV0
dXJuICF2YWx1ZS5pc051bGwoKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHJlbWVtYmVyRGVz
aXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGluZyhjb25zdCBBdG9taWNTdHJpbmcmIGRl
c2lyZWRGYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzLCBOU1N0cmluZyogYXZh
aWxhYmxlRmFtaWx5KQoreworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDYWNoZVNpemUg
PSAxMjg7CisgICAgYXV0byYgZmFtaWx5TWFwcGluZyA9IGRlc2lyZWRGYW1pbHlUb0F2YWlsYWJs
ZUZhbWlseU1hcCgpOworICAgIEFTU0VSVChmYW1pbHlNYXBwaW5nLnNpemUoKSA8PSBtYXhDYWNo
ZVNpemUpOworICAgIGlmIChmYW1pbHlNYXBwaW5nLnNpemUoKSA+PSBtYXhDYWNoZVNpemUpCisg
ICAgICAgIGZhbWlseU1hcHBpbmcucmVtb3ZlKGZhbWlseU1hcHBpbmcuYmVnaW4oKSk7CisKKyAg
ICAvLyBTdG9yZSBuaWwgYXMgYW4gZW1wdHlBdG9tIHRvIGRpc3Rpbmd1aXNoIGZyb20gbWlzc2lu
ZyB2YWx1ZXMgKG51bGxBdG9tKS4KKyAgICBBdG9taWNTdHJpbmcgdmFsdWUgPSBhdmFpbGFibGVG
YW1pbHkgPyBBdG9taWNTdHJpbmcoYXZhaWxhYmxlRmFtaWx5KSA6IGVtcHR5QXRvbTsKKyAgICBm
YW1pbHlNYXBwaW5nLmFkZChzdGQ6Om1ha2VfcGFpcihkZXNpcmVkRmFtaWx5LCBkZXNpcmVkVHJh
aXRzKSwgdmFsdWUpOwogfQogCiAjZWxzZQpAQCAtMjYyLDcgKzI2Nyw2IEBAIHN0YXRpYyBOU0Zv
bnQgKmZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBOU0ZvbnRUcmFp
dE1hc2sgZGVzaXJlCiAgICAgICAgIHJldHVybiBzcGVjaWFsQ2FzZS52YWx1ZSgpOwogCiAgICAg
TlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFu
YWdlcl07Ci0gICAgTlNTdHJpbmcgKmRlc2lyZWRGYW1pbHkgPSBmYW1pbHk7CiAgICAgTlNTdHJp
bmcgKmF2YWlsYWJsZUZhbWlseTsKICAgICBpbnQgY2hvc2VuV2VpZ2h0OwogICAgIE5TRm9udCAq
Zm9udDsKQEAgLTI3NywyMCArMjgxLDI1IEBAIHN0YXRpYyBOU0ZvbnQgKmZvbnRXaXRoRmFtaWx5
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlCiAgICAg
ICAgIHJlcXVlc3RlZFRyYWl0cyB8PSBrQ1RGb250SXRhbGljVHJhaXQ7CiAgICAgaWYgKHdlaWdo
dCA+PSBGb250V2VpZ2h0NjAwKQogICAgICAgICByZXF1ZXN0ZWRUcmFpdHMgfD0ga0NURm9udEJv
bGRUcmFpdDsKKworICAgIE5TU3RyaW5nICpkZXNpcmVkRmFtaWx5ID0gZmFtaWx5OwogICAgIGZv
bnQgPSBDRkJyaWRnaW5nUmVsZWFzZShDVEZvbnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRl
c2lyZWRGYW1pbHksIHRvQ29yZVRleHRGb250V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0
cywgc2l6ZSkpOwogICAgIGF2YWlsYWJsZUZhbWlseSA9IFtmb250IGZhbWlseU5hbWVdOwogICAg
IGNob3NlbldlaWdodCA9IFtmb250TWFuYWdlciB3ZWlnaHRPZkZvbnQ6Zm9udF07CiAKICNlbHNl
CiAKLSAgICBpZCBjYWNoZWRBdmFpbGFibGVGYW1pbHkgPSBbZGVzaXJlZEZhbWlseVRvQXZhaWxh
YmxlRmFtaWx5RGljdGlvbmFyeSgpIG9iamVjdEZvcktleTpkZXNpcmVkRmFtaWx5XTsKLSAgICBp
ZiAoY2FjaGVkQXZhaWxhYmxlRmFtaWx5ID09IFtOU051bGwgbnVsbF0pIHsKLSAgICAgICAgLy8g
V2UgYWxyZWFkeSBrbm93IHRoaXMgZm9udCBpcyBub3QgYXZhaWxhYmxlLgotICAgICAgICByZXR1
cm4gbmlsOworICAgIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzRm9yTmFtZU1hdGNoID0g
ZGVzaXJlZFRyYWl0cyB8ICh3ZWlnaHQgPj0gRm9udFdlaWdodDYwMCA/IE5TQm9sZEZvbnRNYXNr
IDogMCk7CisgICAgaWYgKGhhc0Rlc2lyZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmco
ZmFtaWx5LCBkZXNpcmVkVHJhaXRzRm9yTmFtZU1hdGNoLCBhdmFpbGFibGVGYW1pbHkpKSB7Cisg
ICAgICAgIGlmICghYXZhaWxhYmxlRmFtaWx5KSB7CisgICAgICAgICAgICAvLyBXZSBhbHJlYWR5
IGtub3cgdGhlIGRlc2lyZWQgZm9udCBmYW1pbHkgZG9lcyBub3QgbWFwIHRvIGFueSBhdmFpbGFi
bGUgZm9udCBmYW1pbHkuCisgICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICB9CiAgICAg
fQogCi0gICAgYXZhaWxhYmxlRmFtaWx5ID0gY2FjaGVkQXZhaWxhYmxlRmFtaWx5OwogICAgIGlm
ICghYXZhaWxhYmxlRmFtaWx5KSB7CisgICAgICAgIE5TU3RyaW5nICpkZXNpcmVkRmFtaWx5ID0g
ZmFtaWx5OworCiAgICAgICAgIC8vIERvIGEgc2ltcGxlIGNhc2UgaW5zZW5zaXRpdmUgc2VhcmNo
IGZvciBhIG1hdGNoaW5nIGZvbnQgZmFtaWx5LgogICAgICAgICAvLyBOU0ZvbnRNYW5hZ2VyIHJl
cXVpcmVzIGV4YWN0IG5hbWUgbWF0Y2hlcy4KICAgICAgICAgLy8gVGhpcyBhZGRyZXNzZXMgdGhl
IHByb2JsZW0gb2YgbWF0Y2hpbmcgYXJpYWwgdG8gQXJpYWwsIGV0Yy4sIGJ1dCBwZXJoYXBzIG5v
dCBhbGwgdGhlIGlzc3Vlcy4KQEAgLTMwMiw3ICszMTEsNiBAQCBzdGF0aWMgTlNGb250ICpmb250
V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRl
c2lyZQogICAgICAgICBpZiAoIWF2YWlsYWJsZUZhbWlseSkgewogICAgICAgICAgICAgLy8gTWF0
Y2ggYnkgUG9zdFNjcmlwdCBuYW1lLgogICAgICAgICAgICAgTlNGb250ICpuYW1lTWF0Y2hlZEZv
bnQgPSBuaWw7Ci0gICAgICAgICAgICBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0c0Zvck5h
bWVNYXRjaCA9IGRlc2lyZWRUcmFpdHMgfCAod2VpZ2h0ID49IEZvbnRXZWlnaHQ2MDAgPyBOU0Jv
bGRGb250TWFzayA6IDApOwogICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqYXZhaWxhYmxlRm9u
dCBpbiBbZm9udE1hbmFnZXIgYXZhaWxhYmxlRm9udHNdKSB7CiAgICAgICAgICAgICAgICAgaWYg
KFtkZXNpcmVkRmFtaWx5IGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6YXZhaWxhYmxlRm9udF0gPT0g
TlNPcmRlcmVkU2FtZSkgewogICAgICAgICAgICAgICAgICAgICBuYW1lTWF0Y2hlZEZvbnQgPSBb
TlNGb250IGZvbnRXaXRoTmFtZTphdmFpbGFibGVGb250IHNpemU6c2l6ZV07CkBAIC0zMjIsNyAr
MzMwLDcgQEAgc3RhdGljIE5TRm9udCAqZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5n
JiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmUKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogCi0gICAgICAgIHJlbWVtYmVyRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxlRmFtaWx5TWFwcGlu
ZyhkZXNpcmVkRmFtaWx5LCBhdmFpbGFibGVGYW1pbHkpOworICAgICAgICByZW1lbWJlckRlc2ly
ZWRGYW1pbHlUb0F2YWlsYWJsZUZhbWlseU1hcHBpbmcoZmFtaWx5LCBkZXNpcmVkVHJhaXRzRm9y
TmFtZU1hdGNoLCBhdmFpbGFibGVGYW1pbHkpOwogICAgICAgICBpZiAoIWF2YWlsYWJsZUZhbWls
eSkKICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQpAQCAtNDA2LDcgKzQxNCwxMCBAQCBz
dGF0aWMgdm9pZCBpbnZhbGlkYXRlRm9udENhY2hlKHZvaWQqKQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuaW52YWxpZGF0ZSgpOwotICAgIFtkZXNp
cmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlEaWN0aW9uYXJ5KCkgcmVtb3ZlQWxsT2JqZWN0c107
CisKKyNpZiAhRU5BQkxFKFBMQVRGT1JNX0ZPTlRfTE9PS1VQKQorICAgIGRlc2lyZWRGYW1pbHlU
b0F2YWlsYWJsZUZhbWlseU1hcCgpLmNsZWFyKCk7CisjZW5kaWYKIH0KIAogc3RhdGljIHZvaWQg
Zm9udENhY2hlUmVnaXN0ZXJlZEZvbnRzQ2hhbmdlZE5vdGlmaWNhdGlvbkNhbGxiYWNrKENGTm90
aWZpY2F0aW9uQ2VudGVyUmVmLCB2b2lkKiBvYnNlcnZlciwgQ0ZTdHJpbmdSZWYgbmFtZSwgY29u
c3Qgdm9pZCAqLCBDRkRpY3Rpb25hcnlSZWYpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTAyZGZlNDFhMzFjNGZlOTI5ODgy
NGM3YjY2Y2YyNmY4N2UwNWNlMy4uYmE2YzU4ZTdhZTU5NmI0NDc5MDczZjBiNGM0Y2E4NTc0ZmY3
NWU5MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE1LTA1LTE5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW01hY10gRm9udCBsb29rdXBzIGFyZSBmbGFrZXkg
ZHVlIHRvIGNhY2hpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NTE4MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjEwMTI0MDY+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9uczoKKyAgICAgICAgVW5za2lwIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZm9u
dC13ZWlnaHRzLmh0bWwgYXMgaXQgaXMgbm8gbG9uZ2VyCisgICAgICAgIGZsYWtleSBhZnRlciB0
aGlzIGNoYW5nZS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvZm9udC13ZWln
aHRzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgUmViYXNlbGluZSB0aGUgdGVzdCBhcyB0aGUgZXhw
ZWN0ZWQgcmVzdWx0cyB3ZXJlIHRob3NlIGJhc2VkIG9uIHRoZQorICAgICAgICBiYWQgY2FjaGlu
ZyBiZWhhdmlvci4KKwogMjAxNS0wNS0xOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIE1lcmdlZCBhbm9ueW1vdXMgYmxvY2tzIHNob3VsZCBpbnZhbGlkYXRlIHNp
bXBsZSBsaW5lIGxheW91dCBwYXRoLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA2OWYwOThjMDEyNTM5ZTc3ZTAxMGM3Y2ZjZDQzNjI3NGZkM2MyZGIzLi42
ZjU2YWY0ZDE1NTQyYmMyYmI4NWEzNGRlMmVjODQ3ZjViYzJiMjVhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI2Miw0ICsxMjYyLDMgQEAgd2Via2l0
Lm9yZy9iLzE3MDIyIFsgTW91bnRhaW5MaW9uIE1hdmVyaWNrcyBdIGZhc3QvaW1hZ2VzL2FuaW1h
dGVkLXBuZy5odG1sIFsgU2sKIHdlYmtpdC5vcmcvYi8xNDI1NDggWyBZb3NlbWl0ZSsgXSBlZGl0
aW5nL3NlbGVjdGlvbi9leHRlbmQtYnktY2hhcmFjdGVyLTAwNy5odG1sIFsgUGFzcyBdCiB3ZWJr
aXQub3JnL2IvMTQxNjYxIFsgWW9zZW1pdGUrIF0gZmFzdC90ZXh0L2Vtb2ppLmh0bWwgWyBQYXNz
IF0KIAotd2Via2l0Lm9yZy9iLzE0NTE0OSBwbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ZvbnQtd2Vp
Z2h0cy5odG1sIFsgUGFzcyBGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L3RleHQvZm9udC13ZWlnaHRzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L3RleHQvZm9udC13ZWlnaHRzLWV4cGVjdGVkLnR4dAppbmRleCBl
OTA1M2FhYWE4ZjU5ODA3NjBjYTg4NGVlMjgzN2IxNmM0NjllY2Q4Li5iMTM3MmQ2MDNjYWU5NDgx
NGI0ZDYxNzQyMTc0MWYxMmY0NjcwZjFhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZmFzdC90ZXh0L2ZvbnQtd2VpZ2h0cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9mb250LXdlaWdodHMtZXhwZWN0ZWQudHh0CkBAIC00
NTEsMTcgKzQ1MSwxNyBAQCBsYXllciBhdCAoMCwwKSBzaXplIDc4NXg2NzQxCiAgICAgICAgIFJl
bmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3MngxOAogICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDM3MjogIkZvbnQ6IEhlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0YWxp
YyBXZWlnaHQ6IDEwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQg
KDAsMjgzNCkgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDAp
IHNpemUgNDA3eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDA3OiAiRm9u
dDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogMjAwIFN0eWxlOiBpdGFs
aWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3MngxOAorICAg
ICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3MjogIkZvbnQ6IEhlbHZldGljYU5ldWUt
VWx0cmFMaWdodEl0YWxpYyBXZWlnaHQ6IDIwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMjg1Mikgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgNDA3eDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggNDA3OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDog
MzAwIFN0eWxlOiBpdGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBz
aXplIDM3MngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3MjogIkZvbnQ6
IEhlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0YWxpYyBXZWlnaHQ6IDMwMCBTdHlsZTogaXRhbGlj
IgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMjg3MCkgc2l6ZSA3Njl4MTgKLSAgICAg
ICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDI0eDE4Ci0gICAgICAgICAgdGV4
dCBydW4gYXQgKDAsMCkgd2lkdGggNDI0OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0
SXRhbGljIFdlaWdodDogNDAwIFN0eWxlOiBpdGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDM3MngxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM3MjogIkZvbnQ6IEhlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0YWxpYyBXZWlnaHQ6IDQw
MCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMjg4OCkgc2l6
ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDI0eDE4
Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDI0OiAiRm9udDogSGVsdmV0aWNh
TmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogNTAwIFN0eWxlOiBpdGFsaWMiCisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3MngxOAorICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDM3MjogIkZvbnQ6IEhlbHZldGljYU5ldWUtVWx0cmFMaWdodEl0
YWxpYyBXZWlnaHQ6IDUwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVyQmxvY2sge0RJVn0g
YXQgKDAsMjkwNikgc2l6ZSA3Njl4MTkKICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgw
LDApIHNpemUgNDU1eDE5CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggNDU1OiAi
Rm9udDogSGVsdmV0aWNhTmV1ZS1VbHRyYUxpZ2h0SXRhbGljIFdlaWdodDogNjAwIFN0eWxlOiBp
dGFsaWMiCkBAIC00NzUsOCArNDc1LDggQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3ODV4Njc0MQog
ICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0NTV4MTkKICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0NTU6ICJGb250OiBIZWx2ZXRpY2FOZXVlLVVsdHJh
TGlnaHRJdGFsaWMgV2VpZ2h0OiA5MDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRlckJsb2Nr
IHtESVZ9IGF0ICgwLDI5ODIpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0ZXh0
fSBhdCAoMCwwKSBzaXplIDM0M3gxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRo
IDM0MzogIkZvbnQ6IEhlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiAxMDAgU3R5bGU6
IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzc1eDE4
CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc1OiAiRm9udDogSGVsdmV0aWNh
TmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDEwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVuZGVy
QmxvY2sge0RJVn0gYXQgKDAsMzAwMCkgc2l6ZSA3Njl4MTgKICAgICAgICAgUmVuZGVyVGV4dCB7
I3RleHR9IGF0ICgwLDApIHNpemUgMzc1eDE4CiAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkg
d2lkdGggMzc1OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDIwMCBT
dHlsZTogaXRhbGljIgpAQCAtNDg0LDExICs0ODQsMTEgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA3
ODV4Njc0MQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzNzV4MTgK
ICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNzU6ICJGb250OiBIZWx2ZXRpY2FO
ZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogMzAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMCwzMDM2KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAzOTB4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3
aWR0aCAzOTA6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogNDAwIFN0
eWxlOiBpdGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM3
NXgxOAorICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM3NTogIkZvbnQ6IEhlbHZl
dGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA0MDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJl
bmRlckJsb2NrIHtESVZ9IGF0ICgwLDMwNTQpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM5MHgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgw
LDApIHdpZHRoIDM5MDogIkZvbnQ6IEhlbHZldGljYU5ldWUtTGlnaHRJdGFsaWMgV2VpZ2h0OiA1
MDAgU3R5bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNp
emUgMzc1eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzc1OiAiRm9udDog
SGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWlnaHQ6IDUwMCBTdHlsZTogaXRhbGljIgogICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzA3Mikgc2l6ZSA3Njl4MTkKICAgICAgICAgUmVu
ZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDE4eDE5CiAgICAgICAgICAgdGV4dCBydW4g
YXQgKDAsMCkgd2lkdGggNDE4OiAiRm9udDogSGVsdmV0aWNhTmV1ZS1MaWdodEl0YWxpYyBXZWln
aHQ6IDYwMCBTdHlsZTogaXRhbGljIgpAQCAtNTAyLDE0ICs1MDIsMTQgQEAgbGF5ZXIgYXQgKDAs
MCkgc2l6ZSA3ODV4Njc0MQogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSA0MTh4MTkKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCA0MTg6ICJGb250OiBI
ZWx2ZXRpY2FOZXVlLUxpZ2h0SXRhbGljIFdlaWdodDogOTAwIFN0eWxlOiBpdGFsaWMiCiAgICAg
ICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwzMTQ4KSBzaXplIDc2OXgxOAotICAgICAgICBSZW5k
ZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAzMTN4MTgKLSAgICAgICAgICB0ZXh0IHJ1biBh
dCAoMCwwKSB3aWR0aCAzMTM6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDEw
MCBTdHlsZTogaXRhbGljIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6
ZSAzNTV4MTgKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAzNTU6ICJGb250OiBI
ZWx2ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDEwMCBTdHlsZTogaXRhbGljIgogICAgICAgUmVu
ZGVyQmxvY2sge0RJVn0gYXQgKDAsMzE2Nikgc2l6ZSA3Njl4MTgKLSAgICAgICAgUmVuZGVyVGV4
dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzQxeDE4Ci0gICAgICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMzQxOiAiRm9udDogSGVsdmV0aWNhTmV1ZS1JdGFsaWMgV2VpZ2h0OiAyMDAgU3R5
bGU6IGl0YWxpYyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMzU1
eDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzU1OiAiRm9udDogSGVsdmV0
aWNhTmV1ZS1JdGFsaWMgV2VpZ2h0OiAyMDAgU3R5bGU6IGl0YWxpYyIKICAgICAgIFJlbmRlckJs
b2NrIHtESVZ9IGF0ICgwLDMxODQpIHNpemUgNzY5eDE4Ci0gICAgICAgIFJlbmRlclRleHQgeyN0
ZXh0fSBhdCAoMCwwKSBzaXplIDM0MXgxOAotICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDM0MTogIkZvbnQ6IEhlbHZldGljYU5ldWUtSXRhbGljIFdlaWdodDogMzAwIFN0eWxlOiBp
dGFsaWMiCisgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDM1NXgxOAor
ICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdpZHRoIDM1NTogIkZvbnQ6IEhlbHZldGljYU5l
dWUtSXRhbGljIFdlaWdodDogMzAwIFN0eWxlOiBpdGFsaWMiCiAgICAgICBSZW5kZXJCbG9jayB7
RElWfSBhdCAoMCwzMjAyKSBzaXplIDc2OXgxOAogICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDAsMCkgc2l6ZSAzNTV4MTgKICAgICAgICAgICB0ZXh0IHJ1biBhdCAoMCwwKSB3aWR0aCAz
NTU6ICJGb250OiBIZWx2ZXRpY2FOZXVlLUl0YWxpYyBXZWlnaHQ6IDQwMCBTdHlsZTogaXRhbGlj
Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>