<?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>6403</bug_id>
          
          <creation_ts>2006-01-06 17:37:38 -0800</creation_ts>
          <short_desc>Windows patch: KJS_EXPORT for building DLLs</short_desc>
          <delta_ts>2007-09-30 11:16:42 -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>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows XP</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</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>6416</dependson>
          <blocked>7383</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Justin Haygood">jhaygood</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-webkit</cc>
    
    <cc>darin</cc>
    
    <cc>ian</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>27890</commentid>
    <comment_count>0</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-06 17:37:38 -0800</bug_when>
    <thetext>Changes from KJS to allow building a DLL that programs can link against.

Separated into 2 patches:

* One to add KJS_EXPORT
* Second to define KJS_EXPORT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27891</commentid>
    <comment_count>1</comment_count>
      <attachid>5519</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-06 17:38:39 -0800</bug_when>
    <thetext>Created attachment 5519
adds KJS_EXPORT to needed references

References located by attempting to link testkjs.exe to JavaScriptCore.dll and
adding KJS_EXPORT to things it says it needs to link to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27892</commentid>
    <comment_count>2</comment_count>
      <attachid>5520</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-06 17:40:29 -0800</bug_when>
    <thetext>Created attachment 5520
Defines KJS_EXPORT 

I added this to fastmalloc.h because its really low level.

If there is a lower level header which is included by all headers, i can move
it there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27893</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2006-01-06 17:46:56 -0800</bug_when>
    <thetext>Not sure, but maybe config.h would be more appropriate?
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27894</commentid>
    <comment_count>4</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-06 17:51:15 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Not sure, but maybe config.h would be more appropriate?
&gt; 

Is it included by all headers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27898</commentid>
    <comment_count>5</comment_count>
    <who name="Maks Orlovich">maksim</who>
    <bug_when>2006-01-06 19:27:03 -0800</bug_when>
    <thetext>Please consider marking the whole classes for export.  
http://www.cs.cornell.edu/~maksim/export.diff 
should be a good starting point 
 
 </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27939</commentid>
    <comment_count>6</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-07 12:59:53 -0800</bug_when>
    <thetext>Making this bug depend on Bug 6414 so that we can move KJS_EXPORT definition to
config.

Also, that diff is a good starting point.

Which classes should have the whole class exported?

JSObject &amp; Interpreter are the biggest 2 that come to mind</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>27940</commentid>
    <comment_count>7</comment_count>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-07 13:00:59 -0800</bug_when>
    <thetext>Er, 6416</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28622</commentid>
    <comment_count>8</comment_count>
      <attachid>5726</attachid>
    <who name="Justin Haygood">jhaygood</who>
    <bug_when>2006-01-16 14:16:30 -0800</bug_when>
    <thetext>Created attachment 5726
KJS_EXPORT 

* Defines KJS_EXPORT in config.h (Requires JAVASCRIPTCORE_EXPORTS is defined by
the compiler if using Windows)
* If KJS_EXPORT isn&apos;t defined, it defines it to blank
* Exports the same classes KJS does
* Fixes a spelling error in one of the headers (error fixed in KJS&apos;s export
diff)
* Includes &quot;nodes.h&quot; in headers that require it (don&apos;t know why it didn&apos;t have
an error before now)
* On Windows only, makes sure the JSValue private declarations used only to
create a compiler error aren&apos;t there.. Exported classes require definitions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>29456</commentid>
    <comment_count>9</comment_count>
      <attachid>5726</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-01-22 12:04:05 -0800</bug_when>
    <thetext>Comment on attachment 5726
KJS_EXPORT 

I don&apos;t think we want a FIXME in config.h for the possible future use of KJS_EXPORT for GCC visibility control; lets remove that for now.

The JSValue stuff should not be in an #if !WIN32 ifdef, because we do want those undefined copy constructor and assignment operators on Windows. Better would be to actually define them in value.cpp, but only when we are building a DLL on Windows. I don&apos;t think that WIN32 alone is good enough to indicate &quot;building a DLL&quot;. For example, I know we might want to build a static library for Windows rather than a DLL, so we don&apos;t want ifdefs that assume &quot;WIN32 == DLL&quot;.

Setting review- just because of the the value.h thing -- otherwise looks great, and about ready to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57470</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-09-30 11:16:42 -0700</bug_when>
    <thetext>This bug hasn&apos;t been touched in nearly a year, and since then a working Windows port has been released.  I believe we can close this now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5519</attachid>
            <date>2006-01-06 17:38:39 -0800</date>
            <delta_ts>2006-01-16 14:16:30 -0800</delta_ts>
            <desc>adds KJS_EXPORT to needed references</desc>
            <filename>dllexport.patch</filename>
            <type>text/plain</type>
            <size>21495</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9jb2xsZWN0b3IuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvcm9vdC9K
YXZhU2NyaXB0Q29yZS9ranMvY29sbGVjdG9yLmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjIx
DQpkaWZmIC11IC1yMS4yMSBjb2xsZWN0b3IuaA0KLS0tIGtqcy9jb2xsZWN0b3IuaAkxMyBEZWMg
MjAwNSAxMTowNjowNCAtMDAwMAkxLjIxDQorKysga2pzL2NvbGxlY3Rvci5oCTcgSmFuIDIwMDYg
MDE6MDI6NTcgLTAwMDANCkBAIC01Miw3ICs1Miw3IEBADQogICAgICAqIFJ1biB0aGUgZ2FyYmFn
ZSBjb2xsZWN0aW9uLiBUaGlzIGludm9sdmVzIGNhbGxpbmcgdGhlIGRlbGV0ZSBvcGVyYXRvcg0K
ICAgICAgKiBvbiBlYWNoIG9iamVjdCBhbmQgZnJlZWluZyB0aGUgdXNlZCBtZW1vcnkuDQogICAg
ICAqLw0KLSAgICBzdGF0aWMgYm9vbCBjb2xsZWN0KCk7DQorICAgIEtKU19FWFBPUlQgc3RhdGlj
IGJvb2wgY29sbGVjdCgpOw0KICAgICBzdGF0aWMgc2l6ZV90IHNpemUoKTsNCiAgICAgc3RhdGlj
IGJvb2wgb3V0T2ZNZW1vcnkoKSB7IHJldHVybiBtZW1vcnlGdWxsOyB9DQogDQpJbmRleDoga2pz
L2lkZW50aWZpZXIuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0
Q29yZS9ranMvaWRlbnRpZmllci5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS4yMg0KZGlmZiAt
dSAtcjEuMjIgaWRlbnRpZmllci5oDQotLS0ga2pzL2lkZW50aWZpZXIuaAkyMCBEZWMgMjAwNSAy
MDoxMjo0NyAtMDAwMAkxLjIyDQorKysga2pzL2lkZW50aWZpZXIuaAk3IEphbiAyMDA2IDAxOjAw
OjE0IC0wMDAwDQpAQCAtNzcsNyArNzcsNyBAQA0KICAgICAgICAgc3RhdGljIGJvb2wgZXF1YWwo
Y29uc3QgSWRlbnRpZmllciAmYSwgY29uc3QgY2hhciAqYikNCiAgICAgICAgICAgICB7IHJldHVy
biBlcXVhbChhLl91c3RyaW5nLnJlcCgpLCBiKTsgfQ0KICAgICAgICAgDQotICAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IGFkZChjb25zdCBjaGFyICopOw0KKyAgICAgICAg
S0pTX0VYUE9SVCBzdGF0aWMgUGFzc1JlZlB0cjxVU3RyaW5nOjpSZXA+IGFkZChjb25zdCBjaGFy
ICopOw0KICAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VVN0cmluZzo6UmVwPiBhZGQoY29uc3Qg
VUNoYXIgKiwgaW50IGxlbmd0aCk7DQogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxVU3RyaW5n
OjpSZXA+IGFkZChVU3RyaW5nOjpSZXAgKik7DQogICAgIH07DQpAQCAtMTA1LDcgKzEwNSw3IEBA
DQogICAgICAgICBtYWNybyhjYWxsZWUpIFwNCiAgICAgICAgIG1hY3JvKGNvbnN0cnVjdG9yKSBc
DQogICAgICAgICBtYWNybyhmcm9tQ2hhckNvZGUpIFwNCi0gICAgICAgIG1hY3JvKGxlbmd0aCkg
XA0KKyAgICAgICAgS0pTX0VYUE9SVCBtYWNybyhsZW5ndGgpIFwNCiAgICAgICAgIG1hY3JvKG1l
c3NhZ2UpIFwNCiAgICAgICAgIG1hY3JvKG5hbWUpIFwNCiAgICAgICAgIG1hY3JvKHByb3RvdHlw
ZSkgXA0KSW5kZXg6IGtqcy9pbnRlcnByZXRlci5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2
cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9pbnRlcnByZXRlci5oLHYNCnJldHJpZXZpbmcgcmV2
aXNpb24gMS4zMw0KZGlmZiAtdSAtcjEuMzMgaW50ZXJwcmV0ZXIuaA0KLS0tIGtqcy9pbnRlcnBy
ZXRlci5oCTYgSmFuIDIwMDYgMjI6NDM6NDEgLTAwMDAJMS4zMw0KKysrIGtqcy9pbnRlcnByZXRl
ci5oCTcgSmFuIDIwMDYgMDA6NTU6NDggLTAwMDANCkBAIC0xNTEsMTMgKzE1MSwxMyBAQA0KICAg
ICAgKg0KICAgICAgKiBAcGFyYW0gZ2xvYmFsIFRoZSBvYmplY3QgdG8gdXNlIGFzIHRoZSBnbG9i
YWwgb2JqZWN0IGZvciB0aGlzIGludGVycHJldGVyDQogICAgICAqLw0KLSAgICBJbnRlcnByZXRl
cihKU09iamVjdCAqZ2xvYmFsKTsNCisgICAgS0pTX0VYUE9SVCBJbnRlcnByZXRlcihKU09iamVj
dCAqZ2xvYmFsKTsNCiAgICAgLyoqDQogICAgICAqIENyZWF0ZXMgYSBuZXcgaW50ZXJwcmV0ZXIu
IEEgZ2xvYmFsIG9iamVjdCB3aWxsIGJlIGNyZWF0ZWQgYW5kDQogICAgICAqIGluaXRpYWxpemVk
IHdpdGggdGhlIHN0YW5kYXJkIGdsb2JhbCBwcm9wZXJ0aWVzLg0KICAgICAgKi8NCiAgICAgSW50
ZXJwcmV0ZXIoKTsNCi0gICAgdmlydHVhbCB+SW50ZXJwcmV0ZXIoKTsNCisgICAgS0pTX0VYUE9S
VCB2aXJ0dWFsIH5JbnRlcnByZXRlcigpOw0KIA0KICAgICAvKioNCiAgICAgICogUmV0dXJucyB0
aGUgb2JqZWN0IHRoYXQgaXMgdXNlZCBhcyB0aGUgZ2xvYmFsIG9iamVjdCBkdXJpbmcgYWxsIHNj
cmlwdA0KQEAgLTE3OCw3ICsxNzgsNyBAQA0KICAgICAgKg0KICAgICAgKiBAcmV0dXJuIFRoZSBp
bnRlcnByZXRlciBnbG9iYWwgZXhlY3V0aW9uIHN0YXRlIG9iamVjdA0KICAgICAgKi8NCi0gICAg
RXhlY1N0YXRlICpnbG9iYWxFeGVjKCk7DQorICAgIEtKU19FWFBPUlQgRXhlY1N0YXRlICpnbG9i
YWxFeGVjKCk7DQogDQogICAgIC8qKg0KICAgICAgKiBQYXJzZXMgdGhlIHN1cHBsaWVkIEVDTUFT
Y3JpcHQgY29kZSBhbmQgY2hlY2tzIGZvciBzeW50YXggZXJyb3JzLg0KQEAgLTIwNCw3ICsyMDQs
NyBAQA0KICAgICAgKiBAcmV0dXJuIEEgY29tcGxldGlvbiBvYmplY3QgcmVwcmVzZW50aW5nIHRo
ZSByZXN1bHQgb2YgdGhlIGV4ZWN1dGlvbi4NCiAgICAgICovDQogICAgIENvbXBsZXRpb24gZXZh
bHVhdGUoY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBj
b25zdCBVQ2hhciogY29kZSwgaW50IGNvZGVMZW5ndGgsIEpTVmFsdWUqIHRoaXNWID0gMCk7DQot
ICAgIENvbXBsZXRpb24gZXZhbHVhdGUoY29uc3QgVVN0cmluZyYgc291cmNlVVJMLCBpbnQgc3Rh
cnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVU3RyaW5nJiBjb2RlLCBKU1ZhbHVlKiB0aGlzViA9IDAp
Ow0KKyAgICBLSlNfRVhQT1JUIENvbXBsZXRpb24gZXZhbHVhdGUoY29uc3QgVVN0cmluZyYgc291
cmNlVVJMLCBpbnQgc3RhcnRpbmdMaW5lTnVtYmVyLCBjb25zdCBVU3RyaW5nJiBjb2RlLCBKU1Zh
bHVlKiB0aGlzViA9IDApOw0KIA0KICAgICAvKioNCiAgICAgICogQGludGVybmFsDQpJbmRleDog
a2pzL0pTTG9jay5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2tqcy9KU0xvY2suaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMg0KZGlmZiAtdSAtcjEu
MiBKU0xvY2suaA0KLS0tIGtqcy9KU0xvY2suaAkyNyBOb3YgMjAwNSAwNzo1NDo0NCAtMDAwMAkx
LjINCisrKyBranMvSlNMb2NrLmgJNyBKYW4gMjAwNiAwMDo1NjowMyAtMDAwMA0KQEAgLTUxLDgg
KzUxLDggQEANCiAgICAgICAgICAgICB1bmxvY2soKTsgDQogICAgICAgICB9DQogICAgICAgICAN
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGxvY2soKTsNCi0gICAgICAgIHN0YXRpYyB2b2lkIHVubG9j
aygpOw0KKyAgICAgICAgS0pTX0VYUE9SVCBzdGF0aWMgdm9pZCBsb2NrKCk7DQorICAgICAgICBL
SlNfRVhQT1JUIHN0YXRpYyB2b2lkIHVubG9jaygpOw0KICAgICAgICAgc3RhdGljIGludCBsb2Nr
Q291bnQoKTsNCiAgICAgICAgIA0KICAgICAgICAgY2xhc3MgRHJvcEFsbExvY2tzIHsNCkluZGV4
OiBranMvbGlzdC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRD
b3JlL2tqcy9saXN0Lmgsdg0KcmV0cmlldmluZyByZXZpc2lvbiAxLjEyDQpkaWZmIC11IC1yMS4x
MiBsaXN0LmgNCi0tLSBranMvbGlzdC5oCTYgSmFuIDIwMDYgMjM6NTE6MDAgLTAwMDAJMS4xMg0K
KysrIGtqcy9saXN0LmgJNyBKYW4gMjAwNiAwMTowMToxMiAtMDAwMA0KQEAgLTEwOCw3ICsxMDgs
NyBAQA0KICAgICAgICAgICogQHJldHVybiBSZXR1cm4gdGhlIGVsZW1lbnQgYXQgcG9zaXRpb24g
aS4gS0pTOjpVbmRlZmluZWQgaWYgdGhlDQogICAgICAgICAgKiBpbmRleCBpcyBvdXQgb2YgcmFu
Z2UuDQogICAgICAgICAgKi8NCi0gICAgICAgIEpTVmFsdWUgKmF0KGludCBpKSBjb25zdDsNCisg
ICAgICAgIEtKU19FWFBPUlQgSlNWYWx1ZSAqYXQoaW50IGkpIGNvbnN0Ow0KICAgICAgICAgLyoq
DQogICAgICAgICAgKiBFcXVpdmFsZW50IHRvIGF0Lg0KICAgICAgICAgICovDQpJbmRleDoga2pz
L29iamVjdC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3Jl
L2tqcy9vYmplY3QuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTINCmRpZmYgLXUgLXIxLjUy
IG9iamVjdC5oDQotLS0ga2pzL29iamVjdC5oCTI3IERlYyAyMDA1IDA5OjI0OjEzIC0wMDAwCTEu
NTINCisrKyBranMvb2JqZWN0LmgJNyBKYW4gMjAwNiAwMTowNDoxMyAtMDAwMA0KQEAgLTExNCwx
NiArMTE0LDE2IEBADQogICAgICAqDQogICAgICAqIEBwYXJhbSBwcm90byBUaGUgcHJvdG90eXBl
DQogICAgICAqLw0KLSAgICBKU09iamVjdChKU09iamVjdCAqcHJvdG8pOw0KKyAgICBLSlNfRVhQ
T1JUIEpTT2JqZWN0KEpTT2JqZWN0ICpwcm90byk7DQogDQogICAgIC8qKg0KICAgICAgKiBDcmVh
dGVzIGEgbmV3IEpTT2JqZWN0IHdpdGggYSBwcm90b3R5cGUgb2YganNOdWxsKCkNCiAgICAgICog
KHRoYXQgaXMsIHRoZSBFQ01BU2NyaXB0ICJudWxsIiB2YWx1ZSwgbm90IGEgbnVsbCBvYmplY3Qg
cG9pbnRlcikuDQogICAgICAqLw0KLSAgICBKU09iamVjdCgpOw0KKyAgICBLSlNfRVhQT1JUIEpT
T2JqZWN0KCk7DQogDQotICAgIHZpcnR1YWwgdm9pZCBtYXJrKCk7DQotICAgIHZpcnR1YWwgVHlw
ZSB0eXBlKCkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgdmlydHVhbCB2b2lkIG1hcmsoKTsNCisg
ICAgS0pTX0VYUE9SVCB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0Ow0KIA0KICAgICAvKioNCiAg
ICAgICogQSBwb2ludGVyIHRvIGEgQ2xhc3NJbmZvIHN0cnVjdCBmb3IgdGhpcyBjbGFzcy4gVGhp
cyBwcm92aWRlcyBhIGJhc2ljDQpAQCAtMTYyLDcgKzE2Miw3IEBADQogICAgICAqDQogICAgICAq
IEBzZWUgaW5oZXJpdHMoKQ0KICAgICAgKi8NCi0gICAgdmlydHVhbCBjb25zdCBDbGFzc0luZm8g
KmNsYXNzSW5mbygpIGNvbnN0Ow0KKyAgICBLSlNfRVhQT1JUIHZpcnR1YWwgY29uc3QgQ2xhc3NJ
bmZvICpjbGFzc0luZm8oKSBjb25zdDsNCiANCiAgICAgLyoqDQogICAgICAqIENoZWNrcyB3aGV0
aGVyIHRoaXMgb2JqZWN0IGluaGVyaXRzIGZyb20gdGhlIGNsYXNzIHdpdGggdGhlIHNwZWNpZmll
ZA0KQEAgLTE5MCw3ICsxOTAsNyBAQA0KICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhpcyBvYmpl
Y3QncyBjbGFzcyBpbmhlcml0cyBmcm9tIGNsYXNzIHdpdGggdGhlDQogICAgICAqIENsYXNzSW5m
byBwb2ludGVyIHNwZWNpZmllZCBpbiBjaW5mbw0KICAgICAgKi8NCi0gICAgYm9vbCBpbmhlcml0
cyhjb25zdCBDbGFzc0luZm8gKmNpbmZvKSBjb25zdDsNCisgICAgS0pTX0VYUE9SVCBib29sIGlu
aGVyaXRzKGNvbnN0IENsYXNzSW5mbyAqY2luZm8pIGNvbnN0Ow0KIA0KICAgICAvLyBpbnRlcm5h
bCBwcm9wZXJ0aWVzIChFQ01BIDI2Mi0zIDguNi4yKQ0KIA0KQEAgLTIwMiw4ICsyMDIsOCBAQA0K
ICAgICAgKg0KICAgICAgKiBAcmV0dXJuIFRoZSBvYmplY3QncyBwcm90b3R5cGUNCiAgICAgICov
DQotICAgIEpTVmFsdWUgKnByb3RvdHlwZSgpIGNvbnN0Ow0KLSAgICB2b2lkIHNldFByb3RvdHlw
ZShKU1ZhbHVlICpwcm90byk7DQorICAgIEtKU19FWFBPUlQgSlNWYWx1ZSAqcHJvdG90eXBlKCkg
Y29uc3Q7DQorICAgIEtKU19FWFBPUlQgdm9pZCBzZXRQcm90b3R5cGUoSlNWYWx1ZSAqcHJvdG8p
Ow0KIA0KICAgICAvKioNCiAgICAgICogUmV0dXJucyB0aGUgY2xhc3MgbmFtZSBvZiB0aGUgb2Jq
ZWN0DQpAQCAtMjIxLDcgKzIyMSw3IEBADQogICAgICAqIGlmIHlvdSBzaW1wbHkgbmVlZCBhIGNs
YXNzbmFtZSwgeW91IGNhbiByZWltcGxlbWVudCBjbGFzc05hbWUoKQ0KICAgICAgKiBpbnN0ZWFk
Lg0KICAgICAgKi8NCi0gICAgdmlydHVhbCBVU3RyaW5nIGNsYXNzTmFtZSgpIGNvbnN0Ow0KKyAg
ICBLSlNfRVhQT1JUIHZpcnR1YWwgVVN0cmluZyBjbGFzc05hbWUoKSBjb25zdDsNCiANCiAgICAg
LyoqDQogICAgICAqIFJldHJpZXZlcyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGZyb20gdGhlIG9i
amVjdC4gSWYgbmVpdGhlciB0aGUgb2JqZWN0DQpAQCAtMjM1LDE0ICsyMzUsMTQgQEANCiAgICAg
ICoNCiAgICAgICogQHJldHVybiBUaGUgc3BlY2lmaWVkIHByb3BlcnR5LCBvciBVbmRlZmluZWQN
CiAgICAgICovDQotICAgIEpTVmFsdWUgKmdldChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXIgJnByb3BlcnR5TmFtZSkgY29uc3Q7DQotICAgIEpTVmFsdWUgKmdldChFeGVjU3RhdGUg
KmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgSlNW
YWx1ZSAqZ2V0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1l
KSBjb25zdDsNCisgICAgS0pTX0VYUE9SVCBKU1ZhbHVlICpnZXQoRXhlY1N0YXRlICpleGVjLCB1
bnNpZ25lZCBwcm9wZXJ0eU5hbWUpIGNvbnN0Ow0KIA0KLSAgICBib29sIGdldFByb3BlcnR5U2xv
dChFeGVjU3RhdGUgKiwgY29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOw0KLSAgICBi
b29sIGdldFByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgdW5zaWduZWQsIFByb3BlcnR5U2xvdCYp
Ow0KKyAgICBLSlNfRVhQT1JUIGJvb2wgZ2V0UHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25z
dCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7DQorICAgIEtKU19FWFBPUlQgYm9vbCBnZXRQ
cm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIHVuc2lnbmVkLCBQcm9wZXJ0eVNsb3QmKTsNCiANCi0g
ICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwgY29uc3QgSWRl
bnRpZmllciYsIFByb3BlcnR5U2xvdCYpOw0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVy
dHlTbG90KEV4ZWNTdGF0ZSAqLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90Jik7DQorICAg
IEtKU19FWFBPUlQgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKiwg
Y29uc3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOw0KKyAgICBLSlNfRVhQT1JUIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIHVuc2lnbmVkIGluZGV4LCBQ
cm9wZXJ0eVNsb3QmKTsNCiANCiAgICAgLyoqDQogICAgICAqIFNldHMgdGhlIHNwZWNpZmllZCBw
cm9wZXJ0eS4NCkBAIC0yNTMsOCArMjUzLDggQEANCiAgICAgICogQHBhcmFtIHByb3BlcnR5TmFt
ZSBUaGUgbmFtZSBvZiB0aGUgcHJvcGVydHkgdG8gc2V0DQogICAgICAqIEBwYXJhbSBwcm9wZXJ0
eVZhbHVlIFRoZSB2YWx1ZSB0byBzZXQNCiAgICAgICovDQotICAgIHZpcnR1YWwgdm9pZCBwdXQo
RXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUg
KnZhbHVlLCBpbnQgYXR0ciA9IE5vbmUpOw0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0
ZSAqZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0dHIg
PSBOb25lKTsNCisgICAgS0pTX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhl
YywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0
dHIgPSBOb25lKTsNCisgICAgS0pTX0VYUE9SVCB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAq
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0dHIgPSBO
b25lKTsNCiANCiAgICAgLyoqDQogICAgICAqIFVzZWQgdG8gY2hlY2sgd2hldGhlciBvciBub3Qg
YSBwYXJ0aWN1bGFyIHByb3BlcnR5IGlzIGFsbG93ZWQgdG8gYmUgc2V0DQpAQCAtMjcwLDcgKzI3
MCw3IEBADQogICAgICAqIEltcGxlbWVudGF0aW9uIG9mIHRoZSBbW0NhblB1dF1dIGludGVybmFs
IHByb3BlcnR5IChpbXBsZW1lbnRlZCBieSBhbGwNCiAgICAgICogT2JqZWN0cykNCiAgICAgICov
DQotICAgIHZpcnR1YWwgYm9vbCBjYW5QdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlm
aWVyICZwcm9wZXJ0eU5hbWUpIGNvbnN0Ow0KKyAgICBLSlNfRVhQT1JUIHZpcnR1YWwgYm9vbCBj
YW5QdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpIGNv
bnN0Ow0KIA0KICAgICAvKioNCiAgICAgICogQ2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgZW51bWVy
YWJsZSwgdGhhdCBpcyBpZiBpdCBkb2Vzbid0IGhhdmUgdGhlIERvbnRFbnVtDQpAQCAtMjgxLDcg
KzI4MSw3IEBADQogICAgICAqIEBwYXJhbSBwcm9wZXJ0eU5hbWUgVGhlIG5hbWUgb2YgdGhlIHBy
b3BlcnR5DQogICAgICAqIEByZXR1cm4gdHJ1ZSBpZiB0aGUgcHJvcGVydHkgaXMgZW51bWVyYWJs
ZSwgb3RoZXJ3aXNlIGZhbHNlDQogICAgICAqLw0KLSAgICBib29sIHByb3BlcnR5SXNFbnVtZXJh
YmxlKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKSBjb25z
dDsNCisgICAgS0pTX0VYUE9SVCBib29sIHByb3BlcnR5SXNFbnVtZXJhYmxlKEV4ZWNTdGF0ZSAq
ZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKSBjb25zdDsNCiANCiAgICAgLyoq
DQogICAgICAqIENoZWNrcyB0byBzZWUgd2hldGhlciB0aGUgb2JqZWN0IChvciBhbnkgb2JqZWN0
IGluIGl0J3MgcHJvdG90eXBlIGNoYWluKQ0KQEAgLTI5Myw4ICsyOTMsOCBAQA0KICAgICAgKiBA
cGFyYW0gcHJvcGVydHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eSB0byBjaGVjayBmb3IN
CiAgICAgICogQHJldHVybiB0cnVlIGlmIHRoZSBvYmplY3QgaGFzIHRoZSBwcm9wZXJ0eSwgb3Ro
ZXJ3aXNlIGZhbHNlDQogICAgICAqLw0KLSAgICBib29sIGhhc1Byb3BlcnR5KEV4ZWNTdGF0ZSAq
ZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKSBjb25zdDsNCi0gICAgYm9vbCBo
YXNQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7
DQorICAgIEtKU19FWFBPUlQgYm9vbCBoYXNQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgYm9vbCBo
YXNQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIHVuc2lnbmVkIHByb3BlcnR5TmFtZSkgY29uc3Q7
DQogDQogICAgIC8qKg0KICAgICAgKiBSZW1vdmVzIHRoZSBzcGVjaWZpZWQgcHJvcGVydHkgZnJv
bSB0aGUgb2JqZWN0Lg0KQEAgLTMwNyw4ICszMDcsOCBAQA0KICAgICAgKiBleGlzdCBvbiB0aGUg
b2JqZWN0LiBmYWxzZSBpZiBkZWxldGluZyB0aGUgc3BlY2lmaWVkIHByb3BlcnR5IGlzIG5vdA0K
ICAgICAgKiBhbGxvd2VkLg0KICAgICAgKi8NCi0gICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3Bl
cnR5KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lKTsNCi0g
ICAgdmlydHVhbCBib29sIGRlbGV0ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywgdW5zaWduZWQg
cHJvcGVydHlOYW1lKTsNCisgICAgS0pTX0VYUE9SVCB2aXJ0dWFsIGJvb2wgZGVsZXRlUHJvcGVy
dHkoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpOw0KKyAg
ICBLSlNfRVhQT1JUIHZpcnR1YWwgYm9vbCBkZWxldGVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMs
IHVuc2lnbmVkIHByb3BlcnR5TmFtZSk7DQogDQogICAgIC8qKg0KICAgICAgKiBDb252ZXJ0cyB0
aGUgb2JqZWN0IGludG8gYSBwcmltaXRpdmUgdmFsdWUuIFRoZSB2YWx1ZSByZXR1cm4gbWF5IGRp
ZmZlcg0KQEAgLTMyNiw3ICszMjYsNyBAQA0KICAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUg
W1tEZWZhdWx0VmFsdWVdXSBpbnRlcm5hbCBwcm9wZXJ0eSAoaW1wbGVtZW50ZWQgYnkNCiAgICAg
ICogYWxsIE9iamVjdHMpDQogICAgICAqLw0KLSAgICB2aXJ0dWFsIEpTVmFsdWUgKmRlZmF1bHRW
YWx1ZShFeGVjU3RhdGUgKmV4ZWMsIFR5cGUgaGludCkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQg
dmlydHVhbCBKU1ZhbHVlICpkZWZhdWx0VmFsdWUoRXhlY1N0YXRlICpleGVjLCBUeXBlIGhpbnQp
IGNvbnN0Ow0KIA0KICAgICAvKioNCiAgICAgICogV2hldGhlciBvciBub3QgdGhlIG9iamVjdCBp
bXBsZW1lbnRzIHRoZSBjb25zdHJ1Y3QoKSBtZXRob2QuIElmIHRoaXMNCkBAIC0zMzYsNyArMzM2
LDcgQEANCiAgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGltcGxlbWVudHMgdGhl
IGNvbnN0cnVjdCgpIG1ldGhvZCwgb3RoZXJ3aXNlDQogICAgICAqIGZhbHNlDQogICAgICAqLw0K
LSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0NvbnN0cnVjdCgpIGNvbnN0Ow0KKyAgICBLSlNf
RVhQT1JUIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ29uc3RydWN0KCkgY29uc3Q7DQogDQogICAg
IC8qKg0KICAgICAgKiBDcmVhdGVzIGEgbmV3IG9iamVjdCBiYXNlZCBvbiB0aGlzIG9iamVjdC4g
VHlwaWNhbGx5IHRoaXMgbWVhbnMgdGhlDQpAQCAtMzY2LDggKzM2Niw4IEBADQogICAgIC8qKg0K
ICAgICAgKiBJbXBsZW1lbnRhdGlvbiBvZiB0aGUgW1tDb25zdHJ1Y3RdXSBpbnRlcm5hbCBwcm9w
ZXJ0eQ0KICAgICAgKi8NCi0gICAgdmlydHVhbCBKU09iamVjdCAqY29uc3RydWN0KEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QgTGlzdCAmYXJncyk7DQotICAgIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0
cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MsIGNvbnN0IFVTdHJpbmcgJnNv
dXJjZVVSTCwgaW50IGxpbmVOdW1iZXIpOw0KKyAgICBLSlNfRVhQT1JUIHZpcnR1YWwgSlNPYmpl
Y3QgKmNvbnN0cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IExpc3QgJmFyZ3MpOw0KKyAgICBL
SlNfRVhQT1JUIHZpcnR1YWwgSlNPYmplY3QgKmNvbnN0cnVjdChFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IExpc3QgJmFyZ3MsIGNvbnN0IFVTdHJpbmcgJnNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIp
Ow0KIA0KICAgICAvKioNCiAgICAgICogV2hldGhlciBvciBub3QgdGhlIG9iamVjdCBpbXBsZW1l
bnRzIHRoZSBjYWxsKCkgbWV0aG9kLiBJZiB0aGlzIHJldHVybnMNCkBAIC0zNzcsNyArMzc3LDcg
QEANCiAgICAgICogQHJldHVybiB0cnVlIGlmIHRoaXMgb2JqZWN0IGltcGxlbWVudHMgdGhlIGNh
bGwoKSBtZXRob2QsIG90aGVyd2lzZQ0KICAgICAgKiBmYWxzZQ0KICAgICAgKi8NCi0gICAgdmly
dHVhbCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgdmlydHVh
bCBib29sIGltcGxlbWVudHNDYWxsKCkgY29uc3Q7DQogDQogICAgIC8qKg0KICAgICAgKiBDYWxs
cyB0aGlzIG9iamVjdCBhcyBpZiBpdCBpcyBhIGZ1bmN0aW9uLg0KQEAgLTM5Niw4ICszOTYsOCBA
QA0KICAgICAgKiBAcGFyYW0gYXJncyBMaXN0IG9mIGFyZ3VtZW50cyB0byBiZSBwYXNzZWQgdG8g
dGhlIGZ1bmN0aW9uDQogICAgICAqIEByZXR1cm4gVGhlIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBm
dW5jdGlvbg0KICAgICAgKi8NCi0gICAgSlNWYWx1ZSAqY2FsbChFeGVjU3RhdGUgKmV4ZWMsIEpT
T2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICZhcmdzKTsNCi0gICAgdmlydHVhbCBKU1ZhbHVl
ICpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpTT2JqZWN0ICp0aGlzT2JqLCBjb25z
dCBMaXN0ICZhcmdzKTsNCisgICAgS0pTX0VYUE9SVCBKU1ZhbHVlICpjYWxsKEV4ZWNTdGF0ZSAq
ZXhlYywgSlNPYmplY3QgKnRoaXNPYmosIGNvbnN0IExpc3QgJmFyZ3MpOw0KKyAgICBLSlNfRVhQ
T1JUIHZpcnR1YWwgSlNWYWx1ZSAqY2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09i
amVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncyk7DQogDQogICAgIC8qKg0KICAgICAgKiBX
aGV0aGVyIG9yIG5vdCB0aGUgb2JqZWN0IGltcGxlbWVudHMgdGhlIGhhc0luc3RhbmNlKCkgbWV0
aG9kLiBJZiB0aGlzDQpAQCAtNDA3LDcgKzQwNyw3IEBADQogICAgICAqIEByZXR1cm4gdHJ1ZSBp
ZiB0aGlzIG9iamVjdCBpbXBsZW1lbnRzIHRoZSBoYXNJbnN0YW5jZSgpIG1ldGhvZCwNCiAgICAg
ICogb3RoZXJ3aXNlIGZhbHNlDQogICAgICAqLw0KLSAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50
c0hhc0luc3RhbmNlKCkgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgdmlydHVhbCBib29sIGltcGxl
bWVudHNIYXNJbnN0YW5jZSgpIGNvbnN0Ow0KIA0KICAgICAvKioNCiAgICAgICogQ2hlY2tzIHdo
ZXRoZXIgdmFsdWUgZGVsZWdhdGVzIGJlaGF2aW9yIHRvIHRoaXMgb2JqZWN0LiBVc2VkIGJ5IHRo
ZQ0KQEAgLTQxOCw3ICs0MTgsNyBAQA0KICAgICAgKiBAcmV0dXJuIHRydWUgaWYgdmFsdWUgZGVs
ZWdhdGVzIGJlaGF2aW9yIHRvIHRoaXMgb2JqZWN0LCBvdGhlcndpc2UNCiAgICAgICogZmFsc2UN
CiAgICAgICovDQotICAgIHZpcnR1YWwgYm9vbCBoYXNJbnN0YW5jZShFeGVjU3RhdGUgKmV4ZWMs
IEpTVmFsdWUgKnZhbHVlKTsNCisgICAgS0pTX0VYUE9SVCB2aXJ0dWFsIGJvb2wgaGFzSW5zdGFu
Y2UoRXhlY1N0YXRlICpleGVjLCBKU1ZhbHVlICp2YWx1ZSk7DQogDQogICAgIC8qKg0KICAgICAg
KiBSZXR1cm5zIHRoZSBzY29wZSBvZiB0aGlzIG9iamVjdC4gVGhpcyBpcyB1c2VkIHdoZW4gZXhl
Y3V0aW9uIGRlY2xhcmVkDQpAQCAtNDQ2LDggKzQ0Niw4IEBADQogICAgICAqIEBwYXJhbSBleGVj
IFRoZSBjdXJyZW50IGV4ZWN1dGlvbiBzdGF0ZQ0KICAgICAgKiBAcmV0dXJuIFRoZSBmdW5jdGlv
bidzIHNjb3BlDQogICAgICAqLw0KLSAgICBjb25zdCBTY29wZUNoYWluICZzY29wZSgpIGNvbnN0
IHsgcmV0dXJuIF9zY29wZTsgfQ0KLSAgICB2b2lkIHNldFNjb3BlKGNvbnN0IFNjb3BlQ2hhaW4g
JnMpIHsgX3Njb3BlID0gczsgfQ0KKyAgICBLSlNfRVhQT1JUIGNvbnN0IFNjb3BlQ2hhaW4gJnNj
b3BlKCkgY29uc3QgeyByZXR1cm4gX3Njb3BlOyB9DQorICAgIEtKU19FWFBPUlQgdm9pZCBzZXRT
Y29wZShjb25zdCBTY29wZUNoYWluICZzKSB7IF9zY29wZSA9IHM7IH0NCiANCiAgICAgLyoqDQog
ICAgICAqIFJldHVybnMgYSBMaXN0IG9mIFJlZmVyZW5jZXMgdG8gYWxsIHRoZSBwcm9wZXJ0aWVz
IG9mIHRoZSBvYmplY3QuIFVzZWQNCkBAIC00NjUsNyArNDY1LDcgQEANCiAgICAgICogaW5jbHVk
ZWQgaW4gdGhlIGxpc3QuDQogICAgICAqIEByZXR1cm4gQSBMaXN0IG9mIFJlZmVyZW5jZXMgdG8g
cHJvcGVydGllcyBvZiB0aGUgb2JqZWN0Lg0KICAgICAgKiovDQotICAgIHZpcnR1YWwgUmVmZXJl
bmNlTGlzdCBwcm9wTGlzdChFeGVjU3RhdGUgKmV4ZWMsIGJvb2wgcmVjdXJzaXZlID0gdHJ1ZSk7
DQorICAgIEtKU19FWFBPUlQgdmlydHVhbCBSZWZlcmVuY2VMaXN0IHByb3BMaXN0KEV4ZWNTdGF0
ZSAqZXhlYywgYm9vbCByZWN1cnNpdmUgPSB0cnVlKTsNCiANCiAgICAgLyoqDQogICAgICAqIFJl
dHVybnMgdGhlIGludGVybmFsIHZhbHVlIG9mIHRoZSBvYmplY3QuIFRoaXMgaXMgdXNlZCBmb3Ig
b2JqZWN0cyBzdWNoDQpAQCAtNDc1LDcgKzQ3NSw3IEBADQogICAgICAqIEBzZWUgRUNNQSA4LjYu
Mg0KICAgICAgKiBAcmV0dXJuIFRoZSBpbnRlcm5hbCB2YWx1ZSBvZiB0aGUgb2JqZWN0DQogICAg
ICAqLw0KLSAgICBKU1ZhbHVlICppbnRlcm5hbFZhbHVlKCkgY29uc3Q7DQorICAgIEtKU19FWFBP
UlQgSlNWYWx1ZSAqaW50ZXJuYWxWYWx1ZSgpIGNvbnN0Ow0KIA0KICAgICAvKioNCiAgICAgICog
U2V0cyB0aGUgaW50ZXJuYWwgdmFsdWUgb2YgdGhlIG9iamVjdA0KQEAgLTQ4NCw0MiArNDg0LDQy
IEBADQogICAgICAqDQogICAgICAqIEBwYXJhbSB2IFRoZSBuZXcgaW50ZXJuYWwgdmFsdWUNCiAg
ICAgICovDQotICAgIHZvaWQgc2V0SW50ZXJuYWxWYWx1ZShKU1ZhbHVlICp2KTsNCisgICAgS0pT
X0VYUE9SVCB2b2lkIHNldEludGVybmFsVmFsdWUoSlNWYWx1ZSAqdik7DQogDQotICAgIEpTVmFs
dWUgKnRvUHJpbWl0aXZlKEV4ZWNTdGF0ZSAqZXhlYywgVHlwZSBwcmVmZXJyZWRUeXBlID0gVW5z
cGVjaWZpZWRUeXBlKSBjb25zdDsNCi0gICAgYm9vbCB0b0Jvb2xlYW4oRXhlY1N0YXRlICpleGVj
KSBjb25zdDsNCi0gICAgZG91YmxlIHRvTnVtYmVyKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7DQot
ICAgIFVTdHJpbmcgdG9TdHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdDsNCi0gICAgSlNPYmpl
Y3QgKnRvT2JqZWN0KEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgSlNW
YWx1ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBUeXBlIHByZWZlcnJlZFR5cGUgPSBV
bnNwZWNpZmllZFR5cGUpIGNvbnN0Ow0KKyAgICBLSlNfRVhQT1JUIGJvb2wgdG9Cb29sZWFuKEV4
ZWNTdGF0ZSAqZXhlYykgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgZG91YmxlIHRvTnVtYmVyKEV4
ZWNTdGF0ZSAqZXhlYykgY29uc3Q7DQorICAgIEtKU19FWFBPUlQgVVN0cmluZyB0b1N0cmluZyhF
eGVjU3RhdGUgKmV4ZWMpIGNvbnN0Ow0KKyAgICBLSlNfRVhQT1JUIEpTT2JqZWN0ICp0b09iamVj
dChFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0Ow0KIA0KLSAgICBib29sIGdldFByb3BlcnR5QXR0cmli
dXRlcyhjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGludCYgYXR0cmlidXRlcykgY29u
c3Q7DQorICAgIEtKU19FWFBPUlQgYm9vbCBnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMoY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBpbnQmIGF0dHJpYnV0ZXMpIGNvbnN0Ow0KICAgICANCiAg
ICAgLy8gVGhpcyBnZXQgZnVuY3Rpb24gb25seSBsb29rcyBhdCB0aGUgcHJvcGVydHkgbWFwLg0K
ICAgICAvLyBUaGlzIGlzIHVzZWQgZS5nLiBieSBsb29rdXBPckNyZWF0ZUZ1bmN0aW9uICh0byBj
YWNoZSBhIGZ1bmN0aW9uLCB3ZSBkb24ndCB3YW50DQogICAgIC8vIHRvIGxvb2sgdXAgaW4gdGhl
IHByb3RvdHlwZSwgaXQgbWlnaHQgYWxyZWFkeSBleGlzdCB0aGVyZSkNCi0gICAgSlNWYWx1ZSAq
Z2V0RGlyZWN0KGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkgY29uc3QNCisgICAgS0pT
X0VYUE9SVCBKU1ZhbHVlICpnZXREaXJlY3QoY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1l
KSBjb25zdA0KICAgICAgICAgeyByZXR1cm4gX3Byb3AuZ2V0KHByb3BlcnR5TmFtZSk7IH0NCi0g
ICAgSlNWYWx1ZSAqKmdldERpcmVjdExvY2F0aW9uKGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5
TmFtZSkNCisgICAgS0pTX0VYUE9SVCBKU1ZhbHVlICoqZ2V0RGlyZWN0TG9jYXRpb24oY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQ0KICAgICAgICAgeyByZXR1cm4gX3Byb3AuZ2V0TG9j
YXRpb24ocHJvcGVydHlOYW1lKTsgfQ0KLSAgICB2b2lkIHB1dERpcmVjdChjb25zdCBJZGVudGlm
aWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0ciA9IDApOw0KLSAgICB2
b2lkIHB1dERpcmVjdChjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIGludCB2YWx1ZSwg
aW50IGF0dHIgPSAwKTsNCisgICAgS0pTX0VYUE9SVCB2b2lkIHB1dERpcmVjdChjb25zdCBJZGVu
dGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0ciA9IDApOw0KKyAg
ICBLSlNfRVhQT1JUIHZvaWQgcHV0RGlyZWN0KGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFt
ZSwgaW50IHZhbHVlLCBpbnQgYXR0ciA9IDApOw0KIA0KLSAgICB2b2lkIGZpbGxHZXR0ZXJQcm9w
ZXJ0eVNsb3QoUHJvcGVydHlTbG90JiBzbG90LCBKU1ZhbHVlICoqbG9jYXRpb24pOw0KKyAgICBL
SlNfRVhQT1JUIHZvaWQgZmlsbEdldHRlclByb3BlcnR5U2xvdChQcm9wZXJ0eVNsb3QmIHNsb3Qs
IEpTVmFsdWUgKipsb2NhdGlvbik7DQogDQotICAgIHZvaWQgZGVmaW5lR2V0dGVyKEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCAqZ2V0dGVy
RnVuYyk7DQotICAgIHZvaWQgZGVmaW5lU2V0dGVyKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRl
bnRpZmllciYgcHJvcGVydHlOYW1lLCBKU09iamVjdCAqc2V0dGVyRnVuYyk7DQorICAgIEtKU19F
WFBPUlQgdm9pZCBkZWZpbmVHZXR0ZXIoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIEpTT2JqZWN0ICpnZXR0ZXJGdW5jKTsNCisgICAgS0pTX0VYUE9SVCB2
b2lkIGRlZmluZVNldHRlcihFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TmFtZSwgSlNPYmplY3QgKnNldHRlckZ1bmMpOw0KIA0KICAgICAvKioNCiAgICAgICogUmVt
b3ZlIGFsbCBwcm9wZXJ0aWVzIGZyb20gdGhpcyBvYmplY3QuDQogICAgICAqIFRoaXMgZG9lc24n
dCB0YWtlIERvbnREZWxldGUgaW50byBhY2NvdW50LCBhbmQgaXNuJ3QgaW4gdGhlIEVDTUEgc3Bl
Yy4NCiAgICAgICogSXQncyBzaW1wbHkgYSBxdWljayB3YXkgdG8gcmVtb3ZlIGV2ZXJ5dGhpbmcg
c3RvcmVkIGluIHRoZSBwcm9wZXJ0eSBtYXAuDQogICAgICAqLw0KLSAgICB2b2lkIGNsZWFyUHJv
cGVydGllcygpIHsgX3Byb3AuY2xlYXIoKTsgfQ0KKyAgICBLSlNfRVhQT1JUIHZvaWQgY2xlYXJQ
cm9wZXJ0aWVzKCkgeyBfcHJvcC5jbGVhcigpOyB9DQogDQotICAgIHZvaWQgc2F2ZVByb3BlcnRp
ZXMoU2F2ZWRQcm9wZXJ0aWVzICZwKSBjb25zdCB7IF9wcm9wLnNhdmUocCk7IH0NCi0gICAgdm9p
ZCByZXN0b3JlUHJvcGVydGllcyhjb25zdCBTYXZlZFByb3BlcnRpZXMgJnApIHsgX3Byb3AucmVz
dG9yZShwKTsgfQ0KKyAgICBLSlNfRVhQT1JUIHZvaWQgc2F2ZVByb3BlcnRpZXMoU2F2ZWRQcm9w
ZXJ0aWVzICZwKSBjb25zdCB7IF9wcm9wLnNhdmUocCk7IH0NCisgICAgS0pTX0VYUE9SVCB2b2lk
IHJlc3RvcmVQcm9wZXJ0aWVzKGNvbnN0IFNhdmVkUHJvcGVydGllcyAmcCkgeyBfcHJvcC5yZXN0
b3JlKHApOyB9DQogDQotICAgIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRpb24oKSB7IHJldHVybiBm
YWxzZTsgfQ0KKyAgICBLSlNfRVhQT1JUIHZpcnR1YWwgYm9vbCBpc0FjdGl2YXRpb24oKSB7IHJl
dHVybiBmYWxzZTsgfQ0KICAgcHJvdGVjdGVkOg0KICAgICBQcm9wZXJ0eU1hcCBfcHJvcDsNCiAg
IHByaXZhdGU6DQpJbmRleDoga2pzL3Byb3BlcnR5X21hcC5oDQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9wcm9wZXJ0eV9tYXAuaCx2DQpyZXRyaWV2
aW5nIHJldmlzaW9uIDEuMjkNCmRpZmYgLXUgLXIxLjI5IHByb3BlcnR5X21hcC5oDQotLS0ga2pz
L3Byb3BlcnR5X21hcC5oCTYgSmFuIDIwMDYgMDg6MzI6MTggLTAwMDAJMS4yOQ0KKysrIGtqcy9w
cm9wZXJ0eV9tYXAuaAk3IEphbiAyMDA2IDAxOjA1OjExIC0wMDAwDQpAQCAtNzEsNyArNzEsNyBA
QA0KICAgICBjbGFzcyBQcm9wZXJ0eU1hcCB7DQogICAgIHB1YmxpYzoNCiAgICAgICAgIFByb3Bl
cnR5TWFwKCk7DQotICAgICAgICB+UHJvcGVydHlNYXAoKTsNCisgICAgICAgIEtKU19FWFBPUlQg
flByb3BlcnR5TWFwKCk7DQogDQogICAgICAgICB2b2lkIGNsZWFyKCk7DQogICAgICAgICANCklu
ZGV4OiBranMvc2NvcGVfY2hhaW4uaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvcm9vdC9K
YXZhU2NyaXB0Q29yZS9ranMvc2NvcGVfY2hhaW4uaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTQNCmRpZmYgLXUgLXIxLjE0IHNjb3BlX2NoYWluLmgNCi0tLSBranMvc2NvcGVfY2hhaW4uaAkx
MSBEZWMgMjAwNSAwMjowNTo0OCAtMDAwMAkxLjE0DQorKysga2pzL3Njb3BlX2NoYWluLmgJNyBK
YW4gMjAwNiAwMTowNzoyNyAtMDAwMA0KQEAgLTgzLDEwICs4MywxMCBAQA0KICAgICBwcml2YXRl
Og0KICAgICAgICAgU2NvcGVDaGFpbk5vZGUgKl9ub2RlOw0KICAgICAgICAgDQotICAgICAgICB2
b2lkIGRlcmVmKCkgeyBpZiAoX25vZGUgJiYgLS1fbm9kZS0+cmVmQ291bnQgPT0gMCkgcmVsZWFz
ZSgpOyB9DQorICAgICAgICAgdm9pZCBkZXJlZigpIHsgaWYgKF9ub2RlICYmIC0tX25vZGUtPnJl
ZkNvdW50ID09IDApIHJlbGVhc2UoKTsgfQ0KICAgICAgICAgdm9pZCByZWYoKSBjb25zdDsNCiAg
ICAgICAgIA0KLSAgICAgICAgdm9pZCByZWxlYXNlKCk7DQorICAgICAgICBLSlNfRVhQT1JUIHZv
aWQgcmVsZWFzZSgpOw0KICAgICB9Ow0KIA0KIGlubGluZSB2b2lkIFNjb3BlQ2hhaW46OnJlZigp
IGNvbnN0DQpJbmRleDoga2pzL3VzdHJpbmcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvdXN0cmluZy5oLHYNCnJldHJpZXZpbmcgcmV2aXNpb24g
MS40Nw0KZGlmZiAtdSAtcjEuNDcgdXN0cmluZy5oDQotLS0ga2pzL3VzdHJpbmcuaAkyNSBEZWMg
MjAwNSAwOToyMjozNCAtMDAwMAkxLjQ3DQorKysga2pzL3VzdHJpbmcuaAk3IEphbiAyMDA2IDAx
OjAyOjQwIC0wMDAwDQpAQCAtMjA4LDcgKzIwOCw3IEBADQogICAgICAgc3RhdGljIFBhc3NSZWZQ
dHI8UmVwPiBjcmVhdGVDb3B5aW5nKGNvbnN0IFVDaGFyICpkLCBpbnQgbCk7DQogICAgICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVwPiBjcmVhdGUoUGFzc1JlZlB0cjxSZXA+IGJhc2UsIGludCBvZmZz
ZXQsIGludCBsZW5ndGgpOw0KIA0KLSAgICAgIHZvaWQgZGVzdHJveSgpOw0KKyAgICAgIEtKU19F
WFBPUlQgdm9pZCBkZXN0cm95KCk7DQogICAgICAgDQogICAgICAgVUNoYXIgKmRhdGEoKSBjb25z
dCB7IHJldHVybiBiYXNlU3RyaW5nID8gKGJhc2VTdHJpbmctPmJ1ZiArIGJhc2VTdHJpbmctPnBy
ZUNhcGFjaXR5ICsgb2Zmc2V0KSA6IChidWYgKyBwcmVDYXBhY2l0eSArIG9mZnNldCk7IH0NCiAg
ICAgICBpbnQgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGxlbjsgfQ0KQEAgLTI1MSw3ICsyNTEsNyBA
QA0KICAgICAvKioNCiAgICAgICogQ29uc3RydWN0cyBhIHN0cmluZyBmcm9tIGEgY2xhc3NpY2Fs
IHplcm8gZGV0ZXJtaW5lZCBjaGFyIHN0cmluZy4NCiAgICAgICovDQotICAgIFVTdHJpbmcoY29u
c3QgY2hhciAqYyk7DQorICAgIEtKU19FWFBPUlQgVVN0cmluZyhjb25zdCBjaGFyICpjKTsNCiAg
ICAgLyoqDQogICAgICAqIENvbnN0cnVjdHMgYSBzdHJpbmcgZnJvbSBhbiBhcnJheSBvZiBVbmlj
b2RlIGNoYXJhY3RlcnMgb2YgdGhlIHNwZWNpZmllZA0KICAgICAgKiBsZW5ndGguDQpAQCAtMzM2
LDcgKzMzNiw3IEBADQogICAgICAqIHdhc3RlIGFueSBtZW1vcnkgdGhlIGNoYXIgYnVmZmVyIGlz
IHN0YXRpYyBhbmQgKnNoYXJlZCogYnkgYWxsIFVTdHJpbmcNCiAgICAgICogaW5zdGFuY2VzLg0K
ICAgICAgKi8NCi0gICAgY2hhciAqYXNjaWkoKSBjb25zdDsNCisgICAgS0pTX0VYUE9SVCBjaGFy
ICphc2NpaSgpIGNvbnN0Ow0KIA0KICAgICAvKioNCiAgICAgICogQ29udmVydCB0aGUgc3RyaW5n
IHRvIFVURi04LCBhc3N1bWluZyBpdCBpcyBVVEYtMTYgZW5jb2RlZC4NCkluZGV4OiBranMvdmFs
dWUuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMv
dmFsdWUuaCx2DQpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDINCmRpZmYgLXUgLXIxLjQyIHZhbHVl
LmgNCi0tLSBranMvdmFsdWUuaAkyNyBEZWMgMjAwNSAwOToyNDoxNCAtMDAwMAkxLjQyDQorKysg
a2pzL3ZhbHVlLmgJNyBKYW4gMjAwNiAwMTowOTowNiAtMDAwMA0KQEAgLTEwMiw3ICsxMDIsNyBA
QA0KICAgICBKU1ZhbHVlICp0b1ByaW1pdGl2ZShFeGVjU3RhdGUgKmV4ZWMsIFR5cGUgcHJlZmVy
cmVkVHlwZSA9IFVuc3BlY2lmaWVkVHlwZSkgY29uc3Q7DQogICAgIGJvb2wgdG9Cb29sZWFuKEV4
ZWNTdGF0ZSAqZXhlYykgY29uc3Q7DQogICAgIGRvdWJsZSB0b051bWJlcihFeGVjU3RhdGUgKmV4
ZWMpIGNvbnN0Ow0KLSAgICBVU3RyaW5nIHRvU3RyaW5nKEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7
DQorICAgIEtKU19FWFBPUlQgVVN0cmluZyB0b1N0cmluZyhFeGVjU3RhdGUgKmV4ZWMpIGNvbnN0
Ow0KICAgICBKU09iamVjdCAqdG9PYmplY3QoRXhlY1N0YXRlICpleGVjKSBjb25zdDsNCiANCiAg
ICAgLy8gSW50ZWdlciBjb252ZXJzaW9ucy4NCkBAIC0xNTYsNyArMTU2LDcgQEANCiAgICAgY29u
c3QgSlNPYmplY3QgKmdldE9iamVjdCgpIGNvbnN0OyAvLyBOVUxMIGlmIG5vdCBhbiBvYmplY3QN
CiANCiAgICAgLy8gRXh0cmFjdGluZyBpbnRlZ2VyIHZhbHVlcy4NCi0gICAgdmlydHVhbCBib29s
IGdldFVJbnQzMih1aW50MzJfdCYpIGNvbnN0Ow0KKyAgICBLSlNfRVhQT1JUIHZpcnR1YWwgYm9v
bCBnZXRVSW50MzIodWludDMyX3QmKSBjb25zdDsNCiANCiAgICAgLy8gQmFzaWMgY29udmVyc2lv
bnMuDQogICAgIHZpcnR1YWwgSlNWYWx1ZSAqdG9QcmltaXRpdmUoRXhlY1N0YXRlICpleGVjLCBU
eXBlIHByZWZlcnJlZFR5cGUgPSBVbnNwZWNpZmllZFR5cGUpIGNvbnN0ID0gMDsNCkBAIC0xNjYs
NyArMTY2LDcgQEANCiAgICAgdmlydHVhbCBKU09iamVjdCAqdG9PYmplY3QoRXhlY1N0YXRlICpl
eGVjKSBjb25zdCA9IDA7DQogDQogICAgIC8vIEdhcmJhZ2UgY29sbGVjdGlvbi4NCi0gICAgdm9p
ZCAqb3BlcmF0b3IgbmV3KHNpemVfdCk7DQorICAgIEtKU19FWFBPUlQgdm9pZCAqb3BlcmF0b3Ig
bmV3KHNpemVfdCk7DQogICAgIHZpcnR1YWwgdm9pZCBtYXJrKCk7DQogICAgIGJvb2wgbWFya2Vk
KCkgY29uc3Q7DQogDQpAQCAtMTkwLDcgKzE5MCw3IEBADQogDQogY2xhc3MgQ29uc3RhbnRWYWx1
ZXMgew0KIHB1YmxpYzoNCi0gICAgc3RhdGljIEpTQ2VsbCAqdW5kZWZpbmVkOw0KKyAgICBLSlNf
RVhQT1JUIHN0YXRpYyBKU0NlbGwgKnVuZGVmaW5lZDsNCiAgICAgc3RhdGljIEpTQ2VsbCAqbnVs
bDsNCiAgICAgc3RhdGljIEpTQ2VsbCAqanNGYWxzZTsNCiAgICAgc3RhdGljIEpTQ2VsbCAqanNU
cnVlOw0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5520</attachid>
            <date>2006-01-06 17:40:29 -0800</date>
            <delta_ts>2006-01-16 14:16:30 -0800</delta_ts>
            <desc>Defines KJS_EXPORT </desc>
            <filename>dllexport-define.patch</filename>
            <type>text/plain</type>
            <size>1055</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IGt4bWxjb3JlL0Zhc3RNYWxsb2MuaA0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KUkNTIGZpbGU6IC9jdnMv
cm9vdC9KYXZhU2NyaXB0Q29yZS9reG1sY29yZS9GYXN0TWFsbG9jLmgsdg0KcmV0cmlldmluZyBy
ZXZpc2lvbiAxLjMNCmRpZmYgLXUgLXIxLjMgRmFzdE1hbGxvYy5oDQotLS0ga3htbGNvcmUvRmFz
dE1hbGxvYy5oCTQgT2N0IDIwMDUgMDU6NTc6MTMgLTAwMDAJMS4zDQorKysga3htbGNvcmUvRmFz
dE1hbGxvYy5oCTEgSmFuIDIwMDYgMDE6MzY6MTggLTAwMDANCkBAIC0yNiwxMiArMjYsMjIgQEAN
CiAjaW5jbHVkZSA8c3RkbGliLmg+DQogI2luY2x1ZGUgPG5ldz4NCiANCisjaWYgV0lOMzINCisg
ICAgI2lmZGVmIEpBVkFTQ1JJUFRDT1JFX0VYUE9SVFMNCisgICAgICAgICNkZWZpbmUgS0pTX0VY
UE9SVCBfX2RlY2xzcGVjKGRsbGV4cG9ydCkNCisgICAgI2Vsc2UNCisgICAgICAgICNkZWZpbmUg
S0pTX0VYUE9SVCBfX2RlY2xzcGVjKGRsbGltcG9ydCkNCisgICAgI2VuZGlmDQorI2Vsc2UNCisg
ICAgI2RlZmluZSBLSlNfRVhQT1JUDQorI2VuZGlmDQorDQogbmFtZXNwYWNlIEtYTUxDb3JlIHsN
CiANCi0gICAgdm9pZCAqZmFzdE1hbGxvYyhzaXplX3Qgbik7DQotICAgIHZvaWQgKmZhc3RDYWxs
b2Moc2l6ZV90IG5fZWxlbWVudHMsIHNpemVfdCBlbGVtZW50X3NpemUpOw0KLSAgICB2b2lkIGZh
c3RGcmVlKHZvaWQqIHApOw0KLSAgICB2b2lkICpmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qg
bik7DQorICAgIEtKU19FWFBPUlQgdm9pZCAqZmFzdE1hbGxvYyhzaXplX3Qgbik7DQorICAgIEtK
U19FWFBPUlQgdm9pZCAqZmFzdENhbGxvYyhzaXplX3Qgbl9lbGVtZW50cywgc2l6ZV90IGVsZW1l
bnRfc2l6ZSk7DQorICAgIEtKU19FWFBPUlQgdm9pZCBmYXN0RnJlZSh2b2lkKiBwKTsNCisgICAg
S0pTX0VYUE9SVCB2b2lkICpmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3Qgbik7DQogICAgIA0K
IH0gLy8gbmFtZXNwYWNlIEtYTUxDb3JlDQogDQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5726</attachid>
            <date>2006-01-16 14:16:30 -0800</date>
            <delta_ts>2006-01-22 12:04:05 -0800</delta_ts>
            <desc>KJS_EXPORT </desc>
            <filename>win32-jscore-dllexport.patch</filename>
            <type>text/plain</type>
            <size>16168</size>
            <attacher name="Justin Haygood">jhaygood</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqcy9ib29sX29iamVjdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBranMvYm9vbF9vYmpl
Y3QuY3BwCShyZXZpc2lvbiAxMjEzNikNCisrKyBranMvYm9vbF9vYmplY3QuY3BwCSh3b3JraW5n
IGNvcHkpDQpAQCAtMjksNiArMjksOCBAQA0KICNpbmNsdWRlICJib29sX29iamVjdC5oIgogI2lu
Y2x1ZGUgImVycm9yX29iamVjdC5oIgogCisjaW5jbHVkZSAibm9kZXMuaCIKKwogI2luY2x1ZGUg
PGFzc2VydC5oPgogCiB1c2luZyBuYW1lc3BhY2UgS0pTOwpJbmRleDoga2pzL2NvbGxlY3Rvci5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0ga2pzL2NvbGxlY3Rvci5oCShyZXZpc2lvbiAxMjEzNikNCisrKyBr
anMvY29sbGVjdG9yLmgJKHdvcmtpbmcgY29weSkNCkBAIC0zMyw3ICszMyw3IEBADQogICAvKioK
ICAgICogQHNob3J0IEdhcmJhZ2UgY29sbGVjdG9yLgogICAgKi8KLSAgY2xhc3MgQ29sbGVjdG9y
IHsKKyAgY2xhc3MgS0pTX0VYUE9SVCBDb2xsZWN0b3IgewogICAgIC8vIGRpc2FsbG93IGRpcmVj
dCBjb25zdHJ1Y3Rpb24vZGVzdHJ1Y3Rpb24KICAgICBDb2xsZWN0b3IoKTsKICAgcHVibGljOgpJ
bmRleDoga2pzL2NvbmZpZy5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0ga2pzL2NvbmZpZy5oCShyZXZpc2lv
biAxMjEzNikNCisrKyBranMvY29uZmlnLmgJKHdvcmtpbmcgY29weSkNCkBAIC0xOSw2ICsxOSwx
MiBAQA0KICNkZWZpbmUgSEFWRV9TWVNfVElNRUJfSCAxCiAjZGVmaW5lIFVTRV9TWVNURU1fTUFM
TE9DIDEKIAorI2lmIEpBVkFTQ1JJUFRDT1JFX0VYUE9SVFMKKyNkZWZpbmUgS0pTX0VYUE9SVCBf
X2RlY2xzcGVjKGRsbGV4cG9ydCkKKyNlbHNlCisjZGVmaW5lIEtKU19FWFBPUlQgX19kZWNsc3Bl
YyhkbGxpbXBvcnQpCisjZW5kaWYKKwogI2luY2x1ZGUgPGFzc2VydC5oPgogCiAjZWxzZQpAQCAt
NDYsNiArNTIsMTIgQEANCiAKICNkZWZpbmUgS1hDX0NIQU5HRVMgMQogCisvL0ZJWE1FOiBBZGQg
R0NDIHZpc2liaWxpdHkgc3VwcG9ydCB0byBLSlNfRVhQT1JUCisKKyNpZm5kZWYgS0pTX0VYUE9S
VAorI2RlZmluZSBLSlNfRVhQT1JUCisjZW5kaWYKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiAjdW5k
ZWYgbmV3CiAjdW5kZWYgZGVsZXRlCkluZGV4OiBranMvZGVidWdnZXIuaA0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
LS0tIGtqcy9kZWJ1Z2dlci5oCShyZXZpc2lvbiAxMjEzNikNCisrKyBranMvZGVidWdnZXIuaAko
d29ya2luZyBjb3B5KQ0KQEAgLTQ1LDcgKzQ1LDcgQEANCiAgICAqIGFudGljaXBhdGVkIHRoYXQg
YXQgc29tZSBzdGFnZSB0aGUgaW50ZXJmYWNlIHdpbGwgYmUgZnJvemVuIGFuZCBtYWRlCiAgICAq
IGF2YWlsYWJsZSBmb3IgZ2VuZXJhbCB1c2UuCiAgICAqLwotICBjbGFzcyBEZWJ1Z2dlciB7Cisg
IGNsYXNzIEtKU19FWFBPUlQgRGVidWdnZXIgewogICBwdWJsaWM6CiAKICAgICAvKioKSW5kZXg6
IGtqcy9lcnJvcl9vYmplY3QuY3BwDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09DQotLS0ga2pzL2Vycm9yX29iamVjdC5j
cHAJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9lcnJvcl9vYmplY3QuY3BwCSh3b3JraW5nIGNv
cHkpDQpAQCAtMjksNiArMjksOCBAQA0KICNpbmNsdWRlICJlcnJvcl9vYmplY3QuaCIKIC8vI2lu
Y2x1ZGUgImRlYnVnZ2VyLmgiCiAKKyNpbmNsdWRlICJub2Rlcy5oIgorCiB1c2luZyBuYW1lc3Bh
Y2UgS0pTOwogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRXJyb3JJbnN0YW5j
ZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkluZGV4OiBranMvZnVuY3Rpb24uaA0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQ0KLS0tIGtqcy9mdW5jdGlvbi5oCShyZXZpc2lvbiAxMjEzNikNCisrKyBranMvZnVu
Y3Rpb24uaAkod29ya2luZyBjb3B5KQ0KQEAgLTM1LDcgKzM1LDcgQEANCiAgIC8qKgogICAgKiBA
c2hvcnQgSW1wbGVtZW50YXRpb24gY2xhc3MgZm9yIGludGVybmFsIEZ1bmN0aW9ucy4KICAgICov
Ci0gIGNsYXNzIEZ1bmN0aW9uSW1wIDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAgeworICBj
bGFzcyBLSlNfRVhQT1JUIEZ1bmN0aW9uSW1wIDogcHVibGljIEludGVybmFsRnVuY3Rpb25JbXAg
ewogICAgIGZyaWVuZCBjbGFzcyBBY3RpdmF0aW9uSW1wOwogICBwdWJsaWM6CiAgICAgRnVuY3Rp
b25JbXAoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZuID0gSWRlbnRpZmllcjo6
bnVsbCgpKTsKQEAgLTcxLDcgKzcxLDcgQEANCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NWYXJE
ZWNscyhFeGVjU3RhdGUgKmV4ZWMpOwogICB9OwogCi0gIGNsYXNzIERlY2xhcmVkRnVuY3Rpb25J
bXAgOiBwdWJsaWMgRnVuY3Rpb25JbXAgeworICBjbGFzcyBLSlNfRVhQT1JUIERlY2xhcmVkRnVu
Y3Rpb25JbXAgOiBwdWJsaWMgRnVuY3Rpb25JbXAgewogICBwdWJsaWM6CiAgICAgRGVjbGFyZWRG
dW5jdGlvbkltcChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJm4sCiAgICAgICAg
ICAgICAgICAgICAgICAgICBGdW5jdGlvbkJvZHlOb2RlICpiLCBjb25zdCBTY29wZUNoYWluICZz
Yyk7CkluZGV4OiBranMvaWRlbnRpZmllci5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBranMvaWRlbnRp
Zmllci5jcHAJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9pZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQ0KQEAgLTIwNSw3ICsyMDUsNyBAQA0KIAogI2lmICFBVk9JRF9TVEFUSUNfQ09OU1RS
VUNUT1JTCiAgICAgLy8gRGVmaW5lIGFuIElkZW50aWZpZXIgaW4gdGhlIG5vcm1hbCB3YXkuCi0g
ICAgI2RlZmluZSBERUZJTkVfR0xPQkFMKG5hbWUsIHN0cmluZykgZXh0ZXJuIGNvbnN0IElkZW50
aWZpZXIgbmFtZShzdHJpbmcpOworICAgICNkZWZpbmUgREVGSU5FX0dMT0JBTChuYW1lLCBzdHJp
bmcpIEtKU19FWFBPUlQgZXh0ZXJuIGNvbnN0IElkZW50aWZpZXIgbmFtZShzdHJpbmcpOwogI2Vs
c2UKICAgICAvLyBEZWZpbmUgYW4gSWRlbnRpZmllci1zaXplZCBhcnJheSBvZiBwb2ludGVycyB0
byBhdm9pZCBzdGF0aWMgaW5pdGlhbGl6YXRpb24uCiAgICAgLy8gVXNlIGFuIGFycmF5IG9mIHBv
aW50ZXJzIGluc3RlYWQgb2YgYW4gYXJyYXkgb2YgY2hhciBpbiBjYXNlIHRoZXJlIGlzIHNvbWUg
YWxpZ25tZW50IGlzc3VlLgpJbmRleDoga2pzL2lkZW50aWZpZXIuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IGtqcy9pZGVudGlmaWVyLmgJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9pZGVudGlmaWVyLmgJ
KHdvcmtpbmcgY29weSkNCkBAIC0xNCw3ICsxNCw3IEBADQogICoKICAqICBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCiAgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJ
Qi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdGVldCwgRmlmdGggRmxvb3IsCisgKiAgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAq
ICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KQEAgLTI2LDcgKzI2LDcgQEAN
CiAKIG5hbWVzcGFjZSBLSlMgewogCi0gICAgY2xhc3MgSWRlbnRpZmllciB7CisgICAgY2xhc3Mg
S0pTX0VYUE9SVCBJZGVudGlmaWVyIHsKICAgICAgICAgZnJpZW5kIGNsYXNzIFByb3BlcnR5TWFw
OwogICAgIHB1YmxpYzoKICAgICAgICAgc3RhdGljIHZvaWQgaW5pdCgpOwpAQCAtODMsNyArODMs
NyBAQA0KICAgICB9OwogICAgIAogI2lmICFLSlNfSURFTlRJRklFUl9ISURFX0dMT0JBTFMKLSAg
ICBleHRlcm4gY29uc3QgSWRlbnRpZmllciBudWxsSWRlbnRpZmllcjsKKyAgICBLSlNfRVhQT1JU
IGV4dGVybiBjb25zdCBJZGVudGlmaWVyIG51bGxJZGVudGlmaWVyOwogCiAgICAgaW5saW5lIGNv
bnN0IElkZW50aWZpZXIgJklkZW50aWZpZXI6Om51bGwoKQogICAgICAgICB7IHJldHVybiBudWxs
SWRlbnRpZmllcjsgfQpAQCAtMTE4LDkgKzExOCw5IEBADQogCiAgICAgLy8gRGVmaW5lIGV4dGVy
bmFsIGdsb2JhbCB2YXJpYWJsZXMgZm9yIGFsbCBwcm9wZXJ0eSBuYW1lcyBhYm92ZSAoYW5kIG9u
ZSBtb3JlKS4KICNpZiAhS0pTX0lERU5USUZJRVJfSElERV9HTE9CQUxTCi0gICAgZXh0ZXJuIGNv
bnN0IElkZW50aWZpZXIgc3BlY2lhbFByb3RvdHlwZVByb3BlcnR5TmFtZTsKKyAgICBLSlNfRVhQ
T1JUIGV4dGVybiBjb25zdCBJZGVudGlmaWVyIHNwZWNpYWxQcm90b3R5cGVQcm9wZXJ0eU5hbWU7
CiAKLSAgICAjZGVmaW5lIEtKU19JREVOVElGSUVSX0RFQ0xBUkVfUFJPUEVSVFlfTkFNRV9HTE9C
QUwobmFtZSkgZXh0ZXJuIGNvbnN0IElkZW50aWZpZXIgbmFtZSAjIyBQcm9wZXJ0eU5hbWU7Cisg
ICAgI2RlZmluZSBLSlNfSURFTlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMKG5h
bWUpIEtKU19FWFBPUlQgZXh0ZXJuIGNvbnN0IElkZW50aWZpZXIgbmFtZSAjIyBQcm9wZXJ0eU5h
bWU7CiAgICAgS0pTX0lERU5USUZJRVJfRUFDSF9QUk9QRVJUWV9OQU1FX0dMT0JBTChLSlNfSURF
TlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMKQogICAgICN1bmRlZiBLSlNfSURF
TlRJRklFUl9ERUNMQVJFX1BST1BFUlRZX05BTUVfR0xPQkFMCiAjZW5kaWYKSW5kZXg6IGtqcy9p
bnRlcm5hbC5oDQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09DQotLS0ga2pzL2ludGVybmFsLmgJKHJldmlzaW9uIDEyMTM2
KQ0KKysrIGtqcy9pbnRlcm5hbC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtMzkwLDcgKzM5MCw3IEBA
DQogICAgIGJvb2wgaGFzSW5zdGFuY2UoRXhlY1N0YXRlICpleGVjLCBKU1ZhbHVlICp2YWx1ZSk7
CiAKICAgICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyAqY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1
cm4gJmluZm87IH0KLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CisgICAgS0pTX0VY
UE9SVCBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAgIH07CiAKICAgLy8gaGVscGVyIGZ1
bmN0aW9uIGZvciB0b0ludGVnZXIsIHRvSW50MzIsIHRvVUludDMyIGFuZCB0b1VJbnQxNgpJbmRl
eDoga2pzL2ludGVycHJldGVyLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBranMvaW50ZXJwcmV0ZXIuaAko
cmV2aXNpb24gMTIxMzYpDQorKysga2pzL2ludGVycHJldGVyLmgJKHdvcmtpbmcgY29weSkNCkBA
IC01Niw3ICs1Niw3IEBADQogICAgKiBLSlMgQ29udGV4dEltcCB0eXBlLiBXaGVuIG9uZSBjb250
ZXh0IHZhcmlhYmxlIGlzIGFzc2lnbmVkIHRvIGFub3RoZXIsIGl0CiAgICAqIGlzIHN0aWxsIHJl
ZmVyZW5jaW5nIHRoZSBzYW1lIGludGVybmFsIG9iamVjdC4KICAgICovCi0gIGNsYXNzIENvbnRl
eHQgeworICBjbGFzcyBLSlNfRVhQT1JUIENvbnRleHQgewogICBwdWJsaWM6CiAgICAgQ29udGV4
dChDb250ZXh0SW1wICppKSA6IHJlcChpKSB7IH0KIApAQCAtMTMzLDcgKzEzMyw3IEBADQogICAg
KiBldmFsdWF0aW9uLCBhbmQgYWxzbyBwcm92aWRlcyBhY2Nlc3MgdG8gYnVpbHQtaW4gcHJvcGVy
dGllcyBzdWNoIGFzCiAgICAqICIgT2JqZWN0IiBhbmQgIk51bWJlciIuCiAgICAqLwotICBjbGFz
cyBJbnRlcnByZXRlciB7CisgIGNsYXNzIEtKU19FWFBPUlQgSW50ZXJwcmV0ZXIgewogICBwdWJs
aWM6CiAgICAgLyoqCiAgICAgICogQ3JlYXRlcyBhIG5ldyBpbnRlcnByZXRlci4gVGhlIHN1cHBs
aWVkIG9iamVjdCB3aWxsIGJlIHVzZWQgYXMgdGhlIGdsb2JhbApJbmRleDoga2pzL2xpc3QuaA0K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQ0KLS0tIGtqcy9saXN0LmgJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9saXN0
LmgJKHdvcmtpbmcgY29weSkNCkBAIC00NSw3ICs0NSw3IEBADQogICAgICAqIFRoZSBsaXN0IGlz
IGV4cGxpY2l0bHkgc2hhcmVkLiBOb3RlIHRoYXQgd2hpbGUgY29weVRhaWwoKSByZXR1cm5zIGEK
ICAgICAgKiBjb3B5IG9mIHRoZSBsaXN0IHRoZSByZWZlcmVuY2VkIG9iamVjdHMgYXJlIHN0aWxs
IHNoYXJlZC4KICAgICAgKi8KLSAgICBjbGFzcyBMaXN0IHsKKyAgICBjbGFzcyBLSlNfRVhQT1JU
IExpc3QgewogICAgIHB1YmxpYzoKICAgICAgICAgTGlzdCgpOwogICAgICAgICBMaXN0KGJvb2wg
bmVlZHNNYXJraW5nKTsKSW5kZXg6IGtqcy9sb29rdXAuaA0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGtqcy9s
b29rdXAuaAkocmV2aXNpb24gMTIxMzYpDQorKysga2pzL2xvb2t1cC5oCSh3b3JraW5nIGNvcHkp
DQpAQCAtMjYsNiArMjYsNyBAQA0KICNpbmNsdWRlICJpbnRlcnByZXRlci5oIgogI2luY2x1ZGUg
ImlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJvYmplY3QuaCIKKyNpbmNsdWRlICJub2Rlcy5oIgog
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKIG5hbWVzcGFjZSBLSlMgewpAQCAtOTQsNyArOTUsNyBAQA0K
ICAgLyoqCiAgICAqIEBzaG9ydCBGYXN0IGtleXdvcmQgbG9va3VwLgogICAgKi8KLSAgY2xhc3Mg
TG9va3VwIHsKKyAgY2xhc3MgS0pTX0VYUE9SVCBMb29rdXAgewogICBwdWJsaWM6CiAgICAgLyoq
CiAgICAgICogRmluZCBhbiBlbnRyeSBpbiB0aGUgdGFibGUsIGFuZCByZXR1cm4gaXRzIHZhbHVl
IChpLmUuIHRoZSB2YWx1ZSBmaWVsZCBvZiBIYXNoRW50cnkpCkluZGV4OiBranMvb2JqZWN0LmgN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBranMvb2JqZWN0LmgJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9v
YmplY3QuaAkod29ya2luZyBjb3B5KQ0KQEAgLTM3LDYgKzM3LDcgQEANCiAjZGVmaW5lIEtKU19N
QVhfU1RBQ0sgMTAwMAogI2VuZGlmCiAKKwogI2luY2x1ZGUgImludGVycHJldGVyLmgiCiAjaW5j
bHVkZSAicHJvcGVydHlfbWFwLmgiCiAjaW5jbHVkZSAicHJvcGVydHlfc2xvdC5oIgpAQCAtMTA3
LDcgKzEwOCw3IEBADQogICAgIEpTT2JqZWN0ICpzZXR0ZXI7ICAKICAgfTsKICAgCi0gIGNsYXNz
IEpTT2JqZWN0IDogcHVibGljIEpTQ2VsbCB7CisgIGNsYXNzIEtKU19FWFBPUlQgSlNPYmplY3Qg
OiBwdWJsaWMgSlNDZWxsIHsKICAgcHVibGljOgogICAgIC8qKgogICAgICAqIENyZWF0ZXMgYSBu
ZXcgSlNPYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIHByb3RvdHlwZQpAQCAtNTQ3LDcgKzU0OCw3
IEBADQogICAvKioKICAgICogQHNob3J0IEZhY3RvcnkgbWV0aG9kcyBmb3IgZXJyb3Igb2JqZWN0
cy4KICAgICovCi0gIGNsYXNzIEVycm9yIHsKKyAgY2xhc3MgS0pTX0VYUE9SVCBFcnJvciB7CiAg
IHB1YmxpYzoKICAgICAvKioKICAgICAgKiBGYWN0b3J5IG1ldGhvZCBmb3IgZXJyb3Igb2JqZWN0
cy4KQEAgLTU2OCwxMCArNTY5LDEwIEBADQogICAgIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3Qg
KiBjb25zdCBlcnJvck5hbWVzOwogICB9OwogCi1KU09iamVjdCAqdGhyb3dFcnJvcihFeGVjU3Rh
dGUgKiwgRXJyb3JUeXBlLCBjb25zdCBVU3RyaW5nICZtZXNzYWdlLCBpbnQgbGluZU51bWJlciwg
aW50IHNvdXJjZUlkLCBjb25zdCBVU3RyaW5nICpzb3VyY2VVUkwpOwotSlNPYmplY3QgKnRocm93
RXJyb3IoRXhlY1N0YXRlICosIEVycm9yVHlwZSwgY29uc3QgVVN0cmluZyAmbWVzc2FnZSk7Ci1K
U09iamVjdCAqdGhyb3dFcnJvcihFeGVjU3RhdGUgKiwgRXJyb3JUeXBlLCBjb25zdCBjaGFyICpt
ZXNzYWdlKTsKLUpTT2JqZWN0ICp0aHJvd0Vycm9yKEV4ZWNTdGF0ZSAqLCBFcnJvclR5cGUpOwor
S0pTX0VYUE9SVCBKU09iamVjdCAqdGhyb3dFcnJvcihFeGVjU3RhdGUgKiwgRXJyb3JUeXBlLCBj
b25zdCBVU3RyaW5nICZtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgaW50IHNvdXJjZUlkLCBjb25z
dCBVU3RyaW5nICpzb3VyY2VVUkwpOworS0pTX0VYUE9SVCBKU09iamVjdCAqdGhyb3dFcnJvcihF
eGVjU3RhdGUgKiwgRXJyb3JUeXBlLCBjb25zdCBVU3RyaW5nICZtZXNzYWdlKTsKK0tKU19FWFBP
UlQgSlNPYmplY3QgKnRocm93RXJyb3IoRXhlY1N0YXRlICosIEVycm9yVHlwZSwgY29uc3QgY2hh
ciAqbWVzc2FnZSk7CitLSlNfRVhQT1JUIEpTT2JqZWN0ICp0aHJvd0Vycm9yKEV4ZWNTdGF0ZSAq
LCBFcnJvclR5cGUpOwogCiBpbmxpbmUgSlNPYmplY3Q6OkpTT2JqZWN0KEpTT2JqZWN0ICpwcm90
bykKICAgICA6IF9wcm90byhwcm90byksIF9pbnRlcm5hbFZhbHVlKDApCkluZGV4OiBranMvb2Jq
ZWN0X29iamVjdC5jcHANCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBranMvb2JqZWN0X29iamVjdC5jcHAJKHJl
dmlzaW9uIDEyMTM2KQ0KKysrIGtqcy9vYmplY3Rfb2JqZWN0LmNwcAkod29ya2luZyBjb3B5KQ0K
QEAgLTMwLDYgKzMwLDggQEANCiAjaW5jbHVkZSA8c3RkaW8uaD4KICNpbmNsdWRlIDxhc3NlcnQu
aD4KIAorI2luY2x1ZGUgIm5vZGVzLmgiCisKIHVzaW5nIG5hbWVzcGFjZSBLSlM7CiAKIC8vIC0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBPYmplY3RQcm90b3R5cGUgLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KSW5kZXg6IGtqcy9wcm9wZXJ0eV9tYXAuaA0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KLS0tIGtqcy9wcm9wZXJ0eV9tYXAuaAkocmV2aXNpb24gMTIxMzYpDQorKysga2pzL3Byb3Bl
cnR5X21hcC5oCSh3b3JraW5nIGNvcHkpDQpAQCAtNjgsNyArNjgsNyBAQA0KICogSmF2YXNjcmlw
dCBQcm9wZXJ0eSBNYXAuCiAqLwogCi0gICAgY2xhc3MgUHJvcGVydHlNYXAgeworICAgIGNsYXNz
IEtKU19FWFBPUlQgUHJvcGVydHlNYXAgewogICAgIHB1YmxpYzoKICAgICAgICAgUHJvcGVydHlN
YXAoKTsKICAgICAgICAgflByb3BlcnR5TWFwKCk7CkluZGV4OiBranMvcHJvcGVydHlfc2xvdC5o
DQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09DQotLS0ga2pzL3Byb3BlcnR5X3Nsb3QuaAkocmV2aXNpb24gMTIxMzYpDQor
Kysga2pzL3Byb3BlcnR5X3Nsb3QuaAkod29ya2luZyBjb3B5KQ0KQEAgLTMzLDcgKzMzLDcgQEAN
CiBjbGFzcyBKU09iamVjdDsKIAogI2RlZmluZSBWQUxVRV9TTE9UX01BUktFUiAoKEdldFZhbHVl
RnVuYykxKQotY2xhc3MgUHJvcGVydHlTbG90CitjbGFzcyBLSlNfRVhQT1JUIFByb3BlcnR5U2xv
dAogewogcHVibGljOgogICAgIHR5cGVkZWYgSlNWYWx1ZSAqKCpHZXRWYWx1ZUZ1bmMpKEV4ZWNT
dGF0ZSAqLCBKU09iamVjdCAqb3JpZ2luYWxPYmplY3QsIGNvbnN0IElkZW50aWZpZXImLCBjb25z
dCBQcm9wZXJ0eVNsb3QmKTsKSW5kZXg6IGtqcy9yZWZlcmVuY2UuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IGtqcy9yZWZlcmVuY2UuaAkocmV2aXNpb24gMTIxMzYpDQorKysga2pzL3JlZmVyZW5jZS5oCSh3
b3JraW5nIGNvcHkpDQpAQCAtMzAsNyArMzAsNyBAQA0KIAogICBjbGFzcyBKU09iamVjdDsKIAot
ICBjbGFzcyBSZWZlcmVuY2UgeworICBjbGFzcyBLSlNfRVhQT1JUIFJlZmVyZW5jZSB7CiAgICAg
ZnJpZW5kIGNsYXNzIFJlZmVyZW5jZUxpc3Q7CiAgICAgZnJpZW5kIGNsYXNzIFJlZmVyZW5jZUxp
c3RJdGVyYXRvcjsKICAgcHVibGljOgpJbmRleDoga2pzL3JlZmVyZW5jZV9saXN0LmgNCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0NCi0tLSBranMvcmVmZXJlbmNlX2xpc3QuaAkocmV2aXNpb24gMTIxMzYpDQorKysga2pz
L3JlZmVyZW5jZV9saXN0LmgJKHdvcmtpbmcgY29weSkNCkBAIC0zMSw3ICszMSw3IEBADQogICBj
bGFzcyBSZWZlcmVuY2VMaXN0Tm9kZTsKICAgY2xhc3MgUmVmZXJlbmNlTGlzdEhlYWROb2RlOwog
Ci0gIGNsYXNzIFJlZmVyZW5jZUxpc3RJdGVyYXRvciB7CisgIGNsYXNzIEtKU19FWFBPUlQgUmVm
ZXJlbmNlTGlzdEl0ZXJhdG9yIHsKICAgICBmcmllbmQgY2xhc3MgUmVmZXJlbmNlTGlzdDsKICAg
CiAgIHB1YmxpYzoKQEAgLTQ1LDcgKzQ1LDcgQEANCiAgICAgUmVmZXJlbmNlTGlzdE5vZGUgKm5v
ZGU7CiAgIH07CiAgIAotICBjbGFzcyBSZWZlcmVuY2VMaXN0IHsKKyAgY2xhc3MgS0pTX0VYUE9S
VCBSZWZlcmVuY2VMaXN0IHsKICAgcHVibGljOgogICAgIFJlZmVyZW5jZUxpc3QoKTsKICAgICBS
ZWZlcmVuY2VMaXN0KGNvbnN0IFJlZmVyZW5jZUxpc3QgJmxpc3QpOwpJbmRleDoga2pzL3Njb3Bl
X2NoYWluLmgNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0NCi0tLSBranMvc2NvcGVfY2hhaW4uaAkocmV2aXNpb24gMTIx
MzYpDQorKysga2pzL3Njb3BlX2NoYWluLmgJKHdvcmtpbmcgY29weSkNCkBAIC0yOCw3ICsyOCw3
IEBADQogCiAgICAgY2xhc3MgSlNPYmplY3Q7CiAgICAgCi0gICAgY2xhc3MgU2NvcGVDaGFpbk5v
ZGUgeworICAgIGNsYXNzIEtKU19FWFBPUlQgU2NvcGVDaGFpbk5vZGUgewogICAgIHB1YmxpYzoK
ICAgICAgICAgU2NvcGVDaGFpbk5vZGUoU2NvcGVDaGFpbk5vZGUgKm4sIEpTT2JqZWN0ICpvKQog
ICAgICAgICAgICAgOiBuZXh0KG4pLCBvYmplY3QobyksIHJlZkNvdW50KDEpIHsgfQpAQCAtMzgs
NyArMzgsNyBAQA0KICAgICAgICAgaW50IHJlZkNvdW50OwogICAgIH07CiAKLSAgICBjbGFzcyBT
Y29wZUNoYWluSXRlcmF0b3IgeworICAgIGNsYXNzIEtKU19FWFBPUlQgU2NvcGVDaGFpbkl0ZXJh
dG9yIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFNjb3BlQ2hhaW5JdGVyYXRvcihTY29wZUNoYWlu
Tm9kZSAqbm9kZSkgOiBtX25vZGUobm9kZSkge30KIApAQCAtNTYsNyArNTYsNyBAQA0KICAgICAg
ICAgU2NvcGVDaGFpbk5vZGUgKm1fbm9kZTsKICAgICB9OwogCi0gICAgY2xhc3MgU2NvcGVDaGFp
biB7CisgICAgY2xhc3MgS0pTX0VYUE9SVCBTY29wZUNoYWluIHsKICAgICBwdWJsaWM6CiAgICAg
ICAgIFNjb3BlQ2hhaW4oKSA6IF9ub2RlKDApIHsgfQogICAgICAgICB+U2NvcGVDaGFpbigpIHsg
ZGVyZWYoKTsgfQpJbmRleDoga2pzL3VzdHJpbmcuaA0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGtqcy91c3Ry
aW5nLmgJKHJldmlzaW9uIDEyMTM2KQ0KKysrIGtqcy91c3RyaW5nLmgJKHdvcmtpbmcgY29weSkN
CkBAIC02MSw3ICs2MSw3IEBADQogICAgKiByZXByZXNlbnRhdGlvbiBpcyBjb21wYXRpYmxlIHRv
IFhDaGFyMmIgYW5kIFFDaGFyLiBJdCdzIHRoZXJlZm9yZQogICAgKiBwb3NzaWJsZSB0byBleGNo
YW5nZSBkYXRhIHdpdGggWCBhbmQgUXQgd2l0aCBzaGFsbG93IGNvcGllcy4KICAgICovCi0gIHN0
cnVjdCBVQ2hhciB7CisgIHN0cnVjdCBLSlNfRVhQT1JUIFVDaGFyIHsKICAgICAvKioKICAgICAg
KiBDb25zdHJ1Y3QgYSBjaGFyYWN0ZXIgd2l0aCB1bmluaXRpYWxpemVkIHZhbHVlLiAgICAKICAg
ICAgKi8KQEAgLTEyNSw3ICsxMjUsNyBAQA0KICAgICogSWYgdGhhdCBzb3VuZHMgY29uZnVzaW5n
IHlvdXIgYmVzdCBiZXQgaXMgdG8gc2ltcGx5IGZvcmdldCBhYm91dCB0aGUKICAgICogZXhpc3Rl
bmNlIG9mIHRoaXMgY2xhc3MgYW5kIHRyZWF0IGlzIGFzIGJlaW5nIGlkZW50aWNhbCB0byBVQ2hh
ci4KICAgICovCi0gIGNsYXNzIFVDaGFyUmVmZXJlbmNlIHsKKyAgY2xhc3MgS0pTX0VYUE9SVCBV
Q2hhclJlZmVyZW5jZSB7CiAgICAgZnJpZW5kIGNsYXNzIFVTdHJpbmc7CiAgICAgVUNoYXJSZWZl
cmVuY2UoVVN0cmluZyAqcywgdW5zaWduZWQgaW50IG9mZikgOiBzdHIocyksIG9mZnNldChvZmYp
IHsgfQogICBwdWJsaWM6CkBAIC0xNzEsNyArMTcxLDcgQEANCiAgIC8qKgogICAgKiBAc2hvcnQg
OCBiaXQgY2hhciBiYXNlZCBzdHJpbmcgY2xhc3MKICAgICovCi0gIGNsYXNzIENTdHJpbmcgewor
ICBjbGFzcyBLSlNfRVhQT1JUIENTdHJpbmcgewogICBwdWJsaWM6CiAgICAgQ1N0cmluZygpIDog
ZGF0YSgwKSwgbGVuZ3RoKDApIHsgfQogICAgIENTdHJpbmcoY29uc3QgY2hhciAqYyk7CkBAIC0x
OTUsMTQgKzE5NSwxNCBAQA0KICAgLyoqCiAgICAqIEBzaG9ydCBVbmljb2RlIHN0cmluZyBjbGFz
cwogICAgKi8KLSAgY2xhc3MgVVN0cmluZyB7CisgIGNsYXNzIEtKU19FWFBPUlQgVVN0cmluZyB7
CiAgICAgZnJpZW5kIGJvb2wgb3BlcmF0b3I9PShjb25zdCBVU3RyaW5nJiwgY29uc3QgVVN0cmlu
ZyYpOwogCiAgIHB1YmxpYzoKICAgICAvKioKICAgICAgKiBAaW50ZXJuYWwKICAgICAgKi8KLSAg
ICBzdHJ1Y3QgUmVwIHsKKyAgICBzdHJ1Y3QgS0pTX0VYUE9SVCBSZXAgewogCiAgICAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSZXA+IGNyZWF0ZShVQ2hhciAqZCwgaW50IGwpOwogICAgICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVwPiBjcmVhdGVDb3B5aW5nKGNvbnN0IFVDaGFyICpkLCBpbnQgbCk7CkBA
IC00ODMsOCArNDgzLDggQEANCiAgIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgVVN0cmlu
ZyYgczEsIGNvbnN0IFVTdHJpbmcmIHMyKSB7CiAgICAgcmV0dXJuICFLSlM6Om9wZXJhdG9yPT0o
czEsIHMyKTsKICAgfQotICBib29sIG9wZXJhdG9yPChjb25zdCBVU3RyaW5nJiBzMSwgY29uc3Qg
VVN0cmluZyYgczIpOwotICBib29sIG9wZXJhdG9yPT0oY29uc3QgVVN0cmluZyYgczEsIGNvbnN0
IGNoYXIgKnMyKTsKKyAgS0pTX0VYUE9SVCBib29sIG9wZXJhdG9yPChjb25zdCBVU3RyaW5nJiBz
MSwgY29uc3QgVVN0cmluZyYgczIpOworICBLSlNfRVhQT1JUIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBVU3RyaW5nJiBzMSwgY29uc3QgY2hhciAqczIpOwogICBpbmxpbmUgYm9vbCBvcGVyYXRvciE9
KGNvbnN0IFVTdHJpbmcmIHMxLCBjb25zdCBjaGFyICpzMikgewogICAgIHJldHVybiAhS0pTOjpv
cGVyYXRvcj09KHMxLCBzMik7CiAgIH0KQEAgLTQ5OSw3ICs0OTksNyBAQA0KICAgICByZXR1cm4g
VVN0cmluZyhzMSwgczIpOwogICB9CiAgIAotICBpbnQgY29tcGFyZShjb25zdCBVU3RyaW5nICYs
IGNvbnN0IFVTdHJpbmcgJik7CisgIEtKU19FWFBPUlQgaW50IGNvbXBhcmUoY29uc3QgVVN0cmlu
ZyAmLCBjb25zdCBVU3RyaW5nICYpOwogCiAgIC8vIEdpdmVuIGEgZmlyc3QgYnl0ZSwgZ2l2ZXMg
dGhlIGxlbmd0aCBvZiB0aGUgVVRGLTggc2VxdWVuY2UgaXQgYmVnaW5zLgogICAvLyBSZXR1cm5z
IDAgZm9yIGJ5dGVzIHRoYXQgYXJlIG5vdCBsZWdhbCBzdGFydHMgb2YgVVRGLTggc2VxdWVuY2Vz
LgpAQCAtNTA5LDcgKzUwOSw3IEBADQogICAvLyBUYWtlcyBhIG51bGwtdGVybWluYXRlZCBDLXN0
eWxlIHN0cmluZyB3aXRoIGEgVVRGLTggc2VxdWVuY2UgaW4gaXQgYW5kIGNvbnZlcnRzIGl0IHRv
IGEgY2hhcmFjdGVyLgogICAvLyBPbmx5IGFsbG93cyBVbmljb2RlIGNoYXJhY3RlcnMgKFUtMDAw
MDAwMDAgdG8gVS0wMDEwRkZGRikuCiAgIC8vIFJldHVybnMgLTEgaWYgdGhlIHNlcXVlbmNlIGlz
IG5vdCB2YWxpZCAoaW5jbHVkaW5nIHByZXNlbmNlIG9mIGV4dHJhIGJ5dGVzKS4KLSAgaW50IGRl
Y29kZVVURjhTZXF1ZW5jZShjb25zdCBjaGFyICopOworICBLSlNfRVhQT1JUIGludCBkZWNvZGVV
VEY4U2VxdWVuY2UoY29uc3QgY2hhciAqKTsKIAogaW5saW5lIFVTdHJpbmc6OlVTdHJpbmcoKQog
ICA6IG1fcmVwKCZSZXA6Om51bGwpCkluZGV4OiBranMvdmFsdWUuaA0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0t
IGtqcy92YWx1ZS5oCShyZXZpc2lvbiAxMjEzNikNCisrKyBranMvdmFsdWUuaAkod29ya2luZyBj
b3B5KQ0KQEAgLTY2LDcgKzY2LDcgQEANCiAgKiBvbmx5IChhbGwgb2Ygd2hpY2ggYXJlIHByb3Zp
ZGVkIGludGVybmFsbHkgYnkgS0pTKS4gSW5zdGVhZCwgaW5oZXJpdCBmcm9tCiAgKiBKU09iamVj
dC4KICAqLwotY2xhc3MgSlNWYWx1ZSB7CitjbGFzcyBLSlNfRVhQT1JUIEpTVmFsdWUgewogICAg
IGZyaWVuZCBjbGFzcyBKU0NlbGw7IC8vIHNvIGl0IGNhbiBkZXJpdmUgZnJvbSB0aGlzIGNsYXNz
CiAgICAgZnJpZW5kIGNsYXNzIENvbGxlY3RvcjsgLy8gc28gaXQgY2FuIGNhbGwgZG93bmNhc3Qo
KQogCkBAIC0xMjAsMTIgKzEyMCwxNSBAQA0KICAgICBKU0NlbGwgKmRvd25jYXN0KCk7CiAgICAg
Y29uc3QgSlNDZWxsICpkb3duY2FzdCgpIGNvbnN0OwogCisjaWYgIVdJTjMyCisgICAgLy8gRXhw
b3J0ZWQgQ2xhc3NlcyByZXF1aXJlIGEgZGVmaW5pdGlvbi4gVGhlc2UgZG9uJ3QgcG9zc2VzcyBv
bmUuCiAgICAgLy8gR2l2ZSBhIGNvbXBpbGUgdGltZSBlcnJvciBpZiB3ZSB0cnkgdG8gY29weSBv
bmUgb2YgdGhlc2UuCiAgICAgSlNWYWx1ZShjb25zdCBKU1ZhbHVlJik7CiAgICAgSlNWYWx1ZSYg
b3BlcmF0b3I9KGNvbnN0IEpTVmFsdWUmKTsKKyNlbmRpZgogfTsKIAotY2xhc3MgSlNDZWxsIDog
cHVibGljIEpTVmFsdWUgeworY2xhc3MgS0pTX0VYUE9SVCBKU0NlbGwgOiBwdWJsaWMgSlNWYWx1
ZSB7CiAgICAgZnJpZW5kIGNsYXNzIENvbGxlY3RvcjsKICAgICBmcmllbmQgY2xhc3MgVW5kZWZp
bmVkSW1wOwogICAgIGZyaWVuZCBjbGFzcyBOdWxsSW1wOwpAQCAtMTc0LDIxICsxNzcsMjEgQEAN
CiAgICAgYm9vbCBtX21hcmtlZDsKIH07CiAKLUpTQ2VsbCAqanNVbmRlZmluZWQoKTsKLUpTQ2Vs
bCAqanNOdWxsKCk7CitLSlNfRVhQT1JUIEpTQ2VsbCAqanNVbmRlZmluZWQoKTsKK0tKU19FWFBP
UlQgSlNDZWxsICpqc051bGwoKTsKIAotSlNDZWxsICpqc0Jvb2xlYW4oYm9vbCk7CitLSlNfRVhQ
T1JUIEpTQ2VsbCAqanNCb29sZWFuKGJvb2wpOwogCi1KU1ZhbHVlICpqc051bWJlcihkb3VibGUp
OwotSlNWYWx1ZSAqanNOYU4oKTsKK0tKU19FWFBPUlQgSlNWYWx1ZSAqanNOdW1iZXIoZG91Ymxl
KTsKK0tKU19FWFBPUlQgSlNWYWx1ZSAqanNOYU4oKTsKIAotSlNDZWxsICpqc1N0cmluZyhjb25z
dCBVU3RyaW5nICYpOyAvLyByZXR1cm5zIGVtcHR5IHN0cmluZyBpZiBwYXNzZWQgbnVsbCBzdHJp
bmcKLUpTQ2VsbCAqanNTdHJpbmcoY29uc3QgY2hhciAqID0gIiIpOyAvLyByZXR1cm5zIGVtcHR5
IHN0cmluZyBpZiBwYXNzZWQgMAorS0pTX0VYUE9SVCBKU0NlbGwgKmpzU3RyaW5nKGNvbnN0IFVT
dHJpbmcgJik7IC8vIHJldHVybnMgZW1wdHkgc3RyaW5nIGlmIHBhc3NlZCBudWxsIHN0cmluZwor
S0pTX0VYUE9SVCBKU0NlbGwgKmpzU3RyaW5nKGNvbnN0IGNoYXIgKiA9ICIiKTsgLy8gcmV0dXJu
cyBlbXB0eSBzdHJpbmcgaWYgcGFzc2VkIDAKIAogZXh0ZXJuIGNvbnN0IGRvdWJsZSBOYU47CiBl
eHRlcm4gY29uc3QgZG91YmxlIEluZjsKIAotY2xhc3MgQ29uc3RhbnRWYWx1ZXMgeworY2xhc3Mg
S0pTX0VYUE9SVCBDb25zdGFudFZhbHVlcyB7CiBwdWJsaWM6CiAgICAgc3RhdGljIEpTQ2VsbCAq
dW5kZWZpbmVkOwogICAgIHN0YXRpYyBKU0NlbGwgKm51bGw7Cg==
</data>
<flag name="review"
          id="1292"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>