<?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>148929</bug_id>
          
          <creation_ts>2015-09-07 07:07:47 -0700</creation_ts>
          <short_desc>Remove unneeded offset and length arguments from glyph page filling functions</short_desc>
          <delta_ts>2015-09-07 10:43:31 -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>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>mmaxfield</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1124115</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-07 07:07:47 -0700</bug_when>
    <thetext>They are always passed 0/GlyphPage::size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124118</commentid>
    <comment_count>1</comment_count>
      <attachid>260735</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-07 07:14:33 -0700</bug_when>
    <thetext>Created attachment 260735
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124119</commentid>
    <comment_count>2</comment_count>
      <attachid>260736</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-07 07:18:32 -0700</bug_when>
    <thetext>Created attachment 260736
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124122</commentid>
    <comment_count>3</comment_count>
      <attachid>260738</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-07 07:40:35 -0700</bug_when>
    <thetext>Created attachment 260738
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124132</commentid>
    <comment_count>4</comment_count>
      <attachid>260738</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-09-07 09:08:09 -0700</bug_when>
    <thetext>Comment on attachment 260738
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1124137</commentid>
    <comment_count>5</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2015-09-07 10:43:31 -0700</bug_when>
    <thetext>https://trac.webkit.org/r189465</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260735</attachid>
            <date>2015-09-07 07:14:33 -0700</date>
            <delta_ts>2015-09-07 07:18:32 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-glyphpage-fill-size.patch</filename>
            <type>text/plain</type>
            <size>17422</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA5LTA3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdW5uZWVkZWQgb2Zm
c2V0IGFuZCBsZW5ndGggYXJndW1lbnRzIGZyb20gZ2x5cGggcGFnZSBmaWxsaW5nIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhleSBh
cmUgYWx3YXlzIHBhc3NlZCAwL0dseXBoUGFnZTo6c2l6ZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6fkZvbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZmlsbEdseXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVB
bmRGaWxsR2x5cGhQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHbHlwaFBhZ2U6OnNldEdseXBoRGF0YUZvckluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR2x5cGhQYWdlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoUGFn
ZTo6bWF5VXNlTWl4ZWRGb250c1doZW5GaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
UGFnZTo6ZmlsbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRy
ZWVOb2RlQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhQYWdlOjpmaWxsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHN2Zy9T
VkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdH
bHlwaFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbFNWR0ds
eXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbEJNUEdseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyk6CisgICAg
ICAgICogc3ZnL1NWR0ZvbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6
dmVydGljYWxBZHZhbmNlWSk6CisKIDIwMTUtMDktMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBkaXNwYXRjaEV2ZW50KCkgc2hvdWxkIHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIGlmIHRoZSBldmVudCdzIGluaXRpYWxpemVkIGZsYWcgaXMgbm90IHNldApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDksMTYgKzE0OSwxNiBAQCBGb250Ojp+Rm9udCgpCiAgICAgcmVt
b3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKTsKIH0KIAotc3RhdGljIGJvb2wgZmlsbEdseXBo
UGFnZShHbHlwaFBhZ2UmIHBhZ2VUb0ZpbGwsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZv
bnQpCitzdGF0aWMgYm9vbCBmaWxsR2x5cGhQYWdlKEdseXBoUGFnZSYgcGFnZVRvRmlsbCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KiBmb250KQogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKGF1dG8qIHN2Z0RhdGEgPSBmb250LT5zdmdE
YXRhKCkpCi0gICAgICAgIHJldHVybiBzdmdEYXRhLT5maWxsU1ZHR2x5cGhQYWdlKCZwYWdlVG9G
aWxsLCBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGZvbnQpOworICAgICAg
ICByZXR1cm4gc3ZnRGF0YS0+ZmlsbFNWR0dseXBoUGFnZSgmcGFnZVRvRmlsbCwgYnVmZmVyLCBi
dWZmZXJMZW5ndGgsIGZvbnQpOwogI2VuZGlmCi0gICAgYm9vbCBoYXNHbHlwaHMgPSBwYWdlVG9G
aWxsLmZpbGwob2Zmc2V0LCBsZW5ndGgsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKKyAg
ICBib29sIGhhc0dseXBocyA9IHBhZ2VUb0ZpbGwuZmlsbChidWZmZXIsIGJ1ZmZlckxlbmd0aCwg
Zm9udCk7CiAjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQogICAgIGlmIChoYXNHbHlwaHMg
JiYgZm9udC0+dmVydGljYWxEYXRhKCkpCi0gICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5z
dWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsLCBvZmZzZXQsIGxl
bmd0aCk7CisgICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5zdWJzdGl0dXRlV2l0aFZlcnRp
Y2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsKTsKICNlbmRpZgogICAgIHJldHVybiBoYXNHbHlw
aHM7CiB9CkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIFJlZlB0cjxHbHlwaFBhZ2U+IGNyZWF0
ZUFuZEZpbGxHbAogICAgIGVsc2UKICAgICAgICAgZ2x5cGhQYWdlID0gR2x5cGhQYWdlOjpjcmVh
dGVGb3JTaW5nbGVGb250KGZvbnQpOwogCi0gICAgYm9vbCBoYXZlR2x5cGhzID0gZmlsbEdseXBo
UGFnZSgqZ2x5cGhQYWdlLCAwLCBHbHlwaFBhZ2U6OnNpemUsIGJ1ZmZlciwgYnVmZmVyTGVuZ3Ro
LCBmb250KTsKKyAgICBib29sIGhhdmVHbHlwaHMgPSBmaWxsR2x5cGhQYWdlKCpnbHlwaFBhZ2Us
IGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKICAgICBpZiAoIWhhdmVHbHlwaHMpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCShyZXZpc2lvbiAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplRm9udChGb250KiwgZmxvYXQgZm9udFNp
emUpID0gMDsKICAgICAgICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvclNWR0dseXBoKEdseXBoLCBm
bG9hdCBmb250U2l6ZSkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0ds
eXBoUGFnZShHbHlwaFBhZ2UqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KikgY29uc3QgPSAw
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0dseXBoUGFnZShHbHlwaFBhZ2UqLCBVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKSBjb25zdCA9IDA7
CiAgICAgfTsKIAogICAgIC8vIFVzZWQgdG8gY3JlYXRlIHBsYXRmb3JtIGZvbnRzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IC8vIEltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9ybS4KLSAgICBib29sIGZpbGwodW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBjaGFyYWN0ZXJCdWZmZXIsIHVuc2lnbmVk
IGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCopOworICAgIGJvb2wgZmlsbChVQ2hhciogY2hhcmFj
dGVyQnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKTsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBzdGF0aWMgYm9vbCBtYXlVc2VNaXhlZEZvbnRzV2hlbkZpbGxpbmco
Y29uc3QgVUNoYXIqIGNoYXJhY3RlckJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25z
dCBGb250Kik7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZU1hYy5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VNYWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgR2x5cGhQYWdlOjptYXlVc2VNaXhlZEZv
bnRzV2hlbkZpbGwKICNlbmRpZgogfQogCi1ib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVu
Z3RoLCBjb25zdCBGb250KiBmb250RGF0YSkKK2Jvb2wgR2x5cGhQYWdlOjpmaWxsKFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udERhdGEpCiB7CiAg
ICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAKQEAgLTgyLDExICs4MiwxMSBAQCBib29sIEds
eXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuCiAgICAgICAgIC8vIHdlIHBhc3MgaW4g
bXVzdCBiZSA1MTIuIElmIHdlIGdldCBiYWNrIG1vcmUgdGhhbiAyNTYgZ2x5cGhzIHRob3VnaCB3
ZSdsbCBpZ25vcmUgYWxsIHRoZSBvbmVzIGFmdGVyIDI1NiwKICAgICAgICAgLy8gdGhpcyBzaG91
bGQgbm90IGhhcHBlbiBhcyB0aGUgb25seSB0aW1lIHdlIHBhc3MgaW4gNTEyIGNoYXJhY3RlcnMg
aXMgd2hlbiB0aGV5IGFyZSBzdXJyb2dhdGVzLgogICAgICAgICBDR0ZvbnRHZXRHbHlwaHNGb3JV
bmljaGFycyhmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwgZ2x5cGhz
LmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFBh
Z2U6OnNpemU7ICsraSkgewogICAgICAgICAgICAgaWYgKCFnbHlwaHNbaV0pCi0gICAgICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAgICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHNb
aV0sIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChpLCBn
bHlwaHNbaV0sIGZvbnREYXRhKTsKICAgICAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTksMTMgKzk5LDEzIEBAIGJvb2wgR2x5cGhQ
YWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW4KICAgICAgICAgICAgIENURm9udEdldFZlcnRp
Y2FsR2x5cGhzRm9yQ2hhcmFjdGVycyhmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCks
IGJ1ZmZlciwgZ2x5cGhzLmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKICAgICAgICAgLy8gV2hlbiBi
dWZmZXIgY29uc2lzdHMgb2Ygc3Vycm9nYXRlIHBhaXJzLCBDVEZvbnRHZXRWZXJ0aWNhbEdseXBo
c0ZvckNoYXJhY3RlcnMgYW5kIENURm9udEdldEdseXBoc0ZvckNoYXJhY3RlcnMKICAgICAgICAg
Ly8gcGxhY2UgdGhlIGdseXBocyBhdCBpbmRpY2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0
IGNoYXJhY3RlciBvZiBlYWNoIHBhaXIuCi0gICAgICAgIEFTU0VSVCghKGJ1ZmZlckxlbmd0aCAl
IGxlbmd0aCkgJiYgKGJ1ZmZlckxlbmd0aCAvIGxlbmd0aCA9PSAxIHx8IGJ1ZmZlckxlbmd0aCAv
IGxlbmd0aCA9PSAyKSk7Ci0gICAgICAgIHVuc2lnbmVkIGdseXBoU3RlcCA9IGJ1ZmZlckxlbmd0
aCAvIGxlbmd0aDsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgIEFTU0VSVChidWZmZXJMZW5ndGggPT0gR2x5cGhQYWdlOjpzaXplIHx8IGJ1
ZmZlckxlbmd0aCA9PSAyICogR2x5cGhQYWdlOjpzaXplKTsKKyAgICAgICAgdW5zaWduZWQgZ2x5
cGhTdGVwID0gYnVmZmVyTGVuZ3RoIC8gR2x5cGhQYWdlOjpzaXplOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhQYWdlOjpzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlm
ICghZ2x5cGhzW2kgKiBnbHlwaFN0ZXBdKQotICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZv
ckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZv
ckluZGV4KGksIDAsIDApOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0
R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2kgKiBnbHlwaFN0ZXBdLCBmb250
RGF0YSk7CisgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgZ2x5cGhzW2kg
KiBnbHlwaFN0ZXBdLCBmb250RGF0YSk7CiAgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZl
cnRpY2FsRGF0YS5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTM1LDEzICs1MzUsMTMgQEAgdm9pZCBPcGVuVHlwZVZlcnRpY2FsRGF0YTo6Z2V0
VmVydGljYWxUcgogICAgIH0KIH0KIAotdm9pZCBPcGVuVHlwZVZlcnRpY2FsRGF0YTo6c3Vic3Rp
dHV0ZVdpdGhWZXJ0aWNhbEdseXBocyhjb25zdCBGb250KiBmb250LCBHbHlwaFBhZ2UqIGdseXBo
UGFnZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0Cit2b2lkIE9wZW5U
eXBlVmVydGljYWxEYXRhOjpzdWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGNvbnN0IEZvbnQq
IGZvbnQsIEdseXBoUGFnZSogZ2x5cGhQYWdlKSBjb25zdAogewogICAgIGNvbnN0IEhhc2hNYXA8
R2x5cGgsIEdseXBoPiYgbWFwID0gbV92ZXJ0aWNhbEdseXBoTWFwOwogICAgIGlmIChtYXAuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gb2Zm
c2V0LCBlbmQgPSBvZmZzZXQgKyBsZW5ndGg7IGluZGV4IDwgZW5kOyArK2luZGV4KSB7CisgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IG9mZnNldCwgZW5kID0gR2x5cGhQYWdlOjpzaXplOyBpbmRl
eCA8IGVuZDsgKytpbmRleCkgewogICAgICAgICBHbHlwaCBnbHlwaCA9IGdseXBoUGFnZS0+Z2x5
cGhBdChpbmRleCk7CiAgICAgICAgIGlmIChnbHlwaCkgewogICAgICAgICAgICAgQVNTRVJUKGds
eXBoUGFnZS0+Z2x5cGhEYXRhRm9ySW5kZXgoaW5kZXgpLmZvbnQgPT0gZm9udCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2Fs
RGF0YS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29w
ZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
VmVydGljYWxNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gIW1fYWR2YW5jZUhlaWdodHMuaXNFbXB0
eSgpOyB9CiAgICAgZmxvYXQgYWR2YW5jZUhlaWdodChjb25zdCBGb250KiwgR2x5cGgpIGNvbnN0
OwogICAgIHZvaWQgZ2V0VmVydGljYWxUcmFuc2xhdGlvbnNGb3JHbHlwaHMoY29uc3QgRm9udCos
IGNvbnN0IEdseXBoKiwgc2l6ZV90LCBmbG9hdCogb3V0WFlBcnJheSkgY29uc3Q7Ci0gICAgdm9p
ZCBzdWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGNvbnN0IEZvbnQqLCBHbHlwaFBhZ2UqLCB1
bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CisgICAgdm9pZCBzdWJzdGl0
dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGNvbnN0IEZvbnQqLCBHbHlwaFBhZ2UqKSBjb25zdDsKIAog
cHJpdmF0ZToKICAgICBleHBsaWNpdCBPcGVuVHlwZVZlcnRpY2FsRGF0YShjb25zdCBGb250UGxh
dGZvcm1EYXRhJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R2x5cGhQYWdlVHJlZU5vZGVDR1dpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ0dXaW4uY3BwCShyZXZpc2lv
biAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQ
YWdlVHJlZU5vZGVDR1dpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDIyICszNCwyMiBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9m
ZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5n
dGgsIGNvbnN0IEZvbnQqIGZvbnREYXRhKQorYm9vbCBHbHlwaFBhZ2U6OmZpbGwoVUNoYXIqIGJ1
ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KiBmb250RGF0YSkKIHsKICAg
ICAvLyBidWZmZXJMZW5ndGggd2lsbCBiZSBncmVhdGVyIHRoYW4gdGhlIHJlcXVlc3RlZCBudW1i
ZXIgb2YgZ2x5cGhzIGlmIHRoZSBidWZmZXIgY29udGFpbnMgc3Vycm9nYXRlIHBhaXJzLgogICAg
IC8vIFdlIHdvbid0IHN1cHBvcnQgdGhpcyBmb3Igbm93LgotICAgIGlmIChidWZmZXJMZW5ndGgg
PiBsZW5ndGgpCisgICAgaWYgKGJ1ZmZlckxlbmd0aCA+IEdseXBoUGFnZTo6c2l6ZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAgICAgQ0dH
bHlwaCBsb2NhbEdseXBoQnVmZmVyW0dseXBoUGFnZTo6c2l6ZV07CiAgICAgd2tHZXRHbHlwaHMo
Zm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLmNnRm9udCgpLCBidWZmZXIsIGxvY2FsR2x5cGhCdWZm
ZXIsIGJ1ZmZlckxlbmd0aCk7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
aSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgaSsr
KSB7CiAgICAgICAgIEdseXBoIGdseXBoID0gbG9jYWxHbHlwaEJ1ZmZlcltpXTsKICAgICAgICAg
aWYgKCFnbHlwaCkKLSAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGks
IDAsIDApOworICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAg
ICAgIGVsc2UgewotICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwg
Z2x5cGgsIGZvbnREYXRhKTsKKyAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KGksIGds
eXBoLCBmb250RGF0YSk7CiAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKICAgICAgICAg
fQogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlw
aFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAJKHJldmlz
aW9uIDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlw
aFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDEx
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5zaWdu
ZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZl
ckxlbmd0aCwgY29uc3QgRm9udCogZm9udERhdGEpCitib29sIEdseXBoUGFnZTo6ZmlsbChVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnREYXRhKQog
ewogICAgIC8vIGJ1ZmZlckxlbmd0aCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcmVxdWVzdGVk
IG51bWJlciBvZiBnbHlwaHMgaWYgdGhlIGJ1ZmZlciBjb250YWlucyBzdXJyb2dhdGUgcGFpcnMu
CiAgICAgLy8gV2Ugd29uJ3Qgc3VwcG9ydCB0aGlzIGZvciBub3cuCi0gICAgaWYgKGJ1ZmZlckxl
bmd0aCA+IGxlbmd0aCkKKyAgICBpZiAoYnVmZmVyTGVuZ3RoID4gR2x5cGhQYWdlOjpzaXplKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGhhdmVHbHlwaHMgPSBmYWxzZTsKQEAg
LTUxLDEyICs1MSwxMiBAQCBib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVu
CiAgICAgRFdPUkQgcmVzdWx0ID0gR2V0R2x5cGhJbmRpY2VzKGRjLCBidWZmZXIsIGJ1ZmZlckxl
bmd0aCwgbG9jYWxHbHlwaEJ1ZmZlciwgR0dJX01BUktfTk9ORVhJU1RJTkdfR0xZUEhTKTsKICAg
ICBib29sIHN1Y2Nlc3MgPSByZXN1bHQgIT0gR0RJX0VSUk9SICYmIHN0YXRpY19jYXN0PHVuc2ln
bmVkPihyZXN1bHQpID09IGJ1ZmZlckxlbmd0aDsKICAgICBpZiAoc3VjY2VzcykgewotICAgICAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgaSsrKSB7CiAgICAgICAgICAgICBH
bHlwaCBnbHlwaCA9IGxvY2FsR2x5cGhCdWZmZXJbaV07CiAgICAgICAgICAgICBpZiAoZ2x5cGgg
PT0gMHhmZmZmKQotICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCAr
IGksIDAsIDApOworICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KGksIDAsIDAp
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5k
ZXgob2Zmc2V0ICsgaSwgZ2x5cGgsIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChpLCBnbHlwaCwgZm9udERhdGEpOwogICAgICAgICAgICAgICAgIGhhdmVH
bHlwaHMgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RGF0YS5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGb250RGF0YS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw3ICsyMDQsNyBAQCBib29s
IFNWR0ZvbnREYXRhOjphcHBseVNWR0dseXBoU2VsZWN0aW9uCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIFNWR0ZvbnREYXRhOjpmaWxsU1ZHR2x5cGhQYWdlKEdseXBoUGFnZSogcGFnZVRv
RmlsbCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIHVu
c2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udCkgY29uc3QKK2Jvb2wgU1ZHRm9u
dERhdGE6OmZpbGxTVkdHbHlwaFBhZ2UoR2x5cGhQYWdlKiBwYWdlVG9GaWxsLCBVQ2hhciogYnVm
ZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnQpIGNvbnN0CiB7CiAg
ICAgQVNTRVJUKGZvbnQtPmlzQ3VzdG9tRm9udCgpKTsKICAgICBBU1NFUlQoZm9udC0+aXNTVkdG
b250KCkpOwpAQCAtMjE1LDIyICsyMTUsMjIgQEAgYm9vbCBTVkdGb250RGF0YTo6ZmlsbFNWR0ds
eXBoUGFnZShHbHlwaAogICAgIFNWR0ZvbnRFbGVtZW50KiBmb250RWxlbWVudCA9IGZvbnRGYWNl
RWxlbWVudC0+YXNzb2NpYXRlZEZvbnRFbGVtZW50KCk7CiAgICAgQVNTRVJUKGZvbnRFbGVtZW50
KTsKIAotICAgIGlmIChidWZmZXJMZW5ndGggPT0gbGVuZ3RoKQotICAgICAgICByZXR1cm4gZmls
bEJNUEdseXBocyhmb250RWxlbWVudCwgcGFnZVRvRmlsbCwgb2Zmc2V0LCBsZW5ndGgsIGJ1ZmZl
ciwgZm9udCk7CisgICAgaWYgKGJ1ZmZlckxlbmd0aCA9PSBHbHlwaFBhZ2U6OnNpemUpCisgICAg
ICAgIHJldHVybiBmaWxsQk1QR2x5cGhzKGZvbnRFbGVtZW50LCBwYWdlVG9GaWxsLCBidWZmZXIs
IGZvbnQpOwogCi0gICAgQVNTRVJUKGJ1ZmZlckxlbmd0aCA9PSAyICogbGVuZ3RoKTsKLSAgICBy
ZXR1cm4gZmlsbE5vbkJNUEdseXBocyhmb250RWxlbWVudCwgcGFnZVRvRmlsbCwgb2Zmc2V0LCBs
ZW5ndGgsIGJ1ZmZlciwgZm9udCk7CisgICAgQVNTRVJUKGJ1ZmZlckxlbmd0aCA9PSAyICogR2x5
cGhQYWdlOjpzaXplKTsKKyAgICByZXR1cm4gZmlsbE5vbkJNUEdseXBocyhmb250RWxlbWVudCwg
cGFnZVRvRmlsbCwgYnVmZmVyLCBmb250KTsKIH0KIAotYm9vbCBTVkdGb250RGF0YTo6ZmlsbEJN
UEdseXBocyhTVkdGb250RWxlbWVudCogZm9udEVsZW1lbnQsIEdseXBoUGFnZSogcGFnZVRvRmls
bCwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIGNvbnN0
IEZvbnQqIGZvbnQpIGNvbnN0Citib29sIFNWR0ZvbnREYXRhOjpmaWxsQk1QR2x5cGhzKFNWR0Zv
bnRFbGVtZW50KiBmb250RWxlbWVudCwgR2x5cGhQYWdlKiBwYWdlVG9GaWxsLCBVQ2hhciogYnVm
ZmVyLCBjb25zdCBGb250KiBmb250KSBjb25zdAogewogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZh
bHNlOwogICAgIFZlY3RvcjxTVkdHbHlwaD4gZ2x5cGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlw
aFBhZ2U6OnNpemU7ICsraSkgewogICAgICAgICBTdHJpbmcgbG9va3VwU3RyaW5nKGJ1ZmZlciAr
IGksIDEpOwogICAgICAgICBmb250RWxlbWVudC0+Y29sbGVjdEdseXBoc0ZvclN0cmluZyhsb29r
dXBTdHJpbmcsIGdseXBocyk7CiAgICAgICAgIGlmIChnbHlwaHMuaXNFbXB0eSgpKSB7Ci0gICAg
ICAgICAgICBwYWdlVG9GaWxsLT5zZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAw
KTsKKyAgICAgICAgICAgIHBhZ2VUb0ZpbGwtPnNldEdseXBoRGF0YUZvckluZGV4KGksIDAsIDAp
OwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMjM5LDIzICsyMzksMjMg
QEAgYm9vbCBTVkdGb250RGF0YTo6ZmlsbEJNUEdseXBocyhTVkdGb250RQogICAgICAgICAvLyBj
YXJlIG9mIG1hdGNoaW5nIHRvIHRoZSBjb3JyZWN0IGdseXBoLCBpZiBtdWx0aXBsZSBvbmVzIGFy
ZSBhdmFpbGFibGUsIGFzIHRoYXQncwogICAgICAgICAvLyBvbmx5IHBvc3NpYmxlIHdpdGhpbiB0
aGUgY29udGV4dCBvZiBhIHN0cmluZyAoZWcuIGFyYWJpYyBmb3JtIG1hdGNoaW5nKS4KICAgICAg
ICAgaGF2ZUdseXBocyA9IHRydWU7Ci0gICAgICAgIHBhZ2VUb0ZpbGwtPnNldEdseXBoRGF0YUZv
ckluZGV4KG9mZnNldCArIGksIGdseXBocy5maXJzdCgpLnRhYmxlRW50cnksIGZvbnQpOworICAg
ICAgICBwYWdlVG9GaWxsLT5zZXRHbHlwaERhdGFGb3JJbmRleChpLCBnbHlwaHMuZmlyc3QoKS50
YWJsZUVudHJ5LCBmb250KTsKICAgICAgICAgZ2x5cGhzLmNsZWFyKCk7CiAgICAgfQogCiAgICAg
cmV0dXJuIGhhdmVHbHlwaHM7CiB9CiAKLWJvb2wgU1ZHRm9udERhdGE6OmZpbGxOb25CTVBHbHlw
aHMoU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVtZW50LCBHbHlwaFBhZ2UqIHBhZ2VUb0ZpbGwsIHVu
c2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciogYnVmZmVyLCBjb25zdCBGb250
KiBmb250KSBjb25zdAorYm9vbCBTVkdGb250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyhTVkdGb250
RWxlbWVudCogZm9udEVsZW1lbnQsIEdseXBoUGFnZSogcGFnZVRvRmlsbCwgVUNoYXIqIGJ1ZmZl
ciwgY29uc3QgRm9udCogZm9udCkgY29uc3QKIHsKICAgICBib29sIGhhdmVHbHlwaHMgPSBmYWxz
ZTsKICAgICBWZWN0b3I8U1ZHR2x5cGg+IGdseXBoczsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhQ
YWdlOjpzaXplOyArK2kpIHsKICAgICAgICAgLy8gRWFjaCBjaGFyYWN0ZXIgaGVyZSBjb25zaXN0
cyBvZiBhIHN1cnJvZ2F0ZSBwYWlyCiAgICAgICAgIFN0cmluZyBsb29rdXBTdHJpbmcoYnVmZmVy
ICsgaSAqIDIsIDIpOwogICAgICAgICBmb250RWxlbWVudC0+Y29sbGVjdEdseXBoc0ZvclN0cmlu
Zyhsb29rdXBTdHJpbmcsIGdseXBocyk7CiAgICAgICAgIGlmIChnbHlwaHMuaXNFbXB0eSgpKSB7
Ci0gICAgICAgICAgICBwYWdlVG9GaWxsLT5zZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBp
LCAwLCAwKTsKKyAgICAgICAgICAgIHBhZ2VUb0ZpbGwtPnNldEdseXBoRGF0YUZvckluZGV4KGks
IDAsIDApOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KIApAQCAtMjY0LDcgKzI2
NCw3IEBAIGJvb2wgU1ZHRm9udERhdGE6OmZpbGxOb25CTVBHbHlwaHMoU1ZHRm8KICAgICAgICAg
Ly8gY2FyZSBvZiBtYXRjaGluZyB0byB0aGUgY29ycmVjdCBnbHlwaCwgaWYgbXVsdGlwbGUgb25l
cyBhcmUgYXZhaWxhYmxlLCBhcyB0aGF0J3MKICAgICAgICAgLy8gb25seSBwb3NzaWJsZSB3aXRo
aW4gdGhlIGNvbnRleHQgb2YgYSBzdHJpbmcgKGVnLiBhcmFiaWMgZm9ybSBtYXRjaGluZykuCiAg
ICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOwotICAgICAgICBwYWdlVG9GaWxsLT5zZXRHbHlwaERh
dGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHMuZmlyc3QoKS50YWJsZUVudHJ5LCBmb250KTsK
KyAgICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgZ2x5cGhzLmZpcnN0
KCkudGFibGVFbnRyeSwgZm9udCk7CiAgICAgICAgIGdseXBocy5jbGVhcigpOwogICAgIH0KIApJ
bmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmgJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplRm9udChGb250KiwgZmxv
YXQgZm9udFNpemUpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgZmxvYXQgd2lkdGhGb3JTVkdHbHlw
aChHbHlwaCwgZmxvYXQgZm9udFNpemUpIGNvbnN0IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgYm9v
bCBmaWxsU1ZHR2x5cGhQYWdlKEdseXBoUGFnZSosIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQg
bGVuZ3RoLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQq
KSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0dseXBoUGFnZShHbHlw
aFBhZ2UqLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQq
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIGJvb2wgYXBwbHlTVkdHbHlwaFNlbGVjdGlvbihXaWR0
aEl0ZXJhdG9yJiwgR2x5cGhEYXRhJiwgYm9vbCBtaXJyb3IsIGludCBjdXJyZW50Q2hhcmFjdGVy
LCB1bnNpZ25lZCYgYWR2YW5jZUxlbmd0aCwgU3RyaW5nJiBub3JtYWxpemVkU3BhY2VzU3RyaW5n
Q2FjaGUpIGNvbnN0OwogCkBAIC01MCw4ICs1MCw4IEBAIHB1YmxpYzoKICAgICBmbG9hdCB2ZXJ0
aWNhbEFkdmFuY2VZKCkgY29uc3QgeyByZXR1cm4gbV92ZXJ0aWNhbEFkdmFuY2VZOyB9CiAKIHBy
aXZhdGU6Ci0gICAgYm9vbCBmaWxsQk1QR2x5cGhzKFNWR0ZvbnRFbGVtZW50KiwgR2x5cGhQYWdl
KiAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciogYnVmZmVyLCBjb25z
dCBGb250KikgY29uc3Q7Ci0gICAgYm9vbCBmaWxsTm9uQk1QR2x5cGhzKFNWR0ZvbnRFbGVtZW50
KiwgR2x5cGhQYWdlKiAsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciog
YnVmZmVyLCBjb25zdCBGb250KikgY29uc3Q7CisgICAgYm9vbCBmaWxsQk1QR2x5cGhzKFNWR0Zv
bnRFbGVtZW50KiwgR2x5cGhQYWdlKiwgVUNoYXIqIGJ1ZmZlciwgY29uc3QgRm9udCopIGNvbnN0
OworICAgIGJvb2wgZmlsbE5vbkJNUEdseXBocyhTVkdGb250RWxlbWVudCosIEdseXBoUGFnZSos
IFVDaGFyKiBidWZmZXIsIGNvbnN0IEZvbnQqKSBjb25zdDsKIAogICAgIGJvb2wgYXBwbHlUcmFu
c2Zvcm1zKEdseXBoQnVmZmVyR2x5cGgqLCBHbHlwaEJ1ZmZlckFkdmFuY2UqLCBzaXplX3QsIFR5
cGVzZXR0aW5nRmVhdHVyZXMpIGNvbnN0ID0gZGVsZXRlOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260736</attachid>
            <date>2015-09-07 07:18:32 -0700</date>
            <delta_ts>2015-09-07 07:40:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-glyphpage-fill-size-2.patch</filename>
            <type>text/plain</type>
            <size>17406</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA5LTA3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdW5uZWVkZWQgb2Zm
c2V0IGFuZCBsZW5ndGggYXJndW1lbnRzIGZyb20gZ2x5cGggcGFnZSBmaWxsaW5nIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhleSBh
cmUgYWx3YXlzIHBhc3NlZCAwL0dseXBoUGFnZTo6c2l6ZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6fkZvbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZmlsbEdseXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVB
bmRGaWxsR2x5cGhQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHbHlwaFBhZ2U6OnNldEdseXBoRGF0YUZvckluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR2x5cGhQYWdlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoUGFn
ZTo6bWF5VXNlTWl4ZWRGb250c1doZW5GaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
UGFnZTo6ZmlsbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRy
ZWVOb2RlQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhQYWdlOjpmaWxsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHN2Zy9T
VkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdH
bHlwaFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbFNWR0ds
eXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbEJNUEdseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyk6CisgICAg
ICAgICogc3ZnL1NWR0ZvbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6
dmVydGljYWxBZHZhbmNlWSk6CisKIDIwMTUtMDktMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBkaXNwYXRjaEV2ZW50KCkgc2hvdWxkIHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIGlmIHRoZSBldmVudCdzIGluaXRpYWxpemVkIGZsYWcgaXMgbm90IHNldApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDksMTYgKzE0OSwxNiBAQCBGb250Ojp+Rm9udCgpCiAgICAgcmVt
b3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKTsKIH0KIAotc3RhdGljIGJvb2wgZmlsbEdseXBo
UGFnZShHbHlwaFBhZ2UmIHBhZ2VUb0ZpbGwsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZv
bnQpCitzdGF0aWMgYm9vbCBmaWxsR2x5cGhQYWdlKEdseXBoUGFnZSYgcGFnZVRvRmlsbCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KiBmb250KQogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKGF1dG8qIHN2Z0RhdGEgPSBmb250LT5zdmdE
YXRhKCkpCi0gICAgICAgIHJldHVybiBzdmdEYXRhLT5maWxsU1ZHR2x5cGhQYWdlKCZwYWdlVG9G
aWxsLCBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGZvbnQpOworICAgICAg
ICByZXR1cm4gc3ZnRGF0YS0+ZmlsbFNWR0dseXBoUGFnZSgmcGFnZVRvRmlsbCwgYnVmZmVyLCBi
dWZmZXJMZW5ndGgsIGZvbnQpOwogI2VuZGlmCi0gICAgYm9vbCBoYXNHbHlwaHMgPSBwYWdlVG9G
aWxsLmZpbGwob2Zmc2V0LCBsZW5ndGgsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKKyAg
ICBib29sIGhhc0dseXBocyA9IHBhZ2VUb0ZpbGwuZmlsbChidWZmZXIsIGJ1ZmZlckxlbmd0aCwg
Zm9udCk7CiAjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQogICAgIGlmIChoYXNHbHlwaHMg
JiYgZm9udC0+dmVydGljYWxEYXRhKCkpCi0gICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5z
dWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsLCBvZmZzZXQsIGxl
bmd0aCk7CisgICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5zdWJzdGl0dXRlV2l0aFZlcnRp
Y2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsKTsKICNlbmRpZgogICAgIHJldHVybiBoYXNHbHlw
aHM7CiB9CkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIFJlZlB0cjxHbHlwaFBhZ2U+IGNyZWF0
ZUFuZEZpbGxHbAogICAgIGVsc2UKICAgICAgICAgZ2x5cGhQYWdlID0gR2x5cGhQYWdlOjpjcmVh
dGVGb3JTaW5nbGVGb250KGZvbnQpOwogCi0gICAgYm9vbCBoYXZlR2x5cGhzID0gZmlsbEdseXBo
UGFnZSgqZ2x5cGhQYWdlLCAwLCBHbHlwaFBhZ2U6OnNpemUsIGJ1ZmZlciwgYnVmZmVyTGVuZ3Ro
LCBmb250KTsKKyAgICBib29sIGhhdmVHbHlwaHMgPSBmaWxsR2x5cGhQYWdlKCpnbHlwaFBhZ2Us
IGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKICAgICBpZiAoIWhhdmVHbHlwaHMpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCShyZXZpc2lvbiAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplRm9udChGb250KiwgZmxvYXQgZm9udFNp
emUpID0gMDsKICAgICAgICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvclNWR0dseXBoKEdseXBoLCBm
bG9hdCBmb250U2l6ZSkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0ds
eXBoUGFnZShHbHlwaFBhZ2UqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KikgY29uc3QgPSAw
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0dseXBoUGFnZShHbHlwaFBhZ2UqLCBVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKSBjb25zdCA9IDA7
CiAgICAgfTsKIAogICAgIC8vIFVzZWQgdG8gY3JlYXRlIHBsYXRmb3JtIGZvbnRzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IC8vIEltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9ybS4KLSAgICBib29sIGZpbGwodW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBjaGFyYWN0ZXJCdWZmZXIsIHVuc2lnbmVk
IGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCopOworICAgIGJvb2wgZmlsbChVQ2hhciogY2hhcmFj
dGVyQnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKTsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBzdGF0aWMgYm9vbCBtYXlVc2VNaXhlZEZvbnRzV2hlbkZpbGxpbmco
Y29uc3QgVUNoYXIqIGNoYXJhY3RlckJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25z
dCBGb250Kik7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0dseXBoUGFnZU1hYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0dseXBoUGFnZU1hYy5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9HbHlwaFBhZ2VNYWMuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgR2x5cGhQYWdlOjptYXlVc2VNaXhlZEZv
bnRzV2hlbkZpbGwKICNlbmRpZgogfQogCi1ib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVu
Z3RoLCBjb25zdCBGb250KiBmb250RGF0YSkKK2Jvb2wgR2x5cGhQYWdlOjpmaWxsKFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udERhdGEpCiB7CiAg
ICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAKQEAgLTgyLDExICs4MiwxMSBAQCBib29sIEds
eXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuCiAgICAgICAgIC8vIHdlIHBhc3MgaW4g
bXVzdCBiZSA1MTIuIElmIHdlIGdldCBiYWNrIG1vcmUgdGhhbiAyNTYgZ2x5cGhzIHRob3VnaCB3
ZSdsbCBpZ25vcmUgYWxsIHRoZSBvbmVzIGFmdGVyIDI1NiwKICAgICAgICAgLy8gdGhpcyBzaG91
bGQgbm90IGhhcHBlbiBhcyB0aGUgb25seSB0aW1lIHdlIHBhc3MgaW4gNTEyIGNoYXJhY3RlcnMg
aXMgd2hlbiB0aGV5IGFyZSBzdXJyb2dhdGVzLgogICAgICAgICBDR0ZvbnRHZXRHbHlwaHNGb3JV
bmljaGFycyhmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwgZ2x5cGhz
LmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGxlbmd0aDsgKytpKSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFBh
Z2U6OnNpemU7ICsraSkgewogICAgICAgICAgICAgaWYgKCFnbHlwaHNbaV0pCi0gICAgICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAgICAgICAg
ICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAgICAgICAgICBlbHNlIHsK
LSAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHNb
aV0sIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChpLCBn
bHlwaHNbaV0sIGZvbnREYXRhKTsKICAgICAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtOTksMTMgKzk5LDEzIEBAIGJvb2wgR2x5cGhQ
YWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW4KICAgICAgICAgICAgIENURm9udEdldFZlcnRp
Y2FsR2x5cGhzRm9yQ2hhcmFjdGVycyhmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuY3RGb250KCks
IGJ1ZmZlciwgZ2x5cGhzLmRhdGEoKSwgYnVmZmVyTGVuZ3RoKTsKICAgICAgICAgLy8gV2hlbiBi
dWZmZXIgY29uc2lzdHMgb2Ygc3Vycm9nYXRlIHBhaXJzLCBDVEZvbnRHZXRWZXJ0aWNhbEdseXBo
c0ZvckNoYXJhY3RlcnMgYW5kIENURm9udEdldEdseXBoc0ZvckNoYXJhY3RlcnMKICAgICAgICAg
Ly8gcGxhY2UgdGhlIGdseXBocyBhdCBpbmRpY2VzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZpcnN0
IGNoYXJhY3RlciBvZiBlYWNoIHBhaXIuCi0gICAgICAgIEFTU0VSVCghKGJ1ZmZlckxlbmd0aCAl
IGxlbmd0aCkgJiYgKGJ1ZmZlckxlbmd0aCAvIGxlbmd0aCA9PSAxIHx8IGJ1ZmZlckxlbmd0aCAv
IGxlbmd0aCA9PSAyKSk7Ci0gICAgICAgIHVuc2lnbmVkIGdseXBoU3RlcCA9IGJ1ZmZlckxlbmd0
aCAvIGxlbmd0aDsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7CisgICAgICAgIEFTU0VSVChidWZmZXJMZW5ndGggPT0gR2x5cGhQYWdlOjpzaXplIHx8IGJ1
ZmZlckxlbmd0aCA9PSAyICogR2x5cGhQYWdlOjpzaXplKTsKKyAgICAgICAgdW5zaWduZWQgZ2x5
cGhTdGVwID0gYnVmZmVyTGVuZ3RoIC8gR2x5cGhQYWdlOjpzaXplOworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhQYWdlOjpzaXplOyArK2kpIHsKICAgICAgICAgICAgIGlm
ICghZ2x5cGhzW2kgKiBnbHlwaFN0ZXBdKQotICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZv
ckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZv
ckluZGV4KGksIDAsIDApOwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgc2V0
R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzW2kgKiBnbHlwaFN0ZXBdLCBmb250
RGF0YSk7CisgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgZ2x5cGhzW2kg
KiBnbHlwaFN0ZXBdLCBmb250RGF0YSk7CiAgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRy
dWU7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZl
cnRpY2FsRGF0YS5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTM1LDEzICs1MzUsMTMgQEAgdm9pZCBPcGVuVHlwZVZlcnRpY2FsRGF0YTo6Z2V0
VmVydGljYWxUcgogICAgIH0KIH0KIAotdm9pZCBPcGVuVHlwZVZlcnRpY2FsRGF0YTo6c3Vic3Rp
dHV0ZVdpdGhWZXJ0aWNhbEdseXBocyhjb25zdCBGb250KiBmb250LCBHbHlwaFBhZ2UqIGdseXBo
UGFnZSwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0Cit2b2lkIE9wZW5U
eXBlVmVydGljYWxEYXRhOjpzdWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGNvbnN0IEZvbnQq
IGZvbnQsIEdseXBoUGFnZSogZ2x5cGhQYWdlKSBjb25zdAogewogICAgIGNvbnN0IEhhc2hNYXA8
R2x5cGgsIEdseXBoPiYgbWFwID0gbV92ZXJ0aWNhbEdseXBoTWFwOwogICAgIGlmIChtYXAuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0gb2Zm
c2V0LCBlbmQgPSBvZmZzZXQgKyBsZW5ndGg7IGluZGV4IDwgZW5kOyArK2luZGV4KSB7CisgICAg
Zm9yICh1bnNpZ25lZCBpbmRleCA9IDA7IGluZGV4IDwgR2x5cGhQYWdlOjpzaXplOyArK2luZGV4
KSB7CiAgICAgICAgIEdseXBoIGdseXBoID0gZ2x5cGhQYWdlLT5nbHlwaEF0KGluZGV4KTsKICAg
ICAgICAgaWYgKGdseXBoKSB7CiAgICAgICAgICAgICBBU1NFUlQoZ2x5cGhQYWdlLT5nbHlwaERh
dGFGb3JJbmRleChpbmRleCkuZm9udCA9PSBmb250KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVW
ZXJ0aWNhbERhdGEuaAkocmV2aXNpb24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaAkod29ya2luZyBjb3B5
KQpAQCAtNTAsNyArNTAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNWZXJ0aWNhbE1ldHJpY3Mo
KSBjb25zdCB7IHJldHVybiAhbV9hZHZhbmNlSGVpZ2h0cy5pc0VtcHR5KCk7IH0KICAgICBmbG9h
dCBhZHZhbmNlSGVpZ2h0KGNvbnN0IEZvbnQqLCBHbHlwaCkgY29uc3Q7CiAgICAgdm9pZCBnZXRW
ZXJ0aWNhbFRyYW5zbGF0aW9uc0ZvckdseXBocyhjb25zdCBGb250KiwgY29uc3QgR2x5cGgqLCBz
aXplX3QsIGZsb2F0KiBvdXRYWUFycmF5KSBjb25zdDsKLSAgICB2b2lkIHN1YnN0aXR1dGVXaXRo
VmVydGljYWxHbHlwaHMoY29uc3QgRm9udCosIEdseXBoUGFnZSosIHVuc2lnbmVkIG9mZnNldCwg
dW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKKyAgICB2b2lkIHN1YnN0aXR1dGVXaXRoVmVydGljYWxH
bHlwaHMoY29uc3QgRm9udCosIEdseXBoUGFnZSopIGNvbnN0OwogCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IE9wZW5UeXBlVmVydGljYWxEYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlwaFBhZ2VUcmVlTm9k
ZUNHV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDR1dpbi5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlwaFBhZ2VUcmVlTm9kZUNHV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsMjIgKzM0LDIyIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBs
ZW5ndGgsIFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCog
Zm9udERhdGEpCitib29sIEdseXBoUGFnZTo6ZmlsbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBi
dWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnREYXRhKQogewogICAgIC8vIGJ1ZmZlckxlbmd0
aCB3aWxsIGJlIGdyZWF0ZXIgdGhhbiB0aGUgcmVxdWVzdGVkIG51bWJlciBvZiBnbHlwaHMgaWYg
dGhlIGJ1ZmZlciBjb250YWlucyBzdXJyb2dhdGUgcGFpcnMuCiAgICAgLy8gV2Ugd29uJ3Qgc3Vw
cG9ydCB0aGlzIGZvciBub3cuCi0gICAgaWYgKGJ1ZmZlckxlbmd0aCA+IGxlbmd0aCkKKyAgICBp
ZiAoYnVmZmVyTGVuZ3RoID4gR2x5cGhQYWdlOjpzaXplKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBib29sIGhhdmVHbHlwaHMgPSBmYWxzZTsKICAgICBDR0dseXBoIGxvY2FsR2x5cGhC
dWZmZXJbR2x5cGhQYWdlOjpzaXplXTsKICAgICB3a0dldEdseXBocyhmb250RGF0YS0+cGxhdGZv
cm1EYXRhKCkuY2dGb250KCksIGJ1ZmZlciwgbG9jYWxHbHlwaEJ1ZmZlciwgYnVmZmVyTGVuZ3Ro
KTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHsKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgR2x5cGhQYWdlOjpzaXplOyBpKyspIHsKICAgICAgICAgR2x5
cGggZ2x5cGggPSBsb2NhbEdseXBoQnVmZmVyW2ldOwogICAgICAgICBpZiAoIWdseXBoKQotICAg
ICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAgICAg
ICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChpLCAwLCAwKTsKICAgICAgICAgZWxzZSB7Ci0gICAg
ICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaCwgZm9udERhdGEp
OworICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgZ2x5cGgsIGZvbnREYXRhKTsK
ICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOwogICAgICAgICB9CiAgICAgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ2Fp
cm9XaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dpbi9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvV2luLmNwcAkocmV2aXNpb24gMTg5MjA2KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ2Fp
cm9XaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCwxMSArMzQsMTEgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1ib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBG
b250KiBmb250RGF0YSkKK2Jvb2wgR2x5cGhQYWdlOjpmaWxsKFVDaGFyKiBidWZmZXIsIHVuc2ln
bmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udERhdGEpCiB7CiAgICAgLy8gYnVmZmVy
TGVuZ3RoIHdpbGwgYmUgZ3JlYXRlciB0aGFuIHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIGdseXBo
cyBpZiB0aGUgYnVmZmVyIGNvbnRhaW5zIHN1cnJvZ2F0ZSBwYWlycy4KICAgICAvLyBXZSB3b24n
dCBzdXBwb3J0IHRoaXMgZm9yIG5vdy4KLSAgICBpZiAoYnVmZmVyTGVuZ3RoID4gbGVuZ3RoKQor
ICAgIGlmIChidWZmZXJMZW5ndGggPiBHbHlwaFBhZ2U6OnNpemUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwpAQCAtNTEsMTIgKzUxLDEyIEBA
IGJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW4KICAgICBEV09SRCByZXN1
bHQgPSBHZXRHbHlwaEluZGljZXMoZGMsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBsb2NhbEdseXBo
QnVmZmVyLCBHR0lfTUFSS19OT05FWElTVElOR19HTFlQSFMpOwogICAgIGJvb2wgc3VjY2VzcyA9
IHJlc3VsdCAhPSBHRElfRVJST1IgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlc3VsdCkgPT0g
YnVmZmVyTGVuZ3RoOwogICAgIGlmIChzdWNjZXNzKSB7Ci0gICAgICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgR2x5cGhQYWdlOjpzaXplOyBpKyspIHsKICAgICAgICAgICAgIEdseXBoIGdseXBoID0gbG9j
YWxHbHlwaEJ1ZmZlcltpXTsKICAgICAgICAgICAgIGlmIChnbHlwaCA9PSAweGZmZmYpCi0gICAg
ICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAg
ICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAgICAgICAgICBl
bHNlIHsKLSAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBn
bHlwaCwgZm9udERhdGEpOworICAgICAgICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KGks
IGdseXBoLCBmb250RGF0YSk7CiAgICAgICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RGF0YS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNw
cAkocmV2aXNpb24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjA0LDcgKzIwNCw3IEBAIGJvb2wgU1ZHRm9udERhdGE6OmFw
cGx5U1ZHR2x5cGhTZWxlY3Rpb24KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgU1ZHRm9u
dERhdGE6OmZpbGxTVkdHbHlwaFBhZ2UoR2x5cGhQYWdlKiBwYWdlVG9GaWxsLCB1bnNpZ25lZCBv
ZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVu
Z3RoLCBjb25zdCBGb250KiBmb250KSBjb25zdAorYm9vbCBTVkdGb250RGF0YTo6ZmlsbFNWR0ds
eXBoUGFnZShHbHlwaFBhZ2UqIHBhZ2VUb0ZpbGwsIFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1
ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udCkgY29uc3QKIHsKICAgICBBU1NFUlQoZm9udC0+
aXNDdXN0b21Gb250KCkpOwogICAgIEFTU0VSVChmb250LT5pc1NWR0ZvbnQoKSk7CkBAIC0yMTUs
MjIgKzIxNSwyMiBAQCBib29sIFNWR0ZvbnREYXRhOjpmaWxsU1ZHR2x5cGhQYWdlKEdseXBoCiAg
ICAgU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVtZW50ID0gZm9udEZhY2VFbGVtZW50LT5hc3NvY2lh
dGVkRm9udEVsZW1lbnQoKTsKICAgICBBU1NFUlQoZm9udEVsZW1lbnQpOwogCi0gICAgaWYgKGJ1
ZmZlckxlbmd0aCA9PSBsZW5ndGgpCi0gICAgICAgIHJldHVybiBmaWxsQk1QR2x5cGhzKGZvbnRF
bGVtZW50LCBwYWdlVG9GaWxsLCBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBmb250KTsKKyAgICBp
ZiAoYnVmZmVyTGVuZ3RoID09IEdseXBoUGFnZTo6c2l6ZSkKKyAgICAgICAgcmV0dXJuIGZpbGxC
TVBHbHlwaHMoZm9udEVsZW1lbnQsIHBhZ2VUb0ZpbGwsIGJ1ZmZlciwgZm9udCk7CiAKLSAgICBB
U1NFUlQoYnVmZmVyTGVuZ3RoID09IDIgKiBsZW5ndGgpOwotICAgIHJldHVybiBmaWxsTm9uQk1Q
R2x5cGhzKGZvbnRFbGVtZW50LCBwYWdlVG9GaWxsLCBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBm
b250KTsKKyAgICBBU1NFUlQoYnVmZmVyTGVuZ3RoID09IDIgKiBHbHlwaFBhZ2U6OnNpemUpOwor
ICAgIHJldHVybiBmaWxsTm9uQk1QR2x5cGhzKGZvbnRFbGVtZW50LCBwYWdlVG9GaWxsLCBidWZm
ZXIsIGZvbnQpOwogfQogCi1ib29sIFNWR0ZvbnREYXRhOjpmaWxsQk1QR2x5cGhzKFNWR0ZvbnRF
bGVtZW50KiBmb250RWxlbWVudCwgR2x5cGhQYWdlKiBwYWdlVG9GaWxsLCB1bnNpZ25lZCBvZmZz
ZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgY29uc3QgRm9udCogZm9udCkgY29u
c3QKK2Jvb2wgU1ZHRm9udERhdGE6OmZpbGxCTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqIGZvbnRF
bGVtZW50LCBHbHlwaFBhZ2UqIHBhZ2VUb0ZpbGwsIFVDaGFyKiBidWZmZXIsIGNvbnN0IEZvbnQq
IGZvbnQpIGNvbnN0CiB7CiAgICAgYm9vbCBoYXZlR2x5cGhzID0gZmFsc2U7CiAgICAgVmVjdG9y
PFNWR0dseXBoPiBnbHlwaHM7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgKytp
KSB7CiAgICAgICAgIFN0cmluZyBsb29rdXBTdHJpbmcoYnVmZmVyICsgaSwgMSk7CiAgICAgICAg
IGZvbnRFbGVtZW50LT5jb2xsZWN0R2x5cGhzRm9yU3RyaW5nKGxvb2t1cFN0cmluZywgZ2x5cGhz
KTsKICAgICAgICAgaWYgKGdseXBocy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHBhZ2VUb0Zp
bGwtPnNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAgICAgICAg
cGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgfQogCkBAIC0yMzksMjMgKzIzOSwyMyBAQCBib29sIFNWR0ZvbnRE
YXRhOjpmaWxsQk1QR2x5cGhzKFNWR0ZvbnRFCiAgICAgICAgIC8vIGNhcmUgb2YgbWF0Y2hpbmcg
dG8gdGhlIGNvcnJlY3QgZ2x5cGgsIGlmIG11bHRpcGxlIG9uZXMgYXJlIGF2YWlsYWJsZSwgYXMg
dGhhdCdzCiAgICAgICAgIC8vIG9ubHkgcG9zc2libGUgd2l0aGluIHRoZSBjb250ZXh0IG9mIGEg
c3RyaW5nIChlZy4gYXJhYmljIGZvcm0gbWF0Y2hpbmcpLgogICAgICAgICBoYXZlR2x5cGhzID0g
dHJ1ZTsKLSAgICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsg
aSwgZ2x5cGhzLmZpcnN0KCkudGFibGVFbnRyeSwgZm9udCk7CisgICAgICAgIHBhZ2VUb0ZpbGwt
PnNldEdseXBoRGF0YUZvckluZGV4KGksIGdseXBocy5maXJzdCgpLnRhYmxlRW50cnksIGZvbnQp
OwogICAgICAgICBnbHlwaHMuY2xlYXIoKTsKICAgICB9CiAKICAgICByZXR1cm4gaGF2ZUdseXBo
czsKIH0KIAotYm9vbCBTVkdGb250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyhTVkdGb250RWxlbWVu
dCogZm9udEVsZW1lbnQsIEdseXBoUGFnZSogcGFnZVRvRmlsbCwgdW5zaWduZWQgb2Zmc2V0LCB1
bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIGNvbnN0IEZvbnQqIGZvbnQpIGNvbnN0Citi
b29sIFNWR0ZvbnREYXRhOjpmaWxsTm9uQk1QR2x5cGhzKFNWR0ZvbnRFbGVtZW50KiBmb250RWxl
bWVudCwgR2x5cGhQYWdlKiBwYWdlVG9GaWxsLCBVQ2hhciogYnVmZmVyLCBjb25zdCBGb250KiBm
b250KSBjb25zdAogewogICAgIGJvb2wgaGF2ZUdseXBocyA9IGZhbHNlOwogICAgIFZlY3RvcjxT
VkdHbHlwaD4gZ2x5cGhzOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFBhZ2U6OnNpemU7ICsraSkg
ewogICAgICAgICAvLyBFYWNoIGNoYXJhY3RlciBoZXJlIGNvbnNpc3RzIG9mIGEgc3Vycm9nYXRl
IHBhaXIKICAgICAgICAgU3RyaW5nIGxvb2t1cFN0cmluZyhidWZmZXIgKyBpICogMiwgMik7CiAg
ICAgICAgIGZvbnRFbGVtZW50LT5jb2xsZWN0R2x5cGhzRm9yU3RyaW5nKGxvb2t1cFN0cmluZywg
Z2x5cGhzKTsKICAgICAgICAgaWYgKGdseXBocy5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIHBh
Z2VUb0ZpbGwtPnNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIDAsIDApOworICAgICAg
ICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgfQogCkBAIC0yNjQsNyArMjY0LDcgQEAgYm9vbCBTVkdG
b250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyhTVkdGbwogICAgICAgICAvLyBjYXJlIG9mIG1hdGNo
aW5nIHRvIHRoZSBjb3JyZWN0IGdseXBoLCBpZiBtdWx0aXBsZSBvbmVzIGFyZSBhdmFpbGFibGUs
IGFzIHRoYXQncwogICAgICAgICAvLyBvbmx5IHBvc3NpYmxlIHdpdGhpbiB0aGUgY29udGV4dCBv
ZiBhIHN0cmluZyAoZWcuIGFyYWJpYyBmb3JtIG1hdGNoaW5nKS4KICAgICAgICAgaGF2ZUdseXBo
cyA9IHRydWU7Ci0gICAgICAgIHBhZ2VUb0ZpbGwtPnNldEdseXBoRGF0YUZvckluZGV4KG9mZnNl
dCArIGksIGdseXBocy5maXJzdCgpLnRhYmxlRW50cnksIGZvbnQpOworICAgICAgICBwYWdlVG9G
aWxsLT5zZXRHbHlwaERhdGFGb3JJbmRleChpLCBnbHlwaHMuZmlyc3QoKS50YWJsZUVudHJ5LCBm
b250KTsKICAgICAgICAgZ2x5cGhzLmNsZWFyKCk7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRm9udERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udERhdGEuaAkocmV2aXNpb24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZvbnREYXRhLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVGb250KEZvbnQqLCBmbG9hdCBmb250U2l6ZSkgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvclNWR0dseXBoKEdseXBoLCBmbG9hdCBm
b250U2l6ZSkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBib29sIGZpbGxTVkdHbHlwaFBh
Z2UoR2x5cGhQYWdlKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCopIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgYm9vbCBmaWxsU1ZHR2x5cGhQYWdlKEdseXBoUGFnZSosIFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCopIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgYm9vbCBhcHBseVNWR0dseXBoU2VsZWN0aW9uKFdpZHRoSXRlcmF0b3ImLCBHbHlw
aERhdGEmLCBib29sIG1pcnJvciwgaW50IGN1cnJlbnRDaGFyYWN0ZXIsIHVuc2lnbmVkJiBhZHZh
bmNlTGVuZ3RoLCBTdHJpbmcmIG5vcm1hbGl6ZWRTcGFjZXNTdHJpbmdDYWNoZSkgY29uc3Q7CiAK
QEAgLTUwLDggKzUwLDggQEAgcHVibGljOgogICAgIGZsb2F0IHZlcnRpY2FsQWR2YW5jZVkoKSBj
b25zdCB7IHJldHVybiBtX3ZlcnRpY2FsQWR2YW5jZVk7IH0KIAogcHJpdmF0ZToKLSAgICBib29s
IGZpbGxCTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqLCBHbHlwaFBhZ2UqICwgdW5zaWduZWQgb2Zm
c2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIGNvbnN0IEZvbnQqKSBjb25zdDsK
LSAgICBib29sIGZpbGxOb25CTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqLCBHbHlwaFBhZ2UqICwg
dW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBidWZmZXIsIGNvbnN0IEZv
bnQqKSBjb25zdDsKKyAgICBib29sIGZpbGxCTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqLCBHbHlw
aFBhZ2UqLCBVQ2hhciogYnVmZmVyLCBjb25zdCBGb250KikgY29uc3Q7CisgICAgYm9vbCBmaWxs
Tm9uQk1QR2x5cGhzKFNWR0ZvbnRFbGVtZW50KiwgR2x5cGhQYWdlKiwgVUNoYXIqIGJ1ZmZlciwg
Y29uc3QgRm9udCopIGNvbnN0OwogCiAgICAgYm9vbCBhcHBseVRyYW5zZm9ybXMoR2x5cGhCdWZm
ZXJHbHlwaCosIEdseXBoQnVmZmVyQWR2YW5jZSosIHNpemVfdCwgVHlwZXNldHRpbmdGZWF0dXJl
cykgY29uc3QgPSBkZWxldGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>260738</attachid>
            <date>2015-09-07 07:40:35 -0700</date>
            <delta_ts>2015-09-07 09:08:09 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remove-glyphpage-fill-size-3.patch</filename>
            <type>text/plain</type>
            <size>18809</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4OTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDE1LTA5LTA3ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgdW5uZWVkZWQgb2Zm
c2V0IGFuZCBsZW5ndGggYXJndW1lbnRzIGZyb20gZ2x5cGggcGFnZSBmaWxsaW5nIGZ1bmN0aW9u
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ4OTI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhleSBh
cmUgYWx3YXlzIHBhc3NlZCAwL0dseXBoUGFnZTo6c2l6ZS4KKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6fkZvbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6ZmlsbEdseXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVB
bmRGaWxsR2x5cGhQYWdlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmg6CisgICAgICAgIChXZWJDb3Jl
OjpHbHlwaFBhZ2U6OnNldEdseXBoRGF0YUZvckluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvR2x5cGhQYWdlTWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoUGFn
ZTo6bWF5VXNlTWl4ZWRGb250c1doZW5GaWxsaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkdseXBo
UGFnZTo6ZmlsbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRy
ZWVOb2RlQ0dXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2x5cGhQYWdlOjpmaWxsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaFBhZ2U6OmZpbGwpOgorICAgICAgICAqIHN2Zy9T
VkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdH
bHlwaFNlbGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbFNWR0ds
eXBoUGFnZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbEJNUEdseXBocyk6
CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6ZmlsbE5vbkJNUEdseXBocyk6CisgICAg
ICAgICogc3ZnL1NWR0ZvbnREYXRhLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdGb250RGF0YTo6
dmVydGljYWxBZHZhbmNlWSk6CisKIDIwMTUtMDktMDYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBkaXNwYXRjaEV2ZW50KCkgc2hvdWxkIHRocm93IGFuIEludmFs
aWRTdGF0ZUVycm9yIGlmIHRoZSBldmVudCdzIGluaXRpYWxpemVkIGZsYWcgaXMgbm90IHNldApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xNDksMTYgKzE0OSwxNiBAQCBGb250Ojp+Rm9udCgpCiAgICAgcmVt
b3ZlRnJvbVN5c3RlbUZhbGxiYWNrQ2FjaGUoKTsKIH0KIAotc3RhdGljIGJvb2wgZmlsbEdseXBo
UGFnZShHbHlwaFBhZ2UmIHBhZ2VUb0ZpbGwsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVu
Z3RoLCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZv
bnQpCitzdGF0aWMgYm9vbCBmaWxsR2x5cGhQYWdlKEdseXBoUGFnZSYgcGFnZVRvRmlsbCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KiBmb250KQogewog
I2lmIEVOQUJMRShTVkdfRk9OVFMpCiAgICAgaWYgKGF1dG8qIHN2Z0RhdGEgPSBmb250LT5zdmdE
YXRhKCkpCi0gICAgICAgIHJldHVybiBzdmdEYXRhLT5maWxsU1ZHR2x5cGhQYWdlKCZwYWdlVG9G
aWxsLCBvZmZzZXQsIGxlbmd0aCwgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGZvbnQpOworICAgICAg
ICByZXR1cm4gc3ZnRGF0YS0+ZmlsbFNWR0dseXBoUGFnZSgmcGFnZVRvRmlsbCwgYnVmZmVyLCBi
dWZmZXJMZW5ndGgsIGZvbnQpOwogI2VuZGlmCi0gICAgYm9vbCBoYXNHbHlwaHMgPSBwYWdlVG9G
aWxsLmZpbGwob2Zmc2V0LCBsZW5ndGgsIGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKKyAg
ICBib29sIGhhc0dseXBocyA9IHBhZ2VUb0ZpbGwuZmlsbChidWZmZXIsIGJ1ZmZlckxlbmd0aCwg
Zm9udCk7CiAjaWYgRU5BQkxFKE9QRU5UWVBFX1ZFUlRJQ0FMKQogICAgIGlmIChoYXNHbHlwaHMg
JiYgZm9udC0+dmVydGljYWxEYXRhKCkpCi0gICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5z
dWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsLCBvZmZzZXQsIGxl
bmd0aCk7CisgICAgICAgIGZvbnQtPnZlcnRpY2FsRGF0YSgpLT5zdWJzdGl0dXRlV2l0aFZlcnRp
Y2FsR2x5cGhzKGZvbnQsICZwYWdlVG9GaWxsKTsKICNlbmRpZgogICAgIHJldHVybiBoYXNHbHlw
aHM7CiB9CkBAIC0yMzIsNyArMjMyLDcgQEAgc3RhdGljIFJlZlB0cjxHbHlwaFBhZ2U+IGNyZWF0
ZUFuZEZpbGxHbAogICAgIGVsc2UKICAgICAgICAgZ2x5cGhQYWdlID0gR2x5cGhQYWdlOjpjcmVh
dGVGb3JTaW5nbGVGb250KGZvbnQpOwogCi0gICAgYm9vbCBoYXZlR2x5cGhzID0gZmlsbEdseXBo
UGFnZSgqZ2x5cGhQYWdlLCAwLCBHbHlwaFBhZ2U6OnNpemUsIGJ1ZmZlciwgYnVmZmVyTGVuZ3Ro
LCBmb250KTsKKyAgICBib29sIGhhdmVHbHlwaHMgPSBmaWxsR2x5cGhQYWdlKCpnbHlwaFBhZ2Us
IGJ1ZmZlciwgYnVmZmVyTGVuZ3RoLCBmb250KTsKICAgICBpZiAoIWhhdmVHbHlwaHMpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCShyZXZpc2lvbiAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250LmgJKHdvcmtpbmcgY29weSkKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgog
CiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplRm9udChGb250KiwgZmxvYXQgZm9udFNp
emUpID0gMDsKICAgICAgICAgdmlydHVhbCBmbG9hdCB3aWR0aEZvclNWR0dseXBoKEdseXBoLCBm
bG9hdCBmb250U2l6ZSkgY29uc3QgPSAwOwotICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0ds
eXBoUGFnZShHbHlwaFBhZ2UqLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KikgY29uc3QgPSAw
OworICAgICAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0dseXBoUGFnZShHbHlwaFBhZ2UqLCBVQ2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKSBjb25zdCA9IDA7
CiAgICAgfTsKIAogICAgIC8vIFVzZWQgdG8gY3JlYXRlIHBsYXRmb3JtIGZvbnRzLgpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhQYWdlLmgJKHJldmlzaW9u
IDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTYsNyArMTU2LDcgQEAgcHVibGljOgogICAgIH0KIAogICAg
IC8vIEltcGxlbWVudGVkIGJ5IHRoZSBwbGF0Zm9ybS4KLSAgICBib29sIGZpbGwodW5zaWduZWQg
b2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBjaGFyYWN0ZXJCdWZmZXIsIHVuc2lnbmVk
IGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCopOworICAgIGJvb2wgZmlsbChVQ2hhciogY2hhcmFj
dGVyQnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqKTsKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBzdGF0aWMgYm9vbCBtYXlVc2VNaXhlZEZvbnRzV2hlbkZpbGxpbmco
Y29uc3QgVUNoYXIqIGNoYXJhY3RlckJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25z
dCBGb250Kik7CiAjZWxzZQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvR2x5cGhQYWdlVHJlZU5vZGVGcmVlVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvR2x5cGhQYWdlVHJlZU5vZGVG
cmVlVHlwZS5jcHAJKHJldmlzaW9uIDE4OTIwNikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotYm9vbCBH
bHlwaFBhZ2U6OmZpbGwodW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgsIFVDaGFyKiBi
dWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9udCogZm9udERhdGEpCitib29s
IEdseXBoUGFnZTo6ZmlsbChVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNv
bnN0IEZvbnQqIGZvbnREYXRhKQogewogICAgIGNhaXJvX3NjYWxlZF9mb250X3QqIHNjYWxlZEZv
bnQgPSBmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkuc2NhbGVkRm9udCgpOwogICAgIEFTU0VSVChz
Y2FsZWRGb250KTsKQEAgLTUwLDE2ICs1MCwxNiBAQCBib29sIEdseXBoUGFnZTo6ZmlsbCh1bnNp
Z25lZCBvZmZzZXQsIHVuCiAKICAgICBib29sIGhhdmVHbHlwaHMgPSBmYWxzZTsKICAgICBVVEYx
NlVDaGFyMzJJdGVyYXRvciBpdGVyYXRvcihidWZmZXIsIGJ1ZmZlckxlbmd0aCk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7CisgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgaSsrKSB7CiAgICAgICAgIFVDaGFyMzIgY2hhcmFj
dGVyID0gaXRlcmF0b3IubmV4dCgpOwogICAgICAgICBpZiAoY2hhcmFjdGVyID09IGl0ZXJhdG9y
LmVuZCgpKQogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgR2x5cGggZ2x5cGggPSBGY0Zy
ZWVUeXBlQ2hhckluZGV4KGZhY2UsIGNoYXJhY3Rlcik7CiAgICAgICAgIGlmICghZ2x5cGgpCi0g
ICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAg
ICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KGksIDAsIDApOwogICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoLCBmb250RGF0
YSk7CisgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChpLCBnbHlwaCwgZm9udERhdGEp
OwogICAgICAgICAgICAgaGF2ZUdseXBocyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQYWdlTWFjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvR2x5cGhQ
YWdlTWFjLmNwcAkocmV2aXNpb24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0dseXBoUGFnZU1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcx
LDcgQEAgYm9vbCBHbHlwaFBhZ2U6Om1heVVzZU1peGVkRm9udHNXaGVuRmlsbAogI2VuZGlmCiB9
CiAKLWJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
LCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnRE
YXRhKQorYm9vbCBHbHlwaFBhZ2U6OmZpbGwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVy
TGVuZ3RoLCBjb25zdCBGb250KiBmb250RGF0YSkKIHsKICAgICBib29sIGhhdmVHbHlwaHMgPSBm
YWxzZTsKIApAQCAtODIsMTEgKzgyLDExIEBAIGJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVk
IG9mZnNldCwgdW4KICAgICAgICAgLy8gd2UgcGFzcyBpbiBtdXN0IGJlIDUxMi4gSWYgd2UgZ2V0
IGJhY2sgbW9yZSB0aGFuIDI1NiBnbHlwaHMgdGhvdWdoIHdlJ2xsIGlnbm9yZSBhbGwgdGhlIG9u
ZXMgYWZ0ZXIgMjU2LAogICAgICAgICAvLyB0aGlzIHNob3VsZCBub3QgaGFwcGVuIGFzIHRoZSBv
bmx5IHRpbWUgd2UgcGFzcyBpbiA1MTIgY2hhcmFjdGVycyBpcyB3aGVuIHRoZXkgYXJlIHN1cnJv
Z2F0ZXMuCiAgICAgICAgIENHRm9udEdldEdseXBoc0ZvclVuaWNoYXJzKGZvbnREYXRhLT5wbGF0
Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgpLCBidWZmZXJMZW5ndGgp
OwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgKytpKSB7CiAgICAg
ICAgICAgICBpZiAoIWdseXBoc1tpXSkKLSAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJ
bmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJ
bmRleChpLCAwLCAwKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAgIHNldEds
eXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoc1tpXSwgZm9udERhdGEpOworICAgICAg
ICAgICAgICAgIHNldEdseXBoRGF0YUZvckluZGV4KGksIGdseXBoc1tpXSwgZm9udERhdGEpOwog
ICAgICAgICAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC05OSwxMyArOTksMTMgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwodW5zaWduZWQgb2Zm
c2V0LCB1bgogICAgICAgICAgICAgQ1RGb250R2V0VmVydGljYWxHbHlwaHNGb3JDaGFyYWN0ZXJz
KGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jdEZvbnQoKSwgYnVmZmVyLCBnbHlwaHMuZGF0YSgp
LCBidWZmZXJMZW5ndGgpOwogICAgICAgICAvLyBXaGVuIGJ1ZmZlciBjb25zaXN0cyBvZiBzdXJy
b2dhdGUgcGFpcnMsIENURm9udEdldFZlcnRpY2FsR2x5cGhzRm9yQ2hhcmFjdGVycyBhbmQgQ1RG
b250R2V0R2x5cGhzRm9yQ2hhcmFjdGVycwogICAgICAgICAvLyBwbGFjZSB0aGUgZ2x5cGhzIGF0
IGluZGljZXMgY29ycmVzcG9uZGluZyB0byB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIGVhY2ggcGFp
ci4KLSAgICAgICAgQVNTRVJUKCEoYnVmZmVyTGVuZ3RoICUgbGVuZ3RoKSAmJiAoYnVmZmVyTGVu
Z3RoIC8gbGVuZ3RoID09IDEgfHwgYnVmZmVyTGVuZ3RoIC8gbGVuZ3RoID09IDIpKTsKLSAgICAg
ICAgdW5zaWduZWQgZ2x5cGhTdGVwID0gYnVmZmVyTGVuZ3RoIC8gbGVuZ3RoOwotICAgICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgQVNTRVJUKGJ1
ZmZlckxlbmd0aCA9PSBHbHlwaFBhZ2U6OnNpemUgfHwgYnVmZmVyTGVuZ3RoID09IDIgKiBHbHlw
aFBhZ2U6OnNpemUpOworICAgICAgICB1bnNpZ25lZCBnbHlwaFN0ZXAgPSBidWZmZXJMZW5ndGgg
LyBHbHlwaFBhZ2U6OnNpemU7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlw
aFBhZ2U6OnNpemU7ICsraSkgewogICAgICAgICAgICAgaWYgKCFnbHlwaHNbaSAqIGdseXBoU3Rl
cF0pCi0gICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwg
MCk7CisgICAgICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgMCwgMCk7CiAgICAg
ICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBzZXRHbHlwaERhdGFGb3JJbmRleChvZmZz
ZXQgKyBpLCBnbHlwaHNbaSAqIGdseXBoU3RlcF0sIGZvbnREYXRhKTsKKyAgICAgICAgICAgICAg
ICBzZXRHbHlwaERhdGFGb3JJbmRleChpLCBnbHlwaHNbaSAqIGdseXBoU3RlcF0sIGZvbnREYXRh
KTsKICAgICAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVWZXJ0aWNhbERhdGEuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09wZW5UeXBlVmVydGljYWxEYXRhLmNwcAkocmV2aXNp
b24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUv
T3BlblR5cGVWZXJ0aWNhbERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MzUsMTMgKzUzNSwx
MyBAQCB2b2lkIE9wZW5UeXBlVmVydGljYWxEYXRhOjpnZXRWZXJ0aWNhbFRyCiAgICAgfQogfQog
Ci12b2lkIE9wZW5UeXBlVmVydGljYWxEYXRhOjpzdWJzdGl0dXRlV2l0aFZlcnRpY2FsR2x5cGhz
KGNvbnN0IEZvbnQqIGZvbnQsIEdseXBoUGFnZSogZ2x5cGhQYWdlLCB1bnNpZ25lZCBvZmZzZXQs
IHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKK3ZvaWQgT3BlblR5cGVWZXJ0aWNhbERhdGE6OnN1YnN0
aXR1dGVXaXRoVmVydGljYWxHbHlwaHMoY29uc3QgRm9udCogZm9udCwgR2x5cGhQYWdlKiBnbHlw
aFBhZ2UpIGNvbnN0CiB7CiAgICAgY29uc3QgSGFzaE1hcDxHbHlwaCwgR2x5cGg+JiBtYXAgPSBt
X3ZlcnRpY2FsR2x5cGhNYXA7CiAgICAgaWYgKG1hcC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGZvciAodW5zaWduZWQgaW5kZXggPSBvZmZzZXQsIGVuZCA9IG9mZnNldCArIGxl
bmd0aDsgaW5kZXggPCBlbmQ7ICsraW5kZXgpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGluZGV4ID0g
MDsgaW5kZXggPCBHbHlwaFBhZ2U6OnNpemU7ICsraW5kZXgpIHsKICAgICAgICAgR2x5cGggZ2x5
cGggPSBnbHlwaFBhZ2UtPmdseXBoQXQoaW5kZXgpOwogICAgICAgICBpZiAoZ2x5cGgpIHsKICAg
ICAgICAgICAgIEFTU0VSVChnbHlwaFBhZ2UtPmdseXBoRGF0YUZvckluZGV4KGluZGV4KS5mb250
ID09IGZvbnQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5
cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9PcGVuVHlwZVZlcnRpY2FsRGF0YS5oCShyZXZpc2lv
biAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZS9P
cGVuVHlwZVZlcnRpY2FsRGF0YS5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw3ICs1MCw3IEBAIHB1
YmxpYzoKICAgICBib29sIGhhc1ZlcnRpY2FsTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuICFtX2Fk
dmFuY2VIZWlnaHRzLmlzRW1wdHkoKTsgfQogICAgIGZsb2F0IGFkdmFuY2VIZWlnaHQoY29uc3Qg
Rm9udCosIEdseXBoKSBjb25zdDsKICAgICB2b2lkIGdldFZlcnRpY2FsVHJhbnNsYXRpb25zRm9y
R2x5cGhzKGNvbnN0IEZvbnQqLCBjb25zdCBHbHlwaCosIHNpemVfdCwgZmxvYXQqIG91dFhZQXJy
YXkpIGNvbnN0OwotICAgIHZvaWQgc3Vic3RpdHV0ZVdpdGhWZXJ0aWNhbEdseXBocyhjb25zdCBG
b250KiwgR2x5cGhQYWdlKiwgdW5zaWduZWQgb2Zmc2V0LCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0
OworICAgIHZvaWQgc3Vic3RpdHV0ZVdpdGhWZXJ0aWNhbEdseXBocyhjb25zdCBGb250KiwgR2x5
cGhQYWdlKikgY29uc3Q7CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgT3BlblR5cGVWZXJ0aWNh
bERhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ0dXaW4uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HbHlwaFBhZ2VUcmVlTm9k
ZUNHV2luLmNwcAkocmV2aXNpb24gMTg5MjA2KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2RlQ0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNCwyMiArMzQsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1ib29sIEdseXBoUGFn
ZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwg
dW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250KiBmb250RGF0YSkKK2Jvb2wgR2x5cGhQ
YWdlOjpmaWxsKFVDaGFyKiBidWZmZXIsIHVuc2lnbmVkIGJ1ZmZlckxlbmd0aCwgY29uc3QgRm9u
dCogZm9udERhdGEpCiB7CiAgICAgLy8gYnVmZmVyTGVuZ3RoIHdpbGwgYmUgZ3JlYXRlciB0aGFu
IHRoZSByZXF1ZXN0ZWQgbnVtYmVyIG9mIGdseXBocyBpZiB0aGUgYnVmZmVyIGNvbnRhaW5zIHN1
cnJvZ2F0ZSBwYWlycy4KICAgICAvLyBXZSB3b24ndCBzdXBwb3J0IHRoaXMgZm9yIG5vdy4KLSAg
ICBpZiAoYnVmZmVyTGVuZ3RoID4gbGVuZ3RoKQorICAgIGlmIChidWZmZXJMZW5ndGggPiBHbHlw
aFBhZ2U6OnNpemUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgaGF2ZUdseXBo
cyA9IGZhbHNlOwogICAgIENHR2x5cGggbG9jYWxHbHlwaEJ1ZmZlcltHbHlwaFBhZ2U6OnNpemVd
OwogICAgIHdrR2V0R2x5cGhzKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5jZ0ZvbnQoKSwgYnVm
ZmVyLCBsb2NhbEdseXBoQnVmZmVyLCBidWZmZXJMZW5ndGgpOwotICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBH
bHlwaFBhZ2U6OnNpemU7IGkrKykgewogICAgICAgICBHbHlwaCBnbHlwaCA9IGxvY2FsR2x5cGhC
dWZmZXJbaV07CiAgICAgICAgIGlmICghZ2x5cGgpCi0gICAgICAgICAgICBzZXRHbHlwaERhdGFG
b3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAgICAgICAgIHNldEdseXBoRGF0YUZvcklu
ZGV4KGksIDAsIDApOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIHNldEdseXBoRGF0YUZv
ckluZGV4KG9mZnNldCArIGksIGdseXBoLCBmb250RGF0YSk7CisgICAgICAgICAgICBzZXRHbHlw
aERhdGFGb3JJbmRleChpLCBnbHlwaCwgZm9udERhdGEpOwogICAgICAgICAgICAgaGF2ZUdseXBo
cyA9IHRydWU7CiAgICAgICAgIH0KICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dseXBoUGFnZVRyZWVOb2Rl
Q2Fpcm9XaW4uY3BwCShyZXZpc2lvbiAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vR2x5cGhQYWdlVHJlZU5vZGVDYWlyb1dpbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDExICszNCwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWJvb2wgR2x5
cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBVQ2hhciogYnVm
ZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnREYXRhKQorYm9vbCBH
bHlwaFBhZ2U6OmZpbGwoVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25z
dCBGb250KiBmb250RGF0YSkKIHsKICAgICAvLyBidWZmZXJMZW5ndGggd2lsbCBiZSBncmVhdGVy
IHRoYW4gdGhlIHJlcXVlc3RlZCBudW1iZXIgb2YgZ2x5cGhzIGlmIHRoZSBidWZmZXIgY29udGFp
bnMgc3Vycm9nYXRlIHBhaXJzLgogICAgIC8vIFdlIHdvbid0IHN1cHBvcnQgdGhpcyBmb3Igbm93
LgotICAgIGlmIChidWZmZXJMZW5ndGggPiBsZW5ndGgpCisgICAgaWYgKGJ1ZmZlckxlbmd0aCA+
IEdseXBoUGFnZTo6c2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBoYXZl
R2x5cGhzID0gZmFsc2U7CkBAIC01MSwxMiArNTEsMTIgQEAgYm9vbCBHbHlwaFBhZ2U6OmZpbGwo
dW5zaWduZWQgb2Zmc2V0LCB1bgogICAgIERXT1JEIHJlc3VsdCA9IEdldEdseXBoSW5kaWNlcyhk
YywgYnVmZmVyLCBidWZmZXJMZW5ndGgsIGxvY2FsR2x5cGhCdWZmZXIsIEdHSV9NQVJLX05PTkVY
SVNUSU5HX0dMWVBIUyk7CiAgICAgYm9vbCBzdWNjZXNzID0gcmVzdWx0ICE9IEdESV9FUlJPUiAm
JiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVzdWx0KSA9PSBidWZmZXJMZW5ndGg7CiAgICAgaWYg
KHN1Y2Nlc3MpIHsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgaSsr
KSB7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBHbHlwaFBhZ2U6OnNpemU7IGkr
KykgewogICAgICAgICAgICAgR2x5cGggZ2x5cGggPSBsb2NhbEdseXBoQnVmZmVyW2ldOwogICAg
ICAgICAgICAgaWYgKGdseXBoID09IDB4ZmZmZikKLSAgICAgICAgICAgICAgICBzZXRHbHlwaERh
dGFGb3JJbmRleChvZmZzZXQgKyBpLCAwLCAwKTsKKyAgICAgICAgICAgICAgICBzZXRHbHlwaERh
dGFGb3JJbmRleChpLCAwLCAwKTsKICAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IHNldEdseXBoRGF0YUZvckluZGV4KG9mZnNldCArIGksIGdseXBoLCBmb250RGF0YSk7CisgICAg
ICAgICAgICAgICAgc2V0R2x5cGhEYXRhRm9ySW5kZXgoaSwgZ2x5cGgsIGZvbnREYXRhKTsKICAg
ICAgICAgICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCShyZXZpc2lvbiAxODkyMDYpCisr
KyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
MDQsNyArMjA0LDcgQEAgYm9vbCBTVkdGb250RGF0YTo6YXBwbHlTVkdHbHlwaFNlbGVjdGlvbgog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBTVkdGb250RGF0YTo6ZmlsbFNWR0dseXBoUGFn
ZShHbHlwaFBhZ2UqIHBhZ2VUb0ZpbGwsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
LCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBidWZmZXJMZW5ndGgsIGNvbnN0IEZvbnQqIGZvbnQp
IGNvbnN0Citib29sIFNWR0ZvbnREYXRhOjpmaWxsU1ZHR2x5cGhQYWdlKEdseXBoUGFnZSogcGFn
ZVRvRmlsbCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVyTGVuZ3RoLCBjb25zdCBGb250
KiBmb250KSBjb25zdAogewogICAgIEFTU0VSVChmb250LT5pc0N1c3RvbUZvbnQoKSk7CiAgICAg
QVNTRVJUKGZvbnQtPmlzU1ZHRm9udCgpKTsKQEAgLTIxNSwyMiArMjE1LDIyIEBAIGJvb2wgU1ZH
Rm9udERhdGE6OmZpbGxTVkdHbHlwaFBhZ2UoR2x5cGgKICAgICBTVkdGb250RWxlbWVudCogZm9u
dEVsZW1lbnQgPSBmb250RmFjZUVsZW1lbnQtPmFzc29jaWF0ZWRGb250RWxlbWVudCgpOwogICAg
IEFTU0VSVChmb250RWxlbWVudCk7CiAKLSAgICBpZiAoYnVmZmVyTGVuZ3RoID09IGxlbmd0aCkK
LSAgICAgICAgcmV0dXJuIGZpbGxCTVBHbHlwaHMoZm9udEVsZW1lbnQsIHBhZ2VUb0ZpbGwsIG9m
ZnNldCwgbGVuZ3RoLCBidWZmZXIsIGZvbnQpOworICAgIGlmIChidWZmZXJMZW5ndGggPT0gR2x5
cGhQYWdlOjpzaXplKQorICAgICAgICByZXR1cm4gZmlsbEJNUEdseXBocyhmb250RWxlbWVudCwg
cGFnZVRvRmlsbCwgYnVmZmVyLCBmb250KTsKIAotICAgIEFTU0VSVChidWZmZXJMZW5ndGggPT0g
MiAqIGxlbmd0aCk7Ci0gICAgcmV0dXJuIGZpbGxOb25CTVBHbHlwaHMoZm9udEVsZW1lbnQsIHBh
Z2VUb0ZpbGwsIG9mZnNldCwgbGVuZ3RoLCBidWZmZXIsIGZvbnQpOworICAgIEFTU0VSVChidWZm
ZXJMZW5ndGggPT0gMiAqIEdseXBoUGFnZTo6c2l6ZSk7CisgICAgcmV0dXJuIGZpbGxOb25CTVBH
bHlwaHMoZm9udEVsZW1lbnQsIHBhZ2VUb0ZpbGwsIGJ1ZmZlciwgZm9udCk7CiB9CiAKLWJvb2wg
U1ZHRm9udERhdGE6OmZpbGxCTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVtZW50LCBH
bHlwaFBhZ2UqIHBhZ2VUb0ZpbGwsIHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3RoLCBV
Q2hhciogYnVmZmVyLCBjb25zdCBGb250KiBmb250KSBjb25zdAorYm9vbCBTVkdGb250RGF0YTo6
ZmlsbEJNUEdseXBocyhTVkdGb250RWxlbWVudCogZm9udEVsZW1lbnQsIEdseXBoUGFnZSogcGFn
ZVRvRmlsbCwgVUNoYXIqIGJ1ZmZlciwgY29uc3QgRm9udCogZm9udCkgY29uc3QKIHsKICAgICBi
b29sIGhhdmVHbHlwaHMgPSBmYWxzZTsKICAgICBWZWN0b3I8U1ZHR2x5cGg+IGdseXBoczsKLSAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgR2x5cGhQYWdlOjpzaXplOyArK2kpIHsKICAgICAgICAgU3RyaW5nIGxv
b2t1cFN0cmluZyhidWZmZXIgKyBpLCAxKTsKICAgICAgICAgZm9udEVsZW1lbnQtPmNvbGxlY3RH
bHlwaHNGb3JTdHJpbmcobG9va3VwU3RyaW5nLCBnbHlwaHMpOwogICAgICAgICBpZiAoZ2x5cGhz
LmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5k
ZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAgICAgICAgICBwYWdlVG9GaWxsLT5zZXRHbHlwaERh
dGFGb3JJbmRleChpLCAwLCAwKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAK
QEAgLTIzOSwyMyArMjM5LDIzIEBAIGJvb2wgU1ZHRm9udERhdGE6OmZpbGxCTVBHbHlwaHMoU1ZH
Rm9udEUKICAgICAgICAgLy8gY2FyZSBvZiBtYXRjaGluZyB0byB0aGUgY29ycmVjdCBnbHlwaCwg
aWYgbXVsdGlwbGUgb25lcyBhcmUgYXZhaWxhYmxlLCBhcyB0aGF0J3MKICAgICAgICAgLy8gb25s
eSBwb3NzaWJsZSB3aXRoaW4gdGhlIGNvbnRleHQgb2YgYSBzdHJpbmcgKGVnLiBhcmFiaWMgZm9y
bSBtYXRjaGluZykuCiAgICAgICAgIGhhdmVHbHlwaHMgPSB0cnVlOwotICAgICAgICBwYWdlVG9G
aWxsLT5zZXRHbHlwaERhdGFGb3JJbmRleChvZmZzZXQgKyBpLCBnbHlwaHMuZmlyc3QoKS50YWJs
ZUVudHJ5LCBmb250KTsKKyAgICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgo
aSwgZ2x5cGhzLmZpcnN0KCkudGFibGVFbnRyeSwgZm9udCk7CiAgICAgICAgIGdseXBocy5jbGVh
cigpOwogICAgIH0KIAogICAgIHJldHVybiBoYXZlR2x5cGhzOwogfQogCi1ib29sIFNWR0ZvbnRE
YXRhOjpmaWxsTm9uQk1QR2x5cGhzKFNWR0ZvbnRFbGVtZW50KiBmb250RWxlbWVudCwgR2x5cGhQ
YWdlKiBwYWdlVG9GaWxsLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIq
IGJ1ZmZlciwgY29uc3QgRm9udCogZm9udCkgY29uc3QKK2Jvb2wgU1ZHRm9udERhdGE6OmZpbGxO
b25CTVBHbHlwaHMoU1ZHRm9udEVsZW1lbnQqIGZvbnRFbGVtZW50LCBHbHlwaFBhZ2UqIHBhZ2VU
b0ZpbGwsIFVDaGFyKiBidWZmZXIsIGNvbnN0IEZvbnQqIGZvbnQpIGNvbnN0CiB7CiAgICAgYm9v
bCBoYXZlR2x5cGhzID0gZmFsc2U7CiAgICAgVmVjdG9yPFNWR0dseXBoPiBnbHlwaHM7Ci0gICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IEdseXBoUGFnZTo6c2l6ZTsgKytpKSB7CiAgICAgICAgIC8vIEVhY2ggY2hh
cmFjdGVyIGhlcmUgY29uc2lzdHMgb2YgYSBzdXJyb2dhdGUgcGFpcgogICAgICAgICBTdHJpbmcg
bG9va3VwU3RyaW5nKGJ1ZmZlciArIGkgKiAyLCAyKTsKICAgICAgICAgZm9udEVsZW1lbnQtPmNv
bGxlY3RHbHlwaHNGb3JTdHJpbmcobG9va3VwU3RyaW5nLCBnbHlwaHMpOwogICAgICAgICBpZiAo
Z2x5cGhzLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgcGFnZVRvRmlsbC0+c2V0R2x5cGhEYXRh
Rm9ySW5kZXgob2Zmc2V0ICsgaSwgMCwgMCk7CisgICAgICAgICAgICBwYWdlVG9GaWxsLT5zZXRH
bHlwaERhdGFGb3JJbmRleChpLCAwLCAwKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9CiAKQEAgLTI2NCw3ICsyNjQsNyBAQCBib29sIFNWR0ZvbnREYXRhOjpmaWxsTm9uQk1QR2x5
cGhzKFNWR0ZvCiAgICAgICAgIC8vIGNhcmUgb2YgbWF0Y2hpbmcgdG8gdGhlIGNvcnJlY3QgZ2x5
cGgsIGlmIG11bHRpcGxlIG9uZXMgYXJlIGF2YWlsYWJsZSwgYXMgdGhhdCdzCiAgICAgICAgIC8v
IG9ubHkgcG9zc2libGUgd2l0aGluIHRoZSBjb250ZXh0IG9mIGEgc3RyaW5nIChlZy4gYXJhYmlj
IGZvcm0gbWF0Y2hpbmcpLgogICAgICAgICBoYXZlR2x5cGhzID0gdHJ1ZTsKLSAgICAgICAgcGFn
ZVRvRmlsbC0+c2V0R2x5cGhEYXRhRm9ySW5kZXgob2Zmc2V0ICsgaSwgZ2x5cGhzLmZpcnN0KCku
dGFibGVFbnRyeSwgZm9udCk7CisgICAgICAgIHBhZ2VUb0ZpbGwtPnNldEdseXBoRGF0YUZvcklu
ZGV4KGksIGdseXBocy5maXJzdCgpLnRhYmxlRW50cnksIGZvbnQpOwogICAgICAgICBnbHlwaHMu
Y2xlYXIoKTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5oCShyZXZpc2lv
biAxODkyMDYpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuaAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5pdGlh
bGl6ZUZvbnQoRm9udCosIGZsb2F0IGZvbnRTaXplKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGZs
b2F0IHdpZHRoRm9yU1ZHR2x5cGgoR2x5cGgsIGZsb2F0IGZvbnRTaXplKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIGJvb2wgZmlsbFNWR0dseXBoUGFnZShHbHlwaFBhZ2UqLCB1bnNpZ25l
ZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVy
TGVuZ3RoLCBjb25zdCBGb250KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZp
bGxTVkdHbHlwaFBhZ2UoR2x5cGhQYWdlKiwgVUNoYXIqIGJ1ZmZlciwgdW5zaWduZWQgYnVmZmVy
TGVuZ3RoLCBjb25zdCBGb250KikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBib29sIGFwcGx5U1ZH
R2x5cGhTZWxlY3Rpb24oV2lkdGhJdGVyYXRvciYsIEdseXBoRGF0YSYsIGJvb2wgbWlycm9yLCBp
bnQgY3VycmVudENoYXJhY3RlciwgdW5zaWduZWQmIGFkdmFuY2VMZW5ndGgsIFN0cmluZyYgbm9y
bWFsaXplZFNwYWNlc1N0cmluZ0NhY2hlKSBjb25zdDsKIApAQCAtNTAsOCArNTAsOCBAQCBwdWJs
aWM6CiAgICAgZmxvYXQgdmVydGljYWxBZHZhbmNlWSgpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGlj
YWxBZHZhbmNlWTsgfQogCiBwcml2YXRlOgotICAgIGJvb2wgZmlsbEJNUEdseXBocyhTVkdGb250
RWxlbWVudCosIEdseXBoUGFnZSogLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwg
VUNoYXIqIGJ1ZmZlciwgY29uc3QgRm9udCopIGNvbnN0OwotICAgIGJvb2wgZmlsbE5vbkJNUEds
eXBocyhTVkdGb250RWxlbWVudCosIEdseXBoUGFnZSogLCB1bnNpZ25lZCBvZmZzZXQsIHVuc2ln
bmVkIGxlbmd0aCwgVUNoYXIqIGJ1ZmZlciwgY29uc3QgRm9udCopIGNvbnN0OworICAgIGJvb2wg
ZmlsbEJNUEdseXBocyhTVkdGb250RWxlbWVudCosIEdseXBoUGFnZSosIFVDaGFyKiBidWZmZXIs
IGNvbnN0IEZvbnQqKSBjb25zdDsKKyAgICBib29sIGZpbGxOb25CTVBHbHlwaHMoU1ZHRm9udEVs
ZW1lbnQqLCBHbHlwaFBhZ2UqLCBVQ2hhciogYnVmZmVyLCBjb25zdCBGb250KikgY29uc3Q7CiAK
ICAgICBib29sIGFwcGx5VHJhbnNmb3JtcyhHbHlwaEJ1ZmZlckdseXBoKiwgR2x5cGhCdWZmZXJB
ZHZhbmNlKiwgc2l6ZV90LCBUeXBlc2V0dGluZ0ZlYXR1cmVzKSBjb25zdCA9IGRlbGV0ZTsKIAo=
</data>
<flag name="review"
          id="285931"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>