<?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>100863</bug_id>
          
          <creation_ts>2012-10-31 08:39:17 -0700</creation_ts>
          <short_desc>Make defaultTypesettingFeatures a proper setting</short_desc>
          <delta_ts>2012-11-04 03:08:24 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>420+</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>100106</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Allan Sandfeld Jensen">allan.jensen</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>jturcotte</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mitz</cc>
    
    <cc>pierre.rossi</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755327</commentid>
    <comment_count>0</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-31 08:39:17 -0700</bug_when>
    <thetext>While exporting the option to set better default typesetting features to Qt, I ran into the issue that the setting for default typesetting features is a static setting in Font.h rather than a proper page setting. This means its effect is global rather than localized to the current page or context, and that changing it at runtime will not update the rendering automatically.

I solved the issue in a patch for bug #100106, but have decided it would be better to land that part of the patch as a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755349</commentid>
    <comment_count>1</comment_count>
      <attachid>171669</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-31 08:49:37 -0700</bug_when>
    <thetext>Created attachment 171669
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755371</commentid>
    <comment_count>2</comment_count>
      <attachid>171669</attachid>
    <who name="">mitz</who>
    <bug_when>2012-10-31 09:25:00 -0700</bug_when>
    <thetext>Comment on attachment 171669
Patch

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

This breaks Font::setDefaultTypesettingFeatures().

&gt; Source/WebCore/platform/graphics/FontDescription.h:76
&gt; +    enum KerningState { AutoKerning, NormalKerning, NoneKerning };

This renaming appears unrelated to what this patch is trying to do, so it doesn’t belong in this patch.

&gt; Source/WebCore/platform/graphics/FontDescription.h:238
&gt; +    unsigned m_defaultTypesettingFeatures : 2; // Used to control what auto kerning and normal ligatures implies.

What makes this a property of a FontDescription?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755403</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-31 09:54:45 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 171669 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171669&amp;action=review
&gt; 
&gt; This breaks Font::setDefaultTypesettingFeatures().
&gt; 
No, but it does deprecate it. The default value used in Settings is Font::defaultTypesettingFeatures. It is not pretty, but it should work in the existing cases. The patch in bug #100106 also ports WK2 to stop using Font::setDefaultTypesettingFeatures(), which just leaves Mac WK1 which I didn&apos;t touch because it is in ObjC.

&gt; &gt; Source/WebCore/platform/graphics/FontDescription.h:76
&gt; &gt; +    enum KerningState { AutoKerning, NormalKerning, NoneKerning };
&gt; 
&gt; This renaming appears unrelated to what this patch is trying to do, so it doesn’t belong in this patch.
&gt; 
Without it you will get namespace clashes. The problem could also be solved by qualifying Kerning with full namespace, but it made more sense to me to just fix the underlying problem, rather than commiting odd code that break the coding style.

&gt; &gt; Source/WebCore/platform/graphics/FontDescription.h:238
&gt; &gt; +    unsigned m_defaultTypesettingFeatures : 2; // Used to control what auto kerning and normal ligatures implies.
&gt; 
&gt; What makes this a property of a FontDescription?

That other properties of FontDescription depend on it to be fully resolved, see FontDescription::typesettingFeatures(). 

Secondly saving this in FontDescription fits how RenderingMode and usePrinterFont is passed to FontDescription. Both of these are also page settings. And all in all they these settings take up a lot less space than saving a pointer in there instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755421</commentid>
    <comment_count>4</comment_count>
      <attachid>171682</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-10-31 10:17:28 -0700</bug_when>
    <thetext>Created attachment 171682
Patch

Avoid rename and get completely rid of Font::setDefaultTypesettingFeatures. Beware that the objC part has not been tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755486</commentid>
    <comment_count>5</comment_count>
      <attachid>171682</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-31 11:28:35 -0700</bug_when>
    <thetext>Comment on attachment 171682
Patch

Attachment 171682 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14561306</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755758</commentid>
    <comment_count>6</comment_count>
      <attachid>171682</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-31 17:51:05 -0700</bug_when>
    <thetext>Comment on attachment 171682
Patch

Attachment 171682 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14656350

New failing tests:
inspector-protocol/debugger-pause-dedicated-worker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756073</commentid>
    <comment_count>7</comment_count>
      <attachid>171809</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-01 04:16:51 -0700</bug_when>
    <thetext>Created attachment 171809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756096</commentid>
    <comment_count>8</comment_count>
      <attachid>171809</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-01 04:42:57 -0700</bug_when>
    <thetext>Comment on attachment 171809
Patch

Attachment 171809 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14678497</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756102</commentid>
    <comment_count>9</comment_count>
      <attachid>171815</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-01 04:53:52 -0700</bug_when>
    <thetext>Created attachment 171815
Patch

Update exported symbols for Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756370</commentid>
    <comment_count>10</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-01 09:53:25 -0700</bug_when>
    <thetext>What is the usecase for making this configurable at runtime?  This seems very compile time type thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756410</commentid>
    <comment_count>11</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-01 10:20:44 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; What is the usecase for making this configurable at runtime?  This seems very compile time type thing.

Printing, and an option for users with fast machines. We could not compile it in for Qt because it would be too slow for a lot of hardware, but we can offer it as a runtime setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756416</commentid>
    <comment_count>12</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-11-01 10:27:11 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; What is the usecase for making this configurable at runtime?  This seems very compile time type thing.
&gt; 
&gt; Printing

I don’t see how this setting allows a differentiation between printing and screen display. The same Settings are used by the page in both cases. A user or user-agent style sheet for print media that set the font-kerning and font-variant-ligatures inheritable properties on the root element might be a better way to achieve this.

&gt; and an option for users with fast machines

This use case is satisfied by the current global and doesn’t require a per-page(group), dynamic setting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756460</commentid>
    <comment_count>13</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-01 11:04:39 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; and an option for users with fast machines
&gt; 
&gt; This use case is satisfied by the current global and doesn’t require a per-page(group), dynamic setting.

Perhaps, but we have no settings system for user-agent wide settings, we only have the (page) settings. Since there is no system for them, each static settings has their own special API and special quirks and forces us to making special cases all the way up through the all the layers, if want to export them.

Take the example of WebKit2, by making this a setting, exporting it to higher layers comes almost free and it requires no special cases, where having it as a static variable means we need extra parameters to set it at process creation, extra IPC methods to control it at runtime, and extra wrapper methods in both WebProcess, WebProcessProxy and all of the ports APIs individually.

Even if we don&apos;t need it to be a runtime setting, making it one makes the code cleaner and simpler, by using the existing settings system and logic. As I said to begin with, this was originally part of the patch for bug #100106, where it made the patch as a whole simpler and cleaner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756494</commentid>
    <comment_count>14</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-11-01 11:38:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; &gt; and an option for users with fast machines
&gt; &gt; 
&gt; &gt; This use case is satisfied by the current global and doesn’t require a per-page(group), dynamic setting.
&gt; 
&gt; Perhaps, but we have no settings system for user-agent wide settings, we only have the (page) settings. Since there is no system for them, each static settings has their own special API and special quirks and forces us to making special cases all the way up through the all the layers, if want to export them.
&gt; 
&gt; Take the example of WebKit2, by making this a setting, exporting it to higher layers comes almost free and it requires no special cases, where having it as a static variable means we need extra parameters to set it at process creation, extra IPC methods to control it at runtime,

There doesn’t appear to be a use case for controlling this at runtime.

&gt; Even if we don&apos;t need it to be a runtime setting, making it one makes the code cleaner and simpler, by using the existing settings system and logic. As I said to begin with, this was originally part of the patch for bug #100106, where it made the patch as a whole simpler and cleaner.

The behavior needs to be set globally so that it clients of the text system that aren’t tied to a Page (both inside WebCore and in WebKit) will respect it. Making this a setting breaks those clients. Perhaps your patch looks simpler and cleaner to you because it doesn’t address this issue, or because it doesn’t expose the setting via the preferences API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756614</commentid>
    <comment_count>15</comment_count>
      <attachid>171815</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-11-01 14:27:20 -0700</bug_when>
    <thetext>Comment on attachment 171815
Patch

I don&apos;t think Sam meant to r+ this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756624</commentid>
    <comment_count>16</comment_count>
      <attachid>171815</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2012-11-01 14:34:55 -0700</bug_when>
    <thetext>Comment on attachment 171815
Patch

Sam said in person that he meant to r- this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756886</commentid>
    <comment_count>17</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-01 22:09:52 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; and an option for users with fast machines
&gt; &gt; &gt; 
&gt; &gt; &gt; This use case is satisfied by the current global and doesn’t require a per-page(group), dynamic setting.
&gt; &gt; 
&gt; &gt; Perhaps, but we have no settings system for user-agent wide settings, we only have the (page) settings. Since there is no system for them, each static settings has their own special API and special quirks and forces us to making special cases all the way up through the all the layers, if want to export them.
&gt; &gt; 
&gt; &gt; Take the example of WebKit2, by making this a setting, exporting it to higher layers comes almost free and it requires no special cases, where having it as a static variable means we need extra parameters to set it at process creation, extra IPC methods to control it at runtime,
&gt; 
&gt; There doesn’t appear to be a use case for controlling this at runtime.
&gt; 
Then how else whould you change the setting, then? Ask the user to reboot?

&gt; &gt; Even if we don&apos;t need it to be a runtime setting, making it one makes the code cleaner and simpler, by using the existing settings system and logic. As I said to begin with, this was originally part of the patch for bug #100106, where it made the patch as a whole simpler and cleaner.
&gt; 
&gt; The behavior needs to be set globally so that it clients of the text system that aren’t tied to a Page (both inside WebCore and in WebKit) will respect it. Making this a setting breaks those clients. Perhaps your patch looks simpler and cleaner to you because it doesn’t address this issue, or because it doesn’t expose the setting via the preferences API.

That clients of the text system do you have that isn&apos;t tied to a Page? And my patch does expose the setting via the preferences API, that is the entire point of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757034</commentid>
    <comment_count>18</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-02 02:59:03 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #13)
&gt; &gt; There doesn’t appear to be a use case for controlling this at runtime.
&gt; &gt; 
&gt; Then how else whould you change the setting, then? Ask the user to reboot?
&gt; 
Allow me to elaborate on the use-case.

A user might want to enable kerning and live with the performance impact. He enables the feature and immediately sees both the benefit and the performance impact, and can choose whether he wants to keep it or disable. He might also later encounter a longer page with more text and experience the performance impact getting worse and disable it at that point.

So while it is not an option that will be changed a lot, providing it at runtime is essential to the user experience.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758022</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2012-11-03 16:25:14 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (In reply to comment #17)
&gt; &gt; (In reply to comment #14)
&gt; &gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; There doesn’t appear to be a use case for controlling this at runtime.
&gt; &gt; &gt; 
&gt; &gt; Then how else whould you change the setting, then? Ask the user to reboot?
&gt; &gt; 
&gt; Allow me to elaborate on the use-case.
&gt; 
&gt; A user might want to enable kerning and live with the performance impact. He enables the feature and immediately sees both the benefit and the performance impact, and can choose whether he wants to keep it or disable. He might also later encounter a longer page with more text and experience the performance impact getting worse and disable it at that point.
&gt; 
&gt; So while it is not an option that will be changed a lot, providing it at runtime is essential to the user experience.

I don&apos;t think that is compelling enough a reason to complicate the code here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758023</commentid>
    <comment_count>20</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-11-03 16:31:13 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #14)
&gt; &gt; (In reply to comment #13)
&gt; &gt; &gt; (In reply to comment #12)
&gt; &gt; &gt; &gt; &gt; and an option for users with fast machines
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; This use case is satisfied by the current global and doesn’t require a per-page(group), dynamic setting.
&gt; &gt; &gt; 
&gt; &gt; &gt; Perhaps, but we have no settings system for user-agent wide settings, we only have the (page) settings. Since there is no system for them, each static settings has their own special API and special quirks and forces us to making special cases all the way up through the all the layers, if want to export them.
&gt; &gt; &gt; 
&gt; &gt; &gt; Take the example of WebKit2, by making this a setting, exporting it to higher layers comes almost free and it requires no special cases, where having it as a static variable means we need extra parameters to set it at process creation, extra IPC methods to control it at runtime,
&gt; &gt; 
&gt; &gt; There doesn’t appear to be a use case for controlling this at runtime.
&gt; &gt; 
&gt; Then how else whould you change the setting, then? Ask the user to reboot?

Starting a new WebProcess instance would probably suffice, if we wanted to support changing this at runtime.

&gt; 
&gt; &gt; &gt; Even if we don&apos;t need it to be a runtime setting, making it one makes the code cleaner and simpler, by using the existing settings system and logic. As I said to begin with, this was originally part of the patch for bug #100106, where it made the patch as a whole simpler and cleaner.
&gt; &gt; 
&gt; &gt; The behavior needs to be set globally so that it clients of the text system that aren’t tied to a Page (both inside WebCore and in WebKit) will respect it. Making this a setting breaks those clients. Perhaps your patch looks simpler and cleaner to you because it doesn’t address this issue, or because it doesn’t expose the setting via the preferences API.
&gt; 
&gt; That clients of the text system do you have that isn&apos;t tied to a Page?

There are two classes. Within WebCore, there is Theme code that is not Page-aware and there is some Canvas code that operates without a Page. Outside WebCore there is WebKit text API that is not tied to a Page.

&gt; And my patch does expose the setting via the preferences API, that is the entire point of the patch.

The preferences API is the WebKit1 WebPreferences class and the WebKit2 WKPreferences object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758100</commentid>
    <comment_count>21</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-04 03:00:17 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; The preferences API is the WebKit1 WebPreferences class and the WebKit2 WKPreferences object.

Yes? Take a look at the patch for bug #100106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758101</commentid>
    <comment_count>22</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-11-04 03:08:24 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #17)
&gt; &gt; What clients of the text system do you have that isn&apos;t tied to a Page?
&gt; 
&gt; There are two classes. Within WebCore, there is Theme code that is not Page-aware and there is some Canvas code that operates without a Page. Outside WebCore there is WebKit text API that is not tied to a Page.
&gt; 
Interesting, I was not aware of that. That would indeed invalidate my patch. I will take a look at it.(In reply to comment #21)
&gt; (In reply to comment #20)
&gt; &gt; The preferences API is the WebKit1 WebPreferences class and the WebKit2 WKPreferences object.
&gt; 
&gt; Yes? Take a look at the patch for bug #100106

Just in case you missed it. The preferences are in both WebKit and WebKit2 mapped to page settings. Therefore a global setting can not be exported as a preference. We have no design for global settings, just page settings aka preferences.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171669</attachid>
            <date>2012-10-31 08:49:37 -0700</date>
            <delta_ts>2012-10-31 10:17:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100863-20121031164738.patch</filename>
            <type>text/plain</type>
            <size>18008</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNGYzMjEwYTE5OTAy
N2QyNDAxOTliZWM2NTk5ODA0NDIzYTdiOS4uYTY4YWJlMDM3ZTNkM2RiNzYyNGNjMmRiMDI1ZjE5
YmM1YjA1MTA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEyLTEwLTMxICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1h
a2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZXMgdGhlIGRlZmF1bHRU
eXBlc2V0dGluZ0ZlYXR1cmVzIHNldHRpbmcgZnJvbSBiZWluZyBhIHN0YXRpYyB2YXJpYWJsZQor
ICAgICAgICBpbiBGb250LmggdG8gYmVpbmcgYSBwcm9wZXIgcGFnZSBzZXR0aW5nLiAKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSBpdCBhbmQg
ZW5zdXJpbmcgdGhhdCBmdWxsIHJlc3R5bGVzIGFyZSB0cmlnZ2VyZWQuCisKKyAgICAgICAgKiBj
c3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJp
bWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKTogS2VybmluZ1N0YXRlIHJlbmFtZS4KKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250RGVzY3JpcHRp
b246Oktlcm5pbmdTdGF0ZSk6IEtlcm5pbmdTdGF0ZSByZW5hbWUuCisgICAgICAgICogY3NzL1N0
eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZUJ1aWxkZXI6OlN0eWxlQnVp
bGRlcik6IEtlcm5pbmdTdGF0ZSByZW5hbWUuCisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6c3R5bGVGb3JEb2N1bWVudCk6
IFNldCBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcy4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxl
UmVzb2x2ZXI6OmFwcGx5UHJvcGVydHkpOiBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMu
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKTog
U2V0IGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3Mu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdl
YkNvcmU6OlNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAgICAg
ICAgICBFbnN1cmUgd2UgdHJpZ2dlciBhIGZ1bGwgcmVzdHlsZSBzbyB0aGF0IGFsbCB0aGUgZm9u
dC1kZXNjcmlwdGlvbiBoYXZlIHRoZWlyCisgICAgICAgICAgICB0eXBlc2V0dGluZ3MgZmVhdHVy
ZXMgdXBkYXRlZC4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6CisgICAgICAgIChTZXR0aW5n
cyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVy
ZXMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZvbnQ6OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAgICAgTW92ZSB0aGlzIGZ1
bmN0aW9ucyB0byBGb250RGVzY3JpcHRpb24gc2luY2UgaXQgZG9lcyBub3QgZGVwZW5kIG9uIGFu
eXRoaW5nIGluIEZvbnQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlwdGlv
bik6IAorICAgICAgICAgICAgUmVuYW1lIEZvbnREZXNjcmlwdGlvbjo6S2VybmluZyB0byBGb250
RGVzY3JpcHRpb246Oktlcm5pbmdTdGF0ZSB0byBub3QgY2xhc2gKKyAgICAgICAgICAgIHdpdGgg
V2ViQ29yZTo6S2VybmluZy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6ZGVm
YXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0
aW9uOjprZXJuaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0RGVm
YXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0
aW9uOjpzZXRLZXJuaW5nKToKKyAgICAgICAgKEZvbnREZXNjcmlwdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkpOiBTZXQgZGVm
YXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMuCisKIDIwMTItMTAtMzEgIElhbiBWb2xsaWNrICA8dm9s
bGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRleHQtYmFzZWQg
cmVwYWludCB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWVNYXBwaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVl
TWFwcGluZ3MuaAppbmRleCA2YmU4ZTNhYzFiZmViNGViODNkOTM0ZGJlMWVmNDQ0YzZlN2U4NjUz
Li42Y2UyYWQxNDM4OTA2NjRhYjA4YzJmNmI3MDUyMTc1Mzc1MDc0ZDliIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWVNYXBwaW5ncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZU1hcHBpbmdzLmgKQEAgLTI5NzYsNyArMjk3
Niw3IEBAIHRlbXBsYXRlPD4gaW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBFUG9p
bnRlckV2ZW50cygpIGNvbnN0CiAgICAgcmV0dXJuIFBFX0FMTDsKIH0KIAotdGVtcGxhdGU8PiBp
bmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnREZXNjcmlwdGlv
bjo6S2VybmluZyBrZXJuaW5nKQordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnREZXNjcmlwdGlvbjo6S2VybmluZ1N0YXRlIGtlcm5pbmcp
CiAgICAgOiBDU1NWYWx1ZShQcmltaXRpdmVDbGFzcykKIHsKICAgICBtX3ByaW1pdGl2ZVVuaXRU
eXBlID0gQ1NTX0lERU5UOwpAQCAtMjk5Niw3ICsyOTk2LDcgQEAgdGVtcGxhdGU8PiBpbmxpbmUg
Q1NTUHJpbWl0aXZlVmFsdWU6OkNTU1ByaW1pdGl2ZVZhbHVlKEZvbnREZXNjcmlwdGlvbjo6S2Vy
bmluZwogICAgIG1fdmFsdWUuaWRlbnQgPSBDU1NWYWx1ZUF1dG87CiB9CiAKLXRlbXBsYXRlPD4g
aW5saW5lIENTU1ByaW1pdGl2ZVZhbHVlOjpvcGVyYXRvciBGb250RGVzY3JpcHRpb246Oktlcm5p
bmcoKSBjb25zdAordGVtcGxhdGU8PiBpbmxpbmUgQ1NTUHJpbWl0aXZlVmFsdWU6Om9wZXJhdG9y
IEZvbnREZXNjcmlwdGlvbjo6S2VybmluZ1N0YXRlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKG1f
dmFsdWUuaWRlbnQpIHsKICAgICBjYXNlIENTU1ZhbHVlQXV0bzoKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
QnVpbGRlci5jcHAKaW5kZXggMDUwMWRjOWQxMzMyYjc2OGJjN2IxM2M0YzkwZmZiMDk4YTg1NGUy
Zi4uMmZkMTQ2ZGM5NDkzOThkMzUzNjFhZTM3OTAyZDBmOTljZmE5ZWVmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE5OTIsNyArMTk5Miw3IEBAIFN0eWxlQnVpbGRlcjo6
U3R5bGVCdWlsZGVyKCkKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRG
bG93RnJvbSwgQXBwbHlQcm9wZXJ0eVN0cmluZzxNYXBOb25lVG9OdWxsLCAmUmVuZGVyU3R5bGU6
OnJlZ2lvblRocmVhZCwgJlJlbmRlclN0eWxlOjpzZXRSZWdpb25UaHJlYWQsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbFJlZ2lvblRocmVhZD46OmNyZWF0ZUhhbmRsZXIoKSk7CiAgICAgc2V0UHJvcGVy
dHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG8sIEFwcGx5UHJvcGVydHlTdHJpbmc8
TWFwTm9uZVRvTnVsbCwgJlJlbmRlclN0eWxlOjpmbG93VGhyZWFkLCAmUmVuZGVyU3R5bGU6OnNl
dEZsb3dUaHJlYWQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEZsb3dUaHJlYWQ+OjpjcmVhdGVIYW5k
bGVyKCkpOwogI2VuZGlmCi0gICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0
Rm9udEtlcm5pbmcsIEFwcGx5UHJvcGVydHlGb250PEZvbnREZXNjcmlwdGlvbjo6S2VybmluZywg
JkZvbnREZXNjcmlwdGlvbjo6a2VybmluZywgJkZvbnREZXNjcmlwdGlvbjo6c2V0S2VybmluZywg
Rm9udERlc2NyaXB0aW9uOjpBdXRvS2VybmluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CisgICAgc2V0
UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Rm9udEtlcm5pbmcsIEFwcGx5UHJvcGVy
dHlGb250PEZvbnREZXNjcmlwdGlvbjo6S2VybmluZ1N0YXRlLCAmRm9udERlc2NyaXB0aW9uOjpr
ZXJuaW5nLCAmRm9udERlc2NyaXB0aW9uOjpzZXRLZXJuaW5nLCBGb250RGVzY3JpcHRpb246OkF1
dG9LZXJuaW5nPjo6Y3JlYXRlSGFuZGxlcigpKTsKICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NT
UHJvcGVydHlXZWJraXRGb250U21vb3RoaW5nLCBBcHBseVByb3BlcnR5Rm9udDxGb250U21vb3Ro
aW5nTW9kZSwgJkZvbnREZXNjcmlwdGlvbjo6Zm9udFNtb290aGluZywgJkZvbnREZXNjcmlwdGlv
bjo6c2V0Rm9udFNtb290aGluZywgQXV0b1Ntb290aGluZz46OmNyZWF0ZUhhbmRsZXIoKSk7CiAg
ICAgc2V0UHJvcGVydHlIYW5kbGVyKENTU1Byb3BlcnR5V2Via2l0Rm9udFZhcmlhbnRMaWdhdHVy
ZXMsIEFwcGx5UHJvcGVydHlGb250VmFyaWFudExpZ2F0dXJlczo6Y3JlYXRlSGFuZGxlcigpKTsK
ICAgICBzZXRQcm9wZXJ0eUhhbmRsZXIoQ1NTUHJvcGVydHlXZWJraXRIaWdobGlnaHQsIEFwcGx5
UHJvcGVydHlTdHJpbmc8TWFwTm9uZVRvTnVsbCwgJlJlbmRlclN0eWxlOjpoaWdobGlnaHQsICZS
ZW5kZXJTdHlsZTo6c2V0SGlnaGxpZ2h0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxIaWdobGlnaHQ+
OjpjcmVhdGVIYW5kbGVyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4
IGI0ODRlMTY5ZTEyOWI0MjU5ZWVjYmU2MGNjNmI0YzdlMGFiOGMwNDkuLjIxOWFlNWRhZTczOTRh
MTQ1NTc3MDQwY2E3MWUxMGFkMTdhYTU0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZl
ci5jcHAKQEAgLTE0ODMsNiArMTQ4Myw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxl
UmVzb2x2ZXI6OnN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDU1NGCiAgICAg
aWYgKFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50LT5zZXR0aW5ncygpKSB7CiAgICAgICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChkb2N1bWVudC0+cHJpbnRpbmcoKSB8
fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogICAgICAgICBm
b250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01v
ZGUoKSk7CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0
dXJlcyhzZXR0aW5ncy0+ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgc3RhbmRhcmRGb250ID0gc2V0dGluZ3MtPnN0YW5kYXJkRm9udEZh
bWlseShmb250RGVzY3JpcHRpb24uc2NyaXB0KCkpOwogICAgICAgICBpZiAoIXN0YW5kYXJkRm9u
dC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFt
aWx5KEZvbnREZXNjcmlwdGlvbjo6U3RhbmRhcmRGYW1pbHkpOwpAQCAtMzEzMCw2ICszMTMxLDcg
QEAgdm9pZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENT
U1ZhbHVlKiB2YWx1ZSkKICAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFJl
bmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgICAgICAgICAg
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5n
cy0+ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgICAgICAgICAgZm9udERl
c2NyaXB0aW9uLnNldFVzZVByaW50ZXJGb250KG1fY2hlY2tlci5kb2N1bWVudCgpLT5wcmludGlu
ZygpIHx8ICFzZXR0aW5ncy0+c2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoKSk7CiAKICAg
ICAgICAgICAgICAgICAvLyBIYW5kbGUgdGhlIHpvb20gZmFjdG9yLgpAQCAtNDAxMSw2ICs0MDEz
LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKFNldHRpbmdzKiBz
ZXR0aW5ncykKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwogICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6U3RhbmRhcmRGYW1p
bHkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250
UmVuZGVyaW5nTW9kZSgpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0
aW5nRmVhdHVyZXMoc2V0dGluZ3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+
cHJpbnRpbmcoKSB8fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkp
OwogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgc3RhbmRhcmRGb250RmFtaWx5ID0gZG9jdW1lbnRT
ZXR0aW5ncygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKICAgICBpZiAoIXN0YW5kYXJkRm9udEZh
bWlseS5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNjEzYzU2YWQ1
NTM0ZDJhYTJlZTljMDI1OTA5MTRkNjRmM2E2YmYzYS4uMDMyOWIwZWMyMGRiYTdmZWMwN2NiMTRh
YzVhMmIxZDRjMjNkNWZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTMyLDYgKzMy
LDcgQEAKICNpbmNsdWRlICJET01UaW1lci5oIgogI2luY2x1ZGUgIkRhdGFiYXNlLmgiCiAjaW5j
bHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIK
ICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKQEAgLTEzNyw2
ICsxMzgsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZGVmYXVs
dEZvbnRTaXplKDApCiAgICAgLCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX3Nj
cmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKHRydWUpCisgICAgLCBtX2RlZmF1bHRUeXBlc2V0
dGluZ0ZlYXR1cmVzKEZvbnQ6OmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpCiAgICAgLCBt
X3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQogICAgICwgbV9taW5pbXVt
QWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQogICAgICwgbV9sYXlvdXRGYWxsYmFj
a1dpZHRoKDk4MCkKQEAgLTQzNyw2ICs0MzksMTUgQEAgdm9pZCBTZXR0aW5nczo6c2V0U2NyZWVu
Rm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCBzY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmwK
ICAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQogCit2b2lk
IFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1
cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKQoreworICAgIGlmIChtX2RlZmF1bHRUeXBl
c2V0dGluZ0ZlYXR1cmVzID09IGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID0gZGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXM7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFt
ZXMoKTsKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiB2b2lkIFNldHRpbmdzOjpz
ZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCB0ZXh0QXV0b3NpemluZ0VuYWJsZWQpCiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDczNDMxMTE3MTJkY2U4ZWY4
MGY1MWI3ZC4uMjhjNjIxNDRiN2ZhZDFmYjdkZmNlYWZjZjFhN2JkOGQ0MTk0YTYwZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNp
bmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAi
VHlwZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3Ry
aW5nSGFzaC5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAg
ICAgdm9pZCBzZXRTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZChib29sKTsKICAgICAgICAg
Ym9vbCBzY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
ZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldERlZmF1bHRU
eXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMpOworICAgICAgICBib29sIGRl
ZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0VHlwZXNl
dHRpbmdGZWF0dXJlczsgfQorCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAgICAg
dm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgdGV4dEF1
dG9zaXppbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQ7
IH0KQEAgLTY4MCw2ICs2ODQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGludCBt
X2RlZmF1bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNpemU7CiAg
ICAgICAgIGJvb2wgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZDsKKyAgICAgICAgVHlw
ZXNldHRpbmdGZWF0dXJlcyBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzOwogICAgICAgICBp
bnQgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsKICAgICAgICAgaW50IG1f
bWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOwogICAgICAgICBpbnQgbV9sYXlvdXRGYWxs
YmFja1dpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCmluZGV4IGFh
YmNiMmU3MDBkOTQ1MzFjZjE1Y2NlNDA4ZmZkYWQyYmQ2NmZmZTMuLjEzMjQ4MmI3Y2NmNDdmMjMw
Nzk0NDkwN2FkYzc4NGY2MzA0YWNkYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmgKQEAgLTEyMCw0OCArMTIwLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQcmludGVy
Rm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLnVzZVByaW50ZXJGb250KCk7
IH0KICAgICAKICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpOyB9Ci0KLSAgICBUeXBlc2V0
dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25zdAotICAgIHsKLSAgICAgICAg
VGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUgPSBtX2ZvbnREZXNjcmlwdGlvbi50
ZXh0UmVuZGVyaW5nTW9kZSgpOwotICAgICAgICBUeXBlc2V0dGluZ0ZlYXR1cmVzIGZlYXR1cmVz
ID0gc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsKLQotICAgICAgICBzd2l0Y2godGV4dFJl
bmRlcmluZ01vZGUpIHsKLSAgICAgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGltaXplU3BlZWQ6Ci0gICAgICAgICAgICBmZWF0
dXJlcyAmPSB+KEtlcm5pbmcgfCBMaWdhdHVyZXMpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAg
ICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgotICAgICAgICBjYXNlIE9wdGltaXplTGVnaWJp
bGl0eToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IEtlcm5pbmcgfCBMaWdhdHVyZXM7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAobV9mb250RGVzY3Jp
cHRpb24ua2VybmluZygpKSB7Ci0gICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb25lS2Vy
bmluZzoKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5LZXJuaW5nOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5nOgotICAgICAg
ICAgICAgZmVhdHVyZXMgfD0gS2VybmluZzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBj
YXNlIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc6Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAobV9mb250RGVzY3JpcHRpb24uY29tbW9uTGlnYXR1
cmVzU3RhdGUoKSkgewotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6RGlzYWJsZWRMaWdh
dHVyZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5MaWdhdHVyZXM7Ci0gICAgICAg
ICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246OkVuYWJsZWRMaWdhdHVy
ZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IExpZ2F0dXJlczsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsTGlnYXR1cmVzU3Rh
dGU6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBmZWF0
dXJlczsKLSAgICB9CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVz
KCkgY29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24udHlwZXNldHRpbmdGZWF0dXJlcygp
OyB9CiAKICAgICBGb250RmFtaWx5JiBmaXJzdEZhbWlseSgpIHsgcmV0dXJuIG1fZm9udERlc2Ny
aXB0aW9uLmZpcnN0RmFtaWx5KCk7IH0KICAgICBjb25zdCBGb250RmFtaWx5JiBmYW1pbHkoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnREZXNjcmlwdGlvbi5mYW1pbHkoKTsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAppbmRleCA0NDM2
ODc1OWQwZDZhZTYxNGEzOGQ3YmNhOGU3YTBiM2NmOTdiMDQwLi5lY2NkNzQ5YjM3YTYyYjJkODkw
YmJjMzNiN2QxZmMwM2FiYjk4ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUg
IkZvbnRXaWR0aFZhcmlhbnQuaCIKICNpbmNsdWRlICJUZXh0T3JpZW50YXRpb24uaCIKICNpbmNs
dWRlICJUZXh0UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMu
aCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNpbmNsdWRlIDx3dGYvTWF0
aEV4dHJhcy5oPgogCkBAIC03Miw3ICs3Myw3IEBAIHB1YmxpYzoKICAgICBlbnVtIEdlbmVyaWNG
YW1pbHlUeXBlIHsgTm9GYW1pbHksIFN0YW5kYXJkRmFtaWx5LCBTZXJpZkZhbWlseSwgU2Fuc1Nl
cmlmRmFtaWx5LCAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTW9ub3NwYWNlRmFtaWx5
LCBDdXJzaXZlRmFtaWx5LCBGYW50YXN5RmFtaWx5LCBQaWN0b2dyYXBoRmFtaWx5IH07CiAKLSAg
ICBlbnVtIEtlcm5pbmcgeyBBdXRvS2VybmluZywgTm9ybWFsS2VybmluZywgTm9uZUtlcm5pbmcg
fTsKKyAgICBlbnVtIEtlcm5pbmdTdGF0ZSB7IEF1dG9LZXJuaW5nLCBOb3JtYWxLZXJuaW5nLCBO
b25lS2VybmluZyB9OwogCiAgICAgZW51bSBMaWdhdHVyZXNTdGF0ZSB7IE5vcm1hbExpZ2F0dXJl
c1N0YXRlLCBEaXNhYmxlZExpZ2F0dXJlc1N0YXRlLCBFbmFibGVkTGlnYXR1cmVzU3RhdGUgfTsK
IApAQCAtODksNiArOTAsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9nZW5lcmljRmFtaWx5KE5v
RmFtaWx5KQogICAgICAgICAsIG1fdXNlUHJpbnRlckZvbnQoZmFsc2UpCiAgICAgICAgICwgbV9y
ZW5kZXJpbmdNb2RlKE5vcm1hbFJlbmRlcmluZ01vZGUpCisgICAgICAgICwgbV9kZWZhdWx0VHlw
ZXNldHRpbmdGZWF0dXJlcygwKQogICAgICAgICAsIG1fa2VybmluZyhBdXRvS2VybmluZykKICAg
ICAgICAgLCBtX2NvbW1vbkxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQogICAg
ICAgICAsIG1fZGlzY3JldGlvbmFyeUxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRl
KQpAQCAtMTIwLDcgKzEyMiw4IEBAIHB1YmxpYzoKICAgICAvLyBvbmx5IHVzZSBmaXhlZCBkZWZh
dWx0IHNpemUgd2hlbiB0aGVyZSBpcyBvbmx5IG9uZSBmb250IGZhbWlseSwgYW5kIHRoYXQgZmFt
aWx5IGlzICJtb25vc3BhY2UiCiAgICAgYm9vbCB1c2VGaXhlZERlZmF1bHRTaXplKCkgY29uc3Qg
eyByZXR1cm4gZ2VuZXJpY0ZhbWlseSgpID09IE1vbm9zcGFjZUZhbWlseSAmJiAhZmFtaWx5KCku
bmV4dCgpICYmIGZhbWlseSgpLmZhbWlseSgpID09IG1vbm9zcGFjZUZhbWlseTsgfQogICAgIEZv
bnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2Fz
dDxGb250UmVuZGVyaW5nTW9kZT4obV9yZW5kZXJpbmdNb2RlKTsgfQotICAgIEtlcm5pbmcga2Vy
bmluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEtlcm5pbmc+KG1fa2VybmluZyk7IH0K
KyAgICBUeXBlc2V0dGluZ0ZlYXR1cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29u
c3QgeyByZXR1cm4gbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsgfQorICAgIEtlcm5pbmdT
dGF0ZSBrZXJuaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8S2VybmluZ1N0YXRlPiht
X2tlcm5pbmcpOyB9CiAgICAgTGlnYXR1cmVzU3RhdGUgY29tbW9uTGlnYXR1cmVzU3RhdGUoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4obV9jb21tb25MaWdhdHVy
ZXNTdGF0ZSk7IH0KICAgICBMaWdhdHVyZXNTdGF0ZSBkaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4obV9kaXNjcmV0
aW9uYXJ5TGlnYXR1cmVzU3RhdGUpOyB9CiAgICAgTGlnYXR1cmVzU3RhdGUgaGlzdG9yaWNhbExp
Z2F0dXJlc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGlnYXR1cmVzU3RhdGU+
KG1faGlzdG9yaWNhbExpZ2F0dXJlc1N0YXRlKTsgfQpAQCAtMTUzLDcgKzE1Niw4IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJvb2wgcCkgeyBtX3VzZVByaW50ZXJGb250
ID0gcDsgfQogI2VuZGlmCiAgICAgdm9pZCBzZXRSZW5kZXJpbmdNb2RlKEZvbnRSZW5kZXJpbmdN
b2RlIG1vZGUpIHsgbV9yZW5kZXJpbmdNb2RlID0gbW9kZTsgfQotICAgIHZvaWQgc2V0S2Vybmlu
ZyhLZXJuaW5nIGtlcm5pbmcpIHsgbV9rZXJuaW5nID0ga2VybmluZzsgfQorICAgIHZvaWQgc2V0
RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGlu
Z0ZlYXR1cmVzKSB7IG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgPSB0eXBlc2V0dGluZ0Zl
YXR1cmVzOyB9CisgICAgdm9pZCBzZXRLZXJuaW5nKEtlcm5pbmdTdGF0ZSBrZXJuaW5nKSB7IG1f
a2VybmluZyA9IGtlcm5pbmc7IH0KICAgICB2b2lkIHNldENvbW1vbkxpZ2F0dXJlc1N0YXRlKExp
Z2F0dXJlc1N0YXRlIGNvbW1vbkxpZ2F0dXJlc1N0YXRlKSB7IG1fY29tbW9uTGlnYXR1cmVzU3Rh
dGUgPSBjb21tb25MaWdhdHVyZXNTdGF0ZTsgfQogICAgIHZvaWQgc2V0RGlzY3JldGlvbmFyeUxp
Z2F0dXJlc1N0YXRlKExpZ2F0dXJlc1N0YXRlIGRpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZSkg
eyBtX2Rpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZSA9IGRpc2NyZXRpb25hcnlMaWdhdHVyZXNT
dGF0ZTsgfQogICAgIHZvaWQgc2V0SGlzdG9yaWNhbExpZ2F0dXJlc1N0YXRlKExpZ2F0dXJlc1N0
YXRlIGhpc3RvcmljYWxMaWdhdHVyZXNTdGF0ZSkgeyBtX2hpc3RvcmljYWxMaWdhdHVyZXNTdGF0
ZSA9IGhpc3RvcmljYWxMaWdhdHVyZXNTdGF0ZTsgfQpAQCAtMTY3LDYgKzE3MSw0OCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRTY3JpcHQoVVNjcmlwdENvZGUgcykgeyBtX3NjcmlwdCA9IHM7IH0K
ICAgICB2b2lkIHNldEZlYXR1cmVTZXR0aW5ncyhQYXNzUmVmUHRyPEZvbnRGZWF0dXJlU2V0dGlu
Z3M+IHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gc2V0dGluZ3M7IH0KIAorICAgIC8v
IENhbGN1bGF0ZSB0aGUgZWZmZWN0aXZlIHR5cGVzZXR0aW5nIGZlYXR1cmVzIGJhc2VkIG9uIGFs
bCB0aGUgc2V0dGluZ3MgdGhhdCBjb250cm9sIHRoZW0uCisgICAgVHlwZXNldHRpbmdGZWF0dXJl
cyB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QKKyAgICB7CisgICAgICAgIFR5cGVzZXR0aW5n
RmVhdHVyZXMgZmVhdHVyZXMgPSBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcygpOworCisgICAg
ICAgIHN3aXRjaCAodGV4dFJlbmRlcmluZ01vZGUoKSkgeworICAgICAgICBjYXNlIEF1dG9UZXh0
UmVuZGVyaW5nOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgT3B0aW1pemVTcGVl
ZDoKKyAgICAgICAgICAgIGZlYXR1cmVzICY9IH4oS2VybmluZyB8IExpZ2F0dXJlcyk7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZW9tZXRyaWNQcmVjaXNpb246CisgICAgICAg
IGNhc2UgT3B0aW1pemVMZWdpYmlsaXR5OgorICAgICAgICAgICAgZmVhdHVyZXMgfD0gS2Vybmlu
ZyB8IExpZ2F0dXJlczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAg
c3dpdGNoIChrZXJuaW5nKCkpIHsKKyAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vbmVL
ZXJuaW5nOgorICAgICAgICAgICAgZmVhdHVyZXMgJj0gfktlcm5pbmc7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vcm1hbEtlcm5pbmc6CisgICAg
ICAgICAgICBmZWF0dXJlcyB8PSBLZXJuaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgRm9udERlc2NyaXB0aW9uOjpBdXRvS2VybmluZzoKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChjb21tb25MaWdhdHVyZXNTdGF0ZSgpKSB7Cisg
ICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpEaXNhYmxlZExpZ2F0dXJlc1N0YXRlOgorICAg
ICAgICAgICAgZmVhdHVyZXMgJj0gfkxpZ2F0dXJlczsKKyAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6RW5hYmxlZExpZ2F0dXJlc1N0YXRlOgorICAgICAg
ICAgICAgZmVhdHVyZXMgfD0gTGlnYXR1cmVzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxMaWdhdHVyZXNTdGF0ZToKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZlYXR1cmVzOworICAgIH0KKwog
cHJpdmF0ZToKICAgICBGb250RmFtaWx5IG1fZmFtaWx5TGlzdDsgLy8gVGhlIGxpc3Qgb2YgZm9u
dCBmYW1pbGllcyB0byBiZSB1c2VkLgogICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBt
X2ZlYXR1cmVTZXR0aW5nczsKQEAgLTE4OSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIHVuc2ln
bmVkIG1fdXNlUHJpbnRlckZvbnQgOiAxOwogCiAgICAgdW5zaWduZWQgbV9yZW5kZXJpbmdNb2Rl
IDogMTsgIC8vIFVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRv
d3MuCisgICAgdW5zaWduZWQgbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA6IDI7IC8vIFVz
ZWQgdG8gY29udHJvbCB3aGF0IGF1dG8ga2VybmluZyBhbmQgbm9ybWFsIGxpZ2F0dXJlcyBpbXBs
aWVzLgogICAgIHVuc2lnbmVkIG1fa2VybmluZyA6IDI7IC8vIEtlcm5pbmcKIAogICAgIHVuc2ln
bmVkIG1fY29tbW9uTGlnYXR1cmVzU3RhdGUgOiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggYzgyNmVhYTE5ZjU3OGYwNGY2
YjIwN2ZmNjgzNmFhMjA1MTFkOTdkYi4uYmNjNmY0N2EwYWJmNDM5N2E0OGNmMzIwNmRmN2Q1MTA0
ZjhkYWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRk
ZWRPYmplY3QuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWwK
ICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZm9udERlc2Ny
aXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOwor
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5n
cy0+ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNl
dENvbXB1dGVkU2l6ZShmb250RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpKTsKICAgICBmb250
ID0gRm9udChmb250RGVzY3JpcHRpb24sIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171682</attachid>
            <date>2012-10-31 10:17:28 -0700</date>
            <delta_ts>2012-11-01 04:16:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100863-20121031181528.patch</filename>
            <type>text/plain</type>
            <size>22223</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNGYzMjEwYTE5OTAy
N2QyNDAxOTliZWM2NTk5ODA0NDIzYTdiOS4uODEwNzg5NTg2NTFiN2U4NmI1NjQzMGVhYjk2NTcx
Yjc2MDE3MTI3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDEyLTEwLTMxICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1h
a2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZXMgdGhlIGRlZmF1bHRU
eXBlc2V0dGluZ0ZlYXR1cmVzIHNldHRpbmcgZnJvbSBiZWluZyBhIHN0YXRpYyB2YXJpYWJsZQor
ICAgICAgICBpbiBGb250LmggdG8gYmVpbmcgYSBwcm9wZXIgcGFnZSBzZXR0aW5nLiAKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSBpdCBhbmQg
ZW5zdXJpbmcgdGhhdCBmdWxsIHJlc3R5bGVzIGFyZSB0cmlnZ2VyZWQuCisKKyAgICAgICAgKiBj
c3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpz
dHlsZUZvckRvY3VtZW50KTogCisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVh
dHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KTog
CisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKToKKyAgICAgICAgICAg
IFNldCBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChX
ZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAg
ICAgICAgRW5zdXJlIHdlIHRyaWdnZXIgYSBmdWxsIHJlc3R5bGUgc28gdGhhdCBhbGwgdGhlIGZv
bnQgZGVzY3JpcHRpb25zIGhhdmUgdGhlaXIKKyAgICAgICAgICAgIHR5cGVzZXR0aW5ncyBmZWF0
dXJlcyB1cGRhdGVkLgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpkZWZhdWx0VHlwZXNldHRpbmdGZWF0
dXJlcyk6CisgICAgICAgICAgICBNb3ZlIHRoaXMgZnVuY3Rpb24gdG8gRm9udERlc2NyaXB0aW9u
IHNpbmNlIGl0IGRvZXMgbm90IGRlcGVuZCBvbiBhbnl0aGluZyBpbiBGb250LgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgor
ICAgICAgICAoRm9udCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlwdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OmRlZmF1bHRUeXBlc2V0dGlu
Z0ZlYXR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0RGVmYXVs
dFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAoRm9udERlc2NyaXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6dHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAg
ICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRSZXBsYWNlbWVudFRleHRHZW9tZXRyeSk6Cisg
ICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMuCisKIDIwMTItMTAtMzEg
IElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHRleHQtYmFzZWQgcmVwYWludCB0ZXN0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzJi
YmMzYzliZjQ1NzBmYThjODNkM2E3MjNiYmY2NzFmYzg4Mjg3Zi4uMmJlZTE4MmM3MjJjMTc3MGY1
M2U2OTI3NDhjY2Y4MzI0MmI2OTBhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBA
CisyMDEyLTEwLTMxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEu
Y29tPgorCisgICAgICAgIE1ha2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIg
c2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTAwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
TW92ZSBmcm9tIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzIHRvIFNldHRpbmdz
OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcy4KKworICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorICAg
ICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToKKwogMjAxMi0xMC0zMCAgSm9zZXBoIFBlY29y
YXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNdIFN5bmMgdXAgRmVhdHVy
ZURlZmluZSBDb25maWd1cmF0aW9uIEZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMDAzMTM1NDViZjEzOTBh
MmUzZjY1MmY5MjYwMGQ1YjNmNWJiMzJhOS4uMWY5OWMzY2JmZmQ2NjVlZjNiYzJlZWNhNjJjYmIz
ZDZkNGM4MzM3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTMxICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1h
a2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIEZvbnQ6OnNl
dERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzIHRvIFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNl
dHRpbmdGZWF0dXJlcy4gCisgICAgICAgIFRoaXMganVzdCBhIHNpbXBsZSBjb252ZXJzaW9uIG9m
IHRoZSBleGlzdGluZyBNYWMgc2V0dGluZywgYSBsYXRlciBwYXRjaCB3aWxsIGV4cG9zZSB0aGlz
CisgICAgICAgIHNldHRpbmcgdG8gYWxsIFdLMiBwb3J0cy4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRl
UHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlE
ZWZhdWx0KToKKyAgICAgICAgKFdlYlByb2Nlc3MpOgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFj
L1dlYlByb2Nlc3NNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3Jt
SW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEyLTEwLTMxICBJYW4gVm9sbGljayAgPHZvbGxp
Y2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0ZXh0LWJhc2VkIHJl
cGFpbnQgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGI0ODRl
MTY5ZTEyOWI0MjU5ZWVjYmU2MGNjNmI0YzdlMGFiOGMwNDkuLjIxOWFlNWRhZTczOTRhMTQ1NTc3
MDQwY2E3MWUxMGFkMTdhYTU0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAK
QEAgLTE0ODMsNiArMTQ4Myw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2
ZXI6OnN0eWxlRm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDU1NGCiAgICAgaWYgKFNl
dHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50LT5zZXR0aW5ncygpKSB7CiAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChkb2N1bWVudC0+cHJpbnRpbmcoKSB8fCAhc2V0
dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogICAgICAgICBmb250RGVz
Y3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7
CisgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhz
ZXR0aW5ncy0+ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgc3RhbmRhcmRGb250ID0gc2V0dGluZ3MtPnN0YW5kYXJkRm9udEZhbWlseShm
b250RGVzY3JpcHRpb24uc2NyaXB0KCkpOwogICAgICAgICBpZiAoIXN0YW5kYXJkRm9udC5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZv
bnREZXNjcmlwdGlvbjo6U3RhbmRhcmRGYW1pbHkpOwpAQCAtMzEzMCw2ICszMTMxLDcgQEAgdm9p
ZCBTdHlsZVJlc29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVl
KiB2YWx1ZSkKICAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmlu
Z01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgICAgICAgICAgICAgIGZv
bnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5ncy0+ZGVm
YXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0
aW9uLnNldFVzZVByaW50ZXJGb250KG1fY2hlY2tlci5kb2N1bWVudCgpLT5wcmludGluZygpIHx8
ICFzZXR0aW5ncy0+c2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoKSk7CiAKICAgICAgICAg
ICAgICAgICAvLyBIYW5kbGUgdGhlIHpvb20gZmFjdG9yLgpAQCAtNDAxMSw2ICs0MDEzLDcgQEAg
dm9pZCBTdHlsZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKFNldHRpbmdzKiBzZXR0aW5n
cykKICAgICBGb250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwogICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6U3RhbmRhcmRGYW1pbHkpOwog
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVy
aW5nTW9kZSgpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVh
dHVyZXMoc2V0dGluZ3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRp
bmcoKSB8fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogICAg
IGNvbnN0IEF0b21pY1N0cmluZyYgc3RhbmRhcmRGb250RmFtaWx5ID0gZG9jdW1lbnRTZXR0aW5n
cygpLT5zdGFuZGFyZEZvbnRGYW1pbHkoKTsKICAgICBpZiAoIXN0YW5kYXJkRm9udEZhbWlseS5p
c0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNjEzYzU2YWQ1NTM0ZDJh
YTJlZTljMDI1OTA5MTRkNjRmM2E2YmYzYS4uZmM0OWZiZGJlYWZjNGUyNzdkOWQ2MWJmZTE3ODUz
MGIzZWFkYWE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEzNyw2ICsxMzcsNyBA
QCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXpl
KDApCiAgICAgLCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX3NjcmVlbkZvbnRT
dWJzdGl0dXRpb25FbmFibGVkKHRydWUpCisgICAgLCBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1
cmVzKDApCiAgICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQog
ICAgICwgbV9taW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQogICAgICwg
bV9sYXlvdXRGYWxsYmFja1dpZHRoKDk4MCkKQEAgLTQzNyw2ICs0MzgsMTUgQEAgdm9pZCBTZXR0
aW5nczo6c2V0U2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCBzY3JlZW5Gb250U3Vi
c3RpdHV0aW9uRW5hYmwKICAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1l
cygpOwogfQogCit2b2lkIFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhU
eXBlc2V0dGluZ0ZlYXR1cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKQoreworICAgIGlm
IChtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID09IGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1
cmVzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVz
ID0gZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2Fs
Y1N0eWxlSW5BbGxGcmFtZXMoKTsKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiB2
b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCB0ZXh0QXV0b3Npemlu
Z0VuYWJsZWQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDcz
NDMxMTE3MTJkY2U4ZWY4MGY1MWI3ZC4uMjhjNjIxNDRiN2ZhZDFmYjdkZmNlYWZjZjFhN2JkOGQ0
MTk0YTYwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCisjaW5jbHVkZSAiVHlwZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nSGFzaC5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgdm9pZCBzZXRTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZChi
b29sKTsKICAgICAgICAgYm9vbCBzY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7IH0KIAorICAgICAgICB2
b2lkIHNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMpOwor
ICAgICAgICBib29sIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4g
bV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsgfQorCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKICAgICAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCk7CiAgICAg
ICAgIGJvb2wgdGV4dEF1dG9zaXppbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0
b3NpemluZ0VuYWJsZWQ7IH0KQEAgLTY4MCw2ICs2ODQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIGludCBtX2RlZmF1bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZp
eGVkRm9udFNpemU7CiAgICAgICAgIGJvb2wgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxl
ZDsKKyAgICAgICAgVHlwZXNldHRpbmdGZWF0dXJlcyBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1
cmVzOwogICAgICAgICBpbnQgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsK
ICAgICAgICAgaW50IG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOwogICAgICAgICBp
bnQgbV9sYXlvdXRGYWxsYmFja1dpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250LmNwcAppbmRleCAzOGNlMzU0MjUyYjlkNTA4YTk5NWFmMzVlOGNmMjY3ZmU4Y2Y3NGU5
Li4zZTBjMmI5MTRhN2M0ZjNiNzY0OTFlY2JmMGI4NzE3ZjQ0ZDk3MDU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtNjQsOCArNjQsNiBAQCBjb25zdCB1
aW50OF90IEZvbnQ6OnNfcm91bmRpbmdIYWNrQ2hhcmFjdGVyVGFibGVbMjU2XSA9IHsKIAogRm9u
dDo6Q29kZVBhdGggRm9udDo6c19jb2RlUGF0aCA9IEF1dG87CiAKLVR5cGVzZXR0aW5nRmVhdHVy
ZXMgRm9udDo6c19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9IDA7Ci0KIC8vID09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAvLyBGb250IEltcGxlbWVudGF0aW9uIChDcm9z
cy1QbGF0Zm9ybSBQb3J0aW9uKQogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KQEAgLTMwNSwxNiArMzAzLDYgQEAgRm9udDo6Q29kZVBhdGggRm9udDo6Y29kZVBhdGgoKQog
ICAgIHJldHVybiBzX2NvZGVQYXRoOwogfQogCi12b2lkIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0
dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcykKLXsK
LSAgICBzX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID0gdHlwZXNldHRpbmdGZWF0dXJlczsK
LX0KLQotVHlwZXNldHRpbmdGZWF0dXJlcyBGb250OjpkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cygpCi17Ci0gICAgcmV0dXJuIHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7Ci19Ci0KIEZv
bnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRleHRSdW4mIHJ1bikgY29uc3QKIHsK
ICAgICBpZiAoc19jb2RlUGF0aCAhPSBBdXRvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udC5oCmluZGV4IGFhYmNiMmU3MDBkOTQ1MzFjZjE1Y2NlNDA4ZmZkYWQyYmQ2NmZmZTMu
LmE0ZjUyYjk1YTc5YTc2OWU1NDU3N2M5Y2FiNjU0ZTI2MmU3MDEwNDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKQEAgLTEyMCw0OCArMTIwLDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaXNQcmludGVyRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9u
LnVzZVByaW50ZXJGb250KCk7IH0KICAgICAKICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJp
bmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgp
OyB9Ci0KLSAgICBUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25z
dAotICAgIHsKLSAgICAgICAgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUgPSBt
X2ZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpOwotICAgICAgICBUeXBlc2V0dGlu
Z0ZlYXR1cmVzIGZlYXR1cmVzID0gc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsKLQotICAg
ICAgICBzd2l0Y2godGV4dFJlbmRlcmluZ01vZGUpIHsKLSAgICAgICAgY2FzZSBBdXRvVGV4dFJl
bmRlcmluZzoKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGltaXplU3BlZWQ6
Ci0gICAgICAgICAgICBmZWF0dXJlcyAmPSB+KEtlcm5pbmcgfCBMaWdhdHVyZXMpOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgotICAgICAgICBj
YXNlIE9wdGltaXplTGVnaWJpbGl0eToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IEtlcm5pbmcg
fCBMaWdhdHVyZXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHN3
aXRjaCAobV9mb250RGVzY3JpcHRpb24ua2VybmluZygpKSB7Ci0gICAgICAgIGNhc2UgRm9udERl
c2NyaXB0aW9uOjpOb25lS2VybmluZzoKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5LZXJuaW5n
OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3Jt
YWxLZXJuaW5nOgotICAgICAgICAgICAgZmVhdHVyZXMgfD0gS2VybmluZzsKLSAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc6Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAobV9mb250RGVzY3Jp
cHRpb24uY29tbW9uTGlnYXR1cmVzU3RhdGUoKSkgewotICAgICAgICBjYXNlIEZvbnREZXNjcmlw
dGlvbjo6RGlzYWJsZWRMaWdhdHVyZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5M
aWdhdHVyZXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGb250RGVzY3JpcHRp
b246OkVuYWJsZWRMaWdhdHVyZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IExpZ2F0
dXJlczsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6
Tm9ybWFsTGlnYXR1cmVzU3RhdGU6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0g
ICAgICAgIHJldHVybiBmZWF0dXJlczsKLSAgICB9CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0
eXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24udHlw
ZXNldHRpbmdGZWF0dXJlcygpOyB9CiAKICAgICBGb250RmFtaWx5JiBmaXJzdEZhbWlseSgpIHsg
cmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCk7IH0KICAgICBjb25zdCBGb250
RmFtaWx5JiBmYW1pbHkoKSBjb25zdCB7IHJldHVybiBtX2ZvbnREZXNjcmlwdGlvbi5mYW1pbHko
KTsgfQpAQCAtMjQ5LDkgKzIwOCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29kZVBhdGggY29k
ZVBhdGgoKTsKICAgICBzdGF0aWMgQ29kZVBhdGggc19jb2RlUGF0aDsKIAotICAgIHN0YXRpYyB2
b2lkIHNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMpOwot
ICAgIHN0YXRpYyBUeXBlc2V0dGluZ0ZlYXR1cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVz
KCk7Ci0KICAgICBzdGF0aWMgY29uc3QgdWludDhfdCBzX3JvdW5kaW5nSGFja0NoYXJhY3RlclRh
YmxlWzI1Nl07CiAgICAgc3RhdGljIGJvb2wgaXNSb3VuZGluZ0hhY2tDaGFyYWN0ZXIoVUNoYXIz
MiBjKQogICAgIHsKQEAgLTI5MSw4ICsyNDcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdEZv
cm1hdEZvclRleHRMYXlvdXQoUVRleHRMYXlvdXQqKSBjb25zdDsKICNlbmRpZgogCi0gICAgc3Rh
dGljIFR5cGVzZXR0aW5nRmVhdHVyZXMgc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsKLQog
ICAgIEZvbnREZXNjcmlwdGlvbiBtX2ZvbnREZXNjcmlwdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0
cjxGb250RmFsbGJhY2tMaXN0PiBtX2ZvbnRGYWxsYmFja0xpc3Q7CiAgICAgc2hvcnQgbV9sZXR0
ZXJTcGFjaW5nOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udERlc2NyaXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
RGVzY3JpcHRpb24uaAppbmRleCA0NDM2ODc1OWQwZDZhZTYxNGEzOGQ3YmNhOGU3YTBiM2NmOTdi
MDQwLi4wMWZiNGM0YmRmMmY2NTk1N2NkNTk5ZWYyMmIxY2IxNTg4YWVkNTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAt
MzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIkZvbnRXaWR0aFZhcmlhbnQuaCIKICNpbmNsdWRlICJU
ZXh0T3JpZW50YXRpb24uaCIKICNpbmNsdWRlICJUZXh0UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1
ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFt
ZXMuaCIKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC04OSw2ICs5MCw3IEBAIHB1
YmxpYzoKICAgICAgICAgLCBtX2dlbmVyaWNGYW1pbHkoTm9GYW1pbHkpCiAgICAgICAgICwgbV91
c2VQcmludGVyRm9udChmYWxzZSkKICAgICAgICAgLCBtX3JlbmRlcmluZ01vZGUoTm9ybWFsUmVu
ZGVyaW5nTW9kZSkKKyAgICAgICAgLCBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKDApCiAg
ICAgICAgICwgbV9rZXJuaW5nKEF1dG9LZXJuaW5nKQogICAgICAgICAsIG1fY29tbW9uTGlnYXR1
cmVzU3RhdGUoTm9ybWFsTGlnYXR1cmVzU3RhdGUpCiAgICAgICAgICwgbV9kaXNjcmV0aW9uYXJ5
TGlnYXR1cmVzU3RhdGUoTm9ybWFsTGlnYXR1cmVzU3RhdGUpCkBAIC0xMjAsNiArMTIyLDcgQEAg
cHVibGljOgogICAgIC8vIG9ubHkgdXNlIGZpeGVkIGRlZmF1bHQgc2l6ZSB3aGVuIHRoZXJlIGlz
IG9ubHkgb25lIGZvbnQgZmFtaWx5LCBhbmQgdGhhdCBmYW1pbHkgaXMgIm1vbm9zcGFjZSIKICAg
ICBib29sIHVzZUZpeGVkRGVmYXVsdFNpemUoKSBjb25zdCB7IHJldHVybiBnZW5lcmljRmFtaWx5
KCkgPT0gTW9ub3NwYWNlRmFtaWx5ICYmICFmYW1pbHkoKS5uZXh0KCkgJiYgZmFtaWx5KCkuZmFt
aWx5KCkgPT0gbW9ub3NwYWNlRmFtaWx5OyB9CiAgICAgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2RlPiht
X3JlbmRlcmluZ01vZGUpOyB9CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyBkZWZhdWx0VHlwZXNl
dHRpbmdGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVy
ZXM7IH0KICAgICBLZXJuaW5nIGtlcm5pbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxL
ZXJuaW5nPihtX2tlcm5pbmcpOyB9CiAgICAgTGlnYXR1cmVzU3RhdGUgY29tbW9uTGlnYXR1cmVz
U3RhdGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4obV9jb21t
b25MaWdhdHVyZXNTdGF0ZSk7IH0KICAgICBMaWdhdHVyZXNTdGF0ZSBkaXNjcmV0aW9uYXJ5TGln
YXR1cmVzU3RhdGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4o
bV9kaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3RhdGUpOyB9CkBAIC0xNTMsNiArMTU2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0VXNlUHJpbnRlckZvbnQoYm9vbCBwKSB7IG1fdXNlUHJpbnRlckZv
bnQgPSBwOyB9CiAjZW5kaWYKICAgICB2b2lkIHNldFJlbmRlcmluZ01vZGUoRm9udFJlbmRlcmlu
Z01vZGUgbW9kZSkgeyBtX3JlbmRlcmluZ01vZGUgPSBtb2RlOyB9CisgICAgdm9pZCBzZXREZWZh
dWx0VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVh
dHVyZXMpIHsgbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9IHR5cGVzZXR0aW5nRmVhdHVy
ZXM7IH0KICAgICB2b2lkIHNldEtlcm5pbmcoS2VybmluZyBrZXJuaW5nKSB7IG1fa2VybmluZyA9
IGtlcm5pbmc7IH0KICAgICB2b2lkIHNldENvbW1vbkxpZ2F0dXJlc1N0YXRlKExpZ2F0dXJlc1N0
YXRlIGNvbW1vbkxpZ2F0dXJlc1N0YXRlKSB7IG1fY29tbW9uTGlnYXR1cmVzU3RhdGUgPSBjb21t
b25MaWdhdHVyZXNTdGF0ZTsgfQogICAgIHZvaWQgc2V0RGlzY3JldGlvbmFyeUxpZ2F0dXJlc1N0
YXRlKExpZ2F0dXJlc1N0YXRlIGRpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZSkgeyBtX2Rpc2Ny
ZXRpb25hcnlMaWdhdHVyZXNTdGF0ZSA9IGRpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZTsgfQpA
QCAtMTY3LDYgKzE3MSw0OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JpcHQoVVNjcmlwdENv
ZGUgcykgeyBtX3NjcmlwdCA9IHM7IH0KICAgICB2b2lkIHNldEZlYXR1cmVTZXR0aW5ncyhQYXNz
UmVmUHRyPEZvbnRGZWF0dXJlU2V0dGluZ3M+IHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdz
ID0gc2V0dGluZ3M7IH0KIAorICAgIC8vIENhbGN1bGF0ZSB0aGUgZWZmZWN0aXZlIHR5cGVzZXR0
aW5nIGZlYXR1cmVzIGJhc2VkIG9uIGFsbCB0aGUgc2V0dGluZ3MgdGhhdCBjb250cm9sIHRoZW0u
CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgZmVhdHVyZXMgPSBkZWZhdWx0VHlwZXNl
dHRpbmdGZWF0dXJlcygpOworCisgICAgICAgIHN3aXRjaCAodGV4dFJlbmRlcmluZ01vZGUoKSkg
eworICAgICAgICBjYXNlIEF1dG9UZXh0UmVuZGVyaW5nOgorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgT3B0aW1pemVTcGVlZDoKKyAgICAgICAgICAgIGZlYXR1cmVzICY9IH4oV2Vi
Q29yZTo6S2VybmluZyB8IExpZ2F0dXJlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBHZW9tZXRyaWNQcmVjaXNpb246CisgICAgICAgIGNhc2UgT3B0aW1pemVMZWdpYmlsaXR5
OgorICAgICAgICAgICAgZmVhdHVyZXMgfD0gV2ViQ29yZTo6S2VybmluZyB8IExpZ2F0dXJlczsK
KyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChrZXJuaW5n
KCkpIHsKKyAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vbmVLZXJuaW5nOgorICAgICAg
ICAgICAgZmVhdHVyZXMgJj0gfldlYkNvcmU6Oktlcm5pbmc7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vcm1hbEtlcm5pbmc6CisgICAgICAgICAg
ICBmZWF0dXJlcyB8PSBXZWJDb3JlOjpLZXJuaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpBdXRvS2VybmluZzoKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChjb21tb25MaWdhdHVyZXNTdGF0ZSgpKSB7
CisgICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpEaXNhYmxlZExpZ2F0dXJlc1N0YXRlOgor
ICAgICAgICAgICAgZmVhdHVyZXMgJj0gfkxpZ2F0dXJlczsKKyAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6RW5hYmxlZExpZ2F0dXJlc1N0YXRlOgorICAg
ICAgICAgICAgZmVhdHVyZXMgfD0gTGlnYXR1cmVzOworICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxMaWdhdHVyZXNTdGF0ZToKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZlYXR1cmVzOworICAgIH0K
KwogcHJpdmF0ZToKICAgICBGb250RmFtaWx5IG1fZmFtaWx5TGlzdDsgLy8gVGhlIGxpc3Qgb2Yg
Zm9udCBmYW1pbGllcyB0byBiZSB1c2VkLgogICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdz
PiBtX2ZlYXR1cmVTZXR0aW5nczsKQEAgLTE4OSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIHVu
c2lnbmVkIG1fdXNlUHJpbnRlckZvbnQgOiAxOwogCiAgICAgdW5zaWduZWQgbV9yZW5kZXJpbmdN
b2RlIDogMTsgIC8vIFVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdp
bmRvd3MuCisgICAgdW5zaWduZWQgbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA6IDI7IC8v
IFVzZWQgdG8gY29udHJvbCB3aGF0IGF1dG8ga2VybmluZyBhbmQgbm9ybWFsIGxpZ2F0dXJlcyBp
bXBsaWVzLgogICAgIHVuc2lnbmVkIG1fa2VybmluZyA6IDI7IC8vIEtlcm5pbmcKIAogICAgIHVu
c2lnbmVkIG1fY29tbW9uTGlnYXR1cmVzU3RhdGUgOiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggYzgyNmVhYTE5ZjU3OGYw
NGY2YjIwN2ZmNjgzNmFhMjA1MTFkOTdkYi4uYmNjNmY0N2EwYWJmNDM5N2E0OGNmMzIwNmRmN2Q1
MTA0ZjhkYWEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1i
ZWRkZWRPYmplY3QuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6Z2V0UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3Vt
dWwKICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZm9udERl
c2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkp
OworICAgIGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0
aW5ncy0+ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgZm9udERlc2NyaXB0aW9u
LnNldENvbXB1dGVkU2l6ZShmb250RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpKTsKICAgICBm
b250ID0gRm9udChmb250RGVzY3JpcHRpb24sIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDE3YmVmYWY1ZmU5OTlkZmM4ZjVh
ZDc3MTZjNzg5NmIzOTI5YWVkMTQuLjU4ZDI4MTlmN2U4MmI4MDJjNjRkYjVhZDA3YzBiMWU4ZjNk
YjNiZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTQ4MSw2ICs0ODEs
NyBAQCBOU1N0cmluZyAqV2ViS2l0S2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURlZmF1bHRE
ZWZhdWx0c0tleSA9IEAiV2ViS2l0S2VybmluZwogCiBzdGF0aWMgQk9PTCBjb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQ7CiBzdGF0aWMgQk9PTCBncmFtbWFyQ2hlY2tpbmdFbmFibGVkOwor
c3RhdGljIEJPT0wga2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURlZmF1bHQ7CiAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBzdGF0aWMgQk9PTCBhdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ7CiBzdGF0aWMgQk9PTCBhdXRvbWF0aWNMaW5rRGV0
ZWN0aW9uRW5hYmxlZDsKQEAgLTE1NjksNiArMTU3MCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2Vs
ZlJldGFpbldoaWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy0+c2V0UmVxdWVzdEFuaW1h
dGlvbkZyYW1lRW5hYmxlZChbcHJlZmVyZW5jZXMgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxl
ZF0pOwogICAgIHNldHRpbmdzLT5zZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKG5lZWRz
RGlkRmluaXNoTG9hZE9yZGVyUXVpcmsoKSk7CiAgICAgc2V0dGluZ3MtPnNldERpYWdub3N0aWNM
b2dnaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkXSk7Cisg
ICAgc2V0dGluZ3MtPnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKGtlcm5pbmdBbmRMaWdh
dHVyZXNFbmFibGVkQnlEZWZhdWx0ID8gKEtlcm5pbmcgfCBMaWdhdHVyZXMpIDogMCk7CiAKICAg
ICBzd2l0Y2ggKFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2Fz
ZSBXZWJBbGxvd0FsbFN0b3JhZ2U6CkBAIC0zMTMwLDcgKzMxMzIsNyBAQCBzdGF0aWMgVmVjdG9y
PFN0cmluZz4gdG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgY29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkXTsKICAgICBncmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gW2Rl
ZmF1bHRzIGJvb2xGb3JLZXk6V2ViR3JhbW1hckNoZWNraW5nRW5hYmxlZF07CiAKLSAgICBGb250
OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJL
aXRLZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdERlZmF1bHRzS2V5XSA/IEtlcm5p
bmcgfCBMaWdhdHVyZXMgOiAwKTsKKyAgICBrZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVm
YXVsdCA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYktpdEtlcm5pbmdBbmRMaWdhdHVyZXNFbmFi
bGVkQnlEZWZhdWx0RGVmYXVsdHNLZXldOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDYwCiAgICAgYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0g
W2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVk
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBiMWVlMzU4MzMxMjA5ZmU3YmY4NTkwMTA0ZmU1MDQ5YmYwM2M3Yzc0Li4xMTA3NTIzOWYyMjYy
MTkwNTBjN2UwOWFjMDRlNjRlZWMwNWUzYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yMTkzLDYgKzIxOTMsMTIgQEAgdm9pZCBXZWJQ
YWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
ICAgICAgICAgfHwgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vi
c3RpdHV0aW9uKCkKICNlbmRpZgogICAgICk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wg
a2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWQgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zaG91bGRF
bmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KCk7CisjZWxzZQorICAgIGJvb2wga2Vy
bmluZ0FuZExpZ2F0dXJlc0VuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorICAgIHNldHRpbmdzLT5z
ZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhrZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZCA/
IChXZWJDb3JlOjpLZXJuaW5nIHwgV2ViQ29yZTo6TGlnYXR1cmVzKSA6IDApOwogICAgIHNldHRp
bmdzLT5zZXRMYXlvdXRGYWxsYmFja1dpZHRoKHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpsYXlvdXRGYWxsYmFja1dpZHRoS2V5KCkpKTsKICAgICBzZXR0aW5n
cy0+c2V0RGV2aWNlV2lkdGgoc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OmRldmljZVdpZHRoS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0RGV2aWNlSGVpZ2h0
KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZpY2VIZWln
aHRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9j
ZXNzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjMjQ4
YTRlMGE5MDExZDE1M2RlZDFiODljMTBjMDk1NjY4MDZkNzYzLi41N2NjNWU2YzVhNTQwNWEwYmI1
ODk5N2M4YzQzYTAzOGViOTQ0ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nl
c3MuaApAQCAtMTY0LDYgKzE2NCw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAg
cGlkX3QgcHJlc2VudGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlbnRl
ckFwcGxpY2F0aW9uUGlkOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0
dXRpb24oKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlv
bjsgfQorICAgIGJvb2wgc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCgp
IGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVs
dDsgfQogI2VuZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oUVQpCkBAIC0zMzEsNiArMzMyLDcgQEAg
cHJpdmF0ZToKICAgICBwaWRfdCBtX3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogICAgIGRpc3Bh
dGNoX2dyb3VwX3QgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91cDsKICAgICBib29s
IG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOworICAgIGJvb2wgbV9zaG91bGRF
bmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0OwogI2VuZGlmCiAKICAgICBib29sIG1f
ZnVsbEtleWJvYXJkQWNjZXNzRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L21hYy9XZWJQcm9jZXNzTWFjLm1tCmluZGV4IDAwMWRlYjRjOGZmNWU4MDc2MDcxNTc0ZTQ0MTZh
ZjYyZjM2YzZkOTAuLjc3YmRjYjM2Y2I4MTE5MWYwNjJkZjE4NjNjNTg2NGE5ZDU2MDEzMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQpAQCAt
Mjc3LDcgKzI3Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyhjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgfQogCiAgICAgbV9z
aG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24gPSBwYXJhbWV0ZXJzLnNob3VsZEZvcmNl
U2NyZWVuRm9udFN1YnN0aXR1dGlvbjsKLSAgICBGb250OjpzZXREZWZhdWx0VHlwZXNldHRpbmdG
ZWF0dXJlcyhwYXJhbWV0ZXJzLnNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1
bHQgPyBLZXJuaW5nIHwgTGlnYXR1cmVzIDogMCk7CisgICAgbV9zaG91bGRFbmFibGVLZXJuaW5n
QW5kTGlnYXR1cmVzQnlEZWZhdWx0ID0gcGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5k
TGlnYXR1cmVzQnlEZWZhdWx0OwogCiAgICAgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQg
PSBwYXJhbWV0ZXJzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0LnBvcnQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171809</attachid>
            <date>2012-11-01 04:16:51 -0700</date>
            <delta_ts>2012-11-01 04:53:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100863-20121101121450.patch</filename>
            <type>text/plain</type>
            <size>22898</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNGYzMjEwYTE5OTAy
N2QyNDAxOTliZWM2NTk5ODA0NDIzYTdiOS4uZDIxZDI4MTA1YTczMjQyNDg2Y2RlYzRkMzg4OGNm
M2NiNDZkMzZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTExLTAxICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1h
a2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZXMgdGhlIGRlZmF1bHRU
eXBlc2V0dGluZ0ZlYXR1cmVzIHNldHRpbmcgZnJvbSBiZWluZyBhIHN0YXRpYyB2YXJpYWJsZQor
ICAgICAgICBpbiBGb250LmggdG8gYmVpbmcgYSBwcm9wZXIgcGFnZSBzZXR0aW5nLiAKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSBpdCBhbmQg
ZW5zdXJpbmcgdGhhdCBmdWxsIHJlc3R5bGVzIGFyZSB0cmlnZ2VyZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50KTogCisgICAgICAgICAg
ICBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjphcHBseVByb3BlcnR5KTogCisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0aWFs
aXplRm9udFN0eWxlKToKKyAgICAgICAgICAgIFNldCBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVmYXVsdFR5
cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAgICAgRW5zdXJlIHdlIHRyaWdnZXIgYSBmdWxs
IHJlc3R5bGUgc28gdGhhdCBhbGwgdGhlIGZvbnQgZGVzY3JpcHRpb25zIGhhdmUgdGhlaXIKKyAg
ICAgICAgICAgIHR5cGVzZXR0aW5ncyBmZWF0dXJlcyB1cGRhdGVkLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAgICAgICAgICBNb3ZlIHRoaXMg
ZnVuY3Rpb24gdG8gRm9udERlc2NyaXB0aW9uIHNpbmNlIGl0IGRvZXMgbm90IGRlcGVuZCBvbiBh
bnl0aGluZyBpbiBGb250LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAoRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
RGVzY3JpcHRpb246OkZvbnREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb246OmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnREZXNjcmlwdGlvbjo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAg
ICAoRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6
dHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRS
ZXBsYWNlbWVudFRleHRHZW9tZXRyeSk6CisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVzZXR0
aW5nRmVhdHVyZXMuCisKIDIwMTItMTAtMzEgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRleHQtYmFzZWQgcmVwYWludCB0ZXN0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzJiYmMzYzliZjQ1NzBmYThjODNkM2E3MjNiYmY2NzFm
Yzg4Mjg3Zi4uM2FlZWY1NWEwYTMxMzdhZDAxNWFlMzdiODMzZjhhMTMwNTEyY2RjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTAxICBBbGxhbiBTYW5kZmVsZCBK
ZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1ha2UgZGVmYXVsdFR5
cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIEZvbnQ6OnNldERlZmF1bHRUeXBl
c2V0dGluZ0ZlYXR1cmVzIHRvIFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBf
cHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorICAgICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToK
KwogMjAxMi0xMC0zMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIFN5bmMgdXAgRmVhdHVyZURlZmluZSBDb25maWd1cmF0aW9uIEZpbGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMDAzMTM1NDViZjEzOTBhMmUzZjY1MmY5MjYwMGQ1YjNmNWJiMzJhOS4uOTkx
MDkwNzQzMjVjOGEzNDI4Nzc2Y2Y5ZTZiOGZjY2IyYTVlZGZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTExLTAxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5z
ZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1ha2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMg
YSBwcm9wZXIgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBmcm9tIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzIHRv
IFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcy4gCisgICAgICAgIFRoaXMg
anVzdCBhIHNpbXBsZSBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBNYWMgc2V0dGluZywgYSBs
YXRlciBwYXRjaCB3aWxsIGV4cG9zZSB0aGlzCisgICAgICAgIHNldHRpbmcgdG8gYWxsIFdLMiBw
b3J0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaG91bGRF
bmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KToKKyAgICAgICAgKFdlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEy
LTEwLTMxICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciB0ZXh0LWJhc2VkIHJlcGFpbnQgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCAxMjcwMjViMjg4OTcwNGVlNGM3OTcxZWVjZDM5ZjhhNWQ4NzE2OWM1Li4yNjg5ODg1
YTRkOTEwZjI4MjNhOWUwODE1M2IxNDJlY2M2NTk1Yjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNjg3LDcgKzY4Nyw2IEBAIF9fWk43V2ViQ29yZTQ3YXR0cmlidXRlZFN0cmluZ0J5U3RyaXBw
aW5nQXR0YWNobWVudENoYXJhY3RlcnNFUDE4TlNBdHRyaWJ1dGVkU3RyCiBfX1pON1dlYkNvcmU0
Rm9udDExc2V0Q29kZVBhdGhFTlMwXzhDb2RlUGF0aEUKIF9fWk43V2ViQ29yZTRGb250MThzaG91
bGRVc2VTbW9vdGhpbmdFdgogX19aTjdXZWJDb3JlNEZvbnQyMXNldFNob3VsZFVzZVNtb290aGlu
Z0ViCi1fX1pON1dlYkNvcmU0Rm9udDI5c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXNFagog
X19aTjdXZWJDb3JlNEZvbnRDMUVSS05TXzE2Rm9udFBsYXRmb3JtRGF0YUViTlNfMTdGb250U21v
b3RoaW5nTW9kZUUKIF9fWk43V2ViQ29yZTRGb250QzFFdgogX19aTjdXZWJDb3JlNEZvbnRhU0VS
S1MwXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IGI0ODRlMTY5ZTEyOWI0
MjU5ZWVjYmU2MGNjNmI0YzdlMGFiOGMwNDkuLjIxOWFlNWRhZTczOTRhMTQ1NTc3MDQwY2E3MWUx
MGFkMTdhYTU0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE0ODMs
NiArMTQ4Myw3IEBAIFBhc3NSZWZQdHI8UmVuZGVyU3R5bGU+IFN0eWxlUmVzb2x2ZXI6OnN0eWxl
Rm9yRG9jdW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50LCBDU1NGCiAgICAgaWYgKFNldHRpbmdzKiBz
ZXR0aW5ncyA9IGRvY3VtZW50LT5zZXR0aW5ncygpKSB7CiAgICAgICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRVc2VQcmludGVyRm9udChkb2N1bWVudC0+cHJpbnRpbmcoKSB8fCAhc2V0dGluZ3MtPnNj
cmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogICAgICAgICBmb250RGVzY3JpcHRpb24u
c2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9udFJlbmRlcmluZ01vZGUoKSk7CisgICAgICAg
IGZvbnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5ncy0+
ZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc3RhbmRhcmRGb250ID0gc2V0dGluZ3MtPnN0YW5kYXJkRm9udEZhbWlseShmb250RGVzY3Jp
cHRpb24uc2NyaXB0KCkpOwogICAgICAgICBpZiAoIXN0YW5kYXJkRm9udC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRHZW5lcmljRmFtaWx5KEZvbnREZXNjcmlw
dGlvbjo6U3RhbmRhcmRGYW1pbHkpOwpAQCAtMzEzMCw2ICszMTMxLDcgQEAgdm9pZCBTdHlsZVJl
c29sdmVyOjphcHBseVByb3BlcnR5KENTU1Byb3BlcnR5SUQgaWQsIENTU1ZhbHVlKiB2YWx1ZSkK
ICAgICAgICAgICAgICAgICBpZiAoIXNldHRpbmdzKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0
dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgICAgICAgICAgICAgIGZvbnREZXNjcmlw
dGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5ncy0+ZGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFVz
ZVByaW50ZXJGb250KG1fY2hlY2tlci5kb2N1bWVudCgpLT5wcmludGluZygpIHx8ICFzZXR0aW5n
cy0+c2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoKSk7CiAKICAgICAgICAgICAgICAgICAv
LyBIYW5kbGUgdGhlIHpvb20gZmFjdG9yLgpAQCAtNDAxMSw2ICs0MDEzLDcgQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjppbml0aWFsaXplRm9udFN0eWxlKFNldHRpbmdzKiBzZXR0aW5ncykKICAgICBG
b250RGVzY3JpcHRpb24gZm9udERlc2NyaXB0aW9uOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRH
ZW5lcmljRmFtaWx5KEZvbnREZXNjcmlwdGlvbjo6U3RhbmRhcmRGYW1pbHkpOwogICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgp
KTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoc2V0
dGluZ3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAgIGZvbnREZXNjcmlwdGlv
bi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRpbmcoKSB8fCAh
c2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogICAgIGNvbnN0IEF0
b21pY1N0cmluZyYgc3RhbmRhcmRGb250RmFtaWx5ID0gZG9jdW1lbnRTZXR0aW5ncygpLT5zdGFu
ZGFyZEZvbnRGYW1pbHkoKTsKICAgICBpZiAoIXN0YW5kYXJkRm9udEZhbWlseS5pc0VtcHR5KCkp
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggNjEzYzU2YWQ1NTM0ZDJhYTJlZTljMDI1
OTA5MTRkNjRmM2E2YmYzYS4uZmM0OWZiZGJlYWZjNGUyNzdkOWQ2MWJmZTE3ODUzMGIzZWFkYWE5
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTEzNyw2ICsxMzcsNyBAQCBTZXR0aW5n
czo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fZGVmYXVsdEZvbnRTaXplKDApCiAgICAg
LCBtX2RlZmF1bHRGaXhlZEZvbnRTaXplKDApCiAgICAgLCBtX3NjcmVlbkZvbnRTdWJzdGl0dXRp
b25FbmFibGVkKHRydWUpCisgICAgLCBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKDApCiAg
ICAgLCBtX3ZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKDUwKQogICAgICwgbV9t
aW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoMjU3ICogMjU2KQogICAgICwgbV9sYXlvdXRG
YWxsYmFja1dpZHRoKDk4MCkKQEAgLTQzNyw2ICs0MzgsMTUgQEAgdm9pZCBTZXR0aW5nczo6c2V0
U2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCBzY3JlZW5Gb250U3Vic3RpdHV0aW9u
RW5hYmwKICAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwogfQog
Cit2b2lkIFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGlu
Z0ZlYXR1cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKQoreworICAgIGlmIChtX2RlZmF1
bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID09IGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID0gZGVmYXVs
dFR5cGVzZXR0aW5nRmVhdHVyZXM7CisgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMoKTsKK30KKwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiB2b2lkIFNldHRp
bmdzOjpzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCB0ZXh0QXV0b3NpemluZ0VuYWJsZWQp
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggZjA1M2Y1NDFlZDUwYjkyNDczNDMxMTE3MTJk
Y2U4ZWY4MGY1MWI3ZC4uMjhjNjIxNDRiN2ZhZDFmYjdkZmNlYWZjZjFhN2JkOGQ0MTk0YTYwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIktVUkwu
aCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5j
bHVkZSAiVHlwZXNldHRpbmdGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRv
bWljU3RyaW5nSGFzaC5oPgpAQCAtMTA4LDYgKzEwOSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRTY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZChib29sKTsKICAg
ICAgICAgYm9vbCBzY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQ7IH0KIAorICAgICAgICB2b2lkIHNldERl
ZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMpOworICAgICAgICBi
b29sIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0
VHlwZXNldHRpbmdGZWF0dXJlczsgfQorCiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAg
ICAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wg
dGV4dEF1dG9zaXppbmdFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0QXV0b3NpemluZ0Vu
YWJsZWQ7IH0KQEAgLTY4MCw2ICs2ODQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IGludCBtX2RlZmF1bHRGb250U2l6ZTsKICAgICAgICAgaW50IG1fZGVmYXVsdEZpeGVkRm9udFNp
emU7CiAgICAgICAgIGJvb2wgbV9zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZDsKKyAgICAg
ICAgVHlwZXNldHRpbmdGZWF0dXJlcyBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzOwogICAg
ICAgICBpbnQgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbjsKICAgICAgICAg
aW50IG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplOwogICAgICAgICBpbnQgbV9sYXlv
dXRGYWxsYmFja1dpZHRoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNw
cAppbmRleCAzOGNlMzU0MjUyYjlkNTA4YTk5NWFmMzVlOGNmMjY3ZmU4Y2Y3NGU5Li4zZTBjMmI5
MTRhN2M0ZjNiNzY0OTFlY2JmMGI4NzE3ZjQ0ZDk3MDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcApAQCAtNjQsOCArNjQsNiBAQCBjb25zdCB1aW50OF90IEZv
bnQ6OnNfcm91bmRpbmdIYWNrQ2hhcmFjdGVyVGFibGVbMjU2XSA9IHsKIAogRm9udDo6Q29kZVBh
dGggRm9udDo6c19jb2RlUGF0aCA9IEF1dG87CiAKLVR5cGVzZXR0aW5nRmVhdHVyZXMgRm9udDo6
c19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9IDA7Ci0KIC8vID09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09CiAvLyBGb250IEltcGxlbWVudGF0aW9uIChDcm9zcy1QbGF0Zm9y
bSBQb3J0aW9uKQogLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQEAgLTMw
NSwxNiArMzAzLDYgQEAgRm9udDo6Q29kZVBhdGggRm9udDo6Y29kZVBhdGgoKQogICAgIHJldHVy
biBzX2NvZGVQYXRoOwogfQogCi12b2lkIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1
cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcykKLXsKLSAgICBzX2Rl
ZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzID0gdHlwZXNldHRpbmdGZWF0dXJlczsKLX0KLQotVHlw
ZXNldHRpbmdGZWF0dXJlcyBGb250OjpkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcygpCi17Ci0g
ICAgcmV0dXJuIHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7Ci19Ci0KIEZvbnQ6OkNvZGVQ
YXRoIEZvbnQ6OmNvZGVQYXRoKGNvbnN0IFRleHRSdW4mIHJ1bikgY29uc3QKIHsKICAgICBpZiAo
c19jb2RlUGF0aCAhPSBBdXRvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5o
CmluZGV4IGFhYmNiMmU3MDBkOTQ1MzFjZjE1Y2NlNDA4ZmZkYWQyYmQ2NmZmZTMuLmE0ZjUyYjk1
YTc5YTc2OWU1NDU3N2M5Y2FiNjU0ZTI2MmU3MDEwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250LmgKQEAgLTEyMCw0OCArMTIwLDcgQEAgcHVibGljOgogICAgIGJvb2wg
aXNQcmludGVyRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLnVzZVByaW50
ZXJGb250KCk7IH0KICAgICAKICAgICBGb250UmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24ucmVuZGVyaW5nTW9kZSgpOyB9Ci0KLSAg
ICBUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25zdAotICAgIHsK
LSAgICAgICAgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUgPSBtX2ZvbnREZXNj
cmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpOwotICAgICAgICBUeXBlc2V0dGluZ0ZlYXR1cmVz
IGZlYXR1cmVzID0gc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsKLQotICAgICAgICBzd2l0
Y2godGV4dFJlbmRlcmluZ01vZGUpIHsKLSAgICAgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIE9wdGltaXplU3BlZWQ6Ci0gICAgICAg
ICAgICBmZWF0dXJlcyAmPSB+KEtlcm5pbmcgfCBMaWdhdHVyZXMpOwotICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgotICAgICAgICBjYXNlIE9wdGlt
aXplTGVnaWJpbGl0eToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IEtlcm5pbmcgfCBMaWdhdHVy
ZXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAobV9m
b250RGVzY3JpcHRpb24ua2VybmluZygpKSB7Ci0gICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9u
OjpOb25lS2VybmluZzoKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5LZXJuaW5nOwotICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5n
OgotICAgICAgICAgICAgZmVhdHVyZXMgfD0gS2VybmluZzsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc6Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHN3aXRjaCAobV9mb250RGVzY3JpcHRpb24uY29t
bW9uTGlnYXR1cmVzU3RhdGUoKSkgewotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6RGlz
YWJsZWRMaWdhdHVyZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzICY9IH5MaWdhdHVyZXM7
Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246OkVuYWJs
ZWRMaWdhdHVyZXNTdGF0ZToKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IExpZ2F0dXJlczsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsTGln
YXR1cmVzU3RhdGU6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotCi0gICAgICAgIHJl
dHVybiBmZWF0dXJlczsKLSAgICB9CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGlu
Z0ZlYXR1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24udHlwZXNldHRpbmdG
ZWF0dXJlcygpOyB9CiAKICAgICBGb250RmFtaWx5JiBmaXJzdEZhbWlseSgpIHsgcmV0dXJuIG1f
Zm9udERlc2NyaXB0aW9uLmZpcnN0RmFtaWx5KCk7IH0KICAgICBjb25zdCBGb250RmFtaWx5JiBm
YW1pbHkoKSBjb25zdCB7IHJldHVybiBtX2ZvbnREZXNjcmlwdGlvbi5mYW1pbHkoKTsgfQpAQCAt
MjQ5LDkgKzIwOCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ29kZVBhdGggY29kZVBhdGgoKTsK
ICAgICBzdGF0aWMgQ29kZVBhdGggc19jb2RlUGF0aDsKIAotICAgIHN0YXRpYyB2b2lkIHNldERl
ZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKFR5cGVzZXR0aW5nRmVhdHVyZXMpOwotICAgIHN0YXRp
YyBUeXBlc2V0dGluZ0ZlYXR1cmVzIGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCk7Ci0KICAg
ICBzdGF0aWMgY29uc3QgdWludDhfdCBzX3JvdW5kaW5nSGFja0NoYXJhY3RlclRhYmxlWzI1Nl07
CiAgICAgc3RhdGljIGJvb2wgaXNSb3VuZGluZ0hhY2tDaGFyYWN0ZXIoVUNoYXIzMiBjKQogICAg
IHsKQEAgLTI5MSw4ICsyNDcsNiBAQCBwcml2YXRlOgogICAgIHZvaWQgaW5pdEZvcm1hdEZvclRl
eHRMYXlvdXQoUVRleHRMYXlvdXQqKSBjb25zdDsKICNlbmRpZgogCi0gICAgc3RhdGljIFR5cGVz
ZXR0aW5nRmVhdHVyZXMgc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlczsKLQogICAgIEZvbnRE
ZXNjcmlwdGlvbiBtX2ZvbnREZXNjcmlwdGlvbjsKICAgICBtdXRhYmxlIFJlZlB0cjxGb250RmFs
bGJhY2tMaXN0PiBtX2ZvbnRGYWxsYmFja0xpc3Q7CiAgICAgc2hvcnQgbV9sZXR0ZXJTcGFjaW5n
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uaAppbmRleCA0NDM2ODc1OWQwZDZhZTYxNGEzOGQ3YmNhOGU3YTBiM2NmOTdiMDQwLi4wMWZi
NGM0YmRmMmY2NTk1N2NkNTk5ZWYyMmIxY2IxNTg4YWVkNTNmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIkZvbnRXaWR0aFZhcmlhbnQuaCIKICNpbmNsdWRlICJUZXh0T3JpZW50
YXRpb24uaCIKICNpbmNsdWRlICJUZXh0UmVuZGVyaW5nTW9kZS5oIgorI2luY2x1ZGUgIlR5cGVz
ZXR0aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlICJXZWJLaXRGb250RmFtaWx5TmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCkBAIC04OSw2ICs5MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgLCBtX2dlbmVyaWNGYW1pbHkoTm9GYW1pbHkpCiAgICAgICAgICwgbV91c2VQcmludGVy
Rm9udChmYWxzZSkKICAgICAgICAgLCBtX3JlbmRlcmluZ01vZGUoTm9ybWFsUmVuZGVyaW5nTW9k
ZSkKKyAgICAgICAgLCBtX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKDApCiAgICAgICAgICwg
bV9rZXJuaW5nKEF1dG9LZXJuaW5nKQogICAgICAgICAsIG1fY29tbW9uTGlnYXR1cmVzU3RhdGUo
Tm9ybWFsTGlnYXR1cmVzU3RhdGUpCiAgICAgICAgICwgbV9kaXNjcmV0aW9uYXJ5TGlnYXR1cmVz
U3RhdGUoTm9ybWFsTGlnYXR1cmVzU3RhdGUpCkBAIC0xMjAsNiArMTIyLDcgQEAgcHVibGljOgog
ICAgIC8vIG9ubHkgdXNlIGZpeGVkIGRlZmF1bHQgc2l6ZSB3aGVuIHRoZXJlIGlzIG9ubHkgb25l
IGZvbnQgZmFtaWx5LCBhbmQgdGhhdCBmYW1pbHkgaXMgIm1vbm9zcGFjZSIKICAgICBib29sIHVz
ZUZpeGVkRGVmYXVsdFNpemUoKSBjb25zdCB7IHJldHVybiBnZW5lcmljRmFtaWx5KCkgPT0gTW9u
b3NwYWNlRmFtaWx5ICYmICFmYW1pbHkoKS5uZXh0KCkgJiYgZmFtaWx5KCkuZmFtaWx5KCkgPT0g
bW9ub3NwYWNlRmFtaWx5OyB9CiAgICAgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRSZW5kZXJpbmdNb2RlPihtX3JlbmRlcmlu
Z01vZGUpOyB9CisgICAgVHlwZXNldHRpbmdGZWF0dXJlcyBkZWZhdWx0VHlwZXNldHRpbmdGZWF0
dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7IH0KICAg
ICBLZXJuaW5nIGtlcm5pbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxLZXJuaW5nPiht
X2tlcm5pbmcpOyB9CiAgICAgTGlnYXR1cmVzU3RhdGUgY29tbW9uTGlnYXR1cmVzU3RhdGUoKSBj
b25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4obV9jb21tb25MaWdhdHVy
ZXNTdGF0ZSk7IH0KICAgICBMaWdhdHVyZXNTdGF0ZSBkaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxMaWdhdHVyZXNTdGF0ZT4obV9kaXNjcmV0
aW9uYXJ5TGlnYXR1cmVzU3RhdGUpOyB9CkBAIC0xNTMsNiArMTU2LDcgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0VXNlUHJpbnRlckZvbnQoYm9vbCBwKSB7IG1fdXNlUHJpbnRlckZvbnQgPSBwOyB9
CiAjZW5kaWYKICAgICB2b2lkIHNldFJlbmRlcmluZ01vZGUoRm9udFJlbmRlcmluZ01vZGUgbW9k
ZSkgeyBtX3JlbmRlcmluZ01vZGUgPSBtb2RlOyB9CisgICAgdm9pZCBzZXREZWZhdWx0VHlwZXNl
dHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVyZXMpIHsg
bV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9IHR5cGVzZXR0aW5nRmVhdHVyZXM7IH0KICAg
ICB2b2lkIHNldEtlcm5pbmcoS2VybmluZyBrZXJuaW5nKSB7IG1fa2VybmluZyA9IGtlcm5pbmc7
IH0KICAgICB2b2lkIHNldENvbW1vbkxpZ2F0dXJlc1N0YXRlKExpZ2F0dXJlc1N0YXRlIGNvbW1v
bkxpZ2F0dXJlc1N0YXRlKSB7IG1fY29tbW9uTGlnYXR1cmVzU3RhdGUgPSBjb21tb25MaWdhdHVy
ZXNTdGF0ZTsgfQogICAgIHZvaWQgc2V0RGlzY3JldGlvbmFyeUxpZ2F0dXJlc1N0YXRlKExpZ2F0
dXJlc1N0YXRlIGRpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZSkgeyBtX2Rpc2NyZXRpb25hcnlM
aWdhdHVyZXNTdGF0ZSA9IGRpc2NyZXRpb25hcnlMaWdhdHVyZXNTdGF0ZTsgfQpAQCAtMTY3LDYg
KzE3MSw0OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRTY3JpcHQoVVNjcmlwdENvZGUgcykgeyBt
X3NjcmlwdCA9IHM7IH0KICAgICB2b2lkIHNldEZlYXR1cmVTZXR0aW5ncyhQYXNzUmVmUHRyPEZv
bnRGZWF0dXJlU2V0dGluZ3M+IHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gc2V0dGlu
Z3M7IH0KIAorICAgIC8vIENhbGN1bGF0ZSB0aGUgZWZmZWN0aXZlIHR5cGVzZXR0aW5nIGZlYXR1
cmVzIGJhc2VkIG9uIGFsbCB0aGUgc2V0dGluZ3MgdGhhdCBjb250cm9sIHRoZW0uCisgICAgVHlw
ZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgY29uc3QKKyAgICB7CisgICAg
ICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgZmVhdHVyZXMgPSBkZWZhdWx0VHlwZXNldHRpbmdGZWF0
dXJlcygpOworCisgICAgICAgIHN3aXRjaCAodGV4dFJlbmRlcmluZ01vZGUoKSkgeworICAgICAg
ICBjYXNlIEF1dG9UZXh0UmVuZGVyaW5nOgorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNh
c2UgT3B0aW1pemVTcGVlZDoKKyAgICAgICAgICAgIGZlYXR1cmVzICY9IH4oV2ViQ29yZTo6S2Vy
bmluZyB8IExpZ2F0dXJlcyk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBHZW9t
ZXRyaWNQcmVjaXNpb246CisgICAgICAgIGNhc2UgT3B0aW1pemVMZWdpYmlsaXR5OgorICAgICAg
ICAgICAgZmVhdHVyZXMgfD0gV2ViQ29yZTo6S2VybmluZyB8IExpZ2F0dXJlczsKKyAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICB9CisKKyAgICAgICAgc3dpdGNoIChrZXJuaW5nKCkpIHsKKyAg
ICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246Ok5vbmVLZXJuaW5nOgorICAgICAgICAgICAgZmVh
dHVyZXMgJj0gfldlYkNvcmU6Oktlcm5pbmc7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBGb250RGVzY3JpcHRpb246Ok5vcm1hbEtlcm5pbmc6CisgICAgICAgICAgICBmZWF0dXJl
cyB8PSBXZWJDb3JlOjpLZXJuaW5nOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Rm9udERlc2NyaXB0aW9uOjpBdXRvS2VybmluZzoKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisKKyAgICAgICAgc3dpdGNoIChjb21tb25MaWdhdHVyZXNTdGF0ZSgpKSB7CisgICAgICAg
IGNhc2UgRm9udERlc2NyaXB0aW9uOjpEaXNhYmxlZExpZ2F0dXJlc1N0YXRlOgorICAgICAgICAg
ICAgZmVhdHVyZXMgJj0gfkxpZ2F0dXJlczsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBj
YXNlIEZvbnREZXNjcmlwdGlvbjo6RW5hYmxlZExpZ2F0dXJlc1N0YXRlOgorICAgICAgICAgICAg
ZmVhdHVyZXMgfD0gTGlnYXR1cmVzOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Rm9udERlc2NyaXB0aW9uOjpOb3JtYWxMaWdhdHVyZXNTdGF0ZToKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZlYXR1cmVzOworICAgIH0KKwogcHJpdmF0
ZToKICAgICBGb250RmFtaWx5IG1fZmFtaWx5TGlzdDsgLy8gVGhlIGxpc3Qgb2YgZm9udCBmYW1p
bGllcyB0byBiZSB1c2VkLgogICAgIFJlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBtX2ZlYXR1
cmVTZXR0aW5nczsKQEAgLTE4OSw2ICsyMzUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1f
dXNlUHJpbnRlckZvbnQgOiAxOwogCiAgICAgdW5zaWduZWQgbV9yZW5kZXJpbmdNb2RlIDogMTsg
IC8vIFVzZWQgdG8gc3dpdGNoIGJldHdlZW4gQ0cgYW5kIEdESSB0ZXh0IG9uIFdpbmRvd3MuCisg
ICAgdW5zaWduZWQgbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA6IDI7IC8vIFVzZWQgdG8g
Y29udHJvbCB3aGF0IGF1dG8ga2VybmluZyBhbmQgbm9ybWFsIGxpZ2F0dXJlcyBpbXBsaWVzLgog
ICAgIHVuc2lnbmVkIG1fa2VybmluZyA6IDI7IC8vIEtlcm5pbmcKIAogICAgIHVuc2lnbmVkIG1f
Y29tbW9uTGlnYXR1cmVzU3RhdGUgOiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggYzgyNmVhYTE5ZjU3OGYwNGY2YjIwN2Zm
NjgzNmFhMjA1MTFkOTdkYi4uYmNjNmY0N2EwYWJmNDM5N2E0OGNmMzIwNmRmN2Q1MTA0ZjhkYWEw
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCkBAIC0yMTMsNiArMjEzLDcgQEAgYm9vbCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6Z2V0
UmVwbGFjZW1lbnRUZXh0R2VvbWV0cnkoY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWwKICAgICBp
ZiAoIXNldHRpbmdzKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgZm9udERlc2NyaXB0aW9u
LnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdNb2RlKCkpOworICAgIGZv
bnREZXNjcmlwdGlvbi5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhzZXR0aW5ncy0+ZGVm
YXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldENvbXB1
dGVkU2l6ZShmb250RGVzY3JpcHRpb24uc3BlY2lmaWVkU2l6ZSgpKTsKICAgICBmb250ID0gRm9u
dChmb250RGVzY3JpcHRpb24sIDAsIDApOwogICAgIGZvbnQudXBkYXRlKDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDE3YmVmYWY1ZmU5OTlkZmM4ZjVhZDc3MTZjNzg5
NmIzOTI5YWVkMTQuLjU4ZDI4MTlmN2U4MmI4MDJjNjRkYjVhZDA3YzBiMWU4ZjNkYjNiZDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTQ4MSw2ICs0ODEsNyBAQCBOU1N0
cmluZyAqV2ViS2l0S2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURlZmF1bHREZWZhdWx0c0tl
eSA9IEAiV2ViS2l0S2VybmluZwogCiBzdGF0aWMgQk9PTCBjb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQ7CiBzdGF0aWMgQk9PTCBncmFtbWFyQ2hlY2tpbmdFbmFibGVkOworc3RhdGljIEJP
T0wga2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURlZmF1bHQ7CiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDYwCiBzdGF0aWMgQk9PTCBhdXRvbWF0aWNRdW90ZVN1
YnN0aXR1dGlvbkVuYWJsZWQ7CiBzdGF0aWMgQk9PTCBhdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5h
YmxlZDsKQEAgLTE1NjksNiArMTU3MCw3IEBAIHN0YXRpYyBib29sIG5lZWRzU2VsZlJldGFpbldo
aWxlTG9hZGluZ1F1aXJrKCkKICAgICBzZXR0aW5ncy0+c2V0UmVxdWVzdEFuaW1hdGlvbkZyYW1l
RW5hYmxlZChbcHJlZmVyZW5jZXMgcmVxdWVzdEFuaW1hdGlvbkZyYW1lRW5hYmxlZF0pOwogICAg
IHNldHRpbmdzLT5zZXROZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKG5lZWRzRGlkRmluaXNo
TG9hZE9yZGVyUXVpcmsoKSk7CiAgICAgc2V0dGluZ3MtPnNldERpYWdub3N0aWNMb2dnaW5nRW5h
YmxlZChbcHJlZmVyZW5jZXMgZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkXSk7CisgICAgc2V0dGlu
Z3MtPnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKGtlcm5pbmdBbmRMaWdhdHVyZXNFbmFi
bGVkQnlEZWZhdWx0ID8gKEtlcm5pbmcgfCBMaWdhdHVyZXMpIDogMCk7CiAKICAgICBzd2l0Y2gg
KFtwcmVmZXJlbmNlcyBzdG9yYWdlQmxvY2tpbmdQb2xpY3ldKSB7CiAgICAgY2FzZSBXZWJBbGxv
d0FsbFN0b3JhZ2U6CkBAIC0zMTMwLDcgKzMxMzIsNyBAQCBzdGF0aWMgVmVjdG9yPFN0cmluZz4g
dG9TdHJpbmdWZWN0b3IoTlNBcnJheSogcGF0dGVybnMpCiAgICAgY29udGludW91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkID0gW2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViQ29udGludW91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkXTsKICAgICBncmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gW2RlZmF1bHRzIGJv
b2xGb3JLZXk6V2ViR3JhbW1hckNoZWNraW5nRW5hYmxlZF07CiAKLSAgICBGb250OjpzZXREZWZh
dWx0VHlwZXNldHRpbmdGZWF0dXJlcyhbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJLaXRLZXJuaW5n
QW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdERlZmF1bHRzS2V5XSA/IEtlcm5pbmcgfCBMaWdh
dHVyZXMgOiAwKTsKKyAgICBrZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdCA9IFtk
ZWZhdWx0cyBib29sRm9yS2V5OldlYktpdEtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkQnlEZWZh
dWx0RGVmYXVsdHNLZXldOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDYwCiAgICAgYXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkID0gW2RlZmF1bHRz
IGJvb2xGb3JLZXk6V2ViQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkXTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBiMWVlMzU4
MzMxMjA5ZmU3YmY4NTkwMTA0ZmU1MDQ5YmYwM2M3Yzc0Li4xMTA3NTIzOWYyMjYyMTkwNTBjN2Uw
OWFjMDRlNjRlZWMwNWUzYWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCkBAIC0yMTkzLDYgKzIxOTMsMTIgQEAgdm9pZCBXZWJQYWdlOjp1cGRh
dGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkKICAgICAgICAg
fHwgV2ViUHJvY2Vzczo6c2hhcmVkKCkuc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9u
KCkKICNlbmRpZgogICAgICk7CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wga2VybmluZ0Fu
ZExpZ2F0dXJlc0VuYWJsZWQgPSBXZWJQcm9jZXNzOjpzaGFyZWQoKS5zaG91bGRFbmFibGVLZXJu
aW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KCk7CisjZWxzZQorICAgIGJvb2wga2VybmluZ0FuZExp
Z2F0dXJlc0VuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorICAgIHNldHRpbmdzLT5zZXREZWZhdWx0
VHlwZXNldHRpbmdGZWF0dXJlcyhrZXJuaW5nQW5kTGlnYXR1cmVzRW5hYmxlZCA/IChXZWJDb3Jl
OjpLZXJuaW5nIHwgV2ViQ29yZTo6TGlnYXR1cmVzKSA6IDApOwogICAgIHNldHRpbmdzLT5zZXRM
YXlvdXRGYWxsYmFja1dpZHRoKHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpsYXlvdXRGYWxsYmFja1dpZHRoS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0RGV2
aWNlV2lkdGgoc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRl
dmljZVdpZHRoS2V5KCkpKTsKICAgICBzZXR0aW5ncy0+c2V0RGV2aWNlSGVpZ2h0KHN0b3JlLmdl
dFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkZXZpY2VIZWlnaHRLZXkoKSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBjMjQ4YTRlMGE5MDEx
ZDE1M2RlZDFiODljMTBjMDk1NjY4MDZkNzYzLi41N2NjNWU2YzVhNTQwNWEwYmI1ODk5N2M4YzQz
YTAzOGViOTQ0ZjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAt
MTY0LDYgKzE2NCw3IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShNQUMpCiAgICAgcGlkX3QgcHJl
c2VudGVyQXBwbGljYXRpb25QaWQoKSBjb25zdCB7IHJldHVybiBtX3ByZXNlbnRlckFwcGxpY2F0
aW9uUGlkOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24oKSBj
b25zdCB7IHJldHVybiBtX3Nob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbjsgfQorICAg
IGJvb2wgc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCgpIGNvbnN0IHsg
cmV0dXJuIG1fc2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdDsgfQogI2Vu
ZGlmCiAgICAgCiAjaWYgUExBVEZPUk0oUVQpCkBAIC0zMzEsNiArMzMyLDcgQEAgcHJpdmF0ZToK
ICAgICBwaWRfdCBtX3ByZXNlbnRlckFwcGxpY2F0aW9uUGlkOwogICAgIGRpc3BhdGNoX2dyb3Vw
X3QgbV9jbGVhclJlc291cmNlQ2FjaGVzRGlzcGF0Y2hHcm91cDsKICAgICBib29sIG1fc2hvdWxk
Rm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uOworICAgIGJvb2wgbV9zaG91bGRFbmFibGVLZXJu
aW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0OwogI2VuZGlmCiAKICAgICBib29sIG1fZnVsbEtleWJv
YXJkQWNjZXNzRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
bWFjL1dlYlByb2Nlc3NNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQ
cm9jZXNzTWFjLm1tCmluZGV4IDAwMWRlYjRjOGZmNWU4MDc2MDcxNTc0ZTQ0MTZhZjYyZjM2YzZk
OTAuLjc3YmRjYjM2Y2I4MTE5MWYwNjJkZjE4NjNjNTg2NGE5ZDU2MDEzMGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQpAQCAtMjc3LDcgKzI3
Nyw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25z
dCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzCiAgICAgfQogCiAgICAgbV9zaG91bGRGb3Jj
ZVNjcmVlbkZvbnRTdWJzdGl0dXRpb24gPSBwYXJhbWV0ZXJzLnNob3VsZEZvcmNlU2NyZWVuRm9u
dFN1YnN0aXR1dGlvbjsKLSAgICBGb250OjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhw
YXJhbWV0ZXJzLnNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURlZmF1bHQgPyBLZXJu
aW5nIHwgTGlnYXR1cmVzIDogMCk7CisgICAgbV9zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1
cmVzQnlEZWZhdWx0ID0gcGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVz
QnlEZWZhdWx0OwogCiAgICAgbV9jb21wb3NpdGluZ1JlbmRlclNlcnZlclBvcnQgPSBwYXJhbWV0
ZXJzLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdQb3J0LnBvcnQoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171815</attachid>
            <date>2012-11-01 04:53:52 -0700</date>
            <delta_ts>2012-11-01 14:34:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100863-20121101125151.patch</filename>
            <type>text/plain</type>
            <size>23370</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhNGYzMjEwYTE5OTAy
N2QyNDAxOTliZWM2NTk5ODA0NDIzYTdiOS4uZDIxZDI4MTA1YTczMjQyNDg2Y2RlYzRkMzg4OGNm
M2NiNDZkMzZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTExLTAxICBBbGxh
biBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1h
a2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZXMgdGhlIGRlZmF1bHRU
eXBlc2V0dGluZ0ZlYXR1cmVzIHNldHRpbmcgZnJvbSBiZWluZyBhIHN0YXRpYyB2YXJpYWJsZQor
ICAgICAgICBpbiBGb250LmggdG8gYmVpbmcgYSBwcm9wZXIgcGFnZSBzZXR0aW5nLiAKKworICAg
ICAgICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGR5bmFtaWNhbGx5IGNoYW5nZSBpdCBhbmQg
ZW5zdXJpbmcgdGhhdCBmdWxsIHJlc3R5bGVzIGFyZSB0cmlnZ2VyZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlLmV4cC5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50KTogCisgICAgICAgICAg
ICBTZXQgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpTdHls
ZVJlc29sdmVyOjphcHBseVByb3BlcnR5KTogCisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXMuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjppbml0aWFs
aXplRm9udFN0eWxlKToKKyAgICAgICAgICAgIFNldCBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c2V0RGVmYXVsdFR5
cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAgICAgRW5zdXJlIHdlIHRyaWdnZXIgYSBmdWxs
IHJlc3R5bGUgc28gdGhhdCBhbGwgdGhlIGZvbnQgZGVzY3JpcHRpb25zIGhhdmUgdGhlaXIKKyAg
ICAgICAgICAgIHR5cGVzZXR0aW5ncyBmZWF0dXJlcyB1cGRhdGVkLgorICAgICAgICAqIHBhZ2Uv
U2V0dGluZ3MuaDoKKyAgICAgICAgKFNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRp
bmdzOjpkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAgICAgICAgICBNb3ZlIHRoaXMg
ZnVuY3Rpb24gdG8gRm9udERlc2NyaXB0aW9uIHNpbmNlIGl0IGRvZXMgbm90IGRlcGVuZCBvbiBh
bnl0aGluZyBpbiBGb250LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnQ6OnR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAgICAoRm9udCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6CisgICAgICAgIChXZWJDb3JlOjpGb250
RGVzY3JpcHRpb246OkZvbnREZXNjcmlwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpGb250RGVz
Y3JpcHRpb246OmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKToKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnREZXNjcmlwdGlvbjo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMpOgorICAgICAg
ICAoRm9udERlc2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6
dHlwZXNldHRpbmdGZWF0dXJlcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpnZXRS
ZXBsYWNlbWVudFRleHRHZW9tZXRyeSk6CisgICAgICAgICAgICBTZXQgZGVmYXVsdFR5cGVzZXR0
aW5nRmVhdHVyZXMuCisKIDIwMTItMTAtMzEgIElhbiBWb2xsaWNrICA8dm9sbGlja0BjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRleHQtYmFzZWQgcmVwYWludCB0ZXN0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzJiYmMzYzliZjQ1NzBmYThjODNkM2E3MjNiYmY2NzFm
Yzg4Mjg3Zi4uM2FlZWY1NWEwYTMxMzdhZDAxNWFlMzdiODMzZjhhMTMwNTEyY2RjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTExLTAxICBBbGxhbiBTYW5kZmVsZCBK
ZW5zZW4gIDxhbGxhbi5qZW5zZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1ha2UgZGVmYXVsdFR5
cGVzZXR0aW5nRmVhdHVyZXMgYSBwcm9wZXIgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBmcm9tIEZvbnQ6OnNldERlZmF1bHRUeXBl
c2V0dGluZ0ZlYXR1cmVzIHRvIFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBf
cHJlZmVyZW5jZXNDaGFuZ2VkOl0pOgorICAgICAgICAoK1tXZWJWaWV3IGluaXRpYWxpemVdKToK
KwogMjAxMi0xMC0zMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAg
ICAgICAgIFtNYWNdIFN5bmMgdXAgRmVhdHVyZURlZmluZSBDb25maWd1cmF0aW9uIEZpbGVzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKaW5kZXggMDAzMTM1NDViZjEzOTBhMmUzZjY1MmY5MjYwMGQ1YjNmNWJiMzJhOS4uOTkx
MDkwNzQzMjVjOGEzNDI4Nzc2Y2Y5ZTZiOGZjY2IyYTVlZGZkMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDEyLTExLTAxICBBbGxhbiBTYW5kZmVsZCBKZW5zZW4gIDxhbGxhbi5qZW5z
ZW5AZGlnaWEuY29tPgorCisgICAgICAgIE1ha2UgZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMg
YSBwcm9wZXIgc2V0dGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW92ZSBmcm9tIEZvbnQ6OnNldERlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzIHRv
IFNldHRpbmdzOjpzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcy4gCisgICAgICAgIFRoaXMg
anVzdCBhIHNpbXBsZSBjb252ZXJzaW9uIG9mIHRoZSBleGlzdGluZyBNYWMgc2V0dGluZywgYSBs
YXRlciBwYXRjaCB3aWxsIGV4cG9zZSB0aGlzCisgICAgICAgIHNldHRpbmcgdG8gYWxsIFdLMiBw
b3J0cy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUHJvY2Vzcy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpzaG91bGRF
bmFibGVLZXJuaW5nQW5kTGlnYXR1cmVzQnlEZWZhdWx0KToKKyAgICAgICAgKFdlYlByb2Nlc3Mp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMubW06CisgICAgICAgIChX
ZWJLaXQ6OldlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MpOgorCiAyMDEy
LTEwLTMxICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciB0ZXh0LWJhc2VkIHJlcGFpbnQgdGVzdGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5p
bgppbmRleCAxMjcwMjViMjg4OTcwNGVlNGM3OTcxZWVjZDM5ZjhhNWQ4NzE2OWM1Li5hN2E0MDkx
YmUxYWE0NTlkMThkYTkzNjk5MjI5NzFjZTg5ZWJiYzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpA
QCAtNjg3LDcgKzY4Nyw2IEBAIF9fWk43V2ViQ29yZTQ3YXR0cmlidXRlZFN0cmluZ0J5U3RyaXBw
aW5nQXR0YWNobWVudENoYXJhY3RlcnNFUDE4TlNBdHRyaWJ1dGVkU3RyCiBfX1pON1dlYkNvcmU0
Rm9udDExc2V0Q29kZVBhdGhFTlMwXzhDb2RlUGF0aEUKIF9fWk43V2ViQ29yZTRGb250MThzaG91
bGRVc2VTbW9vdGhpbmdFdgogX19aTjdXZWJDb3JlNEZvbnQyMXNldFNob3VsZFVzZVNtb290aGlu
Z0ViCi1fX1pON1dlYkNvcmU0Rm9udDI5c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXNFagog
X19aTjdXZWJDb3JlNEZvbnRDMUVSS05TXzE2Rm9udFBsYXRmb3JtRGF0YUViTlNfMTdGb250U21v
b3RoaW5nTW9kZUUKIF9fWk43V2ViQ29yZTRGb250QzFFdgogX19aTjdXZWJDb3JlNEZvbnRhU0VS
S1MwXwpAQCAtOTY3LDYgKzk2Niw3IEBAIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0QWNjZWxl
cmF0ZWQyZENhbnZhc0VuYWJsZWRFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MyOXNldERlZmF1bHRN
aW5ET01UaW1lckludGVydmFsRWQKIF9fWk43V2ViQ29yZThTZXR0aW5nczI5c2V0V2ViQXJjaGl2
ZURlYnVnTW9kZUVuYWJsZWRFYgorX19aTjdXZWJDb3JlOFNldHRpbmdzMjlzZXREZWZhdWx0VHlw
ZXNldHRpbmdGZWF0dXJlc0VqCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldEFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMc0ViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMXNldENhbnZhc1VzZXNB
Y2NlbGVyYXRlZERyYXdpbmdFYgogX19aTjdXZWJDb3JlOFNldHRpbmdzMzFzZXRKYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkRWIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHls
ZVJlc29sdmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRl
eCBiNDg0ZTE2OWUxMjliNDI1OWVlY2JlNjBjYzZiNGM3ZTBhYjhjMDQ5Li4yMTlhZTVkYWU3Mzk0
YTE0NTU3NzA0MGNhNzFlMTBhZDE3YWE1NDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwCkBAIC0xNDgzLDYgKzE0ODMsNyBAQCBQYXNzUmVmUHRyPFJlbmRlclN0eWxlPiBTdHls
ZVJlc29sdmVyOjpzdHlsZUZvckRvY3VtZW50KERvY3VtZW50KiBkb2N1bWVudCwgQ1NTRgogICAg
IGlmIChTZXR0aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudC0+c2V0dGluZ3MoKSkgewogICAgICAg
ICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQoZG9jdW1lbnQtPnByaW50aW5nKCkg
fHwgIXNldHRpbmdzLT5zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCgpKTsKICAgICAgICAg
Zm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MtPmZvbnRSZW5kZXJpbmdN
b2RlKCkpOworICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVh
dHVyZXMoc2V0dGluZ3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udCA9IHNldHRpbmdzLT5zdGFuZGFyZEZvbnRG
YW1pbHkoZm9udERlc2NyaXB0aW9uLnNjcmlwdCgpKTsKICAgICAgICAgaWYgKCFzdGFuZGFyZEZv
bnQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0R2VuZXJpY0Zh
bWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFtaWx5KTsKQEAgLTMxMzAsNiArMzEzMSw3
IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6YXBwbHlQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIGlkLCBD
U1NWYWx1ZSogdmFsdWUpCiAgICAgICAgICAgICAgICAgaWYgKCFzZXR0aW5ncykKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRS
ZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5nTW9kZSgpKTsKKyAgICAgICAgICAg
ICAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoc2V0dGlu
Z3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAgICAgICAgICAgICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRVc2VQcmludGVyRm9udChtX2NoZWNrZXIuZG9jdW1lbnQoKS0+cHJpbnRp
bmcoKSB8fCAhc2V0dGluZ3MtPnNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKCkpOwogCiAg
ICAgICAgICAgICAgICAgLy8gSGFuZGxlIHRoZSB6b29tIGZhY3Rvci4KQEAgLTQwMTEsNiArNDAx
Myw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZShTZXR0aW5ncyog
c2V0dGluZ3MpCiAgICAgRm9udERlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKICAgICBmb250
RGVzY3JpcHRpb24uc2V0R2VuZXJpY0ZhbWlseShGb250RGVzY3JpcHRpb246OlN0YW5kYXJkRmFt
aWx5KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy0+Zm9u
dFJlbmRlcmluZ01vZGUoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldERlZmF1bHRUeXBlc2V0
dGluZ0ZlYXR1cmVzKHNldHRpbmdzLT5kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcygpKTsKICAg
ICBmb250RGVzY3JpcHRpb24uc2V0VXNlUHJpbnRlckZvbnQobV9jaGVja2VyLmRvY3VtZW50KCkt
PnByaW50aW5nKCkgfHwgIXNldHRpbmdzLT5zY3JlZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCgp
KTsKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIHN0YW5kYXJkRm9udEZhbWlseSA9IGRvY3VtZW50
U2V0dGluZ3MoKS0+c3RhbmRhcmRGb250RmFtaWx5KCk7CiAgICAgaWYgKCFzdGFuZGFyZEZvbnRG
YW1pbHkuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCmluZGV4IDYxM2M1NmFk
NTUzNGQyYWEyZWU5YzAyNTkwOTE0ZDY0ZjNhNmJmM2EuLmZjNDlmYmRiZWFmYzRlMjc3ZDlkNjFi
ZmUxNzg1MzBiM2VhZGFhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwCkBAIC0xMzcsNiAr
MTM3LDcgQEAgU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgLCBtX2RlZmF1bHRG
b250U2l6ZSgwKQogICAgICwgbV9kZWZhdWx0Rml4ZWRGb250U2l6ZSgwKQogICAgICwgbV9zY3Jl
ZW5Gb250U3Vic3RpdHV0aW9uRW5hYmxlZCh0cnVlKQorICAgICwgbV9kZWZhdWx0VHlwZXNldHRp
bmdGZWF0dXJlcygwKQogICAgICwgbV92YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlv
big1MCkKICAgICAsIG1fbWluaW11bUFjY2VsZXJhdGVkMmRDYW52YXNTaXplKDI1NyAqIDI1NikK
ICAgICAsIG1fbGF5b3V0RmFsbGJhY2tXaWR0aCg5ODApCkBAIC00MzcsNiArNDM4LDE1IEBAIHZv
aWQgU2V0dGluZ3M6OnNldFNjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkKGJvb2wgc2NyZWVu
Rm9udFN1YnN0aXR1dGlvbkVuYWJsCiAgICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5B
bGxGcmFtZXMoKTsKIH0KIAordm9pZCBTZXR0aW5nczo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVh
dHVyZXMoVHlwZXNldHRpbmdGZWF0dXJlcyBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcykKK3sK
KyAgICBpZiAobV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9PSBkZWZhdWx0VHlwZXNldHRp
bmdGZWF0dXJlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZWZhdWx0VHlwZXNldHRpbmdG
ZWF0dXJlcyA9IGRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzOworICAgIG1fcGFnZS0+c2V0TmVl
ZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzKCk7Cit9CisKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0la
SU5HKQogdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wgdGV4dEF1
dG9zaXppbmdFbmFibGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IGYwNTNmNTQxZWQ1
MGI5MjQ3MzQzMTExNzEyZGNlOGVmODBmNTFiN2QuLjI4YzYyMTQ0YjdmYWQxZmI3ZGZjZWFmY2Yx
YTdiZDhkNDE5NGE2MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKICNpbmNsdWRl
ICJUaW1lci5oIgorI2luY2x1ZGUgIlR5cGVzZXR0aW5nRmVhdHVyZXMuaCIKICNpbmNsdWRlIDx3
dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZ0hhc2guaD4KQEAgLTEwOCw2ICsxMDksOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgc2V0U2NyZWVuRm9udFN1YnN0aXR1dGlvbkVu
YWJsZWQoYm9vbCk7CiAgICAgICAgIGJvb2wgc2NyZWVuRm9udFN1YnN0aXR1dGlvbkVuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBtX3NjcmVlbkZvbnRTdWJzdGl0dXRpb25FbmFibGVkOyB9CiAKKyAg
ICAgICAgdm9pZCBzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1
cmVzKTsKKyAgICAgICAgYm9vbCBkZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcygpIGNvbnN0IHsg
cmV0dXJuIG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7IH0KKwogI2lmIEVOQUJMRShURVhU
X0FVVE9TSVpJTkcpCiAgICAgICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wp
OwogICAgICAgICBib29sIHRleHRBdXRvc2l6aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
dGV4dEF1dG9zaXppbmdFbmFibGVkOyB9CkBAIC02ODAsNiArNjg0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBpbnQgbV9kZWZhdWx0Rm9udFNpemU7CiAgICAgICAgIGludCBtX2Rl
ZmF1bHRGaXhlZEZvbnRTaXplOwogICAgICAgICBib29sIG1fc2NyZWVuRm9udFN1YnN0aXR1dGlv
bkVuYWJsZWQ7CisgICAgICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgbV9kZWZhdWx0VHlwZXNldHRp
bmdGZWF0dXJlczsKICAgICAgICAgaW50IG1fdmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmlj
YXRpb247CiAgICAgICAgIGludCBtX21pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZTsKICAg
ICAgICAgaW50IG1fbGF5b3V0RmFsbGJhY2tXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKaW5kZXggMzhjZTM1NDI1MmI5ZDUwOGE5OTVhZjM1ZThjZjI2N2Zl
OGNmNzRlOS4uM2UwYzJiOTE0YTdjNGYzYjc2NDkxZWNiZjBiODcxN2Y0NGQ5NzA1OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKQEAgLTY0LDggKzY0LDYgQEAg
Y29uc3QgdWludDhfdCBGb250OjpzX3JvdW5kaW5nSGFja0NoYXJhY3RlclRhYmxlWzI1Nl0gPSB7
CiAKIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OnNfY29kZVBhdGggPSBBdXRvOwogCi1UeXBlc2V0dGlu
Z0ZlYXR1cmVzIEZvbnQ6OnNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgPSAwOwotCiAvLyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogLy8gRm9udCBJbXBsZW1lbnRhdGlv
biAoQ3Jvc3MtUGxhdGZvcm0gUG9ydGlvbikKIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09CkBAIC0zMDUsMTYgKzMwMyw2IEBAIEZvbnQ6OkNvZGVQYXRoIEZvbnQ6OmNvZGVQ
YXRoKCkKICAgICByZXR1cm4gc19jb2RlUGF0aDsKIH0KIAotdm9pZCBGb250OjpzZXREZWZhdWx0
VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1cmVzIHR5cGVzZXR0aW5nRmVhdHVy
ZXMpCi17Ci0gICAgc19kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyA9IHR5cGVzZXR0aW5nRmVh
dHVyZXM7Ci19Ci0KLVR5cGVzZXR0aW5nRmVhdHVyZXMgRm9udDo6ZGVmYXVsdFR5cGVzZXR0aW5n
RmVhdHVyZXMoKQotewotICAgIHJldHVybiBzX2RlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzOwot
fQotCiBGb250OjpDb2RlUGF0aCBGb250Ojpjb2RlUGF0aChjb25zdCBUZXh0UnVuJiBydW4pIGNv
bnN0CiB7CiAgICAgaWYgKHNfY29kZVBhdGggIT0gQXV0bykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuaAppbmRleCBhYWJjYjJlNzAwZDk0NTMxY2YxNWNjZTQwOGZmZGFkMmJk
NjZmZmUzLi5hNGY1MmI5NWE3OWE3NjllNTQ1NzdjOWNhYjY1NGUyNjJlNzAxMDQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5oCkBAIC0xMjAsNDggKzEyMCw3IEBAIHB1
YmxpYzoKICAgICBib29sIGlzUHJpbnRlckZvbnQoKSBjb25zdCB7IHJldHVybiBtX2ZvbnREZXNj
cmlwdGlvbi51c2VQcmludGVyRm9udCgpOyB9CiAgICAgCiAgICAgRm9udFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0aW9uLnJlbmRlcmlu
Z01vZGUoKTsgfQotCi0gICAgVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0dGluZ0ZlYXR1cmVz
KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdN
b2RlID0gbV9mb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKTsKLSAgICAgICAgVHlw
ZXNldHRpbmdGZWF0dXJlcyBmZWF0dXJlcyA9IHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXM7
Ci0KLSAgICAgICAgc3dpdGNoKHRleHRSZW5kZXJpbmdNb2RlKSB7Ci0gICAgICAgIGNhc2UgQXV0
b1RleHRSZW5kZXJpbmc6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBPcHRpbWl6
ZVNwZWVkOgotICAgICAgICAgICAgZmVhdHVyZXMgJj0gfihLZXJuaW5nIHwgTGlnYXR1cmVzKTsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEdlb21ldHJpY1ByZWNpc2lvbjoKLSAg
ICAgICAgY2FzZSBPcHRpbWl6ZUxlZ2liaWxpdHk6Ci0gICAgICAgICAgICBmZWF0dXJlcyB8PSBL
ZXJuaW5nIHwgTGlnYXR1cmVzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAg
ICAgICBzd2l0Y2ggKG1fZm9udERlc2NyaXB0aW9uLmtlcm5pbmcoKSkgewotICAgICAgICBjYXNl
IEZvbnREZXNjcmlwdGlvbjo6Tm9uZUtlcm5pbmc6Ci0gICAgICAgICAgICBmZWF0dXJlcyAmPSB+
S2VybmluZzsKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlv
bjo6Tm9ybWFsS2VybmluZzoKLSAgICAgICAgICAgIGZlYXR1cmVzIHw9IEtlcm5pbmc7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246OkF1dG9LZXJuaW5n
OgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KLQotICAgICAgICBzd2l0Y2ggKG1fZm9u
dERlc2NyaXB0aW9uLmNvbW1vbkxpZ2F0dXJlc1N0YXRlKCkpIHsKLSAgICAgICAgY2FzZSBGb250
RGVzY3JpcHRpb246OkRpc2FibGVkTGlnYXR1cmVzU3RhdGU6Ci0gICAgICAgICAgICBmZWF0dXJl
cyAmPSB+TGlnYXR1cmVzOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRm9udERl
c2NyaXB0aW9uOjpFbmFibGVkTGlnYXR1cmVzU3RhdGU6Ci0gICAgICAgICAgICBmZWF0dXJlcyB8
PSBMaWdhdHVyZXM7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBGb250RGVzY3Jp
cHRpb246Ok5vcm1hbExpZ2F0dXJlc1N0YXRlOgotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IH0KLQotICAgICAgICByZXR1cm4gZmVhdHVyZXM7Ci0gICAgfQorICAgIFR5cGVzZXR0aW5nRmVh
dHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fZm9udERlc2NyaXB0
aW9uLnR5cGVzZXR0aW5nRmVhdHVyZXMoKTsgfQogCiAgICAgRm9udEZhbWlseSYgZmlyc3RGYW1p
bHkoKSB7IHJldHVybiBtX2ZvbnREZXNjcmlwdGlvbi5maXJzdEZhbWlseSgpOyB9CiAgICAgY29u
c3QgRm9udEZhbWlseSYgZmFtaWx5KCkgY29uc3QgeyByZXR1cm4gbV9mb250RGVzY3JpcHRpb24u
ZmFtaWx5KCk7IH0KQEAgLTI0OSw5ICsyMDgsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENvZGVQ
YXRoIGNvZGVQYXRoKCk7CiAgICAgc3RhdGljIENvZGVQYXRoIHNfY29kZVBhdGg7CiAKLSAgICBz
dGF0aWMgdm9pZCBzZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhUeXBlc2V0dGluZ0ZlYXR1
cmVzKTsKLSAgICBzdGF0aWMgVHlwZXNldHRpbmdGZWF0dXJlcyBkZWZhdWx0VHlwZXNldHRpbmdG
ZWF0dXJlcygpOwotCiAgICAgc3RhdGljIGNvbnN0IHVpbnQ4X3Qgc19yb3VuZGluZ0hhY2tDaGFy
YWN0ZXJUYWJsZVsyNTZdOwogICAgIHN0YXRpYyBib29sIGlzUm91bmRpbmdIYWNrQ2hhcmFjdGVy
KFVDaGFyMzIgYykKICAgICB7CkBAIC0yOTEsOCArMjQ3LDYgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGluaXRGb3JtYXRGb3JUZXh0TGF5b3V0KFFUZXh0TGF5b3V0KikgY29uc3Q7CiAjZW5kaWYKIAot
ICAgIHN0YXRpYyBUeXBlc2V0dGluZ0ZlYXR1cmVzIHNfZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVy
ZXM7Ci0KICAgICBGb250RGVzY3JpcHRpb24gbV9mb250RGVzY3JpcHRpb247CiAgICAgbXV0YWJs
ZSBSZWZQdHI8Rm9udEZhbGxiYWNrTGlzdD4gbV9mb250RmFsbGJhY2tMaXN0OwogICAgIHNob3J0
IG1fbGV0dGVyU3BhY2luZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmgKaW5kZXggNDQzNjg3NTlkMGQ2YWU2MTRhMzhkN2JjYThlN2Ew
YjNjZjk3YjA0MC4uMDFmYjRjNGJkZjJmNjU5NTdjZDU5OWVmMjJiMWNiMTU4OGFlZDUzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9u
LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJGb250V2lkdGhWYXJpYW50LmgiCiAjaW5j
bHVkZSAiVGV4dE9yaWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiVGV4dFJlbmRlcmluZ01vZGUuaCIK
KyNpbmNsdWRlICJUeXBlc2V0dGluZ0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiV2ViS2l0Rm9udEZh
bWlseU5hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApAQCAtODksNiArOTAs
NyBAQCBwdWJsaWM6CiAgICAgICAgICwgbV9nZW5lcmljRmFtaWx5KE5vRmFtaWx5KQogICAgICAg
ICAsIG1fdXNlUHJpbnRlckZvbnQoZmFsc2UpCiAgICAgICAgICwgbV9yZW5kZXJpbmdNb2RlKE5v
cm1hbFJlbmRlcmluZ01vZGUpCisgICAgICAgICwgbV9kZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJl
cygwKQogICAgICAgICAsIG1fa2VybmluZyhBdXRvS2VybmluZykKICAgICAgICAgLCBtX2NvbW1v
bkxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQogICAgICAgICAsIG1fZGlzY3Jl
dGlvbmFyeUxpZ2F0dXJlc1N0YXRlKE5vcm1hbExpZ2F0dXJlc1N0YXRlKQpAQCAtMTIwLDYgKzEy
Miw3IEBAIHB1YmxpYzoKICAgICAvLyBvbmx5IHVzZSBmaXhlZCBkZWZhdWx0IHNpemUgd2hlbiB0
aGVyZSBpcyBvbmx5IG9uZSBmb250IGZhbWlseSwgYW5kIHRoYXQgZmFtaWx5IGlzICJtb25vc3Bh
Y2UiCiAgICAgYm9vbCB1c2VGaXhlZERlZmF1bHRTaXplKCkgY29uc3QgeyByZXR1cm4gZ2VuZXJp
Y0ZhbWlseSgpID09IE1vbm9zcGFjZUZhbWlseSAmJiAhZmFtaWx5KCkubmV4dCgpICYmIGZhbWls
eSgpLmZhbWlseSgpID09IG1vbm9zcGFjZUZhbWlseTsgfQogICAgIEZvbnRSZW5kZXJpbmdNb2Rl
IHJlbmRlcmluZ01vZGUoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250UmVuZGVyaW5n
TW9kZT4obV9yZW5kZXJpbmdNb2RlKTsgfQorICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgZGVmYXVs
dFR5cGVzZXR0aW5nRmVhdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRUeXBlc2V0dGlu
Z0ZlYXR1cmVzOyB9CiAgICAgS2VybmluZyBrZXJuaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8S2VybmluZz4obV9rZXJuaW5nKTsgfQogICAgIExpZ2F0dXJlc1N0YXRlIGNvbW1vbkxp
Z2F0dXJlc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGlnYXR1cmVzU3RhdGU+
KG1fY29tbW9uTGlnYXR1cmVzU3RhdGUpOyB9CiAgICAgTGlnYXR1cmVzU3RhdGUgZGlzY3JldGlv
bmFyeUxpZ2F0dXJlc1N0YXRlKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8TGlnYXR1cmVz
U3RhdGU+KG1fZGlzY3JldGlvbmFyeUxpZ2F0dXJlc1N0YXRlKTsgfQpAQCAtMTUzLDYgKzE1Niw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFVzZVByaW50ZXJGb250KGJvb2wgcCkgeyBtX3VzZVBy
aW50ZXJGb250ID0gcDsgfQogI2VuZGlmCiAgICAgdm9pZCBzZXRSZW5kZXJpbmdNb2RlKEZvbnRS
ZW5kZXJpbmdNb2RlIG1vZGUpIHsgbV9yZW5kZXJpbmdNb2RlID0gbW9kZTsgfQorICAgIHZvaWQg
c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoVHlwZXNldHRpbmdGZWF0dXJlcyB0eXBlc2V0
dGluZ0ZlYXR1cmVzKSB7IG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMgPSB0eXBlc2V0dGlu
Z0ZlYXR1cmVzOyB9CiAgICAgdm9pZCBzZXRLZXJuaW5nKEtlcm5pbmcga2VybmluZykgeyBtX2tl
cm5pbmcgPSBrZXJuaW5nOyB9CiAgICAgdm9pZCBzZXRDb21tb25MaWdhdHVyZXNTdGF0ZShMaWdh
dHVyZXNTdGF0ZSBjb21tb25MaWdhdHVyZXNTdGF0ZSkgeyBtX2NvbW1vbkxpZ2F0dXJlc1N0YXRl
ID0gY29tbW9uTGlnYXR1cmVzU3RhdGU7IH0KICAgICB2b2lkIHNldERpc2NyZXRpb25hcnlMaWdh
dHVyZXNTdGF0ZShMaWdhdHVyZXNTdGF0ZSBkaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3RhdGUpIHsg
bV9kaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3RhdGUgPSBkaXNjcmV0aW9uYXJ5TGlnYXR1cmVzU3Rh
dGU7IH0KQEAgLTE2Nyw2ICsxNzEsNDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2NyaXB0KFVT
Y3JpcHRDb2RlIHMpIHsgbV9zY3JpcHQgPSBzOyB9CiAgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGlu
Z3MoUGFzc1JlZlB0cjxGb250RmVhdHVyZVNldHRpbmdzPiBzZXR0aW5ncykgeyBtX2ZlYXR1cmVT
ZXR0aW5ncyA9IHNldHRpbmdzOyB9CiAKKyAgICAvLyBDYWxjdWxhdGUgdGhlIGVmZmVjdGl2ZSB0
eXBlc2V0dGluZyBmZWF0dXJlcyBiYXNlZCBvbiBhbGwgdGhlIHNldHRpbmdzIHRoYXQgY29udHJv
bCB0aGVtLgorICAgIFR5cGVzZXR0aW5nRmVhdHVyZXMgdHlwZXNldHRpbmdGZWF0dXJlcygpIGNv
bnN0CisgICAgeworICAgICAgICBUeXBlc2V0dGluZ0ZlYXR1cmVzIGZlYXR1cmVzID0gZGVmYXVs
dFR5cGVzZXR0aW5nRmVhdHVyZXMoKTsKKworICAgICAgICBzd2l0Y2ggKHRleHRSZW5kZXJpbmdN
b2RlKCkpIHsKKyAgICAgICAgY2FzZSBBdXRvVGV4dFJlbmRlcmluZzoKKyAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICBjYXNlIE9wdGltaXplU3BlZWQ6CisgICAgICAgICAgICBmZWF0dXJlcyAm
PSB+KFdlYkNvcmU6Oktlcm5pbmcgfCBMaWdhdHVyZXMpOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgR2VvbWV0cmljUHJlY2lzaW9uOgorICAgICAgICBjYXNlIE9wdGltaXplTGVn
aWJpbGl0eToKKyAgICAgICAgICAgIGZlYXR1cmVzIHw9IFdlYkNvcmU6Oktlcm5pbmcgfCBMaWdh
dHVyZXM7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAo
a2VybmluZygpKSB7CisgICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb25lS2VybmluZzoK
KyAgICAgICAgICAgIGZlYXR1cmVzICY9IH5XZWJDb3JlOjpLZXJuaW5nOworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgRm9udERlc2NyaXB0aW9uOjpOb3JtYWxLZXJuaW5nOgorICAg
ICAgICAgICAgZmVhdHVyZXMgfD0gV2ViQ29yZTo6S2VybmluZzsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6QXV0b0tlcm5pbmc6CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHN3aXRjaCAoY29tbW9uTGlnYXR1cmVzU3Rh
dGUoKSkgeworICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6RGlzYWJsZWRMaWdhdHVyZXNT
dGF0ZToKKyAgICAgICAgICAgIGZlYXR1cmVzICY9IH5MaWdhdHVyZXM7CisgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgY2FzZSBGb250RGVzY3JpcHRpb246OkVuYWJsZWRMaWdhdHVyZXNTdGF0
ZToKKyAgICAgICAgICAgIGZlYXR1cmVzIHw9IExpZ2F0dXJlczsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6Tm9ybWFsTGlnYXR1cmVzU3RhdGU6Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBmZWF0dXJlczsK
KyAgICB9CisKIHByaXZhdGU6CiAgICAgRm9udEZhbWlseSBtX2ZhbWlseUxpc3Q7IC8vIFRoZSBs
aXN0IG9mIGZvbnQgZmFtaWxpZXMgdG8gYmUgdXNlZC4KICAgICBSZWZQdHI8Rm9udEZlYXR1cmVT
ZXR0aW5ncz4gbV9mZWF0dXJlU2V0dGluZ3M7CkBAIC0xODksNiArMjM1LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBtX3VzZVByaW50ZXJGb250IDogMTsKIAogICAgIHVuc2lnbmVkIG1fcmVu
ZGVyaW5nTW9kZSA6IDE7ICAvLyBVc2VkIHRvIHN3aXRjaCBiZXR3ZWVuIENHIGFuZCBHREkgdGV4
dCBvbiBXaW5kb3dzLgorICAgIHVuc2lnbmVkIG1fZGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMg
OiAyOyAvLyBVc2VkIHRvIGNvbnRyb2wgd2hhdCBhdXRvIGtlcm5pbmcgYW5kIG5vcm1hbCBsaWdh
dHVyZXMgaW1wbGllcy4KICAgICB1bnNpZ25lZCBtX2tlcm5pbmcgOiAyOyAvLyBLZXJuaW5nCiAK
ICAgICB1bnNpZ25lZCBtX2NvbW1vbkxpZ2F0dXJlc1N0YXRlIDogMjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IGM4MjZlYWEx
OWY1NzhmMDRmNmIyMDdmZjY4MzZhYTIwNTExZDk3ZGIuLmJjYzZmNDdhMGFiZjQzOTdhNDhjZjMy
MDZkZjdkNTEwNGY4ZGFhMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcApAQCAtMjEzLDYgKzIxMyw3IEBAIGJvb2wgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OmdldFJlcGxhY2VtZW50VGV4dEdlb21ldHJ5KGNvbnN0IExheW91dFBvaW50
JiBhY2N1bXVsCiAgICAgaWYgKCFzZXR0aW5ncykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLT5mb250UmVuZGVyaW5n
TW9kZSgpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVy
ZXMoc2V0dGluZ3MtPmRlZmF1bHRUeXBlc2V0dGluZ0ZlYXR1cmVzKCkpOwogICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRDb21wdXRlZFNpemUoZm9udERlc2NyaXB0aW9uLnNwZWNpZmllZFNpemUoKSk7
CiAgICAgZm9udCA9IEZvbnQoZm9udERlc2NyaXB0aW9uLCAwLCAwKTsKICAgICBmb250LnVwZGF0
ZSgwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxN2JlZmFmNWZlOTk5
ZGZjOGY1YWQ3NzE2Yzc4OTZiMzkyOWFlZDE0Li41OGQyODE5ZjdlODJiODAyYzY0ZGI1YWQwN2Mw
YjFlOGYzZGIzYmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC00ODEs
NiArNDgxLDcgQEAgTlNTdHJpbmcgKldlYktpdEtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkQnlE
ZWZhdWx0RGVmYXVsdHNLZXkgPSBAIldlYktpdEtlcm5pbmcKIAogc3RhdGljIEJPT0wgY29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogc3RhdGljIEJPT0wgZ3JhbW1hckNoZWNraW5nRW5h
YmxlZDsKK3N0YXRpYyBCT09MIGtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkQnlEZWZhdWx0Owog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogc3RhdGljIEJPT0wg
YXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOwogc3RhdGljIEJPT0wgYXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWQ7CkBAIC0xNTY5LDYgKzE1NzAsNyBAQCBzdGF0aWMgYm9vbCBu
ZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3MtPnNldFJlcXVl
c3RBbmltYXRpb25GcmFtZUVuYWJsZWQoW3ByZWZlcmVuY2VzIHJlcXVlc3RBbmltYXRpb25GcmFt
ZUVuYWJsZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0TmVlZHNEaWRGaW5pc2hMb2FkT3JkZXJRdWly
ayhuZWVkc0RpZEZpbmlzaExvYWRPcmRlclF1aXJrKCkpOwogICAgIHNldHRpbmdzLT5zZXREaWFn
bm9zdGljTG9nZ2luZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGRpYWdub3N0aWNMb2dnaW5nRW5hYmxl
ZF0pOworICAgIHNldHRpbmdzLT5zZXREZWZhdWx0VHlwZXNldHRpbmdGZWF0dXJlcyhrZXJuaW5n
QW5kTGlnYXR1cmVzRW5hYmxlZEJ5RGVmYXVsdCA/IChLZXJuaW5nIHwgTGlnYXR1cmVzKSA6IDAp
OwogCiAgICAgc3dpdGNoIChbcHJlZmVyZW5jZXMgc3RvcmFnZUJsb2NraW5nUG9saWN5XSkgewog
ICAgIGNhc2UgV2ViQWxsb3dBbGxTdG9yYWdlOgpAQCAtMzEzMCw3ICszMTMyLDcgQEAgc3RhdGlj
IFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKE5TQXJyYXkqIHBhdHRlcm5zKQogICAgIGNv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYkNv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZF07CiAgICAgZ3JhbW1hckNoZWNraW5nRW5hYmxl
ZCA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYkdyYW1tYXJDaGVja2luZ0VuYWJsZWRdOwogCi0g
ICAgRm9udDo6c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoW2RlZmF1bHRzIGJvb2xGb3JL
ZXk6V2ViS2l0S2VybmluZ0FuZExpZ2F0dXJlc0VuYWJsZWRCeURlZmF1bHREZWZhdWx0c0tleV0g
PyBLZXJuaW5nIHwgTGlnYXR1cmVzIDogMCk7CisgICAga2VybmluZ0FuZExpZ2F0dXJlc0VuYWJs
ZWRCeURlZmF1bHQgPSBbZGVmYXVsdHMgYm9vbEZvcktleTpXZWJLaXRLZXJuaW5nQW5kTGlnYXR1
cmVzRW5hYmxlZEJ5RGVmYXVsdERlZmF1bHRzS2V5XTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTA2MAogICAgIGF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5h
YmxlZCA9IFtkZWZhdWx0cyBib29sRm9yS2V5OldlYkF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9u
RW5hYmxlZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKaW5kZXggYjFlZTM1ODMzMTIwOWZlN2JmODU5MDEwNGZlNTA0OWJmMDNjN2M3NC4uMTEwNzUy
MzlmMjI2MjE5MDUwYzdlMDlhYzA0ZTY0ZWVjMDVlM2FmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMjE5Myw2ICsyMTkzLDEyIEBAIHZv
aWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYg
c3RvcmUpCiAgICAgICAgIHx8IFdlYlByb2Nlc3M6OnNoYXJlZCgpLnNob3VsZEZvcmNlU2NyZWVu
Rm9udFN1YnN0aXR1dGlvbigpCiAjZW5kaWYKICAgICApOworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBib29sIGtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkID0gV2ViUHJvY2Vzczo6c2hhcmVkKCku
c2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCgpOworI2Vsc2UKKyAgICBi
b29sIGtlcm5pbmdBbmRMaWdhdHVyZXNFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKKyAgICBzZXR0
aW5ncy0+c2V0RGVmYXVsdFR5cGVzZXR0aW5nRmVhdHVyZXMoa2VybmluZ0FuZExpZ2F0dXJlc0Vu
YWJsZWQgPyAoV2ViQ29yZTo6S2VybmluZyB8IFdlYkNvcmU6OkxpZ2F0dXJlcykgOiAwKTsKICAg
ICBzZXR0aW5ncy0+c2V0TGF5b3V0RmFsbGJhY2tXaWR0aChzdG9yZS5nZXRVSW50MzJWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6bGF5b3V0RmFsbGJhY2tXaWR0aEtleSgpKSk7CiAgICAg
c2V0dGluZ3MtPnNldERldmljZVdpZHRoKHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlBy
ZWZlcmVuY2VzS2V5OjpkZXZpY2VXaWR0aEtleSgpKSk7CiAgICAgc2V0dGluZ3MtPnNldERldmlj
ZUhlaWdodChzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGV2
aWNlSGVpZ2h0S2V5KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggYzI0OGE0ZTBhOTAxMWQxNTNkZWQxYjg5YzEwYzA5NTY2ODA2ZDc2My4uNTdjYzVlNmM1YTU0
MDVhMGJiNTg5OTdjOGM0M2EwMzhlYjk0NGY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTE2NCw2ICsxNjQsNyBAQCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIHBpZF90IHByZXNlbnRlckFwcGxpY2F0aW9uUGlkKCkgY29uc3QgeyByZXR1cm4gbV9w
cmVzZW50ZXJBcHBsaWNhdGlvblBpZDsgfQogICAgIGJvb2wgc2hvdWxkRm9yY2VTY3JlZW5Gb250
U3Vic3RpdHV0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGb3JjZVNjcmVlbkZvbnRTdWJz
dGl0dXRpb247IH0KKyAgICBib29sIHNob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNCeURl
ZmF1bHQoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZEVuYWJsZUtlcm5pbmdBbmRMaWdhdHVyZXNC
eURlZmF1bHQ7IH0KICNlbmRpZgogICAgIAogI2lmIFBMQVRGT1JNKFFUKQpAQCAtMzMxLDYgKzMz
Miw3IEBAIHByaXZhdGU6CiAgICAgcGlkX3QgbV9wcmVzZW50ZXJBcHBsaWNhdGlvblBpZDsKICAg
ICBkaXNwYXRjaF9ncm91cF90IG1fY2xlYXJSZXNvdXJjZUNhY2hlc0Rpc3BhdGNoR3JvdXA7CiAg
ICAgYm9vbCBtX3Nob3VsZEZvcmNlU2NyZWVuRm9udFN1YnN0aXR1dGlvbjsKKyAgICBib29sIG1f
c2hvdWxkRW5hYmxlS2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdDsKICNlbmRpZgogCiAgICAg
Ym9vbCBtX2Z1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNzTWFjLm1tIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc01hYy5tbQppbmRleCAwMDFkZWI0YzhmZjVlODA3NjA3MTU3
NGU0NDE2YWY2MmYzNmM2ZDkwLi43N2JkY2IzNmNiODExOTFmMDYyZGYxODYzYzU4NjRhOWQ1NjAx
MzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL21hYy9XZWJQcm9jZXNz
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvbWFjL1dlYlByb2Nlc3NNYWMu
bW0KQEAgLTI3Nyw3ICsyNzcsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycwogICAgIH0KIAog
ICAgIG1fc2hvdWxkRm9yY2VTY3JlZW5Gb250U3Vic3RpdHV0aW9uID0gcGFyYW1ldGVycy5zaG91
bGRGb3JjZVNjcmVlbkZvbnRTdWJzdGl0dXRpb247Ci0gICAgRm9udDo6c2V0RGVmYXVsdFR5cGVz
ZXR0aW5nRmVhdHVyZXMocGFyYW1ldGVycy5zaG91bGRFbmFibGVLZXJuaW5nQW5kTGlnYXR1cmVz
QnlEZWZhdWx0ID8gS2VybmluZyB8IExpZ2F0dXJlcyA6IDApOworICAgIG1fc2hvdWxkRW5hYmxl
S2VybmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdCA9IHBhcmFtZXRlcnMuc2hvdWxkRW5hYmxlS2Vy
bmluZ0FuZExpZ2F0dXJlc0J5RGVmYXVsdDsKIAogICAgIG1fY29tcG9zaXRpbmdSZW5kZXJTZXJ2
ZXJQb3J0ID0gcGFyYW1ldGVycy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUG9ydC5wb3J0KCk7CiAK
</data>
<flag name="review"
          id="185875"
          type_id="1"
          status="-"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>