<?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>227376</bug_id>
          
          <creation_ts>2021-06-24 14:00:44 -0700</creation_ts>
          <short_desc>[GPU Process] Canvas drawing never releases any fonts</short_desc>
          <delta_ts>2021-07-13 16:47:46 -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>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227229</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1772447</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-24 14:00:44 -0700</bug_when>
    <thetext>In this function &apos;unusedFontCount&apos; is always equal to zero because m_fontIdentifierToLastRenderingUpdateVersionMap.size() is always equal to m_numberOfFontsUsedInCurrentRenderingUpdate. In other words all the cached fonts are always considered be used by the current RenderingUpdate.

So this function makes an early return through the if-statement:

    if (unusedFontCount &lt; minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount &amp;&amp; unusedFontCount &lt;= maximumUnusedFontCountToSkipRemoval)
        return;

except in one case which is totalFontCount == 0. In this case, the body of this function will be executed but it will do nothing because m_fontIdentifierToLastRenderingUpdateVersionMap is empty.

This means all the fonts are cached always in GPUP. They are removed only under memory pressure through WebPage::releaseMemory() which calls RemoteResourceCacheProxy::releaseMemory().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772448</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-24 14:01:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/79741186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772809</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 16:28:53 -0700</bug_when>
    <thetext>This came from https://bugs.webkit.org/show_bug.cgi?id=227229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772820</commentid>
    <comment_count>3</comment_count>
      <attachid>432314</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 16:50:49 -0700</bug_when>
    <thetext>Created attachment 432314
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772822</commentid>
    <comment_count>4</comment_count>
      <attachid>432314</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 17:00:51 -0700</bug_when>
    <thetext>Comment on attachment 432314
Patch

Getting the same crashes that appeared in https://bugs.webkit.org/show_bug.cgi?id=227229</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772828</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 17:23:11 -0700</bug_when>
    <thetext>Can reproduce the crash with:

run-webkit-tests --debug --no-retry --child-processes=1 --verbose fast/canvas/2d.fillText.gradient.html fast/canvas/2d.getPath.modification.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772830</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 17:25:22 -0700</bug_when>
    <thetext>I can reproduce a crash (which may be a different crash) with this: DYLD_FRAMEWORK_PATH=/Users/mmaxfield/Build/Products/Debug ~/Build/Products/Debug/WebKitTestRunner &quot;file:///Users/mmaxfield/src/WebKit/OpenSource/LayoutTests/fast/canvas/2d.fillText.gradient.html&quot; &quot;file:///Users/mmaxfield/src/WebKit/OpenSource/LayoutTests/fast/canvas/2d.getPath.modification.html&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772847</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 18:39:49 -0700</bug_when>
    <thetext>My theory is that the web process is sending the releaseRemoteResource() message, and then quitting, then a new web process starts up (for the second test, because it has &lt;!-- webkit-test-runner [ InspectorAdditionsEnabled=true ] --&gt;) it creates a new context, and somehow the old message is being delivered to the new context. The new context says &quot;well I don&apos;t have any fonts cached with ID 19&quot; and hits the ASSERT_NOT_REACHED().

If this theory is correct, this is real bad.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772850</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-25 19:12:29 -0700</bug_when>
    <thetext>I think my theory is confirmed. From the point of view of the GPU Process, we see a RemoteRenderingBackend being created with destinationID 16, then it&apos;s destroyed, then we see another RemoteRenderingBackend being created with destinationID 16.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775201</commentid>
    <comment_count>9</comment_count>
      <attachid>433007</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-06 21:15:06 -0700</bug_when>
    <thetext>Created attachment 433007
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775204</commentid>
    <comment_count>10</comment_count>
      <attachid>433007</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-07-06 21:27:51 -0700</bug_when>
    <thetext>Comment on attachment 433007
Patch

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

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:152
&gt; +    if (unusedFontCount &lt; minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount &amp;&amp; unusedFontCount &lt;= maximumUnusedFontCountToSkipRemoval) {
&gt; +        prepareForNextRenderingUpdate();

It would be clearer to move all the font releasing code into a new function, so that this early return is less confusing. It would be too easy to add code below that is not font related.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775484</commentid>
    <comment_count>11</comment_count>
      <attachid>433083</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-07 15:19:04 -0700</bug_when>
    <thetext>Created attachment 433083
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776057</commentid>
    <comment_count>12</comment_count>
      <attachid>433083</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-09 13:01:51 -0700</bug_when>
    <thetext>Comment on attachment 433083
Patch

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

Do we need to change RemoteResourceCacheProxy::cacheFont()? See your comment about it in https://bugs.webkit.org/show_bug.cgi?id=227229#c3 and consider when m_currentRenderingUpdateVersion is zero?

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:152
&gt;      if (unusedFontCount &lt; minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount &amp;&amp; unusedFontCount &lt;= maximumUnusedFontCountToSkipRemoval)
&gt;          return;

Do we need to change this if-statement or change maximumUnusedFontCountToSkipRemoval from being zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776061</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-09 13:09:28 -0700</bug_when>
    <thetext>(In reply to Said Abou-Hallawa from comment #12)
&gt; Comment on attachment 433083 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433083&amp;action=review
&gt; 
&gt; Do we need to change RemoteResourceCacheProxy::cacheFont()? See your comment
&gt; about it in https://bugs.webkit.org/show_bug.cgi?id=227229#c3 and consider
&gt; when m_currentRenderingUpdateVersion is zero?

Nope, because this patch doesn&apos;t reset m_currentRenderingUpdateVersion to zero. m_currentRenderingUpdateVersion is a uint64_t so we aren&apos;t in danger of it overflowing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776062</commentid>
    <comment_count>14</comment_count>
      <attachid>433083</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-09 13:10:21 -0700</bug_when>
    <thetext>Comment on attachment 433083
Patch

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

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:152
&gt;&gt;          return;
&gt; 
&gt; Do we need to change this if-statement or change maximumUnusedFontCountToSkipRemoval from being zero?

Good idea. I&apos;ll upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776064</commentid>
    <comment_count>15</comment_count>
      <attachid>433236</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-07-09 13:13:27 -0700</bug_when>
    <thetext>Created attachment 433236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776086</commentid>
    <comment_count>16</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-07-09 15:00:47 -0700</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #13)
&gt; (In reply to Said Abou-Hallawa from comment #12)
&gt; &gt; Comment on attachment 433083 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=433083&amp;action=review
&gt; &gt; 
&gt; &gt; Do we need to change RemoteResourceCacheProxy::cacheFont()? See your comment
&gt; &gt; about it in https://bugs.webkit.org/show_bug.cgi?id=227229#c3 and consider
&gt; &gt; when m_currentRenderingUpdateVersion is zero?
&gt; 
&gt; Nope, because this patch doesn&apos;t reset m_currentRenderingUpdateVersion to
&gt; zero. m_currentRenderingUpdateVersion is a uint64_t so we aren&apos;t in danger
&gt; of it overflowing.

I just realized we initialize m_currentRenderingUpdateVersion with { 1 }. My question was based on the assumption that it is initialized with { 0 }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776140</commentid>
    <comment_count>17</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-10 09:56:44 -0700</bug_when>
    <thetext>Committed r279806 (239570@main): &lt;https://commits.webkit.org/239570@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433236.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776803</commentid>
    <comment_count>18</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-07-13 16:47:46 -0700</bug_when>
    <thetext>It looks like the changes in https://trac.webkit.org/changeset/279806/webkit

Broke two tests:
inspector/canvas/recording-webgl-snapshots.html
inspector/canvas/requestClientNodes-css.html

History:
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;test=inspector%2Fcanvas%2Frecording-webgl-snapshots.html&amp;test=inspector%2Fcanvas%2FrequestClientNodes-css.html

tracking in https://bugs.webkit.org/show_bug.cgi?id=227929</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432314</attachid>
            <date>2021-06-25 16:50:49 -0700</date>
            <delta_ts>2021-07-06 21:15:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227376-20210625165048.patch</filename>
            <type>text/plain</type>
            <size>5172</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDczZDBkM2FjMGU4MmUxZTIz
NWNlZjIyOWRmZDA4OTYyYWI2NGM3NDAuLjJhNzFjODY5MTI3NTc0ZGM5YzVmYTQ5Zjc4NDc1Yjcx
MWQ4YTk5NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDYtMjUgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IENhbnZhcyBkcmF3aW5nIG5ldmVyIHJlbGVhc2VzIGFueSBmb250cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Mzc2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTc0MTE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSBoYXZlIGEgZnJhbWUgY291bnRlciB3aGljaCBtYWtlcyBzdXJlIHRoYXQg
Zm9udHMgd2hpY2ggaGF2ZW4ndCBiZWVuIHVzZWQgaW4gbiBmcmFtZXMgZ2V0IHJlbGVhc2VkLgor
ICAgICAgICBIb3dldmVyLCB3ZSBjdXJyZW50bHkgb25seSB1cGRhdGUgdGhlIGZyYW1lIGNvdW50
ZXIgd2hlbiB3ZSByZWxlYXNlIGZvbnRzLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGZy
YW1lIGNvdW50ZXIgc3RheXMgMCBmb3JldmVyLiBBbmQgd2UgbmV2ZXIgcmVsZWFzZSBhbnkgZm9u
dHMuCisKKyAgICAgICAgVGhlIGZpeCBpcyBqdXN0IHRvIGluY3JlbWVudCB0aGUgZnJhbWUgY291
bnRlciBldmVuIGlmIHdlIGRvbid0IHJlbGVhc2UgYW55IGZvbnRzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGFyY2hpdGVjdHVyYWwgYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpw
cmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdh
c0Rlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cmVsZWFzZU1lbW9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjEtMDYtMjQgIFZlbmt5IERhc3MgIDx5YXJhbmFt
YXZlbmthdGFyYW1hbmFAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGluIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkIGFmdGVyIHByb3Zpc2lv
bmFsTG9hZGVyIGlzIGdvbmUuIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmlu
ZGV4IDg0ODdiYTZlOWE4NjliZmNlNzI5ODFkOGFhOWViNjllNDFkNmI3ZDguLjcwOGFmZDNlN2Yw
YTc2ZmYzNDllNzM1YWExOTFkYjViMDgzYWM1MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5jcHAKQEAgLTEyNSw2ICsxMjUsMTggQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUK
ICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICArK21fY3Vy
cmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3Vy
cmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpjbGVhckZvbnRNYXAoKQoreworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJp
bmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3Vy
cmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7Cit9CisKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciB1bnNpZ25lZCBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUgPSA0
OwpAQCAtMTM0LDE2ICsxNDYsMTcgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRp
ZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKICAgICB1bnNpZ25lZCB0b3RhbEZvbnRDb3VudCA9
IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnNpemUoKTsK
ICAgICBSRUxFQVNFX0FTU0VSVChtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5n
VXBkYXRlIDw9IHRvdGFsRm9udENvdW50KTsKICAgICB1bnNpZ25lZCB1bnVzZWRGb250Q291bnQg
PSB0b3RhbEZvbnRDb3VudCAtIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdV
cGRhdGU7Ci0gICAgaWYgKHVudXNlZEZvbnRDb3VudCA8IG1pbmltdW1GcmFjdGlvbk9mVW51c2Vk
Rm9udENvdW50VG9UcmlnZ2VyUmVtb3ZhbCAqIHRvdGFsRm9udENvdW50ICYmIHVudXNlZEZvbnRD
b3VudCA8PSBtYXhpbXVtVW51c2VkRm9udENvdW50VG9Ta2lwUmVtb3ZhbCkKKyAgICBpZiAodW51
c2VkRm9udENvdW50IDwgbWluaW11bUZyYWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1RyaWdnZXJS
ZW1vdmFsICogdG90YWxGb250Q291bnQgJiYgdW51c2VkRm9udENvdW50IDw9IG1heGltdW1VbnVz
ZWRGb250Q291bnRUb1NraXBSZW1vdmFsKSB7CisgICAgICAgIHByZXBhcmVGb3JOZXh0UmVuZGVy
aW5nVXBkYXRlKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBmb3IgKGF1dG8mIGl0
ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewog
ICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUg
Pj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQogICAgICAgICAg
ICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0
ZW0ua2V5KTsKICAgICB9CiAKLSAgICArK21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247
Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7Cisg
ICAgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQpAQCAtMTU1
LDE0ICsxNjgsMTIgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291
cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Y2xlYXJCYWNrZW5k
KCk7CiAgICAgfQogICAgIG1fbmF0aXZlSW1hZ2VzLmNsZWFyKCk7Ci0gICAgbV9mb250SWRlbnRp
ZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKLSAgICBtX251bWJl
ck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBjbGVhckZvbnRN
YXAoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VNZW1vcnko
KQogewotICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFw
LmNsZWFyKCk7Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0
ZSA9IDA7CisgICAgY2xlYXJGb250TWFwKCk7CiAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuZGVsZXRlQWxsRm9udHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmgKaW5kZXggZjZiNWZiNzgxODE3NmViNjkxNWM1NzY5YmQ5M2FjZjc4YjI0YmU5Zi4uZDYwNGFm
YWFhYTBhZjA1NWE5ZWQxMmZlYzIwZjFlYmMzODcyNjQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oCkBAIC02Miw2ICs2Miw4IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgTmF0aXZl
SW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIsIFdlYWtQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+PjsKICAgICAKICAgICB2b2lkIHJlbGVh
c2VOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJy
aWRlOworICAgIHZvaWQgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lk
IGNsZWFyRm9udE1hcCgpOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJz
OwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433007</attachid>
            <date>2021-07-06 21:15:06 -0700</date>
            <delta_ts>2021-07-07 15:19:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227376-20210706211506.patch</filename>
            <type>text/plain</type>
            <size>5626</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRlOTVmMDBkMmYwMjVjZjdi
MGM0YjNmODJiYjZjYTc4NTM3MGIyZmUuLjgwZDA0ZTQzMGY4MGU4NzAxM2Y1NjZlNTkzZTJlYmQy
YjE5NzQxMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDctMDYgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IENhbnZhcyBkcmF3aW5nIG5ldmVyIHJlbGVhc2VzIGFueSBmb250cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Mzc2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTc0MTE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSBoYXZlIGEgZnJhbWUgY291bnRlciB3aGljaCBtYWtlcyBzdXJlIHRoYXQg
Zm9udHMgd2hpY2ggaGF2ZW4ndCBiZWVuIHVzZWQgaW4gbiBmcmFtZXMgZ2V0IHJlbGVhc2VkLgor
ICAgICAgICBIb3dldmVyLCB3ZSBjdXJyZW50bHkgb25seSB1cGRhdGUgdGhlIGZyYW1lIGNvdW50
ZXIgd2hlbiB3ZSByZWxlYXNlIGZvbnRzLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGZy
YW1lIGNvdW50ZXIgc3RheXMgMCBmb3JldmVyLiBBbmQgd2UgbmV2ZXIgcmVsZWFzZSBhbnkgZm9u
dHMuCisKKyAgICAgICAgVGhlIGZpeCBpcyBqdXN0IHRvIGluY3JlbWVudCB0aGUgZnJhbWUgY291
bnRlciBldmVuIGlmIHdlIGRvbid0IHJlbGVhc2UgYW55IGZvbnRzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGFyY2hpdGVjdHVyYWwgYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpw
cmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdh
c0Rlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cmVsZWFzZU1lbW9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjEtMDctMDYgIFJ5b3N1a2UgTml3YSAgPHJuaXdh
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGVwbG95IHNtYXJ0IHBvaW50ZXJzIGluIEV2ZW50SGFu
ZGxlciBhbmQgVXNlcklucHV0QnJpZGdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5j
cHAKaW5kZXggODQ4N2JhNmU5YTg2OWJmY2U3Mjk4MWQ4YWE5ZWI2OWU0MWQ2YjdkOC4uMDg1YjQy
NjM5OGIwZTFkNDFhZjQ0OTdlYjFmMTc1MmRjZTUyOThhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5LmNwcApAQCAtMTI1LDYgKzEyNSwyMCBAQCB2b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZQogICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNv
dXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogfQogCit2b2lkIFJlbW90ZVJlc291
cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKQoreworICAgICsr
bV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKKyAgICBtX251bWJlck9mRm9udHNVc2Vk
SW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OmNsZWFyRm9udE1hcCgpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDogbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApCisgICAgICAgIG1fcmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShpdGVtLmtleSk7
CisgICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xl
YXIoKTsKKyAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0g
MDsKK30KKwogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkKIHsKICAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1SZW5k
ZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSA9IDQ7CkBAIC0xMzQsMTYgKzE0OCwyNCBA
QCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRh
dGUoKQogICAgIHVuc2lnbmVkIHRvdGFsRm9udENvdW50ID0gbV9mb250SWRlbnRpZmllclRvTGFz
dFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuc2l6ZSgpOwogICAgIFJFTEVBU0VfQVNTRVJUKG1f
bnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPD0gdG90YWxGb250Q291
bnQpOwogICAgIHVuc2lnbmVkIHVudXNlZEZvbnRDb3VudCA9IHRvdGFsRm9udENvdW50IC0gbV9u
dW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZTsKLSAgICBpZiAodW51c2Vk
Rm9udENvdW50IDwgbWluaW11bUZyYWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1RyaWdnZXJSZW1v
dmFsICogdG90YWxGb250Q291bnQgJiYgdW51c2VkRm9udENvdW50IDw9IG1heGltdW1VbnVzZWRG
b250Q291bnRUb1NraXBSZW1vdmFsKQorICAgIGlmICh1bnVzZWRGb250Q291bnQgPCBtaW5pbXVt
RnJhY3Rpb25PZlVudXNlZEZvbnRDb3VudFRvVHJpZ2dlclJlbW92YWwgKiB0b3RhbEZvbnRDb3Vu
dCAmJiB1bnVzZWRGb250Q291bnQgPD0gbWF4aW11bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92
YWwpIHsKKyAgICAgICAgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAg
cmV0dXJuOworICAgIH0KIAorICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyPiB0b1JlbW92ZTsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlm
aWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJy
ZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmlu
Z1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQorICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNv
dW50VG9LZWVwRm9udEFsaXZlKSB7CisgICAgICAgICAgICB0b1JlbW92ZS5hZGQoaXRlbS5rZXkp
OwogICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90
ZVJlc291cmNlKGl0ZW0ua2V5KTsKKyAgICAgICAgfQogICAgIH0KIAotICAgICsrbV9jdXJyZW50
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKLSAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50
UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbk1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYgYnVja2V0KSB7CisgICAg
ICAgIHJldHVybiB0b1JlbW92ZS5jb250YWlucyhidWNrZXQua2V5KTsKKyAgICB9KTsKKworICAg
IHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKCkKQEAgLTE1NSwx
NCArMTc3LDEyIEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJj
ZUNhY2hlV2FzRGVzdHJveWVkKCkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNsZWFyQmFja2VuZCgp
OwogICAgIH0KICAgICBtX25hdGl2ZUltYWdlcy5jbGVhcigpOwotICAgIG1fZm9udElkZW50aWZp
ZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7Ci0gICAgbV9udW1iZXJP
ZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgY2xlYXJGb250TWFw
KCk7CiB9CiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTWVtb3J5KCkK
IHsKLSAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5j
bGVhcigpOwotICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUg
PSAwOworICAgIGNsZWFyRm9udE1hcCgpOwogICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LmRlbGV0ZUFsbEZvbnRzKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
CmluZGV4IGY2YjVmYjc4MTgxNzZlYjY5MTVjNTc2OWJkOTNhY2Y3OGIyNGJlOWYuLmQ2MDRhZmFh
YWEwYWYwNTVhOWVkMTJmZWMyMGYxZWJjMzg3MjY0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHkuaApAQCAtNjIsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIHVzaW5nIE5hdGl2ZUlt
YWdlSGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LCBXZWFrUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPj47CiAgICAgCiAgICAgdm9pZCByZWxlYXNl
TmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCk7CisgICAgdm9pZCBj
bGVhckZvbnRNYXAoKTsKIAogICAgIEltYWdlQnVmZmVySGFzaE1hcCBtX2ltYWdlQnVmZmVyczsK
ICAgICBOYXRpdmVJbWFnZUhhc2hNYXAgbV9uYXRpdmVJbWFnZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433083</attachid>
            <date>2021-07-07 15:19:04 -0700</date>
            <delta_ts>2021-07-09 13:13:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227376-20210707151903.patch</filename>
            <type>text/plain</type>
            <size>5496</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5Njc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdmNDJiNGY1YzQwNTNiNWRj
YTRmMjY4MzU4MjMyZTNmOGI3Y2EzZDUuLmI3NTQ4M2E2ZmQ1ZTY4ZmE1ZTg4ZWRlYjZhYjNkNWY1
MTkwODkyZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDctMDcgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IENhbnZhcyBkcmF3aW5nIG5ldmVyIHJlbGVhc2VzIGFueSBmb250cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Mzc2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTc0MTE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSBoYXZlIGEgZnJhbWUgY291bnRlciB3aGljaCBtYWtlcyBzdXJlIHRoYXQg
Zm9udHMgd2hpY2ggaGF2ZW4ndCBiZWVuIHVzZWQgaW4gbiBmcmFtZXMgZ2V0IHJlbGVhc2VkLgor
ICAgICAgICBIb3dldmVyLCB3ZSBjdXJyZW50bHkgb25seSB1cGRhdGUgdGhlIGZyYW1lIGNvdW50
ZXIgd2hlbiB3ZSByZWxlYXNlIGZvbnRzLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGZy
YW1lIGNvdW50ZXIgc3RheXMgMCBmb3JldmVyLiBBbmQgd2UgbmV2ZXIgcmVsZWFzZSBhbnkgZm9u
dHMuCisKKyAgICAgICAgVGhlIGZpeCBpcyBqdXN0IHRvIGluY3JlbWVudCB0aGUgZnJhbWUgY291
bnRlciBldmVuIGlmIHdlIGRvbid0IHJlbGVhc2UgYW55IGZvbnRzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGFyY2hpdGVjdHVyYWwgYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpw
cmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdh
c0Rlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cmVsZWFzZU1lbW9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjEtMDctMDcgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBbSVRQXSBQb3RlbnRpYWwgYXNzZXJ0aW9uIGhpdCBpbiBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24o
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDg0ODdiYTZlOWE4Njli
ZmNlNzI5ODFkOGFhOWViNjllNDFkNmI3ZDguLjU2ZDg4NmYwMzE1YWQ5ZGExMjZmODEwNjJjMzcw
MzQ2N2YwYzU3YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEy
NSw3ICsxMjUsMjEgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRp
dmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCkKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpwcmVw
YXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpCit7CisgICAgKyttX2N1cnJlbnRSZW5kZXJpbmdV
cGRhdGVWZXJzaW9uOworICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdV
cGRhdGUgPSAwOworfQorCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250
TWFwKCkKK3sKKyAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKKyAgICBtX2ZvbnRJZGVudGlm
aWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5jbGVhcigpOworICAgIG1fbnVtYmVy
T2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOworfQorCit2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpCiB7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291
bnRUb0tlZXBGb250QWxpdmUgPSA0OwogICAgIHN0YXRpYyBjb25zdGV4cHIgZG91YmxlIG1pbmlt
dW1GcmFjdGlvbk9mVW51c2VkRm9udENvdW50VG9UcmlnZ2VyUmVtb3ZhbCA9IDAuMjU7CkBAIC0x
MzcsMTMgKzE1MSwyMyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxp
emVSZW5kZXJpbmdVcGRhdGUoKQogICAgIGlmICh1bnVzZWRGb250Q291bnQgPCBtaW5pbXVtRnJh
Y3Rpb25PZlVudXNlZEZvbnRDb3VudFRvVHJpZ2dlclJlbW92YWwgKiB0b3RhbEZvbnRDb3VudCAm
JiB1bnVzZWRGb250Q291bnQgPD0gbWF4aW11bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92YWwp
CiAgICAgICAgIHJldHVybjsKIAorICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyPiB0b1JlbW92ZTsKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVu
dGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9j
dXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRl
cmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQorICAgICAgICBpZiAobV9jdXJyZW50UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0
ZUNvdW50VG9LZWVwRm9udEFsaXZlKSB7CisgICAgICAgICAgICB0b1JlbW92ZS5hZGQoaXRlbS5r
ZXkpOwogICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJl
bW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKKyAgICAgICAgfQogICAgIH0KIAotICAgICsrbV9jdXJy
ZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKLSAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJy
ZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbk1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYgYnVja2V0KSB7Cisg
ICAgICAgIHJldHVybiB0b1JlbW92ZS5jb250YWlucyhidWNrZXQua2V5KTsKKyAgICB9KTsKK30K
Kwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKCkKK3sKKyAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRzKCk7CisgICAgcHJl
cGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNh
Y2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQpAQCAtMTU1LDE0ICsx
NzksMTIgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2Fj
aGVXYXNEZXN0cm95ZWQoKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Y2xlYXJCYWNrZW5kKCk7CiAg
ICAgfQogICAgIG1fbmF0aXZlSW1hZ2VzLmNsZWFyKCk7Ci0gICAgbV9mb250SWRlbnRpZmllclRv
TGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKLSAgICBtX251bWJlck9mRm9u
dHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBjbGVhckZvbnRNYXAoKTsK
IH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VNZW1vcnkoKQogewot
ICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFy
KCk7Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7
CisgICAgY2xlYXJGb250TWFwKCk7CiAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
ZGVsZXRlQWxsRm9udHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5k
ZXggZjZiNWZiNzgxODE3NmViNjkxNWM1NzY5YmQ5M2FjZjc4YjI0YmU5Zi4uNmQ3MzFjNGNjNWVm
NmVmMzJjMjgwMjlhNWIwMzI0MTNhMTVhNTg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oCkBAIC02Miw2ICs2Miw5IEBAIHByaXZhdGU6CiAgICAgdXNpbmcgTmF0aXZlSW1hZ2VI
YXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdl
YWtQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+PjsKICAgICAKICAgICB2b2lkIHJlbGVhc2VOYXRp
dmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOworICAgIHZvaWQgcHJl
cGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGNsZWFyRm9udE1hcCgpOwog
CiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdl
SGFzaE1hcCBtX25hdGl2ZUltYWdlczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433236</attachid>
            <date>2021-07-09 13:13:27 -0700</date>
            <delta_ts>2021-07-10 09:56:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227376-20210709131326.patch</filename>
            <type>text/plain</type>
            <size>5850</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGFjMjlhNjIxMzgxODBmMDNl
OGQzMDFjMTg1NmMyYzM3Y2M2NTNlMDMuLjM0ZmY0YzJjNWVlNDhiM2U0ZGZlNTgwMWExMjc5YmRl
MGM5MjY3MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjEtMDctMDkgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3Nd
IENhbnZhcyBkcmF3aW5nIG5ldmVyIHJlbGVhc2VzIGFueSBmb250cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3Mzc2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83OTc0MTE4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZSBoYXZlIGEgZnJhbWUgY291bnRlciB3aGljaCBtYWtlcyBzdXJlIHRoYXQg
Zm9udHMgd2hpY2ggaGF2ZW4ndCBiZWVuIHVzZWQgaW4gbiBmcmFtZXMgZ2V0IHJlbGVhc2VkLgor
ICAgICAgICBIb3dldmVyLCB3ZSBjdXJyZW50bHkgb25seSB1cGRhdGUgdGhlIGZyYW1lIGNvdW50
ZXIgd2hlbiB3ZSByZWxlYXNlIGZvbnRzLgorICAgICAgICBUaGlzIG1lYW5zIHRoYXQgdGhlIGZy
YW1lIGNvdW50ZXIgc3RheXMgMCBmb3JldmVyLiBBbmQgd2UgbmV2ZXIgcmVsZWFzZSBhbnkgZm9u
dHMuCisKKyAgICAgICAgVGhlIGZpeCBpcyBqdXN0IHRvIGluY3JlbWVudCB0aGUgZnJhbWUgY291
bnRlciBldmVuIGlmIHdlIGRvbid0IHJlbGVhc2UgYW55IGZvbnRzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cyBiZWNhdXNlIHRoZXJlIGlzIG5vIGFyY2hpdGVjdHVyYWwgYmVoYXZpb3IgY2hhbmdl
LgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpw
cmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6Y2xlYXJGb250TWFwKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdh
c0Rlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cmVsZWFzZU1lbW9yeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjEtMDctMDkgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBWYWxpZGF0ZSBrZXlzIGluIFJlc291cmNlTG9hZFN0YXRp
c3RpY3NEYXRhYmFzZVN0b3JlOjpmaW5kTm90VmVyeVByZXZhbGVudFJlc291cmNlcygpIGJlZm9y
ZSB1c2luZyB0aGVtIHdpdGggSGFzaE1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwCmluZGV4IDg0ODdiYTZlOWE4NjliZmNlNzI5ODFkOGFhOWViNjllNDFkNmI3ZDguLjAzZjM0
YjMzYTIyZGQ0OTI4ZDQyNjBlNDc4NjJkMzkxMzcxMTAxYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEyNSwyNSArMTI1LDQ2IEBAIHZvaWQgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIHJlCiAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJl
c291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCit2b2lkIFJlbW90
ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKQorewor
ICAgICsrbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKKyAgICBtX251bWJlck9mRm9u
dHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKK30KKwordm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmNsZWFyRm9udE1hcCgpCit7CisgICAgZm9yIChhdXRvJiBpdGVtIDog
bV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApCisgICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShpdGVt
LmtleSk7CisgICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25N
YXAuY2xlYXIoKTsKKyAgICBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBk
YXRlID0gMDsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlRm9yRm9udHMoKQogewogICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQg
bWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlID0gNDsKLSAgICBzdGF0
aWMgY29uc3RleHByIGRvdWJsZSBtaW5pbXVtRnJhY3Rpb25PZlVudXNlZEZvbnRDb3VudFRvVHJp
Z2dlclJlbW92YWwgPSAwLjI1OwotICAgIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4aW11
bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92YWwgPSAwOwogCiAgICAgdW5zaWduZWQgdG90YWxG
b250Q291bnQgPSBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1h
cC5zaXplKCk7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVu
dFJlbmRlcmluZ1VwZGF0ZSA8PSB0b3RhbEZvbnRDb3VudCk7Ci0gICAgdW5zaWduZWQgdW51c2Vk
Rm9udENvdW50ID0gdG90YWxGb250Q291bnQgLSBtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50
UmVuZGVyaW5nVXBkYXRlOwotICAgIGlmICh1bnVzZWRGb250Q291bnQgPCBtaW5pbXVtRnJhY3Rp
b25PZlVudXNlZEZvbnRDb3VudFRvVHJpZ2dlclJlbW92YWwgKiB0b3RhbEZvbnRDb3VudCAmJiB1
bnVzZWRGb250Q291bnQgPD0gbWF4aW11bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92YWwpCisg
ICAgaWYgKHRvdGFsRm9udENvdW50ID09IG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5k
ZXJpbmdVcGRhdGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIEhhc2hTZXQ8V2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyPiB0b1JlbW92ZTsKICAgICBmb3IgKGF1dG8mIGl0ZW0g
OiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAg
ICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0g
bWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQorICAgICAgICBpZiAo
bV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJl
bmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKSB7CisgICAgICAgICAgICB0b1JlbW92
ZS5hZGQoaXRlbS5rZXkpOwogICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKKyAgICAgICAgfQogICAgIH0KIAot
ICAgICsrbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKLSAgICBtX251bWJlck9mRm9u
dHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBtX2ZvbnRJZGVudGlmaWVy
VG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5yZW1vdmVJZihbJl0oY29uc3QgYXV0byYg
YnVja2V0KSB7CisgICAgICAgIHJldHVybiB0b1JlbW92ZS5jb250YWlucyhidWNrZXQua2V5KTsK
KyAgICB9KTsKK30KKwordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBmaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZUZvckZvbnRz
KCk7CisgICAgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQpA
QCAtMTU1LDE0ICsxNzYsMTIgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90
ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Y2xlYXJC
YWNrZW5kKCk7CiAgICAgfQogICAgIG1fbmF0aXZlSW1hZ2VzLmNsZWFyKCk7Ci0gICAgbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKLSAgICBt
X251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKKyAgICBjbGVh
ckZvbnRNYXAoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VN
ZW1vcnkoKQogewotICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uTWFwLmNsZWFyKCk7Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmlu
Z1VwZGF0ZSA9IDA7CisgICAgY2xlYXJGb250TWFwKCk7CiAgICAgbV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkuZGVsZXRlQWxsRm9udHMoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmgKaW5kZXggZjZiNWZiNzgxODE3NmViNjkxNWM1NzY5YmQ5M2FjZjc4YjI0YmU5Zi4u
NmQ3MzFjNGNjNWVmNmVmMzJjMjgwMjlhNWIwMzI0MTNhMTVhNTg5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5oCkBAIC02Miw2ICs2Miw5IEBAIHByaXZhdGU6CiAgICAgdXNpbmcg
TmF0aXZlSW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+PjsKICAgICAKICAgICB2b2lk
IHJlbGVhc2VOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
IG92ZXJyaWRlOworICAgIHZvaWQgZmluYWxpemVSZW5kZXJpbmdVcGRhdGVGb3JGb250cygpOwor
ICAgIHZvaWQgcHJlcGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUoKTsKKyAgICB2b2lkIGNsZWFy
Rm9udE1hcCgpOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAg
IE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>