<?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>4319</bug_id>
          
          <creation_ts>2005-08-07 08:18:44 -0700</creation_ts>
          <short_desc>NetscapeMoviePlugIn example code scripting doesn&apos;t work in Firefox</short_desc>
          <delta_ts>2006-08-28 16:13:56 -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>Plug-ins</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Arnaud">amasson</reporter>
          <assigned_to name="Tim Omernick">timo</assigned_to>
          <cc>alice.barraclough</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>16105</commentid>
    <comment_count>0</comment_count>
    <who name="Arnaud">amasson</who>
    <bug_when>2005-08-07 08:18:44 -0700</bug_when>
    <thetext>The plugin located at /Developer/Examples/WebKit/NetscapeMoviePlugIn in Tiger
works with safari, but in Firefox it crashes when javascript code tries to use
scriptable methods or properties.
I use the the sample html page on the latest Firefox release (1.0.6).

I found in the plugin source that browser-&gt;retainobject() is not called  when a
scriptable method returns a NPObject, which is not conform to the mozilla
implementation of the NSAPI.
(Calling this function seems to fix the problem, but probably causes memory
leaks in Safari.)

I suppose the object lifecycle managment implemented in WebKit follows the
CoreFoundation conventions, ie a getter doesn&apos;t increment the reference counter
of a returned object.

It would be better to follow mozilla conventions (which is the same as XPCOM and
COM) : objects have their ref counts incremented before being returned by a
scriptable function.
In this case the caller has the responsibility to release the ref count of a
returned object when it doesn&apos;t use it anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23620</commentid>
    <comment_count>1</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-03 07:57:03 -0800</bug_when>
    <thetext>RealPlayer has </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23621</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-03 07:57:40 -0800</bug_when>
    <thetext>Since we know that the RealPlayer plug-in works with both Safari and Firefox, and uses the scripting API, 
we know it&apos;s possible. Lets figure out what&apos;s up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>23715</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2005-11-04 08:53:46 -0800</bug_when>
    <thetext>Same as &lt;rdar://problem/4211707&gt; npapi ref count behavior differs with Mozilla, it seems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29487</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-22 15:25:46 -0800</bug_when>
    <thetext>Tim Omernick says that this is *not* the same as &lt;rdar://problem/4211707&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36226</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-14 05:57:48 -0800</bug_when>
    <thetext>The WebKit examples are not part of the open-source project, so this bug belongs in Radar rather than here in the open source bugzilla.

(However we&apos;d like to see that change in the future.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36227</commentid>
    <comment_count>6</comment_count>
      <attachid>7059</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-14 05:59:01 -0800</bug_when>
    <thetext>Created attachment 7059
here&apos;s a patch that should fix the problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36228</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-14 05:59:56 -0800</bug_when>
    <thetext>My patch fixes the problem complained about here, as well as fixing many other small style issues and mistakes in the example. The biggest mistake was that there was a lot of function pointer casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36302</commentid>
    <comment_count>8</comment_count>
    <who name="Arnaud">amasson</who>
    <bug_when>2006-03-14 10:11:27 -0800</bug_when>
    <thetext>I think it doesn&apos;t completely fix the problem even if NetscapeMoviePlugIn is now OK. Now NetscapeMoviePlugIn has probably memory leaks in Safari.

Something must be changed in WebKit itself.
But in this case, I don&apos;t how compatibility with existing WebKit plugins could be maintained...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36309</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-03-14 10:58:31 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; I think it doesn&apos;t completely fix the problem even if NetscapeMoviePlugIn is
&gt; now OK. Now NetscapeMoviePlugIn has probably memory leaks in Safari.
&gt; 
&gt; Something must be changed in WebKit itself.
&gt; But in this case, I don&apos;t how compatibility with existing WebKit plugins could
&gt; be maintained...

Yes, that&apos;s right. I believe Tim has worked the details out. Tim, can you comment here or in another bug or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36597</commentid>
    <comment_count>10</comment_count>
    <who name="Alice Liu">alice.barraclough</who>
    <bug_when>2006-03-16 17:43:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/4481553&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51143</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-30 09:14:59 -0700</bug_when>
    <thetext>Tim says there are still problems with this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>51144</commentid>
    <comment_count>12</comment_count>
      <attachid>7059</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-07-30 09:25:04 -0700</bug_when>
    <thetext>Comment on attachment 7059
here&apos;s a patch that should fix the problem

Clearing review flag on this old patch, since it didn&apos;t solve the whole problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52810</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Omernick">timo</who>
    <bug_when>2006-08-16 18:38:01 -0700</bug_when>
    <thetext>The plug-in needs to be changed to return a retained NPObject from NPP_GetValue().  We also need to change WebKit to expect a retained object back from NPP_GetValue() so that our retain/release rules match other browsers.

I have a patch to fix this, and will be landing it shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54082</commentid>
    <comment_count>14</comment_count>
    <who name="Tim Omernick">timo</who>
    <bug_when>2006-08-28 16:13:24 -0700</bug_when>
    <thetext>Fixed in OpenSource revision 16086, Internal revision 10181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>54083</commentid>
    <comment_count>15</comment_count>
      <attachid>7059</attachid>
    <who name="Tim Omernick">timo</who>
    <bug_when>2006-08-28 16:13:56 -0700</bug_when>
    <thetext>Comment on attachment 7059
here&apos;s a patch that should fix the problem

This is not the patch we landed.  See diffs in OpenSource revision 16086, Internal revision 10181.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>7059</attachid>
            <date>2006-03-14 05:59:01 -0800</date>
            <delta_ts>2006-08-28 16:13:56 -0700</delta_ts>
            <desc>here&apos;s a patch that should fix the problem</desc>
            <filename>SamplePluginPatch.txt</filename>
            <type>text/plain</type>
            <size>22804</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IG1haW4uYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBtYWluLmMJKHJldmlzaW9uIDkxNzApCisrKyBt
YWluLmMJKHdvcmtpbmcgY29weSkKQEAgLTMwLDI0ICszMCwyNSBAQAogIFdIRVRIRVIgVU5ERVIg
VEhFT1JZIE9GIENPTlRSQUNULCBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSksIFNUUklDVCBM
SUFCSUxJVFkgT1IgCiAgT1RIRVJXSVNFLCBFVkVOIElGIEFQUExFIEhBUyBCRUVOIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCisKICNpbXBvcnQgIm1vdmll
LmgiCiAjaW1wb3J0ICJQbHVnaW5PYmplY3QuaCIKIAogTlBOZXRzY2FwZUZ1bmNzKiBicm93c2Vy
OwogCi1OUEVycm9yCQlOUFBfTmV3KE5QTUlNRVR5cGUgcGx1Z2luVHlwZSwgTlBQIGluc3RhbmNl
LCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2hhciogYXJnbltdLCBjaGFyKiBhcmd2W10sIE5Q
U2F2ZWREYXRhKiBzYXZlZCk7Ci1OUEVycm9yCQlOUFBfRGVzdHJveShOUFAgaW5zdGFuY2UsIE5Q
U2F2ZWREYXRhKiogc2F2ZSk7Ci1OUEVycm9yCQlOUFBfU2V0V2luZG93KE5QUCBpbnN0YW5jZSwg
TlBXaW5kb3cqIHdpbmRvdyk7Ci1OUEVycm9yCQlOUFBfTmV3U3RyZWFtKE5QUCBpbnN0YW5jZSwg
TlBNSU1FVHlwZSB0eXBlLCBOUFN0cmVhbSogc3RyZWFtLCBOUEJvb2wgc2Vla2FibGUsIHVpbnQx
Niogc3R5cGUpOwotTlBFcnJvcgkJTlBQX0Rlc3Ryb3lTdHJlYW0oTlBQIGluc3RhbmNlLCBOUFN0
cmVhbSogc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pOwotaW50MzIJCU5QUF9Xcml0ZVJlYWR5KE5Q
UCBpbnN0YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSk7Ci1pbnQzMgkJTlBQX1dyaXRlKE5QUCBpbnN0
YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSwgaW50MzIgb2Zmc2V0LCBpbnQzMiBsZW4sIHZvaWQqIGJ1
ZmZlcik7Ci12b2lkCQlOUFBfU3RyZWFtQXNGaWxlKE5QUCBpbnN0YW5jZSwgTlBTdHJlYW0qIHN0
cmVhbSwgY29uc3QgY2hhciogZm5hbWUpOwotdm9pZAkJTlBQX1ByaW50KE5QUCBpbnN0YW5jZSwg
TlBQcmludCogcGxhdGZvcm1QcmludCk7Ci1pbnQxNgkJTlBQX0hhbmRsZUV2ZW50KE5QUCBpbnN0
YW5jZSwgdm9pZCogZXZlbnQpOwotdm9pZAkJTlBQX1VSTE5vdGlmeShOUFAgaW5zdGFuY2UsIGNv
bnN0IGNoYXIqIFVSTCwgTlBSZWFzb24gcmVhc29uLCB2b2lkKiBub3RpZnlEYXRhKTsKLU5QRXJy
b3IJCU5QUF9HZXRWYWx1ZShOUFAgaW5zdGFuY2UsIE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lk
ICp2YWx1ZSk7Ci1OUEVycm9yCQlOUFBfU2V0VmFsdWUoTlBQIGluc3RhbmNlLCBOUE5WYXJpYWJs
ZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpOworTlBFcnJvciBOUFBfTmV3KE5QTUlNRVR5cGUgcGx1
Z2luVHlwZSwgTlBQIGluc3RhbmNlLCB1aW50MTYgbW9kZSwgaW50MTYgYXJnYywgY2hhciogYXJn
bltdLCBjaGFyKiBhcmd2W10sIE5QU2F2ZWREYXRhKiBzYXZlZCk7CitOUEVycm9yIE5QUF9EZXN0
cm95KE5QUCBpbnN0YW5jZSwgTlBTYXZlZERhdGEqKiBzYXZlKTsKK05QRXJyb3IgTlBQX1NldFdp
bmRvdyhOUFAgaW5zdGFuY2UsIE5QV2luZG93KiB3aW5kb3cpOworTlBFcnJvciBOUFBfTmV3U3Ry
ZWFtKE5QUCBpbnN0YW5jZSwgTlBNSU1FVHlwZSB0eXBlLCBOUFN0cmVhbSogc3RyZWFtLCBOUEJv
b2wgc2Vla2FibGUsIHVpbnQxNiogc3R5cGUpOworTlBFcnJvciBOUFBfRGVzdHJveVN0cmVhbShO
UFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbik7CitpbnQzMiAg
IE5QUF9Xcml0ZVJlYWR5KE5QUCBpbnN0YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSk7CitpbnQzMiAg
IE5QUF9Xcml0ZShOUFAgaW5zdGFuY2UsIE5QU3RyZWFtKiBzdHJlYW0sIGludDMyIG9mZnNldCwg
aW50MzIgbGVuLCB2b2lkKiBidWZmZXIpOwordm9pZCAgICBOUFBfU3RyZWFtQXNGaWxlKE5QUCBp
bnN0YW5jZSwgTlBTdHJlYW0qIHN0cmVhbSwgY29uc3QgY2hhciogZm5hbWUpOwordm9pZCAgICBO
UFBfUHJpbnQoTlBQIGluc3RhbmNlLCBOUFByaW50KiBwbGF0Zm9ybVByaW50KTsKK2ludDE2ICAg
TlBQX0hhbmRsZUV2ZW50KE5QUCBpbnN0YW5jZSwgdm9pZCogZXZlbnQpOwordm9pZCAgICBOUFBf
VVJMTm90aWZ5KE5QUCBpbnN0YW5jZSwgY29uc3QgY2hhciogVVJMLCBOUFJlYXNvbiByZWFzb24s
IHZvaWQqIG5vdGlmeURhdGEpOworTlBFcnJvciBOUFBfR2V0VmFsdWUoTlBQIGluc3RhbmNlLCBO
UFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpOworTlBFcnJvciBOUFBfU2V0VmFsdWUo
TlBQIGluc3RhbmNlLCBOUE5WYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCAqdmFsdWUpOwogCiAjcHJh
Z21hIGV4cG9ydCBvbgogLy8gTWFjaC1vIGVudHJ5IHBvaW50cwpAQCAtNTgsOSArNTksOCBAQAog
aW50IG1haW4oTlBOZXRzY2FwZUZ1bmNzICpicm93c2VyRnVuY3MsIE5QUGx1Z2luRnVuY3MgKnBs
dWdpbkZ1bmNzLCBOUFBfU2h1dGRvd25Qcm9jUHRyICpzaHV0ZG93bik7CiAjcHJhZ21hIGV4cG9y
dCBvZmYKIAotCi10eXBlZGVmIHZvaWQgKCogRnVuY3Rpb25Qb2ludGVyKSAodm9pZCk7Ci10eXBl
ZGVmIHZvaWQgKCogVHJhbnNpdGlvblZlY3RvcikgKHZvaWQpOwordHlwZWRlZiB2b2lkICgqIEZ1
bmN0aW9uUG9pbnRlcikodm9pZCk7Cit0eXBlZGVmIHZvaWQgKCogVHJhbnNpdGlvblZlY3Rvciko
dm9pZCk7CiBzdGF0aWMgRnVuY3Rpb25Qb2ludGVyIGZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3Io
VHJhbnNpdGlvblZlY3Rvcik7CiBzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0VmVjdG9yRm9yRnVu
Y3Rpb25Qb2ludGVyKEZ1bmN0aW9uUG9pbnRlcik7CiAKQEAgLTI5MSw3ICsyOTEsNyBAQAogCiAv
LyBmdW5jdGlvbiBwb2ludGVyIGNvbnZlcnRlcnMKIAotRnVuY3Rpb25Qb2ludGVyIGZ1bmN0aW9u
UG9pbnRlckZvclRWZWN0b3IoVHJhbnNpdGlvblZlY3RvciB0dnApCitzdGF0aWMgRnVuY3Rpb25Q
b2ludGVyIGZ1bmN0aW9uUG9pbnRlckZvclRWZWN0b3IoVHJhbnNpdGlvblZlY3RvciB0dnApCiB7
CiAgICAgY29uc3QgdWludDMyIHRlbXBbNl0gPSB7MHgzRDgwMDAwMCwgMHg2MThDMDAwMCwgMHg4
MDBDMDAwMCwgMHg4MDRDMDAwNCwgMHg3QzA5MDNBNiwgMHg0RTgwMDQyMH07CiAgICAgdWludDMy
ICpuZXdHbHVlID0gTlVMTDsKQEAgLTMxMCw3ICszMTAsNyBAQAogICAgIHJldHVybiAoRnVuY3Rp
b25Qb2ludGVyKW5ld0dsdWU7CiB9CiAKLVRyYW5zaXRpb25WZWN0b3IgdFZlY3RvckZvckZ1bmN0
aW9uUG9pbnRlcihGdW5jdGlvblBvaW50ZXIgZnApCitzdGF0aWMgVHJhbnNpdGlvblZlY3RvciB0
VmVjdG9yRm9yRnVuY3Rpb25Qb2ludGVyKEZ1bmN0aW9uUG9pbnRlciBmcCkKIHsKICAgICBGdW5j
dGlvblBvaW50ZXIgKm5ld0dsdWUgPSBOVUxMOwogICAgIGlmIChmcCAhPSBOVUxMKSB7CkluZGV4
OiBQbHVnaW5PYmplY3QuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBQbHVnaW5PYmplY3QuYwkocmV2aXNpb24g
OTE3MCkKKysrIFBsdWdpbk9iamVjdC5jCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwzNiArMzAsMzcg
QEAKICBXSEVUSEVSIFVOREVSIFRIRU9SWSBPRiBDT05UUkFDVCwgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UpLCBTVFJJQ1QgTElBQklMSVRZIE9SIAogIE9USEVSV0lTRSwgRVZFTiBJRiBBUFBM
RSBIQVMgQkVFTiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwotI2ltcG9ydCAibW92aWUuaCIKKwogI2ltcG9ydCAiUGx1Z2luT2JqZWN0LmgiCi0jaW1wb3J0
ICJNb3ZpZU9iamVjdC5oIgogCi12b2lkIHBsdWdpbkludmFsaWRhdGUgKCk7Ci1ib29sIHBsdWdp
bkhhc1Byb3BlcnR5IChOUENsYXNzICp0aGVDbGFzcywgTlBJZGVudGlmaWVyIG5hbWUpOwotYm9v
bCBwbHVnaW5IYXNNZXRob2QgKE5QQ2xhc3MgKnRoZUNsYXNzLCBOUElkZW50aWZpZXIgbmFtZSk7
Ci12b2lkIHBsdWdpbkdldFByb3BlcnR5IChQbHVnaW5PYmplY3QgKm9iaiwgTlBJZGVudGlmaWVy
IG5hbWUsIE5QVmFyaWFudCAqdmFyaWFudCk7Ci12b2lkIHBsdWdpblNldFByb3BlcnR5IChQbHVn
aW5PYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCAqdmFyaWFu
dCk7Ci12b2lkIHBsdWdpbkludm9rZSAoUGx1Z2luT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBu
YW1lLCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3Vs
dCk7Ci12b2lkIHBsdWdpbkludm9rZURlZmF1bHQgKFBsdWdpbk9iamVjdCAqb2JqLCBOUFZhcmlh
bnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3VsdCk7Ci1OUE9iamVj
dCAqcGx1Z2luQWxsb2NhdGUgKE5QUCBucHAsIE5QQ2xhc3MgKnRoZUNsYXNzKTsKLXZvaWQgcGx1
Z2luRGVhbGxvY2F0ZSAoUGx1Z2luT2JqZWN0ICpvYmopOworI2ltcG9ydCAibW92aWUuaCIKIAot
c3RhdGljIE5QQ2xhc3MgX3BsdWdpbkZ1bmN0aW9uUHRycyA9IHsgCitzdGF0aWMgdm9pZCBwbHVn
aW5JbnZhbGlkYXRlKE5QT2JqZWN0ICpvYmopOworc3RhdGljIGJvb2wgcGx1Z2luSGFzUHJvcGVy
dHkoTlBPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUpOworc3RhdGljIGJvb2wgcGx1Z2lu
SGFzTWV0aG9kKE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lKTsKK3N0YXRpYyBib29s
IHBsdWdpbkdldFByb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBOUFZh
cmlhbnQgKnZhcmlhbnQpOworc3RhdGljIGJvb2wgcGx1Z2luU2V0UHJvcGVydHkoTlBPYmplY3Qg
Km9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCAqdmFyaWFudCk7CitzdGF0
aWMgYm9vbCBwbHVnaW5JbnZva2UoTlBPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIGNv
bnN0IE5QVmFyaWFudCAqYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCAqcmVzdWx0
KTsKK3N0YXRpYyBib29sIHBsdWdpbkludm9rZURlZmF1bHQoTlBPYmplY3QgKm9iaiwgY29uc3Qg
TlBWYXJpYW50ICphcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpOwor
c3RhdGljIE5QT2JqZWN0ICpwbHVnaW5BbGxvY2F0ZShOUFAgbnBwLCBOUENsYXNzICp0aGVDbGFz
cyk7CitzdGF0aWMgdm9pZCBwbHVnaW5EZWFsbG9jYXRlKE5QT2JqZWN0ICpvYmopOworCitzdGF0
aWMgTlBDbGFzcyBwbHVnaW5DbGFzcyA9IHsgCiAgICAgTlBfQ0xBU1NfU1RSVUNUX1ZFUlNJT04s
Ci0gICAgKE5QQWxsb2NhdGVGdW5jdGlvblB0cikgcGx1Z2luQWxsb2NhdGUsIAotICAgIChOUERl
YWxsb2NhdGVGdW5jdGlvblB0cikgcGx1Z2luRGVhbGxvY2F0ZSwgCi0gICAgKE5QSW52YWxpZGF0
ZUZ1bmN0aW9uUHRyKSBwbHVnaW5JbnZhbGlkYXRlLAotICAgIChOUEhhc01ldGhvZEZ1bmN0aW9u
UHRyKSBwbHVnaW5IYXNNZXRob2QsCi0gICAgKE5QSW52b2tlRnVuY3Rpb25QdHIpIHBsdWdpbklu
dm9rZSwKLSAgICAoTlBJbnZva2VEZWZhdWx0RnVuY3Rpb25QdHIpIHBsdWdpbkludm9rZURlZmF1
bHQsCi0gICAgKE5QSGFzUHJvcGVydHlGdW5jdGlvblB0cikgcGx1Z2luSGFzUHJvcGVydHksCi0g
ICAgKE5QR2V0UHJvcGVydHlGdW5jdGlvblB0cikgcGx1Z2luR2V0UHJvcGVydHksCi0gICAgKE5Q
U2V0UHJvcGVydHlGdW5jdGlvblB0cikgcGx1Z2luU2V0UHJvcGVydHksCisgICAgcGx1Z2luQWxs
b2NhdGUsIAorICAgIHBsdWdpbkRlYWxsb2NhdGUsIAorICAgIHBsdWdpbkludmFsaWRhdGUsCisg
ICAgcGx1Z2luSGFzTWV0aG9kLAorICAgIHBsdWdpbkludm9rZSwKKyAgICBwbHVnaW5JbnZva2VE
ZWZhdWx0LAorICAgIHBsdWdpbkhhc1Byb3BlcnR5LAorICAgIHBsdWdpbkdldFByb3BlcnR5LAor
ICAgIHBsdWdpblNldFByb3BlcnR5LAogfTsKICAKIE5QQ2xhc3MgKmdldFBsdWdpbkNsYXNzKHZv
aWQpCiB7Ci0gICAgcmV0dXJuICZfcGx1Z2luRnVuY3Rpb25QdHJzOworICAgIHJldHVybiAmcGx1
Z2luQ2xhc3M7CiB9CiAKIHN0YXRpYyBib29sIGlkZW50aWZpZXJzSW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKQEAgLTgwLDg3ICs4MSw4NSBAQAogICAgICJnZXRNb3ZpZSIKIH07CiAKLXN0YXRpYyB2b2lk
IGluaXRpYWxpemVJZGVudGlmaWVycygpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplSWRlbnRpZmll
cnModm9pZCkKIHsKLSAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVycyAocGx1Z2luUHJv
cGVydHlJZGVudGlmaWVyTmFtZXMsIE5VTV9QUk9QRVJUWV9JREVOVElGSUVSUywgcGx1Z2luUHJv
cGVydHlJZGVudGlmaWVycyk7Ci0gICAgYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcnMgKHBs
dWdpbk1ldGhvZElkZW50aWZpZXJOYW1lcywgTlVNX01FVEhPRF9JREVOVElGSUVSUywgcGx1Z2lu
TWV0aG9kSWRlbnRpZmllcnMpOwotfTsKKyAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVy
cyhwbHVnaW5Qcm9wZXJ0eUlkZW50aWZpZXJOYW1lcywgTlVNX1BST1BFUlRZX0lERU5USUZJRVJT
LCBwbHVnaW5Qcm9wZXJ0eUlkZW50aWZpZXJzKTsKKyAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVu
dGlmaWVycyhwbHVnaW5NZXRob2RJZGVudGlmaWVyTmFtZXMsIE5VTV9NRVRIT0RfSURFTlRJRklF
UlMsIHBsdWdpbk1ldGhvZElkZW50aWZpZXJzKTsKK30KIAotYm9vbCBwbHVnaW5IYXNQcm9wZXJ0
eSAoTlBDbGFzcyAqdGhlQ2xhc3MsIE5QSWRlbnRpZmllciBuYW1lKQorYm9vbCBwbHVnaW5IYXNQ
cm9wZXJ0eShOUE9iamVjdCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSkKIHsKICAgICBpbnQgaTsK
LSAgICBmb3IgKGkgPSAwOyBpIDwgTlVNX1BST1BFUlRZX0lERU5USUZJRVJTOyBpKyspIHsKLSAg
ICAgICAgaWYgKG5hbWUgPT0gcGx1Z2luUHJvcGVydHlJZGVudGlmaWVyc1tpXSl7CisgICAgZm9y
IChpID0gMDsgaSA8IE5VTV9QUk9QRVJUWV9JREVOVElGSUVSUzsgaSsrKQorICAgICAgICBpZiAo
bmFtZSA9PSBwbHVnaW5Qcm9wZXJ0eUlkZW50aWZpZXJzW2ldKQogICAgICAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgICAgIH0KLSAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIHBs
dWdpbkhhc01ldGhvZCAoTlBDbGFzcyAqdGhlQ2xhc3MsIE5QSWRlbnRpZmllciBuYW1lKQorYm9v
bCBwbHVnaW5IYXNNZXRob2QoTlBPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUpCiB7CiAg
ICAgaW50IGk7Ci0gICAgZm9yIChpID0gMDsgaSA8IE5VTV9NRVRIT0RfSURFTlRJRklFUlM7IGkr
KykgewotICAgICAgICBpZiAobmFtZSA9PSBwbHVnaW5NZXRob2RJZGVudGlmaWVyc1tpXSl7Cisg
ICAgZm9yIChpID0gMDsgaSA8IE5VTV9NRVRIT0RfSURFTlRJRklFUlM7IGkrKykKKyAgICAgICAg
aWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmllcnNbaV0pCiAgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQg
cGx1Z2luR2V0UHJvcGVydHkgKFBsdWdpbk9iamVjdCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSwg
TlBWYXJpYW50ICp2YXJpYW50KQorYm9vbCBwbHVnaW5HZXRQcm9wZXJ0eShOUE9iamVjdCAqb2Jq
LCBOUElkZW50aWZpZXIgbmFtZSwgTlBWYXJpYW50ICp2YXJpYW50KQogeworICAgIFBsdWdpbk9i
amVjdCAqcGx1Z2luID0gKFBsdWdpbk9iamVjdCAqKW9iajsKICAgICBpZiAobmFtZSA9PSBwbHVn
aW5Qcm9wZXJ0eUlkZW50aWZpZXJzW0lEX01PVklFX1BST1BFUlRZXSkgewotICAgICAgICB2YXJp
YW50LT50eXBlID0gTlBWYXJpYW50VHlwZV9PYmplY3Q7Ci0gICAgICAgIHZhcmlhbnQtPnZhbHVl
Lm9iamVjdFZhbHVlID0gKE5QT2JqZWN0ICopb2JqLT5tb3ZpZU9iamVjdDsKKyAgICAgICAgTlBP
YmplY3QgKnJlc3VsdE9iaiA9ICZwbHVnaW4tPm1vdmllT2JqZWN0LT5oZWFkZXI7CisgICAgICAg
IGJyb3dzZXItPnJldGFpbm9iamVjdChyZXN1bHRPYmopOworICAgICAgICBPQkpFQ1RfVE9fTlBW
QVJJQU5UKHJlc3VsdE9iaiwgKnZhcmlhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgZWxzZSB7Ci0gICAgICAgIHZhcmlhbnQtPnR5cGUgPSBOUFZhcmlhbnRUeXBlX1ZvaWQ7
Ci0gICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBwbHVnaW5TZXRQcm9wZXJ0eSAo
UGx1Z2luT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQgKnZh
cmlhbnQpCitib29sIHBsdWdpblNldFByb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmll
ciBuYW1lLCBjb25zdCBOUFZhcmlhbnQgKnZhcmlhbnQpCiB7CisgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIHBsdWdpbkludm9rZSAoUGx1Z2luT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBu
YW1lLCBOUFZhcmlhbnQgKmFyZ3MsIHVuc2lnbmVkIGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3Vs
dCkKK2Jvb2wgcGx1Z2luSW52b2tlKE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBj
b25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3Vs
dCkKIHsKKyAgICBQbHVnaW5PYmplY3QgKnBsdWdpbiA9IChQbHVnaW5PYmplY3QgKilvYmo7CiAg
ICAgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmllcnNbSURfR0VUTU9WSUVfTUVUSE9E
XSkgewotICAgICAgICByZXN1bHQtPnR5cGUgPSBOUFZhcmlhbnRUeXBlX09iamVjdDsKLSAgICAg
ICAgcmVzdWx0LT52YWx1ZS5vYmplY3RWYWx1ZSA9IChOUE9iamVjdCAqKW9iai0+bW92aWVPYmpl
Y3Q7CisgICAgICAgIE5QT2JqZWN0ICpyZXN1bHRPYmogPSAmcGx1Z2luLT5tb3ZpZU9iamVjdC0+
aGVhZGVyOworICAgICAgICBicm93c2VyLT5yZXRhaW5vYmplY3QocmVzdWx0T2JqKTsKKyAgICAg
ICAgT0JKRUNUX1RPX05QVkFSSUFOVChyZXN1bHRPYmosICpyZXN1bHQpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgZWxzZQotICAgICAgICByZXN1bHQtPnR5cGUgPSBOUFZhcmlh
bnRUeXBlX1ZvaWQ7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIHBsdWdpbkludm9rZURl
ZmF1bHQgKFBsdWdpbk9iamVjdCAqb2JqLCBOUFZhcmlhbnQgKmFyZ3MsIHVuc2lnbmVkIGFyZ0Nv
dW50LCBOUFZhcmlhbnQgKnJlc3VsdCkKK2Jvb2wgcGx1Z2luSW52b2tlRGVmYXVsdChOUE9iamVj
dCAqb2JqLCBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlh
bnQgKnJlc3VsdCkKIHsKLSAgICByZXN1bHQtPnR5cGUgPSBOUFZhcmlhbnRUeXBlX1ZvaWQ7Cisg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIHBsdWdpbkludmFsaWRhdGUgKCkKK3ZvaWQgcGx1
Z2luSW52YWxpZGF0ZShOUE9iamVjdCAqb2JqKQogewotICAgIC8vIE1ha2Ugc3VyZSB3ZSd2ZSBy
ZWxlYXNlZCBhbnkgcmVtYWluZ2luZyByZWZlcmVuY2VzIHRvIEphdmFTY3JpcHQKLSAgICAvLyBv
YmplY3RzLgorICAgIC8vIFJlbGVhc2UgYW55IHJlbWFpbmluZyByZWZlcmVuY2VzIHRvIEphdmFT
Y3JpcHQgb2JqZWN0cy4KIH0KIAotTlBPYmplY3QgKnBsdWdpbkFsbG9jYXRlIChOUFAgbnBwLCBO
UENsYXNzICp0aGVDbGFzcykKK05QT2JqZWN0ICpwbHVnaW5BbGxvY2F0ZShOUFAgbnBwLCBOUENs
YXNzICp0aGVDbGFzcykKIHsKLSAgICBQbHVnaW5PYmplY3QgKm5ld0luc3RhbmNlID0gKFBsdWdp
bk9iamVjdCAqKW1hbGxvYyAoc2l6ZW9mKFBsdWdpbk9iamVjdCkpOworICAgIFBsdWdpbk9iamVj
dCAqbmV3SW5zdGFuY2UgPSBtYWxsb2Moc2l6ZW9mKFBsdWdpbk9iamVjdCkpOwogICAgIAogICAg
IGlmICghaWRlbnRpZmllcnNJbml0aWFsaXplZCkgewogICAgICAgICBpZGVudGlmaWVyc0luaXRp
YWxpemVkID0gdHJ1ZTsKICAgICAgICAgaW5pdGlhbGl6ZUlkZW50aWZpZXJzKCk7CiAgICAgfQog
Ci0gICAgbmV3SW5zdGFuY2UtPm1vdmllT2JqZWN0ID0gKE1vdmllT2JqZWN0ICopYnJvd3Nlci0+
Y3JlYXRlb2JqZWN0IChucHAsIGdldE1vdmllQ2xhc3MoKSk7CisgICAgbmV3SW5zdGFuY2UtPm1v
dmllT2JqZWN0ID0gKE1vdmllT2JqZWN0ICopYnJvd3Nlci0+Y3JlYXRlb2JqZWN0KG5wcCwgZ2V0
TW92aWVDbGFzcygpKTsKICAgICBuZXdJbnN0YW5jZS0+bnBwID0gbnBwOwotICAgIAotICAgIHJl
dHVybiAoTlBPYmplY3QgKiluZXdJbnN0YW5jZTsKKworICAgIHJldHVybiAmbmV3SW5zdGFuY2Ut
PmhlYWRlcjsKIH0KIAotdm9pZCBwbHVnaW5EZWFsbG9jYXRlIChQbHVnaW5PYmplY3QgKm9iaikg
Cit2b2lkIHBsdWdpbkRlYWxsb2NhdGUoTlBPYmplY3QgKm9iaikgCiB7Ci0gICAgZnJlZSAoKHZv
aWQgKilvYmopOworICAgIGZyZWUob2JqKTsKIH0KLQpJbmRleDogTW92aWVPYmplY3QuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBNb3ZpZU9iamVjdC5jCShyZXZpc2lvbiA5MTcwKQorKysgTW92aWVPYmplY3Qu
Ywkod29ya2luZyBjb3B5KQpAQCAtMzAsMzUgKzMwLDM3IEBACiAgV0hFVEhFUiBVTkRFUiBUSEVP
UlkgT0YgQ09OVFJBQ1QsIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFKSwgU1RSSUNUIExJQUJJ
TElUWSBPUiAKICBPVEhFUldJU0UsIEVWRU4gSUYgQVBQTEUgSEFTIEJFRU4gQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KLSNpbXBvcnQgIm1vdmllLmgiCisK
ICNpbXBvcnQgIk1vdmllT2JqZWN0LmgiCiAKLXN0YXRpYyB2b2lkIG1vdmllSW52YWxpZGF0ZSAo
KTsKLXN0YXRpYyBib29sIG1vdmllSGFzUHJvcGVydHkgKE5QQ2xhc3MgKnRoZUNsYXNzLCBOUElk
ZW50aWZpZXIgbmFtZSk7Ci1zdGF0aWMgYm9vbCBtb3ZpZUhhc01ldGhvZCAoTlBDbGFzcyAqdGhl
Q2xhc3MsIE5QSWRlbnRpZmllciBuYW1lKTsKLXN0YXRpYyB2b2lkIG1vdmllR2V0UHJvcGVydHkg
KE1vdmllT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBOUFZhcmlhbnQgKnZhcmlhbnQp
Owotc3RhdGljIHZvaWQgbW92aWVTZXRQcm9wZXJ0eSAoTW92aWVPYmplY3QgKm9iaiwgTlBJZGVu
dGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCAqdmFyaWFudCk7Ci1zdGF0aWMgdm9pZCBtb3Zp
ZUludm9rZSAoTW92aWVPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFyaWFudCAq
YXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCAqcmVzdWx0KTsKLXN0YXRpYyB2b2lk
IG1vdmllSW52b2tlRGVmYXVsdCAoTW92aWVPYmplY3QgKm9iaiwgTlBWYXJpYW50ICphcmdzLCB1
aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpOwotc3RhdGljIE5QT2JqZWN0ICpt
b3ZpZUFsbG9jYXRlICgpOwotc3RhdGljIHZvaWQgbW92aWVEZWFsbG9jYXRlIChNb3ZpZU9iamVj
dCAqb2JqKTsKKyNpbXBvcnQgIm1vdmllLmgiCiAKLXN0YXRpYyBOUENsYXNzIF9tb3ZpZUZ1bmN0
aW9uUHRycyA9IHsgCitzdGF0aWMgdm9pZCBtb3ZpZUludmFsaWRhdGUoTlBPYmplY3QgKm9iaik7
CitzdGF0aWMgYm9vbCBtb3ZpZUhhc1Byb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmll
ciBuYW1lKTsKK3N0YXRpYyBib29sIG1vdmllSGFzTWV0aG9kKE5QT2JqZWN0ICpvYmosIE5QSWRl
bnRpZmllciBuYW1lKTsKK3N0YXRpYyBib29sIG1vdmllR2V0UHJvcGVydHkoTlBPYmplY3QgKm9i
aiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFyaWFudCAqdmFyaWFudCk7CitzdGF0aWMgYm9vbCBt
b3ZpZVNldFByb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBO
UFZhcmlhbnQgKnZhcmlhbnQpOworc3RhdGljIGJvb2wgbW92aWVJbnZva2UoTlBPYmplY3QgKm9i
aiwgTlBJZGVudGlmaWVyIG5hbWUsIGNvbnN0IE5QVmFyaWFudCAqYXJncywgdWludDMyX3QgYXJn
Q291bnQsIE5QVmFyaWFudCAqcmVzdWx0KTsKK3N0YXRpYyBib29sIG1vdmllSW52b2tlRGVmYXVs
dChOUE9iamVjdCAqb2JqLCBjb25zdCBOUFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50
LCBOUFZhcmlhbnQgKnJlc3VsdCk7CitzdGF0aWMgTlBPYmplY3QgKm1vdmllQWxsb2NhdGUoTlBQ
IG5wcCwgTlBDbGFzcyAqdGhlQ2xhc3MpOworc3RhdGljIHZvaWQgbW92aWVEZWFsbG9jYXRlKE5Q
T2JqZWN0ICpvYmopOworCitzdGF0aWMgTlBDbGFzcyBtb3ZpZUNsYXNzID0geyAKICAgICBOUF9D
TEFTU19TVFJVQ1RfVkVSU0lPTiwKLSAgICAoTlBBbGxvY2F0ZUZ1bmN0aW9uUHRyKSBtb3ZpZUFs
bG9jYXRlLCAKLSAgICAoTlBEZWFsbG9jYXRlRnVuY3Rpb25QdHIpIG1vdmllRGVhbGxvY2F0ZSwg
Ci0gICAgKE5QSW52YWxpZGF0ZUZ1bmN0aW9uUHRyKSBtb3ZpZUludmFsaWRhdGUsCi0gICAgKE5Q
SGFzTWV0aG9kRnVuY3Rpb25QdHIpIG1vdmllSGFzTWV0aG9kLAotICAgIChOUEludm9rZUZ1bmN0
aW9uUHRyKSBtb3ZpZUludm9rZSwKLSAgICAoTlBJbnZva2VEZWZhdWx0RnVuY3Rpb25QdHIpIG1v
dmllSW52b2tlRGVmYXVsdCwKLSAgICAoTlBIYXNQcm9wZXJ0eUZ1bmN0aW9uUHRyKSBtb3ZpZUhh
c1Byb3BlcnR5LAotICAgIChOUEdldFByb3BlcnR5RnVuY3Rpb25QdHIpIG1vdmllR2V0UHJvcGVy
dHksCi0gICAgKE5QU2V0UHJvcGVydHlGdW5jdGlvblB0cikgbW92aWVTZXRQcm9wZXJ0eSwKKyAg
ICBtb3ZpZUFsbG9jYXRlLCAKKyAgICBtb3ZpZURlYWxsb2NhdGUsIAorICAgIG1vdmllSW52YWxp
ZGF0ZSwKKyAgICBtb3ZpZUhhc01ldGhvZCwKKyAgICBtb3ZpZUludm9rZSwKKyAgICBtb3ZpZUlu
dm9rZURlZmF1bHQsCisgICAgbW92aWVIYXNQcm9wZXJ0eSwKKyAgICBtb3ZpZUdldFByb3BlcnR5
LAorICAgIG1vdmllU2V0UHJvcGVydHksCiB9OwogCiBOUENsYXNzICpnZXRNb3ZpZUNsYXNzKHZv
aWQpCiB7Ci0gICAgcmV0dXJuICZfbW92aWVGdW5jdGlvblB0cnM7CisgICAgcmV0dXJuICZtb3Zp
ZUNsYXNzOwogfQogCiBzdGF0aWMgYm9vbCBpZGVudGlmaWVyc0luaXRpYWxpemVkID0gZmFsc2U7
CkBAIC04MSw5MSArODMsOTkgQEAKICAgICAicGF1c2UiCiB9OwogCi1zdGF0aWMgdm9pZCBpbml0
aWFsaXplSWRlbnRpZmllcnMoKQorc3RhdGljIHZvaWQgaW5pdGlhbGl6ZUlkZW50aWZpZXJzKHZv
aWQpCiB7Ci0gICAgYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcnMgKG1vdmllUHJvcGVydHlJ
ZGVudGlmaWVyTmFtZXMsIE5VTV9QUk9QRVJUWV9JREVOVElGSUVSUywgbW92aWVQcm9wZXJ0eUlk
ZW50aWZpZXJzKTsKLSAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVycyAobW92aWVNZXRo
b2RJZGVudGlmaWVyTmFtZXMsIE5VTV9NRVRIT0RfSURFTlRJRklFUlMsIG1vdmllTWV0aG9kSWRl
bnRpZmllcnMpOwotfTsKKyAgICBicm93c2VyLT5nZXRzdHJpbmdpZGVudGlmaWVycyhtb3ZpZVBy
b3BlcnR5SWRlbnRpZmllck5hbWVzLCBOVU1fUFJPUEVSVFlfSURFTlRJRklFUlMsIG1vdmllUHJv
cGVydHlJZGVudGlmaWVycyk7CisgICAgYnJvd3Nlci0+Z2V0c3RyaW5naWRlbnRpZmllcnMobW92
aWVNZXRob2RJZGVudGlmaWVyTmFtZXMsIE5VTV9NRVRIT0RfSURFTlRJRklFUlMsIG1vdmllTWV0
aG9kSWRlbnRpZmllcnMpOworfQogCi1ib29sIG1vdmllSGFzUHJvcGVydHkgKE5QQ2xhc3MgKnRo
ZUNsYXNzLCBOUElkZW50aWZpZXIgbmFtZSkKK2Jvb2wgbW92aWVIYXNQcm9wZXJ0eShOUE9iamVj
dCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSkKIHsKICAgICBpbnQgaTsKLSAgICBmb3IgKGkgPSAw
OyBpIDwgTlVNX1BST1BFUlRZX0lERU5USUZJRVJTOyBpKyspIHsKLSAgICAgICAgaWYgKG5hbWUg
PT0gbW92aWVQcm9wZXJ0eUlkZW50aWZpZXJzW2ldKXsKKyAgICBmb3IgKGkgPSAwOyBpIDwgTlVN
X1BST1BFUlRZX0lERU5USUZJRVJTOyBpKyspCisgICAgICAgIGlmIChuYW1lID09IG1vdmllUHJv
cGVydHlJZGVudGlmaWVyc1tpXSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
Ci0gICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBtb3ZpZUhhc01ldGhvZCAoTlBD
bGFzcyAqdGhlQ2xhc3MsIE5QSWRlbnRpZmllciBuYW1lKQorYm9vbCBtb3ZpZUhhc01ldGhvZChO
UE9iamVjdCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSkKIHsKICAgICBpbnQgaTsKLSAgICBmb3Ig
KGkgPSAwOyBpIDwgTlVNX01FVEhPRF9JREVOVElGSUVSUzsgaSsrKSB7Ci0gICAgICAgIGlmIChu
YW1lID09IG1vdmllTWV0aG9kSWRlbnRpZmllcnNbaV0peworICAgIGZvciAoaSA9IDA7IGkgPCBO
VU1fTUVUSE9EX0lERU5USUZJRVJTOyBpKyspCisgICAgICAgIGlmIChuYW1lID09IG1vdmllTWV0
aG9kSWRlbnRpZmllcnNbaV0pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQot
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgbW92aWVHZXRQcm9wZXJ0eSAoTW92
aWVPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFyaWFudCAqdmFyaWFudCkKK2Jv
b2wgbW92aWVHZXRQcm9wZXJ0eShOUE9iamVjdCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSwgTlBW
YXJpYW50ICp2YXJpYW50KQogeworICAgIE1vdmllT2JqZWN0ICptb3ZpZU9iaiA9IChNb3ZpZU9i
amVjdCAqKW9iajsKICAgICBpZiAobmFtZSA9PSBtb3ZpZVByb3BlcnR5SWRlbnRpZmllcnNbSURf
TVVURURfUFJPUEVSVFldKSB7Ci0gICAgICAgIHZhcmlhbnQtPnR5cGUgPSBOUFZhcmlhbnRUeXBl
X0Jvb2w7Ci0gICAgICAgIHZhcmlhbnQtPnZhbHVlLmJvb2xWYWx1ZSA9IElzTW92aWVNdXRlZCAo
b2JqKTsKKyAgICAgICAgQk9PTEVBTl9UT19OUFZBUklBTlQoSXNNb3ZpZU11dGVkKG1vdmllT2Jq
KSwgKnZhcmlhbnQpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgZWxzZSB7Ci0g
ICAgICAgIHZhcmlhbnQtPnR5cGUgPSBOUFZhcmlhbnRUeXBlX1ZvaWQ7Ci0gICAgfQorICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotdm9pZCBtb3ZpZVNldFByb3BlcnR5IChNb3ZpZU9iamVjdCAqb2Jq
LCBOUElkZW50aWZpZXIgbmFtZSwgY29uc3QgTlBWYXJpYW50ICp2YXJpYW50KQorYm9vbCBtb3Zp
ZVNldFByb3BlcnR5KE5QT2JqZWN0ICpvYmosIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZh
cmlhbnQgKnZhcmlhbnQpCiB7CisgICAgTW92aWVPYmplY3QgKm1vdmllT2JqID0gKE1vdmllT2Jq
ZWN0ICopb2JqOwogICAgIGlmIChuYW1lID09IG1vdmllUHJvcGVydHlJZGVudGlmaWVyc1tJRF9N
VVRFRF9QUk9QRVJUWV0pIHsKLSAgICAgICAgaWYgKHZhcmlhbnQtPnR5cGUgPT0gTlBWYXJpYW50
VHlwZV9Cb29sKSB7Ci0gICAgICAgICAgICBTZXRNb3ZpZU11dGVkIChvYmosIHZhcmlhbnQtPnZh
bHVlLmJvb2xWYWx1ZSk7CisgICAgICAgIGlmIChOUFZBUklBTlRfSVNfQk9PTEVBTigqdmFyaWFu
dCkpIHsKKyAgICAgICAgICAgIFNldE1vdmllTXV0ZWQobW92aWVPYmosIE5QVkFSSUFOVF9UT19C
T09MRUFOKCp2YXJpYW50KSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQorICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBtb3ZpZUludm9rZSAoTW92aWVPYmplY3QgKm9iaiwgTlBJZGVudGlmaWVyIG5hbWUsIE5QVmFy
aWFudCAqYXJncywgdW5zaWduZWQgYXJnQ291bnQsIE5QVmFyaWFudCAqcmVzdWx0KQorYm9vbCBt
b3ZpZUludm9rZShOUE9iamVjdCAqb2JqLCBOUElkZW50aWZpZXIgbmFtZSwgY29uc3QgTlBWYXJp
YW50ICphcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50ICpyZXN1bHQpCiB7CisgICAg
TW92aWVPYmplY3QgKm1vdmllT2JqID0gKE1vdmllT2JqZWN0ICopb2JqOwogICAgIGlmIChuYW1l
ID09IG1vdmllTWV0aG9kSWRlbnRpZmllcnNbSURfUExBWV9NRVRIT0RdKSB7Ci0gICAgICAgIFBs
YXlNb3ZpZSAob2JqKTsKKyAgICAgICAgUGxheU1vdmllKG1vdmllT2JqKTsKKyAgICAgICAgVk9J
RF9UT19OUFZBUklBTlQoKnJlc3VsdCk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAg
ICBlbHNlIGlmIChuYW1lID09IG1vdmllTWV0aG9kSWRlbnRpZmllcnNbSURfUEFVU0VfTUVUSE9E
XSkgewotICAgICAgICBQYXVzZU1vdmllIChvYmopOworICAgIGlmIChuYW1lID09IG1vdmllTWV0
aG9kSWRlbnRpZmllcnNbSURfUEFVU0VfTUVUSE9EXSkgeworICAgICAgICBQYXVzZU1vdmllKG1v
dmllT2JqKTsKKyAgICAgICAgVk9JRF9UT19OUFZBUklBTlQoKnJlc3VsdCk7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KLSAgICByZXN1bHQtPnR5cGUgPSBOUFZhcmlhbnRUeXBlX1ZvaWQ7
CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIG1vdmllSW52b2tlRGVmYXVsdCAoTW92aWVP
YmplY3QgKm9iaiwgTlBWYXJpYW50ICphcmdzLCB1bnNpZ25lZCBhcmdDb3VudCwgTlBWYXJpYW50
ICpyZXN1bHQpCitib29sIG1vdmllSW52b2tlRGVmYXVsdChOUE9iamVjdCAqb2JqLCBjb25zdCBO
UFZhcmlhbnQgKmFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQgKnJlc3VsdCkKIHsK
LSAgICBpZiAoYXJnQ291bnQgPT0gMSl7CisgICAgTW92aWVPYmplY3QgKm1vdmllT2JqID0gKE1v
dmllT2JqZWN0ICopb2JqOworICAgIGlmIChhcmdDb3VudCA9PSAxKSB7CiAgICAgICAgIGlmIChO
UFZBUklBTlRfSVNfU1RSSU5HKGFyZ3NbMF0pKSB7CiAgICAgICAgICAgICBOUFN0cmluZyBzdHJp
bmcgPSBOUFZBUklBTlRfVE9fU1RSSU5HKGFyZ3NbMF0pOwotICAgICAgICAgICAgaWYgKHN0cm5j
bXAgKHN0cmluZy5VVEY4Q2hhcmFjdGVycywgInBsYXkiLCBzdHJpbmcuVVRGOExlbmd0aCkgPT0g
MCkgewotICAgICAgICAgICAgICAgIFBsYXlNb3ZpZSAob2JqKTsKKyAgICAgICAgICAgIGlmIChz
dHJuY21wKHN0cmluZy5VVEY4Q2hhcmFjdGVycywgInBsYXkiLCBzdHJpbmcuVVRGOExlbmd0aCkg
PT0gMCkgeworICAgICAgICAgICAgICAgIFBsYXlNb3ZpZShtb3ZpZU9iaik7CisgICAgICAgICAg
ICAgICAgVk9JRF9UT19OUFZBUklBTlQoKnJlc3VsdCk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBlbHNlIGlmIChzdHJuY21wIChzdHJp
bmcuVVRGOENoYXJhY3RlcnMsICJwYXVzZSIsIHN0cmluZy5VVEY4TGVuZ3RoKSA9PSAwKSB7Ci0g
ICAgICAgICAgICAgICAgUGF1c2VNb3ZpZSAob2JqKTsKKyAgICAgICAgICAgIGlmIChzdHJuY21w
KHN0cmluZy5VVEY4Q2hhcmFjdGVycywgInBhdXNlIiwgc3RyaW5nLlVURjhMZW5ndGgpID09IDAp
IHsKKyAgICAgICAgICAgICAgICBQYXVzZU1vdmllKG1vdmllT2JqKTsKKyAgICAgICAgICAgICAg
ICBWT0lEX1RPX05QVkFSSUFOVCgqcmVzdWx0KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICByZXN1bHQtPnR5
cGUgPSBOUFZhcmlhbnRUeXBlX1ZvaWQ7CisgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIG1v
dmllSW52YWxpZGF0ZSAoKQordm9pZCBtb3ZpZUludmFsaWRhdGUoTlBPYmplY3QgKm9iaikKIHsK
LSAgICAvLyBNYWtlIHN1cmUgd2UndmUgcmVsZWFzZWQgYW55IHJlbWFpbmdpbmcgcmVmZXJlbmNl
cyB0byBKYXZhU2NyaXB0Ci0gICAgLy8gb2JqZWN0cy4KKyAgICAvLyBSZWxlYXNlIGFueSByZW1h
aW5pbmcgcmVmZXJlbmNlcyB0byBKYXZhU2NyaXB0IG9iamVjdHMuCiB9CiAKLU5QT2JqZWN0ICpt
b3ZpZUFsbG9jYXRlIChOUFAgbnBwLCBOUENsYXNzICpjbGFzcykKK05QT2JqZWN0ICptb3ZpZUFs
bG9jYXRlKE5QUCBucHAsIE5QQ2xhc3MgKnRoZUNsYXNzKQogewotICAgIE1vdmllT2JqZWN0ICpu
ZXdJbnN0YW5jZSA9IChNb3ZpZU9iamVjdCAqKW1hbGxvYyAoc2l6ZW9mKE1vdmllT2JqZWN0KSk7
CisgICAgTW92aWVPYmplY3QgKm5ld0luc3RhbmNlID0gbWFsbG9jKHNpemVvZihNb3ZpZU9iamVj
dCkpOwogICAgIAogICAgIGlmICghaWRlbnRpZmllcnNJbml0aWFsaXplZCkgewogICAgICAgICBp
ZGVudGlmaWVyc0luaXRpYWxpemVkID0gdHJ1ZTsKQEAgLTE3NCwyNSArMTg0LDI1IEBACiAgICAg
bmV3SW5zdGFuY2UtPm1vdmllID0gMDsKICAgICBuZXdJbnN0YW5jZS0+Y29udHJvbGxlciA9IDA7
CiAgICAgCi0gICAgcmV0dXJuIChOUE9iamVjdCAqKW5ld0luc3RhbmNlOworICAgIHJldHVybiAm
bmV3SW5zdGFuY2UtPmhlYWRlcjsKIH0KIAotdm9pZCBtb3ZpZURlYWxsb2NhdGUgKE1vdmllT2Jq
ZWN0ICpvYmopIAordm9pZCBtb3ZpZURlYWxsb2NhdGUoTlBPYmplY3QgKm9iaikgCiB7Ci0gICAg
ZnJlZSAob2JqKTsKKyAgICBmcmVlKG9iaik7CiB9CiAKIC8vIC0tLS0tLSBBY3R1YWwgaW1wbGVt
ZW50YXRpb24gb2YgcGx1Z2luIG1vdmllIHBsYXlpbmcgZnVuY3Rpb25hbGl0eS4KIAotYm9vbCBM
b2FkTW92aWVGcm9tRmlsZShNb3ZpZSAqbW92aWUsIGNvbnN0IGNoYXIqIGZuYW1lKQorYm9vbCBM
b2FkTW92aWVGcm9tRmlsZShNb3ZpZSAqbW92aWUsIGNvbnN0IGNoYXIgKmZuYW1lKQogeyAgICAK
ICAgICBPU0VyciBlcnI7CiAgICAgRlNTcGVjIHNwZWM7CiAgICAgCi0gICAgaWYgKHN0cm5jbXAo
Zm5hbWUsICIvIiwgMSkgPT0gMCkgeworICAgIGlmIChmbmFtZVswXSA9PSAnLycpIHsKICAgICAg
ICAgLy8gQnJvd3NlciBoYW5kZWQgdXMgYSBQT1NJWCBwYXRoLgogICAgICAgICBGU1JlZiBmcmVm
OwotICAgICAgICBlcnIgPSBGU1BhdGhNYWtlUmVmKChjb25zdCBVSW50OCAqKSBmbmFtZSwgJmZy
ZWYsIE5VTEwpOworICAgICAgICBlcnIgPSBGU1BhdGhNYWtlUmVmKChjb25zdCBVSW50OCAqKWZu
YW1lLCAmZnJlZiwgTlVMTCk7CiAgICAgICAgIGlmIChlcnIgIT0gbm9FcnIpIHsKICAgICAgICAg
ICAgIHByaW50ZigiRlNQYXRoTWFrZVJlZiBmYWlsZWQgJWRcbiIsIGVycik7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yNjYsNyArMjc2LDcgQEAKIAogI2RlZmluZSBrTW92aWVDb250
cm9sbGVySGVpZ2h0IDE2CiAKLXZvaWQgVXBkYXRlTW92aWVGcmFtZSAoTW92aWVPYmplY3QgKm9i
aiwgTlBXaW5kb3cgKndpbmRvdykgCit2b2lkIFVwZGF0ZU1vdmllRnJhbWUoTW92aWVPYmplY3Qg
Km9iaiwgTlBXaW5kb3cgKndpbmRvdykgCiB7ICAgCiAgICAgaWYgKG9iai0+bW92aWUgIT0gTlVM
TCAmJiBvYmotPmNvbnRyb2xsZXIgIT0gTlVMTCkgewogICAgICAgICBSZWN0IHJlY3Q7CkBAIC0y
NzksMzggKzI4OSwzNSBAQAogICAgIH0KIH0KIAotdm9pZCBQbGF5TW92aWUgKE1vdmllT2JqZWN0
ICpvYmopCit2b2lkIFBsYXlNb3ZpZShNb3ZpZU9iamVjdCAqb2JqKQogewotICAgIGlmIChvYmot
Pm1vdmllICE9IE5VTEwpIHsKKyAgICBpZiAob2JqLT5tb3ZpZSAhPSBOVUxMKQogICAgICAgICBT
dGFydE1vdmllKG9iai0+bW92aWUpOwotICAgIH0KIH0KIAotdm9pZCBQYXVzZU1vdmllIChNb3Zp
ZU9iamVjdCAqb2JqKQordm9pZCBQYXVzZU1vdmllKE1vdmllT2JqZWN0ICpvYmopCiB7Ci0gICAg
aWYgKG9iai0+bW92aWUgIT0gTlVMTCkgeworICAgIGlmIChvYmotPm1vdmllICE9IE5VTEwpCiAg
ICAgICAgIFN0b3BNb3ZpZShvYmotPm1vdmllKTsKLSAgICB9CiB9CiAKLWJvb2wgSXNNb3ZpZU11
dGVkIChNb3ZpZU9iamVjdCAqb2JqKQorYm9vbCBJc01vdmllTXV0ZWQoTW92aWVPYmplY3QgKm9i
aikKIHsKLSAgICBzaG9ydCB2b2wgPSBHZXRNb3ZpZVZvbHVtZSAob2JqLT5tb3ZpZSk7CisgICAg
c2hvcnQgdm9sID0gR2V0TW92aWVWb2x1bWUob2JqLT5tb3ZpZSk7CiAgICAgZmxvYXQgdiA9IHZv
bC8yNTYuOwogICAgIHJldHVybiB2IDwgMDsKIH0KIAotdm9pZCBTZXRNb3ZpZU11dGVkIChNb3Zp
ZU9iamVjdCAqb2JqLCBib29sIG11dGUpCit2b2lkIFNldE1vdmllTXV0ZWQoTW92aWVPYmplY3Qg
Km9iaiwgYm9vbCBtdXRlKQogewotICAgIHNob3J0IHZvbCA9IEdldE1vdmllVm9sdW1lIChvYmot
Pm1vdmllKTsKKyAgICBzaG9ydCB2b2wgPSBHZXRNb3ZpZVZvbHVtZShvYmotPm1vdmllKTsKICAg
ICBmbG9hdCB2ID0gdm9sLzI1Ni47CiAKLSAgICBpZiAoKG11dGUgJiYgKHYgPiAwKSkgfHwgKCFt
dXRlICYmICh2IDwgMCkpKSB7CisgICAgaWYgKChtdXRlICYmICh2ID4gMCkpIHx8ICghbXV0ZSAm
JiAodiA8IDApKSkKICAgICAgICAgU2V0TW92aWVWb2x1bWUgKG9iai0+bW92aWUsIC12KjI1Nik7
Ci0gICAgfQogfQogCi12b2lkIERlc3Ryb3lNb3ZpZSAoTW92aWVPYmplY3QgKm9iaikKK3ZvaWQg
RGVzdHJveU1vdmllKE1vdmllT2JqZWN0ICpvYmopCiB7CiAgICAgUGF1c2VNb3ZpZShvYmopOwog
ICAgIGlmIChvYmotPmNvbnRyb2xsZXIgIT0gTlVMTCkgewpAQCAtMzI1LDEwICszMzIsNyBAQAog
CiBib29sIEhhbmRsZU1vdmllRXZlbnQoTW92aWVPYmplY3QgKm9iaiwgRXZlbnRSZWNvcmQgKmV2
ZW50KQogewotICAgIGlmIChvYmotPmNvbnRyb2xsZXIpIHsKKyAgICBpZiAob2JqLT5jb250cm9s
bGVyKQogICAgICAgICBNQ0lzUGxheWVyRXZlbnQob2JqLT5jb250cm9sbGVyLCBldmVudCk7Ci0g
ICAgfQogICAgIHJldHVybiBmYWxzZTsKIH0KLQotCkluZGV4OiBQbHVnaW5PYmplY3QuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBQbHVnaW5PYmplY3QuaAkocmV2aXNpb24gOTE3MCkKKysrIFBsdWdpbk9iamVj
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwyMCArMzAsMTUgQEAKICBXSEVUSEVSIFVOREVSIFRI
RU9SWSBPRiBDT05UUkFDVCwgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UpLCBTVFJJQ1QgTElB
QklMSVRZIE9SIAogIE9USEVSV0lTRSwgRVZFTiBJRiBBUFBMRSBIQVMgQkVFTiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwotI2ltcG9ydCA8V2ViS2l0L25w
YXBpLmg+Ci0jaW1wb3J0IDxXZWJLaXQvbnBmdW5jdGlvbnMuaD4KLSNpbXBvcnQgPFdlYktpdC9u
cHJ1bnRpbWUuaD4KIAotI2ltcG9ydCAiTW92aWVPYmplY3QuaCI7CisjaW1wb3J0ICJNb3ZpZU9i
amVjdC5oIgogCi10eXBlZGVmIHN0cnVjdAotewotICAgIE5QQ2xhc3MgKl9jbGFzczsKLSAgICB1
aW50MzJfdCByZWZlcmVuY2VDb3VudDsKK3R5cGVkZWYgc3RydWN0IFBsdWdpbk9iamVjdCB7Cisg
ICAgTlBPYmplY3QgaGVhZGVyOwogICAgIE5QUCBucHA7CiAgICAgTlBXaW5kb3cqIHdpbmRvdzsK
ICAgICBNb3ZpZU9iamVjdCAqbW92aWVPYmplY3Q7CiB9IFBsdWdpbk9iamVjdDsKIAotZXh0ZXJu
IE5QQ2xhc3MgKmdldFBsdWdpbkNsYXNzKHZvaWQpOworTlBDbGFzcyAqZ2V0UGx1Z2luQ2xhc3Mo
dm9pZCk7CiAKSW5kZXg6IE1vdmllT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTW92aWVPYmplY3Qu
aAkocmV2aXNpb24gOTE3MCkKKysrIE1vdmllT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMw
LDMxICszMCwyOCBAQAogIFdIRVRIRVIgVU5ERVIgVEhFT1JZIE9GIENPTlRSQUNULCBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSksIFNUUklDVCBMSUFCSUxJVFkgT1IgCiAgT1RIRVJXSVNFLCBF
VkVOIElGIEFQUExFIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgogICovCisKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNpbXBvcnQgPFF1aWNr
VGltZS9RdWlja1RpbWUuaD4KIAogI2ltcG9ydCA8V2ViS2l0L25wYXBpLmg+Ci0jaW1wb3J0IDxX
ZWJLaXQvbnBmdW5jdGlvbnMuaD4KICNpbXBvcnQgPFdlYktpdC9ucHJ1bnRpbWUuaD4KIAotCi10
eXBlZGVmIHN0cnVjdAotewotICAgIE5QQ2xhc3MgKl9jbGFzczsKLSAgICB1aW50MzJfdCByZWZl
cmVuY2VDb3VudDsKK3R5cGVkZWYgc3RydWN0IE1vdmllT2JqZWN0IHsKKyAgICBOUE9iamVjdCBo
ZWFkZXI7CiAgICAgTW92aWUgbW92aWU7CiAgICAgTW92aWVDb250cm9sbGVyIGNvbnRyb2xsZXI7
CiB9IE1vdmllT2JqZWN0OwogCi1leHRlcm4gTlBDbGFzcyAqZ2V0TW92aWVDbGFzcyh2b2lkKTsK
K05QQ2xhc3MgKmdldE1vdmllQ2xhc3Modm9pZCk7CiAKIGJvb2wgTG9hZE1vdmllRnJvbUZpbGUo
TW92aWUgKm9iaiwgY29uc3QgY2hhciogZm5hbWUpOworCiBib29sIENyZWF0ZU1vdmllQ29udHJv
bGxlcihNb3ZpZU9iamVjdCAqb2JqLCBOUFdpbmRvdyAqd2luZG93KTsKLXZvaWQgVXBkYXRlTW92
aWVGcmFtZSAoTW92aWVPYmplY3QgKm9iaiwgTlBXaW5kb3cgKndpbmRvdyk7IAordm9pZCBVcGRh
dGVNb3ZpZUZyYW1lKE1vdmllT2JqZWN0ICpvYmosIE5QV2luZG93ICp3aW5kb3cpOyAKIHZvaWQg
UGxheU1vdmllKE1vdmllT2JqZWN0ICpvYmopOwogdm9pZCBQYXVzZU1vdmllKE1vdmllT2JqZWN0
ICpvYmopOwotdm9pZCBTZXRNb3ZpZU11dGVkIChNb3ZpZU9iamVjdCAqb2JqLCBib29sIG11dGUp
OwotYm9vbCBJc01vdmllTXV0ZWQgKE1vdmllT2JqZWN0ICpvYmopOwordm9pZCBTZXRNb3ZpZU11
dGVkKE1vdmllT2JqZWN0ICpvYmosIGJvb2wgbXV0ZWQpOworYm9vbCBJc01vdmllTXV0ZWQoTW92
aWVPYmplY3QgKm9iaik7CiBib29sIEhhbmRsZU1vdmllRXZlbnQoTW92aWVPYmplY3QgKm9iaiwg
RXZlbnRSZWNvcmQgKmV2ZW50KTsKIHZvaWQgRGVzdHJveU1vdmllKE1vdmllT2JqZWN0ICpvYmop
OwotCg==
</data>
<flag name="review"
          id="3245"
          type_id="1"
          status="-"
          setter="timo"
    />
          </attachment>
      

    </bug>

</bugzilla>