<?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>117090</bug_id>
          
          <creation_ts>2013-05-31 13:35:14 -0700</creation_ts>
          <short_desc>Need the ability to get the information for a plug-in with a particular process id that may be running on a page</short_desc>
          <delta_ts>2013-05-31 18:11:53 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jessie Berlin">jberlin</reporter>
          <assigned_to name="Jessie Berlin">jberlin</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jberlin</cc>
    
    <cc>rego+ews</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>895973</commentid>
    <comment_count>0</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 13:35:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/13332450&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895978</commentid>
    <comment_count>1</comment_count>
      <attachid>203465</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 13:56:57 -0700</bug_when>
    <thetext>Created attachment 203465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895982</commentid>
    <comment_count>2</comment_count>
      <attachid>203465</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-31 14:03:04 -0700</bug_when>
    <thetext>Comment on attachment 203465
Patch

Attachment 203465 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/763088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895983</commentid>
    <comment_count>3</comment_count>
      <attachid>203465</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-31 14:04:01 -0700</bug_when>
    <thetext>Comment on attachment 203465
Patch

Attachment 203465 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/746209</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895985</commentid>
    <comment_count>4</comment_count>
      <attachid>203466</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 14:16:37 -0700</bug_when>
    <thetext>Created attachment 203466
Patch (with build fixes)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>895988</commentid>
    <comment_count>5</comment_count>
      <attachid>203465</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-31 14:19:06 -0700</bug_when>
    <thetext>Comment on attachment 203465
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:496
&gt; +    if (!pluginProcessProxy) {
&gt; +        callback-&gt;invalidate();
&gt; +        return;
&gt; +    }

I think this can be an assertion.

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:354
&gt; +    void containsPlugInsWithProcessToken(uint64_t plugInProcessToken, uint64_t callbackID);

Maybe call this containsPluginViewsWithPluginProcessToken to match the other two member functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896004</commentid>
    <comment_count>6</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 14:53:16 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 203465 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=203465&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:496
&gt; &gt; +    if (!pluginProcessProxy) {
&gt; &gt; +        callback-&gt;invalidate();
&gt; &gt; +        return;
&gt; &gt; +    }
&gt; 
&gt; I think this can be an assertion.

Done (removed the call to invalidate and the early return and replaced it with an assertion).

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:354
&gt; &gt; +    void containsPlugInsWithProcessToken(uint64_t plugInProcessToken, uint64_t callbackID);
&gt; 
&gt; Maybe call this containsPluginViewsWithPluginProcessToken to match the other two member functions.

Done.

For those watching at home. Anders r+’d the second version of the patch with these same considerations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896011</commentid>
    <comment_count>7</comment_count>
      <attachid>203466</attachid>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 15:01:32 -0700</bug_when>
    <thetext>Comment on attachment 203466
Patch (with build fixes)

Committed in http://trac.webkit.org/changeset/151043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896012</commentid>
    <comment_count>8</comment_count>
      <attachid>203466</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-05-31 15:05:41 -0700</bug_when>
    <thetext>Comment on attachment 203466
Patch (with build fixes)

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

I know Anders already reviewed it, but I did too. r=me

&gt; Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.h:39
&gt; +typedef void (^WKPageGetInformationForPlugInWithProcessIDBlock)(WKDictionaryRef, WKErrorRef);
&gt; +WK_EXPORT void WKPageGetInformationForPlugInWithProcessID(WKPageRef, pid_t plugInProcessID, WKPageGetInformationForPlugInWithProcessIDBlock);

I think these names are too wordy. How about PlugInInformation instead of InformationForPlugIn and omitting WithProcessID. Do we need other GetPlugInInformation functions that don’t take a process ID?

&gt; Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h:67
&gt; +    PluginProcessProxy* plugInProcessWithProcessID(pid_t plugInProcessID) const;
&gt; +    PluginProcessProxy* plugInProcessWithToken(uint64_t plugInProcessToken) const;

The naming here seems sort of “Cocoa method style”. I would probably have called these findPlugInProcessByID and findPlugInProcessByToken.

&gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:475
&gt; +    m_plugInInformationCallbacks.set(callbackID, callback.get());

Should be callback.release() rather than callback.get().

&gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.h:194
&gt; +    virtual uint64_t plugInProcessToken() const OVERRIDE { return 0; }

Why protected instead of private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896018</commentid>
    <comment_count>9</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 15:46:38 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 203466 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=203466&amp;action=review
&gt; 
&gt; I know Anders already reviewed it, but I did too. r=me
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/C/mac/WKPagePrivateMac.h:39
&gt; &gt; +typedef void (^WKPageGetInformationForPlugInWithProcessIDBlock)(WKDictionaryRef, WKErrorRef);
&gt; &gt; +WK_EXPORT void WKPageGetInformationForPlugInWithProcessID(WKPageRef, pid_t plugInProcessID, WKPageGetInformationForPlugInWithProcessIDBlock);
&gt; 
&gt; I think these names are too wordy. How about PlugInInformation instead of InformationForPlugIn and omitting WithProcessID. Do we need other GetPlugInInformation functions that don’t take a process ID?

I modeled this a bit off of WKContextGetInfoForInstalledPlugIns in WKContextPrivateMac.h, which does not take a process ID.

However, I am fine with PlugInInformation given that the type of the argument is clearly pid_t.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Plugins/PluginProcessManager.h:67
&gt; &gt; +    PluginProcessProxy* plugInProcessWithProcessID(pid_t plugInProcessID) const;
&gt; &gt; +    PluginProcessProxy* plugInProcessWithToken(uint64_t plugInProcessToken) const;
&gt; 
&gt; The naming here seems sort of “Cocoa method style”. I would probably have called these findPlugInProcessByID and findPlugInProcessByToken.

Will do.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/mac/WebPageProxyMac.mm:475
&gt; &gt; +    m_plugInInformationCallbacks.set(callbackID, callback.get());
&gt; 
&gt; Should be callback.release() rather than callback.get().

Will fix.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/PDF/SimplePDFPlugin.h:194
&gt; &gt; +    virtual uint64_t plugInProcessToken() const OVERRIDE { return 0; }
&gt; 
&gt; Why protected instead of private?

I will make it private.

I already committed the patch. rs=you on these changes?

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>896037</commentid>
    <comment_count>10</comment_count>
    <who name="Jessie Berlin">jberlin</who>
    <bug_when>2013-05-31 18:11:53 -0700</bug_when>
    <thetext>Committed the follow-up patch with a rubber-stamp from Anders in http://trac.webkit.org/changeset/151054</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203465</attachid>
            <date>2013-05-31 13:56:57 -0700</date>
            <delta_ts>2013-05-31 14:19:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-Need-the-ability-to-get-the-information-for-a-plug-i.patch</filename>
            <type>text/plain</type>
            <size>21227</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">RnJvbSBiOWVkOTViYjViOGY1MGE5MWQyZWZlMzEzZGFiOWQwNDgwZTBhZTdhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNzaWUgQmVybGluIDxqYmVybGluQHdlYmtpdC5vcmc+CkRh
dGU6IEZyaSwgMzEgTWF5IDIwMTMgMTM6NTQ6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBOZWVk
IHRoZSBhYmlsaXR5IHRvIGdldCB0aGUgaW5mb3JtYXRpb24gZm9yIGEgcGx1Zy1pbiB3aXRoIGEK
IHBhcnRpY3VsYXIgcHJvY2VzcyBpZCB0aGF0IG1heSBiZSBydW5uaW5nIG9uIGEgcGFnZQogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA5MAoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5j
cHA6CihjYWxsR2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2tBbmREaXNw
b3NlKToKR2V0IHRoZSBibG9jayBmcm9tIHRoZSBjb250ZXh0LCBpbnZva2UgaXQgd2l0aCB0aGUg
cmVzdWx0LCBhbmQgZGlzcG9zZSBvZiBpdC4KKFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0lu
V2l0aFByb2Nlc3NJRCk6CkFzayB0aGUgV2ViUGFnZVByb3h5IGFuZCBwcm92aWRlIGl0IHdpdGgg
YSBkaWN0aW9uYXJ5IGNhbGxiYWNrIHRoYXQgdXNlcyB0aGUKYWJvdmUgZnVuY3Rpb24gdG8gaW52
b2tlIHRoZSBwYXNzZWQgaW4gYmxvY2suCiogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2
YXRlTWFjLmg6CkFkZCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNzSUQg
YW5kIGEgdHlwZWRlZiBmb3IgdGhlIGNhbGxiYWNrIGJsb2NrLgoKKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oOgpBZGQgd2F5cyB0byBnZXQgdGhlIFBsdWdpblByb2Nl
c3NQcm94eSBhc3NvY2lhdGVkIHdpdGggYSBwcm9jZXNzIGlkIG9yIHByb2Nlc3MgdG9rZW4uCiog
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tOgooV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6cGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQpOgpSZXR1
cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQgaW4gcHJvY2Vz
cyBJRC4KKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdJblByb2Nlc3NXaXRoVG9r
ZW4pOgpSZXR1cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQg
aW4gcHJvY2VzcyB0b2tlbi4KCiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgpJbnZhbGlkYXRlIGFueSBvdXRzdGFuZGluZyByZXF1ZXN0
cyBmb3IgcGx1Zy1pbiBpbmZvcm1hdGlvbi4KKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cktl
ZXAgdHJhY2sgb2YgdGhlIGNhbGxiYWNrcyBmb3IgdGhlIHJlcXVlc3RzIGZvciBwbHVnLWluIGlu
Zm9ybWF0aW9uLgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0SW5m
b3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEKToKSWYgdGhlcmUgYXJlIG5vIGtub3duIHBs
dWctaW5zIHdpdGggdGhlIHByb3ZpZGVkIHByb2Nlc3MgSUQsIGludm9rZSB0aGUgY2FsbGJhY2sg
d2l0aCBhIG51bGwKZGljdGlvbmFyeSBvZiBwbHVnLWluIGluZm9ybWF0aW9uLgpPdGhlcndpc2Us
IGtlZXAgdHJhY2sgb2YgdGhlIGNhbGxiYWNrIGFuZCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgd2Vi
IHByb2Nlc3MgYXNraW5nIGZvciB0aGUKaW5mb3JtYXRpb24uCihXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y29udGFpbnNQbHVnSW5DYWxsYmFjayk6CklmIHRoZSBwYWdlIGRpZCBub3QgY29udGFpbiB0
aGUgcGx1Zy1pbiwgaW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIGEgbnVsbCBkaWN0aW9uYXJ5IG9m
CnBsdWctaW4gaW5mb3JtYXRpb24uCkludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBhIGRpY3Rpb25h
cnkgY29udGFpbmluZyB0aGUgUGx1Z0luTW9kdWxlSW5mby4KCiogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6ClJldHVybiAwIGZvciB0aGUgcGx1Z0luUHJvY2Vz
c1Rva2VuLgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmg6CkRpdHRv
LgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKQWRkIGEgcHVyZSB2aXJ0dWFsIG1ldGhv
ZCBmb3IgcGx1Z0luUHJvY2Vzc1Rva2VuIHNvIGl0IGNhbiBiZSBhY2Nlc3NlZCBmcm9tIGZyb20g
dGhlIFBsdWdpbgpvbiB0aGUgUGx1Z2luVmlldy4KKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaDoKUmV0dXJuIHRoZSBhY3R1YWwgcGx1Zy1pbiBwcm9jZXNzIHRva2VuLgoKKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgooV2ViS2l0OjpQbHVnaW5WaWV3OjpwbHVnSW4p
OgpNYWtlIGl0IHBvc3NpYmxlIHRvIGdldCBhdCB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRva2VuIHRo
cm91Z2ggdGhlIFBsdWdpbi4KCiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgooV2Vi
S2l0OjpXZWJQYWdlOjpjb250YWluc1BsdWdJbnNXaXRoUHJvY2Vzc1Rva2VuKToKSWYgdGhlcmUg
aXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHBsdWctaW4gd2l0aCB0aGF0IHRva2VuLCBzZW5kIGEgY29u
ZmlybWF0aW9uIHRvIHRoZSB1aQpwcm9jZXNzLgoqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lmg6CiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46Ci0tLQogU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgfCA2MyArKysrKysr
KysrKysrKysrKysrKysrCiAuLi4vVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFj
LmNwcCAgICAgICB8IDEyICsrKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dL
UGFnZVByaXZhdGVNYWMuaCB8ICAzICsrCiAuLi4vVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaCAgICAgICB8ICAyICsKIC4uLi9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNz
TWFuYWdlck1hYy5tbSAgICAgICAgIHwgMTggKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oICAgICAgICAgICAgfCAgNyArKysKIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gIHwgIDEgKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0gICAgfCA0NiArKysrKysrKysrKysr
KysrCiAuLi4vV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmggICB8
ICAyICsKIC4uLi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1NpbXBsZVBERlBsdWdpbi5oICAgICAg
IHwgIDIgKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oICAgICAg
ICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHku
aCAgICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3
LmggICAgIHwgIDEgKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwICAgICAgfCAxMyArKysrKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCAgICAgICAgfCAgMSArCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbiB8ICAyICsKIDE3IGZpbGVzIGNoYW5nZWQsIDE4MCBpbnNlcnRpb25z
KCspCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDdiOGRmNjkuLjNkY2RlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSw2NiBAQAorMjAxMy0wNS0zMSAgSmVzc2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgor
CisgICAgICAgIE5lZWQgdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBpbmZvcm1hdGlvbiBmb3IgYSBw
bHVnLWluIHdpdGggYSBwYXJ0aWN1bGFyIHByb2Nlc3MgaWQgdGhhdCBtYXkKKyAgICAgICAgYmUg
cnVubmluZyBvbiBhIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNzA5MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmNwcDoKKyAg
ICAgICAgKGNhbGxHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNzSURCbG9ja0FuZERp
c3Bvc2UpOgorICAgICAgICBHZXQgdGhlIGJsb2NrIGZyb20gdGhlIGNvbnRleHQsIGludm9rZSBp
dCB3aXRoIHRoZSByZXN1bHQsIGFuZCBkaXNwb3NlIG9mIGl0LgorICAgICAgICAoV0tQYWdlR2V0
SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEKToKKyAgICAgICAgQXNrIHRoZSBXZWJQ
YWdlUHJveHkgYW5kIHByb3ZpZGUgaXQgd2l0aCBhIGRpY3Rpb25hcnkgY2FsbGJhY2sgdGhhdCB1
c2VzIHRoZQorICAgICAgICBhYm92ZSBmdW5jdGlvbiB0byBpbnZva2UgdGhlIHBhc3NlZCBpbiBi
bG9jay4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaDoK
KyAgICAgICAgQWRkIFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJRCBh
bmQgYSB0eXBlZGVmIGZvciB0aGUgY2FsbGJhY2sgYmxvY2suCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oOgorICAgICAgICBBZGQgd2F5cyB0byBn
ZXQgdGhlIFBsdWdpblByb2Nlc3NQcm94eSBhc3NvY2lhdGVkIHdpdGggYSBwcm9jZXNzIGlkIG9y
IHByb2Nlc3MgdG9rZW4uCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblBy
b2Nlc3NNYW5hZ2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFuYWdl
cjo6cGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQpOgorICAgICAgICBSZXR1cm4gdGhlIGZpcnN0
IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQgaW4gcHJvY2VzcyBJRC4KKyAgICAg
ICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdJblByb2Nlc3NXaXRoVG9rZW4p
OgorICAgICAgICBSZXR1cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBw
YXNzZWQgaW4gcHJvY2VzcyB0b2tlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNsb3NlKToKKyAgICAgICAg
SW52YWxpZGF0ZSBhbnkgb3V0c3RhbmRpbmcgcmVxdWVzdHMgZm9yIHBsdWctaW4gaW5mb3JtYXRp
b24uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICBLZWVwIHRy
YWNrIG9mIHRoZSBjYWxsYmFja3MgZm9yIHRoZSByZXF1ZXN0cyBmb3IgcGx1Zy1pbiBpbmZvcm1h
dGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlUHJveHk6OmdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJRCk6Cisg
ICAgICAgIElmIHRoZXJlIGFyZSBubyBrbm93biBwbHVnLWlucyB3aXRoIHRoZSBwcm92aWRlZCBw
cm9jZXNzIElELCBpbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYSBudWxsCisgICAgICAgIGRpY3Rp
b25hcnkgb2YgcGx1Zy1pbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgT3RoZXJ3aXNlLCBrZWVwIHRy
YWNrIG9mIHRoZSBjYWxsYmFjayBhbmQgc2VuZCBhIG1lc3NhZ2UgdG8gdGhlIHdlYiBwcm9jZXNz
IGFza2luZyBmb3IgdGhlCisgICAgICAgIGluZm9ybWF0aW9uLgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmNvbnRhaW5zUGx1Z0luQ2FsbGJhY2spOgorICAgICAgICBJZiB0aGUgcGFn
ZSBkaWQgbm90IGNvbnRhaW4gdGhlIHBsdWctaW4sIGludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBh
IG51bGwgZGljdGlvbmFyeSBvZgorICAgICAgICBwbHVnLWluIGluZm9ybWF0aW9uLgorICAgICAg
ICBJbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYSBkaWN0aW9uYXJ5IGNvbnRhaW5pbmcgdGhlIFBs
dWdJbk1vZHVsZUluZm8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgUmV0dXJuIDAgZm9yIHRoZSBwbHVnSW5Qcm9jZXNz
VG9rZW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4u
aDoKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5o
OgorICAgICAgICBBZGQgYSBwdXJlIHZpcnR1YWwgbWV0aG9kIGZvciBwbHVnSW5Qcm9jZXNzVG9r
ZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGZyb20gZnJvbSB0aGUgUGx1Z2luCisgICAgICAgIG9u
IHRoZSBQbHVnaW5WaWV3LgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oOgorICAgICAgICBSZXR1cm4gdGhlIGFjdHVhbCBwbHVnLWluIHByb2Nlc3MgdG9rZW4uCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgorICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5WaWV3OjpwbHVnSW4pOgorICAgICAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGdl
dCBhdCB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRva2VuIHRocm91Z2ggdGhlIFBsdWdpbi4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6Y29udGFpbnNQbHVnSW5zV2l0aFByb2Nlc3NUb2tlbik6CisgICAgICAgIElmIHRo
ZXJlIGlzIGFuIGluc3RhbmNlIG9mIHRoZSBwbHVnLWluIHdpdGggdGhhdCB0b2tlbiwgc2VuZCBh
IGNvbmZpcm1hdGlvbiB0byB0aGUgdWkKKyAgICAgICAgcHJvY2Vzcy4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDEzLTA1LTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEl0J3MgZWFzeSB0byBoaXQgQVNTRVJUX05PVF9S
RUFDSEVEIGluIFdLRE9NTm9kZUNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmNwcAppbmRleCA1ZTQ1OTUwLi4xOTg2
ZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFn
ZVByaXZhdGVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMv
V0tQYWdlUHJpdmF0ZU1hYy5jcHAKQEAgLTQ2LDMgKzQ2LDE1IEBAIGJvb2wgV0tQYWdlSXNVUkxL
bm93bkhTVFNIb3N0KFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlZiB1cmwpCiAKICAgICByZXR1cm4g
d2ViUGFnZVByb3h5LT5wcm9jZXNzKCktPmNvbnRleHQoKS0+aXNVUkxLbm93bkhTVFNIb3N0KHRv
SW1wbCh1cmwpLT5zdHJpbmcoKSwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7CiB9CisKK3N0YXRp
YyB2b2lkIGNhbGxHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNzSURCbG9ja0FuZERp
c3Bvc2UoV0tEaWN0aW9uYXJ5UmVmIHJlc3VsdFZhbHVlLCBXS0Vycm9yUmVmIGVycm9yLCB2b2lk
KiBjb250ZXh0KQoreworICAgIFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nl
c3NJREJsb2NrIGJsb2NrID0gKFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nl
c3NJREJsb2NrKWNvbnRleHQ7CisgICAgYmxvY2socmVzdWx0VmFsdWUsIGVycm9yKTsKKyAgICBC
bG9ja19yZWxlYXNlKGJsb2NrKTsKK30KKwordm9pZCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBs
dWdJbldpdGhQcm9jZXNzSUQoV0tQYWdlUmVmIHBhZ2VSZWYsIHBpZF90IHBsdWdJblByb2Nlc3NJ
RCwgV0tQYWdlR2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2sgYmxvY2sp
Cit7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5nZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9j
ZXNzSUQocGx1Z0luUHJvY2Vzc0lELCBEaWN0aW9uYXJ5Q2FsbGJhY2s6OmNyZWF0ZShCbG9ja19j
b3B5KGJsb2NrKSwgY2FsbEdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJREJsb2Nr
QW5kRGlzcG9zZSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAppbmRleCA4MzU3YmE1Li43NGQ4NDg4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVN
YWMuaApAQCAtMzUsNiArMzUsOSBAQCBleHRlcm4gIkMiIHsKIFdLX0VYUE9SVCBwaWRfdCBXS1Bh
Z2VHZXRQcm9jZXNzSWRlbnRpZmllcihXS1BhZ2VSZWYgcGFnZSk7CiBXS19FWFBPUlQgYm9vbCBX
S1BhZ2VJc1VSTEtub3duSFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIHVybCk7CiAK
K3R5cGVkZWYgdm9pZCAoXldLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJ
REJsb2NrKShXS0RpY3Rpb25hcnlSZWYsIFdLRXJyb3JSZWYpOworV0tfRVhQT1JUIHZvaWQgV0tQ
YWdlR2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEKFdLUGFnZVJlZiwgcGlkX3Qg
cGx1Z0luUHJvY2Vzc0lELCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNz
SURCbG9jayk7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaApp
bmRleCAzMDdjMzk4Li40MmJmZWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKQEAgLTYzLDYgKzYzLDggQEAg
cHVibGljOgogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZChib29sKTsKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdJblByb2Nlc3NX
aXRoUHJvY2Vzc0lEKHBpZF90IHBsdWdJblByb2Nlc3NJRCkgY29uc3Q7CisgICAgUGx1Z2luUHJv
Y2Vzc1Byb3h5KiBwbHVnSW5Qcm9jZXNzV2l0aFRva2VuKHVpbnQ2NF90IHBsdWdJblByb2Nlc3NU
b2tlbikgY29uc3Q7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFuYWdlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFuYWdlck1h
Yy5tbQppbmRleCA3NzFjZjc4Li5mYTU4MWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2VyTWFj
Lm1tCkBAIC0zOSw2ICszOSwyNCBAQCB2b2lkIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9uRQogICAgICAgICBt
X3BsdWdpblByb2Nlc3Nlc1tpXS0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKTsKIH0KIAorUGx1Z2luUHJvY2Vzc1Byb3h5KiBQbHVnaW5Qcm9j
ZXNzTWFuYWdlcjo6cGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQocGlkX3QgcGx1Z0luUHJvY2Vz
c0lEKSBjb25zdAoreworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNz
ZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5wcm9j
ZXNzSWRlbnRpZmllcigpID09IHBsdWdJblByb2Nlc3NJRCkKKyAgICAgICAgICAgIHJldHVybiBt
X3BsdWdpblByb2Nlc3Nlc1tpXS5nZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKK1Bs
dWdpblByb2Nlc3NQcm94eSogUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdJblByb2Nlc3NXaXRo
VG9rZW4odWludDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuKSBjb25zdAoreworICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNzZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
aWYgKG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSA9PSBwbHVnSW5Q
cm9jZXNzVG9rZW4pCisgICAgICAgICAgICByZXR1cm4gbV9wbHVnaW5Qcm9jZXNzZXNbaV0uZ2V0
KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAog
I2VuZGlmIC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTk0Y2ZkYS4uMTg5MzE5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTYxNSw2ICs2MTUsOSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Y2xvc2UoKQogI2lmIFBMQVRGT1JNKEdUSykKICAgICBpbnZhbGlkYXRlQ2Fs
bGJhY2tNYXAobV9wcmludEZpbmlzaGVkQ2FsbGJhY2tzKTsKICNlbmRpZgorI2lmIFBMQVRGT1JN
KE1BQykKKyAgICBpbnZhbGlkYXRlQ2FsbGJhY2tNYXAobV9wbHVnSW5JbmZvcm1hdGlvbkNhbGxi
YWNrcyk7CisjZW5kaWYKIAogICAgIFZlY3RvcjxXZWJFZGl0Q29tbWFuZFByb3h5Kj4gZWRpdENv
bW1hbmRWZWN0b3I7CiAgICAgY29weVRvVmVjdG9yKG1fZWRpdENvbW1hbmRTZXQsIGVkaXRDb21t
YW5kVmVjdG9yKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA1
MzJlYzNmLi4yY2U3MDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CkBAIC0xNjYsNiArMTY2LDcgQEAgY2xhc3MgV2ViR2VzdHVyZUV2ZW50OwogY2xhc3MgV2ViVmli
cmF0aW9uUHJveHk7CiAjZW5kaWYKIAordHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8V0tEaWN0aW9u
YXJ5UmVmPiBEaWN0aW9uYXJ5Q2FsbGJhY2s7CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS1N0
cmluZ1JlZiwgU3RyaW5nSW1wbCo+IFN0cmluZ0NhbGxiYWNrOwogdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8V0tTZXJpYWxpemVkU2NyaXB0VmFsdWVSZWYsIFdlYlNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSo+IFNjcmlwdFZhbHVlQ2FsbGJhY2s7CiAKQEAgLTUzNiw2ICs1MzcsOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKTsKIAogICAgIENvbG9yU3BhY2VEYXRhIGNvbG9y
U3BhY2UoKTsKKworICAgIHZvaWQgZ2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lE
KHBpZF90IHBsdWdJblByb2Nlc3NJRCwgUGFzc1JlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+KTsK
KyAgICB2b2lkIGNvbnRhaW5zUGx1Z0luQ2FsbGJhY2soYm9vbCBjb250YWluc1BsdWdJbiwgdWlu
dDY0X3QgcGx1Z0luVG9rZW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogI2VuZGlmCiAKICAgICB2
b2lkIHBhZ2VTY2FsZUZhY3RvckRpZENoYW5nZShkb3VibGUpOwpAQCAtMTA5OSw2ICsxMTAzLDkg
QEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShHVEspCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVm
UHRyPFByaW50RmluaXNoZWRDYWxsYmFjaz4+IG1fcHJpbnRGaW5pc2hlZENhbGxiYWNrczsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8RGlj
dGlvbmFyeUNhbGxiYWNrPj4gbV9wbHVnSW5JbmZvcm1hdGlvbkNhbGxiYWNrczsKKyNlbmRpZgog
CiAgICAgSGFzaFNldDxXZWJFZGl0Q29tbWFuZFByb3h5Kj4gbV9lZGl0Q29tbWFuZFNldDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
aW5kZXggODYyMTNmMS4uOGMxZGU5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNjQsNiArMjY0LDcgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFBsdWctaW4gY29tcGxleCB0ZXh0IGlucHV0IHN1cHBv
cnQgbWVzc2FnZXMKICAgICBQbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHVpbnQ2NF90
IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBib29sIHBsdWdpbkhhc0ZvY3VzQW5k
V2luZG93SGFzRm9jdXMpCiAgICAgU2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2
NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCB1aW50NjRfdCBjb21wbGV4VGV4
dElucHV0U3RhdGUpCisgICAgQ29udGFpbnNQbHVnSW5DYWxsYmFjayhib29sIGNvbnRhaW5zUGx1
Z0luLCB1aW50NjRfdCBwbHVnSW5Qcm9jZXNzVG9rZW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAK
ICAgICAjIFNwZWVjaCBtZXNzYWdlcwogICAgIEdldElzU3BlYWtpbmcoKSAtPiAoYm9vbCBpc1Nw
ZWFraW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdl
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1h
Yy5tbQppbmRleCBhNzMzOWM2Li5kYTczMmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQpAQCAtMzUsNiArMzUsOSBAQAogI2ltcG9ydCAi
UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCiAj
aW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgorI2ltcG9ydCAiUGx1Z2luSW5mb3JtYXRpb24uaCIK
KyNpbXBvcnQgIlBsdWdpblByb2Nlc3NNYW5hZ2VyLmgiCisjaW1wb3J0ICJQbHVnaW5Qcm9jZXNz
UHJveHkuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dENoZWNr
ZXIuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgpAQCAtNDU2LDYgKzQ1OSw0OSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90
IHBsdWdpbkNvbXBsZXhUZXh0SW5wdQogICAgIG1fcGFnZUNsaWVudC0+c2V0UGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBzdGF0aWNf
Y2FzdDxQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU+KHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSkpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5X
aXRoUHJvY2Vzc0lEKHBpZF90IHBsdWdJblByb2Nlc3NJRCwgUGFzc1JlZlB0cjxEaWN0aW9uYXJ5
Q2FsbGJhY2s+IHBycENhbGxiYWNrKQoreworICAgIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+
IGNhbGxiYWNrID0gcHJwQ2FsbGJhY2s7CisgICAgaWYgKCFpc1ZhbGlkKCkpIHsKKyAgICAgICAg
Y2FsbGJhY2stPmludmFsaWRhdGUoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFBs
dWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2Vzc1Byb3h5ID0gUGx1Z2luUHJvY2Vzc01hbmFn
ZXI6OnNoYXJlZCgpLnBsdWdJblByb2Nlc3NXaXRoUHJvY2Vzc0lEKHBsdWdJblByb2Nlc3NJRCk7
CisgICAgaWYgKCFwbHVnaW5Qcm9jZXNzUHJveHkpCisgICAgICAgIGNhbGxiYWNrLT5wZXJmb3Jt
Q2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoMCk7CisKKyAgICB1aW50NjRfdCBjYWxsYmFja0lEID0g
Y2FsbGJhY2stPmNhbGxiYWNrSUQoKTsKKyAgICBtX3BsdWdJbkluZm9ybWF0aW9uQ2FsbGJhY2tz
LnNldChjYWxsYmFja0lELCBjYWxsYmFjay5nZXQoKSk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlOjpDb250YWluc1BsdWdJbnNXaXRoUHJvY2Vzc1Rva2VuKHBsdWdpblBy
b2Nlc3NQcm94eS0+cGx1Z2luUHJvY2Vzc1Rva2VuKCksIGNhbGxiYWNrSUQpLCBtX3BhZ2VJRCk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpjb250YWluc1BsdWdJbkNhbGxiYWNrKGJvb2wgY29u
dGFpbnNQbHVnSW4sIHVpbnQ2NF90IHBsdWdJblRva2VuLCB1aW50NjRfdCBjYWxsYmFja0lEKQor
eworICAgIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+IGNhbGxiYWNrID0gbV9wbHVnSW5JbmZv
cm1hdGlvbkNhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpOworICAgIGlmICghY2FsbGJhY2spIHsK
KyAgICAgICAgLy8gRklYTUU6IExvZyBlcnJvciBvciBhc3NlcnQuCisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBpZiAoIWNvbnRhaW5zUGx1Z0luKSB7CisgICAgICAgIGNhbGxiYWNrLT5w
ZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoMCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nlc3NQcm94eSA9IFBsdWdpblBy
b2Nlc3NNYW5hZ2VyOjpzaGFyZWQoKS5wbHVnSW5Qcm9jZXNzV2l0aFRva2VuKHBsdWdJblRva2Vu
KTsKKyAgICBpZiAoIXBsdWdpblByb2Nlc3NQcm94eSkgeworICAgICAgICBjYWxsYmFjay0+aW52
YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgSW1tdXRhYmxlRGljdGlv
bmFyeTo6TWFwVHlwZSBtYXA7CisgICAgZ2V0UGx1Z2luTW9kdWxlSW5mb3JtYXRpb24ocGx1Z2lu
UHJvY2Vzc1Byb3h5LT5wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcygpLm1vZHVsZUluZm8sIG1hcCk7
CisgICAgUmVmUHRyPEltbXV0YWJsZURpY3Rpb25hcnk+IHBsdWdJbkluZm9ybWF0aW9uID0gSW1t
dXRhYmxlRGljdGlvbmFyeTo6YWRvcHQobWFwKTsKKworICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2Fs
bGJhY2tXaXRoUmV0dXJuVmFsdWUocGx1Z0luSW5mb3JtYXRpb24uZ2V0KCkpOworfQorCiB2b2lk
IFdlYlBhZ2VQcm94eTo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5n
JiBzZWxlY3RvciwgYm9vbCYgaGFuZGxlZCkKIHsKICAgICBNRVNTQUdFX0NIRUNLKGlzVmFsaWRL
ZXlwcmVzc0NvbW1hbmROYW1lKHNlbGVjdG9yKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCmluZGV4
IDY1MWRjNGQuLmMzNWVlMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbi5oCkBAIC0yNjAsNiArMjYw
LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIGdldFNlbGVjdGlvblN0cmluZygp
IGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFN0cmluZygpOyB9CiAKKyAgICB2aXJ0dWFsIHVpbnQ2
NF90IHBsdWdJblByb2Nlc3NUb2tlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIDA7IH0KKwog
ICAgIHZvaWQgdXBkYXRlTlBOUHJpdmF0ZU1vZGUoKTsKIAogI2lmIFBMVUdJTl9BUkNISVRFQ1RV
UkUoV0lOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9TaW1wbGVQREZQbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvU2ltcGxlUERGUGx1Z2luLmgKaW5kZXggMWQ5ZTk3Yy4uMWExZWEwOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1NpbXBsZVBERlBsdWdp
bi5oCkBAIC0xOTEsNiArMTkxLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdmlydHVhbCBTdHJpbmcg
Z2V0U2VsZWN0aW9uU3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU3RyaW5nKCk7IH0K
IAorICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gMDsgfQorCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3Njcm9sbE9mZnNldDsK
IAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaApp
bmRleCBmOGRlNWE3Li5hMTM0M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5oCkBAIC0yNzcsNiArMjc3LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBT
dHJpbmcgZ2V0U2VsZWN0aW9uU3RyaW5nKCkgY29uc3QgPSAwOwogCisgICAgdmlydHVhbCB1aW50
NjRfdCBwbHVnSW5Qcm9jZXNzVG9rZW4oKSBjb25zdCA9IDA7CisKIHByb3RlY3RlZDoKICAgICBQ
bHVnaW4oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaAppbmRleCAxYWI2YjA3Li5mMmMwYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaApAQCAtMTM5LDYgKzEzOSw4IEBAIHByaXZh
dGU6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25zdCBPVkVS
UklERSB7IHJldHVybiBTdHJpbmcoKTsgfQogCisgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnSW5Q
cm9jZXNzVG9rZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX3BsdWdpblByb2Nlc3NUb2tl
bjsgfQorCiAgICAgZmxvYXQgY29udGVudHNTY2FsZUZhY3RvcigpOwogICAgIGJvb2wgbmVlZHNC
YWNraW5nU3RvcmUoKSBjb25zdDsKICAgICBib29sIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggZDBh
MmE4NS4uZjhjNDNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oCkBAIC04MCw2ICs4MCw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgV2Vi
Q29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBt
X3BsdWdpbkVsZW1lbnQuZ2V0KCk7IH0KKyAgICBQbHVnaW4qIHBsdWdJbigpIGNvbnN0IHsgcmV0
dXJuIG1fcGx1Z2luLmdldCgpOyB9CiAgICAgY29uc3QgUGx1Z2luOjpQYXJhbWV0ZXJzJiBpbml0
aWFsUGFyYW1ldGVycygpIGNvbnN0IHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQogCiAgICAgLy8g
RklYTUU6IFJlbW92ZSB0aGlzOyBub2JvZHkgc2hvdWxkIGhhdmUgdG8ga25vdyBhYm91dCB0aGUg
cGx1Zy1pbiB2aWV3J3MgcmVuZGVyZXIgZXhjZXB0IHRoZSBwbHVnLWluIHZpZXcgaXRzZWxmLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGY3
MjljZDEuLjAzZWJkZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKQEAgLTQyMTcsNCArNDIxNywxNyBAQCB2b2lkIFdlYlBhZ2U6OnN0b3BFeHRl
bmRpbmdJbmNyZW1lbnRhbFJlbmRlcmluZ1N1cHByZXNzaW9uKHVuc2lnbmVkIHRva2VuKQogICAg
IG1fcGFnZS0+bWFpbkZyYW1lKCktPnZpZXcoKS0+c2V0VmlzdWFsVXBkYXRlc0FsbG93ZWRCeUNs
aWVudCghc2hvdWxkRXh0ZW5kSW5jcmVtZW50YWxSZW5kZXJpbmdTdXBwcmVzc2lvbigpKTsKIH0K
IAordm9pZCBXZWJQYWdlOjpjb250YWluc1BsdWdJbnNXaXRoUHJvY2Vzc1Rva2VuKHVpbnQ2NF90
IHBsdWdJblByb2Nlc3NUb2tlbiwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBib29sIGNv
bnRhaW5zUGx1Z0luID0gZmFsc2U7CisgICAgZm9yIChIYXNoU2V0PFBsdWdpblZpZXcqPjo6Y29u
c3RfaXRlcmF0b3IgaXQgPSBtX3BsdWdpblZpZXdzLmJlZ2luKCksIGVuZCA9IG1fcGx1Z2luVmll
d3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoKCppdCktPnBsdWdJbigp
LT5wbHVnSW5Qcm9jZXNzVG9rZW4oKSA9PSBwbHVnSW5Qcm9jZXNzVG9rZW4pIHsKKyAgICAgICAg
ICAgIGNvbnRhaW5zUGx1Z0luID0gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CisgICAgfQorCisgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDb250YWluc1BsdWdJ
bkNhbGxiYWNrKGNvbnRhaW5zUGx1Z0luLCBwbHVnSW5Qcm9jZXNzVG9rZW4sIGNhbGxiYWNrSUQp
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxNjk5Y2MzLi4yMmYwYTg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM1MSw2ICszNTEsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGFkZFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgIHZvaWQg
cmVtb3ZlUGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CisgICAgdm9pZCBjb250YWluc1BsdWdJbnNX
aXRoUHJvY2Vzc1Rva2VuKHVpbnQ2NF90IHBsdWdJblByb2Nlc3NUb2tlbiwgdWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXll
ckhvc3RpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckhvc3RpbmdNb2RlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2Vz
LmluCmluZGV4IGFkZmI2MTAuLmZkMDEzMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0yNjMsNiArMjYzLDgg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgIyBDb21wbGV4IHRl
eHQgaW5wdXQgc3VwcG9ydCBmb3IgcGx1Zy1pbnMuCiAgICAgU2VuZENvbXBsZXhUZXh0SW5wdXRU
b1BsdWdpbih1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgU3RyaW5n
IHRleHRJbnB1dCkKIAorICAgIENvbnRhaW5zUGx1Z0luc1dpdGhQcm9jZXNzVG9rZW4odWludDY0
X3QgcGx1Z0luUHJvY2Vzc1Rva2VuLCB1aW50NjRfdCBjYWxsYmFja0lEKQorCiAgICAgU2V0V2lu
ZG93SXNWaXNpYmxlKGJvb2wgd2luZG93SXNWaXNpYmxlKQogICAgIFdpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0
ZXMsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2NyZWVuQ29vcmRp
bmF0ZXMsIFdlYkNvcmU6OkZsb2F0UmVjdCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBX
ZWJDb3JlOjpGbG9hdFBvaW50IGFjY2Vzc2liaWxpdHlWaWV3Q29vcmRpbmF0ZXMpCiAgICAgVmll
d0V4cG9zZWRSZWN0Q2hhbmdlZChXZWJDb3JlOjpGbG9hdFJlY3QgZXhwb3NlZFJlY3QpCi0tIAox
LjguMi4xIChBcHBsZSBHaXQtNDUpCgo=
</data>
<flag name="review"
          id="224925"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="224922"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>203466</attachid>
            <date>2013-05-31 14:16:37 -0700</date>
            <delta_ts>2013-05-31 15:05:41 -0700</delta_ts>
            <desc>Patch (with build fixes)</desc>
            <filename>0001-Need-the-ability-to-get-the-information-for-a-plug-i.patch</filename>
            <type>text/plain</type>
            <size>21241</size>
            <attacher name="Jessie Berlin">jberlin</attacher>
            
              <data encoding="base64">RnJvbSA3MWQzMzc4NTFkNjc1YTc5ZTAyZjRmMjg3NDZkOTY0ZDRjNGZiZDE2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKZXNzaWUgQmVybGluIDxqYmVybGluQHdlYmtpdC5vcmc+CkRh
dGU6IEZyaSwgMzEgTWF5IDIwMTMgMTM6NTQ6MDIgLTA3MDAKU3ViamVjdDogW1BBVENIXSBOZWVk
IHRoZSBhYmlsaXR5IHRvIGdldCB0aGUgaW5mb3JtYXRpb24gZm9yIGEgcGx1Zy1pbiB3aXRoIGEK
IHBhcnRpY3VsYXIgcHJvY2VzcyBpZCB0aGF0IG1heSBiZSBydW5uaW5nIG9uIGEgcGFnZQogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA5MAoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoqIFVJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5j
cHA6CihjYWxsR2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2tBbmREaXNw
b3NlKToKR2V0IHRoZSBibG9jayBmcm9tIHRoZSBjb250ZXh0LCBpbnZva2UgaXQgd2l0aCB0aGUg
cmVzdWx0LCBhbmQgZGlzcG9zZSBvZiBpdC4KKFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1Z0lu
V2l0aFByb2Nlc3NJRCk6CkFzayB0aGUgV2ViUGFnZVByb3h5IGFuZCBwcm92aWRlIGl0IHdpdGgg
YSBkaWN0aW9uYXJ5IGNhbGxiYWNrIHRoYXQgdXNlcyB0aGUKYWJvdmUgZnVuY3Rpb24gdG8gaW52
b2tlIHRoZSBwYXNzZWQgaW4gYmxvY2suCiogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2
YXRlTWFjLmg6CkFkZCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNzSUQg
YW5kIGEgdHlwZWRlZiBmb3IgdGhlIGNhbGxiYWNrIGJsb2NrLgoKKiBVSVByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oOgpBZGQgd2F5cyB0byBnZXQgdGhlIFBsdWdpblByb2Nl
c3NQcm94eSBhc3NvY2lhdGVkIHdpdGggYSBwcm9jZXNzIGlkIG9yIHByb2Nlc3MgdG9rZW4uCiog
VUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tOgooV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6cGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQpOgpSZXR1
cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQgaW4gcHJvY2Vz
cyBJRC4KKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdJblByb2Nlc3NXaXRoVG9r
ZW4pOgpSZXR1cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQg
aW4gcHJvY2VzcyB0b2tlbi4KCiogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CihXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6Y2xvc2UpOgpJbnZhbGlkYXRlIGFueSBvdXRzdGFuZGluZyByZXF1ZXN0
cyBmb3IgcGx1Zy1pbiBpbmZvcm1hdGlvbi4KKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cktl
ZXAgdHJhY2sgb2YgdGhlIGNhbGxiYWNrcyBmb3IgdGhlIHJlcXVlc3RzIGZvciBwbHVnLWluIGlu
Zm9ybWF0aW9uLgoqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CiogVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CihXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0SW5m
b3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEKToKSWYgdGhlcmUgYXJlIG5vIGtub3duIHBs
dWctaW5zIHdpdGggdGhlIHByb3ZpZGVkIHByb2Nlc3MgSUQsIGludm9rZSB0aGUgY2FsbGJhY2sg
d2l0aCBhIG51bGwKZGljdGlvbmFyeSBvZiBwbHVnLWluIGluZm9ybWF0aW9uLgpPdGhlcndpc2Us
IGtlZXAgdHJhY2sgb2YgdGhlIGNhbGxiYWNrIGFuZCBzZW5kIGEgbWVzc2FnZSB0byB0aGUgd2Vi
IHByb2Nlc3MgYXNraW5nIGZvciB0aGUKaW5mb3JtYXRpb24uCihXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6Y29udGFpbnNQbHVnSW5DYWxsYmFjayk6CklmIHRoZSBwYWdlIGRpZCBub3QgY29udGFpbiB0
aGUgcGx1Zy1pbiwgaW52b2tlIHRoZSBjYWxsYmFjayB3aXRoIGEgbnVsbCBkaWN0aW9uYXJ5IG9m
CnBsdWctaW4gaW5mb3JtYXRpb24uCkludm9rZSB0aGUgY2FsbGJhY2sgd2l0aCBhIGRpY3Rpb25h
cnkgY29udGFpbmluZyB0aGUgUGx1Z0luTW9kdWxlSW5mby4KCiogV2ViUHJvY2Vzcy9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmg6ClJldHVybiAwIGZvciB0aGUgcGx1Z0luUHJvY2Vz
c1Rva2VuLgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmg6CkRpdHRv
LgoqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaDoKQWRkIGEgcHVyZSB2aXJ0dWFsIG1ldGhv
ZCBmb3IgcGx1Z0luUHJvY2Vzc1Rva2VuIHNvIGl0IGNhbiBiZSBhY2Nlc3NlZCBmcm9tIGZyb20g
dGhlIFBsdWdpbgpvbiB0aGUgUGx1Z2luVmlldy4KKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJveHkuaDoKUmV0dXJuIHRoZSBhY3R1YWwgcGx1Zy1pbiBwcm9jZXNzIHRva2VuLgoKKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oOgooV2ViS2l0OjpQbHVnaW5WaWV3OjpwbHVnSW4p
OgpNYWtlIGl0IHBvc3NpYmxlIHRvIGdldCBhdCB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRva2VuIHRo
cm91Z2ggdGhlIFBsdWdpbi4KCiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2VNYWMubW06CihX
ZWJLaXQ6OldlYlBhZ2U6OmNvbnRhaW5zUGx1Z0luc1dpdGhQcm9jZXNzVG9rZW4pOgpJZiB0aGVy
ZSBpcyBhbiBpbnN0YW5jZSBvZiB0aGUgcGx1Zy1pbiB3aXRoIHRoYXQgdG9rZW4sIHNlbmQgYSBj
b25maXJtYXRpb24gdG8gdGhlIHVpCnByb2Nlc3MuCiogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKLS0tCiBTb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDYzICsrKysr
KysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVN
YWMuY3BwICAgICAgIHwgMTIgKysrKysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMv
V0tQYWdlUHJpdmF0ZU1hYy5oIHwgIDMgKysKIC4uLi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzTWFuYWdlci5oICAgICAgIHwgIDIgKwogLi4uL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nl
c3NNYW5hZ2VyTWFjLm1tICAgICAgICAgfCAxOCArKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcCAgICAgICAgICB8ICAzICsrCiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmggICAgICAgICAgICB8ICA3ICsrKwogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiAgfCAgMSArCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSAgICB8IDQ2ICsrKysrKysrKysr
KysrKysKIC4uLi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaCAg
IHwgIDIgKwogLi4uL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvU2ltcGxlUERGUGx1Z2luLmggICAg
ICAgfCAgMiArCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmggICAg
ICAgICB8ICAyICsKIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94
eS5oICAgIHwgIDIgKwogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZp
ZXcuaCAgICAgfCAgMSArCiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oICAgICAgICB8ICA0ICstCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiB8ICAyICsKIC4uLi9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbSAgIHwgMTMgKysrKysKIDE3IGZpbGVzIGNoYW5nZWQsIDE4MiBpbnNlcnRp
b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDdiOGRmNjkuLmQ5ODA3MjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw2NiBAQAorMjAxMy0wNS0zMSAgSmVzc2llIEJlcmxpbiAgPGpi
ZXJsaW5AYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgdGhlIGFiaWxpdHkgdG8gZ2V0IHRoZSBp
bmZvcm1hdGlvbiBmb3IgYSBwbHVnLWluIHdpdGggYSBwYXJ0aWN1bGFyIHByb2Nlc3MgaWQgdGhh
dCBtYXkKKyAgICAgICAgYmUgcnVubmluZyBvbiBhIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNzA5MAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQ
cml2YXRlTWFjLmNwcDoKKyAgICAgICAgKGNhbGxHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQ
cm9jZXNzSURCbG9ja0FuZERpc3Bvc2UpOgorICAgICAgICBHZXQgdGhlIGJsb2NrIGZyb20gdGhl
IGNvbnRleHQsIGludm9rZSBpdCB3aXRoIHRoZSByZXN1bHQsIGFuZCBkaXNwb3NlIG9mIGl0Lgor
ICAgICAgICAoV0tQYWdlR2V0SW5mb3JtYXRpb25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEKToKKyAg
ICAgICAgQXNrIHRoZSBXZWJQYWdlUHJveHkgYW5kIHByb3ZpZGUgaXQgd2l0aCBhIGRpY3Rpb25h
cnkgY2FsbGJhY2sgdGhhdCB1c2VzIHRoZQorICAgICAgICBhYm92ZSBmdW5jdGlvbiB0byBpbnZv
a2UgdGhlIHBhc3NlZCBpbiBibG9jay4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dL
UGFnZVByaXZhdGVNYWMuaDoKKyAgICAgICAgQWRkIFdLUGFnZUdldEluZm9ybWF0aW9uRm9yUGx1
Z0luV2l0aFByb2Nlc3NJRCBhbmQgYSB0eXBlZGVmIGZvciB0aGUgY2FsbGJhY2sgYmxvY2suCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oOgorICAg
ICAgICBBZGQgd2F5cyB0byBnZXQgdGhlIFBsdWdpblByb2Nlc3NQcm94eSBhc3NvY2lhdGVkIHdp
dGggYSBwcm9jZXNzIGlkIG9yIHByb2Nlc3MgdG9rZW4uCisgICAgICAgICogVUlQcm9jZXNzL1Bs
dWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzTWFuYWdlcjo6cGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQpOgorICAgICAg
ICBSZXR1cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nlc3NQcm94eSB3aXRoIHRoZSBwYXNzZWQgaW4g
cHJvY2VzcyBJRC4KKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdJ
blByb2Nlc3NXaXRoVG9rZW4pOgorICAgICAgICBSZXR1cm4gdGhlIGZpcnN0IFBsdWdpblByb2Nl
c3NQcm94eSB3aXRoIHRoZSBwYXNzZWQgaW4gcHJvY2VzcyB0b2tlbi4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OmNsb3NlKToKKyAgICAgICAgSW52YWxpZGF0ZSBhbnkgb3V0c3RhbmRpbmcgcmVxdWVzdHMgZm9y
IHBsdWctaW4gaW5mb3JtYXRpb24uCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
OgorICAgICAgICBLZWVwIHRyYWNrIG9mIHRoZSBjYWxsYmFja3MgZm9yIHRoZSByZXF1ZXN0cyBm
b3IgcGx1Zy1pbiBpbmZvcm1hdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdldEluZm9ybWF0aW9uRm9yUGx1Z0lu
V2l0aFByb2Nlc3NJRCk6CisgICAgICAgIElmIHRoZXJlIGFyZSBubyBrbm93biBwbHVnLWlucyB3
aXRoIHRoZSBwcm92aWRlZCBwcm9jZXNzIElELCBpbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYSBu
dWxsCisgICAgICAgIGRpY3Rpb25hcnkgb2YgcGx1Zy1pbiBpbmZvcm1hdGlvbi4KKyAgICAgICAg
T3RoZXJ3aXNlLCBrZWVwIHRyYWNrIG9mIHRoZSBjYWxsYmFjayBhbmQgc2VuZCBhIG1lc3NhZ2Ug
dG8gdGhlIHdlYiBwcm9jZXNzIGFza2luZyBmb3IgdGhlCisgICAgICAgIGluZm9ybWF0aW9uLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRhaW5zUGx1Z0luQ2FsbGJhY2spOgor
ICAgICAgICBJZiB0aGUgcGFnZSBkaWQgbm90IGNvbnRhaW4gdGhlIHBsdWctaW4sIGludm9rZSB0
aGUgY2FsbGJhY2sgd2l0aCBhIG51bGwgZGljdGlvbmFyeSBvZgorICAgICAgICBwbHVnLWluIGlu
Zm9ybWF0aW9uLgorICAgICAgICBJbnZva2UgdGhlIGNhbGxiYWNrIHdpdGggYSBkaWN0aW9uYXJ5
IGNvbnRhaW5pbmcgdGhlIFBsdWdJbk1vZHVsZUluZm8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW4uaDoKKyAgICAgICAgUmV0dXJuIDAgZm9y
IHRoZSBwbHVnSW5Qcm9jZXNzVG9rZW4uCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9TaW1wbGVQREZQbHVnaW4uaDoKKyAgICAgICAgRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICBBZGQgYSBwdXJlIHZpcnR1YWwgbWV0aG9kIGZv
ciBwbHVnSW5Qcm9jZXNzVG9rZW4gc28gaXQgY2FuIGJlIGFjY2Vzc2VkIGZyb20gZnJvbSB0aGUg
UGx1Z2luCisgICAgICAgIG9uIHRoZSBQbHVnaW5WaWV3LgorICAgICAgICAqIFdlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5oOgorICAgICAgICBSZXR1cm4gdGhlIGFjdHVhbCBwbHVnLWlu
IHByb2Nlc3MgdG9rZW4uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5oOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpwbHVnSW4pOgorICAgICAgICBNYWtl
IGl0IHBvc3NpYmxlIHRvIGdldCBhdCB0aGUgcGx1Zy1pbiBwcm9jZXNzIHRva2VuIHRocm91Z2gg
dGhlIFBsdWdpbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlTWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjb250YWluc1BsdWdJbnNXaXRoUHJvY2Vzc1Rv
a2VuKToKKyAgICAgICAgSWYgdGhlcmUgaXMgYW4gaW5zdGFuY2Ugb2YgdGhlIHBsdWctaW4gd2l0
aCB0aGF0IHRva2VuLCBzZW5kIGEgY29uZmlybWF0aW9uIHRvIHRoZSB1aQorICAgICAgICBwcm9j
ZXNzLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisKIDIwMTMtMDUtMzAgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgSXQncyBlYXN5
IHRvIGhpdCBBU1NFUlRfTk9UX1JFQUNIRUQgaW4gV0tET01Ob2RlQ2xhc3MKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuY3Bw
CmluZGV4IDVlNDU5NTAuLjE5ODZlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmNwcApAQCAtNDYsMyArNDYsMTUg
QEAgYm9vbCBXS1BhZ2VJc1VSTEtub3duSFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVm
IHVybCkKIAogICAgIHJldHVybiB3ZWJQYWdlUHJveHktPnByb2Nlc3MoKS0+Y29udGV4dCgpLT5p
c1VSTEtub3duSFNUU0hvc3QodG9JbXBsKHVybCktPnN0cmluZygpLCBwcml2YXRlQnJvd3NpbmdF
bmFibGVkKTsKIH0KKworc3RhdGljIHZvaWQgY2FsbEdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0
aFByb2Nlc3NJREJsb2NrQW5kRGlzcG9zZShXS0RpY3Rpb25hcnlSZWYgcmVzdWx0VmFsdWUsIFdL
RXJyb3JSZWYgZXJyb3IsIHZvaWQqIGNvbnRleHQpCit7CisgICAgV0tQYWdlR2V0SW5mb3JtYXRp
b25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2sgYmxvY2sgPSAoV0tQYWdlR2V0SW5mb3JtYXRp
b25Gb3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2spY29udGV4dDsKKyAgICBibG9jayhyZXN1bHRW
YWx1ZSwgZXJyb3IpOworICAgIEJsb2NrX3JlbGVhc2UoYmxvY2spOworfQorCit2b2lkIFdLUGFn
ZUdldEluZm9ybWF0aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJRChXS1BhZ2VSZWYgcGFnZVJlZiwg
cGlkX3QgcGx1Z0luUHJvY2Vzc0lELCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQ
cm9jZXNzSURCbG9jayBibG9jaykKK3sKKyAgICB0b0ltcGwocGFnZVJlZiktPmdldEluZm9ybWF0
aW9uRm9yUGx1Z0luV2l0aFByb2Nlc3NJRChwbHVnSW5Qcm9jZXNzSUQsIERpY3Rpb25hcnlDYWxs
YmFjazo6Y3JlYXRlKEJsb2NrX2NvcHkoYmxvY2spLCBjYWxsR2V0SW5mb3JtYXRpb25Gb3JQbHVn
SW5XaXRoUHJvY2Vzc0lEQmxvY2tBbmREaXNwb3NlKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCmluZGV4IDgzNTdi
YTUuLjc0ZDg0ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9t
YWMvV0tQYWdlUHJpdmF0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCkBAIC0zNSw2ICszNSw5IEBAIGV4dGVybiAiQyIgewog
V0tfRVhQT1JUIHBpZF90IFdLUGFnZUdldFByb2Nlc3NJZGVudGlmaWVyKFdLUGFnZVJlZiBwYWdl
KTsKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzVVJMS25vd25IU1RTSG9zdChXS1BhZ2VSZWYgcGFn
ZSwgV0tVUkxSZWYgdXJsKTsKIAordHlwZWRlZiB2b2lkICheV0tQYWdlR2V0SW5mb3JtYXRpb25G
b3JQbHVnSW5XaXRoUHJvY2Vzc0lEQmxvY2spKFdLRGljdGlvbmFyeVJlZiwgV0tFcnJvclJlZik7
CitXS19FWFBPUlQgdm9pZCBXS1BhZ2VHZXRJbmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNz
SUQoV0tQYWdlUmVmLCBwaWRfdCBwbHVnSW5Qcm9jZXNzSUQsIFdLUGFnZUdldEluZm9ybWF0aW9u
Rm9yUGx1Z0luV2l0aFByb2Nlc3NJREJsb2NrKTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5Qcm9jZXNzTWFuYWdlci5oCmluZGV4IDMwN2MzOTguLjQyYmZlZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIu
aApAQCAtNjMsNiArNjMsOCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgdm9p
ZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOworICAgIFBsdWdpblByb2Nlc3NQ
cm94eSogcGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNzSUQocGlkX3QgcGx1Z0luUHJvY2Vzc0lEKSBj
b25zdDsKKyAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdJblByb2Nlc3NXaXRoVG9rZW4odWlu
dDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuKSBjb25zdDsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nl
c3NNYW5hZ2VyTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1Bs
dWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tCmluZGV4IDc3MWNmNzguLmZhNTgxZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFu
YWdlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0KQEAgLTM5LDYgKzM5LDI0IEBAIHZvaWQgUGx1Z2luUHJv
Y2Vzc01hbmFnZXI6OnNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9jZXNzU3Vw
cHJlc3Npb25FCiAgICAgICAgIG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5zZXRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOwogfQogCitQbHVnaW5Qcm9j
ZXNzUHJveHkqIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpwbHVnSW5Qcm9jZXNzV2l0aFByb2Nlc3NJ
RChwaWRfdCBwbHVnSW5Qcm9jZXNzSUQpIGNvbnN0Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBtX3BsdWdpblByb2Nlc3Nlcy5zaXplKCk7ICsraSkgeworICAgICAgICBpZiAobV9wbHVn
aW5Qcm9jZXNzZXNbaV0tPnByb2Nlc3NJZGVudGlmaWVyKCkgPT0gcGx1Z0luUHJvY2Vzc0lEKQor
ICAgICAgICAgICAgcmV0dXJuIG1fcGx1Z2luUHJvY2Vzc2VzW2ldLmdldCgpOworICAgIH0KKyAg
ICByZXR1cm4gMDsKK30KKworUGx1Z2luUHJvY2Vzc1Byb3h5KiBQbHVnaW5Qcm9jZXNzTWFuYWdl
cjo6cGx1Z0luUHJvY2Vzc1dpdGhUb2tlbih1aW50NjRfdCBwbHVnSW5Qcm9jZXNzVG9rZW4pIGNv
bnN0Cit7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3BsdWdpblByb2Nlc3Nlcy5zaXpl
KCk7ICsraSkgeworICAgICAgICBpZiAobV9wbHVnaW5Qcm9jZXNzZXNbaV0tPnBsdWdpblByb2Nl
c3NUb2tlbigpID09IHBsdWdJblByb2Nlc3NUb2tlbikKKyAgICAgICAgICAgIHJldHVybiBtX3Bs
dWdpblByb2Nlc3Nlc1tpXS5nZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1OTRjZmRhLi4xODkz
MTliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNjE1
LDYgKzYxNSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbG9zZSgpCiAjaWYgUExBVEZPUk0oR1RL
KQogICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX3ByaW50RmluaXNoZWRDYWxsYmFja3MpOwog
I2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX3Bs
dWdJbkluZm9ybWF0aW9uQ2FsbGJhY2tzKTsKKyNlbmRpZgogCiAgICAgVmVjdG9yPFdlYkVkaXRD
b21tYW5kUHJveHkqPiBlZGl0Q29tbWFuZFZlY3RvcjsKICAgICBjb3B5VG9WZWN0b3IobV9lZGl0
Q29tbWFuZFNldCwgZWRpdENvbW1hbmRWZWN0b3IpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCmluZGV4IDUzMmVjM2YuLjJjZTcwMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTE2Niw2ICsxNjYsNyBAQCBjbGFzcyBXZWJHZXN0dXJl
RXZlbnQ7CiBjbGFzcyBXZWJWaWJyYXRpb25Qcm94eTsKICNlbmRpZgogCit0eXBlZGVmIEdlbmVy
aWNDYWxsYmFjazxXS0RpY3Rpb25hcnlSZWY+IERpY3Rpb25hcnlDYWxsYmFjazsKIHR5cGVkZWYg
R2VuZXJpY0NhbGxiYWNrPFdLU3RyaW5nUmVmLCBTdHJpbmdJbXBsKj4gU3RyaW5nQ2FsbGJhY2s7
CiB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxXS1NlcmlhbGl6ZWRTY3JpcHRWYWx1ZVJlZiwgV2Vi
U2VyaWFsaXplZFNjcmlwdFZhbHVlKj4gU2NyaXB0VmFsdWVDYWxsYmFjazsKIApAQCAtNTM2LDYg
KzUzNyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpOwogCiAgICAg
Q29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSgpOworCisgICAgdm9pZCBnZXRJbmZvcm1hdGlvbkZv
clBsdWdJbldpdGhQcm9jZXNzSUQocGlkX3QgcGx1Z0luUHJvY2Vzc0lELCBQYXNzUmVmUHRyPERp
Y3Rpb25hcnlDYWxsYmFjaz4pOworICAgIHZvaWQgY29udGFpbnNQbHVnSW5DYWxsYmFjayhib29s
IGNvbnRhaW5zUGx1Z0luLCB1aW50NjRfdCBwbHVnSW5Ub2tlbiwgdWludDY0X3QgY2FsbGJhY2tJ
RCk7CiAjZW5kaWYKIAogICAgIHZvaWQgcGFnZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKGRvdWJsZSk7
CkBAIC0xMDk5LDYgKzExMDMsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdUSykKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8UHJpbnRGaW5pc2hlZENhbGxiYWNrPj4gbV9wcmludEZp
bmlzaGVkQ2FsbGJhY2tzOwogI2VuZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxEaWN0aW9uYXJ5Q2FsbGJhY2s+PiBtX3BsdWdJbkluZm9ybWF0aW9u
Q2FsbGJhY2tzOworI2VuZGlmCiAKICAgICBIYXNoU2V0PFdlYkVkaXRDb21tYW5kUHJveHkqPiBt
X2VkaXRDb21tYW5kU2V0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4NjIxM2YxLi44YzFkZTkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTI2NCw2
ICsyNjQsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgICMgUGx1Zy1pbiBjb21w
bGV4IHRleHQgaW5wdXQgc3VwcG9ydCBtZXNzYWdlcwogICAgIFBsdWdpbkZvY3VzT3JXaW5kb3dG
b2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJv
b2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKICAgICBTZXRQbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
IHVpbnQ2NF90IGNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKKyAgICBDb250YWluc1BsdWdJbkNhbGxi
YWNrKGJvb2wgY29udGFpbnNQbHVnSW4sIHVpbnQ2NF90IHBsdWdJblByb2Nlc3NUb2tlbiwgdWlu
dDY0X3QgY2FsbGJhY2tJRCkKIAogICAgICMgU3BlZWNoIG1lc3NhZ2VzCiAgICAgR2V0SXNTcGVh
a2luZygpIC0+IChib29sIGlzU3BlYWtpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCmluZGV4IGE3MzM5YzYuLmRhNzMyZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tCkBAIC0zNSw2
ICszNSw5IEBACiAjaW1wb3J0ICJQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCIKICNpbXBv
cnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW1wb3J0ICJQ
bHVnaW5JbmZvcm1hdGlvbi5oIgorI2ltcG9ydCAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKKyNp
bXBvcnQgIlBsdWdpblByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgi
CiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgiCkBA
IC00NTYsNiArNDU5LDQ5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1CiAgICAgbV9wYWdlQ2xp
ZW50LT5zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUocGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXIsIHN0YXRpY19jYXN0PFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZT4ocGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5OjpnZXRJ
bmZvcm1hdGlvbkZvclBsdWdJbldpdGhQcm9jZXNzSUQocGlkX3QgcGx1Z0luUHJvY2Vzc0lELCBQ
YXNzUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4gcHJwQ2FsbGJhY2spCit7CisgICAgUmVmUHRy
PERpY3Rpb25hcnlDYWxsYmFjaz4gY2FsbGJhY2sgPSBwcnBDYWxsYmFjazsKKyAgICBpZiAoIWlz
VmFsaWQoKSkgeworICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZSgpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVnaW5Qcm9jZXNzUHJveHkg
PSBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkucGx1Z0luUHJvY2Vzc1dpdGhQcm9jZXNz
SUQocGx1Z0luUHJvY2Vzc0lEKTsKKyAgICBpZiAoIXBsdWdpblByb2Nlc3NQcm94eSkKKyAgICAg
ICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZSgwKTsKKworICAgIHVp
bnQ2NF90IGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOworICAgIG1fcGx1Z0lu
SW5mb3JtYXRpb25DYWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIGNhbGxiYWNrLmdldCgpKTsKKyAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNvbnRhaW5zUGx1Z0luc1dpdGhQ
cm9jZXNzVG9rZW4ocGx1Z2luUHJvY2Vzc1Byb3h5LT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSwgY2Fs
bGJhY2tJRCksIG1fcGFnZUlEKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmNvbnRhaW5zUGx1
Z0luQ2FsbGJhY2soYm9vbCBjb250YWluc1BsdWdJbiwgdWludDY0X3QgcGx1Z0luVG9rZW4sIHVp
bnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4gY2Fs
bGJhY2sgPSBtX3BsdWdJbkluZm9ybWF0aW9uQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCk7Cisg
ICAgaWYgKCFjYWxsYmFjaykgeworICAgICAgICAvLyBGSVhNRTogTG9nIGVycm9yIG9yIGFzc2Vy
dC4KKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghY29udGFpbnNQbHVnSW4pIHsK
KyAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZSgwKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJv
Y2Vzc1Byb3h5ID0gUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLnBsdWdJblByb2Nlc3NX
aXRoVG9rZW4ocGx1Z0luVG9rZW4pOworICAgIGlmICghcGx1Z2luUHJvY2Vzc1Byb3h5KSB7Cisg
ICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBJbW11dGFibGVEaWN0aW9uYXJ5OjpNYXBUeXBlIG1hcDsKKyAgICBnZXRQbHVnaW5Nb2R1
bGVJbmZvcm1hdGlvbihwbHVnaW5Qcm9jZXNzUHJveHktPnBsdWdpblByb2Nlc3NBdHRyaWJ1dGVz
KCkubW9kdWxlSW5mbywgbWFwKTsKKyAgICBSZWZQdHI8SW1tdXRhYmxlRGljdGlvbmFyeT4gcGx1
Z0luSW5mb3JtYXRpb24gPSBJbW11dGFibGVEaWN0aW9uYXJ5OjphZG9wdChtYXApOworCisgICAg
Y2FsbGJhY2stPnBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShwbHVnSW5JbmZvcm1hdGlv
bi5nZXQoKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpleGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yLCBib29sJiBoYW5kbGVkKQogewogICAgIE1F
U1NBR0VfQ0hFQ0soaXNWYWxpZEtleXByZXNzQ29tbWFuZE5hbWUoc2VsZWN0b3IpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05l
dHNjYXBlUGx1Z2luLmgKaW5kZXggNjUxZGM0ZC4uYzM1ZWUzOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1
Z2luLmgKQEAgLTI2MCw2ICsyNjAsOCBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBTdHJpbmcg
Z2V0U2VsZWN0aW9uU3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gU3RyaW5nKCk7IH0K
IAorICAgIHZpcnR1YWwgdWludDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuKCkgY29uc3QgT1ZFUlJJ
REUgeyByZXR1cm4gMDsgfQorCiAgICAgdm9pZCB1cGRhdGVOUE5Qcml2YXRlTW9kZSgpOwogCiAj
aWYgUExVR0lOX0FSQ0hJVEVDVFVSRShXSU4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1NpbXBsZVBERlBsdWdpbi5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9TaW1wbGVQREZQbHVnaW4uaAppbmRleCAxZDllOTdjLi4x
YTFlYTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERG
L1NpbXBsZVBERlBsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvU2ltcGxlUERGUGx1Z2luLmgKQEAgLTE5MSw2ICsxOTEsOCBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB2aXJ0dWFsIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25zdCBPVkVSUklERSB7
IHJldHVybiBTdHJpbmcoKTsgfQogCisgICAgdmlydHVhbCB1aW50NjRfdCBwbHVnSW5Qcm9jZXNz
VG9rZW4oKSBjb25zdCBPVkVSUklERSB7IHJldHVybiAwOyB9CisKICAgICBXZWJDb3JlOjpJbnRT
aXplIG1fc2Nyb2xsT2Zmc2V0OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGY4ZGU1YTcuLmExMzQzZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKQEAgLTI3Nyw2ICsyNzcsOCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFN0cmluZyBnZXRTZWxlY3Rpb25TdHJpbmcoKSBjb25zdCA9IDA7
CiAKKyAgICB2aXJ0dWFsIHVpbnQ2NF90IHBsdWdJblByb2Nlc3NUb2tlbigpIGNvbnN0ID0gMDsK
KwogcHJvdGVjdGVkOgogICAgIFBsdWdpbigpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCmluZGV4IDFhYjZiMDcuLmYyYzBhMWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC0x
MzksNiArMTM5LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgU3RyaW5nIGdldFNlbGVjdGlv
blN0cmluZygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIFN0cmluZygpOyB9CiAKKyAgICB2aXJ0
dWFsIHVpbnQ2NF90IHBsdWdJblByb2Nlc3NUb2tlbigpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJu
IG1fcGx1Z2luUHJvY2Vzc1Rva2VuOyB9CisKICAgICBmbG9hdCBjb250ZW50c1NjYWxlRmFjdG9y
KCk7CiAgICAgYm9vbCBuZWVkc0JhY2tpbmdTdG9yZSgpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRl
QmFja2luZ1N0b3JlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuaAppbmRleCBkMGEyYTg1Li5mOGM0M2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICAgICBXZWJDb3JlOjpIVE1MUGx1Z0luRWxlbWVudCogcGx1Z2luRWxlbWVu
dCgpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luRWxlbWVudC5nZXQoKTsgfQorICAgIFBsdWdpbiog
cGx1Z0luKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW4uZ2V0KCk7IH0KICAgICBjb25zdCBQbHVn
aW46OlBhcmFtZXRlcnMmIGluaXRpYWxQYXJhbWV0ZXJzKCkgY29uc3QgeyByZXR1cm4gbV9wYXJh
bWV0ZXJzOyB9CiAKICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoaXM7IG5vYm9keSBzaG91bGQgaGF2
ZSB0byBrbm93IGFib3V0IHRoZSBwbHVnLWluIHZpZXcncyByZW5kZXJlciBleGNlcHQgdGhlIHBs
dWctaW4gdmlldyBpdHNlbGYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAxNjk5Y2MzLi5hMDFlMjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTM2OCw3ICszNjgsOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRCb3R0b21PdmVyaGFuZ0ltYWdlKFBhc3NSZWZQdHI8V2ViSW1hZ2U+KTsKIAogICAg
IHZvaWQgdXBkYXRlSGVhZGVyQW5kRm9vdGVyTGF5ZXJzRm9yRGV2aWNlU2NhbGVDaGFuZ2UoZmxv
YXQgc2NhbGVGYWN0b3IpOwotI2VuZGlmCisKKyAgICB2b2lkIGNvbnRhaW5zUGx1Z0luc1dpdGhQ
cm9jZXNzVG9rZW4odWludDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuLCB1aW50NjRfdCBjYWxsYmFj
a0lEKTsKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCiAKICAgICBib29sIHdpbmRvd0lzRm9jdXNl
ZCgpIGNvbnN0OwogICAgIGJvb2wgd2luZG93QW5kV2ViUGFnZUFyZUZvY3VzZWQoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVz
c2FnZXMuaW4KaW5kZXggYWRmYjYxMC4uZmQwMTMzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTI2Myw2ICsy
NjMsOCBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2FjeVJlY2VpdmVyIHsKICAgICAjIENvbXBs
ZXggdGV4dCBpbnB1dCBzdXBwb3J0IGZvciBwbHVnLWlucy4KICAgICBTZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBT
dHJpbmcgdGV4dElucHV0KQogCisgICAgQ29udGFpbnNQbHVnSW5zV2l0aFByb2Nlc3NUb2tlbih1
aW50NjRfdCBwbHVnSW5Qcm9jZXNzVG9rZW4sIHVpbnQ2NF90IGNhbGxiYWNrSUQpCisKICAgICBT
ZXRXaW5kb3dJc1Zpc2libGUoYm9vbCB3aW5kb3dJc1Zpc2libGUpCiAgICAgV2luZG93QW5kVmll
d0ZyYW1lc0NoYW5nZWQoV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29y
ZGluYXRlcywgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5D
b29yZGluYXRlcywgV2ViQ29yZTo6RmxvYXRSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMsIFdlYkNvcmU6OkZsb2F0UG9pbnQgYWNjZXNzaWJpbGl0eVZpZXdDb29yZGluYXRlcykKICAg
ICBWaWV3RXhwb3NlZFJlY3RDaGFuZ2VkKFdlYkNvcmU6OkZsb2F0UmVjdCBleHBvc2VkUmVjdCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFn
ZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1h
Yy5tbQppbmRleCBlNTRjODgxLi4xZjFlMGY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC05NzAsNCArOTcwLDE3IEBA
IHZvaWQgV2ViUGFnZTo6ZHJhd1BhZ2VzVG9QREZGcm9tUERGRG9jdW1lbnQoQ0dDb250ZXh0UmVm
IGNvbnRleHQsIFBERkRvY3VtZW50ICpwCiAgICAgfQogfQogCit2b2lkIFdlYlBhZ2U6OmNvbnRh
aW5zUGx1Z0luc1dpdGhQcm9jZXNzVG9rZW4odWludDY0X3QgcGx1Z0luUHJvY2Vzc1Rva2VuLCB1
aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIGJvb2wgY29udGFpbnNQbHVnSW4gPSBmYWxzZTsK
KyAgICBmb3IgKEhhc2hTZXQ8UGx1Z2luVmlldyo+Ojpjb25zdF9pdGVyYXRvciBpdCA9IG1fcGx1
Z2luVmlld3MuYmVnaW4oKSwgZW5kID0gbV9wbHVnaW5WaWV3cy5lbmQoKTsgaXQgIT0gZW5kOyAr
K2l0KSB7CisgICAgICAgIGlmICgoKml0KS0+cGx1Z0luKCktPnBsdWdJblByb2Nlc3NUb2tlbigp
ID09IHBsdWdJblByb2Nlc3NUb2tlbikgeworICAgICAgICAgICAgY29udGFpbnNQbHVnSW4gPSB0
cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNvbnRhaW5zUGx1Z0luQ2FsbGJhY2soY29udGFpbnNQbHVn
SW4sIHBsdWdJblByb2Nlc3NUb2tlbiwgY2FsbGJhY2tJRCkpOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKLS0gCjEuOC4yLjEgKEFwcGxlIEdpdC00NSkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>