<?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>95363</bug_id>
          
          <creation_ts>2012-08-29 11:54:27 -0700</creation_ts>
          <short_desc>[Chromium] Remove getRenderStyleForStrike from PlatformSupport</short_desc>
          <delta_ts>2012-09-05 12:03:51 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>82948</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Pilgrim (Google)">pilgrim</reporter>
          <assigned_to name="Mark Pilgrim (Google)">pilgrim</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>haraken</cc>
    
    <cc>jamesr</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>707706</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-08-29 11:54:27 -0700</bug_when>
    <thetext>[Chromium] Remove getRenderStyleForStrike from PlatformSupport</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707707</commentid>
    <comment_count>1</comment_count>
      <attachid>161278</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-08-29 11:55:16 -0700</bug_when>
    <thetext>Created attachment 161278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707710</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 11:56:57 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707711</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 11:57:15 -0700</bug_when>
    <thetext>Attachment 161278 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebCore/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707732</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-08-29 12:23:23 -0700</bug_when>
    <thetext>I fixed a bunch of existing style bugs as I was moving files around, but I actually don&apos;t know how to fix this last one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707738</commentid>
    <comment_count>5</comment_count>
      <attachid>161278</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 12:30:50 -0700</bug_when>
    <thetext>Comment on attachment 161278
Patch

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

&gt; Source/WebCore/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:321
&gt; -    PlatformSupport::getRenderStyleForStrike(m_family.data(), (((int)m_textSize) &lt;&lt; 2) | (m_typeface-&gt;style() &amp; 3), &amp;m_style);
&gt; +    getRenderStyleForStrike(m_family.data(), (((int)m_textSize) &lt;&lt; 2) | (m_typeface-&gt;style() &amp; 3), &amp;m_style);

Now that this is a member function, we don&apos;t need to pass m_style as an argument.  We can just access it from inside the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707739</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-29 12:31:17 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; I fixed a bunch of existing style bugs as I was moving files around, but I actually don&apos;t know how to fix this last one.

Thanks for fixing most of them.  This is definitely a style improvement.  We can worry about this last warning another time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707809</commentid>
    <comment_count>7</comment_count>
      <attachid>161301</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-08-29 13:38:56 -0700</bug_when>
    <thetext>Created attachment 161301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707810</commentid>
    <comment_count>8</comment_count>
      <attachid>161301</attachid>
    <who name="Mark Pilgrim (Google)">pilgrim</who>
    <bug_when>2012-08-29 13:39:22 -0700</bug_when>
    <thetext>Comment on attachment 161301
Patch

Nits addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707819</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-29 13:45:38 -0700</bug_when>
    <thetext>Attachment 161301 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/Platform/ChangeLog&apos;, u&apos;Source/Platf...&quot; exit_code: 1
Source/WebCore/platform/graphics/harfbuzz/FontPlatformDataHarfBuzz.cpp:49:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 10 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712397</commentid>
    <comment_count>10</comment_count>
      <attachid>161301</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 12:03:46 -0700</bug_when>
    <thetext>Comment on attachment 161301
Patch

Clearing flags on attachment: 161301

Committed r127623: &lt;http://trac.webkit.org/changeset/127623&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712398</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-05 12:03:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161278</attachid>
            <date>2012-08-29 11:55:16 -0700</date>
            <delta_ts>2012-08-29 13:38:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95363-20120829145442.patch</filename>
            <type>text/plain</type>
            <size>20388</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MDI2KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4LTI5ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFJl
bW92ZSBnZXRSZW5kZXJTdHlsZUZvclN0cmlrZSBmcm9tIFBsYXRmb3JtU3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0
b3Jpbmcgc2VyaWVzLiBTZWUgdHJhY2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogUGxhdGZv
cm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udEluZm8uaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViRm9udEluZm8pOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA4LTI3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gU2hvdWxkIGFjY2VsZXJhdGUgcm90YXRp
b25zIG9mID49IDE4MCBkZWdyZWVzCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQkocmV2aXNpb24g
MTI3MDI0KQorKysgU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTE0MSw2ICsxNDEsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJXb3Jr
ZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNh
bmRib3hTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dl
YlRoZW1lRW5naW5lLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJG
b250SW5mby5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udFJl
bmRlclN0eWxlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViVGhl
bWVFbmdpbmUuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL21hYy9XZWJTYW5kYm94
U3VwcG9ydC5oJywKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvbGludXgv
V2ViRm9udEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL2xpbnV4L1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkZvbnRJbmZvX2gKKyNkZWZpbmUgV2ViRm9udEluZm9faAorCisj
aW5jbHVkZSAiLi4vV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgIldlYkZvbnRGYW1pbHkuaCIKKyNp
bmNsdWRlICJXZWJGb250UmVuZGVyU3R5bGUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu
Y2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRm9udElu
Zm8geworcHVibGljOgorICAgIC8vIFNldCBhIGdsb2JhbCBwcmVmZXJlbmNlIGRlc2NyaWJpbmcg
d2hldGhlciByZW5kZXJTdHlsZUZvclN0cmlrZSgpIHNob3VsZAorICAgIC8vIGVuYWJsZSBzdWJw
aXhlbCBwb3NpdGlvbmluZyBvciBub3QuIEZvbnRDb25maWcgZG9lc24ndCBjdXJyZW50bHkgcHJv
dmlkZQorICAgIC8vIGEgcGFyYW1ldGVyIGZvciBjb250cm9sbGluZyB0aGlzLgorICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0U3VicGl4ZWxQb3NpdGlvbmluZyhib29sKTsKKworICAg
IC8vIFJldHVybiBhIGZvbnQgZmFtaWx5IHdoaWNoIHByb3ZpZGVzIGdseXBocyBmb3IgdGhlIFVu
aWNvZGUgY29kZSBwb2ludHMKKyAgICAvLyBzcGVjaWZpZWQgYnkgfHV0ZjE2fAorICAgIC8vICAg
Y2hhcmFjdGVyczogYSBuYXRpdmUtZW5kaWFuIFVURjE2IHN0cmluZworICAgIC8vICAgbnVtQ2hh
cmFjdGVyczogdGhlIG51bWJlciBvZiAxNi1iaXQgd29yZHMgaW4gfHV0ZjE2fAorICAgIC8vICAg
cHJlZmVycmVkTG9jYWxlOiBwcmVmZXJyZWQgbG9jYWxlIGlkZW50aWZpZXIgZm9yIHRoZSB8Y2hh
cmFjdGVyc3wKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgKGUuZy4gImVuIiwgImphIiwgInpo
LUNOIikKKyAgICAvLworICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBvciBhbiBlbXB0
eSBzdHJpbmcgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlCisgICAgLy8gc2F0aXNmaWVkLgor
ICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBpbnN0YW5jZS4gVGhlIGluc3RhbmNlIGhh
cyBhbiBlbXB0eSBmb250IG5hbWUgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlIHNhdGlzZmll
ZC4KKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGZhbWlseUZvckNoYXJzKGNvbnN0IFdl
YlVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFjdGVycywgY29uc3QgY2hhciogcHJl
ZmVycmVkTG9jYWxlLCBXZWJGb250RmFtaWx5Kik7CisKKyAgICAvLyBGaWxsIG91dCB0aGUgZ2l2
ZW4gV2ViRm9udFJlbmRlclN0eWxlIHdpdGggdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBmb3IKKyAg
ICAvLyByZW5kZXJpbmcgdGhlIGdpdmVuIGZvbnQgYXQgdGhlIGdpdmVuIHNpemUgKGluIHBpeGVs
cykuCisgICAgLy8gICBmYW1pbHk6IGkuZS4gIlRpbWVzIE5ldyBSb21hbiIKKyAgICAvLyAgIHNp
emVBbmRTdHlsZToKKyAgICAvLyAgICAgIDMzMjIyMjIyMjIyMjExMTExMTExMTEKKyAgICAvLyAg
ICAgIDEwOTg3NjU0MzIxMDk4NzY1NDMyMTA5ODc2NTQzMjEwCisgICAgLy8gICAgICstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyAgICAgfC4uLi4uLi4uLi4uLi4uU2l6
ZS4uLi4uLi4uLi4uLklCfAorICAgIC8vICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCisgICAgLy8gICAgIEk6IGl0YWxpYyBmbGFnCisgICAgLy8gICAgIEI6IGJvbGQgZmxh
ZworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVuZGVyU3R5bGVGb3JTdHJpa2UoY29u
c3QgY2hhciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBXZWJGb250UmVuZGVyU3R5bGUqIHJl
c3VsdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9u
dFJlbmRlclN0eWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJGb250UmVuZGVyU3R5bGVfaAorI2RlZmluZSBXZWJGb250UmVuZGVy
U3R5bGVfaAorCisjaW5jbHVkZSAiLi4vV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsgc3RydWN0IEZvbnRSZW5kZXJTdHlsZTsgfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Ry
dWN0IFdFQktJVF9FWFBPUlQgV2ViRm9udFJlbmRlclN0eWxlIHsKKyAgICAvLyBFYWNoIG9mIHRo
ZSB1c2UqIG1lbWJlcnMgYmVsb3cgY2FuIHRha2Ugb25lIG9mIHRocmVlIHZhbHVlczoKKyAgICAv
LyAgIDA6IG9mZgorICAgIC8vICAgMTogb24KKyAgICAvLyAgIDI6IG5vIHByZWZlcmVuY2UgZXhw
cmVzc2VkCisgICAgY2hhciB1c2VCaXRtYXBzOyAvLyB1c2UgZW1iZWRkZWQgYml0bWFwIHN0cmlr
ZSBpZiBwb3NzaWJsZQorICAgIGNoYXIgdXNlQXV0b0hpbnQ7IC8vIHVzZSAnYXV0bycgaGludGlu
ZyAoRnJlZVR5cGUgc3BlY2lmaWMpCisgICAgY2hhciB1c2VIaW50aW5nOyAvLyBoaW50IGdseXBo
cyB0byB0aGUgcGl4ZWwgZ3JpZAorICAgIGNoYXIgaGludFN0eWxlOyAvLyBsZXZlbCBvZiBoaW50
aW5nLCAwLi4zCisgICAgY2hhciB1c2VBbnRpQWxpYXM7IC8vIGFudGlhbGlhcyBnbHlwaCBzaGFw
ZXMKKyAgICBjaGFyIHVzZVN1YnBpeGVsUmVuZGVyaW5nOyAvLyB1c2Ugc3VicGl4ZWwgcmVuZGVy
aW5nIChwYXJ0aWFsbHktZmlsbGVkIHBpeGVscykKKyAgICBjaGFyIHVzZVN1YnBpeGVsUG9zaXRp
b25pbmc7IC8vIHVzZSBzdWJwaXhlbCBwb3NpdGlvbmluZyAoZnJhY3Rpb25hbCBYIHBvc2l0aW9u
cyBmb3IgZ2x5cGhzKQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgLy8gVHJhbnNs
YXRlcyB0aGUgbWVtYmVycyBvZiB0aGlzIHN0cnVjdCB0byBhIEZvbnRSZW5kZXJTdHlsZQorICAg
IHZvaWQgdG9Gb250UmVuZGVyU3R5bGUoV2ViQ29yZTo6Rm9udFJlbmRlclN0eWxlKik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0RGVmYXVsdHMoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViRm9udFJlbmRlclN0eWxlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEyNzAyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIyIEBACisyMDEyLTA4LTI5ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSBnZXRSZW5kZXJTdHlsZUZvclN0
cmlrZSBmcm9tIFBsYXRmb3JtU3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJhY2tp
bmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBw
b3J0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN1cHBvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6cXVlcnlTeXN0ZW1G
b3JSZW5kZXJTdHlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9u
dFBsYXRmb3JtRGF0YUhhcmZCdXp6Lmg6CisgICAgICAgIChGb250UGxhdGZvcm1EYXRhKToKKwog
MjAxMi0wOC0yOCAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIERvIG5vdCBjbGlwIHJvb3QgbGF5ZXIncyBzdWJ0cmVlIHRvIHZpZXdw
b3J0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBv
cnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMTI3MDI0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsx
MDUsNiBAQCBwdWJsaWM6CiAjaWYgT1MoREFSV0lOKQogICAgIHN0YXRpYyBib29sIGxvYWRGb250
KE5TRm9udCogc3JjRm9udCwgQ0dGb250UmVmKiwgdWludDMyX3QqIGZvbnRJRCk7CiAjZWxpZiBP
UyhVTklYKQotICAgIHN0YXRpYyB2b2lkIGdldFJlbmRlclN0eWxlRm9yU3RyaWtlKGNvbnN0IGNo
YXIqIGZhbWlseSwgaW50IHNpemVBbmRTdHlsZSwgRm9udFJlbmRlclN0eWxlKiByZXN1bHQpOwog
ICAgIHN0cnVjdCBGb250RmFtaWx5IHsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAgIGJv
b2wgaXNCb2xkOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enou
Y3BwCShyZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEwICsxLDEwIEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA2LCAyMDA3LCAyMDA4LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCisgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCiAgKiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgogICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQpAQCAtMTQsNyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KiAKKyAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBAIC0y
OSwyNSArMjksMjcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRm9u
dFBsYXRmb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oIgog
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgotCiAjaW5jbHVkZSAiU2tBZHZhbmNlZFR5
cGVmYWNlTWV0cmljcy5oIgogI2luY2x1ZGUgIlNrRm9udEhvc3QuaCIKICNpbmNsdWRlICJTa1Bh
aW50LmgiCiAjaW5jbHVkZSAiU2tUeXBlZmFjZS5oIgogCi0jaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSW1wbC5oPiAKLQogI2lmIFVTRShIQVJGQlVaWl9ORykKICNpbmNsdWRlICJIYXJmQnV6ek5H
RmFjZS5oIgogI2Vsc2UKICNpbmNsdWRlICJIYXJmQnV6elNraWEuaCIKICNlbmRpZgogCisjaW5j
bHVkZSA8cHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmg+CisjaW5jbHVkZSA8cHVibGljL2xpbnV4
L1dlYkZvbnRSZW5kZXJTdHlsZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9saW51eC9XZWJTYW5kYm94
U3VwcG9ydC5oPgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0ltcGwuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU2tQYWlu
dDo6SGludGluZyBza2lhSGludGluZyA9IFNrUGFpbnQ6OmtOb3JtYWxfSGludGluZzsKQEAgLTI0
OCw3ICsyNTAsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPT0oY29uc3QKICAg
ICBlbHNlCiAgICAgICAgIHR5cGVmYWNlc0VxdWFsID0gU2tUeXBlZmFjZTo6RXF1YWwobV90eXBl
ZmFjZSwgYS5tX3R5cGVmYWNlKTsKIAotICAgIHJldHVybiB0eXBlZmFjZXNFcXVhbCAKKyAgICBy
ZXR1cm4gdHlwZWZhY2VzRXF1YWwKICAgICAgICAgJiYgbV90ZXh0U2l6ZSA9PSBhLm1fdGV4dFNp
emUKICAgICAgICAgJiYgbV9mYWtlQm9sZCA9PSBhLm1fZmFrZUJvbGQKICAgICAgICAgJiYgbV9m
YWtlSXRhbGljID09IGEubV9mYWtlSXRhbGljCkBAIC0yOTYsOSArMjk4LDI3IEBAIEhhcmZidXp6
RmFjZSogRm9udFBsYXRmb3JtRGF0YTo6aGFyZmJ1enoKIH0KICNlbmRpZgogCit2b2lkIEZvbnRQ
bGF0Zm9ybURhdGE6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKGNvbnN0IGNoYXIqIGZvbnQsIGlu
dCBzaXplQW5kU3R5bGUsIEZvbnRSZW5kZXJTdHlsZSogcmVzdWx0KQoreworICAgIFdlYktpdDo6
V2ViRm9udFJlbmRlclN0eWxlIHN0eWxlOworCisjaWYgT1MoQU5EUk9JRCkKKyAgICBzdHlsZS5z
ZXREZWZhdWx0cygpOworI2Vsc2UKKyAgICBpZiAoIWZvbnQgfHwgISpmb250KQorICAgICAgICBz
dHlsZS5zZXREZWZhdWx0cygpOyAvLyBJdCdzIHByb2JhYmx5IGEgd2ViZm9udC4gVGFrZSB0aGUg
c3lzdGVtIGRlZmF1bHRzLgorICAgIGVsc2UgaWYgKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+c2FuZGJveFN1cHBvcnQoKSkKKyAgICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgp
LT5zYW5kYm94U3VwcG9ydCgpLT5nZXRSZW5kZXJTdHlsZUZvclN0cmlrZShmb250LCBzaXplQW5k
U3R5bGUsICZzdHlsZSk7CisgICAgZWxzZQorICAgICAgICBXZWJLaXQ6OldlYkZvbnRJbmZvOjpy
ZW5kZXJTdHlsZUZvclN0cmlrZShmb250LCBzaXplQW5kU3R5bGUsICZzdHlsZSk7CisjZW5kaWYK
KworICAgIHN0eWxlLnRvRm9udFJlbmRlclN0eWxlKHJlc3VsdCk7Cit9CisKIHZvaWQgRm9udFBs
YXRmb3JtRGF0YTo6cXVlcnlTeXN0ZW1Gb3JSZW5kZXJTdHlsZSgpCiB7Ci0gICAgUGxhdGZvcm1T
dXBwb3J0OjpnZXRSZW5kZXJTdHlsZUZvclN0cmlrZShtX2ZhbWlseS5kYXRhKCksICgoKGludClt
X3RleHRTaXplKSA8PCAyKSB8IChtX3R5cGVmYWNlLT5zdHlsZSgpICYgMyksICZtX3N0eWxlKTsK
KyAgICBnZXRSZW5kZXJTdHlsZUZvclN0cmlrZShtX2ZhbWlseS5kYXRhKCksICgoKGludCltX3Rl
eHRTaXplKSA8PCAyKSB8IChtX3R5cGVmYWNlLT5zdHlsZSgpICYgMyksICZtX3N0eWxlKTsKIAog
ICAgIC8vIEZpeCBGb250UmVuZGVyU3R5bGU6Ok5vUHJlZmVyZW5jZSB0byBhY3R1YWwgc3R5bGVz
LgogICAgIGlmIChtX3N0eWxlLnVzZUFudGlBbGlhcyA9PSBGb250UmVuZGVyU3R5bGU6Ok5vUHJl
ZmVyZW5jZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oCShy
ZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJm
YnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouaAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCAr
MSwxMCBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAwNiwgMjAwNywgMjAwOCwgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KICAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xl
IEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0
byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICogCisgKgog
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgpAQCAtMTI2LDYgKzEy
Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBzZXRTdWJwaXhlbFBvc2l0aW9uaW5nKGJv
b2wpOwogCiBwcml2YXRlOgorICAgIHZvaWQgZ2V0UmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3Qg
Y2hhciosIGludCwgRm9udFJlbmRlclN0eWxlKik7CiAgICAgdm9pZCBxdWVyeVN5c3RlbUZvclJl
bmRlclN0eWxlKCk7CiAKICAgICAvLyBGSVhNRTogQ291bGQgU2tBdXRvVW5yZWYgYmUgdXNlZCBo
ZXJlPwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNzAyNikKKysr
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMTItMDgtMjkgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZlIGdldFJlbmRlclN0eWxlRm9yU3RyaWtlIGZy
b20gUGxhdGZvcm1TdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05NTM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2luZyBidWcg
ODI5NDguCisKKyAgICAgICAgKiBwdWJsaWMvbGludXgvV2ViRm9udEluZm8uaDoKKyAgICAgICAg
KiBwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmg6CisgICAgICAgICogc3JjL1BsYXRm
b3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0yOSAgVy4gSmFt
ZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVt
XSBMaW5rIGhpZ2hsaWdodCBzaG91bGQgY2xlYXIgb24gcGFnZSBuYXZpZ2F0aW9uLgpJbmRleDog
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udEluZm8uaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250SW5mby5o
CShyZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51
eC9XZWJGb250SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw1MSArMjgsNCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkZvbnRJbmZvX2gKLSNkZWZpbmUgV2ViRm9udElu
Zm9faAotCi0jaW5jbHVkZSAiLi4vbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgiCi0jaW5jbHVk
ZSAiLi4vcGxhdGZvcm0vV2ViQ1N0cmluZy5oIgotI2luY2x1ZGUgIi4uL3BsYXRmb3JtL2xpbnV4
L1dlYkZvbnRGYW1pbHkuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUgPHVuaXN0
ZC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViRm9udEluZm8gewotcHVibGlj
OgotICAgIC8vIFNldCBhIGdsb2JhbCBwcmVmZXJlbmNlIGRlc2NyaWJpbmcgd2hldGhlciByZW5k
ZXJTdHlsZUZvclN0cmlrZSgpIHNob3VsZAotICAgIC8vIGVuYWJsZSBzdWJwaXhlbCBwb3NpdGlv
bmluZyBvciBub3QuIEZvbnRDb25maWcgZG9lc24ndCBjdXJyZW50bHkgcHJvdmlkZQotICAgIC8v
IGEgcGFyYW1ldGVyIGZvciBjb250cm9sbGluZyB0aGlzLgotICAgIFdFQktJVF9FWFBPUlQgc3Rh
dGljIHZvaWQgc2V0U3VicGl4ZWxQb3NpdGlvbmluZyhib29sKTsKLQotICAgIC8vIFJldHVybiBh
IGZvbnQgZmFtaWx5IHdoaWNoIHByb3ZpZGVzIGdseXBocyBmb3IgdGhlIFVuaWNvZGUgY29kZSBw
b2ludHMKLSAgICAvLyBzcGVjaWZpZWQgYnkgfHV0ZjE2fAotICAgIC8vICAgY2hhcmFjdGVyczog
YSBuYXRpdmUtZW5kaWFuIFVURjE2IHN0cmluZwotICAgIC8vICAgbnVtQ2hhcmFjdGVyczogdGhl
IG51bWJlciBvZiAxNi1iaXQgd29yZHMgaW4gfHV0ZjE2fAotICAgIC8vICAgcHJlZmVycmVkTG9j
YWxlOiBwcmVmZXJyZWQgbG9jYWxlIGlkZW50aWZpZXIgZm9yIHRoZSB8Y2hhcmFjdGVyc3wKLSAg
ICAvLyAgICAgICAgICAgICAgICAgICAgKGUuZy4gImVuIiwgImphIiwgInpoLUNOIikKLSAgICAv
LwotICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBvciBhbiBlbXB0eSBzdHJpbmcgaWYg
dGhlIHJlcXVlc3QgY291bGQgbm90IGJlCi0gICAgLy8gc2F0aXNmaWVkLgotICAgIC8vIFJldHVy
bnM6IHRoZSBmb250IGZhbWlseSBpbnN0YW5jZS4gVGhlIGluc3RhbmNlIGhhcyBhbiBlbXB0eSBm
b250IG5hbWUgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlIHNhdGlzZmllZC4KLSAgICBXRUJL
SVRfRVhQT1JUIHN0YXRpYyB2b2lkIGZhbWlseUZvckNoYXJzKGNvbnN0IFdlYlVDaGFyKiBjaGFy
YWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFjdGVycywgY29uc3QgY2hhciogcHJlZmVycmVkTG9jYWxl
LCBXZWJGb250RmFtaWx5Kik7Ci0KLSAgICAvLyBGaWxsIG91dCB0aGUgZ2l2ZW4gV2ViRm9udFJl
bmRlclN0eWxlIHdpdGggdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBmb3IKLSAgICAvLyByZW5kZXJp
bmcgdGhlIGdpdmVuIGZvbnQgYXQgdGhlIGdpdmVuIHNpemUgKGluIHBpeGVscykuCi0gICAgLy8g
ICBmYW1pbHk6IGkuZS4gIlRpbWVzIE5ldyBSb21hbiIKLSAgICAvLyAgIHNpemVBbmRTdHlsZToK
LSAgICAvLyAgICAgIDMzMjIyMjIyMjIyMjExMTExMTExMTEKLSAgICAvLyAgICAgIDEwOTg3NjU0
MzIxMDk4NzY1NDMyMTA5ODc2NTQzMjEwCi0gICAgLy8gICAgICstLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLSsKLSAgICAvLyAgICAgfC4uLi4uLi4uLi4uLi4uU2l6ZS4uLi4uLi4uLi4u
LklCfAotICAgIC8vICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCi0gICAg
Ly8gICAgIEk6IGl0YWxpYyBmbGFnCi0gICAgLy8gICAgIEI6IGJvbGQgZmxhZwotICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgcmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciogZmFt
aWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBXZWJGb250UmVuZGVyU3R5bGUqIHJlc3VsdCk7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4v
UGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmgiCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVu
ZGVyU3R5bGUuaAkocmV2aXNpb24gMTI3MDI0KQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDM2
ICsyOCw0IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViRm9udFJlbmRlclN0
eWxlX2gKLSNkZWZpbmUgV2ViRm9udFJlbmRlclN0eWxlX2gKLQotI2luY2x1ZGUgIi4uL3BsYXRm
b3JtL1dlYkNvbW1vbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IHN0cnVjdCBGb250UmVuZGVy
U3R5bGU7IH0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXRUJLSVRfRVhQT1JUIFdl
YkZvbnRSZW5kZXJTdHlsZSB7Ci0gICAgLy8gRWFjaCBvZiB0aGUgdXNlKiBtZW1iZXJzIGJlbG93
IGNhbiB0YWtlIG9uZSBvZiB0aHJlZSB2YWx1ZXM6Ci0gICAgLy8gICAwOiBvZmYKLSAgICAvLyAg
IDE6IG9uCi0gICAgLy8gICAyOiBubyBwcmVmZXJlbmNlIGV4cHJlc3NlZAotICAgIGNoYXIgdXNl
Qml0bWFwczsgLy8gdXNlIGVtYmVkZGVkIGJpdG1hcCBzdHJpa2UgaWYgcG9zc2libGUKLSAgICBj
aGFyIHVzZUF1dG9IaW50OyAvLyB1c2UgJ2F1dG8nIGhpbnRpbmcgKEZyZWVUeXBlIHNwZWNpZmlj
KQotICAgIGNoYXIgdXNlSGludGluZzsgLy8gaGludCBnbHlwaHMgdG8gdGhlIHBpeGVsIGdyaWQK
LSAgICBjaGFyIGhpbnRTdHlsZTsgLy8gbGV2ZWwgb2YgaGludGluZywgMC4uMwotICAgIGNoYXIg
dXNlQW50aUFsaWFzOyAvLyBhbnRpYWxpYXMgZ2x5cGggc2hhcGVzCi0gICAgY2hhciB1c2VTdWJw
aXhlbFJlbmRlcmluZzsgLy8gdXNlIHN1YnBpeGVsIHJlbmRlcmluZyAocGFydGlhbGx5LWZpbGxl
ZCBwaXhlbHMpCi0gICAgY2hhciB1c2VTdWJwaXhlbFBvc2l0aW9uaW5nOyAvLyB1c2Ugc3VicGl4
ZWwgcG9zaXRpb25pbmcgKGZyYWN0aW9uYWwgWCBwb3NpdGlvbnMgZm9yIGdseXBocykKLQotI2lm
IFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIC8vIFRyYW5zbGF0ZXMgdGhlIG1lbWJlcnMgb2Yg
dGhpcyBzdHJ1Y3QgdG8gYSBGb250UmVuZGVyU3R5bGUKLSAgICB2b2lkIHRvRm9udFJlbmRlclN0
eWxlKFdlYkNvcmU6OkZvbnRSZW5kZXJTdHlsZSopOwotI2VuZGlmCi0KLSAgICB2b2lkIHNldERl
ZmF1bHRzKCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFdlYkZv
bnRSZW5kZXJTdHlsZV9oCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oIgpJbmRleDogU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMjcwMjQpCisr
KyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNTUsMjMgKzI1NSw2IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpnZXRGb250
RmFtaWx5Rm9yQ2gKICNlbmRpZgogfQogCi12b2lkIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVy
U3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciogZm9udCwgaW50IHNpemVBbmRTdHlsZSwgRm9udFJl
bmRlclN0eWxlKiByZXN1bHQpCi17Ci0gICAgV2ViRm9udFJlbmRlclN0eWxlIHN0eWxlOwotCi0j
aWYgT1MoQU5EUk9JRCkKLSAgICBzdHlsZS5zZXREZWZhdWx0cygpOwotI2Vsc2UKLSAgICBpZiAo
IWZvbnQgfHwgISpmb250KQotICAgICAgICBzdHlsZS5zZXREZWZhdWx0cygpOyAvLyBJdCdzIHBy
b2JhYmx5IGEgd2ViZm9udC4gVGFrZSB0aGUgc3lzdGVtIGRlZmF1bHRzLgotICAgIGVsc2UgaWYg
KFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2FuZGJveFN1cHBvcnQoKSkKLSAgICAgICAg
V2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zYW5kYm94U3VwcG9ydCgpLT5nZXRSZW5kZXJT
dHlsZUZvclN0cmlrZShmb250LCBzaXplQW5kU3R5bGUsICZzdHlsZSk7Ci0gICAgZWxzZQotICAg
ICAgICBXZWJGb250SW5mbzo6cmVuZGVyU3R5bGVGb3JTdHJpa2UoZm9udCwgc2l6ZUFuZFN0eWxl
LCAmc3R5bGUpOwotI2VuZGlmCi0KLSAgICBzdHlsZS50b0ZvbnRSZW5kZXJTdHlsZShyZXN1bHQp
OwotfQogI2VuZGlmCiAKIC8vIEluZGV4ZWQgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>161301</attachid>
            <date>2012-08-29 13:38:56 -0700</date>
            <delta_ts>2012-09-05 12:03:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95363-20120829163821.patch</filename>
            <type>text/plain</type>
            <size>20337</size>
            <attacher name="Mark Pilgrim (Google)">pilgrim</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Bs
YXRmb3JtL0NoYW5nZUxvZwkocmV2aXNpb24gMTI3MDI2KQorKysgU291cmNlL1BsYXRmb3JtL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4LTI5ICBNYXJr
IFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFJl
bW92ZSBnZXRSZW5kZXJTdHlsZUZvclN0cmlrZSBmcm9tIFBsYXRmb3JtU3VwcG9ydAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNjMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0
b3Jpbmcgc2VyaWVzLiBTZWUgdHJhY2tpbmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogUGxhdGZv
cm0uZ3lwaToKKyAgICAgICAgKiBjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udEluZm8uaDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViRm9udEluZm8pOgorICAgICAg
ICAqIGNocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUuaDogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQpOgorCiAyMDEyLTA4LTI3ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gU2hvdWxkIGFjY2VsZXJhdGUgcm90YXRp
b25zIG9mID49IDE4MCBkZWdyZWVzCkluZGV4OiBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vUGxhdGZvcm0uZ3lwaQkocmV2aXNpb24g
MTI3MDI0KQorKysgU291cmNlL1BsYXRmb3JtL1BsYXRmb3JtLmd5cGkJKHdvcmtpbmcgY29weSkK
QEAgLTE0MSw2ICsxNDEsOCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9XZWJXb3Jr
ZXJSdW5Mb29wLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dlYlNh
bmRib3hTdXBwb3J0LmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9hbmRyb2lkL1dl
YlRoZW1lRW5naW5lLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJG
b250SW5mby5oJywKKyAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udFJl
bmRlclN0eWxlLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJTYW5k
Ym94U3VwcG9ydC5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViVGhl
bWVFbmdpbmUuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vcHVibGljL21hYy9XZWJTYW5kYm94
U3VwcG9ydC5oJywKSW5kZXg6IFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvbGludXgv
V2ViRm9udEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVi
bGljL2xpbnV4L1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvUGxhdGZvcm0v
Y2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdlYkZvbnRJbmZvX2gKKyNkZWZpbmUgV2ViRm9udEluZm9faAorCisj
aW5jbHVkZSAiLi4vV2ViQ1N0cmluZy5oIgorI2luY2x1ZGUgIldlYkZvbnRGYW1pbHkuaCIKKyNp
bmNsdWRlICJXZWJGb250UmVuZGVyU3R5bGUuaCIKKworI2luY2x1ZGUgPHN0cmluZy5oPgorI2lu
Y2x1ZGUgPHVuaXN0ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRm9udElu
Zm8geworcHVibGljOgorICAgIC8vIFNldCBhIGdsb2JhbCBwcmVmZXJlbmNlIGRlc2NyaWJpbmcg
d2hldGhlciByZW5kZXJTdHlsZUZvclN0cmlrZSgpIHNob3VsZAorICAgIC8vIGVuYWJsZSBzdWJw
aXhlbCBwb3NpdGlvbmluZyBvciBub3QuIEZvbnRDb25maWcgZG9lc24ndCBjdXJyZW50bHkgcHJv
dmlkZQorICAgIC8vIGEgcGFyYW1ldGVyIGZvciBjb250cm9sbGluZyB0aGlzLgorICAgIFdFQktJ
VF9FWFBPUlQgc3RhdGljIHZvaWQgc2V0U3VicGl4ZWxQb3NpdGlvbmluZyhib29sKTsKKworICAg
IC8vIFJldHVybiBhIGZvbnQgZmFtaWx5IHdoaWNoIHByb3ZpZGVzIGdseXBocyBmb3IgdGhlIFVu
aWNvZGUgY29kZSBwb2ludHMKKyAgICAvLyBzcGVjaWZpZWQgYnkgfHV0ZjE2fAorICAgIC8vICAg
Y2hhcmFjdGVyczogYSBuYXRpdmUtZW5kaWFuIFVURjE2IHN0cmluZworICAgIC8vICAgbnVtQ2hh
cmFjdGVyczogdGhlIG51bWJlciBvZiAxNi1iaXQgd29yZHMgaW4gfHV0ZjE2fAorICAgIC8vICAg
cHJlZmVycmVkTG9jYWxlOiBwcmVmZXJyZWQgbG9jYWxlIGlkZW50aWZpZXIgZm9yIHRoZSB8Y2hh
cmFjdGVyc3wKKyAgICAvLyAgICAgICAgICAgICAgICAgICAgKGUuZy4gImVuIiwgImphIiwgInpo
LUNOIikKKyAgICAvLworICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBvciBhbiBlbXB0
eSBzdHJpbmcgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlCisgICAgLy8gc2F0aXNmaWVkLgor
ICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBpbnN0YW5jZS4gVGhlIGluc3RhbmNlIGhh
cyBhbiBlbXB0eSBmb250IG5hbWUgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlIHNhdGlzZmll
ZC4KKyAgICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGZhbWlseUZvckNoYXJzKGNvbnN0IFdl
YlVDaGFyKiBjaGFyYWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFjdGVycywgY29uc3QgY2hhciogcHJl
ZmVycmVkTG9jYWxlLCBXZWJGb250RmFtaWx5Kik7CisKKyAgICAvLyBGaWxsIG91dCB0aGUgZ2l2
ZW4gV2ViRm9udFJlbmRlclN0eWxlIHdpdGggdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBmb3IKKyAg
ICAvLyByZW5kZXJpbmcgdGhlIGdpdmVuIGZvbnQgYXQgdGhlIGdpdmVuIHNpemUgKGluIHBpeGVs
cykuCisgICAgLy8gICBmYW1pbHk6IGkuZS4gIlRpbWVzIE5ldyBSb21hbiIKKyAgICAvLyAgIHNp
emVBbmRTdHlsZToKKyAgICAvLyAgICAgIDMzMjIyMjIyMjIyMjExMTExMTExMTEKKyAgICAvLyAg
ICAgIDEwOTg3NjU0MzIxMDk4NzY1NDMyMTA5ODc2NTQzMjEwCisgICAgLy8gICAgICstLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsKKyAgICAvLyAgICAgfC4uLi4uLi4uLi4uLi4uU2l6
ZS4uLi4uLi4uLi4uLklCfAorICAgIC8vICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0rCisgICAgLy8gICAgIEk6IGl0YWxpYyBmbGFnCisgICAgLy8gICAgIEI6IGJvbGQgZmxh
ZworICAgIFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVuZGVyU3R5bGVGb3JTdHJpa2UoY29u
c3QgY2hhciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBXZWJGb250UmVuZGVyU3R5bGUqIHJl
c3VsdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9QbGF0Zm9ybS9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9u
dFJlbmRlclN0eWxlLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0v
cHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBXZWJGb250UmVuZGVyU3R5bGVfaAorI2RlZmluZSBXZWJGb250UmVuZGVy
U3R5bGVfaAorCisjaW5jbHVkZSAiLi4vV2ViQ29tbW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsgc3RydWN0IEZvbnRSZW5kZXJTdHlsZTsgfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3Ry
dWN0IFdFQktJVF9FWFBPUlQgV2ViRm9udFJlbmRlclN0eWxlIHsKKyAgICAvLyBFYWNoIG9mIHRo
ZSB1c2UqIG1lbWJlcnMgYmVsb3cgY2FuIHRha2Ugb25lIG9mIHRocmVlIHZhbHVlczoKKyAgICAv
LyAgIDA6IG9mZgorICAgIC8vICAgMTogb24KKyAgICAvLyAgIDI6IG5vIHByZWZlcmVuY2UgZXhw
cmVzc2VkCisgICAgY2hhciB1c2VCaXRtYXBzOyAvLyB1c2UgZW1iZWRkZWQgYml0bWFwIHN0cmlr
ZSBpZiBwb3NzaWJsZQorICAgIGNoYXIgdXNlQXV0b0hpbnQ7IC8vIHVzZSAnYXV0bycgaGludGlu
ZyAoRnJlZVR5cGUgc3BlY2lmaWMpCisgICAgY2hhciB1c2VIaW50aW5nOyAvLyBoaW50IGdseXBo
cyB0byB0aGUgcGl4ZWwgZ3JpZAorICAgIGNoYXIgaGludFN0eWxlOyAvLyBsZXZlbCBvZiBoaW50
aW5nLCAwLi4zCisgICAgY2hhciB1c2VBbnRpQWxpYXM7IC8vIGFudGlhbGlhcyBnbHlwaCBzaGFw
ZXMKKyAgICBjaGFyIHVzZVN1YnBpeGVsUmVuZGVyaW5nOyAvLyB1c2Ugc3VicGl4ZWwgcmVuZGVy
aW5nIChwYXJ0aWFsbHktZmlsbGVkIHBpeGVscykKKyAgICBjaGFyIHVzZVN1YnBpeGVsUG9zaXRp
b25pbmc7IC8vIHVzZSBzdWJwaXhlbCBwb3NpdGlvbmluZyAoZnJhY3Rpb25hbCBYIHBvc2l0aW9u
cyBmb3IgZ2x5cGhzKQorCisjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCisgICAgLy8gVHJhbnNs
YXRlcyB0aGUgbWVtYmVycyBvZiB0aGlzIHN0cnVjdCB0byBhIEZvbnRSZW5kZXJTdHlsZQorICAg
IHZvaWQgdG9Gb250UmVuZGVyU3R5bGUoV2ViQ29yZTo6Rm9udFJlbmRlclN0eWxlKik7CisjZW5k
aWYKKworICAgIHZvaWQgc2V0RGVmYXVsdHMoKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dAorCisjZW5kaWYgLy8gV2ViRm9udFJlbmRlclN0eWxlX2gKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlz
aW9uIDEyNzAyNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDIyIEBACisyMDEyLTA4LTI5ICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIFJlbW92ZSBnZXRSZW5kZXJTdHlsZUZvclN0
cmlrZSBmcm9tIFBsYXRmb3JtU3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTUzNjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBQYXJ0IG9mIGEgcmVmYWN0b3Jpbmcgc2VyaWVzLiBTZWUgdHJhY2tp
bmcgYnVnIDgyOTQ4LgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBw
b3J0Lmg6CisgICAgICAgIChQbGF0Zm9ybVN1cHBvcnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKToKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6cXVlcnlTeXN0ZW1G
b3JSZW5kZXJTdHlsZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovRm9u
dFBsYXRmb3JtRGF0YUhhcmZCdXp6Lmg6CisgICAgICAgIChGb250UGxhdGZvcm1EYXRhKToKKwog
MjAxMi0wOC0yOCAgU2hhd24gU2luZ2ggIDxzaGF3bnNpbmdoQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIERvIG5vdCBjbGlwIHJvb3QgbGF5ZXIncyBzdWJ0cmVlIHRvIHZpZXdw
b3J0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBv
cnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0
Zm9ybVN1cHBvcnQuaAkocmV2aXNpb24gMTI3MDI0KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw3ICsx
MDUsNiBAQCBwdWJsaWM6CiAjaWYgT1MoREFSV0lOKQogICAgIHN0YXRpYyBib29sIGxvYWRGb250
KE5TRm9udCogc3JjRm9udCwgQ0dGb250UmVmKiwgdWludDMyX3QqIGZvbnRJRCk7CiAjZWxpZiBP
UyhVTklYKQotICAgIHN0YXRpYyB2b2lkIGdldFJlbmRlclN0eWxlRm9yU3RyaWtlKGNvbnN0IGNo
YXIqIGZhbWlseSwgaW50IHNpemVBbmRTdHlsZSwgRm9udFJlbmRlclN0eWxlKiByZXN1bHQpOwog
ICAgIHN0cnVjdCBGb250RmFtaWx5IHsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAgIGJv
b2wgaXNCb2xkOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1
enovRm9udFBsYXRmb3JtRGF0YUhhcmZCdXp6LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enou
Y3BwCShyZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDEwICsxLDEwIEBACiAvKgogICogQ29weXJpZ2h0IChjKSAyMDA2LCAyMDA3LCAyMDA4LCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogCisgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCiAgKiBtZXQ6Ci0gKiAKKyAqCiAgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAogICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgogICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQpAQCAtMTQsNyArMTQsNyBAQAogICogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwogICogY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KICAqIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0g
KiAKKyAqCiAgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCiAgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAogICogTElNSVRFRCBUTywgVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCkBAIC0y
OSwyNSArMjksMjcgQEAKICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRm9u
dFBsYXRmb3JtRGF0YS5oIgorI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oIgog
CiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtU3VwcG9ydC5oIgotCiAjaW5jbHVkZSAiU2tBZHZhbmNlZFR5
cGVmYWNlTWV0cmljcy5oIgogI2luY2x1ZGUgIlNrRm9udEhvc3QuaCIKICNpbmNsdWRlICJTa1Bh
aW50LmgiCiAjaW5jbHVkZSAiU2tUeXBlZmFjZS5oIgogCi0jaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nSW1wbC5oPiAKLQogI2lmIFVTRShIQVJGQlVaWl9ORykKICNpbmNsdWRlICJIYXJmQnV6ek5H
RmFjZS5oIgogI2Vsc2UKICNpbmNsdWRlICJIYXJmQnV6elNraWEuaCIKICNlbmRpZgogCisjaW5j
bHVkZSA8cHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmg+CisjaW5jbHVkZSA8cHVibGljL2xpbnV4
L1dlYkZvbnRSZW5kZXJTdHlsZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9saW51eC9XZWJTYW5kYm94
U3VwcG9ydC5oPgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L1N0cmluZ0ltcGwuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0aWMgU2tQYWlu
dDo6SGludGluZyBza2lhSGludGluZyA9IFNrUGFpbnQ6OmtOb3JtYWxfSGludGluZzsKQEAgLTI0
OCw3ICsyNTAsNyBAQCBib29sIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPT0oY29uc3QKICAg
ICBlbHNlCiAgICAgICAgIHR5cGVmYWNlc0VxdWFsID0gU2tUeXBlZmFjZTo6RXF1YWwobV90eXBl
ZmFjZSwgYS5tX3R5cGVmYWNlKTsKIAotICAgIHJldHVybiB0eXBlZmFjZXNFcXVhbCAKKyAgICBy
ZXR1cm4gdHlwZWZhY2VzRXF1YWwKICAgICAgICAgJiYgbV90ZXh0U2l6ZSA9PSBhLm1fdGV4dFNp
emUKICAgICAgICAgJiYgbV9mYWtlQm9sZCA9PSBhLm1fZmFrZUJvbGQKICAgICAgICAgJiYgbV9m
YWtlSXRhbGljID09IGEubV9mYWtlSXRhbGljCkBAIC0yOTYsOSArMjk4LDI3IEBAIEhhcmZidXp6
RmFjZSogRm9udFBsYXRmb3JtRGF0YTo6aGFyZmJ1enoKIH0KICNlbmRpZgogCit2b2lkIEZvbnRQ
bGF0Zm9ybURhdGE6OmdldFJlbmRlclN0eWxlRm9yU3RyaWtlKGNvbnN0IGNoYXIqIGZvbnQsIGlu
dCBzaXplQW5kU3R5bGUpCit7CisgICAgV2ViS2l0OjpXZWJGb250UmVuZGVyU3R5bGUgc3R5bGU7
CisKKyNpZiBPUyhBTkRST0lEKQorICAgIHN0eWxlLnNldERlZmF1bHRzKCk7CisjZWxzZQorICAg
IGlmICghZm9udCB8fCAhKmZvbnQpCisgICAgICAgIHN0eWxlLnNldERlZmF1bHRzKCk7IC8vIEl0
J3MgcHJvYmFibHkgYSB3ZWJmb250LiBUYWtlIHRoZSBzeXN0ZW0gZGVmYXVsdHMuCisgICAgZWxz
ZSBpZiAoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zYW5kYm94U3VwcG9ydCgpKQorICAg
ICAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPnNhbmRib3hTdXBwb3J0KCktPmdldFJl
bmRlclN0eWxlRm9yU3RyaWtlKGZvbnQsIHNpemVBbmRTdHlsZSwgJnN0eWxlKTsKKyAgICBlbHNl
CisgICAgICAgIFdlYktpdDo6V2ViRm9udEluZm86OnJlbmRlclN0eWxlRm9yU3RyaWtlKGZvbnQs
IHNpemVBbmRTdHlsZSwgJnN0eWxlKTsKKyNlbmRpZgorCisgICAgc3R5bGUudG9Gb250UmVuZGVy
U3R5bGUoJm1fc3R5bGUpOworfQorCiB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnF1ZXJ5U3lzdGVt
Rm9yUmVuZGVyU3R5bGUoKQogewotICAgIFBsYXRmb3JtU3VwcG9ydDo6Z2V0UmVuZGVyU3R5bGVG
b3JTdHJpa2UobV9mYW1pbHkuZGF0YSgpLCAoKChpbnQpbV90ZXh0U2l6ZSkgPDwgMikgfCAobV90
eXBlZmFjZS0+c3R5bGUoKSAmIDMpLCAmbV9zdHlsZSk7CisgICAgZ2V0UmVuZGVyU3R5bGVGb3JT
dHJpa2UobV9mYW1pbHkuZGF0YSgpLCAoKChpbnQpbV90ZXh0U2l6ZSkgPDwgMikgfCAobV90eXBl
ZmFjZS0+c3R5bGUoKSAmIDMpKTsKIAogICAgIC8vIEZpeCBGb250UmVuZGVyU3R5bGU6Ok5vUHJl
ZmVyZW5jZSB0byBhY3R1YWwgc3R5bGVzLgogICAgIGlmIChtX3N0eWxlLnVzZUFudGlBbGlhcyA9
PSBGb250UmVuZGVyU3R5bGU6Ok5vUHJlZmVyZW5jZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQbGF0Zm9ybURhdGFIYXJmQnV6ei5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0ZvbnRQ
bGF0Zm9ybURhdGFIYXJmQnV6ei5oCShyZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9Gb250UGxhdGZvcm1EYXRhSGFyZkJ1enouaAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogLyoKICAqIENvcHlyaWdodCAoYykgMjAw
NiwgMjAwNywgMjAwOCwgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqIAorICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQogICogbWV0OgotICogCisgKgogICogICAg
ICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKICAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KICAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKQEAgLTE0LDcgKzE0LDcgQEAKICAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKICAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCiAgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgotICogCisgKgogICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUwogICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKICAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgpAQCAtMTI2LDYgKzEyNiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBz
ZXRTdWJwaXhlbFBvc2l0aW9uaW5nKGJvb2wpOwogCiBwcml2YXRlOgorICAgIHZvaWQgZ2V0UmVu
ZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciosIGludCk7CiAgICAgdm9pZCBxdWVyeVN5c3Rl
bUZvclJlbmRlclN0eWxlKCk7CiAKICAgICAvLyBGSVhNRTogQ291bGQgU2tBdXRvVW5yZWYgYmUg
dXNlZCBoZXJlPwpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNzAy
NikKKysrIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTItMDgtMjkgIE1hcmsgUGlsZ3JpbSAgPHBpbGdyaW1AY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gUmVtb3ZlIGdldFJlbmRlclN0eWxlRm9yU3Ry
aWtlIGZyb20gUGxhdGZvcm1TdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NTM2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFBhcnQgb2YgYSByZWZhY3RvcmluZyBzZXJpZXMuIFNlZSB0cmFja2lu
ZyBidWcgODI5NDguCisKKyAgICAgICAgKiBwdWJsaWMvbGludXgvV2ViRm9udEluZm8uaDoKKyAg
ICAgICAgKiBwdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmg6CisgICAgICAgICogc3Jj
L1BsYXRmb3JtU3VwcG9ydC5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKwogMjAxMi0wOC0yOSAg
Vy4gSmFtZXMgTWFjTGVhbiAgPHdqbWFjbGVhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2No
cm9taXVtXSBMaW5rIGhpZ2hsaWdodCBzaG91bGQgY2xlYXIgb24gcGFnZSBuYXZpZ2F0aW9uLgpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvbGludXgvV2ViRm9udEluZm8uaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250
SW5mby5oCShyZXZpc2lvbiAxMjcwMjQpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9saW51eC9XZWJGb250SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw1MSArMjgsNCBAQAog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIFdlYkZvbnRJbmZvX2gKLSNkZWZpbmUgV2Vi
Rm9udEluZm9faAotCi0jaW5jbHVkZSAiLi4vbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgiCi0j
aW5jbHVkZSAiLi4vcGxhdGZvcm0vV2ViQ1N0cmluZy5oIgotI2luY2x1ZGUgIi4uL3BsYXRmb3Jt
L2xpbnV4L1dlYkZvbnRGYW1pbHkuaCIKLQotI2luY2x1ZGUgPHN0cmluZy5oPgotI2luY2x1ZGUg
PHVuaXN0ZC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotY2xhc3MgV2ViRm9udEluZm8gewot
cHVibGljOgotICAgIC8vIFNldCBhIGdsb2JhbCBwcmVmZXJlbmNlIGRlc2NyaWJpbmcgd2hldGhl
ciByZW5kZXJTdHlsZUZvclN0cmlrZSgpIHNob3VsZAotICAgIC8vIGVuYWJsZSBzdWJwaXhlbCBw
b3NpdGlvbmluZyBvciBub3QuIEZvbnRDb25maWcgZG9lc24ndCBjdXJyZW50bHkgcHJvdmlkZQot
ICAgIC8vIGEgcGFyYW1ldGVyIGZvciBjb250cm9sbGluZyB0aGlzLgotICAgIFdFQktJVF9FWFBP
UlQgc3RhdGljIHZvaWQgc2V0U3VicGl4ZWxQb3NpdGlvbmluZyhib29sKTsKLQotICAgIC8vIFJl
dHVybiBhIGZvbnQgZmFtaWx5IHdoaWNoIHByb3ZpZGVzIGdseXBocyBmb3IgdGhlIFVuaWNvZGUg
Y29kZSBwb2ludHMKLSAgICAvLyBzcGVjaWZpZWQgYnkgfHV0ZjE2fAotICAgIC8vICAgY2hhcmFj
dGVyczogYSBuYXRpdmUtZW5kaWFuIFVURjE2IHN0cmluZwotICAgIC8vICAgbnVtQ2hhcmFjdGVy
czogdGhlIG51bWJlciBvZiAxNi1iaXQgd29yZHMgaW4gfHV0ZjE2fAotICAgIC8vICAgcHJlZmVy
cmVkTG9jYWxlOiBwcmVmZXJyZWQgbG9jYWxlIGlkZW50aWZpZXIgZm9yIHRoZSB8Y2hhcmFjdGVy
c3wKLSAgICAvLyAgICAgICAgICAgICAgICAgICAgKGUuZy4gImVuIiwgImphIiwgInpoLUNOIikK
LSAgICAvLwotICAgIC8vIFJldHVybnM6IHRoZSBmb250IGZhbWlseSBvciBhbiBlbXB0eSBzdHJp
bmcgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlCi0gICAgLy8gc2F0aXNmaWVkLgotICAgIC8v
IFJldHVybnM6IHRoZSBmb250IGZhbWlseSBpbnN0YW5jZS4gVGhlIGluc3RhbmNlIGhhcyBhbiBl
bXB0eSBmb250IG5hbWUgaWYgdGhlIHJlcXVlc3QgY291bGQgbm90IGJlIHNhdGlzZmllZC4KLSAg
ICBXRUJLSVRfRVhQT1JUIHN0YXRpYyB2b2lkIGZhbWlseUZvckNoYXJzKGNvbnN0IFdlYlVDaGFy
KiBjaGFyYWN0ZXJzLCBzaXplX3QgbnVtQ2hhcmFjdGVycywgY29uc3QgY2hhciogcHJlZmVycmVk
TG9jYWxlLCBXZWJGb250RmFtaWx5Kik7Ci0KLSAgICAvLyBGaWxsIG91dCB0aGUgZ2l2ZW4gV2Vi
Rm9udFJlbmRlclN0eWxlIHdpdGggdGhlIHVzZXIncyBwcmVmZXJlbmNlcyBmb3IKLSAgICAvLyBy
ZW5kZXJpbmcgdGhlIGdpdmVuIGZvbnQgYXQgdGhlIGdpdmVuIHNpemUgKGluIHBpeGVscykuCi0g
ICAgLy8gICBmYW1pbHk6IGkuZS4gIlRpbWVzIE5ldyBSb21hbiIKLSAgICAvLyAgIHNpemVBbmRT
dHlsZToKLSAgICAvLyAgICAgIDMzMjIyMjIyMjIyMjExMTExMTExMTEKLSAgICAvLyAgICAgIDEw
OTg3NjU0MzIxMDk4NzY1NDMyMTA5ODc2NTQzMjEwCi0gICAgLy8gICAgICstLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLSsKLSAgICAvLyAgICAgfC4uLi4uLi4uLi4uLi4uU2l6ZS4uLi4u
Li4uLi4uLklCfAotICAgIC8vICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r
Ci0gICAgLy8gICAgIEk6IGl0YWxpYyBmbGFnCi0gICAgLy8gICAgIEI6IGJvbGQgZmxhZwotICAg
IFdFQktJVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hh
ciogZmFtaWx5LCBpbnQgc2l6ZUFuZFN0eWxlLCBXZWJGb250UmVuZGVyU3R5bGUqIHJlc3VsdCk7
Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCisjaW5jbHVkZSAiLi4vLi4v
Li4vLi4vUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRJbmZvLmgiCkluZGV4
OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJGb250UmVuZGVyU3R5bGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9saW51eC9XZWJG
b250UmVuZGVyU3R5bGUuaAkocmV2aXNpb24gMTI3MDI0KQorKysgU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvbGludXgvV2ViRm9udFJlbmRlclN0eWxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDM2ICsyOCw0IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgV2ViRm9udFJl
bmRlclN0eWxlX2gKLSNkZWZpbmUgV2ViRm9udFJlbmRlclN0eWxlX2gKLQotI2luY2x1ZGUgIi4u
L3BsYXRmb3JtL1dlYkNvbW1vbi5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7IHN0cnVjdCBGb250
UmVuZGVyU3R5bGU7IH0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLXN0cnVjdCBXRUJLSVRfRVhQ
T1JUIFdlYkZvbnRSZW5kZXJTdHlsZSB7Ci0gICAgLy8gRWFjaCBvZiB0aGUgdXNlKiBtZW1iZXJz
IGJlbG93IGNhbiB0YWtlIG9uZSBvZiB0aHJlZSB2YWx1ZXM6Ci0gICAgLy8gICAwOiBvZmYKLSAg
ICAvLyAgIDE6IG9uCi0gICAgLy8gICAyOiBubyBwcmVmZXJlbmNlIGV4cHJlc3NlZAotICAgIGNo
YXIgdXNlQml0bWFwczsgLy8gdXNlIGVtYmVkZGVkIGJpdG1hcCBzdHJpa2UgaWYgcG9zc2libGUK
LSAgICBjaGFyIHVzZUF1dG9IaW50OyAvLyB1c2UgJ2F1dG8nIGhpbnRpbmcgKEZyZWVUeXBlIHNw
ZWNpZmljKQotICAgIGNoYXIgdXNlSGludGluZzsgLy8gaGludCBnbHlwaHMgdG8gdGhlIHBpeGVs
IGdyaWQKLSAgICBjaGFyIGhpbnRTdHlsZTsgLy8gbGV2ZWwgb2YgaGludGluZywgMC4uMwotICAg
IGNoYXIgdXNlQW50aUFsaWFzOyAvLyBhbnRpYWxpYXMgZ2x5cGggc2hhcGVzCi0gICAgY2hhciB1
c2VTdWJwaXhlbFJlbmRlcmluZzsgLy8gdXNlIHN1YnBpeGVsIHJlbmRlcmluZyAocGFydGlhbGx5
LWZpbGxlZCBwaXhlbHMpCi0gICAgY2hhciB1c2VTdWJwaXhlbFBvc2l0aW9uaW5nOyAvLyB1c2Ug
c3VicGl4ZWwgcG9zaXRpb25pbmcgKGZyYWN0aW9uYWwgWCBwb3NpdGlvbnMgZm9yIGdseXBocykK
LQotI2lmIFdFQktJVF9JTVBMRU1FTlRBVElPTgotICAgIC8vIFRyYW5zbGF0ZXMgdGhlIG1lbWJl
cnMgb2YgdGhpcyBzdHJ1Y3QgdG8gYSBGb250UmVuZGVyU3R5bGUKLSAgICB2b2lkIHRvRm9udFJl
bmRlclN0eWxlKFdlYkNvcmU6OkZvbnRSZW5kZXJTdHlsZSopOwotI2VuZGlmCi0KLSAgICB2b2lk
IHNldERlZmF1bHRzKCk7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8v
IFdlYkZvbnRSZW5kZXJTdHlsZV9oCisjaW5jbHVkZSAiLi4vLi4vLi4vLi4vUGxhdGZvcm0vY2hy
b21pdW0vcHVibGljL2xpbnV4L1dlYkZvbnRSZW5kZXJTdHlsZS5oIgpJbmRleDogU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCShyZXZpc2lvbiAxMjcw
MjQpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNTUsMjMgKzI1NSw2IEBAIHZvaWQgUGxhdGZvcm1TdXBwb3J0Ojpn
ZXRGb250RmFtaWx5Rm9yQ2gKICNlbmRpZgogfQogCi12b2lkIFBsYXRmb3JtU3VwcG9ydDo6Z2V0
UmVuZGVyU3R5bGVGb3JTdHJpa2UoY29uc3QgY2hhciogZm9udCwgaW50IHNpemVBbmRTdHlsZSwg
Rm9udFJlbmRlclN0eWxlKiByZXN1bHQpCi17Ci0gICAgV2ViRm9udFJlbmRlclN0eWxlIHN0eWxl
OwotCi0jaWYgT1MoQU5EUk9JRCkKLSAgICBzdHlsZS5zZXREZWZhdWx0cygpOwotI2Vsc2UKLSAg
ICBpZiAoIWZvbnQgfHwgISpmb250KQotICAgICAgICBzdHlsZS5zZXREZWZhdWx0cygpOyAvLyBJ
dCdzIHByb2JhYmx5IGEgd2ViZm9udC4gVGFrZSB0aGUgc3lzdGVtIGRlZmF1bHRzLgotICAgIGVs
c2UgaWYgKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+c2FuZGJveFN1cHBvcnQoKSkKLSAg
ICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5zYW5kYm94U3VwcG9ydCgpLT5nZXRS
ZW5kZXJTdHlsZUZvclN0cmlrZShmb250LCBzaXplQW5kU3R5bGUsICZzdHlsZSk7Ci0gICAgZWxz
ZQotICAgICAgICBXZWJGb250SW5mbzo6cmVuZGVyU3R5bGVGb3JTdHJpa2UoZm9udCwgc2l6ZUFu
ZFN0eWxlLCAmc3R5bGUpOwotI2VuZGlmCi0KLSAgICBzdHlsZS50b0ZvbnRSZW5kZXJTdHlsZShy
ZXN1bHQpOwotfQogI2VuZGlmCiAKIC8vIEluZGV4ZWQgRGF0YWJhc2UgLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
      

    </bug>

</bugzilla>