<?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>54531</bug_id>
          
          <creation_ts>2011-02-15 22:26:08 -0800</creation_ts>
          <short_desc>[GTK] [Windows] Plugins fail to load</short_desc>
          <delta_ts>2012-06-21 12:20:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>89499</blocked>
    
    <blocked>89501</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Bakhtiar Hasmanan">mr.tiar</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>joone.hur</cc>
    
    <cc>kalevlember</cc>
    
    <cc>mrobinson</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>351887</commentid>
    <comment_count>0</comment_count>
    <who name="Bakhtiar Hasmanan">mr.tiar</who>
    <bug_when>2011-02-15 22:26:08 -0800</bug_when>
    <thetext>In my test webkitgtk (1.2.7) did queried the registry and some common plugins location but none loaded. Seems like just found the path but not the module? 

Is it supported here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351923</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-02-16 00:48:30 -0800</bug_when>
    <thetext>I&apos;d be suprised if plugins work on Windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405736</commentid>
    <comment_count>2</comment_count>
    <who name="Bakhtiar Hasmanan">mr.tiar</who>
    <bug_when>2011-05-18 08:33:29 -0700</bug_when>
    <thetext>Is it possible to play at least youtube&apos;s video (flv) with gstreamer&apos;s ffmpeg? So no need to use flash plugin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405782</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-05-18 09:40:47 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Is it possible to play at least youtube&apos;s video (flv) with gstreamer&apos;s ffmpeg? So no need to use flash plugin.

Many people are using HTML5 video to watch YouTube. I&apos;m not sure how well this works on Windows though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652676</commentid>
    <comment_count>4</comment_count>
      <attachid>148389</attachid>
    <who name="Kalev Lember">kalevlember</who>
    <bug_when>2012-06-19 12:17:42 -0700</bug_when>
    <thetext>Created attachment 148389
Patch

Switch to using PluginPackageWin.cpp and PluginViewWin.cpp on Windows platform, and leave plugins/gtk/ only for XP_UNIX platforms. With this we can share a lot of code with other ports and don&apos;t have to reimplement all the Windows-specific code in plugins/gtk/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652679</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-19 12:20:39 -0700</bug_when>
    <thetext>Attachment 148389 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;GNUmakefile.am&apos;, u&apos;Source/WT...&quot; exit_code: 1
Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:1169:  Use the class HWndDC instead of calling GetDC to avoid potential memory leaks.  [runtime/leaky_pattern] [5]
Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:1170:  Use adoptPtr and OwnPtr&lt;HDC&gt; when calling CreateCompatibleDC to avoid potential memory leaks.  [runtime/leaky_pattern] [5]
Total errors found: 2 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652743</commentid>
    <comment_count>6</comment_count>
      <attachid>148389</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-06-19 13:38:38 -0700</bug_when>
    <thetext>Comment on attachment 148389
Patch

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

Great work! It seems like we can remove the code duplication in GraphicsContext though.

&gt; Source/WebCore/GNUmakefile.am:979
&gt; +if TARGET_WIN32
&gt; +libWebCore_la_LIBADD = -lversion
&gt; +endif
&gt; +

Probably want to drop a little comment explaining why this is necessary.

&gt; Source/WebCore/GNUmakefile.list.am:4823
&gt; +	Source/WebCore/plugins/gtk/PluginPackageGtk.cpp \
&gt; +	Source/WebCore/plugins/gtk/PluginViewGtk.cpp \

This looks like it breaks non-X11, non Win32 builds. For instance, DirectFB. Granted plugins probably do not work there anyway.

&gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:1134
&gt; +#if (PLATFORM(GTK) &amp;&amp; OS(WINDOWS))
&gt; +static void setRGBABitmapAlpha(unsigned char* bytes, size_t length, unsigned char level)

Why not simply add the GraphicsContextWin.cpp and GraphicsContextCairoWin.cpp files to the source list instead of duplicating all this code here?

&gt; Source/WebCore/plugins/win/PluginViewWin.cpp:113
&gt; +    if (GdkWindow *window = gtk_widget_get_window(client))

Asterisks go next to the variable name in WebKit.

&gt; Source/WebCore/plugins/win/PluginViewWin.cpp:114
&gt; +        return (HWND)GDK_WINDOW_HWND(window);

Are you sure you have to cast here? If you do, you should use a C++ style cast (static_cast).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652831</commentid>
    <comment_count>7</comment_count>
    <who name="Kalev Lember">kalevlember</who>
    <bug_when>2012-06-19 14:39:04 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 148389 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=148389&amp;action=review
&gt; 
&gt; Great work! It seems like we can remove the code duplication in GraphicsContext though.

Thanks!


&gt; &gt; Source/WebCore/GNUmakefile.am:979
&gt; &gt; +if TARGET_WIN32
&gt; &gt; +libWebCore_la_LIBADD = -lversion
&gt; &gt; +endif
&gt; &gt; +
&gt; 
&gt; Probably want to drop a little comment explaining why this is necessary.

Done.


&gt; &gt; Source/WebCore/GNUmakefile.list.am:4823
&gt; &gt; +	Source/WebCore/plugins/gtk/PluginPackageGtk.cpp \
&gt; &gt; +	Source/WebCore/plugins/gtk/PluginViewGtk.cpp \
&gt; 
&gt; This looks like it breaks non-X11, non Win32 builds. For instance, DirectFB. Granted plugins probably do not work there anyway.

Indeed. I&apos;ve now moved this to TARGET_WIN32 else section, although I&apos;m wondering if we should instead use PluginPackageNone.cpp and PluginViewNone.cpp on such platforms.


&gt; &gt; Source/WebCore/platform/graphics/cairo/GraphicsContextCairo.cpp:1134
&gt; &gt; +#if (PLATFORM(GTK) &amp;&amp; OS(WINDOWS))
&gt; &gt; +static void setRGBABitmapAlpha(unsigned char* bytes, size_t length, unsigned char level)
&gt; 
&gt; Why not simply add the GraphicsContextWin.cpp and GraphicsContextCairoWin.cpp files to the source list instead of duplicating all this code here?

I&apos;ll give this a try. Is there any EWS bot for checking that the CairoWin port still builds?


&gt; &gt; Source/WebCore/plugins/win/PluginViewWin.cpp:113
&gt; &gt; +    if (GdkWindow *window = gtk_widget_get_window(client))
&gt; 
&gt; Asterisks go next to the variable name in WebKit.

Fixed.


&gt; &gt; Source/WebCore/plugins/win/PluginViewWin.cpp:114
&gt; &gt; +        return (HWND)GDK_WINDOW_HWND(window);
&gt; 
&gt; Are you sure you have to cast here? If you do, you should use a C++ style cast (static_cast).

Yeah, the cast is needed: confusingly enough, GDK_WINDOW_HWND() returns HGDIOBJ instead of a HWND.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>653338</commentid>
    <comment_count>8</comment_count>
      <attachid>148536</attachid>
    <who name="Kalev Lember">kalevlember</who>
    <bug_when>2012-06-20 04:29:13 -0700</bug_when>
    <thetext>Created attachment 148536
Patch v2

Thanks for the review, I&apos;ve updated the patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654790</commentid>
    <comment_count>9</comment_count>
      <attachid>148536</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 12:20:15 -0700</bug_when>
    <thetext>Comment on attachment 148536
Patch v2

Clearing flags on attachment: 148536

Committed r120956: &lt;http://trac.webkit.org/changeset/120956&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>654791</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-21 12:20:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148389</attachid>
            <date>2012-06-19 12:17:42 -0700</date>
            <delta_ts>2012-06-20 04:29:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GTK-Fix-NPAPI-plugins-on-Windows.patch</filename>
            <type>text/plain</type>
            <size>20208</size>
            <attacher name="Kalev Lember">kalevlember</attacher>
            
              <data encoding="base64">RnJvbSA5NTI4MGIyMzM4YTAwYWQ1NDg3ZGI5MGYxOGRmZmNmMmZlZjAzNzI5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLYWxldiBMZW1iZXIgPGthbGV2bGVtYmVyQGdtYWlsLmNvbT4K
RGF0ZTogVHVlLCA1IEp1biAyMDEyIDE3OjQ2OjA5ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gW0dU
S10gRml4IE5QQVBJIHBsdWdpbnMgb24gV2luZG93cwoKU3dpdGNoIHRvIHVzaW5nIFBsdWdpblBh
Y2thZ2VXaW4uY3BwIGFuZCBQbHVnaW5WaWV3V2luLmNwcCBvbiBXaW5kb3dzCnBsYXRmb3JtLCBh
bmQgbGVhdmUgcGx1Z2lucy9ndGsvIG9ubHkgZm9yIFhQX1VOSVggcGxhdGZvcm1zLiBXaXRoIHRo
aXMKd2UgY2FuIHNoYXJlIGEgbG90IG9mIGNvZGUgd2l0aCBvdGhlciBwb3J0cyBhbmQgZG9uJ3Qg
aGF2ZSB0bwpyZWltcGxlbWVudCBhbGwgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY29kZSBpbiBwbHVn
aW5zL2d0ay8uCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDExICsrCiBHTlVtYWtlZmlsZS5hbSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgIDUgKy0KIFNvdXJjZS9XVEYvQ2hhbmdlTG9nICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHwgICAxMSArKwogU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDAgKysrKysrKwogU291cmNlL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKwogU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCAgICAgICAgICAgICAgIHwgICAg
NiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaCAgICAg
fCAgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQuaCB8ICAgIDIgKy0KIC4uLi9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5j
cHAgICAgICAgIHwgIDExMCArKysrKysrKysrKysrKysrKysrKwogLi4uL2dyYXBoaWNzL3RyYW5z
Zm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCAgICAgfCAgICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgICAgICB8ICAgIDQgKwogU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggICAgICAgICAgICAgICAgfCAgICA0ICstCiBTb3Vy
Y2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCAgICAgICB8ICAgMjkgKysr
Ky0tCiAxNSBmaWxlcyBjaGFuZ2VkLCAyMzUgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDdiZTRhZDQuLmZlZjNi
OTUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBA
QAorMjAxMi0wNi0xOSAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJAZ21haWwuY29tPgorCisg
ICAgICAgIFtHVEtdIEZpeCBOUEFQSSBwbHVnaW5zIG9uIFdpbmRvd3MKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTMxCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVmaW5lIFhQX1dJTiBvbiBXaW5kb3dz
IGZvciBwbHVnaW4gc3VwcG9ydC4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorCiAyMDEy
LTA2LTE5ICBKb2NlbHluIFR1cmNvdHRlICA8am9jZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAK
ICAgICAgICAgW1F0XSBGaXggdGhlIFdpbmRvd3MgYnVpbGQgd2hlbiBRdCBpcyBidWlsdCB3aXRo
b3V0IC1yZWxlYXNlIG9yIC1kZWJ1ZwpkaWZmIC0tZ2l0IGEvR05VbWFrZWZpbGUuYW0gYi9HTlVt
YWtlZmlsZS5hbQppbmRleCA2MTc2YTExLi43NTdjM2RhIDEwMDY0NAotLS0gYS9HTlVtYWtlZmls
ZS5hbQorKysgYi9HTlVtYWtlZmlsZS5hbQpAQCAtMTYxLDcgKzE2MSwxMCBAQCBnbG9iYWxfY3Bw
ZmxhZ3MgKz0gXAogZW5kaWYKIAogIyBGb3IgdGhlIEd0ayBwb3J0IHdlIHdhbnQgdG8gdXNlIFhQ
X1VOSVggYm90aCBpbiBYMTEgYW5kIE1hYwotaWYgIVRBUkdFVF9XSU4zMgoraWYgVEFSR0VUX1dJ
TjMyCitnbG9iYWxfY3BwZmxhZ3MgKz0gXAorCS1EWFBfV0lOCitlbHNlCiBnbG9iYWxfY3BwZmxh
Z3MgKz0gXAogCS1EWFBfVU5JWAogZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdl
TG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggNWQ3MjUwYS4uMDNiNzg5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAg
LTEsNSArMSwxNiBAQAogMjAxMi0wNi0xOSAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJAZ21h
aWwuY29tPgogCisgICAgICAgIFtHVEtdIEZpeCBOUEFQSSBwbHVnaW5zIG9uIFdpbmRvd3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTMxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRGVmaW5lIEVOQUJM
RV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCBmb3IgdGhlIEdUSysgcG9ydC4KKworICAgICAg
ICAqIHd0Zi9QbGF0Zm9ybS5oOgorCisyMDEyLTA2LTE5ICBLYWxldiBMZW1iZXIgIDxrYWxldmxl
bWJlckBnbWFpbC5jb20+CisKICAgICAgICAgVGhyZWFkaW5nV2luOiBTaWxlbmNlIEdDQyBjb21w
aWxlciB3YXJuaW5ncwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODk0OTEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMmJjNThmMy4uMzE5NWYyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9y
bS5oCkBAIC0xMDE1LDcgKzEwMTUsNyBAQAogI2RlZmluZSBXVEZfVVNFX1BST1RFQ1RJT05fU1BB
Q0VfQVVUSF9DQUxMQkFDSyAxCiAjZW5kaWYKIAotI2lmICFFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkgfHwgKEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKSAmJiAoKE9TKFVOSVgpICYmIChQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShFRkwpKSkKKyNpZiAhRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpIHx8IChFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkgJiYgKChPUyhVTklYKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFU
Rk9STShRVCkgfHwgUExBVEZPUk0oV1gpKSkgfHwgUExBVEZPUk0oRUZMKSkpCiAjZGVmaW5lIEVO
QUJMRV9QTFVHSU5fUEFDS0FHRV9TSU1QTEVfSEFTSCAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDM2ZGQ5ZGMuLmRmNGU1NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NSBAQAogMjAxMi0wNi0x
OSAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJAZ21haWwuY29tPgogCisgICAgICAgIFtHVEtd
IEZpeCBOUEFQSSBwbHVnaW5zIG9uIFdpbmRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3dpdGNoIHRvIHVzaW5nIFBsdWdpblBhY2thZ2VXaW4uY3Bw
IGFuZCBQbHVnaW5WaWV3V2luLmNwcCBvbiBXaW5kb3dzCisgICAgICAgIHBsYXRmb3JtLCBhbmQg
bGVhdmUgcGx1Z2lucy9ndGsvIG9ubHkgZm9yIFhQX1VOSVggcGxhdGZvcm1zLiBXaXRoIHRoaXMK
KyAgICAgICAgd2UgY2FuIHNoYXJlIGEgbG90IG9mIGNvZGUgd2l0aCBvdGhlciBwb3J0cyBhbmQg
ZG9uJ3QgaGF2ZSB0bworICAgICAgICByZWltcGxlbWVudCBhbGwgdGhlIFdpbmRvd3Mtc3BlY2lm
aWMgY29kZSBpbiBwbHVnaW5zL2d0ay8uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0
ZW0uaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmg6CisgICAgICAgIChCaXRtYXBJbWFnZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0Lmg6CisgICAgICAgIChHcmFwaGljc0NvbnRleHQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6c2V0UkdCQUJpdG1hcEFs
cGhhKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUNhaXJvQ29udGV4dEZyb21CaXRtYXApOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpnZXRXaW5kb3dzQ29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnJlbGVhc2VXaW5kb3dzQ29udGV4dCk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1h
dHJpeC5oOgorICAgICAgICAoVHJhbnNmb3JtYXRpb25NYXRyaXgpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVubG9hZE1vZHVs
ZSk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3Lmg6CisgICAgICAgIChQbHVnaW5WaWV3
KToKKyAgICAgICAgKiBwbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcDoKKyAgICAgICAgKHdp
bmRvd0hhbmRsZUZvclBhZ2VDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6cmVnaXN0ZXJQbHVn
aW5WaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5W
aWV3OjpzbmFwc2hvdCk6CisKKzIwMTItMDYtMTkgIEthbGV2IExlbWJlciAgPGthbGV2bGVtYmVy
QGdtYWlsLmNvbT4KKwogICAgICAgICBbR1RLXSBSZXBsYWNlIHRoZSB1c2Ugb2YgInN0cnVjdCBz
dGF0IiB3aXRoIEdTdGF0QnVmCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04OTQ4OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmluZGV4IDEzMTkxODAuLjcyNTcz
YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xNTUsNiArMTU1LDE0IEBAIHdlYmNvcmVndGtf
Y3BwZmxhZ3MgKz0gXAogCS1JJChzcmNkaXIpL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3BhbmdvCiBlbmRpZiAjIEVORCBVU0VfUEFOR08KIAorIyAtLS0KKyMgV2luZG93cyBwbHVn
aW4gc3VwcG9ydAorIyAtLS0KK2lmIFRBUkdFVF9XSU4zMgord2ViY29yZWd0a19jcHBmbGFncyAr
PSBcCisJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luCitl
bmRpZiAjIEVORCBUQVJHRVRfV0lOMzIKKwogIyAtLS0tCiAjIEhUTUwgRGV0YWlscyBFbGVtZW50
CiAjIC0tLS0KQEAgLTk2NSw2ICs5NzMsMTAgQEAgbGliV2ViQ29yZV9sYV9DUFBGTEFHUyA9IFwK
IAkkKFhSRU5ERVJfQ0ZMQUdTKSBcCiAJJChYVF9DRkxBR1MpCiAKK2lmIFRBUkdFVF9XSU4zMgor
bGliV2ViQ29yZV9sYV9MSUJBREQgPSAtbHZlcnNpb24KK2VuZGlmCisKIGxpYldlYkNvcmVNb2R1
bGVzX2xhX1NPVVJDRVMgPSBcCiAJJCh3ZWJjb3JlX21vZHVsZXNfc291cmNlcykKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJDb3Jl
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggMWYxNDBmOS4uNTFmZWM5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC00ODA4LDkgKzQ4MDgsNyBAQCB3ZWJjb3JlZ3RrX3NvdXJj
ZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5jcHAgXAotCVNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmggXAotCVNvdXJjZS9XZWJD
b3JlL3BsdWdpbnMvZ3RrL1BsdWdpblBhY2thZ2VHdGsuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9w
bHVnaW5zL2d0ay9QbHVnaW5WaWV3R3RrLmNwcAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9XaWRnZXRSZW5kZXJpbmdDb250ZXh0LmgKIAogaWYgVEFSR0VUX1gxMQogd2ViY29yZWd0a19z
b3VyY2VzICs9IFwKQEAgLTQ4MjEsMTggKzQ4MTksMjggQEAgd2ViY29yZWd0a19zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrV2lkZ2V0QmFja2luZ1N0b3JlWDEx
LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvZ3RrMnh0YmluLmMgXAogCVNvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL2d0azJ4dGJpbi5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbHVn
aW5zL2d0ay9QbHVnaW5QYWNrYWdlR3RrLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9n
dGsvUGx1Z2luVmlld0d0ay5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL3hlbWJl
ZC5oCiBlbmRpZgogCiBpZiBUQVJHRVRfV0lOMzIKIHdlYmNvcmVfc291cmNlcyArPSBcCisJU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0xvY2FsV2luZG93c0NvbnRleHQuaCBc
CisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL1RyYW5zZm9ybWF0aW9uTWF0
cml4V2luLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uY3Bw
IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQml0bWFwSW5mby5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vU3lzdGVtSW5mby5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dpbi9TeXN0ZW1JbmZvLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9X
ZWJDb3JlSW5zdGFuY2VIYW5kbGUuY3BwIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
V2ViQ29yZUluc3RhbmNlSGFuZGxlLmggXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpbkRhdGFiYXNlV2luLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2lu
TWVzc2FnZVRocm90dGxlcldpbi5jcHAgXAotCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uaAorCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1Bs
dWdpbk1lc3NhZ2VUaHJvdHRsZXJXaW4uaCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4v
UGx1Z2luUGFja2FnZVdpbi5jcHAKIHdlYmNvcmVndGtfc291cmNlcyArPSBcCi0JU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisJU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3BwIFwKKwlT
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcAogZW5kaWYKIAogIyAt
LS0tCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKaW5kZXggNmQ3ZTA1ZS4uYjNjMjU5
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtNzQsMTAgKzc0LDEwIEBA
IHR5cGVkZWYgc3RydWN0IF9HTW9kdWxlIEdNb2R1bGU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IC8vIFBsYXRmb3JtTW9kdWxlCi0jaWYgUExBVEZPUk0oR1RLKQotdHlwZWRlZiBHTW9kdWxlKiBQ
bGF0Zm9ybU1vZHVsZTsKLSNlbGlmIE9TKFdJTkRPV1MpCisjaWYgT1MoV0lORE9XUykKIHR5cGVk
ZWYgSE1PRFVMRSBQbGF0Zm9ybU1vZHVsZTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKK3R5cGVkZWYg
R01vZHVsZSogUGxhdGZvcm1Nb2R1bGU7CiAjZWxpZiBQTEFURk9STShRVCkKICNpZiBkZWZpbmVk
KFFfV1NfTUFDKQogdHlwZWRlZiBDRkJ1bmRsZVJlZiBQbGF0Zm9ybU1vZHVsZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IGFmYjk4MTYu
LjMwYThiZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuaApAQCAtMTQ2LDcgKzE0Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJldGFpblB0
cjxDRkFycmF5UmVmPiBnZXRDR0ltYWdlQXJyYXkoKTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0o
V0lOKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJTkRPV1MpKQorI2lmIFBMQVRGT1JNKFdJTikg
fHwgKFBMQVRGT1JNKEdUSykgJiYgT1MoV0lORE9XUykpIHx8IChQTEFURk9STShRVCkgJiYgT1Mo
V0lORE9XUykpCiAgICAgc3RhdGljIFBhc3NSZWZQdHI8Qml0bWFwSW1hZ2U+IGNyZWF0ZShIQklU
TUFQKTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFdYKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBhZjI1MmE3Li5mMjdiZWM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0Nv
bnRleHQuaApAQCAtNDg4LDcgKzQ4OCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
dm9pZCBkcmF3V2luZG93c0JpdG1hcChXaW5kb3dzQml0bWFwKiwgY29uc3QgSW50UG9pbnQmKTsK
ICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JN
KFdYKSAmJiBPUyhXSU5ET1dTKSkKKyNpZiAoUExBVEZPUk0oR1RLKSAmJiBPUyhXSU5ET1dTKSkg
fHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhX
SU5ET1dTKSkKICAgICAgICAgSERDIGdldFdpbmRvd3NDb250ZXh0KGNvbnN0IEludFJlY3QmLCBi
b29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVhdGVCaXRtYXAgPSB0cnVl
KTsKICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERDLCBjb25zdCBJbnRSZWN0
JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRydWUsIGJvb2wgbWF5Q3JlYXRlQml0bWFwID0g
dHJ1ZSk7CiAgICAgICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNoaWxkV2luZG93cygpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWlyby5jcHAKaW5kZXggZmRhYTUy
Ny4uY2NkOTA3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vR3JhcGhpY3NDb250ZXh0Q2Fpcm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcApAQCAtNTcsNiArNTcs
MTAgQEAKICNpbmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgogCiAjaWYgUExBVEZPUk0oR1RLKQor
I2lmIE9TKFdJTkRPV1MpCisjaW5jbHVkZSAiQml0bWFwSW5mby5oIgorI2luY2x1ZGUgIlRyYW5z
Zm9ybWF0aW9uTWF0cml4LmgiCisjZW5kaWYKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CiAjaW5jbHVk
ZSA8cGFuZ28vcGFuZ28uaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKQEAgLTExMjYsNiArMTEzMCwx
MTIgQEAgR2RrV2luZG93KiBHcmFwaGljc0NvbnRleHQ6Omdka1dpbmRvdygpIGNvbnN0CiB9CiAj
ZW5kaWYKIAorI2lmIChQTEFURk9STShHVEspICYmIE9TKFdJTkRPV1MpKQorc3RhdGljIHZvaWQg
c2V0UkdCQUJpdG1hcEFscGhhKHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCB1
bnNpZ25lZCBjaGFyIGxldmVsKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyBpICs9IDQpCisgICAgICAgIGJ5dGVzW2kgKyAzXSA9IGxldmVsOworfQorCitzdGF0aWMgY2Fp
cm9fc3VyZmFjZV90KiBjcmVhdGVDYWlyb0NvbnRleHRGcm9tQml0bWFwKEhCSVRNQVAgYml0bWFw
KQoreworICAgIEJJVE1BUCBpbmZvOworICAgIEdldE9iamVjdChiaXRtYXAsIHNpemVvZihpbmZv
KSwgJmluZm8pOworICAgIEFTU0VSVChpbmZvLmJtQml0c1BpeGVsID09IDMyKTsKKworICAgIHJl
dHVybiBjYWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YSgodW5zaWduZWQgY2hhciop
aW5mby5ibUJpdHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENBSVJPX0ZPUk1BVF9BUkdCMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGluZm8uYm1XaWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgaW5mby5ibUhlaWdodCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mby5ibVdpZHRoQnl0ZXMpOworfQorCitIREMg
R3JhcGhpY3NDb250ZXh0OjpnZXRXaW5kb3dzQ29udGV4dChjb25zdCBJbnRSZWN0JiBkc3RSZWN0
LCBib29sIHN1cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0ZUJpdG1hcCkKK3sKKyAgICAv
LyBwYWludGluZyB0aHJvdWdoIG5hdGl2ZSBIREMgaXMgb25seSBzdXBwb3J0ZWQgZm9yIHBsdWdp
biwgd2hlcmUgbWF5Q3JlYXRlQml0bWFwIGlzIGFsd2F5cyB0cnVlCisgICAgQVNTRVJUKG1heUNy
ZWF0ZUJpdG1hcCk7CisKKyAgICBpZiAoZHN0UmVjdC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biAwOworCisgICAgLy8gQ3JlYXRlIGEgYml0bWFwIERDIGluIHdoaWNoIHRvIGRyYXcuCisgICAg
Qml0bWFwSW5mbyBiaXRtYXBJbmZvID0gQml0bWFwSW5mbzo6Y3JlYXRlKGRzdFJlY3Quc2l6ZSgp
KTsKKworICAgIHZvaWQqIHBpeGVscyA9IDA7CisgICAgSEJJVE1BUCBiaXRtYXAgPSA6OkNyZWF0
ZURJQlNlY3Rpb24oMCwgJmJpdG1hcEluZm8sIERJQl9SR0JfQ09MT1JTLCAmcGl4ZWxzLCAwLCAw
KTsKKyAgICBpZiAoIWJpdG1hcCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBIREMgZGlzcGxh
eURDID0gOjpHZXREQygwKTsKKyAgICBIREMgYml0bWFwREMgPSA6OkNyZWF0ZUNvbXBhdGlibGVE
QyhkaXNwbGF5REMpOworICAgIDo6UmVsZWFzZURDKDAsIGRpc3BsYXlEQyk7CisKKyAgICA6OlNl
bGVjdE9iamVjdChiaXRtYXBEQywgYml0bWFwKTsKKworICAgIC8vIEZpbGwgb3VyIGJ1ZmZlciB3
aXRoIGNsZWFyIGlmIHdlJ3JlIGdvaW5nIHRvIGFscGhhIGJsZW5kLgorICAgIGlmIChzdXBwb3J0
QWxwaGFCbGVuZCkgeworICAgICAgICBCSVRNQVAgYm1wSW5mbzsKKyAgICAgICAgR2V0T2JqZWN0
KGJpdG1hcCwgc2l6ZW9mKGJtcEluZm8pLCAmYm1wSW5mbyk7CisgICAgICAgIGludCBidWZmZXJT
aXplID0gYm1wSW5mby5ibVdpZHRoQnl0ZXMgKiBibXBJbmZvLmJtSGVpZ2h0OworICAgICAgICBt
ZW1zZXQoYm1wSW5mby5ibUJpdHMsIDAsIGJ1ZmZlclNpemUpOworICAgIH0KKworICAgIC8vIE1h
a2Ugc3VyZSB3ZSBjYW4gZG8gd29ybGQgdHJhbnNmb3Jtcy4KKyAgICBTZXRHcmFwaGljc01vZGUo
Yml0bWFwREMsIEdNX0FEVkFOQ0VEKTsKKworICAgIC8vIEFwcGx5IGEgdHJhbnNsYXRpb24gdG8g
b3VyIGNvbnRleHQgc28gdGhhdCB0aGUgZHJhd2luZyBkb25lIHdpbGwgYmUgYXQgKDAsMCkgb2Yg
dGhlIGJpdG1hcC4KKyAgICBYRk9STSB4Zm9ybSA9IFRyYW5zZm9ybWF0aW9uTWF0cml4KCkudHJh
bnNsYXRlKC1kc3RSZWN0LngoKSwgLWRzdFJlY3QueSgpKTsKKworICAgIDo6U2V0V29ybGRUcmFu
c2Zvcm0oYml0bWFwREMsICZ4Zm9ybSk7CisKKyAgICByZXR1cm4gYml0bWFwREM7Cit9CisKK3Zv
aWQgR3JhcGhpY3NDb250ZXh0OjpyZWxlYXNlV2luZG93c0NvbnRleHQoSERDIGhkYywgY29uc3Qg
SW50UmVjdCYgZHN0UmVjdCwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCwgYm9vbCBtYXlDcmVhdGVC
aXRtYXApCit7CisgICAgLy8gcGFpbnRpbmcgdGhyb3VnaCBuYXRpdmUgSERDIGlzIG9ubHkgc3Vw
cG9ydGVkIGZvciBwbHVnaW4sIHdoZXJlIG1heUNyZWF0ZUJpdG1hcCBpcyBhbHdheXMgdHJ1ZQor
ICAgIEFTU0VSVChtYXlDcmVhdGVCaXRtYXApOworCisgICAgaWYgKGhkYykgeworICAgICAgICBp
ZiAoIWRzdFJlY3QuaXNFbXB0eSgpKSB7CisKKyAgICAgICAgICAgIEhCSVRNQVAgYml0bWFwID0g
c3RhdGljX2Nhc3Q8SEJJVE1BUD4oR2V0Q3VycmVudE9iamVjdChoZGMsIE9CSl9CSVRNQVApKTsK
KyAgICAgICAgICAgIEJJVE1BUCBpbmZvOworICAgICAgICAgICAgR2V0T2JqZWN0KGJpdG1hcCwg
c2l6ZW9mKGluZm8pLCAmaW5mbyk7CisgICAgICAgICAgICBBU1NFUlQoaW5mby5ibUJpdHNQaXhl
bCA9PSAzMik7CisKKyAgICAgICAgICAgIC8vIElmIHRoaXMgY29udGV4dCBkb2VzIG5vdCBzdXBw
b3J0IGFscGhhIGJsZW5kaW5nLCB0aGVuIGl0IG1heSBoYXZlCisgICAgICAgICAgICAvLyBiZWVu
IGRyYXduIHdpdGggR0RJIGZ1bmN0aW9ucyB3aGljaCBhbHdheXMgc2V0IHRoZSBhbHBoYSBjaGFu
bmVsCisgICAgICAgICAgICAvLyB0byB6ZXJvLiBXZSBuZWVkIHRvIG1hbnVhbGx5IHNldCB0aGUg
Yml0bWFwIHRvIGJlIGZ1bGx5IG9wYXF1ZS4KKyAgICAgICAgICAgIGlmICghc3VwcG9ydEFscGhh
QmxlbmQpCisgICAgICAgICAgICAgICAgc2V0UkdCQUJpdG1hcEFscGhhKCh1bnNpZ25lZCBjaGFy
KilpbmZvLmJtQml0cywgaW5mby5ibUhlaWdodCAqIGluZm8uYm1XaWR0aEJ5dGVzLCAyNTUpOwor
CisgICAgICAgICAgICBjYWlyb19zdXJmYWNlX3QqIHNyY0ltYWdlID0gY3JlYXRlQ2Fpcm9Db250
ZXh0RnJvbUJpdG1hcChiaXRtYXApOworCisgICAgICAgICAgICBjYWlyb190KiBjciA9IHBsYXRm
b3JtQ29udGV4dCgpLT5jcigpOworICAgICAgICAgICAgY2Fpcm9fc2F2ZShjcik7CisKKyAgICAg
ICAgICAgIC8vIEhCSVRNQVAga2VlcHMgdGhlIHBpeGVscyBzdG9yZWQgYm90dG9tIHVwLCBzbyB3
ZSBuZWVkIHRvIGZsaXAgdGhlIGltYWdlIGhlcmUuCisgICAgICAgICAgICBjYWlyb190cmFuc2xh
dGUoY3IsIGRzdFJlY3QueCgpLCBkc3RSZWN0LnkoKSArIGRzdFJlY3QuaGVpZ2h0KCkpOworICAg
ICAgICAgICAgY2Fpcm9fc2NhbGUoY3IsIDEsIC0xKTsKKworICAgICAgICAgICAgY2Fpcm9fc2V0
X29wZXJhdG9yKGNyLCBDQUlST19PUEVSQVRPUl9PVkVSKTsKKyAgICAgICAgICAgIGNhaXJvX3Nl
dF9zb3VyY2Vfc3VyZmFjZShjciwgc3JjSW1hZ2UsIDAsIDApOworICAgICAgICAgICAgY2Fpcm9f
cmVjdGFuZ2xlKGNyLCAwLCAwLCBkc3RSZWN0LndpZHRoKCksIGRzdFJlY3QuaGVpZ2h0KCkpOwor
ICAgICAgICAgICAgY2Fpcm9fZmlsbChjcik7CisKKyAgICAgICAgICAgIGNhaXJvX3Jlc3RvcmUo
Y3IpOworICAgICAgICAgICAgY2Fpcm9fc3VyZmFjZV9kZXN0cm95KHNyY0ltYWdlKTsKKworICAg
ICAgICAgICAgOjpEZWxldGVPYmplY3QoYml0bWFwKTsKKyAgICAgICAgfQorCisgICAgICAgIDo6
RGVsZXRlREMoaGRjKTsKKyAgICB9Cit9CisjZW5kaWYKKworCiB2b2lkIEdyYXBoaWNzQ29udGV4
dDo6c2V0UGxhdGZvcm1TaG91bGRBbnRpYWxpYXMoYm9vbCBlbmFibGUpCiB7CiAgICAgaWYgKHBh
aW50aW5nRGlzYWJsZWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaAppbmRl
eCA3Y2UzMGM0Li5iMTY0ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvdHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
CkBAIC01MCw3ICs1MCw3IEBAIHR5cGVkZWYgc3RydWN0IENHQWZmaW5lVHJhbnNmb3JtIENHQWZm
aW5lVHJhbnNmb3JtOwogI2luY2x1ZGUgPHd4L2dyYXBoaWNzLmg+CiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JN
KFdYKSAmJiBPUyhXSU5ET1dTKSkKKyNpZiBQTEFURk9STShXSU4pIHx8IChQTEFURk9STShHVEsp
ICYmIE9TKFdJTkRPV1MpKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJTkRPV1MpKSB8fCAoUExB
VEZPUk0oV1gpICYmIE9TKFdJTkRPV1MpKQogI2lmIENPTVBJTEVSKE1JTkdXKSAmJiAhQ09NUElM
RVIoTUlOR1c2NCkKIHR5cGVkZWYgc3RydWN0IF9YRk9STSBYRk9STTsKICNlbHNlCkBAIC0zNDEs
NyArMzQxLDcgQEAgcHVibGljOgogICAgIG9wZXJhdG9yIHd4R3JhcGhpY3NNYXRyaXgoKSBjb25z
dDsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJ
TkRPV1MpKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKFdJTkRPV1MpKQorI2lmIFBMQVRGT1JNKFdJ
TikgfHwgKFBMQVRGT1JNKEdUSykgJiYgT1MoV0lORE9XUykpIHx8IChQTEFURk9STShRVCkgJiYg
T1MoV0lORE9XUykpIHx8IChQTEFURk9STShXWCkgJiYgT1MoV0lORE9XUykpCiAgICAgb3BlcmF0
b3IgWEZPUk0oKSBjb25zdDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvRmlsZVN5c3RlbUd0ay5jcHAKaW5kZXggMzljNGQ2NS4uNDVjZDUzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcApAQCAtMzU2LDYgKzM1Niwx
MCBAQCBpbnQgcmVhZEZyb21GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNoYXIqIGRh
dGEsIGludCBsZW5ndGgpCiAKIGJvb2wgdW5sb2FkTW9kdWxlKFBsYXRmb3JtTW9kdWxlIG1vZHVs
ZSkKIHsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiA6OkZyZWVMaWJyYXJ5KG1vZHVsZSk7
CisjZWxzZQogICAgIHJldHVybiBnX21vZHVsZV9jbG9zZShtb2R1bGUpOworI2VuZGlmCiB9CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCmluZGV4IGFhZjg3YzEuLjYzYWMxNTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oCkBAIC00Nyw3ICs0Nyw3IEBACiAjaW5jbHVk
ZSAibnBydW50aW1lX2ludGVybmFsLmgiCiAjZW5kaWYKIAotI2lmIE9TKFdJTkRPV1MpICYmIChQ
TEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQorI2lmIE9TKFdJTkRPV1MpICYmIChQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShXWCkpCiB0eXBlZGVmIHN0cnVjdCBI
V05EX18qIEhXTkQ7CiB0eXBlZGVmIEhXTkQgUGxhdGZvcm1QbHVnaW5XaWRnZXQ7CiAjZWxzZQpA
QCAtMzc2LDcgKzM3Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2hh
dmVVcGRhdGVkUGx1Z2luV2lkZ2V0OwogI2VuZGlmCiAKLSNpZiAoKFBMQVRGT1JNKFFUKSB8fCBQ
TEFURk9STShXWCkpICYmIE9TKFdJTkRPV1MpKSB8fCBkZWZpbmVkKFhQX01BQ09TWCkgfHwgUExB
VEZPUk0oRUZMKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZP
Uk0oV1gpKSAmJiBPUyhXSU5ET1dTKSkgfHwgZGVmaW5lZChYUF9NQUNPU1gpIHx8IFBMQVRGT1JN
KEVGTCkKICAgICAgICAgLy8gT24gTWFjIE9TWCBhbmQgUXQvV2luZG93cyB0aGUgcGx1Z2luIGRv
ZXMgbm90IGhhdmUgaXRzIG93biBuYXRpdmUgd2lkZ2V0LAogICAgICAgICAvLyBidXQgaXMgdXNp
bmcgdGhlIGNvbnRhaW5pbmcgd2luZG93IGFzIGl0cyByZWZlcmVuY2UgZm9yIHBvc2l0aW9uaW5n
L3BhaW50aW5nLgogICAgICAgICBQbGF0Zm9ybVBsdWdpbldpZGdldCBtX3dpbmRvdzsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5jcHAKaW5kZXggYzg1N2E0MC4u
NWQ0MDg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmll
d1dpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy93aW4vUGx1Z2luVmlld1dpbi5j
cHAKQEAgLTg2LDYgKzg2LDExIEBACiAjaW5jbHVkZSA8Y2Fpcm8td2luMzIuaD4KICNlbmRpZgog
CisjaWYgUExBVEZPUk0oR1RLKQorI2luY2x1ZGUgPGdkay9nZGt3aW4zMi5oPgorI2luY2x1ZGUg
PGd0ay9ndGsuaD4KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oUVQpCiAjaW5jbHVkZSAiUVdlYlBh
Z2VDbGllbnQuaCIKICNpZiBIQVZFKFFUNSkKQEAgLTEwMiw3ICsxMDcsMTMgQEAKIAogc3RhdGlj
IGlubGluZSBIV05EIHdpbmRvd0hhbmRsZUZvclBhZ2VDbGllbnQoUGxhdGZvcm1QYWdlQ2xpZW50
IGNsaWVudCkKIHsKLSNpZiBQTEFURk9STShRVCkKKyNpZiBQTEFURk9STShHVEspCisgICAgaWYg
KCFjbGllbnQpCisgICAgICAgIHJldHVybiAwOworICAgIGlmIChHZGtXaW5kb3cgKndpbmRvdyA9
IGd0a193aWRnZXRfZ2V0X3dpbmRvdyhjbGllbnQpKQorICAgICAgICByZXR1cm4gKEhXTkQpR0RL
X1dJTkRPV19IV05EKHdpbmRvdyk7CisgICAgcmV0dXJuIDA7CisjZWxpZiBQTEFURk9STShRVCkK
ICAgICBpZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuIDA7CiAjaWYgSEFWRShRVDUpCkBAIC0z
MDAsOCArMzExLDggQEAgc3RhdGljIGJvb2wgcmVnaXN0ZXJQbHVnaW5WaWV3KCkKIAogICAgIGhh
dmVSZWdpc3RlcmVkV2luZG93Q2xhc3MgPSB0cnVlOwogCi0jaWYgUExBVEZPUk0oUVQpCi0gICAg
V2ViQ29yZTo6c2V0SW5zdGFuY2VIYW5kbGUoKEhJTlNUQU5DRSkocVdpbkFwcEluc3QoKSkpOwor
I2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpCisgICAgV2ViQ29yZTo6c2V0SW5zdGFu
Y2VIYW5kbGUoKEhJTlNUQU5DRSkoR2V0TW9kdWxlSGFuZGxlKDApKSk7CiAjZW5kaWYKIAogICAg
IEFTU0VSVChXZWJDb3JlOjppbnN0YW5jZUhhbmRsZSgpKTsKQEAgLTY0Miw5ICs2NTMsOSBAQCB2
b2lkIFBsdWdpblZpZXc6OnBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgSW50
UmVjdCYgcmVjdCkKIAogICAgIC8vIE9uIFNhZmFyaS9XaW5kb3dzIHdpdGhvdXQgdHJhbnNwYXJl
bmN5IGxheWVycyB0aGUgR3JhcGhpY3NDb250ZXh0IHJldHVybnMgdGhlIEhEQwogICAgIC8vIG9m
IHRoZSB3aW5kb3cgYW5kIHRoZSBwbHVnaW4gZXhwZWN0cyB0aGF0IHRoZSBwYXNzZWQgaW4gREMg
aGFzIHdpbmRvdyBjb29yZGluYXRlcy4KLSAgICAvLyBJbiB0aGUgUXQgcG9ydCB3ZSBhbHdheXMg
ZHJhdyBpbiBhbiBvZmZzY3JlZW4gYnVmZmVyIGFuZCB0aGVyZWZvcmUgbmVlZCB0byBwcmVzZXJ2
ZQotICAgIC8vIHRoZSB0cmFuc2xhdGlvbiBzZXQgaW4gZ2V0V2luZG93c0NvbnRleHQuCi0jaWYg
IVBMQVRGT1JNKFFUKSAmJiAhT1MoV0lOQ0UpCisgICAgLy8gSW4gdGhlIEdUSyBhbmQgUXQgcG9y
dHMgd2UgYWx3YXlzIGRyYXcgaW4gYW4gb2Zmc2NyZWVuIGJ1ZmZlciBhbmQgdGhlcmVmb3JlIG5l
ZWQKKyAgICAvLyB0byBwcmVzZXJ2ZSB0aGUgdHJhbnNsYXRpb24gc2V0IGluIGdldFdpbmRvd3ND
b250ZXh0LgorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShRVCkgJiYgIU9TKFdJTkNF
KQogICAgIGlmICghY29udGV4dC0+aXNJblRyYW5zcGFyZW5jeUxheWVyKCkpIHsKICAgICAgICAg
WEZPUk0gdHJhbnNmb3JtOwogICAgICAgICBHZXRXb3JsZFRyYW5zZm9ybSh3aW5kb3dzQ29udGV4
dC5oZGMoKSwgJnRyYW5zZm9ybSk7CkBAIC03NTIsNyArNzYzLDcgQEAgdm9pZCBQbHVnaW5WaWV3
OjpoYW5kbGVNb3VzZUV2ZW50KE1vdXNlRXZlbnQqIGV2ZW50KQogICAgIGlmIChkaXNwYXRjaE5Q
RXZlbnQobnBFdmVudCkpCiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwogCi0j
aWYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oV1gpICYmICFPUyhXSU5DRSkKKyNpZiAhUExB
VEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oUVQpICYmICFQTEFURk9STShXWCkgJiYgIU9TKFdJTkNF
KQogICAgIC8vIEN1cnJlbnRseSwgV2lkZ2V0OjpzZXRDdXJzb3IgaXMgYWx3YXlzIGNhbGxlZCBh
ZnRlciB0aGlzIGZ1bmN0aW9uIGluIEV2ZW50SGFuZGxlci5jcHAKICAgICAvLyBhbmQgc2luY2Ug
d2UgZG9uJ3Qgd2FudCB0aGF0IHdlIHNldCBpZ25vcmVOZXh0U2V0Q3Vyc29yIHRvIHRydWUgaGVy
ZSB0byBwcmV2ZW50IHRoYXQuCiAgICAgaWdub3JlTmV4dFNldEN1cnNvciA9IHRydWU7CkBAIC05
OTcsNyArMTAwOCw3IEBAIGJvb2wgUGx1Z2luVmlldzo6cGxhdGZvcm1TdGFydCgpCiAgICAgICAg
IEhXTkQgd2luZG93ID0gOjpDcmVhdGVXaW5kb3dFeCgwLCBrV2ViUGx1Z2luVmlld2Rvd0NsYXNz
TmFtZSwgMCwgZmxhZ3MsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAw
LCAwLCAwLCAwLCBwYXJlbnRXaW5kb3dIYW5kbGUsIDAsIFdlYkNvcmU6Omluc3RhbmNlSGFuZGxl
KCksIDApOwogCi0jaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShX
WCkpCisjaWYgT1MoV0lORE9XUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8
IFBMQVRGT1JNKFdYKSkKICAgICAgICAgbV93aW5kb3cgPSB3aW5kb3c7CiAjZWxzZQogICAgICAg
ICBzZXRQbGF0Zm9ybVdpZGdldCh3aW5kb3cpOwpAQCAtMTA0MCw3ICsxMDUxLDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpwbGF0Zm9ybURlc3Ryb3koKQogCiBQYXNzUmVmUHRyPEltYWdlPiBQbHVnaW5W
aWV3OjpzbmFwc2hvdCgpCiB7Ci0jaWYgIVBMQVRGT1JNKFdYKSAmJiAhT1MoV0lOQ0UpCisjaWYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdYKSAmJiAhT1MoV0lOQ0UpCiAgICAgT3duUHRy
PEhEQz4gaGRjID0gYWRvcHRQdHIoQ3JlYXRlQ29tcGF0aWJsZURDKDApKTsKIAogICAgIGlmICgh
bV9pc1dpbmRvd2VkKSB7Ci0tIAoxLjcuMTAuNAoK
</data>
<flag name="review"
          id="156102"
          type_id="1"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148536</attachid>
            <date>2012-06-20 04:29:13 -0700</date>
            <delta_ts>2012-06-21 12:20:15 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>0001-GTK-Fix-NPAPI-plugins-on-Windows.patch</filename>
            <type>text/plain</type>
            <size>20225</size>
            <attacher name="Kalev Lember">kalevlember</attacher>
            
              <data encoding="base64">RnJvbSBjZTJkN2EzYTA4MDg2NTFkMzIwMTkxMTk1ZDJjOTY0ODI0ZjVjZjI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLYWxldiBMZW1iZXIgPGthbGV2bGVtYmVyQGdtYWlsLmNvbT4K
RGF0ZTogVHVlLCA1IEp1biAyMDEyIDE3OjQ2OjA5ICswMzAwClN1YmplY3Q6IFtQQVRDSF0gW0dU
S10gRml4IE5QQVBJIHBsdWdpbnMgb24gV2luZG93cwoKU3dpdGNoIHRvIHVzaW5nIFBsdWdpblBh
Y2thZ2VXaW4uY3BwIGFuZCBQbHVnaW5WaWV3V2luLmNwcCBvbiBXaW5kb3dzCnBsYXRmb3JtLCBh
bmQgbGVhdmUgcGx1Z2lucy9ndGsvIG9ubHkgZm9yIFhQX1VOSVggcGxhdGZvcm1zLiBXaXRoIHRo
aXMKd2UgY2FuIHNoYXJlIGEgbG90IG9mIGNvZGUgd2l0aCBvdGhlciBwb3J0cyBhbmQgZG9uJ3Qg
aGF2ZSB0bwpyZWltcGxlbWVudCBhbGwgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY29kZSBpbiBwbHVn
aW5zL2d0ay8uCi0tLQogQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfCAgIDExICsrKysrKwogR05VbWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfCAgICA1ICsrLQogU291cmNlL1dURi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsrKysrKysKIFNvdXJjZS9XVEYvR05VbWFr
ZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSArKysKIFNvdXJjZS9XVEYv
R05VbWFrZWZpbGUubGlzdC5hbSAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogU291cmNl
L1dURi93dGYvUGxhdGZvcm0uaCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAyICstCiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzkg
KysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtICAgICAg
ICAgICAgICAgICAgICAgIHwgICAxMyArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtICAgICAgICAgICAgICAgICB8ICAgMjMgKysrKysrKysrLS0tCiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggICAgICAgICAgICAgICB8ICAgIDYgKy0tCiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaCB8ICAgIDIgKy0K
IC4uLi9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oICAgIHwgICAg
NiArKy0KIC4uLi9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggICAg
IHwgICAgNCArLQogLi4uL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAg
ICAgICAgfCAgICA1ICsrKwogLi4uL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRl
eHRXaW4uY3BwICAgfCAgICA0ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5
c3RlbUd0ay5jcHAgICAgICB8ICAgIDQgKysKIFNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2lu
Vmlldy5oICAgICAgICAgICAgICAgIHwgICAgNCArLQogU291cmNlL1dlYkNvcmUvcGx1Z2lucy93
aW4vUGx1Z2luVmlld1dpbi5jcHAgICAgICAgfCAgIDI5ICsrKysrKysrKystLS0tLQogMTggZmls
ZXMgY2hhbmdlZCwgMTUyIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCA3YmU0YWQ0Li5mZWYzYjk1IDEwMDY0NAot
LS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMDYt
MTkgIEthbGV2IExlbWJlciAgPGthbGV2bGVtYmVyQGdtYWlsLmNvbT4KKworICAgICAgICBbR1RL
XSBGaXggTlBBUEkgcGx1Z2lucyBvbiBXaW5kb3dzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBYUF9XSU4gb24gV2luZG93cyBmb3IgcGx1Z2lu
IHN1cHBvcnQuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKwogMjAxMi0wNi0xOSAgSm9j
ZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFtR
dF0gRml4IHRoZSBXaW5kb3dzIGJ1aWxkIHdoZW4gUXQgaXMgYnVpbHQgd2l0aG91dCAtcmVsZWFz
ZSBvciAtZGVidWcKZGlmZiAtLWdpdCBhL0dOVW1ha2VmaWxlLmFtIGIvR05VbWFrZWZpbGUuYW0K
aW5kZXggNjE3NmExMS4uNzU3YzNkYSAxMDA2NDQKLS0tIGEvR05VbWFrZWZpbGUuYW0KKysrIGIv
R05VbWFrZWZpbGUuYW0KQEAgLTE2MSw3ICsxNjEsMTAgQEAgZ2xvYmFsX2NwcGZsYWdzICs9IFwK
IGVuZGlmCiAKICMgRm9yIHRoZSBHdGsgcG9ydCB3ZSB3YW50IHRvIHVzZSBYUF9VTklYIGJvdGgg
aW4gWDExIGFuZCBNYWMKLWlmICFUQVJHRVRfV0lOMzIKK2lmIFRBUkdFVF9XSU4zMgorZ2xvYmFs
X2NwcGZsYWdzICs9IFwKKwktRFhQX1dJTgorZWxzZQogZ2xvYmFsX2NwcGZsYWdzICs9IFwKIAkt
RFhQX1VOSVgKIGVuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDVkNzI1MGEuLjI1YzNiYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkg
QEAKIDIwMTItMDYtMTkgIEthbGV2IExlbWJlciAgPGthbGV2bGVtYmVyQGdtYWlsLmNvbT4KIAor
ICAgICAgICBbR1RLXSBGaXggTlBBUEkgcGx1Z2lucyBvbiBXaW5kb3dzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDUzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERlZmluZSBFTkFCTEVfUExVR0lOX1BB
Q0tBR0VfU0lNUExFX0hBU0ggZm9yIHRoZSBHVEsrIHBvcnQsIGFuZAorICAgICAgICBpbmNsdWRl
IE93blB0cldpbi5jcHAgaW4gdGhlIGxpc3Qgb2YgZmlsZXMgYnVpbHQgb24gV2luZG93cy4KKwor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogd3RmL1BsYXRmb3JtLmg6CisKKzIwMTItMDYtMTkgIEthbGV2IExlbWJlciAg
PGthbGV2bGVtYmVyQGdtYWlsLmNvbT4KKwogICAgICAgICBUaHJlYWRpbmdXaW46IFNpbGVuY2Ug
R0NDIGNvbXBpbGVyIHdhcm5pbmdzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04OTQ5MQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxl
LmFtIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5hbQppbmRleCAyNjMzYmJiLi43ZWFiNWM2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUuYW0KQEAgLTE1LDYgKzE1LDExIEBAIGxpYldURl9sYV9MSUJBREQgPSBcCiAJJChX
SU5NTV9MSUJTKSBcCiAJLWxwdGhyZWFkCiAKK2lmIFRBUkdFVF9XSU4zMgorIyBPd25QdHJXaW4u
Y3BwIG5lZWRzIHRoZSBzeW1ib2xzIGZyb20gZ2RpMzIgZGxsCitsaWJXVEZfbGFfTElCQUREICs9
IC1sZ2RpMzIKK2VuZGlmCisKIGxpYldURl9sYV9DWFhGTEFHUyA9IFwKIAkkKGdsb2JhbF9jeHhm
bGFncykgXAogCSQobGliV1RGX2xhX0NGTEFHUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvR05V
bWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XVEYvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCAz
ZGZjMWRiLi5jNWY0OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0dOVW1ha2VmaWxlLmxpc3Qu
YW0KKysrIGIvU291cmNlL1dURi9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0yMjcsNyArMjI3LDgg
QEAgd3RmX3NvdXJjZXMgKz0gXAogICAgIFNvdXJjZS9XVEYvd3RmL09TQWxsb2NhdG9yV2luLmNw
cCBcCiAgICAgU291cmNlL1dURi93dGYvVGhyZWFkRnVuY3Rpb25JbnZvY2F0aW9uLmggXAogICAg
IFNvdXJjZS9XVEYvd3RmL1RocmVhZGluZ1dpbi5jcHAgXAotICAgIFNvdXJjZS9XVEYvd3RmL1Ro
cmVhZFNwZWNpZmljV2luLmNwcAorICAgIFNvdXJjZS9XVEYvd3RmL1RocmVhZFNwZWNpZmljV2lu
LmNwcCBcCisgICAgU291cmNlL1dURi93dGYvd2luL093blB0cldpbi5jcHAKIGVsc2UKIHd0Zl9z
b3VyY2VzICs9IFwKICAgICBTb3VyY2UvV1RGL3d0Zi9PU0FsbG9jYXRvclBvc2l4LmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRm
b3JtLmgKaW5kZXggMmJjNThmMy4uMzE5NWYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
UGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCkBAIC0xMDE1LDcgKzEw
MTUsNyBAQAogI2RlZmluZSBXVEZfVVNFX1BST1RFQ1RJT05fU1BBQ0VfQVVUSF9DQUxMQkFDSyAx
CiAjZW5kaWYKIAotI2lmICFFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkgfHwgKEVOQUJMRShO
RVRTQ0FQRV9QTFVHSU5fQVBJKSAmJiAoKE9TKFVOSVgpICYmIChQTEFURk9STShRVCkgfHwgUExB
VEZPUk0oV1gpKSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpKSkKKyNpZiAhRU5B
QkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpIHx8IChFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkg
JiYgKChPUyhVTklYKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZP
Uk0oV1gpKSkgfHwgUExBVEZPUk0oRUZMKSkpCiAjZGVmaW5lIEVOQUJMRV9QTFVHSU5fUEFDS0FH
RV9TSU1QTEVfSEFTSCAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM2ZGQ5ZGMuLjdmMThkOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0NCBAQAogMjAxMi0wNi0xOSAgS2FsZXYgTGVtYmVyICA8
a2FsZXZsZW1iZXJAZ21haWwuY29tPgogCisgICAgICAgIFtHVEtdIEZpeCBOUEFQSSBwbHVnaW5z
IG9uIFdpbmRvd3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTU0NTMxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3dpdGNoIHRvIHVzaW5nIFBsdWdpblBhY2thZ2VXaW4uY3BwIGFuZCBQbHVnaW5WaWV3V2lu
LmNwcCBvbiBXaW5kb3dzCisgICAgICAgIHBsYXRmb3JtLCBhbmQgbGVhdmUgcGx1Z2lucy9ndGsv
IG9ubHkgZm9yIFhQX1VOSVggcGxhdGZvcm1zLiBXaXRoIHRoaXMKKyAgICAgICAgd2UgY2FuIHNo
YXJlIGEgbG90IG9mIGNvZGUgd2l0aCBvdGhlciBwb3J0cyBhbmQgZG9uJ3QgaGF2ZSB0bworICAg
ICAgICByZWltcGxlbWVudCBhbGwgdGhlIFdpbmRvd3Mtc3BlY2lmaWMgY29kZSBpbiBwbHVnaW5z
L2d0ay8uCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBHTlVtYWtlZmls
ZS5saXN0LmFtOgorICAgICAgICAqIHBsYXRmb3JtL0ZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5oOgor
ICAgICAgICAoR3JhcGhpY3NDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpHcmFwaGljc0NvbnRleHRQbGF0
Zm9ybVByaXZhdGUpOgorICAgICAgICAoR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0
cml4Lmg6CisgICAgICAgIChUcmFuc2Zvcm1hdGlvbk1hdHJpeCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRX
aW4uY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0ZpbGVT
eXN0ZW1HdGsuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5sb2FkTW9kdWxlKToKKyAgICAgICAg
KiBwbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKFBsdWdpblZpZXcpOgorICAgICAgICAq
IHBsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwOgorICAgICAgICAod2luZG93SGFuZGxlRm9y
UGFnZUNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpyZWdpc3RlclBsdWdpblZpZXcpOgorICAg
ICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1
Z2luVmlldzo6aGFuZGxlTW91c2VFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3
OjpwbGF0Zm9ybVN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OnNuYXBzaG90
KToKKworMjAxMi0wNi0xOSAgS2FsZXYgTGVtYmVyICA8a2FsZXZsZW1iZXJAZ21haWwuY29tPgor
CiAgICAgICAgIFtHVEtdIFJlcGxhY2UgdGhlIHVzZSBvZiAic3RydWN0IHN0YXQiIHdpdGggR1N0
YXRCdWYKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5
NDg4CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KaW5kZXggMTMxOTE4MC4uMTY0OTg3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05V
bWFrZWZpbGUuYW0KQEAgLTE1NSw2ICsxNTUsMTQgQEAgd2ViY29yZWd0a19jcHBmbGFncyArPSBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcGFuZ28KIGVu
ZGlmICMgRU5EIFVTRV9QQU5HTwogCisjIC0tLQorIyBXaW5kb3dzIHBsdWdpbiBzdXBwb3J0Cisj
IC0tLQoraWYgVEFSR0VUX1dJTjMyCit3ZWJjb3JlZ3RrX2NwcGZsYWdzICs9IFwKKwktSSQoc3Jj
ZGlyKS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4KK2VuZGlmICMgRU5EIFRB
UkdFVF9XSU4zMgorCiAjIC0tLS0KICMgSFRNTCBEZXRhaWxzIEVsZW1lbnQKICMgLS0tLQpAQCAt
OTY1LDYgKzk3MywxMSBAQCBsaWJXZWJDb3JlX2xhX0NQUEZMQUdTID0gXAogCSQoWFJFTkRFUl9D
RkxBR1MpIFwKIAkkKFhUX0NGTEFHUykKIAoraWYgVEFSR0VUX1dJTjMyCisjIFBsdWdpblBhY2th
Z2VXaW4uY3BwIG5lZWRzIHRoZSBzeW1ib2xzIGZyb20gdmVyc2lvbiBkbGwKK2xpYldlYkNvcmVf
bGFfTElCQUREID0gLWx2ZXJzaW9uCitlbmRpZgorCiBsaWJXZWJDb3JlTW9kdWxlc19sYV9TT1VS
Q0VTID0gXAogCSQod2ViY29yZV9tb2R1bGVzX3NvdXJjZXMpCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCmluZGV4IDFmMTQwZjkuLjJhNDdhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUu
bGlzdC5hbQpAQCAtNDgwOCw5ICs0ODA4LDcgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU291bmRHdGsuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL1dpZGdldFJlbmRlcmluZ0NvbnRleHQuY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvV2lkZ2V0UmVuZGVyaW5nQ29udGV4dC5oIFwKLQlTb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L2d0ay9QbHVnaW5QYWNrYWdlR3RrLmNwcCBcCi0JU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsv
UGx1Z2luVmlld0d0ay5jcHAKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0UmVu
ZGVyaW5nQ29udGV4dC5oCiAKIGlmIFRBUkdFVF9YMTEKIHdlYmNvcmVndGtfc291cmNlcyArPSBc
CkBAIC00ODI2LDEzICs0ODI0LDI4IEBAIGVuZGlmCiAKIGlmIFRBUkdFVF9XSU4zMgogd2ViY29y
ZV9zb3VyY2VzICs9IFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRElC
UGl4ZWxEYXRhLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0dy
YXBoaWNzQ29udGV4dENhaXJvV2luLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAgXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Mb2NhbFdpbmRvd3NDb250ZXh0LmggXAorCVNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9UcmFuc2Zvcm1hdGlvbk1hdHJpeFdpbi5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9CaXRtYXBJbmZvLmNwcCBcCisJU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0JpdG1hcEluZm8uaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1N5c3RlbUluZm8uY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU3lzdGVt
SW5mby5oIFwKKwlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vV2ViQ29yZUluc3RhbmNlSGFu
ZGxlLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1dlYkNvcmVJbnN0YW5jZUhh
bmRsZS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5EYXRhYmFzZVdpbi5j
cHAgXAogCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpbk1lc3NhZ2VUaHJvdHRsZXJX
aW4uY3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhyb3R0
bGVyV2luLmgKKwlTb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5NZXNzYWdlVGhyb3R0
bGVyV2luLmggXAorCVNvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblBhY2thZ2VXaW4u
Y3BwCit3ZWJjb3JlZ3RrX3NvdXJjZXMgKz0gXAorCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nh
aXJvL1dpZGdldEJhY2tpbmdTdG9yZUNhaXJvLmNwcCBcCisJU291cmNlL1dlYkNvcmUvcGx1Z2lu
cy93aW4vUGx1Z2luVmlld1dpbi5jcHAKK2Vsc2UKIHdlYmNvcmVndGtfc291cmNlcyArPSBcCi0J
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2Fpcm8vV2lkZ2V0QmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CisJU291cmNlL1dlYkNvcmUvcGx1Z2lucy9ndGsvUGx1Z2luUGFja2FnZUd0ay5jcHAgXAorCVNv
dXJjZS9XZWJDb3JlL3BsdWdpbnMvZ3RrL1BsdWdpblZpZXdHdGsuY3BwCiBlbmRpZgogCiAjIC0t
LS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaAppbmRleCA2ZDdlMDVlLi5iM2MyNTlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCkBAIC03NCwxMCArNzQsMTAgQEAg
dHlwZWRlZiBzdHJ1Y3QgX0dNb2R1bGUgR01vZHVsZTsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ly8gUGxhdGZvcm1Nb2R1bGUKLSNpZiBQTEFURk9STShHVEspCi10eXBlZGVmIEdNb2R1bGUqIFBs
YXRmb3JtTW9kdWxlOwotI2VsaWYgT1MoV0lORE9XUykKKyNpZiBPUyhXSU5ET1dTKQogdHlwZWRl
ZiBITU9EVUxFIFBsYXRmb3JtTW9kdWxlOworI2VsaWYgUExBVEZPUk0oR1RLKQordHlwZWRlZiBH
TW9kdWxlKiBQbGF0Zm9ybU1vZHVsZTsKICNlbGlmIFBMQVRGT1JNKFFUKQogI2lmIGRlZmluZWQo
UV9XU19NQUMpCiB0eXBlZGVmIENGQnVuZGxlUmVmIFBsYXRmb3JtTW9kdWxlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuaAppbmRleCBh
ZjI1MmE3Li5mMjdiZWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFwaGljc0NvbnRleHQuaApAQCAtNDg4LDcgKzQ4OCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgdm9pZCBkcmF3V2luZG93c0JpdG1hcChXaW5kb3dzQml0bWFwKiwgY29u
c3QgSW50UG9pbnQmKTsKICNlbmRpZgogCi0jaWYgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dT
KSkgfHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhXSU5ET1dTKSkKKyNpZiAoUExBVEZPUk0oR1RLKSAm
JiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRG
T1JNKFdYKSAmJiBPUyhXSU5ET1dTKSkKICAgICAgICAgSERDIGdldFdpbmRvd3NDb250ZXh0KGNv
bnN0IEludFJlY3QmLCBib29sIHN1cHBvcnRBbHBoYUJsZW5kID0gdHJ1ZSwgYm9vbCBtYXlDcmVh
dGVCaXRtYXAgPSB0cnVlKTsKICAgICAgICAgdm9pZCByZWxlYXNlV2luZG93c0NvbnRleHQoSERD
LCBjb25zdCBJbnRSZWN0JiwgYm9vbCBzdXBwb3J0QWxwaGFCbGVuZCA9IHRydWUsIGJvb2wgbWF5
Q3JlYXRlQml0bWFwID0gdHJ1ZSk7CiAgICAgICAgIGJvb2wgc2hvdWxkSW5jbHVkZUNoaWxkV2lu
ZG93cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGVD
YWlyby5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3ND
b250ZXh0UGxhdGZvcm1Qcml2YXRlQ2Fpcm8uaAppbmRleCBkNTU3N2EzLi40Y2M4YzgwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0Nv
bnRleHRQbGF0Zm9ybVByaXZhdGVDYWlyby5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dFBsYXRmb3JtUHJpdmF0ZUNhaXJvLmgKQEAg
LTUyLDcgKzUyLDggQEAgcHVibGljOgogICAgICAgICA6IHBsYXRmb3JtQ29udGV4dChuZXdQbGF0
Zm9ybUNvbnRleHQpCiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICAsIGV4cG9zZSgwKQotI2Vs
aWYgUExBVEZPUk0oV0lOKQorI2VuZGlmCisjaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0o
R1RLKSAmJiBPUyhXSU5ET1dTKSkKICAgICAgICAgLy8gTk9URTogIFRoZXNlIG1heSBub3RlIGJl
IG5lZWRlZDogcmV2aWV3IGFuZCByZW1vdmUgb25jZSBDYWlybyBpbXBsZW1lbnRhdGlvbiBpcyBj
b21wbGV0ZQogICAgICAgICAsIG1faGRjKDApCiAgICAgICAgICwgbV9zaG91bGRJbmNsdWRlQ2hp
bGRXaW5kb3dzKGZhbHNlKQpAQCAtOTcsNyArOTgsOCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9S
TShHVEspCiAgICAgR2RrRXZlbnRFeHBvc2UqIGV4cG9zZTsKLSNlbGlmIFBMQVRGT1JNKFdJTikK
KyNlbmRpZgorI2lmIFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKEdUSykgJiYgT1MoV0lORE9X
UykpCiAgICAgSERDIG1faGRjOwogICAgIGJvb2wgbV9zaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dz
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy90
cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy90cmFuc2Zvcm1zL1RyYW5zZm9ybWF0aW9uTWF0cml4LmgKaW5kZXggN2NlMzBj
NC4uYjE2NGQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
dHJhbnNmb3Jtcy9UcmFuc2Zvcm1hdGlvbk1hdHJpeC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3RyYW5zZm9ybXMvVHJhbnNmb3JtYXRpb25NYXRyaXguaApAQCAtNTAs
NyArNTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBDR0FmZmluZVRyYW5zZm9ybSBDR0FmZmluZVRyYW5z
Zm9ybTsKICNpbmNsdWRlIDx3eC9ncmFwaGljcy5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShX
SU4pIHx8IChQTEFURk9STShRVCkgJiYgT1MoV0lORE9XUykpIHx8IChQTEFURk9STShXWCkgJiYg
T1MoV0lORE9XUykpCisjaWYgUExBVEZPUk0oV0lOKSB8fCAoUExBVEZPUk0oR1RLKSAmJiBPUyhX
SU5ET1dTKSkgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkgfHwgKFBMQVRGT1JNKFdY
KSAmJiBPUyhXSU5ET1dTKSkKICNpZiBDT01QSUxFUihNSU5HVykgJiYgIUNPTVBJTEVSKE1JTkdX
NjQpCiB0eXBlZGVmIHN0cnVjdCBfWEZPUk0gWEZPUk07CiAjZWxzZQpAQCAtMzQxLDcgKzM0MSw3
IEBAIHB1YmxpYzoKICAgICBvcGVyYXRvciB3eEdyYXBoaWNzTWF0cml4KCkgY29uc3Q7CiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKFdJTikgfHwgKFBMQVRGT1JNKFFUKSAmJiBPUyhXSU5ET1dTKSkg
fHwgKFBMQVRGT1JNKFdYKSAmJiBPUyhXSU5ET1dTKSkKKyNpZiBQTEFURk9STShXSU4pIHx8IChQ
TEFURk9STShHVEspICYmIE9TKFdJTkRPV1MpKSB8fCAoUExBVEZPUk0oUVQpICYmIE9TKFdJTkRP
V1MpKSB8fCAoUExBVEZPUk0oV1gpICYmIE9TKFdJTkRPV1MpKQogICAgIG9wZXJhdG9yIFhGT1JN
KCkgY29uc3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9HcmFwaGljc0NvbnRleHRDYWlyb1dpbi5jcHAKaW5kZXgg
ZTJkZWZmNy4uOWZiZmQ2OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dENhaXJvV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0Q2Fpcm9XaW4uY3BwCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAKICNpbmNsdWRlICJB
ZmZpbmVUcmFuc2Zvcm0uaCIKKyNpbmNsdWRlICJESUJQaXhlbERhdGEuaCIKICNpbmNsdWRlICJQ
YXRoLmgiCiAKICNpbmNsdWRlIDxjYWlyby13aW4zMi5oPgpAQCAtMzYsNiArMzcsNyBAQCB1c2lu
ZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKyNpZiBQTEFURk9STShX
SU4pCiBzdGF0aWMgY2Fpcm9fdCogY3JlYXRlQ2Fpcm9Db250ZXh0V2l0aEhEQyhIREMgaGRjLCBi
b29sIGhhc0FscGhhKQogewogICAgIC8vIFB1dCB0aGUgSERDIEluIGFkdmFuY2VkIG1vZGUgc28g
aXQgd2lsbCBob25vciBhZmZpbmUgdHJhbnNmb3Jtcy4KQEAgLTg3LDYgKzg5LDcgQEAgdm9pZCBH
cmFwaGljc0NvbnRleHQ6OnBsYXRmb3JtSW5pdChIREMgZGMsIGJvb2wgaGFzQWxwaGEpCiAgICAg
ICAgIHNldFBsYXRmb3JtU3Ryb2tlQ29sb3Ioc3Ryb2tlQ29sb3IoKSwgc3Ryb2tlQ29sb3JTcGFj
ZSgpKTsKICAgICB9CiB9CisjZW5kaWYKIAogc3RhdGljIHZvaWQgc2V0UkdCQUJpdG1hcEFscGhh
KHVuc2lnbmVkIGNoYXIqIGJ5dGVzLCBzaXplX3QgbGVuZ3RoLCB1bnNpZ25lZCBjaGFyIGxldmVs
KQogewpAQCAtMTQ5LDYgKzE1Miw3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpyZWxlYXNlV2lu
ZG93c0NvbnRleHQoSERDIGhkYywgY29uc3QgSW50UmVjdCYgZHN0UmVjdCwgYm9vCiAgICAgOjpE
ZWxldGVEQyhoZGMpOwogfQogCisjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBHcmFwaGljc0NvbnRl
eHQ6OmRyYXdXaW5kb3dzQml0bWFwKFdpbmRvd3NCaXRtYXAqIGJpdG1hcCwgY29uc3QgSW50UG9p
bnQmIHBvaW50KQogewogICAgIGRyYXdCaXRtYXBUb0NvbnRleHQobV9kYXRhLCBwbGF0Zm9ybUNv
bnRleHQoKS0+Y3IoKSwgYml0bWFwLT53aW5kb3dzRElCKCksIEludFNpemUocG9pbnQueCgpLCBi
aXRtYXAtPnNpemUoKS5oZWlnaHQoKSArIHBvaW50LnkoKSkpOwpAQCAtMTcxLDUgKzE3NSw2IEBA
IHZvaWQgR3JhcGhpY3NDb250ZXh0UGxhdGZvcm1Qcml2YXRlOjpmbHVzaCgpCiAgICAgY2Fpcm9f
c3VyZmFjZV9mbHVzaChzdXJmYWNlKTsKICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3koc3VyZmFj
ZSk7CiB9CisjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0dyYXBoaWNzQ29udGV4dFdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcAppbmRleCBlMzE5YmM0Li45
NTE0YTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
R3JhcGhpY3NDb250ZXh0V2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93aW4vR3JhcGhpY3NDb250ZXh0V2luLmNwcApAQCAtNTEsNiArNTEsNyBAQCBzdGF0aWMg
dm9pZCBmaWxsV2l0aENsZWFyQ29sb3IoSEJJVE1BUCBiaXRtYXApCiAgICAgbWVtc2V0KGJtcElu
Zm8uYm1CaXRzLCAwLCBidWZmZXJTaXplKTsKIH0KIAorI2lmIFBMQVRGT1JNKFdJTikKIHZvaWQg
R3JhcGhpY3NDb250ZXh0OjpzZXRTaG91bGRJbmNsdWRlQ2hpbGRXaW5kb3dzKGJvb2wgaW5jbHVk
ZSkKIHsKICAgICBtX2RhdGEtPm1fc2hvdWxkSW5jbHVkZUNoaWxkV2luZG93cyA9IGluY2x1ZGU7
CkBAIC05NCw2ICs5NSw3IEBAIFBhc3NPd25QdHI8R3JhcGhpY3NDb250ZXh0OjpXaW5kb3dzQml0
bWFwPiBHcmFwaGljc0NvbnRleHQ6OmNyZWF0ZVdpbmRvd3NCaXRtYXAoCiB7CiAgICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBXaW5kb3dzQml0bWFwKG1fZGF0YS0+bV9oZGMsIHNpemUpKTsKIH0KKyNl
bmRpZgogCiBIREMgR3JhcGhpY3NDb250ZXh0OjpnZXRXaW5kb3dzQ29udGV4dChjb25zdCBJbnRS
ZWN0JiBkc3RSZWN0LCBib29sIHN1cHBvcnRBbHBoYUJsZW5kLCBib29sIG1heUNyZWF0ZUJpdG1h
cCkKIHsKQEAgLTEzMyw2ICsxMzUsNyBAQCBIREMgR3JhcGhpY3NDb250ZXh0OjpnZXRXaW5kb3dz
Q29udGV4dChjb25zdCBJbnRSZWN0JiBkc3RSZWN0LCBib29sIHN1cHBvcnRBbHBoYQogICAgIHJl
dHVybiBtX2RhdGEtPm1faGRjOwogfQogCisjaWYgUExBVEZPUk0oV0lOKQogdm9pZCBHcmFwaGlj
c0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNhdmUoKQogewogICAgIGlmICghbV9oZGMpCkBAIC0y
MDIsNSArMjA1LDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRQbGF0Zm9ybVByaXZhdGU6OnNldENU
TShjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHRyYW5zZm9ybSkKICAgICBYRk9STSB4Zm9ybSA9IHRy
YW5zZm9ybS50b1RyYW5zZm9ybWF0aW9uTWF0cml4KCk7CiAgICAgU2V0V29ybGRUcmFuc2Zvcm0o
bV9oZGMsICZ4Zm9ybSk7CiB9CisjZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCmluZGV4IDM5YzRkNjUuLjQ1Y2Q1M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAKQEAgLTM1Niw2ICsz
NTYsMTAgQEAgaW50IHJlYWRGcm9tRmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjaGFy
KiBkYXRhLCBpbnQgbGVuZ3RoKQogCiBib29sIHVubG9hZE1vZHVsZShQbGF0Zm9ybU1vZHVsZSBt
b2R1bGUpCiB7CisjaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gOjpGcmVlTGlicmFyeShtb2R1
bGUpOworI2Vsc2UKICAgICByZXR1cm4gZ19tb2R1bGVfY2xvc2UobW9kdWxlKTsKKyNlbmRpZgog
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmggYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAppbmRleCBhYWY4N2MxLi42M2FjMTUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuaApAQCAtNDcsNyArNDcsNyBAQAogI2lu
Y2x1ZGUgIm5wcnVudGltZV9pbnRlcm5hbC5oIgogI2VuZGlmCiAKLSNpZiBPUyhXSU5ET1dTKSAm
JiAoUExBVEZPUk0oUVQpIHx8IFBMQVRGT1JNKFdYKSkKKyNpZiBPUyhXSU5ET1dTKSAmJiAoUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogdHlwZWRlZiBzdHJ1
Y3QgSFdORF9fKiBIV05EOwogdHlwZWRlZiBIV05EIFBsYXRmb3JtUGx1Z2luV2lkZ2V0OwogI2Vs
c2UKQEAgLTM3Niw3ICszNzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wg
bV9oYXZlVXBkYXRlZFBsdWdpbldpZGdldDsKICNlbmRpZgogCi0jaWYgKChQTEFURk9STShRVCkg
fHwgUExBVEZPUk0oV1gpKSAmJiBPUyhXSU5ET1dTKSkgfHwgZGVmaW5lZChYUF9NQUNPU1gpIHx8
IFBMQVRGT1JNKEVGTCkKKyNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oUVQpIHx8IFBM
QVRGT1JNKFdYKSkgJiYgT1MoV0lORE9XUykpIHx8IGRlZmluZWQoWFBfTUFDT1NYKSB8fCBQTEFU
Rk9STShFRkwpCiAgICAgICAgIC8vIE9uIE1hYyBPU1ggYW5kIFF0L1dpbmRvd3MgdGhlIHBsdWdp
biBkb2VzIG5vdCBoYXZlIGl0cyBvd24gbmF0aXZlIHdpZGdldCwKICAgICAgICAgLy8gYnV0IGlz
IHVzaW5nIHRoZSBjb250YWluaW5nIHdpbmRvdyBhcyBpdHMgcmVmZXJlbmNlIGZvciBwb3NpdGlv
bmluZy9wYWludGluZy4KICAgICAgICAgUGxhdGZvcm1QbHVnaW5XaWRnZXQgbV93aW5kb3c7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3dpbi9QbHVnaW5WaWV3V2luLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdXaW4uY3BwCmluZGV4IGM4NTdh
NDAuLmQ0ZGM5YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdp
blZpZXdXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvd2luL1BsdWdpblZpZXdX
aW4uY3BwCkBAIC04Niw2ICs4NiwxMSBAQAogI2luY2x1ZGUgPGNhaXJvLXdpbjMyLmg+CiAjZW5k
aWYKIAorI2lmIFBMQVRGT1JNKEdUSykKKyNpbmNsdWRlIDxnZGsvZ2Rrd2luMzIuaD4KKyNpbmNs
dWRlIDxndGsvZ3RrLmg+CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKFFUKQogI2luY2x1ZGUgIlFX
ZWJQYWdlQ2xpZW50LmgiCiAjaWYgSEFWRShRVDUpCkBAIC0xMDIsNyArMTA3LDEzIEBACiAKIHN0
YXRpYyBpbmxpbmUgSFdORCB3aW5kb3dIYW5kbGVGb3JQYWdlQ2xpZW50KFBsYXRmb3JtUGFnZUNs
aWVudCBjbGllbnQpCiB7Ci0jaWYgUExBVEZPUk0oUVQpCisjaWYgUExBVEZPUk0oR1RLKQorICAg
IGlmICghY2xpZW50KQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAoR2RrV2luZG93KiB3aW5k
b3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3coY2xpZW50KSkKKyAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PEhXTkQ+KEdES19XSU5ET1dfSFdORCh3aW5kb3cpKTsKKyAgICByZXR1cm4gMDsKKyNl
bGlmIFBMQVRGT1JNKFFUKQogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm4gMDsKICNp
ZiBIQVZFKFFUNSkKQEAgLTMwMCw4ICszMTEsOCBAQCBzdGF0aWMgYm9vbCByZWdpc3RlclBsdWdp
blZpZXcoKQogCiAgICAgaGF2ZVJlZ2lzdGVyZWRXaW5kb3dDbGFzcyA9IHRydWU7CiAKLSNpZiBQ
TEFURk9STShRVCkKLSAgICBXZWJDb3JlOjpzZXRJbnN0YW5jZUhhbmRsZSgoSElOU1RBTkNFKShx
V2luQXBwSW5zdCgpKSk7CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShRVCkKKyAgICBX
ZWJDb3JlOjpzZXRJbnN0YW5jZUhhbmRsZSgoSElOU1RBTkNFKShHZXRNb2R1bGVIYW5kbGUoMCkp
KTsKICNlbmRpZgogCiAgICAgQVNTRVJUKFdlYkNvcmU6Omluc3RhbmNlSGFuZGxlKCkpOwpAQCAt
NjQyLDkgKzY1Myw5IEBAIHZvaWQgUGx1Z2luVmlldzo6cGFpbnQoR3JhcGhpY3NDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBJbnRSZWN0JiByZWN0KQogCiAgICAgLy8gT24gU2FmYXJpL1dpbmRvd3Mg
d2l0aG91dCB0cmFuc3BhcmVuY3kgbGF5ZXJzIHRoZSBHcmFwaGljc0NvbnRleHQgcmV0dXJucyB0
aGUgSERDCiAgICAgLy8gb2YgdGhlIHdpbmRvdyBhbmQgdGhlIHBsdWdpbiBleHBlY3RzIHRoYXQg
dGhlIHBhc3NlZCBpbiBEQyBoYXMgd2luZG93IGNvb3JkaW5hdGVzLgotICAgIC8vIEluIHRoZSBR
dCBwb3J0IHdlIGFsd2F5cyBkcmF3IGluIGFuIG9mZnNjcmVlbiBidWZmZXIgYW5kIHRoZXJlZm9y
ZSBuZWVkIHRvIHByZXNlcnZlCi0gICAgLy8gdGhlIHRyYW5zbGF0aW9uIHNldCBpbiBnZXRXaW5k
b3dzQ29udGV4dC4KLSNpZiAhUExBVEZPUk0oUVQpICYmICFPUyhXSU5DRSkKKyAgICAvLyBJbiB0
aGUgR1RLIGFuZCBRdCBwb3J0cyB3ZSBhbHdheXMgZHJhdyBpbiBhbiBvZmZzY3JlZW4gYnVmZmVy
IGFuZCB0aGVyZWZvcmUgbmVlZAorICAgIC8vIHRvIHByZXNlcnZlIHRoZSB0cmFuc2xhdGlvbiBz
ZXQgaW4gZ2V0V2luZG93c0NvbnRleHQuCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KFFUKSAmJiAhT1MoV0lOQ0UpCiAgICAgaWYgKCFjb250ZXh0LT5pc0luVHJhbnNwYXJlbmN5TGF5
ZXIoKSkgewogICAgICAgICBYRk9STSB0cmFuc2Zvcm07CiAgICAgICAgIEdldFdvcmxkVHJhbnNm
b3JtKHdpbmRvd3NDb250ZXh0LmhkYygpLCAmdHJhbnNmb3JtKTsKQEAgLTc1Miw3ICs3NjMsNyBA
QCB2b2lkIFBsdWdpblZpZXc6OmhhbmRsZU1vdXNlRXZlbnQoTW91c2VFdmVudCogZXZlbnQpCiAg
ICAgaWYgKGRpc3BhdGNoTlBFdmVudChucEV2ZW50KSkKICAgICAgICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7CiAKLSNpZiAhUExBVEZPUk0oUVQpICYmICFQTEFURk9STShXWCkgJiYgIU9T
KFdJTkNFKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JN
KFdYKSAmJiAhT1MoV0lOQ0UpCiAgICAgLy8gQ3VycmVudGx5LCBXaWRnZXQ6OnNldEN1cnNvciBp
cyBhbHdheXMgY2FsbGVkIGFmdGVyIHRoaXMgZnVuY3Rpb24gaW4gRXZlbnRIYW5kbGVyLmNwcAog
ICAgIC8vIGFuZCBzaW5jZSB3ZSBkb24ndCB3YW50IHRoYXQgd2Ugc2V0IGlnbm9yZU5leHRTZXRD
dXJzb3IgdG8gdHJ1ZSBoZXJlIHRvIHByZXZlbnQgdGhhdC4KICAgICBpZ25vcmVOZXh0U2V0Q3Vy
c29yID0gdHJ1ZTsKQEAgLTk5Nyw3ICsxMDA4LDcgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9y
bVN0YXJ0KCkKICAgICAgICAgSFdORCB3aW5kb3cgPSA6OkNyZWF0ZVdpbmRvd0V4KDAsIGtXZWJQ
bHVnaW5WaWV3ZG93Q2xhc3NOYW1lLCAwLCBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIHBhcmVudFdpbmRvd0hhbmRsZSwgMCwgV2ViQ29y
ZTo6aW5zdGFuY2VIYW5kbGUoKSwgMCk7CiAKLSNpZiBPUyhXSU5ET1dTKSAmJiAoUExBVEZPUk0o
UVQpIHx8IFBMQVRGT1JNKFdYKSkKKyNpZiBPUyhXSU5ET1dTKSAmJiAoUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShRVCkgfHwgUExBVEZPUk0oV1gpKQogICAgICAgICBtX3dpbmRvdyA9IHdpbmRv
dzsKICNlbHNlCiAgICAgICAgIHNldFBsYXRmb3JtV2lkZ2V0KHdpbmRvdyk7CkBAIC0xMDQwLDcg
KzEwNTEsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnBsYXRmb3JtRGVzdHJveSgpCiAKIFBhc3NSZWZQ
dHI8SW1hZ2U+IFBsdWdpblZpZXc6OnNuYXBzaG90KCkKIHsKLSNpZiAhUExBVEZPUk0oV1gpICYm
ICFPUyhXSU5DRSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1gpICYmICFPUyhX
SU5DRSkKICAgICBPd25QdHI8SERDPiBoZGMgPSBhZG9wdFB0cihDcmVhdGVDb21wYXRpYmxlREMo
MCkpOwogCiAgICAgaWYgKCFtX2lzV2luZG93ZWQpIHsKLS0gCjEuNy4xMC40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>