<?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>90066</bug_id>
          
          <creation_ts>2012-06-27 04:57:27 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add API to inspect a Web Intent service</short_desc>
          <delta_ts>2012-07-02 23:27:33 -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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>89276</dependson>
          <blocked>90064</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>658542</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-27 04:57:27 -0700</bug_when>
    <thetext>We need to add a Ewk class to wrap a Web Intent service, so that the client can inspect it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>660253</commentid>
    <comment_count>1</comment_count>
      <attachid>150109</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-06-29 00:54:53 -0700</bug_when>
    <thetext>Created attachment 150109
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661389</commentid>
    <comment_count>2</comment_count>
      <attachid>150396</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-02 04:17:53 -0700</bug_when>
    <thetext>Created attachment 150396
Patch

Rebase on master.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661872</commentid>
    <comment_count>3</comment_count>
      <attachid>150396</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-02 18:42:58 -0700</bug_when>
    <thetext>Comment on attachment 150396
Patch

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

LGTM

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:48
&gt; +    unsigned int __ref; /**&lt; the reference count of the object */
&gt; +#if ENABLE(WEB_INTENTS_TAG)
&gt; +    WKRetainPtr&lt;WKIntentServiceInfoRef&gt; wkService;
&gt; +#endif
&gt; +    const char* action;

Should this whole thing exist if that is not enabled? I mean the struct wont have the same size anyway

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:87
&gt; +    delete service;

are you creating this with &apos;new&apos;?

&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:169
&gt; +    ewkIntentService-&gt;wkService = wkService;
&gt; +    return ewkIntentService;

I prefer a newline before return to make it easier to spot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661967</commentid>
    <comment_count>4</comment_count>
      <attachid>150396</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-02 22:31:25 -0700</bug_when>
    <thetext>Comment on attachment 150396
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:48
&gt;&gt; +    const char* action;
&gt; 
&gt; Should this whole thing exist if that is not enabled? I mean the struct wont have the same size anyway

I believe the struct is needed by the typedef in the header. I followed the style used in the WK1 ewk classes as well.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:87
&gt;&gt; +    delete service;
&gt; 
&gt; are you creating this with &apos;new&apos;?

Good catch, I&apos;m using calloc(). I&apos;ll use free() instead.

&gt;&gt; Source/WebKit2/UIProcess/API/efl/ewk_intent_service.cpp:169
&gt;&gt; +    return ewkIntentService;
&gt; 
&gt; I prefer a newline before return to make it easier to spot

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661969</commentid>
    <comment_count>5</comment_count>
      <attachid>150534</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-07-02 22:34:58 -0700</bug_when>
    <thetext>Created attachment 150534
Patch for landing

- Use free() instead of delete for calloc&apos;d memory
- Add blank lines before return statements</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661971</commentid>
    <comment_count>6</comment_count>
      <attachid>150534</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-07-02 22:35:44 -0700</bug_when>
    <thetext>Comment on attachment 150534
Patch for landing

you forgot to fill in the reviewer, so i am r+ing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661997</commentid>
    <comment_count>7</comment_count>
      <attachid>150534</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-02 23:27:27 -0700</bug_when>
    <thetext>Comment on attachment 150534
Patch for landing

Clearing flags on attachment: 150534

Committed r121732: &lt;http://trac.webkit.org/changeset/121732&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>661998</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-02 23:27:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150109</attachid>
            <date>2012-06-29 00:54:53 -0700</date>
            <delta_ts>2012-07-02 04:17:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90066_ewkintentservice.patch</filename>
            <type>text/plain</type>
            <size>19845</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3MDliYWYyLi4wODE1NmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQgc2VydmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTAwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgRUZMIEFQSSB0byBpbnNwZWN0IGEgV2ViIEludGVudCBTZXJ2aWNlIGFuZCBlbWl0Cisg
ICAgICAgIGEgc2lnbmFsIG9uIHRoZSB2aWV3IHdoZW4gYSBuZXcgaW50ZW50IHNlcnZpY2UKKyAg
ICAgICAgcmVnaXN0ZXJzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50
X1NlcnZpY2UpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3JlZik6CisgICAgICAgIChl
d2tfaW50ZW50X3NlcnZpY2VfdW5yZWYpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2Fj
dGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3Nl
cnZpY2VfdGl0bGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2VydmljZV9kaXNwb3NpdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX25ldyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQu
Y3BwLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWUpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2gpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaDoKKwogMjAxMi0wNi0yOCAgSm9o
biBTdWxsaXZhbiAgPHN1bGxpdmFuQGFwcGxlLmNvbT4KIAogICAgICAgICA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkwMjE2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQppbmRleCA1ZjZlMDllLi43N2JmZmY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0
Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAt
MzIsNiArMzIsNyBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKIAogICAgIFVJUHJvY2Vz
cy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19j
b250ZXh0LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAK
ICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvRVdlYktpdDIuaAppbmRleCBlMTQzYjc4Li40OGIwODdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNk
ZWZpbmUgRVdlYktpdDJfaAogCiAjaW5jbHVkZSAiZXdrX2NvbnRleHQuaCIKKyNpbmNsdWRlICJl
d2tfaW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tfdmlldy5oIgogCiAjZW5kaWYgLy8g
RVdlYktpdDJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9zZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a19pbnRlbnRfc2VydmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uNmRmYjM0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Nl
cnZpY2UuaCIKKworI2luY2x1ZGUgIkludGVudFNlcnZpY2VJbmZvLmgiCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCisjaW5jbHVkZSAiV0tJbnRlbnRTZXJ2aWNlSW5mby5oIgorI2luY2x1ZGUgIldL
UmV0YWluUHRyLmgiCisjaW5jbHVkZSAiV0tVUkwuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3Nl
cnZpY2VfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBcc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UK
KyAqIEBicmllZiBDb250YWlucyB0aGUgaW50ZW50IHNlcnZpY2UgZGF0YS4KKyAqLworc3RydWN0
IF9Fd2tfSW50ZW50X1NlcnZpY2UgeworICAgIHVuc2lnbmVkIGludCBfX3JlZjsgLyoqPCB0aGUg
cmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNf
VEFHKQorICAgIFdLUmV0YWluUHRyPFdLSW50ZW50U2VydmljZUluZm9SZWY+IHdrU2VydmljZTsK
KyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsKKyAgICBjb25zdCBjaGFyKiB0eXBlOwor
ICAgIGNvbnN0IGNoYXIqIGhyZWY7CisgICAgY29uc3QgY2hhciogdGl0bGU7CisgICAgY29uc3Qg
Y2hhciogZGlzcG9zaXRpb247Cit9OworCisjZGVmaW5lIEVXS19JTlRFTlRfU0VSVklDRV9XS19H
RVRfT1JfUkVUVVJOKHNlcnZpY2UsIHdrU2VydmljZV8sIC4uLikgXAorICAgIGlmICghKHNlcnZp
Y2UpKSB7IFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgic2VydmljZSBpcyBOVUxMLiIpOyBcCisg
ICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorICAgIH0gXAorICAgIGlmICghKHNlcnZpY2Up
LT53a1NlcnZpY2UpIHsgXAorICAgICAgICBFSU5BX0xPR19DUklUKCJzZXJ2aWNlLT53a1NlcnZp
Y2UgaXMgTlVMTC4iKTsgXAorICAgICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICB9IFwK
KyAgICBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHdrU2VydmljZV8gPSAoc2VydmljZSktPndrU2Vy
dmljZS5nZXQoKQorCit2b2lkIGV3a19pbnRlbnRfc2VydmljZV9yZWYoRXdrX0ludGVudF9TZXJ2
aWNlKiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgRUlOQV9T
QUZFVFlfT05fTlVMTF9SRVRVUk4oc2VydmljZSk7CisgICAgKytzZXJ2aWNlLT5fX3JlZjsKKyNl
bmRpZgorfQorCit2b2lkIGV3a19pbnRlbnRfc2VydmljZV91bnJlZihFd2tfSW50ZW50X1NlcnZp
Y2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKyAgICBFSU5BX1NB
RkVUWV9PTl9OVUxMX1JFVFVSTihzZXJ2aWNlKTsKKworICAgIGlmICgtLXNlcnZpY2UtPl9fcmVm
KQorICAgICAgICByZXR1cm47CisKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzZXJ2aWNlLT5h
Y3Rpb24pOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHNlcnZpY2UtPnR5cGUpOworICAgIGVp
bmFfc3RyaW5nc2hhcmVfZGVsKHNlcnZpY2UtPmhyZWYpOworICAgIGVpbmFfc3RyaW5nc2hhcmVf
ZGVsKHNlcnZpY2UtPnRpdGxlKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzZXJ2aWNlLT5k
aXNwb3NpdGlvbik7CisgICAgZGVsZXRlIHNlcnZpY2U7CisjZW5kaWYKK30KKworY29uc3QgY2hh
ciogZXdrX2ludGVudF9zZXJ2aWNlX2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2aWNl
KiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgRVdLX0lOVEVO
VF9TRVJWSUNFX1dLX0dFVF9PUl9SRVRVUk4oc2VydmljZSwgd2tTZXJ2aWNlLCAwKTsKKworICAg
IFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a0FjdGlvbihBZG9wdFdLLCBXS0ludGVudFNlcnZp
Y2VJbmZvQ29weUFjdGlvbih3a1NlcnZpY2UpKTsKKyAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3
a0ludGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3a19JbnRlbnRfU2VydmljZSo+KHNlcnZpY2Up
OworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50U2VydmljZS0+YWN0aW9u
LCB0b0ltcGwod2tBY3Rpb24uZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBy
ZXR1cm4gc2VydmljZS0+YWN0aW9uOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
Citjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfdHlwZV9nZXQoY29uc3QgRXdrX0ludGVu
dF9TZXJ2aWNlKiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAg
RVdLX0lOVEVOVF9TRVJWSUNFX1dLX0dFVF9PUl9SRVRVUk4oc2VydmljZSwgd2tTZXJ2aWNlLCAw
KTsKKworICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a1R5cGUoQWRvcHRXSywgV0tJbnRl
bnRTZXJ2aWNlSW5mb0NvcHlUeXBlKHdrU2VydmljZSkpOworICAgIEV3a19JbnRlbnRfU2Vydmlj
ZSogZXdrSW50ZW50U2VydmljZSA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oc2Vy
dmljZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnRTZXJ2aWNlLT50
eXBlLCB0b0ltcGwod2tUeXBlLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
cmV0dXJuIHNlcnZpY2UtPnR5cGU7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisK
K2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldChjb25zdCBFd2tfSW50ZW50
X1NlcnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKyAgICBF
V0tfSU5URU5UX1NFUlZJQ0VfV0tfR0VUX09SX1JFVFVSTihzZXJ2aWNlLCB3a1NlcnZpY2UsIDAp
OworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdrSHJlZihBZG9wdFdLLCBXS0ludGVudFNl
cnZpY2VJbmZvQ29weUhyZWYod2tTZXJ2aWNlKSk7CisgICAgRXdrX0ludGVudF9TZXJ2aWNlKiBl
d2tJbnRlbnRTZXJ2aWNlID0gY29uc3RfY2FzdDxFd2tfSW50ZW50X1NlcnZpY2UqPihzZXJ2aWNl
KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudFNlcnZpY2UtPmhyZWYs
IHRvSW1wbCh3a0hyZWYuZ2V0KCkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1
cm4gc2VydmljZS0+aHJlZjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29u
c3QgY2hhciogZXdrX2ludGVudF9zZXJ2aWNlX3RpdGxlX2dldChjb25zdCBFd2tfSW50ZW50X1Nl
cnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKyAgICBFV0tf
SU5URU5UX1NFUlZJQ0VfV0tfR0VUX09SX1JFVFVSTihzZXJ2aWNlLCB3a1NlcnZpY2UsIDApOwor
CisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrVGl0bGUoQWRvcHRXSywgV0tJbnRlbnRT
ZXJ2aWNlSW5mb0NvcHlUaXRsZSh3a1NlcnZpY2UpKTsKKyAgICBFd2tfSW50ZW50X1NlcnZpY2Uq
IGV3a0ludGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3a19JbnRlbnRfU2VydmljZSo+KHNlcnZp
Y2UpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50U2VydmljZS0+dGl0
bGUsIHRvSW1wbCh3a1RpdGxlLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAg
cmV0dXJuIHNlcnZpY2UtPnRpdGxlOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQor
Citjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfZGlzcG9zaXRpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnRfU2VydmljZSogc2VydmljZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFH
KQorICAgIEVXS19JTlRFTlRfU0VSVklDRV9XS19HRVRfT1JfUkVUVVJOKHNlcnZpY2UsIHdrU2Vy
dmljZSwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tEaXNwb3NpdGlvbihB
ZG9wdFdLLCBXS0ludGVudFNlcnZpY2VJbmZvQ29weURpc3Bvc2l0aW9uKHdrU2VydmljZSkpOwor
ICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGNvbnN0X2Nhc3Q8RXdr
X0ludGVudF9TZXJ2aWNlKj4oc2VydmljZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNl
KCZld2tJbnRlbnRTZXJ2aWNlLT5kaXNwb3NpdGlvbiwgdG9JbXBsKHdrRGlzcG9zaXRpb24uZ2V0
KCkpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICByZXR1cm4gc2VydmljZS0+ZGlzcG9z
aXRpb247CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoV0VC
X0lOVEVOVFNfVEFHKQorRXdrX0ludGVudF9TZXJ2aWNlKiBld2tfaW50ZW50X3NlcnZpY2VfbmV3
KFdLSW50ZW50U2VydmljZUluZm9SZWYgd2tTZXJ2aWNlKQoreworICAgIEVJTkFfU0FGRVRZX09O
X05VTExfUkVUVVJOX1ZBTCh3a1NlcnZpY2UsIDApOworCisgICAgRXdrX0ludGVudF9TZXJ2aWNl
KiBld2tJbnRlbnRTZXJ2aWNlID0gc3RhdGljX2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oY2Fs
bG9jKDEsIHNpemVvZihFd2tfSW50ZW50X1NlcnZpY2UpKSk7CisgICAgZXdrSW50ZW50U2Vydmlj
ZS0+X19yZWYgPSAxOworICAgIGV3a0ludGVudFNlcnZpY2UtPndrU2VydmljZSA9IHdrU2Vydmlj
ZTsKKyAgICByZXR1cm4gZXdrSW50ZW50U2VydmljZTsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kZTIyZjZjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmgK
QEAgLTAsMCArMSwxMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGZpbGUgZXdr
X2ludGVudF9zZXJ2aWNlLmgKKyAqIEBicmllZiBEZXNjcmliZXMgdGhlIEV3ayBJbnRlbnQgU2Vy
dmljZSBBUEkuCisgKi8KKworI2lmbmRlZiBld2tfaW50ZW50X3NlcnZpY2VfaAorI2RlZmluZSBl
d2tfaW50ZW50X3NlcnZpY2VfaAorCisjaW5jbHVkZSA8RXZhcy5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKKy8qKiBDcmVhdGVzIGEgdHlwZSBuYW1lIGZv
ciBfRXdrX0ludGVudF9TZXJ2aWNlICovCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2
aWNlIEV3a19JbnRlbnRfU2VydmljZTsKKworLyoqCisgKiBJbmNyZWFzZXMgdGhlIHJlZmVyZW5j
ZSBjb3VudCBvZiB0aGUgZ2l2ZW4gb2JqZWN0LgorICoKKyAqIEBwYXJhbSBzZXJ2aWNlIHRoZSBp
bnRlbnQgc2VydmljZSBvYmplY3QgdG8gaW5jcmVhc2UgdGhlIHJlZmVyZW5jZSBjb3VudAorICov
CitFQVBJIHZvaWQgZXdrX2ludGVudF9zZXJ2aWNlX3JlZihFd2tfSW50ZW50X1NlcnZpY2UgKnNl
cnZpY2UpOworCisvKioKKyAqIERlY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBn
aXZlbiBvYmplY3QsIHBvc3NpYmx5IGZyZWVpbmcgaXQuCisgKgorICogV2hlbiB0aGUgcmVmZXJl
bmNlIGNvdW50IGl0J3MgcmVhY2hlZCAwLCB0aGUgaW50ZW50IHNlcnZpY2UgaXMgZnJlZWQuCisg
KgorICogQHBhcmFtIHNlcnZpY2UgdGhlIGludGVudCBzZXJ2aWNlIG9iamVjdCB0byBkZWNyZWFz
ZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3NlcnZpY2Vf
dW5yZWYoRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsKKworLyoqCisgKiBRdWVyeSBhY3Rp
b24gZm9yIHRoaXMgaW50ZW50IHNlcnZpY2UuCisgKgorICogQHBhcmFtIHNlcnZpY2Ugc2Vydmlj
ZSBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4gdGhlIGFjdGlvbiBwb2ludGVyLCB0aGF0
IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqIGd1YXJhbnRlZWQgdG8gYmUgZWlu
YV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqIHNhdmUgeW91cnNlbGYgc29t
ZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBv
ZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25z
dCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfYWN0aW9uX2dldChjb25zdCBFd2tfSW50ZW50X1Nl
cnZpY2UgKnNlcnZpY2UpOworCisvKioKKyAqIFF1ZXJ5IHR5cGUgZm9yIHRoaXMgaW50ZW50IHNl
cnZpY2UuCisgKgorICogQHBhcmFtIHNlcnZpY2Ugc2VydmljZSBpdGVtIHRvIHF1ZXJ5LgorICoK
KyAqIEByZXR1cm4gdGhlIHR5cGUgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBw
b2ludGVyIGlzCisgKiBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5l
dmVyIHBvc3NpYmxlCisgKiBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisg
KiBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQo
KSBvcgorICogc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2
aWNlX3R5cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisKKy8qKgor
ICogUXVlcnkgVVJMIGZvciB0aGlzIGludGVudCBzZXJ2aWNlLgorICoKKyAqIEBwYXJhbSBzZXJ2
aWNlIHNlcnZpY2UgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBVUkwgcG9pbnRl
ciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiBndWFyYW50ZWVkIHRv
IGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiBzYXZlIHlvdXJz
ZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGlu
c3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogc3RyZHVwKCkuCisgKi8KK0VB
UEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2hyZWZfZ2V0KGNvbnN0IEV3a19JbnRl
bnRfU2VydmljZSAqc2VydmljZSk7CisKKy8qKgorICogUXVlcnkgdGl0bGUgZm9yIHRoaXMgaW50
ZW50IHNlcnZpY2UuCisgKgorICogQHBhcmFtIHNlcnZpY2Ugc2VydmljZSBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIHRpdGxlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwu
IFRoaXMgcG9pbnRlciBpcworICogZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBz
byB3aGVuZXZlciBwb3NzaWJsZQorICogc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5k
IHVzZQorICogZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hh
cmVfYWRkKCkgb3IKKyAqIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRl
bnRfc2VydmljZV90aXRsZV9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsK
KworLyoqCisgKiBRdWVyeSBkaXNwb3NpdGlvbiBmb3IgdGhpcyBpbnRlbnQgc2VydmljZS4KKyAq
CisgKiBAcGFyYW0gc2VydmljZSBzZXJ2aWNlIGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVy
biB0aGUgZGlzcG9zaXRpb24gcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2lu
dGVyIGlzCisgKiBndWFyYW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVy
IHBvc3NpYmxlCisgKiBzYXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiBl
aW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBv
cgorICogc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNl
X2Rpc3Bvc2l0aW9uX2dldChjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UgKnNlcnZpY2UpOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gZXdrX2ludGVudF9zZXJ2
aWNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19p
bnRlbnRfc2VydmljZV9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjdmZjQ5MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oCkBAIC0wLDAgKzEsMzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZh
dGVfaAorI2RlZmluZSBld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZV9oCisKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFNfVEFHKQorCisjaW5jbHVkZSA8V2ViS2l0Mi9XS0Jhc2UuaD4KKwordHlwZWRl
ZiBzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZSBFd2tfSW50ZW50X1NlcnZpY2U7CisKK0V3a19J
bnRlbnRfU2VydmljZSogZXdrX2ludGVudF9zZXJ2aWNlX25ldyhXS0ludGVudFNlcnZpY2VJbmZv
UmVmIHdrU2VydmljZSk7CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorCisj
ZW5kaWYgLy8gZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCmluZGV4IGZlMzg0ZTMuLjk3NzE0NmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKQEAgLTYz
MCw2ICs2MzAsMTkgQEAgdm9pZCBld2tfdmlld19pbWFnZV9kYXRhX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgdm9pZCogaW1hZ2VEYXRhLCBjb25zdCBJbnRTaXoKICAgICBldmFzX29iamVjdF9p
bWFnZV9kYXRhX2NvcHlfc2V0KHNtYXJ0RGF0YS0+aW1hZ2UsIGltYWdlRGF0YSk7CiB9CiAKKyNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorLyoqCisgKiBAaW50ZXJuYWwKKyAqIFRoZSB2aWV3
IHJlY2VpdmVkIGEgbmV3IGludGVudCBzZXJ2aWNlIHJlZ2lzdHJhdGlvbi4KKyAqCisgKiBFbWl0
cyBzaWduYWw6ICJpbnRlbnQsc2VydmljZSxyZWdpc3RlciIgd2l0aCBwb2ludGVyIHRvIGEgRXdr
X0ludGVudF9TZXJ2aWNlLgorICovCit2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lz
dGVyKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0lu
dGVudFNlcnZpY2UpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tW
aWV3LCAiaW50ZW50LHNlcnZpY2UscmVnaXN0ZXIiLCBjb25zdF9jYXN0PEV3a19JbnRlbnRfU2Vy
dmljZSo+KGV3a0ludGVudFNlcnZpY2UpKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0lOVEVO
VFNfVEFHKQorCiBXZWJQYWdlUHJveHkqIGV3a192aWV3X3BhZ2VfZ2V0KGNvbnN0IEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQogewogICAgIEVXS19WSUVXX1NEX0dFVF9PUl9SRVRVUk4oZXdrVmlldywg
c21hcnREYXRhLCAwKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5oCmluZGV4IGNiNWI2NTAuLmYzZTk1YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuaApAQCAtMjYsNiArMjYsNyBAQAogICoKICAqIFRoZSBmb2xsb3dp
bmcgc2lnbmFscyAoc2VlIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgpKSBhcmUgZW1p
dHRlZDoKICAqCisgKiAtICJpbnRlbnQsc2VydmljZSxyZWdpc3RlciIsIEV3a19JbnRlbnRfU2Vy
dmljZSo6IHJlcG9ydHMgbmV3IFdlYiBpbnRlbnQgc2VydmljZSByZWdpc3RyYXRpb24uCiAgKiAt
ICJ0aXRsZSxjaGFuZ2VkIiwgY29uc3QgY2hhcio6IHRpdGxlIG9mIHRoZSBtYWluIGZyYW1lIHdh
cyBjaGFuZ2VkLgogICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKaW5kZXggZTk4ZTE1NC4uYWVh
MTQyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9l
ZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTI2LDYgKzI2LDggQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKIAogI2luY2x1ZGUgIldLRnJhbWUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50
X3NlcnZpY2UuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIgogI2lu
Y2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192
aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC00MSw2ICs0
MywxNiBAQCBzdGF0aWMgdm9pZCBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZShXS1BhZ2VSZWYsIFdL
U3RyaW5nUmVmIHRpdGxlLCBXS0ZyYW1lUmVmIGZyYQogICAgIGV3a192aWV3X3RpdGxlX2NoYW5n
ZWQoZXdrVmlldywgdG9JbXBsKHRpdGxlKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorc3RhdGljIHZvaWQgcmVnaXN0ZXJJbnRlbnRT
ZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50ZW50
U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7Cisg
ICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0
X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0lu
dGVudFNlcnZpY2UgPSBld2tfaW50ZW50X3NlcnZpY2VfbmV3KHNlcnZpY2VJbmZvKTsKKyAgICBl
d2tfdmlld19pbnRlbnRfc2VydmljZV9yZWdpc3Rlcihld2tWaWV3LCBld2tJbnRlbnRTZXJ2aWNl
KTsKKyAgICBld2tfaW50ZW50X3NlcnZpY2VfdW5yZWYoZXdrSW50ZW50U2VydmljZSk7Cit9Cisj
ZW5kaWYKKwogdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYgcGFn
ZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgV0tQYWdlTG9hZGVyQ2xpZW50IGxv
YWRDbGllbnQ7CkBAIC00OCw1ICs2MCw4IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9h
dHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBld2tWaWV3KQogICAgIGxvYWRD
bGllbnQudmVyc2lvbiA9IGtXS1BhZ2VMb2FkZXJDbGllbnRDdXJyZW50VmVyc2lvbjsKICAgICBs
b2FkQ2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwogICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2
ZVRpdGxlRm9yRnJhbWUgPSBkaWRSZWNlaXZlVGl0bGVGb3JGcmFtZTsKKyNpZiBFTkFCTEUoV0VC
X0lOVEVOVFNfVEFHKQorICAgIGxvYWRDbGllbnQucmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWUgPSByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZTsKKyNlbmRpZgogICAgIFdLUGFnZVNl
dFBhZ2VMb2FkZXJDbGllbnQocGFnZVJlZiwgJmxvYWRDbGllbnQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCmluZGV4IDYy
NTk4ZTQuLjBiZDZlMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
ZWZsL2V3a192aWV3X3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfdmlld19wcml2YXRlLmgKQEAgLTMwLDEyICszMCwyMCBAQCBjbGFzcyBJbnRSZWN0
OwogY2xhc3MgSW50U2l6ZTsKIH0KIAorI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCit0eXBl
ZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlIEV3a19JbnRlbnRfU2VydmljZTsKKyNlbmRp
ZgorCiB2b2lkIGV3a192aWV3X2Rpc3BsYXkoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBld2tfdmlld19pbWFnZV9kYXRhX3NldChFdmFz
X09iamVjdCogZXdrVmlldywgdm9pZCogaW1hZ2VEYXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzaXplKTsKIHZvaWQgZXdrX3ZpZXdfdGl0bGVfY2hhbmdlZChFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgY2hhciogdGl0bGUpOwogCiBFdmFzX09iamVjdCogZXdrX3ZpZXdfYmFzZV9hZGQo
RXZhcyogY2FudmFzLCBXS0NvbnRleHRSZWYsIFdLUGFnZUdyb3VwUmVmKTsKIAorI2lmIEVOQUJM
RShXRUJfSU5URU5UU19UQUcpCit2b2lkIGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVy
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0ludGVu
dFNlcnZpY2UpOworI2VuZGlmCisKIFdlYktpdDo6V2ViUGFnZVByb3h5KiBld2tfdmlld19wYWdl
X2dldChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldyk7CiAKICNlbmRpZiAvLyBld2tfdmlld19w
cml2YXRlX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150396</attachid>
            <date>2012-07-02 04:17:53 -0700</date>
            <delta_ts>2012-07-02 22:34:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>90066_ewkintentservice.patch</filename>
            <type>text/plain</type>
            <size>19960</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwM2E0NjRjLi4zZTE0MjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQgc2VydmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTAwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgRUZMIEFQSSB0byBpbnNwZWN0IGEgV2ViIEludGVudCBTZXJ2aWNlIGFuZCBlbWl0Cisg
ICAgICAgIGEgc2lnbmFsIG9uIHRoZSB2aWV3IHdoZW4gYSBuZXcgaW50ZW50IHNlcnZpY2UKKyAg
ICAgICAgcmVnaXN0ZXJzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50
X1NlcnZpY2UpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3JlZik6CisgICAgICAgIChl
d2tfaW50ZW50X3NlcnZpY2VfdW5yZWYpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2Fj
dGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3Nl
cnZpY2VfdGl0bGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2VydmljZV9kaXNwb3NpdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX25ldyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQu
Y3BwLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWUpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2gpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaDoKKwogMjAxMi0wNy0wMiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEyMDMyOSwgcjEyMTExMywgYW5kIHIxMjExMzguCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZSBiL1NvdXJjZS9XZWJLaXQyL1Bs
YXRmb3JtRWZsLmNtYWtlCmluZGV4IDljMTg4MTQuLmNmNGE4N2EgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3Jt
RWZsLmNtYWtlCkBAIC0zMyw2ICszMyw3IEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwog
ICAgIFVJUHJvY2Vzcy9BUEkvZWZsL1BhZ2VDbGllbnRJbXBsLmNwcAogICAgIFVJUHJvY2Vzcy9B
UEkvZWZsL2V3a19jb250ZXh0LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnQu
Y3BwCisgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmNwcAogICAgIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2xvYWRlcl9jbGllbnQuY3BwCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9FV2ViS2l0Mi5oCmluZGV4IDUxZGZjMGIuLjVkYWNjMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVk
ZSAiZXdrX2NvbnRleHQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50LmgiCisjaW5jbHVkZSAiZXdr
X2ludGVudF9zZXJ2aWNlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXcuaCIKIAogI2VuZGlmIC8vIEVX
ZWJLaXQyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a19pbnRlbnRfc2VydmljZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9l
d2tfaW50ZW50X3NlcnZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LjZkZmIzNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwCkBAIC0wLDAgKzEsMTcxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2
aWNlLmgiCisKKyNpbmNsdWRlICJJbnRlbnRTZXJ2aWNlSW5mby5oIgorI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldLSW50ZW50U2VydmljZUluZm8uaCIKKyNpbmNsdWRlICJXS1Jl
dGFpblB0ci5oIgorI2luY2x1ZGUgIldLVVJMLmgiCisjaW5jbHVkZSAiZXdrX2ludGVudF9zZXJ2
aWNlX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisKK3VzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CisKKy8qKgorICogXHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNlCisg
KiBAYnJpZWYgQ29udGFpbnMgdGhlIGludGVudCBzZXJ2aWNlIGRhdGEuCisgKi8KK3N0cnVjdCBf
RXdrX0ludGVudF9TZXJ2aWNlIHsKKyAgICB1bnNpZ25lZCBpbnQgX19yZWY7IC8qKjwgdGhlIHJl
ZmVyZW5jZSBjb3VudCBvZiB0aGUgb2JqZWN0ICovCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RB
RykKKyAgICBXS1JldGFpblB0cjxXS0ludGVudFNlcnZpY2VJbmZvUmVmPiB3a1NlcnZpY2U7Cisj
ZW5kaWYKKyAgICBjb25zdCBjaGFyKiBhY3Rpb247CisgICAgY29uc3QgY2hhciogdHlwZTsKKyAg
ICBjb25zdCBjaGFyKiBocmVmOworICAgIGNvbnN0IGNoYXIqIHRpdGxlOworICAgIGNvbnN0IGNo
YXIqIGRpc3Bvc2l0aW9uOworfTsKKworI2RlZmluZSBFV0tfSU5URU5UX1NFUlZJQ0VfV0tfR0VU
X09SX1JFVFVSTihzZXJ2aWNlLCB3a1NlcnZpY2VfLCAuLi4pIFwKKyAgICBpZiAoIShzZXJ2aWNl
KSkgeyBcCisgICAgICAgIEVJTkFfTE9HX0NSSVQoInNlcnZpY2UgaXMgTlVMTC4iKTsgXAorICAg
ICAgICByZXR1cm4gX19WQV9BUkdTX187IFwKKyAgICB9IFwKKyAgICBpZiAoIShzZXJ2aWNlKS0+
d2tTZXJ2aWNlKSB7IFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgic2VydmljZS0+d2tTZXJ2aWNl
IGlzIE5VTEwuIik7IFwKKyAgICAgICAgcmV0dXJuIF9fVkFfQVJHU19fOyBcCisgICAgfSBcCisg
ICAgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiB3a1NlcnZpY2VfID0gKHNlcnZpY2UpLT53a1NlcnZp
Y2UuZ2V0KCkKKwordm9pZCBld2tfaW50ZW50X3NlcnZpY2VfcmVmKEV3a19JbnRlbnRfU2Vydmlj
ZSogc2VydmljZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorICAgIEVJTkFfU0FG
RVRZX09OX05VTExfUkVUVVJOKHNlcnZpY2UpOworICAgICsrc2VydmljZS0+X19yZWY7CisjZW5k
aWYKK30KKwordm9pZCBld2tfaW50ZW50X3NlcnZpY2VfdW5yZWYoRXdrX0ludGVudF9TZXJ2aWNl
KiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgRUlOQV9TQUZF
VFlfT05fTlVMTF9SRVRVUk4oc2VydmljZSk7CisKKyAgICBpZiAoLS1zZXJ2aWNlLT5fX3JlZikK
KyAgICAgICAgcmV0dXJuOworCisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoc2VydmljZS0+YWN0
aW9uKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2RlbChzZXJ2aWNlLT50eXBlKTsKKyAgICBlaW5h
X3N0cmluZ3NoYXJlX2RlbChzZXJ2aWNlLT5ocmVmKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX2Rl
bChzZXJ2aWNlLT50aXRsZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9kZWwoc2VydmljZS0+ZGlz
cG9zaXRpb24pOworICAgIGRlbGV0ZSBzZXJ2aWNlOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIq
IGV3a19pbnRlbnRfc2VydmljZV9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSog
c2VydmljZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorICAgIEVXS19JTlRFTlRf
U0VSVklDRV9XS19HRVRfT1JfUkVUVVJOKHNlcnZpY2UsIHdrU2VydmljZSwgMCk7CisKKyAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tBY3Rpb24oQWRvcHRXSywgV0tJbnRlbnRTZXJ2aWNl
SW5mb0NvcHlBY3Rpb24od2tTZXJ2aWNlKSk7CisgICAgRXdrX0ludGVudF9TZXJ2aWNlKiBld2tJ
bnRlbnRTZXJ2aWNlID0gY29uc3RfY2FzdDxFd2tfSW50ZW50X1NlcnZpY2UqPihzZXJ2aWNlKTsK
KyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudFNlcnZpY2UtPmFjdGlvbiwg
dG9JbXBsKHdrQWN0aW9uLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0
dXJuIHNlcnZpY2UtPmFjdGlvbjsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwor
Y29uc3QgY2hhciogZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnRf
U2VydmljZSogc2VydmljZSkKK3sKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorICAgIEVX
S19JTlRFTlRfU0VSVklDRV9XS19HRVRfT1JfUkVUVVJOKHNlcnZpY2UsIHdrU2VydmljZSwgMCk7
CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gd2tUeXBlKEFkb3B0V0ssIFdLSW50ZW50
U2VydmljZUluZm9Db3B5VHlwZSh3a1NlcnZpY2UpKTsKKyAgICBFd2tfSW50ZW50X1NlcnZpY2Uq
IGV3a0ludGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3a19JbnRlbnRfU2VydmljZSo+KHNlcnZp
Y2UpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50U2VydmljZS0+dHlw
ZSwgdG9JbXBsKHdrVHlwZS5nZXQoKSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJl
dHVybiBzZXJ2aWNlLT50eXBlOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCitj
b25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfaHJlZl9nZXQoY29uc3QgRXdrX0ludGVudF9T
ZXJ2aWNlKiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgRVdL
X0lOVEVOVF9TRVJWSUNFX1dLX0dFVF9PUl9SRVRVUk4oc2VydmljZSwgd2tTZXJ2aWNlLCAwKTsK
KworICAgIFdLUmV0YWluUHRyPFdLVVJMUmVmPiB3a0hyZWYoQWRvcHRXSywgV0tJbnRlbnRTZXJ2
aWNlSW5mb0NvcHlIcmVmKHdrU2VydmljZSkpOworICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdr
SW50ZW50U2VydmljZSA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oc2VydmljZSk7
CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJbnRlbnRTZXJ2aWNlLT5ocmVmLCB0
b0ltcGwod2tIcmVmLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJu
IHNlcnZpY2UtPmhyZWY7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0
IGNoYXIqIGV3a19pbnRlbnRfc2VydmljZV90aXRsZV9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2
aWNlKiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgRVdLX0lO
VEVOVF9TRVJWSUNFX1dLX0dFVF9PUl9SRVRVUk4oc2VydmljZSwgd2tTZXJ2aWNlLCAwKTsKKwor
ICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiB3a1RpdGxlKEFkb3B0V0ssIFdLSW50ZW50U2Vy
dmljZUluZm9Db3B5VGl0bGUod2tTZXJ2aWNlKSk7CisgICAgRXdrX0ludGVudF9TZXJ2aWNlKiBl
d2tJbnRlbnRTZXJ2aWNlID0gY29uc3RfY2FzdDxFd2tfSW50ZW50X1NlcnZpY2UqPihzZXJ2aWNl
KTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2UoJmV3a0ludGVudFNlcnZpY2UtPnRpdGxl
LCB0b0ltcGwod2tUaXRsZS5nZXQoKSktPnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIHJl
dHVybiBzZXJ2aWNlLT50aXRsZTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwor
Y29uc3QgY2hhciogZXdrX2ludGVudF9zZXJ2aWNlX2Rpc3Bvc2l0aW9uX2dldChjb25zdCBFd2tf
SW50ZW50X1NlcnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykK
KyAgICBFV0tfSU5URU5UX1NFUlZJQ0VfV0tfR0VUX09SX1JFVFVSTihzZXJ2aWNlLCB3a1NlcnZp
Y2UsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrRGlzcG9zaXRpb24oQWRv
cHRXSywgV0tJbnRlbnRTZXJ2aWNlSW5mb0NvcHlEaXNwb3NpdGlvbih3a1NlcnZpY2UpKTsKKyAg
ICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3a19J
bnRlbnRfU2VydmljZSo+KHNlcnZpY2UpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgm
ZXdrSW50ZW50U2VydmljZS0+ZGlzcG9zaXRpb24sIHRvSW1wbCh3a0Rpc3Bvc2l0aW9uLmdldCgp
KS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIHNlcnZpY2UtPmRpc3Bvc2l0
aW9uOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCisjaWYgRU5BQkxFKFdFQl9J
TlRFTlRTX1RBRykKK0V3a19JbnRlbnRfU2VydmljZSogZXdrX2ludGVudF9zZXJ2aWNlX25ldyhX
S0ludGVudFNlcnZpY2VJbmZvUmVmIHdrU2VydmljZSkKK3sKKyAgICBFSU5BX1NBRkVUWV9PTl9O
VUxMX1JFVFVSTl9WQUwod2tTZXJ2aWNlLCAwKTsKKworICAgIEV3a19JbnRlbnRfU2VydmljZSog
ZXdrSW50ZW50U2VydmljZSA9IHN0YXRpY19jYXN0PEV3a19JbnRlbnRfU2VydmljZSo+KGNhbGxv
YygxLCBzaXplb2YoRXdrX0ludGVudF9TZXJ2aWNlKSkpOworICAgIGV3a0ludGVudFNlcnZpY2Ut
Pl9fcmVmID0gMTsKKyAgICBld2tJbnRlbnRTZXJ2aWNlLT53a1NlcnZpY2UgPSB3a1NlcnZpY2U7
CisgICAgcmV0dXJuIGV3a0ludGVudFNlcnZpY2U7Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGUyMmY2YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oCkBA
IC0wLDAgKzEsMTI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0
aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBmaWxlIGV3a19p
bnRlbnRfc2VydmljZS5oCisgKiBAYnJpZWYgRGVzY3JpYmVzIHRoZSBFd2sgSW50ZW50IFNlcnZp
Y2UgQVBJLgorICovCisKKyNpZm5kZWYgZXdrX2ludGVudF9zZXJ2aWNlX2gKKyNkZWZpbmUgZXdr
X2ludGVudF9zZXJ2aWNlX2gKKworI2luY2x1ZGUgPEV2YXMuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCisvKiogQ3JlYXRlcyBhIHR5cGUgbmFtZSBmb3Ig
X0V3a19JbnRlbnRfU2VydmljZSAqLwordHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfU2Vydmlj
ZSBFd2tfSW50ZW50X1NlcnZpY2U7CisKKy8qKgorICogSW5jcmVhc2VzIHRoZSByZWZlcmVuY2Ug
Y291bnQgb2YgdGhlIGdpdmVuIG9iamVjdC4KKyAqCisgKiBAcGFyYW0gc2VydmljZSB0aGUgaW50
ZW50IHNlcnZpY2Ugb2JqZWN0IHRvIGluY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAqLwor
RUFQSSB2b2lkIGV3a19pbnRlbnRfc2VydmljZV9yZWYoRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2
aWNlKTsKKworLyoqCisgKiBEZWNyZWFzZXMgdGhlIHJlZmVyZW5jZSBjb3VudCBvZiB0aGUgZ2l2
ZW4gb2JqZWN0LCBwb3NzaWJseSBmcmVlaW5nIGl0LgorICoKKyAqIFdoZW4gdGhlIHJlZmVyZW5j
ZSBjb3VudCBpdCdzIHJlYWNoZWQgMCwgdGhlIGludGVudCBzZXJ2aWNlIGlzIGZyZWVkLgorICoK
KyAqIEBwYXJhbSBzZXJ2aWNlIHRoZSBpbnRlbnQgc2VydmljZSBvYmplY3QgdG8gZGVjcmVhc2Ug
dGhlIHJlZmVyZW5jZSBjb3VudAorICovCitFQVBJIHZvaWQgZXdrX2ludGVudF9zZXJ2aWNlX3Vu
cmVmKEV3a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisKKy8qKgorICogUXVlcnkgYWN0aW9u
IGZvciB0aGlzIGludGVudCBzZXJ2aWNlLgorICoKKyAqIEBwYXJhbSBzZXJ2aWNlIHNlcnZpY2Ug
aXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBhY3Rpb24gcG9pbnRlciwgdGhhdCBt
YXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiBndWFyYW50ZWVkIHRvIGJlIGVpbmFf
c3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiBzYXZlIHlvdXJzZWxmIHNvbWUg
Y3B1IGN5Y2xlcyBhbmQgdXNlCisgKiBlaW5hX3N0cmluZ3NoYXJlX3JlZigpIGluc3RlYWQgb2Yg
ZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogc3RyZHVwKCkuCisgKi8KK0VBUEkgY29uc3Qg
Y2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX2FjdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2
aWNlICpzZXJ2aWNlKTsKKworLyoqCisgKiBRdWVyeSB0eXBlIGZvciB0aGlzIGludGVudCBzZXJ2
aWNlLgorICoKKyAqIEBwYXJhbSBzZXJ2aWNlIHNlcnZpY2UgaXRlbSB0byBxdWVyeS4KKyAqCisg
KiBAcmV0dXJuIHRoZSB0eXBlIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9p
bnRlciBpcworICogZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZl
ciBwb3NzaWJsZQorICogc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICog
ZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkg
b3IKKyAqIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2Vydmlj
ZV90eXBlX2dldChjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UgKnNlcnZpY2UpOworCisvKioKKyAq
IFF1ZXJ5IFVSTCBmb3IgdGhpcyBpbnRlbnQgc2VydmljZS4KKyAqCisgKiBAcGFyYW0gc2Vydmlj
ZSBzZXJ2aWNlIGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgVVJMIHBvaW50ZXIs
IHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRlciBpcworICogZ3VhcmFudGVlZCB0byBi
ZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBwb3NzaWJsZQorICogc2F2ZSB5b3Vyc2Vs
ZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0
ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IKKyAqIHN0cmR1cCgpLgorICovCitFQVBJ
IGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldChjb25zdCBFd2tfSW50ZW50
X1NlcnZpY2UgKnNlcnZpY2UpOworCisvKioKKyAqIFF1ZXJ5IHRpdGxlIGZvciB0aGlzIGludGVu
dCBzZXJ2aWNlLgorICoKKyAqIEBwYXJhbSBzZXJ2aWNlIHNlcnZpY2UgaXRlbSB0byBxdWVyeS4K
KyAqCisgKiBAcmV0dXJuIHRoZSB0aXRsZSBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBU
aGlzIHBvaW50ZXIgaXMKKyAqIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28g
d2hlbmV2ZXIgcG9zc2libGUKKyAqIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1
c2UKKyAqIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJl
X2FkZCgpIG9yCisgKiBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50
X3NlcnZpY2VfdGl0bGVfZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisK
Ky8qKgorICogUXVlcnkgZGlzcG9zaXRpb24gZm9yIHRoaXMgaW50ZW50IHNlcnZpY2UuCisgKgor
ICogQHBhcmFtIHNlcnZpY2Ugc2VydmljZSBpdGVtIHRvIHF1ZXJ5LgorICoKKyAqIEByZXR1cm4g
dGhlIGRpc3Bvc2l0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9pbnRl
ciBpcworICogZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZlciBw
b3NzaWJsZQorICogc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICogZWlu
YV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkgb3IK
KyAqIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2VydmljZV9k
aXNwb3NpdGlvbl9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsKKworI2lm
ZGVmIF9fY3BsdXNwbHVzCit9CisjZW5kaWYKKworI2VuZGlmIC8vIGV3a19pbnRlbnRfc2Vydmlj
ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50
ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwv
ZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi43ZmY0OTIzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaApAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIGV3a19pbnRlbnRfc2VydmljZV9wcml2YXRl
X2gKKyNkZWZpbmUgZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGVfaAorCisjaWYgRU5BQkxFKFdF
Ql9JTlRFTlRTX1RBRykKKworI2luY2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKK3R5cGVkZWYg
c3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgRXdrX0ludGVudF9TZXJ2aWNlOworCitFd2tfSW50
ZW50X1NlcnZpY2UqIGV3a19pbnRlbnRfc2VydmljZV9uZXcoV0tJbnRlbnRTZXJ2aWNlSW5mb1Jl
ZiB3a1NlcnZpY2UpOworCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKworI2Vu
ZGlmIC8vIGV3a19pbnRlbnRfc2VydmljZV9wcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAppbmRleCBhMTk2YTk1Li5lYTkxMmIwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC02NDMs
NiArNjQzLDE5IEBAIHZvaWQgZXdrX3ZpZXdfaW1hZ2VfZGF0YV9zZXQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIHZvaWQqIGltYWdlRGF0YSwgY29uc3QgSW50U2l6CiAgICAgZXZhc19vYmplY3RfaW1h
Z2VfZGF0YV9jb3B5X3NldChzbWFydERhdGEtPmltYWdlLCBpbWFnZURhdGEpOwogfQogCisjaWYg
RU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKy8qKgorICogQGludGVybmFsCisgKiBUaGUgdmlldyBy
ZWNlaXZlZCBhIG5ldyBpbnRlbnQgc2VydmljZSByZWdpc3RyYXRpb24uCisgKgorICogRW1pdHMg
c2lnbmFsOiAiaW50ZW50LHNlcnZpY2UscmVnaXN0ZXIiIHdpdGggcG9pbnRlciB0byBhIEV3a19J
bnRlbnRfU2VydmljZS4KKyAqLwordm9pZCBld2tfdmlld19pbnRlbnRfc2VydmljZV9yZWdpc3Rl
cihFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0ludGVudF9TZXJ2aWNlKiBld2tJbnRl
bnRTZXJ2aWNlKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmll
dywgImludGVudCxzZXJ2aWNlLHJlZ2lzdGVyIiwgY29uc3RfY2FzdDxFd2tfSW50ZW50X1NlcnZp
Y2UqPihld2tJbnRlbnRTZXJ2aWNlKSk7Cit9CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9JTlRFTlRT
X1RBRykKKwogV2ViUGFnZVByb3h5KiBld2tfdmlld19wYWdlX2dldChjb25zdCBFdmFzX09iamVj
dCogZXdrVmlldykKIHsKICAgICBFV0tfVklFV19TRF9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHNt
YXJ0RGF0YSwgMCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aAppbmRleCA0ZGY4ZDE4Li5lMDU2MGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3LmgKQEAgLTI3LDYgKzI3LDcgQEAKICAqIFRoZSBmb2xsb3dpbmcgc2ln
bmFscyAoc2VlIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCgpKSBhcmUgZW1pdHRlZDoK
ICAqCiAgKiAtICJpbnRlbnQscmVxdWVzdCxuZXciLCBFd2tfSW50ZW50X1JlcXVlc3QqOiByZXBv
cnRzIG5ldyBXZWIgaW50ZW50IHJlcXVlc3QuCisgKiAtICJpbnRlbnQsc2VydmljZSxyZWdpc3Rl
ciIsIEV3a19JbnRlbnRfU2VydmljZSo6IHJlcG9ydHMgbmV3IFdlYiBpbnRlbnQgc2VydmljZSBy
ZWdpc3RyYXRpb24uCiAgKiAtICJ0aXRsZSxjaGFuZ2VkIiwgY29uc3QgY2hhcio6IHRpdGxlIG9m
IHRoZSBtYWluIGZyYW1lIHdhcyBjaGFuZ2VkLgogICovCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAK
aW5kZXggODNkZGY0OC4uYzhhNWY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKQEAgLTI4LDYg
KzI4LDggQEAKICNpbmNsdWRlICJXS0ZyYW1lLmgiCiAjaW5jbHVkZSAiZXdrX2ludGVudC5oIgog
I2luY2x1ZGUgImV3a19pbnRlbnRfcHJpdmF0ZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnRfc2Vy
dmljZS5oIgorI2luY2x1ZGUgImV3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmgiCiAjaW5jbHVk
ZSAiZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdf
cHJpdmF0ZS5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTUzLDYgKzU1LDE2
IEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwg
V0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRECiB9CiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJf
SU5URU5UU19UQUcpCitzdGF0aWMgdm9pZCByZWdpc3RlckludGVudFNlcnZpY2VGb3JGcmFtZShX
S1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tJbnRlbnRTZXJ2aWNlSW5mb1JlZiBz
ZXJ2aWNlSW5mbywgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBFdmFzX09iamVjdCog
ZXdrVmlldyA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oY29uc3RfY2FzdDx2b2lkKj4oY2xp
ZW50SW5mbykpOworICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGV3
a19pbnRlbnRfc2VydmljZV9uZXcoc2VydmljZUluZm8pOworICAgIGV3a192aWV3X2ludGVudF9z
ZXJ2aWNlX3JlZ2lzdGVyKGV3a1ZpZXcsIGV3a0ludGVudFNlcnZpY2UpOworICAgIGV3a19pbnRl
bnRfc2VydmljZV91bnJlZihld2tJbnRlbnRTZXJ2aWNlKTsKK30KKyNlbmRpZgorCiB2b2lkIGV3
a192aWV3X2xvYWRlcl9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09iamVj
dCogZXdrVmlldykKIHsKICAgICBXS1BhZ2VMb2FkZXJDbGllbnQgbG9hZENsaWVudDsKQEAgLTYz
LDUgKzc1LDggQEAgdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0dGFjaChXS1BhZ2VSZWYg
cGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQog
ICAgIGxvYWRDbGllbnQuZGlkUmVjZWl2ZUludGVudEZvckZyYW1lID0gZGlkUmVjZWl2ZUludGVu
dEZvckZyYW1lOwogI2VuZGlmCisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKyAgICBsb2Fk
Q2xpZW50LnJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lID0gcmVnaXN0ZXJJbnRlbnRTZXJ2
aWNlRm9yRnJhbWU7CisjZW5kaWYKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHBhZ2VS
ZWYsICZsb2FkQ2xpZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaAppbmRleCBiZDE1ODZiLi44ZjAyMTcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5o
CkBAIC0zMyw2ICszMyw5IEBAIGNsYXNzIEludFNpemU7CiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRT
KQogdHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnQgRXdrX0ludGVudDsKICNlbmRpZgorI2lmIEVO
QUJMRShXRUJfSU5URU5UU19UQUcpCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2aWNl
IEV3a19JbnRlbnRfU2VydmljZTsKKyNlbmRpZgogCiB2b2lkIGV3a192aWV3X2Rpc3BsYXkoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpOwogdm9pZCBl
d2tfdmlld19pbWFnZV9kYXRhX3NldChFdmFzX09iamVjdCogZXdrVmlldywgdm9pZCogaW1hZ2VE
YXRhLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKTsKQEAgLTQzLDYgKzQ2LDkgQEAgRXZh
c19PYmplY3QqIGV3a192aWV3X2Jhc2VfYWRkKEV2YXMqIGNhbnZhcywgV0tDb250ZXh0UmVmLCBX
S1BhZ2VHcm91cFJlZik7CiAjaWYgRU5BQkxFKFdFQl9JTlRFTlRTKQogdm9pZCBld2tfdmlld19p
bnRlbnRfcmVxdWVzdF9uZXcoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19JbnRlbnQq
IGV3a0ludGVudCk7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQordm9pZCBl
d2tfdmlld19pbnRlbnRfc2VydmljZV9yZWdpc3RlcihFdmFzX09iamVjdCogZXdrVmlldywgY29u
c3QgRXdrX0ludGVudF9TZXJ2aWNlKiBld2tJbnRlbnRTZXJ2aWNlKTsKKyNlbmRpZgogCiBXZWJL
aXQ6OldlYlBhZ2VQcm94eSogZXdrX3ZpZXdfcGFnZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcpOwogCg==
</data>
<flag name="review"
          id="158638"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>150534</attachid>
            <date>2012-07-02 22:34:58 -0700</date>
            <delta_ts>2012-07-02 23:27:27 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>90066_ewkintentservice.patch</filename>
            <type>text/plain</type>
            <size>19994</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA2NTgxNjVlLi5hODYzMWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYg
QEAKKzIwMTItMDYtMjkgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVs
LmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFkZCBBUEkgdG8gaW5zcGVjdCBhIFdlYiBJbnRl
bnQgc2VydmljZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9OTAwNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgRUZMIEFQSSB0byBpbnNwZWN0IGEgV2ViIEludGVudCBTZXJ2aWNlIGFuZCBlbWl0Cisg
ICAgICAgIGEgc2lnbmFsIG9uIHRoZSB2aWV3IHdoZW4gYSBuZXcgaW50ZW50IHNlcnZpY2UKKyAg
ICAgICAgcmVnaXN0ZXJzLgorCisgICAgICAgICogUGxhdGZvcm1FZmwuY21ha2U6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKF9Fd2tfSW50ZW50
X1NlcnZpY2UpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3JlZik6CisgICAgICAgIChl
d2tfaW50ZW50X3NlcnZpY2VfdW5yZWYpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX2Fj
dGlvbl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX3R5cGVfZ2V0KToKKyAgICAg
ICAgKGV3a19pbnRlbnRfc2VydmljZV9ocmVmX2dldCk6CisgICAgICAgIChld2tfaW50ZW50X3Nl
cnZpY2VfdGl0bGVfZ2V0KToKKyAgICAgICAgKGV3a19pbnRlbnRfc2VydmljZV9kaXNwb3NpdGlv
bl9nZXQpOgorICAgICAgICAoZXdrX2ludGVudF9zZXJ2aWNlX25ldyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2YXRlLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQu
Y3BwLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KGV3a192aWV3X2ludGVudF9zZXJ2aWNlX3JlZ2lzdGVyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3
X2xvYWRlcl9jbGllbnQuY3BwOgorICAgICAgICAocmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJh
bWUpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZGVyX2NsaWVudF9hdHRhY2gpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaDoKKwogMjAxMi0wNy0wMiAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1RleHR1cmVN
YXBwZXJdIFRoZSBUZXh0dXJlTWFwcGVyIHNob3VsZCBzdXBwb3J0IGVkZ2UtZGlzdGFuY2UgYW50
aS1hbnRpYWxpYXNpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtRWZsLmNt
YWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKaW5kZXggOWMxODgxNC4uY2Y0
YTg3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAgLTMzLDYgKzMzLDcgQEAgTElTVChB
UFBFTkQgV2ViS2l0Ml9TT1VSQ0VTCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvUGFnZUNsaWVudElt
cGwuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2NvbnRleHQuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX2ludGVudC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfaW50
ZW50X3NlcnZpY2UuY3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCiAgICAg
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfbG9hZGVyX2NsaWVudC5jcHAKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL0VXZWJLaXQyLmgKaW5kZXggNTFkZmMwYi4uNWRhY2Mx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvRVdlYktpdDIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9FV2ViS2l0Mi5oCkBAIC0y
OSw2ICsyOSw3IEBACiAKICNpbmNsdWRlICJld2tfY29udGV4dC5oIgogI2luY2x1ZGUgImV3a19p
bnRlbnQuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2UuaCIKICNpbmNsdWRlICJld2tf
dmlldy5oIgogCiAjZW5kaWYgLy8gRVdlYktpdDJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmU5Yjg0NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5jcHAKQEAgLTAs
MCArMSwxNzcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24u
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2UuaCIKKworI2luY2x1ZGUgIkludGVudFNlcnZpY2VJ
bmZvLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tJbnRlbnRTZXJ2aWNl
SW5mby5oIgorI2luY2x1ZGUgIldLUmV0YWluUHRyLmgiCisjaW5jbHVkZSAiV0tVUkwuaCIKKyNp
bmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0
L0NTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworLyoqCisgKiBcc3RydWN0
IF9Fd2tfSW50ZW50X1NlcnZpY2UKKyAqIEBicmllZiBDb250YWlucyB0aGUgaW50ZW50IHNlcnZp
Y2UgZGF0YS4KKyAqLworc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgeworICAgIHVuc2lnbmVk
IGludCBfX3JlZjsgLyoqPCB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBvYmplY3QgKi8KKyNp
ZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorICAgIFdLUmV0YWluUHRyPFdLSW50ZW50U2Vydmlj
ZUluZm9SZWY+IHdrU2VydmljZTsKKyNlbmRpZgorICAgIGNvbnN0IGNoYXIqIGFjdGlvbjsKKyAg
ICBjb25zdCBjaGFyKiB0eXBlOworICAgIGNvbnN0IGNoYXIqIGhyZWY7CisgICAgY29uc3QgY2hh
ciogdGl0bGU7CisgICAgY29uc3QgY2hhciogZGlzcG9zaXRpb247Cit9OworCisjZGVmaW5lIEVX
S19JTlRFTlRfU0VSVklDRV9XS19HRVRfT1JfUkVUVVJOKHNlcnZpY2UsIHdrU2VydmljZV8sIC4u
LikgXAorICAgIGlmICghKHNlcnZpY2UpKSB7IFwKKyAgICAgICAgRUlOQV9MT0dfQ1JJVCgic2Vy
dmljZSBpcyBOVUxMLiIpOyBcCisgICAgICAgIHJldHVybiBfX1ZBX0FSR1NfXzsgXAorICAgIH0g
XAorICAgIGlmICghKHNlcnZpY2UpLT53a1NlcnZpY2UpIHsgXAorICAgICAgICBFSU5BX0xPR19D
UklUKCJzZXJ2aWNlLT53a1NlcnZpY2UgaXMgTlVMTC4iKTsgXAorICAgICAgICByZXR1cm4gX19W
QV9BUkdTX187IFwKKyAgICB9IFwKKyAgICBXS0ludGVudFNlcnZpY2VJbmZvUmVmIHdrU2Vydmlj
ZV8gPSAoc2VydmljZSktPndrU2VydmljZS5nZXQoKQorCit2b2lkIGV3a19pbnRlbnRfc2Vydmlj
ZV9yZWYoRXdrX0ludGVudF9TZXJ2aWNlKiBzZXJ2aWNlKQoreworI2lmIEVOQUJMRShXRUJfSU5U
RU5UU19UQUcpCisgICAgRUlOQV9TQUZFVFlfT05fTlVMTF9SRVRVUk4oc2VydmljZSk7CisgICAg
KytzZXJ2aWNlLT5fX3JlZjsKKyNlbmRpZgorfQorCit2b2lkIGV3a19pbnRlbnRfc2VydmljZV91
bnJlZihFd2tfSW50ZW50X1NlcnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRF
TlRTX1RBRykKKyAgICBFSU5BX1NBRkVUWV9PTl9OVUxMX1JFVFVSTihzZXJ2aWNlKTsKKworICAg
IGlmICgtLXNlcnZpY2UtPl9fcmVmKQorICAgICAgICByZXR1cm47CisKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX2RlbChzZXJ2aWNlLT5hY3Rpb24pOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHNl
cnZpY2UtPnR5cGUpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHNlcnZpY2UtPmhyZWYpOwor
ICAgIGVpbmFfc3RyaW5nc2hhcmVfZGVsKHNlcnZpY2UtPnRpdGxlKTsKKyAgICBlaW5hX3N0cmlu
Z3NoYXJlX2RlbChzZXJ2aWNlLT5kaXNwb3NpdGlvbik7CisgICAgZnJlZShzZXJ2aWNlKTsKKyNl
bmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfYWN0aW9uX2dldChjb25z
dCBFd2tfSW50ZW50X1NlcnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRT
X1RBRykKKyAgICBFV0tfSU5URU5UX1NFUlZJQ0VfV0tfR0VUX09SX1JFVFVSTihzZXJ2aWNlLCB3
a1NlcnZpY2UsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IHdrQWN0aW9uKEFk
b3B0V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5QWN0aW9uKHdrU2VydmljZSkpOworICAgIEV3
a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGNvbnN0X2Nhc3Q8RXdrX0ludGVu
dF9TZXJ2aWNlKj4oc2VydmljZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBsYWNlKCZld2tJ
bnRlbnRTZXJ2aWNlLT5hY3Rpb24sIHRvSW1wbCh3a0FjdGlvbi5nZXQoKSktPnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIHNlcnZpY2UtPmFjdGlvbjsKKyNlbHNlCisgICAg
cmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3QgY2hhciogZXdrX2ludGVudF9zZXJ2aWNlX3R5
cGVfZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSogc2VydmljZSkKK3sKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFNfVEFHKQorICAgIEVXS19JTlRFTlRfU0VSVklDRV9XS19HRVRfT1JfUkVUVVJO
KHNlcnZpY2UsIHdrU2VydmljZSwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
d2tUeXBlKEFkb3B0V0ssIFdLSW50ZW50U2VydmljZUluZm9Db3B5VHlwZSh3a1NlcnZpY2UpKTsK
KyAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3
a19JbnRlbnRfU2VydmljZSo+KHNlcnZpY2UpOworICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFj
ZSgmZXdrSW50ZW50U2VydmljZS0+dHlwZSwgdG9JbXBsKHdrVHlwZS5nZXQoKSktPnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpOworCisgICAgcmV0dXJuIHNlcnZpY2UtPnR5cGU7CisjZWxzZQorICAg
IHJldHVybiAwOworI2VuZGlmCit9CisKK2NvbnN0IGNoYXIqIGV3a19pbnRlbnRfc2VydmljZV9o
cmVmX2dldChjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UqIHNlcnZpY2UpCit7CisjaWYgRU5BQkxF
KFdFQl9JTlRFTlRTX1RBRykKKyAgICBFV0tfSU5URU5UX1NFUlZJQ0VfV0tfR0VUX09SX1JFVFVS
TihzZXJ2aWNlLCB3a1NlcnZpY2UsIDApOworCisgICAgV0tSZXRhaW5QdHI8V0tVUkxSZWY+IHdr
SHJlZihBZG9wdFdLLCBXS0ludGVudFNlcnZpY2VJbmZvQ29weUhyZWYod2tTZXJ2aWNlKSk7Cisg
ICAgRXdrX0ludGVudF9TZXJ2aWNlKiBld2tJbnRlbnRTZXJ2aWNlID0gY29uc3RfY2FzdDxFd2tf
SW50ZW50X1NlcnZpY2UqPihzZXJ2aWNlKTsKKyAgICBlaW5hX3N0cmluZ3NoYXJlX3JlcGxhY2Uo
JmV3a0ludGVudFNlcnZpY2UtPmhyZWYsIHRvSW1wbCh3a0hyZWYuZ2V0KCkpLT5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBzZXJ2aWNlLT5ocmVmOworI2Vsc2UKKyAgICBy
ZXR1cm4gMDsKKyNlbmRpZgorfQorCitjb25zdCBjaGFyKiBld2tfaW50ZW50X3NlcnZpY2VfdGl0
bGVfZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSogc2VydmljZSkKK3sKKyNpZiBFTkFCTEUo
V0VCX0lOVEVOVFNfVEFHKQorICAgIEVXS19JTlRFTlRfU0VSVklDRV9XS19HRVRfT1JfUkVUVVJO
KHNlcnZpY2UsIHdrU2VydmljZSwgMCk7CisKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
d2tUaXRsZShBZG9wdFdLLCBXS0ludGVudFNlcnZpY2VJbmZvQ29weVRpdGxlKHdrU2VydmljZSkp
OworICAgIEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSA9IGNvbnN0X2Nhc3Q8
RXdrX0ludGVudF9TZXJ2aWNlKj4oc2VydmljZSk7CisgICAgZWluYV9zdHJpbmdzaGFyZV9yZXBs
YWNlKCZld2tJbnRlbnRTZXJ2aWNlLT50aXRsZSwgdG9JbXBsKHdrVGl0bGUuZ2V0KCkpLT5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKworICAgIHJldHVybiBzZXJ2aWNlLT50aXRsZTsKKyNlbHNl
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKworY29uc3QgY2hhciogZXdrX2ludGVudF9zZXJ2
aWNlX2Rpc3Bvc2l0aW9uX2dldChjb25zdCBFd2tfSW50ZW50X1NlcnZpY2UqIHNlcnZpY2UpCit7
CisjaWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKKyAgICBFV0tfSU5URU5UX1NFUlZJQ0VfV0tf
R0VUX09SX1JFVFVSTihzZXJ2aWNlLCB3a1NlcnZpY2UsIDApOworCisgICAgV0tSZXRhaW5QdHI8
V0tTdHJpbmdSZWY+IHdrRGlzcG9zaXRpb24oQWRvcHRXSywgV0tJbnRlbnRTZXJ2aWNlSW5mb0Nv
cHlEaXNwb3NpdGlvbih3a1NlcnZpY2UpKTsKKyAgICBFd2tfSW50ZW50X1NlcnZpY2UqIGV3a0lu
dGVudFNlcnZpY2UgPSBjb25zdF9jYXN0PEV3a19JbnRlbnRfU2VydmljZSo+KHNlcnZpY2UpOwor
ICAgIGVpbmFfc3RyaW5nc2hhcmVfcmVwbGFjZSgmZXdrSW50ZW50U2VydmljZS0+ZGlzcG9zaXRp
b24sIHRvSW1wbCh3a0Rpc3Bvc2l0aW9uLmdldCgpKS0+c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CisKKyAgICByZXR1cm4gc2VydmljZS0+ZGlzcG9zaXRpb247CisjZWxzZQorICAgIHJldHVybiAw
OworI2VuZGlmCit9CisKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorRXdrX0ludGVudF9T
ZXJ2aWNlKiBld2tfaW50ZW50X3NlcnZpY2VfbmV3KFdLSW50ZW50U2VydmljZUluZm9SZWYgd2tT
ZXJ2aWNlKQoreworICAgIEVJTkFfU0FGRVRZX09OX05VTExfUkVUVVJOX1ZBTCh3a1NlcnZpY2Us
IDApOworCisgICAgRXdrX0ludGVudF9TZXJ2aWNlKiBld2tJbnRlbnRTZXJ2aWNlID0gc3RhdGlj
X2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oY2FsbG9jKDEsIHNpemVvZihFd2tfSW50ZW50X1Nl
cnZpY2UpKSk7CisgICAgZXdrSW50ZW50U2VydmljZS0+X19yZWYgPSAxOworICAgIGV3a0ludGVu
dFNlcnZpY2UtPndrU2VydmljZSA9IHdrU2VydmljZTsKKworICAgIHJldHVybiBld2tJbnRlbnRT
ZXJ2aWNlOworfQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a19pbnRlbnRfc2VydmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLmRlMjJmNmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2VmbC9ld2tfaW50ZW50X3NlcnZpY2UuaApAQCAtMCwwICsxLDEyOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworLyoqCisgKiBAZmlsZSBld2tfaW50ZW50X3NlcnZpY2UuaAorICogQGJy
aWVmIERlc2NyaWJlcyB0aGUgRXdrIEludGVudCBTZXJ2aWNlIEFQSS4KKyAqLworCisjaWZuZGVm
IGV3a19pbnRlbnRfc2VydmljZV9oCisjZGVmaW5lIGV3a19pbnRlbnRfc2VydmljZV9oCisKKyNp
bmNsdWRlIDxFdmFzLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7CisjZW5k
aWYKKworLyoqIENyZWF0ZXMgYSB0eXBlIG5hbWUgZm9yIF9Fd2tfSW50ZW50X1NlcnZpY2UgKi8K
K3R5cGVkZWYgc3RydWN0IF9Fd2tfSW50ZW50X1NlcnZpY2UgRXdrX0ludGVudF9TZXJ2aWNlOwor
CisvKioKKyAqIEluY3JlYXNlcyB0aGUgcmVmZXJlbmNlIGNvdW50IG9mIHRoZSBnaXZlbiBvYmpl
Y3QuCisgKgorICogQHBhcmFtIHNlcnZpY2UgdGhlIGludGVudCBzZXJ2aWNlIG9iamVjdCB0byBp
bmNyZWFzZSB0aGUgcmVmZXJlbmNlIGNvdW50CisgKi8KK0VBUEkgdm9pZCBld2tfaW50ZW50X3Nl
cnZpY2VfcmVmKEV3a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisKKy8qKgorICogRGVjcmVh
c2VzIHRoZSByZWZlcmVuY2UgY291bnQgb2YgdGhlIGdpdmVuIG9iamVjdCwgcG9zc2libHkgZnJl
ZWluZyBpdC4KKyAqCisgKiBXaGVuIHRoZSByZWZlcmVuY2UgY291bnQgaXQncyByZWFjaGVkIDAs
IHRoZSBpbnRlbnQgc2VydmljZSBpcyBmcmVlZC4KKyAqCisgKiBAcGFyYW0gc2VydmljZSB0aGUg
aW50ZW50IHNlcnZpY2Ugb2JqZWN0IHRvIGRlY3JlYXNlIHRoZSByZWZlcmVuY2UgY291bnQKKyAq
LworRUFQSSB2b2lkIGV3a19pbnRlbnRfc2VydmljZV91bnJlZihFd2tfSW50ZW50X1NlcnZpY2Ug
KnNlcnZpY2UpOworCisvKioKKyAqIFF1ZXJ5IGFjdGlvbiBmb3IgdGhpcyBpbnRlbnQgc2Vydmlj
ZS4KKyAqCisgKiBAcGFyYW0gc2VydmljZSBzZXJ2aWNlIGl0ZW0gdG8gcXVlcnkuCisgKgorICog
QHJldHVybiB0aGUgYWN0aW9uIHBvaW50ZXIsIHRoYXQgbWF5IGJlIEBjIE5VTEwuIFRoaXMgcG9p
bnRlciBpcworICogZ3VhcmFudGVlZCB0byBiZSBlaW5hX3N0cmluZ3NoYXJlLCBzbyB3aGVuZXZl
ciBwb3NzaWJsZQorICogc2F2ZSB5b3Vyc2VsZiBzb21lIGNwdSBjeWNsZXMgYW5kIHVzZQorICog
ZWluYV9zdHJpbmdzaGFyZV9yZWYoKSBpbnN0ZWFkIG9mIGVpbmFfc3RyaW5nc2hhcmVfYWRkKCkg
b3IKKyAqIHN0cmR1cCgpLgorICovCitFQVBJIGNvbnN0IGNoYXIgKmV3a19pbnRlbnRfc2Vydmlj
ZV9hY3Rpb25fZ2V0KGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisKKy8qKgor
ICogUXVlcnkgdHlwZSBmb3IgdGhpcyBpbnRlbnQgc2VydmljZS4KKyAqCisgKiBAcGFyYW0gc2Vy
dmljZSBzZXJ2aWNlIGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgdHlwZSBwb2lu
dGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqIGd1YXJhbnRlZWQg
dG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqIHNhdmUgeW91
cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkg
aW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiBzdHJkdXAoKS4KKyAqLwor
RUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfdHlwZV9nZXQoY29uc3QgRXdrX0lu
dGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsKKworLyoqCisgKiBRdWVyeSBVUkwgZm9yIHRoaXMgaW50
ZW50IHNlcnZpY2UuCisgKgorICogQHBhcmFtIHNlcnZpY2Ugc2VydmljZSBpdGVtIHRvIHF1ZXJ5
LgorICoKKyAqIEByZXR1cm4gdGhlIFVSTCBwb2ludGVyLCB0aGF0IG1heSBiZSBAYyBOVUxMLiBU
aGlzIHBvaW50ZXIgaXMKKyAqIGd1YXJhbnRlZWQgdG8gYmUgZWluYV9zdHJpbmdzaGFyZSwgc28g
d2hlbmV2ZXIgcG9zc2libGUKKyAqIHNhdmUgeW91cnNlbGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1
c2UKKyAqIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5zdGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJl
X2FkZCgpIG9yCisgKiBzdHJkdXAoKS4KKyAqLworRUFQSSBjb25zdCBjaGFyICpld2tfaW50ZW50
X3NlcnZpY2VfaHJlZl9nZXQoY29uc3QgRXdrX0ludGVudF9TZXJ2aWNlICpzZXJ2aWNlKTsKKwor
LyoqCisgKiBRdWVyeSB0aXRsZSBmb3IgdGhpcyBpbnRlbnQgc2VydmljZS4KKyAqCisgKiBAcGFy
YW0gc2VydmljZSBzZXJ2aWNlIGl0ZW0gdG8gcXVlcnkuCisgKgorICogQHJldHVybiB0aGUgdGl0
bGUgcG9pbnRlciwgdGhhdCBtYXkgYmUgQGMgTlVMTC4gVGhpcyBwb2ludGVyIGlzCisgKiBndWFy
YW50ZWVkIHRvIGJlIGVpbmFfc3RyaW5nc2hhcmUsIHNvIHdoZW5ldmVyIHBvc3NpYmxlCisgKiBz
YXZlIHlvdXJzZWxmIHNvbWUgY3B1IGN5Y2xlcyBhbmQgdXNlCisgKiBlaW5hX3N0cmluZ3NoYXJl
X3JlZigpIGluc3RlYWQgb2YgZWluYV9zdHJpbmdzaGFyZV9hZGQoKSBvcgorICogc3RyZHVwKCku
CisgKi8KK0VBUEkgY29uc3QgY2hhciAqZXdrX2ludGVudF9zZXJ2aWNlX3RpdGxlX2dldChjb25z
dCBFd2tfSW50ZW50X1NlcnZpY2UgKnNlcnZpY2UpOworCisvKioKKyAqIFF1ZXJ5IGRpc3Bvc2l0
aW9uIGZvciB0aGlzIGludGVudCBzZXJ2aWNlLgorICoKKyAqIEBwYXJhbSBzZXJ2aWNlIHNlcnZp
Y2UgaXRlbSB0byBxdWVyeS4KKyAqCisgKiBAcmV0dXJuIHRoZSBkaXNwb3NpdGlvbiBwb2ludGVy
LCB0aGF0IG1heSBiZSBAYyBOVUxMLiBUaGlzIHBvaW50ZXIgaXMKKyAqIGd1YXJhbnRlZWQgdG8g
YmUgZWluYV9zdHJpbmdzaGFyZSwgc28gd2hlbmV2ZXIgcG9zc2libGUKKyAqIHNhdmUgeW91cnNl
bGYgc29tZSBjcHUgY3ljbGVzIGFuZCB1c2UKKyAqIGVpbmFfc3RyaW5nc2hhcmVfcmVmKCkgaW5z
dGVhZCBvZiBlaW5hX3N0cmluZ3NoYXJlX2FkZCgpIG9yCisgKiBzdHJkdXAoKS4KKyAqLworRUFQ
SSBjb25zdCBjaGFyICpld2tfaW50ZW50X3NlcnZpY2VfZGlzcG9zaXRpb25fZ2V0KGNvbnN0IEV3
a19JbnRlbnRfU2VydmljZSAqc2VydmljZSk7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2Vu
ZGlmCisKKyNlbmRpZiAvLyBld2tfaW50ZW50X3NlcnZpY2VfaApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX2ludGVudF9zZXJ2aWNlX3ByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRfc2VydmljZV9wcml2
YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZmNDkyMwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a19pbnRlbnRf
c2VydmljZV9wcml2YXRlLmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2lmbmRlZiBld2tfaW50ZW50X3NlcnZpY2VfcHJpdmF0ZV9oCisjZGVmaW5lIGV3a19pbnRlbnRf
c2VydmljZV9wcml2YXRlX2gKKworI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisKKyNpbmNs
dWRlIDxXZWJLaXQyL1dLQmFzZS5oPgorCit0eXBlZGVmIHN0cnVjdCBfRXdrX0ludGVudF9TZXJ2
aWNlIEV3a19JbnRlbnRfU2VydmljZTsKKworRXdrX0ludGVudF9TZXJ2aWNlKiBld2tfaW50ZW50
X3NlcnZpY2VfbmV3KFdLSW50ZW50U2VydmljZUluZm9SZWYgd2tTZXJ2aWNlKTsKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisKKyNlbmRpZiAvLyBld2tfaW50ZW50X3NlcnZp
Y2VfcHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmll
dy5jcHAKaW5kZXggYTE5NmE5NS4uZWE5MTJiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcApAQCAtNjQzLDYgKzY0MywxOSBAQCB2b2lkIGV3a192
aWV3X2ltYWdlX2RhdGFfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCB2b2lkKiBpbWFnZURhdGEs
IGNvbnN0IEludFNpegogICAgIGV2YXNfb2JqZWN0X2ltYWdlX2RhdGFfY29weV9zZXQoc21hcnRE
YXRhLT5pbWFnZSwgaW1hZ2VEYXRhKTsKIH0KIAorI2lmIEVOQUJMRShXRUJfSU5URU5UU19UQUcp
CisvKioKKyAqIEBpbnRlcm5hbAorICogVGhlIHZpZXcgcmVjZWl2ZWQgYSBuZXcgaW50ZW50IHNl
cnZpY2UgcmVnaXN0cmF0aW9uLgorICoKKyAqIEVtaXRzIHNpZ25hbDogImludGVudCxzZXJ2aWNl
LHJlZ2lzdGVyIiB3aXRoIHBvaW50ZXIgdG8gYSBFd2tfSW50ZW50X1NlcnZpY2UuCisgKi8KK3Zv
aWQgZXdrX3ZpZXdfaW50ZW50X3NlcnZpY2VfcmVnaXN0ZXIoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSogZXdrSW50ZW50U2VydmljZSkKK3sKKyAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJpbnRlbnQsc2VydmljZSxyZWdp
c3RlciIsIGNvbnN0X2Nhc3Q8RXdrX0ludGVudF9TZXJ2aWNlKj4oZXdrSW50ZW50U2VydmljZSkp
OworfQorI2VuZGlmIC8vIEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisKIFdlYlBhZ2VQcm94eSog
ZXdrX3ZpZXdfcGFnZV9nZXQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgRVdL
X1ZJRVdfU0RfR0VUX09SX1JFVFVSTihld2tWaWV3LCBzbWFydERhdGEsIDApOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmgKaW5kZXggNGRmOGQxOC4uZTA1NjBj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5oCkBAIC0y
Nyw2ICsyNyw3IEBACiAgKiBUaGUgZm9sbG93aW5nIHNpZ25hbHMgKHNlZSBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQoKSkgYXJlIGVtaXR0ZWQ6CiAgKgogICogLSAiaW50ZW50LHJlcXVl
c3QsbmV3IiwgRXdrX0ludGVudF9SZXF1ZXN0KjogcmVwb3J0cyBuZXcgV2ViIGludGVudCByZXF1
ZXN0LgorICogLSAiaW50ZW50LHNlcnZpY2UscmVnaXN0ZXIiLCBFd2tfSW50ZW50X1NlcnZpY2Uq
OiByZXBvcnRzIG5ldyBXZWIgaW50ZW50IHNlcnZpY2UgcmVnaXN0cmF0aW9uLgogICogLSAidGl0
bGUsY2hhbmdlZCIsIGNvbnN0IGNoYXIqOiB0aXRsZSBvZiB0aGUgbWFpbiBmcmFtZSB3YXMgY2hh
bmdlZC4KICAqLwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19sb2FkZXJfY2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZWZsL2V3a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCmluZGV4IDgzZGRmNDguLmM4YTVmNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2xv
YWRlcl9jbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3X2xvYWRlcl9jbGllbnQuY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAjaW5jbHVkZSAiV0tG
cmFtZS5oIgogI2luY2x1ZGUgImV3a19pbnRlbnQuaCIKICNpbmNsdWRlICJld2tfaW50ZW50X3By
aXZhdGUuaCIKKyNpbmNsdWRlICJld2tfaW50ZW50X3NlcnZpY2UuaCIKKyNpbmNsdWRlICJld2tf
aW50ZW50X3NlcnZpY2VfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X2xvYWRlcl9jbGll
bnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlIDx3
dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC01Myw2ICs1NSwxNiBAQCBzdGF0aWMgdm9pZCBkaWRSZWNl
aXZlSW50ZW50Rm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYgZnJhbWUsIFdLSW50
ZW50RAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQorc3RhdGljIHZv
aWQgcmVnaXN0ZXJJbnRlbnRTZXJ2aWNlRm9yRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVS
ZWYgZnJhbWUsIFdLSW50ZW50U2VydmljZUluZm9SZWYgc2VydmljZUluZm8sIGNvbnN0IHZvaWQg
KmNsaWVudEluZm8pCit7CisgICAgRXZhc19PYmplY3QqIGV3a1ZpZXcgPSBzdGF0aWNfY2FzdDxF
dmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKKyAgICBFd2tfSW50
ZW50X1NlcnZpY2UqIGV3a0ludGVudFNlcnZpY2UgPSBld2tfaW50ZW50X3NlcnZpY2VfbmV3KHNl
cnZpY2VJbmZvKTsKKyAgICBld2tfdmlld19pbnRlbnRfc2VydmljZV9yZWdpc3Rlcihld2tWaWV3
LCBld2tJbnRlbnRTZXJ2aWNlKTsKKyAgICBld2tfaW50ZW50X3NlcnZpY2VfdW5yZWYoZXdrSW50
ZW50U2VydmljZSk7Cit9CisjZW5kaWYKKwogdm9pZCBld2tfdmlld19sb2FkZXJfY2xpZW50X2F0
dGFjaChXS1BhZ2VSZWYgcGFnZVJlZiwgRXZhc19PYmplY3QqIGV3a1ZpZXcpCiB7CiAgICAgV0tQ
YWdlTG9hZGVyQ2xpZW50IGxvYWRDbGllbnQ7CkBAIC02Myw1ICs3NSw4IEBAIHZvaWQgZXdrX3Zp
ZXdfbG9hZGVyX2NsaWVudF9hdHRhY2goV0tQYWdlUmVmIHBhZ2VSZWYsIEV2YXNfT2JqZWN0KiBl
d2tWaWV3KQogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKICAgICBsb2FkQ2xpZW50LmRpZFJlY2Vp
dmVJbnRlbnRGb3JGcmFtZSA9IGRpZFJlY2VpdmVJbnRlbnRGb3JGcmFtZTsKICNlbmRpZgorI2lm
IEVOQUJMRShXRUJfSU5URU5UU19UQUcpCisgICAgbG9hZENsaWVudC5yZWdpc3RlckludGVudFNl
cnZpY2VGb3JGcmFtZSA9IHJlZ2lzdGVySW50ZW50U2VydmljZUZvckZyYW1lOworI2VuZGlmCiAg
ICAgV0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudChwYWdlUmVmLCAmbG9hZENsaWVudCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2
YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wcml2YXRl
LmgKaW5kZXggYmQxNTg2Yi4uOGYwMjE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3ByaXZhdGUuaApAQCAtMzMsNiArMzMsOSBAQCBjbGFz
cyBJbnRTaXplOwogI2lmIEVOQUJMRShXRUJfSU5URU5UUykKIHR5cGVkZWYgc3RydWN0IF9Fd2tf
SW50ZW50IEV3a19JbnRlbnQ7CiAjZW5kaWYKKyNpZiBFTkFCTEUoV0VCX0lOVEVOVFNfVEFHKQor
dHlwZWRlZiBzdHJ1Y3QgX0V3a19JbnRlbnRfU2VydmljZSBFd2tfSW50ZW50X1NlcnZpY2U7Cisj
ZW5kaWYKIAogdm9pZCBld2tfdmlld19kaXNwbGF5KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KTsKIHZvaWQgZXdrX3ZpZXdfaW1hZ2VfZGF0YV9zZXQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIHZvaWQqIGltYWdlRGF0YSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSk7CkBAIC00Myw2ICs0Niw5IEBAIEV2YXNfT2JqZWN0KiBld2tfdmlld19iYXNl
X2FkZChFdmFzKiBjYW52YXMsIFdLQ29udGV4dFJlZiwgV0tQYWdlR3JvdXBSZWYpOwogI2lmIEVO
QUJMRShXRUJfSU5URU5UUykKIHZvaWQgZXdrX3ZpZXdfaW50ZW50X3JlcXVlc3RfbmV3KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfSW50ZW50KiBld2tJbnRlbnQpOwogI2VuZGlmCisj
aWYgRU5BQkxFKFdFQl9JTlRFTlRTX1RBRykKK3ZvaWQgZXdrX3ZpZXdfaW50ZW50X3NlcnZpY2Vf
cmVnaXN0ZXIoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19JbnRlbnRfU2VydmljZSog
ZXdrSW50ZW50U2VydmljZSk7CisjZW5kaWYKIAogV2ViS2l0OjpXZWJQYWdlUHJveHkqIGV3a192
aWV3X3BhZ2VfZ2V0KGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>