<?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>205830</bug_id>
          
          <creation_ts>2020-01-06 14:01:57 -0800</creation_ts>
          <short_desc>Add support for encoding WebCore::Font over IPC for DisplayList::DrawGlyphs</short_desc>
          <delta_ts>2020-01-08 08:33:28 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1603259</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-06 14:01:57 -0800</bug_when>
    <thetext>&lt;rdar://problem/57347719&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603264</commentid>
    <comment_count>1</comment_count>
      <attachid>386884</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-06 14:07:28 -0800</bug_when>
    <thetext>Created attachment 386884
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603807</commentid>
    <comment_count>2</comment_count>
      <attachid>387038</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-07 14:53:11 -0800</bug_when>
    <thetext>Created attachment 387038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603828</commentid>
    <comment_count>3</comment_count>
      <attachid>387038</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-01-07 15:24:56 -0800</bug_when>
    <thetext>Comment on attachment 387038
Patch

Can this have a test please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603840</commentid>
    <comment_count>4</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-01-07 15:47:00 -0800</bug_when>
    <thetext>(In reply to Dean Jackson from comment #3)
&gt; Comment on attachment 387038 [details]
&gt; Patch
&gt; 
&gt; Can this have a test please?

Ah, so these changes should be covered by a number of existing tests in fast/canvas (as well as imported tests) that exercise fillText and strokeText. We don&apos;t currently have a mechanism for painting the canvas element using the GPU process, but once that lands in webkit.org/b/204955, we should be able to mark a number of these tests as passing.

Currently, the entire fast/canvas is marked as [ Skip ] in LayoutTests/gpu-process/TestExpectations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604106</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 08:32:32 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 387038:

fetch/fetch-worker-crash.html bug 187257 (author: youennf@gmail.com)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604107</commentid>
    <comment_count>6</comment_count>
      <attachid>387038</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 08:33:26 -0800</bug_when>
    <thetext>Comment on attachment 387038
Patch

Clearing flags on attachment: 387038

Committed r254202: &lt;https://trac.webkit.org/changeset/254202&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1604108</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-01-08 08:33:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386884</attachid>
            <date>2020-01-06 14:07:28 -0800</date>
            <delta_ts>2020-01-07 14:53:09 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-205830-20200106140728.patch</filename>
            <type>text/plain</type>
            <size>17100</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWZjNWQ0ODFlNzljMmJh
MTc4NTljMTFjNzJmYjQ4ZDEyMTU5Y2JkMS4uZmNkNjIxMWUwOTgxNzRmMmZmZWE5MzY5ZjE2NzJl
ZDAzYzAwMzQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAxLTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBlbmNvZGluZyBXZWJDb3JlOjpGb250IG92ZXIgSVBDIGZvciBEaXNwbGF5TGlzdDo6RHJh
d0dseXBocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM0NzcxOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXb3JrIGluIHByb2dyZXNzIG9uIGVu
Y29kaW5nIGZvbnRzLgorCisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNTU0ZvbnRGYWNlOjpmb250KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VT
b3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OnNldEZvbnRGYWNlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
SGFuZGxlOjpGb250SGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250Ojpmb250RmFjZURhdGEgY29uc3QpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzOjpEcmF3R2x5cGhzKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
OgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6ZW5jb2RlIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzOjpkZWNvZGUpOgorCiAy
MDE5LTEyLTMwICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWFrZSBHUFUgcHJvY2VzcyBjcmVhdGUvcmVsZWFzZSBhIHNoYXJlZCBJT1N1cmZh
Y2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggMmQ4NGY2YjE3MGY2YTg5ODkwNDFiMWU1ZjRjYzY3ZjE4YzM4ZTFkNS4u
ZTlhNTRkMGMwNjQzYWIwNjY3MjVjM2U3Njg3Mjk4OTI5MjVmYWQwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMC0wMS0wNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZW5jb2RpbmcgV2ViQ29yZTo6Rm9udCBv
dmVyIElQQyBmb3IgRGlzcGxheUxpc3Q6OkRyYXdHbHlwaHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNTgzMAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTczNDc3MTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgV29yayBpbiBwcm9ncmVzcyBvbiBlbmNvZGluZyBmb250cy4KKworICAgICAgICAqIFNo
YXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbToKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKToKKyAgICAgICAg
KElQQzo6QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKToKKyAg
ICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6
QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1l
bnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmg6CisKIDIwMTktMTItMzAgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3Vo
YWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIEdQVSBwcm9jZXNzIGNyZWF0ZS9yZWxl
YXNlIGEgc2hhcmVkIElPU3VyZmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKaW5kZXgg
YTk5ZjYxMWUzYTEzMzNjMTlkYTQxODNkNDY3YWMzYzJiOTk4NGYyZC4uMDg5MWRiNGUwMzFkYmRi
MGQ5ZmJiZDQzYjY5NzU5MWQ2ZGRkZGQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3Bw
CkBAIC0zNSwxMiArMzUsMTQgQEAKICNpbmNsdWRlICJDU1NVbmljb2RlUmFuZ2VWYWx1ZS5oIgog
I2luY2x1ZGUgIkNTU1ZhbHVlLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCisjaW5jbHVk
ZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRm9udC5o
IgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgog
I2luY2x1ZGUgIkZvbnRGYWNlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlICJTdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaCIKICNpbmNs
dWRlICJTdHlsZVByb3BlcnRpZXMuaCIKICNpbmNsdWRlICJTdHlsZVJ1bGUuaCIKQEAgLTY3Myw4
ICs2NzUsMTEgQEAgUmVmUHRyPEZvbnQ+IENTU0ZvbnRGYWNlOjpmb250KGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIHN5bnQKICAgICAgICAgICAgIHJldHVybiBG
b250OjpjcmVhdGUoRm9udENhY2hlOjpzaW5nbGV0b24oKS5sYXN0UmVzb3J0RmFsbGJhY2tGb250
KGZvbnREZXNjcmlwdGlvbiktPnBsYXRmb3JtRGF0YSgpLCBGb250OjpPcmlnaW46OkxvY2FsLCBG
b250OjpJbnRlcnN0aXRpYWw6OlllcywgdmlzaWJpbGl0eSk7CiAgICAgICAgIH0KICAgICAgICAg
Y2FzZSBDU1NGb250RmFjZVNvdXJjZTo6U3RhdHVzOjpTdWNjZXNzOgotICAgICAgICAgICAgaWYg
KFJlZlB0cjxGb250PiByZXN1bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50
aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxl
Y3Rpb25DYXBhYmlsaXRpZXMpKQorICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0ID0gc291cmNl
LT5mb250KGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBt
X2ZlYXR1cmVTZXR0aW5ncywgbV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkgeworICAgICAg
ICAgICAgICAgIGF1dG8qIGNhY2hlZEZvbnQgPSBzb3VyY2UtPmNhY2hlZEZvbnQoKTsKKyAgICAg
ICAgICAgICAgICByZXN1bHQtPnNldEZvbnRGYWNlRGF0YShjYWNoZWRGb250ID8gY2FjaGVkRm9u
dC0+cmVzb3VyY2VCdWZmZXIoKSA6IG51bGxwdHIpOwogICAgICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBD
U1NGb250RmFjZVNvdXJjZTo6U3RhdHVzOjpGYWlsdXJlOgogICAgICAgICAgICAgYnJlYWs7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IGU0YTJlZDk2ODYyMjE3OGE4
OTkyN2EzZTJlYzNiOTk1YzY4ZjI5NTMuLmQ4YTYyYjdhNGM1YTY3MjVjOTE4MjNjMGU5ZDc3ZGUw
NzRjNzhlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCkBAIC03Miw2
ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGxvYWQoQ1NTRm9udFNlbGVjdG9yKik7CiAgICAg
UmVmUHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZv
bnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOwogCisgICAgQ2FjaGVkRm9udCogY2Fj
aGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udC5nZXQoKTsgfQogICAgIGJvb2wgcmVxdWly
ZXNFeHRlcm5hbFJlc291cmNlKCkgY29uc3QgeyByZXR1cm4gbV9mb250OyB9CiAKICNpZiBFTkFC
TEUoU1ZHX0ZPTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApp
bmRleCAxNjQ0ZmRlMTc4NjMyOThjM2JhM2FlMDZhNmViYzdjYzE3MWNiZjhhLi44OTc5YjI1OGE3
MTE4NTU1MzczMzIzMDhmOTAyOWVhNjNmYWNmMWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmNwcApAQCAtMzMsMTAgKzMzLDEzIEBACiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oPgogI2VuZGlmCisjaW5j
bHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkNoYXJhY3RlclByb3BlcnRpZXMuaCIKICNp
bmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgorI2luY2x1ZGUg
IkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJPcGVuVHlwZU1hdGhEYXRhLmgi
CisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4K
ICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9t
U3RyaW5nSGFzaC5oPgpAQCAtNzA1LDQgKzcwOCwxOCBAQCBjb25zdCBQYXRoJiBGb250OjpwYXRo
Rm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0CiAgICAgcmV0dXJuICptX2dseXBoUGF0aE1hcC5l
eGlzdGluZ01ldHJpY3NGb3JHbHlwaChnbHlwaCk7CiB9CiAKK3ZvaWQgRm9udDo6c2V0Rm9udEZh
Y2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhKQoreworICAgIG1fZm9u
dEZhY2VEYXRhID0gV1RGTW92ZShmb250RmFjZURhdGEpOworfQorCitGb250SGFuZGxlOjpGb250
SGFuZGxlKFJlZjxTaGFyZWRCdWZmZXI+JiYgZm9udEZhY2VEYXRhLCBGb250OjpPcmlnaW4gb3Jp
Z2luLCBmbG9hdCBmb250U2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0
YWxpYykKK3sKKyAgICBib29sIHdyYXBwaW5nOworICAgIGF1dG8gY3VzdG9tRm9udERhdGEgPSBD
YWNoZWRGb250OjpjcmVhdGVDdXN0b21Gb250RGF0YShmb250RmFjZURhdGEuZ2V0KCksIHsgfSwg
d3JhcHBpbmcpOworICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjcmlwdGlvbjsKKyAgICBkZXNjcmlw
dGlvbi5zZXRDb21wdXRlZFNpemUoZm9udFNpemUpOworICAgIGZvbnQgPSBGb250OjpjcmVhdGUo
Q2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBk
ZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0sIHsgfSksIG9y
aWdpbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaAppbmRleCBmOWM4ZDVhYjZlN2E5NGQzYWZkMjI1YzZkOGFmNjg0NTM5
MDBlOTNiLi4wYzk1MjU5ZjcyNDNiMTMzNDczMDY1NDU3ODBiYTg3OTIwYmRhZDhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCkBAIC0yMTgsOCArMjE4LDExIEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgZmxvYXQgYXNjZW50Q29uc2lkZXJpbmdNYWNBc2NlbnRIYWNrKGNv
bnN0IFdDSEFSKiwgZmxvYXQgYXNjZW50LCBmbG9hdCBkZXNjZW50KTsKICNlbmRpZgogCisgICAg
U2hhcmVkQnVmZmVyKiBmb250RmFjZURhdGEoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRGYWNlRGF0
YS5nZXQoKTsgfQorICAgIHZvaWQgc2V0Rm9udEZhY2VEYXRhKFJlZlB0cjxTaGFyZWRCdWZmZXI+
JiYpOworCiBwcml2YXRlOgotICAgIEZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYsIE9yaWdp
biwgSW50ZXJzdGl0aWFsLCBWaXNpYmlsaXR5LCBPcmllbnRhdGlvbkZhbGxiYWNrKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmLCBPcmlnaW4sIEludGVy
c3RpdGlhbCwgVmlzaWJpbGl0eSwgT3JpZW50YXRpb25GYWxsYmFjayk7CiAKICAgICB2b2lkIHBs
YXRmb3JtSW5pdCgpOwogICAgIHZvaWQgcGxhdGZvcm1HbHlwaEluaXQoKTsKQEAgLTI5MSw2ICsy
OTQsOCBAQCBwcml2YXRlOgogICAgIG11dGFibGUgU0NSSVBUX0ZPTlRQUk9QRVJUSUVTKiBtX3Nj
cmlwdEZvbnRQcm9wZXJ0aWVzOwogI2VuZGlmCiAKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBt
X2ZvbnRGYWNlRGF0YTsKKwogICAgIEdseXBoIG1fc3BhY2VHbHlwaCB7IDAgfTsKICAgICBHbHlw
aCBtX3plcm9HbHlwaCB7IDAgfTsKICAgICBHbHlwaCBtX3plcm9XaWR0aFNwYWNlR2x5cGggeyAw
IH07CkBAIC0zMjEsNiArMzI2LDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIH07CiAKK2NsYXNzIEZv
bnRIYW5kbGUgeworcHVibGljOgorICAgIEZvbnRIYW5kbGUoKSA9IGRlZmF1bHQ7CisgICAgV0VC
Q09SRV9FWFBPUlQgRm9udEhhbmRsZShSZWY8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwg
Rm9udDo6T3JpZ2luLCBmbG9hdCBmb250U2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY0l0YWxpYyk7CisKKyAgICBSZWZQdHI8Rm9udD4gZm9udDsKK307CisKICNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQogYm9vbCBmb250RmFtaWx5U2hvdWxkTm90QmVVc2VkRm9yQXJhYmlj
KENGU3RyaW5nUmVmKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3Bw
CmluZGV4IDMxMmY2ODMzMDUzOTBlOTBlN2EwNzFhNDZiMmZjZGY2Mjg0ZGJjMzUuLjkxYWIzYmY3
ZDg3YjI0N2FiNjE4ZDk4M2RiNzU0YmMyYjIxNDBlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxh
eUxpc3RJdGVtcy5jcHAKQEAgLTUxMiw2ICs1MTIsMTggQEAgc3RhdGljIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IENsaXBQYXRoJiBpdGVtKQogICAgIHJldHVy
biB0czsKIH0KIAorRHJhd0dseXBoczo6RHJhd0dseXBocyhjb25zdCBGb250JiBmb250LCBWZWN0
b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYmIGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2
YW5jZSwgMTI4PiYmIGFkdmFuY2VzLCBjb25zdCBGbG9hdFBvaW50JiBibG9ja0xvY2F0aW9uLCBj
b25zdCBGbG9hdFNpemUmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdN
b2RlKQorICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdHbHlwaHMpCisgICAgLCBtX2Zv
bnQoY29uc3RfY2FzdDxGb250Jj4oZm9udCkpCisgICAgLCBtX2dseXBocyhXVEZNb3ZlKGdseXBo
cykpCisgICAgLCBtX2FkdmFuY2VzKFdURk1vdmUoYWR2YW5jZXMpKQorICAgICwgbV9ibG9ja0xv
Y2F0aW9uKGJsb2NrTG9jYXRpb24pCisgICAgLCBtX2xvY2FsQW5jaG9yKGxvY2FsQW5jaG9yKQor
ICAgICwgbV9zbW9vdGhpbmdNb2RlKHNtb290aGluZ01vZGUpCit7CisgICAgY29tcHV0ZUJvdW5k
cygpOworfQorCiBEcmF3R2x5cGhzOjpEcmF3R2x5cGhzKGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0
IEdseXBoQnVmZmVyR2x5cGgqIGdseXBocywgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiBhZHZh
bmNlcywgdW5zaWduZWQgY291bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24sIGNv
bnN0IEZsb2F0U2l6ZSYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlIHNtb290aGluZ01v
ZGUpCiAgICAgOiBEcmF3aW5nSXRlbShJdGVtVHlwZTo6RHJhd0dseXBocykKICAgICAsIG1fZm9u
dChjb25zdF9jYXN0PEZvbnQmPihmb250KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
CmluZGV4IDJiYjEwODZiZmQ5NzJjNTY4YTIxM2YxZWYxNTk2MzdkODBkZTA3NjcuLjk3ZmQwYTAw
YTRkNGJjNmU3NjEyNzJkOTZlYjc0NjY3MzAyZjgwYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaApAQCAtMTA1Nyw2ICsxMDU3LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgRHJhd0dseXBocyhmb250LCBnbHlwaHMsIGFkdmFuY2VzLCBjb3VudCwg
YmxvY2tMb2NhdGlvbiwgbG9jYWxBbmNob3IsIHNtb290aGluZ01vZGUpKTsKICAgICB9CiAKKyAg
ICBzdGF0aWMgUmVmPERyYXdHbHlwaHM+IGNyZWF0ZShjb25zdCBGb250JiBmb250LCBWZWN0b3I8
R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYmIGdseXBocywgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5j
ZSwgMTI4PiYmIGFkdmFuY2VzLCBjb25zdCBGbG9hdFBvaW50JiBibG9ja0xvY2F0aW9uLCBjb25z
dCBGbG9hdFNpemUmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdNb2Rl
KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRHJhd0dseXBocyhmb250LCBX
VEZNb3ZlKGdseXBocyksIFdURk1vdmUoYWR2YW5jZXMpLCBibG9ja0xvY2F0aW9uLCBsb2NhbEFu
Y2hvciwgc21vb3RoaW5nTW9kZSkpOworICAgIH0KKwogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgfkRyYXdHbHlwaHMoKTsKIAogICAgIGNvbnN0IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX2Jsb2NrTG9jYXRpb247IH0KQEAgLTEwNzIsNyArMTA3Nyw4IEBA
IHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgT3B0aW9uYWw8UmVm
PERyYXdHbHlwaHM+PiBkZWNvZGUoRGVjb2RlciYpOwogCiBwcml2YXRlOgotICAgIFdFQkNPUkVf
RVhQT1JUIERyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVyR2x5cGgqLCBj
b25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3QgRmxvYXRQb2lu
dCYgYmxvY2tMb2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290
aGluZ01vZGUpOworICAgIERyYXdHbHlwaHMoY29uc3QgRm9udCYsIGNvbnN0IEdseXBoQnVmZmVy
R2x5cGgqLCBjb25zdCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCB1bnNpZ25lZCBjb3VudCwgY29uc3Qg
RmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwg
Rm9udFNtb290aGluZ01vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIERyYXdHbHlwaHMoY29uc3Qg
Rm9udCYsIFZlY3RvcjxHbHlwaEJ1ZmZlckdseXBoLCAxMjg+JiYsIFZlY3RvcjxHbHlwaEJ1ZmZl
ckFkdmFuY2UsIDEyOD4mJiwgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2NhdGlvbiwgY29uc3Qg
RmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUpOwogCiAgICAgdm9pZCBj
b21wdXRlQm91bmRzKCk7CiAKQEAgLTEwOTQsNyArMTEwMCw5IEBAIHByaXZhdGU6CiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBEcmF3R2x5cGhzOjplbmNvZGUoRW5jb2RlciYgZW5jb2Rl
cikgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogQWRkIGZvbnQgZGF0YSB0byB0aGUgZW5jb2Rlci4K
KyAgICBGb250SGFuZGxlIGhhbmRsZTsKKyAgICBoYW5kbGUuZm9udCA9IG1fZm9udC5wdHIoKTsK
KyAgICBlbmNvZGVyIDw8IGhhbmRsZTsKICAgICBlbmNvZGVyIDw8IG1fZ2x5cGhzOwogICAgIGVu
Y29kZXIgPDwgbV9hZHZhbmNlczsKICAgICBlbmNvZGVyIDw8IG1fYmxvY2tMb2NhdGlvbjsKQEAg
LTExMDUsNiArMTExMywxMSBAQCB2b2lkIERyYXdHbHlwaHM6OmVuY29kZShFbmNvZGVyJiBlbmNv
ZGVyKSBjb25zdAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIE9wdGlvbmFsPFJlZjxEcmF3R2x5
cGhzPj4gRHJhd0dseXBoczo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiB7CisgICAgT3B0aW9u
YWw8Rm9udEhhbmRsZT4gaGFuZGxlOworICAgIGRlY29kZXIgPj4gaGFuZGxlOworICAgIGlmICgh
aGFuZGxlIHx8ICFoYW5kbGUtPmZvbnQpCisgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CisK
ICAgICBPcHRpb25hbDxWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4Pj4gZ2x5cGhzOwogICAg
IGRlY29kZXIgPj4gZ2x5cGhzOwogICAgIGlmICghZ2x5cGhzKQpAQCAtMTEzMyw4ICsxMTQ2LDcg
QEAgT3B0aW9uYWw8UmVmPERyYXdHbHlwaHM+PiBEcmF3R2x5cGhzOjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlcikKICAgICBpZiAoIXNtb290aGluZ01vZGUpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKLSAgICAvLyBGSVhNRTogQ3JlYXRlIGFuZCByZXR1cm4gYSBEcmF3R2x5cGhzIG9u
Y2Ugd2UncmUgYWJsZSB0byBkZWNvZGUgZm9udCBkYXRhLgotICAgIHJldHVybiBXVEY6Om51bGxv
cHQ7CisgICAgcmV0dXJuIERyYXdHbHlwaHM6OmNyZWF0ZShoYW5kbGUtPmZvbnQucmVsZWFzZU5v
bk51bGwoKSwgV1RGTW92ZSgqZ2x5cGhzKSwgV1RGTW92ZSgqYWR2YW5jZXMpLCAqYmxvY2tMb2Nh
dGlvbiwgKmxvY2FsQW5jaG9yLCAqc21vb3RoaW5nTW9kZSk7CiB9CiAKIGNsYXNzIERyYXdJbWFn
ZSA6IHB1YmxpYyBEcmF3aW5nSXRlbSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCmluZGV4IDMyYmY4MGNkYTMz
YTE3MmFjYmE3OTlkYzE4YzdkYzg3MjU2ZGUzYTEuLmVkZTdiYjJhMjdiYmU4Y2M4ZmVlMjA3MmNh
ZGZiOTYyNmVhMTUzOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL1dl
YkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNp
bXBvcnQgIkFyZ3VtZW50Q29kZXJzQ29jb2EuaCIKICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFy
eVBvcHVwSW5mby5oPgorI2ltcG9ydCA8V2ViQ29yZS9Gb250Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0ZvbnRBdHRyaWJ1dGVzLmg+CiAKICNpZiBFTkFCTEUoQVBQTEVfUEFZKQpAQCAtNDcyLDQgKzQ3
MywzNiBAQCBPcHRpb25hbDxGb250QXR0cmlidXRlcz4gQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpG
b250QXR0cmlidXRlcz46OmRlY29kZVBsYXRmb3JtRAogICAgIHJldHVybiBhdHRyaWJ1dGVzOwog
fQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNkZWZpbmUgQ29jb2FGb250IFVJRm9udAor
I2Vsc2UKKyNkZWZpbmUgQ29jb2FGb250IE5TRm9udAorI2VuZGlmCisKK3ZvaWQgQXJndW1lbnRD
b2RlcjxGb250SGFuZGxlPjo6ZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXImIGVuY29kZXIsIGNv
bnN0IEZvbnRIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBhdXRvIGN0Rm9udCA9IGhhbmRsZS5mb250
ICYmICFoYW5kbGUuZm9udC0+Zm9udEZhY2VEYXRhKCkgPyBoYW5kbGUuZm9udC0+Z2V0Q1RGb250
KCkgOiBuaWw7CisgICAgZW5jb2RlciA8PCAhIWN0Rm9udDsKKyAgICBpZiAoY3RGb250KQorICAg
ICAgICBlbmNvZGVyIDw8IChfX2JyaWRnZSBDb2NvYUZvbnQgKiljdEZvbnQ7Cit9CisKK2Jvb2wg
QXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZGVjb2RlUGxhdGZvcm1EYXRhKERlY29kZXImIGRl
Y29kZXIsIEZvbnRIYW5kbGUmIGhhbmRsZSkKK3sKKyAgICBib29sIGhhc1BsYXRmb3JtRm9udDsK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGhhc1BsYXRmb3JtRm9udCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIGlmICghaGFzUGxhdGZvcm1Gb250KQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIFJldGFpblB0cjxDb2NvYUZvbnQ+IGZvbnQ7CisgICAgaWYgKCFJUEM6OmRlY29k
ZShkZWNvZGVyLCBmb250KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBwcmV2
aW91c1ZhbHVlID0gaGFuZGxlLmZvbnQ7CisgICAgaGFuZGxlLmZvbnQgPSBGb250OjpjcmVhdGUo
eyAoX19icmlkZ2UgQ1RGb250UmVmKWZvbnQuZ2V0KCksIHN0YXRpY19jYXN0PGZsb2F0PihbZm9u
dCBwb2ludFNpemVdKSB9KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
SVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApp
bmRleCA5YWE1YWU2YzlkN2M0ODE5MzczODZiMzExNjk5Njk5Y2Q3MTBhMDI5Li44ZTA4YTMzZGRk
MWVlNDRiOTIzNjdiY2RkOWQxMjFmZmMwNmFkNTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTQ4LDYgKzQ4LDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVDaG9vc2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJPcGVyYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlck9wZXJhdGlvbnMuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ZvbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dyYXBo
aWNzTGF5ZXIuaD4KQEAgLTExMjUsNiArMTEyNiw3MSBAQCBib29sIEFyZ3VtZW50Q29kZXI8TmF0
aXZlSW1hZ2VIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgTmF0aXZlSW1hZ2VIYW5k
bAogICAgIHJldHVybiBkZWNvZGVPcHRpb25hbE5hdGl2ZUltYWdlKGRlY29kZXIsIGltYWdlSGFu
ZGxlLmltYWdlKTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGUo
RW5jb2RlciYgZW5jb2RlciwgY29uc3QgRm9udEhhbmRsZSYgaGFuZGxlKQoreworICAgIGVuY29k
ZXIgPDwgISFoYW5kbGUuZm9udDsKKyAgICBpZiAoIWhhbmRsZS5mb250KQorICAgICAgICByZXR1
cm47CisKKyAgICBhdXRvKiBmb250RmFjZURhdGEgPSBoYW5kbGUuZm9udC0+Zm9udEZhY2VEYXRh
KCk7CisgICAgZW5jb2RlciA8PCAhIWZvbnRGYWNlRGF0YTsKKyAgICBpZiAoZm9udEZhY2VEYXRh
KSB7CisgICAgICAgIGVuY29kZVNoYXJlZEJ1ZmZlcihlbmNvZGVyLCBmb250RmFjZURhdGEpOwor
ICAgICAgICBhdXRvJiBkYXRhID0gaGFuZGxlLmZvbnQtPnBsYXRmb3JtRGF0YSgpOworICAgICAg
ICBlbmNvZGVyIDw8IGRhdGEuc2l6ZSgpOworICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc3ludGhl
dGljQm9sZCgpOworICAgICAgICBlbmNvZGVyIDw8IGRhdGEuc3ludGhldGljT2JsaXF1ZSgpOwor
ICAgIH0KKworICAgIGVuY29kZVBsYXRmb3JtRGF0YShlbmNvZGVyLCBoYW5kbGUpOworfQorCiti
b29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBG
b250SGFuZGxlJiBoYW5kbGUpCit7CisgICAgT3B0aW9uYWw8Ym9vbD4gaGFzRm9udDsKKyAgICBk
ZWNvZGVyID4+IGhhc0ZvbnQ7CisgICAgaWYgKCFoYXNGb250Lmhhc1ZhbHVlKCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgIGlmICghaGFzRm9udC52YWx1ZSgpKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIE9wdGlvbmFsPGJvb2w+IGhhc0ZvbnRGYWNlRGF0YTsKKyAgICBkZWNv
ZGVyID4+IGhhc0ZvbnRGYWNlRGF0YTsKKyAgICBpZiAoIWhhc0ZvbnRGYWNlRGF0YS5oYXNWYWx1
ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoaGFzRm9udEZhY2VEYXRhLnZh
bHVlKCkpIHsKKyAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZm9udEZhY2VEYXRhOworICAg
ICAgICBpZiAoIWRlY29kZVNoYXJlZEJ1ZmZlcihkZWNvZGVyLCBmb250RmFjZURhdGEpKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghZm9udEZhY2VEYXRhKQorICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIE9wdGlvbmFsPGZsb2F0PiBmb250U2l6
ZTsKKyAgICAgICAgZGVjb2RlciA+PiBmb250U2l6ZTsKKyAgICAgICAgaWYgKCFmb250U2l6ZSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBPcHRpb25hbDxib29sPiBzeW50
aGV0aWNCb2xkOworICAgICAgICBkZWNvZGVyID4+IHN5bnRoZXRpY0JvbGQ7CisgICAgICAgIGlm
ICghc3ludGhldGljQm9sZCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBP
cHRpb25hbDxib29sPiBzeW50aGV0aWNJdGFsaWM7CisgICAgICAgIGRlY29kZXIgPj4gc3ludGhl
dGljSXRhbGljOworICAgICAgICBpZiAoIXN5bnRoZXRpY0l0YWxpYykKKyAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgICAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb247CisgICAg
ICAgIGRlc2NyaXB0aW9uLnNldENvbXB1dGVkU2l6ZSgqZm9udFNpemUpOworICAgICAgICBoYW5k
bGUgPSB7IGZvbnRGYWNlRGF0YS5yZWxlYXNlTm9uTnVsbCgpLCBGb250OjpPcmlnaW46OlJlbW90
ZSwgKmZvbnRTaXplLCAqc3ludGhldGljQm9sZCwgKnN5bnRoZXRpY0l0YWxpYyB9OworICAgIH0K
KworICAgIHJldHVybiBkZWNvZGVQbGF0Zm9ybURhdGEoZGVjb2RlciwgaGFuZGxlKTsKK30KKwog
dm9pZCBBcmd1bWVudENvZGVyPEN1cnNvcj46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25z
dCBDdXJzb3ImIGN1cnNvcikKIHsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oY3Vyc29yLnR5cGUo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDFkZTMwNDJjMDc5MTY1YTFkMjVhNmY0YjU4ZDY2MDlhNjU2NjAyZjguLjM0ODJkMDUwZTRiZWZj
MTAyZTMxNmQwMTk4YjAwNGVmNjA4NDUxYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC04MCw2ICs4MCw3IEBAIGNsYXNzIEZsb2F0UmVjdDsK
IGNsYXNzIEZsb2F0Um91bmRlZFJlY3Q7CiBjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBGaXhlZFBv
c2l0aW9uVmlld3BvcnRDb25zdHJhaW50czsKK2NsYXNzIEZvbnRIYW5kbGU7CiBjbGFzcyBIVFRQ
SGVhZGVyTWFwOwogY2xhc3MgSW1hZ2VIYW5kbGU7CiBjbGFzcyBJbnRQb2ludDsKQEAgLTM3OSw2
ICszODAsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDdXJz
b3I+IHsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkN1cnNvciYp
OwogfTsKIAordGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpGb250SGFu
ZGxlPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpG
b250SGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpG
b250SGFuZGxlJik7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlUGxhdGZvcm1EYXRhKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpGb250SGFuZGxlJik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlUGxh
dGZvcm1EYXRhKERlY29kZXImLCBXZWJDb3JlOjpGb250SGFuZGxlJik7Cit9OworCiB0ZW1wbGF0
ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkltYWdlSGFuZGxlPiB7CiAgICAgc3Rh
dGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJbWFnZUhhbmRsZSYpOwog
ICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6SW1hZ2VIYW5kbGUmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387038</attachid>
            <date>2020-01-07 14:53:11 -0800</date>
            <delta_ts>2020-01-08 08:33:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205830-20200107145310.patch</filename>
            <type>text/plain</type>
            <size>20835</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0MTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWUwZDE4MzI5MjZkNTQz
MDY5MGI5N2IxYTg5ZmE3M2UzZDRmNjg0NS4uNTBjZjVjZGZiZDZiMWRmNzNlNmIxN2U3MWYxNWVl
Mjc4NzU2ZmFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTAxLTA3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciBlbmNvZGluZyBXZWJDb3JlOjpGb250IG92ZXIgSVBDIGZvciBEaXNwbGF5TGlzdDo6RHJh
d0dseXBocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA1ODMwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81NzM0NzcxOT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgZW5jb2Rp
bmcgRm9udHMuIEluIHRoZSBjYXNlIHdoZXJlIHRoZSBGb250IGlzIGluc3RhbGxlZCwgd2UgdXNl
IHBsYXRmb3JtIGVuY29kZXJzIHRvIHNlbmQgYWNyb3NzCisgICAgICAgIHRoZSBmb250IGRlc2Ny
aXB0b3IsIGFuZCByZWNvbnN0cnVjdCB0aGUgZm9udCB1c2luZyB0aGlzIGRlc2NyaXB0b3Igb24g
dGhlIHJlY2VpdmluZyBlbmQgKHNlZSB0aGUgZXhpc3RpbmcKKyAgICAgICAgaW1wbGVtZW50YXRp
b25zIG9mIGVuY29kZUZvbnRJbnRlcm5hbCBhbmQgZGVjb2RlRm9udEludGVybmFsKS4gSW4gdGhl
IGNhc2Ugd2hlcmUgdGhlIEZvbnQgaXMgbm90IGluc3RhbGxlZCwgd2UKKyAgICAgICAgaW5zdGVh
ZCBzZW5kIHRoZSBmb250IGZhY2UgZGF0YSBvdmVyIChwbHVtYmVkIGFjcm9zcyBmcm9tIHRoZSBD
YWNoZWRGb250KSwgYW5kIHJlY29uc3RydWN0IHRoZSBwbGF0Zm9ybSBmb250CisgICAgICAgIGRh
dGEgZnJvbSB0aGUgcmF3IGZvbnQgZGF0YSBvbiB0aGUgcmVjZWl2aW5nIGVuZC4KKworICAgICAg
ICBUaGlzIGFsbG93cyB1cyB0byByZW5kZXIgd2ViIGZvbnRzIGluIHRoZSBHUFUgcHJvY2VzcyB0
aHJvdWdoIHRoZSBgRHJhd0dseXBoc2AgZGlzcGxheSBsaXN0IGl0ZW0uCisKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnQp
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6c2V0Rm9udEZhY2VE
YXRhKToKKworICAgICAgICBBZGQgYSB3YXkgdG8gc2V0IGZvbnQgZmFjZSBkYXRhIHVzZWQgdG8g
Y3JlYXRlIHRoZSBGb250LiBUaGlzIGRhdGEgY29tZXMgZnJvbSBhIENhY2hlZEZvbnQncyBkYXRh
IGJ1ZmZlciwgYW5kIGlzCisgICAgICAgIHVzZWQgdG8gc2VyaWFsaXplIEZvbnRIYW5kbGVzIHdo
ZW4gYnVpbGRpbmcgZGlzcGxheSBsaXN0IGl0ZW1zLgorCisgICAgICAgIChXZWJDb3JlOjpGb250
SGFuZGxlOjpGb250SGFuZGxlKToKKworICAgICAgICBBZGQgYSBzZXJpYWxpemFibGUgd3JhcHBl
ciBjbGFzcyB0aGF0IGNvbnRhaW5zIGEgbnVsbGFibGUgRm9udC4gVGhlIGVuY29kZXIvZGVjb2Rl
cnMgZm9yIEZvbnRIYW5kbGUgYXJlCisgICAgICAgIGltcGxlbWVudGVkIGluIFdlYktpdDIuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250Ojpmb250RmFjZURhdGEgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rp
c3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRpc3Bs
YXlMaXN0OjpEcmF3R2x5cGhzOjpEcmF3R2x5cGhzKToKKworICAgICAgICBGaW5pc2ggaW1wbGVt
ZW50aW5nIHRoZSBlbmNvZGUvZGVjb2RlIG1ldGhvZHMgZm9yIERyYXdHbHlwaHMsIGJ5IHNlbmRp
bmcgdGhlIEZvbnQgZGF0YSBvdmVyIHZpYSBGb250SGFuZGxlLgorCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0SXRlbXMuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkRpc3BsYXlMaXN0OjpEcmF3R2x5cGhzOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6RGlzcGxheUxpc3Q6OkRyYXdHbHlwaHM6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpEaXNwbGF5TGlzdDo6RHJhd0dseXBoczo6ZGVjb2RlKToKKworICAgICAgICBXaGVuIGRl
Y29kaW5nIGBEcmF3R2x5cGhzYCwgYXZvaWQgaGF2aW5nIHRvIHJlYnVpbGQgdGhlIGdseXBoIFZl
Y3RvciBieSBhZGRpbmcgKGFuZCB1c2luZykgbmV3IERyYXdHbHlwaHMKKyAgICAgICAgY29uc3Ry
dWN0b3JzIHRoYXQgdGFrZSBgVmVjdG9yJiZgcy4KKwogMjAyMC0wMS0wNyAgUm9iIEJ1aXMgIDxy
YnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlbW92ZSBsb2FkZXIvd2luCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4
IDRkNWQ1ODc0MGYyMzQyMTZlZmIwODljNGRlZmI4OWE3ZDIyNTNiNDQuLjUwZWNmNjQ5Y2ZhMGFj
Mjg2OTlhMzI1ZGQzOGNmM2ViMTRjZjAwYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIw
MjAtMDEtMDcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWRkIHN1cHBvcnQgZm9yIGVuY29kaW5nIFdlYkNvcmU6OkZvbnQgb3ZlciBJUEMgZm9yIERp
c3BsYXlMaXN0OjpEcmF3R2x5cGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMDU4MzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU3MzQ3NzE5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBiYXNp
YyBzdXBwb3J0IGZvciBlbmNvZGluZyBhbmQgZGVjb2RpbmcgYSBGb250SGFuZGxlLgorCisgICAg
ICAgICogU2hhcmVkL0NvY29hL1dlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGVQbGF0Zm9ybURhdGEpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGVQbGF0Zm9ybURh
dGEpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAg
ICAoSVBDOjpBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGUpOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGUpOgorCisgICAgICAgIFdoZW4gZW5j
b2RpbmcgYSBGb250IG9uIENvY29hIHBsYXRmb3Jtcywgc2VuZCBhY3Jvc3MgdGhlIGZvbnQgZmFj
ZSBkYXRhIChpZiBwcmVzZW50KTsgb3RoZXJ3aXNlLCBmYWxsIGJhY2sgdG8KKyAgICAgICAgc2Vu
ZGluZyB0aGUgZm9udCBkZXNjcmlwdG9yIGZvciB0aGUgVUlGb250IG9yIE5TRm9udCAoYXMgaXMg
dGhlIGNhc2UgZm9yIGluc3RhbGxlZCBmb250cykuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmg6CisgICAgICAgICogU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ3VybC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46
OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9udEhh
bmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgICogU2hhcmVkL3NvdXAvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzU291cC5jcHA6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8Rm9u
dEhhbmRsZT46OmVuY29kZVBsYXRmb3JtRGF0YSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YSk6CisKIDIwMjAtMDEtMDcgIHlvdWVu
biBmYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbiBvcHRpb24gdG8g
bWFrZSB2aWRlbyBjYXB0dXJlIGluIEdQVVByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2Uu
Y3BwCmluZGV4IGE5OWY2MTFlM2ExMzMzYzE5ZGE0MTgzZDQ2N2FjM2MyYjk5ODRmMmQuLjA4OTFk
YjRlMDMxZGJkYjBkOWZiYmQ0M2I2OTc1OTFkNmRkZGRkNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0Zv
bnRGYWNlLmNwcApAQCAtMzUsMTIgKzM1LDE0IEBACiAjaW5jbHVkZSAiQ1NTVW5pY29kZVJhbmdl
VmFsdWUuaCIKICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlTGlzdC5o
IgorI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJGb250RmFjZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCisj
aW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlLmgi
CkBAIC02NzMsOCArNjc1LDExIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9udChjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAgICAgICAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKEZvbnRDYWNoZTo6c2luZ2xldG9uKCkubGFzdFJlc29ydEZh
bGxiYWNrRm9udChmb250RGVzY3JpcHRpb24pLT5wbGF0Zm9ybURhdGEoKSwgRm9udDo6T3JpZ2lu
OjpMb2NhbCwgRm9udDo6SW50ZXJzdGl0aWFsOjpZZXMsIHZpc2liaWxpdHkpOwogICAgICAgICB9
CiAgICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6U3VjY2VzczoKLSAgICAg
ICAgICAgIGlmIChSZWZQdHI8Rm9udD4gcmVzdWx0ID0gc291cmNlLT5mb250KGZvbnREZXNjcmlw
dGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBtX2ZlYXR1cmVTZXR0aW5ncywg
bV9mb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzKSkKKyAgICAgICAgICAgIGlmIChhdXRvIHJlc3Vs
dCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRp
Y0l0YWxpYywgbV9mZWF0dXJlU2V0dGluZ3MsIG1fZm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcykp
IHsKKyAgICAgICAgICAgICAgICBhdXRvKiBjYWNoZWRGb250ID0gc291cmNlLT5jYWNoZWRGb250
KCk7CisgICAgICAgICAgICAgICAgcmVzdWx0LT5zZXRGb250RmFjZURhdGEoY2FjaGVkRm9udCA/
IGNhY2hlZEZvbnQtPnJlc291cmNlQnVmZmVyKCkgOiBudWxscHRyKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OworICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToKICAgICAgICAgICAg
IGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuaAppbmRleCBlNGEyZWQ5
Njg2MjIxNzhhODk5MjdhM2UyZWMzYjk5NWM2OGYyOTUzLi5kOGE2MmI3YTRjNWE2NzI1YzkxODIz
YzBlOWQ3N2RlMDc0Yzc4ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9u
dEZhY2VTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2Uu
aApAQCAtNzIsNiArNzIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkKENTU0ZvbnRTZWxlY3Rv
ciopOwogICAgIFJlZlB0cjxGb250PiBmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0
dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKTsKIAorICAgIENhY2hl
ZEZvbnQqIGNhY2hlZEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2ZvbnQuZ2V0KCk7IH0KICAgICBi
b29sIHJlcXVpcmVzRXh0ZXJuYWxSZXNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udDsgfQog
CiAjaWYgRU5BQkxFKFNWR19GT05UUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKaW5kZXggMTY0NGZkZTE3ODYzMjk4YzNiYTNhZTA2YTZlYmM3Y2MxNzFjYmY4YS4u
ODk3OWIyNThhNzExODU1NTM3MzMyMzA4ZjkwMjllYTYzZmFjZjFjOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTMzLDEwICszMywxMyBAQAogI2lmIFBM
QVRGT1JNKENPQ09BKQogI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaD4KICNl
bmRpZgorI2luY2x1ZGUgIkNhY2hlZEZvbnQuaCIKICNpbmNsdWRlICJDaGFyYWN0ZXJQcm9wZXJ0
aWVzLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIK
KyNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiT3BlblR5cGVN
YXRoRGF0YS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9NYXRo
RXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbVN0cmluZ0hhc2guaD4KQEAgLTcwNSw0ICs3MDgsMTggQEAgY29uc3QgUGF0aCYg
Rm9udDo6cGF0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIHJldHVybiAqbV9nbHlw
aFBhdGhNYXAuZXhpc3RpbmdNZXRyaWNzRm9yR2x5cGgoZ2x5cGgpOwogfQogCit2b2lkIEZvbnQ6
OnNldEZvbnRGYWNlRGF0YShSZWZQdHI8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSkKK3sK
KyAgICBtX2ZvbnRGYWNlRGF0YSA9IFdURk1vdmUoZm9udEZhY2VEYXRhKTsKK30KKworRm9udEhh
bmRsZTo6Rm9udEhhbmRsZShSZWY8U2hhcmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwgRm9udDo6
T3JpZ2luIG9yaWdpbiwgZmxvYXQgZm9udFNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBz
eW50aGV0aWNJdGFsaWMpCit7CisgICAgYm9vbCB3cmFwcGluZzsKKyAgICBhdXRvIGN1c3RvbUZv
bnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoZm9udEZhY2VEYXRhLmdl
dCgpLCB7IH0sIHdyYXBwaW5nKTsKKyAgICBGb250RGVzY3JpcHRpb24gZGVzY3JpcHRpb247Cisg
ICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKKyAgICBmb250ID0gRm9u
dDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCpjdXN0b21G
b250RGF0YSwgZGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgeyB9
LCB7IH0pLCBvcmlnaW4pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKaW5kZXggZjljOGQ1YWI2ZTdhOTRkM2FmZDIyNWM2
ZDhhZjY4NDUzOTAwZTkzYi4uMGM5NTI1OWY3MjQzYjEzMzQ3MzA2NTQ1NzgwYmE4NzkyMGJkYWQ4
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaApAQCAtMjE4LDggKzIx
OCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGZsb2F0IGFzY2VudENvbnNpZGVyaW5nTWFjQXNj
ZW50SGFjayhjb25zdCBXQ0hBUiosIGZsb2F0IGFzY2VudCwgZmxvYXQgZGVzY2VudCk7CiAjZW5k
aWYKIAorICAgIFNoYXJlZEJ1ZmZlciogZm9udEZhY2VEYXRhKCkgY29uc3QgeyByZXR1cm4gbV9m
b250RmFjZURhdGEuZ2V0KCk7IH0KKyAgICB2b2lkIHNldEZvbnRGYWNlRGF0YShSZWZQdHI8U2hh
cmVkQnVmZmVyPiYmKTsKKwogcHJpdmF0ZToKLSAgICBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmLCBPcmlnaW4sIEludGVyc3RpdGlhbCwgVmlzaWJpbGl0eSwgT3JpZW50YXRpb25GYWxsYmFj
ayk7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRhJiwgT3Jp
Z2luLCBJbnRlcnN0aXRpYWwsIFZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2spOwogCiAg
ICAgdm9pZCBwbGF0Zm9ybUluaXQoKTsKICAgICB2b2lkIHBsYXRmb3JtR2x5cGhJbml0KCk7CkBA
IC0yOTEsNiArMjk0LDggQEAgcHJpdmF0ZToKICAgICBtdXRhYmxlIFNDUklQVF9GT05UUFJPUEVS
VElFUyogbV9zY3JpcHRGb250UHJvcGVydGllczsKICNlbmRpZgogCisgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gbV9mb250RmFjZURhdGE7CisKICAgICBHbHlwaCBtX3NwYWNlR2x5cGggeyAwIH07
CiAgICAgR2x5cGggbV96ZXJvR2x5cGggeyAwIH07CiAgICAgR2x5cGggbV96ZXJvV2lkdGhTcGFj
ZUdseXBoIHsgMCB9OwpAQCAtMzIxLDYgKzMyNiwxNCBAQCBwcml2YXRlOgogI2VuZGlmCiB9Owog
CitjbGFzcyBGb250SGFuZGxlIHsKK3B1YmxpYzoKKyAgICBGb250SGFuZGxlKCkgPSBkZWZhdWx0
OworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRIYW5kbGUoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBmb250
RmFjZURhdGEsIEZvbnQ6Ok9yaWdpbiwgZmxvYXQgZm9udFNpemUsIGJvb2wgc3ludGhldGljQm9s
ZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMpOworCisgICAgUmVmUHRyPEZvbnQ+IGZvbnQ7Cit9Owor
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKIGJvb2wgZm9udEZhbWlseVNob3VsZE5vdEJlVXNl
ZEZvckFyYWJpYyhDRlN0cmluZ1JlZik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdEl0ZW1zLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlz
dEl0ZW1zLmNwcAppbmRleCAzMTJmNjgzMzA1MzkwZTkwZTdhMDcxYTQ2YjJmY2RmNjI4NGRiYzM1
Li45MWFiM2JmN2Q4N2IyNDdhYjYxOGQ5ODNkYjc1NGJjMmIyMTQwZTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxp
c3RzL0Rpc3BsYXlMaXN0SXRlbXMuY3BwCkBAIC01MTIsNiArNTEyLDE4IEBAIHN0YXRpYyBUZXh0
U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBDbGlwUGF0aCYgaXRlbSkK
ICAgICByZXR1cm4gdHM7CiB9CiAKK0RyYXdHbHlwaHM6OkRyYXdHbHlwaHMoY29uc3QgRm9udCYg
Zm9udCwgVmVjdG9yPEdseXBoQnVmZmVyR2x5cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlw
aEJ1ZmZlckFkdmFuY2UsIDEyOD4mJiBhZHZhbmNlcywgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tM
b2NhdGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUg
c21vb3RoaW5nTW9kZSkKKyAgICA6IERyYXdpbmdJdGVtKEl0ZW1UeXBlOjpEcmF3R2x5cGhzKQor
ICAgICwgbV9mb250KGNvbnN0X2Nhc3Q8Rm9udCY+KGZvbnQpKQorICAgICwgbV9nbHlwaHMoV1RG
TW92ZShnbHlwaHMpKQorICAgICwgbV9hZHZhbmNlcyhXVEZNb3ZlKGFkdmFuY2VzKSkKKyAgICAs
IG1fYmxvY2tMb2NhdGlvbihibG9ja0xvY2F0aW9uKQorICAgICwgbV9sb2NhbEFuY2hvcihsb2Nh
bEFuY2hvcikKKyAgICAsIG1fc21vb3RoaW5nTW9kZShzbW9vdGhpbmdNb2RlKQoreworICAgIGNv
bXB1dGVCb3VuZHMoKTsKK30KKwogRHJhd0dseXBoczo6RHJhd0dseXBocyhjb25zdCBGb250JiBm
b250LCBjb25zdCBHbHlwaEJ1ZmZlckdseXBoKiBnbHlwaHMsIGNvbnN0IEdseXBoQnVmZmVyQWR2
YW5jZSogYWR2YW5jZXMsIHVuc2lnbmVkIGNvdW50LCBjb25zdCBGbG9hdFBvaW50JiBibG9ja0xv
Y2F0aW9uLCBjb25zdCBGbG9hdFNpemUmIGxvY2FsQW5jaG9yLCBGb250U21vb3RoaW5nTW9kZSBz
bW9vdGhpbmdNb2RlKQogICAgIDogRHJhd2luZ0l0ZW0oSXRlbVR5cGU6OkRyYXdHbHlwaHMpCiAg
ICAgLCBtX2ZvbnQoY29uc3RfY2FzdDxGb250Jj4oZm9udCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJdGVtcy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlM
aXN0SXRlbXMuaAppbmRleCAyYmIxMDg2YmZkOTcyYzU2OGEyMTNmMWVmMTU5NjM3ZDgwZGUwNzY3
Li45N2ZkMGEwMGE0ZDRiYzZlNzYxMjcyZDk2ZWI3NDY2NzMwMmY4MGE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlzcGxheUxpc3RJ
dGVtcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0
cy9EaXNwbGF5TGlzdEl0ZW1zLmgKQEAgLTEwNTcsNiArMTA1NywxMSBAQCBwdWJsaWM6CiAgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdHbHlwaHMoZm9udCwgZ2x5cGhzLCBhZHZhbmNl
cywgY291bnQsIGJsb2NrTG9jYXRpb24sIGxvY2FsQW5jaG9yLCBzbW9vdGhpbmdNb2RlKSk7CiAg
ICAgfQogCisgICAgc3RhdGljIFJlZjxEcmF3R2x5cGhzPiBjcmVhdGUoY29uc3QgRm9udCYgZm9u
dCwgVmVjdG9yPEdseXBoQnVmZmVyR2x5cGgsIDEyOD4mJiBnbHlwaHMsIFZlY3RvcjxHbHlwaEJ1
ZmZlckFkdmFuY2UsIDEyOD4mJiBhZHZhbmNlcywgY29uc3QgRmxvYXRQb2ludCYgYmxvY2tMb2Nh
dGlvbiwgY29uc3QgRmxvYXRTaXplJiBsb2NhbEFuY2hvciwgRm9udFNtb290aGluZ01vZGUgc21v
b3RoaW5nTW9kZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERyYXdHbHlw
aHMoZm9udCwgV1RGTW92ZShnbHlwaHMpLCBXVEZNb3ZlKGFkdmFuY2VzKSwgYmxvY2tMb2NhdGlv
biwgbG9jYWxBbmNob3IsIHNtb290aGluZ01vZGUpKTsKKyAgICB9CisKICAgICBXRUJDT1JFX0VY
UE9SVCB2aXJ0dWFsIH5EcmF3R2x5cGhzKCk7CiAKICAgICBjb25zdCBGbG9hdFBvaW50JiBibG9j
a0xvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0xvY2F0aW9uOyB9CkBAIC0xMDcyLDcg
KzEwNzcsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIE9w
dGlvbmFsPFJlZjxEcmF3R2x5cGhzPj4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKLSAg
ICBXRUJDT1JFX0VYUE9SVCBEcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBHbHlwaEJ1ZmZl
ckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291bnQsIGNvbnN0
IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgbG9jYWxBbmNob3Is
IEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICBEcmF3R2x5cGhzKGNvbnN0IEZvbnQmLCBjb25zdCBH
bHlwaEJ1ZmZlckdseXBoKiwgY29uc3QgR2x5cGhCdWZmZXJBZHZhbmNlKiwgdW5zaWduZWQgY291
bnQsIGNvbnN0IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRpb24sIGNvbnN0IEZsb2F0U2l6ZSYgbG9j
YWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBEcmF3R2x5
cGhzKGNvbnN0IEZvbnQmLCBWZWN0b3I8R2x5cGhCdWZmZXJHbHlwaCwgMTI4PiYmLCBWZWN0b3I8
R2x5cGhCdWZmZXJBZHZhbmNlLCAxMjg+JiYsIGNvbnN0IEZsb2F0UG9pbnQmIGJsb2NrTG9jYXRp
b24sIGNvbnN0IEZsb2F0U2l6ZSYgbG9jYWxBbmNob3IsIEZvbnRTbW9vdGhpbmdNb2RlKTsKIAog
ICAgIHZvaWQgY29tcHV0ZUJvdW5kcygpOwogCkBAIC0xMDk0LDcgKzExMDAsOSBAQCBwcml2YXRl
OgogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgRHJhd0dseXBoczo6ZW5jb2RlKEVuY29k
ZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEFkZCBmb250IGRhdGEgdG8gdGhl
IGVuY29kZXIuCisgICAgRm9udEhhbmRsZSBoYW5kbGU7CisgICAgaGFuZGxlLmZvbnQgPSBtX2Zv
bnQucHRyKCk7CisgICAgZW5jb2RlciA8PCBoYW5kbGU7CiAgICAgZW5jb2RlciA8PCBtX2dseXBo
czsKICAgICBlbmNvZGVyIDw8IG1fYWR2YW5jZXM7CiAgICAgZW5jb2RlciA8PCBtX2Jsb2NrTG9j
YXRpb247CkBAIC0xMTA1LDYgKzExMTMsMTEgQEAgdm9pZCBEcmF3R2x5cGhzOjplbmNvZGUoRW5j
b2RlciYgZW5jb2RlcikgY29uc3QKIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CiBPcHRpb25hbDxS
ZWY8RHJhd0dseXBocz4+IERyYXdHbHlwaHM6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQogewor
ICAgIE9wdGlvbmFsPEZvbnRIYW5kbGU+IGhhbmRsZTsKKyAgICBkZWNvZGVyID4+IGhhbmRsZTsK
KyAgICBpZiAoIWhhbmRsZSB8fCAhaGFuZGxlLT5mb250KQorICAgICAgICByZXR1cm4gV1RGOjpu
dWxsb3B0OworCiAgICAgT3B0aW9uYWw8VmVjdG9yPEdseXBoQnVmZmVyR2x5cGgsIDEyOD4+IGds
eXBoczsKICAgICBkZWNvZGVyID4+IGdseXBoczsKICAgICBpZiAoIWdseXBocykKQEAgLTExMzMs
OCArMTE0Niw3IEBAIE9wdGlvbmFsPFJlZjxEcmF3R2x5cGhzPj4gRHJhd0dseXBoczo6ZGVjb2Rl
KERlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFzbW9vdGhpbmdNb2RlKQogICAgICAgICByZXR1
cm4gV1RGOjpudWxsb3B0OwogCi0gICAgLy8gRklYTUU6IENyZWF0ZSBhbmQgcmV0dXJuIGEgRHJh
d0dseXBocyBvbmNlIHdlJ3JlIGFibGUgdG8gZGVjb2RlIGZvbnQgZGF0YS4KLSAgICByZXR1cm4g
V1RGOjpudWxsb3B0OworICAgIHJldHVybiBEcmF3R2x5cGhzOjpjcmVhdGUoaGFuZGxlLT5mb250
LnJlbGVhc2VOb25OdWxsKCksIFdURk1vdmUoKmdseXBocyksIFdURk1vdmUoKmFkdmFuY2VzKSwg
KmJsb2NrTG9jYXRpb24sICpsb2NhbEFuY2hvciwgKnNtb290aGluZ01vZGUpOwogfQogCiBjbGFz
cyBEcmF3SW1hZ2UgOiBwdWJsaWMgRHJhd2luZ0l0ZW0gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvQ29jb2EvV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQppbmRleCAz
MmJmODBjZGEzM2ExNzJhY2JhNzk5ZGMxOGM3ZGM4NzI1NmRlM2ExLi5lZGU3YmIyYTI3YmJlOGNj
OGZlZTIwNzJjYWRmYjk2MjZlYTE1MzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9Db2NvYS9XZWJDb3JlQXJndW1lbnRDb2RlcnNDb2NvYS5tbQpAQCAtMjgsNiArMjgs
NyBAQAogCiAjaW1wb3J0ICJBcmd1bWVudENvZGVyc0NvY29hLmgiCiAjaW1wb3J0IDxXZWJDb3Jl
L0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KKyNpbXBvcnQgPFdlYkNvcmUvRm9udC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9Gb250QXR0cmlidXRlcy5oPgogCiAjaWYgRU5BQkxFKEFQUExFX1BBWSkKQEAg
LTQ3Miw0ICs0NzMsMzYgQEAgT3B0aW9uYWw8Rm9udEF0dHJpYnV0ZXM+IEFyZ3VtZW50Q29kZXI8
V2ViQ29yZTo6Rm9udEF0dHJpYnV0ZXM+OjpkZWNvZGVQbGF0Zm9ybUQKICAgICByZXR1cm4gYXR0
cmlidXRlczsKIH0KIAorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisjZGVmaW5lIENvY29hRm9u
dCBVSUZvbnQKKyNlbHNlCisjZGVmaW5lIENvY29hRm9udCBOU0ZvbnQKKyNlbmRpZgorCit2b2lk
IEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmVuY29kZVBsYXRmb3JtRGF0YShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBGb250SGFuZGxlJiBoYW5kbGUpCit7CisgICAgYXV0byBjdEZvbnQgPSBo
YW5kbGUuZm9udCAmJiAhaGFuZGxlLmZvbnQtPmZvbnRGYWNlRGF0YSgpID8gaGFuZGxlLmZvbnQt
PmdldENURm9udCgpIDogbmlsOworICAgIGVuY29kZXIgPDwgISFjdEZvbnQ7CisgICAgaWYgKGN0
Rm9udCkKKyAgICAgICAgZW5jb2RlciA8PCAoX19icmlkZ2UgQ29jb2FGb250ICopY3RGb250Owor
fQorCitib29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3JtRGF0YShE
ZWNvZGVyJiBkZWNvZGVyLCBGb250SGFuZGxlJiBoYW5kbGUpCit7CisgICAgYm9vbCBoYXNQbGF0
Zm9ybUZvbnQ7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShoYXNQbGF0Zm9ybUZvbnQpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc1BsYXRmb3JtRm9udCkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisKKyAgICBSZXRhaW5QdHI8Q29jb2FGb250PiBmb250OworICAgIGlmICgh
SVBDOjpkZWNvZGUoZGVjb2RlciwgZm9udCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IGF1dG8gcHJldmlvdXNWYWx1ZSA9IGhhbmRsZS5mb250OworICAgIGhhbmRsZS5mb250ID0gRm9u
dDo6Y3JlYXRlKHsgKF9fYnJpZGdlIENURm9udFJlZilmb250LmdldCgpLCBzdGF0aWNfY2FzdDxm
bG9hdD4oW2ZvbnQgcG9pbnRTaXplXSkgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5jcHAKaW5kZXggOWFhNWFlNmM5ZDdjNDgxOTM3Mzg2YjMxMTY5OTY5OWNkNzEwYTAyOS4u
OGUwOGEzM2RkZDFlZTQ0YjkyMzY3YmNkZDlkMTIxZmZjMDZhZDU1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC00OCw2ICs0OCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmls
dGVyT3BlcmF0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXJPcGVyYXRpb25zLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9Gb250Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250QXR0cmlidXRl
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9HcmFwaGljc0xheWVyLmg+CkBAIC0xMTI1LDYgKzExMjYsNzEgQEAgYm9vbCBBcmd1bWVu
dENvZGVyPE5hdGl2ZUltYWdlSGFuZGxlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIE5hdGl2
ZUltYWdlSGFuZGwKICAgICByZXR1cm4gZGVjb2RlT3B0aW9uYWxOYXRpdmVJbWFnZShkZWNvZGVy
LCBpbWFnZUhhbmRsZS5pbWFnZSk7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxGb250SGFuZGxl
Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IEZvbnRIYW5kbGUmIGhhbmRsZSkKK3sK
KyAgICBlbmNvZGVyIDw8ICEhaGFuZGxlLmZvbnQ7CisgICAgaWYgKCFoYW5kbGUuZm9udCkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgYXV0byogZm9udEZhY2VEYXRhID0gaGFuZGxlLmZvbnQtPmZv
bnRGYWNlRGF0YSgpOworICAgIGVuY29kZXIgPDwgISFmb250RmFjZURhdGE7CisgICAgaWYgKGZv
bnRGYWNlRGF0YSkgeworICAgICAgICBlbmNvZGVTaGFyZWRCdWZmZXIoZW5jb2RlciwgZm9udEZh
Y2VEYXRhKTsKKyAgICAgICAgYXV0byYgZGF0YSA9IGhhbmRsZS5mb250LT5wbGF0Zm9ybURhdGEo
KTsKKyAgICAgICAgZW5jb2RlciA8PCBkYXRhLnNpemUoKTsKKyAgICAgICAgZW5jb2RlciA8PCBk
YXRhLnN5bnRoZXRpY0JvbGQoKTsKKyAgICAgICAgZW5jb2RlciA8PCBkYXRhLnN5bnRoZXRpY09i
bGlxdWUoKTsKKyAgICB9CisKKyAgICBlbmNvZGVQbGF0Zm9ybURhdGEoZW5jb2RlciwgaGFuZGxl
KTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNvZGUoRGVjb2RlciYg
ZGVjb2RlciwgRm9udEhhbmRsZSYgaGFuZGxlKQoreworICAgIE9wdGlvbmFsPGJvb2w+IGhhc0Zv
bnQ7CisgICAgZGVjb2RlciA+PiBoYXNGb250OworICAgIGlmICghaGFzRm9udC5oYXNWYWx1ZSgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWhhc0ZvbnQudmFsdWUoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBPcHRpb25hbDxib29sPiBoYXNGb250RmFjZURhdGE7
CisgICAgZGVjb2RlciA+PiBoYXNGb250RmFjZURhdGE7CisgICAgaWYgKCFoYXNGb250RmFjZURh
dGEuaGFzVmFsdWUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGhhc0ZvbnRG
YWNlRGF0YS52YWx1ZSgpKSB7CisgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGZvbnRGYWNl
RGF0YTsKKyAgICAgICAgaWYgKCFkZWNvZGVTaGFyZWRCdWZmZXIoZGVjb2RlciwgZm9udEZhY2VE
YXRhKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIWZvbnRGYWNl
RGF0YSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBPcHRpb25hbDxmbG9h
dD4gZm9udFNpemU7CisgICAgICAgIGRlY29kZXIgPj4gZm9udFNpemU7CisgICAgICAgIGlmICgh
Zm9udFNpemUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgT3B0aW9uYWw8
Ym9vbD4gc3ludGhldGljQm9sZDsKKyAgICAgICAgZGVjb2RlciA+PiBzeW50aGV0aWNCb2xkOwor
ICAgICAgICBpZiAoIXN5bnRoZXRpY0JvbGQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgT3B0aW9uYWw8Ym9vbD4gc3ludGhldGljSXRhbGljOworICAgICAgICBkZWNvZGVy
ID4+IHN5bnRoZXRpY0l0YWxpYzsKKyAgICAgICAgaWYgKCFzeW50aGV0aWNJdGFsaWMpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgRm9udERlc2NyaXB0aW9uIGRlc2NyaXB0
aW9uOworICAgICAgICBkZXNjcmlwdGlvbi5zZXRDb21wdXRlZFNpemUoKmZvbnRTaXplKTsKKyAg
ICAgICAgaGFuZGxlID0geyBmb250RmFjZURhdGEucmVsZWFzZU5vbk51bGwoKSwgRm9udDo6T3Jp
Z2luOjpSZW1vdGUsICpmb250U2l6ZSwgKnN5bnRoZXRpY0JvbGQsICpzeW50aGV0aWNJdGFsaWMg
fTsKKyAgICB9CisKKyAgICByZXR1cm4gZGVjb2RlUGxhdGZvcm1EYXRhKGRlY29kZXIsIGhhbmRs
ZSk7Cit9CisKIHZvaWQgQXJndW1lbnRDb2RlcjxDdXJzb3I+OjplbmNvZGUoRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgQ3Vyc29yJiBjdXJzb3IpCiB7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKGN1
cnNvci50eXBlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaAppbmRleCAxZGUzMDQyYzA3OTE2NWExZDI1YTZmNGI1OGQ2NjA5YTY1NjYwMmY4Li4zNDgy
ZDA1MGU0YmVmYzEwMmUzMTZkMDE5OGIwMDRlZjYwODQ1MWJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtODAsNiArODAsNyBAQCBjbGFzcyBG
bG9hdFJlY3Q7CiBjbGFzcyBGbG9hdFJvdW5kZWRSZWN0OwogY2xhc3MgRmxvYXRTaXplOwogY2xh
c3MgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHM7CitjbGFzcyBGb250SGFuZGxlOwog
Y2xhc3MgSFRUUEhlYWRlck1hcDsKIGNsYXNzIEltYWdlSGFuZGxlOwogY2xhc3MgSW50UG9pbnQ7
CkBAIC0zNzksNiArMzgwLDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2Vi
Q29yZTo6Q3Vyc29yPiB7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3Jl
OjpDdXJzb3ImKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6Rm9udEhhbmRsZT4geworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6Rm9udEhhbmRsZSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwg
V2ViQ29yZTo6Rm9udEhhbmRsZSYpOworICAgIHN0YXRpYyB2b2lkIGVuY29kZVBsYXRmb3JtRGF0
YShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6Rm9udEhhbmRsZSYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgV2ViQ29yZTo6Rm9udEhhbmRsZSYpOworfTsK
KwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJbWFnZUhhbmRsZT4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6SW1hZ2VI
YW5kbGUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkltYWdl
SGFuZGxlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVB
cmd1bWVudENvZGVyc0N1cmwuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvY3VybC9XZWJDb3Jl
QXJndW1lbnRDb2RlcnNDdXJsLmNwcAppbmRleCBlYzM0MDhkNDgwMDY5MmE5YWRkNWY5Y2Q3NGJm
Zjc5N2UxNGI4MTliLi44NTJkZjMxZGI5OGNjODZiNmIzMzkxMzdhN2MxN2E4YzM5YTkwMzFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9jdXJsL1dlYkNvcmVBcmd1bWVudENvZGVy
c0N1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2N1cmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzQ3VybC5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRp
ZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ3VybFByb3h5U2V0dGluZ3MuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0RpY3Rpb25hcnlQb3B1cEluZm8uaD4KKyNpbmNsdWRlIDxXZWJDb3Jl
L0ZvbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9Qcm90ZWN0aW9uU3BhY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlRXJy
b3IuaD4KQEAgLTIzNCw0ICsyMzUsMTUgQEAgYm9vbCBBcmd1bWVudENvZGVyPERpY3Rpb25hcnlQ
b3B1cEluZm8+OjpkZWNvZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIERpY3Rpb25hcnkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxGb250SGFuZGxlPjo6ZW5jb2Rl
UGxhdGZvcm1EYXRhKEVuY29kZXImLCBjb25zdCBGb250SGFuZGxlJikKK3sKKyAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjpkZWNv
ZGVQbGF0Zm9ybURhdGEoRGVjb2RlciYsIEZvbnRIYW5kbGUmKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9TaGFyZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKaW5kZXgg
MWI3ZWY4OGFjM2QyNzlmZDk1M2U3ODMxNWM4YjlhYTE0NTE0ODJhZS4uZTY3ZjBlZDYyZmRhODJk
NTRlYzllMjM4MzRkNGM4NzEwNjgyMzVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvc291cC9XZWJDb3JlQXJndW1lbnRDb2RlcnNTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCkBAIC0zMSw2ICszMSw3
IEBACiAKICNpbmNsdWRlIDxXZWJDb3JlL0NlcnRpZmljYXRlSW5mby5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvRGljdGlvbmFyeVBvcHVwSW5mby5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRm9udC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRm9udEF0dHJpYnV0ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jl
c291cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgpAQCAt
MjUxLDUgKzI1MiwxNiBAQCBib29sIEFyZ3VtZW50Q29kZXI8RGljdGlvbmFyeVBvcHVwSW5mbz46
OmRlY29kZVBsYXRmb3JtRGF0YShEZWNvZGVyJiwgRGljdGlvbmFyeQogICAgIHJldHVybiBmYWxz
ZTsKIH0KIAordm9pZCBBcmd1bWVudENvZGVyPEZvbnRIYW5kbGU+OjplbmNvZGVQbGF0Zm9ybURh
dGEoRW5jb2RlciYsIGNvbnN0IEZvbnRIYW5kbGUmKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8Rm9udEhhbmRsZT46OmRlY29kZVBsYXRmb3Jt
RGF0YShEZWNvZGVyJiwgRm9udEhhbmRsZSYpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>